From f7455a521532d34639a34b6bb22a1db5cd20a816 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 2 Sep 2024 14:34:16 +0200 Subject: [PATCH] Revert failed patch bump --- src/doc_obj.ts | 38326 ++++++++++++++++---------------- syntaxes/lmps.tmLanguage.json | 20 +- 2 files changed, 18900 insertions(+), 19446 deletions(-) diff --git a/src/doc_obj.ts b/src/doc_obj.ts index 60fc688..f71294f 100644 --- a/src/doc_obj.ts +++ b/src/doc_obj.ts @@ -1,54 +1,75 @@ export const command_docs = [ { "command": [ - "thermo_style" + "fix charge/regulation" ], "syntax": [ - "thermo_style style args" + "fix ID group-ID charge/regulation cation_type anion_type keyword value(s)" ], "args": [ [ { - "arg": "thermo_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "custom", - "type": 3, - "choices": [ - "one", - "multi", - "yaml", - "custom" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "charge/regulation", + "type": 1, + "choices": [] + }, + { + "arg": "cation_type", + "type": 2, + "choices": [] + }, + { + "arg": "anion_type", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value(s)", "type": 2, "choices": [] } ] ], - "parameters": "* style = one or multi or yaml or custom\n* args = list of arguments for a particular style \n *        one args = none \n *        multi args = none \n *        yaml args = none \n *        custom args = list of keywords \n         possible keywords = step, elapsed, elaplong, dt, time, \n         cpu, tpcpu, spcpu, cpuremain, part, timeremain, \n         atoms, temp, press, pe, ke, etotal, \n         evdwl, ecoul, epair, ebond, eangle, edihed, eimp, \n         emol, elong, etail, \n         enthalpy, ecouple, econserve, \n         vol, density, \n         xlo, xhi, ylo, yhi, zlo, zhi, \n         xy, xz, yz, \n         avecx, avecy, avecz, \n         bvecx, bvecy, bvecz, \n         cvecx, cvecy, cvecz, \n         lx, ly, lz, \n         xlat, ylat, zlat, \n         cella, cellb, cellc, cellalpha, cellbeta, cellgamma, \n         pxx, pyy, pzz, pxy, pxz, pyz, \n         bonds, angles, dihedrals, impropers, \n         fmax, fnorm, nbuild, ndanger, \n         c_ID, c_ID[I], c_ID[I][J], \n         f_ID, f_ID[I], f_ID[I][J], \n         v_name, v_name[I] \n         step = timestep \n         elapsed = timesteps since start of this run \n         elaplong = timesteps since start of initial run in a series of runs \n         dt = timestep size \n         time = simulation time \n         cpu = elapsed CPU time in seconds since start of this run \n         tpcpu = time per CPU second \n         spcpu = timesteps per CPU second \n         cpuremain = estimated CPU time remaining in run \n         part = which partition (0 to Npartition-1) this is \n         timeremain = remaining time in seconds on timer timeout. \n         atoms = # of atoms \n         temp = temperature \n         press = pressure \n         pe = total potential energy \n         ke = kinetic energy \n         etotal = total energy (pe + ke) \n         evdwl = van der Waals pairwise energy (includes etail) \n         ecoul = Coulombic pairwise energy \n         epair = pairwise energy (evdwl + ecoul + elong) \n         ebond = bond energy \n         eangle = angle energy \n         edihed = dihedral energy \n         eimp = improper energy \n         emol = molecular energy (ebond + eangle + edihed + eimp) \n         elong = long-range kspace energy \n         etail = van der Waals energy long-range tail correction \n         enthalpy = enthalpy (etotal + press\\*vol) \n         ecouple = cumulative energy change due to thermo/baro statting fixes \n         econserve = pe + ke + ecouple = etotal + ecouple \n         vol = volume \n         density = mass density of system \n         xlo,xhi,ylo,yhi,zlo,zhi = box boundaries \n         xy,xz,yz = box tilt for restricted triclinic (non-orthogonal) simulation boxes \n         avecx,avecy,avecz = components of edge vector A of the simulation box \n         bvecx,bvecy,bvecz = components of edge vector B of the simulation box \n         cvecx,cvecy,cvecz = components of edge vector C of the simulation box \n         lx,ly,lz = box lengths in x,y,z \n         xlat,ylat,zlat = lattice spacings as calculated by [lattice ](https://docs.lammps.org/lattice.html) command \n         cella,cellb,cellc = periodic cell lattice constants a,b,c \n         cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma \n         pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor \n         bonds,angles,dihedrals,impropers = # of these interactions defined \n         fmax = max component of force on any atom in any dimension \n         fnorm = length of force vector for all atoms \n         nbuild = # of neighbor list builds \n         ndanger = # of dangerous neighbor list builds \n         c_ID = global scalar value calculated by a compute with ID \n         c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n         c_ID[I][J] = I,J component of global array calculated by a compute with ID \n         f_ID = global scalar value calculated by a fix with ID \n         f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n         f_ID[I][J] = I,J component of global array calculated by a fix with ID \n         v_name = value calculated by an equal-style variable with name \n         v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) \n", - "examples": "\n```lmps\nthermo_style multi\nthermo_style yaml\nthermo_style one\nthermo_style custom step temp pe etotal press vol\nthermo_style custom step temp etotal c_myTemp v_abc\nthermo_style custom step temp etotal c_myTemp[*] v_abc\n```\n", - "html_filename": "thermo_style.html", - "short_description": "Set the style and content for printing thermodynamic data to the\nscreen and log files", - "description": "Set the style and content for printing thermodynamic data to the\nscreen and log files. The units for each column of output\ncorresponding to the list of keywords is determined by the [units](https://docs.lammps.org/units.html) command for the simulation. E.g. energies will be in energy\nunits, temperature in temperature units, pressure in pressure units.\n\nStyle *one* prints a single line of thermodynamic info that is the\nequivalent of \"thermo_style custom step temp epair emol etotal press\".\nThe line contains only numeric values.\n\nStyle *multi* prints a multiple-line listing of thermodynamic info\nthat is the equivalent of \"thermo_style custom etotal ke temp pe ebond\neangle edihed eimp evdwl ecoul elong press\". The listing contains\nnumeric values and a string ID for each quantity.\n\nStyle *yaml* is similar to style *one* but prints the output in [YAML](https://yaml.org/) format which can be easily read by a variety of\nscript languages and data handling packages. Since LAMMPS may print\nother output before, after, or in between thermodynamic output, the\nYAML format content needs to be separated from the rest. All YAML\nformat thermodynamic output can be matched with a regular expression\nand can thus be extracted with commands like ``egrep`` as follows:\n\n```sh\negrep '^(keywords:|data:$|---$|\\.\\.\\.$| - \\[)' log.lammps > log.yaml\n```\nInformation about processing such YAML files is in the [structureddata output howto ](https://docs.lammps.org/Howto_structured_data.html).\n\nStyle *custom* is the most general setting and allows you to specify\nwhich of the keywords listed above you want printed on each\nthermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are\nreferences to [computes ](https://docs.lammps.org/compute.html), [fixes ](https://docs.lammps.org/fix.html), and\nequal-style [variables ](https://docs.lammps.org/variable.html) that have been defined elsewhere\nin the input script or can even be new styles which users have added\nto LAMMPS. See the [Modify ](https://docs.lammps.org/Modify.html) page for details on the\nlatter. Thus the *custom* style provides a flexible means of\noutputting essentially any desired quantity as a simulation proceeds.\n\nAll styles except *custom* have *vol* appended to their list of\noutputs if the simulation box volume changes during the simulation.\n\nThe values printed by the various keywords are instantaneous values,\ncalculated on the current timestep. Time-averaged quantities, which\ninclude values from previous timesteps, can be output by using the\nf_ID keyword and accessing a fix that does time-averaging such as the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n\nOptions invoked by the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command can\nbe used to set the one- or multi-line format of the print-out, the\nnormalization of thermodynamic output (total values versus per-atom\nvalues for extensive quantities (ones which scale with the number of\natoms in the system), and the numeric precision of each printed value.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When you use a \"thermo_style\" command, all thermodynamic\n > settings are restored to their default values, including those\n > previously set by a [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command. Thus\n > if your input script specifies a thermo_style command, you should use\n > the thermo_modify command after it. \n > \n\n----------\n\nSeveral of the thermodynamic quantities require a temperature to be\ncomputed: \"temp\", \"press\", \"ke\", \"etotal\", \"enthalpy\", \"pxx\", etc. By\ndefault this is done by using a *temperature* compute which is created\nwhen LAMMPS starts up, as if this command had been issued:\n\n```lmps\ncompute thermo_temp all temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of this compute is *thermo_temp* and the group is *all* .\nYou can change the attributes of this temperature (e.g. its\ndegrees-of-freedom) via the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand. Alternatively, you can directly assign a new compute (that\ncalculates temperature) which you have defined, to be used for\ncalculating any thermodynamic quantity that requires a temperature.\nThis is done via the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command.\n\nSeveral of the thermodynamic quantities require a pressure to be\ncomputed: \"press\", \"enthalpy\", \"pxx\", etc. By default this is done by\nusing a *pressure* compute which is created when LAMMPS starts up, as\nif this command had been issued:\n\n```lmps\ncompute thermo_press all pressure thermo_temp\n```\nSee the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command for details.\nNote that the ID of this compute is *thermo_press* and the group is\n*all* . You can change the attributes of this pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Alternatively, you can\ndirectly assign a new compute (that calculates pressure) which you\nhave defined, to be used for calculating any thermodynamic quantity\nthat requires a pressure. This is done via the\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html) command.\n\nSeveral of the thermodynamic quantities require a potential energy to\nbe computed: \"pe\", \"etotal\", \"ebond\", etc. This is done by using a\n*pe* compute which is created when LAMMPS starts up, as if this\ncommand had been issued:\n\n```lmps\ncompute thermo_pe all pe\n```\nSee the [compute pe ](https://docs.lammps.org/compute_pe.html) command for details. Note that\nthe ID of this compute is *thermo_pe* and the group is *all* . You can\nchange the attributes of this potential energy via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\n----------\n\nThe kinetic energy of the system *ke* is inferred from the temperature\nof the system with \\(\\frac{1}{2} k_B T\\) of energy for each degree\nof freedom. Thus, using different [compute commands ](https://docs.lammps.org/compute.html)\nfor calculating temperature, via the [thermo_modify temp](https://docs.lammps.org/thermo_modify.html) command, may yield different kinetic energies, since\ndifferent computes that calculate temperature can subtract out\ndifferent non-thermal components of velocity and/or include different\ndegrees of freedom (translational, rotational, etc).\n\nThe potential energy of the system *pe* will include contributions\nfrom fixes if the [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) option is\nset for a fix that calculates such a contribution. For example, the\n[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html) fix calculates the energy of atoms\ninteracting with the wall. See the doc pages for \"individual fixes\"\nto see which ones contribute and whether their default\n[fix_modify energy ](https://docs.lammps.org/fix_modify.html) setting is *yes* or *no* .\n\nA long-range tail correction *etail* for the van der Waals pairwise\nenergy will be non-zero only if the [pair_modify tail](https://docs.lammps.org/pair_modify.html) option is turned on. The *etail* contribution is\nincluded in *evdwl*, *epair*, *pe*, and *etotal*, and the\ncorresponding tail correction to the pressure is included in *press*\nand *pxx*, *pyy*, etc.\n\n----------\n\nHere is more information on other keywords whose meaning may not be\nclear.\n\nThe *step*, *elapsed*, and *elaplong* keywords refer to timestep\ncount. *Step* is the current timestep, or iteration count when a\n[minimization ](https://docs.lammps.org/minimize.html) is being performed. *Elapsed* is the\nnumber of timesteps elapsed since the beginning of this run.\n*Elaplong* is the number of timesteps elapsed since the beginning of\nan initial run in a series of runs. See the *start* and *stop*\nkeywords for the [run ](https://docs.lammps.org/run.html) for info on how to invoke a series of\nruns that keep track of an initial starting time. If these keywords\nare not used, then *elapsed* and *elaplong* are the same value.\n\nThe *dt* keyword is the current timestep size in time [units](https://docs.lammps.org/units.html). The *time* keyword is the current elapsed simulation time,\nalso in time [units ](https://docs.lammps.org/units.html), which is simply (step\\*dt) if the\ntimestep size has not changed and the timestep has not been reset. If\nthe timestep has changed (e.g. via [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html))\nor the timestep has been reset (e.g. via the \"reset_timestep\"\ncommand), then the simulation time is effectively a cumulative value\nup to the current point.\n\nThe *cpu* keyword is elapsed CPU seconds since the beginning of this\nrun. The *tpcpu* and *spcpu* keywords are measures of how fast your\nsimulation is currently running. The *tpcpu* keyword is simulation\ntime per CPU second, where simulation time is in time\n[units ](https://docs.lammps.org/units.html). E.g. for metal units, the *tpcpu* value would be\npicoseconds per CPU second. The *spcpu* keyword is the number of\ntimesteps per CPU second. Both quantities are on-the-fly metrics,\nmeasured relative to the last time they were invoked. Thus if you are\nprinting out thermodynamic output every 100 timesteps, the two keywords\nwill continually output the time and timestep rate for the last 100\nsteps. The *tpcpu* keyword does not attempt to track any changes in\ntimestep size, e.g. due to using the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\ncommand.\n\nThe *cpuremain* keyword estimates the CPU time remaining in the\ncurrent run, based on the time elapsed thus far. It will only be a\ngood estimate if the CPU time/timestep for the rest of the run is\nsimilar to the preceding timesteps. On the initial timestep the value\nwill be 0.0 since there is no history to estimate from. For a\nminimization run performed by the \"minimize\" command, the estimate is\nbased on the *maxiter* parameter, assuming the minimization will\nproceed for the maximum number of allowed iterations.\n\nThe *part* keyword is useful for multi-replica or multi-partition\nsimulations to indicate which partition this output and this file\ncorresponds to, or for use in a [variable ](https://docs.lammps.org/variable.html) to append to\na filename for output specific to this partition. See discussion of\nthe [-partition command-line switch ](https://docs.lammps.org/Run_options.html) for details on\nrunning in multi-partition mode.\n\nThe *timeremain* keyword is the seconds remaining when a timeout has\nbeen configured via the [timer timeout ](https://docs.lammps.org/timer.html) command. If the\ntimeout timer is inactive, the value of this keyword is 0.0 and if the\ntimer is expired, it is negative. This allows for example to exit\nloops cleanly, if the timeout is expired with:\n\n```lmps\nif \"$(timeremain) < 0.0\" then \"quit 0\"\n```\nThe *ecouple* keyword is cumulative energy change in the system due to\nany thermostatting or barostatting fixes that are being used. A\npositive value means that energy has been subtracted from the system\n(added to the coupling reservoir). See the *econserve* keyword for an\nexplanation of why this sign choice makes sense.\n\nThe *econserve* keyword is the sum of the potential and kinetic energy\nof the system as well as the energy that has been transferred by\nthermostatting or barostatting to their coupling reservoirs -- that is,\n*econserve* = *pe* + *ke* + *ecouple* . Ideally, for a simulation in\nthe NVT, NPH, or NPT ensembles, the *econserve* quantity should remain\nconstant over time even though *etotal* may change.\n\nIn LAMMPS, the simulation box can be defined as orthogonal or\ntriclinic (non-orthogonal). See the [Howto_triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed explanation of orthogonal,\nrestricted triclinic, and general triclinic simulation boxes and how\nLAMMPS rotates a general triclinic box to be restricted triclinic\ninternally.\n\nThe *lx*, *ly*, *lz* keywords are the extent of the simulation box in\neach dimension. The *xlo*, *xhi*, *ylo*, *yhi*, *zlo*, *zhi* keywords\nare the lower and upper bounds of the simulation box in each dimension.\nI.e. *lx* = *xhi* - *xlo*). These 9 values are the same for all 3 kinds\nof boxes. I.e. for a restricted triclinic box, they are the values as\nif the box were not tilted. For a general triclinic box, they are the\nvalues after it is internally rotated to be a restricted triclinic box.\n\nThe *xy*, *xz*, *yz* are the current tilt factors for a triclinic box.\nThey are the same for restricted and general triclinic boxes.\n\nThe *avecx*, *avecy*, *avecz*, *bvecx*, *bvecy*, *bvecz*, *cvecx*,\n*cvecy*, *cvecz* are the components of the 3 edge vectors of the\ncurrent general simulation box. If it is an orthogonal box the\nvectors are along the x, y, z coordinate axes. If it is a restricted\ntriclinic box, the **A** vector is along the x axis, the **B** vector\nis in the xy plane with a +y coordinate, and the **C** vector has a +z\ncoordinate, as explained on the [Howto_triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page. If the [thermo_modifytriclinic/general ](https://docs.lammps.org/thermo_modify.html) option is set then they are the\n**A**, **B**, **C** vector which define the general triclinic box.\n\nThe *cella*, *cellb*, *cellc*, *cellalpha*, *cellbeta*, *cellgamma*\nkeywords correspond to the usual crystallographic quantities that\ndefine the periodic simulation box of a crystalline system. See the\n[Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a precise definition\nof these quantities in terms of the LAMMPS representation of a\nrestricted triclinic simulation box via *lx*, *ly*, *lz*, *yz*, *xz*,\n*xy* .\n\nThe *pxx,pyy,pzz,pxy,pxz,pyz* keywords are the 6 components of the\nsymmetric pressure tensor for the system. See the [computepressure ](https://docs.lammps.org/compute_pressure.html) command doc page for details of how it is\ncalculated.\n\nIf the [thermo_modify triclinic/general ](https://docs.lammps.org/thermo_modify.html) option\nis set then the 6 components will be output as values consistent with\nthe orientation of the general triclinic box relative to the standard\nxyz coordinate axes. If this keyword is not used, the values will be\nconsistent with the orientation of the restricted triclinic box (which\naligns with the xyz coordinate axes). As explained on the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, even if the\nsimulation box is created as a general triclinic box, internally\nLAMMPS uses a restricted triclinic box.\n\nNote that because the pressure tensor components are computed using\nforce vectors and atom coordinates, both of which are rotated in the\ngeneral versus restricted triclinic representation, the values will\ntypically be different for the two cases.\n\nThe *fmax* and *fnorm* keywords are useful for monitoring the progress\nof an [energy minimization ](https://docs.lammps.org/minimize.html). The *fmax* keyword\ncalculates the maximum force in any dimension on any atom in the\nsystem, or the infinity-norm of the force vector for the system. The\n*fnorm* keyword calculates the 2-norm or length of the force vector.\n\nThe *nbuild* and *ndanger* keywords are useful for monitoring neighbor\nlist builds during a run. Note that both these values are also\nprinted with the end-of-run statistics. The *nbuild* keyword is the\nnumber of re-builds during the current run. The *ndanger* keyword is\nthe number of re-builds that LAMMPS considered potentially\n\"dangerous\". If atom movement triggered neighbor list rebuilding (see\nthe [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command), then dangerous\nreneighborings are those that were triggered on the first timestep\natom movement was checked for. If this count is non-zero you may wish\nto reduce the delay factor to ensure no force interactions are missed\nby atoms moving beyond the neighbor skin distance before a rebuild\ntakes place.\n\n----------\n\nFor output values from a compute or fix or variable, the bracketed\nindex I used to index a vector, as in *c_ID[I]* or *f_ID[I]* or\n*v_name[I]*, can be specified using a wildcard asterisk with the index\nto effectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the size of the vector, then an\nasterisk with no numeric values means all indices from 1 to N. A\nleading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from n to N (inclusive). A middle\nasterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector had been listed one by one. E.g. these 2 thermo_style commands\nare equivalent, since the [compute temp ](https://docs.lammps.org/compute_temp.html) command\ncreates a global vector with 6 values.\n\n```lmps\ncompute myTemp all temp\nthermo_style custom step temp etotal c_myTemp[*]\nthermo_style custom step temp etotal &\nc_myTemp[1] c_myTemp[2] c_myTemp[3] &\nc_myTemp[4] c_myTemp[5] c_myTemp[6]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe *c_ID* and *c_ID[I]* and *c_ID[I][J]* keywords allow global values\ncalculated by a compute to be output. As discussed on the\n[compute ](https://docs.lammps.org/compute.html) doc page, computes can calculate global,\nper-atom, local, and per-grid values. Only global values can be\nreferenced by this command. However, per-atom compute values for an\nindividual atom can be referenced in a [equal-style variable](https://docs.lammps.org/variable.html) and the variable referenced by thermo_style custom, as\ndiscussed below. See the discussion above for how the I in *c_ID[I]*\ncan be specified with a wildcard asterisk to effectively specify\nmultiple values from a global compute vector.\n\nThe ID in the keyword should be replaced by the actual ID of a compute\nthat has been defined elsewhere in the input script. See the\n[compute ](https://docs.lammps.org/compute.html) command for details. If the compute\ncalculates a global scalar, vector, or array, then the keyword formats\nwith 0, 1, or 2 brackets will reference a scalar value from the\ncompute.\n\nNote that some computes calculate \"intensive\" global quantities like\ntemperature; others calculate \"extensive\" global quantities like\nkinetic energy that are summed over all atoms in the compute group.\nIntensive quantities are printed directly without normalization by\nthermo_style custom. Extensive quantities may be normalized by the\ntotal number of atoms in the simulation (NOT the number of atoms in\nthe compute group) when output, depending on the [thermo_modifynorm ](https://docs.lammps.org/thermo_modify.html) option being used.\n\nThe *f_ID* and *f_ID[I]* and *f_ID[I][J]* keywords allow global values\ncalculated by a fix to be output. As discussed on the [fix](https://docs.lammps.org/fix.html) doc page, fixes can calculate global, per-atom, local, and\nper-grid values. Only global values can be referenced by this\ncommand. However, per-atom fix values can be referenced for an\nindividual atom in a [equal-style variable ](https://docs.lammps.org/variable.html) and the\nvariable referenced by thermo_style custom, as discussed below. See\nthe discussion above for how the I in *f_ID[I]* can be specified with\na wildcard asterisk to effectively specify multiple values from a\nglobal fix vector.\n\nThe ID in the keyword should be replaced by the actual ID of a fix\nthat has been defined elsewhere in the input script. See the\n[fix ](https://docs.lammps.org/fix.html) command for details. If the fix calculates a global\nscalar, vector, or array, then the keyword formats with 0, 1, or 2\nbrackets will reference a scalar value from the fix.\n\nNote that some fixes calculate \"intensive\" global quantities like\ntimestep size; others calculate \"extensive\" global quantities like\nenergy that are summed over all atoms in the fix group. Intensive\nquantities are printed directly without normalization by thermo_style\ncustom. Extensive quantities may be normalized by the total number of\natoms in the simulation (NOT the number of atoms in the fix group)\nwhen output, depending on the [thermo_modify norm](https://docs.lammps.org/thermo_modify.html) option being used.\n\nThe *v_name* keyword allow the current value of a variable to be\noutput. The name in the keyword should be replaced by the variable\nname that has been defined elsewhere in the input script. Only\nequal-style and vector-style variables can be referenced; the latter\nrequires a bracketed term to specify the Ith element of the vector\ncalculated by the variable. However, an equal-style variable can use\nan atom-style variable in its formula indexed by the ID of an\nindividual atom. This is a way to output a specific atom's per-atom\ncoordinates or other per-atom properties in thermo output. See the\n[variable ](https://docs.lammps.org/variable.html) command for details. Note that variables\nof style *equal* and *vector* and *atom* define a formula which can\nreference per-atom properties or thermodynamic keywords, or they can\ninvoke other computes, fixes, or variables when evaluated, so this is\na very general means of creating thermodynamic output.\n\nNote that equal-style and vector-style variables are assumed to\nproduce \"intensive\" global quantities, which are thus printed as-is,\nwithout normalization by thermo_style custom. You can include a\ndivision by \"natoms\" in the variable formula if this is not the case.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", - "related": "[thermo ](https://docs.lammps.org/thermo.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID, group-ID are documented in fix command\n* charge/regulation = style name of this fix command\n* cation_type = atom type of free cations (integer or type label)\n* anion_type = atom type of free anions (integer or type label)\n\n* zero or more keyword/value pairs may be appended \n *      keyword = *pH*, *pKa*, *pKb*, *pIp*, *pIm*, *pKs*, *acid_type*, *base_type*, *lunit_nm*, *temp*, *tempfixid*, *nevery*, *nmc*, *rxd*, *seed*, *tag*, *group*, *onlysalt*, pmcmoves \n *      *pH* value = pH of the solution (can be specified as an equal-style variable) \n *      *pKa* value = acid dissociation constant (in the -log10 representation) \n *      *pKb* value = base dissociation constant (in the -log10 representation) \n *      *pIp* value = activity (effective concentration) of free cations (in the -log10 representation) \n *      *pIm* value = activity (effective concentration) of free anions (in the -log10 representation) \n *      *pKs* value = solvent self-dissociation constant (in the -log10 representation) \n *      *acid_type* = atom type of acid groups (integer or type label) \n *      *base_type* = atom type of base groups (integer or type label) \n *      *lunit_nm* value = unit length used by LAMMPS (# in the units of nanometers) \n *      *temp* value = temperature \n *      *tempfixid* value = fix ID of temperature thermostat \n *      *nevery* value = invoke this fix every nevery steps \n *      *nmc* value = number of charge regulation MC moves to attempt every nevery steps \n *      *rxd* value = cutoff distance for acid/base reaction \n *      *seed* value = random # seed (positive integer) \n *      *tag* value = yes or no (yes: The code assign unique tags to inserted ions; no: The tag of all inserted ions is \"0\") \n *      *group* value = group-ID, inserted ions are assigned to group group-ID. Can be used multiple times to assign inserted ions to multiple groups. \n *      *onlysalt* values = flag charge_cation charge_anion. \n       flag = yes or no (yes: the fix performs only ion insertion/deletion, no: perform acid/base dissociation and ion insertion/deletion) \n       charge_cation, charge_anion = value of cation/anion charge, must be an integer (only specify if flag = yes) \n *      pmcmoves values = pmcA pmcB pmcI - MC move fractions for acid ionization (pmcA), base ionization (pmcB) and free ion exchange (pmcI) \n", + "examples": "\n```lmps\nfix chareg all charge/regulation 1 2 acid_type 3 base_type 4 pKa 5.0 pKb 6.0 pH 7.0 pIp 3.0 pIm 3.0 nevery 200 nmc 200 seed 123 tempfixid fT\nfix chareg all charge/regulation 1 2 pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0\n\nlabelmap atom 1 H+ 2 OH-\nfix chareg all charge/regulation H+ OH- pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0\n```\n", + "html_filename": "fix_charge_regulation.html", + "short_description": "This fix performs Monte Carlo (MC) sampling of charge regulation and\nexchange of ions with a reservoir as discussed in **Curk1**\nand **Curk2**", + "description": "This fix performs Monte Carlo (MC) sampling of charge regulation and\nexchange of ions with a reservoir as discussed in **Curk1**\nand **Curk2**. The implemented method is largely analogous\nto the grand-reaction ensemble method in **Landsgesell**. The implementation is parallelized, compatible with\nexisting LAMMPS functionalities, and applicable to any system utilizing\ndiscrete, ionizable groups or surface sites.\n\nSpecifically, the fix implements the following three types of MC moves,\nwhich discretely change the charge state of individual particles and\ninsert ions into the systems: \\(\\mathrm{A} \\rightleftharpoons\n\\mathrm{A}^-+\\mathrm{X}^+\\), \\(\\mathrm{B} \\rightleftharpoons\n\\mathrm{B}^++\\mathrm{X}^-\\), and \\(\\emptyset \\rightleftharpoons\nZ^-\\mathrm{X}^{Z^+}+Z^+\\mathrm{X}^{-Z^-}\\). In the former two types of\nreactions, Monte Carlo moves alter the charge value of specific atoms\n(\\(\\mathrm{A}\\), \\(\\mathrm{B}\\)) and simultaneously insert a\ncounterion to preserve the charge neutrality of the system, modeling the\ndissociation/association process. The last type of reaction performs\ngrand canonical MC exchange of ion pairs with a (fictitious) reservoir.\n\nIn our implementation \"acid\" refers to particles that can attain charge\n\\(q=\\{0,-1\\}\\) and \"base\" to particles with \\(q=\\{0,1\\}\\),\nwhereas the MC exchange of free ions allows any integer charge values of\n\\({Z^+}\\) and \\({Z^-}\\).\n\nHere we provide several practical examples for modeling charge\nregulation effects in solvated systems. An acid ionization reaction\n(\\(\\mathrm{A} \\rightleftharpoons \\mathrm{A}^-+\\mathrm{H}^+\\)) can be\ndefined via a single line in the input file\n\n```lmps\nfix acid_reaction all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 5.0 pIp 7.0 pIm 7.0\n```\nwhere the fix attempts to charge \\(\\mathrm{A}\\) (discharge\n\\(\\mathrm{A}^-\\)) to \\(\\mathrm{A}^-\\) (\\(\\mathrm{A}\\)) and\ninsert (delete) a proton (atom type 2). Besides, the fix implements\nself-ionization reaction of water \\(\\emptyset \\rightleftharpoons\n\\mathrm{H}^++\\mathrm{OH}^-\\).\n\nHowever, this approach is highly inefficient at \\(\\mathrm{pH}\n\\approx 7\\) when the concentration of both protons and hydroxyl ions is\nlow, resulting in a relatively low acceptance rate of MC moves.\n\nA more efficient way is to allow salt ions to participate in ionization\nreactions, which can be easily achieved via\n\n```lmps\nfix acid_reaction2 all charge/regulation 4 5 acid_type 1 pH 7.0 pKa 5.0 pIp 2.0 pIm 2.0\n```\nwhere particles of atom type 4 and 5 are the salt cations and anions,\nboth at activity (effective concentration) of \\(10^{-2}\\) mol/l, see\n**Curk1** and **Landsgesell** for more\ndetails.\n\nWe could have simultaneously added a base ionization reaction\n(\\(\\mathrm{B} \\rightleftharpoons \\mathrm{B}^++\\mathrm{OH}^-\\))\n\n```lmps\nfix acid_base_reaction all charge/regulation 2 3 acid_type 1 base_type 6 pH 7.0 pKa 5.0 pKb 6.0 pIp 7.0 pIm 7.0\n```\nwhere the fix will attempt to charge \\(\\mathrm{B}\\) (discharge\n\\(\\mathrm{B}^+\\)) to \\(\\mathrm{B}^+\\) (\\(\\mathrm{B}\\)) and\ninsert (delete) a hydroxyl ion \\(\\mathrm{OH}^-\\) of atom type 3.\n\n\nDissociated ions and salt ions can be combined into a single particle\ntype, which reduces the number of necessary MC moves and increases\nsampling performance, see **Curk1**. The\n\\(\\mathrm{H}^+\\) and monovalent salt cation (\\(\\mathrm{S}^+\\))\nare combined into a single particle type, \\(\\mathrm{X}^+ =\n\\{\\mathrm{H}^+, \\mathrm{S}^+\\}\\). In this case \"pIp\" refers to the\neffective concentration of the combined cation type \\(\\mathrm{X}^+\\)\nand its value is determined by \\(10^{-\\mathrm{pIp}} =\n10^{-\\mathrm{pH}} + 10^{-\\mathrm{pSp}}\\), where\n\\(10^{-\\mathrm{pSp}}\\) is the effective concentration of salt\ncations. For example, at pH=7 and pSp=6 we would find pIp~5.958 and the\ncommand that performs reactions with combined ions could read,\n\n```lmps\nfix acid_reaction_combined all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 5.0 pIp 5.958 pIm 5.958\n```\nIf neither the acid or the base type is specified, for example,\n\n```lmps\nfix salt_reaction all charge/regulation 4 5 pIp 2.0 pIm 2.0\n```\nthe fix simply inserts or deletes an ion pair of a free cation (atom\ntype 4) and a free anion (atom type 5) as done in a conventional\ngrand-canonical MC simulation. Multivalent ions can be inserted\n(deleted) by using the *onlysalt* keyword.\n\nThis fix is compatible with LAMMPS packages such as MOLECULE or\nRIGID. The acid and base particles can be part of larger molecules or\nrigid bodies. Free ions that are inserted to or deleted from the system\nmust be defined as single particles (no bonded interactions allowed) and\ncannot be part of larger molecules or rigid bodies. If an atom style\nwith molecule IDs is used, all inserted ions have a molecule ID equal to\nzero.\n\nNote that LAMMPS implicitly assumes a constant number of particles\n(degrees of freedom). Since using this fix alters the total number of\nparticles during the simulation, any thermostat used by LAMMPS, such as\nNVT or Langevin, must use a dynamic calculation of system\ntemperature. This can be achieved by specifying a dynamic temperature\ncompute (e.g. dtemp) and using it with the desired thermostat, e.g. a\nLangevin thermostat:\n\n```lmps\ncompute dtemp all temp\ncompute_modify dtemp dynamic/dof yes\nfix fT all langevin 1.0 1.0 1.0 123\nfix_modify fT temp dtemp\n```\nThe units of pH, pKa, pKb, pIp, pIm are considered to be in the\nstandard -log10 representation assuming reference concentration\n\\(\\rho_0 = \\mathrm{mol}/\\mathrm{l}\\). For example, in the dilute\nideal solution limit, the concentration of free cations will be\n\\(c_\\mathrm{I} = 10^{-\\mathrm{pIp}}\\mathrm{mol}/\\mathrm{l}\\). To\nperform the internal unit conversion, the the value of the LAMMPS unit\nlength must be specified in nanometers via *lunit_nm*. The default value\nis set to the Bjerrum length in water at room temperature (0.71 nm),\n*lunit_nm* = 0.71.\n\nThe temperature used in MC acceptance probability is set by *temp*. This\ntemperature should be the same as the temperature set by the molecular\ndynamics thermostat. For most purposes, it is probably best to use\n*tempfixid* keyword which dynamically sets the temperature equal to the\nchosen MD thermostat temperature, in the example above we assumed the\nthermostat fix-ID is *fT*. The inserted particles attain a random\nvelocity corresponding to the specified temperature. Using *tempfixid*\noverrides any fixed temperature set by *temp*.\n\nThe *rxd* keyword can be used to restrict the inserted/deleted\ncounterions to a specific radial distance from an acid or base particle\nthat is currently participating in a reaction. This can be used to\nsimulate more realist reaction dynamics. If *rxd* = 0 or *rxd* > *L* /\n2, where *L* is the smallest box dimension, the radial restriction is\nautomatically turned off and free ion can be inserted or deleted\nanywhere in the simulation box.\n\nIf the *tag yes* is used, every inserted atom gets a unique tag ID,\notherwise, the tag of every inserted atom is set to 0. *tag yes* might\ncause an integer overflow in very long simulations since the tags are\nunique to every particle and thus increase with every successful\nparticle insertion.\n\nThe *pmcmoves* keyword sets the relative probability of attempting the\nthree types of MC moves (reactions): acid charging, base charging, and\nion pair exchange. The fix only attempts to perform particle charging\nMC moves if *acid_type* or *base_type* is defined. Otherwise fix only\nperforms free ion insertion/deletion. For example, if *acid_type* is not\ndefined, *pmcA* is automatically set to 0. The vector *pmcmoves* is\nautomatically normalized, for example, if set to *pmcmoves* 0 0.33 0.33,\nthe vector would be normalized to [0,0.5,0.5].\n\nThe *only_salt* option can be used to perform multivalent\ngrand-canonical ion-exchange moves. If *only_salt yes* is used, no\ncharge exchange is performed, only ion insertion/deletion (*pmcmoves* is\nset to [0,0,1]), but ions can be multivalent. In the example above, an\nMC move would consist of three ion insertion/deletion to preserve the\ncharge neutrality of the system.\n\nThe *group* keyword can be used to add inserted particles to a specific\ngroup-ID. All inserted particles are automatically added to group *all*.\n\n\n #### Output\n\nThis fix computes a global vector of length 8, which can be accessed by\nvarious output commands. The vector values are the following global\nquantities:\n\n* 1 = cumulative MC attempts\n* 2 = cumulative MC successes\n* 3 = current # of neutral acid atoms\n* 4 = current # of -1 charged acid atoms\n* 5 = current # of neutral base atoms\n* 6 = current # of +1 charged base atoms\n* 7 = current # of free cations\n* 8 = current # of free anions\n\n**(Curk1)** T. Curk, J. Yuan, and E. Luijten, \"Accelerated simulation method for charge regulation effects\", JCP 156 (2022). \n \n**(Curk2)** T. Curk and E. Luijten, \"Charge-regulation effects in nanoparticle self-assembly\", PRL 126 (2021) \n \n**(Landsgesell)** J. Landsgesell, P. Hebbeker, O. Rud, R. Lunkad, P. Kosovan, and C. Holm, \"Grand-reaction method for simulations of ionization equilibria coupled to ion partitioning\", Macromolecules 53, 3007-3020 (2020). \n \n**(Landsgesell)** J. Landsgesell, P. Hebbeker, O. Rud, R. Lunkad, P. Kosovan, and C. Holm, \"Grand-reaction method for simulations of ionization equilibria coupled to ion partitioning\", Macromolecules 53, 3007-3020 (2020). \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThe [atom_style ](https://docs.lammps.org/atom_style.html), used must contain the charge\nproperty and have per atom type masses, for example, the style could be\n*charge* or *full*. Only usable for 3D simulations. Atoms specified as\nfree ions cannot be part of rigid bodies or molecules and cannot have\nbonding interactions. The scheme is limited to integer charges, any\natoms with non-integer charges will not be considered by the fix.\n\nAll interaction potentials used must be continuous, otherwise the MD\nintegration and the particle exchange MC moves do not correspond to the\nsame equilibrium ensemble. For example, if an lj/cut pair style is used,\nthe LJ potential must be shifted so that it vanishes at the cutoff. This\ncan be easily achieved using the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ncommand, i.e., by using: *pair_modify shift yes*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Region restrictions are not yet implemented. \n > \n\n", + "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html),\n[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)\n" }, { "command": [ - "fix thermal/conductivity" + "compute ave/sphere/atom", + "compute ave/sphere/atom/kk" ], "syntax": [ - "fix ID group-ID thermal/conductivity N edim Nbin keyword value ..." + "compute ID group-ID ave/sphere/atom keyword values ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -63,106 +84,81 @@ export const command_docs = [ "choices": [] }, { - "arg": "thermal/conductivity", - "type": 1, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "y", + "arg": "ave/sphere/atom", "type": 3, "choices": [ - "x", - "y" + "ave/sphere/atom", + "ave/sphere/atom/kk" ] }, - { - "arg": "Nbin", - "type": 2, - "choices": [] - }, { "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* thermal/conductivity = style name of this fix command\n* N = perform kinetic energy exchange every N steps\n* edim = x or y or z = direction of kinetic energy transfer\n* Nbin = # of layers in edim direction (must be even number)\n* zero or more keyword/value pairs may be appended\n* keyword = swap \n *        swap value = Nswap = number of swaps to perform every N steps \n", - "examples": "\n```lmps\nfix 1 all thermal/conductivity 100 z 20\nfix 1 all thermal/conductivity 50 z 20 swap 2\n```\n", - "html_filename": "fix_thermal_conductivity.html", - "short_description": "Use the Muller-Plathe algorithm described in **Muller-Plathe1** to exchange kinetic energy between two particles\nin different regions of the simulation box every N steps", - "description": "Use the Muller-Plathe algorithm described in **Muller-Plathe1** to exchange kinetic energy between two particles\nin different regions of the simulation box every N steps. This\ninduces a temperature gradient in the system. As described below this\nenables the thermal conductivity of a material to be calculated. This\nalgorithm is sometimes called a reverse non-equilibrium MD (reverse\nNEMD) approach to computing thermal conductivity. This is because the\nusual NEMD approach is to impose a temperature gradient on the system\nand measure the response as the resulting heat flux. In the\nMuller-Plathe method, the heat flux is imposed, and the temperature\ngradient is the system's response.\n\nSee the [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html) command for details\non how to compute thermal conductivity in an alternate way, via the\nGreen-Kubo formalism.\n\nThe simulation box is divided into *Nbin* layers in the *edim*\ndirection, where the layer 1 is at the low end of that dimension and\nthe layer *Nbin* is at the high end. Every N steps, Nswap pairs of\natoms are chosen in the following manner. Only atoms in the fix group\nare considered. The hottest Nswap atoms in layer 1 are selected.\nSimilarly, the coldest Nswap atoms in the \"middle\" layer (see below)\nare selected. The two sets of Nswap atoms are paired up and their\nvelocities are exchanged. This effectively swaps their kinetic\nenergies, assuming their masses are the same. If the masses are\ndifferent, an exchange of velocities relative to center of mass motion\nof the two atoms is performed, to conserve kinetic energy. Over time,\nthis induces a temperature gradient in the system which can be\nmeasured using commands such as the following, which writes the\ntemperature profile (assuming z = edim) to the file tmp.profile:\n\n```lmps\ncompute ke all ke/atom\nvariable temp atom c_ke/1.5\ncompute layers all chunk/atom bin/1d z lower 0.05 units reduced\nfix 3 all ave/chunk 10 100 1000 layers v_temp file tmp.profile\n```\nNote that by default, Nswap = 1, though this can be changed by the\noptional *swap* keyword. Setting this parameter appropriately, in\nconjunction with the swap rate N, allows the heat flux to be adjusted\nacross a wide range of values, and the kinetic energy to be exchanged\nin large chunks or more smoothly.\n\nThe \"middle\" layer for velocity swapping is defined as the *Nbin* /2 +\n1 layer. Thus if *Nbin* = 20, the two swapping layers are 1 and 11.\nThis should lead to a symmetric temperature profile since the two\nlayers are separated by the same distance in both directions in a\nperiodic sense. This is why *Nbin* is restricted to being an even\nnumber.\n\nAs described below, the total kinetic energy transferred by these\nswaps is computed by the fix and can be output. Dividing this\nquantity by time and the cross-sectional area of the simulation box\nyields a heat flux. The ratio of heat flux to the slope of the\ntemperature profile is proportional to the thermal conductivity of the\nfluid, in appropriate units. See the **Muller-Plathe1** for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is periodic in the direction of the heat flux,\n > then the flux is going in 2 directions. This means the effective heat\n > flux in one direction is reduced by a factor of 2. You will see this\n > in the equations for thermal conductivity (kappa) in the Muller-Plathe\n > paper. LAMMPS is simply tallying kinetic energy which does not\n > account for whether or not your system is periodic; you must use the\n > value appropriately to yield a kappa for your system. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After equilibration, if the temperature gradient you observe is\n > not linear, then you are likely swapping energy too frequently and are\n > not in a regime of linear response. In this case you cannot\n > accurately infer a thermal conductivity and should try increasing the\n > Nevery parameter. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nkinetic energy transferred between the bottom and middle of the\nsimulation box (in the *edim* direction) is stored as a scalar\nquantity by this fix. This quantity is zeroed when the fix is defined\nand accumulates thereafter, once every N steps. The units of the\nquantity are energy; see the [units ](https://docs.lammps.org/units.html) command for details.\nThe scalar value calculated by this fix is \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Muller-Plathe1)** Muller-Plathe, J Chem Phys, 106, 6082 (1997). \n \n**(Muller-Plathe1)** Muller-Plathe, J Chem Phys, 106, 6082 (1997). \n ", - "restrictions": "Swaps conserve both momentum and kinetic energy, even if the masses of\nthe swapped atoms are not equal. Thus you should not need to\nthermostat the system. If you do use a thermostat, you may want to\napply it only to the non-swapped dimensions (other than *vdim* ).\n\nLAMMPS does not check, but you should not use this fix to swap the\nkinetic energy of atoms that are in constrained molecules, e.g. via\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause application of the constraints will alter the amount of\ntransferred momentum. You should, however, be able to use flexible\nmolecules. See the **Zhang2** for a discussion and results\nof this idea.\n\nWhen running a simulation with large, massive particles or molecules\nin a background solvent, you may want to only exchange kinetic energy\nbetween solvent particles.\n\n**(Zhang2)** Zhang, Lussetti, de Souza, Muller-Plathe, J Phys Chem B,\n109, 15060-15067 (2005). \n ", - "related": "[fix ehex ](https://docs.lammps.org/fix_ehex.html), [fix heat ](https://docs.lammps.org/fix_heat.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix viscosity ](https://docs.lammps.org/fix_viscosity.html),\n[compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ave/sphere/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff \n       cutoff value = distance cutoff \n", + "examples": "\n```lmps\ncompute 1 all ave/sphere/atom\n\ncompute 1 all ave/sphere/atom cutoff 5.0\ncomm_modify cutoff 5.0\n```\n", + "html_filename": "compute_ave_sphere_atom.html", + "short_description": "\nDefine a computation that calculates the local mass density and\ntemperature for each atom based on its neighbors inside a spherical\ncutoff", + "description": "\nDefine a computation that calculates the local mass density and\ntemperature for each atom based on its neighbors inside a spherical\ncutoff. If an atom has \\(M\\) neighbors, then its local mass density is\ncalculated as the sum of its mass and its \\(M\\) neighbor masses, divided\nby the volume of the cutoff sphere (or circle in 2d). The local\ntemperature of the atom is calculated as the temperature of the\ncollection of \\(M+1\\) atoms, after subtracting the center-of-mass velocity\nof the \\(M+1\\) atoms from each of the \\(M+1\\) atom's velocities. This\nis effectively the thermal velocity of the neighborhood of the central\natom, similar to [compute temp/com ](https://docs.lammps.org/compute_temp_com.html).\n\nThe optional keyword *cutoff* defines the distance cutoff used when\nsearching for neighbors. The default value is the cutoff specified by\nthe pair style. If no pair style is defined, then a cutoff must be\ndefined using this keyword. If the specified cutoff is larger than\nthat of the pair_style plus neighbor skin (or no pair style is\ndefined), the *comm_modify cutoff* option must also be set to match\nthat of the *cutoff* keyword.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral.\n > This is the default setting for the [special_bonds > ](https://docs.lammps.org/special_bonds.html) command, and means those pairwise interactions do\n > not appear in the neighbor list. Because this compute uses the\n > neighbor list, it also means those pairs will not be included in\n > the order parameter. This difficulty can be circumvented by\n > writing a dump file, and using the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the order parameter for snapshots in the dump file. The\n > rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html) command\n > that includes all pairs in the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with two columns: mass\ndensity in density [units ](https://docs.lammps.org/units.html) and temperature in temperature\n[units ](https://docs.lammps.org/units.html).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page for an overview of LAMMPS output options.\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", + "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" }, { "command": [ - "pair_style lj/gromacs", - "pair_style lj/gromacs/gpu", - "pair_style lj/gromacs/kk", - "pair_style lj/gromacs/omp", - "pair_style lj/gromacs/coul/gromacs", - "pair_style lj/gromacs/coul/gromacs/kk", - "pair_style lj/gromacs/coul/gromacs/omp" + "fix_modify AtC consistent_fe_initialization" ], "syntax": [ - "pair_style style args" + "fix_modify consistent_fe_initialization " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "lj/gromacs/coul/gromacs/omp", - "type": 3, - "choices": [ - "lj/gromacs", - "lj/gromacs/coul/gromacs", - "lj/gromacs/gpu", - "lj/gromacs/kk", - "lj/gromacs/omp", - "lj/gromacs/coul/gromacs/kk", - "lj/gromacs/coul/gromacs/omp" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "args", - "type": 2, + "arg": "consistent_fe_initialization", + "type": 1, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } ] ], - "parameters": "* style = lj/gromacs or lj/gromacs/coul/gromacs\n* args = list of arguments for a particular style \n *      lj/gromacs args = inner outer \n       inner, outer = global switching cutoffs for Lennard Jones \n *      lj/gromacs/coul/gromacs args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n", - "examples": "\n```lmps\npair_style lj/gromacs 9.0 12.0\npair_coeff * * 100.0 2.0\npair_coeff 2 2 100.0 2.0 8.0 10.0\n\npair_style lj/gromacs/coul/gromacs 9.0 12.0\npair_style lj/gromacs/coul/gromacs 8.0 10.0 7.0 9.0\npair_coeff * * 100.0 2.0\n```\n", - "html_filename": "pair_gromacs.html", - "short_description": "The *lj/gromacs* styles compute shifted LJ and Coulombic interactions\nwith an additional switching function S(r) that ramps the energy and force\nsmoothly to zero between an inner and outer cutoff", - "description": "The *lj/gromacs* styles compute shifted LJ and Coulombic interactions\nwith an additional switching function S(r) that ramps the energy and force\nsmoothly to zero between an inner and outer cutoff. It is a commonly\nused potential in the [GROMACS](https://www.gromacs.org) MD code and for\nthe coarse-grained models of **Marrink**.\n\\[\\begin{align*} \n E_{LJ} = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + S_{LJ}(r)\n \\qquad r < r_c \\\\\n E_C = & \\frac{C q_i q_j}{\\epsilon r} + S_C(r) \\qquad r < r_c \\\\\n S(r) = & C \\qquad r < r_1 \\\\\n S(r) = & \\frac{A}{3} (r - r_1)^3 + \\frac{B}{4} (r - r_1)^4 + C \\qquad r_1 < r < r_c \\\\\n A = & (-3 E'(r_c) + (r_c - r_1) E''(r_c))/(r_c - r_1)^2 \\\\\n B = & (2 E'(r_c) - (r_c - r_1) E''(r_c))/(r_c - r_1)^3 \\\\\n C = & -E(r_c) + \\frac{1}{2} (r_c - r_1) E'(r_c) - \\frac{1}{12} (r_c - r_1)^2 E''(r_c) \\end{align*} \\]\n\\(r_1\\) is the inner cutoff; \\(r_c\\) is the outer cutoff. The\ncoefficients A, B, and C are computed by LAMMPS to perform the shifting\nand smoothing. The function S(r) is actually applied once to each term\nof the LJ formula and once to the Coulombic formula, so there are 2 or 3\nsets of A,B,C coefficients depending on which pair_style is used. The\nboundary conditions applied to the smoothing function are as follows:\n\\(S'(r_1) = S''(r_1) = 0, S(r_c) = -E(r_c), S'(r_c) = -E'(r_c)\\),\nand \\(S''(r_c) = -E''(r_c)\\), where E(r) is the corresponding term\nin the LJ or Coulombic potential energy function. Single and double\nprimes denote first and second derivatives with respect to r,\nrespectively.\n\nThe inner and outer cutoff for the LJ and Coulombic terms can be the\nsame or different depending on whether 2 or 4 arguments are used in\nthe pair_style command. The inner LJ cutoff must be > 0, but the\ninner Coulombic cutoff can be >= 0.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* inner (distance units)\n* outer (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{1/6} \\sigma\\).\n\nThe last 2 coefficients are optional inner and outer cutoffs for style\n*lj/gromacs* . If not specified, the global *inner* and *outer* values\nare used.\n\nThe last 2 coefficients cannot be used with style\n*lj/gromacs/coul/gromacs* because this force field does not allow\nvarying cutoffs for individual atom pairs; all pairs use the global\ncutoff(s) specified in the pair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nNone of the GROMACS pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option, since the Lennard-Jones\nportion of the pair interaction is already smoothed to 0.0 at the\ncutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nNone of the GROMACS pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since there are no corrections for\na potential that goes to 0.0 at the cutoff.\n\nAll of the GROMACS pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nAll of the GROMACS pair styles can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Marrink)** Marrink, de Vries, Mark, J Phys Chem B, 108, 750-760 (2004). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* consistent_fe_initialization = name of the AtC sub-command\n* on or off = switch to activate/deactivate the initial setting of the FE intrinsic field to match the projected MD field \n", + "examples": "\n```lmps\nfix_modify AtC consistent_fe_initialization on\n```\n", + "html_filename": "atc_consistent_fe_initialization.html", + "short_description": "Determines whether AtC initializes FE intrinsic fields (e.g.,\ntemperature) to match the projected MD values", + "description": "Determines whether AtC initializes FE intrinsic fields (e.g.,\ntemperature) to match the projected MD values. This is particularly\nuseful for fully overlapping simulations.\n", + "restrictions": "Can be used with: *thermal*, *two_temperature*.\nCannot be used with time filtering on.\nDoes not include boundary nodes.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style dpd/ext", - "pair_style dpd/ext", - "pair_style dpd/ext/tstat", - "pair_style dpd/ext/tstat" + "pair_style smd/tri_surface" ], "syntax": [ - "pair_style dpd/ext T cutoff seed", - "pair_style dpd/ext/tstat Tstart Tstop cutoff seed" + "pair_style smd/tri_surface scale_factor" ], "args": [ [ @@ -172,76 +168,121 @@ export const command_docs = [ "choices": [] }, { - "arg": "dpd/ext", + "arg": "smd/tri_surface", "type": 1, "choices": [] }, { - "arg": "T", + "arg": "scale_factor", "type": 2, "choices": [] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\npair_style smd/tri_surface 1.0\npair_coeff 1 1 \n```\n", + "html_filename": "pair_smd_triangulated_surface.html", + "short_description": "The *smd/tri_surface* style calculates contact forces between SPH\nparticles and a rigid wall boundary defined via the\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) fix", + "description": "The *smd/tri_surface* style calculates contact forces between SPH\nparticles and a rigid wall boundary defined via the\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) fix.\n\nThe contact forces are calculated using a Hertz potential, which\nevaluates the overlap between a particle (whose spatial extents are\ndefined via its contact radius) and the triangle. The effect is that\na particle cannot penetrate into the triangular surface. The\nparameter has units of pressure and should equal\nroughly one half of the Young's modulus (or bulk modulus in the case\nof fluids) of the material model associated with the SPH particle\n\nThe parameter *scale_factor* can be used to scale the particles'\ncontact radii. This can be useful to control how close particles can\napproach the triangulated surface. Usually, *scale_factor* =1.0.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically.\nCurrently, no part of MACHDYN supports restarting nor minimization.\nrRESPA does not apply to this pair style.\n\n----------\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "fix ave/correlate" + ], + "syntax": [ + "fix ID group-ID ave/correlate Nevery Nrepeat Nfreq value1 value2 ... keyword args ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] }, { - "arg": "cutoff", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "group-ID", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "pair_style", + "arg": "ave/correlate", "type": 1, "choices": [] }, { - "arg": "dpd/ext/tstat", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "Tstart", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "Tstop", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "value2", + "type": 2, + "choices": [] + }, + { + "arg": "title3", + "type": 3, + "choices": [ + "type", + "ave", + "start", + "prefactor", + "file", + "overwrite", + "title1", + "title2", + "title3" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* T = temperature (temperature units)\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* cutoff = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer) \n", - "examples": "\n```lmps\npair_style dpd/ext 1.0 2.5 34387\npair_coeff 1 1 25.0 4.5 4.5 0.5 0.5 1.2\npair_coeff 1 2 40.0 4.5 4.5 0.5 0.5 1.2\n\npair_style hybrid/overlay lj/cut 2.5 dpd/ext/tstat 1.0 1.0 2.5 34387\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * 4.5 4.5 0.5 0.5 1.2\n```\n", - "html_filename": "pair_dpd_ext.html", - "short_description": "The style *dpd/ext* computes an extended force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot**, **Junghans**", - "description": "The style *dpd/ext* computes an extended force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot**, **Junghans**.\n\nStyle *dpd/ext/tstat* invokes an extended DPD thermostat on pairwise\ninteractions, equivalent to the non-conservative portion of the extended\nDPD force field. To use *dpd/ext/tstat* as a thermostat for another pair\nstyle, use the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command to\ncompute both the desired pair interaction and the thermostat for each\npair of particles.\n\nFor the style *dpd/ext*, the force on atom I due to atom J is given as\na sum of 3 terms\n\\[\\begin{align*} \n \\mathbf{f} = & f^C + f^D + f^R \\qquad \\qquad r < r_c \\\\\n f^C = & A_{ij} w(r) \\hat{\\mathbf{r}}_{ij} \\\\\n f^D = & - \\gamma_{\\parallel} w_{\\parallel}^2(r) (\\hat{\\mathbf{r}}_{ij} \\cdot \\mathbf{v}_{ij}) \\hat{\\mathbf{r}}_{ij} - \\gamma_{\\perp} w_{\\perp}^2 (r) ( \\mathbf{I} - \\hat{\\mathbf{r}}_{ij} \\hat{\\mathbf{r}}_{ij}^{\\rm T} ) \\mathbf{v}_{ij} \\\\\n f^R = & \\sigma_{\\parallel} w_{\\parallel}(r) \\frac{\\alpha}{\\sqrt{\\Delta t}} \\hat{\\mathbf{r}}_{ij} + \\sigma_{\\perp} w_{\\perp} (r) ( \\mathbf{I} - \\hat{\\mathbf{r}}_{ij} \\hat{\\mathbf{r}}_{ij}^{\\rm T} ) \\frac{\\mathbf{\\xi}_{ij}}{\\sqrt{\\Delta t}}\\\\\n w(r) = & 1 - r/r_c \\\\ \\end{align*} \\]\nwhere \\(\\mathbf{f}^C\\) is a conservative force, \\(\\mathbf{f}^D\\)\nis a dissipative force, and \\(\\mathbf{f}^R\\) is a random\nforce. \\(A_{ij}\\) is the maximum repulsion between the two atoms,\n\\(\\hat{\\mathbf{r}}_{ij}\\) is a unit vector in the direction\n\\(\\mathbf{r}_i - \\mathbf{r}_j\\), \\(\\mathbf{v}_{ij} =\n\\mathbf{v}_i - \\mathbf{v}_j\\) is the vector difference in velocities of\nthe two atoms, \\(\\alpha\\) and \\(\\mathbf{\\xi}_{ij}\\) are Gaussian\nrandom numbers with zero mean and unit variance, \\(\\Delta t\\) is the\ntimestep, \\(w (r) = 1 - r / r_c\\) is a weight function for the\nconservative interactions that varies between 0 and 1, \\(r_c\\) is\nthe corresponding cutoff, \\(w_{\\alpha} ( r ) = ( 1 - r / \\bar{r}_c\n)^{s_{\\alpha}}\\), \\(\\alpha \\equiv ( \\parallel, \\perp )\\), are weight\nfunctions with coefficients \\(s_\\alpha\\) that vary between 0 and 1,\n\\(\\bar{r}_c\\) is the corresponding cutoff, \\(\\mathbf{I}\\) is the\nunit matrix, \\(\\sigma_{\\alpha} = \\sqrt{2 k_B T \\gamma_{\\alpha}}\\),\nwhere \\(k_B\\) is the Boltzmann constant and \\(T\\) is the\ntemperature in the pair\\_style command.\n\nFor the style *dpd/ext/tstat*, the force on atom I due to atom J is\nthe same as the above equation, except that the conservative\n\\(\\mathbf{f}^C\\) term is dropped. Also, during the run, T is set\neach timestep to a ramped value from Tstart to Tstop.\n\nFor the style *dpd/ext*, the pairwise energy associated with style\n*dpd/ext* is only due to the conservative force term\n\\(\\mathbf{f}^C\\), and is shifted to be zero at the cutoff distance\n\\(r_c\\). The pairwise virial is calculated using all three\nterms. There is no pairwise energy for style *dpd/ext/tstat*, but the\nlast two terms of the formula contribute the virial.\n\nFor the style *dpd/ext/tstat*, the force on atom I due to atom J is the\nsame as the above equation, except that the conservative\n\\(\\mathbf{f}^C\\) term is dropped. Also, during the run, T is set\neach timestep to a ramped value from Tstart to Tstop.\n\nFor the style *dpd/ext*, the pairwise energy associated with style\n*dpd/ext* is only due to the conservative force term\n\\(\\mathbf{f}^C\\), and is shifted to be zero at the cutoff distance\n\\(r_c\\). The pairwise virial is calculated using all three\nterms. There is no pairwise energy for style *dpd/ext/tstat*, but the\nlast two terms of the formula contribute the virial.\n\nFor the style *dpd/ext*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above:\n\n* A (force units)\n* \\(\\gamma_{\\parallel}\\) (force/velocity units)\n* \\(\\gamma_{\\perp}\\) (force/velocity units)\n* \\(s_{\\parallel}\\) (unitless)\n* \\(s_{\\perp}\\) (unitless)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used. Note that \\(\\sigma\\)'s are set equal to\n\\(\\sqrt{2 k_B T \\gamma}\\), where \\(T\\) is the temperature set by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command so it does not need to be\nspecified.\n\nFor the style *dpd/ext/tstat*, the coefficients defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command are:\n\n* \\(\\gamma_{\\parallel}\\) (force/velocity units)\n* \\(\\gamma_{\\perp}\\) (force/velocity units)\n* \\(s_{\\parallel}\\) (unitless)\n* \\(s_{\\perp}\\) (unitless)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are modeling DPD polymer chains, you may want to use the\n > [pair_style srp ](https://docs.lammps.org/pair_srp.html) command in conjunction with these pair\n > styles. It is a soft segmental repulsive potential (SRP) that can\n > prevent DPD polymer chains from crossing each other. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The virial calculation for pressure when using these pair styles\n > includes all the components of force listed above, including the\n > random force. Since the random force depends on random numbers,\n > everything that changes the order of atoms in the neighbor list\n > (e.g. different number of MPI ranks or a different neighbor list\n > skin distance) will also change the sequence in which the random\n > numbers are applied and thus the individual forces and therefore\n > also the virial/pressure. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For more consistent time integration and force computation you may\n > consider using [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) instead of [fix > nve ](https://docs.lammps.org/fix_nve.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n\n**Mixing, shift, table, tail correction, restart, rRESPA info** :\n\nThe style *dpd/ext* does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy due to the conservative \\(\\mathbf{f}^C\\)\nterm is already shifted to be zero at the cutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthe style *dpd/ext*.\n\nThe style *dpd/ext* does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to\nenergy and pressure.\n\nThe pair styles can only be used via the pair keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, and *outer* keywords.\n\nThe style *dpd/ext/tstat* can ramp its target temperature over multiple\nruns, using the start and stop keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\n----------\n\n**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Junghans)** Junghans, Praprotnik and Kremer, Soft Matter 4, 156, 1119-1128 (2008). \n ", - "restrictions": "These styles are part of the DPD-BASIC package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent for style *dpd/ext* simulations since particles move rapidly\nand can overlap by large amounts. If this setting yields a non-zero\nnumber of \\say{dangerous} reneighborings (printed at the end of a\nsimulation), you should experiment with forcing reneighboring more often\nand see if system energies/trajectories change.\n\nThe pair styles require to use the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThe pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", - "related": "[pair_style dpd ](https://docs.lammps.org/pair_dpd.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[pair_style srp ](https://docs.lammps.org/pair_srp.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html).\n\n**Default:** none\n\n----------\n\n.. _Groot:\n\n**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997).\n\n.. _Junghans:\n\n**(Junghans)** Junghans, Praprotnik and Kremer, Soft Matter 4, 156, 1119-1128 (2008).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/correlate = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of correlation time windows to accumulate\n* Nfreq = calculate time window averages every this many timesteps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = type or ave or start or prefactor or file or overwrite or title1 or title2 or title3 \n *        type arg = auto or upper or lower or auto/upper or auto/lower or full \n         auto = correlate each value with itself \n         upper = correlate each value with each succeeding value \n         lower = correlate each value with each preceding value \n         auto/upper = auto + upper \n         auto/lower = auto + lower \n         full = correlate each value with every other value, including itself = auto + upper + lower \n *        ave args = one or running \n         one = zero the correlation accumulation every Nfreq steps \n         running = accumulate correlations continuously \n *        start args = Nstart \n         Nstart = start accumulating correlations on this timestep \n *        prefactor args = value \n         value = prefactor to scale all the correlation data by \n *        file arg = filename \n         filename = name of file to output correlation data to \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file \n", + "examples": "\n```lmps\nfix 1 all ave/correlate 5 100 1000 c_myTemp file temp.correlate\nfix 1 all ave/correlate 1 50 10000 &\nc_thermo_press[1] c_thermo_press[2] c_thermo_press[3] &\ntype upper ave running title1 \"My correlation data\"\nfix 1 all ave/correlate 1 50 10000 c_thermo_press[*]\n```\n", + "html_filename": "fix_ave_correlate.html", + "short_description": "Use one or more global scalar values as inputs every few timesteps,\ncalculate time correlations between them at varying time intervals,\nand average the correlation data over longer timescales", + "description": "Use one or more global scalar values as inputs every few timesteps,\ncalculate time correlations between them at varying time intervals,\nand average the correlation data over longer timescales. The resulting\ncorrelation values can be time integrated by\n[variables ](https://docs.lammps.org/variable.html) or used by other\n[output commands ](https://docs.lammps.org/Howto_output.html) such as\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html), and can also be written to a file.\nSee the [fix ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html) command for an\nalternate method for computing correlation functions efficiently over\nvery long time windows.\n\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity. If\nyou wish to spatial- or time-average or histogram per-atom quantities\nfrom a compute, fix, or variable, then see the\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), or\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) commands. If you wish to convert a\nper-atom quantity into a single global value, see the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe input values must be all scalars. What kinds of\ncorrelations between input values are calculated is determined by the\n*type* keyword as discussed below.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce global quantities are those which\ndo not have the word *atom* in their style name. Only a few\n[fixes ](https://docs.lammps.org/fix.html) produce global quantities. See the doc pages for\nindividual fixes for info on which ones produce such values.\n[Variables ](https://docs.lammps.org/variable.html) of style *equal* and *vector* are the only\nones that can be used with this fix. Variables of style *atom* cannot\nbe used, since they produce per-atom values.\n\n----------\n\nFor input values from a compute or fix or variable , the bracketed\nindex I can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector, then an\nasterisk with no numeric values means all indices from 1 to \\(N\\). A\nleading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive).\nA middle asterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector had been listed one by one. For example, the following two fix\nave/correlate commands are equivalent, since the [compute pressure](https://docs.lammps.org/compute_pressure.html) command creates a global vector with six values:\n\n```lmps\ncompute myPress all pressure NULL\nfix 1 all ave/correlate 1 50 10000 c_myPress[*]\nfix 1 all ave/correlate 1 50 10000 &\nc_myPress[1] c_myPress[2] c_myPress[3] &\nc_myPress[4] c_myPress[5] c_myPress[6]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what timesteps the input values will be used to calculate\ncorrelation data. The input values are sampled every \\(N_\\text{every}\\)\ntime steps. The correlation data for the preceding samples is computed on\ntime steps that are a multiple of \\(N_\\text{freq}\\)\\ . Consider a set of\nsamples from some initial time up to an output timestep. The initial time\ncould be the beginning of the simulation or the last output time; see the *ave*\nkeyword for options. For the set of samples, the correlation value\n\\(C_{ij}\\) is calculated as:\n\\[\n C_{ij}(\\Delta t) = \\left\\langle V_i(t) V_j(t+\\Delta t)\\right\\rangle,\\]\nwhich is the correlation value between input values \\(V_i\\) and\n\\(V_j\\), separated by time \\(\\Delta t\\). Note that the second value\n\\(V_j\\) in the pair is always the one sampled at the later time. The\naverage is an average over every pair of samples in the set that are separated\nby time \\(\\Delta t\\). The maximum \\(\\Delta t\\) used is of size\n\\((N_\\text{repeat} - 1) N_\\text{every}\\)\\ .\nThus the correlation between a pair of input values yields\n\\(N_\\text{repeat}\\) correlation data:\n\\[\n C_{ij}(0), C_{ij}(N_\\text{every}), C_{ij}(2N_\\text{every}), \\dotsc,\n C_{ij}\\bigl((N_\\text{repeat}-1) N_\\text{every}\\bigr)\\]\nFor example, if \\(N_\\text{every}=5\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on time steps\n\\(0, 5, 10, 15,\\dotsc,100\\) will be used to compute the final averages\non time step 100. Six averages will be computed: \\(C_{ij}(0)\\),\n\\(C_{ij}(5)\\), \\(C_{ij}(10)\\), \\(C_{ij}(15)\\), \\(C_{ij}(20)\\),\nand \\(C_{ij}(25)\\). \\(C_{ij}(10)\\) on time step 100 will\nbe the average of 19 samples, namely \\(V_i(0) V_j(10)\\),\n\\(V_i(5) V_j(15)\\), \\(V_i(10) V_j(20)\\),\n\\(V_i(15) V_j(25), \\dotsc,\\)\n\\(V_i(85) V_j(95)\\), and \\(V_i(90) V_j(100)\\).\n\n\\(N_\\text{freq}\\) must be a multiple of \\(N_\\text{every}\\);\n\\(N_\\text{every}\\) and \\(N_\\text{repeat}\\) must be non-zero.\nAlso, if the *ave* keyword is set to *one* which is the default, then\n\\(N_\\text{freq} \\ge (N_\\text{repeat} -1) N_\\text{every}\\) is required.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the compute is used. If a\nbracketed term is appended, the \\(I^\\text{th}\\) element of the global\nvector calculated by the compute is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector which\ncan then be accessed by fix ave/correlate. It can also be a compute defined\nnot in your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the fix is used. If a\nbracketed term is appended, the \\(I^\\text{th}\\) element of the global\nvector calculated by the fix is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with \\(N_\\text{every}\\), else an error will\nresult. Users can also write code for their own fix styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has been\npreviously defined in the input script. Only equal-style or vector-style\nvariables can be referenced; the latter requires a bracketed term to specify\nthe \\(I^\\text{th}\\) element of the vector calculated by the variable.\nSee the [variable ](https://docs.lammps.org/variable.html) command for details. Note that variables of\nstyle *equal* or *vector* define a formula which can reference individual atom\nproperties or thermodynamic keywords, or they can invoke other computes, fixes,\nor variables when they are evaluated, so this is a very general means of\nspecifying quantities to time correlate.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nThe *type* keyword determines which pairs of input values are\ncorrelated with each other. For \\(N\\) input values \\(V_i\\),\nwith \\(i \\in \\{1,\\dotsc,N\\}\\), let the number of pairs be\n\\(N_\\text{pair}\\). Note that the second value in the\npair, \\(V_i(t) V_j(t+\\Delta t)\\), is always the one sampled at the later\ntime.\n\n* If *type* is set to *auto* then each input value is correlated with\n itself (i.e., \\(C_{ii} = V_i^2\\) for \\(i \\in \\{1,\\dotsc,N\\}\\),\n so \\(N_\\text{pair} = N\\)).\n* If *type* is set to *upper* then each input value is correlated with every\n succeeding value (i.e., \\(C_{ij} = V_i V_j\\) for \\(i < j\\), so\n \\(N_\\text{pair} = N (N-1)/2\\)).\n* If *type* is set to *lower* then each input value is correlated with every\n preceding value (i.e., \\(C_{ij} = V_i V_j\\) for \\(i > j\\), so\n \\(N_\\text{pair} = N(N-1)/2\\)).\n* If *type* is set to *auto/upper* then each input value is correlated\n with itself and every succeeding value (i.e., \\(C_{ij} = V_i V_j\\)\n for \\(i \\ge j\\), so \\(N_\\text{pair} = N(N+1)/2\\)).\n* If *type* is set to *auto/lower* then each input value is correlated\n with itself and every preceding value (i.e., \\(C_{ij} = V_i V_j\\)\n for \\(i \\le j\\), so \\(N_\\text{pair} = N(N+1)/2\\)).\n* If *type* is set to *full* then each input value is correlated with\n itself and every other value (i.e., \\(C_{ij} = V_i V_j\\) for\n \\(\\{i,j\\} = \\{1,N\\}\\), so \\(N_\\text{pair} = N^2\\)).\n\nThe *ave* keyword determines what happens to the accumulation of correlation\nsamples every \\(N_\\text{freq}\\) timesteps. If the *ave* setting is *one*,\nthen the accumulation is restarted or zeroed every \\(N_\\text{freq}\\)\ntimesteps. Thus the outputs on successive \\(N_\\text{freq}\\) timesteps are\nessentially independent of each other. The exception is that the\n\\(C_{ij}(0) = V_i(t) V_j(t)\\) value at a time step \\(t,\\) where\n\\(t\\) is a multiple of \\(N_\\text{freq}\\), contributes to the\ncorrelation output both at time \\(t\\) and at time \\(t+N_\\text{freq}\\).\n\nIf the *ave* setting is *running*, then the accumulation is never zeroed.\nThus the output of correlation data at any timestep is the average over samples\naccumulated every \\(N_\\text{every}\\) steps since the fix was defined.\nIt can only be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nThe *start* keyword specifies what time step the accumulation of\ncorrelation samples will begin on. The default is step 0. Setting it\nto a larger value can avoid adding non-equilibrated data to the\ncorrelation averages.\n\nThe *prefactor* keyword specifies a constant which will be used as a multiplier\non the correlation data after it is averaged. It is effectively a scale factor\non \\(V_i V_j\\), which can be used to account for the size of the time\nwindow or other unit conversions.\n\nThe *file* keyword allows a filename to be specified. Every\n\\(N_\\text{freq}\\) steps, an array of correlation data is written to the\nfile. The number of rows is \\(N_\\text{repeat}\\), as described above.\nThe number of columns is \\(N_\\text{pair}+2\\), also as described above.\nThus the file ends up to be a series of these array sections.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *title1*, *title2*, and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output file,\nassuming the *file* keyword was used. LAMMPS uses default values for each of\nthese, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Time-correlated data for fix ID\n# TimeStep Number-of-time-windows\n# Index TimeDelta Ncount valueI\\*valueJ valueI\\*valueJ ...\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the two values that are printed at the first of each section\nof output. In the third line the value pairs are replaced with the\nappropriate fields from the fix ave/correlate command.\n\n----------\n\nLet \\(S_{ij}\\) be a set of time correlation data for input values\n\\(I\\) and \\(J\\), namely the \\(N_\\text{repeat}\\) values:\n\\[\n S_{ij} = C_{ij}(0), C_{ij}(N_\\text{every}), C_{ij}(2N_\\text{every}),\n \\dotsc, C_{ijI}\\bigl((N_\\text{repeat}-1) N_\\text{every}\\bigr)\\]\nAs explained below, these data are output as one column of a global\narray, which is effectively the correlation matrix.\n\nThe *trap* function defined for [equal-style variables ](https://docs.lammps.org/variable.html)\ncan be used to perform a time integration of this vector of data,\nusing a trapezoidal rule. This is useful for calculating various\nquantities which can be derived from time correlation data. If a\nnormalization factor is needed for the time integration, it can be\nincluded in the variable formula or via the *prefactor* keyword.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The values can only be\naccessed on timesteps that are multiples of \\(N_\\text{freq}\\) since that is\nwhen averaging is performed. The global array has # of rows\n\\(N_\\text{repeat}\\) and # of columns \\(N_\\text{pair}+2\\). The first\ncolumn has the time \\(\\Delta t\\) (in time steps) between the pairs of input\nvalues used to calculate the correlation, as described above. The second\ncolumn has the number of samples contributing to the correlation average, as\ndescribed above. The remaining Npair columns are for \\(I,J\\) pairs of the\n\\(N\\) input values, as determined by the *type* keyword, as described\nabove.\n\n* For *type* = *auto*, the \\(N_\\text{pair} = N\\) columns are ordered:\n \\(C_{11}, C_{22}, \\dotsc, C_{NN}\\)\n* For *type* = *upper*, the \\(N_\\text{pair} = N(N-1)/2\\) columns are\n ordered: \\(C_{12}, C_{13}, \\dotsc, C_{1N}, C_{23}, \\dotsc, C_{2N},\n C_{34}, \\dotsc, C_{N-1,N}\\)\n* For *type* = *lower*, the \\(N_\\text{pair} = N(N-1)/2\\) columns are\n ordered: \\(C_{21}, C_{31}, C_{32}, C_{41}, C_{42}, C_{43I}, \\dotsc,\n C_{N1}, C_{N2}, \\dotsc, C_{N,N-1}\\)\n* For *type* = *auto/upper*, the \\(N_\\text{pair} = N(N+1)/2\\) columns are\n ordered: \\(C_{11}, C_{12}, C_{13}, \\dotsc, C_{1N}, C_{22}, C_{23},\n \\dotsc, C_{2N}, C_{33}, C_{34}, \\dotsc, C_{N-1,N}, C_{NN}\\)\n* For *type* = *auto/lower*, the \\(N_\\text{pair} = N(N+1)/2\\) columns are\n ordered: \\(C_{11}, C_{21}, C_{22}, C_{31}, C_{32}, C_{33}, C_{41},\n \\dotsc, C_{44}, C_{N1}, C_{N2}, \\dotsc, C_{N,N-1}, C_{NN}\\)\n* For *type* = *full*, the \\(N_\\text{pair} = N^2\\) columns are ordered:\n \\(C_{11}, C_{12}, \\dotsc, C_{1N}, C_{21}, C_{22}, \\dotsc, C_{2N},\n C_{31}, \\dotsc, C_{3N}, \\dotsc, C_{N1}, \\dotsc, C_{N,N-1}, C_{NN}\\)\n\nThe array values calculated by this fix are treated as extensive. If\nyou need to divide them by the number of atoms, you must do this in a\nlater processing step (e.g., when using them in a [variable ](https://docs.lammps.org/variable.html)).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html),\n[compute ](https://docs.lammps.org/compute.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html), [variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "pair_style ufm", - "pair_style ufm/gpu", - "pair_style ufm/omp", - "pair_style ufm/opt" + "pair_style lj/expand", + "pair_style lj/expand/gpu", + "pair_style lj/expand/kk", + "pair_style lj/expand/omp", + "pair_style lj/expand/coul/long", + "pair_style lj/expand/coul/long/gpu", + "pair_style lj/expand/coul/long/kk" ], "syntax": [ - "pair_style ufm cutoff" + "pair_style lj/expand cutoff" ], "args": [ [ @@ -251,13 +292,13 @@ export const command_docs = [ "choices": [] }, { - "arg": "ufm", + "arg": "lj/expand", "type": 3, "choices": [ - "ufm", - "ufm/gpu", - "ufm/omp", - "ufm/opt" + "lj/expand", + "lj/expand/gpu", + "lj/expand/kk", + "lj/expand/omp" ] }, { @@ -267,59 +308,65 @@ export const command_docs = [ } ] ], - "parameters": "* cutoff = global cutoff for ufm interactions (distance units) \n", - "examples": "\n```lmps\npair_style ufm 4.0\npair_coeff 1 1 100.0 1.0 2.5\npair_coeff * * 100.0 1.0\n\npair_style ufm 4.0\npair_coeff * * 10.0 1.0\nvariable prefactor equal ramp(10,100)\nfix 1 all adapt 1 pair ufm epsilon * * v_prefactor\n```\n", - "html_filename": "pair_ufm.html", - "short_description": "Style *ufm* computes pairwise interactions using the Uhlenbeck-Ford model (UFM) potential **PL2** which is given by\n\\[\\begin{align*} \n E & = -\\varepsilon\\, \\ln{\\left[1-\\exp{\\left(-r^{2}/\\sigma^{2}\\right)}\\right]} \\qquad r < r_c \\\\\n \\varepsilon & = p\\,k_B\\,T \\end{align*} \\]\nwhere \\(r_c\\) is the cutoff, \\(\\sigma\\) is a distance-scale and\n\\(\\epsilon\\) is an energy-scale, i.e., a product of Boltzmann constant\n\\(k_B\\), temperature \\(T\\) and the Uhlenbeck-Ford p-parameter which\nis responsible\nto control the softness of the interactions **PL1**", - "description": "Style *ufm* computes pairwise interactions using the Uhlenbeck-Ford model (UFM) potential **PL2** which is given by\n\\[\\begin{align*} \n E & = -\\varepsilon\\, \\ln{\\left[1-\\exp{\\left(-r^{2}/\\sigma^{2}\\right)}\\right]} \\qquad r < r_c \\\\\n \\varepsilon & = p\\,k_B\\,T \\end{align*} \\]\nwhere \\(r_c\\) is the cutoff, \\(\\sigma\\) is a distance-scale and\n\\(\\epsilon\\) is an energy-scale, i.e., a product of Boltzmann constant\n\\(k_B\\), temperature \\(T\\) and the Uhlenbeck-Ford p-parameter which\nis responsible\nto control the softness of the interactions **PL1**.\nThis model is useful as a reference system for fluid-phase free-energy calculations **PL2**.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global *ufm*\ncutoff is used.\n\nThe [fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to vary epsilon and sigma for this pair style over the course of a simulation, in which case\npair_coeff settings for epsilon and sigma must still be specified, but will be\noverridden. For example these commands will vary the prefactor epsilon for\nall pairwise interactions from 10.0 at the beginning to 100.0 at the end\nof a run:\n\n```lmps\nvariable prefactor equal ramp(10,100)\nfix 1 all adapt 1 pair ufm epsilon * * v_prefactor\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The thermodynamic integration procedure can be performed with this\n > potential using [fix adapt ](https://docs.lammps.org/fix_adapt.html). This command will\n > rescale the force on each atom by varying a scale variable, which\n > always starts with value 1.0. The syntax is the same described above,\n > however, changing epsilon to scale. A detailed explanation of how to\n > use this command and perform nonequilibrium thermodynamic integration\n > in LAMMPS is given in the paper by **Freitas2**. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients and cutoff\ndistance for this pair style can be mixed. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail are not relevant for this\npair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to energy and pressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(PL2)** Paula Leite , Freitas, Azevedo, and de Koning, J Chem Phys, 126,\n044509 (2016). \n \n**(PL1)** Paula Leite, Santos-Florez, and de Koning, Phys Rev E, 96,\n32115 (2017). \n \n**(Freitas2)** Freitas, Asta, and de Koning, Computational Materials Science, 112, 333 (2016). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" + "parameters": "* cutoff = global cutoff for lj/expand interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/expand 2.5\npair_coeff * * 1.0 1.0 0.5\npair_coeff 1 1 1.0 1.0 -0.2 2.0\n\npair_style lj/expand/coul/long 2.5\npair_style lj/expand/coul/long 2.5 4.0\npair_coeff * * 1.0 1.0 0.5\npair_coeff 1 1 1.0 1.0 -0.2 3.0\n```\n", + "html_filename": "pair_lj_expand.html", + "short_description": "Style *lj/expand* computes a LJ interaction with a distance shifted by\ndelta which can be useful when particles are of different sizes, since\nit is different that using different sigma values in a standard LJ\nformula:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the \\(\\Delta\\)\ndistance", + "description": "Style *lj/expand* computes a LJ interaction with a distance shifted by\ndelta which can be useful when particles are of different sizes, since\nit is different that using different sigma values in a standard LJ\nformula:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the \\(\\Delta\\)\ndistance. I.e. the actual force cutoff is the sum of \\(r_c +\n\\Delta\\).\n\nFor all of the *lj/expand* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described\nbelow:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\Delta\\) (distance units)\n* cutoff (distance units)\n\nThe \\(\\Delta\\) values can be positive or negative. The last\ncoefficient is optional. If not specified, the global LJ cutoff is\nused.\n\nFor *lj/expand/coul/long* only the LJ cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, and shift\ncoefficients and cutoff distance for this pair style can be mixed.\nShift is always mixed via an *arithmetic* rule. The other\ncoefficients are mixed according to the pair_modify mix value. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute smd/tlsph/stress" + "fix_modify AtC boundary type" ], "syntax": [ - "compute ID group-ID smd/tlsph/stress" + "fix_modify boundary type " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "boundary", + "type": 1, "choices": [] }, { - "arg": "smd/tlsph/stress", + "arg": "type", "type": 1, "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/stress = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/stress\n```\n", - "html_filename": "compute_smd_tlsph_stress.html", - "short_description": "Define a computation that outputs the Cauchy stress tensor for\nparticles interacting via the Total-Lagrangian SPH pair style", - "description": "Define a computation that outputs the Cauchy stress tensor for\nparticles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of pressure.\n\nThe per-particle vector has 7 entries. The first six entries\ncorrespond to the xx, yy, zz, xy, xz and yz components of the\nsymmetric Cauchy stress tensor. The seventh entry is the second\ninvariant of the stress tensor, i.e., the von Mises equivalent stress.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", - "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html), [cmopute smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary type = name of the AtC sub-command\n* atom-type-id = type id for atoms that represent a fictitious boundary internal to the FE mesh \n", + "examples": "\n```lmps\nfix_modify AtC boundary type ghost_atoms\n```\n", + "html_filename": "atc_boundary_type.html", + "short_description": "Command to define the atoms that represent the fictitious boundary\ninternal to the FE mesh", + "description": "Command to define the atoms that represent the fictitious boundary\ninternal to the FE mesh. For fully overlapped MD/FE domains with\nperiodic boundary conditions no boundary atoms should be defined.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix gld" + "fix acks2/reaxff", + "fix acks2/reaxff/kk" ], "syntax": [ - "fix ID group-ID gld Tstart Tstop N_k seed series c_1 tau_1 ... c_N_k tau_N_k keyword values ..." + "fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args" ], "args": [ [ @@ -339,86 +386,64 @@ export const command_docs = [ "choices": [] }, { - "arg": "gld", - "type": 1, - "choices": [] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", - "type": 2, - "choices": [] - }, - { - "arg": "N_k", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] - }, - { - "arg": "series", - "type": 2, - "choices": [] + "arg": "acks2/reaxff", + "type": 3, + "choices": [ + "acks2/reaxff", + "acks2/reaxff/kk" + ] }, { - "arg": "c_1", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "tau_1", + "arg": "cutlo", "type": 2, "choices": [] }, { - "arg": "c_N_k", + "arg": "cuthi", "type": 2, "choices": [] }, { - "arg": "tau_N_k", + "arg": "tolerance", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "params", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gld = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* N_k = number of terms in the Prony series representation of the memory kernel\n* seed = random number seed to use for white noise (positive integer)\n* series = pprony is presently the only available option\n* c_k = the weight of the kth term in the Prony series (mass per time units)\n* tau_k = the time constant of the kth term in the Prony series (time units)\n* zero or more keyword/value pairs may be appended \n *      keyword = frozen or zero \n       frozen value = no or yes \n       no = initialize extended variables using values drawn from equilibrium distribution at Tstart \n       yes = initialize extended variables to zero (i.e., from equilibrium distribution at zero temperature) \n       zero value = no or yes \n       no = do not set total random force to zero \n       yes = set total random force to zero \n", - "examples": "\n```lmps\nfix 1 all gld 1.0 1.0 2 82885 pprony 0.5 1.0 1.0 2.0 frozen yes zero yes\nfix 3 rouse gld 7.355 7.355 4 48823 pprony 107.1 0.02415 186.0 0.04294 428.6 0.09661 1714 0.38643\n```\n", - "html_filename": "fix_gld.html", - "short_description": "Applies Generalized Langevin Dynamics to a group of atoms, as\ndescribed in **Baczewski**", - "description": "Applies Generalized Langevin Dynamics to a group of atoms, as\ndescribed in **Baczewski**. This is intended to model the\neffect of an implicit solvent with a temporally non-local dissipative\nforce and a colored Gaussian random force, consistent with the\nFluctuation-Dissipation Theorem. The functional form of the memory\nkernel associated with the temporally non-local force is constrained\nto be a Prony series.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >While this fix bears many similarities to [fix langevin ](https://docs.lammps.org/fix_langevin.html), it has one significant\n > difference. Namely, [fix gld ](https://docs.lammps.org/fix_gld.html) performs time integration,\n > whereas [fix langevin ](https://docs.lammps.org/fix_langevin.html) does NOT. To this end, the\n > specification of another fix to perform time integration, such as [fix nve ](https://docs.lammps.org/fix_nve.html), is NOT necessary. \n > \n\nWith this fix active, the force on the *j* th atom is given as\n\\[\\begin{align*} \n {\\bf F}_{j}(t) = & {\\bf F}^C_j(t)-\\int \\limits_{0}^{t} \\Gamma_j(t-s) {\\bf v}_j(s)~\\text{d}s + {\\bf F}^R_j(t) \\\\\n \\Gamma_j(t-s) = & \\sum \\limits_{k=1}^{N_k} \\frac{c_k}{\\tau_k} e^{-(t-s)/\\tau_k} \\\\\n \\langle{\\bf F}^R_j(t),{\\bf F}^R_j(s)\\rangle = & \\text{k$_\\text{B}$T} ~\\Gamma_j(t-s) \\end{align*} \\]\nHere, the first term is representative of all conservative (pairwise,\nbonded, etc) forces external to this fix, the second is the temporally\nnon-local dissipative force given as a Prony series, and the third is\nthe colored Gaussian random force.\n\nThe Prony series form of the memory kernel is chosen to enable an\nextended variable formalism, with a number of exemplary mathematical\nfeatures discussed in **Baczewski**. In particular, \\(3N_k\\)\nextended variables are added to each atom, which effect the action of\nthe memory kernel without having to explicitly evaluate the integral\nover time in the second term of the force. This also has the benefit\nof requiring the generation of uncorrelated random forces, rather than\ncorrelated random forces as specified in the third term of the force.\n\nPresently, the Prony series coefficients are limited to being greater\nthan or equal to zero, and the time constants are limited to being\ngreater than zero. To this end, the value of series MUST be set to\n*pprony*, for now. Future updates will allow for negative coefficients\nand other representations of the memory kernel. It is with these\nupdates in mind that the series option was included.\n\nThe units of the Prony series coefficients are chosen to be mass per\ntime to ensure that the numerical integration scheme stably approaches\nthe Newtonian and Langevin limits. Details of these limits, and the\nassociated numerical concerns are discussed in\n**Baczewski**.\n\nThe desired temperature at each timestep is ramped from *Tstart* to\n*Tstop* over the course of the next run.\n\nThe random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random\nnumbers. Thus the dynamics of the system will not be identical on two\nruns on different numbers of processors.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe keyword *frozen* can be used to specify how the extended variables\nassociated with the GLD memory kernel are initialized. Specifying no\n(the default), the initial values are drawn at random from an\nequilibrium distribution at *Tstart*, consistent with the\nFluctuation-Dissipation Theorem. Specifying yes, initializes the\nextended variables to zero.\n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat. Because the random forces on different atoms are\nindependent, they do not sum exactly to zero. As a result, this fix\napplies a small random force to the entire system, and the\ncenter-of-mass of the system undergoes a slow random walk. If the\nkeyword *zero* is set to *yes*, the total random force is set exactly\nto zero by subtracting off an equal part of it from each atom in the\ngroup. As a result, the center-of-mass of a system with zero initial\nmomentum will not drift over time.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random\nnumber generator is not saved in restart files, this means you cannot\ndo \"exact\" restarts with this fix, where the simulation continues on\nthe same as if no restart had taken place. However, in a statistical\nsense, a restarted simulation should produce the same behavior.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Baczewski)** A.D. Baczewski and S.D. Bond, J. Chem. Phys. 139, 044107 (2013). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html),\n[pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* acks2/reaxff = style name of this fix command\n* Nevery = perform ACKS2 every this many steps\n* cutlo,cuthi = lo and hi cutoff for Taper radius\n* tolerance = precision to which charges will be equilibrated\n* params = reaxff or a filename\n* one or more keywords or keyword/value pairs may be appended \n *      keyword = maxiter \n       maxiter N = limit the number of iterations to N \n", + "examples": "\n```lmps\nfix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 reaxff\nfix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2 maxiter 500\n```\n", + "html_filename": "fix_acks2_reaxff.html", + "short_description": "Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge\nequilibration method as described in **Verstraelen**", + "description": "Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge\nequilibration method as described in **Verstraelen**.\nACKS2 impedes unphysical long-range charge transfer sometimes seen with\nQEq (e.g., for dissociation of molecules), at increased computational\ncost. It is typically used in conjunction with the ReaxFF force field\nmodel as implemented in the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)\ncommand, but it can be used with any potential in LAMMPS, so long as it\ndefines and uses charges on each atom. For more technical details about\nthe charge equilibration performed by fix acks2/reaxff, see the\n**O'Hearn** paper.\n\nThe ACKS2 method minimizes the electrostatic energy of the system by\nadjusting the partial charge on individual atoms based on interactions\nwith their neighbors. It requires some parameters for each atom type.\nIf the *params* setting above is the word \"reaxff\", then these are\nextracted from the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command and\nthe ReaxFF force field file it reads in. If a file name is specified\nfor *params*, then the parameters are taken from the specified file\nand the file must contain one line for each atom type. The latter\nform must be used when performing QeQ with a non-ReaxFF potential.\nThe lines should be formatted as follows:\n\n```\nbond_softness\nitype chi eta gamma bcut\n```\nwhere the first line is the global parameter *bond_softness*. The\nremaining 1 to Ntypes lines include *itype*, the atom type from 1 to\nNtypes, *chi*, the electronegativity in eV, *eta*, the self-Coulomb\npotential in eV, *gamma*, the valence orbital exponent, and *bcut*, the\nbond cutoff distance. Note that these 4 quantities are also in the\nReaxFF potential file, except that eta is defined here as twice the eta\nvalue in the ReaxFF file. Note that unlike the rest of LAMMPS, the units\nof this fix are hard-coded to be \\(\\mathring{\\textrm{A}}\\), eV, and\nelectronic charge.\n\nThe optional *maxiter* keyword allows changing the max number\nof iterations in the linear solver. The default value is 200.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). This fix computes a global scalar (the number of\niterations) for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Verstraelen)** Verstraelen, Ayers, Speybroeck, Waroquier, J. Chem. Phys. 138, 074108 (2013). \n \n**(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1--C22 (2020). \n ", + "restrictions": "This fix is part of the REAXFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix does not correctly handle interactions involving multiple\nperiodic images of the same atom. Hence, it should not be used for\nperiodic cell dimensions less than \\(10~\\mathring{\\textrm{A}}\\).\n\nThis fix may be used in combination with [fix efield ](https://docs.lammps.org/fix_efield.html)\nand will apply the external electric field during charge equilibration,\nbut there may be only one fix efield instance used, it may only use a\nconstant electric field, and the electric field vector may only have\ncomponents in non-periodic directions.\n", + "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html)\n" }, { "command": [ - "compute hma" + "fix gcmc" ], "syntax": [ - "compute ID group-ID hma temp-ID keyword ..." + "fix ID group-ID gcmc N X M type seed T mu displace keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -433,119 +458,76 @@ export const command_docs = [ "choices": [] }, { - "arg": "hma", + "arg": "gcmc", "type": 1, "choices": [] }, { - "arg": "temp-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "cv", - "type": 3, - "choices": [ - "anharmonic", - "u", - "p", - "cv" - ] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* hma = style name of this compute command\n* temp-ID = ID of fix that specifies the set temperature during canonical simulation\n* one or more keywords or keyword/argument pairs must be appended\n* keyword = anharmonic or u or p or cv \n *      anharmonic = compute will return anharmonic property values \n *      u = compute will return potential energy \n *      p value = Pharm = compute will return pressure \n       Pharm = difference between the harmonic pressure and lattice pressure \n       as described below \n *      cv = compute will return the heat capacity \n", - "examples": "\n```lmps\ncompute 2 all hma 1 u\ncompute 2 all hma 1 anharmonic u p 0.9\ncompute 2 all hma 1 u cv\n```\n", - "html_filename": "compute_hma.html", - "short_description": "Define a computation that calculates the properties of a solid (potential\nenergy, pressure or heat capacity), using the harmonically-mapped averaging\n(HMA) method", - "description": "Define a computation that calculates the properties of a solid (potential\nenergy, pressure or heat capacity), using the harmonically-mapped averaging\n(HMA) method.\nThis command yields much higher precision than the equivalent compute commands\n([compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html), etc.)\ncommands during a canonical simulation of an atomic crystal. Specifically,\nnear melting HMA can yield averages of a given precision an order of magnitude\nfaster than conventional methods, and this only improves as the temperatures is\nlowered. This is particularly important for evaluating the free energy by\nthermodynamic integration, where the low-temperature contributions are the\ngreatest source of statistical uncertainty. Moreover, HMA has other\nadvantages, including smaller potential-truncation effects, finite-size\neffects, smaller timestep inaccuracy, faster equilibration and shorter\ndecorrelation time.\n\nHMA should not be used if atoms are expected to diffuse. It is also\nrestricted to simulations in the NVT ensemble. While this compute may\nbe used with any potential in LAMMPS, it will provide inaccurate results\nfor potentials that do not go to 0 at the truncation distance;\n[pair_style lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html) and Ewald\nsummation should work fine, while [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\nwill perform poorly unless the potential is shifted (via\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift) or the cutoff is large.\nFurthermore, computation of the heat capacity with this compute is\nrestricted to those that implement the *single_hessian* method in Pair.\nImplementing *single_hessian* in additional pair styles is simple.\nPlease contact Andrew Schultz (ajs42 at buffalo.edu) and David Kofke\n(kofke at buffalo.edu) if your desired pair style does not have this\nmethod. This is the list of pair styles that currently implement\n*single_hessian*:\n\n* [pair_style lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html)\n\nIn this method, the analytically known harmonic behavior of a crystal is removed from the traditional ensemble\naverages, which leads to an accurate and precise measurement of the anharmonic contributions without contamination\nby noise produced by the already-known harmonic behavior.\nA detailed description of this method can be found in (**hma-Moustafa**). The potential energy is computed by the formula:\n\\[\n \\left< U\\right>_\\text{HMA} = \\frac{d}{2} (N-1) k_B T + \\left< U + \\frac{1}{2} \\vec F\\cdot\\Delta \\vec r \\right>\\]\nwhere \\(N\\) is the number of atoms in the system, \\(k_B\\) is Boltzmann's\nconstant, \\(T\\) is the temperature, \\(d\\) is the dimensionality of the\nsystem (2 or 3 for 2d/3d), \\(\\vec F\\cdot\\Delta\\vec r\\) is the sum of dot\nproducts of the atomic force vectors and displacement (from lattice sites)\nvectors, and \\(U\\) is the sum of pair, bond, angle, dihedral, improper,\nkspace (long-range), and fix energies.\n\nThe pressure is computed by the formula:\n\\[\n \\left< P\\right>_{HMA} = \\Delta \\hat P + \\left< P_\\text{vir}\n + \\frac{\\beta \\Delta \\hat P - \\rho}{d(N-1)} \\vec F\\cdot\\Delta \\vec r \\right>\\]\nwhere \\(\\rho\\) is the number density of the system, \\(\\Delta \\hat P\\)\nis the difference between the harmonic and lattice pressure,\n\\(P_\\text{vir}\\) is the virial pressure computed as the sum of pair, bond,\nangle, dihedral, improper, kspace (long-range), and fix contributions to the\nforce on each atom, and \\(k_B=1/k_B T\\). Although the method will work for\nany value of \\(\\Delta \\hat P\\)\nspecified (use pressure [units ](https://docs.lammps.org/units.html)), the precision of the resultant\npressure is sensitive to \\(\\Delta \\hat P\\); the precision tends to be\nbest when \\(\\Delta \\hat P\\) is the actual the difference between the\nlattice pressure and harmonic pressure.\n\\[\n \\left_\\text{HMA} = \\frac{d}{2} (N-1) k_B\n + \\frac{1}{k_B T^2} \\left( \\left\n - \\left^2 \\right) + \\frac{1}{4 T}\n \\left<\\vec F\\cdot\\Delta\\vec r + \\Delta r \\cdot\\Phi\\cdot \\Delta\\vec r\\right>\\]\nwhere \\(\\Phi\\) is the Hessian matrix. The compute hma command\ncomputes the full expression for \\(C_V\\) except for the\n\\(\\left^2\\) in the variance term, which can be obtained\nby passing the *u* keyword; you must add this extra contribution to the\n\\(C_V\\) value reported by this compute. The variance term can cause\nsignificant round-off error when computing \\(C_V\\). To address this, the\n*anharmonic* keyword can be passed and/or the output format can be specified\nwith more digits.\n\n```lmps\nthermo_modify format float '%22.15e'\n```\nThe *anharmonic* keyword will instruct the compute to return anharmonic\nproperties rather than the full properties, which include lattice, harmonic\nand anharmonic contributions.\nWhen using this keyword, the compute must be first active (it must be included\nvia a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command) while the atoms are\nstill at their lattice sites (before equilibration).\n\nThe temp-ID specified with compute hma command should be same as the fix-ID of\nthe Nose--Hoover ([fix nvt ](https://docs.lammps.org/fix_nh.html)) or\nBerendsen ([fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)) thermostat used for\nthe simulation. While using this command, the Langevin thermostat\n([fix langevin ](https://docs.lammps.org/fix_langevin.html))\nshould be avoided as its extra forces interfere with the HMA implementation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Compute hma command should be used right after the energy minimization, when the atoms are at their lattice sites.\n > The simulation should not be started before this command has been used in the input script. \n > \n\nThe following example illustrates the placement of this command in the input script:\n\n```lmps\nmin_style cg\nminimize 1e-35 1e-15 50000 500000\ncompute 1 all hma thermostatid u\nfix thermostatid all nvt temp 600.0 600.0 100.0\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Compute hma should be used when the atoms of the solid do not diffuse. Diffusion will reduce the precision in the potential energy computation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be specified if a fix is to contribute potential energy to this command. \n > \n\nAn example input script that uses this compute is included in\nexamples/PACKAGES/hma/ along with corresponding LAMMPS output showing that the HMA\nproperties fluctuate less than the corresponding conventional properties.\n\n #### Output info\n\nThis compute calculates a global vector that includes the n properties\nrequested as arguments to the command (the potential energy, pressure and/or heat\ncapacity). The elements of the vector can be accessed by indices 1--n by any\ncommand that uses global vector values as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector values calculated by this compute are \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n\n**(hma-Moustafa)** Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, *Very fast averaging of thermal properties of crystals by molecular simulation*,\n[Phys. Rev. E [92], 043303 (2015)](https://link.aps.org/doi/10.1103/PhysRevE.92.043303) \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is enabled only\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nUsage restricted to canonical (NVT) ensemble simulation only.\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n\n[dynamical matrix ](https://docs.lammps.org/dynamical_matrix.html) provides a finite difference\nformulation of the Hessian provided by Pair's single_hessian, which is used by\nthis compute.\n" -}, -{ - "command": [ - "compute sph/rho/atom" - ], - "syntax": [ - "compute ID group-ID sph/rho/atom" - ], - "args": [ - [ + "arg": "X", + "type": 2, + "choices": [] + }, { - "arg": "compute", - "type": 1, + "arg": "M", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "type", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "sph/rho/atom", - "type": 1, + "arg": "T", + "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/rho/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all sph/rho/atom\n```\n", - "html_filename": "compute_sph_rho_atom.html", - "short_description": "Define a computation that calculates the per-atom SPH density for each\natom in a group, i.e", - "description": "Define a computation that calculates the per-atom SPH density for each\natom in a group, i.e. a Smooth-Particle Hydrodynamics density.\n\nThe SPH density is the mass density of an SPH particle, calculated by\nkernel function interpolation using \"pair style sph/rhosum\".\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the SPH density will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in mass/volume [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" -}, -{ - "command": [ - "compute erotate/asphere" - ], - "syntax": [ - "compute ID group-ID erotate/asphere" - ], - "args": [ - [ + }, { - "arg": "compute", - "type": 1, + "arg": "mu", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "displace", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "erotate/asphere", - "type": 1, + "arg": "values", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/asphere = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all erotate/asphere\n```\n", - "html_filename": "compute_erotate_asphere.html", - "short_description": "Define a computation that calculates the rotational kinetic energy of\na group of aspherical particles", - "description": "Define a computation that calculates the rotational kinetic energy of\na group of aspherical particles. The aspherical particles can be\nellipsoids, or line segments, or triangles. See the\n[atom_style ](https://docs.lammps.org/atom_style.html) and [read_data ](https://docs.lammps.org/read_data.html) commands\nfor descriptions of these options.\n\nFor all 3 types of particles, the rotational kinetic energy is\ncomputed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is the inertia tensor\nfor the aspherical particle and \\(\\omega\\) is its angular velocity, which\nis computed from its angular momentum if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), ellipsoidal particles are\n > treated as ellipsoids, not ellipses, meaning their moments of inertia\n > will be the same as in 3d. \n > \n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute requires that ellipsoidal particles atoms store a shape\nand quaternion orientation and angular momentum as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n\nThis compute requires that line segment particles atoms store a length\nand orientation and angular velocity as defined by the [atom_style line ](https://docs.lammps.org/atom_style.html) command.\n\nThis compute requires that triangular particles atoms store a size and\nshape and quaternion orientation and angular momentum as defined by\nthe [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be of finite size. They cannot be point\nparticles.\n", - "related": "none\n\n\n[compute erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gcmc = style name of this fix command\n* N = invoke this fix every N steps\n* X = average number of GCMC exchanges to attempt every N steps\n* M = average number of MC moves to attempt every N steps\n* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used)\n* seed = random # seed (positive integer)\n* T = temperature of the ideal gas reservoir (temperature units)\n* mu = chemical potential of the ideal gas reservoir (energy units)\n* displace = maximum Monte Carlo translation distance (length units)\n* zero or more keyword/value pairs may be appended to args \n *      keyword = mol, region, maxangle, pressure, fugacity_coeff, full_energy, charge, group, grouptype, intra_energy, tfac_insert, or overlap_cutoff \n       mol value = template-ID \n       template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n       mcmoves values = Patomtrans Pmoltrans Pmolrotate \n       Patomtrans = proportion of atom translation MC moves \n       Pmoltrans = proportion of molecule translation MC moves \n       Pmolrotate = proportion of molecule rotation MC moves \n       rigid value = fix-ID \n       fix-ID = ID of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n       shake value = fix-ID \n       fix-ID = ID of [fix shake ](https://docs.lammps.org/fix_shake.html) command \n       region value = region-ID \n       region-ID = ID of region where GCMC exchanges and MC moves are allowed \n       maxangle value = maximum molecular rotation angle (degrees) \n       pressure value = pressure of the gas reservoir (pressure units) \n       fugacity_coeff value = fugacity coefficient of the gas reservoir (unitless) \n       full_energy = compute the entire system energy when performing GCMC exchanges and MC moves \n       charge value = charge of inserted atoms (charge units) \n       group value = group-ID \n       group-ID = group-ID for inserted atoms (string) \n       grouptype values = type group-ID \n       type = atom type (1-Ntypes or type label) \n       group-ID = group-ID for inserted atoms (string) \n       intra_energy value = intramolecular energy (energy units) \n       tfac_insert value = scale up/down temperature of inserted atoms (unitless) \n       overlap_cutoff value = maximum pair distance for overlap rejection (distance units) \n       max value = Maximum number of molecules allowed in the system \n       min value = Minimum number of molecules allowed in the system \n", + "examples": "\n```lmps\nfix 2 gas gcmc 10 1000 1000 2 29494 298.0 -0.5 0.01\nfix 3 water gcmc 10 100 100 0 3456543 3.0 -2.5 0.1 mol my_one_water maxangle 180 full_energy\nfix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk\n\nlabelmap atom 1 Li\nfix 2 ion gcmc 10 1000 1000 Li 29494 298.0 -0.5 0.01\n```\n", + "html_filename": "fix_gcmc.html", + "short_description": "This fix performs grand canonical Monte Carlo (GCMC) exchanges of atoms or\nmolecules with an imaginary ideal gas reservoir at the specified T and\nchemical potential (mu) as discussed in **Frenkel2**", + "description": "This fix performs grand canonical Monte Carlo (GCMC) exchanges of atoms or\nmolecules with an imaginary ideal gas reservoir at the specified T and\nchemical potential (mu) as discussed in **Frenkel2**. It\nalso attempts Monte Carlo (MC) moves (translations and molecule rotations)\nwithin the simulation cell or region. If used with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand, simulations in the grand canonical ensemble (muVT, constant\nchemical potential, constant volume, and constant temperature) can be\nperformed. Specific uses include computing isotherms in microporous\nmaterials, or computing vapor-liquid coexistence curves.\n\nEvery N timesteps the fix attempts both GCMC exchanges (insertions or\ndeletions) and MC moves of gas atoms or molecules. On those timesteps, the\naverage number of attempted GCMC exchanges is X, while the average number\nof attempted MC moves is M. For GCMC exchanges of either molecular or\natomic gasses, these exchanges can be either deletions or insertions, with\nequal probability.\n\nThe possible choices for MC moves are translation of an atom, translation\nof a molecule, and rotation of a molecule. The relative amounts of each are\ndetermined by the optional *mcmoves* keyword (see below). The default\nbehavior is as follows. If the *mol* keyword is used, only molecule\ntranslations and molecule rotations are performed with equal probability.\nConversely, if the *mol* keyword is not used, only atom translations are\nperformed. M should typically be chosen to be approximately equal to the\nexpected number of gas atoms or molecules of the given type within the\nsimulation cell or region, which will result in roughly one MC move per\natom or molecule per MC cycle.\n\nAll inserted particles are always added to two groups: the default group\n\"all\" and the fix group specified in the fix command. In addition,\nparticles are also added to any groups specified by the *group* and\n*grouptype* keywords. If inserted particles are individual atoms, they are\nassigned the atom type given by the type argument. If they are molecules,\nthe type argument has no effect and must be set to zero. Instead, the type\nof each atom in the inserted molecule is specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care should be taken to apply fix gcmc only to\n > a group that contains only those atoms and molecules\n > that you wish to manipulate using Monte Carlo.\n > Hence it is generally not a good idea to specify\n > the default group \"all\" in the fix command, although it is allowed. \n > \n\nThis fix cannot be used to perform GCMC insertions of gas atoms or\nmolecules other than the exchanged type, but GCMC deletions,\nand MC translations, and rotations can be performed on any atom/molecule in\nthe fix group. All atoms in the simulation cell can be moved using\nregular time integration translations, e.g. via [fix nvt ](https://docs.lammps.org/fix_nh.html),\nresulting in a hybrid GCMC+MD simulation. A smaller-than-usual\ntimestep size may be needed when running such a hybrid simulation,\nespecially if the inserted molecules are not well equilibrated.\n\nThis command may optionally use the *region* keyword to define an\nexchange and move volume. The specified region must have been\npreviously defined with a [region ](https://docs.lammps.org/region.html) command. It must be\ndefined with side = *in* . Insertion attempts occur only within the\nspecified region. For non-rectangular regions, random trial points are\ngenerated within the rectangular bounding box until a point is found\nthat lies inside the region. If no valid point is generated after 1000\ntrials, no insertion is performed, but it is counted as an attempted\ninsertion. Move and deletion attempt candidates are selected from gas\natoms or molecules within the region. If there are no candidates, no\nmove or deletion is performed, but it is counted as an attempt move or\ndeletion. If an attempted move places the atom or molecule\ncenter-of-mass outside the specified region, a new attempted move is\ngenerated. This process is repeated until the atom or molecule\ncenter-of-mass is inside the specified region.\n\nIf used with [fix nvt ](https://docs.lammps.org/fix_nh.html), the temperature of the imaginary\nreservoir, T, should be set to be equivalent to the target temperature\nused in fix nvt. Otherwise, the imaginary reservoir will not be in\nthermal equilibrium with the simulation cell. Also, it is important that\nthe temperature used by *fix nvt* is dynamically updated, which can be\nachieved as follows:\n\n```lmps\ncompute mdtemp mdatoms temp\ncompute_modify mdtemp dynamic/dof yes\nfix mdnvt mdatoms nvt temp 300.0 300.0 10.0\nfix_modify mdnvt temp mdtemp\n```\nNote that neighbor lists are re-built every timestep that this fix is\ninvoked, so you should not set N to be too small. However, periodic\nrebuilds are necessary in order to avoid dangerous rebuilds and missed\ninteractions. Specifically, avoid performing so many MC translations\nper timestep that atoms can move beyond the neighbor list skin\ndistance. See the [neighbor ](https://docs.lammps.org/neighbor.html) command for details.\n\nWhen an atom or molecule is to be inserted, its coordinates are chosen\nat a random position within the current simulation cell or region, and\nnew atom velocities are randomly chosen from the specified temperature\ndistribution given by T. The effective temperature for new atom\nvelocities can be increased or decreased using the optional keyword\n*tfac_insert* (see below). Relative coordinates for atoms in a\nmolecule are taken from the template molecule provided by the\nuser. The center of mass of the molecule is placed at the insertion\npoint. The orientation of the molecule is chosen at random by rotating\nabout this point.\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the\n[molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that defines the\nmolecule. The coordinates, atom types, charges, etc., as well as any\nbonding and special neighbor information for the molecule can\nbe specified in the molecule file. See the [molecule ](https://docs.lammps.org/molecule.html)\ncommand for details. The only settings required to be in this file\nare the coordinates and types of atoms in the molecule.\n\nWhen not using the *mol* keyword, you should ensure you do not delete\natoms that are bonded to other atoms, or LAMMPS will soon generate an\nerror when it tries to find bonded neighbors. LAMMPS will warn you if\nany of the atoms eligible for deletion have a non-zero molecule ID,\nbut does not check for this at the time of deletion.\n\nIf you wish to insert molecules using the *mol* keyword that will be\ntreated as rigid bodies, use the *rigid* keyword, specifying as its\nvalue the ID of a separate [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nwhich also appears in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nOptionally, users may specify the relative amounts of different MC\nmoves using the *mcmoves* keyword. The values *Patomtrans*,\n*Pmoltrans*, *Pmolrotate* specify the average proportion of\natom translations, molecule translations, and molecule rotations,\nrespectively. The values must be non-negative integers or real\nnumbers, with at least one non-zero value. For example, (10,30,0)\nwould result in 25% of the MC moves being atomic translations, 75%\nmolecular translations, and no molecular rotations.\n\nOptionally, users may specify the maximum rotation angle for molecular\nrotations using the *maxangle* keyword and specifying the angle in\ndegrees. Rotations are performed by generating a random point on the\nunit sphere and a random rotation angle on the range\n[0,maxangle). The molecule is then rotated by that angle about an\naxis passing through the molecule center of mass. The axis is parallel\nto the unit vector defined by the point on the unit sphere. The same\nprocedure is used for randomly rotating molecules when they are\ninserted, except that the maximum angle is 360 degrees.\n\nNote that fix gcmc does not use configurational bias MC or any other\nkind of sampling of intramolecular degrees of freedom. Inserted\nmolecules can have different orientations, but they will all have the\nsame intramolecular configuration, which was specified in the molecule\ncommand input.\n\nFor atomic gasses, inserted atoms have the specified atom type, but\ndeleted atoms are any atoms that have been inserted or that already\nbelong to the fix group. For molecular gasses, exchanged\nmolecules use the same atom types as in the template molecule supplied\nby the user. In both cases, exchanged atoms/molecules are assigned to\ntwo groups: the default group \"all\" and the fix group\n(which can also be \"all\").\n\nThe chemical potential is a user-specified input parameter defined\nas:\n\\[\n \\mu = \\mu^{id} + \\mu^{ex}\\]\nThe second term mu_ex is the excess chemical potential due to\nenergetic interactions and is formally zero for the fictitious gas\nreservoir but is non-zero for interacting systems. So, while the\nchemical potential of the reservoir and the simulation cell are equal,\nmu_ex is not, and as a result, the densities of the two are generally\nquite different. The first term mu_id is the ideal gas contribution\nto the chemical potential. mu_id can be related to the density or\npressure of the fictitious gas reservoir by:\n\\[\\begin{align*} \n \\mu^{id} = & k T \\ln{\\rho \\Lambda^3} \\\\\n = & k T \\ln{\\frac{\\phi P \\Lambda^3}{k_B T}} \\end{align*} \\]\nwhere \\(k_B\\) is the Boltzmann constant, \\(T\\) is the user-specified\ntemperature, \\(\\rho\\) is the number density, *P* is the pressure,\nand \\(\\phi\\) is the fugacity coefficient. The constant\n\\(\\Lambda\\) is required for dimensional consistency. For all unit\nstyles except *lj* it is defined as the thermal de Broglie wavelength\n\\[\n \\Lambda = \\sqrt{ \\frac{h^2}{2 \\pi m k_B T}}\\]\nwhere *h* is Planck's constant, and *m* is the mass of the exchanged atom\nor molecule. For unit style *lj*, \\(\\Lambda\\) is simply set to\nunity. Note that prior to March 2017, \\(\\Lambda\\) for unit style *lj*\nwas calculated using the above formula with *h* set to the rather specific\nvalue of 0.18292026. Chemical potential under the old definition can\nbe converted to an equivalent value under the new definition by\nsubtracting \\(3 k T \\ln(\\Lambda_{old})\\).\n\nAs an alternative to specifying mu directly, the ideal gas reservoir\ncan be defined by its pressure *P* using the *pressure* keyword, in\nwhich case the user-specified chemical potential is ignored. The user\nmay also specify the fugacity coefficient \\(\\phi\\) using the\n*fugacity_coeff* keyword, which defaults to unity.\n\nThe *full_energy* option means that the fix calculates the total\npotential energy of the entire simulated system, instead of just\nthe energy of the part that is changed. The total system\nenergy before and after the proposed GCMC exchange or MC move\nis then used in the\nMetropolis criterion to determine whether or not to accept the\nproposed change. By default, this option is off,\nin which case only\npartial energies are computed to determine the energy difference\ndue to the proposed change.\n\nThe *full_energy* option is needed for systems with complicated\npotential energy calculations, including the following:\n\n* long-range electrostatics (kspace)\n* many-body pair styles\n* hybrid pair styles\n* eam pair styles\n* tail corrections\n* need to include potential energy contributions from other fixes\n\nIn these cases, LAMMPS will automatically apply the *full_energy*\nkeyword and issue a warning message.\n\nWhen the *mol* keyword is used, the *full_energy* option also includes\nthe intramolecular energy of inserted and deleted molecules, whereas\nthis energy is not included when *full_energy* is not used. If this\nis not desired, the *intra_energy* keyword can be used to define an\namount of energy that is subtracted from the final energy when a\nmolecule is inserted, and subtracted from the initial energy when a molecule\nis deleted. For molecules that have a non-zero intramolecular energy,\nthis will ensure roughly the same behavior whether or not the\n*full_energy* option is used.\n\nInserted atoms and molecules are assigned random velocities based on\nthe specified temperature \\(T\\). Because the relative velocity of all\natoms in the molecule is zero, this may result in inserted molecules\nthat are systematically too cold. In addition, the intramolecular\npotential energy of the inserted molecule may cause the kinetic energy\nof the molecule to quickly increase or decrease after insertion. The\n*tfac_insert* keyword allows the user to counteract these effects by\nchanging the temperature used to assign velocities to inserted atoms\nand molecules by a constant factor. For a particular application, some\nexperimentation may be required to find a value of *tfac_insert* that\nresults in inserted molecules that equilibrate quickly to the correct\ntemperature.\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [langevin ](https://docs.lammps.org/fix_langevin.html),\n[restrain ](https://docs.lammps.org/fix_restrain.html), [temp/berendsen](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when performing\nGCMC exchange and MC moves), you MUST enable the [fix_modify](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The doc pages for\nindividual [fix ](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\nUse the *charge* option to insert atoms with a user-specified point\ncharge. Note that doing so will cause the system to become non-neutral.\nLAMMPS issues a warning when using long-range electrostatics (kspace)\nwith non-neutral systems. See the [compute group/group](https://docs.lammps.org/compute_group_group.html) documentation for more details about simulating\nnon-neutral systems with kspace on.\n\nUse of this fix typically will cause the number of atoms to fluctuate,\ntherefore, you will want to use the [compute_modify dynamic/dof](https://docs.lammps.org/compute_modify.html) command to ensure that the current number of atoms is\nused as a normalizing factor each time temperature is computed. A simple\nexample of this is:\n\n```lmps\ncompute_modify thermo_temp dynamic/dof yes\n```\nA more complicated example is listed earlier on this page\nin the context of NVT dynamics.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the density of the cell is initially very small or zero, and\n > increases to a much larger density after a period of equilibration,\n > then certain quantities that are only calculated once at the start\n > (kspace parameters) may no longer be accurate. The solution is to\n > start a new simulation after the equilibrium density has been\n > reached. \n > \n\nWith some pair_styles, such as [Buckingham ](https://docs.lammps.org/pair_buck.html),\n[Born-Mayer-Huggins ](https://docs.lammps.org/pair_born.html) and [ReaxFF ](https://docs.lammps.org/pair_reaxff.html),\ntwo atoms placed close to each other may have an arbitrary large,\nnegative potential energy due to the functional form of the potential.\nWhile these unphysical configurations are inaccessible to typical\ndynamical trajectories, they can be generated by Monte Carlo moves. The\n*overlap_cutoff* keyword suppresses these moves by effectively assigning\nan infinite positive energy to all new configurations that place any\npair of atoms closer than the specified overlap cutoff distance.\n\nThe *max* and *min* keywords allow for the restriction of the number of\natoms in the simulation. They automatically reject all insertion or\ndeletion moves that would take the system beyond the set boundaries.\nShould the system already be beyond the boundary, only moves that bring\nthe system closer to the bounds may be accepted.\n\nThe *group* keyword adds all inserted atoms to the [group ](https://docs.lammps.org/group.html)\nof the group-ID value. The *grouptype* keyword adds all inserted atoms\nof the specified type to the [group ](https://docs.lammps.org/group.html) of the group-ID value.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for MC exchanges, the number of MC\nstep attempts and successes etc. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix.\n\nThis fix computes a global vector of length 8, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n* 1 = translation attempts\n* 2 = translation successes\n* 3 = insertion attempts\n* 4 = insertion successes\n* 5 = deletion attempts\n* 6 = deletion successes\n* 7 = rotation attempts\n* 8 = rotation successes\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Frenkel2)** Frenkel and Smit, Understanding Molecular Simulation,\nAcademic Press, London, 2002. \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is **required**.\n\nOnly usable for 3D simulations.\n\nThis fix can be run in parallel, but aspects of the GCMC part will not\nscale well in parallel. Currently, molecule translations and rotations\nare not supported with more than one MPI process. It is still possible\nto do parallel molecule exchange without translation and rotation moves\nby setting MC moves to zero and/or by using the *mcmoves* keyword with\n*Pmoltrans* = *Pmolrotate* = 0 .\n\n\nWhen using fix gcmc in combination with fix shake or fix rigid, only\nGCMC exchange moves are supported, so the argument *M* must be zero.\n\nWhen using fix gcmc in combination with fix rigid, deletion of the last\nremaining molecule is not allowed for technical reasons, and so the\nmolecule count will never drop below 1, regardless of the specified\nchemical potential.\n\nNote that very lengthy simulations involving insertions/deletions of\nbillions of gas molecules may run out of atom or molecule IDs and\ntrigger an error, so it is better to run multiple shorter-duration\nsimulations. Likewise, very large molecules have not been tested and\nmay turn out to be problematic.\n\nUse of multiple fix gcmc commands in the same input script can be\nproblematic if using a template molecule. The issue is that the\nuser-referenced template molecule in the second fix gcmc command may\nno longer exist since it might have been deleted by the first fix gcmc\ncommand. An existing template molecule will need to be referenced by\nthe user for each subsequent fix gcmc command.\n", + "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html)\n" }, { "command": [ - "pair_style line/lj" + "pair_style coul/shield" ], "syntax": [ - "pair_style line/lj cutoff" + "pair_style coul/shield cutoff tap_flag" ], "args": [ [ @@ -555,7 +537,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "line/lj", + "arg": "coul/shield", "type": 1, "choices": [] }, @@ -563,441 +545,293 @@ export const command_docs = [ "arg": "cutoff", "type": 2, "choices": [] + }, + { + "arg": "tap_flag", + "type": 2, + "choices": [] } ] ], - "parameters": "cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style line/lj 3.0\npair_coeff * * 1.0 1.0 1.0 0.8 1.12\npair_coeff 1 2 1.0 2.0 1.0 1.5 1.12 5.0\npair_coeff 1 2 1.0 0.0 1.0 1.0 2.5\n```\n", - "html_filename": "pair_line_lj.html", - "short_description": "Style *line/lj* treats particles which are line segments as a set of\nsmall spherical particles that tile the line segment length as explained\nbelow", - "description": "Style *line/lj* treats particles which are line segments as a set of\nsmall spherical particles that tile the line segment length as explained\nbelow. Interactions between two line segments, each with N1 and N2\nspherical particles, are calculated as the pairwise sum of N1\\*N2\nLennard-Jones interactions. Interactions between a line segment with N\nspherical particles and a point particle are treated as the pairwise sum\nof N Lennard-Jones interactions. See the [pair_style lj/cut](https://docs.lammps.org/pair_lj.html) page for the definition of Lennard-Jones interactions.\n\nThe set of non-overlapping spherical sub-particles that represent a\nline segment are generated in the following manner. Their size is a\nfunction of the line segment length and the specified sub-particle\nsize for that particle type. If a line segment has a length L and is\nof type I, then the number of spheres N that represent the segment is\ncalculated as N = L/sizeI, rounded up to an integer value. Thus if L\nis not evenly divisible by sizeI, N is incremented to include one\nextra sphere. The centers of the spheres are spaced equally along the\nline segment. Imagine N+1 equally-space points, which include the 2\nend points of the segment. The sphere centers are halfway between\neach pair of points.\n\nThe LJ interaction between 2 spheres on different line segments (or a\nsphere on a line segment and a point particles) is computed with\nsub-particle \\(\\epsilon\\), \\(\\sigma\\), and *cutoff* values that\nare set by the pair_coeff command, as described below. If the distance\nbetween the 2 spheres is greater than the sub-particle cutoff, there is\nno interaction. This means that some pairs of sub-particles on 2 line\nsegments may interact, but others may not.\n\nFor purposes of creating the neighbor list for pairs of interacting\nline segments or lines/point particles, a regular particle-particle\ncutoff is used, as defined by the *cutoff* setting above in the\npair_style command or overridden with an optional argument in the\npair_coeff command for a type pair as discussed below. The distance\nbetween the centers of 2 line segments, or the center of a line\nsegment and a point particle, must be less than this distance (plus\nthe neighbor skin; see the [neighbor ](https://docs.lammps.org/neighbor.html) command), for\nthe pair of particles to be included in the neighbor list.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This means that a too-short value for the *cutoff* setting can\n > exclude a pair of particles from the neighbor list even if pairs of\n > their sub-particle spheres would interact, based on the sub-particle\n > cutoff specified in the pair_coeff command. E.g. sub-particles at the\n > ends of the line segments that are close to each other. Which may not\n > be what you want, since it means the ends of 2 line segments could\n > pass through each other. It is up to you to specify a *cutoff*\n > setting that is consistent with the length of the line segments you\n > are using and the sub-particle cutoff settings. \n > \n\nFor style *line/lj*, the following coefficients must be defined for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* sizeI (distance units)\n* sizeJ (distance units)\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* subcutoff (distance units)\n* cutoff (distance units)\n\nThe *sizeI* and *sizeJ* coefficients are the sub-particle sizes for\nline particles of type I and type J. They are used to define the N\nsub-particles per segment as described above. These coefficients are\nactually stored on a per-type basis. Thus if there are multiple\npair_coeff commands that involve type I, as either the first or\nsecond atom type, you should use consistent values for sizeI or sizeJ\nin all of them. If you do not do this, the last value specified for\nsizeI will apply to all segments of type I. If typeI or typeJ refers\nto point particles, the corresponding sizeI or sizeJ is ignored; it\ncan be set to 0.0.\n\nThe \\(\\epsilon\\), \\(\\sigma\\), and *subcutoff* coefficients are\nused to compute an LJ interactions between a pair of sub-particles on 2\nline segments (of type I and J), or between a sub particle/point\nparticle pair. As discussed above, the *subcutoff* and *cutoff* params\nare different. The latter is only used for building the neighbor list\nwhen the distance between centers of two line segments or one segment\nand a point particle is calculated.\n\nThe *cutoff* coefficient is optional. If not specified, the global\ncutoff is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, coefficients must be specified.\nNo default mixing rules are used.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This style is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be line segments so they participate in\nline/line or line/particle interactions requires the use the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style tri/lj ](https://docs.lammps.org/pair_tri_lj.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style coul/shield 16.0 1\npair_coeff 1 2 0.70\n```\n", + "html_filename": "pair_coul_shield.html", + "short_description": "Style *coul/shield* computes a Coulomb interaction for boron and\nnitrogen atoms located in different layers of hexagonal boron\nnitride", + "description": "Style *coul/shield* computes a Coulomb interaction for boron and\nnitrogen atoms located in different layers of hexagonal boron\nnitride. This potential is designed be used in combination with\nthe pair style [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential is intended for electrostatic interactions between\n > two different layers of hexagonal boron nitride. Therefore, to avoid\n > interaction within the same layers, each layer should have a separate\n > molecule id and is recommended to use the \"full\" atom style, so that\n > charge and molecule ID information is included. \n > \n\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\frac{\\kappa q_i q_j}{\\sqrt[3]{r_{ij}^3+(1/\\lambda_{ij})^3}}\\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere Tap(\\(r_{ij}\\)) is the taper function which provides a continuous cutoff\n(up to third derivative) for inter-atomic separations larger than \\(r_c\\)\n**Leven3**, **Leven4** and **Maaravi1**.\nHere \\(\\lambda\\) is the shielding parameter that\neliminates the short-range singularity of the classical mono-polar\nelectrostatic interaction expression **Maaravi1**.\n\nThe shielding parameter \\(\\lambda\\) (1/distance units) must be defined for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as\nin the example above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\nThe global cutoff (\\(r_c\\)) specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support parameter mixing. Coefficients must\nbe given explicitly for each type of particle pairs.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) *table* option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\n*tail* option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Leven3)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Leven4)** I. Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016). \n \n**(Maaravi1)** T. Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html)\n" }, { "command": [ - "pair_style yukawa/colloid", - "pair_style yukawa/colloid/gpu", - "pair_style yukawa/colloid/kk", - "pair_style yukawa/colloid/omp" + "fix_modify AtC rates" ], "syntax": [ - "pair_style yukawa/colloid kappa cutoff" + "fix_modify rates " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "yukawa/colloid", - "type": 3, - "choices": [ - "yukawa/colloid", - "yukawa/colloid/gpu", - "yukawa/colloid/kk", - "yukawa/colloid/omp" - ] - }, - { - "arg": "kappa", + "arg": "", "type": 2, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* kappa = screening length (inverse distance units)\n* cutoff = global cutoff for colloidal Yukawa interactions (distance units) \n", - "examples": "\n```lmps\npair_style yukawa/colloid 2.0 2.5\npair_coeff 1 1 100.0 2.3\npair_coeff * * 100.0\n```\n", - "html_filename": "pair_yukawa_colloid.html", - "short_description": "Style *yukawa/colloid* computes pairwise interactions with the formula\n\\[\n E = \\frac{A}{\\kappa} e^{- \\kappa (r - (r_i + r_j))} \\qquad r < r_c\\]\nwhere \\(r_i\\) and \\(r_j\\) are the radii of the two particles\nand \\(r_c\\) is the cutoff", - "description": "Style *yukawa/colloid* computes pairwise interactions with the formula\n\\[\n E = \\frac{A}{\\kappa} e^{- \\kappa (r - (r_i + r_j))} \\qquad r < r_c\\]\nwhere \\(r_i\\) and \\(r_j\\) are the radii of the two particles\nand \\(r_c\\) is the cutoff.\n\nIn contrast to [pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html), this functional\nform arises from the Coulombic interaction between two colloid\nparticles, screened due to the presence of an electrolyte, see the\nbook by **Safran** for a derivation in the context of DLVO\ntheory. [Pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html) is a screened Coulombic\npotential between two point-charges and uses no such approximation.\n\nThis potential applies to nearby particle pairs for which the Derjagin\napproximation holds, meaning \\(h << r_i + r_j\\), where *h* is the\nsurface-to-surface separation of the two particles.\n\nWhen used in combination with [pair_style colloid ](https://docs.lammps.org/pair_colloid.html),\nthe two terms become the so-called DLVO potential, which combines\nelectrostatic repulsion and van der Waals attraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy/distance units)\n* cutoff (distance units)\n\nThe prefactor A is determined from the relationship between surface\ncharge and surface potential due to the presence of electrolyte. Note\nthat the A for this potential style has different units than the A\nused in [pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html). For low surface\npotentials, i.e. less than about 25 mV, A can be written as:\n\\[\n A = 2 \\pi R\\varepsilon\\varepsilon_0 \\kappa \\psi^2\\]\nwhere\n\n* *R* = colloid radius (distance units)\n* \\(\\varepsilon_0\\) = permittivity of free space (charge\\^2/energy/distance units)\n* \\(\\varepsilon\\) = relative permittivity of fluid medium (dimensionless)\n* \\(\\kappa\\) = inverse screening length (1/distance units)\n* \\(\\psi\\) = surface potential (energy/charge units)\n\nThe last coefficient is optional. If not specified, the global\nyukawa/colloid cutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is an energy value mixed\nlike a LJ epsilon. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Safran)** Safran, Statistical Thermodynamics of Surfaces, Interfaces,\nAnd Membranes, Westview Press, ISBN: 978-0813340791 (2003). \n ", - "restrictions": "This style is part of the COLLOID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires that atoms be finite-size spheres with a\ndiameter, as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nPer-particle polydispersity is not yet supported by this pair style;\nper-type polydispersity is allowed. This means all particles of the\nsame type must have the same diameter. Each type can have a different\ndiameter.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "angle_style fourier/simple", - "angle_style fourier/simple/omp" - ], - "syntax": [ - "angle_style fourier/simple" - ], - "args": [ - [ - { - "arg": "angle_style", + "arg": "rates", "type": 1, "choices": [] }, { - "arg": "fourier/simple", + "arg": "", "type": 3, "choices": [ - "fourier/simple", - "fourier/simple/omp" + "add", + "delete" ] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style fourier/simple\nangle_coeff 100.0 -1.0 1.0\n```\n", - "html_filename": "angle_fourier_simple.html", - "short_description": "The *fourier/simple* angle style uses the potential\n\\[\n E = K [ 1.0 + c \\cos ( n \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(c\\) (real)\n* \\(n\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", - "description": "The *fourier/simple* angle style uses the potential\n\\[\n E = K [ 1.0 + c \\cos ( n \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(c\\) (real)\n* \\(n\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* rates = name of the AtC sub-command\n* add or delete = select whether to add or delete calculation of rates for the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by [Eshelby]_\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", + "examples": "\n```lmps\nfix_modify AtC rates add temperature velocity stress\nfix_modify AtC rates delete stress\n```\n", + "html_filename": "atc_hardy_rates.html", + "short_description": "Requests calculation and output of rates (time derivatives) of the\nfields from the AtC transfer class", + "description": "Requests calculation and output of rates (time derivatives) of the\nfields from the AtC transfer class. For Eulerian analysis (see\n[fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)) these\nrates are the partial time derivatives of the nodal fields, not the full\n(material) time derivatives.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_gradients.html)\n" }, { "command": [ - "compute saed" + "fix_modify AtC control momentum" ], "syntax": [ - "compute ID group-ID saed lambda type1 type2 ... typeN keyword value ..." + "fix_modify control ", + "fix_modify AtC control momentum none", + "fix_modify AtC control momentum rescale ", + "fix_modify AtC control momentum glc_displacement", + "fix_modify AtC control momentum glc_velocity", + "fix_modify AtC control momentum hoover", + "fix_modify AtC control momentum flux [faceset face_set_id, interpolate]" ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "saed", + "arg": "control", "type": 1, "choices": [] }, { - "arg": "lambda", - "type": 2, - "choices": [] - }, - { - "arg": "type1", - "type": 2, - "choices": [] - }, - { - "arg": "type2", - "type": 2, - "choices": [] - }, - { - "arg": "typeN", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "thermal", + "momentum" + ] }, { - "arg": "echo", + "arg": "", "type": 3, "choices": [ - "Kmax", - "Zone", - "dR_Ewald", - "c", - "manual", - "echo" + "max_iterations", + "tolerance" ] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* saed = style name of this compute command\n* lambda = wavelength of incident radiation (length units)\n* type1 type2 ... typeN = chemical symbol of each atom type (see valid options below)\n* zero or more keyword/value pairs may be appended\n* keyword = Kmax or Zone or dR_Ewald or c or manual or echo \n *        Kmax value = Maximum distance explored from reciprocal space origin \n         (inverse length units) \n *        Zone values = z1 z2 z3 \n         z1,z2,z3 = Zone axis of incident radiation. If z1=z2=z3=0 all \n         reciprocal space will be meshed up to Kmax \n *        dR_Ewald value = Thickness of Ewald sphere slice intercepting \n         reciprocal space (inverse length units) \n *        c values = c1 c2 c3 \n         c1,c2,c3 = parameters to adjust the spacing of the reciprocal \n         lattice nodes in the h, k, and l directions respectively \n *        manual = flag to use manual spacing of reciprocal lattice points \n         based on the values of the c parameters \n *        echo = flag to provide extra output for debugging purposes \n", - "examples": "\n```lmps\ncompute 1 all saed 0.0251 Al O Kmax 1.70 Zone 0 0 1 dR_Ewald 0.01 c 0.5 0.5 0.5\ncompute 2 all saed 0.0251 Ni Kmax 1.70 Zone 0 0 0 c 0.05 0.05 0.05 manual echo\n\nfix 1 all saed/vtk 1 1 1 c_1 file Al2O3_001.saed\nfix 2 all saed/vtk 1 1 1 c_2 file Ni_000.saed\n```\n", - "html_filename": "compute_saed.html", - "short_description": "Define a computation that calculates electron diffraction intensity as\ndescribed in **saed-Coleman** on a mesh of reciprocal lattice nodes\ndefined by the entire simulation domain (or manually) using simulated\nradiation of wavelength lambda", - "description": "Define a computation that calculates electron diffraction intensity as\ndescribed in **saed-Coleman** on a mesh of reciprocal lattice nodes\ndefined by the entire simulation domain (or manually) using simulated\nradiation of wavelength lambda.\n\nThe electron diffraction intensity I at each reciprocal lattice point\nis computed from the structure factor F using the equations:\n\\[\\begin{align*} \n I = & \\frac{F^{*}F}{N} \\\\\n F(\\mathbf{k}) = & \\sum_{j=1}^{N}f_j(\\theta)exp(2\\pi i \\mathbf{k} \\cdot \\mathbf{r}_j) \\end{align*} \\]\nHere, K is the location of the reciprocal lattice node, \\(r_j\\) is the\nposition of each atom, \\(f_j\\) are atomic scattering factors.\n\nDiffraction intensities are calculated on a three-dimensional mesh of\nreciprocal lattice nodes. The mesh spacing is defined either (a) by\nthe entire simulation domain or (b) manually using selected values as\nshown in the 2D diagram below.\n\n ![Image](img/saed_mesh.png) \n\nFor a mesh defined by the simulation domain, a rectilinear grid is\nconstructed with spacing *c* \\*inv(A) along each reciprocal lattice\naxis. Where A are the vectors corresponding to the edges of the\nsimulation cell. If one or two directions has non-periodic boundary\nconditions, then the spacing in these directions is defined from the\naverage of the (inversed) box lengths with periodic boundary conditions.\nMeshes defined by the simulation domain must contain at least one periodic\nboundary.\n\nIf the *manual* flag is included, the mesh of reciprocal lattice nodes\nwill defined using the *c* values for the spacing along each reciprocal\nlattice axis. Note that manual mapping of the reciprocal space mesh is\ngood for comparing diffraction results from multiple simulations; however\nit can reduce the likelihood that Bragg reflections will be satisfied\nunless small spacing parameters (\\(<0.05~\\mathring{\\textrm{A}}^-1\\))\nare implemented. Meshes with manual spacing do not require a periodic\nboundary.\n\nThe limits of the reciprocal lattice mesh are determined by the use of\nthe *Kmax*, *Zone*, and *dR_Ewald* parameters. The rectilinear mesh\ncreated about the origin of reciprocal space is terminated at the\nboundary of a sphere of radius *Kmax* centered at the origin. If\n*Zone* parameters *z1* = *z2* = *z3* = 0 are used, diffraction intensities are\ncomputed throughout the entire spherical volume - note this can\ngreatly increase the cost of computation. Otherwise, *Zone*\nparameters will denote the \\(z1=h\\), \\(z2=k\\), and \\(z3=\\ell\\)\n(in a global sense) zone axis of an intersecting Ewald sphere. Diffraction\nintensities will only be computed at the intersection of the reciprocal lattice\nmesh and a *dR_Ewald* thick surface of the Ewald sphere. See the\nexample 3D intensity data and the intersection of a [010] zone axis\nin the below image.\n\n ![Image](img/saed_ewald_intersect.jpg) \n\nThe atomic scattering factors, fj, accounts for the reduction in\ndiffraction intensity due to Compton scattering. Compute saed uses\nanalytical approximations of the atomic scattering factors that vary\nfor each atom type (type1 type2 ... typeN) and angle of diffraction.\nThe analytic approximation is computed using the formula\n**Brown**:\n\\[\n f_j\\left ( \\frac{sin(\\theta)}{\\lambda} \\right )=\\sum_{i}^{5}\n a_i exp\\left ( -b_i \\frac{sin^{2}(\\theta)}{\\lambda^{2}} \\right )\\]\nCoefficients parameterized by **Fox** are assigned for each\natom type designating the chemical symbol and charge of each atom\ntype. Valid chemical symbols for compute saed are:\n\n | | | | | | | | | | | | | | | | | | | | | \n |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n H | He | Li | Be | B | C | N | O | F | Ne | Na | Mg | Al | Si | P | S | Cl | Ar | K | Ca|\n Sc | Ti | V | Cr | Mn | Fe | Co | Ni | Cu | Zn | Ga | Ge | As | Se | Br | Kr | Rb | Sr | Y | Zr|\n Nb | Mo | Tc | Ru | Rh | Pd | Ag | Cd | In | Sn | Sb | Te | I | Xe | Cs | Ba | La | Ce | Pr | Nd|\n Pm | Sm | Eu | Gd | Tb | Dy | Ho | Er | Tm | Yb | Lu | Hf | Ta | W | Re | Os | Ir | Pt | Au | Hg|\n Tl | Pb | Bi | Po | At | Rn | Fr | Ra | Ac | Th | Pa | U | Np | Pu | Am | Cm | Bk|\n \nIf the *echo* keyword is specified, compute saed will provide extra\nreporting information to the screen.\n\n #### Output info\n\nThis compute calculates a global vector. The length of the vector is\nthe number of reciprocal lattice nodes that are explored by the mesh.\nThe entries of the global vector are the computed diffraction\nintensities as described above.\n\nThe vector can be accessed by any command that uses global values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nAll array values calculated by this compute are \"intensive\".\n\n**(saed-Coleman)** Coleman, Spearot, Capolungo, MSMSE, 21, 055020\n(2013). \n \n**(Brown)** Brown et al. International Tables for Crystallography\nVolume C: Mathematical and Chemical Tables, 554-95 (2004). \n \n**(Fox)** Fox, O'Keefe, Tabbernor, Acta Crystallogr. A, 45, 786-93\n(1989). \n ", - "restrictions": "This compute is part of the DIFFRACTION package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe compute_saed command does not work for triclinic cells.\n", - "related": "[fix saed_vtk ](https://docs.lammps.org/fix_saed_vtk.html), [compute xrd ](https://docs.lammps.org/compute_xrd.html)\n" -}, -{ - "command": [ - "compute temp/deform", - "compute temp/deform/kk" - ], - "syntax": [ - "compute ID group-ID temp/deform" - ], - "args": [ + ], [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "AtC control", + "type": 1, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "momentum", + "type": 1, "choices": [] }, { - "arg": "temp/deform", - "type": 3, - "choices": [ - "temp/deform", - "temp/deform/kk" - ] + "arg": "none", + "type": 1, + "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/deform = style name of this compute command \n", - "examples": "\n```lmps\ncompute myTemp all temp/deform\n```\n", - "html_filename": "compute_temp_deform.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation", - "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation. The size/shape change is\ninduced by use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command. A compute\nof this style is created by the [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html)\ncommand to compute the thermal temperature of atoms for thermostatting\npurposes. A compute of this style can also be used by any command\nthat computes a temperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe deformation fix changes the box size and/or shape over time, so\neach atom in the simulation box can be thought of as having a\n\"streaming\" velocity. For example, if the box is being sheared in *x*,\nrelative to *y*, then atoms at the bottom of the box (low *y*) have a\nsmall *x* velocity, while atoms at the top of the box (high *y*) have a\nlarge *x* velocity. This position-dependent streaming velocity is\nsubtracted from each atom's actual velocity to yield a thermal\nvelocity, which is then used to compute the temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >[Fix deform ](https://docs.lammps.org/fix_deform.html) has an option for remapping either\n > atom coordinates or velocities to the changing simulation box. When\n > using this compute in conjunction with a deforming box, fix deform\n > should NOT remap atom positions, but rather should let atoms respond\n > to the changing box by adjusting their own velocities (or let\n > [fix deform ](https://docs.lammps.org/fix_deform.html) remap the atom velocities; see its remap\n > option). If fix deform does remap atom positions, then they appear to\n > move with the box but their velocity is not changed, and thus they do\n > NOT have the streaming velocity assumed by this compute. LAMMPS will\n > warn you if fix deform is defined and its remap setting is not\n > consistent with this compute. \n > \n\nAfter the streaming velocity has been subtracted from each atom, the\ntemperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\), dim = 2 or 3 is the dimensionality of the\nsimulation, \\(N\\) is the number of atoms in the group, \\(k_B\\)\nis the Boltzmann constant, and \\(T\\) is the temperature. Note that\n\\(v\\) in the kinetic energy formula is the atom's velocity.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the box deformation velocity component by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature calculated by this compute is only accurate if\n > the atoms are indeed moving with a stream velocity profile that\n > matches the box deformation. If not, then the compute will subtract\n > off an incorrect stream velocity, yielding a bogus thermal\n > temperature. You should **not** assume that your atoms are streaming at\n > the same rate the box is deforming. Rather, you should monitor their\n > velocity profiles (e.g., via the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n > command). You can also compare the results of this compute to\n > [compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html), which actually\n > calculates the stream profile before subtracting it. If the two computes do\n > not give roughly the same temperature, then your atoms are not streaming\n > consistent with the box deformation. See the [fix deform ](https://docs.lammps.org/fix_deform.html)\n > command for more details on ways to get atoms to stream consistently with\n > the box deformation. \n > \n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html),\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html),\n[fix deform ](https://docs.lammps.org/fix_deform.html),\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html)\n" -}, -{ - "command": [ - "dihedral_style cosine/squared/restricted" - ], - "syntax": [ - "dihedral_style cosine/squared/restricted" - ], - "args": [ + ], [ { - "arg": "dihedral_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "cosine/squared/restricted", + "arg": "AtC control", "type": 1, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style cosine/squared/restricted\ndihedral_coeff 1 10.0 120\n```\n", - "html_filename": "dihedral_cosine_squared_restricted.html", - "short_description": "\nThe *cosine/squared/restricted* dihedral style uses the potential\n\\[\n E = K [\\cos(\\phi) - \\cos(\\phi_0)]^2 / \\sin^2(\\phi)\\]\n, which is commonly used in the MARTINI force field", - "description": "\nThe *cosine/squared/restricted* dihedral style uses the potential\n\\[\n E = K [\\cos(\\phi) - \\cos(\\phi_0)]^2 / \\sin^2(\\phi)\\]\n, which is commonly used in the MARTINI force field.\n\nSee **restricted-Bul** for a description of the restricted dihedral for the MARTINI force field.\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\phi_0\\) (degrees)\n\n\\(\\phi_0\\) is specified in degrees, but LAMMPS converts it to radians internally.\n\n----------\n\n**(restricted-Bul)** Bulacu, Goga, Zhao, Rossi, Monticelli, Periole, Tieleman, Marrink, J Chem Theory Comput, 9, 3282-3292\n(2013). \n ", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" -}, -{ - "command": [ - "run" - ], - "syntax": [ - "run N keyword values ..." - ], - "args": [ - [ + }, { - "arg": "run", + "arg": "momentum", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "rescale", + "type": 1, "choices": [] }, { - "arg": "every", - "type": 3, - "choices": [ - "upto", - "start", - "stop", - "pre", - "post", - "every" - ] - }, - { - "arg": "values", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* N = # of timesteps\n* zero or more keyword/value pairs may be appended\n* keyword = upto or start or stop or pre or post or every \n *        upto value = none \n *        start value = N1 \n         N1 = timestep at which 1st run started \n *        stop value = N2 \n         N2 = timestep at which last run will end \n *        pre value = no or yes \n *        post value = no or yes \n *        every values = M c1 c2 ... \n         M = break the run into M-timestep segments and invoke one or more commands between each segment \n         c1,c2,...,cN = one or more LAMMPS commands, each enclosed in quotes \n         c1 = NULL means no command will be invoked \n", - "examples": "\n```lmps\nrun 10000\nrun 1000000 upto\nrun 100 start 0 stop 1000\nrun 1000 pre no post yes\nrun 100000 start 0 stop 1000000 every 1000 \"print 'Protein Rg = $r'\"\nrun 100000 every 1000 NULL\n```\n", - "html_filename": "run.html", - "short_description": "Run or continue dynamics for a specified number of timesteps", - "description": "Run or continue dynamics for a specified number of timesteps.\n\nWhen the [run style ](https://docs.lammps.org/run_style.html) is *respa*, N refers to outer\nloop (largest) timesteps.\n\nA value of N = 0 is acceptable; only the thermodynamics of the system\nare computed and printed without taking a timestep.\n\nThe *upto* keyword means to perform a run starting at the current\ntimestep up to the specified timestep. E.g. if the current timestep\nis 10,000 and \"run 100000 upto\" is used, then an additional 90,000\ntimesteps will be run. This can be useful for very long runs on a\nmachine that allocates chunks of time and terminate your job when time\nis exceeded. If you need to restart your script multiple times\n(reading in the last restart file), you can keep restarting your\nscript with the same run command until the simulation finally\ncompletes.\n\nThe *start* or *stop* keywords can be used if multiple runs are being\nperformed and you want a [fix ](https://docs.lammps.org/fix.html) command that changes some\nvalue over time (e.g. temperature) to make the change across the\nentire set of runs and not just a single run. See the page for\nindividual fixes to see which ones can be used with the *start/stop*\nkeywords.\n\nFor example, consider this fix followed by 10 run commands:\n\n```lmps\nfix 1 all nvt 200.0 300.0 1.0\nrun 1000 start 0 stop 10000\nrun 1000 start 0 stop 10000\n...\nrun 1000 start 0 stop 10000\n```\nThe NVT fix ramps the target temperature from 200.0 to 300.0 during a\nrun. If the run commands did not have the start/stop keywords (just\n\"run 1000\"), then the temperature would ramp from 200.0 to 300.0\nduring the 1000 steps of each run. With the start/stop keywords, the\nramping takes place over the 10000 steps of all runs together.\n\nThe *pre* and *post* keywords can be used to streamline the setup,\nclean-up, and associated output to the screen that happens before and\nafter a run. This can be useful if you wish to do many short runs in\nsuccession (e.g. LAMMPS is being called as a library which is doing\nother computations between successive short LAMMPS runs).\n\nBy default (pre and post = yes), LAMMPS creates neighbor lists,\ncomputes forces, and imposes fix constraints before every run. And\nafter every run it gathers and prints timings statistics. If a run is\njust a continuation of a previous run (i.e. no settings are changed),\nthe initial computation is not necessary; the old neighbor list is\nstill valid as are the forces. So if *pre* is specified as \"no\" then\nthe initial setup is skipped, except for printing thermodynamic info.\nNote that if *pre* is set to \"no\" for the very first run LAMMPS\nperforms, then it is overridden, since the initial setup computations\nmust be done.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your input script changes the system between 2 runs, then the\n > initial setup must be performed to ensure the change is recognized by\n > all parts of the code that are affected. Examples are adding a\n > [fix ](https://docs.lammps.org/fix.html) or [dump ](https://docs.lammps.org/dump.html) or [compute ](https://docs.lammps.org/compute.html), changing\n > a [neighbor ](https://docs.lammps.org/neigh_modify.html) list parameter, or writing restart file\n > which can migrate atoms between processors. LAMMPS has no easy way to\n > check if this has happened, but it is an error to use the *pre no*\n > option in this case. \n > \n\nIf *post* is specified as \"no\", the full timing summary is skipped;\nonly a one-line summary timing is printed.\n\nThe *every* keyword provides a means of breaking a LAMMPS run into a\nseries of shorter runs. Optionally, one or more LAMMPS commands (c1,\nc2, ..., cN) will be executed in between the short runs. If used, the\n*every* keyword must be the last keyword, since it has a variable\nnumber of arguments. Each of the trailing arguments is a single\nLAMMPS command, and each command should be enclosed in quotes, so that\nthe entire command will be treated as a single argument. This will\nalso prevent any variables in the command from being evaluated until\nit is executed multiple times during the run. Note that if a command\nitself needs one of its arguments quoted (e.g. the [print ](https://docs.lammps.org/print.html)\ncommand), then you can use a combination of single and double quotes,\nas in the example above or below.\n\nThe *every* keyword is a means to avoid listing a long series of runs\nand interleaving commands in your input script. For example, a\n[print ](https://docs.lammps.org/print.html) command could be invoked or a [fix ](https://docs.lammps.org/fix.html) could\nbe redefined, e.g. to reset a thermostat temperature. Or this could\nbe useful for invoking a command you have added to LAMMPS that wraps\nsome other code (e.g. as a library) to perform a computation\nperiodically during a long LAMMPS run. See the [Modify ](https://docs.lammps.org/Modify.html)\ndoc page for info about how to add new commands to LAMMPS. See the\n[Howto couple ](https://docs.lammps.org/Howto_couple.html) page for ideas about how to\ncouple LAMMPS to other codes.\n\nWith the *every* option, N total steps are simulated, in shorter runs\nof M steps each. After each M-length run, the specified commands are\ninvoked. If only a single command is specified as NULL, then no\ncommand is invoked. Thus these lines:\n\n```lmps\nvariable q equal x[100]\nrun 6000 every 2000 \"print 'Coord = $q'\"\n```\nare the equivalent of:\n\n```lmps\nvariable q equal x[100]\nrun 2000\nprint \"Coord = $q\"\nrun 2000\nprint \"Coord = $q\"\nrun 2000\nprint \"Coord = $q\"\n```\nwhich does 3 runs of 2000 steps and prints the x-coordinate of a\nparticular atom between runs. Note that the variable \"$q\" will\nbe evaluated afresh each time the print command is executed.\n\nNote that by using the line continuation character \"&\", the run every\ncommand can be spread across many lines, though it is still a single\ncommand:\n\n```lmps\nrun 100000 every 1000 &\n\"print 'Minimum value = $a'\" &\n\"print 'Maximum value = $b'\" &\n\"print 'Temp = $c'\" &\n\"print 'Press = $d'\"\n```\nIf the *pre* and *post* options are set to \"no\" when used with the\n*every* keyword, then the first run will do the full setup and the last\nrun will print the full timing summary, but these operations will be\nskipped for intermediate runs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You might wish to specify a command that exits the run by\n > jumping out of the loop, e.g. \n > \n\n\n```lmps\nvariable t equal temp\nrun 10000 every 100 \"if '$t < 300.0' then 'jump SELF afterrun'\"\n```\nHowever, this will not work. The run command simply executes each\ncommand one at a time each time it pauses, then continues the run.\n\nInstead, you should use the [fix halt ](https://docs.lammps.org/fix_halt.html) command, which\nhas additional options for how to exit the run.\n", - "restrictions": "When not using the *upto* keyword, the number of specified timesteps N\nmust fit in a signed 32-bit integer, so you are limited to slightly\nmore than 2 billion steps (2\\^31) in a single run. When using *upto*,\nN can be larger than a signed 32-bit integer, however the difference\nbetween N and the current timestep must still be no larger than\n2\\^31 steps.\n\nHowever, with or without the *upto* keyword, you can perform\nsuccessive runs to run a simulation for any number of steps (ok, up to\n2\\^63 total steps). I.e. the timestep counter within LAMMPS is a\n64-bit signed integer.\n", - "related": "[minimize ](https://docs.lammps.org/minimize.html), [run_style ](https://docs.lammps.org/run_style.html),\n[temper ](https://docs.lammps.org/temper.html), [fix halt ](https://docs.lammps.org/fix_halt.html)\n" -}, -{ - "command": [ - "pair_style lj/cut/dipole/cut", - "pair_style lj/cut/dipole/cut/gpu", - "pair_style lj/cut/dipole/cut/kk", - "pair_style lj/cut/dipole/cut/omp", - "pair_style lj/sf/dipole/sf", - "pair_style lj/sf/dipole/sf/gpu", - "pair_style lj/sf/dipole/sf/omp", - "pair_style lj/cut/dipole/long", - "pair_style lj/cut/dipole/long/gpu", - "pair_style lj/long/dipole/long" - ], - "syntax": [ - "pair_style lj/cut/dipole/cut cutoff (cutoff2)", - "pair_style lj/sf/dipole/sf cutoff (cutoff2)", - "pair_style lj/cut/dipole/long cutoff (cutoff2)", - "pair_style lj/long/dipole/long flag_lj flag_coul cutoff (cutoff2)" - ], - "args": [ + ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "lj/cut/dipole/cut", - "type": 3, - "choices": [ - "lj/cut/dipole/cut", - "lj/cut/dipole/cut/gpu", - "lj/cut/dipole/cut/kk", - "lj/cut/dipole/cut/omp" - ] + "arg": "AtC control", + "type": 1, + "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "momentum", + "type": 1, "choices": [] }, { - "arg": "(cutoff2)", - "type": 2, + "arg": "glc_displacement", + "type": 1, "choices": [] } ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "lj/sf/dipole/sf", - "type": 2, + "arg": "AtC control", + "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "momentum", + "type": 1, "choices": [] }, { - "arg": "(cutoff2)", - "type": 2, + "arg": "glc_velocity", + "type": 1, "choices": [] } ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "lj/cut/dipole/long", - "type": 2, + "arg": "AtC control", + "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "momentum", + "type": 1, "choices": [] }, { - "arg": "(cutoff2)", - "type": 2, + "arg": "hoover", + "type": 1, "choices": [] } ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "lj/long/dipole/long", - "type": 2, + "arg": "AtC control", + "type": 1, "choices": [] }, { - "arg": "off", - "type": 3, - "choices": [ - "long", - "cut", - "off" - ] + "arg": "momentum", + "type": 1, + "choices": [] }, { - "arg": "off", - "type": 3, - "choices": [ - "long", - "off" - ] + "arg": "flux", + "type": 1, + "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "[faceset", + "type": 1, "choices": [] }, { - "arg": "(cutoff2)", - "type": 2, + "arg": "face_set_id,", + "type": 1, + "choices": [] + }, + { + "arg": "interpolate]", + "type": 1, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff LJ (and Coulombic if only 1 arg) (distance units)\n* cutoff2 = global cutoff for Coulombic and dipole (optional) (distance units)\n* flag_lj = long or cut or off \n *        long = use long-range damping on dispersion 1/r\\^6 term \n *        cut = use a cutoff on dispersion 1/r\\^6 term \n *        off = omit disperion 1/r\\^6 term entirely \n* flag_coul = long or off \n *        long = use long-range damping on Coulombic 1/r and point-dipole terms \n *        off = omit Coulombic and point-dipole terms entirely \n", - "examples": "\n```lmps\npair_style lj/cut/dipole/cut 2.5 5.0\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 2.5 4.0\n\npair_style lj/sf/dipole/sf 9.0\npair_coeff * * 1.0 1.0\npair_coeff 2 3 1.0 1.0 2.5 4.0 scale 0.5\npair_coeff 2 3 0.8 1.0 2.5 4.0\n\npair_style lj/cut/dipole/long 2.5 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 3.0\n\npair_style lj/long/dipole/long long long 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0\n\npair_style lj/long/dipole/long cut long 2.5 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 3.0\n```\n", - "html_filename": "pair_dipole.html", - "short_description": "Style *lj/cut/dipole/cut* computes interactions between pairs of\nparticles that each have a charge and/or a point dipole moment", - "description": "Style *lj/cut/dipole/cut* computes interactions between pairs of\nparticles that each have a charge and/or a point dipole moment. In\naddition to the usual Lennard-Jones interaction between the particles\n(Elj) the charge-charge (Eqq), charge-dipole (Eqp), and dipole-dipole\n(Epp) interactions are computed by these formulas for the energy (E),\nforce (F), and torque (T) between particles I and J.\n\\[\\begin{align*} \n E_{LJ} = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E_{qq} = & \\frac{q_i q_j}{r} \\\\\n E_{qp} = & \\frac{q}{r^3} (p \\bullet \\vec{r}) \\\\\n E_{pp} = & \\frac{1}{r^3} (\\vec{p}_i \\bullet \\vec{p}_j) -\n \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{r}) (\\vec{p}_j \\bullet \\vec{r}) \\\\\n & \\\\\n F_{qq} = & \\frac{q_i q_j}{r^3} \\vec{r} \\\\\n F_{qp} = & -\\frac{q}{r^3} \\vec{p} + \\frac{3q}{r^5}\n (\\vec{p} \\bullet \\vec{r}) \\vec{r} \\\\\n F_{pp} = & \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{p}_j) \\vec{r} -\n \\frac{15}{r^7} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\bullet \\vec{r}) \\vec{r} +\n \\frac{3}{r^5} \\left[ (\\vec{p}_j \\bullet \\vec{r}) \\vec{p}_i +\n (\\vec{p}_i \\bullet \\vec{r}) \\vec{p}_j \\right] \\\\\n & \\\\\n T_{pq} = T_{ij} = & \\frac{q_j}{r^3} (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{qp} = T_{ji} = & - \\frac{q_i}{r^3} (\\vec{p}_j \\times \\vec{r}) \\\\\n T_{pp} = T_{ij} = & -\\frac{1}{r^3} (\\vec{p}_i \\times \\vec{p}_j) +\n \\frac{3}{r^5} (\\vec{p}_j \\bullet \\vec{r})\n (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{pp} = T_{ji} = & -\\frac{1}{r^3} (\\vec{p}_j \\times \\vec{p}_i) +\n \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\times \\vec{r}) \\end{align*} \\]\nwhere \\(q_i\\) and \\(q_j\\) are the charges on the two\nparticles, \\(\\vec{p}_i\\) and \\(\\vec{p}_j\\) are the dipole\nmoment vectors of the two particles, r is their separation distance,\nand the vector r = Ri - Rj is the separation vector between the two\nparticles. Note that Eqq and Fqq are simply Coulombic energy and\nforce, Fij = -Fji as symmetric forces, and Tij != -Tji since the\ntorques do not act symmetrically. These formulas are discussed in\n**Allen2** and in **Toukmaji2**.\n\nAlso note, that in the code, all of these terms (except Elj) have a\n\\(C/\\epsilon\\) prefactor, the same as the Coulombic term in the\nLJ + Coulombic pair styles discussed [here ](https://docs.lammps.org/pair_lj.html). C is an\nenergy-conversion constant and \\(\\epsilon\\) is the dielectric constant\nwhich can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command. The\nsame is true of the equations that follow for other dipole pair\nstyles.\n\nStyle *lj/sf/dipole/sf* computes \"shifted-force\" interactions between\npairs of particles that each have a charge and/or a point dipole\nmoment. In general, a shifted-force potential is a (slightly) modified\npotential containing extra terms that make both the energy and its\nderivative go to zero at the cutoff distance; this removes\n(cutoff-related) problems in energy conservation and any numerical\ninstability in the equations of motion **Allen2**. Shifted-force interactions for the Lennard-Jones (E_LJ),\ncharge-charge (Eqq), charge-dipole (Eqp), dipole-charge (Epq) and\ndipole-dipole (Epp) potentials are computed by these formulas for the\nenergy (E), force (F), and torque (T) between particles I and J:\n\\[\\begin{align*} \n E_{LJ} = & 4\\epsilon \\left\\{ \\left[ \\left( \\frac{\\sigma}{r} \\right)^{\\!12} -\n \\left( \\frac{\\sigma}{r} \\right)^{\\!6} \\right] +\n \\left[ 6\\left( \\frac{\\sigma}{r_c} \\right)^{\\!12} -\n 3\\left(\\frac{\\sigma}{r_c}\\right)^{\\!6}\\right]\\left(\\frac{r}{r_c}\\right)^{\\!2}\n - 7\\left( \\frac{\\sigma}{r_c} \\right)^{\\!12} +\n 4\\left( \\frac{\\sigma}{r_c} \\right)^{\\!6}\\right\\} \\\\\n E_{qq} = & \\frac{q_i q_j}{r}\\left(1-\\frac{r}{r_c}\\right)^{\\!2} \\\\\n E_{pq} = & E_{ji} = -\\frac{q}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}\\bullet\\vec{r}) \\\\\n E_{qp} = & E_{ij} = \\frac{q}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}\\bullet\\vec{r}) \\\\\n E_{pp} = & \\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\\left[\\frac{1}{r^3}\n (\\vec{p}_i \\bullet \\vec{p}_j) - \\frac{3}{r^5}\n (\\vec{p}_i \\bullet \\vec{r}) (\\vec{p}_j \\bullet \\vec{r})\\right] \\\\\n & \\\\\n\n F_{LJ} = & \\left\\{\\left[48\\epsilon \\left(\\frac{\\sigma}{r}\\right)^{\\!12} -\n 24\\epsilon \\left(\\frac{\\sigma}{r}\\right)^{\\!6} \\right]\\frac{1}{r^2} -\n \\left[48\\epsilon \\left(\\frac{\\sigma}{r_c}\\right)^{\\!12} - 24\\epsilon\n \\left(\\frac{\\sigma}{r_c}\\right)^{\\!6} \\right]\\frac{1}{r_c^2}\\right\\}\\vec{r}\\\\\n F_{qq} = & \\frac{q_i q_j}{r}\\left(\\frac{1}{r^2} -\n \\frac{1}{r_c^2}\\right)\\vec{r} \\\\\n F_{pq} = & F_{ij } = -\\frac{3q}{r^5} \\left[ 1 -\n \\left(\\frac{r}{r_c}\\right)^{\\!2}\\right](\\vec{p}\\bullet\\vec{r})\\vec{r} +\n \\frac{q}{r^3}\\left[1-3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] \\vec{p} \\\\\n F_{qp} = & F_{ij} = \\frac{3q}{r^5} \\left[ 1 -\n \\left(\\frac{r}{r_c}\\right)^{\\!2}\\right] (\\vec{p}\\bullet\\vec{r})\\vec{r} -\n \\frac{q}{r^3}\\left[1-3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] \\vec{p} \\\\\n F_{pp} = &\\frac{3}{r^5}\\Bigg\\{\\left[1-\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\n \\left[(\\vec{p}_i\\bullet\\vec{p}_j) - \\frac{3}{r^2} (\\vec{p}_i\\bullet\\vec{r})\n (\\vec{p}_j \\bullet \\vec{r})\\right] \\vec{r} + \\\\\n & \\left[1 -\n 4\\left(\\frac{r}{r_c}\\right)^{\\!3}+3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\n \\left[ (\\vec{p}_j \\bullet \\vec{r}) \\vec{p}_i + (\\vec{p}_i \\bullet \\vec{r})\n \\vec{p}_j -\\frac{2}{r^2} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\bullet \\vec{r})\\vec{r}\\right] \\Bigg\\} \\end{align*} \\]\n\\[\\begin{align*} \n T_{pq} = T_{ij} = & \\frac{q_j}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}_i\\times\\vec{r}) \\\\\n T_{qp} = T_{ji} = & - \\frac{q_i}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3} \\right] (\\vec{p}_j\\times\\vec{r}) \\\\\n T_{pp} = T_{ij} = & -\\frac{1}{r^3}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n e3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_i \\times \\vec{p}_j) + \\\\\n & \\frac{3}{r^5}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_j\\bullet\\vec{r})\n (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{pp} = T_{ji} = & -\\frac{1}{r^3}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right](\\vec{p}_j \\times \\vec{p}_i) + \\\\\n & \\frac{3}{r^5}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\times \\vec{r}) \\end{align*} \\]\nwhere \\(\\epsilon\\) and \\(\\sigma\\) are the standard LJ\nparameters, \\(r_c\\) is the cutoff, \\(q_i\\) and \\(q_j\\) are\nthe charges on the two particles, \\(\\vec{p}_i\\) and\n\\(\\vec{p}_j\\) are the dipole moment vectors of the two particles,\nr is their separation distance, and the vector r = Ri - Rj is the\nseparation vector between the two particles. Note that Eqq and Fqq\nare simply Coulombic energy and force, Fij = -Fji as symmetric forces,\nand Tij != -Tji since the torques do not act symmetrically. The\nshifted-force formula for the Lennard-Jones potential is reported in\n**Stoddard**. The original (non-shifted) formulas for\nthe electrostatic potentials, forces and torques can be found in\n**Price2**. The shifted-force electrostatic potentials\nhave been obtained by applying equation 5.13 of **Allen2**. The formulas for the corresponding forces and torques have\nbeen obtained by applying the 'chain rule' as in appendix C.3 of\n**Allen2**.\n\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic (q,p) terms. If two cutoffs are specified,\nthey are used as cutoffs for the LJ and Coulombic (q,p) terms\nrespectively. This pair style also supports an optional *scale*\nkeyword as part of a pair_coeff statement, where the interactions can\nbe scaled according to this factor. This scale factor is also made\navailable for use with fix adapt.\n\nStyle *lj/cut/dipole/long* computes the short-range portion of\npoint-dipole interactions as discussed in **Toukmaji2**. Dipole-dipole, dipole-charge, and charge-charge\ninteractions are all supported, along with the standard 12/6\nLennard-Jones interactions, which are computed with a cutoff. A\n[kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined to use this pair\nstyle. If only dipoles (not point charges) are included in the model,\nthe kspace style can be one of these 3 options, all of which compute\nthe long-range portion of dipole-dipole interactions. If the model\nincludes point charges (in addition to dipoles), then only the first\nof these kspace styles can be used:\n\n* [kspace_style ewald/disp ](https://docs.lammps.org/kspace_style.html)\n* [kspace_style ewald/dipole ](https://docs.lammps.org/kspace_style.html)\n* [kspace_style pppm/dipole ](https://docs.lammps.org/kspace_style.html)\n\nStyle *lj/long/dipole/long* has the same functionality as style\n*lj/cut/dipole/long*, except it also has an option to compute 12/6\nLennard-Jones interactions for use with a long-range dispersion kspace\nstyle. This is done by setting its *flag_lj* argument to *long*. For\nlong-range LJ interactions, the [kspace_style ewald/disp](https://docs.lammps.org/kspace_style.html) command must be used.\n\n----------\n\nThe following coefficients must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by\nmixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global LJ\nand Coulombic cutoffs specified in the pair_style command are used. If\nonly one cutoff is specified, it is used as the cutoff for both LJ and\nCoulombic interactions for this type pair. If both coefficients are\nspecified, they are used as the LJ and Coulombic cutoffs for this type\npair. When using a long-rang Coulomb solver, only a global Coulomb\ncutoff may be used and only the LJ cutoff may be changed with the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. When using the\n*lj/long/dipole/long* pair style with *long* *long* setting, only a\nsingle global cutoff may be provided and no cutoff for the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\n----------\n\nNote that for systems using these pair styles, typically particles\nshould be able to exert torque on each other via their dipole moments\nso that the particle and its dipole moment can rotate. This requires\nthey not be point particles, but finite-size spheres. Thus you should\nuse a command like [atom_style hybrid sphere dipole ](https://docs.lammps.org/atom_style.html)\nto use particles with both attributes.\n\nThe magnitude and orientation of the dipole moment for each particle\ncan be defined by the [set ](https://docs.lammps.org/set.html) command or in the \"Atoms\"\nsection of the data file read in by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nRotating finite-size particles have 6 degrees of freedom (DOFs),\ntranslation and rotational. You can use the [compute temp/sphere](https://docs.lammps.org/compute_temp_sphere.html) command to monitor a temperature which includes\nall these DOFs.\n\nFinite-size particles with dipole moments should be integrated using\none of these options:\n\n* [fix nve/sphere update dipole ](https://docs.lammps.org/fix_nve_sphere.html)\n* [fix nve/sphere update dipole ](https://docs.lammps.org/fix_nve_sphere.html) plus [fix langevin omega yes ](https://docs.lammps.org/fix_langevin.html)\n* [fix nvt/sphere update dipole ](https://docs.lammps.org/fix_nvt_sphere.html)\n* [fix npt/sphere update dipole ](https://docs.lammps.org/fix_npt_sphere.html)\n\nIn all cases the \"update dipole\" setting ensures the dipole moments\nare also rotated when the finite-size spheres rotate. The 2nd and 3rd\nbullets perform thermostatting; in the case of a Langevin thermostat\nthe \"omega yes\" option also thermostats the rotational degrees of\nfreedom (if desired). The 4th bullet performs thermostatting and\nbarostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distances for this pair style can be mixed. The default\nmix value is *geometric* . See the \"pair_modify\" command for details.\n\nFor atom type pairs I,J and I != J, the A, sigma, d1, and d2\ncoefficients and cutoff distance for this pair style can be mixed. A\nis an energy value mixed like a LJ epsilon. D1 and d2 are distance\nvalues and are mixed like sigma. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Lennard-Jones portion of the pair\ninteraction; such energy goes to zero at the cutoff by construction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Allen2)** Allen and Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n \n**(Toukmaji2)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n \n**(Allen2)** Allen and Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n \n**(Stoddard)** Stoddard and Ford, Phys Rev A, 8, 1504 (1973). \n \n**(Price2)** Price, Stone and Alderton, Mol Phys, 52, 987 (1984). \n \n**(Toukmaji2)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n ", - "restrictions": "The *lj/cut/dipole/cut*, *lj/cut/dipole/long*, *lj/long/dipole/long*,\nand lj/sf/dipole/sf* styles are part of the DIPOLE package. They are only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nUsing dipole pair styles with *electron* [units ](https://docs.lammps.org/units.html) is not currently supported.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [set ](https://docs.lammps.org/set.html), [read_data ](https://docs.lammps.org/read_data.html),\n[fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control = name of the AtC sub-command\n* physics_type = thermal or momentum\n* solution_parameter = max_iterations or tolerance\n* value = solution_parameter value\n* momentum option = none or rescale or glc_displacement or glc_velocity *hoover* or flux\n* frequency = time step frequency for applying displacement and velocity rescaling\n* faceset_id = id of boundary face set (optional, only for *faceset*) \n", + "examples": "\n```lmps\nfix_modify AtC control momentum none\nfix_modify AtC control momentum flux faceset bndy_faces\nfix_modify AtC control momentum glc_velocity\n```\n", + "html_filename": "atc_control_momentum.html", + "short_description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm", + "description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm. Many solution\napproaches require iterative solvers, and these methods enable users to\nprovide the maximum number of iterations and the relative tolerance.\n\nThe *control momentum* version sets the momentum exchange mechanism from\nthe finite elements to the atoms, managed through a control algorithm.\n*rescale* computes a scale factor for each atom to match the finite\nelement temperature. *hoover* is a Gaussian least-constraint isokinetic\nthermostat enforces that the nodal restricted atomic temperature matches\nthe finite element temperature. *flux* is a similar mode, but rather\nadds energy to the atoms based on conservation of energy.\n\n*correction_max_iterations* sets the maximum number of iterations to\ncompute the second order in time correction term for lambda with the\nfractional step method. The method uses the same tolerance as the\ncontroller's matrix solver.\n", + "restrictions": "Only for be used with the specific controllers *thermal* or *momentum*.\nThey are ignored if a lumped solution is requested.\n\n*control momentum* is only for be used with specific transfers: elastic\n*rescale* not valid with time filtering activated\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC control thermal ](https://docs.lammps.org/atc_control_thermal.html)\n" }, { "command": [ - "compute ke/atom/eff" + "fix recenter" ], "syntax": [ - "compute ID group-ID ke/atom/eff" + "fix ID group-ID recenter x y z keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -1012,144 +846,184 @@ export const command_docs = [ "choices": [] }, { - "arg": "ke/atom/eff", + "arg": "recenter", + "type": 1, + "choices": [] + }, + { + "arg": "x", + "type": 2, + "choices": [] + }, + { + "arg": "y", + "type": 2, + "choices": [] + }, + { + "arg": "z", + "type": 2, + "choices": [] + }, + { + "arg": "units", + "type": 3, + "choices": [ + "shift", + "units" + ] + }, + { + "arg": "value", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* recenter = style name of this fix command\n* x,y,z = constrain center-of-mass to these coords (distance units), any coord can also be NULL or INIT (see below)\n* zero or more keyword/value pairs may be appended\n* keyword = shift or units \n *        shift value = group-ID \n         group-ID = group of atoms whose coords are shifted \n *        units value = box or lattice or fraction \n", + "examples": "\n```lmps\nfix 1 all recenter 0.0 0.5 0.0\nfix 1 all recenter INIT INIT NULL\nfix 1 all recenter INIT 0.0 0.0 units box\n```\n", + "html_filename": "fix_recenter.html", + "short_description": "Constrain the center-of-mass position of a group of atoms by adjusting\nthe coordinates of the atoms every timestep", + "description": "Constrain the center-of-mass position of a group of atoms by adjusting\nthe coordinates of the atoms every timestep. This is simply a small\nshift that does not alter the dynamics of the system or change the\nrelative coordinates of any pair of atoms in the group. This can be\nused to ensure the entire collection of atoms (or a portion of them)\ndo not drift during the simulation due to random perturbations\n(e.g. [fix langevin ](https://docs.lammps.org/fix_langevin.html) thermostatting).\n\nDistance units for the x,y,z values are determined by the setting of\nthe *units* keyword, as discussed below. One or more x,y,z values can\nalso be specified as NULL, which means exclude that dimension from\nthis operation. Or it can be specified as INIT which means to\nconstrain the center-of-mass to its initial value at the beginning of\nthe run.\n\nThe center-of-mass (COM) is computed for the group specified by the\nfix. If the current COM is different than the specified x,y,z, then a\ngroup of atoms has their coordinates shifted by the difference. By\ndefault the shifted group is also the group specified by the fix. A\ndifferent group can be shifted by using the *shift* keyword. For\nexample, the COM could be computed on a protein to keep it in the\ncenter of the simulation box. But the entire system (protein + water)\ncould be shifted.\n\nIf the *units* keyword is set to *box*, then the distance units of\nx,y,z are defined by the [units ](https://docs.lammps.org/units.html) command - e.g. Angstroms\nfor *real* units. A *lattice* value means the distance units are in\nlattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have been\npreviously used to define the lattice spacing. A *fraction* value\nmeans a fractional distance between the lo/hi box boundaries, e.g. 0.5\n= middle of the box. The default is to use lattice units.\n\nNote that the [velocity ](https://docs.lammps.org/velocity.html) command can be used to create\nvelocities with zero aggregate linear and/or angular momentum.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix performs its operations at the same point in the\n > timestep as other time integration fixes, such as [fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), or [fix npt ](https://docs.lammps.org/fix_nh.html).\n > Thus fix recenter should normally be the last such fix specified in\n > the input script, since the adjustments it makes to atom coordinates\n > should come after the changes made by time integration. LAMMPS will\n > warn you if your fixes are not ordered this way. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use this fix on a small group of atoms (e.g. a molecule\n > in solvent) without using the *shift* keyword to adjust the positions\n > of all atoms in the system, then the results can be unpredictable.\n > For example, if the molecule is pushed consistently in one direction\n > by a flowing solvent, its velocity will increase. But its coordinates\n > will be re-centered, meaning it is moved back towards the force. Thus\n > over time, the velocity and effective temperature of the molecule\n > could become very large, though it won't actually be moving due to the\n > re-centering. If you are thermostatting the entire system, then the\n > solvent would be cooled to compensate. A better solution for this\n > simulation scenario is to use the [fix spring ](https://docs.lammps.org/fix_spring.html) command\n > to tether the molecule in place. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the distance the\ngroup is moved by fix recenter.\n\nThis fix also computes global 3-vector which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The 3 quantities in the\nvector are xyz components of displacement applied to the group of\natoms by the fix.\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix should not be used with an x,y,z setting that causes a large\nshift in the system on the first timestep, due to the requested COM\nbeing very different from the initial COM. This could cause atoms to\nbe lost, especially in parallel. Instead, use the\n[displace_atoms ](https://docs.lammps.org/displace_atoms.html) command, which can be used to\nmove atoms a large distance.\n", + "related": "[fix momentum ](https://docs.lammps.org/fix_momentum.html), [velocity ](https://docs.lammps.org/velocity.html)\n" +}, +{ + "command": [ + "bond_style gaussian" + ], + "syntax": [ + "bond_style gaussian" + ], + "args": [ + [ + { + "arg": "bond_style", + "type": 1, + "choices": [] + }, + { + "arg": "gaussian", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/atom/eff = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all ke/atom/eff\n```\n", - "html_filename": "compute_ke_atom_eff.html", - "short_description": "Define a computation that calculates the per-atom translational\n(nuclei and electrons) and radial kinetic energy (electron only) in a\ngroup", - "description": "Define a computation that calculates the per-atom translational\n(nuclei and electrons) and radial kinetic energy (electron only) in a\ngroup. The particles are assumed to be nuclei and electrons modeled\nwith the [electronic force field ](https://docs.lammps.org/pair_eff.html).\n\nThe kinetic energy for each nucleus is computed as \\(\\frac{1}{2} m\nv^2\\), where *m* corresponds to the corresponding nuclear mass, and the\nkinetic energy for each electron is computed as \\(\\frac{1}{2} (m_e\nv^2 + \\frac{3}{4} m_e s^2)\\), where \\(m_e\\) and *v* correspond to the mass\nand translational velocity of each electron, and *s* to its radial\nvelocity, respectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" plus electronic \"radial\" kinetic energy,\ncalculated by the simple formula above. For thermodynamic output, the\n*ke* keyword infers kinetic energy from the temperature of the system\nwith \\(\\frac{1}{2} k_B T\\) of energy for each (nuclear-only) degree\nof freedom in eFF.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature in eFF should be monitored via the [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command, which can be printed with\n > thermodynamic output by using the [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n > command, as shown in the following example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nThe value of the kinetic energy will be 0.0 for atoms (nuclei or\nelectrons) not in the specified compute group.\n\n #### Output info\n\nThis compute calculates a scalar quantity for each atom, which can be\naccessed by any command that uses per-atom computes as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" + "parameters": "", + "examples": "\n```lmps\nbond_style gaussian\nbond_coeff 1 300.0 2 0.0128 0.375 3.37 0.0730 0.148 3.63\n```\n", + "html_filename": "bond_gaussian.html", + "short_description": "The *gaussian* bond style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(r-r_{i})^2}{w_i^2}\\right)\\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano0**\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(T\\) temperature at which the potential was derived\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (> 0, distance)\n* \\(w_1\\) (> 0, distance)\n* \\(r_1\\) (>= 0, distance)\n* ..", + "description": "The *gaussian* bond style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(r-r_{i})^2}{w_i^2}\\right)\\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano0**\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(T\\) temperature at which the potential was derived\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (> 0, distance)\n* \\(w_1\\) (> 0, distance)\n* \\(r_1\\) (>= 0, distance)\n* ...\n* \\(A_n\\) (> 0, distance)\n* \\(w_n\\) (> 0, distance)\n* \\(r_n\\) (>= 0, distance)\n\n**(Milano0)** G. Milano, S. Goudeau, F. Mueller-Plathe, J. Polym. Sci. B Polym. Phys. 43, 871 (2005). \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html)\n" }, { "command": [ - "angle_style cosine/squared/restricted", - "angle_style cosine/squared/restricted/omp" + "pair_style beck", + "pair_style beck/gpu", + "pair_style beck/omp" ], "syntax": [ - "angle_style cosine/squared/restricted" + "pair_style beck Rc" ], "args": [ [ { - "arg": "angle_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "cosine/squared/restricted", + "arg": "beck", "type": 3, "choices": [ - "cosine/squared/restricted", - "cosine/squared/restricted/omp" + "beck", + "beck/gpu", + "beck/omp" ] + }, + { + "arg": "Rc", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine/squared/restricted\nangle_coeff 2*4 75.0 100.0\n```\n", - "html_filename": "angle_cosine_squared_restricted.html", - "short_description": "\nThe *cosine/squared/restricted* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2 / \\sin^2(\\theta)\\]\n, which is commonly used in the MARTINI force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor", - "description": "\nThe *cosine/squared/restricted* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2 / \\sin^2(\\theta)\\]\n, which is commonly used in the MARTINI force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nSee **restricted-Bulacu** for a description of the restricted angle for the MARTINI force field.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(restricted-Bulacu)** Bulacu, Goga, Zhao, Rossi, Monticelli, Periole, Tieleman, Marrink, J Chem Theory Comput, 9, 3282-3292\n(2013). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* Rc = cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style beck 8.0\npair_coeff * * 399.671876712 0.0000867636112694 0.675 4.390 0.0003746\npair_coeff 1 1 399.671876712 0.0000867636112694 0.675 4.390 0.0003746 6.0\n```\n", + "html_filename": "pair_beck.html", + "short_description": "Style *beck* computes interactions based on the potential by\n**Beck**, originally designed for simulation of Helium", + "description": "Style *beck* computes interactions based on the potential by\n**Beck**, originally designed for simulation of Helium. It\nincludes truncation at a cutoff distance \\(r_c\\).\n\\[\\begin{align*} \n E(r) &= A \\exp\\left[-\\alpha r - \\beta r^6\\right] - \\frac{B}{\\left(r^2+a^2\\right)^3} \\left(1+\\frac{2.709+3a^2}{r^2+a^2}\\right) \\qquad r < r_c \\\\ \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\n* \\(A\\) (energy units)\n* \\(B\\) (energy-distance\\^6 units)\n* \\(a\\) (distance units)\n* \\(\\alpha\\) (1/distance units)\n* \\(\\beta\\) (1/distance\\^6 units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\n\\(r_c\\) is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, coefficients must be specified.\nNo default mixing rules are used.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Beck)** Beck, Molecular Physics, 14, 311 (1968). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "bond_style bpm/rotational" + "compute temp/cs" ], "syntax": [ - "bond_style bpm/rotational keyword value attribute1 attribute2 ..." + "compute ID group-ID temp/cs group1 group2" ], "args": [ [ { - "arg": "bond_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "bpm/rotational", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "temp/cs", + "type": 1, "choices": [] }, { - "arg": "attribute1", + "arg": "group1", "type": 2, "choices": [] }, { - "arg": "attribute2", + "arg": "group2", "type": 2, "choices": [] } ] ], - "parameters": "* optional keyword = overlay/pair or store/local or smooth or break \n *        store/local values = fix_ID N attributes ... \n         * fix_ID = ID of associated internal fix to store data \n         * N = prepare data for output every this many timesteps \n         * attributes = zero or more of the below attributes may be appended \n         *id1, id2* = IDs of two atoms in the bond \n         time = the timestep the bond broke \n         *x, y, z* = the center of mass position of the two atoms when the bond broke (distance units) \n         *x/ref, y/ref, z/ref* = the initial center of mass position of the two atoms (distance units) \n *        overlay/pair value = yes or no \n         bonded particles will still interact with pair forces \n *        smooth value = yes or no \n         smooths bond forces near the breaking point \n *        *normalize* value = yes or no \n         normalizes normal and shear forces by the reference length \n *        break value = yes or no \n         indicates whether bonds break during a run \n", - "examples": "\n```lmps\nbond_style bpm/rotational\nbond_coeff 1 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.02 0.002 0.002\n\nbond_style bpm/rotational store/local myfix 1000 time id1 id2\ndump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", - "html_filename": "bond_bpm_rotational.html", - "short_description": "\nThe *bpm/rotational* bond style computes forces and torques based on\ndeviations from the initial reference state of the two atoms", - "description": "\nThe *bpm/rotational* bond style computes forces and torques based on\ndeviations from the initial reference state of the two atoms. The\nreference state is stored by each bond when it is first computed in\nthe setup of a run. Data is then preserved across run commands and is\nwritten to [binary restart files ](https://docs.lammps.org/restart.html) such that restarting\nthe system will not reset the reference state of a bond.\n\nForces include a normal and tangential component. The base normal force\nhas a magnitude of\n\\[\n f_r = k_r (r - r_0)\\]\nwhere \\(k_r\\) is a stiffness and \\(r\\) is the current distance and\n\\(r_0\\) is the initial distance between the two particles.\n\nA tangential force is applied perpendicular to the normal direction\nwhich is proportional to the tangential shear displacement with a\nstiffness of \\(k_s\\). This tangential force also induces a torque.\nIn addition, bending and twisting torques are also applied to\nparticles which are proportional to angular bending and twisting\ndisplacements with stiffnesses of \\(k_b\\) and \\(k_t\\),\nrespectively. Details on the calculations of shear displacements and\nangular displacements can be found in **Wang2009** and\n**Wang2009b**.\n\nBonds will break under sufficient stress. A breaking criterion is calculated\n\\[\n B = \\mathrm{max}\\left\\{0, \\frac{f_r}{f_{r,c}} + \\frac{|f_s|}{f_{s,c}} +\n \\frac{|\\tau_b|}{\\tau_{b,c}} + \\frac{|\\tau_t|}{\\tau_{t,c}} \\right\\}\\]\nwhere \\(|f_s|\\) is the magnitude of the shear force and\n\\(|\\tau_b|\\) and \\(|\\tau_t|\\) are the magnitudes of the\nbending and twisting torques, respectively. The corresponding variables\n\\(f_{r,c}\\) \\(f_{s,c}\\), \\(\\tau_{b,c}\\), and\n\\(\\tau_{t,c}\\) are critical limits to each force or torque. If\n\\(B\\) is ever equal to or exceeds one, the bond will break. This\nis done by setting the bond type to 0 such that forces and\ntorques are no longer computed.\n\nAfter computing the base magnitudes of the forces and torques, they\ncan be optionally multiplied by an extra factor \\(w\\) to smoothly\ninterpolate forces and torques to zero as the bond breaks. This term\nis calculated as \\(w = (1.0 - B^4)\\). This smoothing factor can be added\nor removed by setting the *smooth* keyword to *yes* or *no*, respectively.\n\nFinally, additional damping forces and torques are applied to the two\nparticles. A force is applied proportional to the difference in the\nnormal velocity of particles using a similar construction as\ndissipative particle dynamics **Groot3**:\n\\[\n F_D = - \\gamma_n w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma_n\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, and \\(\\vec{v}\\) is the velocity difference\nbetween the two particles. Similarly, tangential forces are applied to\neach atom proportional to the relative differences in sliding\nvelocities with a constant prefactor \\(\\gamma_s\\) :ref:`(Wang et\nal.) ` along with their associated torques. The rolling and\ntwisting components of the relative angular velocities of the two\natoms are also damped by applying torques with prefactors of\n\\(\\gamma_r\\) and \\(\\gamma_t\\), respectively.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(k_r\\) (force/distance units)\n* \\(k_s\\) (force/distance units)\n* \\(k_t\\) (force*distance/radians units)\n* \\(k_b\\) (force*distance/radians units)\n* \\(f_{r,c}\\) (force units)\n* \\(f_{s,c}\\) (force units)\n* \\(\\tau_{b,c}\\) (force*distance units)\n* \\(\\tau_{t,c}\\) (force*distance units)\n* \\(\\gamma_n\\) (force/velocity units)\n* \\(\\gamma_s\\) (force/velocity units)\n* \\(\\gamma_r\\) (force*distance/velocity units)\n* \\(\\gamma_t\\) (force*distance/velocity units)\n\nIf the *normalize* keyword is set to *yes*, the radial and shear forces\nwill be normalized by \\(r_0\\) such that \\(k_r\\) and \\(k_s\\)\nmust be given in force units.\n\nBy default, pair forces are not calculated between bonded particles.\nPair forces can alternatively be overlaid on top of bond forces by setting\nthe *overlay/pair* keyword to *yes*. These settings require specific\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings described in the\nrestrictions. Further details can be found in the [how to ](https://docs.lammps.org/Howto_bpm.html)\npage on BPMs.\n\nIf the *break* keyword is set to *no*, LAMMPS assumes bonds should not break\nduring a simulation run. This will prevent some unnecessary calculation.\nHowever, if a bond reaches a damage criterion greater than one,\nit will trigger an error.\n\nIf the *store/local* keyword is used, an internal fix will track bonds that\nbreak during the simulation. Whenever a bond breaks, data is processed\nand transferred to an internal fix labeled *fix_ID*. This allows the\nlocal data to be accessed by other LAMMPS commands. Following this optional\nkeyword, a list of one or more attributes is specified. These include the\nIDs of the two atoms in the bond. The other attributes for the two atoms\ninclude the timestep during which the bond broke and the current/initial\ncenter of mass position of the two atoms.\n\nData is continuously accumulated over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\nNote that when unbroken bonds are dumped to a file via the\n[dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 (broken bonds)\nare not included.\nThe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to\nquery the status of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n #### Restart and other info\n\nThis bond style writes the reference state of each bond to\n[binary restart files ](https://docs.lammps.org/restart.html). Loading a restart file will\nproperly resume bonds. However, the reference state is NOT\nwritten to data files. Therefore reading a data file will not\nrestore bonds and will cause their reference states to be redefined.\n\nIf the *store/local* option is used, an internal fix will calculate\na local vector or local array depending on the number of input values.\nThe length of the vector or number of rows in the array is the number\nof recorded, broken bonds. If a single input is specified, a local\nvector is produced. If two or more inputs are specified, a local array\nis produced where the number of columns = the number of inputs. The\nvector or array can be accessed by any command that uses local values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor an overview of LAMMPS output options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\nThe single() function of this bond style returns 0.0 for the energy\nof a bonded interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe bonded interaction force. However, the single() function also\ncalculates 7 extra bond quantities. The first 4 are data from the\nreference state of the bond including the initial distance between particles\n\\(r_0\\) followed by the \\(x\\), \\(y\\), and \\(z\\) components\nof the initial unit vector pointing to particle I from particle J. The next 3\nquantities (5-7) are the \\(x\\), \\(y\\), and \\(z\\) components\nof the total force, including normal and tangential contributions, acting\non particle I.\n\nThese extra quantities can be accessed by the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html)\ncommand, as *b1*, *b2*, ..., *b7* .\n\n**(Wang2009)** Wang, Acta Geotechnica, 4,\np 117-127 (2009). \n \n**(Wang2009b)** Wang, Mora, Advances in Geocomputing,\n119, p 183-228 (2009). \n \n**(Groot3)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n ", - "restrictions": "This bond style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default if pair interactions between bonded atoms are to be disabled,\nthis bond style requires setting\n\n```lmps\nspecial_bonds lj 0 1 1 coul 1 1 1\n```\nand [newton ](https://docs.lammps.org/newton.html) must be set to bond off. If the *overlay/pair*\nkeyword is set to *yes*, this bond style alternatively requires setting\n\n```lmps\nspecial_bonds lj/coul 1 1 1\n```\nThe *bpm/rotational* style requires [atom style bpm/sphere ](https://docs.lammps.org/atom_style.html).\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [fix nve/bpm/sphere ](https://docs.lammps.org/fix_nve_bpm_sphere.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/cs = style name of this compute command\n* group1 = group-ID of either cores or shells\n* group2 = group-ID of either shells or cores \n", + "examples": "\n```lmps\ncompute oxygen_c-s all temp/cs O_core O_shell\ncompute core_shells all temp/cs cores shells\n```\n", + "html_filename": "compute_temp_cs.html", + "short_description": "Define a computation that calculates the temperature of a system based\non the center-of-mass velocity of atom pairs that are bonded to each\nother", + "description": "Define a computation that calculates the temperature of a system based\non the center-of-mass velocity of atom pairs that are bonded to each\nother. This compute is designed to be used with the adiabatic\ncore/shell model of **MitchellFincham1**.\nSee the [Howto coreshell ](https://docs.lammps.org/Howto_coreshell.html) page for an overview of\nthe model as implemented in LAMMPS. Specifically, this compute\nenables correct temperature calculation and thermostatting of\ncore/shell pairs where it is desirable for the internal degrees of\nfreedom of the core/shell pairs to not be influenced by a thermostat.\nA compute of this style can be used by any command that computes a\ntemperature via [fix_modify ](https://docs.lammps.org/fix_modify.html)\n(e.g., [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nNote that this compute does not require all ions to be polarized,\nhence defined as core/shell pairs. One can mix core/shell pairs and\nions without a satellite particle if desired. The compute will\nconsider the non-polarized ions according to the physical system.\n\nFor this compute, core and shell particles are specified by two\nrespective group IDs, which can be defined using the\n[group ](https://docs.lammps.org/group.html) command. The number of atoms in the two groups\nmust be the same and there should be one bond defined between a pair\nof atoms in the two groups. Non-polarized ions which might also be\nincluded in the treated system should not be included into either of\nthese groups, they are taken into account by the *group-ID* (second\nargument) of the compute.\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature. Note that\nthe velocity of each core or shell atom used in the KE calculation is\nthe velocity of the center-of-mass (COM) of the core/shell pair the\natom is part of.\n\nA kinetic energy tensor, stored as a six-element vector, is also calculated by\nthis compute for use in the computation of a pressure tensor. The formula for\nthe components of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, and so\non. The six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\). In contrast to the temperature,\nthe velocity of each core or shell atom is taken individually.\n\nThe change this fix makes to core/shell atom velocities is essentially\ncomputing the temperature after a \"bias\" has been removed from the velocity of\nthe atoms. This \"bias\" is the velocity of the atom relative to the\ncenter-of-mass velocity of the core/shell pair. If this compute is used with a\nfix command that performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining center-of-mass velocity will be\nperformed, and the bias will be added back in. This means the thermostatting\nwill effectively be performed on the core/shell pairs, instead of on the\nindividual core and shell atoms. Thermostatting fixes that work in this way\ninclude [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThe internal energy of core/shell pairs can be calculated by the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command, if chunks are defined\nas core/shell pairs. See the [Howto coreshell ](https://docs.lammps.org/Howto_coreshell.html) doc\npage for more discussion on how to do this.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n\n**(MitchellFincham1)** Mitchell, Fincham, J Phys Condensed Matter,\n5, 1031-1038 (1993). \n ", + "restrictions": "The number of core/shell pairs contributing to the temperature is\nassumed to be constant for the duration of the run. No fixes should\nbe used which generate new molecules or atoms during a simulation.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html)\n" }, { "command": [ - "quit" + "fix nve/eff" ], "syntax": [ - "quit status" + "fix ID group-ID nve/eff" ], "args": [ [ { - "arg": "quit", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "status", + "arg": "ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "status = numerical exit status (optional) \n", - "examples": "\n```lmps\nquit\nif \"$n > 10000\" then \"quit 1\"\n```\n", - "html_filename": "quit.html", - "short_description": "This command causes LAMMPS to exit, after shutting down all output\ncleanly", - "description": "This command causes LAMMPS to exit, after shutting down all output\ncleanly.\n\nIt can be used as a debug statement in an input script, to terminate\nthe script at some intermediate point.\n\nIt can also be used as an invoked command inside the \"then\" or \"else\"\nportion of an [if ](https://docs.lammps.org/if.html) command.\n\nThe optional status argument is an integer which signals the return\nstatus to a program calling LAMMPS. A return status of 0 usually\nindicates success. A status != 0 is failure, where the specified\nvalue can be used to distinguish the kind of error, e.g. where in the\ninput script the quit was invoked. If not specified, a status of 0 is\nreturned.\n", - "restrictions": " none\n", - "related": "[if ](https://docs.lammps.org/if.html)\n" -}, -{ - "command": [ - "delete_bonds" - ], - "syntax": [ - "delete_bonds group-ID style arg keyword ..." - ], - "args": [ - [ - { - "arg": "delete_bonds", - "type": 1, - "choices": [] }, { "arg": "group-ID", @@ -1157,470 +1031,382 @@ export const command_docs = [ "choices": [] }, { - "arg": "stats", - "type": 3, - "choices": [ - "multi", - "atom", - "bond", - "angle", - "dihedral", - "improper", - "stats" - ] - }, - { - "arg": "arg", - "type": 2, + "arg": "nve/eff", + "type": 1, "choices": [] - }, - { - "arg": "special", - "type": 3, - "choices": [ - "any", - "undo", - "remove", - "special" - ] } ] ], - "parameters": "* group-ID = group ID\n* style = multi or atom or bond or angle or dihedral or improper or stats \n *        multi arg = none \n *        atom arg = an atom type or range of types (see below) \n *        bond arg = a bond type or range of types (see below) \n *        angle arg = an angle type or range of types (see below) \n *        dihedral arg = a dihedral type or range of types (see below) \n *        improper arg = an improper type or range of types (see below) \n *        stats arg = none \n* zero or more keywords may be appended\n* keyword = any or undo or remove or special \n *        any arg = none = turn off interactions if any atoms are in the group (or on if undo is also used) \n *        undo arg = none = turn specified bonds on instead of off \n *        remove arg = permanently remove bonds that have been turned off \n *        special arg = recompute pairwise 1-2, 1-3, and 1-4 lists \n", - "examples": "\n```lmps\ndelete_bonds frozen multi remove\ndelete_bonds all atom 4 special\ndelete_bonds all bond 0*3 special\ndelete_bonds all stats\n\nlabelmap atom 4 hc\ndelete_bonds all atom hc special\n```\n", - "html_filename": "delete_bonds.html", - "short_description": "Turn off (or on) molecular topology interactions (i.e., bonds, angles,\ndihedrals, and/or impropers)", - "description": "Turn off (or on) molecular topology interactions (i.e., bonds, angles,\ndihedrals, and/or impropers). This command is useful for deleting\ninteractions that have been previously turned off by bond-breaking\npotentials. It is also useful for turning off topology interactions\nbetween frozen or rigid atoms. Pairwise interactions can be turned\noff via the [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html) command. The\n[fix shake ](https://docs.lammps.org/fix_shake.html) command also effectively turns off certain\nbond and angle interactions.\n\nFor all styles, by default, an interaction is only turned off (or on)\nif all the atoms involved are in the specified group. See the *any*\nkeyword to change the behavior.\n\nSeveral of the styles (\\ *atom*, *bond*, *angle*, *dihedral*, *improper* )\ntake a *type* as an argument. The specified *type* can be a\n[type label ](https://docs.lammps.org/Howto_type_labels.html). Otherwise, the type should be an\ninteger from 0 to \\(N\\), where \\(N\\) is the number of relevant\ntypes (atom types, bond types, etc.). A value of 0 is only relevant for\nstyle *bond* ; see details below. For numeric types, a wildcard asterisk\ncan be used in place of or in conjunction with the *type* argument to\nspecify a range of types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the number of types, then an asterisk with no\nnumeric values means all types from 0 to \\(N\\). A leading asterisk\nmeans all types from 0 to n (inclusive). A trailing asterisk means all\ntypes from m to N (inclusive). A middle asterisk means all types from m to\nn (inclusive). Note that it is fine to include a type of 0 for non-bond\nstyles; it will simply be ignored.\n\nFor style *multi* all bond, angle, dihedral, and improper interactions\nof any type, involving atoms in the group, are turned off.\n\nStyle *atom* is the same as style *multi* except that in addition, one\nor more of the atoms involved in the bond, angle, dihedral, or\nimproper interaction must also be of the specified atom type.\n\nFor style *bond*, only bonds are candidates for turn-off, and the bond\nmust also be of the specified type. Styles *angle*, *dihedral*, and\n*improper* are treated similarly.\n\nFor style *bond*, you can set the type to 0 to delete bonds that have\nbeen previously broken by a bond-breaking potential (which sets the\nbond type to 0 when a bond is broken); for example, see the\n[bond_style quartic ](https://docs.lammps.org/bond_style.html) command.\n\nFor style *stats* no interactions are turned off (or on); the status\nof all interactions in the specified group is simply reported. This\nis useful for diagnostic purposes if bonds have been turned off by a\nbond-breaking potential during a previous run.\n\nThe default behavior of the delete_bonds command is to turn off\ninteractions by toggling their type to a negative value, but not to\npermanently remove the interaction. For example, a bond_type of 2 is set to\n\\(-2.\\) The neighbor list creation routines will not include such an\ninteraction in their interaction lists. The default is also to not\nalter the list of 1--2, 1--3, or 1--4 neighbors computed by the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command and used to weight pairwise\nforce and energy calculations. This means that pairwise computations\nwill proceed as if the bond (or angle, etc.) were still turned on.\n\nSeveral keywords can be appended to the argument list to alter the\ndefault behaviors.\n\nThe *any* keyword changes the requirement that all atoms in the bond\n(angle, etc.) must be in the specified group in order to turn off the\ninteraction. Instead, if any of the atoms in the interaction are in\nthe specified group, it will be turned off (or on if the *undo*\nkeyword is used).\n\nThe *undo* keyword inverts the delete_bonds command so that the\nspecified bonds, angles, etc. are turned on if they are currently\nturned off. This means a negative value is toggled to positive. For\nexample, for style *angle*, if *type* is specified as 2, then all\nangles with current type = \\(-2\\) are reset to type = \\(2\\).\nNote that the [fix shake ](https://docs.lammps.org/fix_shake.html) command also sets bond and angle\ntypes negative, so this option should not be used on those interactions.\n\nThe *remove* keyword is invoked at the end of the delete_bonds\noperation. It causes turned-off bonds (angles, etc.) to be removed\nfrom each atom's data structure and then adjusts the global bond\n(angle, etc.) counts accordingly. Removal is a permanent change;\nremoved bonds cannot be turned back on via the *undo* keyword.\nRemoval does not alter the pairwise 1--2, 1--3, or 1--4 weighting list.\n\nThe *special* keyword is invoked at the end of the delete_bonds\noperation, after (optional) removal. It re-computes the pairwise 1--2,\n1--3, 1--4 weighting list. The weighting list computation treats\nturned-off bonds the same as turned-on. Thus, turned-off bonds must\nbe removed if you wish to change the weighting list.\n\nNote that the choice of *remove* and *special* options affects how\n1--2, 1--3, 1--4 pairwise interactions will be computed across bonds that\nhave been modified by the delete_bonds command.\n", - "restrictions": "This command requires inter-processor communication to acquire ghost\natoms, to coordinate the deleting of bonds, angles, etc. between atoms\nshared by multiple processors. This means that your system must be\nready to perform a simulation before using this command (force fields\nsetup, atom masses set, etc.). Just as would be needed to run\ndynamics, the force field you define should define a cutoff\n(e.g., through a [pair_style ](https://docs.lammps.org/pair_style.html) command) which is long\nenough for a processor to acquire the ghost atoms its needs to compute\nbond, angle, etc. interactions.\n\nIf deleted bonds (or angles, etc.) are removed but the 1--2, 1--3, and 1--4\nweighting list is not recomputed, this can cause a later\n[fix shake ](https://docs.lammps.org/fix_shake.html) command to fail due to an atom's bonds being\ninconsistent with the weighting list. This should only happen if the\ngroup used in the fix command includes both atoms in the bond, in\nwhich case you probably should be recomputing the weighting list.\n", - "related": "[neigh_modify ](https://docs.lammps.org/neigh_modify.html) exclude,\n[special_bonds ](https://docs.lammps.org/special_bonds.html), [fix shake ](https://docs.lammps.org/fix_shake.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/eff = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/eff\n```\n", + "html_filename": "fix_nve_eff.html", + "short_description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [electron force field ](https://docs.lammps.org/pair_eff.html) model", + "description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [electron force field ](https://docs.lammps.org/pair_eff.html) model. V is volume; E is energy. This creates a\nsystem trajectory consistent with the microcanonical ensemble.\n\nThe operation of this fix is exactly like that described by the [fix nve ](https://docs.lammps.org/fix_nve.html) command, except that the radius and radial velocity\nof electrons are also updated.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix npt/eff ](https://docs.lammps.org/fix_nh_eff.html)\n" }, { "command": [ - "fix_modify AtC control momentum" + "fix sph" ], "syntax": [ - "fix_modify control ", - "fix_modify AtC control momentum none", - "fix_modify AtC control momentum rescale ", - "fix_modify AtC control momentum glc_displacement", - "fix_modify AtC control momentum glc_velocity", - "fix_modify AtC control momentum hoover", - "fix_modify AtC control momentum flux [faceset face_set_id, interpolate]" + "fix ID group-ID sph" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "thermal", - "momentum" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "max_iterations", - "tolerance" - ] - }, - { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] - } - ], - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "AtC control", - "type": 1, - "choices": [] - }, - { - "arg": "momentum", - "type": 1, - "choices": [] }, { - "arg": "none", + "arg": "sph", "type": 1, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sph = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all sph\n```\n", + "html_filename": "fix_sph.html", + "short_description": "Perform time integration to update position, velocity, internal energy\nand local density for atoms in the group each timestep", + "description": "Perform time integration to update position, velocity, internal energy\nand local density for atoms in the group each timestep. This fix is\nneeded to time-integrate SPH systems where particles carry internal\nvariables such as internal energy. SPH stands for Smoothed Particle\nHydrodynamics.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)\n" +}, +{ + "command": [ + "compute pressure/alchemy" + ], + "syntax": [ + "compute ID group-ID pressure/alchemy fix-ID" + ], + "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "AtC control", - "type": 1, - "choices": [] - }, - { - "arg": "momentum", - "type": 1, - "choices": [] - }, - { - "arg": "rescale", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] - } - ], - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] }, { - "arg": "AtC control", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "momentum", + "arg": "pressure/alchemy", "type": 1, "choices": [] }, { - "arg": "glc_displacement", - "type": 1, + "arg": "fix-ID", + "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure/alchemy = style name of this compute command\n* fix-ID = ID of [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command \n", + "examples": "\n```lmps\nfix trans all alchemy\ncompute mixed all pressure/alchemy trans\nthermo_modify press mixed\n```\n", + "html_filename": "compute_pressure_alchemy.html", + "short_description": "\nDefine a compute style that makes the \"mixed\" system pressure available\nfor a system that uses the [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command to\ntransform one topology to another", + "description": "\nDefine a compute style that makes the \"mixed\" system pressure available\nfor a system that uses the [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command to\ntransform one topology to another. This can be used in combination with\neither [thermo_modify press ](https://docs.lammps.org/thermo_modify.html) or [fix_modifypress ](https://docs.lammps.org/fix_modify.html) to output and access a pressure consistent with the\nsimulated combined two topology system.\n\nThe actual pressure is determined with [compute pressure](https://docs.lammps.org/compute_pressure.html) commands that are internally used by [fixalchemy ](https://docs.lammps.org/fix_alchemy.html) for each topology individually and then combined.\nThis command just extracts the information from the fix.\n\nThe ``examples/PACKAGES/alchemy`` folder contains an example input for this command.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the pressure) and a global\nvector of length 6 (the pressure tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe ordering of values in the symmetric pressure tensor is as follows:\n\\(p_{xx},\\) \\(p_{yy},\\) \\(p_{zz},\\) \\(p_{xy},\\)\n\\(p_{xz},\\) \\(p_{yz}.\\)\n\nThe scalar and vector values calculated by this compute are \"intensive\".\nThe scalar and vector values will be in pressure [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the REPLICA package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix alchemy ](https://docs.lammps.org/fix_alchemy.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" +}, +{ + "command": [ + "pair_style kim" + ], + "syntax": [ + "pair_style kim model" + ], + "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "AtC control", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "momentum", + "arg": "kim", "type": 1, "choices": [] }, { - "arg": "glc_velocity", - "type": 1, + "arg": "model", + "type": 2, "choices": [] } - ], + ] + ], + "parameters": "model = name of a KIM model (the KIM ID for models archived in OpenKIM) \n", + "examples": "\n```lmps\npair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005\npair_coeff * * Si\n```\n", + "html_filename": "pair_kim.html", + "short_description": "This pair style is a wrapper on the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org)\nrepository of interatomic potentials to enable their use in LAMMPS scripts", + "description": "This pair style is a wrapper on the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org)\nrepository of interatomic potentials to enable their use in LAMMPS scripts.\n\nThe preferred interface for using interatomic models archived in\nOpenKIM is the [kim command ](https://docs.lammps.org/kim_commands.html) interface. That\ninterface supports both \"KIM Portable Models\" (PMs) that conform to the\nKIM API Portable Model Interface (PMI) and can be used by any\nsimulation code that conforms to the KIM API/PMI, and\n\"KIM Simulator Models\" (SMs) that are natively implemented within a single\nsimulation code (like LAMMPS) and can only be used with it.\nThe *pair_style kim* command is limited to KIM PMs. It is\nused by the [kim command ](https://docs.lammps.org/kim_commands.html) interface as needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since *pair_style kim* is called by *kim interactions* as needed,\n > it is not recommended to be directly used in input scripts. \n > \n\n----------\n\nThe argument *model* is the name of the KIM PM.\nFor potentials archived in OpenKIM\nthis is the extended KIM ID (see [kim command ](https://docs.lammps.org/kim_commands.html)\nfor details). LAMMPS can invoke any KIM PM, however there can\nbe incompatibilities (for example due to unit matching issues).\nIn the event of an incompatibility, the code will terminate with\nan error message. Check both the LAMMPS and KIM log files for details.\n\nOnly a single *pair_coeff* command is used with the *kim* style, which\nspecifies the mapping of LAMMPS atom types to the species supported by\nthe KIM PM. This is done by specifying *N* additional arguments\nafter the \\* \\* in the *pair_coeff* command, where *N* is the number of\nLAMMPS atom types:\n\n* N element names = mapping of KIM elements to atom types\n\nFor example, consider a KIM PM that supports Si and C species.\nIf the LAMMPS simulation has four atom types, where the first three are Si,\nand the fourth is C, the following *pair_coeff* command would be used:\n\n```lmps\npair_coeff * * Si Si Si C\n```\nThe first two arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1, 2, and 3 to Si as\ndefined within KIM PM. The final C argument maps LAMMPS atom type 4 to C.\n\n----------\n\nIn addition to the usual LAMMPS error messages, the KIM library itself\nmay generate errors, which should be printed to the screen. In this\ncase it is also useful to check the *kim.log* file for additional error\ninformation. The file *kim.log* should be generated in the same\ndirectory where LAMMPS is running.\n\nTo download, build, and install the KIM library on your system, see\nthe *lib/kim/README* file. Once you have done this and built LAMMPS\nwith the KIM package installed you can run the example input scripts\nin *examples/kim* .\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since KIM stores the potential parameters.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This pair style is part of the KIM package. See details on\nrestrictions in [kim command ](https://docs.lammps.org/kim_commands.html).\n\nThis current version of pair_style kim is compatible with the\nkim-api package version 2.0.0 and higher.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [kim command ](https://docs.lammps.org/kim_commands.html)\n" +}, +{ + "command": [ + "angle_style hybrid" + ], + "syntax": [ + "angle_style hybrid style1 style2 ..." + ], + "args": [ [ { - "arg": "fix_modify", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "AtC control", + "arg": "hybrid", "type": 1, "choices": [] }, { - "arg": "momentum", - "type": 1, + "arg": "style1", + "type": 2, "choices": [] }, { - "arg": "hoover", - "type": 1, + "arg": "style2", + "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* style1,style2 = list of one or more angle styles \n", + "examples": "\n```lmps\nangle_style hybrid harmonic cosine\nangle_coeff 1 harmonic 80.0 30.0\nangle_coeff 2* cosine 50.0\n```\n", + "html_filename": "angle_hybrid.html", + "short_description": "The *hybrid* style enables the use of multiple angle styles in one\nsimulation", + "description": "The *hybrid* style enables the use of multiple angle styles in one\nsimulation. An angle style is assigned to each angle type. For\nexample, angles in a polymer flow (of angle type 1) could be computed\nwith a *harmonic* potential and angles in the wall boundary (of angle\ntype 2) could be computed with a *cosine* potential. The assignment\nof angle type to style is made via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand or in the data file.\n\nIn the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands, the name of an angle style must be added\nafter the angle type, with the remaining coefficients being those\nappropriate to that style. In the example above, the 2 angle_coeff\ncommands set angles of angle type 1 to be computed with a *harmonic*\npotential with coefficients 80.0, 30.0 for \\(K\\), \\(\\theta_0\\). All other angle\ntypes \\((2 - N)\\) are computed with a *cosine* potential with coefficient\n50.0 for \\(K\\).\n\nIf angle coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"cosine\", must be added after the angle type, for each\nline in the \"Angle Coeffs\" section, e.g.\n\n```\nAngle Coeffs\n\n1 harmonic 80.0 30.0\n2 cosine 50.0\n...\n```\nIf *class2* is one of the angle hybrid styles, the same rule holds for\nspecifying additional BondBond (and BondAngle) coefficients either via\nthe input script or in the data file. I.e. *class2* must be added to\neach line after the angle type. For lines in the BondBond (or\nBondAngle) section of the data file for angle types that are not\n*class2*, you must use an angle style of *skip* as a placeholder, e.g.\n\n```\nBondBond Coeffs\n\n1 skip\n2 class2 3.6512 1.0119 1.0119\n...\n```\nNote that it is not necessary to use the angle style *skip* in the\ninput script, since BondBond (or BondAngle) coefficients need not be\nspecified at all for angle types that are not *class2* .\n\nAn angle style of *none* with no additional coefficients can be used\nin place of an angle style, either in a input script [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand or in the data file, if you desire to turn off interactions\nfor specific angle types.\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other angle styles, the hybrid angle style does not store angle\ncoefficient info for individual sub-styles in a [binary restart files ](https://docs.lammps.org/restart.html). Thus when restarting a simulation from a restart\nfile, you need to re-specify [angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" +}, +{ + "command": [ + "compute sph/t/atom" + ], + "syntax": [ + "compute ID group-ID sph/t/atom" + ], + "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "AtC control", - "type": 1, - "choices": [] - }, - { - "arg": "momentum", - "type": 1, - "choices": [] - }, - { - "arg": "flux", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "[faceset", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "face_set_id,", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "interpolate]", + "arg": "sph/t/atom", "type": 1, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control = name of the AtC sub-command\n* physics_type = thermal or momentum\n* solution_parameter = max_iterations or tolerance\n* value = solution_parameter value\n* momentum option = none or rescale or glc_displacement or glc_velocity *hoover* or flux\n* frequency = time step frequency for applying displacement and velocity rescaling\n* faceset_id = id of boundary face set (optional, only for *faceset*) \n", - "examples": "\n```lmps\nfix_modify AtC control momentum none\nfix_modify AtC control momentum flux faceset bndy_faces\nfix_modify AtC control momentum glc_velocity\n```\n", - "html_filename": "atc_control_momentum.html", - "short_description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm", - "description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm. Many solution\napproaches require iterative solvers, and these methods enable users to\nprovide the maximum number of iterations and the relative tolerance.\n\nThe *control momentum* version sets the momentum exchange mechanism from\nthe finite elements to the atoms, managed through a control algorithm.\n*rescale* computes a scale factor for each atom to match the finite\nelement temperature. *hoover* is a Gaussian least-constraint isokinetic\nthermostat enforces that the nodal restricted atomic temperature matches\nthe finite element temperature. *flux* is a similar mode, but rather\nadds energy to the atoms based on conservation of energy.\n\n*correction_max_iterations* sets the maximum number of iterations to\ncompute the second order in time correction term for lambda with the\nfractional step method. The method uses the same tolerance as the\ncontroller's matrix solver.\n", - "restrictions": "Only for be used with the specific controllers *thermal* or *momentum*.\nThey are ignored if a lumped solution is requested.\n\n*control momentum* is only for be used with specific transfers: elastic\n*rescale* not valid with time filtering activated\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC control thermal ](https://docs.lammps.org/atc_control_thermal.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/t/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all sph/t/atom\n```\n", + "html_filename": "compute_sph_t_atom.html", + "short_description": "Define a computation that calculates the per-atom internal temperature\nfor each atom in a group", + "description": "Define a computation that calculates the per-atom internal temperature\nfor each atom in a group.\n\nThe internal temperature is the ratio of internal energy over the heat\ncapacity associated with the internal degrees of freedom of an SPH\nparticles, i.e. a Smooth-Particle Hydrodynamics particle.\n\\[\n T_{int} = E_{int} / C_{V,int}\\]\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the internal energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in temperature [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "angle_style charmm", - "angle_style charmm/intel", - "angle_style charmm/kk", - "angle_style charmm/omp" + "special_bonds" ], "syntax": [ - "angle_style charmm" + "special_bonds keyword values ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "special_bonds", "type": 1, "choices": [] }, { - "arg": "charmm", + "arg": "one/five", "type": 3, "choices": [ + "amber", "charmm", - "charmm/intel", - "charmm/kk", - "charmm/omp" + "dreiding", + "fene", + "lj/coul", + "lj", + "coul", + "angle", + "dihedral", + "one/five" ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nangle_style charmm\nangle_coeff 1 300.0 107.0 50.0 3.0\n```\n", - "html_filename": "angle_charmm.html", - "short_description": "The *charmm* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2 + K_{ub} (r - r_{ub})^2\\]\nwith an additional Urey_Bradley term based on the distance \\(r\\) between\nthe first and third atoms in the angle", - "description": "The *charmm* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2 + K_{ub} (r - r_{ub})^2\\]\nwith an additional Urey_Bradley term based on the distance \\(r\\) between\nthe first and third atoms in the angle. \\(K\\), \\(\\theta_0\\),\n\\(K_{ub}\\), and \\(R_{ub}\\) are coefficients defined for each angle\ntype.\n\nSee **angle-MacKerell** for a description of the CHARMM force\nfield.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n* \\(K_{ub}\\) (energy/distance\\^2)\n* \\(r_{ub}\\) (distance)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(angle-MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [pair_style lj/charmm variants ](https://docs.lammps.org/pair_charmm.html),\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html),\n[dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" -}, -{ - "command": [ - "fix freeze", - "fix freeze/kk" - ], - "syntax": [ - "fix ID group-ID freeze" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] }, { - "arg": "group-ID", + "arg": "values", "type": 2, "choices": [] - }, - { - "arg": "freeze", - "type": 3, - "choices": [ - "freeze", - "freeze/kk" - ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* freeze = style name of this fix command \n", - "examples": "\n```lmps\nfix 2 bottom freeze\n```\n", - "html_filename": "fix_freeze.html", - "short_description": "Zero out the force and torque on a granular particle", - "description": "Zero out the force and torque on a granular particle. This is useful\nfor preventing certain particles from moving in a simulation. The\n[granular pair styles ](https://docs.lammps.org/pair_gran.html) also detect if this fix has been\ndefined and compute interactions between frozen and non-frozen\nparticles appropriately, as if the frozen particle has infinite mass.\nA similar functionality for normal (point) particles can be obtained\nusing [fix setforce ](https://docs.lammps.org/fix_setforce.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be a single freeze fix defined. This is because other\nthe [granular pair styles ](https://docs.lammps.org/pair_gran.html) treat frozen particles\ndifferently and need to be able to reference a single group to which\nthis fix is applied.\n", - "related": "[atom_style sphere ](https://docs.lammps.org/atom_style.html), [fix setforce ](https://docs.lammps.org/fix_setforce.html)\n" + "parameters": "* one or more keyword/value pairs may be appended\n* keyword = amber or charmm or dreiding or fene or lj/coul or lj or coul or angle or dihedral or one/five \n *        amber values = none \n *        charmm values = none \n *        dreiding values = none \n *        fene values = none \n *        lj/coul values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Lennard-Jones and Coulombic interactions \n *        lj values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Lennard-Jones interactions \n *        coul values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions \n *        angle value = yes or no \n *        dihedral value = yes or no \n *        one/five value = yes or no \n", + "examples": "\n```lmps\nspecial_bonds amber\nspecial_bonds charmm\nspecial_bonds fene dihedral no\nspecial_bonds lj/coul 0.0 0.0 0.5 angle yes dihedral yes\nspecial_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes\n```\n", + "html_filename": "special_bonds.html", + "short_description": "Set weighting coefficients for pairwise energy and force contributions\nbetween pairs of atoms that are also permanently bonded to each other,\neither directly or via one or two intermediate bonds", + "description": "Set weighting coefficients for pairwise energy and force contributions\nbetween pairs of atoms that are also permanently bonded to each other,\neither directly or via one or two intermediate bonds. These weighting\nfactors are used by nearly all [pair styles ](https://docs.lammps.org/pair_style.html) in\nLAMMPS that compute simple pairwise interactions. Permanent bonds\nbetween atoms are specified by defining the bond topology in the data\nfile read by the [read_data ](https://docs.lammps.org/read_data.html) command. Typically a\n[bond_style ](https://docs.lammps.org/bond_style.html) command is also used to define a bond\npotential. The rationale for using these weighting factors is that\nthe interaction between a pair of bonded atoms is all (or mostly)\nspecified by the bond, angle, dihedral potentials, and thus the\nnon-bonded Lennard-Jones or Coulombic interaction between the pair of\natoms should be excluded (or reduced by a weighting factor).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These weighting factors are NOT used by [pair styles > ](https://docs.lammps.org/pair_style.html) that compute many-body interactions, since the\n > \"bonds\" that result from such interactions are not permanent, but\n > are created and broken dynamically as atom conformations change.\n > Examples of pair styles in this category are EAM, MEAM,\n > Stillinger-Weber, Tersoff, COMB, AIREBO, and ReaxFF. In fact, it\n > generally makes no sense to define permanent bonds between atoms\n > that interact via these potentials, though such bonds may exist\n > elsewhere in your system, e.g. when using the [pair_style > hybrid ](https://docs.lammps.org/pair_hybrid.html) command. Thus LAMMPS ignores special_bonds\n > settings when many-body potentials are calculated. Please note,\n > that the existence of explicit bonds for atoms that are described\n > by a many-body potential will alter the neighbor list and thus can\n > render the computation of those interactions invalid, since those\n > pairs are not only used to determine direct pairwise interactions\n > but also neighbors of neighbors and more. The recommended course\n > of action is to remove such bonds, or - if that is not possible -\n > use a special bonds setting of 1.0 1.0 1.0. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike some commands in LAMMPS, you cannot use this command\n > multiple times in an incremental fashion: e.g. to first set the LJ\n > settings and then the Coulombic ones. Each time you use this\n > command it sets all the coefficients to default values and only\n > overrides the one you specify, so you should set all the options\n > you need each time you use it. See more details at the bottom of\n > this page. \n > \n\nThe Coulomb factors are applied to any Coulomb (charge interaction)\nterm that the potential calculates. The LJ factors are applied to the\nremaining terms that the potential calculates, whether they represent\nLJ interactions or not. The weighting factors are a scaling\nprefactor on the energy and force between the pair of atoms.\n\nA value of 1.0 means include the full interaction without flagging the\npair as a \"special pair\"; a value of 0.0 means exclude the pair\ncompletely from the neighbor list, except for pair styles that require a\n[kspace style ](https://docs.lammps.org/kspace_style.html) and pair styles [amoeba](https://docs.lammps.org/pair_amoeba.html), [hippo ](https://docs.lammps.org/pair_amoeba.html), [thole ](https://docs.lammps.org/pair_thole.html),\n[coul/exclude ](https://docs.lammps.org/pair_coul.html), and pair styles that include\n\"coul/dsf\" or \"coul/wolf\".\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To include pairs that would otherwise be excluded (so they are\n > included in the neighbor list for certain analysis compute styles),\n > you can use a very small but non-zero value like 1.0e-100 instead of\n > 0.0. Due to using floating-point math, the computed force, energy,\n > and virial contributions from the pairs will be too small to cause\n > differences. \n > \n\nThe first of the 3 coefficients (LJ or Coulombic) is the weighting\nfactor on 1-2 atom pairs, which are pairs of atoms directly bonded to\neach other. The second coefficient is the weighting factor on 1-3\natom pairs which are those separated by 2 bonds (e.g. the two H atoms\nin a water molecule). The third coefficient is the weighting factor\non 1-4 atom pairs which are those separated by 3 bonds (e.g. the first\nand fourth atoms in a dihedral interaction). Thus if the 1-2\ncoefficient is set to 0.0, then the pairwise interaction is\neffectively turned off for all pairs of atoms bonded to each other.\nIf it is set to 1.0, then that interaction will be at full strength.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For purposes of computing weighted pairwise interactions, 1-3\n > and 1-4 interactions are not defined from the list of angles or\n > dihedrals used by the simulation. Rather, they are inferred\n > topologically from the set of bonds specified when the simulation is\n > defined from a data or restart file (see [read_data ](https://docs.lammps.org/read_data.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) commands). Thus the set of\n > 1-2,1-3,1-4 interactions that the weights apply to is the same whether\n > angle and dihedral potentials are computed or not, and remains the\n > same even if bonds are constrained, or turned off, or removed during a\n > simulation. \n > \n\nThe two exceptions to this rule are (a) if the *angle* or *dihedral*\nkeywords are set to *yes* (see below), or (b) if the\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) command is used with the *special*\noption that re-computes the 1-2,1-3,1-4 topologies after bonds are\ndeleted; see the [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command for more\ndetails.\n\nThe *amber* keyword sets the 3 coefficients to 0.0, 0.0, 0.5 for LJ\ninteractions and to 0.0, 0.0, 0.8333 for Coulombic interactions, which\nis the default for a commonly used version of the AMBER force field,\nwhere the last value is really 5/6. See **Cornell** for a\ndescription of the AMBER force field.\n\nThe *charmm* keyword sets the 3 coefficients to 0.0, 0.0, 0.0 for both\nLJ and Coulombic interactions, which is the default for a commonly\nused version of the CHARMM force field. Note that in pair styles\n*lj/charmm/coul/charmm* and *lj/charmm/coul/long* the 1-4 coefficients\nare defined explicitly, and these pairwise contributions are computed\nas part of the charmm dihedral style - see the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) and [dihedral_style ](https://docs.lammps.org/dihedral_style.html)\ncommands for more information. See **MacKerell** for a\ndescription of the CHARMM force field.\n\nThe *dreiding* keyword sets the 3 coefficients to 0.0, 0.0, 1.0 for both\nLJ and Coulombic interactions, which is the default for the Dreiding\nforce field, as discussed in **Mayo**.\n\nThe *fene* keyword sets the 3 coefficients to 0.0, 1.0, 1.0 for both\nLJ and Coulombic interactions, which is consistent with a\ncoarse-grained polymer model with [FENE bonds ](https://docs.lammps.org/bond_fene.html). See\n**Kremer** for a description of FENE bonds.\n\nThe *lj/coul*, *lj*, and *coul* keywords allow the 3 coefficients to\nbe set explicitly. The *lj/coul* keyword sets both the LJ and\nCoulombic coefficients to the same 3 values. The *lj* and *coul*\nkeywords only set either the LJ or Coulombic coefficients. Use both\nof them if you wish to set the LJ coefficients to different values\nthan the Coulombic coefficients.\n\nThe *angle* keyword allows the 1-3 weighting factor to be ignored for\nindividual atom pairs if they are not listed as the first and last\natoms in any angle defined in the simulation or as 1,3 or 2,4 atoms in\nany dihedral defined in the simulation. For example, imagine the 1-3\nweighting factor is set to 0.5 and you have a linear molecule with 4\natoms and bonds as follows: 1-2-3-4. If your data file defines 1-2-3\nas an angle, but does not define 2-3-4 as an angle or 1-2-3-4 as a\ndihedral, then the pairwise interaction between atoms 1 and 3 will\nalways be weighted by 0.5, but different force fields use different\nrules for weighting the pairwise interaction between atoms 2 and 4.\nIf the *angle* keyword is specified as *yes*, then the pairwise\ninteraction between atoms 2 and 4 will be unaffected (full weighting\nof 1.0). If the *angle* keyword is specified as *no* which is the\ndefault, then the 2,4 interaction will also be weighted by 0.5.\n\nThe *dihedral* keyword allows the 1-4 weighting factor to be ignored\nfor individual atom pairs if they are not listed as the first and last\natoms in any dihedral defined in the simulation. For example, imagine\nthe 1-4 weighting factor is set to 0.5 and you have a linear molecule\nwith 5 atoms and bonds as follows: 1-2-3-4-5. If your data file\ndefines 1-2-3-4 as a dihedral, but does not define 2-3-4-5 as a\ndihedral, then the pairwise interaction between atoms 1 and 4 will\nalways be weighted by 0.5, but different force fields use different\nrules for weighting the pairwise interaction between atoms 2 and 5.\nIf the *dihedral* keyword is specified as *yes*, then the pairwise\ninteraction between atoms 2 and 5 will be unaffected (full weighting\nof 1.0). If the *dihedral* keyword is specified as *no* which is the\ndefault, then the 2,5 interaction will also be weighted by 0.5.\n\nThe *one/five* keyword enable calculation and storage of a list of 1-5\nneighbors in the molecular topology for each atom. It is required by\nsome pair styles, such as [pair_style amoeba ](https://docs.lammps.org/pair_style.html) and\n[pair_style hippo ](https://docs.lammps.org/pair_style.html).\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS stores and maintains a data structure with a list of the\n > first, second, and third neighbors of each atom (within the bond\n > topology of the system). If new bonds are created (or molecules\n > added containing atoms with more special neighbors), the size of\n > this list needs to grow. Note that adding a single bond always\n > adds a new first neighbor but may also induce \\*many\\* new second\n > and third neighbors, depending on the molecular topology of your\n > system. Using the *extra/special/per/atom* keyword to either\n > [read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html)\n > reserves empty space in the list for this N additional first,\n > second, or third neighbors to be added. If you do not do this, you\n > may get an error when bonds (or molecules) are added. \n > \n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you reuse this command in an input script, you should set all\n > the options you need each time. This command cannot be used a second\n > time incrementally. E.g. these two commands: \n > \n\n\n```lmps\nspecial_bonds lj 0.0 1.0 1.0\nspecial_bonds coul 0.0 0.0 1.0\n```\nare not the same as\n\n```lmps\nspecial_bonds lj 0.0 1.0 1.0 coul 0.0 0.0 1.0\n```\nIn the first case you end up with (after the second command):\n\n```\nLJ: 0.0 0.0 0.0\nCoul: 0.0 0.0 1.0\n```\nwhile only in the second case do you get the desired settings of:\n\n```\nLJ: 0.0 1.0 1.0\nCoul: 0.0 0.0 1.0\n```\nThis happens because the LJ (and Coul) settings are reset to their\ndefault values before modifying them, each time the *special_bonds*\ncommand is issued.\n\n**(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,\nSpellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). \n \n**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). \n \n**(Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n \n**(Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", + "restrictions": "none\n", + "related": "[delete_bonds ](https://docs.lammps.org/delete_bonds.html), [fix bond/create ](https://docs.lammps.org/fix_bond_create.html)\n" }, { "command": [ - "compute improper" + "pair_style lj/mdf", + "pair_style buck/mdf" ], "syntax": [ - "compute ID group-ID improper" + "pair_style style args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "lennard/mdf", + "type": 3, + "choices": [ + "lj/mdf", + "buck/mdf", + "lennard/mdf" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, - { - "arg": "improper", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* improper = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all improper\n```\n", - "html_filename": "compute_improper.html", - "short_description": "Define a computation that extracts the improper energy calculated by\neach of the improper sub-styles used in the [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) command", - "description": "Define a computation that extracts the improper energy calculated by\neach of the improper sub-styles used in the [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) command. These values are made\naccessible for output or further processing by other commands. The\ngroup specified for this command is ignored.\n\nThis compute is useful when using [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) if you want to know the portion of the\ntotal energy contributed by one or more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\) is\nthe number of sub_styles defined by the\n[improper_style hybrid ](https://docs.lammps.org/improper_style.html) command.\nThese styles can be accessed by the indices 1 through \\(N\\).\nThese values can be used by any command that uses global scalar or vector\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" + "parameters": "* style = lj/mdf or buck/mdf or lennard/mdf\n* args = list of arguments for a particular style \n *        lj/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n *        buck/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n *        lennard/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n", + "examples": "\n```lmps\npair_style lj/mdf 2.5 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.1 2.8 3.0 3.2\n\npair_style buck/mdf 2.5 3.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff * * 100.0 1.5 200.0 3.0 3.5\n\npair_style lennard/mdf 2.5 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1021760.3664 2120.317338 3.0 3.2\n```\n", + "html_filename": "pair_mdf.html", + "short_description": "The *lj/mdf*, *buck/mdf* and *lennard/mdf* compute the standard 12-6\nLennard-Jones and Buckingham potential with the addition of a taper\nfunction that ramps the energy and force smoothly to zero between an\ninner and outer cutoff", + "description": "The *lj/mdf*, *buck/mdf* and *lennard/mdf* compute the standard 12-6\nLennard-Jones and Buckingham potential with the addition of a taper\nfunction that ramps the energy and force smoothly to zero between an\ninner and outer cutoff.\n\\[\n E_{smooth}(r) = E(r)*f(r)\\]\nThe tapering, *f(r)*, is done by using the Mei, Davenport, Fernando\nfunction **Mei**.\n\\[\\begin{align*} \n f(r) & = 1.0 \\qquad \\qquad \\mathrm{for} \\qquad r < r_m \\\\\n f(r) & = (1 - x)^3*(1+3x+6x^2) \\quad \\mathrm{for} \\qquad r_m < r < r_{cut} \\\\\n f(r) & = 0.0 \\qquad \\qquad \\mathrm{for} \\qquad r >= r_{cut} \\\\ \\end{align*} \\]\nwhere\n\\[\n x = \\frac{(r-r_m)}{(r_{cut}-r_m)}\\]\nHere \\(r_m\\) is the inner cutoff radius and \\(r_{cut}\\) is the\nouter cutoff radius.\n\n----------\n\nFor the *lj/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard 12-6 Lennard-Jones written in the epsilon/sigma form:\n\\[\n E(r) = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\\]\nEither the first two or all of the following coefficients must be\ndefined for each pair of atoms types via the pair_coeff command as in\nthe examples above, or in the data file read by the [read_data](https://docs.lammps.org/read_data.html). The two cutoffs default to the global values and\n\\(\\epsilon\\) and \\(\\sigma\\) can also be determined by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\nFor the *buck/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard Buckingham potential with three required coefficients.\nThe two cutoffs can be omitted and default to the corresponding\nglobal values:\n\\[\n E(r) = A e^{(-r/\\rho)} -\\frac{C}{r^6}\\]\n* *A* (energy units)\n* \\(\\rho\\) (distance units)\n* *C* (energy-distance\\^6 units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\nFor the *lennard/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard 12-6 Lennard-Jones written in the A/B form:\n\\[\n E(r) = \\frac{A}{r^{12}} - \\frac{B}{r^{6}}\\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the pair_coeff command as in the examples above, or in the\ndata file read by the read_data commands, or by mixing as described below.\nThe two cutoffs default to their global values and must be either both\ngiven or both left out:\n\n* *A* (energy-distance\\^12 units)\n* *B* (energy-distance\\^6 units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the \\(\\epsilon\\) and\n\\(\\sigma\\) coefficients and cutoff distances for the lj/mdf pair\nstyle can be mixed. The default mix value is *geometric* . See the\n\"pair_modify\" command for details. The other two pair styles buck/mdf\nand lennard/mdf do not support mixing, so all I,J pairs of coefficients\nmust be specified explicitly.\n\nNone of the lj/mdf, buck/mdf, or lennard/mdf pair styles supports\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option or long-range\ntail corrections to pressure and energy.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n----------\n\n**(Mei)** Mei, Davenport, Fernando, Phys Rev B, 43 4653 (1991) \n ", + "restrictions": "These pair styles can only be used if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style colloid", - "pair_style colloid/gpu", - "pair_style colloid/omp" + "angle_style cosine/periodic", + "angle_style cosine/periodic/omp" ], "syntax": [ - "pair_style colloid cutoff" + "angle_style cosine/periodic" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "colloid", + "arg": "cosine/periodic", "type": 3, "choices": [ - "colloid", - "colloid/gpu", - "colloid/omp" + "cosine/periodic", + "cosine/periodic/omp" ] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for colloidal interactions (distance units) \n", - "examples": "\n```lmps\npair_style colloid 10.0\npair_coeff * * 25 1.0 10.0 10.0\npair_coeff 1 1 144 1.0 0.0 0.0 3.0\npair_coeff 1 2 75.398 1.0 0.0 10.0 9.0\npair_coeff 2 2 39.478 1.0 10.0 10.0 25.0\n```\n", - "html_filename": "pair_colloid.html", - "short_description": "Style *colloid* computes pairwise interactions between large colloidal\nparticles and small solvent particles using 3 formulas", - "description": "Style *colloid* computes pairwise interactions between large colloidal\nparticles and small solvent particles using 3 formulas. A colloidal\nparticle has a size > sigma; a solvent particle is the usual\nLennard-Jones particle of size sigma.\n\nThe colloid-colloid interaction energy is given by\n\\[\\begin{align*} \n U_A = & - \\frac{A_{cc}}{6} \\left[\n \\frac{2 a_1 a_2}{r^2-\\left(a_1+a_2\\right)^2}\n + \\frac{2 a_1 a_2}{r^2 - \\left(a_1 - a_2\\right)^2}\n + \\mathrm{ln}\n \\left(\n \\frac{r^2-\\left(a_1+a_2\\right)^2}{r^2-\\left(a_1-a_2\\right)^2}\n \\right)\n \\right] \\\\\n & \\\\\n U_R = & \\frac{A_{cc}}{37800} \\frac{\\sigma^6}{r}\n \\biggl[ \\frac{r^2-7r\\left(a_1+a_2\\right)+6\\left(a_1^2+7a_1a_2+a_2^2\\right)}\n {\\left(r-a_1-a_2\\right)^7} \\\\\n &\\qquad +\\frac{r^2+7r\\left(a_1+a_2\\right)+6\\left(a_1^2+7a_1a_2+a_2^2\\right)}\n {\\left(r+a_1+a_2\\right)^7} \\\\\n &\\qquad -\\frac{r^2+7r\\left(a_1-a_2\\right)+6\\left(a_1^2-7a_1a_2+a_2^2\\right)}\n {\\left(r+a_1-a_2\\right)^7} \\\\\n &\\qquad \\left. -\\frac{r^2-7r\\left(a_1-a_2\\right)+6\\left(a_1^2-7a_1a_2+a_2^2\\right)}\n {\\left(r-a_1+a_2\\right)^7}\n \\right] \\\\\n & \\\\\n U = & U_A + U_R, \\qquad r < r_c \\end{align*} \\]\nwhere \\(A_{cc}\\) is the Hamaker constant, \\(a_1\\) and \\(a_2\\) are the\nradii of the two colloidal particles, and \\(r_c\\) is the cutoff. This\nequation results from describing each colloidal particle as an\nintegrated collection of Lennard-Jones particles of size sigma and is\nderived in **Everaers1**.\n\nThe colloid-solvent interaction energy is given by\n\\[\n U = \\frac{2 ~ a^3 ~ \\sigma^3 ~ A_{cs}}{9 \\left( a^2 - r^2 \\right)^3}\n \\left[ 1 - \\frac{\\left(5 ~ a^6+45~a^4~r^2+63~a^2~r^4+15~r^6\\right) \\sigma^6}\n {15 \\left(a-r\\right)^6 \\left( a+r \\right)^6} \\right], \\quad r < r_c\\]\nwhere \\(A_{cs}\\) is the Hamaker constant, *a* is the radius of the colloidal\nparticle, and \\(r_c\\) is the cutoff. This formula is derived from the\ncolloid-colloid interaction, letting one of the particle sizes go to\nzero.\n\nThe solvent-solvent interaction energy is given by the usual\nLennard-Jones formula\n\\[\n U = \\frac{A_{ss}}{36} \\left[ \\left( \\frac{\\sigma}{r}\n \\right)^{12} - \\left( \\frac{ \\sigma}{r} \\right)^6 \\right], \\quad\n r < r_c\\]\nwith \\(A_{ss}\\) set appropriately, which results from letting both\nparticle sizes go to zero.\n\nWhen used in combination with [pair_style yukawa/colloid](https://docs.lammps.org/pair_yukawa_colloid.html), the two terms become the so-called DLVO potential,\nwhich combines electrostatic repulsion and van der Waals attraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* \\(\\sigma\\) (distance units)\n* d1 (distance units)\n* d2 (distance units)\n* cutoff (distance units)\n\nA is the Hamaker energy prefactor and should typically be set as\nfollows:\n\n* \\(A_{cc}\\) = colloid/colloid = \\(4 \\pi^2 = 39.5\\)\n* \\(A_{cs}\\) = colloid/solvent = \\(\\sqrt{A_{cc} A_{ss}}\\)\n* \\(A_{ss}\\) = solvent/solvent = 144 (assuming epsilon = 1, so that 144/36 = 4)\n\n\\(\\sigma\\) is the size of the solvent particle or the constituent\nparticles integrated over in the colloidal particle and should typically\nbe set as follows:\n\n* \\(\\sigma_{cc}\\) = colloid/colloid = 1.0\n* \\(\\sigma_{cs}\\) = colloid/solvent = arithmetic mixing between colloid \\(\\sigma\\) and solvent \\(\\sigma\\)\n* \\(\\sigma_{ss}\\) = solvent/solvent = 1.0 or whatever size the solvent particle is\n\nThus typically \\(\\sigma_{cs} = 1.0\\), unless the solvent particle's size !=\n1.0.\n\nD1 and d2 are particle diameters, so that d1 = 2\\*a1 and d2 = 2\\*a2 in\nthe formulas above. Both d1 and d2 must be values >= 0. If d1 > 0\nand d2 > 0, then the pair interacts via the colloid-colloid formula\nabove. If d1 = 0 and d2 = 0, then the pair interacts via the\nsolvent-solvent formula. I.e. a d value of 0 is a Lennard-Jones\nparticle of size \\(\\sigma\\). If either d1 = 0 or d2 = 0 and the other is\nlarger, then the pair interacts via the colloid-solvent formula.\n\nNote that the diameter of a particular particle type may appear in\nmultiple pair_coeff commands, as it interacts with other particle\ntypes. You should ensure the particle diameter is specified\nconsistently each time it appears.\n\nThe last coefficient is optional. If not specified, the global cutoff\nspecified in the pair_style command is used. However, you typically\nwant different cutoffs for interactions between different particle\nsizes. E.g. if colloidal particles of diameter 10 are used with\nsolvent particles of diameter 1, then a solvent-solvent cutoff of 2.5\nwould correspond to a colloid-colloid cutoff of 25. A good\nrule-of-thumb is to use a colloid-solvent cutoff that is half the big\ndiameter + 4 times the small diameter. I.e. 9 = 5 + 4 for the\ncolloid-solvent cutoff in this case.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using pair_style colloid for a mixture with 2 (or more)\n > widely different particles sizes (e.g. sigma=10 colloids in a\n > background sigma=1 LJ fluid), you will likely want to use these\n > commands for efficiency: [neighbor multi ](https://docs.lammps.org/neighbor.html) and\n > [comm_modify multi ](https://docs.lammps.org/comm_modify.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A, sigma, d1, and d2\ncoefficients and cutoff distance for this pair style can be mixed. A\nis an energy value mixed like a LJ epsilon. D1 and d2 are distance\nvalues and are mixed like sigma. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Everaers1)** Everaers, Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", - "restrictions": "This style is part of the COLLOID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nNormally, this pair style should be used with finite-size particles\nwhich have a diameter, e.g. see the [atom_style sphere ](https://docs.lammps.org/atom_style.html) command. However, this is not a requirement,\nsince the only definition of particle size is via the pair_coeff\nparameters for each type. In other words, the physical radius of the\nparticle is ignored. Thus you should ensure that the d1,d2 parameters\nyou specify are consistent with the physical size of the particles of\nthat type.\n\nPer-particle polydispersity is not yet supported by this pair style;\nonly per-type polydispersity is enabled via the pair_coeff parameters.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/periodic\nangle_coeff * 75.0 1 6\n```\n", + "html_filename": "angle_cosine_periodic.html", + "short_description": "The *cosine/periodic* angle style uses the following potential, which may be\nparticularly used for organometallic systems where \\(n\\) = 4 might be used\nfor an octahedral complex and \\(n\\) = 3 might be used for a trigonal\ncenter:\n\\[\n E = \\frac{2.0}{n^2} * C \\left[ 1 - B(-1)^n\\cos\\left( n\\theta\\right) \\right]\\]\nwhere \\(C\\), \\(B\\) and \\(n\\) are coefficients defined for each angle type", + "description": "The *cosine/periodic* angle style uses the following potential, which may be\nparticularly used for organometallic systems where \\(n\\) = 4 might be used\nfor an octahedral complex and \\(n\\) = 3 might be used for a trigonal\ncenter:\n\\[\n E = \\frac{2.0}{n^2} * C \\left[ 1 - B(-1)^n\\cos\\left( n\\theta\\right) \\right]\\]\nwhere \\(C\\), \\(B\\) and \\(n\\) are coefficients defined for each angle type.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(C\\) (energy)\n* \\(B\\) = 1 or -1\n* \\(n\\) = 1, 2, 3, 4, 5 or 6 for periodicity\n\nNote that the prefactor \\(C\\) is specified as coefficient and not the overall force\nconstant \\(K = \\frac{2 C}{n^2}\\). When \\(B = 1\\), it leads to a minimum for the\nlinear geometry. When \\(B = -1\\), it leads to a maximum for the linear geometry.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix wall/body/polyhedron" + "neb" ], "syntax": [ - "fix ID group-ID wall/body/polyhedron k_n c_n c_t wallstyle args keyword values ..." + "neb etol ftol N1 N2 Nevery file-style arg keyword values" ], "args": [ [ { - "arg": "fix", + "arg": "neb", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "etol", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "ftol", "type": 2, "choices": [] }, { - "arg": "wall/body/polyhedron", - "type": 1, - "choices": [] - }, - { - "arg": "k_n", + "arg": "N1", "type": 2, "choices": [] }, { - "arg": "c_n", + "arg": "N2", "type": 2, "choices": [] }, { - "arg": "c_t", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "zplane", + "arg": "none", "type": 3, "choices": [ - "xplane", - "yplane", - "zplane" + "final", + "each", + "none" ] }, { - "arg": "args", + "arg": "arg", "type": 2, "choices": [] }, @@ -1636,25 +1422,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/body/polyhedron = style name of this fix command\n* k_n = normal repulsion strength (force/distance units or pressure units - see discussion below)\n* c_n = normal damping coefficient (force/distance units or pressure units - see discussion below)\n* c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below)\n* wallstyle = xplane or yplane or zplane\n* args = list of arguments for a particular style \n *        xplane or yplane or zplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle \n *        wiggle values = dim amplitude period \n         dim = x or y or z \n         amplitude = size of oscillation (distance units) \n         period = time of oscillation (time units) \n", - "examples": "\n```lmps\nfix 1 all wall/body/polyhedron 1000.0 20.0 5.0 xplane -10.0 10.0\n```\n", - "html_filename": "fix_wall_body_polyhedron.html", - "short_description": "This fix is for use with 3d models of body particles of style\n*rounded/polyhedron* ", - "description": "This fix is for use with 3d models of body particles of style\n*rounded/polyhedron* . It bounds the simulation domain with wall(s).\nAll particles in the group interact with the wall when they are close\nenough to touch it. The nature of the interaction between the wall\nand the polygon particles is the same as that between the polygon\nparticles themselves, which is similar to a Hookean potential. See\nthe [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using\nbody particles.\n\nThe parameters *k_n*, *c_n*, *c_t* have the same meaning and units as\nthose specified with the [pair_style body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html) command.\n\nThe *wallstyle* can be planar or cylindrical. The 3 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired.\n\nOptionally, the wall can be moving, if the *wiggle* keyword is appended.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\nparticles. The arguments to the *wiggle* keyword specify a dimension\nfor the motion, as well as it's *amplitude* and *period* . Note that\nif the dimension is in the plane of the wall, this is effectively a\nshearing motion. If the dimension is perpendicular to the wall, it is\nmore of a shaking motion.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xyz) that has a wall must be non-periodic.\n", - "related": "[atom_style body ](https://docs.lammps.org/atom_style.html), [pair_style body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html)\n" + "parameters": "* etol = stopping tolerance for energy (dimensionless)\n* ftol = stopping tolerance for force (force units)\n* N1 = max # of iterations (timesteps) to run initial NEB\n* N2 = max # of iterations (timesteps) to run barrier-climbing NEB\n* Nevery = print replica energies and reaction coordinates every this many timesteps\n* file-style = final or each or none \n *        final arg = filename \n         filename = file with initial coords for final replica \n         coords for intermediate replicas are linearly interpolated \n         between first and last replica \n *        each arg = filename \n         filename = unique filename for each replica (except first) \n         with its initial coords \n *        none arg = no argument all replicas assumed to already have \n         their initial coords \n* zero or more keyword/value pairs may be appended\n* keyword = verbosity \n *      verbosity value = verbose or default or terse \n       verbose = very detailed per-replica output \n       default = some per-replica output \n       terse = only global state output \n", + "examples": "\n```lmps\nneb 0.1 0.0 1000 500 50 final coords.final\nneb 0.0 0.001 1000 500 50 each coords.initial.$i\nneb 0.0 0.001 1000 500 50 none verbose\n```\n", + "html_filename": "neb.html", + "short_description": "Perform a nudged elastic band (NEB) calculation using multiple\nreplicas of a system", + "description": "Perform a nudged elastic band (NEB) calculation using multiple\nreplicas of a system. Two or more replicas must be used; the first\nand last are the end points of the transition path.\n\nNEB is a method for finding both the atomic configurations and height of\nthe energy barrier associated with a transition state, e.g. for an atom\nto perform a diffusive hop from one energy basin to another in a\ncoordinated fashion with its neighbors. The implementation in LAMMPS\nfollows the discussion in these 4 papers: **HenkelmanA**, **HenkelmanB**, **Nakano3** and **Maras2**.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partitioncommand-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI\ninstalled, you can run a multi-replica simulation with more replicas\n(partitions) than you have physical processors, e.g you can run a\n10-replica simulation on just one or two processors. You will simply\nnot get the performance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As explained below, a NEB calculation performs a damped dynamics\n > minimization across all the replicas. The minimizer uses whatever\n > timestep you have defined in your input script, via the\n > [timestep ](https://docs.lammps.org/timestep.html) command. Often NEB will converge more\n > quickly if you use a timestep about 10x larger than you would normally\n > use for dynamics simulations. \n > \n\nWhen a NEB calculation is performed, it is assumed that each replica\nis running the same system, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of atoms, the interaction\npotentials, and the starting configuration when the neb command is\nissued should be the same for every replica.\n\nIn a NEB calculation each replica is connected to other replicas by\ninter-replica nudging forces. These forces are imposed by the\n[fix neb ](https://docs.lammps.org/fix_neb.html) command, which must be used in conjunction\nwith the neb command. The group used to define the fix neb command\ndefines the NEB atoms which are the only ones that inter-replica springs\nare applied to. If the group does not include all atoms, then non-NEB\natoms have no inter-replica springs and the forces they feel and their\nmotion is computed in the usual way due only to other atoms within\ntheir replica. Conceptually, the non-NEB atoms provide a background\nforce field for the NEB atoms. They can be allowed to move during the\nNEB minimization procedure (which will typically induce different\ncoordinates for non-NEB atoms in different replicas), or held fixed\nusing other LAMMPS commands such as [fix setforce ](https://docs.lammps.org/fix_setforce.html).\nNote that the [partition ](https://docs.lammps.org/partition.html) command can be used to invoke\na command on a subset of the replicas, e.g. if you wish to hold NEB or\nnon-NEB atoms fixed in only the end-point replicas.\n\nThe initial atomic configuration for each of the replicas can be\nspecified in different manners via the *file-style* setting, as\ndiscussed below. Only atoms whose initial coordinates should differ\nfrom the current configuration need be specified.\n\nConceptually, the initial and final configurations for the first\nreplica should be states on either side of an energy barrier.\n\nAs explained below, the initial configurations of intermediate\nreplicas can be atomic coordinates interpolated in a linear fashion\nbetween the first and last replicas. This is often adequate for\nsimple transitions. For more complex transitions, it may lead to slow\nconvergence or even bad results if the minimum energy path (MEP, see\nbelow) of states over the barrier cannot be correctly converged to\nfrom such an initial path. In this case, you will want to generate\ninitial states for the intermediate replicas that are geometrically\ncloser to the MEP and read them in.\n\n----------\n\nFor a *file-style* setting of *final*, a filename is specified which\ncontains atomic coordinates for zero or more atoms, in the format\ndescribed below. For each atom that appears in the file, the new\ncoordinates are assigned to that atom in the final replica. Each\nintermediate replica also assigns a new position to that atom in an\ninterpolated manner. This is done by using the current position of\nthe atom as the starting point and the read-in position as the final\npoint. The distance between them is calculated, and the new position\nis assigned to be a fraction of the distance. E.g. if there are 10\nreplicas, the second replica will assign a position that is 10% of the\ndistance along a line between the starting and final point, and the\n9th replica will assign a position that is 90% of the distance along\nthe line. Note that for this procedure to produce consistent\ncoordinates across all the replicas, the current coordinates need to\nbe the same in all replicas. LAMMPS does not check for this, but\ninvalid initial configurations will likely result if it is not the\ncase.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"distance\" between the starting and final point is\n > calculated in a minimum-image sense for a periodic simulation box.\n > This means that if the two positions are on opposite sides of a box\n > (periodic in that dimension), the distance between them will be small,\n > because the periodic image of one of the atoms is close to the other.\n > Similarly, even if the assigned position resulting from the\n > interpolation is outside the periodic box, the atom will be wrapped\n > back into the box when the NEB calculation begins. \n > \n\nFor a *file-style* setting of *each*, a filename is specified which is\nassumed to be unique to each replica. This can be done by using a\nvariable in the filename, e.g.\n\n```lmps\nvariable i equal part\nneb 0.0 0.001 1000 500 50 each coords.initial.$i\n```\nwhich in this case will substitute the partition ID (0 to N-1) for the\nvariable I, which is also effectively the replica ID. See the\n[variable ](https://docs.lammps.org/variable.html) command for other options, such as using\nworld-, universe-, or uloop-style variables.\n\nEach replica (except the first replica) will read its file, formatted\nas described below, and for any atom that appears in the file, assign\nthe specified coordinates to its atom. The various files do not need\nto contain the same set of atoms.\n\nFor a *file-style* setting of *none*, no filename is specified. Each\nreplica is assumed to already be in its initial configuration at the\ntime the neb command is issued. This allows each replica to define\nits own configuration by reading a replica-specific data or restart or\ndump file, via the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [read_dump ](https://docs.lammps.org/read_dump.html)\ncommands. The replica-specific names of these files can be specified\nas in the discussion above for the *each* file-style. Also see the\nsection below for how a NEB calculation can produce restart files, so\nthat a long calculation can be restarted if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >None of the *file-style* settings change the initial\n > configuration of any atom in the first replica. The first replica\n > must thus be in the correct initial configuration at the time the neb\n > command is issued. \n > \n\n----------\n\nA NEB calculation proceeds in two stages, each of which is a\nminimization procedure, performed via damped dynamics. To enable\nthis, you must first define a damped dynamics\n[min_style ](https://docs.lammps.org/min_style.html), such as *quickmin* or *fire* . The *cg*,\n*sd*, and *hftn* styles cannot be used, since they perform iterative\nline searches in their inner loop, which cannot be easily synchronized\nacross multiple replicas.\n\nThe minimizer tolerances for energy and force are set by *etol* and\n*ftol*, the same as for the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nA non-zero *etol* means that the NEB calculation will terminate if the\nenergy criterion is met by every replica. The energies being compared\nto *etol* do not include any contribution from the inter-replica\nnudging forces, since these are non-conservative. A non-zero *ftol*\nmeans that the NEB calculation will terminate if the force criterion\nis met by every replica. The forces being compared to *ftol* include\nthe inter-replica nudging forces.\n\nThe maximum number of iterations in each stage is set by *N1* and\n*N2* . These are effectively timestep counts since each iteration of\ndamped dynamics is like a single timestep in a dynamics\n[run ](https://docs.lammps.org/run.html). During both stages, the potential energy of each\nreplica and its normalized distance along the reaction path (reaction\ncoordinate RD) will be printed to the screen and log file every\n*Nevery* timesteps. The RD is 0 and 1 for the first and last replica.\nFor intermediate replicas, it is the cumulative distance (normalized\nby the total cumulative distance) between adjacent replicas, where\n\"distance\" is defined as the length of the 3N-vector of differences in\natomic coordinates, where N is the number of NEB atoms involved in the\ntransition. These outputs allow you to monitor NEB's progress in\nfinding a good energy barrier. *N1* and *N2* must both be multiples\nof *Nevery* .\n\nIn the first stage of NEB, the set of replicas should converge toward\na minimum energy path (MEP) of conformational states that transition\nover a barrier. The MEP for a transition is defined as a sequence of\n3N-dimensional states, each of which has a potential energy gradient\nparallel to the MEP itself. The configuration of highest energy along\na MEP corresponds to a saddle point. The replica states will also be\nroughly equally spaced along the MEP due to the inter-replica nudging\nforce added by the [fix neb ](https://docs.lammps.org/fix_neb.html) command.\n\nIn the second stage of NEB, the replica with the highest energy is\nselected and the inter-replica forces on it are converted to a force\nthat drives its atom coordinates to the top or saddle point of the\nbarrier, via the barrier-climbing calculation described in\n**HenkelmanB**. As before, the other replicas rearrange\nthemselves along the MEP so as to be roughly equally spaced.\n\nWhen both stages are complete, if the NEB calculation was successful,\nthe configurations of the replicas should be along (close to) the MEP\nand the replica with the highest energy should be an atomic\nconfiguration at (close to) the saddle point of the transition. The\npotential energies for the set of replicas represents the energy\nprofile of the transition along the MEP.\n\n----------\n\nA few other settings in your input script are required or advised to\nperform a NEB calculation. See the NOTE about the choice of timestep\nat the beginning of this doc page.\n\nAn atom map must be defined which it is not by default for [atom_style atomic ](https://docs.lammps.org/atom_style.html) problems. The [atom_modify map ](https://docs.lammps.org/atom_modify.html) command can be used to do this.\n\nThe minimizers in LAMMPS operate on all atoms in your system, even\nnon-NEB atoms, as defined above. To prevent non-NEB atoms from moving\nduring the minimization, you should use the [fix setforce ](https://docs.lammps.org/fix_setforce.html) command to set the force on each of those\natoms to 0.0. This is not required, and may not even be desired in\nsome cases, but if those atoms move too far (e.g. because the initial\nstate of your system was not well-minimized), it can cause problems\nfor the NEB procedure.\n\nThe damped dynamics [minimizers ](https://docs.lammps.org/min_style.html), such as *quickmin*\nand *fire* ), adjust the position and velocity of the atoms via an\nEuler integration step. Thus you must define an appropriate\n[timestep ](https://docs.lammps.org/timestep.html) to use with NEB. As mentioned above, NEB\nwill often converge more quickly if you use a timestep about 10x\nlarger than you would normally use for dynamics simulations.\n\n----------\n\nEach file read by the neb command containing atomic coordinates used\nto initialize one or more replicas must be formatted as follows.\n\nThe file can be ASCII text or a gzipped text file (detected by a .gz\nsuffix). The file can contain initial blank lines or comment lines\nstarting with \"#\" which are ignored. The first non-blank, non-comment\nline should list N = the number of lines to follow. The N successive\nlines contain the following information:\n\n```\nID1 x1 y1 z1\nID2 x2 y2 z2\n...\nIDN xN yN zN\n```\nThe fields are the atom ID, followed by the x,y,z coordinates. The\nlines can be listed in any order. Additional trailing information on\nthe line is OK, such as a comment.\n\nNote that for a typical NEB calculation you do not need to specify\ninitial coordinates for very many atoms to produce differing starting\nand final replicas whose intermediate replicas will converge to the\nenergy barrier. Typically only new coordinates for atoms\ngeometrically near the barrier need be specified.\n\nAlso note there is no requirement that the atoms in the file\ncorrespond to the NEB atoms in the group defined by the [fix neb ](https://docs.lammps.org/fix_neb.html) command. Not every NEB atom need be in the file,\nand non-NEB atoms can be listed in the file.\n\n----------\n\nFour kinds of output can be generated during a NEB calculation: energy\nbarrier statistics, thermodynamic output by each replica, dump files,\nand restart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file\ncontains a line of output, printed once every *Nevery* timesteps. The\namount of information printed in this line can be selected with the\n*verbosity* keyword. Available options are *terse*, *default*, and\n*verbose*.\n\nWith the *terse* setting, it contains the timestep, the maximum force of\na replica, the maximum force per atom (in any replica), potential\ngradients in the initial, final, and climbing replicas, the forward and\nbackward energy barriers, the total reaction coordinate (RDT).\n\nWith the *default* setting, additionally the normalized\nreaction coordinate and potential energy of each replica are printed.\n\nWith the *verbose* setting, additional per-replica properties are\nprinted: the \"path angle\" (pathangle), the angle between the 3N-length\ntangent vector and the 3N-length force vector at image *i*\n(angletangrad), the angle between the 3N-length energy gradient vector\nof replica *i* and that of replica *i* +1 (anglegrad), the norm of the\nenergy gradient (gradV), the the two-norm of the 3N-length force vector\n(RepForce), and the maximum force component of any atom (MaxAtomForce).\n\nThe \"maximum force per replica\" is the two-norm of the 3N-length force\nvector for the atoms in each replica, maximized across replicas, which\nis what the *ftol* setting is checking against. In this case, N is\nall the atoms in each replica. The \"maximum force per atom\" is the\nmaximum force component of any atom in any replica. The potential\ngradients are the two-norm of the 3N-length force vector solely due to\nthe interaction potential i.e. without adding in inter-replica\nforces.\n\nThe \"reaction coordinate\" (RD) for each replica is the two-norm of the\n3N-length vector of distances between its atoms and the preceding\nreplica's atoms, added to the RD of the preceding replica. The RD of\nthe first replica RD1 = 0.0; the RD of the final replica RDN = RDT,\nthe total reaction coordinate. The normalized RDs are divided by RDT,\nso that they form a monotonically increasing sequence from zero to\none. When computing RD, N only includes the atoms being operated on by\nthe fix neb command.\n\nThe forward (reverse) energy barrier is the potential energy of the\nhighest replica minus the energy of the first (last) replica.\n\nThe \"path angle\" (pathangle) for the replica i which is the angle\nbetween the 3N-length vectors \\((R_{i-1} - R_i)\\) and\n\\((R_{i+1} - R_i)\\) (where \\(R_i\\) is the atomic coordinates of\nreplica *i*). A \"path angle\" of 180 indicates that replicas *i* -1, *i*\nand *i* +1 are aligned. \"angletangrad\" is the angle between the\n3N-length tangent vector and the 3N-length force vector at image\n*i*. The tangent vector is calculated as in **HenkelmanA** for all intermediate replicas and at R2 - R1 and RM - RM-1\nfor the first and last replica, respectively. \"anglegrad\" is the angle\nbetween the 3N-length energy gradient vector of replica *i* and that of\nreplica *i* +1. It is not defined for the final replica and reads nan.\ngradV is the norm of the energy gradient of image *i* (\\(\\nabla\nV\\)). ReplicaForce is the two-norm of the 3N-length force vector\n(including nudging forces) for replica *i*. MaxAtomForce is the maximum\nforce component of any atom in replica *i*.\n\nWhen a NEB calculation does not converge properly, the supplementary\ninformation can help understanding what is going wrong. For instance\nwhen the path angle becomes acute, the definition of tangent used in\nthe NEB calculation is questionable and the NEB cannot may diverge\n**Maras2**.\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a\nNEB calculation, these contain the thermodynamic output for each\nreplica.\n\nIf [dump ](https://docs.lammps.org/dump.html) commands in the input script define a filename\nthat includes a *universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html),\nthen one dump file (per dump command) will be created for each\nreplica. At the end of the NEB calculation, the final snapshot in\neach file will contain the sequence of snapshots that transition the\nsystem over the energy barrier. Earlier snapshots will show the\nconvergence of the replicas to the MEP.\n\nLikewise, [restart ](https://docs.lammps.org/restart.html) filenames can be specified with a\n*universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html), to generate\nrestart files for each replica. These may be useful if the NEB\ncalculation fails to converge properly to the MEP, and you wish to\nrestart the calculation from an intermediate point with altered\nparameters.\n\nThere are 2 Python scripts provided in the tools/python directory,\nneb_combine.py and neb_final.py, which are useful in analyzing output\nfrom a NEB calculation. Assume a NEB simulation with M replicas, and\nthe NEB atoms labeled with a specific atom type.\n\nThe neb_combine.py script extracts atom coords for the NEB atoms from\nall M dump files and creates a single dump file where each snapshot\ncontains the NEB atoms from all the replicas and one copy of non-NEB\natoms from the first replica (presumed to be identical in other\nreplicas). This can be visualized/animated to see how the NEB atoms\nrelax as the NEB calculation proceeds.\n\nThe neb_final.py script extracts the final snapshot from each of the M\ndump files to create a single dump file with M snapshots. This can be\nvisualized to watch the system make its transition over the energy\nbarrier.\n\nTo illustrate, here are images from the final snapshot produced by the\nneb_combine.py script run on the dump files produced by the two\nexample input scripts in examples/neb.\n \n | | | \n |---|---| \n | ![Image](img/hop1.jpg) | ![Image](img/hop2.jpg) | \n\n\n----------\n\n**(HenkelmanA)** Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000). \n \n**(HenkelmanB)** Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,\n9901-9904 (2000). \n \n**(Nakano3)** Nakano, Comp Phys Comm, 178, 280-289 (2008). \n \n**(Maras2)** Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,\nComp Phys Comm, 205, 13-21 (2016) \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n----------\n", + "related": "[prd ](https://docs.lammps.org/prd.html), [temper ](https://docs.lammps.org/temper.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix neb ](https://docs.lammps.org/fix_neb.html)\n" }, { "command": [ - "fix srd" + "compute ptm/atom" ], "syntax": [ - "fix ID group-ID srd N groupbig-ID Tsrd hgrid seed keyword value ..." + "compute ID group-ID ptm/atom structures threshold group2-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -1669,145 +1455,132 @@ export const command_docs = [ "choices": [] }, { - "arg": "srd", + "arg": "ptm/atom", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "groupbig-ID", - "type": 2, - "choices": [] + "arg": "all", + "type": 3, + "choices": [ + "default", + "all" + ] }, { - "arg": "Tsrd", + "arg": "threshold", "type": 2, "choices": [] }, { - "arg": "hgrid", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] - }, - { - "arg": "rescale", - "type": 3, - "choices": [ - "lamda", - "collision", - "overlap", - "inside", - "exact", - "radius", - "bounce", - "search", - "cubic", - "shift", - "tstat", - "rescale" - ] - }, - { - "arg": "value", + "arg": "group2-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* srd = style name of this fix command\n* N = reset SRD particle velocities every this many timesteps\n* groupbig-ID = ID of group of large particles that SRDs interact with\n* Tsrd = temperature of SRD particles (temperature units)\n* hgrid = grid spacing for SRD grouping (distance units)\n* seed = random # seed (positive integer)\n\n* zero or more keyword/value pairs may be appended\n* keyword = lamda or collision or overlap or inside or exact or radius or bounce or search or cubic or shift or tstat or rescale \n *        lamda value = mean free path of SRD particles (distance units) \n *        collision value = noslip or slip = collision model \n *        overlap value = yes or no = whether big particles may overlap \n *        inside value = error or warn or ignore = how SRD particles which end up inside a big particle are treated \n *        exact value = yes or no \n *        radius value = rfactor = scale collision radius by this factor \n *        bounce value = Nbounce = max # of collisions an SRD particle can undergo in one timestep \n *        search value = sgrid = grid spacing for collision partner searching (distance units) \n *        cubic values = style tolerance \n         style = error or warn \n         tolerance = fractional difference allowed (0 <= tol <= 1) \n *        shift values = flag shiftseed \n         flag = yes or no or possible = SRD bin shifting for better statistics \n         yes = perform bin shifting each time SRD velocities are rescaled \n         no = no shifting \n         possible = shift depending on mean free path and bin size \n         shiftseed = random # seed (positive integer) \n *        tstat value = yes or no = thermostat SRD particles or not \n *        rescale value = yes or no or rotate or collide = rescaling of SRD velocities \n         yes = rescale during velocity rotation and collisions \n         no = no rescaling \n         rotate = rescale during velocity rotation, but not collisions \n         collide = rescale during collisions, but not velocity rotation \n", - "examples": "\n```lmps\nfix 1 srd srd 10 big 1.0 0.25 482984\nfix 1 srd srd 10 big 0.5 0.25 482984 collision slip search 0.5\n```\n", - "html_filename": "fix_srd.html", - "short_description": "Treat a group of particles as stochastic rotation dynamics (SRD)\nparticles that serve as a background solvent when interacting with big\n(colloidal) particles in groupbig-ID", - "description": "Treat a group of particles as stochastic rotation dynamics (SRD)\nparticles that serve as a background solvent when interacting with big\n(colloidal) particles in groupbig-ID. The SRD formalism is described\nin **Hecht**. The same methodology is also called\nmulti-particle collision dynamics (MPCD) in the literature.\n\nThe key idea behind using SRD particles as a cheap coarse-grained\nsolvent is that SRD particles do not interact with each other, but\nonly with the solute particles, which in LAMMPS can be spheroids,\nellipsoids, or line segments, or triangles, or rigid bodies containing\nmultiple spheroids or ellipsoids or line segments or triangles. The\ncollision and rotation properties of the model imbue the SRD particles\nwith fluid-like properties, including an effective viscosity. Thus\nsimulations with large solute particles can be run more quickly, to\nmeasure solute properties like diffusivity and viscosity in a\nbackground fluid. The usual LAMMPS fixes for such simulations, such\nas [fix deform ](https://docs.lammps.org/fix_deform.html), [fix viscosity](https://docs.lammps.org/fix_viscosity.html), and [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), can be\nused in conjunction with the SRD model.\n\nThese 3 papers give more details on how the SRD model is implemented\nin LAMMPS. **Petersen1** describes pure SRD fluid\nsystems. **Bolintineanu1** describes models\nwhere pure SRD fluids interact with boundary walls.\n**Bolintineanu2** describes mixture models where\nlarge colloidal particles are solvated by an SRD fluid. See the\n``examples/srd`` directory for sample input scripts.\n\nThis fix does two things:\n\n 1. It advects the SRD particles, performing collisions between SRD\n and big particles or walls every timestep, imparting force and torque\n to the big particles. Collisions also change the position and\n velocity of SRD particles.\n\n 2. It resets the velocity distribution of SRD particles via random\n rotations every N timesteps.\n\nSRD particles have a mass, temperature, characteristic timestep\n\\(dt_{SRD}\\), and mean free path between collisions\n(\\(\\lambda\\)). The fundamental equation relating these 4 quantities\nis\n\\[\n \\lambda = dt_{SRD} \\sqrt{\\frac{k_B T_{SRD}}{m}}\\]\nThe mass *m* of SRD particles is set by the [mass ](https://docs.lammps.org/mass.html) command\nelsewhere in the input script. The SRD timestep \\(dt_{SRD}\\) is N\ntimes the step *dt* defined by the [timestep ](https://docs.lammps.org/timestep.html) command.\nBig particles move in the normal way via a time integration [fix](https://docs.lammps.org/fix.html) with a short timestep dt. SRD particles advect with a large\ntimestep \\(dt_{SRD} \\ge dt\\).\n\nIf the *lamda* keyword is not specified, the SRD temperature\n\\(T_{SRD}\\) is used in the above formula to compute \\(\\lambda\\).\nIf the *lamda* keyword is specified, then the *Tsrd* setting is ignored\nand the above equation is used to compute the SRD temperature.\n\nThe characteristic length scale for the SRD fluid is set by *hgrid*\nwhich is used to bin SRD particles for purposes of resetting their\nvelocities. Normally hgrid is set to be 1/4 of the big particle\ndiameter or smaller, to adequately resolve fluid properties around the\nbig particles.\n\n\\(\\lambda\\) cannot be smaller than 0.6 \\* hgrid, else an error is\ngenerated (unless the *shift* keyword is used, see below). The\nvelocities of SRD particles are bounded by Vmax, which is set so that an\nSRD particle will not advect further than \\(D_{max} = 4 \\lambda\\) in\n\\(dt_{SRD}\\). This means that roughly speaking, \\(D_{max}\\)\nshould not be larger than a big particle diameter, else SRDs may pass\nthrough big particles without colliding. A warning is generated if this\nis the case.\n\nCollisions between SRD particles and big particles or walls are\nmodeled as a lightweight SRD point particle hitting a heavy big\nparticle of given diameter or a wall at a point on its surface and\nbouncing off with a new velocity. The collision changes the momentum\nof the SRD particle. It imparts a force and torque to the big\nparticle. It imparts a force to a wall. Static or moving SRD walls\nare setup via the [fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html) command. For the\nremainder of this doc page, a collision of an SRD particle with a wall\ncan be viewed as a collision with a big particle of infinite radius\nand mass.\n\nThe *collision* keyword sets the style of collisions. The *slip*\nstyle means that the tangential component of the SRD particle momentum\nis preserved. Thus a force is imparted to a big particle, but no\ntorque. The normal component of the new SRD velocity is sampled from\na Gaussian distribution at temperature *Tsrd* .\n\nFor the *noslip* style, both the normal and tangential components of\nthe new SRD velocity are sampled from a Gaussian distribution at\ntemperature *Tsrd* . Additionally, a new tangential direction for the\nSRD velocity is chosen randomly. This collision style imparts torque\nto a big particle. Thus a time integrator [fix ](https://docs.lammps.org/fix.html) that rotates\nthe big particles appropriately should be used.\n\n----------\n\nThe *overlap* keyword should be set to *yes* if two (or more) big\nparticles can ever overlap. This depends on the pair potential\ninteraction used for big-big interactions, or could be the case if\nmultiple big particles are held together as rigid bodies via the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command. If the *overlap* keyword is *no*\nand big particles do in fact overlap, then SRD/big collisions can\ngenerate an error if an SRD ends up inside two (or more) big particles\nat once. How this error is treated is determined by the *inside*\nkeyword. Running with *overlap* set to *no* allows for faster collision\nchecking, so it should only be set to *yes* if needed.\n\nThe *inside* keyword determines how a collision is treated if the\ncomputation determines that the timestep started with the SRD particle\nalready inside a big particle. If the setting is *error* then this\ngenerates an error message and LAMMPS stops. If the setting is *warn*\nthen this generates a warning message and the code continues. If the\nsetting is *ignore* then no message is generated. One of the output\nquantities logged by the fix (see below) tallies the number of such\nevents, so it can be monitored. Note that once an SRD particle is\ninside a big particle, it may remain there for several steps until it\ndrifts outside the big particle.\n\nThe *exact* keyword determines how accurately collisions are computed.\nA setting of *yes* computes the time and position of each collision as\nSRD and big particles move together. A setting of *no* estimates the\nposition of each collision based on the end-of-timestep positions of\nthe SRD and big particle. If *overlap* is set to yes, the setting of\nthe *exact* keyword is ignored since time-accurate collisions are\nneeded.\n\nThe *radius* keyword scales the effective size of big particles. If\nbig particles will overlap as they undergo dynamics, then this keyword\ncan be used to scale down their effective collision radius by an\namount *rfactor*, so that SRD particle will only collide with one big\nparticle at a time. For example, in a Lennard-Jones system at a\ntemperature of 1.0 (in reduced LJ units), the minimum separation\nbetween two big particles is as small as about 0.88 sigma. Thus an\n*rfactor* value of 0.85 should prevent dual collisions.\n\nThe *bounce* keyword can be used to limit the maximum number of\ncollisions an SRD particle undergoes in a single timestep as it\nbounces between nearby big particles. Note that if the limit is\nreached, the SRD can be left inside a big particle. A setting of 0 is\nthe same as no limit.\n\n----------\n\nThere are 2 kinds of bins created and maintained when running an SRD\nsimulation. The first are \"SRD bins\" which are used to bin SRD\nparticles and reset their velocities, as discussed above. The second\nare \"search bins\" which are used to identify SRD/big particle\ncollisions.\n\nThe *search* keyword can be used to choose a search bin size for\nidentifying SRD/big particle collisions. The default is to use the\n*hgrid* parameter for SRD bins as the search bin size. Choosing a\nsmaller or large value may be more efficient, depending on the\nproblem. But, in a statistical sense, it should not change the\nsimulation results.\n\nThe *cubic* keyword can be used to generate an error or warning when\nthe bin size chosen by LAMMPS creates SRD bins that are non-cubic or\ndifferent than the requested value of *hgrid* by a specified\n*tolerance* . Note that using non-cubic SRD bins can lead to\nundetermined behavior when rotating the velocities of SRD particles,\nhence LAMMPS tries to protect you from this problem.\n\nLAMMPS attempts to set the SRD bin size to exactly *hgrid* . However,\nthere must be an integer number of bins in each dimension of the\nsimulation box. Thus the actual bin size will depend on the size and\nshape of the overall simulation box. The actual bin size is printed\nas part of the SRD output when a simulation begins.\n\nIf the actual bin size in non-cubic by an amount exceeding the\ntolerance, an error or warning is printed, depending on the style of\nthe *cubic* keyword. Likewise, if the actual bin size differs from\nthe requested *hgrid* value by an amount exceeding the tolerance, then\nan error or warning is printed. The *tolerance* is a fractional\ndifference. E.g. a tolerance setting of 0.01 on the shape means that\nif the ratio of any 2 bin dimensions exceeds (1 +/- tolerance) then an\nerror or warning is generated. Similarly, if the ratio of any bin\ndimension with *hgrid* exceeds (1 +/- tolerance), then an error or\nwarning is generated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix srd command can be used with simulations where the size and/or\n > shape of the simulation box changes. This can be due to non-periodic\n > boundary conditions or the use of fixes such as the [fix deform ](https://docs.lammps.org/fix_deform.html) or [fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html) commands\n > to impose a shear on an SRD fluid or an interaction with an external\n > wall. If the box size changes then the size of SRD bins must be\n > recalculated every reneighboring. This is not necessary if only the\n > box shape changes. This re-binning is always done so as to fit an\n > integer number of bins in the current box dimension, whether it be a\n > fixed, shrink-wrapped, or periodic boundary, as set by the\n > [boundary ](https://docs.lammps.org/boundary.html) command. If the box size or shape changes,\n > then the size of the search bins must be recalculated every\n > reneighboring. Note that changing the SRD bin size may alter the\n > properties of the SRD fluid, such as its viscosity. \n > \n\nThe *shift* keyword determines whether the coordinates of SRD particles\nare randomly shifted when binned for purposes of rotating their\nvelocities. When no shifting is performed, SRD particles are binned and\nthe velocity distribution of the set of SRD particles in each bin is\nadjusted via a rotation operator. This is a statistically valid\noperation if SRD particles move sufficiently far between successive\nrotations. This is determined by their mean-free path \\(\\lambda\\).\nIf \\(\\lambda\\) is less than 0.6 of the SRD bin size, then shifting\nis required. A shift means that all of the SRD particles are shifted by\na vector whose coordinates are chosen randomly in the range [-1/2 bin\nsize, 1/2 bin size]. Note that all particles are shifted by the same\nvector. The specified random number *shiftseed* is used to generate\nthese vectors. This operation sufficiently randomizes which SRD\nparticles are in the same bin, even if \\(lambda\\) is small.\n\nIf the *shift* flag is set to *no*, then no shifting is performed, but\nbin data will be communicated if bins overlap processor boundaries. An\nerror will be generated if \\(\\lambda < 0.6\\) of the SRD bin size.\nIf the *shift* flag is set to *possible*, then shifting is performed\nonly if \\(\\lambda < 0.6\\) of the SRD bin size. A warning is\ngenerated to let you know this is occurring. If the *shift* flag is set\nto *yes* then shifting is performed regardless of the magnitude of\n\\(\\lambda\\). Note that the *shiftseed* is not used if the *shift*\nflag is set to *no*, but must still be specified.\n\nNote that shifting of SRD coordinates requires extra communication,\nhence it should not normally be enabled unless required.\n\nThe *tstat* keyword will thermostat the SRD particles to the specified\n*Tsrd* . This is done every N timesteps, during the velocity rotation\noperation, by rescaling the thermal velocity of particles in each SRD\nbin to the desired temperature. If there is a streaming velocity\nassociated with the system, e.g. due to use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command to perform a simulation undergoing\nshear, then that is also accounted for. The mean velocity of each bin\nof SRD particles is set to the position-dependent streaming velocity,\nbased on the coordinates of the center of the SRD bin. Note that\ncollisions of SRD particles with big particles or walls has a\nthermostatting effect on the colliding particles, so it may not be\nnecessary to thermostat the SRD particles on a bin by bin basis in\nthat case. Also note that for streaming simulations, if no\nthermostatting is performed (the default), then it may take a long\ntime for the SRD fluid to come to equilibrium with a velocity profile\nthat matches the simulation box deformation.\n\nThe *rescale* keyword enables rescaling of an SRD particle's velocity\nif it would travel more than 4 mean-free paths in an SRD timestep. If\nan SRD particle exceeds this velocity it is possible it will be lost\nwhen migrating to other processors or that collisions with big\nparticles will be missed, either of which will generate errors. Thus\nthe safest mode is to run with rescaling enabled. However rescaling\nremoves kinetic energy from the system (the particle's velocity is\nreduced). The latter will not typically be a problem if\nthermostatting is enabled via the *tstat* keyword or if SRD collisions\nwith big particles or walls effectively thermostat the system. If you\nwish to turn off rescaling (on is the default), e.g. for a pure SRD\nsystem with no thermostatting so that the temperature does not decline\nover time, the *rescale* keyword can be used. The *no* value turns\nrescaling off during collisions and the per-bin velocity rotation\noperation. The *collide* and *rotate* values turn it on for\none of the operations and off for the other.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix is normally used for simulations with a huge number of\n > SRD particles relative to the number of big particles, e.g. 100 to 1.\n > In this scenario, computations that involve only big particles\n > (neighbor list creation, communication, time integration) can slow\n > down dramatically due to the large number of background SRD particles. \n > \n\nThree other input script commands will largely overcome this effect,\nspeeding up an SRD simulation by a significant amount. These are the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html), [neigh_modify include ](https://docs.lammps.org/neigh_modify.html), and [comm_modify group ](https://docs.lammps.org/comm_modify.html)\ncommands. Each takes a group-ID as an argument, which in this case\nshould be the group-ID of the big solute particles.\n\nAdditionally, when a [pair_style ](https://docs.lammps.org/pair_style.html) for big/big particle\ninteractions is specified, the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nshould be used to turn off big/SRD interactions, e.g. by setting their\nepsilon or cutoff length to 0.0.\n\nThe \"delete_atoms overlap\" command may be useful in setting up an SRD\nsimulation to ensure there are no initial overlaps between big and SRD\nparticles.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix tabulates several SRD statistics which are stored in a vector\nof length 12, which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix\nare \"intensive\", meaning they do not scale with the size of the\nsimulation. Technically, the first 8 do scale with the size of the\nsimulation, but treating them as intensive means they are not scaled\nwhen printed as part of thermodynamic output.\n\nThese are the 12 quantities. All are values for the current timestep,\nexcept for quantity 5 and the last three, each of which are\ncumulative quantities since the beginning of the run.\n\n(1) # of SRD/big collision checks performed\n(2) # of SRDs which had a collision\n(3) # of SRD/big collisions (including multiple bounces)\n(4) # of SRD particles inside a big particle\n(5) # of SRD particles whose velocity was rescaled to be < Vmax\n(6) # of bins for collision searching\n(7) # of bins for SRD velocity rotation\n(8) # of bins in which SRD temperature was computed\n(9) SRD temperature\n(10) # of SRD particles which have undergone max # of bounces\n(11) max # of bounces any SRD particle has had in a single step\n(12) # of reneighborings due to SRD particles moving too far\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Hecht)** Hecht, Harting, Ihle, Herrmann, Phys Rev E, 72, 011408 (2005). \n \n**(Petersen1)** Petersen, Lechman, Plimpton, Grest, in' t Veld, Schunk, J\nChem Phys, 132, 174106 (2010). \n \n**(Bolintineanu1)** Bolintineanu, Lechman, Plimpton, Grest, Phys Rev E, 86, 066703 (2012). \n \n**(Bolintineanu2)** Bolintineanu, Grest, Lechman, Pierce, Plimpton, Schunk, Comp Particle Mechanics, 1, 321-356 (2014). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the SRD package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ptm/atom = style name of this compute command\n* structures = default or all or any hyphen-separated combination of *fcc*, *hcp*, *bcc*, *ico*, *sc*, *dcub*, *dhex*, or graphene = structure types to search for\n* threshold = lattice distortion threshold (RMSD)\n* group2-ID determines which group is used for neighbor selection (optional, default \"all\") \n", + "examples": "\n```lmps\ncompute 1 all ptm/atom default 0.1 all\ncompute 1 all ptm/atom fcc-hcp-dcub-dhex 0.15 all\ncompute 1 all ptm/atom all 0\n```\n", + "html_filename": "compute_ptm_atom.html", + "short_description": "Define a computation that determines the local lattice structure\naround an atom using the PTM (Polyhedral Template Matching) method", + "description": "Define a computation that determines the local lattice structure\naround an atom using the PTM (Polyhedral Template Matching) method.\nThe PTM method is described in **Larsen**.\n\nCurrently, there are seven lattice structures PTM recognizes:\n\n* fcc = 1\n* hcp = 2\n* bcc = 3\n* ico (icosahedral) = 4\n* sc (simple cubic) = 5\n* dcub (diamond cubic) = 6\n* dhex (diamond hexagonal) = 7\n* graphene = 8\n\nThe value of the PTM structure will be 0 for unknown types and \\(-1\\) for\natoms not in the specified compute group. The choice of structures to search\nfor can be specified using the \"structures\" argument, which is a\nhyphen-separated list of structure keywords.\nTwo convenient pre-set options are provided:\n\n* default: fcc-hcp-bcc-ico\n* all: fcc-hcp-bcc-ico-sc-dcub-dhex-graphene\n\nThe 'default' setting detects the same structures as the Common Neighbor Analysis method.\nThe 'all' setting searches for all structure types. A performance penalty is\nincurred for the diamond and graphene structures, so it is not recommended to use this option if\nit is known that the simulation does not contain these structures.\n\nPTM identifies structures using two steps. First, a graph isomorphism test is used\nto identify potential structure matches. Next, the deviation is computed between the\nlocal structure (in the simulation) and a template of the ideal lattice structure.\nThe deviation is calculated as:\n\\[\n \\text{RMSD}(\\mathbf{u}, \\mathbf{v})\n = \\min_{s, \\mathbf{Q}} \\sqrt{\\frac{1}{N} \\sum\\limits_{i=1}^{N}\n {\\left\\lVert s[\\vec{u}_i - \\mathbf{\\bar{u}}]\n - \\mathbf{Q} \\cdot \\vec{v}_i \\right\\rVert}^2}\\]\nHere, \\(\\vec u\\) and \\(\\vec v\\) contain the coordinates of the local\nand ideal structures respectively, \\(s\\) is a scale factor, and\n\\(\\mathbf Q\\) is a rotation. The best match is identified by the lowest\nRMSD value, using the optimal scaling, rotation, and correspondence between the\npoints.\n\nThe *threshold* keyword sets an upper limit on the maximum permitted deviation\nbefore a local structure is identified as disordered. Typical values are in\nthe range 0.1--0.15, but larger values may be desirable at higher temperatures.\nA value of 0 is equivalent to infinity and can be used if no threshold is\ndesired.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*ptm/atom* style. By default the compute processes **all** neighbors\nunless the optional *group2-ID* argument is given, then only members\nof that group are considered as neighbors.\n\n #### Output info\n\nThis compute calculates a per-atom array, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nResults are stored in the per-atom array in the following order:\n\n* type\n* rmsd\n* interatomic distance\n* qw\n* qx\n* qy\n* qz\n\nThe type is a number from \\(-1\\) to 8. The rmsd is a positive real number.\nThe interatomic distance is computed from the scale factor in the RMSD equation.\nThe \\((qw,qx,qy,qz)\\) parameters represent the orientation of the local\nstructure in quaternion form. The reference coordinates for each template\n(from which the orientation is determined) can be found in the\n*ptm_constants.h* file in the PTM source directory.\nFor atoms that are not within the compute group-ID, all values are set to zero.\n\n**(Larsen)** Larsen, Schmidt, Schiotz, Modelling Simul Mater Sci Eng, 24, 055007 (2016). \n ", + "restrictions": "This fix is part of the PTM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n" }, { "command": [ - "dihedral_style opls", - "dihedral_style opls/intel", - "dihedral_style opls/kk", - "dihedral_style opls/omp" + "pair_style quip" ], "syntax": [ - "dihedral_style opls" + "pair_style quip" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "opls", - "type": 3, - "choices": [ - "opls", - "opls/intel", - "opls/kk", - "opls/omp" - ] + "arg": "quip", + "type": 1, + "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\ndihedral_style opls\ndihedral_coeff 1 1.740 -0.157 0.279 0.00 # CT-CT-CT-CT\ndihedral_coeff 2 0.000 0.000 0.366 0.000 # CT-CT-CT-HC\ndihedral_coeff 3 0.000 0.000 0.318 0.000 # HC-CT-CT-HC\n```\n", - "html_filename": "dihedral_opls.html", - "short_description": "The *opls* dihedral style uses the potential\n\\[\\begin{align*} \n E = & \\frac{1}{2} K_1 [1 + \\cos(\\phi)] + \\frac{1}{2} K_2 [1 - \\cos(2 \\phi)] + \\\\\n & \\frac{1}{2} K_3 [1 + \\cos(3 \\phi)] + \\frac{1}{2} K_4 [1 - \\cos(4 \\phi)] \\end{align*} \\]\nNote that the usual 1/2 factor is not included in the K values", - "description": "The *opls* dihedral style uses the potential\n\\[\\begin{align*} \n E = & \\frac{1}{2} K_1 [1 + \\cos(\\phi)] + \\frac{1}{2} K_2 [1 - \\cos(2 \\phi)] + \\\\\n & \\frac{1}{2} K_3 [1 + \\cos(3 \\phi)] + \\frac{1}{2} K_4 [1 - \\cos(4 \\phi)] \\end{align*} \\]\nNote that the usual 1/2 factor is not included in the K values.\n\nThis dihedral potential is used in the OPLS force field and is\ndescribed in **Watkins**.\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K_1\\) (energy)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Watkins)** Watkins and Jorgensen, J Phys Chem A, 105, 4118-4125 (2001). \n ", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "examples": "\n```lmps\npair_style quip\npair_coeff * * gap_example.xml \"Potential xml_label=GAP_2014_5_8_60_17_10_38_466\" 14\npair_coeff * * sw_example.xml \"IP SW\" 14\n```\n", + "html_filename": "pair_quip.html", + "short_description": "Style *quip* provides an interface for calling potential routines from\nthe QUIP package", + "description": "Style *quip* provides an interface for calling potential routines from\nthe QUIP package. QUIP is built separately, and then linked to\nLAMMPS. The most recent version of the QUIP package can be downloaded\nfrom GitHub:\n[https://github.com/libAtoms/QUIP](https://github.com/libAtoms/QUIP). The\ninterface is chiefly intended to be used to run Gaussian Approximation\nPotentials (GAP), which are described in the following publications:\n**Bartok_2010** and **Bartok_PhD**.\n\nOnly a single pair_coeff command is used with the *quip* style that\nspecifies a QUIP potential file containing the parameters of the\npotential for all needed elements in XML format. This is followed by a\nQUIP initialization string. Finally, the QUIP elements are mapped to\nLAMMPS atom types by specifying N atomic numbers, where N is the\nnumber of LAMMPS atom types:\n\n* QUIP filename\n* QUIP initialization string\n* N atomic numbers = mapping of QUIP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nA QUIP potential is fully specified by the filename which contains the\nparameters of the potential in XML format, the initialization string,\nand the map of atomic numbers.\n\nGAP potentials can be obtained from the `GAP models and databases page\non the libAtoms homepage [https://libatoms.github.io](https://libatoms.github.io/GAP/data.html), where the appropriate\ninitialization strings are also advised. The list of atomic numbers must\nbe matched to the LAMMPS atom types specified in the LAMMPS data file or\nelsewhere.\n\nTwo examples input scripts are provided in the examples/PACKAGES/quip\ndirectory.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Bartok_2010)** AP Bartok, MC Payne, R Kondor, and G Csanyi, Physical\nReview Letters 104, 136403 (2010). \n \n**(Bartok_PhD)** A Bartok-Partay, PhD Thesis, University of Cambridge,\n(2010). \n ", + "restrictions": "This pair style is part of the ML-QUIP package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nQUIP potentials are parameterized in electron-volts and Angstroms and\ntherefore should be used with LAMMPS metal [units ](https://docs.lammps.org/units.html).\n\nQUIP potentials are generally not designed to work with the scaling\nfactors set by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. The\nrecommended setting in molecular systems is to include all\ninteractions, i.e. to use *special_bonds lj/coul 1.0 1.0 1.0*. Scaling\nfactors > 0.0 will be ignored and treated as 1.0. The only exception\nto this rule is if you know that your QUIP potential needs to exclude\nbonded, 1-3, or 1-4 interactions and does not already do this exclusion\nwithin QUIP. Then a factor 0.0 needs to be used which will remove such\npairs from the neighbor list. This needs to be very carefully tested,\nbecause it may remove pairs from the neighbor list that are still\nrequired.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n\n----------\n\n.. _Bartok_2010:\n\n**(Bartok_2010)** AP Bartok, MC Payne, R Kondor, and G Csanyi, Physical\nReview Letters 104, 136403 (2010).\n\n.. _Bartok_PhD:\n\n**(Bartok_PhD)** A Bartok-Partay, PhD Thesis, University of Cambridge,\n(2010).\n" }, { "command": [ - "include" + "compute rigid/local" ], "syntax": [ - "include file" + "compute ID group-ID rigid/local rigidID input1 input2 ..." ], "args": [ [ { - "arg": "include", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "file", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "rigid/local", + "type": 1, + "choices": [] + }, + { + "arg": "rigidID", + "type": 2, + "choices": [] + }, + { + "arg": "input1", + "type": 2, + "choices": [] + }, + { + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* file = filename of new input script to switch to \n", - "examples": "\n```lmps\ninclude newfile\ninclude in.run2\n```\n", - "html_filename": "include.html", - "short_description": "This command opens a new input script file and begins reading LAMMPS\ncommands from that file", - "description": "This command opens a new input script file and begins reading LAMMPS\ncommands from that file. When the new file is finished, the original\nfile is returned to. Include files can be nested as deeply as\ndesired. If input script A includes script B, and B includes A, then\nLAMMPS could run for a long time.\n\nIf the filename is a variable (see the [variable ](https://docs.lammps.org/variable.html)\ncommand), different processor partitions can run different input\nscripts.\n", - "restrictions": "none\n", - "related": "[variable ](https://docs.lammps.org/variable.html), [jump ](https://docs.lammps.org/jump.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rigid/local = style name of this compute command\n* rigidID = ID of fix rigid/small command or one of its variants\n* input = one or more rigid body attributes \n *        possible attributes = id, mol, mass, \n         x, y, z, xu, yu, zu, ix, iy, iz \n         vx, vy, vz, fx, fy, fz, \n         omegax, omegay, omegaz, \n         angmomx, angmomy, angmomz, \n         quatw, quati, quatj, quatk, \n         tqx, tqy, tqz, \n         inertiax, inertiay, inertiaz \n         id = atom ID of atom within body which owns body properties \n         mol = molecule ID used to define body in [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n         mass = total mass of body \n         x,y,z = center of mass coords of body \n         xu,yu,zu = unwrapped center of mass coords of body \n         ix,iy,iz = box image that the center of mass is in \n         vx,vy,vz = center of mass velocities \n         fx,fy,fz = force of center of mass \n         omegax,omegay,omegaz = angular velocity of body \n         angmomx,angmomy,angmomz = angular momentum of body \n         quatw,quati,quatj,quatk = quaternion components for body \n         tqx,tqy,tqz = torque on body \n         inertiax,inertiay,inertiaz = diagonalized moments of inertia of body \n", + "examples": "\n```lmps\ncompute 1 all rigid/local myRigid mol x y z\n```\n", + "html_filename": "compute_rigid_local.html", + "short_description": "Define a computation that simply stores rigid body attributes for\nrigid bodies defined by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nor one of its NVE, NVT, NPT, NPH variants", + "description": "Define a computation that simply stores rigid body attributes for\nrigid bodies defined by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nor one of its NVE, NVT, NPT, NPH variants. The data is stored as\nlocal data so it can be accessed by other [output commands ](https://docs.lammps.org/Howto_output.html) that process local data, such as the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html) or [dump local ](https://docs.lammps.org/dump.html)\ncommands.\n\nNote that this command only works with the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command or its variants, not the fix rigid\ncommand and its variants. The ID of the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command used to define rigid bodies must\nbe specified as *rigidID* . The [fix rigid ](https://docs.lammps.org/fix_rigid.html) command is\ntypically used to define a handful of (potentially very large) rigid\nbodies. It outputs similar per-body information as this command\ndirectly from the fix as global data; see the [fix rigid ](https://docs.lammps.org/fix_rigid.html) page for details\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor. If the atom is not in the specified\n*group-ID* or is not part of a rigid body it is skipped. If it is not\nthe atom within a body that is assigned to store the body information\nit is skipped (only one atom per body is so assigned). If it is the\nassigned atom, then the info for that body is output. This means that\ninformation for \\(N\\) bodies is generated. \\(N\\) may be less than the\nnumber of bodies defined by the fix rigid command, if the atoms in some bodies\nare not in the *group-ID* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Which atom in a body owns the body info is determined internal\n > to LAMMPS; it's the one nearest the geometric center of the body.\n > Typically you should avoid this complication, by defining the group\n > associated with this fix to include/exclude entire bodies. \n > \n\nNote that as atoms and bodies migrate from processor to processor,\nthere will be no consistent ordering of the entries within the local\nvector or array from one timestep to the next.\n\nHere is an example of how to use this compute to dump rigid body info\nto a file:\n\n```lmps\ncompute 1 all rigid/local myRigid mol x y z fx fy fz\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_1[6] c_1[7]\n```\n----------\n\nThis section explains the rigid body attributes that can be specified.\n\nThe *id* attribute is the atom-ID of the atom which owns the rigid body, which is\nassigned by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command.\n\nThe *mol* attribute is the molecule ID of the rigid body. It should\nbe the molecule ID which all of the atoms in the body belong to, since\nthat is how the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command defines its\nrigid bodies.\n\nThe *mass* attribute is the total mass of the rigid body.\n\nThere are two options for outputting the coordinates of the center of\nmass (COM) of the body. The *x*, *y*, *z* attributes write the COM\n\"unscaled\", in the appropriate distance [units ](https://docs.lammps.org/units.html)\n(\\(\\mathring{\\textrm{A}}\\), \\(\\sigma\\), etc). Use *xu*, *yu*, *zu* if you want the COM \"unwrapped\" by\nthe image flags for each body. Unwrapped means that if the body\nCOM has passed through a periodic boundary one or more times, the value\nis generated what the COM coordinate would be if it had not been\nwrapped back into the periodic box.\n\nThe image flags for the body can be generated directly using the *ix*,\n*iy*, *iz* attributes. For periodic dimensions, they specify which\nimage of the simulation box the COM is considered to be in. An image\nof 0 means it is inside the box as defined. A value of 2 means add 2\nbox lengths to get the true value. A value of \\(-1\\) means subtract 1 box\nlength to get the true value. LAMMPS updates these flags as the rigid\nbody COMs cross periodic boundaries during the simulation.\n\nThe *vx*, *vy*, *vz*, *fx*, *fy*, *fz* attributes are components of\nthe COM velocity and force on the COM of the body.\n\nThe *omegax*, *omegay*, and *omegaz* attributes are the angular\nvelocity components of the body in the system frame around its COM.\n\nThe *angmomx*, *angmomy*, and *angmomz* attributes are the angular\nmomentum components of the body in the system frame around its COM.\n\nThe *quatw*, *quati*, *quatj*, and *quatk* attributes are the\ncomponents of the 4-vector quaternion representing the orientation of\nthe rigid body. See the [set ](https://docs.lammps.org/set.html) command for an explanation of\nthe quaternion vector.\n\nThe *tqx*, *tqy*, *tqz* attributes are components of the torque acting\non the body around its COM.\n\nThe *inertiax*, *inertiay*, *inertiaz* attributes are components of\ndiagonalized inertia tensor for the body (i.e., the three moments of inertia\nfor the body around its principal axes), as computed internally by\nLAMMPS.\n\n----------\n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of rigid bodies. If a single keyword is\nspecified, a local vector is produced. If two or more keywords are\nspecified, a local array is produced where the number of columns = the\nnumber of keywords. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ncorresponding attribute is in:\n\n* id,mol = unitless\n* mass = mass units\n* x,y,z and xy,yu,zu = distance units\n* vx,vy,vz = velocity units\n* fx,fy,fz = force units\n* omegax,omegay,omegaz = radians/time units\n* angmomx,angmomy,angmomz = mass\\*distance\\ \\(^2\\)\\ /time units\n* quatw,quati,quatj,quatk = unitless\n* tqx,tqy,tqz = torque units\n* inertiax,inertiay,inertiaz = mass\\*distance\\ \\(^2\\) units\n", + "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" }, { "command": [ - "compute rdf" + "fix colvars" ], "syntax": [ - "compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ..." + "fix ID group-ID colvars configfile keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -1822,162 +1595,179 @@ export const command_docs = [ "choices": [] }, { - "arg": "rdf", + "arg": "colvars", "type": 1, "choices": [] }, { - "arg": "Nbin", - "type": 2, - "choices": [] - }, - { - "arg": "itype1", - "type": 2, - "choices": [] - }, - { - "arg": "jtype1", - "type": 2, - "choices": [] - }, - { - "arg": "itype2", + "arg": "configfile", "type": 2, "choices": [] }, { - "arg": "jtype2", - "type": 2, - "choices": [] + "arg": "tstat", + "type": 3, + "choices": [ + "input", + "output", + "seed", + "unwrap", + "tstat" + ] }, { - "arg": "keyword/value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rdf = style name of this compute command\n* Nbin = number of RDF bins\n* itypeN = central atom type for Nth RDF histogram (integer, type label, or asterisk form)\n* jtypeN = distribution atom type for Nth RDF histogram (integer, type label, or asterisk form)\n* zero or more keyword/value pairs may be appended\n* keyword = cutoff \n *        cutoff value = Rcut \n         Rcut = cutoff distance for RDF computation (distance units) \n", - "examples": "\n```lmps\ncompute 1 all rdf 100\ncompute 1 all rdf 100 1 1\ncompute 1 all rdf 100 * 3 cutoff 5.0\ncompute 1 fluid rdf 500 1 1 1 2 2 1 2 2\ncompute 1 fluid rdf 500 1*3 2 5 *10 cutoff 3.5\n```\n", - "html_filename": "compute_rdf.html", - "short_description": "Define a computation that calculates the radial distribution function\n(RDF), also called \\(g(r)\\), and the coordination number for a group of\nparticles", - "description": "Define a computation that calculates the radial distribution function\n(RDF), also called \\(g(r)\\), and the coordination number for a group of\nparticles. Both are calculated in histogram form by binning pairwise\ndistances into *Nbin* bins from 0.0 to the maximum force cutoff\ndefined by the [pair_style ](https://docs.lammps.org/pair_style.html) command or the cutoff\ndistance *Rcut* specified via the *cutoff* keyword. The bins are of\nuniform size in radial distance. Thus a single bin encompasses a thin\nshell of distances in 3d and a thin ring of distances in 2d.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses a neighbor list, it also means\n > those pairs will not be included in the RDF. This does not apply when\n > using long-range coulomb interactions (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g., \\(1.0 \\times 10^{-50}\\)). Another workaround is to write a\n > dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the RDF for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\nBy default the RDF is computed out to the maximum force cutoff defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command. If the *cutoff* keyword\nis used, then the RDF is computed accurately out to the *Rcut* \\(> 0.0\\)\ndistance specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, you should only use the *cutoff* keyword if no pair\n > style is defined (e.g., the [rerun ](https://docs.lammps.org/rerun.html) command is being used to\n > post-process a dump file of snapshots) or if you really want the RDF\n > for distances beyond the pair_style force cutoff and cannot easily\n > post-process a dump file to calculate it. This is because using the\n > *cutoff* keyword incurs extra computation and possibly communication,\n > which may slow down your simulation. If you specify *Rcut* \\(\\le\\)\n > force cutoff, you will force an additional neighbor list to be built at\n > every timestep this command is invoked (or every reneighboring\n > timestep, whichever is less frequent), which is inefficient. LAMMPS\n > will warn you if this is the case. If you specify a *Rcut* > force\n > cutoff, you must ensure ghost atom information out to *Rcut* + *skin*\n > is communicated, via the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html)\n > command, else the RDF computation cannot be performed, and LAMMPS will\n > give an error message. The *skin* value is what is specified with the\n > [neighbor ](https://docs.lammps.org/neighbor.html) command. In this case, you are forcing a\n > large neighbor list to be built just for the RDF computation, and\n > extra communication to be performed every timestep. \n > \n\nThe *itypeN* and *jtypeN* arguments are optional. These arguments\nmust come in pairs. If no pairs are listed, then a single histogram\nis computed for \\(g(r)\\) between all atom types. If one or more pairs are\nlisted, then a separate histogram is generated for each\n*itype*,\\ *jtype* pair.\n\nThe *itypeN* and *jtypeN* settings can be specified in one of three\nways. One or both of the types in the I,J pair can be a\n[type label ](https://docs.lammps.org/Howto_type_labels.html). Or an explicit numeric value can be\nused, as in the fourth example above. Or a wild-card asterisk can be used\nto specify a range of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"m\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types, then an asterisk\nwith no numeric values means all types from 1 to \\(N\\). A leading\nasterisk means all types from 1 to n (inclusive). A trailing asterisk\nmeans all types from m to \\(N\\) (inclusive). A middle asterisk means\nall types from m to n (inclusive).\n\nIf both *itypeN* and *jtypeN* are single values, as in the fourth example\nabove, this means that a \\(g(r)\\) is computed where atoms of type *itypeN*\nare the central atom, and atoms of type *jtypeN* are the distribution\natom. If either *itypeN* and *jtypeN* represent a range of values via\nthe wild-card asterisk, as in the fifth example above, this means that a\n\\(g(r)\\) is computed where atoms of any of the range of types represented\nby *itypeN* are the central atom, and atoms of any of the range of\ntypes represented by *jtypeN* are the distribution atom.\n\nPairwise distances are generated by looping over a pairwise neighbor\nlist, just as they would be in a [pair_style ](https://docs.lammps.org/pair_style.html)\ncomputation. The distance between two atoms \\(I\\) and \\(J\\) is\nincluded in a specific histogram if the following criteria are met:\n\n* atoms \\(I\\) and \\(J\\) are both in the specified compute group\n* the distance between atoms \\(I\\) and \\(J\\) is less than the maximum\n force cutoff\n* the type of the \\(I\\) atom matches *itypeN* (one or a range of types)\n* the type of the \\(J\\) atom matches *jtypeN* (one or a range of types)\n\nIt is OK if a particular pairwise distance is included in more than\none individual histogram, due to the way the *itypeN* and *jtypeN*\narguments are specified.\n\nThe \\(g(r)\\) value for a bin is calculated from the histogram count by\nscaling it by the idealized number of how many counts there would be\nif atoms of type *jtypeN* were uniformly distributed. Thus it\ninvolves the count of *itypeN* atoms, the count of *jtypeN* atoms, the\nvolume of the entire simulation box, and the volume of the bin's thin\nshell in 3d (or the area of the bin's thin ring in 2d).\n\nA coordination number \\(\\mathrm{coord}(r)\\) is also calculated, which is\nthe number of atoms of type *jtypeN* within the current bin or closer, averaged\nover atoms of type *itypeN* . This is calculated as the area- or\nvolume-weighted sum of \\(g(r)\\) values over all bins up to and including\nthe current bin, multiplied by the global average volume density of\natoms of type *jtypeN*.\n\nThe simplest way to output the results of the compute rdf calculation\nto a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for\nexample:\n\n```lmps\ncompute myRDF all rdf 50\nfix 1 all ave/time 100 1 100 c_myRDF[*] file tmp.rdf mode vector\n```\n #### Output info\n\nThis compute calculates a global array in which the number of rows is\n*Nbins* and the number of columns is \\(1 + 2N_\\text{pairs}\\), where\n\\(N_\\text{pairs}\\) is the number of \\(I,J\\) pairings specified.\nThe first column has the bin coordinate (center of the bin), and each\nsuccessive set of two columns has the \\(g(r)\\) and \\(\\text{coord}(r)\\)\nvalues for a specific set of *itypeN* versus *jtypeN* interactions,\nas described above. These values can be used\nby any command that uses a global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"intensive\".\n\nThe first column of array values will be in distance\n[units ](https://docs.lammps.org/units.html). The \\(g(r)\\) columns of array values are normalized\nnumbers \\(\\ge 0.0\\). The coordination number columns of array values are\nalso numbers \\(\\ge 0.0\\).\n", - "restrictions": "By default, the RDF is not computed for distances longer than the\nlargest force cutoff, since the neighbor list creation will only contain\npairs up to that distance (plus neighbor list skin). This distance can\nbe increased using the *cutoff* keyword but this keyword is only valid\nwith [neighbor styles 'bin' and 'nsq' ](https://docs.lammps.org/neighbor.html).\n\nIf you want an RDF for larger distances, you can also use the\n[rerun ](https://docs.lammps.org/rerun.html) command to post-process a dump file, use [pairstyle zero ](https://docs.lammps.org/pair_zero.html) and set the force cutoff to be longer in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary and with pair style zero you are not computing any forces, and\nyou are not running dynamics you are not changing the model that\ngenerated the trajectory.\n\nThe definition of \\(g(r)\\) used by LAMMPS is only appropriate for\ncharacterizing atoms that are uniformly distributed throughout the\nsimulation cell. In such cases, the coordination number is still correct\nand meaningful. As an example, if a large simulation cell contains only\none atom of type *itypeN* and one of *jtypeN*, then \\(g(r)\\) will\nregister an arbitrarily large spike at whatever distance they happen to\nbe at, and zero everywhere else. The function \\(\\text{coord}(r)\\)\nwill show a step change from zero to one at the location of the spike in\n\\(g(r)\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >compute rdf can handle dynamic groups and systems where atoms\n > are added or removed, but this causes that certain normalization\n > parameters need to be re-computed in every step and include collective\n > communication operations. This will reduce performance and limit\n > parallel efficiency and scaling. For systems, where only the type\n > of atoms changes (e.g., when using [fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)),\n > you need to explicitly request the dynamic normalization updates\n > via [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) \n > \n\n", - "related": "[fix ave/time ](https://docs.lammps.org/fix_ave_time.html), [compute_modify ](https://docs.lammps.org/compute_modify.html),\n[compute adf ](https://docs.lammps.org/compute_adf.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* colvars = style name of this fix command\n* configfile = the configuration file for the colvars module\n* keyword = input or output or seed or unwrap or tstat \n *        input arg = colvars.state file name or prefix or NULL (default: NULL) \n *        output arg = output filename prefix (default: out) \n *        seed arg = seed for random number generator (default: 1966) \n *        unwrap arg = yes or no \n         use unwrapped coordinates in collective variables (default: yes) \n *        tstat arg = fix id of a thermostat or NULL (default: NULL) \n", + "examples": "\n```lmps\nfix mtd all colvars peptide.colvars.inp seed 2122 input peptide.colvars.state output peptide\nfix abf all colvars colvars.inp tstat 1\n```\n", + "html_filename": "fix_colvars.html", + "short_description": "This fix interfaces LAMMPS to the collective variables (Colvars)\nlibrary, which allows to calculate potentials of mean force (PMFs) for\nany set of colvars, using sampling methods, including but not limited to\nAdaptive Biasing Force (ABF), metadynamics (MtD), Steered Molecular\nDynamics (SMD) and Umbrella Sampling (US) via a flexible harmonic\nrestraint bias", + "description": "This fix interfaces LAMMPS to the collective variables (Colvars)\nlibrary, which allows to calculate potentials of mean force (PMFs) for\nany set of colvars, using sampling methods, including but not limited to\nAdaptive Biasing Force (ABF), metadynamics (MtD), Steered Molecular\nDynamics (SMD) and Umbrella Sampling (US) via a flexible harmonic\nrestraint bias.\n\nThis documentation describes only the [`fix colvars`` command itself ina LAMMPS script. The Colvars library is documented via the included`PDF manual ](https://docs.lammps.org/PDF/colvars-refman-lammps.pdf) or at the webpage\n[https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html](https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html).\n\nThe Colvars library is developed at [https://github.com/Colvars/colvars](https://github.com/Colvars/colvars) A detailed discussion of its\nimplementation is in **Fiorin**; additional references are\nprinted at runtime based on specific features being used.\n\nThere are some example scripts for using this package with LAMMPS in the\n``examples/PACKAGES/colvars`` directory.\n\n----------\n\nThe only required argument to ``fix colvars`` is the filename to the\nColvars configuration file that contains the definition of the variables\nand any biasing methods applied to them. from the MD program in which\nthe colvars library has been integrated.\n\nThe *group-ID* entry is ignored. ``fix colvars`` will always apply to\nthe entire system, but specific atoms will be selected based on\nselection keywords in the Colvars configuration file or files. There is\nno need to define multiple ``fix colvars`` instances and it is not\nallowed.\n\nThe *output* keyword allows to specify the prefix of output files\ngenerated by Colvars, for example ``output.colvars.traj`` or\n``output.pmf``.\n\nThe *input* keyword allows to specify an optional state file that\ncontains the restart information needed to continue a previous\nsimulation state. Note, however, that ``fix colvars`` records its state\nin [binary restart ](https://docs.lammps.org/restart.html) files, so when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, this is usually not needed.\n\nThe *seed* keyword contains the seed for the random number generator\nused by Colvars.\n\nThe *unwrap* keyword controls whether wrapped or unwrapped coordinates\nare passed to the Colvars library for calculation of the collective\nvariables and the resulting forces. The default is *yes*, i.e. to use\nthe image flags to reconstruct the absolute atom positions. Setting\nthis to *no* will use the current local coordinates that are wrapped\nback into the simulation cell at each re-neighboring instead. For\ninformation about when and how this affects results, please see\n[https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping](https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping).\n\nThe *tstat* keyword can be either NULL or the label of a thermostatting\nfix that thermostats all atoms in the fix colvars group. This will be\nused to let Colvars know what is the current thermostat target\ntemperature.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the current status of the colvars module into\n[binary restart files ](https://docs.lammps.org/restart.html). This is in addition to the text\nmode ``.colvars.state`` written by Colvars itself and the information in\nboth files is identical.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by this\nfix to add the energy change from the biasing force added by Colvars to\nthe global potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe *fix_modify configfile * option loads Colvars\nconfiguration from an additional file. This option can only be used,\nafter the system has been initialized with a [run ](https://docs.lammps.org/run.html) command.\n\nThe *fix_modify config * option allows to add settings\nfrom inline strings. Those have to fit on a single line when enclosed in\na pair of double quotes (\"), or can span multiple lines when bracketed\nby a pair of triple double quotes (\"\"\", like Python embedded\ndocumentation).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the Colvars energy\nmentioned above. The scalar value calculated by this fix is\n\"extensive\".\n\n**(Fiorin)** Fiorin, Klein, Henin, Mol. Phys., DOI:10.1080/00268976.2013.813594 \n ", + "restrictions": "``fix colvars`` is provided by the COLVARS package and is only available\nif LAMMPS was built with that package. Some of the features also\nrequire code available from the LEPTON package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be one Colvars instance defined at a time. Since the\ninterface communicates only the minimum amount of information and the\nColvars module itself can handle an arbitrary number of collective\nvariables, this is not a limitation of functionality.\n", + "related": "[fix smd ](https://docs.lammps.org/fix_smd.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix plumed ](https://docs.lammps.org/fix_plumed.html)\n" }, { "command": [ - "improper_style harmonic", - "improper_style harmonic/intel", - "improper_style harmonic/kk", - "improper_style harmonic/omp" + "pair_style comb", + "pair_style comb/omp", + "pair_style comb3" ], "syntax": [ - "improper_style harmonic" + "pair_style comb", + "pair_style comb3 keyword" ], "args": [ [ { - "arg": "improper_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "harmonic", + "arg": "comb", "type": 3, "choices": [ - "harmonic", - "harmonic/intel", - "harmonic/kk", - "harmonic/omp" + "comb", + "comb/omp" ] } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "comb3", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style harmonic\nimproper_coeff 1 100.0 0\n```\n", - "html_filename": "improper_harmonic.html", - "short_description": "The *harmonic* improper style uses the potential\n\\[\n E = K (\\chi - \\chi_0)^2\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its equilibrium\nvalue, and \\(K\\) is a prefactor", - "description": "The *harmonic* improper style uses the potential\n\\[\n E = K (\\chi - \\chi_0)^2\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its equilibrium\nvalue, and \\(K\\) is a prefactor. Note that the usual 1/2 factor is\nincluded in \\(K\\).\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\n\\(\\chi\\)\nis the angle between the plane of I,J,K and the plane of J,K,L.\nAlternatively, you can think of atoms J,K,L as being in a plane, and\natom I above the plane, and \\(\\chi\\) as a measure of how far out-of-plane\nI is with respect to the other 3 atoms.\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n\\(\\chi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": " *    keyword = polar \n     polar value = polar_on or polar_off = whether or not to include atomic polarization \n", + "examples": "\n```lmps\npair_style comb\npair_coeff * * ../potentials/ffield.comb Si\npair_coeff * * ../potentials/ffield.comb Hf Si O\n\npair_style comb3 polar_off\npair_coeff * * ../potentials/ffield.comb3 O Cu N C O\n```\n", + "html_filename": "pair_comb.html", + "short_description": "Style *comb* computes the second generation variable charge COMB\n(Charge-Optimized Many-Body) potential", + "description": "Style *comb* computes the second generation variable charge COMB\n(Charge-Optimized Many-Body) potential. Style *comb3* computes the\nthird-generation COMB potential. These COMB potentials are described\nin **COMB** and **COMB3**. Briefly, the\ntotal energy \\(E_T\\) of a system of atoms is given by\n\\[\\begin{align*} \n E_T = & \\sum_i [ E_i^{self} (q_i) + \\sum_{j>i} [E_{ij}^{short} (r_{ij}, q_i, q_j) + E_{ij}^{Coul} (r_{ij}, q_i, q_j)] + \\\\\n & E^{polar} (q_i, r_{ij}) + E^{vdW} (r_{ij}) + E^{barr} (q_i) + E^{corr} (r_{ij}, \\theta_{jik})] \\end{align*} \\]\nwhere \\(E_i^{self}\\) is the self-energy of atom *i* (including\natomic ionization energies and electron affinities),\n\\(E_{ij}^{short}\\) is the bond-order potential between atoms *i* and\n*j*, \\(E_{ij}^{Coul}\\) is the Coulomb interactions,\n\\(E^{polar}\\) is the polarization term for organic systems (style\n*comb3* only), \\(E^{vdW}\\) is the van der Waals energy (style\n*comb3* only), \\(E^{barr}\\) is a charge barrier function, and\n\\(E^{corr}\\) are angular correction terms.\n\nThe COMB potentials (styles *comb* and *comb3* ) are variable charge\npotentials. The equilibrium charge on each atom is calculated by the\nelectronegativity equalization (QEq) method. See **Rick2** for\nfurther details. This is implemented by the [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command, which should normally be\nspecified in the input script when running a model with the COMB\npotential. The [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command has options\nthat determine how often charge equilibration is performed, its\nconvergence criterion, and which atoms are included in the\ncalculation.\n\nOnly a single pair_coeff command is used with the *comb* and *comb3*\nstyles which specifies the COMB potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the potential file in the pair_coeff\ncommand, where N is the number of LAMMPS atom types.\n\nFor example, if your LAMMPS simulation of a Si/SiO2/\nHfO2 interface has 4 atom types, and you want the first and\nlast to be Si, the second to be Hf, and the third to be O, and you would\nuse the following pair_coeff command:\n\n```lmps\npair_coeff * * ../potentials/ffield.comb Si Hf O Si\n```\nThe first two arguments must be \\* \\* so as to span all LAMMPS atom\ntypes. The first and last Si arguments map LAMMPS atom types 1 and 4\nto the Si element in the *ffield.comb* file. The second Hf argument\nmaps LAMMPS atom type 2 to the Hf element, and the third O argument\nmaps LAMMPS atom type 3 to the O element in the potential file. If a\nmapping value is specified as NULL, the mapping is not performed.\nThis can be used when a *comb* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\nFor style *comb*, the provided potential file *ffield.comb* contains\nall currently-available second generation COMB parameterizations: for Si,\nCu, Hf, Ti, O, their oxides and Zr, Zn and U metals. For style\n*comb3*, the potential file *ffield.comb3* contains all\ncurrently-available third generation COMB parameterizations: O, Cu, N, C,\nH, Ti, Zn and Zr. The status of the optimization of the compounds, for\nexample Cu2O, TiN and hydrocarbons, are given in the\nfollowing table:\n\n| | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|\n| | O | Cu | N | C | H | Ti | Zn | Zr |\n| O | F | F | F | F | F | F | F | F |\n| Cu | F | F | P | F | F | P | F | P |\n| N | F | P | F | M | F | P | P | P |\n| C | F | F | M | F | F | M | M | M |\n| H | F | F | F | F | F | M | M | F |\n| Ti | F | P | P | M | M | F | P | P |\n| Zn | F | F | P | M | M | P | F | P |\n| Zr | F | P | P | M | F | P | P | F |\n\n* F = Fully optimized\n* M = Only optimized for dimer molecule\n* P = in progress, but have it from mixing rule\n\nFor style *comb3*, in addition to ffield.comb3, a special parameter\nfile, *lib.comb3*, that is exclusively used for C/O/H systems, will be\nautomatically loaded if carbon atom is detected in LAMMPS input\nstructure. This file must be in your working directory or in the\ndirectories listed in the environment variable ``LAMMPS_POTENTIALS``, as\ndescribed on the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command doc page.\n\nThe keyword *polar* indicates whether the force field includes\nthe atomic polarization. Since the equilibration of the polarization\nhas not yet been implemented, it can only set polar_off at present.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can not use potential file *ffield.comb* with style *comb3*,\n > nor file *ffield.comb3* with style *comb* . \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThese pair styles does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThese pair styles do not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style, pair_coeff, and [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) commands in an input script that reads a\nrestart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(COMB)** T.-R. Shan, B. D. Devine, T. W. Kemper, S. B. Sinnott, and\nS. R. Phillpot, Phys. Rev. B 81, 125328 (2010) \n \n**(COMB3)** T. Liang, T.-R. Shan, Y.-T. Cheng, B. D. Devine, M. Noordhoek,\nY. Li, Z. Lu, S. R. Phillpot, and S. B. Sinnott, Mat. Sci. & Eng: R 74,\n255-279 (2013). \n \n**(Rick2)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994). \n ", + "restrictions": "These pair styles are part of the MANYBODY package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe COMB potentials in the *ffield.comb* and *ffield.comb3* files provided\nwith LAMMPS (see the potentials directory) are parameterized for metal\n[units ](https://docs.lammps.org/units.html). You can use the COMB potential with any LAMMPS\nunits, but you would need to create your own COMB potential file with\ncoefficients listed in the appropriate units if your simulation\ndoes not use \"metal\" units.\n", + "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html)\n" }, { "command": [ - "temper/npt" + "fix langevin", + "fix langevin/kk" ], "syntax": [ - "temper/npt N M temp fix-ID seed1 seed2 pressure index" + "fix ID group-ID langevin Tstart Tstop damp seed keyword values ..." ], "args": [ [ { - "arg": "temper/npt", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "M", - "type": 2, - "choices": [] + "arg": "langevin", + "type": 3, + "choices": [ + "langevin", + "langevin/kk" + ] }, { - "arg": "temp", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "fix-ID", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "seed1", + "arg": "damp", "type": 2, "choices": [] }, { - "arg": "seed2", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "pressure", - "type": 2, - "choices": [] + "arg": "zero", + "type": 3, + "choices": [ + "angmom", + "gjf", + "omega", + "scale", + "tally", + "zero" + ] }, { - "arg": "index", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* temp = initial temperature for this ensemble\n* fix-ID = ID of the fix that will control temperature and pressure during the run\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* pressure = setpoint pressure for the ensemble\n* index = which temperature (0 to N-1) I am simulating (optional) \n", - "examples": "\n```lmps\ntemper/npt 100000 100 $t nptfix 0 58728 1\ntemper/npt 2500000 1000 300 nptfix 0 32285 $p\ntemper/npt 5000000 2000 $t nptfix 0 12523 1 $w\n```\n", - "html_filename": "temper_npt.html", - "short_description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system in the isothermal-isobaric (NPT)\nensemble", - "description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system in the isothermal-isobaric (NPT)\nensemble. The command temper/npt works like [temper ](https://docs.lammps.org/temper.html) but\nrequires running replicas in the NPT ensemble instead of the canonical\n(NVT) ensemble and allows for pressure to be set in the ensembles.\nThese multiple ensembles can run in parallel at different temperatures\nor different pressures. The acceptance criteria for temper/npt is\nspecific to the NPT ensemble and can be found in references\n**Okabe2** and **Mori2**.\n\nApart from the difference in acceptance criteria and the specification\nof pressure, this command works much like the [temper ](https://docs.lammps.org/temper.html)\ncommand. See the documentation on [temper ](https://docs.lammps.org/temper.html) for information\non how the parallel tempering is handled in general.\n\n----------\n\n**(Okabe2)** T. Okabe, M. Kawata, Y. Okamoto, M. Masuhiro, Chem. Phys. Lett., 335, 435-439 (2001). \n \n**(Mori2)** Y. Mori, Y. Okamoto, J. Phys. Soc. Jpn., 7, 074003 (2010). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThis command should be used with a fix that maintains the\nisothermal-isobaric (NPT) ensemble.\n", - "related": "[temper ](https://docs.lammps.org/temper.html), [variable ](https://docs.lammps.org/variable.html), [fix_npt ](https://docs.lammps.org/fix_nh.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* Tstart can be a variable (see below)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = angmom or gjf or omega or scale or tally or zero \n *        angmom value = no or factor \n         no = do not thermostat rotational degrees of freedom via the angular momentum \n         factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below \n *        gjf value = no or vfull or vhalf \n         no = use standard formulation \n         vfull = use Gronbech-Jensen/Farago formulation \n         vhalf = use 2GJ formulation \n *        omega value = no or yes \n         no = do not thermostat rotational degrees of freedom via the angular velocity \n         yes = do thermostat rotational degrees of freedom via the angular velocity \n *        scale values = type ratio \n         type = atom type (1-N) \n         ratio = factor by which to scale the damping coefficient \n *        tally value = no or yes \n         no = do not tally the energy added/subtracted to atoms \n         yes = do tally the energy added/subtracted to atoms \n *        zero value = no or yes \n         no = do not set total random force to zero \n         yes = set total random force to zero \n", + "examples": "\n```lmps\nfix 3 boundary langevin 1.0 1.0 1000.0 699483\nfix 1 all langevin 1.0 1.1 100.0 48279 scale 3 1.5\nfix 1 all langevin 1.0 1.1 100.0 48279 angmom 3.333\n```\n", + "html_filename": "fix_langevin.html", + "short_description": "Apply a Langevin thermostat as described in **Schneider1**\nto a group of atoms which models an interaction with a background\nimplicit solvent", + "description": "Apply a Langevin thermostat as described in **Schneider1**\nto a group of atoms which models an interaction with a background\nimplicit solvent. Used with [fix nve ](https://docs.lammps.org/fix_nve.html), this command\nperforms Brownian dynamics (BD), since the total force on each atom\nwill have the form:\n\\[\\begin{align*} \n F = & F_c + F_f + F_r \\\\\n F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\\n F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\n\\(F_c\\) is the conservative force computed via the usual\ninter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html),\n[bond_style ](https://docs.lammps.org/bond_style.html), etc). The \\(F_f\\) and \\(F_r\\)\nterms are added by this fix on a per-particle basis. See the\n[pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html) command for a thermostatting\noption that adds similar terms on a pairwise basis to pairs of\ninteracting particles.\n\n\\(F_f\\) is a frictional drag or viscous damping term proportional to\nthe particle's velocity. The proportionality constant for each atom is\ncomputed as \\(\\frac{m}{\\mathrm{damp}}\\), where *m* is the mass of the\nparticle and damp is the damping factor specified by the user.\n\n\\(F_r\\) is a force due to solvent atoms at a temperature \\(T\\)\nrandomly bumping into the particle. As derived from the\nfluctuation/dissipation theorem, its magnitude as shown above is\nproportional to \\(\\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}}\\), where\n\\(k_B\\) is the Boltzmann constant, \\(T\\) is the desired temperature,\n*m* is the mass of the particle, *dt* is the timestep size, and damp is\nthe damping factor. Random numbers are used to randomize the direction\nand magnitude of this force as described in **Dunweg1**,\nwhere a uniform random number is used (instead of a Gaussian random\nnumber) for speed.\n\nNote that unless you use the *omega* or *angmom* keywords, the\nthermostat effect of this fix is applied to only the translational\ndegrees of freedom for the particles, which is an important\nconsideration for finite-size particles, which have rotational degrees\nof freedom, are being thermostatted. The translational degrees of\nfreedom can also have a bias velocity removed from them before\nthermostatting takes place; see the description below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs Nose/Hoover\n > thermostatting AND time integration, this fix does NOT perform time\n > integration. It only modifies forces to effect thermostatting. Thus\n > you must use a separate time integration fix, like [fix nve > ](https://docs.lammps.org/fix_nve.html) to actually update the velocities and positions of atoms\n > using the modified forces. Likewise, this fix should not normally be\n > used on atoms that also have their temperature controlled by another\n > fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale > ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for\na discussion of different ways to compute temperature and perform\nthermostatting.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* .\n\n*Tstart* can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). In this case, the *Tstop* setting is\nignored. If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\ntarget temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent\ntemperature with optional time-dependence as well.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nThe *damp* parameter is specified in time units and determines how\nrapidly the temperature is relaxed. For example, a value of 100.0 means\nto relax the temperature in a timespan of (roughly) 100 time units\n(\\(\\tau\\) or fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The\ndamp factor can be thought of as inversely related to the viscosity of\nthe solvent. I.e. a small relaxation time implies a high-viscosity\nsolvent and vice versa. See the discussion about \\(\\gamma\\) and\nviscosity in the documentation for the [fix viscous ](https://docs.lammps.org/fix_viscous.html)\ncommand for more details.\n\nThe random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe keyword *angmom* and *omega* keywords enable thermostatting of\nrotational degrees of freedom in addition to the usual translational\ndegrees of freedom. This can only be done for finite-size particles.\n\nA simulation using atom_style sphere defines an omega for finite-size\nspheres. A simulation using atom_style ellipsoid defines a finite\nsize and shape for aspherical particles and an angular momentum.\nThe Langevin formulas for thermostatting the rotational degrees of\nfreedom are the same as those above, where force is replaced by\ntorque, m is replaced by the moment of inertia I, and v is replaced by\nomega (which is derived from the angular momentum in the case of\naspherical particles).\n\nThe rotational temperature of the particles can be monitored by the\n[compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and [computetemp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) commands with their rotate\noptions.\n\nFor the *omega* keyword there is also a scale factor of\n\\(\\frac{10.0}{3.0}\\) that is applied as a multiplier on the\n\\(F_f\\) (damping) term in the equation above and of\n\\(\\sqrt{\\frac{10.0}{3.0}}\\) as a multiplier on the \\(F_r\\) term.\nThis does not affect the thermostatting behavior of the Langevin\nformalism but ensures that the randomized rotational diffusivity of\nspherical particles is correct.\n\nFor the *angmom* keyword a similar scale factor is needed which is\n\\(\\frac{10.0}{3.0}\\) for spherical particles, but is anisotropic for\naspherical particles (e.g. ellipsoids). Currently LAMMPS only applies\nan isotropic scale factor, and you can choose its magnitude as the\nspecified value of the *angmom* keyword. If your aspherical particles\nare (nearly) spherical than a value of \\(\\frac{10.0}{3.0} =\n3.\\overline{3}\\) is a good choice. If they are highly aspherical, a\nvalue of 1.0 is as good a choice as any, since the effects on rotational\ndiffusivity of the particles will be incorrect regardless. Note that\nfor any reasonable scale factor, the thermostatting effect of the\n*angmom* keyword on the rotational temperature of the aspherical\nparticles should still be valid.\n\nThe keyword *scale* allows the damp factor to be scaled up or down by\nthe specified factor for atoms of that type. This can be useful when\ndifferent atom types have different sizes or masses. It can be used\nmultiple times to adjust damp for several atom types. Note that\nspecifying a ratio of 2 increases the relaxation time which is\nequivalent to the solvent's viscosity acting on particles with\n\\(\\frac{1}{2}\\) the diameter. This is the opposite effect of scale\nfactors used by the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, since the\ndamp factor in fix *langevin* is inversely related to the \\(\\gamma\\)\nfactor in fix *viscous* . Also note that the damping factor in fix\n*langevin* includes the particle mass in Ff, unlike fix *viscous* .\nThus the mass and size of different atom types should be accounted for\nin the choice of ratio values.\n\nThe keyword *tally* enables the calculation of the cumulative energy\nadded/subtracted to the atoms as they are thermostatted. Effectively\nit is the energy exchanged between the infinite thermal reservoir and\nthe particles. As described below, this energy can then be printed\nout or added to the potential energy of the system to monitor energy\nconservation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This accumulated energy does NOT include kinetic energy removed\n > by the *zero* flag. LAMMPS will print a warning when both options are\n > active. \n > \n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat. Because the random forces on different atoms are\nindependent, they do not sum exactly to zero. As a result, this fix\napplies a small random force to the entire system, and the\ncenter-of-mass of the system undergoes a slow random walk. If the\nkeyword *zero* is set to *yes*, the total random force is set exactly\nto zero by subtracting off an equal part of it from each atom in the\ngroup. As a result, the center-of-mass of a system with zero initial\nmomentum will not drift over time.\n\nThe keyword *gjf* can be used to run the **Gronbech-Jensen** time-discretization of the Langevin model. As\ndescribed in the papers cited below, the purpose of this method is to\nenable longer timesteps to be used (up to the numerical stability\nlimit of the integrator), while still producing the correct Boltzmann\ndistribution of atom positions.\n\nThe current implementation provides the user with the option to output\nthe velocity in one of two forms: *vfull* or *vhalf*, which replaces\nthe outdated option *yes* . The *gjf* option *vfull* outputs the\non-site velocity given in **Gronbech-Jensen**; this velocity is shown to be systematically lower\nthan the target temperature by a small amount, which grows\nquadratically with the timestep. The *gjf* option *vhalf* outputs the\n2GJ half-step velocity given in **2Gronbech-Jensen**; for linear systems, this velocity is shown to not\nhave any statistical errors for any stable time step. An overview of\nstatistically correct Boltzmann and Maxwell-Boltzmann sampling of true\non-site and true half-step velocities is given in\n**1Gronbech-Jensen**. Regardless of the choice\nof output velocity, the sampling of the configurational distribution\nof atom positions is the same, and linearly consistent with the target\ntemperature.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*, but only if the *tally* keyword to set to\n*yes* . See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\nNote that calculation of this quantity also requires setting the\n*tally* keyword to *yes* .\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schneider1)** Schneider and Stoll, Phys Rev B, 17, 1302 (1978). \n \n**(Dunweg1)** Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991). \n \n**(Gronbech-Jensen)** Gronbech-Jensen and Farago, Mol Phys, 111, 983\n(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, 185, 524 (2014) \n \n**(2Gronbech-Jensen)** Gronbech Jensen and Gronbech-Jensen, Mol Phys, 117, 2511 (2019) \n \n**(1Gronbech-Jensen)** Gronbech-Jensen, Mol Phys (2019); https://doi.org/10.1080/00268976.2019.1662506 \n ", + "restrictions": "For *gjf* do not choose damp=dt/2. *gjf* is not compatible\nwith run_style respa.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html)\n" }, { "command": [ - "pair_style kim" + "pair_style threebody/table" ], "syntax": [ - "pair_style kim model" + "pair_style style" ], "args": [ [ @@ -1987,185 +1777,150 @@ export const command_docs = [ "choices": [] }, { - "arg": "kim", - "type": 1, - "choices": [] - }, - { - "arg": "model", + "arg": "style", "type": 2, "choices": [] } ] ], - "parameters": "model = name of a KIM model (the KIM ID for models archived in OpenKIM) \n", - "examples": "\n```lmps\npair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005\npair_coeff * * Si\n```\n", - "html_filename": "pair_kim.html", - "short_description": "This pair style is a wrapper on the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org)\nrepository of interatomic potentials to enable their use in LAMMPS scripts", - "description": "This pair style is a wrapper on the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org)\nrepository of interatomic potentials to enable their use in LAMMPS scripts.\n\nThe preferred interface for using interatomic models archived in\nOpenKIM is the [kim command ](https://docs.lammps.org/kim_commands.html) interface. That\ninterface supports both \"KIM Portable Models\" (PMs) that conform to the\nKIM API Portable Model Interface (PMI) and can be used by any\nsimulation code that conforms to the KIM API/PMI, and\n\"KIM Simulator Models\" (SMs) that are natively implemented within a single\nsimulation code (like LAMMPS) and can only be used with it.\nThe *pair_style kim* command is limited to KIM PMs. It is\nused by the [kim command ](https://docs.lammps.org/kim_commands.html) interface as needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since *pair_style kim* is called by *kim interactions* as needed,\n > it is not recommended to be directly used in input scripts. \n > \n\n----------\n\nThe argument *model* is the name of the KIM PM.\nFor potentials archived in OpenKIM\nthis is the extended KIM ID (see [kim command ](https://docs.lammps.org/kim_commands.html)\nfor details). LAMMPS can invoke any KIM PM, however there can\nbe incompatibilities (for example due to unit matching issues).\nIn the event of an incompatibility, the code will terminate with\nan error message. Check both the LAMMPS and KIM log files for details.\n\nOnly a single *pair_coeff* command is used with the *kim* style, which\nspecifies the mapping of LAMMPS atom types to the species supported by\nthe KIM PM. This is done by specifying *N* additional arguments\nafter the \\* \\* in the *pair_coeff* command, where *N* is the number of\nLAMMPS atom types:\n\n* N element names = mapping of KIM elements to atom types\n\nFor example, consider a KIM PM that supports Si and C species.\nIf the LAMMPS simulation has four atom types, where the first three are Si,\nand the fourth is C, the following *pair_coeff* command would be used:\n\n```lmps\npair_coeff * * Si Si Si C\n```\nThe first two arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1, 2, and 3 to Si as\ndefined within KIM PM. The final C argument maps LAMMPS atom type 4 to C.\n\n----------\n\nIn addition to the usual LAMMPS error messages, the KIM library itself\nmay generate errors, which should be printed to the screen. In this\ncase it is also useful to check the *kim.log* file for additional error\ninformation. The file *kim.log* should be generated in the same\ndirectory where LAMMPS is running.\n\nTo download, build, and install the KIM library on your system, see\nthe *lib/kim/README* file. Once you have done this and built LAMMPS\nwith the KIM package installed you can run the example input scripts\nin *examples/kim* .\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since KIM stores the potential parameters.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style is part of the KIM package. See details on\nrestrictions in [kim command ](https://docs.lammps.org/kim_commands.html).\n\nThis current version of pair_style kim is compatible with the\nkim-api package version 2.0.0 and higher.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [kim command ](https://docs.lammps.org/kim_commands.html)\n" + "parameters": "* style = threebody/table \n", + "examples": "\n```lmps\npair_style threebody/table\npair_coeff * * spce2.3b type1 type2\n\npair_style hybrid/overlay table linear 1200 threebody/table\npair_coeff 1 1 table table_CG_CG.txt VOTCA\npair_coeff * * threebody/table spce.3b type\n```\nUsed in example input scripts:\n\n```\nexamples/PACKAGES/manybody_table/in.spce\nexamples/PACKAGES/manybody_table/in.spce2\n```\n", + "html_filename": "pair_threebody_table.html", + "short_description": "\nThe *threebody/table* style is a pair style for generic tabulated\nthree-body interactions", + "description": "\nThe *threebody/table* style is a pair style for generic tabulated\nthree-body interactions. It has been developed for (coarse-grained)\nsimulations (of water) with Kernel-based machine learning (ML)\npotentials (**Scherer2**). As for many other MANYBODY\npackage pair styles the energy of a system is computed as a sum over\nthree-body terms:\n\\[\n E = \\sum_i \\sum_{j \\neq i} \\sum_{k > j} \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk})\\]\nThe summations in the formula are over all neighbors J and K of atom I\nwithin a cutoff distance \\(cut\\). In contrast to the\nStillinger-Weber potential, all forces are not calculated analytically,\nbut read in from a three-body force/energy table which can be generated\nwith the csg_ml app of VOTCA as available at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca.\n\nOnly a single pair_coeff command is used with the *threebody/table*\nstyle which specifies a threebody potential (\".3b\") file with parameters\nfor all needed elements. These are then mapped to LAMMPS atom types by\nspecifying N_el additional arguments after the \".3b\" filename in the\npair_coeff command, where N_el is the number of LAMMPS atom types:\n\n* \".3b\" filename\n* N_el element names = mapping of threebody elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, imagine a file SiC.3b has three-body values for Si and C.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Si, and the fourth to be C, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * SiC.3b Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the \".3b\" file. The final C argument maps LAMMPS atom type 4\nto the C element in the threebody file. If a mapping value is specified\nas NULL, the mapping is not performed. This can be used when a\n*threebody/table* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nThe three-body files have a \".3b\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry specify to the (three-body)\ncutoff distance and the tabulated three-body interaction. A single entry\nthen contains:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* cut (distance units)\n* filename\n* keyword\n* style\n* N\n\nThe parameter \\(cut\\) is the (three-body) cutoff distance. When set\nto 0, no interaction is calculated for this element triplet. The\nparameters *filename*, *keyword*, *style*, and *N* refer to the\ntabulated three-body potential.\n\nThe tabulation is done on a three-dimensional grid of the two distances\n\\(r_{ij}\\) and \\(r_{ik}\\) as well as the angle\n\\(\\theta_{ijk}\\) which is constructed in the following way. There\nare two different cases. If element 2 and element 3 are of the same\ntype (e.g. SiCC), the distance \\(r_{ij}\\) is varied in \"N\" steps\nfrom rmin to rmax and the distance \\(r_{ik}\\) is varied from\n\\(r_{ij}\\) to rmax. This can be done, due to the symmetry of the\ntriplet. If element 2 and element 3 are not of the same type\n(e.g. SiCSi), there is no additional symmetry and the distance\n\\(r_{ik}\\) is also varied from rmin to rmax in \"N\" steps. The angle\n\\(\\theta_{ijk}\\) is always varied in \"2N\" steps from (0.0 +\n180.0/(4N)) to (180.0 - 180.0/(4N)). Therefore, the total number of\ntable entries is \"M = N * N * (N+1)\" for the symmetric (element 2 and\nelement 3 are of the same type) and \"M = 2 * N * N * N\" for the general\ncase (element 2 and element 3 are not of the same type).\n\nThe forces on all three particles I, J, and K of a triplet of this type\nof three-body interaction potential (\\(\\phi_3 (r_{ij}, r_{ik},\n\\theta_{ijk})\\)) lie within the plane defined by the three inter-particle\ndistance vectors \\({\\mathbf r}_{ij}\\), \\({\\mathbf r}_{ik}\\), and\n\\({\\mathbf r}_{jk}\\). This property is used to project the forces\nonto the inter-particle distance vectors as follows\n\\[\\begin{align*} \n \\begin{pmatrix}\n {\\mathbf f}_{i} \\\\\n {\\mathbf f}_{j} \\\\\n {\\mathbf f}_{k} \\\\\n \\end{pmatrix} =\n \\begin{pmatrix}\n f_{i1} & f_{i2} & 0 \\\\\n f_{j1} & 0 & f_{j2} \\\\\n 0 & f_{k1} & f_{k2} \\\\\n \\end{pmatrix}\n \\begin{pmatrix}\n {\\mathbf r}_{ij} \\\\\n {\\mathbf r}_{ik} \\\\\n {\\mathbf r}_{jk} \\\\\n \\end{pmatrix} \\end{align*} \\]\nand then tabulate the 6 force constants \\(f_{i1}\\), \\(f_{i2}\\),\n\\(f_{j1}\\), \\(f_{j2}\\), \\(f_{k1}\\), and \\(f_{k2}\\), as\nwell as the energy of a triplet e. Due to symmetry reasons, the\nfollowing relations hold: \\(f_{i1}=-f_{j1}\\),\n\\(f_{i2}=-f_{k1}\\), and \\(f_{j2}=-f_{k2}\\). As in this pair\nstyle the forces are read in directly, a correct MD simulation is also\nperformed in the case that the triplet energies are set to e=0.\n\nThe *filename* specifies the file containing the tabulated energy and\nderivative values of \\(\\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk})\\). The\n*keyword* then specifies a section of the file. The format of this file\nis as follows (without the parenthesized comments):\n\n```\n# Tabulated three-body potential for spce water (one or more comment or blank lines)\n\nENTRY1 (keyword is the first text on line)\nN 12 rmin 2.55 rmax 3.65 (N, rmin, rmax parameters)\n(blank line)\n1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 (index, r_ij, r_ik, theta, f_i1, f_i2, f_j1, f_j2, f_k1, f_k2, e)\n2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0\n...\n1872 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required. It should be the same than the parameter\n\"N\" of the \".3b\" file, otherwise its value is overwritten. \"N\"\ndetermines the number of table entries \"M\" that follow: \"M = N * N *\n(N+1)\" (symmetric triplet, e.g. SiCC) or \"M = 2 * N * N * N\" (asymmetric\ntriplet, e.g. SiCSi). Therefore \"M = 12 * 12 * 13 = 1872\" in the above\nsymmetric example. The parameters \"rmin\" and \"rmax\" are also required\nand determine the minimum and maximum of the inter-particle distances\n\\(r_{ij}\\) and \\(r_{ik}\\).\n\nFollowing a blank line, the next M lines of the angular table file list\nthe tabulated values. On each line, the first value is the index from 1\nto M, the second value is the distance \\(r_{ij}\\), the third value\nis the distance \\(r_{ik}\\), the fourth value is the angle\n\\(\\theta_{ijk})\\), the next six values are the force constants\n\\(f_{i1}\\), \\(f_{i2}\\), \\(f_{j1}\\), \\(f_{j2}\\),\n\\(f_{k1}\\), and \\(f_{k2}\\), and the last value is the energy e.\n\nNote that one three-body potential file can contain many sections, each\nwith a tabulated potential. LAMMPS reads the file section by section\nuntil it finds one that matches the specified *keyword* of appropriate\nsection of the \".3b\" file.\n\nAt the moment, only the *style* *linear* is allowed and\nimplemented. After reading in the force table, it is internally stored\nin LAMMPS as a lookup table. For each triplet configuration occurring in\nthe simulation within the cutoff distance, the next nearest tabulated\ntriplet configuration is looked up. No interpolation is done. This\nallows for a very efficient force calculation with the stored force\nconstants and energies. Due to the know table structure, the lookup can\nbe done efficiently. It has been tested (**Scherer2**)\nthat with a reasonably small bin size, the accuracy and speed is\ncomparable to that of a Stillinger-Weber potential with tabulated\nthree-body interactions ([pair_style sw/angle/table](https://docs.lammps.org/pair_sw_angle_table.html)) while the table format of this pair style allows\nfor more flexible three-body interactions.\n\nAs for the Stillinger-Weber potential, the three-body potential file\nmust contain entries for all the elements listed in the pair_coeff\ncommand. It can also contain entries for additional elements not being\nused in a particular simulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify threebody parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom in\na three-body interaction. Thus an entry for SiCC means a Si atom with 2\nC atoms as neighbors. The tabulated three-body forces can in principle\nbe specific to the three elements of the configuration. However, the\nuser must ensure that it makes physically sense. E.g., the tabulated\nthree-body forces for the entries CSiC and CCSi should be the same\nexchanging \\(r_{ij}\\) with r_{ik}, \\(f_{j1}\\) with\n\\(f_{k1}\\), and \\(f_{j2}\\) with \\(f_{k2}\\).\n\nAdditional input files and reference data can be found at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/ml\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nAs all interactions are tabulated, no mixing is performed.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Scherer2)** C. Scherer, R. Scheid, D. Andrienko, and T. Bereau, J. Chem. Theor. Comp. 16, 3194-3204 (2020). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair sw/angle/table ](https://docs.lammps.org/pair_sw_angle_table.html)\n\n\n----------\n\n.. _Scherer2:\n\n**(Scherer2)** C. Scherer, R. Scheid, D. Andrienko, and T. Bereau, J. Chem. Theor. Comp. 16, 3194-3204 (2020).\n" }, { "command": [ - "fix_modify AtC on_the_fly" + "pair_style ilp/tmd" ], "syntax": [ - "fix_modify on_the_fly " + "pair_style [hybrid/overlay ...] ilp/tmd cutoff tap_flag" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "[hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "on_the_fly", - "type": 1, + "arg": "...]", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "bond", - "kernel" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* on_the_fly = name of the AtC sub-command\n* bond or kernel = specifies on-the-fly calculation of bond or kernel matrix elements\n* on or off = activate or discontinue on-the-fly mode \n", - "examples": "\n```lmps\nfix_modify AtC on_the_fly bond on\nfix_modify AtC on_the_fly kernel\nfix_modify AtC on_the_fly kernel off\n```\n", - "html_filename": "atc_hardy_on_the_fly.html", - "short_description": "Overrides normal mode of pre-calculating and storing bond pair-to-node a\nnd kernel atom-to-node matrices", - "description": "Overrides normal mode of pre-calculating and storing bond pair-to-node a\nnd kernel atom-to-node matrices. If activated, it will calculate elements\nof these matrices during repeated calls of field computations\n(i.e. \"on-the-fly\") and not store them for future use. The *on* flag is\noptional - if omitted, on_the_fly will be activated for the specified\nmatrix. Can be deactivated using the *off* flag.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "pair_style smd/tlsph" - ], - "syntax": [ - "pair_style smd/tlsph args" - ], - "args": [ - [ - { - "arg": "pair_style", + "arg": "ilp/tmd", "type": 1, "choices": [] }, { - "arg": "smd/tlsph", - "type": 1, + "arg": "cutoff", + "type": 2, "choices": [] }, { - "arg": "args", + "arg": "tap_flag", "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style smd/tlsph\n```\n", - "html_filename": "pair_smd_tlsph.html", - "short_description": "The *smd/tlsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and a Total-Lagrangian\nSmooth-Particle Hydrodynamics algorithm", - "description": "The *smd/tlsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and a Total-Lagrangian\nSmooth-Particle Hydrodynamics algorithm.\n\nThis pair style is invoked with the following command:\n\n[``lmpspair_style smd/tlsphpair_coeff i j *COMMON rho0 E nu Q1 Q2 hg Cp &*END```Here, *i* and *j* denote the *LAMMPS* particle types for which thispair style is defined. Note that *i* and *j* must be equal, i.e., no*tlsph* cross interactions between different particle types areallowed. In contrast to the usual *LAMMPS* *pair coeff* definitions,which are given solely a number of floats and integers, the *tlsph**pair coeff* definition is organized using keywords. These keywordsmark the beginning of different sets of parameters for particleproperties, material constitutive models, and damage models. The *paircoeff* line must be terminated with the *\\*END* keyword. The use theline continuation operator *&* is recommended. A typical invocation ofthe *tlsph* for a solid body would consist of an equation of state forcomputing the pressure (the diagonal components of the stress tensor),and a material model to compute shear stresses (the off-diagonalcomponents of the stress tensor). Damage and failure models can alsobe added.Please see the `SMD user guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) for a\ncomplete listing of the possible keywords and material models.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style hybrid/overlay ilp/tmd 16.0 1\npair_coeff * * ilp/tmd TMD.ILP Mo S S\n\npair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0\npair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL\npair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL W Se Se\npair_coeff * * ilp/tmd TMD.ILP Mo S S W Se Se\n```\n", + "html_filename": "pair_ilp_tmd.html", + "short_description": "\nThe *ilp/tmd* style computes the registry-dependent interlayer\npotential (ILP) potential for transition metal dichalcogenides (TMD)\nas described in **Ouyang7** and **Jiang**", + "description": "\nThe *ilp/tmd* style computes the registry-dependent interlayer\npotential (ILP) potential for transition metal dichalcogenides (TMD)\nas described in **Ouyang7** and **Jiang**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since each MX2 (M = Mo, W and X = S, Se Te) layer contains two\n > sub-layers of X atoms and one sub-layer of M atoms, the definition of the\n > normal vectors used for graphene and h-BN is no longer valid for TMDs.\n > In **Ouyang7**, a new definition is proposed, where for\n > each atom `i`, its six nearest neighboring atoms belonging to the same\n > sub-layer are chosen to define the normal vector `{\\bf n}_i`. \n > \n\nThe parameter file (e.g. TMD.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. TMD.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful.\n > These parameters provide a good description in both short- and long-range\n > interaction regimes. This feature is essential for simulations in high pressure\n > regime (i.e., the interlayer distance is smaller than the equilibrium\n > distance). The benchmark tests and comparison of these parameters can\n > be found in **Ouyang7**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair ilp/tmd\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Ouyang7)** W. Ouyang, et al., J. Chem. Theory Comput. 17, 7237 (2021). \n \n**(Jiang)** W. Jiang, et al., J. Phys. Chem. A, 127, 46, 9820-9830 (2023). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe TMD.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom TMD.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" }, { "command": [ - "angle_style cosine/delta", - "angle_style cosine/delta/omp" + "restart" ], "syntax": [ - "angle_style cosine/delta" + "restart 0", + "restart N root keyword value ...", + "restart N file1 file2 keyword value ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "restart", "type": 1, "choices": [] }, { - "arg": "cosine/delta", - "type": 3, - "choices": [ - "cosine/delta", - "cosine/delta/omp" - ] + "arg": "0", + "type": 2, + "choices": [] } - ] - ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine/delta\nangle_coeff 2*4 75.0 100.0\n```\n", - "html_filename": "angle_cosine_delta.html", - "short_description": "The *cosine/delta* angle style uses the potential\n\\[\n E = K [1 - \\cos(\\theta - \\theta_0)]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", - "description": "The *cosine/delta* angle style uses the potential\n\\[\n E = K [1 - \\cos(\\theta - \\theta_0)]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style cosine/squared ](https://docs.lammps.org/angle_cosine_squared.html)\n" -}, -{ - "command": [ - "fix nph/sphere", - "fix nph/sphere/omp" - ], - "syntax": [ - "fix ID group-ID nph/sphere args keyword value ..." - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "restart", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "root", "type": 2, "choices": [] }, { - "arg": "nph/sphere", + "arg": "nfile", "type": 3, "choices": [ - "nph/sphere", - "nph/sphere/omp" + "fileper", + "nfile" ] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] + } + ], + [ + { + "arg": "restart", + "type": 1, + "choices": [] }, { - "arg": "keyword", + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "file1", + "type": 2, + "choices": [] + }, + { + "arg": "file2", "type": 2, "choices": [] }, + { + "arg": "nfile", + "type": 3, + "choices": [ + "fileper", + "nfile" + ] + }, { "arg": "value", "type": 2, @@ -2173,177 +1928,246 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/sphere = style name of this fix command\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nph/sphere iso 0.0 0.0 1000.0\nfix 2 all nph/sphere x 5.0 5.0 1000.0\nfix 2 all nph/sphere x 5.0 5.0 1000.0 disc\nfix 2 all nph/sphere x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/sphere aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_nph_sphere.html", - "short_description": "Perform constant NPH integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover pressure barostat", - "description": "Perform constant NPH integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover pressure barostat. P is pressure; H is\nenthalpy. This creates a system trajectory consistent with the\nisenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/sphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/sphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", - "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt_sphere ](https://docs.lammps.org/fix_nvt_sphere.html), [fix npt_sphere ](https://docs.lammps.org/fix_npt_sphere.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* N = write a restart file on timesteps which are multiples of N\n* N can be a variable (see below)\n* root = filename to which timestep # is appended\n* file1,file2 = two full filenames, toggle between them when writing file\n* zero or more keyword/value pairs may be appended\n* keyword = fileper or nfile \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n", + "examples": "\n```lmps\nrestart 0\nrestart 1000 poly.restart\nrestart 1000 restart.*.equil\nrestart 10000 poly.%.1 poly.%.2 nfile 10\nrestart v_mystep poly.restart\n```\n", + "html_filename": "restart.html", + "short_description": "Write out a binary restart file with the current state of the\nsimulation on timesteps which are a multiple of N", + "description": "Write out a binary restart file with the current state of the\nsimulation on timesteps which are a multiple of N. A value of N = 0\nmeans do not write out any restart files, which is the default.\nRestart files are written in one (or both) of two modes as a run\nproceeds. If one filename is specified, a series of filenames will be\ncreated which include the timestep in the filename. If two filenames\nare specified, only 2 restart files will be created, with those names.\nLAMMPS will toggle between the 2 names as it writes successive restart\nfiles.\n\nNote that you can specify the restart command twice, once with a\nsingle filename and once with two filenames. This would allow you,\nfor example, to write out archival restart files every 100000 steps\nusing a single filename, and more frequent temporary restart files\nevery 1000 steps, using two filenames. Using restart 0 will turn off\nboth modes of output.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the restart filename(s) can contain\ntwo wild-card characters.\n\nIf a \"\\*\" appears in the single filename, it is replaced with the\ncurrent timestep value. This is only recognized when a single\nfilename is used (not when toggling back and forth). Thus, the third\nexample above creates restart files as follows: restart.1000.equil,\nrestart.2000.equil, etc. If a single filename is used with no \"\\*\",\nthen the timestep value is appended. E.g. the second example above\ncreates restart files as follows: poly.restart.1000,\npoly.restart.2000, etc.\n\nIf a \"%\" character appears in the restart filename(s), then one file\nis written for each processor and the \"%\" character is replaced with\nthe processor ID from 0 to P-1. An additional file with the \"%\"\nreplaced by \"base\" is also written, which contains global information.\nFor example, the files written on step 1000 for filename restart.%\nwould be restart.base.1000, restart.0.1000, restart.1.1000, ...,\nrestart.P-1.1000. This creates smaller files and can be a fast mode\nof output and subsequent input on parallel machines that support\nparallel I/O. The optional *fileper* and *nfile* keywords discussed\nbelow can alter the number of files written.\n\nRestart files are written on timesteps that are a multiple of N but\nnot on the first timestep of a run or minimization. You can use the\n[write_restart ](https://docs.lammps.org/write_restart.html) command to write a restart file\nbefore a run begins. A restart file is not written on the last\ntimestep of a run unless it is a multiple of N. A restart file is\nwritten on the last timestep of a minimization if N > 0 and the\nminimization converges.\n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is\nthe variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the next timestep at which a restart\nfile will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the variable\nshould return timestep values. See the stagger() and logfreq() and\nstride() math functions for [equal-style variables ](https://docs.lammps.org/variable.html), as\nexamples of useful functions to use in this context. Other similar math\nfunctions could easily be added as options for [equal-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, the following commands will write restart files\nevery step from 1100 to 1200, and could be useful for debugging\na simulation where something goes wrong at step 1163:\n\n```lmps\nvariable s equal stride(1100,1200,1)\nrestart v_s tmp.restart\n```\n----------\n\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for information about\nwhat is stored in a restart file.\n\nRestart files can be read by a [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand to restart a simulation from a particular state. Because the\nfile is binary (to enable exact restarts), it may not be readable on\nanother machine. In this case, you can use the [-r command-line switch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Although the purpose of restart files is to enable restarting a\n > simulation from where it left off, not all information about a\n > simulation is stored in the file. For example, the list of fixes that\n > were specified during the initial run is not stored, which means the\n > new input script must specify any fixes you want to use. Even when\n > restart information is stored in the file, as it is for some fixes,\n > commands may need to be re-specified in the new input script, in order\n > to re-use that information. See the [read_restart ](https://docs.lammps.org/read_restart.html)\n > command for information about what is stored in a restart file. \n > \n\n----------\n\nThe optional *nfile* or *fileper* keywords can be used in conjunction\nwith the \"%\" wildcard character in the specified restart file name(s).\nAs explained above, the \"%\" character causes the restart file to be\nwritten in pieces, one piece for each of P processors. By default P =\nthe number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set P to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets P to the specified Nf value. For example, if\nNf = 4, and the simulation is running on 100 processors, 4 files will\nbe written, by processors 0,25,50,75. Each will collect information\nfrom itself and the next 24 processors and write it to a restart file.\n\nFor the *fileper* keyword, the specified value of Np means write one\nfile for every Np processors. For example, if Np = 4, every fourth\nprocessor (0,4,8,12,etc) will collect information from itself and the\nnext 3 processors and write it to a restart file.\n\n----------\n", + "restrictions": "none\n", + "related": "[write_restart ](https://docs.lammps.org/write_restart.html), [read_restart ](https://docs.lammps.org/read_restart.html)\n" }, { "command": [ - "pair_style saip/metal" + "fix grem" ], "syntax": [ - "pair_style [hybrid/overlay ...] saip/metal cutoff tap_flag" + "fix ID group-ID grem lambda eta H0 thermostat-ID" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "saip/metal", + "arg": "grem", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "lambda", "type": 2, "choices": [] }, { - "arg": "tap_flag", + "arg": "eta", + "type": 2, + "choices": [] + }, + { + "arg": "H0", + "type": 2, + "choices": [] + }, + { + "arg": "thermostat-ID", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style hybrid/overlay saip/metal 16.0 1\npair_coeff * * saip/metal CHAu.ILP Au C H\n\npair_style hybrid/overlay eam rebo saip/metal 16.0\npair_coeff 1 1 eam Au_u3.eam Au NULL NULL\npair_coeff * * rebo CH.rebo NULL C H\npair_coeff * * saip/metal CHAu.ILP Au C H\n```\n", - "html_filename": "pair_saip_metal.html", - "short_description": "\nThe *saip/metal* style computes the registry-dependent interlayer\npotential (ILP) potential for hetero-junctions formed with hexagonal\n2D materials and metal surfaces, as described in **Ouyang6**", - "description": "\nThe *saip/metal* style computes the registry-dependent interlayer\npotential (ILP) potential for hetero-junctions formed with hexagonal\n2D materials and metal surfaces, as described in **Ouyang6**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To account for the isotropic nature of the isolated gold atom\n > electron cloud, their corresponding normal vectors (`{\\bf n}_i`) are\n > assumed to lie along the interatomic vector `{\\bf r}_ij`. Notably, this\n > assumption is suitable for many bulk material surfaces, for\n > example, for systems possessing s-type valence orbitals or\n > metallic surfaces, whose valence electrons are mostly\n > delocalized, such that their Pauli repulsion with the electrons\n > of adjacent surfaces are isotropic. Caution should be used in\n > the case of very small gold contacts, for example, nano-clusters,\n > where edge effects may become relevant. \n > \n\nThe parameter file (e.g. CHAu.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. BNCH.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair saip/metal\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Ouyang6)** W. Ouyang, O. Hod, and R. Guerra, J. Chem. Theory Comput. 17, 7215 (2021). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe CHAu.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom CHAu.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* grem = style name of this fix command\n* lambda = intercept parameter of linear effective temperature function\n* eta = slope parameter of linear effective temperature function\n* H0 = shift parameter of linear effective temperature function\n* thermostat-ID = ID of Nose-Hoover thermostat or barostat used in simulation \n", + "examples": "\n```lmps\nfix fxgREM all grem 400 -0.01 -30000 fxnpt\nthermo_modify press fxgREM_press\n\nfix fxgREM all grem 502 -0.15 -80000 fxnvt\n```\n", + "html_filename": "fix_grem.html", + "short_description": "This fix implements the molecular dynamics version of the generalized\nreplica exchange method (gREM) originally developed by **Kim2010**,\nwhich uses non-Boltzmann ensembles to sample over first order phase\ntransitions", + "description": "This fix implements the molecular dynamics version of the generalized\nreplica exchange method (gREM) originally developed by **Kim2010**,\nwhich uses non-Boltzmann ensembles to sample over first order phase\ntransitions. The is done by defining replicas with an enthalpy\ndependent effective temperature\n\\[\n T_{eff} = \\lambda + \\eta (H - H_0)\\]\nwith \\(\\eta\\) negative and steep enough to only intersect the\ncharacteristic microcanonical temperature (Ts) of the system once,\nensuring a unimodal enthalpy distribution in that replica.\n\\(\\lambda\\) is the intercept and effects the generalized ensemble\nsimilar to how temperature effects a Boltzmann ensemble. \\(H_0\\)\nis a reference enthalpy, and is typically set as the lowest desired\nsampled enthalpy. Further explanation can be found in our recent\npapers **Malolepsza**.\n\nThis fix requires a Nose-Hoover thermostat fix reference passed to the\ngrem as *thermostat-ID* . Two distinct temperatures exist in this\ngeneralized ensemble, the effective temperature defined above, and a\nkinetic temperature that controls the velocity distribution of\nparticles as usual. Either constant volume or constant pressure\nalgorithms can be used.\n\nThe fix enforces a generalized ensemble in a single replica\nonly. Typically, this ideology is combined with replica exchange with\nreplicas differing by \\(\\lambda\\) only for simplicity, but this is not\nrequired. A multi-replica simulation can be run within the LAMMPS\nenvironment using the [temper/grem ](https://docs.lammps.org/temper_grem.html) command. This\nutilizes LAMMPS partition mode and requires the number of available\nprocessors be on the order of the number of desired replicas. A\n100-replica simulation would require at least 100 processors (1 per\nworld at minimum). If many replicas are needed on a small number of\nprocessors, multi-replica runs can be run outside of LAMMPS. An\nexample of this can be found in examples/PACKAGES/grem and has no\nlimit on the number of replicas per processor. However, this is very\ninefficient and error prone and should be avoided if possible.\n\nIn general, defining the generalized ensembles is unique for every\nsystem. When starting a many-replica simulation without any knowledge\nof the underlying microcanonical temperature, there are several tricks\nwe have utilized to optimize the process. Choosing a less-steep\n\\(\\eta\\) yields broader distributions, requiring fewer replicas to\nmap the microcanonical temperature. While this likely struggles from\nthe same sampling problems gREM was built to avoid, it provides quick\ninsight to Ts. Initially using an evenly-spaced \\(\\lambda\\)\ndistribution identifies regions where small changes in enthalpy lead\nto large temperature changes. Replicas are easily added where needed.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [thermo_modify ](https://docs.lammps.org/thermo_modify.html) *press* option is supported\nby this fix to add the rescaled kinetic pressure as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the effective\ntemperature \\(T_{eff}\\). The scalar value calculated by this\nfix is \"intensive\".\n\n**(Kim2010)** Kim, Keyes, Straub, J Chem. Phys, 132, 224107 (2010). \n \n**(Malolepsza)** Malolepsza, Secor, Keyes, J Phys Chem B 119 (42),\n13379-13384 (2015). \n ", + "restrictions": "This fix is part of the REPLICA package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[temper/grem ](https://docs.lammps.org/temper_grem.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n" }, { "command": [ - "bond_style bpm/spring" + "fix pour" ], "syntax": [ - "bond_style bpm/spring keyword value attribute1 attribute2 ..." + "fix ID group-ID pour N type seed keyword values ..." ], "args": [ [ { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "bpm/spring", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "attribute1", + "arg": "pour", + "type": 1, + "choices": [] + }, + { + "arg": "N", "type": 2, "choices": [] }, { - "arg": "attribute2", + "arg": "type", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "ignore", + "type": 3, + "choices": [ + "region", + "diam", + "id", + "vol", + "rate", + "dens", + "vel", + "mol", + "molfrac", + "rigid", + "shake", + "ignore" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* optional keyword = overlay/pair or store/local or smooth or break \n *        store/local values = fix_ID N attributes ... \n         * fix_ID = ID of associated internal fix to store data \n         * N = prepare data for output every this many timesteps \n         * attributes = zero or more of the below attributes may be appended \n         *id1, id2* = IDs of two atoms in the bond \n         time = the timestep the bond broke \n         *x, y, z* = the center of mass position of the two atoms when the bond broke (distance units) \n         *x/ref, y/ref, z/ref* = the initial center of mass position of the two atoms (distance units) \n *        overlay/pair value = yes or no \n         bonded particles will still interact with pair forces \n *        smooth value = yes or no \n         smooths bond forces near the breaking point \n *        *normalize* value = yes or no \n         normalizes bond forces by the reference length \n *        break value = yes or no \n         indicates whether bonds break during a run \n", - "examples": "\n```lmps\nbond_style bpm/spring\nbond_coeff 1 1.0 0.05 0.1\n\nbond_style bpm/spring myfix 1000 time id1 id2\ndump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", - "html_filename": "bond_bpm_spring.html", - "short_description": "\nThe *bpm/spring* bond style computes forces based on\ndeviations from the initial reference state of the two atoms", - "description": "\nThe *bpm/spring* bond style computes forces based on\ndeviations from the initial reference state of the two atoms. The\nreference state is stored by each bond when it is first computed in\nthe setup of a run. Data is then preserved across run commands and is\nwritten to [binary restart files ](https://docs.lammps.org/restart.html) such that restarting\nthe system will not reset the reference state of a bond.\n\nThis bond style only applies central-body forces which conserve the\ntranslational and rotational degrees of freedom of a bonded set of\nparticles based on a model described by Clemmer and Robbins\n**fragment-Clemmer**. The force has a magnitude of\n\\[\n F = k (r - r_0) w\\]\nwhere \\(k\\) is a stiffness, \\(r\\) is the current distance\nand \\(r_0\\) is the initial distance between the two particles, and\n\\(w\\) is an optional smoothing factor discussed below. Bonds will\nbreak at a strain of \\(\\epsilon_c\\). This is done by setting\nthe bond type to 0 such that forces are no longer computed.\n\nAn additional damping force is applied to the bonded\nparticles. This forces is proportional to the difference in the\nnormal velocity of particles using a similar construction as\ndissipative particle dynamics **Groot4**:\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, and \\(\\vec{v}\\) is the velocity difference\nbetween the two particles.\n\nThe smoothing factor \\(w\\) can be added or removed by setting the\n*smooth* keyword to *yes* or *no*, respectively. It is constructed such\nthat forces smoothly go to zero, avoiding discontinuities, as bonds\napproach the critical strain\n\\[\n w = 1.0 - \\left( \\frac{r - r_0}{r_0 \\epsilon_c} \\right)^8 .\\]\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(k\\) (force/distance units)\n* \\(\\epsilon_c\\) (unit less)\n* \\(\\gamma\\) (force/velocity units)\n\nIf the *normalize* keyword is set to *yes*, the elastic bond force will be\nnormalized by \\(r_0\\) such that \\(k\\) must be given in force units.\n\nBy default, pair forces are not calculated between bonded particles.\nPair forces can alternatively be overlaid on top of bond forces by setting\nthe *overlay/pair* keyword to *yes*. These settings require specific\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings described in the\nrestrictions. Further details can be found in the [how to ](https://docs.lammps.org/Howto_bpm.html)\npage on BPMs.\n\nIf the *break* keyword is set to *no*, LAMMPS assumes bonds should not break\nduring a simulation run. This will prevent some unnecessary calculation.\nHowever, if a bond reaches a strain greater than \\(\\epsilon_c\\),\nit will trigger an error.\n\nIf the *store/local* keyword is used, an internal fix will track bonds that\nbreak during the simulation. Whenever a bond breaks, data is processed\nand transferred to an internal fix labeled *fix_ID*. This allows the\nlocal data to be accessed by other LAMMPS commands. Following this optional\nkeyword, a list of one or more attributes is specified. These include the\nIDs of the two atoms in the bond. The other attributes for the two atoms\ninclude the timestep during which the bond broke and the current/initial\ncenter of mass position of the two atoms.\n\nData is continuously accumulated over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\nNote that when unbroken bonds are dumped to a file via the\n[dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 (broken bonds)\nare not included.\nThe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to\nquery the status of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n #### Restart and other info\n\nThis bond style writes the reference state of each bond to\n[binary restart files ](https://docs.lammps.org/restart.html). Loading a restart\nfile will properly restore bonds. However, the reference state is NOT\nwritten to data files. Therefore reading a data file will not\nrestore bonds and will cause their reference states to be redefined.\n\nIf the *store/local* option is used, an internal fix will calculate\na local vector or local array depending on the number of input values.\nThe length of the vector or number of rows in the array is the number\nof recorded, broken bonds. If a single input is specified, a local\nvector is produced. If two or more inputs are specified, a local array\nis produced where the number of columns = the number of inputs. The\nvector or array can be accessed by any command that uses local values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor an overview of LAMMPS output options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\nThe single() function of this bond style returns 0.0 for the energy\nof a bonded interaction, since energy is not conserved in these\ndissipative potentials. The single() function also calculates an\nextra bond quantity, the initial distance \\(r_0\\). This\nextra quantity can be accessed by the\n[compute bond/local ](https://docs.lammps.org/compute_bond_local.html) command as *b1* .\n\n**(fragment-Clemmer)** Clemmer and Robbins, Phys. Rev. Lett. (2022). \n \n**(Groot4)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n ", - "restrictions": "This bond style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default if pair interactions between bonded atoms are to be disabled,\nthis bond style requires setting\n\n```lmps\nspecial_bonds lj 0 1 1 coul 1 1 1\n```\nand [newton ](https://docs.lammps.org/newton.html) must be set to bond off. If the *overlay/pair*\nkeyword is set to *yes*, this bond style alternatively requires setting\n\n```lmps\nspecial_bonds lj/coul 1 1 1\n```\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [pair bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* pour = style name of this fix command\n* N = # of particles to insert\n* type = atom type to assign to inserted particles (offset for molecule insertion)\n* seed = random # seed (positive integer)\n* one or more keyword/value pairs may be appended to args\n* keyword = region or diam or id or vol or rate or dens or vel or mol or molfrac or rigid or shake or ignore \n *        region value = region-ID \n         region-ID = ID of region to use as insertion volume \n *        diam values = dstyle args \n         dstyle = one or range or poly \n         one args = D \n         D = single diameter for inserted particles (distance units) \n         range args = Dlo Dhi \n         Dlo,Dhi = range of diameters for inserted particles (distance units) \n         poly args = Npoly D1 P1 D2 P2 ... \n         Npoly = # of (D,P) pairs \n         D1,D2,... = diameter for subset of inserted particles (distance units) \n         P1,P2,... = percentage of inserted particles with this diameter (0-1) \n *        id values = idflag \n         idflag = max or next = how to choose IDs for inserted particles and molecules \n *        vol values = fraction Nattempt \n         fraction = desired volume fraction for filling insertion volume \n         Nattempt = max # of insertion attempts per particle \n *        rate value = V \n         V = z velocity (3d) or y velocity (2d) at which \n         insertion volume moves (velocity units) \n *        dens values = Rholo Rhohi \n         Rholo,Rhohi = range of densities for inserted particles (mass/volume units) \n *        vel values (3d) = vxlo vxhi vylo vyhi vz \n *        vel values (2d) = vxlo vxhi vy \n         vxlo,vxhi = range of x velocities for inserted particles (velocity units) \n         vylo,vyhi = range of y velocities for inserted particles (velocity units) \n         vz = z velocity (3d) assigned to inserted particles (velocity units) \n         vy = y velocity (2d) assigned to inserted particles (velocity units) \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        molfrac values = f1 f2 ... fN \n         f1 to fN = relative probability of creating each of N molecules in template-ID \n *        rigid value = fix-ID \n         fix-ID = ID of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n *        shake value = fix-ID \n         fix-ID = ID of [fix shake ](https://docs.lammps.org/fix_shake.html) command \n *        ignore value = none \n         skip any line or triangle particles when detecting possible \n         overlaps with inserted particles \n", + "examples": "\n```lmps\nfix 3 all pour 1000 2 29494 region myblock\nfix 2 all pour 10000 1 19985583 region disk vol 0.33 100 rate 1.0 diam range 0.9 1.1\nfix 2 all pour 10000 1 19985583 region disk diam poly 2 0.7 0.4 1.5 0.6\nfix ins all pour 500 1 4767548 vol 0.8 10 region slab mol object rigid myRigid\n```\n", + "html_filename": "fix_pour.html", + "short_description": "Insert finite-size particles or molecules into the simulation box\nevery few timesteps within a specified region until N particles or\nmolecules have been inserted", + "description": "Insert finite-size particles or molecules into the simulation box\nevery few timesteps within a specified region until N particles or\nmolecules have been inserted. This is typically used to model the\npouring of granular particles into a container under the influence of\ngravity. For the remainder of this doc page, a single inserted atom\nor molecule is referred to as a \"particle\".\n\nIf inserted particles are individual atoms, they are assigned the\nspecified atom type. If they are molecules, the type of each atom in\nthe inserted molecule is specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command, and those values are added to the\nspecified atom type. E.g. if the file specifies atom types 1,2,3, and\nthose are the atom types you want for inserted molecules, then specify\n*type* = 0. If you specify *type* = 2, the in the inserted molecule\nwill have atom types 3,4,5.\n\nAll atoms in the inserted particle are assigned to two groups: the\ndefault group \"all\" and the group specified in the fix pour command\n(which can also be \"all\").\n\nThis command must use the *region* keyword to define an insertion\nvolume. The specified region must have been previously defined with a\n[region ](https://docs.lammps.org/region.html) command. It must be of type *block* or a z-axis\n*cylinder* and must be defined with side = *in* . The cylinder style\nof region can only be used with 3d simulations.\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the\n[molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that defines the\nmolecule. The coordinates, atom types, center-of-mass, moments of\ninertia, etc, as well as any bond/angle/etc and special neighbor\ninformation for the molecule can be specified in the molecule file.\nSee the [molecule ](https://docs.lammps.org/molecule.html) command for details. The only\nsettings required to be in this file are the coordinates and types of\natoms in the molecule.\n\nIf the molecule template contains more than one molecule, the relative\nprobability of depositing each molecule can be specified by the\n*molfrac* keyword. N relative probabilities, each from 0.0 to 1.0, are\nspecified, where N is the number of molecules in the template. Each\ntime a molecule is inserted, a random number is used to sample from\nthe list of relative probabilities. The N values must sum to 1.0.\n\nIf you wish to insert molecules via the *mol* keyword, that will be\ntreated as rigid bodies, use the *rigid* keyword, specifying as its\nvalue the ID of a separate [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)\ncommand which also appears in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nEach timestep particles are inserted, they are placed randomly inside\nthe insertion volume so as to mimic a stream of poured particles. If\nthey are molecules they are also oriented randomly. Each atom in the\nparticle is tested for overlaps with existing particles, including\neffects due to periodic boundary conditions if applicable. If an\noverlap is detected, another random insertion attempt is made; see the\n*vol* keyword discussion below. The larger the volume of the\ninsertion region, the more particles that can be inserted at any one\ntimestep. Particles are inserted again after enough time has elapsed\nthat the previously inserted particles fall out of the insertion\nvolume under the influence of gravity. Insertions continue every so\nmany timesteps until the desired # of particles has been inserted.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the particle\n > count is changing due to adding particles, you typically should use\n > the [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command\n > for the temperature compute you are using. \n > \n\n----------\n\nAll other keywords are optional with defaults as shown below.\n\nThe *diam* option is only used when inserting atoms and specifies the\ndiameters of inserted particles. There are 3 styles: *one*, *range*,\nor *poly* . For *one*, all particles will have diameter *D* . For\n*range*, the diameter of each particle will be chosen randomly and\nuniformly between the specified *Dlo* and *Dhi* bounds. For *poly*, a\nseries of *Npoly* diameters is specified. For each diameter a\npercentage value from 0.0 to 1.0 is also specified. The *Npoly*\npercentages must sum to 1.0. For the example shown above with \"diam 2\n0.7 0.4 1.5 0.6\", all inserted particles will have a diameter of 0.7\nor 1.5. 40% of the particles will be small; 60% will be large.\n\nNote that for molecule insertion, the diameters of individual atoms in\nthe molecule can be specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command. If not specified, the diameter of\neach atom in the molecule has a default diameter of 1.0.\n\nThe *id* option has two settings which are used to determine the atom\nor molecule IDs to assign to inserted particles/molecules. In both\ncases a check is done of the current system to find the maximum\ncurrent atom and molecule ID of any existing particle. Newly inserted\nparticles and molecules are assigned IDs that increment those max\nvalues. For the *max* setting, which is the default, this check is\ndone at every insertion step, which allows for particles to leave the\nsystem, and their IDs to potentially be re-used. For the *next*\nsetting this check is done only once when the fix is specified, which\ncan be more efficient if you are sure particles will not be added in\nsome other way.\n\nThe *vol* option specifies what volume fraction of the insertion\nvolume will be filled with particles. For particles with a size\nspecified by the *diam range* keyword, they are assumed to all be of\nmaximum diameter *Dhi* for purposes of computing their contribution to\nthe volume fraction.\n\nThe higher the volume fraction value, the more particles are inserted\neach timestep. Since inserted particles cannot overlap, the maximum\nvolume fraction should be no higher than about 0.6. Each timestep\nparticles are inserted, LAMMPS will make up to a total of M tries to\ninsert the new particles without overlaps, where M = # of inserted\nparticles \\* Nattempt. If LAMMPS is unsuccessful at completing all\ninsertions, it prints a warning.\n\nThe *dens* and *vel* options enable inserted particles to have a range\nof densities or xy velocities. The specific values for a particular\ninserted particle will be chosen randomly and uniformly between the\nspecified bounds. Internally, the density value for a particle is\nconverted to a mass, based on the radius (volume) of the particle.\nThe *vz* or *vy* value for option *vel* assigns a z-velocity (3d) or\ny-velocity (2d) to each inserted particle.\n\nThe *rate* option moves the insertion volume in the z direction (3d)\nor y direction (2d). This enables pouring particles from a\nsuccessively higher height over time.\n\nThe *ignore* option is useful when running a simulation that used line\nsegment (2d) or triangle (3d) particles, typically to define\nboundaries for spherical granular particles to interact with. See the\n[atom_style line or tri ](https://docs.lammps.org/atom_style.html) command for details. Lines\nand triangles store their size, and if the size is large it may\noverlap (in a spherical sense) with the insertion region, even if the\nline/triangle is oriented such that there is no actual overlap. This\ncan prevent particles from being inserted. The *ignore* keyword\ncauses the overlap check to skip any line or triangle particles.\nObviously you should only use it if there is in fact no overlap of the\nline or triangle particles with the insertion region.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). This means you must be careful when restarting a\npouring simulation, when the restart file was written in the middle of\nthe pouring operation. Specifically, you should use a new fix pour\ncommand in the input script for the restarted simulation that\ncontinues the operation. You will need to adjust the arguments of the\noriginal fix pour command to do this.\n\nAlso note that because the state of the random number generator is not\nsaved in restart files, you cannot do \"exact\" restarts with this fix,\nwhere the simulation continues on the same as if no restart had taken\nplace. However, in a statistical sense, a restarted simulation should\nproduce the same behavior if you adjust the fix pour parameters\nappropriately.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. This fix computes a global scalar, which can be accessed by various\noutput commands. The scalar is the cumulative number of insertions. The\nscalar value calculated by this fix is \"intensive\". No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor 3d simulations, a gravity fix in the -z direction must be defined\nfor use in conjunction with this fix. For 2d simulations, gravity\nmust be defined in the -y direction.\n\nThe specified insertion region cannot be a \"dynamic\" region, as\ndefined by the [region ](https://docs.lammps.org/region.html) command.\n", + "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix gravity ](https://docs.lammps.org/fix_gravity.html),\n[region ](https://docs.lammps.org/region.html)\n" }, { "command": [ - "fix precession/spin" + "pair_style pace", + "pair_style pace/kk", + "pair_style pace", + "pair_style pace/extrapolation" ], "syntax": [ - "fix ID group precession/spin style args" + "pair_style pace ... keyword values ..." ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "pace", + "type": 3, + "choices": [ + "pace", + "pace/kk" + ] + }, + { + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "group", + "arg": "values", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* one or more keyword/value pairs may be appended \n *      keyword = product or recursive or chunksize \n       product = use product algorithm for basis functions \n       recursive = use recursive algorithm for basis functions \n       chunksize value = number of atoms in each pass \n *    pair_style pace/extrapolation \n", + "examples": "\n```lmps\npair_style pace\npair_style pace product chunksize 2048\npair_coeff * * Cu-PBE-core-rep.ace Cu\n\npair_style pace\npair_coeff * * Cu.yaml Cu\n\npair_style pace/extrapolation\npair_coeff * * Cu.yaml Cu.asi Cu\n```\n", + "html_filename": "pair_pace.html", + "short_description": "Pair style *pace* computes interactions using the Atomic Cluster\nExpansion (ACE), which is a general expansion of the atomic energy in\nmulti-body basis functions", + "description": "Pair style *pace* computes interactions using the Atomic Cluster\nExpansion (ACE), which is a general expansion of the atomic energy in\nmulti-body basis functions. **Drautz20191**. The *pace*\npair style provides an efficient implementation that is described in\nthis paper **Lysogorskiy20211**.\n\nIn ACE, the total energy is decomposed into a sum over atomic\nenergies. The energy of atom *i* is expressed as a linear or non-linear\nfunction of one or more density functions. By projecting the density\nonto a local atomic base, the lowest order contributions to the energy\ncan be expressed as a set of scalar polynomials in basis function\ncontributions summed over neighbor atoms.\n\nOnly a single pair_coeff command is used with the *pace* style which\nspecifies an ACE coefficient file followed by N additional arguments\nspecifying the mapping of ACE elements to LAMMPS atom types, where N is\nthe number of LAMMPS atom types:\n\n* ACE coefficient file (.yaml or .yace/.ace format)\n* N element names = mapping of ACE elements to atom types\n\nOnly a single pair_coeff command is used with the *pace* style which\nspecifies an ACE file that fully defines the potential. Note that\nunlike for other potentials, cutoffs are not set in the pair_style or\npair_coeff command; they are specified in the ACE file.\n\nThe pair_style *pace* command may be followed by the optional keyword\n*product* or *recursive*, which determines which of two algorithms is\nused for the calculation of basis functions and derivatives. The\ndefault is *recursive*.\n\nThe keyword *chunksize* is only applicable when using the pair style\n*pace* with the KOKKOS package on GPUs and is ignored otherwise. This\nkeyword controls the number of atoms in each pass used to compute the\natomic cluster expansion and is used to avoid running out of memory.\nFor example if there are 8192 atoms in the simulation and the\n*chunksize* is set to 4096, the ACE calculation will be broken up into\ntwo passes (running on a single GPU).\n\n #### Extrapolation grade\n\nCalculation of extrapolation grade in PACE is implemented in `pair_style\npace/extrapolation`. It is based on the MaxVol algorithm similar to\nMoment Tensor Potential (MTP) by Shapeev et al. and is described in\n**Lysogorskiy2023**. In order to compute\nextrapolation grade one needs to provide:\n\n#. ACE potential in B-basis form (`.yaml` format) and\n#. Active Set Inverted (ASI) file for corresponding potential (`.asi` format)\n\nCalculation of extrapolation grades requires matrix-vector\nmultiplication for each atom and is slower than the usual `pair_style\npace recursive`, therefore it is *not* computed by default.\nExtrapolation grade calculation is involved by `fix pair`, which\nrequests to compute `gamma`, as shown in example below:\n\n```lmps\npair_style pace/extrapolation\npair_coeff * * Cu.yaml Cu.asi Cu\n\nfix pace_gamma all pair 10 pace/extrapolation gamma 1\n\ncompute max_pace_gamma all reduce max f_pace_gamma\nvariable dump_skip equal \"c_max_pace_gamma < 5\"\n\ndump pace_dump all custom 20 extrapolative_structures.dump id type x y z f_pace_gamma\ndump_modify pace_dump skip v_dump_skip\n\nvariable max_pace_gamma equal c_max_pace_gamma\nfix extreme_extrapolation all halt 10 v_max_pace_gamma > 25\n```\nHere extrapolation grade gamma is computed every 10 steps and is stored\nin `f_pace_gamma` per-atom variable. The largest value of extrapolation\ngrade among all atoms in a structure is reduced to `c_max_pace_gamma`\nvariable. Only if this value exceeds extrapolation threshold 5, then\nthe structure will be dumped into `extrapolative_structures.dump` file,\nbut not more often than every 20 steps.\n\nOn all other steps `pair_style pace recursive` will be used.\n\nWhen using the pair style *pace/extrapolation* with the KOKKOS package on GPUs\nproduct B-basis evaluator is always used and only *linear* ASI is supported.\n\n----------\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the ACE coefficient file.\n\n #### Core repulsion\nThe ACE potential can be configured to initiate core-repulsion from an inner cutoff,\nseamlessly transitioning from ACE to ZBL. The core repulsion factor can be accessed\nas a per-atom quantity, as demonstrated in the example below:\n\n```lmps\npair_style pace\npair_coeff * * CuNi.yaml Cu Ni\n\nfix pace_corerep all pair 1 pace corerep 1\n```\nIn this case, per-atom `f_pace_corerep` quantities represent the fraction of ZBL\ncore-repulsion for each atom.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Drautz20191)** Drautz, Phys Rev B, 99, 014104 (2019). \n \n**(Lysogorskiy20211)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, npj Comp Mat, 7, 97 (2021). \n \n**(Lysogorskiy2023)** Lysogorskiy, Bochkarev, Mrovec, Drautz, Phys Rev Mater, 7, 043801 (2023) / arXiv:2212.08716 (2022). \n ", + "restrictions": "This pair style is part of the ML-PACE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html),\n[fix pair ](https://docs.lammps.org/fix_pair.html)\n" +}, +{ + "command": [ + "pair_style lj/cubic", + "pair_style lj/cubic/gpu", + "pair_style lj/cubic/omp" + ], + "syntax": [ + "pair_style lj/cubic" + ], + "args": [ + [ { - "arg": "precession/spin", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "stt", + "arg": "lj/cubic", "type": 3, "choices": [ - "zeeman", - "anisotropy", - "cubic", - "stt" + "lj/cubic", + "lj/cubic/gpu", + "lj/cubic/omp" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* precession/spin = style name of this fix command\n* style = zeeman or anisotropy or cubic or stt \n *        zeeman args = H x y z \n         H = intensity of the magnetic field (in Tesla) \n         x y z = vector direction of the field \n *        anisotropy args = K x y z \n         K = intensity of the magnetic anisotropy (in eV) \n         x y z = vector direction of the anisotropy \n *        cubic args = K1 K2c n1x n1y n1x n2x n2y n2z n3x n3y n3z \n         K1 and K2c = intensity of the magnetic anisotropy (in eV) \n         n1x to n3z = three direction vectors of the cubic anisotropy \n *        stt args = J x y z \n         J = intensity of the spin-transfer torque field \n         x y z = vector direction of the field \n", - "examples": "\n```lmps\nfix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0\nfix 1 3 precession/spin anisotropy 0.001 0.0 0.0 1.0\nfix 1 iron precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0\nfix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0\n```\n", - "html_filename": "fix_precession_spin.html", - "short_description": "This fix applies a precession torque to each magnetic spin in the\ngroup", - "description": "This fix applies a precession torque to each magnetic spin in the\ngroup.\n\nStyle *zeeman* is used for the simulation of the interaction between\nthe magnetic spins in the defined group and an external magnetic\nfield:\n\\[\n H_{Zeeman} = -g \\sum_{i=0}^{N}\\mu_{i}\\, \\vec{s}_{i} \\cdot\\vec{B}_{ext}\\]\nwith:\n\n* \\(\\vec{B}_{ext}\\) the external magnetic field (in T)\n* \\(g\\) the Lande factor (hard-coded as \\(g=2.0\\))\n* \\(\\vec{s}_i\\) the unitary vector describing the orientation of spin \\(i\\)\n* \\(\\mu_i\\) the atomic moment of spin \\(i\\) given as a multiple of the\n Bohr magneton \\(\\mu_B\\) (for example, \\(\\mu_i \\approx 2.2\\) in bulk iron).\n\nThe field value in Tesla is multiplied by the gyromagnetic\nratio, \\(g \\cdot \\mu_B/\\hbar\\), converting it into a precession frequency in\nrad.THz (in metal units and with \\(\\mu_B = 5.788\\cdot 10^{-5}\\)\neV/T).\n\nAs a comparison, the figure below displays the simulation of a single\nspin (of norm \\(\\mu_i = 1.0\\)) submitted to an external magnetic\nfield of \\(\\vert B_{ext}\\vert = 10.0\\; \\mathrm{Tesla}\\) (and\noriented along the z axis). The upper plot shows the average\nmagnetization along the external magnetic field axis and the lower\nplot the Zeeman energy, both as a function of temperature. The\nreference result is provided by the plot of the Langevin function for\nthe same parameters.\n\n ![Image](JPG/zeeman_langevin.jpg) \n\nThe temperature effects are accounted for by connecting the spin\n\\(i\\) to a thermal bath using a Langevin thermostat (see\n[fix langevin/spin ](https://docs.lammps.org/fix_langevin_spin.html) for the definition of\nthis thermostat).\n\nStyle *anisotropy* is used to simulate an easy axis or an easy plane\nfor the magnetic spins in the defined group:\n\\[\n H_{aniso} = -\\sum_{{ i}=1}^{N} K_{an}(\\mathbf{r}_{i})\\, \\left(\n \\vec{s}_{i} \\cdot \\vec{n}_{i} \\right)^2\\]\nwith \\(n\\) defining the direction of the anisotropy, and \\(K\\)\n(in eV) its intensity. If \\(K > 0\\), an easy axis is defined, and\nif \\(K < 0\\), an easy plane is defined.\n\nStyle *cubic* is used to simulate a cubic anisotropy, with three\npossible easy axis for the magnetic spins in the defined group:\n\\[\n H_{cubic} = -\\sum_{{ i}=1}^{N} K_{1}\n \\Big[\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2 +\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2 +\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2 \\Big]\n +K_{2}^{(c)} \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2\\]\nwith \\(K_1\\) and \\(K_{2c}\\) (in eV) the intensity coefficients\nand \\(\\vec{n}_1\\), \\(\\vec{n}_2\\) and \\(\\vec{n}_3\\)\ndefining the three anisotropic directions defined by the command (from\n*n1x* to *n3z*). For \\(\\vec{n}_1 = (1 0 0)\\), \\(\\vec{n}_2 =\n(0 1 0)\\), and \\(\\vec{n}_3 = (0 0 1)\\), \\(K_1 < 0\\) defines an\niron type anisotropy (easy axis along the \\((0 0 1)\\)-type cube\nedges), and \\(K_1 > 0\\) defines a nickel type anisotropy (easy\naxis along the \\((1 1 1)\\)-type cube diagonals). \\(K_2^c >\n0\\) also defines easy axis along the \\((1 1 1)\\)-type cube\ndiagonals. See chapter 2 of **Skomski1** for more\ndetails on cubic anisotropies.\n\nStyle *stt* is used to simulate the interaction between the spins and\na spin-transfer torque.\nSee equation (7) of **Chirac1** for more details about the\nimplemented spin-transfer torque term.\n\nIn all cases, the choice of \\((x y z)\\) only imposes the vector\ndirections for the forces. Only the direction of the vector is\nimportant; its length is ignored (the entered vectors are\nnormalized).\n\nThose styles can be combined within one single command line.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The norm of all vectors defined with the precession/spin command\n > have to be non-zero. For example, defining\n > \"fix 1 all precession/spin zeeman 0.1 0.0 0.0 0.0\" would result\n > in an error message.\n > Since those vector components are used to compute the inverse of the\n > field (or anisotropy) vector norm, setting a zero-vector would result\n > in a division by zero. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy associated with the spin precession\ntorque to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy (in energy units) discussed in the previous paragraph. The\nscalar value is an \"extensive\" quantity.\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\n**(Skomski1)** Skomski, R. (2008). Simple models of magnetism.\nOxford University Press. \n \n**(Chirac1)** Chirac, Theophile, et al. Ultrafast antiferromagnetic\nswitching in NiO induced by spin transfer torques.\nPhysical Review B 102.13 (2020): 134415. \n ", - "restrictions": "The *precession/spin* style is part of the SPIN package. This style\nis only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style lj/cubic\npair_coeff * * 1.0 0.8908987\n```\n", + "html_filename": "pair_lj_cubic.html", + "short_description": "The *lj/cubic* style computes a truncated LJ interaction potential\nwhose energy and force are continuous everywhere", + "description": "The *lj/cubic* style computes a truncated LJ interaction potential\nwhose energy and force are continuous everywhere. Inside the\ninflection point the interaction is identical to the standard 12/6\n[Lennard-Jones ](https://docs.lammps.org/pair_lj.html) potential. The LJ function outside the\ninflection point is replaced with a cubic function of distance. The\nenergy, force, and second derivative are continuous at the inflection\npoint. The cubic coefficient A3 is chosen so that both energy and\nforce go to zero at the cutoff distance. Outside the cutoff distance\nthe energy and force are zero.\n\\[\\begin{align*} \n E & = u_{LJ}(r) \\qquad r \\leq r_s \\\\\n & = u_{LJ}(r_s) + (r-r_s) u'_{LJ}(r_s) - \\frac{1}{6} A_3 (r-r_s)^3 \\qquad r_s < r \\leq r_c \\\\\n & = 0 \\qquad r > r_c \\end{align*} \\]\nThe location of the inflection point \\(r_s\\) is defined\nby the LJ diameter, \\(r_s/\\sigma = (26/7)^{1/6}\\). The cutoff distance\nis defined by \\(r_c/r_s = 67/48\\) or \\(r_c/\\sigma = 1.737...\\)\nThe analytic expression for the\nthe cubic coefficient\n\\(A_3 r_{min}^3/\\epsilon = 27.93...\\) is given in the paper by\nHolian and Ravelo **Holian**.\n\nThis potential is commonly used to study the shock mechanics of FCC\nsolids, as in Ravelo et al. **Ravelo2**.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the\nzero-crossing distance for the potential, not as the energy minimum,\nwhich is located at \\(r_{min} = 2^{\\frac{1}{6}} \\sigma\\). In the\nabove example, \\(\\sigma = 0.8908987\\), so \\(r_{min} = 1.0\\).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThe lj/cubic pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option,\nsince pair interaction is already smoothed to 0.0 at the\ncutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThe lj/cubic pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since there are no corrections for\na potential that goes to 0.0 at the cutoff.\n\nThe lj/cubic pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe lj/cubic pair style can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n \n \n**(Ravelo2)** Holian and Ravelo, Phys Rev B, 51, 11275 (1995). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix langevin/drude" + "compute pod/atom", + "compute podd/atom", + "compute pod/local" ], "syntax": [ - "fix ID group-ID langevin/drude Tcom damp_com seed_com Tdrude damp_drude seed_drude keyword values ..." + "compute ID group-ID pod/atom param.pod coefficients.pod", + "compute ID group-ID podd/atom param.pod coefficients.pod", + "compute ID group-ID pod/local param.pod coefficients.pod", + "compute ID group-ID pod/global param.pod coefficients.pod" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -2358,262 +2182,169 @@ export const command_docs = [ "choices": [] }, { - "arg": "langevin/drude", + "arg": "pod/atom", "type": 1, "choices": [] }, { - "arg": "Tcom", + "arg": "param.pod", "type": 2, "choices": [] }, { - "arg": "damp_com", + "arg": "coefficients.pod", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "seed_com", - "type": 2, + "arg": "compute", + "type": 1, "choices": [] }, { - "arg": "Tdrude", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "damp_drude", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "seed_drude", + "arg": "podd/atom", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "param.pod", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "coefficients.pod", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/drude = style name of this fix command\n* Tcom = desired temperature of the centers of mass (temperature units)\n* damp_com = damping parameter for the thermostat on centers of mass (time units)\n* seed_com = random number seed to use for white noise of the thermostat on centers of mass (positive integer)\n* Tdrude = desired temperature of the Drude oscillators (temperature units)\n* damp_drude = damping parameter for the thermostat on Drude oscillators (time units)\n* seed_drude = random number seed to use for white noise of the thermostat on Drude oscillators (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = zero \n *        zero value = no or yes \n         no = do not set total random force on centers of mass to zero \n         yes = set total random force on centers of mass to zero \n", - "examples": "\n```lmps\nfix 3 all langevin/drude 300.0 100.0 19377 1.0 20.0 83451\nfix 1 all langevin/drude 298.15 100.0 19377 5.0 10.0 83451 zero yes\n```\nExample input scripts available: examples/PACKAGES/drude\n", - "html_filename": "fix_langevin_drude.html", - "short_description": "Apply two Langevin thermostats as described in **Jiang1** for\nthermalizing the reduced degrees of freedom of Drude oscillators", - "description": "Apply two Langevin thermostats as described in **Jiang1** for\nthermalizing the reduced degrees of freedom of Drude oscillators.\nThis link describes how to use the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html) in LAMMPS and polarizable models in LAMMPS\nare discussed on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc\npage.\n\nDrude oscillators are a way to simulate polarizables atoms, by\nsplitting them into a core and a Drude particle bound by a harmonic\nbond. The thermalization works by transforming the particles degrees\nof freedom by these equations. In these equations upper case denotes\natomic or center of mass values and lower case denotes Drude particle\nor dipole values. Primes denote the transformed (reduced) values,\nwhile bare letters denote the original values.\n\nVelocities:\n\\[\n V' = \\frac {M\\, V + m\\, v} {M'}\\]\n\\[\n v' = v - V\\]\nMasses:\n\\[\n M' = M + m\\]\n\\[\n m' = \\frac {M\\, m } {M'}\\]\nThe Langevin forces are computed as\n\\[\n F' = - \\frac {M'} {\\mathtt{damp_com}}\\, V' + F_r'\\]\n\\[\n f' = - \\frac {m'} {\\mathtt{damp_drude}}\\, v' + f_r'\\]\n\\(F_r'\\) is a random force proportional to\n\\(\\sqrt { \\frac {2\\, k_B \\mathtt{Tcom}\\, m'} {\\mathrm dt\\, \\mathtt{damp_com} } }\\).\n\\(f_r'\\) is a random force proportional to\n\\(\\sqrt { \\frac {2\\, k_B \\mathtt{Tdrude}\\, m'} {\\mathrm dt\\, \\mathtt{damp_drude} } }\\).\nThen the real forces acting on the particles are computed from the inverse\ntransform:\n\\[\n F = \\frac M {M'}\\, F' - f'\\]\n\\[\n f = \\frac m {M'}\\, F' + f'\\]\nThis fix also thermostats non-polarizable atoms in the group at\ntemperature *Tcom*, as if they had a massless Drude partner. The\nDrude particles themselves need not be in the group. The center of\nmass and the dipole are thermostatted iff the core atom is in the\ngroup.\n\nNote that the thermostat effect of this fix is applied to only the\ntranslational degrees of freedom of the particles, which is an\nimportant consideration if finite-size particles, which have\nrotational degrees of freedom, are being thermostatted. The\ntranslational degrees of freedom can also have a bias velocity removed\nfrom them before thermostatting takes place; see the description below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Like the [fix langevin ](https://docs.lammps.org/fix_langevin.html) command, this fix does\n > NOT perform time integration. It only modifies forces to effect\n > thermostatting. Thus you must use a separate time integration fix, like\n > [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) to actually update the\n > velocities and positions of atoms using the modified forces.\n > Likewise, this fix should not normally be used on atoms that also have\n > their temperature controlled by another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThis fix requires each atom know whether it is a Drude particle or\nnot. You must therefore use the [fix drude ](https://docs.lammps.org/fix_drude.html) command to\nspecify the Drude status of each atom type.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >only the Drude core atoms need to be in the group specified for\n > this fix. A Drude electron will be transformed together with its cores\n > even if it is not itself in the group. It is safe to include Drude\n > electrons or non-polarizable atoms in the group. The non-polarizable\n > atoms will simply be thermostatted as if they had a massless Drude\n > partner (electron). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Ghost atoms need to know their velocity for this fix to act\n > correctly. You must use the [comm_modify ](https://docs.lammps.org/comm_modify.html) command to\n > enable this, e.g. \n > \n\n\n```lmps\ncomm_modify vel yes\n```\n----------\n\n*Tcom* is the target temperature of the centers of mass, which would\nbe used to thermostat the non-polarizable atoms. *Tdrude* is the\n(normally low) target temperature of the core-Drude particle pairs\n(dipoles). *Tcom* and *Tdrude* can be specified as an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case,\nthe variable will be evaluated each timestep, and its value used to\ndetermine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nNote: The temperature thermostatting the core-Drude particle pairs\nshould be chosen low enough, so as to mimic as closely as possible the\nself-consistent minimization. It must however be high enough, so that\nthe dipoles can follow the local electric field exerted by the\nneighboring atoms. The optimal value probably depends on the\ntemperature of the centers of mass and on the mass of the Drude\nparticles.\n\n*damp_com* is the characteristic time for reaching thermal equilibrium\nof the centers of mass. For example, a value of 100.0 means to relax\nthe temperature of the centers of mass in a timespan of (roughly) 100\ntime units (tau or fs or ps - see the [units ](https://docs.lammps.org/units.html)\ncommand). *damp_drude* is the characteristic time for reaching\nthermal equilibrium of the dipoles. It is typically a few timesteps.\n\nThe number *seed_com* and *seed_drude* are positive integers. They set\nthe seeds of the Marsaglia random number generators used for\ngenerating the random forces on centers of mass and on the\ndipoles. Each processor uses the input seed to generate its own unique\nseed and its own stream of random numbers. Thus the dynamics of the\nsystem will not be identical on two runs on different numbers of\nprocessors.\n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat on centers of mass. Because the random forces on different\ncenters of mass are independent, they do not sum exactly to zero. As\na result, this fix applies a small random force to the entire system,\nand the momentum of the total center of mass of the system undergoes a\nslow random walk. If the keyword *zero* is set to *yes*, the total\nrandom force on the centers of mass is set exactly to zero by\nsubtracting off an equal part of it from each center of mass in the\ngroup. As a result, the total center of mass of a system with zero\ninitial momentum will not drift over time.\n\nThe actual temperatures of cores and Drude particles, in\ncenter-of-mass and relative coordinates, respectively, can be\ncalculated using the [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\ncommand.\n\n----------\n\nUsage example for rigid bodies in the NPT ensemble:\n\n```lmps\ncomm_modify vel yes\nfix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes\nfix NPH ATOMS rigid/nph/small molecule iso 1. 1. 500.\nfix NVE DRUDES nve\ncompute TDRUDE all temp/drude\nthermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]\n```\nComments:\n\n* Drude particles should not be in the rigid group, otherwise the Drude\n oscillators will be frozen and the system will lose its\n polarizability.\n* *zero yes* avoids a drift of the center of mass of\n the system, but is a bit slower.\n* Use two different random seeds to avoid unphysical correlations.\n* Temperature is controlled by the fix *langevin/drude*, so the\n time-integration fixes do not thermostat. Don't forget to\n time-integrate both cores and Drude particles.\n* Pressure is time-integrated only once by using *nve* for Drude\n particles and *nph* for atoms/cores (or vice versa). Do not use *nph*\n for both.\n* The temperatures of cores and Drude particles are calculated by\n [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n* Contrary to the alternative thermostatting using Nose-Hoover thermostat\n fix *npt* and [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), the\n *fix_modify* command is not required here, because the fix *nph*\n computes the global pressure even if its group is *ATOMS* . This is\n what we want. If we thermostatted *ATOMS* using *npt*, the pressure\n should be the global one, but the temperature should be only that of\n the cores. That's why the command *fix_modify* should be called in\n that case.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by the\ncompute should include the group of this fix and the Drude particles.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Jiang1)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux, J Phys Chem Lett, 2, 87-92 (2011). \n ", - "restrictions": " none\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix drude ](https://docs.lammps.org/fix_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" -}, -{ - "command": [ - "fix_modify AtC atom_weight" - ], - "syntax": [ - "fix_modify atom_weight " - ], - "args": [ + ], [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "atom_weight", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "constant", - "lattice", - "element", - "region", - "group", - "read_in" - ] - }, - { - "arg": "", + "arg": "pod/local", "type": 2, "choices": [] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* atom_weight = name of the AtC sub-command\n* method = constant or lattice or element or region or group or read_in\n\n - constant : atoms in specified group are assigned the constant value given\n - lattice : volume per atom for specified lattice type (e.g. fcc) and parameter\n - element : element volume divided among atoms within element\n - region : volume per atom determined based on the atom count in the MD regions and their volumes. Note: meaningful only if atoms completely fill all the regions.\n - group : volume per atom determined based on the atom count in a group and its volume\n - *node* : (undocumented)\n - *node_element* : (undocumented)\n - read_in : list of values for atoms are read-in from specified file \n", - "examples": "\n```lmps\nfix_modify AtC atom_weight constant myatoms 11.8\nfix_modify AtC atom_weight lattice\nfix_modify AtC atom_weight read-in atm_wt_file.txt\n```\n", - "html_filename": "atc_atom_weight.html", - "short_description": "Command for assigning the value of atomic weights used for atomic\nintegration in atom-continuum coupled simulations", - "description": "Command for assigning the value of atomic weights used for atomic\nintegration in atom-continuum coupled simulations.\n", - "restrictions": "The use of the lattice option requires a lattice type and parameter is already specified.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "bond_style table", - "bond_style table/omp" - ], - "syntax": [ - "bond_style table style N" - ], - "args": [ - [ - { - "arg": "bond_style", - "type": 1, - "choices": [] }, { - "arg": "table", - "type": 3, - "choices": [ - "table", - "table/omp" - ] - }, - { - "arg": "style", + "arg": "param.pod", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "coefficients.pod", "type": 2, "choices": [] } - ] - ], - "parameters": "* style = linear or spline = method of interpolation\n* N = use N values in table \n", - "examples": "\n```lmps\nbond_style table linear 1000\nbond_coeff 1 file.table ENTRY1\n```\n", - "html_filename": "bond_table.html", - "short_description": "Style *table* creates interpolation tables of length *N* from bond\npotential and force values listed in a file(s) as a function of bond\nlength", - "description": "Style *table* creates interpolation tables of length *N* from bond\npotential and force values listed in a file(s) as a function of bond\nlength. The files are read by the [bond_coeff ](https://docs.lammps.org/bond_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and force values at each of *N*\ndistances. During a simulation, these tables are used to interpolate\nenergy and force values as needed. The interpolation is done in one\nof 2 styles: *linear* or *spline*.\n\nFor the *linear* style, the bond length is used to find 2 surrounding\ntable values from which an energy or force is computed by linear\ninterpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The bond length is\nused to find the appropriate set of coefficients which are used to\nevaluate a cubic polynomial which computes the energy or force.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The format of\nthis file is described below.\n\n----------\n\nSuitable tables for use with this bond style can be created by LAMMPS\nitself from existing bond styles using the [bond_write](https://docs.lammps.org/bond_write.html) command. This can be useful to have a template file for\ntesting the bond style settings and to build a compatible custom file.\nAnother option to generate tables is the Python code in the\n``tools/tabulate`` folder of the LAMMPS source code distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Bond potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 101 FP 0 0 EQ 0.5 (N, FP, EQ parameters)\n(blank line)\n1 0.00 338.0000 1352.0000 (index, bond-length, energy, force)\n2 0.01 324.6152 1324.9600\n...\n101 1.00 338.0000 -1352.0000\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command. The next line lists (in any\norder) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [bond_style table ](https://docs.lammps.org/bond_style.html) command. Let\nNtable = *N* in the bond_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and force\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual bond lengths. This means that if you want the\ninterpolation tables of length Ntable to match exactly what is in the\ntabulated file (with effectively no preliminary interpolation), you\nshould set Ntable = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the derivatives of the force at the innermost\nand outermost bond lengths. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they\nare estimated (less accurately) by the first two and last two force\nvalues in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium bond length, which is used, for example, by the [fixshake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium bond length is\nto the distance in the table with the lowest potential energy.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe bond length r (in distance units), the third value is the energy (in\nenergy units), and the fourth is the force (in force units). The bond\nlengths must range from a LO value to a HI value, and increase from\none line to the next. If the actual bond length is ever smaller than\nthe LO value or larger than the HI value, then the calculation is\naborted with an error, so it is advisable to cover the whole range\nof possible bond lengths.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart info\n\nThis bond style writes the settings for the \"bond_style table\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a bond_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart file,\nsince it is tabulated in the potential files. Thus, bond_coeff commands\ndo need to be specified in the restart input script.\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_write ](https://docs.lammps.org/bond_write.html)\n" -}, -{ - "command": [ - "balance" - ], - "syntax": [ - "balance thresh style args ... keyword args ..." - ], - "args": [ + ], [ { - "arg": "balance", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "thresh", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "rcb", - "type": 3, - "choices": [ - "x", - "y", - "z", - "shift", - "rcb" - ] + "arg": "group-ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "pod/global", "type": 2, "choices": [] }, { - "arg": "out", - "type": 3, - "choices": [ - "weight", - "out" - ] + "arg": "param.pod", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "coefficients.pod", "type": 2, "choices": [] } ] ], - "parameters": "* thresh = imbalance threshold that must be exceeded to perform a re-balance\n* one style/arg pair can be used (or multiple for x, y, z )\n* style = x or y or z or shift or rcb \n *        x args = uniform or Px-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in x dimension \n         numbers = Px-1 ascending values between 0 and 1, Px - # of processors in x dimension \n         x can be specified together with y or z \n *        y args = uniform or Py-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in y dimension \n         numbers = Py-1 ascending values between 0 and 1, Py - # of processors in y dimension \n         y can be specified together with x or z \n *        z args = uniform or Pz-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in z dimension \n         numbers = Pz-1 ascending values between 0 and 1, Pz - # of processors in z dimension \n         z can be specified together with x or y \n *        shift args = dimstr Niter stopthresh \n         dimstr = sequence of letters containing \"x\" or \"y\" or \"z\", each not more than once \n         Niter = # of times to iterate within each dimension of dimstr sequence \n         stopthresh = stop balancing when this imbalance threshold is reached \n *        rcb args = none \n* zero or more keyword/arg pairs may be appended\n* keyword = weight or out \n *        weight style args = use weighted particle counts for the balancing \n         style = group or neigh or time or var or store \n         group args = Ngroup group1 weight1 group2 weight2 ... \n         Ngroup = number of groups with assigned weights \n         group1, group2, ... = group IDs \n         weight1, weight2, ... = corresponding weight factors \n         neigh factor = compute weight based on number of neighbors \n         factor = scaling factor (> 0) \n         time factor = compute weight based on time spend computing \n         factor = scaling factor (> 0) \n         var name = take weight from atom-style variable \n         name = name of the atom-style variable \n         store name = store weight in custom atom property defined by [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command \n         name = atom property name (without d\\_ prefix) \n *        *sort* arg = no or yes \n *        out arg = filename \n         filename = write each processor's subdomain to a file \n", - "examples": "\n```lmps\nbalance 0.9 x uniform y 0.4 0.5 0.6\nbalance 1.2 shift xz 5 1.1\nbalance 1.0 shift xz 5 1.1\nbalance 1.1 rcb\nbalance 1.0 shift x 10 1.1 weight group 2 fast 0.5 slow 2.0\nbalance 1.0 shift x 10 1.1 weight time 0.8 weight neigh 0.5 weight store balance\nbalance 1.0 shift x 20 1.0 out tmp.balance\n```\n", - "html_filename": "balance.html", - "short_description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of atoms\nor particles and thus indirectly the computational cost (load) more\nevenly across processors", - "description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of atoms\nor particles and thus indirectly the computational cost (load) more\nevenly across processors. The load balancing is \"static\" in the sense\nthat this command performs the balancing once, before or between\nsimulations. The processor subdomains will then remain static during\nthe subsequent run. To perform \"dynamic\" balancing, see the [fixbalance ](https://docs.lammps.org/fix_balance.html) command, which can adjust processor subdomain\nsizes and shapes on-the-fly during a [run ](https://docs.lammps.org/run.html).\n\nLoad-balancing is typically most useful if the particles in the\nsimulation box have a spatially-varying density distribution or when\nthe computational cost varies significantly between different\nparticles. E.g. a model of a vapor/liquid interface, or a solid with\nan irregular-shaped geometry containing void regions, or [hybridpair style simulations ](https://docs.lammps.org/pair_hybrid.html) which combine pair styles with\ndifferent computational cost. In these cases, the LAMMPS default of\ndividing the simulation box volume into a regular-spaced grid of 3d\nbricks, with one equal-volume subdomain per processor, may assign\nnumbers of particles per processor in a way that the computational\neffort varies significantly. This can lead to poor performance when\nthe simulation is run in parallel.\n\nThe balancing can be performed with or without per-particle weighting.\nWith no weighting, the balancing attempts to assign an equal number of\nparticles to each processor. With weighting, the balancing attempts\nto assign an equal aggregate computational weight to each processor,\nwhich typically induces a different number of atoms assigned to each\nprocessor. Details on the various weighting options and examples for\nhow they can be used are **weighted_balance**.\n\nNote that the [processors ](https://docs.lammps.org/processors.html) command allows some\ncontrol over how the box volume is split across processors.\nSpecifically, for a Px by Py by Pz grid of processors, it allows\nchoice of Px, Py, and Pz, subject to the constraint that Px \\* Py \\*\nPz = P, the total number of processors. This is sufficient to achieve\ngood load-balance for some problems on some processor counts.\nHowever, all the processor subdomains will still have the same shape\nand same volume.\n\nThe requested load-balancing operation is only performed if the\ncurrent \"imbalance factor\" in particles owned by each processor\nexceeds the specified *thresh* parameter. The imbalance factor is\ndefined as the maximum number of particles (or weight) owned by any\nprocessor, divided by the average number of particles (or weight) per\nprocessor. Thus an imbalance factor of 1.0 is perfect balance.\n\nAs an example, for 10000 particles running on 10 processors, if the\nmost heavily loaded processor has 1200 particles, then the factor is\n1.2, meaning there is a 20% imbalance. Note that a re-balance can be\nforced even if the current balance is perfect (1.0) be specifying a\n*thresh* < 1.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Balancing is performed even if the imbalance factor does not\n > exceed the *thresh* parameter if a \"grid\" style is specified when the\n > current partitioning is \"tiled\". The meaning of \"grid\" vs \"tiled\" is\n > explained below. This is to allow forcing of the partitioning to\n > \"grid\" so that the [comm_style brick ](https://docs.lammps.org/comm_style.html) command can then\n > be used to replace a current [comm_style tiled ](https://docs.lammps.org/comm_style.html)\n > setting. \n > \n\nWhen the balance command completes, it prints statistics about the\nresult, including the change in the imbalance factor and the change in\nthe maximum number of particles on any processor. For \"grid\" methods\n(defined below) that create a logical 3d grid of processors, the\npositions of all cutting planes in each of the 3 dimensions (as\nfractions of the box length) are also printed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command attempts to minimize the imbalance factor, as\n > defined above. But depending on the method a perfect balance (1.0)\n > may not be achieved. For example, \"grid\" methods (defined below) that\n > create a logical 3d grid cannot achieve perfect balance for many\n > irregular distributions of particles. Likewise, if a portion of the\n > system is a perfect lattice, e.g. the initial system is generated by\n > the [create_atoms ](https://docs.lammps.org/create_atoms.html) command, then \"grid\" methods may\n > be unable to achieve exact balance. This is because entire lattice\n > planes will be owned or not owned by a single processor. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The imbalance factor is also an estimate of the maximum speed-up\n > you can hope to achieve by running a perfectly balanced simulation\n > versus an imbalanced one. In the example above, the 10000 particle\n > simulation could run up to 20% faster if it were perfectly balanced,\n > versus when imbalanced. However, computational cost is not strictly\n > proportional to particle count, and changing the relative size and\n > shape of processor subdomains may lead to additional computational\n > and communication overheads, e.g. in the PPPM solver used via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. Thus you should benchmark\n > the run times of a simulation before and after balancing. \n > \n\n----------\n\nThe method used to perform a load balance is specified by one of the\nlisted styles (or more in the case of *x*,\\ *y*,\\ *z* ), which are\ndescribed in detail below. There are 2 kinds of styles.\n\nThe *x*, *y*, *z*, and *shift* styles are \"grid\" methods which\nproduce a logical 3d grid of processors. They operate by changing the\ncutting planes (or lines) between processors in 3d (or 2d), to adjust\nthe volume (area in 2d) assigned to each processor, as in the\nfollowing 2d diagram where processor subdomains are shown and\nparticles are colored by the processor that owns them.\n \n | | | | \n |---|---|---| \n | ![Image](img/balance_uniform.jpg) | ![Image](img/balance_nonuniform.jpg) | ![Image](img/balance_rcb.jpg) | \n\n\nThe leftmost diagram is the default partitioning of the simulation box\nacross processors (one sub-box for each of 16 processors); the middle\ndiagram is after a \"grid\" method has been applied. The *rcb* style is\na \"tiling\" method which does not produce a logical 3d grid of\nprocessors. Rather it tiles the simulation domain with rectangular\nsub-boxes of varying size and shape in an irregular fashion so as to\nhave equal numbers of particles (or weight) in each sub-box, as in the\nrightmost diagram above.\n\nThe \"grid\" methods can be used with either of the [comm_style](https://docs.lammps.org/comm_style.html) command options, *brick* or *tiled* . The \"tiling\"\nmethods can only be used with [comm_style tiled ](https://docs.lammps.org/comm_style.html).\nNote that it can be useful to use a \"grid\" method with\n[comm_style tiled ](https://docs.lammps.org/comm_style.html) to return the domain partitioning\nto a logical 3d grid of processors so that \"comm_style brick\" can\nafterwords be specified for subsequent [run ](https://docs.lammps.org/run.html) commands.\n\nWhen a \"grid\" method is specified, the current domain partitioning can\nbe either a logical 3d grid or a tiled partitioning. In the former\ncase, the current logical 3d grid is used as a starting point and\nchanges are made to improve the imbalance factor. In the latter case,\nthe tiled partitioning is discarded and a logical 3d grid is created\nwith uniform spacing in all dimensions. This becomes the starting\npoint for the balancing operation.\n\nWhen a \"tiling\" method is specified, the current domain partitioning\n(\"grid\" or \"tiled\") is ignored, and a new partitioning is computed\nfrom scratch.\n\n----------\n\nThe *x*, *y*, and *z* styles invoke a \"grid\" method for balancing, as\ndescribed above. Note that any or all of these 3 styles can be\nspecified together, one after the other, but they cannot be used with\nany other style. This style adjusts the position of cutting planes\nbetween processor subdomains in specific dimensions. Only the\nspecified dimensions are altered.\n\nThe *uniform* argument spaces the planes evenly, as in the left\ndiagrams above. The *numeric* argument requires listing Ps-1 numbers\nthat specify the position of the cutting planes. This requires\nknowing Ps = Px or Py or Pz = the number of processors assigned by\nLAMMPS to the relevant dimension. This assignment is made (and the\nPx, Py, Pz values printed out) when the simulation box is created by\nthe \"create_box\" or \"read_data\" or \"read_restart\" command and is\ninfluenced by the settings of the [processors ](https://docs.lammps.org/processors.html)\ncommand.\n\nEach of the numeric values must be between 0 and 1, and they must be\nlisted in ascending order. They represent the fractional position of\nthe cutting place. The left (or lower) edge of the box is 0.0, and\nthe right (or upper) edge is 1.0. Neither of these values is\nspecified. Only the interior Ps-1 positions are specified. Thus is\nthere are 2 processors in the x dimension, you specify a single value\nsuch as 0.75, which would make the left processor's subdomain 3x\nlarger than the right processor's subdomain.\n\n----------\n\nThe *shift* style invokes a \"grid\" method for balancing, as\ndescribed above. It changes the positions of cutting planes between\nprocessors in an iterative fashion, seeking to reduce the imbalance\nfactor, similar to how the [fix balance shift ](https://docs.lammps.org/fix_balance.html)\ncommand operates.\n\nThe *dimstr* argument is a string of characters, each of which must be\nan \"x\" or \"y\" or \"z\". Each character can appear zero or one time,\nsince there is no advantage to balancing on a dimension more than\nonce. You should normally only list dimensions where you expect there\nto be a density variation in the particles.\n\nBalancing proceeds by adjusting the cutting planes in each of the\ndimensions listed in *dimstr*, one dimension at a time. For a single\ndimension, the balancing operation (described below) is iterated on up\nto *Niter* times. After each dimension finishes, the imbalance factor\nis re-computed, and the balancing operation halts if the *stopthresh*\ncriterion is met.\n\nA re-balance operation in a single dimension is performed using a\nrecursive multisectioning algorithm, where the position of each\ncutting plane (line in 2d) in the dimension is adjusted independently.\nThis is similar to a recursive bisectioning for a single value, except\nthat the bounds used for each bisectioning take advantage of\ninformation from neighboring cuts if possible. At each iteration, the\ncount of particles on either side of each plane is tallied. If the\ncounts do not match the target value for the plane, the position of\nthe cut is adjusted to be halfway between a low and high bound. The\nlow and high bounds are adjusted on each iteration, using new count\ninformation, so that they become closer together over time. Thus as\nthe recursion progresses, the count of particles on either side of the\nplane gets closer to the target value.\n\nAfter the balanced plane positions are determined, if any pair of\nadjacent planes are closer together than the neighbor skin distance\n(as specified by the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command), then\nthe plane positions are shifted to separate them by at least this\namount. This is to prevent particles being lost when dynamics are run\nwith processor subdomains that are too narrow in one or more\ndimensions.\n\nOnce the re-balancing is complete and final processor subdomains\nassigned, particles are migrated to their new owning processor, and\nthe balance procedure ends.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >At each re-balance operation, the bisectioning for each cutting\n > plane (line in 2d) typically starts with low and high bounds separated\n > by the extent of a processor's subdomain in one dimension. The size\n > of this bracketing region shrinks by 1/2 every iteration. Thus if\n > *Niter* is specified as 10, the cutting plane will typically be\n > positioned to 1 part in 1000 accuracy (relative to the perfect target\n > position). For *Niter* = 20, it will be accurate to 1 part in a\n > million. Thus there is no need to set *Niter* to a large value.\n > LAMMPS will check if the threshold accuracy is reached (in a\n > dimension) is less iterations than *Niter* and exit early. However,\n > *Niter* should also not be set too small, since it will take roughly\n > the same number of iterations to converge even if the cutting plane is\n > initially close to the target value. \n > \n\n----------\n\nThe *rcb* style invokes a \"tiled\" method for balancing, as described\nabove. It performs a recursive coordinate bisectioning (RCB) of the\nsimulation domain. The basic idea is as follows.\n\nThe simulation domain is cut into 2 boxes by an axis-aligned cut in\none of the dimensions, leaving one new sub-box on either side of the\ncut. Which dimension is chosen for the cut depends on the particle\n(weight) distribution within the parent box. Normally the longest\ndimension of the box is cut, but if all (or most) of the particles are\nat one end of the box, a cut may be performed in another dimension to\ninduce sub-boxes that are more cube-ish (3d) or square-ish (2d) in\nshape.\n\nAfter the cut is made, all the processors are also partitioned into 2\ngroups, half assigned to the box on the lower side of the cut, and\nhalf to the box on the upper side. (If the processor count is odd,\none side gets an extra processor.) The cut is positioned so that the\nnumber of (weighted) particles in the lower box is exactly the number\nthat the processors assigned to that box should own for load balance\nto be perfect. This also makes load balance for the upper box\nperfect. The positioning of the cut is done iteratively, by a\nbisectioning method (median search). Note that counting particles on\neither side of the cut requires communication between all processors\nat each iteration.\n\nThat is the procedure for the first cut. Subsequent cuts are made\nrecursively, in exactly the same manner. The subset of processors\nassigned to each box make a new cut in one dimension of that box,\nsplitting the box, the subset of processors, and the particles in the\nbox in two. The recursion continues until every processor is assigned\na sub-box of the entire simulation domain, and owns the (weighted)\nparticles in that sub-box.\n\n----------\n\n.. _weighted_balance:\n\nThis subsection describes how to perform weighted load balancing\nusing the *weight* keyword.\n\nBy default, all particles have a weight of 1.0, which means each\nparticle is assumed to require the same amount of computation during a\ntimestep. There are, however, scenarios where this is not a good\nassumption. Measuring the computational cost for each particle\naccurately would be impractical and slow down the computation.\nInstead the *weight* keyword implements several ways to influence the\nper-particle weights empirically by properties readily available or\nusing the user's knowledge of the system. Note that the absolute\nvalue of the weights are not important; only their relative ratios\naffect which particle is assigned to which processor. A particle with\na weight of 2.5 is assumed to require 5x more computational than a\nparticle with a weight of 0.5. For all the options below the weight\nassigned to a particle must be a positive value; an error will be be\ngenerated if a weight is <= 0.0.\n\nBelow is a list of possible weight options with a short description of\ntheir usage and some example scenarios where they might be applicable.\nIt is possible to apply multiple weight flags and the weightings they\ninduce will be combined through multiplication. Most of the time,\nhowever, it is sufficient to use just one method.\n\nThe *group* weight style assigns weight factors to specified\n[groups ](https://docs.lammps.org/group.html) of particles. The *group* style keyword is\nfollowed by the number of groups, then pairs of group IDs and the\ncorresponding weight factor. If a particle belongs to none of the\nspecified groups, its weight is not changed. If it belongs to\nmultiple groups, its weight is the product of the weight factors.\n\nThis weight style is useful in combination with pair style\n[hybrid ](https://docs.lammps.org/pair_hybrid.html), e.g. when combining a more costly many-body\npotential with a fast pairwise potential. It is also useful when\nusing [run_style respa ](https://docs.lammps.org/run_style.html) where some portions of the\nsystem have many bonded interactions and others none. It assumes that\nthe computational cost for each group remains constant over time.\nThis is a purely empirical weighting, so a series test runs to tune\nthe assigned weight factors for optimal performance is recommended.\n\nThe *neigh* weight style assigns the same weight to each particle\nowned by a processor based on the total count of neighbors in the\nneighbor list owned by that processor. The motivation is that more\nneighbors means a higher computational cost. The style does not use\nneighbors per atom to assign a unique weight to each atom, because\nthat value can vary depending on how the neighbor list is built.\n\nThe *factor* setting is applied as an overall scale factor to the\n*neigh* weights which allows adjustment of their impact on the\nbalancing operation. The specified *factor* value must be positive.\nA value > 1.0 will increase the weights so that the ratio of max\nweight to min weight increases by *factor* . A value < 1.0 will\ndecrease the weights so that the ratio of max weight to min weight\ndecreases by *factor* . In both cases the intermediate weight values\nincrease/decrease proportionally as well. A value = 1.0 has no effect\non the *neigh* weights. As a rule of thumb, we have found a *factor*\nof about 0.8 often results in the best performance, since the number\nof neighbors is likely to overestimate the ideal weight.\n\nThis weight style is useful for systems where there are different\ncutoffs used for different pairs of interactions, or the density\nfluctuates, or a large number of particles are in the vicinity of a\nwall, or a combination of these effects. If a simulation uses\nmultiple neighbor lists, this weight style will use the first suitable\nneighbor list it finds. It will not request or compute a new list. A\nwarning will be issued if there is no suitable neighbor list available\nor if it is not current, e.g. if the balance command is used before a\n[run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command is used, in which\ncase the neighbor list may not yet have been built. In this case no\nweights are computed. Inserting a [run 0 post no ](https://docs.lammps.org/run.html) command\nbefore issuing the *balance* command, may be a workaround for this\ncase, as it will induce the neighbor list to be built.\n\nThe *time* weight style uses [timer data ](https://docs.lammps.org/timer.html) to estimate\nweights. It assigns the same weight to each particle owned by a\nprocessor based on the total computational time spent by that\nprocessor. See details below on what time window is used. It uses\nthe same timing information as is used for the [MPI task timingbreakdown ](https://docs.lammps.org/Run_output.html), namely, for sections *Pair*, *Bond*,\n*Kspace*, and *Neigh* . The time spent in those portions of the\ntimestep are measured for each MPI rank, summed, then divided by the\nnumber of particles owned by that processor. I.e. the weight is an\neffective CPU time/particle averaged over the particles on that\nprocessor.\n\nThe *factor* setting is applied as an overall scale factor to the\n*time* weights which allows adjustment of their impact on the\nbalancing operation. The specified *factor* value must be positive.\nA value > 1.0 will increase the weights so that the ratio of max\nweight to min weight increases by *factor* . A value < 1.0 will\ndecrease the weights so that the ratio of max weight to min weight\ndecreases by *factor* . In both cases the intermediate weight values\nincrease/decrease proportionally as well. A value = 1.0 has no effect\non the *time* weights. As a rule of thumb, effective values to use\nare typically between 0.5 and 1.2. Note that the timer quantities\nmentioned above can be affected by communication which occurs in the\nmiddle of the operations, e.g. pair styles with intermediate exchange\nof data witin the force computation, and likewise for KSpace solves.\n\nWhen using the *time* weight style with the *balance* command, the\ntiming data is taken from the preceding run command, i.e. the timings\nare for the entire previous run. For the *fix balance* command the\ntiming data is for only the timesteps since the last balancing\noperation was performed. If timing information for the required\nsections is not available, e.g. at the beginning of a run, or when the\n[timer ](https://docs.lammps.org/timer.html) command is set to either *loop* or *off*, a warning\nis issued. In this case no weights are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *time* weight style is the most generic option, and should\n > be tried first, unless the *group* style is easily applicable.\n > However, since the computed cost function is averaged over all\n > particles on a processor, the weights may not be highly accurate.\n > This style can also be effective as a secondary weight in combination\n > with either *group* or *neigh* to offset some of inaccuracies in\n > either of those heuristics. \n > \n\nThe *var* weight style assigns per-particle weights by evaluating an\n[atom-style variable ](https://docs.lammps.org/variable.html) specified by *name* . This is\nprovided as a more flexible alternative to the *group* weight style,\nallowing definition of a more complex heuristics based on information\n(global and per atom) available inside of LAMMPS. For example,\natom-style variables can reference the position of a particle, its\nvelocity, the volume of its Voronoi cell, etc.\n\nThe *store* weight style does not compute a weight factor. Instead it\nstores the current accumulated weights in a custom per-atom vector\nspecified by *name* . This must be a vector defined as *d_name* via\nthe [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command. This means\nthe values in the vector can be read as part of a data file with the\n[read_data ](https://docs.lammps.org/read_data.html) command or specified with the [set](https://docs.lammps.org/set.html) command. These weights can also be output in a [dump](https://docs.lammps.org/dump.html) file, so this is a way to examine, debug, or visualize the\nper-particle weights used during the load-balancing operation.\n\nNote that the name of the custom per-atom vector is specified just\nas *name*, not as *d_name* as it is for other commands that use\ndifferent kinds of custom atom vectors or arrays as arguments.\n\n----------\n\nThe *sort* keyword determines whether the communication of per-atom\ndata to other processors during load-balancing will be random or\ndeterministic. Random is generally faster; deterministic will ensure\nthe new ordering of atoms on each processor is the same each time the\nsame simulation is run. This can be useful for debugging purposes.\nSince the balance command is a one-time operation, the default is\n*yes* to perform sorting.\n\nThe *out* keyword writes a text file to the specified *filename* with\nthe results of the balancing operation. The file contains the bounds\nof the subdomain for each processor after the balancing operation\ncompletes. The format of the file is compatible with the\n[Pizza.py ](https://lammps.github.io/pizza) *mdump* tool which has support for manipulating and\nvisualizing mesh files. An example is shown here for a balancing by 4\nprocessors for a 2d problem:\n\n```\nITEM: TIMESTEP\n0\nITEM: NUMBER OF NODES\n16\nITEM: BOX BOUNDS\n0 10\n0 10\n0 10\nITEM: NODES\n1 1 0 0 0\n2 1 5 0 0\n3 1 5 5 0\n4 1 0 5 0\n5 1 5 0 0\n6 1 10 0 0\n7 1 10 5 0\n8 1 5 5 0\n9 1 0 5 0\n10 1 5 5 0\n11 1 5 10 0\n12 1 10 5 0\n13 1 5 5 0\n14 1 10 5 0\n15 1 10 10 0\n16 1 5 10 0\nITEM: TIMESTEP\n0\nITEM: NUMBER OF SQUARES\n4\nITEM: SQUARES\n1 1 1 2 3 4\n2 1 5 6 7 8\n3 1 9 10 11 12\n4 1 13 14 15 16\n```\nThe coordinates of all the vertices are listed in the NODES section, 5\nper processor. Note that the 4 subdomains share vertices, so there\nwill be duplicate nodes in the list.\n\nThe \"SQUARES\" section lists the node IDs of the 4 vertices in a\nrectangle for each processor (1 to 4).\n\nFor a 3d problem, the syntax is similar with 8 vertices listed for\neach processor, instead of 4, and \"SQUARES\" replaced by \"CUBES\".\n\n----------\n\nThis subsection describes how to perform weighted load balancing\nusing the *weight* keyword. \n ", - "restrictions": "For 2d simulations, the *z* style cannot be used. Nor can a \"z\"\nappear in *dimstr* for the *shift* style.\n\nBalancing through recursive bisectioning (\\ *rcb* style) requires\n[comm_style tiled ](https://docs.lammps.org/comm_style.html)\n", - "related": "[group ](https://docs.lammps.org/group.html), [processors ](https://docs.lammps.org/processors.html),\n[fix balance ](https://docs.lammps.org/fix_balance.html), [comm_style ](https://docs.lammps.org/comm_style.html)\n\n.. _pizza: https://lammps.github.io/pizza\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pod/atom = style name of this compute command\n* param.pod = the parameter file specifies parameters of the POD descriptors\n* coefficients.pod = the coefficient file specifies coefficients of the POD potential \n", + "examples": "\n```lmps\ncompute d all pod/atom Ta_param.pod\ncompute dd all podd/atom Ta_param.pod\ncompute ldd all pod/local Ta_param.pod\ncompute gdd all podd/global Ta_param.pod\ncompute d all pod/atom Ta_param.pod Ta_coefficients.pod\ncompute dd all podd/atom Ta_param.pod Ta_coefficients.pod\ncompute ldd all pod/local Ta_param.pod Ta_coefficients.pod\ncompute gdd all podd/global Ta_param.pod Ta_coefficients.pod\n```\n", + "html_filename": "compute_pod_atom.html", + "short_description": "\nDefine a computation that calculates a set of quantities related to the\nPOD descriptors of the atoms in a group", + "description": "\nDefine a computation that calculates a set of quantities related to the\nPOD descriptors of the atoms in a group. These computes are used\nprimarily for calculating the dependence of energy and force components\non the linear coefficients in the [pod pair_style ](https://docs.lammps.org/pair_pod.html),\nwhich is useful when training a POD potential to match target data. POD\ndescriptors of an atom are characterized by the radial and angular\ndistribution of neighbor atoms. The detailed mathematical definition is\ngiven in the papers by **Nguyen20222c**,\n**Nguyen20232c**, **Nguyen20242c**,\nand **Nguyen20243c**.\n\nCompute *pod/atom* calculates the per-atom POD descriptors.\n\nCompute *podd/atom* calculates derivatives of the per-atom POD\ndescriptors with respect to atom positions.\n\nCompute *pod/local* calculates the per-atom POD descriptors and their\nderivatives with respect to atom positions.\n\nCompute *pod/global* calculates the global POD descriptors and their\nderivatives with respect to atom positions.\n\nExamples how to use Compute POD commands are found in the directory\n``examples/PACKAGES/pod``.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >All of these compute styles produce *very* large per-atom output\n > arrays that scale with the total number of atoms in the system.\n > This will result in *very* large memory consumption for systems\n > with a large number of atoms. \n > \n\n----------\n\n #### Output info\n\nCompute *pod/atom* produces an 2D array of size \\(N \\times M\\),\nwhere \\(N\\) is the number of atoms and \\(M\\) is the number of\ndescriptors. Each column corresponds to a particular POD descriptor.\n\nCompute *podd/atom* produces an 2D array of size \\(N \\times (M * 3\nN)\\). Each column corresponds to a particular derivative of a POD\ndescriptor.\n\nCompute *pod/local* produces an 2D array of size \\((1 + 3N) \\times\n(M * N)\\). The first row contains the per-atom descriptors, and the last\n3N rows contain the derivatives of the per-atom descriptors with respect\nto atom positions.\n\nCompute *pod/global* produces an 2D array of size \\((1 + 3N) \\times\n(M)\\). The first row contains the global descriptors, and the last 3N\nrows contain the derivatives of the global descriptors with respect to\natom positions.\n\n**(Nguyen20222c)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232c)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242c)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243c)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", + "restrictions": "These computes are part of the ML-POD package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fitpod ](https://docs.lammps.org/fitpod_command.html),\n[pair_style pod ](https://docs.lammps.org/pair_pod.html)\n" }, { "command": [ - "compute erotate/sphere/atom" + "pair_style oxdna/excv", + "pair_style oxdna/stk", + "pair_style oxdna/hbond", + "pair_style oxdna/xstk" ], "syntax": [ - "compute ID group-ID erotate/sphere/atom" + "pair_style style1" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "style1", "type": 2, "choices": [] - }, - { - "arg": "erotate/sphere/atom", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/sphere/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all erotate/sphere/atom\n```\n", - "html_filename": "compute_erotate_sphere_atom.html", - "short_description": "Define a computation that calculates the rotational kinetic energy for\neach particle in a group", - "description": "Define a computation that calculates the rotational kinetic energy for\neach particle in a group.\n\nThe rotational energy is computed as \\(\\frac12 I \\omega^2\\), where\n\\(I\\) is the moment of inertia for a sphere and \\(\\omega\\) is the\nparticle's angular velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\nThe value of the rotational kinetic energy will be 0.0 for atoms not\nin the specified compute group or for point particles with a radius of 0.0.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" + "parameters": "* style1 = *hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk*\n\n* style2 = oxdna/excv or oxdna/stk or oxdna/hbond or oxdna/xstk or oxdna/coaxstk\n* args = list of arguments for these particular styles \n *      oxdna/stk args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.3448 (LJ units) or 8.01727944817084 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.6568 (LJ units) or 0.005279604 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxdna/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 1.077 (LJ units) or 6.42073911784652 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs \n", + "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna/stk seqdep 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxdna/hbond seqdep 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxdna/hbond seqdep 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxdna/xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65\n\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_lj.cgdna\npair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna_lj.cgdna\npair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff * * oxdna/xstk oxdna_lj.cgdna\npair_coeff * * oxdna/coaxstk oxdna_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxdna/stk seqdep 300.0 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 1 4 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 2 3 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 -0.65 2.0 -0.65\n\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_real.cgdna\npair_coeff * * oxdna/stk seqav 300.0 8.01727944817084 0.005279604 oxdna_real.cgdna\npair_coeff * * oxdna/hbond seqav oxdna_real.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_real.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_real.cgdna\npair_coeff * * oxdna/xstk oxdna_real.cgdna\npair_coeff * * oxdna/coaxstk oxdna_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", + "html_filename": "pair_oxdna.html", + "short_description": "The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA\nforce field for coarse-grained modelling of DNA", + "description": "The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA\nforce field for coarse-grained modelling of DNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxdna/excv*, the stacking *oxdna/stk*,\ncross-stacking *oxdna/xstk* and coaxial stacking interaction\n*oxdna/coaxstk* as well as the hydrogen-bonding interaction\n*oxdna/hbond* between complementary pairs of nucleotides on opposite\nstrands. Average sequence or sequence-dependent stacking and\nbase-pairing strengths are supported :ref:[(Sulc) ](https://docs.lammps.org/Sulc1>`. Quasi-uniquebase-pairing between nucleotides can be achieved by using morecomplementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11,13-16 and 14-15, etc. This prevents the hybridization of in principlecomplementary bases within Ntypes/4 bases up and down along thebackbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to :ref:`(Ouldridge-DPhil)` and **Ouldridge1** for a detaileddescription of the oxDNA force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA > bond style *oxdna/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxdna/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 and > corresponding *real unit* equivalents in the above examples) and the > first coefficient after *oxdna/hbond* (seq=seqdep in the above > example). When using a Langevin thermostat, e.g. through [fix > langevin ](https://docs.lammps.org/fix_langevin.html) or [fix nve/dotc/langevin > ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature coefficients have to be > matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. Asimple python setup tool which creates single straight or helical DNAstrands, DNA duplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich1** in any publication that usesthis implementation. An updated documentation that contains generalinformation on the model, its implementation and performance as well asthe structure of the data and input file can be found `here\n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_lj.cgdna\npair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff * * oxdna/xstk oxdna_lj.cgdna\npair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65\n```\nwill read the stacking and coaxial stacking potential parameters from\nthe manual specification and all others from the potential file\n*oxdna_lj.cgdna*.\n\nThere are sample potential files for each unit style in the\n``potentials`` directory of the LAMMPS distribution. The potential file\nunit system must align with the units defined via the [units](https://docs.lammps.org/units.html) command. For conversion between different *LJ* and *real* unit\nsystems for oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool\nassumes similar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc1)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Ouldridge1)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich1)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n \n**(Ouldridge-DPhil1)** T.E. Ouldridge, Coarse-grained modelling of DNA and DNA self-assembly, DPhil. University of Oxford (2011). \n ", + "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html),\n[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" }, { "command": [ - "fix smd/wall_surface" + "compute temp/profile" ], "syntax": [ - "fix ID group-ID smd/wall_surface arg type mol-ID" + "compute ID group-ID temp/profile xflag yflag zflag binstyle args" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -2628,194 +2359,208 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/wall_surface", + "arg": "temp/profile", "type": 1, "choices": [] }, { - "arg": "arg", + "arg": "xflag", "type": 2, "choices": [] }, { - "arg": "type", + "arg": "yflag", "type": 2, "choices": [] }, { - "arg": "mol-ID", + "arg": "zflag", + "type": 2, + "choices": [] + }, + { + "arg": "xyz", + "type": 3, + "choices": [ + "x", + "y", + "z", + "xy", + "yz", + "xz", + "xyz" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/wall_surface = style name of this fix command\n* arg = file \n *         file = file name of a triangular mesh in stl format \n* type = particle type to be given to the new particles created by this fix\n* mol-ID = molecule-ID to be given to the new particles created by this fix (must be >= 65535) \n", - "examples": "\n```lmps\nfix stl_surf all smd/wall_surface tool.stl 2 65535\n```\n", - "html_filename": "fix_smd_wall_surface.html", - "short_description": "This fix creates reads a triangulated surface from a file in .STL\nformat", - "description": "This fix creates reads a triangulated surface from a file in .STL\nformat. For each triangle, a new particle is created which stores the\nbarycenter of the triangle and the vertex positions. The radius of\nthe new particle is that of the minimum circle which encompasses the\ntriangle vertices.\n\nThe triangulated surface can be used as a complex rigid wall via the\n[smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html) pair style. It\nis possible to move the triangulated surface via the\n[smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html) fix style.\n\nImmediately after a .STL file has been read, the simulation needs to\nbe run for 0 timesteps in order to properly register the new particles\nin the system. See the \"funnel_flow\" example in the MACHDYN examples\ndirectory.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe molecule ID given to the particles created by this fix have to be\nequal to or larger than 65535.\n\nWithin each .STL file, only a single triangulated object must be\npresent, even though the STL format allows for the possibility of\nmultiple objects in one file.\n", - "related": "[smd/triangle_mesh_vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html),\n[smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html),\n[smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/profile = style name of this compute command\n* xflag,yflag,zflag = 0/1 for whether to exclude/include this dimension\n* binstyle = x or y or z or xy or yz or xz or xyz \n *        x arg = Nx \n *        y arg = Ny \n *        z arg = Nz \n *        xy args = Nx Ny \n *        yz args = Ny Nz \n *        xz args = Nx Nz \n *        xyz args = Nx Ny Nz \n         Nx, Ny, Nz = number of velocity bins in x, y, z dimensions \n* zero or more keyword/value pairs may be appended\n* keyword = out \n *        out value = tensor or bin \n", + "examples": "\n```lmps\ncompute myTemp flow temp/profile 1 1 1 x 10\ncompute myTemp flow temp/profile 1 1 1 x 10 out bin\ncompute myTemp flow temp/profile 0 1 1 xyz 20 20 20\n```\n", + "html_filename": "compute_temp_profile.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a spatially-averaged center-of-mass\nvelocity field, before computing the kinetic energy", + "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a spatially-averaged center-of-mass\nvelocity field, before computing the kinetic energy. This can be\nuseful for thermostatting a collection of atoms undergoing a complex\nflow (e.g. via a profile-unbiased thermostat (PUT) as described in\n**Evans1**). A compute of this style can be used by any command\nthat computes a temperature (e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe *xflag*, *yflag*, *zflag* settings determine which components of\naverage velocity are subtracted out.\n\nThe *binstyle* setting and its *Nx*, *Ny*, *Nz* arguments determine how bins\nare setup to perform spatial averaging. \"Bins\" can be 1d slabs, 2d pencils,\nor 3d bricks depending on which *binstyle* is used. The simulation box is\npartitioned conceptually into *Nx* \\(\\times\\) *Ny* \\(\\times\\) *Nz*\nbins. Depending on the *binstyle*, you may only specify one or two of these\nvalues; the others are effectively set to 1 (no binning in that dimension).\nFor non-orthogonal (triclinic) simulation boxes, the bins are \"tilted\" slabs or\npencils or bricks that are parallel to the tilted faces of the box. See the\n[region prism ](https://docs.lammps.org/region.html) command for a discussion of the geometry of tilted\nboxes in LAMMPS.\n\nWhen a temperature is computed, the center-of-mass velocity for the\nset of atoms that are both in the compute group and in the same\nspatial bin is calculated. This bias velocity is then subtracted from\nthe velocities of individual atoms in the bin to yield a thermal\nvelocity for each atom. Note that if there is only one atom in the\nbin, its thermal velocity will thus be 0.0.\n\nAfter the spatially-averaged velocity field has been subtracted from\neach atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\left( \\frac{\\text{dim}}{N} - N_s N_x N_y N_z\n - \\text{extra} \\right) \\frac{k_B T}{2},\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\); dim = 2 or 3 is the dimensionality of the simulation;\n\\(N_s =\\) 0, 1, 2, or 3 for streaming velocity subtracted in 0, 1, 2, or 3\ndimensions, respectively; *extra* is the number of extra degrees of freedom;\n*N* is the number of atoms in the group; \\(k_B\\) is the Boltzmann constant,\nand \\(T\\) is the absolute temperature. The \\(N_s N_x N_y N_z\\) term is\nthe number of degrees of freedom subtracted to adjust for the removal of the\ncenter-of-mass velocity in each direction of the *Nx\\*Ny\\*Nz* bins, as\ndiscussed in the **Evans1** paper. The extra term defaults to\n\\(\\text{dim} - N_s\\) and accounts for overall conservation of\ncenter-of-mass velocity across the group in directions where streaming velocity\nis *not* subtracted. This can be altered using the *extra* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nIf the *out* keyword is used with a *tensor* value, which is the default,\na kinetic energy tensor, stored as a six-element vector, is also calculated by\nthis compute for use in the computation of a pressure tensor. The formula for\nthe components of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, and\nso on. The six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nIf the *out* keyword is used with a *bin* value, the count of atoms and\ncomputed temperature for each bin are stored for output, as an array of values,\nas described below. The temperature of each bin is calculated as described\nabove, where the bias velocity is subtracted and only the remaining thermal\nvelocity of atoms in the bin contributes to the temperature. See the note\nbelow for how the temperature is normalized by the degrees-of-freedom of atoms\nin the bin.\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the spatially-averaged velocity field by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html),\nand [fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that constrain\nmolecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of atoms\nthat include these constraints will be computed correctly. If needed, the\nsubtracted degrees-of-freedom can be altered using the *extra* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *out* keyword with a value of *bin*, the\n > calculated temperature for each bin includes the degrees-of-freedom\n > adjustment described in the preceding paragraph for fixes that\n > constrain molecular motion, as well as the adjustment due to\n > the *extra* option (which defaults to *dim* - *Ns* as described above),\n > by fractionally applying them based on the fraction of atoms in each\n > bin. As a result, the bin degrees-of-freedom summed over all bins exactly\n > equals the degrees-of-freedom used in the scalar temperature calculation,\n > \\(\\Sigma N_{\\text{DOF}_i} = N_\\text{DOF}\\) and the corresponding\n > relation for temperature is also satisfied\n > (\\(\\Sigma N_{\\text{DOF}_i} T_i = N_\\text{DOF} T\\)).\n > These relations will break down in cases for which the adjustment\n > exceeds the actual number of degrees of freedom in a bin. This could happen\n > if a bin is empty or in situations in which rigid molecules\n > are non-uniformly distributed, in which case the reported\n > temperature within a bin may not be accurate. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting. Using this compute in conjunction with a\nthermostatting fix, as explained there, will effectively implement a\nprofile-unbiased thermostat (PUT), as described in **Evans1**.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature). Depending\non the setting of the *out* keyword, it also calculates a global\nvector or array. For *out* = *tensor*, it calculates a vector of\nlength 6 (KE tensor), which can be accessed by indices 1--6. For *out*\n= *bin* it calculates a global array which has 2 columns and \\(N\\) rows,\nwhere \\(N\\) is the number of bins. The first column contains the number\nof atoms in that bin. The second contains the temperature of that\nbin, calculated as described above. The ordering of rows in the array\nis as follows. Bins in \\(x\\) vary fastest, then \\(y\\), then\n\\(z\\). Thus for a \\(10\\times 10\\times 10\\) 3d array of bins, there\nwill be 1000 rows. The bin with indices \\((i_x,i_y,i_z) = (2,3,4)\\) would\nmap to row \\(M = 10^2(i_z-1) + 10(i_y-1) + i_x = 322\\), where the rows are\nnumbered from 1 to 1000 and the bin indices are numbered from 1 to 10 in each\ndimension.\n\nThese values can be used by any command that uses global scalar or\nvector or array values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\". The array values are \"intensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html). The first column\nof array values are counts; the values in the second column will be in\ntemperature [units ](https://docs.lammps.org/units.html).\n\n**(Evans1)** Evans and Morriss, Phys Rev Lett, 56, 2172-2175 (1986). \n ", + "restrictions": "You should not use too large a velocity-binning grid, especially in\n3d. In the current implementation, the binned velocity averages are\nsummed across all processors, so this will be inefficient if the grid\nis too large, and the operation is performed every timestep, as it\nwill be for most thermostats.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html), [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "fix grem" + "pair_style lj/relres", + "pair_style lj/relres/omp" ], "syntax": [ - "fix ID group-ID grem lambda eta H0 thermostat-ID" + "pair_style lj/relres Rsi Rso Rci Rco" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "grem", - "type": 1, - "choices": [] + "arg": "lj/relres", + "type": 3, + "choices": [ + "lj/relres", + "lj/relres/omp" + ] }, { - "arg": "lambda", + "arg": "Rsi", "type": 2, "choices": [] }, { - "arg": "eta", + "arg": "Rso", "type": 2, "choices": [] }, { - "arg": "H0", + "arg": "Rci", "type": 2, "choices": [] }, { - "arg": "thermostat-ID", + "arg": "Rco", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* grem = style name of this fix command\n* lambda = intercept parameter of linear effective temperature function\n* eta = slope parameter of linear effective temperature function\n* H0 = shift parameter of linear effective temperature function\n* thermostat-ID = ID of Nose-Hoover thermostat or barostat used in simulation \n", - "examples": "\n```lmps\nfix fxgREM all grem 400 -0.01 -30000 fxnpt\nthermo_modify press fxgREM_press\n\nfix fxgREM all grem 502 -0.15 -80000 fxnvt\n```\n", - "html_filename": "fix_grem.html", - "short_description": "This fix implements the molecular dynamics version of the generalized\nreplica exchange method (gREM) originally developed by **Kim2010**,\nwhich uses non-Boltzmann ensembles to sample over first order phase\ntransitions", - "description": "This fix implements the molecular dynamics version of the generalized\nreplica exchange method (gREM) originally developed by **Kim2010**,\nwhich uses non-Boltzmann ensembles to sample over first order phase\ntransitions. The is done by defining replicas with an enthalpy\ndependent effective temperature\n\\[\n T_{eff} = \\lambda + \\eta (H - H_0)\\]\nwith \\(\\eta\\) negative and steep enough to only intersect the\ncharacteristic microcanonical temperature (Ts) of the system once,\nensuring a unimodal enthalpy distribution in that replica.\n\\(\\lambda\\) is the intercept and effects the generalized ensemble\nsimilar to how temperature effects a Boltzmann ensemble. \\(H_0\\)\nis a reference enthalpy, and is typically set as the lowest desired\nsampled enthalpy. Further explanation can be found in our recent\npapers **Malolepsza**.\n\nThis fix requires a Nose-Hoover thermostat fix reference passed to the\ngrem as *thermostat-ID* . Two distinct temperatures exist in this\ngeneralized ensemble, the effective temperature defined above, and a\nkinetic temperature that controls the velocity distribution of\nparticles as usual. Either constant volume or constant pressure\nalgorithms can be used.\n\nThe fix enforces a generalized ensemble in a single replica\nonly. Typically, this ideology is combined with replica exchange with\nreplicas differing by \\(\\lambda\\) only for simplicity, but this is not\nrequired. A multi-replica simulation can be run within the LAMMPS\nenvironment using the [temper/grem ](https://docs.lammps.org/temper_grem.html) command. This\nutilizes LAMMPS partition mode and requires the number of available\nprocessors be on the order of the number of desired replicas. A\n100-replica simulation would require at least 100 processors (1 per\nworld at minimum). If many replicas are needed on a small number of\nprocessors, multi-replica runs can be run outside of LAMMPS. An\nexample of this can be found in examples/PACKAGES/grem and has no\nlimit on the number of replicas per processor. However, this is very\ninefficient and error prone and should be avoided if possible.\n\nIn general, defining the generalized ensembles is unique for every\nsystem. When starting a many-replica simulation without any knowledge\nof the underlying microcanonical temperature, there are several tricks\nwe have utilized to optimize the process. Choosing a less-steep\n\\(\\eta\\) yields broader distributions, requiring fewer replicas to\nmap the microcanonical temperature. While this likely struggles from\nthe same sampling problems gREM was built to avoid, it provides quick\ninsight to Ts. Initially using an evenly-spaced \\(\\lambda\\)\ndistribution identifies regions where small changes in enthalpy lead\nto large temperature changes. Replicas are easily added where needed.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [thermo_modify ](https://docs.lammps.org/thermo_modify.html) *press* option is supported\nby this fix to add the rescaled kinetic pressure as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the effective\ntemperature \\(T_{eff}\\). The scalar value calculated by this\nfix is \"intensive\".\n\n**(Kim2010)** Kim, Keyes, Straub, J Chem. Phys, 132, 224107 (2010). \n \n**(Malolepsza)** Malolepsza, Secor, Keyes, J Phys Chem B 119 (42),\n13379-13384 (2015). \n ", - "restrictions": "This fix is part of the REPLICA package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[temper/grem ](https://docs.lammps.org/temper_grem.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n" + "parameters": "* Rsi = inner switching cutoff between the fine-grained and coarse-grained potentials (distance units)\n* Rso = outer switching cutoff between the fine-grained and coarse-grained potentials (distance units)\n* Rci = inner cutoff beyond which the force smoothing for all interactions is applied (distance units)\n* Rco = outer cutoff for all interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/relres 4.0 5.0 8.0 10.0\npair_coeff 1 1 0.5 1.0 1.5 1.1\npair_coeff 2 2 0.5 1.0 0.0 0.0 3.0 3.5 6.0 7.0\n```\n", + "html_filename": "pair_lj_relres.html", + "short_description": "Pair style *lj/relres* computes a LJ interaction using the Relative\nResolution (RelRes) framework which applies a fine-grained (FG)\npotential between near neighbors and a coarse-grained (CG) potential\nbetween far neighbors **Chaimovich1**", + "description": "Pair style *lj/relres* computes a LJ interaction using the Relative\nResolution (RelRes) framework which applies a fine-grained (FG)\npotential between near neighbors and a coarse-grained (CG) potential\nbetween far neighbors **Chaimovich1**. This approach\ncan improve the computational efficiency by almost an order of\nmagnitude, while maintaining the correct static and dynamic behavior of\na reference system **Chaimovich2**.\n\\[\\begin{align*} \n E = \\left\\{\\begin{array}{lr}\n 4 \\epsilon^{\\scriptscriptstyle FG} \\left[ \\left(\\frac{\\sigma^{FG}}{r}\\right)^{12} - \\left(\\frac{\\sigma^{FG}}{r}\\right)^6 \\right]-\\Gamma_{si}, & \\quad\\mathrm{if}\\quad r< r_{si}, \\\\\n \\sum_{m=0}^{4} \\gamma_{sm}\\left(r-r_{si}\\right)^m-\\Gamma_{so} , & \\quad\\mathrm{if}\\quad r_{si}\\leq r< r_{so}, \\\\\n 4 \\epsilon^{\\scriptscriptstyle CG} \\left[ \\left(\\frac{\\sigma^{CG}}{r}\\right)^{12} - \\left(\\frac{\\sigma^{CG}}{r}\\right)^6 \\right]-\\Gamma_c, & \\quad\\mathrm{if}\\quad r_{so}\\leq r ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Energy and force resulting from this methodology can be plotted via the\n > [pair_write ](https://docs.lammps.org/pair_write.html) command. \n > \n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by\nmixing as will be described below:\n\n* \\(\\epsilon^{FG}\\) (energy units)\n* \\(\\sigma^{FG}\\) (distance units)\n* \\(\\epsilon^{CG}\\) (energy units)\n* \\(\\sigma^{CG}\\) (distance units)\n\nAdditional parameters can be defined to specify different\n\\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\), \\(r_{co}\\) for\na particular set of atom types:\n\n* \\(r_{si}\\) (distance units)\n* \\(r_{so}\\) (distance units)\n* \\(r_{ci}\\) (distance units)\n* \\(r_{co}\\) (distance units)\n\nThese parameters are optional, and they are used to override the global\ncutoffs as defined in the pair_style command. If not specified, the\nglobal values for \\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\), and\n\\(r_{co}\\) are used. If this override option is employed, all four\narguments must be specified.\n\n----------\n\nHere are some guidelines for using the pair_style *lj/relres* command.\n\nIn general, RelRes focuses on the speedup of pairwise interactions between\nall LJ sites. Importantly, it works with any settings and flags (e.g.,\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings and [newton ](https://docs.lammps.org/newton.html)\nflags) that can be used in a molecular simulation with the\nconventional LJ potential. In particular, all intramolecular topology\nwith its energetics (i.e., bonds, angles, etc.) remains unaltered.\n\nAt the most basic level in the RelRes framework, all sites are mapped into\nclusters. Each cluster is just a collection of sites bonded together (the\nbonds themselves are not part of the cluster). In general, a molecule may\nbe comprised of several clusters, and preferably, no two sites in a cluster\nare separated by more than two bonds. There are two categories of sites in\nRelRes: \"hybrid\" sites embody both FG and CG models, while \"ordinary\" sites\nembody just FG characteristics with no CG features. A given cluster has\na single hybrid site (typically its central site) and several ordinary sites\n(typically its peripheral sites). Notice that while clusters are necessary\nfor the RelRes parameterization (discussed below), they are not actually\ndefined in LAMMPS. Besides, the total number of sites in the cluster are\ncalled the \"mapping ratio\", and this substantially impacts the computational\nefficiency of RelRes: For a mapping ratio of 3, the efficiency factor is\naround 4, and for a mapping ratio of 5, the efficiency factor is around 5\n**Chaimovich2**.\n\nThe flexibility of LAMMPS allows placing any values for the LJ\nparameters in the input script. However, here are the optimal\nrecommendations for the RelRes parameters, which yield the correct\nstructural and thermal behavior in a system of interest\n**Chaimovich1**. One must first assign a complete set of\nparameters for the FG interactions that are applicable to all atom types.\nRegarding the parameters for the CG interactions, the rules rely on the\nsite category (if it is a hybrid or an ordinary site). For atom types of\nordinary sites, \\(\\epsilon^{CG}\\) must be set to 0 (zero) while the\nspecific value of \\(\\sigma^{CG}\\) is irrelevant. For atom types of\nhybrid sites, the CG parameters should be generally calculated using the\nfollowing equations:\n\\[\n \\sigma_I^{CG}=\\frac{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^{12}}\\right)^{1/2}}{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^6}\\right)^{1/3}}\n \\quad\\mathrm{and}\\quad\n \\epsilon_I^{CG}=\\frac{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^6}\\right)^4}{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^{12}}\\right)^2}\\]\nwhere \\(I\\) is an atom type of a hybrid site of a particular cluster\n\\(A\\), and corresponding with this cluster, the summation proceeds over\nall of its sites \\(\\alpha\\). These equations are derived from the\nmonopole term in the underlying Taylor series, and they are indeed relevant\nonly if geometric mixing is applicable for the FG model; if this is not the\ncase, Ref. **Chaimovich2** discusses the alternative\nformula, and in such a situation, the pair_coeff command should be explicitly\nused for all combinations of atom types \\(I\\;!=J\\).\n\nThe switching distance (the midpoint between inner and outer switching\ncutoffs) is another crucial factor in RelRes: decreasing it improves the\ncomputational efficiency, yet if it is too small, the molecular simulations\nmay not capture the system behavior correctly. As a rule of thumb,\nthe switching distance should be approximately \\(\\,\\sim\\! 1.5\\sigma\\)\n**Chaimovich1**; recommendations can be found in\nRef. **Chaimovich2**.\nRegarding the switching smoothing zone, \\(\\,\\sim\\!0.1\\sigma\\) is\nrecommended; if desired, smoothing can be eliminated by setting\nthe inner switching cutoff, \\(r_{si}\\), equal to the outer\nswitching cutoff, \\(r_{so}\\) (the same is true for the other cutoffs\n\\(r_{ci}\\) and \\(r_{co}\\)).\n\n----------\n\nAs an example, imagine that in your system, a molecule is comprised just\nof one cluster such that one atom type (#1) is associated with\nits hybrid site, and another atom type (#2) is associated with its ordinary\nsites (in total, there are 2 atom types). If geometric mixing is applicable,\nthe following commands should be used:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0\npair_modify shift yes\n```\nIn a more complex situation, there may be two distinct clusters in a system\n(these two clusters may be on same molecule or on different molecules),\neach with its own switching cutoffs. If there are still two atom types\nin each cluster as in the earlier example, the commands should be:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3\npair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0\npair_modify shift yes\n```\nIn this example, the switching cutoffs for the first cluster (atom types 1\nand 2) is defined explicitly in the pair_coeff command which overrides the\nglobal values, while the second cluster (atom types 3 and 4) uses the global\ndefinition from the pair_style command. The emphasis here is that the atom\ntypes that belong to a specific cluster should have the same switching/cutoff\narguments.\n\nIn the case that geometric mixing is not applicable, for simulating the\nsystem from the previous example, we recommend using the following commands:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco\npair_coeff 1 2 epsilon_FG12 sigma_FG12 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 1 3 epsilon_FG13 sigma_FG13 epsilon_CG13 sigma_CG13 Rsi13 Rso13 Rci Rco\npair_coeff 1 4 epsilon_FG14 sigma_FG14 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 2 3 epsilon_FG23 sigma_FG23 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 2 4 epsilon_FG24 sigma_FG24 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3\npair_coeff 3 4 epsilon_FG34 sigma_FG34 0.0 0.0\npair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0\npair_modify shift yes\n```\nNotice that the CG parameters are mixed only for interactions between atom\ntypes associated with hybrid sites, and that the cutoffs are\nmixed on the cluster basis.\n\nMore examples can be found in the *examples/relres* folder.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs \\(I,\\:J\\) with \\(I\\;!=J\\), the\n\\(\\epsilon^{FG}\\), \\(\\sigma^{FG}\\), \\(\\epsilon^{CG}\\),\n\\(\\sigma^{CG}\\), \\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\),\nand \\(r_{co}\\) parameters for this pair style can be mixed, if\nnot defined explicitly. All parameters are mixed according to the\npair_modify mix option. The default mix value is *geometric*,\nand it is recommended to use with this *lj/relres* style. See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction. It is recommended to set\nthis option to *yes* . Otherwise, the offset \\(\\Gamma_{c}\\)\nis set to zero. Constants \\(\\Gamma_{si}\\) and \\(\\Gamma_{so}\\) are\nnot impacted by this option.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Chaimovich1)** A. Chaimovich, C. Peter and K. Kremer, J. Chem. Phys. 143,\n243107 (2015). \n \n**(Chaimovich2)** M. Chaimovich and A. Chaimovich, J. Chem. Theory Comput. 17,\n1045-1059 (2021). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix rheo/thermal" + "pair_style hdnnp" ], "syntax": [ - "fix ID group-ID rheo/thermal attribute values ..." + "pair_style hdnnp cutoff keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "hdnnp", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "rheo/thermal", - "type": 1, - "choices": [] - }, - { - "arg": "react", + "arg": "cfenergy", "type": 3, "choices": [ - "conductivity", - "specific/heat", - "latent/heat", - "Tfreeze", - "react" + "dir", + "showew", + "showewsum", + "maxew", + "resetew", + "cflength", + "cfenergy" ] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rheo/thermal = style name of this fix command\n* one or more attributes may be appended\n* attribute = conductivity or specific/heat or latent/heat or Tfreeze or react \n *        conductivity args = types style args \n         types = lists of types (see below) \n         style = constant \n         constant arg = conductivity (power/temperature) \n *        specific/heat args = types style args \n         types = lists of types (see below) \n         style = constant \n         constant arg = specific heat (energy/(mass*temperature)) \n *        latent/heat args = types style args \n         types = lists of types (see below) \n         style = constant \n         constant arg = latent heat (energy/mass) \n *        Tfreeze args = types style args \n         types = lists of types (see below) \n         style = constant \n         constant arg = freezing temperature (temperature) \n *        react args = cut type \n         cut = maximum bond distance \n         type = bond type \n", - "examples": "\n```lmps\nfix 1 all rheo/thermal conductivity * constant 1.0 specific/heat * constant 1.0 Tfreeze * constant 1.0\nfix 1 all rheo/pressure conductivity 1*2 constant 1.0 conductivity 3*4 constant 2.0 specific/heat * constant 1.0\n```\n", - "html_filename": "fix_rheo_thermal.html", - "short_description": "\nThis fix performs time integration of temperature for atom style rheo/thermal", - "description": "\nThis fix performs time integration of temperature for atom style rheo/thermal.\nIn addition, it defines multiple thermal properties of particles and handles\nmelting/solidification, if applicable. For more details on phase transitions\nin RHEO, see [the RHEO howto ](https://docs.lammps.org/Howto_rheo.html).\n\nNote that the temperature of a particle is always derived from the energy.\nThis implies the *temperature* attribute of [the set command ](https://docs.lammps.org/set.html) does\nnot affect particles. Instead, one should use the *sph/e* attribute.\n\nFor each atom type, one can define expressions for the *conductivity*,\n*specific/heat*, *latent/heat*, and critical temperature (*Tfreeze*).\nThe conductivity and specific heat must be defined for all atom types.\nThe latent heat and critical temperature are optional. However, a\ncritical temperature must be defined to specify a latent heat.\n\nNote, if shifting is turned on in [fix rheo ](https://docs.lammps.org/fix_rheo.html), the gradient\nof the energy is used to shift energies. This may be inappropriate in systems\nwith multiple atom types with different specific heats.\n\nFor each property, one must first define a list of atom types. A wild-card\nasterisk can be used in place of or in conjunction with the *types* argument\nto set the coefficients for multiple pairs of atom types. This takes the\nform \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of atom\ntypes, then an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from m to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nThe *types* definition for each property is followed by the style. Currently,\nthe only option is *constant*. Style *constant* simply applies a constant value\nof respective property to each particle of the assigned type.\n\nThe *react* keyword controls whether bonds are created/deleted when particles\ntransition between a fluid and solid state. This option only applies to atom\ntypes that have a defined value of *Tfreeze*. When a fluid particle's\ntemperature drops below *Tfreeze*, bonds of type *btype* are created between\nnearby solid particles within a distance of *cut*. The particle's status also\nswaps to a solid state. When a solid particle's temperature rises above\n*Tfreeze*, all bonds of type *btype* are broken and the particle's status swaps\nto a fluid state.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix must be used with an atom style that includes temperature,\nheatflow, and conductivity such as atom_style rheo/thermal This fix\nmust be used in conjunction with [fix rheo ](https://docs.lammps.org/fix_rheo.html) with the\n*thermal* setting. The fix group must be set to all. Only one\ninstance of fix rheo/pressure can be defined.\n\nThis fix is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[pair rheo ](https://docs.lammps.org/pair_rheo.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html),\n[fix add/heat ](https://docs.lammps.org/fix_add_heat.html)\n" + "parameters": "* cutoff = short-range cutoff of HDNNP (maximum symmetry function cutoff radius)\n* zero or more keyword/value pairs may be appended\n* keyword = dir or showew or showewsum or maxew or resetew or cflength or cfenergy\n* value depends on the preceding keyword: \n *    dir value = directory \n     directory = Path to HDNNP configuration files \n *    showew value = yes or no \n *    showewsum value = summary \n     summary = Write EW summary every this many timesteps (*0* turns summary off) \n *    maxew value = threshold \n     threshold = Maximum number of EWs allowed \n *    resetew value = yes or no \n *    cflength value = length \n     length = Length unit conversion factor \n *    cfenergy value = energy \n     energy = Energy unit conversion factor \n", + "examples": "\n```lmps\npair_style hdnnp 6.35 showew yes showewsum 100 maxew 1000 resetew yes cflength 1.8897261328 cfenergy 0.0367493254\npair_coeff * * H O\n\npair_style hdnnp 6.01 dir \"./\" showewsum 10000\npair_coeff * * S Cu NULL Cu\n```\n", + "html_filename": "pair_hdnnp.html", + "short_description": "This pair style adds an interaction based on the high-dimensional neural network\npotential (HDNNP) method as presented in **Behler_Parrinello_2007**", + "description": "This pair style adds an interaction based on the high-dimensional neural network\npotential (HDNNP) method as presented in **Behler_Parrinello_2007**. HDNNPs are machine learning potentials which require\ncareful training of neural networks prior to application in MD simulations. The\npair style uses an interface to the *n2p2* library :ref:`(Singraber, Behler and\nDellago 2019) ` which is available on Github\n[here](https://github.com/CompPhysVienna/n2p2)_. Please see the *n2p2*\n[documentation](https://compphysvienna.github.io/n2p2/)_ for further details.\n*n2p2* (and hence this pair style) is compatible with neural network potentials\ntrained with its own tools **Singraber_et_al_2019**\nand with [RuNNer](https://www.uni-goettingen.de/de/560580.html)_.\n\nOnly a single *pair_coeff* command with two asterisk wild-cards is used with this\npair style. Its additional arguments define the mapping of LAMMPS atom types to\nn2p2 elements.\n\n```lmps\npair_coeff * * H O\n```\nIn the above example LAMMPS types 1 and 2 are mapped to the elements \"H\" and \"O\"\nin n2p2, respectively. Multiple types may map to the same element, or some types\nmay not be mapped at all. For example, if the LAMMPS simulation has four atom\ntypes, the command\n\n```lmps\npair_coeff * * H H O NULL\n```\nmaps atom types 1 and 2 to the element \"H\", type 3 to \"O\" and type 4 is not mapped\n(indicated by NULL). Atoms mapped to NULL are ignored by the HDNNP calculation,\ni.e. they do not contribute in any way to the evaluation of HDNNP energies and forces.\nThis may be useful in a setup with [hybrid pair styles ](https://docs.lammps.org/pair_hybrid.html).\n\n----\n\nThe mandatory pair style argument *cutoff* must match the short-range cutoff radius\nof the HDNNP. This corresponds to the maximum cutoff radius of all symmetry\nfunctions (the atomic environment descriptors of HDNNPs) used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cutoff must be given in LAMMPS length units, even if the neural network\n > potential has been trained using a different unit system (see remarks about the\n > *cflength* and *cfenergy* keywords below for details). \n > \n\nThe numeric value may be slightly larger than the actual maximum symmetry\nfunction cutoff radius (to account for rounding errors when converting units),\nbut must not be smaller.\n\nUse the *dir* keyword to specify the directory containing the HDNNP configuration\nfiles. The directory must contain ``input.nn`` with neural network and symmetry\nfunction setup, ``scaling.data`` with symmetry function scaling data and\n``weights.???.data`` with weight parameters for each element.\n\nThe keyword *showew* can be used to turn on/off the display of extrapolation\nwarnings (EWs) which are issued whenever a symmetry function value is out of\nbounds defined by minimum/maximum values in ``scaling.data``. An extrapolation\nwarning may look like this:\n\n```lmps\n### NNP EXTRAPOLATION WARNING ### STRUCTURE: 0 ATOM: 119 ELEMENT: Cu SYMFUNC: 32 TYPE: 3 VALUE: 2.166E-02 MIN: 2.003E-05 MAX: 1.756E-02\n```\nstating that the value 2.166E-02 of symmetry function 32 of type 3 (Narrow Angular symmetry function), element Cu (see the log file for a symmetry function listing) was out\nof bounds (maximum in ``scaling.data`` is 1.756E-02) for atom 119. Here, the\natom index refers to the LAMMPS tag (global index) and the structure index is\nused to print out the MPI rank the atom belongs to.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *showew* keyword should only be set to *yes* for debugging purposes.\n > Extrapolation warnings may add lots of overhead as they are communicated each\n > timestep. Also, if the simulation is run in a region where the HDNNP was not\n > correctly trained, lots of extrapolation warnings may clog log files and the\n > console. In a production run use *showewsum* instead. \n > \n\nThe keyword *showewsum* can be used to get an overview of extrapolation warnings\noccurring during an MD simulation. The argument specifies the interval at which\nextrapolation warning summaries are displayed and logged. An EW summary may look\nlike this:\n\n```lmps\n### NNP EW SUMMARY ### TS: 100 EW 11 EWPERSTEP 1.100E-01\n```\nHere, at timestep 100 the occurrence of 11 extrapolation warnings since the last\nsummary is reported, which corresponds to an EW rate of 0.11 per timestep.\nSetting *showewsum* to 0 deactivates the EW summaries.\n\nA maximum number of allowed extrapolation warnings can be specified with the\n*maxew* keyword. If the number of EWs exceeds the *maxew* argument the\nsimulation is stopped. Note however that this is merely an approximate threshold\nsince the check is only performed at the end of each timestep and each MPI\nprocess counts individually to minimize communication overhead.\n\nThe keyword *resetew* alters the behavior of the above mentioned *maxew*\nthreshold. If *resetew* is set to *yes* the threshold is applied on a\nper-timestep basis and the internal EW counters are reset at the beginning of\neach timestep. With *resetew* set to *no* the counters accumulate EWs along the\nwhole trajectory.\n\nIf the training of a neural network potential has been performed with different\nphysical units for length and energy than those set in LAMMPS, it is still\npossible to use the potential when the unit conversion factors are provided via\nthe *cflength* and *cfenergy* keywords. If for example, the HDNNP was\nparameterized with Bohr and Hartree training data and symmetry function\nparameters (i.e. distances and energies in \"input.nn\" are given in Bohr and\nHartree) but LAMMPS is set to use *metal* units (Angstrom and eV) the correct\nconversion factors are:\n\n```lmps\ncflength 1.8897261328\n\ncfenergy 0.0367493254\n```\nThus, arguments of *cflength* and *cfenergy* are the multiplicative factors\nrequired to convert lengths and energies given in LAMMPS units to respective\nquantities in native HDNNP units (1 Angstrom = 1.8897261328 Bohr, 1 eV =\n0.0367493254 Hartree).\n\n----\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. The [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nshould only be invoked with asterisk wild cards (see above).\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html).\nThus, you need to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa](https://docs.lammps.org/run_style.html) command. It does not support the *inner*, *middle*, *outer*\nkeywords.\n\n**(Behler_Parrinello_2007)** `Behler, J.; Parrinello, M. Generalized\nNeural-Network Representation of High-Dimensional Potential-Energy Surfaces.\nPhys. Rev. Lett. 2007, 98 (14), 146401.\n`__ \n \n**(Singraber_et_al_2019)** `Singraber, A.; Morawietz, T.; Behler, J.; Dellago,\nC. Parallel Multistream Training of High-Dimensional Neural Network Potentials.\nJ. Chem. Theory Comput. 2019, 15 (5), 3075-3092.\n`__ \n ", + "restrictions": "This pair style is part of the ML-HDNNP package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nPlease report bugs and feature requests to the [n2p2 GitHub issue page](https://github.com/CompPhysVienna/n2p2/issues)_.\n\nRelated commands\n^^^^^^^^^^^^^^^^\n\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_hybrid ](https://docs.lammps.org/pair_hybrid.html), [units ](https://docs.lammps.org/units.html)\n\nDefault\n^^^^^^^\n\nThe default options are *dir* = \"hdnnp/\", *showew* = yes, *showewsum* = 0, *maxew*\n= 0, *resetew* = no, *cflength* = 1.0, *cfenergy* = 1.0.\n\n----\n\n.. _Behler_Parrinello_2007:\n\n**(Behler and Parrinello 2007)** `Behler, J.; Parrinello, M. Generalized\nNeural-Network Representation of High-Dimensional Potential-Energy Surfaces.\nPhys. Rev. Lett. 2007, 98 (14), 146401.\n`__\n\n.. _Singraber_Behler_Dellago_2019:\n\n**(Singraber, Behler and Dellago 2019)** `Singraber, A.; Behler, J.; Dellago, C.\nLibrary-Based LAMMPS Implementation of High-Dimensional Neural Network\nPotentials. J. Chem. Theory Comput. 2019, 15 (3), 1827-1840\n`__\n\n.. _Singraber_et_al_2019:\n\n**(Singraber et al 2019)** `Singraber, A.; Morawietz, T.; Behler, J.; Dellago,\nC. Parallel Multistream Training of High-Dimensional Neural Network Potentials.\nJ. Chem. Theory Comput. 2019, 15 (5), 3075-3092.\n`__\n", + "related": "none" }, { "command": [ - "pair_style wf/cut" + "fix nve/noforce" ], "syntax": [ - "pair_style wf/cut cutoff" + "fix ID group-ID nve" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "wf/cut", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "nve", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = cutoff for wf interactions (distance units) \n", - "examples": "\n```lmps\npair_style wf/cut 2.0\npair_coeff 1 1 1.0 1.0 1 1 2.0\n```\n", - "html_filename": "pair_wf_cut.html", - "short_description": "The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as\ndescribed in **Wang2020**", - "description": "The *wf/cut* (Wang-Frenkel) style computes LJ-like potentials as\ndescribed in **Wang2020**. This potential is by\nconstruction finite ranged and it vanishes quadratically at the cutoff\ndistance, avoiding truncation, shifting, interpolation and other typical\nprocedures with the LJ potential. The *wf/cut* can be used when a\ntypical short-ranged potential with attraction is required. The\npotential is given by which is given by:\n\\[ \\phi(r)= \\epsilon \\alpha \\left(\\left[{\\sigma\\over r}\\right]^{2\\mu} -1 \\right)\\left(\\left[{r_c\\over r}\\right]^{2\\mu}-1\\right)^{2\\nu}\\]\nwith\n\\[ \\alpha=2\\nu\\left(\\frac{r_c}{\\sigma}\\right)^{2\\mu}\\left[\\frac{1+2\\nu}{2\\nu\\left[(r_c/\\sigma)^{2\\mu}-1\\right]}\\right]^{2\\nu+1}\\]\nand\n\\[ r_{min}=r_c\\left[\\frac{1+2\\nu}{1+2\\nu(r_c/\\sigma)^{2\\nu}}\\right]^{1/{2\\nu}}\\]\n\\(r_c\\) is the cutoff.\n\nComparison of the non-truncated Lennard-Jones 12-6 potential (red curve),\nand the WF potentials with \\(\\mu=1\\) and \\(\\nu=1\\) are shown in\nthe figure below. The blue curve has \\(r_c =2.0\\) and the green\ncurve has \\(r_c =1.2\\) and can be used to describe colloidal\ninteractions.\n\n ![Image](JPG/WF_LJ.jpg) \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\nu\\)\n* \\(\\mu\\)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\ngiven in the pair_style command is used. The exponents \\(\\nu\\) and\n\\(\\mu\\) are positive integers, usually set to 1. There is usually\nlittle to be gained by choosing other values of \\(\\nu\\) and\n\\(\\mu\\) (See discussion in **Wang2020**)\n\n----------\n\n**Mixing, shift, table, tail correction, restart, rRESPA info** :\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmixing and table options.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) tail and shift options are not\nrelevant for this pair style as it goes to zero at the cut-off radius.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style does not support the use of the *inner*, *middle*,\nand *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command.\n\n----------\n\n**(Wang2020)** X. Wang, S. Ramirez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020). \n ", - "restrictions": "This pair style can only be used if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n\n**Default:** none\n\n\n----------\n\n.. _Wang2020:\n\n**(Wang2020)** X. Wang, S. Ramirez-Hinestrosa, J. Dobnikar, and D. Frenkel, Phys. Chem. Chem. Phys. 22, 10624 (2020).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/noforce = style name of this fix command \n", + "examples": "\n```lmps\nfix 3 wall nve/noforce\n```\n", + "html_filename": "fix_nve_noforce.html", + "short_description": "Perform updates of position, but not velocity for atoms in the group\neach timestep", + "description": "Perform updates of position, but not velocity for atoms in the group\neach timestep. In other words, the force on the atoms is ignored and\ntheir velocity is not updated. The atom velocities are used to update\ntheir positions.\n\nThis can be useful for wall atoms, when you set their velocities, and\nwant the wall to move (or stay stationary) in a prescribed fashion.\n\nThis can also be accomplished via the [fix setforce ](https://docs.lammps.org/fix_setforce.html)\ncommand, but with fix nve/noforce, the forces on the wall atoms are\nunchanged, and can thus be printed by the [dump ](https://docs.lammps.org/dump.html) command or\nqueried with an equal-style [variable ](https://docs.lammps.org/variable.html) that uses the\nfcm() group function to compute the total force on the group of atoms.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "none\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n" }, { "command": [ - "compute dpd/atom" + "fix srd" ], "syntax": [ - "compute ID group-ID dpd/atom" + "fix ID group-ID srd N groupbig-ID Tsrd hgrid seed keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -2830,177 +2575,80 @@ export const command_docs = [ "choices": [] }, { - "arg": "dpd/atom", + "arg": "srd", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dpd/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all dpd/atom\n```\n", - "html_filename": "compute_dpd_atom.html", - "short_description": "Define a computation that accesses the per-particle internal conductive energy\n(\\(u^\\text{cond}\\)), internal mechanical energy (\\(u^\\text{mech}\\)),\ninternal chemical energy (\\(u^\\text{chem}\\)) and internal temperatures\n(\\(\\theta\\)) for each particle in a group", - "description": "Define a computation that accesses the per-particle internal conductive energy\n(\\(u^\\text{cond}\\)), internal mechanical energy (\\(u^\\text{mech}\\)),\ninternal chemical energy (\\(u^\\text{chem}\\)) and internal temperatures\n(\\(\\theta\\)) for each particle in a group.\nSee the [compute dpd ](https://docs.lammps.org/compute_dpd.html) command if you want the total\ninternal conductive energy, the total internal mechanical energy, the\ntotal chemical energy and average internal temperature of the entire system or\ngroup of dpd particles.\n\n #### Output info\n\nThis compute calculates a per-particle array with four columns\n(\\(u^\\text{cond}\\), \\(u^\\text{mech}\\), \\(u^\\text{chem}\\),\n\\(\\theta\\)), which can be accessed by indices 1--4 by any\ncommand that uses per-particle values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle array values will be in energy (\\(u^\\text{cond}\\),\n\\(u^\\text{mech}\\), \\(u^\\text{chem}\\))\nand temperature (\\(\\theta\\)) [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute dpd ](https://docs.lammps.org/compute_dpd.html)\n" -}, -{ - "command": [ - "pair_style mesocnt" - ], - "syntax": [ - "pair_style style neigh_cutoff mode neigh_mode" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "mesocnt/viscous", - "type": 3, - "choices": [ - "mesocnt", - "mesocnt/viscous" - ] }, { - "arg": "neigh_cutoff", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "segment", - "type": 3, - "choices": [ - "chain", - "segment" - ] - }, - { - "arg": "topology", - "type": 3, - "choices": [ - "id", - "topology" - ] - } - ] - ], - "parameters": "* style = mesocnt or mesocnt/viscous\n* neigh_cutoff = neighbor list cutoff (distance units)\n* mode = chain or segment (optional)\n* neigh_mode = id or topology (optional) \n", - "examples": "\n```lmps\npair_style mesocnt 30.0\npair_coeff * * C_10_10.mesocnt 2\n\npair_style mesocnt/viscous 60.0 chain topology\npair_coeff * * C_10_10.mesocnt 0.001 20.0 0.2 2 4\n```\n", - "html_filename": "pair_mesocnt.html", - "short_description": "Style *mesocnt* implements a mesoscopic potential for the interaction\nof carbon nanotubes (CNTs), or other quasi-1D objects such as other\nkinds of nanotubes or nanowires", - "description": "Style *mesocnt* implements a mesoscopic potential for the interaction\nof carbon nanotubes (CNTs), or other quasi-1D objects such as other\nkinds of nanotubes or nanowires. In this potential, CNTs are modelled\nas chains of cylindrical segments in which each infinitesimal surface\nelement interacts with all other CNT surface elements with the\nLennard-Jones (LJ) term adopted from the [airebo ](https://docs.lammps.org/pair_airebo.html)\nstyle. The interaction energy is then computed by integrating over the\nsurfaces of all interacting CNTs.\n\nIn LAMMPS, cylindrical segments are represented by bonds. Each segment\nis defined by its two end points (\"nodes\") which correspond to atoms\nin LAMMPS. For the exact functional form of the potential and\nimplementation details, the reader is referred to the original papers\n**Volkov1** and **Volkov2**.\n\nThe potential supports two modes, *segment* and *chain*. By default,\n*chain* mode is enabled. In *segment* mode, interactions are\npair-wise between all neighboring segments based on a segment-segment\napproach (keyword *segment* in pair_style command). In *chain* mode,\ninteractions are calculated between each segment and infinitely or\nsemi-infinitely long CNTs as described in **Volkov1**.\nChains of segments are converted to these (semi-)infinite CNTs bases\non an approximate chain approach outlined in **Volkov2**. Hence, interactions are calculated on a segment-chain\nbasis (keyword *chain* in the pair_style command). Using *chain* mode\nallows to simplify the computation of the interactions significantly\nand reduces the computational times to the same order of magnitude as\nfor regular bead spring models where beads interact with the standard\n[pair_lj/cut ](https://docs.lammps.org/pair_lj.html) potential. However, this method is only\nvalid when the curvature of the CNTs in the system is small. When\nCNTs are buckled (see [angle_mesocnt ](https://docs.lammps.org/angle_mesocnt.html)), local\ncurvature can be very high and the pair_style automatically switches\nto *segment* mode for interactions involving buckled CNTs.\n\nThe potential further implements two different neighbor list\nconstruction modes. Mode *id* uses atom and mol IDs to construct\nneighbor lists while *topology* modes uses only the bond topology of\nthe system. While *id* mode requires bonded atoms to have consecutive\nLAMMPS atom IDs and atoms in different CNTs to have different LAMMPS\nmolecule IDs, *topology* mode has no such requirement. Using *id* mode\nis faster and is enabled by default.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Neighbor *id* mode requires all CNTs in the system to have distinct\n > LAMMPS molecule IDs and bonded atoms to have consecutive LAMMPS atom\n > IDs. If this is not possible (e.g. in simulations of CNT rings),\n > *topology* mode needs to be enabled in the pair_style command. \n > \n\n\nIn addition to the LJ interactions described above, style\n*mesocnt/viscous* explicitly models friction between neighboring\nsegments. Friction forces are a function of the relative velocity\nbetween a segment and its neighboring approximate chain (even in\n*segment* mode) and only act along the axes of the interacting segment\nand chain. In this potential, friction forces acting per unit length\nof a nanotube segment are modelled as a shifted logistic function:\n\\[\n F^{\\text{FRICTION}}(v) / L = \\frac{F^{\\text{max}}}{1 +\n \\exp(-k(v-v_0))} - \\frac{F^{\\text{max}}}{1 + \\exp(k v_0)}\\]\n----------\n\nIn the pair_style command, the modes described above can be toggled\nusing the *segment* or *chain* keywords. The neighbor list cutoff\ndefines the cutoff within which atoms are included in the neighbor\nlist for constructing neighboring CNT chains. This is different from\nthe potential cutoff, which is directly calculated from parameters\nspecified in the potential file. We recommend using a neighbor list\ncutoff of at least 3 times the maximum segment length used in the\nsimulation to ensure proper neighbor chain construction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >CNT ends are treated differently by all *mesocnt* styles. Atoms on\n > CNT ends need to be assigned different LAMMPS atom types than atoms\n > not on CNT ends. \n > \n\nStyle *mesocnt* requires tabulated data provided in a single ASCII\ntext file, as well as a list of integers corresponding to all LAMMPS\natom types representing CNT ends:\n\n* filename\n* \\(N\\) CNT end atom types\n\nFor example, if your LAMMPS simulation of (10, 10) nanotubes has 4\natom types where atom types 1 and 3 are assigned to 'inner' nodes and\natom types 2 and 4 are assigned to CNT end nodes, the pair_coeff\ncommand would be:\n\n```lmps\npair_coeff * * C_10_10.mesocnt 2 4\n```\nLikewise, style *mesocnt/viscous* also requires the same information\nas style *mesocnt*, with the addition of 3 parameters for the viscous\nfriction forces as listed above:\n\n* filename\n* \\(F^{\\text{max}}\\)\n* \\(k\\)\n* \\(v_0\\)\n* \\(N\\) CNT end atom types\n\nUsing the same example system as with style *mesocnt* with the\naddition of friction, the pair_coeff command is:\n\n```lmps\npair_coeff * * C_10_10.mesocnt 0.03 20.0 0.20 2 4\n```\nPotential files for CNTs can be readily generated using the freely\navailable code provided on\n\n```\nhttps://github.com/phankl/cntpot\n```\nUsing the same approach, it should also be possible to generate\npotential files for other 1D systems mentioned above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because of their size, *mesocnt* style potential files are not\n > bundled with LAMMPS. When compiling LAMMPS from source code, the\n > file ``C_10_10.mesocnt`` should be downloaded separately from\n > `https://download.lammps.org/potentials/C_10_10.mesocnt\n > `_\n >\n > The first line of the potential file provides a time stamp and\n > general information. The second line lists four integers giving the\n > number of data points provided in the subsequent four data\n > tables. The third line lists four floating point numbers: the CNT\n > radius R, the LJ parameter sigma and two numerical parameters\n > delta1 and delta2. These four parameters are given in\n > Angstroms. This is followed by four data tables each separated by a\n > single empty line. The first two tables have two columns and list\n > the parameters uInfParallel and Gamma respectively. The last two\n > tables have three columns giving data on a quadratic array and list\n > the parameters Phi and uSemiParallel respectively. uInfParallel\n > and uSemiParallel are given in eV/Angstrom, Phi is given in eV and\n > Gamma is unitless.\n >\n > If a simulation produces many warnings about segment-chain\n > interactions falling outside the interpolation range, we recommend\n > generating a potential file with lower values of delta1 and delta2. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles does not support mixing.\n\nThese pair styles does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) shift, table, and tail options.\n\nThese pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential\nfiles. Thus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Volkov1)** Volkov and Zhigilei, J Phys Chem C, 114, 5513 (2010). \n \n**(Volkov2)** Volkov, Simov and Zhigilei, APS Meeting Abstracts,\nQ31.013 (2008). \n \n**(Volkov2)** Volkov, Simov and Zhigilei, APS Meeting Abstracts,\nQ31.013 (2008). \n ", - "restrictions": "These styles are part of the MESONT package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThese pair styles require all 3 [special_bonds lj ](https://docs.lammps.org/special_bonds.html)\nsettings to be non-zero for proper neighbor list construction.\n\nPair style *mesocnt/viscous* requires you to use the [comm_modifyvel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style mesocnt ](https://docs.lammps.org/bond_mesocnt.html),\n[angle_style mesocnt ](https://docs.lammps.org/angle_mesocnt.html)\n" -}, -{ - "command": [ - "fix_modify AtC material" - ], - "syntax": [ - "fix_modify material " - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "groupbig-ID", "type": 2, "choices": [] }, { - "arg": "material", - "type": 1, + "arg": "Tsrd", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "hgrid", "type": 2, "choices": [] }, { - "arg": "", + "arg": "seed", "type": 2, "choices": [] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* material = name of the AtC sub-command\n* elementset_name = name of the elementset\n* material_id = ID of the material \n", - "examples": "\n```lmps\nfix_modify AtC material gap_region 1\n```\n", - "html_filename": "atc_material.html", - "short_description": "Sets the material model in *elementset_name* to be of type *material_id* ", - "description": "Sets the material model in *elementset_name* to be of type *material_id* .\n", - "restrictions": "The element set must already be created and the material must be\nspecified in the material file given the the atc fix on construction\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "angle_style spica", - "angle_style spica/omp", - "angle_style spica/kk" - ], - "syntax": [ - "angle_style spica", - "angle_style spica/omp" - ], - "args": [ - [ - { - "arg": "angle_style", - "type": 1, - "choices": [] }, { - "arg": "spica", + "arg": "rescale", "type": 3, "choices": [ - "spica", - "spica/omp", - "spica/kk" + "lamda", + "collision", + "overlap", + "inside", + "exact", + "radius", + "bounce", + "search", + "cubic", + "shift", + "tstat", + "rescale" ] - } - ], - [ - { - "arg": "angle_style", - "type": 1, - "choices": [] }, { - "arg": "spica/omp", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style spica\nangle_coeff 1 300.0 107.0\n```\n", - "html_filename": "angle_spica.html", - "short_description": "The *spica* angle style is a combination of the harmonic angle potential,\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and\n\\(K\\) a prefactor, with the *repulsive* part of the non-bonded\n*lj/spica* pair style between the atoms 1 and 3", - "description": "The *spica* angle style is a combination of the harmonic angle potential,\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and\n\\(K\\) a prefactor, with the *repulsive* part of the non-bonded\n*lj/spica* pair style between the atoms 1 and 3. This angle potential is\nintended for coarse grained MD simulations with the SPICA (formerly called SDK) parameterization\nusing the [pair_style lj/spica ](https://docs.lammps.org/pair_spica.html). Relative to the\npair_style *lj/spica*, however, the energy is shifted by\n\\(\\epsilon\\), to avoid sudden jumps. Note that the usual 1/2 factor\nis included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\nThe required *lj/spica* parameters are extracted automatically from the\npair_style.\n\nStyle *sdk*, the original implementation of style *spica*, is available\nfor backward compatibility.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nCG-SPICA package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style harmonic ](https://docs.lammps.org/angle_harmonic.html), [pair_style lj/spica ](https://docs.lammps.org/pair_spica.html),\n[pair_style lj/spica/coul/long ](https://docs.lammps.org/pair_spica.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* srd = style name of this fix command\n* N = reset SRD particle velocities every this many timesteps\n* groupbig-ID = ID of group of large particles that SRDs interact with\n* Tsrd = temperature of SRD particles (temperature units)\n* hgrid = grid spacing for SRD grouping (distance units)\n* seed = random # seed (positive integer)\n\n* zero or more keyword/value pairs may be appended\n* keyword = lamda or collision or overlap or inside or exact or radius or bounce or search or cubic or shift or tstat or rescale \n *        lamda value = mean free path of SRD particles (distance units) \n *        collision value = noslip or slip = collision model \n *        overlap value = yes or no = whether big particles may overlap \n *        inside value = error or warn or ignore = how SRD particles which end up inside a big particle are treated \n *        exact value = yes or no \n *        radius value = rfactor = scale collision radius by this factor \n *        bounce value = Nbounce = max # of collisions an SRD particle can undergo in one timestep \n *        search value = sgrid = grid spacing for collision partner searching (distance units) \n *        cubic values = style tolerance \n         style = error or warn \n         tolerance = fractional difference allowed (0 <= tol <= 1) \n *        shift values = flag shiftseed \n         flag = yes or no or possible = SRD bin shifting for better statistics \n         yes = perform bin shifting each time SRD velocities are rescaled \n         no = no shifting \n         possible = shift depending on mean free path and bin size \n         shiftseed = random # seed (positive integer) \n *        tstat value = yes or no = thermostat SRD particles or not \n *        rescale value = yes or no or rotate or collide = rescaling of SRD velocities \n         yes = rescale during velocity rotation and collisions \n         no = no rescaling \n         rotate = rescale during velocity rotation, but not collisions \n         collide = rescale during collisions, but not velocity rotation \n", + "examples": "\n```lmps\nfix 1 srd srd 10 big 1.0 0.25 482984\nfix 1 srd srd 10 big 0.5 0.25 482984 collision slip search 0.5\n```\n", + "html_filename": "fix_srd.html", + "short_description": "Treat a group of particles as stochastic rotation dynamics (SRD)\nparticles that serve as a background solvent when interacting with big\n(colloidal) particles in groupbig-ID", + "description": "Treat a group of particles as stochastic rotation dynamics (SRD)\nparticles that serve as a background solvent when interacting with big\n(colloidal) particles in groupbig-ID. The SRD formalism is described\nin **Hecht**. The same methodology is also called\nmulti-particle collision dynamics (MPCD) in the literature.\n\nThe key idea behind using SRD particles as a cheap coarse-grained\nsolvent is that SRD particles do not interact with each other, but\nonly with the solute particles, which in LAMMPS can be spheroids,\nellipsoids, or line segments, or triangles, or rigid bodies containing\nmultiple spheroids or ellipsoids or line segments or triangles. The\ncollision and rotation properties of the model imbue the SRD particles\nwith fluid-like properties, including an effective viscosity. Thus\nsimulations with large solute particles can be run more quickly, to\nmeasure solute properties like diffusivity and viscosity in a\nbackground fluid. The usual LAMMPS fixes for such simulations, such\nas [fix deform ](https://docs.lammps.org/fix_deform.html), [fix viscosity](https://docs.lammps.org/fix_viscosity.html), and [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), can be\nused in conjunction with the SRD model.\n\nThese 3 papers give more details on how the SRD model is implemented\nin LAMMPS. **Petersen1** describes pure SRD fluid\nsystems. **Bolintineanu1** describes models\nwhere pure SRD fluids interact with boundary walls.\n**Bolintineanu2** describes mixture models where\nlarge colloidal particles are solvated by an SRD fluid. See the\n``examples/srd`` directory for sample input scripts.\n\nThis fix does two things:\n\n 1. It advects the SRD particles, performing collisions between SRD\n and big particles or walls every timestep, imparting force and torque\n to the big particles. Collisions also change the position and\n velocity of SRD particles.\n\n 2. It resets the velocity distribution of SRD particles via random\n rotations every N timesteps.\n\nSRD particles have a mass, temperature, characteristic timestep\n\\(dt_{SRD}\\), and mean free path between collisions\n(\\(\\lambda\\)). The fundamental equation relating these 4 quantities\nis\n\\[\n \\lambda = dt_{SRD} \\sqrt{\\frac{k_B T_{SRD}}{m}}\\]\nThe mass *m* of SRD particles is set by the [mass ](https://docs.lammps.org/mass.html) command\nelsewhere in the input script. The SRD timestep \\(dt_{SRD}\\) is N\ntimes the step *dt* defined by the [timestep ](https://docs.lammps.org/timestep.html) command.\nBig particles move in the normal way via a time integration [fix](https://docs.lammps.org/fix.html) with a short timestep dt. SRD particles advect with a large\ntimestep \\(dt_{SRD} \\ge dt\\).\n\nIf the *lamda* keyword is not specified, the SRD temperature\n\\(T_{SRD}\\) is used in the above formula to compute \\(\\lambda\\).\nIf the *lamda* keyword is specified, then the *Tsrd* setting is ignored\nand the above equation is used to compute the SRD temperature.\n\nThe characteristic length scale for the SRD fluid is set by *hgrid*\nwhich is used to bin SRD particles for purposes of resetting their\nvelocities. Normally hgrid is set to be 1/4 of the big particle\ndiameter or smaller, to adequately resolve fluid properties around the\nbig particles.\n\n\\(\\lambda\\) cannot be smaller than 0.6 \\* hgrid, else an error is\ngenerated (unless the *shift* keyword is used, see below). The\nvelocities of SRD particles are bounded by Vmax, which is set so that an\nSRD particle will not advect further than \\(D_{max} = 4 \\lambda\\) in\n\\(dt_{SRD}\\). This means that roughly speaking, \\(D_{max}\\)\nshould not be larger than a big particle diameter, else SRDs may pass\nthrough big particles without colliding. A warning is generated if this\nis the case.\n\nCollisions between SRD particles and big particles or walls are\nmodeled as a lightweight SRD point particle hitting a heavy big\nparticle of given diameter or a wall at a point on its surface and\nbouncing off with a new velocity. The collision changes the momentum\nof the SRD particle. It imparts a force and torque to the big\nparticle. It imparts a force to a wall. Static or moving SRD walls\nare setup via the [fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html) command. For the\nremainder of this doc page, a collision of an SRD particle with a wall\ncan be viewed as a collision with a big particle of infinite radius\nand mass.\n\nThe *collision* keyword sets the style of collisions. The *slip*\nstyle means that the tangential component of the SRD particle momentum\nis preserved. Thus a force is imparted to a big particle, but no\ntorque. The normal component of the new SRD velocity is sampled from\na Gaussian distribution at temperature *Tsrd* .\n\nFor the *noslip* style, both the normal and tangential components of\nthe new SRD velocity are sampled from a Gaussian distribution at\ntemperature *Tsrd* . Additionally, a new tangential direction for the\nSRD velocity is chosen randomly. This collision style imparts torque\nto a big particle. Thus a time integrator [fix ](https://docs.lammps.org/fix.html) that rotates\nthe big particles appropriately should be used.\n\n----------\n\nThe *overlap* keyword should be set to *yes* if two (or more) big\nparticles can ever overlap. This depends on the pair potential\ninteraction used for big-big interactions, or could be the case if\nmultiple big particles are held together as rigid bodies via the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command. If the *overlap* keyword is *no*\nand big particles do in fact overlap, then SRD/big collisions can\ngenerate an error if an SRD ends up inside two (or more) big particles\nat once. How this error is treated is determined by the *inside*\nkeyword. Running with *overlap* set to *no* allows for faster collision\nchecking, so it should only be set to *yes* if needed.\n\nThe *inside* keyword determines how a collision is treated if the\ncomputation determines that the timestep started with the SRD particle\nalready inside a big particle. If the setting is *error* then this\ngenerates an error message and LAMMPS stops. If the setting is *warn*\nthen this generates a warning message and the code continues. If the\nsetting is *ignore* then no message is generated. One of the output\nquantities logged by the fix (see below) tallies the number of such\nevents, so it can be monitored. Note that once an SRD particle is\ninside a big particle, it may remain there for several steps until it\ndrifts outside the big particle.\n\nThe *exact* keyword determines how accurately collisions are computed.\nA setting of *yes* computes the time and position of each collision as\nSRD and big particles move together. A setting of *no* estimates the\nposition of each collision based on the end-of-timestep positions of\nthe SRD and big particle. If *overlap* is set to yes, the setting of\nthe *exact* keyword is ignored since time-accurate collisions are\nneeded.\n\nThe *radius* keyword scales the effective size of big particles. If\nbig particles will overlap as they undergo dynamics, then this keyword\ncan be used to scale down their effective collision radius by an\namount *rfactor*, so that SRD particle will only collide with one big\nparticle at a time. For example, in a Lennard-Jones system at a\ntemperature of 1.0 (in reduced LJ units), the minimum separation\nbetween two big particles is as small as about 0.88 sigma. Thus an\n*rfactor* value of 0.85 should prevent dual collisions.\n\nThe *bounce* keyword can be used to limit the maximum number of\ncollisions an SRD particle undergoes in a single timestep as it\nbounces between nearby big particles. Note that if the limit is\nreached, the SRD can be left inside a big particle. A setting of 0 is\nthe same as no limit.\n\n----------\n\nThere are 2 kinds of bins created and maintained when running an SRD\nsimulation. The first are \"SRD bins\" which are used to bin SRD\nparticles and reset their velocities, as discussed above. The second\nare \"search bins\" which are used to identify SRD/big particle\ncollisions.\n\nThe *search* keyword can be used to choose a search bin size for\nidentifying SRD/big particle collisions. The default is to use the\n*hgrid* parameter for SRD bins as the search bin size. Choosing a\nsmaller or large value may be more efficient, depending on the\nproblem. But, in a statistical sense, it should not change the\nsimulation results.\n\nThe *cubic* keyword can be used to generate an error or warning when\nthe bin size chosen by LAMMPS creates SRD bins that are non-cubic or\ndifferent than the requested value of *hgrid* by a specified\n*tolerance* . Note that using non-cubic SRD bins can lead to\nundetermined behavior when rotating the velocities of SRD particles,\nhence LAMMPS tries to protect you from this problem.\n\nLAMMPS attempts to set the SRD bin size to exactly *hgrid* . However,\nthere must be an integer number of bins in each dimension of the\nsimulation box. Thus the actual bin size will depend on the size and\nshape of the overall simulation box. The actual bin size is printed\nas part of the SRD output when a simulation begins.\n\nIf the actual bin size in non-cubic by an amount exceeding the\ntolerance, an error or warning is printed, depending on the style of\nthe *cubic* keyword. Likewise, if the actual bin size differs from\nthe requested *hgrid* value by an amount exceeding the tolerance, then\nan error or warning is printed. The *tolerance* is a fractional\ndifference. E.g. a tolerance setting of 0.01 on the shape means that\nif the ratio of any 2 bin dimensions exceeds (1 +/- tolerance) then an\nerror or warning is generated. Similarly, if the ratio of any bin\ndimension with *hgrid* exceeds (1 +/- tolerance), then an error or\nwarning is generated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix srd command can be used with simulations where the size and/or\n > shape of the simulation box changes. This can be due to non-periodic\n > boundary conditions or the use of fixes such as the [fix deform ](https://docs.lammps.org/fix_deform.html) or [fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html) commands\n > to impose a shear on an SRD fluid or an interaction with an external\n > wall. If the box size changes then the size of SRD bins must be\n > recalculated every reneighboring. This is not necessary if only the\n > box shape changes. This re-binning is always done so as to fit an\n > integer number of bins in the current box dimension, whether it be a\n > fixed, shrink-wrapped, or periodic boundary, as set by the\n > [boundary ](https://docs.lammps.org/boundary.html) command. If the box size or shape changes,\n > then the size of the search bins must be recalculated every\n > reneighboring. Note that changing the SRD bin size may alter the\n > properties of the SRD fluid, such as its viscosity. \n > \n\nThe *shift* keyword determines whether the coordinates of SRD particles\nare randomly shifted when binned for purposes of rotating their\nvelocities. When no shifting is performed, SRD particles are binned and\nthe velocity distribution of the set of SRD particles in each bin is\nadjusted via a rotation operator. This is a statistically valid\noperation if SRD particles move sufficiently far between successive\nrotations. This is determined by their mean-free path \\(\\lambda\\).\nIf \\(\\lambda\\) is less than 0.6 of the SRD bin size, then shifting\nis required. A shift means that all of the SRD particles are shifted by\na vector whose coordinates are chosen randomly in the range [-1/2 bin\nsize, 1/2 bin size]. Note that all particles are shifted by the same\nvector. The specified random number *shiftseed* is used to generate\nthese vectors. This operation sufficiently randomizes which SRD\nparticles are in the same bin, even if \\(lambda\\) is small.\n\nIf the *shift* flag is set to *no*, then no shifting is performed, but\nbin data will be communicated if bins overlap processor boundaries. An\nerror will be generated if \\(\\lambda < 0.6\\) of the SRD bin size.\nIf the *shift* flag is set to *possible*, then shifting is performed\nonly if \\(\\lambda < 0.6\\) of the SRD bin size. A warning is\ngenerated to let you know this is occurring. If the *shift* flag is set\nto *yes* then shifting is performed regardless of the magnitude of\n\\(\\lambda\\). Note that the *shiftseed* is not used if the *shift*\nflag is set to *no*, but must still be specified.\n\nNote that shifting of SRD coordinates requires extra communication,\nhence it should not normally be enabled unless required.\n\nThe *tstat* keyword will thermostat the SRD particles to the specified\n*Tsrd* . This is done every N timesteps, during the velocity rotation\noperation, by rescaling the thermal velocity of particles in each SRD\nbin to the desired temperature. If there is a streaming velocity\nassociated with the system, e.g. due to use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command to perform a simulation undergoing\nshear, then that is also accounted for. The mean velocity of each bin\nof SRD particles is set to the position-dependent streaming velocity,\nbased on the coordinates of the center of the SRD bin. Note that\ncollisions of SRD particles with big particles or walls has a\nthermostatting effect on the colliding particles, so it may not be\nnecessary to thermostat the SRD particles on a bin by bin basis in\nthat case. Also note that for streaming simulations, if no\nthermostatting is performed (the default), then it may take a long\ntime for the SRD fluid to come to equilibrium with a velocity profile\nthat matches the simulation box deformation.\n\nThe *rescale* keyword enables rescaling of an SRD particle's velocity\nif it would travel more than 4 mean-free paths in an SRD timestep. If\nan SRD particle exceeds this velocity it is possible it will be lost\nwhen migrating to other processors or that collisions with big\nparticles will be missed, either of which will generate errors. Thus\nthe safest mode is to run with rescaling enabled. However rescaling\nremoves kinetic energy from the system (the particle's velocity is\nreduced). The latter will not typically be a problem if\nthermostatting is enabled via the *tstat* keyword or if SRD collisions\nwith big particles or walls effectively thermostat the system. If you\nwish to turn off rescaling (on is the default), e.g. for a pure SRD\nsystem with no thermostatting so that the temperature does not decline\nover time, the *rescale* keyword can be used. The *no* value turns\nrescaling off during collisions and the per-bin velocity rotation\noperation. The *collide* and *rotate* values turn it on for\none of the operations and off for the other.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix is normally used for simulations with a huge number of\n > SRD particles relative to the number of big particles, e.g. 100 to 1.\n > In this scenario, computations that involve only big particles\n > (neighbor list creation, communication, time integration) can slow\n > down dramatically due to the large number of background SRD particles. \n > \n\nThree other input script commands will largely overcome this effect,\nspeeding up an SRD simulation by a significant amount. These are the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html), [neigh_modify include ](https://docs.lammps.org/neigh_modify.html), and [comm_modify group ](https://docs.lammps.org/comm_modify.html)\ncommands. Each takes a group-ID as an argument, which in this case\nshould be the group-ID of the big solute particles.\n\nAdditionally, when a [pair_style ](https://docs.lammps.org/pair_style.html) for big/big particle\ninteractions is specified, the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nshould be used to turn off big/SRD interactions, e.g. by setting their\nepsilon or cutoff length to 0.0.\n\nThe \"delete_atoms overlap\" command may be useful in setting up an SRD\nsimulation to ensure there are no initial overlaps between big and SRD\nparticles.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix tabulates several SRD statistics which are stored in a vector\nof length 12, which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix\nare \"intensive\", meaning they do not scale with the size of the\nsimulation. Technically, the first 8 do scale with the size of the\nsimulation, but treating them as intensive means they are not scaled\nwhen printed as part of thermodynamic output.\n\nThese are the 12 quantities. All are values for the current timestep,\nexcept for quantity 5 and the last three, each of which are\ncumulative quantities since the beginning of the run.\n\n(1) # of SRD/big collision checks performed\n(2) # of SRDs which had a collision\n(3) # of SRD/big collisions (including multiple bounces)\n(4) # of SRD particles inside a big particle\n(5) # of SRD particles whose velocity was rescaled to be < Vmax\n(6) # of bins for collision searching\n(7) # of bins for SRD velocity rotation\n(8) # of bins in which SRD temperature was computed\n(9) SRD temperature\n(10) # of SRD particles which have undergone max # of bounces\n(11) max # of bounces any SRD particle has had in a single step\n(12) # of reneighborings due to SRD particles moving too far\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Hecht)** Hecht, Harting, Ihle, Herrmann, Phys Rev E, 72, 011408 (2005). \n \n**(Petersen1)** Petersen, Lechman, Plimpton, Grest, in' t Veld, Schunk, J\nChem Phys, 132, 174106 (2010). \n \n**(Bolintineanu1)**\nBolintineanu, Lechman, Plimpton, Grest, Phys Rev E, 86, 066703 (2012). \n \n**(Bolintineanu2)** Bolintineanu, Grest, Lechman, Pierce, Plimpton,\nSchunk, Comp Particle Mechanics, 1, 321-356 (2014). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the SRD package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[fix wall/srd ](https://docs.lammps.org/fix_wall_srd.html)\n" }, { "command": [ - "compute ave/sphere/atom", - "compute ave/sphere/atom/kk" + "fix viscous", + "fix viscous/kk" ], "syntax": [ - "compute ID group-ID ave/sphere/atom keyword values ..." + "fix ID group-ID viscous gamma keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -3015,13 +2663,18 @@ export const command_docs = [ "choices": [] }, { - "arg": "ave/sphere/atom", + "arg": "viscous", "type": 3, "choices": [ - "ave/sphere/atom", - "ave/sphere/atom/kk" + "viscous", + "viscous/kk" ] }, + { + "arg": "gamma", + "type": 2, + "choices": [] + }, { "arg": "keyword", "type": 2, @@ -3034,196 +2687,137 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ave/sphere/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff \n       cutoff value = distance cutoff \n", - "examples": "\n```lmps\ncompute 1 all ave/sphere/atom\n\ncompute 1 all ave/sphere/atom cutoff 5.0\ncomm_modify cutoff 5.0\n```\n", - "html_filename": "compute_ave_sphere_atom.html", - "short_description": "\nDefine a computation that calculates the local mass density and\ntemperature for each atom based on its neighbors inside a spherical\ncutoff", - "description": "\nDefine a computation that calculates the local mass density and\ntemperature for each atom based on its neighbors inside a spherical\ncutoff. If an atom has \\(M\\) neighbors, then its local mass density is\ncalculated as the sum of its mass and its \\(M\\) neighbor masses, divided\nby the volume of the cutoff sphere (or circle in 2d). The local\ntemperature of the atom is calculated as the temperature of the\ncollection of \\(M+1\\) atoms, after subtracting the center-of-mass velocity\nof the \\(M+1\\) atoms from each of the \\(M+1\\) atom's velocities. This\nis effectively the thermal velocity of the neighborhood of the central\natom, similar to [compute temp/com ](https://docs.lammps.org/compute_temp_com.html).\n\nThe optional keyword *cutoff* defines the distance cutoff used when\nsearching for neighbors. The default value is the cutoff specified by\nthe pair style. If no pair style is defined, then a cutoff must be\ndefined using this keyword. If the specified cutoff is larger than\nthat of the pair_style plus neighbor skin (or no pair style is\ndefined), the *comm_modify cutoff* option must also be set to match\nthat of the *cutoff* keyword.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral.\n > This is the default setting for the [special_bonds > ](https://docs.lammps.org/special_bonds.html) command, and means those pairwise interactions do\n > not appear in the neighbor list. Because this compute uses the\n > neighbor list, it also means those pairs will not be included in\n > the order parameter. This difficulty can be circumvented by\n > writing a dump file, and using the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the order parameter for snapshots in the dump file. The\n > rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html) command\n > that includes all pairs in the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with two columns: mass\ndensity in density [units ](https://docs.lammps.org/units.html) and temperature in temperature\n[units ](https://docs.lammps.org/units.html).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page for an overview of LAMMPS output options.\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", - "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* viscous = style name of this fix command\n* gamma = damping coefficient (force/velocity units)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale \n       scale values = type ratio \n       type = atom type (1-N) \n       ratio = factor to scale the damping coefficient by \n", + "examples": "\n```lmps\nfix 1 flow viscous 0.1\nfix 1 damp viscous 0.5 scale 3 2.5\n```\n", + "html_filename": "fix_viscous.html", + "short_description": "Add a viscous damping force to atoms in the group that is proportional\nto the velocity of the atom", + "description": "Add a viscous damping force to atoms in the group that is proportional\nto the velocity of the atom. The added force can be thought of as a\nfrictional interaction with implicit solvent, i.e. the no-slip Stokes\ndrag on a spherical particle. In granular simulations this can be\nuseful for draining the kinetic energy from the system in a controlled\nfashion. If used without additional thermostatting (to add kinetic\nenergy to the system), it has the effect of slowly (or rapidly)\nfreezing the system; hence it can also be used as a simple energy\nminimization technique.\n\nThe damping force \\(F_i\\) is given by \\(F_i = - \\gamma v_i\\).\nThe larger the coefficient, the faster the kinetic energy is reduced.\nIf the optional keyword *scale* is used, \\(\\gamma\\) can scaled up or\ndown by the specified factor for atoms of that type. It can be used\nmultiple times to adjust \\(\\gamma\\) for several atom types.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should specify gamma in force/velocity units. This is not\n > the same as mass/time units, at least for some of the LAMMPS\n > [units ](https://docs.lammps.org/units.html) options like \"real\" or \"metal\" that are not\n > self-consistent. \n > \n\nIn a Brownian dynamics context, \\(\\gamma = \\frac{k_B T}{D}\\), where\n\\(k_B =\\) Boltzmann's constant, \\(T\\) = temperature, and *D* =\nparticle diffusion coefficient. *D* can be written as \\(\\frac{k_B\nT}{3 \\pi \\eta d}\\), where \\(\\eta =\\) dynamic viscosity of the\nfrictional fluid and d = diameter of particle. This means \\(\\gamma\n= 3 \\pi \\eta d\\), and thus is proportional to the viscosity of the fluid\nand the particle diameter.\n\nIn the current implementation, rather than have the user specify a\nviscosity, \\(\\gamma\\) is specified directly in force/velocity units.\nIf needed, \\(\\gamma\\) can be adjusted for atoms of different sizes\n(i.e. \\(\\sigma\\)) by using the *scale* keyword.\n\nNote that Brownian dynamics models also typically include a randomized\nforce term to thermostat the system at a chosen temperature. The\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) command does this. It has the same\nviscous damping term as fix viscous and adds a random force to each\natom. The random force term is proportional to the square root of the\nchosen thermostatting temperature. Thus if you use fix langevin with a\ntarget \\(T = 0\\), its random force term is zero, and you are\nessentially performing the same operation as fix viscous. Also note\nthat the gamma of fix viscous is related to the damping parameter of\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), however the former is specified in\nunits of force/velocity and the latter in units of time, so that it can\nmore easily be used as a thermostat.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying forces. Default is the outermost level.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n", + "restrictions": "none\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html),\n[fix damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html)\n" }, { "command": [ - "compute smd/rho" + "fix_modify AtC mesh create" ], "syntax": [ - "compute ID group-ID smd/rho" + "fix_modify mesh create " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "smd/rho", + "arg": "mesh", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/rho = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/rho\n```\n", - "html_filename": "compute_smd_rho.html", - "short_description": "Define a computation that calculates the per-particle mass density", - "description": "Define a computation that calculates the per-particle mass density.\nThe mass density is the mass of a particle which is constant during\nthe course of a simulation, divided by its volume, which can change\ndue to mechanical deformation.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be in [units ](https://docs.lammps.org/units.html) of mass over volume.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute smd/vol ](https://docs.lammps.org/compute_smd_vol.html)\n" -}, -{ - "command": [ - "info" - ], - "syntax": [ - "info args" - ], - "args": [ - [ + }, { - "arg": "info", + "arg": "create", "type": 1, "choices": [] }, { - "arg": "args", + "arg": "", "type": 2, "choices": [] - } - ] - ], - "parameters": "* args = one or more of the following keywords: out, *all*, *system*, *memory*, *communication*, *computes*, *dumps*, *fixes*, *groups*, *regions*, *variables*, *coeffs*, styles, *time*, *accelerator*, fft or configuration\n* out values = *screen*, *log*, append filename, overwrite filename\n* styles values = *all*, *angle*, *atom*, *bond*, *compute*, *command*, *dump*, *dihedral*, *fix*, *improper*, *integrate*, *kspace*, *minimize*, *pair*, region \n", - "examples": "\n```lmps\ninfo system\ninfo groups computes variables\ninfo all out log\ninfo all out append info.txt\ninfo styles all\ninfo styles atom styles command\n```\n", - "html_filename": "info.html", - "short_description": "Print out information about the current internal state of the running\nLAMMPS process", - "description": "Print out information about the current internal state of the running\nLAMMPS process. This can be helpful when debugging or validating complex\ninput scripts. Several output categories are available and one or more\noutput categories may be requested. All category keywords take no\narguments, only *out* and *styles* take arguments as shown below. The\nkeywords are cumulative, may be abbreviated, and unknown keywords are\nignored.\n\nThe *out* flag controls where the output is sent. It can only be sent\nto one target. By default this is the screen, if it is active. The\n*log* argument selects the log file instead. With the *append* and\n*overwrite* option, followed by a filename, the output is written\nto that file, which is either appended to or overwritten, respectively.\n\nThe *all* flag activates printing all categories listed below.\n\nThe *configuration* category prints some information about the\nLAMMPS version as well as architecture and OS it is run on.\n\nThe *memory* category prints some information about the current\nmemory allocation of MPI rank 0 (this the amount of dynamically\nallocated memory reported by LAMMPS classes). Where supported,\nalso some OS specific information about the size of the reserved\nmemory pool size (this is where malloc() and the new operator\nrequest memory from) and the maximum resident set size is reported\n(this is the maximum amount of physical memory occupied so far).\n\nThe *system* category prints a general system overview listing. This\nincludes the unit style, atom style, number of atoms, bonds, angles,\ndihedrals, and impropers and the number of the respective types, box\ndimensions and properties, force computing styles and more.\n\nThe *communication* category prints a variety of information about\ncommunication and parallelization: the MPI library version level,\nthe number of MPI ranks and OpenMP threads, the communication style\nand layout, the processor grid dimensions, ghost atom communication\nmode, cutoff, and related settings.\n\nThe *computes* category prints a list of all currently defined\ncomputes, their IDs and styles and groups they operate on.\n\nThe *dumps* category prints a list of all currently active dumps,\ntheir IDs, styles, filenames, groups, and dump frequencies.\n\nThe *fixes* category prints a list of all currently defined fixes,\ntheir IDs and styles and groups they operate on.\n\nThe *groups* category prints a list of all currently defined groups.\n\nThe *regions* category prints a list of all currently defined regions,\ntheir IDs and styles and whether \"inside\" or \"outside\" atoms are\nselected.\n\nThe *variables* category prints a list of all currently defined\nvariables, their names, styles, definition and last computed value, if\navailable.\n\nThe *coeffs* category prints a list for each defined force style\n(pair, bond, angle, dihedral, improper) indicating which of the\ncorresponding coefficients have been set. This can be very helpful\nto debug error messages like \"All pair coeffs are not set\".\n\nThe *accelerator* category prints out information about compile time\nsettings of included accelerator support for the GPU, KOKKOS, INTEL,\nand OPENMP packages.\n\nThe *fft* category prints out information about the included 3d-FFT\nsupport. This lists the 3d-FFT engine, FFT precision, FFT library\nused by the FFT engine. If the KOKKOS package is included, the settings\nused for the KOKKOS package are displayed as well.\n\nThe *styles* category prints the list of styles available in the current\nLAMMPS binary. The *styles* keyword without option is the same as using\nthe \"all\" option. One of the following options may be used to control\nwhich category of styles is printed out. To select multiple categories,\nthe styles keyword needs to be used multiple times with the desired\ncategories:\n\n* all\n* angle\n* atom\n* bond\n* compute\n* command\n* dump\n* dihedral\n* fix\n* improper\n* integrate\n* kspace\n* minimize\n* pair\n* region\n\nThe *time* category prints the accumulated CPU and wall time for the\nprocess that writes output (usually MPI rank 0).\n", - "restrictions": "none\n", - "related": "[print ](https://docs.lammps.org/print.html)\n" -}, -{ - "command": [ - "compute ke/rigid" - ], - "syntax": [ - "compute ID group-ID ke/rigid fix-ID" - ], - "args": [ - [ + }, { - "arg": "compute", - "type": 1, + "arg": "", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "ke/rigid", - "type": 1, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] }, { - "arg": "fix-ID", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] + }, + { + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke = style name of this compute command\n* fix-ID = ID of rigid body fix \n", - "examples": "\n```lmps\ncompute 1 all ke/rigid myRigid\n```\n", - "html_filename": "compute_ke_rigid.html", - "short_description": "Define a computation that calculates the translational kinetic energy\nof a collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants", - "description": "Define a computation that calculates the translational kinetic energy\nof a collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants.\n\nThe kinetic energy of each rigid body is computed as\n\\(\\frac12 M V_\\text{cm}^2\\),\nwhere \\(M\\) is the total mass of the rigid body, and \\(V_\\text{cm}\\)\nis its center-of-mass velocity.\n\nThe *fix-ID* should be the ID of one of the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommands which defines the rigid bodies. The group specified in the\ncompute command is ignored. The kinetic energy of all the rigid\nbodies defined by the fix rigid command in included in the\ncalculation.\n\n #### Output info\n\nThis compute calculates a global scalar (the summed KE of all the\nrigid bodies). This value can be used by any command that uses a\nglobal scalar value from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute erotate/rigid ](https://docs.lammps.org/compute_erotate_rigid.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create = name of the AtC sub-command\n* nx ny nz = number of elements in x-, y-, and z-direction\n* region-ID = ID of region that is to be meshed\n* f or p = periodicity flags for x-, y-, and z-direction \n", + "examples": "\n```lmps\nfix_modify AtC mesh create 10 1 1 feRegion p p p\n```\n", + "html_filename": "atc_mesh_create.html", + "short_description": "Creates a uniform mesh in a rectangular region", + "description": "Creates a uniform mesh in a rectangular region.\n", + "restrictions": "Creates only uniform rectangular grids in a rectangular region\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh quadrature ](https://docs.lammps.org/atc_mesh_quadrature.html)\n" }, { "command": [ - "improper_style sqdistharm" + "pair_style cosine/squared" ], "syntax": [ - "improper_style sqdistharm" + "pair_style cosine/squared cutoff" ], "args": [ [ { - "arg": "improper_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "sqdistharm", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nimproper_style sqdistharm\nimproper_coeff 1 50.0 0.1\n```\n", - "html_filename": "improper_sqdistharm.html", - "short_description": "The *sqdistharm* improper style uses the potential\n\\[\n E = K (d^2 - {d_0}^2)^2\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms", - "description": "The *sqdistharm* improper style uses the potential\n\\[\n E = K (d^2 - {d_0}^2)^2\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the L-atom is assumed to be the\ncentral atom. Note that this is different from the convention used\nin the improper_style distance.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\({d_0}^2\\) (distance\\^2)\n\nNote that \\({d_0}^2\\) (in units distance\\^2) has be provided and not \\(d_0\\).\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" -}, -{ - "command": [ - "angle_style cosine", - "angle_style cosine/omp", - "angle_style cosine/kk" - ], - "syntax": [ - "angle_style cosine" - ], - "args": [ - [ - { - "arg": "angle_style", + "arg": "cosine/squared", "type": 1, "choices": [] }, { - "arg": "cosine", - "type": 3, - "choices": [ - "cosine", - "cosine/omp", - "cosine/kk" - ] + "arg": "cutoff", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine\nangle_coeff * 75.0\n```\n", - "html_filename": "angle_cosine.html", - "short_description": "The *cosine* angle style uses the potential\n\\[\n E = K [1 + \\cos(\\theta)]\\]\nwhere \\(K\\) is defined for each angle type", - "description": "The *cosine* angle style uses the potential\n\\[\n E = K [1 + \\cos(\\theta)]\\]\nwhere \\(K\\) is defined for each angle type.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* cutoff = global cutoff for cosine-squared interactions (distance units) \n *    pair_coeff i j eps sigma \n *    pair_coeff i j eps sigma cutoff \n *    pair_coeff i j eps sigma wca \n *    pair_coeff i j eps sigma cutoff wca \n* i,j = a particle type\n* eps = interaction strength, i.e. the depth of the potential minimum (energy units)\n* sigma = distance of the potential minimum from 0\n* cutoff = the cutoff distance for this pair type, if different from global (distance units)\n* wca = if specified a Weeks-Chandler-Andersen potential (with eps strength and minimum at sigma) is added, otherwise not \n", + "examples": "\n```lmps\npair_style cosine/squared 3.0\npair_coeff * * 1.0 1.3\npair_coeff 1 3 1.0 1.3 2.0\npair_coeff 1 3 1.0 1.3 wca\npair_coeff 1 3 1.0 1.3 2.0 wca\n```\n", + "html_filename": "pair_cosine_squared.html", + "short_description": "Style *cosine/squared* computes a potential of the form\n\\[\\begin{align*} \n E =\n \\begin{cases}\n -\\epsilon& \\quad r < \\sigma \\\\\n -\\epsilon\\cos\\left(\\frac{\\pi\\left(r - \\sigma\\right)}{2\\left(r_c - \\sigma\\right)}\\right)^2&\\quad \\sigma \\leq r < r_c \\\\\n 0& \\quad r \\geq r_c\n \\end{cases} \\end{align*} \\]\nbetween two point particles, where (\\(\\sigma, -\\epsilon\\)) is the\nlocation of the (rightmost) minimum of the potential, as explained in\nthe syntax section above", + "description": "Style *cosine/squared* computes a potential of the form\n\\[\\begin{align*} \n E =\n \\begin{cases}\n -\\epsilon& \\quad r < \\sigma \\\\\n -\\epsilon\\cos\\left(\\frac{\\pi\\left(r - \\sigma\\right)}{2\\left(r_c - \\sigma\\right)}\\right)^2&\\quad \\sigma \\leq r < r_c \\\\\n 0& \\quad r \\geq r_c\n \\end{cases} \\end{align*} \\]\nbetween two point particles, where (\\(\\sigma, -\\epsilon\\)) is the\nlocation of the (rightmost) minimum of the potential, as explained in\nthe syntax section above.\n\nThis potential was first used in **CKD** for a coarse-grained lipid\nmembrane model. It is generally very useful as a non-specific\ninteraction potential because it is fully adjustable in depth and width\nwhile joining the minimum at (sigma, -epsilon) and zero at (cutoff, 0)\nsmoothly, requiring no shifting and causing no related artifacts, tail\nenergy calculations etc. This evidently requires *cutoff* to be larger\nthan *sigma* .\n\nIf the *wca* option is used then a Weeks-Chandler-Andersen potential\n**WCA** is added to the above specified cosine-squared potential,\nspecifically the following:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n 2\\left(\\frac{\\sigma}{r}\\right)^6 + 1\\right]\n , \\quad r < \\sigma\n\nIn this case, and this case only, the \\(\\sigma\\) parameter can be equal to\n*cutoff* (\\(\\sigma =\\) cutoff) which will result in ONLY the WCA potential\nbeing used (and print a warning), so the minimum will be attained at\n(sigma, 0). This is a convenience feature that enables a purely\nrepulsive potential to be used without a need to define an additional\npair style and use the hybrid styles.\n\nThe energy and force of this pair style for parameters epsilon = 1.0,\nsigma = 1.0, cutoff = 2.5, with and without the WCA potential, are shown\nin the graphs below:\n\n ![Image](JPG/pair_cosine_squared_graphs.jpg) \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nMixing is not supported for this style.\n\nThe *shift*, *table* and *tail* options are not relevant for this style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(CKD)** \"Cooke, Kremer and Deserno, Phys. Rev. E, 72, 011506 (2005)\" \n \n**(WCA)** \"Weeks, Chandler and Andersen, J. Chem. Phys., 54, 5237 (1971)\" \n ", + "restrictions": "The *cosine/squared* style is part of the EXTRA-PAIR package. It is only\nenabled if LAMMPS is build with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n" }, { "command": [ - "fix pair" + "fix indent" ], "syntax": [ - "fix ID group-ID pair N pstyle name flag ..." + "fix ID group-ID indent K gstyle args keyword value ..." ], "args": [ [ @@ -3243,51 +2837,64 @@ export const command_docs = [ "choices": [] }, { - "arg": "pair", + "arg": "indent", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "K", "type": 2, "choices": [] }, { - "arg": "pstyle", - "type": 2, - "choices": [] + "arg": "plane", + "type": 3, + "choices": [ + "sphere", + "cylinder", + "cone", + "plane" + ] }, { - "arg": "name", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "flag", + "arg": "units", + "type": 3, + "choices": [ + "side", + "units" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* pair = style name of this fix command\n* N = invoke this fix once every N timesteps\n* pstyle = name of pair style to extract info from (e.g. eam)\n* one or more name/flag pairs can be listed\n* name = name of quantity the pair style allows extraction of\n* flag = 1 if pair style needs to be triggered to produce data for name, 0 if not \n", - "examples": "\n```lmps\nfix request all pair 100 eam rho 0\nfix request all pair 100 amoeba uind 0 uinp 0\n```\n", - "html_filename": "fix_pair.html", - "short_description": "\nExtract per-atom quantities from a pair style and store them in this\nfix so they can be accessed by other LAMMPS commands, e.g", - "description": "\nExtract per-atom quantities from a pair style and store them in this\nfix so they can be accessed by other LAMMPS commands, e.g. by a\n[dump ](https://docs.lammps.org/dump.html) command or by another [fix ](https://docs.lammps.org/fix.html),\n[compute ](https://docs.lammps.org/compute.html), or [variable ](https://docs.lammps.org/variable.html) command.\n\nThese are example use cases:\n\n* extract per-atom density from [pair_style eam ](https://docs.lammps.org/pair_eam.html) to a dump file\n* extract induced dipoles from [pair_style amoeba ](https://docs.lammps.org/pair_amoeba.html) to a dump file\n* extract accuracy metrics from a machine-learned potential to trigger output when\n a condition is met (see the [dump_modify skip ](https://docs.lammps.org/dump_modify.html) command)\n\nThe *N* argument determines how often the fix is invoked.\n\nThe *pstyle* argument is the name of the pair style. It can be a\nsub-style used in a [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) command. If\nthere are multiple sub-styles using the same pair style, then *pstyle*\nshould be specified as \"style:N\", where *N* is the number of the\ninstance of the pair style you wish monitor (e.g., the first or second).\nFor example, *pstyle* could be specified as \"pace/extrapolation\" or\n\"amoeba\" or \"eam:1\" or \"eam:2\".\n\nOne or more *name/flag* pairs of arguments follow. Each *name* is a\nper-atom quantity which the pair style must recognize as an extraction\nrequest. See the doc pages for individual [pair_styles](https://docs.lammps.org/pair_style.html) to see what fix pair requests (if any) they support.\n\nThe *flag* setting determines whether this fix will also trigger the\npair style to compute the named quantity so it can be extracted. If the\nquantity is always computed by the pair style, no trigger is needed;\nspecify *flag* = 0. If the quantity is not always computed\n(e.g. because it is expensive to calculate), then specify *flag* = 1.\nThis will trigger the quantity to be calculated only on timesteps it is\nneeded. Again, see the doc pages for individual [pair_styles](https://docs.lammps.org/pair_style.html) to determine which fix pair requests (if any) need to be\ntriggered with a *flag* = 1 setting.\n\nThe per-atom data extracted from the pair style is stored by this fix\nas either a per-atom vector or array. If there is only one *name*\nargument specified and the pair style computes a single value for each\natom, then this fix stores it as a per-atom vector. Otherwise a\nper-atom array is created, with its data in the order of the *name*\narguments.\n\nFor example, [pair_style amoeba ](https://docs.lammps.org/pair_amoeba.html) allows extraction of\ntwo named quantities: \"uind\" and \"uinp\", both of which are 3-vectors for\neach atom, i.e. dipole moments. In the example below a 6-column per-atom\narray will be created. Columns 1-3 will store the \"uind\" values;\ncolumns 4-6 will store the \"uinp\" values.\n\n```lmps\npair_style amoeba\nfix ex all pair 10 amoeba uind 0 uinp 0\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nAs explained above, this fix produces a per-atom vector or array which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). If\nan array is produced, the number of columns is the sum of the number\nof per-atom quantities produced by each *name* argument requested from\nthe pair style.\n", - "restrictions": "none\n", - "related": "[compute pair ](https://docs.lammps.org/compute_pair.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* indent = style name of this fix command\n* K = force constant for indenter surface (force/distance\\^2 units)\n* gstyle = sphere or cylinder or cone or plane \n *        sphere args = x y z R \n         x, y, z = position of center of indenter (distance units) \n         R = sphere radius of indenter (distance units) \n         any of x, y, z, R can be a variable (see below) \n *        cylinder args = dim c1 c2 R \n         dim = x or y or z = axis of cylinder \n         c1, c2 = coords of cylinder axis in other 2 dimensions (distance units) \n         R = cylinder radius of indenter (distance units) \n         any of c1,c2,R can be a variable (see below) \n *        cone args = dim c1 c2 radlo radhi lo hi \n         dim = x or y or z = axis of cone \n         c1, c2 = coords of cone axis in other 2 dimensions (distance units) \n         radlo,radhi = cone radii at lo and hi end (distance units) \n         lo,hi = bounds of cone in dim (distance units) \n         any of c1, c2, radlo, radhi, lo, hi can be a variable (see below) \n *        plane args = dim pos side \n         dim = x or y or z = plane perpendicular to this dimension \n         pos = position of plane in dimension x, y, or z (distance units) \n         pos can be a variable (see below) \n         side = lo or hi \n* zero or more keyword/value pairs may be appended\n* keyword = side or units \n *        side value = in or out \n         in = the indenter acts on particles inside the sphere or cylinder or cone \n         out = the indenter acts on particles outside the sphere or cylinder or cone \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", + "examples": "\n```lmps\nfix 1 all indent 10.0 sphere 0.0 0.0 15.0 3.0\nfix 1 all indent 10.0 sphere v_x v_y 0.0 v_radius side in\nfix 2 flow indent 10.0 cylinder z 0.0 0.0 10.0 units box\n```\n", + "html_filename": "fix_indent.html", + "short_description": "Insert an indenter within a simulation box", + "description": "Insert an indenter within a simulation box. The indenter repels all\natoms in the group that touch it, so it can be used to push into a\nmaterial or as an obstacle in a flow. Alternatively, it can be used as a\nconstraining wall around a simulation; see the discussion of the\n*side* keyword below.\n\nThe *gstyle* geometry of the indenter can either be a sphere, a\ncylinder, a cone, or a plane.\n\nA spherical indenter exerts a force of magnitude\n\\[\n F(r) = - K \\left( r - R \\right)^2\\]\non each atom where *K* is the specified force constant, *r* is the\ndistance from the atom to the center of the indenter, and *R* is the\nradius of the indenter. The force is repulsive and F(r) = 0 for *r* >\n*R* .\n\nA cylindrical indenter exerts the same force, except that *r* is the\ndistance from the atom to the center axis of the cylinder. The\ncylinder extends infinitely along its axis.\n\nA conical indenter is similar to a cylindrical indenter except that it\nhas a finite length (between *lo* and *hi*), and that two different\nradii (one at each end, *radlo* and *radhi*) can be defined.\n\nSpherical, cylindrical, and conical indenters account for periodic\nboundaries in two ways. First, the center point of a spherical\nindenter (x,y,z) or axis of a cylindrical/conical indenter (c1,c2) is\nremapped back into the simulation box, if the box is periodic in a\nparticular dimension. This occurs every timestep if the indenter\ngeometry is specified with a variable (see below), e.g. it is moving\nover time. Second, the calculation of distance to the indenter center\nor axis accounts for periodic boundaries. Both of these mean that an\nindenter can effectively move through and straddle one or more\nperiodic boundaries.\n\nA planar indenter is really an axis-aligned infinite-extent wall\nexerting the same force on atoms in the system, where *R* is the\nposition of the plane and *r-R* is the distance from the plane. If\nthe *side* parameter of the plane is specified as *lo* then it will\nindent from the lo end of the simulation box, meaning that atoms with\na coordinate less than the plane's current position will be pushed\ntowards the hi end of the box and atoms with a coordinate higher than\nthe plane's current position will feel no force. Vice versa if *side*\nis specified as *hi* .\n\nAny of the 4 quantities defining a spherical indenter's geometry can\nbe specified as an equal-style [variable ](https://docs.lammps.org/variable.html), namely *x*,\n*y*, *z*, or *R* . For a cylindrical indenter, any of the 3\nquantities *c1*, *c2*, or *R*, can be a variable. For a conical\nindenter, any of the 6 quantities *c1*, *c2*, *radlo*, *radhi*, *lo*,\nor *hi* can be a variable. For a planar indenter, the single value\n*pos* can be a variable.\n\nIf any of these values is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to define the\nindenter geometry.\n\nNote that equal-style variables can specify formulas with various\nmathematical functions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand keywords for the simulation box parameters and timestep and\nelapsed time. Thus it is easy to specify indenter properties that\nchange as a function of time or span consecutive runs in a continuous\nfashion. For the latter, see the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command and the *elaplong* keyword of\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, if a spherical indenter's x-position is specified as v_x,\nthen this variable definition will keep it's center at a relative\nposition in the simulation box, 1/4 of the way from the left edge to\nthe right edge, even if the box size changes:\n\n```lmps\nvariable x equal \"xlo + 0.25*lx\"\n```\nSimilarly, either of these variable definitions will move the indenter\nfrom an initial position at 2.5 at a constant velocity of 5:\n\n```lmps\nvariable x equal \"2.5 + 5*elaplong*dt\"\nvariable x equal vdisplace(2.5,5)\n```\nIf a spherical indenter's radius is specified as v_r, then these\nvariable definitions will grow the size of the indenter at a specified\nrate.\n\n```lmps\nvariable r0 equal 0.0\nvariable rate equal 1.0\nvariable r equal \"v_r0 + step*dt*v_rate\"\n```\nIf the *side* keyword is specified as *out*, which is the default,\nthen particles outside the indenter are pushed away from its outer\nsurface, as described above. This only applies to spherical,\ncylindrical, and conical indenters. If the *side* keyword is\nspecified as *in*, the action of the indenter is reversed. Particles\ninside the indenter are pushed away from its inner surface. In other\nwords, the indenter is now a containing wall that traps the particles\ninside it. If the radius shrinks over time, it will squeeze the\nparticles.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the indenter geometry. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command,\ne.g. Angstroms for units = real or metal. A *lattice* value means the\ndistance units are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\nThe (x,y,z) coords of the indenter position are scaled by the x,y,z\nlattice spacings respectively. The radius of a spherical or\ncylindrical indenter is scaled by the x lattice spacing.\n\nNote that the units keyword only affects indenter geometry parameters\nspecified directly with numbers, not those specified as variables. In\nthe latter case, you should use the *xlat*, *ylat*, *zlat* keywords of\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command if you want to include\nlattice spacings in a variable formula.\n\nThe force constant *K* is not affected by the *units* keyword. It is\nalways in force/distance\\^2 units where force and distance are defined\nby the [units ](https://docs.lammps.org/units.html) command. If you wish K to be scaled by\nthe lattice spacing, you can define K with a variable whose formula\ncontains *xlat*, *ylat*, *zlat* keywords of the [thermo_style](https://docs.lammps.org/thermo_style.html) command, e.g.\n\n```lmps\nvariable k equal 100.0/xlat/xlat\nfix 1 all indent $k sphere ...\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and the\nindenter to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). The energy of\neach particle interacting with the indenter is K/3 (r - R)\\^3.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar energy and a global 3-vector of\nforces (on the indenter), which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar and vector values\ncalculated by this fix are \"extensive\".\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. Note that if you\ndefine the indenter geometry with a variable using a time-dependent\nformula, LAMMPS uses the iteration count in the minimizer as the\ntimestep. But it is almost certainly a bad idea to have the indenter\nchange its position or size during a minimization. LAMMPS does not\ncheck if you have done this.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/indenter interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you must enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", + "restrictions": " none\n", + "related": "none\n" }, { "command": [ - "compute temp/eff" + "fix bocs" ], "syntax": [ - "compute ID group-ID temp/eff" + "fix ID group-ID bocs keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -3302,26 +2909,44 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/eff", + "arg": "bocs", "type": 1, "choices": [] + }, + { + "arg": "ploop", + "type": 3, + "choices": [ + "temp", + "cgiso", + "tchain", + "pchain", + "mtk", + "tloop", + "ploop" + ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/eff = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all temp/eff\ncompute myTemp mobile temp/eff\n```\n", - "html_filename": "compute_temp_eff.html", - "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel", - "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel. A compute of this style can be used by commands that compute a\ntemperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix npt/eff ](https://docs.lammps.org/fix_nh_eff.html)).\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\) for nuclei and sum of\n\\(\\frac12 (m v^2 + \\frac34 m s^2\\)) for electrons, where \\(s\\)\nincludes the radial electron velocity contributions), dim = 2 or 3 is the\ndimensionality of the simulation, \\(N\\) is the number of atoms (only total\nnumber of nuclei in the eFF (see the [pair_eff ](https://docs.lammps.org/pair_style.html)\ncommand) in the group, \\(k_B\\) is the Boltzmann constant, and \\(T\\) is\nthe absolute temperature. This expression is summed over all nuclear and\nelectronic degrees of freedom, essentially by setting the kinetic contribution\nto the heat capacity to \\(\\frac32 k\\) (where only nuclei contribute). This\nsubtlety is valid for temperatures well below the Fermi temperature, which for\ndensities two to five times the density of liquid hydrogen ranges from\n86,000 to 170,000 K.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For eFF models, in order to override the default temperature\n > reported by LAMMPS in the thermodynamic quantities reported via the\n > [thermo ](https://docs.lammps.org/thermo.html) command, the user should apply a\n > [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command, as shown in the following\n > example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nA six-component kinetic energy tensor is also calculated by this compute\nfor use in the computation of a pressure tensor. The formula for the\ncomponents of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, etc.\nFor the eFF, again, the radial electronic velocities are also considered.\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThe scalar value calculated by this compute is \"intensive\", meaning it\nis independent of the number of atoms in the simulation. The vector\nvalues are \"extensive\", meaning they scale with the number of atoms in\nthe simulation.\n", - "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bocs = style name of this fix command\n* two or more keyword/value pairs may be appended\n* keyword = temp or cgiso or tchain or pchain or mtk or tloop or ploop \n *      temp values = Tstart Tstop Tdamp \n *      cgiso values = Pstart Pstop Pdamp basis_set args \n       basis_set = analytic or linear_spline or cubic_spline \n       analytic args = V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N \n       linear_spline args = input_filename \n       cubic_spline args = input_filename \n *      tchain value = N = length of thermostat chain (1 = single thermostat) \n *      pchain value = N = length of thermostat on barostat (0 = no thermostat) \n *      mtk value = yes or no = add MTK adjustment term or not \n *      tloop value = M = number of sub-cycles to perform on thermostat \n *      ploop value = M = number of sub-cycles to perform on barostat \n", + "examples": "\n```lmps\nfix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20\nfix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 cubic_spline input_Fv.dat\nthermo_modify press 1_press\n```\n", + "html_filename": "fix_bocs.html", + "short_description": "These commands incorporate a pressure correction as described by\nDunn and Noid **bocs-Dunn1** to the standard MTK\nbarostat by Martyna et al", + "description": "These commands incorporate a pressure correction as described by\nDunn and Noid **bocs-Dunn1** to the standard MTK\nbarostat by Martyna et al. **bocs-Martyna**.\nThe first half of the command mimics a standard [fix npt ](https://docs.lammps.org/fix_nh.html)\ncommand:\n\n```lmps\nfix 1 all bocs temp Tstart Tstop Tcoupl cgiso Pstart Pstop Pdamp\n```\nThe two differences are replacing *npt* with *bocs*, and replacing\n*iso* /\\ *aniso* /\\ etc. with *cgiso* .\nThe rest of the command details what form you would like to use for\nthe pressure correction equation. The choices are: *analytic*, *linear_spline*,\nor *cubic_spline*.\n\nWith either spline method, the only argument that needs to follow it\nis the name of a file that contains the desired pressure correction\nas a function of volume. The file must be formatted so each line has:\n\n```\nVolume_i, PressureCorrection_i\n```\nNote both the COMMA and the SPACE separating the volume's\nvalue and its corresponding pressure correction. The volumes in the file\nmust be uniformly spaced. Both the volumes and the pressure corrections\nshould be provided in the proper units (e.g., if you are using *units real*,\nthe volumes should all be in \\(\\mathrm{\\mathring{A}}^3\\) and the pressure\ncorrections should all be in atm). Furthermore, the table should start/end at a\nvolume considerably smaller/larger than you expect your system to sample\nduring the simulation. If the system ever reaches a volume outside of the\nrange provided, the simulation will stop.\n\nWith the *analytic* option, the arguments are as follows:\n\n```\n... analytic V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N\n```\nNote that *V_avg* and *Coeff_i* should all be in the proper units (e.g., if you\nare using *units real*, *V_avg* should be in \\(\\mathrm{\\mathring{A}^3}\\)\nand the coefficients should all be in\n\\(\\mathrm{atm}\\cdot\\mathrm{\\mathring{A}^3}\\)\\ ).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the fix continues in an uninterrupted\nfashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(bocs-Dunn1)** Dunn and Noid, J Chem Phys, 143, 243148 (2015). \n \n**(bocs-Martyna)** Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994). \n ", + "restrictions": "As this is computing a (modified) pressure, group-ID should be *all* .\n\nThe pressure correction has only been tested for use with an isotropic\npressure coupling in 3 dimensions.\n\nBy default, LAMMPS will still report the normal value for the pressure\nif the pressure is printed via a *thermo* command, or if the pressures\nare written to a file every so often. In order to have LAMMPS report the\nmodified pressure, you must include the *thermo_modify* command given in\nthe examples. For the last argument in the command, you should put\nXXXX_press, where XXXX is the ID given to the fix bocs command (in the\nexample, the ID of the fix bocs command is 1).\n\nThis fix is part of the BOCS package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n #### Further information\n\nFor more details about the pressure correction and the entire BOCS software\npackage, visit the [BOCS package on GitHub ](https://github.com/noid-group/BOCS) and read the release\npaper by Dunn et al. **bocs-Dunn2** .\n\n----------\n\n.. _bocs-Dunn1:\n\n**(Dunn1)** Dunn and Noid, J Chem Phys, 143, 243148 (2015).\n\n.. _bocs-Martyna:\n\n**(Martyna)** Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994).\n\n.. _bocs-Dunn2:\n\n**(Dunn2)** Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018).\n\n**(bocs-Dunn2)** Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018). \n ", + "related": "none" }, { "command": [ - "fix wall/srd" + "fix atom/swap" ], "syntax": [ - "fix ID group-ID wall/srd face arg ... keyword value ..." + "fix ID group-ID atom/swap N X seed T keyword values ..." ], "args": [ [ @@ -3341,86 +2966,105 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/srd", + "arg": "atom/swap", "type": 1, "choices": [] }, { - "arg": "zhi", - "type": 3, - "choices": [ - "xlo", - "xhi", - "ylo", - "yhi", - "zlo", - "zhi" - ] + "arg": "N", + "type": 2, + "choices": [] }, { - "arg": "arg", + "arg": "X", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "T", + "type": 2, + "choices": [] + }, + { + "arg": "region", + "type": 3, + "choices": [ + "types", + "mu", + "ke", + "semi-grand", + "region" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/srd = style name of this fix command\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        xlo, ylo, zlo arg = EDGE or constant or variable \n         EDGE = current lo edge of simulation box \n         constant = number like 0.0 or -30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *        xhi, yhi, zhi arg = EDGE or constant or variable \n         EDGE = current hi edge of simulation box \n         constant = number like 50.0 or 100.3 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", - "examples": "\n```lmps\nfix xwalls all wall/srd xlo EDGE xhi EDGE\nfix walls all wall/srd xlo 0.0 ylo 10.0 units box\nfix top all wall/srd zhi v_pressdown\n```\n", - "html_filename": "fix_wall_srd.html", - "short_description": "Bound the simulation with one or more walls which interact with\nstochastic reaction dynamics (SRD) particles as slip (smooth) or\nno-slip (rough) flat surfaces", - "description": "Bound the simulation with one or more walls which interact with\nstochastic reaction dynamics (SRD) particles as slip (smooth) or\nno-slip (rough) flat surfaces. The wall interaction is actually\ninvoked via the [fix srd ](https://docs.lammps.org/fix_srd.html) command, only on the group of\nSRD particles it defines, so the group setting for the fix wall/srd\ncommand is ignored.\n\nA particle/wall collision occurs if an SRD particle moves outside the\nwall on a timestep. This alters the position and velocity of the SRD\nparticle and imparts a force to the wall.\n\nThe *collision* and *Tsrd* settings specified via the [fix srd ](https://docs.lammps.org/fix_srd.html) command affect the SRD/wall collisions. A *slip*\nsetting for the *collision* keyword means that the tangential\ncomponent of the SRD particle momentum is preserved. Thus only a\nnormal force is imparted to the wall. The normal component of the new\nSRD velocity is sampled from a Gaussian distribution at temperature\n*Tsrd* .\n\nFor a *noslip* setting of the *collision* keyword, both the normal and\ntangential components of the new SRD velocity are sampled from a\nGaussian distribution at temperature *Tsrd* . Additionally, a new\ntangential direction for the SRD velocity is chosen randomly. This\ncollision style imparts both a normal and tangential force to the\nwall.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face reflects particles\nthat move to a coordinate less than the wall position, back in the\n*hi* direction. A *hi* face reflects particles that move to a\ncoordinate higher than the wall position, back in the *lo* direction.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the trajectory of the SRD particle is tracked as it\n > collides with the wall, you must ensure that r = distance of the\n > particle from the wall, is always > 0 for SRD particles, or LAMMPS\n > will generate an error. This means you cannot start your simulation\n > with SRD particles at the wall position *coord* (r = 0) or with\n > particles on the wrong side of the wall (r < 0). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have 2 or more walls that come together at an edge or\n > corner (e.g. walls in the x and y dimensions), then be sure to set the\n > *overlap* keyword to *yes* in the [fix srd ](https://docs.lammps.org/fix_srd.html) command,\n > since the walls effectively overlap when SRD particles collide with\n > them. LAMMPS will issue a warning if you do not do this. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The walls of this fix only interact with SRD particles, as\n > defined by the [fix srd ](https://docs.lammps.org/fix_srd.html) command. If you are simulating\n > a mixture containing other kinds of particles, then you should\n > typically use [another wall command ](https://docs.lammps.org/fix_wall.html) to act on the other\n > particles. Since SRD particles will be colliding both with the walls\n > and the other particles, it is important to ensure that the other\n > particle's finite extent does not overlap an SRD wall. If you do not\n > do this, you may generate errors when SRD particles end up \"inside\"\n > another particle or a wall at the beginning of a collision step. \n > \n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\nIt is not relevant when EDGE or a variable is used to specify a face\nposition.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html).\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall/srd xlo v_ramp\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall/srd xlo v_linear\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall/srd xlo v_wiggle\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall/srd xlo v_wiggle\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo*\nto *hi* over the course of a run. The *vdisplace(c0,velocity)* function\ndoes something similar using the equation *position = c0 +\nvelocity\\*delta*, where *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The number of rows in\nthe array is equal to the number of walls defined by the fix. The\nnumber of columns is 3, for the x,y,z components of force on each\nwall.\n\nNote that an outward normal force on a wall will be a negative value\nfor *lo* walls and a positive value for *hi* walls. The array values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "Any dimension (xyz) that has an SRD wall must be non-periodic.\n", - "related": "[fix srd ](https://docs.lammps.org/fix_srd.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* atom/swap = style name of this fix command\n* N = invoke this fix every N steps\n* X = number of swaps to attempt every N steps\n* seed = random # seed (positive integer)\n* T = scaling temperature of the MC swaps (temperature units)\n* one or more keyword/value pairs may be appended to args\n* keyword = types or mu or ke or semi-grand or region \n *        types values = two or more atom types (1-Ntypes or type label) \n *        mu values = chemical potential of swap types (energy units) \n *        ke value = no or yes \n         no = no conservation of kinetic energy after atom swaps \n         yes = kinetic energy is conserved after atom swaps \n *        semi-grand value = no or yes \n         no = particle type counts and fractions conserved \n         yes = semi-grand canonical ensemble, particle fractions not conserved \n *        region value = region-ID \n         region-ID = ID of region to use as an exchange/move volume \n", + "examples": "\n```lmps\nfix 2 all atom/swap 1 1 29494 300.0 ke no types 1 2\nfix myFix all atom/swap 100 1 12345 298.0 region my_swap_region types 5 6\nfix SGMC all atom/swap 1 100 345 1.0 semi-grand yes types 1 2 3 mu 0.0 4.3 -5.0\n```\n", + "html_filename": "fix_atom_swap.html", + "short_description": "This fix performs Monte Carlo swaps of atoms of one given atom type with\natoms of the other given atom types", + "description": "This fix performs Monte Carlo swaps of atoms of one given atom type with\natoms of the other given atom types. The specified scaling temperature\n*T* is used in the Metropolis criterion dictating swap probabilities.\n\nPerform *X* swaps of atoms of one type with atoms of another type\naccording to a Monte Carlo probability. Swap candidates must be in the\nfix group, must be in the region (if specified), and must be of one of\nthe listed types. Swaps are attempted between candidates that are chosen\nrandomly with equal probability among the candidate atoms. Swaps are not\nattempted between atoms of the same type since nothing would happen.\n\nAll atoms in the simulation domain can be moved using regular time\nintegration displacements (e.g., via [fix nvt ](https://docs.lammps.org/fix_nh.html)), resulting\nin a hybrid MC+MD simulation. A smaller-than-usual timestep size may be\nneeded when running such a hybrid simulation, especially if the swapped\natoms are not well equilibrated.\n\nThe *types* keyword is required. At least two atom types must be\nspecified. If not using *semi-grand*, exactly two atom types are\nrequired.\n\nThe *ke* keyword can be set to *no* to turn off kinetic energy\nconservation for swaps. The default is *yes*, which means that swapped\natoms have their velocities scaled by the ratio of the masses of the\nswapped atom types. This ensures that the kinetic energy of each atom is\nthe same after the swap as it was before the swap, even though the atom\nmasses have changed.\n\nThe *semi-grand* keyword can be set to *yes* to switch to the semi-grand\ncanonical ensemble as discussed in **Sadigh**. This means\nthat the total number of each particle type does not need to be\nconserved. The default is *no*, which means that the only kind of swap\nallowed exchanges an atom of one type with an atom of a different given\ntype. In other words, the relative mole fractions of the swapped atoms\nremains constant. Whereas in the semi-grand canonical ensemble, the\ncomposition of the system can change. Note that when using *semi-grand*,\natoms in the fix group whose type is not listed in the *types* keyword\nare ineligible for attempted conversion. An attempt is made to switch\nthe selected atom (if eligible) to one of the other listed types with\nequal probability. Acceptance of each attempt depends upon the\nMetropolis criterion.\n\nThe *mu* keyword allows users to specify chemical potentials. This is\nrequired and allowed only when using *semi-grand* . All chemical\npotentials are absolute, so there is one for each swap type listed\nfollowing the *types* keyword. In semi-grand canonical ensemble\nsimulations the chemical composition of the system is controlled by the\ndifference in these values. So shifting all values by a constant amount\nwill have no effect on the simulation.\n\nThis command may optionally use the *region* keyword to define swap\nvolume. The specified region must have been previously defined with a\n[region ](https://docs.lammps.org/region.html) command. It must be defined with side = *in* .\nSwap attempts occur only between atoms that are both within the\nspecified region. Swaps are not otherwise attempted.\n\nYou should ensure you do not swap atoms belonging to a molecule, or\nLAMMPS will eventually generate an error when it tries to find those\natoms. LAMMPS will warn you if any of the atoms eligible for swapping\nhave a non-zero molecule ID, but does not check for this at the time of\nswapping.\n\nIf not using *semi-grand* this fix checks to ensure all atoms of the\ngiven types have the same atomic charge. LAMMPS does not enforce this in\ngeneral, but it is needed for this fix to simplify the swapping\nprocedure. Successful swaps will swap the atom type and charge of the\nswapped atoms. Conversely, when using *semi-grand*, it is assumed that\nall the atom types involved in switches have the same charge. Otherwise,\ncharge would not be conserved. As a consequence, no checks on atomic\ncharges are performed, and successful switches update the atom type but\nnot the atom charge. While it is possible to use *semi-grand* with\ngroups of atoms that have different charges, these charges will not be\nchanged when the atom types change.\n\nSince this fix computes total potential energies before and after\nproposed swaps, so even complicated potential energy calculations are\nOK, including the following:\n\n* long-range electrostatics (\\(k\\)-space)\n* many body pair styles\n* hybrid pair styles\n* eam pair styles\n* triclinic systems\n* need to include potential energy contributions from other fixes\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [langevin ](https://docs.lammps.org/fix_langevin.html),\n[restrain ](https://docs.lammps.org/fix_restrain.html), [temp/berendsen](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when\nperforming GCMC moves), you **must** enable the [fix_modify](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The doc pages for\nindividual [fix ](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number generator\nseed, the next timestep for MC exchanges, the number of exchange\nattempts and successes, etc. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep > ](https://docs.lammps.org/reset_timestep.html). The fix will try to detect it and stop with an\n > error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 2, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n* 1 = swap attempts\n* 2 = swap accepts\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Sadigh)** B Sadigh, P Erhart, A Stukowski, A Caro, E Martinez, and\nL Zepeda-Ruiz, Phys. Rev. B, 85, 184203 (2012). \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix cannot be used with systems that do not have per-type masses\n(e.g. atom style sphere) since the implemented algorithm pre-computes\nvelocity rescaling factors from per-type masses and ignores any per-atom\nmasses, if present. In case both, per-type and per-atom masses are\npresent, a warning is printed.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), [fix gcmc ](https://docs.lammps.org/fix_gcmc.html),\n[fix mol/swap ](https://docs.lammps.org/fix_mol_swap.html), [fix sgcmc ](https://docs.lammps.org/fix_sgcmc.html)\n" }, { "command": [ - "pair_style sph/lj", - "pair_style sph/lj/gpu" + "fix_modify AtC fe_md_boundary" ], "syntax": [ - "pair_style sph/lj" + "fix_modify fe_md_boundary " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "sph/lj", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "fe_md_boundary", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 3, "choices": [ - "sph/lj", - "sph/lj/gpu" + "faceset", + "interpolate", + "no_boundary" ] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style sph/lj\npair_coeff * * 1.0 2.4\n```\n", - "html_filename": "pair_sph_lj.html", - "short_description": "The sph/lj style computes pressure forces between particles according\nto the Lennard-Jones equation of state, which is computed according to\nRee's 1980 polynomial fit :ref:[(Ree) ](https://docs.lammps.org/Ree>`", - "description": "The sph/lj style computes pressure forces between particles according\nto the Lennard-Jones equation of state, which is computed according to\nRee's 1980 polynomial fit :ref:[(Ree) ](https://docs.lammps.org/Ree>`. The Lennard-Jones parametersepsilon and sigma are set to unity. This pair style also computesMonaghan's artificial viscosity to prevent particles frominterpenetrating **Monoghan**.See `this PDF guide `\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" }, { "command": [ - "fix gle" + "fix external" ], "syntax": [ - "fix ID id-group gle Ns Tstart Tstop seed Amatrix [noneq Cmatrix] [every stride]" + "fix ID group-ID external mode args" ], "args": [ [ @@ -3435,76 +3079,94 @@ export const command_docs = [ "choices": [] }, { - "arg": "id-group", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "gle", + "arg": "external", "type": 1, "choices": [] }, { - "arg": "Ns", - "type": 2, - "choices": [] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] + "arg": "pf/array", + "type": 3, + "choices": [ + "pf/callback", + "pf/array" + ] }, { - "arg": "Tstop", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* external = style name of this fix command\n* mode = pf/callback or pf/array \n *        pf/callback args = Ncall Napply \n         Ncall = make callback every Ncall steps \n         Napply = apply callback forces every Napply steps \n *        pf/array args = Napply \n         Napply = apply array forces every Napply steps \n", + "examples": "\n```lmps\nfix 1 all external pf/callback 1 1\nfix 1 all external pf/callback 100 1\nfix 1 all external pf/array 10\n```\n", + "html_filename": "fix_external.html", + "short_description": "This fix allows external programs that are running LAMMPS through its\n[library interface ](https://docs.lammps.org/Howto_library.html) to modify certain LAMMPS\nproperties on specific timesteps, similar to the way other fixes do", + "description": "This fix allows external programs that are running LAMMPS through its\n[library interface ](https://docs.lammps.org/Howto_library.html) to modify certain LAMMPS\nproperties on specific timesteps, similar to the way other fixes do.\nThe external driver can be a [C/C++ or Fortran program ](https://docs.lammps.org/Howto_library.html) or a [Python script ](https://docs.lammps.org/Python_head.html).\n\n----------\n\nIf mode is *pf/callback* then the fix will make a callback every\n*Ncall* timesteps or minimization iterations to the external program.\nThe external program computes forces on atoms by setting values in an\narray owned by the fix. The fix then adds these forces to each atom\nin the group, once every *Napply* steps, similar to the way the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command works. Note that if *Ncall* >\n*Napply*, the force values produced by one callback will persist, and\nbe used multiple times to update atom forces.\n\nThe callback function \"foo\" is invoked by the fix as:\n\n```\nfoo(void *ptr, bigint timestep, int nlocal, tagint *ids, double **x, double **fexternal);\n```\nThe arguments are as follows:\n\n* *ptr* = pointer provided by and simply passed back to external driver\n* *timestep* = current LAMMPS timestep\n* *nlocal* = # of atoms on this processor\n* *ids* = list of atom IDs on this processor\n* *x* = coordinates of atoms on this processor\n* *fexternal* = forces to add to atoms on this processor\n\nNote that *timestep* is a \"bigint\" which is defined in src/lmptype.h,\ntypically as a 64-bit integer. And *ids* is a pointer to type \"tagint\"\nwhich is typically a 32-bit integer unless LAMMPS is compiled with\n-DLAMMPS_BIGBIG. For more info please see the :ref:`build settings\n` section of the manual. Finally, *fexternal* are the forces\nreturned by the driver program.\n\nThe fix has a set_callback() method which the external driver can call\nto pass a pointer to its foo() function. See the\ncouple/lammps_quest/lmpqst.cpp file in the LAMMPS distribution for an\nexample of how this is done. This sample application performs\nclassical MD using quantum forces computed by a density functional\ncode [Quest ](https://dft.sandia.gov/Quest).\n\n----------\n\nIf mode is *pf/array* then the fix simply stores force values in an\narray. The fix adds these forces to each atom in the group, once\nevery *Napply* steps, similar to the way the [fix addforce](https://docs.lammps.org/fix_addforce.html) command works.\n\nThe name of the public force array provided by the FixExternal\nclass is\n\n```\ndouble **fexternal;\n```\nIt is allocated by the FixExternal class as an (N,3) array where N is\nthe number of atoms owned by a processor. The 3 corresponds to the\nfx, fy, fz components of force.\n\nIt is up to the external program to set the values in this array to\nthe desired quantities, as often as desired. For example, the driver\nprogram might perform an MD run in stages of 1000 timesteps each. In\nbetween calls to the LAMMPS [run ](https://docs.lammps.org/run.html) command, it could retrieve\natom coordinates from LAMMPS, compute forces, set values in fexternal,\netc.\n\n----------\n\nTo use this fix during energy minimization, the energy corresponding\nto the added forces must also be set so as to be consistent with the\nadded forces. Otherwise the minimization will not converge correctly.\nCorrespondingly, the global virial needs to be updated to be use this\nfix with variable cell calculations (e.g. [fix box/relax ](https://docs.lammps.org/fix_box_relax.html)\nor [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThis can be done from the external driver by calling these public\nmethods of the FixExternal class:\n\n```\nvoid set_energy_global(double eng);\nvoid set_virial_global(double *virial);\n```\nwhere *eng* is the potential energy, and *virial* an array of the 6\nstress tensor components. Eng is an extensive quantity,\nmeaning it should be the sum over per-atom energies of all affected\natoms. It should also be provided in [energy units ](https://docs.lammps.org/units.html)\nconsistent with the simulation. See the details below for how to\nensure this energy setting is used appropriately in a minimization.\n\nAdditional public methods that the caller can use to update system\nproperties are:\n\n```\nvoid set_energy_peratom(double *eng);\nvoid set_virial_peratom(double **virial);\nvoid set_vector_length(int n);\nvoid set_vector(int idx, double val);\n```\nThese allow to set per-atom energy contributions, per-atom stress\ncontributions, the length and individual values of a global vector\nof properties that the caller code may want to communicate to LAMMPS\n(e.g. for use in [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) or in\n[equal-style variables ](https://docs.lammps.org/variable.html) or for\n[custom thermo output ](https://docs.lammps.org/thermo_style.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy set by the external driver to\nboth the global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or output\nby the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The default\nsetting for this fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\nNote that this energy may be a fictitious quantity but it is needed so\nthat the [minimize ](https://docs.lammps.org/minimize.html) command can include the forces\nadded by this fix in a consistent manner. I.e. there is a decrease in\npotential energy when atoms move in the direction of the added force.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the external program to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar stored by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", + "restrictions": " none\n", + "related": "none\n" +}, +{ + "command": [ + "compute hexorder/atom" + ], + "syntax": [ + "compute ID group-ID hexorder/atom keyword values ..." + ], + "args": [ + [ { - "arg": "seed", - "type": 2, + "arg": "compute", + "type": 1, "choices": [] }, { - "arg": "Amatrix", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "[noneq", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "Cmatrix]", - "type": 2, + "arg": "hexorder/atom", + "type": 1, "choices": [] }, { - "arg": "[every", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "stride]", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gle = style name of this fix command\n* Ns = number of additional fictitious momenta\n* Tstart, Tstop = temperature ramp during the run\n* Amatrix = file to read the drift matrix A from\n* seed = random number seed to use for generating noise (positive integer)\n* zero or more keyword/value pairs may be appended \n *        keyword = noneq or every \n         noneq Cmatrix = file to read the non-equilibrium covariance matrix from \n         every stride = apply the GLE once every time steps. Reduces the accuracy \n         of the integration of the GLE, but has \\*no effect\\* on the accuracy of equilibrium \n         sampling. It might change sampling properties when used together with noneq . \n", - "examples": "\n```lmps\nfix 3 boundary gle 6 300 300 31415 smart.A\nfix 1 all gle 6 300 300 31415 qt-300k.A noneq qt-300k.C\n```\n", - "html_filename": "fix_gle.html", - "short_description": "Apply a Generalized Langevin Equation (GLE) thermostat as described\nin **Ceriotti**", - "description": "Apply a Generalized Langevin Equation (GLE) thermostat as described\nin **Ceriotti**. The formalism allows one to obtain a number\nof different effects ranging from efficient sampling of all\nvibrational modes in the system to inexpensive (approximate)\nmodelling of nuclear quantum effects. Contrary to\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), this fix performs both\nthermostatting and evolution of the Hamiltonian equations of motion, so it\nshould not be used together with [fix nve ](https://docs.lammps.org/fix_nve.html) -- at least not\non the same atom groups.\n\nEach degree of freedom in the thermostatted group is supplemented\nwith Ns additional degrees of freedom s, and the equations of motion\nbecome\n\n```\ndq/dt=p/m\nd(p,s)/dt=(F,0) - A(p,s) + B dW/dt\n```\nwhere F is the physical force, A is the drift matrix (that generalizes\nthe friction in Langevin dynamics), B is the diffusion term and dW/dt\nun-correlated Gaussian random forces. The A matrix couples the physical\n(q,p) dynamics with that of the additional degrees of freedom,\nand makes it possible to obtain effectively a history-dependent\nnoise and friction kernel.\n\nThe drift matrix should be given as an external file *Afile*,\nas a (Ns+1 x Ns+1) matrix in inverse time units. Matrices that are\noptimal for a given application and the system of choice can be\nobtained from **GLE4MD**.\n\nEquilibrium sampling a temperature T is obtained by specifying the\ntarget value as the *Tstart* and *Tstop* arguments, so that the diffusion\nmatrix that gives canonical sampling for a given A is computed automatically.\nHowever, the GLE framework also allow for non-equilibrium sampling, that\ncan be used for instance to model inexpensively zero-point energy\neffects **Ceriotti2**. This is achieved specifying the *noneq*\nkeyword followed by the name of the file that contains the static covariance\nmatrix for the non-equilibrium dynamics. Please note, that the covariance\nmatrix is expected to be given in **temperature units** .\n\nSince integrating GLE dynamics can be costly when used together with\nsimple potentials, one can use the *every* optional keyword to\napply the Langevin terms only once every several MD steps, in a\nmultiple time-step fashion. This should be used with care when doing\nnon-equilibrium sampling, but should have no effect on equilibrium\naverages when using canonical sampling.\n\nThe random number *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\nNote also that the Generalized Langevin Dynamics scheme that is\nimplemented by the [fix gld ](https://docs.lammps.org/fix_gld.html) scheme is closely related\nto the present one. In fact, it should be always possible to cast the\nProny series form of the memory kernel used by GLD into an appropriate\ninput matrix for [fix gle ](https://docs.lammps.org/fix_gle.html). While the GLE scheme is more\ngeneral, the form used by [fix gld ](https://docs.lammps.org/fix_gld.html) can be more directly\nrelated to the representation of an implicit solvent environment.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the\nrandom number generator is not saved in restart files, this means you\ncannot do \"exact\" restarts with this fix, where the simulation\ncontinues on the same as if no restart had taken place. However, in a\nstatistical sense, a restarted simulation should produce the same\nbehavior. Note however that you should use a different seed each time\nyou restart, otherwise the same sequence of random numbers will be\nused each time, which might lead to stochastic synchronization and\nsubtle artifacts in the sampling.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Ceriotti)** Ceriotti, Bussi and Parrinello, J Chem Theory Comput 6,\n1170-80 (2010) \n \n**(GLE4MD)** [https://gle4md.org/](https://gle4md.org/) \n \n**(Ceriotti2)** Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,\n030603 (2009) \n ", - "restrictions": "The GLE thermostat in its current implementation should not be used\nwith rigid bodies, SHAKE or RATTLE. It is expected that all the\nthermostatted degrees of freedom are fully flexible, and the sampled\nensemble will not be correct otherwise.\n\nIn order to perform constant-pressure simulations please use\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), rather than\n[fix npt ](https://docs.lammps.org/fix_nh.html), to avoid duplicate integration of the\nequations of motion.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html), [fix gld ](https://docs.lammps.org/fix_gld.html)\n\n----------\n\n.. _Ceriotti:\n\n**(Ceriotti)** Ceriotti, Bussi and Parrinello, J Chem Theory Comput 6,\n1170-80 (2010)\n\n.. _GLE4MD:\n\n**(GLE4MD)** [https://gle4md.org/](https://gle4md.org/)\n\n.. _Ceriotti2:\n\n**(Ceriotti2)** Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,\n030603 (2009)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* hexorder/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = degree or nnn or cutoff \n       cutoff value = distance cutoff \n       nnn value = number of nearest neighbors \n       degree value = degree n of order parameter \n", + "examples": "\n```lmps\ncompute 1 all hexorder/atom\ncompute 1 all hexorder/atom degree 4 nnn 4 cutoff 1.2\n```\n", + "html_filename": "compute_hexorder_atom.html", + "short_description": "Define a computation that calculates \\(q_n\\) the bond-orientational\norder parameter for each atom in a group", + "description": "Define a computation that calculates \\(q_n\\) the bond-orientational\norder parameter for each atom in a group. The hexatic (\\ *n* = 6) order\nparameter was introduced by **Nelson** as a way to detect\nhexagonal symmetry in two-dimensional systems. For each atom, \\(q_n\\)\nis a complex number (stored as two real numbers) defined as follows:\n\\[\n q_n = \\frac{1}{nnn}\\sum_{j = 1}^{nnn} e^{n i \\theta({\\bf r}_{ij})}\\]\nwhere the sum is over the *nnn* nearest neighbors\nof the central atom. The angle \\(\\theta\\)\nis formed by the bond vector \\(r_{ij}\\) and the *x* axis.\n\\(\\theta\\) is calculated only using the *x* and *y* components,\nwhereas the distance from the\ncentral atom is calculated using all three\n*x*, *y*, and *z* components of the bond vector.\nNeighbor atoms not in the group\nare included in the order parameter of atoms in the group.\n\nThe optional keyword *cutoff* defines the distance cutoff\nused when searching for neighbors. The default value, also\nthe maximum allowable value, is the cutoff specified\nby the pair style.\n\nThe optional keyword *nnn* defines the number of nearest\nneighbors used to calculate \\(q_n\\). The default value is 6.\nIf the value is NULL, then all neighbors up to the\ndistance cutoff are used.\n\nThe optional keyword *degree* sets the degree *n* of the order parameter.\nThe default value is 6. For a perfect hexagonal lattice with\n*nnn* = 6,\n\\(q_6 = e^{6 i \\phi}\\) for all atoms, where the constant \\(0 < \\phi < \\frac{\\pi}{3}\\)\ndepends only on the orientation of the lattice relative to the *x* axis.\nIn an isotropic liquid, local neighborhoods may still exhibit\nweak hexagonal symmetry, but because the orientational correlation\ndecays quickly with distance, the value of \\(\\phi\\) will be different for\ndifferent atoms, and so when \\(q_6\\) is averaged over all the atoms\nin the system, \\(| \\left< q_6 \\right> | << 1\\).\n\nThe value of \\(q_n\\) is set to zero for atoms not in the\nspecified compute group, as well as for atoms that have less than\n*nnn* neighbors within the distance cutoff.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the order parameter. This\n > difficulty can be circumvented by writing a dump file, and using the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the order parameter for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n #### Output info\n\nThis compute calculates a per-atom array with 2 columns, giving the\nreal and imaginary parts \\(q_n\\), a complex number restricted to the\nunit disk of the complex plane (i.e., \\(\\Re(q_n)^2 + \\Im(q_n)^2 \\le 1\\)).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Nelson)** Nelson, Halperin, Phys Rev B, 19, 2457 (1979). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html), [compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html), [compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" }, { "command": [ - "pair_style quip" + "pair_style lj/smooth/linear", + "pair_style lj/smooth/linear/omp" ], "syntax": [ - "pair_style quip" + "pair_style lj/smooth/linear cutoff" ], "args": [ [ @@ -3514,164 +3176,156 @@ export const command_docs = [ "choices": [] }, { - "arg": "quip", - "type": 1, + "arg": "lj/smooth/linear", + "type": 3, + "choices": [ + "lj/smooth/linear", + "lj/smooth/linear/omp" + ] + }, + { + "arg": "cutoff", + "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style quip\npair_coeff * * gap_example.xml \"Potential xml_label=GAP_2014_5_8_60_17_10_38_466\" 14\npair_coeff * * sw_example.xml \"IP SW\" 14\n```\n", - "html_filename": "pair_quip.html", - "short_description": "Style *quip* provides an interface for calling potential routines from\nthe QUIP package", - "description": "Style *quip* provides an interface for calling potential routines from\nthe QUIP package. QUIP is built separately, and then linked to\nLAMMPS. The most recent version of the QUIP package can be downloaded\nfrom GitHub:\n[https://github.com/libAtoms/QUIP](https://github.com/libAtoms/QUIP). The\ninterface is chiefly intended to be used to run Gaussian Approximation\nPotentials (GAP), which are described in the following publications:\n**Bartok_2010** and **Bartok_PhD**.\n\nOnly a single pair_coeff command is used with the *quip* style that\nspecifies a QUIP potential file containing the parameters of the\npotential for all needed elements in XML format. This is followed by a\nQUIP initialization string. Finally, the QUIP elements are mapped to\nLAMMPS atom types by specifying N atomic numbers, where N is the\nnumber of LAMMPS atom types:\n\n* QUIP filename\n* QUIP initialization string\n* N atomic numbers = mapping of QUIP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nA QUIP potential is fully specified by the filename which contains the\nparameters of the potential in XML format, the initialization string,\nand the map of atomic numbers.\n\nGAP potentials can be obtained from the `GAP models and databases page\non the libAtoms homepage [https://libatoms.github.io](https://libatoms.github.io/GAP/data.html), where the appropriate\ninitialization strings are also advised. The list of atomic numbers must\nbe matched to the LAMMPS atom types specified in the LAMMPS data file or\nelsewhere.\n\nTwo examples input scripts are provided in the examples/PACKAGES/quip\ndirectory.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Bartok_2010)** AP Bartok, MC Payne, R Kondor, and G Csanyi, Physical\nReview Letters 104, 136403 (2010). \n \n**(Bartok_PhD)** A Bartok-Partay, PhD Thesis, University of Cambridge,\n(2010). \n ", - "restrictions": "This pair style is part of the ML-QUIP package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nQUIP potentials are parameterized in electron-volts and Angstroms and\ntherefore should be used with LAMMPS metal [units ](https://docs.lammps.org/units.html).\n\nQUIP potentials are generally not designed to work with the scaling\nfactors set by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. The\nrecommended setting in molecular systems is to include all\ninteractions, i.e. to use *special_bonds lj/coul 1.0 1.0 1.0*. Scaling\nfactors > 0.0 will be ignored and treated as 1.0. The only exception\nto this rule is if you know that your QUIP potential needs to exclude\nbonded, 1-3, or 1-4 interactions and does not already do this exclusion\nwithin QUIP. Then a factor 0.0 needs to be used which will remove such\npairs from the neighbor list. This needs to be very carefully tested,\nbecause it may remove pairs from the neighbor list that are still\nrequired.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n\n----------\n\n.. _Bartok_2010:\n\n**(Bartok2010)** AP Bartok, MC Payne, R Kondor, and G Csanyi, Physical\nReview Letters 104, 136403 (2010).\n\n.. _Bartok_PhD:\n\n**(Bartok_PhD)** A Bartok-Partay, PhD Thesis, University of Cambridge,\n(2010).\n" + "parameters": "* cutoff = global cutoff for Lennard-Jones interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/smooth/linear 2.5\npair_coeff * * 1.0 1.0\npair_coeff 1 1 0.3 3.0 9.0\n```\n", + "html_filename": "pair_lj_smooth_linear.html", + "short_description": "Style *lj/smooth/linear* computes a truncated and force-shifted LJ\ninteraction (aka Shifted Force Lennard-Jones) that combines the\nstandard 12/6 Lennard-Jones function and subtracts a linear term based\non the cutoff distance, so that both, the potential and the force, go\ncontinuously to zero at the cutoff \\(r_c\\) **Toxvaerd**:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional", + "description": "Style *lj/smooth/linear* computes a truncated and force-shifted LJ\ninteraction (aka Shifted Force Lennard-Jones) that combines the\nstandard 12/6 Lennard-Jones function and subtracts a linear term based\non the cutoff distance, so that both, the potential and the force, go\ncontinuously to zero at the cutoff \\(r_c\\) **Toxvaerd**:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance can be mixed. The default mix value is geometric.\nSee the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction, since it goes\nto 0.0 at the cutoff by construction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Toxvaerd)** Toxvaerd, Dyre, J Chem Phys, 134, 081102 (2011). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair lj/smooth ](https://docs.lammps.org/pair_lj_smooth.html)\n" }, { "command": [ - "pair_style body/rounded/polygon" + "fix nvt/eff", + "fix npt/eff" ], "syntax": [ - "pair_style body/rounded/polygon c_n c_t mu delta_ua cutoff" + "fix ID group-ID style_name keyword value ..." ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "body/rounded/polygon", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "c_n", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "c_t", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "mu", - "type": 2, - "choices": [] + "arg": "nph/eff", + "type": 3, + "choices": [ + "nvt/eff", + "npt/eff", + "nph/eff" + ] }, { - "arg": "delta_ua", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": " *    c_n = normal damping coefficient \n *    c_t = tangential damping coefficient \n *    mu = normal friction coefficient during gross sliding \n *    delta_ua = multiple contact scaling factor \n *    cutoff = global separation cutoff for interactions (distance units), see below for definition \n", - "examples": "\n```lmps\npair_style body/rounded/polygon 20.0 5.0 0.0 1.0 0.5\npair_coeff * * 100.0 1.0\npair_coeff 1 1 100.0 1.0\n```\n", - "html_filename": "pair_body_rounded_polygon.html", - "short_description": "Style *body/rounded/polygon* is for use with 2d models of body\nparticles of style *rounded/polygon* ", - "description": "Style *body/rounded/polygon* is for use with 2d models of body\nparticles of style *rounded/polygon* . It calculates pairwise\nbody/body interactions which can include body particles modeled as\n1-vertex circular disks with a specified diameter. See the\n[Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nrounded/polygon particles.\n\nThis pairwise interaction between rounded polygons is described in\n**pair-Fraige**, where a polygon does not have sharp corners,\nbut is rounded at its vertices by circles centered on each vertex with\na specified diameter. The edges of the polygon are defined between\npairs of adjacent vertices. The circle diameter for each polygon is\nspecified in the data file read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand. This is a 2d discrete element model (DEM) which allows for\nmultiple contact points.\n\nNote that when two particles interact, the effective surface of each\npolygon particle is displaced outward from each of its vertices and\nedges by half its circle diameter (as in the diagram below of a gray\nand yellow square particle). The interaction forces and energies\nbetween two particles are defined with respect to the separation of\ntheir respective rounded surfaces, not by the separation of the\nvertices and edges themselves.\n\nThis means that the specified cutoff in the pair_style command is the\ncutoff distance, \\(r_c\\), for the surface separation, \\(\\delta_n\\) (see figure\nbelow). This is the distance at which two particles no longer\ninteract. If \\(r_c\\) is specified as 0.0, then it is a contact-only\ninteraction. I.e. the two particles must overlap in order to exert a\nrepulsive force on each other. If \\(r_c > 0.0\\), then the force between\ntwo particles will be attractive for surface separations from 0 to\n\\(r_c\\), and repulsive once the particles overlap.\n\nNote that unlike for other pair styles, the specified cutoff is not\nthe distance between the centers of two particles at which they stop\ninteracting. This center-to-center distance depends on the shape and\nsize of the two particles and their relative orientation. LAMMPS\ntakes that into account when computing the surface separation distance\nand applying the \\(r_c\\) cutoff.\n\nThe forces between vertex-vertex, vertex-edge, and edge-edge overlaps\nare given by:\n\\[\\begin{align*} \n F_n &= \\begin{cases}\n k_n \\delta_n - c_n v_n & \\delta_n \\le 0 \\\\\n -k_{na} \\delta_n - c_n v_n & 0 < \\delta_n \\le r_c \\\\\n 0 & \\delta_n > r_c \\\\\n \\end{cases} \\\\\n F_t &= \\begin{cases}\n \\mu k_n \\delta_n - c_t v_t & \\delta_n \\le 0 \\\\\n 0 & \\delta_n > 0\n \\end{cases} \\end{align*} \\]\n\n ![Image](JPG/pair_body_rounded.jpg) \n\nNote that \\(F_n\\) and \\(F_t\\) are functions of the surface separation\n\\(\\delta_n = d - (R_i + R_j)\\). In this model, when\n\\((R_i + R_j) < d < (R_i + R_j) + r_c\\), that is, \\(0 < \\delta_n < r_c\\),\nthe cohesive region of the two surfaces overlap and the two surfaces are\nattractive to each other.\n\nIn **pair-Fraige**, the tangential friction force between two\nparticles that are in contact is modeled differently prior to gross\nsliding (i.e. static friction) and during gross-sliding (kinetic\nfriction). The latter takes place when the tangential deformation\nexceeds the Coulomb frictional limit. In the current implementation,\nhowever, we do not take into account frictional history, i.e. we do\nnot keep track of how many time steps the two particles have been in\ncontact nor calculate the tangential deformation. Instead, we assume\nthat gross sliding takes place as soon as two particles are in\ncontact.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file read by the [read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(k_n\\) (energy/distance\\^2 units)\n* \\(k_{na}\\) (energy/distance\\^2 units)\n\nEffectively, \\(k_n\\) and \\(k_{na}\\) are the slopes of the red lines in the plot\nabove for force versus surface separation, for \\(\\delta_n < 0\\) and\n\\(0 < \\delta_n < r_c\\) respectively.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(pair-Fraige)** F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds,\nParticuology, 6, 455 (2008). \n ", - "restrictions": "These pair styles are part of the BODY package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt/eff or npt/eff or nph/eff \n *      one or more keyword value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate \n       temp values = Tstart Tstop Tdamp \n       Tstart,Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = length of thermostat chain (1 = single thermostat) \n       pchain values = length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = number of sub-cycles to perform on thermostat \n       ploop value = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = drag factor added to barostat/thermostat (0.0 = no drag) \n       dilate value = all or partial \n", + "examples": "\n```lmps\nfix 1 all nvt/eff temp 300.0 300.0 0.1\nfix 1 part npt/eff temp 300.0 300.0 0.1 iso 0.0 0.0 1.0\nfix 2 part npt/eff temp 300.0 300.0 0.1 tri 5.0 5.0 1.0\nfix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\n", + "html_filename": "fix_nh_eff.html", + "short_description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion for nuclei and electrons in the\ngroup for the [electron force field ](https://docs.lammps.org/pair_eff.html) model", + "description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion for nuclei and electrons in the\ngroup for the [electron force field ](https://docs.lammps.org/pair_eff.html) model. The fixes\nare designed to generate positions and velocities sampled from the\ncanonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph)\nensembles. This is achieved by adding some dynamic variables which\nare coupled to the particle velocities (thermostatting) and simulation\ndomain dimensions (barostatting). In addition to basic thermostatting\nand barostatting, these fixes can also create a chain of thermostats\ncoupled to the particle thermostat, and another chain of thermostats\ncoupled to the barostat variables. The barostat can be coupled to the\noverall box volume, or to individual dimensions, including the *xy*,\n*xz* and *yz* tilt dimensions. The external pressure of the barostat\ncan be specified as either a scalar pressure (isobaric ensemble) or as\ncomponents of a symmetric stress tensor (constant stress ensemble).\nWhen used correctly, the time-averaged temperature and stress tensor\nof the particles will match the target values specified by\nTstart/Tstop and Pstart/Pstop.\n\nThe operation of these fixes is exactly like that described by the\n[fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands, except that the radius\nand radial velocity of electrons are also updated. Likewise the\ntemperature and pressure calculated by the fix, using the computes it\ncreates (as discussed in the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html)\ndoc page), are performed with computes that include the eFF contribution\nto the temperature or kinetic energy from the electron radial velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >there are two different pressures that can be reported for eFF\n > when defining the pair_style (see [pair eff/cut ](https://docs.lammps.org/pair_eff.html) to\n > understand these settings), one (default) that considers electrons do\n > not contribute radial virial components (i.e. electrons treated as\n > incompressible 'rigid' spheres) and one that does. The radial\n > electronic contributions to the virials are only tallied if the\n > flexible pressure option is set, and this will affect both global and\n > per-atom quantities. In principle, the true pressure of a system is\n > somewhere in between the rigid and the flexible eFF pressures, but,\n > for most cases, the difference between these two pressures will not be\n > significant over long-term averaged runs (i.e. even though the energy\n > partitioning changes, the total energy remains similar). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >currently, there is no available option for the user to set or\n > create temperature distributions that include the radial electronic\n > degrees of freedom with the [velocity ](https://docs.lammps.org/velocity.html) command, so the\n > the user must allow for these degrees of freedom to equilibrate\n > (i.e. equi-partitioning of energy) through time integration. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nSee the page for the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands\nfor details.\n", + "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOther restriction discussed on the page for the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands also apply.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature for systems (regions or groups) with only\n > electrons and no nuclei is 0.0 (i.e. not defined) in the current\n > temperature calculations, a practical example would be a uniform\n > electron gas or a very hot plasma, where electrons remain delocalized\n > from the nuclei. This is because, even though electron virials are\n > included in the temperature calculation, these are averaged over the\n > nuclear degrees of freedom only. In such cases a corrective term must\n > be added to the pressure to get the correct kinetic contribution. \n > \n\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [run_style ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "pair_coeff" + "fix eos/table/rx", + "fix eos/table/rx/kk" ], "syntax": [ - "pair_coeff I J args" + "fix ID group-ID eos/table/rx style file1 N keyword ..." ], "args": [ [ { - "arg": "pair_coeff", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "I", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "J", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* I,J = numeric atom types (see asterisk form below), or type labels\n* args = coefficients for one or more pairs of atom types \n", - "examples": "\n```lmps\npair_coeff 1 2 1.0 1.0 2.5\npair_coeff 2 * 1.0 1.0\npair_coeff 3* 1*2 1.0 1.0 2.5\npair_coeff * * 1.0 1.0\npair_coeff * * nialhjea 1 1 2\npair_coeff * 3 morse.table ENTRY1\npair_coeff 1 2 lj/cut 1.0 1.0 2.5 # (for pair_style hybrid)\n\nlabelmap atom 1 C\nlabelmap atom 2 H\npair_coeff C H 1.0 1.0 2.5\n```\n", - "html_filename": "pair_coeff.html", - "short_description": "Specify the pairwise force field coefficients for one or more pairs of\natom types", - "description": "Specify the pairwise force field coefficients for one or more pairs of\natom types. The number and meaning of the coefficients depends on the\npair style. Pair coefficients can also be set in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\nI and J can be specified in one of several ways. Explicit numeric\nvalues can be used for each, as in the first example above. Or, one\nor both of the types in the I,J pair can be a type label, which is an\nalphanumeric string defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command\nor in a section of a data file read by the [read_data](https://docs.lammps.org/read_data.html) command, and which converts internally to a numeric type.\nInternally, LAMMPS will set coefficients for the symmetric J,I\ninteraction to the same values as the I,J interaction.\n\nFor numeric values only, a wildcard asterisk can be used in place of or\nin conjunction with the I,J arguments to set the coefficients for\nmultiple pairs of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types, then an\nasterisk with no numeric values means all types from 1 to \\(N\\). A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to \\(N\\) (inclusive). A middle\nasterisk means all types from m to n (inclusive). For the asterisk\nsyntax, only type pairs with I <= J are considered; if asterisks imply\ntype pairs where J < I, they are ignored. Again internally, LAMMPS will\nset the coefficients for the symmetric J,I interactions to the same\nvalues as the I <= J interactions.\n\nNote that a pair_coeff command can override a previous setting for the\nsame I,J pair. For example, these commands set the coeffs for all I,J\npairs, then overwrite the coeffs for just the I,J = 2,3 pair:\n\n```lmps\npair_coeff * * 1.0 1.0 2.5\npair_coeff 2 3 2.0 1.0 1.12\n```\nA line in a data file that specifies pair coefficients uses the exact\nsame format as the arguments of the pair_coeff command in an input\nscript, with the exception of the I,J type arguments. In each line of\nthe \"Pair Coeffs\" section of a data file, only a single type I is\nspecified, which sets the coefficients for type I interacting with\ntype I. This is because the section has exactly \\(N\\) lines, where\n\\(N\\) is the number of atom types. For this reason, the wild-card\nasterisk should also not be used as part of the I argument. Thus in a\ndata file, the line corresponding to the first example above would be\nlisted as\n\n```\n2 1.0 1.0 2.5\n```\nFor many potentials, if coefficients for type pairs with I != J are\nnot set explicitly by a pair_coeff command, the values are inferred\nfrom the I,I and J,J settings by mixing rules; see the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) command for a discussion. Details on\nthis option as it pertains to individual potentials are described on\nthe page for the potential.\n\nMany pair styles, typically for many-body potentials, use tabulated\npotential files as input, when specifying the pair_coeff command.\nPotential files provided with LAMMPS are in the potentials directory\nof the distribution. For some potentials, such as EAM, other archives\nof suitable files can be found on the Web. They can be used with\nLAMMPS so long as they are in the format LAMMPS expects, as discussed\non the individual doc pages. The first line of potential files may\ncontain metadata with upper case tags followed their value. These may\nbe parsed and used by LAMMPS. Currently supported are the \"DATE:\"\ntag and the ``UNITS:`` tag. For pair styles that have been programmed\nto support the metadata, the value of the \"DATE:\" tag is printed to\nthe screen and logfile so that the version of a potential file can be\nlater identified. The ``UNITS:`` tag indicates the [units ](https://docs.lammps.org/units.html)\nsetting required for this particular potential file. If the potential\nfile was created for a different sets of units, LAMMPS will terminate\nwith an error. If the potential file does not contain the tag, no\ncheck will be made and it is the responsibility of the user to determine\nthat the unit style is correct.\n\nIn some select cases and for specific combinations of unit styles,\nLAMMPS is capable of automatically converting potential parameters\nfrom a file. In those cases, a warning message signaling that an\nautomatic conversion has happened is printed to the screen.\n\nWhen a pair_coeff command using a potential file is specified, LAMMPS\nlooks for the potential file in 2 places. First it looks in the\nlocation specified. E.g. if the file is specified as \"niu3.eam\", it\nis looked for in the current working directory. If it is specified as\n\"../potentials/niu3.eam\", then it is looked for in the potentials\ndirectory, assuming it is a sister directory of the current working\ndirectory. If the file is not found, it is then looked for in one of\nthe directories specified by the ``LAMMPS_POTENTIALS`` environment variable.\nThus if this is set to the potentials directory in the LAMMPS distribution,\nthen you can use those files from anywhere on your system, without\ncopying them into your working directory. Environment variables are\nset in different ways for different shells. Here are example settings\nfor\n\ncsh, tcsh:\n\n```tcsh\nsetenv LAMMPS_POTENTIALS /path/to/lammps/potentials\n```\nbash:\n\n```bash\nexport LAMMPS_POTENTIALS=/path/to/lammps/potentials\n```\nWindows:\n\n```console\nset LAMMPS_POTENTIALS=\"C:\\\\Path to LAMMPS\\\\Potentials\"\n```\nThe ``LAMMPS_POTENTIALS`` environment variable may contain paths\nto multiple folders, if they are separated by \";\" on Windows and\n\":\" on all other operating systems, just like the ``PATH`` and\nsimilar environment variables.\n\n----------\n\nThe alphabetic list of pair styles defined in LAMMPS is given on the\n[pair_style ](https://docs.lammps.org/pair_style.html) doc page. They are also listed in more\ncompact form on the [Commands pair ](https://docs.lammps.org/Commands_pair.html) doc page.\n\nClick on the style to display the formula it computes and its\ncoefficients as specified by the associated pair_coeff command.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", - "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_modify ](https://docs.lammps.org/pair_modify.html),\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[pair_write ](https://docs.lammps.org/pair_write.html)\n" -}, -{ - "command": [ - "compute smd/ulsph/num/neighs" - ], - "syntax": [ - "compute ID group-ID smd/ulsph/num/neighs" - ], - "args": [ - [ + "arg": "eos/table/rx", + "type": 3, + "choices": [ + "eos/table/rx", + "eos/table/rx/kk" + ] + }, { - "arg": "compute", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "file1", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "smd/ulsph/num/neighs", - "type": 1, + "arg": "keyword", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/num/neighs = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/ulsph/num/neighs\n```\n", - "html_filename": "compute_smd_ulsph_num_neighs.html", - "short_description": "Define a computation that returns the number of neighbor particles\ninside of the smoothing kernel radius for particles interacting via\nthe updated Lagrangian SPH pair style", - "description": "Define a computation that returns the number of neighbor particles\ninside of the smoothing kernel radius for particles interacting via\nthe updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute returns a per-particle vector, which can be accessed by\nany command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given dimensionless, see [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", - "related": "[compute smd/tlsph/num/neighs ](https://docs.lammps.org/compute_smd_tlsph_num_neighs.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* eos/table/rx = style name of this fix command\n* style = linear = method of interpolation\n* file1 = filename containing the tabulated equation of state\n* N = use N values in linear tables\n* keyword = name of table keyword corresponding to table file\n* file2 = filename containing the heats of formation of each species (optional)\n* deltaHf = heat of formation for a single species in energy units (optional)\n* energyCorr = energy correction in energy units (optional)\n* tempCorrCoeff = temperature correction coefficient (optional) \n", + "examples": "\n```lmps\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD thermo.table\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5 0.025 0.0\n```\n", + "html_filename": "fix_eos_table_rx.html", + "short_description": "Fix *eos/table/rx* applies a tabulated mesoparticle equation\nof state to relate the concentration-dependent particle internal\nenergy (\\(u_i\\)) to the particle internal temperature (\\(\\theta_i\\))", + "description": "Fix *eos/table/rx* applies a tabulated mesoparticle equation\nof state to relate the concentration-dependent particle internal\nenergy (\\(u_i\\)) to the particle internal temperature (\\(\\theta_i\\)).\n\nThe concentration-dependent particle internal energy (\\(u_i\\)) is\ncomputed according to the following relation:\n\\[\n U_{i} = \\displaystyle\\sum_{j=1}^{m} c_{i,j}(u_{j} + \\Delta H_{f,j}) + \\frac{3k_{B}T}{2} + Nk_{B}T \\\\\\]\nwhere *m* is the number of species, \\(c_{i,j}\\) is the\nconcentration of species *j* in particle *i*, \\(u_j\\) is the\ninternal energy of species j, \\(\\Delta H_{f,j} is the heat of\nformation of species *j*, N is the number of molecules represented\nby the coarse-grained particle, :math:\\)k_B` is the Boltzmann constant,\nand \\(T\\) is the temperature of the system. Additionally, it is\npossible to modify the concentration-dependent particle internal\nenergy relation by adding an energy correction, temperature-dependent\ncorrection, and/or a molecule-dependent correction. An energy\ncorrection can be specified as a constant (in energy units). A\ntemperature correction can be specified by multiplying a temperature\ncorrection coefficient by the internal temperature. A molecular\ncorrection can be specified by by multiplying a molecule correction\ncoefficient by the average number of product gas particles in the\ncoarse-grain particle.\n\nFix *eos/table/rx* creates interpolation tables of length *N* from *m*\ninternal energy values of each species \\(u_j\\) listed in a file as a\nfunction of internal temperature. During a simulation, these tables\nare used to interpolate internal energy or temperature values as needed.\nThe interpolation is done with the *linear* style. For the *linear* style,\nthe internal temperature is used to find 2 surrounding table values from\nwhich an internal energy is computed by linear interpolation. A secant\nsolver is used to determine the internal temperature from the internal energy.\n\nThe first filename specifies a file containing tabulated internal\ntemperature and *m* internal energy values for each species \\(u_j\\).\nThe keyword specifies a section of the file. The format of this\nfile is described below.\n\nThe second filename specifies a file containing heat of formation\n\\(\\Delta H_{f,j}\\) for each species.\n\nIn cases where the coarse-grain particle represents a single molecular\nspecies (i.e., no reactions occur and fix *rx* is not present in the\ninput file), fix *eos/table/rx* can be applied in a similar manner to\nfix *eos/table* within a non-reactive DPD simulation. In this case,\nthe heat of formation filename is replaced with the heat of formation\nvalue for the single species. Additionally, the energy correction and\ntemperature correction coefficients may also be specified as fix\narguments.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# EOS TABLE (one or more comment or blank lines)\n\nKEYWORD (keyword is first text on line)\nN 500 h2 no2 n2 ... no (N parameter species1 species2 ... speciesN)\n(blank)\n1 1.00 0.000 ... 0.0000 (index, internal temperature, internal energy of species 1, ..., internal energy of species m)\n2 1.02 0.001 ... 0.0002\n...\n500 10.0 0.500 ... 1.0000\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the fix command.\n\nThe next line lists the number of table entries and the species names\nthat correspond with all the species listed in the reaction equations\nthrough the *fix rx* command.\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Let Nfile = \"N\" in the tabulated file.\nWhat LAMMPS does is a preliminary interpolation by creating splines\nusing the Nfile tabulated values as nodal points.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe internal temperature (in temperature units), the third value until\nthe *m+3* value are the internal energies of the m species (in energy units).\n\nNote that all internal temperature and internal energy values must\nincrease from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\nThe format of a heat of formation file is as follows (without the\nparenthesized comments):\n\n```\n# HEAT OF FORMATION TABLE (one or more comment or blank lines)\n\n(blank)\nh2 0.00 (species name, heat of formation)\nno2 0.34\nn2 0.00\n...\nno 0.93\n```\nNote that the species can be listed in any order. The tag that is\nused as the species name must correspond with the tags used to define\nthe reactions with the [fix rx ](https://docs.lammps.org/fix_rx.html) command.\n\nAlternatively, corrections to the EOS can be included by specifying\nthree additional columns that correspond to the energy correction,\nthe temperature correction coefficient and molecule correction\ncoefficient. In this case, the format of the file is as follows:\n\n```\n# HEAT OF FORMATION TABLE (one or more comment or blank lines)\n\n(blank)\nh2 0.00 1.23 0.025 0.0 (species name, heat of formation, energy correction, temperature correction coefficient, molecule correction coefficient)\nno2 0.34 0.00 0.000 -1.76\nn2 0.00 0.00 0.000 -1.76\n...\nno 0.93 0.00 0.000 -1.76\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThe equation of state must be a monotonically increasing function.\n\nAn error will occur if the internal temperature or internal energies\nare not within the table cutoffs.\n", + "related": "[fix rx ](https://docs.lammps.org/fix_rx.html),\n[pair dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html)\n" }, { "command": [ - "fix acks2/reaxff", - "fix acks2/reaxff/kk" + "compute heat/flux" ], "syntax": [ - "fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args" + "compute ID group-ID heat/flux ke-ID pe-ID stress-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -3686,146 +3340,117 @@ export const command_docs = [ "choices": [] }, { - "arg": "acks2/reaxff", - "type": 3, - "choices": [ - "acks2/reaxff", - "acks2/reaxff/kk" - ] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "cutlo", - "type": 2, - "choices": [] - }, - { - "arg": "cuthi", - "type": 2, + "arg": "heat/flux", + "type": 1, "choices": [] }, { - "arg": "tolerance", + "arg": "ke-ID", "type": 2, "choices": [] }, { - "arg": "params", + "arg": "pe-ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "stress-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* acks2/reaxff = style name of this fix command\n* Nevery = perform ACKS2 every this many steps\n* cutlo,cuthi = lo and hi cutoff for Taper radius\n* tolerance = precision to which charges will be equilibrated\n* params = reaxff or a filename\n* one or more keywords or keyword/value pairs may be appended \n *      keyword = maxiter \n       maxiter N = limit the number of iterations to N \n", - "examples": "\n```lmps\nfix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 reaxff\nfix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2 maxiter 500\n```\n", - "html_filename": "fix_acks2_reaxff.html", - "short_description": "Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge\nequilibration method as described in **Verstraelen**", - "description": "Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge\nequilibration method as described in **Verstraelen**.\nACKS2 impedes unphysical long-range charge transfer sometimes seen with\nQEq (e.g., for dissociation of molecules), at increased computational\ncost. It is typically used in conjunction with the ReaxFF force field\nmodel as implemented in the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)\ncommand, but it can be used with any potential in LAMMPS, so long as it\ndefines and uses charges on each atom. For more technical details about\nthe charge equilibration performed by fix acks2/reaxff, see the\n**O'Hearn** paper.\n\nThe ACKS2 method minimizes the electrostatic energy of the system by\nadjusting the partial charge on individual atoms based on interactions\nwith their neighbors. It requires some parameters for each atom type.\nIf the *params* setting above is the word \"reaxff\", then these are\nextracted from the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command and\nthe ReaxFF force field file it reads in. If a file name is specified\nfor *params*, then the parameters are taken from the specified file\nand the file must contain one line for each atom type. The latter\nform must be used when performing QeQ with a non-ReaxFF potential.\nThe lines should be formatted as follows:\n\n```\nbond_softness\nitype chi eta gamma bcut\n```\nwhere the first line is the global parameter *bond_softness*. The\nremaining 1 to Ntypes lines include *itype*, the atom type from 1 to\nNtypes, *chi*, the electronegativity in eV, *eta*, the self-Coulomb\npotential in eV, *gamma*, the valence orbital exponent, and *bcut*, the\nbond cutoff distance. Note that these 4 quantities are also in the\nReaxFF potential file, except that eta is defined here as twice the eta\nvalue in the ReaxFF file. Note that unlike the rest of LAMMPS, the units\nof this fix are hard-coded to be \\(\\mathring{\\textrm{A}}\\), eV, and\nelectronic charge.\n\nThe optional *maxiter* keyword allows changing the max number\nof iterations in the linear solver. The default value is 200.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). This fix computes a global scalar (the number of\niterations) for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Verstraelen)** Verstraelen, Ayers, Speybroeck, Waroquier, J. Chem. Phys. 138, 074108 (2013). \n \n**(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1--C22 (2020). \n ", - "restrictions": "This fix is part of the REAXFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix does not correctly handle interactions involving multiple\nperiodic images of the same atom. Hence, it should not be used for\nperiodic cell dimensions less than \\(10~\\mathring{\\textrm{A}}\\).\n\nThis fix may be used in combination with [fix efield ](https://docs.lammps.org/fix_efield.html)\nand will apply the external electric field during charge equilibration,\nbut there may be only one fix efield instance used, it may only use a\nconstant electric field, and the electric field vector may only have\ncomponents in non-periodic directions.\n", - "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* heat/flux = style name of this compute command\n* ke-ID = ID of a compute that calculates per-atom kinetic energy\n* pe-ID = ID of a compute that calculates per-atom potential energy\n* stress-ID = ID of a compute that calculates per-atom stress \n", + "examples": "\n```lmps\ncompute myFlux all heat/flux myKE myPE myStress\n```\n", + "html_filename": "compute_heat_flux.html", + "short_description": "Define a computation that calculates the heat flux vector based on\ncontributions from atoms in the specified group", + "description": "Define a computation that calculates the heat flux vector based on\ncontributions from atoms in the specified group. This can be used by\nitself to measure the heat flux through a set of atoms (e.g., a region\nbetween two thermostatted reservoirs held at different temperatures),\nor to calculate a thermal conductivity using the equilibrium\nGreen-Kubo formalism.\n\nFor other non-equilibrium ways to compute a thermal conductivity, see\nthe [Howto kappa ](https://docs.lammps.org/Howto_kappa.html) doc page. These include use of\nthe [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html) command\nfor the Muller-Plathe method. Or the [fix heat ](https://docs.lammps.org/fix_heat.html) command\nwhich can add or subtract heat from groups of atoms.\n\nThe compute takes three arguments which are IDs of other\n[computes ](https://docs.lammps.org/compute.html). One calculates per-atom kinetic energy\n(\\ *ke-ID* ), one calculates per-atom potential energy (\\ *pe-ID)*, and the\nthird calculates per-atom stress (\\ *stress-ID* ).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These other computes should provide values for all the atoms in\n > the group this compute specifies. That means the other computes could\n > use the same group as this compute, or they can just use group \"all\"\n > (or any group whose atoms are superset of the atoms in this compute's\n > group). LAMMPS does not check for this. \n > \n\nIn case of two-body interactions, the heat flux \\(\\mathbf{J}\\) is defined as\n\\[\\begin{align*} \\mathbf{J} &= \\frac{1}{V} \\left[ \\sum_i e_i \\mathbf{v}_i - \\sum_{i} \\mathbf{S}_{i} \\mathbf{v}_i \\right] \\\\\n &= \\frac{1}{V} \\left[ \\sum_i e_i \\mathbf{v}_i + \\sum_{i ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) and\n > [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n > commands have options for which\n > terms to include in their calculation (pair, bond, etc). The heat\n > flux calculation will thus include exactly the same terms. Normally\n > you should use [compute stress/atom virial ](https://docs.lammps.org/compute_stress_atom.html)\n > or [compute centroid/stress/atom virial ](https://docs.lammps.org/compute_stress_atom.html)\n > so as not to include a kinetic energy term in the heat flux. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The compute *heat/flux* has been reported to produce unphysical\n > values for angle, dihedral, improper and constraint force contributions\n > when used with [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n > as discussed in **Surblys3**, **Boone**\n > and **Surblys4**. You are strongly advised to\n > use [compute centroid/stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n > which has been implemented specifically for such cases. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Due to an implementation detail, the \\(y\\) and \\(z\\)\n > components of heat flux from [fix rigid ](https://docs.lammps.org/fix_rigid.html)\n > contribution when computed via [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n > are highly unphysical and should not be used. \n > \n\nThe Green--Kubo formulas relate the ensemble average of the\nauto-correlation of the heat flux \\(\\mathbf{J}\\)\nto the thermal conductivity \\(\\kappa\\):\n\\[ \\kappa = \\frac{V}{k_B T^2} \\int_0^\\infty \\langle J_x(0) J_x(t) \\rangle \\, \\mathrm{d} t = \\frac{V}{3 k_B T^2} \\int_0^\\infty \\langle \\mathbf{J}(0) \\cdot \\mathbf{J}(t) \\rangle \\, \\mathrm{d}t\\]\n----------\n\nThe heat flux can be output every so many timesteps (e.g., via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command). Then as a\npost-processing operation, an auto-correlation can be performed, its\nintegral estimated, and the Green--Kubo formula above evaluated.\n\nThe [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command can calculate\nthe auto-correlation. The trap() function in the\n[variable ](https://docs.lammps.org/variable.html) command can calculate the integral.\n\nAn example LAMMPS input script for solid argon is appended below. The\nresult should be an average conductivity\n\\(\\approx 0.29~\\mathrm{W/m \\cdot K}\\).\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 6.\nThe first three components are the \\(x\\), \\(y\\), and \\(z\\)\ncomponents of the full heat flux vector\n(i.e., \\(J_x\\), \\(J_y\\), and \\(J_z\\)).\nThe next three components are the \\(x\\), \\(y\\), and \\(z\\)\ncomponents of just the convective portion of the flux (i.e., the\nfirst term in the equation for \\(\\mathbf{J}\\)).\nEach component can be accessed by indices 1--6. These values can be used by any\ncommand that uses global vector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) documentation for an overview of\nLAMMPS output options.\n\nThe vector values calculated by this compute are \"extensive\", meaning\nthey scale with the number of atoms in the simulation. They can be\ndivided by the appropriate volume to get a flux, which would then be an\n\"intensive\" value, meaning independent of the number of atoms in the\nsimulation. Note that if the compute group is \"all\", then the\nappropriate volume to divide by is the simulation box volume. However,\nif a group with a subset of atoms is used, it should be the volume\ncontaining those atoms.\n\nThe vector values will be in energy\\*velocity [units ](https://docs.lammps.org/units.html). Once\ndivided by a volume the units will be that of flux, namely\nenergy/area/time [units ](https://docs.lammps.org/units.html)\n\n**(Surblys3)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019). \n \n**(Boone)** Boone, Babaei, Wilmer, J Chem Theory Comput, 15, 5579--5587 (2019). \n \n**(Surblys4)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021). \n ", + "restrictions": " none\n", + "related": "[fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html),\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n[variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "pair_style none" + "fix enforce2d", + "fix enforce2d/kk" ], "syntax": [ - "pair_style none" + "fix ID group-ID enforce2d" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "none", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style none\n```\n", - "html_filename": "pair_none.html", - "short_description": "Using a pair style of *none* means that any previous pair style setting\nwill be deleted and pairwise forces and energies are not computed", - "description": "Using a pair style of *none* means that any previous pair style setting\nwill be deleted and pairwise forces and energies are not computed.\n\nAs a consequence there will be a pairwise force cutoff of 0.0, which has\nimplications for the default setting of the neighbor list and the\ncommunication cutoff. Those are the sum of the largest pairwise cutoff\nand the neighbor skin distance (see the documentation of the\n[neighbor ](https://docs.lammps.org/neighbor.html) command and the [comm_modify](https://docs.lammps.org/comm_modify.html) command). When you have bonds, angles, dihedrals, or\nimpropers defined at the same time, you must set the communication\ncutoff so that communication cutoff distance is large enough to acquire\nand communicate sufficient ghost atoms from neighboring subdomains as\nneeded for computing bonds, angles, etc.\n\nA pair style of *none* will also not request a pairwise neighbor list.\nHowever if the [neighbor ](https://docs.lammps.org/neighbor.html) style is *bin*, data\nstructures for binning are still allocated. If the neighbor list cutoff\nis small, then these data structures can consume a large amount of\nmemory. So you should either set the neighbor style to *nsq* or set the\nskin distance to a larger value.\n\nSee the [pair_style zero ](https://docs.lammps.org/pair_zero.html) for a way to set a pairwise\ncutoff and thus trigger the building of a neighbor lists and setting\na corresponding communication cutoff, but compute no pairwise interactions.\n", - "restrictions": "You must not use a [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command with this pair\nstyle. Since there is no interaction computed, you cannot set any\ncoefficients for it.\n", - "related": "[pair_style zero ](https://docs.lammps.org/pair_zero.html)\n" -}, -{ - "command": [ - "pair_style sph/taitwater/morris" - ], - "syntax": [ - "pair_style sph/taitwater/morris" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "sph/taitwater/morris", - "type": 1, - "choices": [] + "arg": "enforce2d", + "type": 3, + "choices": [ + "enforce2d", + "enforce2d/kk" + ] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style sph/taitwater/morris\npair_coeff * * 1000.0 1430.0 1.0 2.4\n```\n", - "html_filename": "pair_sph_taitwater_morris.html", - "short_description": "The sph/taitwater/morris style computes pressure forces between SPH\nparticles according to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound", - "description": "The sph/taitwater/morris style computes pressure forces between SPH\nparticles according to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThis pair style also computes laminar viscosity :ref:[(Morris) ](https://docs.lammps.org/Morris>`.See `this PDF guide `.See `this PDF guide ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > strains that are used to generate finite difference\n > approximations to the exact virial stress. For typical systems, a value in\n > the range of 1 part in 1e5 to 1e6 will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output values will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output values will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical virial values should be largely\n > independent of delta. \n > \n\n----------\n\nThe *Nevery* argument specifies on what timesteps the force will\nbe used calculated by finite difference.\n\nThe *delta* argument specifies the size of the displacement each\natom will undergo.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a global vector which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html), which stores the components of\nthe virial stress tensor as calculated by finite difference. The\nglobal vector can only be accessed on timesteps that are multiples\nof *Nevery* since that is when the finite difference virial is\ncalculated. See the examples in *examples/numdiff* directory\nto see how this fix can be used to directly compare with\nthe analytic virial stress tensor computed by LAMMPS.\n\nThe order of the virial stress tensor components is *xx*, *yy*, *zz*,\n*yz*, *xz*, and *xy*, consistent with Voigt notation. Note that\nthe vector produced by [compute pressure ](https://docs.lammps.org/compute_pressure.html)\nuses a different ordering, with *yz* and *xy* swapped.\n\nThe vector values calculated by this compute are\n\"intensive\". The vector values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix numdiff ](https://docs.lammps.org/fix_numdiff.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "fix nvt/uef" + "pair_style lubricate", + "pair_style lubricate/omp", + "pair_style lubricate/poly", + "pair_style lubricate/poly/omp" ], "syntax": [ - "fix ID group-ID style_name erate edot_x edot_y temp Tstart Tstop Tdamp keyword value ..." + "pair_style style mu flaglog flagfld cutinner cutoff flagHI flagVF" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "npt/uef", + "arg": "lubricate/poly/omp", "type": 3, "choices": [ - "nvt/uef", - "npt/uef" + "lubricate", + "lubricate/poly", + "lubricate/omp", + "lubricate/poly/omp" ] }, { - "arg": "erate", - "type": 2, - "choices": [] - }, - { - "arg": "edot_x", - "type": 2, - "choices": [] - }, - { - "arg": "edot_y", + "arg": "mu", "type": 2, "choices": [] }, { - "arg": "temp", + "arg": "flaglog", "type": 2, "choices": [] }, { - "arg": "Tstart", + "arg": "flagfld", "type": 2, "choices": [] }, { - "arg": "Tstop", + "arg": "cutinner", "type": 2, "choices": [] }, { - "arg": "Tdamp", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "flagHI", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "flagVF", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt/uef or npt/uef\n* *Tstart*, *Tstop*, and Tdamp are documented in the [fix npt ](https://docs.lammps.org/fix_nh.html) command\n* edot_x and edot_y are the strain rates in the x and y directions (1/(time units))\n* one or more keyword/value pairs may be appended \n *      keyword = erate or ext or strain or temp or iso or x or y or z or tchain or pchain or tloop or ploop or mtk \n       erate values = e_x e_y = true strain rates (required) \n       ext value = x or y or z or xy or yz or xz = external dimensions \n       sets the external dimensions used to calculate the scalar pressure \n       strain values = e_x e_y = initial strain \n       usually not needed, but may be needed to resume a run with a data file. \n       temp, iso, x, y, z, tchain, pchain, tloop, ploop, mtk \n       keywords documented by the [fix npt ](https://docs.lammps.org/fix_nh.html) command \n", - "examples": "\n```lmps\nfix uniax_nvt all nvt/uef temp 400 400 100 erate 0.00001 -0.000005\nfix biax_nvt all nvt/uef temp 400 400 100 erate 0.000005 0.000005\nfix uniax_npt all npt/uef temp 400 400 300 iso 1 1 3000 erate 0.00001 -0.000005 ext yz\nfix biax_npt all npt/uef temp 400 400 100 erate -0.00001 0.000005 x 1 1 3000\n```\n", - "html_filename": "fix_nh_uef.html", - "short_description": "These fixes can be used to simulate non-equilibrium molecular dynamics\n(NEMD) under diagonal flow fields, including uniaxial and bi-axial flow", - "description": "These fixes can be used to simulate non-equilibrium molecular dynamics\n(NEMD) under diagonal flow fields, including uniaxial and bi-axial flow.\nSimulations under continuous extensional flow may be carried out for an\nindefinite amount of time. It is an implementation of the boundary\nconditions from **Dobson**, and also uses numerical\nlattice reduction as was proposed by **Hunt**. The lattice\nreduction algorithm is from **Semaev**. The fix is\nintended for simulations of homogeneous flows, and integrates the SLLOD\nequations of motion, originally proposed by Hoover and Ladd (see\n**Sllod**). Additional detail about this\nimplementation can be found in **Nicholson**.\n\nNote that NEMD simulations of a continuously strained system can be\nperformed using the [fix deform ](https://docs.lammps.org/fix_deform.html), [fix nvt/sllod](https://docs.lammps.org/fix_nvt_sllod.html), and [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\ncommands.\n\nThe applied flow field is set by the *erate* keyword. The values\n*edot_x* and *edot_y* correspond to the strain rates in the xx and yy\ndirections. It is implicitly assumed that the flow field is\ntraceless, and therefore the strain rate in the zz direction is eqal\nto -(*edot_x* + *edot_y*).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Due to an instability in the SLLOD equations under extension,\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) should be used to regularly reset the\n > linear momentum. \n > \n\nThe boundary conditions require a simulation box that does not have a\nconsistent alignment relative to the applied flow field. Since LAMMPS\nutilizes an upper-triangular simulation box, it is not possible to\nexpress the evolving simulation box in the same coordinate system as the\nflow field. These fixes keep track of two coordinate systems: the flow\nframe, and the upper triangular LAMMPS frame. The coordinate systems are\nrelated to each other through the QR decomposition, as is illustrated in\nthe image below.\n\n ![Image](JPG/uef_frames.jpg) \n\nDuring most molecular dynamics operations, the system is represented\nin the LAMMPS frame. Only when the positions and velocities are\nupdated is the system rotated to the flow frame, and it is rotated\nback to the LAMMPS frame immediately afterwards. For this reason, all\nvector-valued quantities (except for the tensors from\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) and\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html)) will be computed in the\nLAMMPS frame. Rotationally invariant scalar quantities like the\ntemperature and hydrostatic pressure are frame-invariant and will be\ncomputed correctly. Additionally, the system is in the LAMMPS frame\nduring all of the output steps, and therefore trajectory files made\nusing the dump command will be in the LAMMPS frame unless the\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html) command is used.\n\n----------\n\nTemperature control is achieved with the default Nose-Hoover style\nthermostat documented in [fix nvt ](https://docs.lammps.org/fix_nh.html). When this fix is\nactive, only the peculiar velocity of each atom is stored, defined as\nthe velocity relative to the streaming velocity. This is in contrast to\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), which uses a lab-frame velocity,\nand removes the contribution from the streaming velocity in order to\ncompute the temperature.\n\nPressure control is achieved using the default Nose-Hoover barostat\ndocumented in [fix npt ](https://docs.lammps.org/fix_nh.html). There are two ways to control the\npressure using this fix. The first method involves using the *ext*\nkeyword along with the *iso* pressure style. With this method, the\npressure is controlled by scaling the simulation box isotropically to\nachieve the average pressure only in the directions specified by\n*ext* . For example, if the *ext* value is set to *xy*, the average\npressure (Pxx+Pyy)/2 will be controlled.\n\nThis example command will control the total hydrostatic pressure under\nuniaxial tension:\n\n```lmps\nfix f1 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xyz\n```\nThis example command will control the average stress in compression\ndirections, which would typically correspond to free surfaces under\ndrawing with uniaxial tension:\n\n```lmps\nfix f2 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xy\n```\nThe second method for pressure control involves setting the normal\nstresses using the *x*, *y*, and/or *z* keywords. When using this\nmethod, the same pressure must be specified via *Pstart* and *Pstop*\nfor all dimensions controlled. Any choice of pressure conditions that\nwould cause LAMMPS to compute a deviatoric stress are not permissible\nand will result in an error. Additionally, all dimensions with\ncontrolled stress must have the same applied strain rate. The *ext*\nkeyword must be set to the default value (\\ *xyz* ) when using this\nmethod.\n\nFor example, the following commands will work:\n\n```lmps\nfix f3 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 y 1 1 5 erate -0.5 -0.5\nfix f4 all npt/uef temp 0.7 0.7 0.5 z 1 1 5 erate 0.5 0.5\n```\nThe following commands will not work:\n\n```lmps\nfix f5 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 1 1 5 erate -0.5 -0.5\nfix f6 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 2 2 5 erate 0.5 0.5\n```\n----------\n\nThese fixes compute a temperature and pressure each timestep. To do\nthis, they create their own computes of style \"temp/uef\" and\n\"pressure/uef\", as if one of these two sets of commands had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/uef\ncompute fix-ID_press group-ID pressure/uef fix-ID_temp\n\ncompute fix-ID_temp all temp/uef\ncompute fix-ID_press all pressure/uef fix-ID_temp\n```\nSee the [compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html) and [computepressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) commands for details. Note that\nthe IDs of the new computes are the fix-ID + underscore + \"temp\" or\nfix_ID + underscore + \"press\".\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix writes the state of all the thermostat and barostat variables,\nas well as the cumulative strain applied, to [binary restart files](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html) command for info\non how to re-specify a fix in an input script that reads a restart file,\nso that the operation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is not necessary to set the *strain* keyword when resuming a\n > run from a restart file. Only for resuming from data files, which do\n > not contain the cumulative applied strain, will this keyword be\n > necessary. \n > \n\nThese fixes can be used with the [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp*\nand *press* options. The temperature and pressure computes used must be\nof type *temp/uef* and *pressure/uef* .\n\nThese fixes compute the same global scalar and vector quantities as\n[fix nvt andnpt ](https://docs.lammps.org/fix_nh.html).\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Dobson)** Dobson, J Chem Phys, 141, 184103 (2014). \n \n**(Hunt)** Hunt, Mol Simul, 42, 347 (2016). \n \n**(Semaev)** Semaev, Cryptography and Lattices, 181 (2001). \n \n**(Sllod)** Evans and Morriss, Phys Rev A, 30, 1528 (1984). \n \n**(Nicholson)** Nicholson and Rutledge, J Chem Phys, 145,\n244903 (2016). \n ", - "restrictions": "These fixes are part of the UEF package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nDue to requirements of the boundary conditions, when the *strain*\nkeyword is set to zero (or unset), the initial simulation box must be\ncubic and have style triclinic. If the box is initially of type ortho,\nuse [change_box ](https://docs.lammps.org/change_box.html) before invoking the fix.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html),\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html),\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html),\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html)\n" + "parameters": "* style = lubricate or lubricate/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 to exclude/include log terms in the lubrication approximation\n* flagfld = 0/1 to exclude/include Fast Lubrication Dynamics (FLD) effects\n* cutinner = inner cutoff distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms \n", + "examples": "(all assume radius = 1)\n\n```lmps\npair_style lubricate 1.5 1 1 2.01 2.5\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n\npair_style lubricate 1.5 1 1 2.01 2.5\npair_coeff * *\nvariable mu equal ramp(1,2)\nfix 1 all adapt 1 pair lubricate mu * * v_mu\n```\n", + "html_filename": "pair_lubricate.html", + "short_description": "Styles *lubricate* and *lubricate/poly* compute hydrodynamic\ninteractions between mono-disperse finite-size spherical particles in\na pairwise fashion", + "description": "Styles *lubricate* and *lubricate/poly* compute hydrodynamic\ninteractions between mono-disperse finite-size spherical particles in\na pairwise fashion. The interactions have 2 components. The first is\nBall-Melrose lubrication terms via the formulas in **Ball1**\n\\[\\begin{align*} \n W & = - a_{sq} | (v_1 - v_2) \\bullet \\mathbf{nn} |^2 -\n a_{sh} | (\\omega_1 + \\omega_2) \\bullet\n (\\mathbf{I} - \\mathbf{nn}) - 2 \\Omega_N |^2 - \\\\\n & a_{pu} | (\\omega_1 - \\omega_2) \\bullet (\\mathbf{I} - \\mathbf{nn}) |^2 -\n a_{tw} | (\\omega_1 - \\omega_2) \\bullet \\mathbf{nn} |^2 \\qquad r < r_c \\\\\n & \\\\\n \\Omega_N & = \\mathbf{n} \\times (v_1 - v_2) / r \\end{align*} \\]\nwhich represents the dissipation W between two nearby particles due to\ntheir relative velocities in the presence of a background solvent with\nviscosity *mu* . Note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity.\n\nThe Asq (squeeze) term is the strongest and is included if *flagHI* is\nset to 1 (default). It scales as 1/gap where gap is the separation\nbetween the surfaces of the 2 particles. The Ash (shear) and Apu\n(pump) terms are only included if *flaglog* is set to 1. They are the\nnext strongest interactions, and the only other singular interaction,\nand scale as log(gap). Note that *flaglog* = 1 and *flagHI* = 0 is\ninvalid, and will result in a warning message, after which *flagHI* will\nbe set to 1. The Atw (twist) term is currently not included. It is\ntypically a very small contribution to the lubrication forces.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n*Cutinner* sets the minimum center-to-center separation that will be\nused in calculations irrespective of the actual separation. *Cutoff*\nis the maximum center-to-center separation at which an interaction is\ncomputed. Using a *cutoff* less than 3 radii is recommended if\n*flaglog* is set to 1.\n\nThe other component is due to the Fast Lubrication Dynamics (FLD)\napproximation, described in **Kumar1**, which can be\nrepresented by the following equation\n\\[\n F^{H} = -R_{FU}(U-U^{\\infty}) + R_{FE}E^{\\infty}\\]\nwhere U represents the velocities and angular velocities of the\nparticles, \\(U^{\\infty}\\) represents the velocity and the angular velocity\nof the undisturbed fluid, and \\(E^{\\infty}\\) represents the rate of strain\ntensor of the undisturbed fluid with viscosity *mu* . Again, note that\nthis is dynamic viscosity which has units of mass/distance/time, not\nkinematic viscosity. Volume fraction corrections to R_FU are included\nas long as *flagVF* is set to 1 (default).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the FLD terms, these pair styles are designed to be\n > used with explicit time integration and a correspondingly small\n > timestep. Thus either [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) or [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html) should be used for time integration.\n > To perform implicit FLD, see the [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html) command. \n > \n\nStyle *lubricate* requires monodisperse spherical particles; style\n*lubricate/poly* allows for polydisperse spherical particles.\n\nThe viscosity *mu* can be varied in a time-dependent manner over the\ncourse of a simulation, in which case in which case the pair_style\nsetting for *mu* will be overridden. See the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand for details.\n\nIf the suspension is sheared via the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand then the pair style uses the shear rate to adjust the\nhydrodynamic interactions accordingly. Volume changes due to fix\ndeform are accounted for when computing the volume fraction\ncorrections to R_FU.\n\nWhen computing the volume fraction corrections to R_FU, the presence\nof walls (whether moving or stationary) will affect the volume\nfraction available to colloidal particles. This is currently accounted\nfor with the following types of walls: [wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[wall/lj126 ](https://docs.lammps.org/fix_wall.html), [wall/colloid ](https://docs.lammps.org/fix_wall.html), and\n[wall/harmonic ](https://docs.lammps.org/fix_wall.html). For these wall styles, the correct\nvolume fraction will be used when walls do not coincide with the box\nboundary, as well as when walls move and thereby cause a change in the\nvolume fraction. Other wall styles will still work, but they will\nresult in the volume fraction being computed based on the box\nboundaries.\n\nSince lubrication forces are dissipative, it is usually desirable to\nthermostat the system at a constant temperature. If Brownian motion\n(at a constant temperature) is desired, it can be set using the\n[pair_style brownian ](https://docs.lammps.org/pair_brownian.html) command. These pair styles\nand the brownian style should use consistent parameters for *mu*,\n*flaglog*, *flagfld*, *cutinner*, *cutoff*, *flagHI* and *flagVF* .\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for this\npair style can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ball1)** Ball and Melrose, Physica A, 247, 444-472 (1997). \n \n**(Kumar1)** Kumar and Higdon, Phys Rev E, 82, 051401 (2010). See also\nhis thesis for more details: A. Kumar, \"Microscale Dynamics in\nSuspensions of Non-spherical Particles\", Thesis, University of\nIllinois Urbana-Champaign,\n(2010). ([https://www.ideals.illinois.edu/handle/2142/16032](https://www.ideals.illinois.edu/handle/2142/16032)) \n ", + "restrictions": "These styles are part of the COLLOID package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly spherical monodisperse particles are allowed for pair_style\nlubricate.\n\nOnly spherical particles are allowed for pair_style lubricate/poly.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they\ncompute depend on atom velocities. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for more details.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\n" }, { "command": [ - "fix aveforce" + "compute stress/cylinder" ], "syntax": [ - "fix ID group-ID aveforce fx fy fz keyword value ..." + "compute ID group-ID style args" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -3976,56 +3591,72 @@ export const command_docs = [ "choices": [] }, { - "arg": "aveforce", - "type": 1, - "choices": [] - }, - { - "arg": "fx", - "type": 2, - "choices": [] - }, - { - "arg": "fy", - "type": 2, - "choices": [] + "arg": "stress/cylinder", + "type": 3, + "choices": [ + "stress/spherical", + "stress/cylinder" + ] }, { - "arg": "fz", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/spherical or stress/cylinder\n* args = argument specific to the compute style \n *   *stress/cylinder* args = zlo zh Rmax bin_width keyword \n    zlo = minimum z-boundary for cylinder \n    zhi = maximum z-boundary for cylinder \n    Rmax = maximum radius to perform calculation to \n    bin_width = width of radial bins to use for calculation \n    keyword = ke (zero or one can be specified) \n    ke = yes or no \n *   *stress/spherical* \n    x0, y0, z0 = origin of the spherical coordinate system \n    bin_width = width of spherical shells \n    Rmax = maximum radius of spherical shells \n", + "examples": "\n```lmps\ncompute 1 all stress/cylinder -10.0 10.0 15.0 0.25\ncompute 1 all stress/cylinder -10.0 10.0 15.0 0.25 ke no\ncompute 1 all stress/spherical 0 0 0 0.1 10\n```\n", + "html_filename": "compute_stress_curvilinear.html", + "short_description": "Compute *stress/cylinder*, and compute\n*stress/spherical* define computations that calculate profiles of the\ndiagonal components of the local stress tensor in the specified\ncoordinate system", + "description": "Compute *stress/cylinder*, and compute\n*stress/spherical* define computations that calculate profiles of the\ndiagonal components of the local stress tensor in the specified\ncoordinate system. The stress tensor is split into a kinetic\ncontribution \\(P^k\\) and a virial contribution \\(P^v\\). The sum\ngives the total stress tensor \\(P = P^k+P^v\\). These computes can\nfor example be used to calculate the diagonal components of the local\nstress tensor of surfaces with cylindrical or spherical\nsymmetry. These computes obeys momentum balance through fluid\ninterfaces. They use the Irving--Kirkwood contour, which is the straight\nline between particle pairs.\n\nThe compute *stress/cylinder* computes the stress profile along the\nradial direction in cylindrical coordinates, as described in\n**Addington1**. The compute *stress/spherical*\ncomputes the stress profile along the radial direction in spherical\ncoordinates, as described in **Ikeshoji4**.\n\n\n #### Output info\n\nThe default output columns for *stress/cylinder* are the radius to the\ncenter of the cylindrical shell, number density, \\(P^k_{rr}\\),\n\\(P^k_{\\phi\\phi}\\), \\(P^k_{zz}\\), \\(P^v_{rr}\\),\n\\(P^v_{\\phi\\phi}\\), and \\(P^v_{zz}\\). When the keyword *ke* is\nset to *no*, the kinetic contributions are not calculated, and\nconsequently there are only 5 columns: the position of the center of the\ncylindrical shell, the number density, \\(P^v_{rr}\\),\n\\(P^v_{\\phi\\phi}\\), and \\(P^v_{zz}\\). The number of bins (rows) is\n\\(R_\\text{max}/b\\), where \\(b\\) is the specified bin width.\n\nThe output columns for *stress/spherical* are the position of the center\nof the spherical shell, the number density, \\(P^k_{rr}\\),\n\\(P^k_{\\theta\\theta}\\), \\(P^k_{\\phi\\phi}\\), \\(P^v_{rr}\\),\n\\(P^v_{\\theta\\theta}\\), and \\(P^v_{\\phi\\phi}\\). There are 8\ncolumns and the number of bins (rows) is \\(R_\\text{max}/b\\), where\n\\(b\\) is the specified bin width.\n\nThis array can be output with [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n\n```lmps\ncompute 1 all stress/spherical 0 0 0 0.1 10\nfix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector\n```\nThe values calculated by this compute are \"intensive\". The stress\nvalues will be in pressure [units ](https://docs.lammps.org/units.html). The number density\nvalues are in inverse volume [units ](https://docs.lammps.org/units.html).\n\nNOTE 1: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the\n[pair_modify tail yes ](https://docs.lammps.org/pair_modify.html)\ncommand, since those are contributions to the global system pressure.\n\n**(Addington1)** Addington, Long, Gubbins, J Chem Phys, 149, 084109 (2018). \n \n**(Ikeshoji4)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003). \n ", + "restrictions": "These computes calculate the stress tensor contributions for pair styles\nonly (i.e., no bond, angle, dihedral, etc. contributions, and in the\npresence of bonded interactions, the result may be incorrect due to\nexclusions for [special bonds ](https://docs.lammps.org/special_bonds.html) excluding pairs of atoms\ncompletely). It requires pairwise force calculations not available for most\nmany-body pair styles. Note that \\(k\\)-space calculations are also excluded.\n\nThese computes are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html), [compute stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html)\n" +}, +{ + "command": [ + "improper_style ring", + "improper_style ring/omp" + ], + "syntax": [ + "improper_style ring" + ], + "args": [ + [ { - "arg": "keyword", - "type": 2, + "arg": "improper_style", + "type": 1, "choices": [] }, { - "arg": "value", - "type": 2, - "choices": [] + "arg": "ring", + "type": 3, + "choices": [ + "ring", + "ring/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* aveforce = style name of this fix command\n* fx,fy,fz = force component values (force units) \n *        any of fx,fy,fz can be a variable (see below) \n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", - "examples": "\n```lmps\nfix pressdown topwall aveforce 0.0 -1.0 0.0\nfix 2 bottomwall aveforce NULL -1.0 0.0 region top\nfix 2 bottomwall aveforce NULL -1.0 v_oscillate region top\n```\n", - "html_filename": "fix_aveforce.html", - "short_description": "Apply an additional external force to a group of atoms in such a way\nthat every atom experiences the same force", - "description": "Apply an additional external force to a group of atoms in such a way\nthat every atom experiences the same force. This is useful for\npushing on wall or boundary atoms so that the structure of the wall\ndoes not change over time.\n\nThe existing force is averaged for the group of atoms, component by\ncomponent. The actual force on each atom is then set to the average\nvalue plus the component specified in this command. This means each\natom in the group receives the same force.\n\nAny of the *fx*, *fy*, or *fz* values can be specified as :code:`NULL`, which\nmeans the force in that dimension is not changed. Note that this is not the\nsame as specifying a 0.0 value, since that sets all forces to the same\naverage value without adding in any additional force.\n\nAny of the three quantities defining the force components, namely *fx*, *fy*,\nand *fz*, can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html)\\ .\nIf the value is a variable, it should be specified as v_name, where\nname is the variable name. In this case, the variable will be\nevaluated each timestep, and its value used to determine the average\nforce.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent average force.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global three-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the timestep as\nthe iteration count during the minimization.\n", - "restrictions": " none\n", - "related": "[fix setforce ](https://docs.lammps.org/fix_setforce.html), [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style ring\nimproper_coeff 1 8000 70.5\n```\n", + "html_filename": "improper_ring.html", + "short_description": "The *ring* improper style uses the potential\n\\[\\begin{align*} \n E = &\\frac{1}{6} K \\left(\\Delta_{ijl} + \\Delta_{ijk} + \\Delta_{kjl} \\right)^6 \\\\\n \\Delta_{ijl} = & \\cos{\\theta_{ijl} - \\cos{\\theta_0}} \\\\\n \\Delta_{ijk} = & \\cos{\\theta_{ijk} - \\cos{\\theta_0}} \\\\\n \\Delta_{kjl} = & \\cos{\\theta_{kjl} - \\cos{\\theta_0}} \\end{align*} \\]\nwhere \\(K\\) is a prefactor, \\(\\theta\\) is the angle formed by\nthe atoms specified by (i,j,k,l) indices and \\(\\theta_0\\) its\nequilibrium value", + "description": "The *ring* improper style uses the potential\n\\[\\begin{align*} \n E = &\\frac{1}{6} K \\left(\\Delta_{ijl} + \\Delta_{ijk} + \\Delta_{kjl} \\right)^6 \\\\\n \\Delta_{ijl} = & \\cos{\\theta_{ijl} - \\cos{\\theta_0}} \\\\\n \\Delta_{ijk} = & \\cos{\\theta_{ijk} - \\cos{\\theta_0}} \\\\\n \\Delta_{kjl} = & \\cos{\\theta_{kjl} - \\cos{\\theta_0}} \\end{align*} \\]\nwhere \\(K\\) is a prefactor, \\(\\theta\\) is the angle formed by\nthe atoms specified by (i,j,k,l) indices and \\(\\theta_0\\) its\nequilibrium value.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered i,j,k,l then\n\\(\\theta_{ijl}\\) is the angle between atoms i,j and l,\n\\(\\theta_{ijk}\\) is the angle between atoms i,j and k,\n\\(\\theta_{kjl}\\) is the angle between atoms j,k, and l.\n\nThe \"ring\" improper style implements the improper potential introduced\nby Destree et al., in Equation (9) of **Destree**. This\npotential does not affect small amplitude vibrations but is used in an\nad-hoc way to prevent the onset of accidentally large amplitude\nfluctuations leading to the occurrence of a planar conformation of the\nthree bonds i-j, j-k and j-l, an intermediate conformation toward the\nchiral inversion of a methine carbon. In the \"Impropers\" section of\ndata file four atoms: i, j, k and l are specified with i,j and l lying\non the backbone of the chain and k specifying the chirality of j.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Destree)** M. Destree, F. Laupretre, A. Lyulin, and J.-P. Ryckaert,\nJ Chem Phys, 112, 9632 (2000). \n ", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n\n.. _Destree:\n\n**(Destree)** M. Destree, F. Laupretre, A. Lyulin, and J.-P. Ryckaert,\nJ Chem Phys, 112, 9632 (2000).\n" }, { "command": [ - "compute property/atom" + "fix efield" ], "syntax": [ - "compute ID group-ID property/atom input1 input2 ..." + "fix ID group-ID style ex ey ez keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -4040,56 +3671,91 @@ export const command_docs = [ "choices": [] }, { - "arg": "property/atom", - "type": 1, + "arg": "efield/tip4p", + "type": 3, + "choices": [ + "efield", + "efield/tip4p" + ] + }, + { + "arg": "ex", + "type": 2, "choices": [] }, { - "arg": "input1", + "arg": "ey", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "ez", + "type": 2, + "choices": [] + }, + { + "arg": "potential", + "type": 3, + "choices": [ + "region", + "energy", + "potential" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/atom = style name of this compute command\n* input = one or more atom attributes \n *        possible attributes = id, mol, proc, type, mass, \n         x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz, \n         vx, vy, vz, fx, fy, fz, \n         q, mux, muy, muz, mu, \n         spx, spy, spz, sp, fmx, fmy, fmz, \n         nbonds, \n         radius, diameter, omegax, omegay, omegaz, \n         temperature, heatflow, \n         angmomx, angmomy, angmomz, \n         shapex, shapey, shapez, \n         quatw, quati, quatj, quatk, tqx, tqy, tqz, \n         end1x, end1y, end1z, end2x, end2y, end2z, \n         corner1x, corner1y, corner1z, \n         corner2x, corner2y, corner2z, \n         corner3x, corner3y, corner3z, \n         i_name, d_name, i2_name[I], d2_name[I], \n         vfrac, s0, espin, eradius, ervel, erforce, \n         rho, drho, e, de, cv, buckling, \n         id = atom ID \n         mol = molecule ID \n         proc = ID of processor that owns atom \n         type = atom type \n         mass = atom mass \n         x,y,z = unscaled atom coordinates \n         xs,ys,zs = scaled atom coordinates \n         xu,yu,zu = unwrapped atom coordinates \n         ix,iy,iz = box image that the atom is in \n         vx,vy,vz = atom velocities \n         fx,fy,fz = forces on atoms \n         q = atom charge \n         mux,muy,muz = orientation of dipole moment of atom \n         mu = magnitude of dipole moment of atom \n         *spx, spy, spz* = direction of the atomic magnetic spin \n         sp = magintude of atomic magnetic spin moment \n         *fmx, fmy, fmz* = magnetic force \n         nbonds = number of bonds assigned to an atom \n         radius,diameter = radius,diameter of spherical particle \n         omegax,omegay,omegaz = angular velocity of spherical particle \n         temperature = internal temperature of spherical particle \n         heatflow = internal heat flow of spherical particle \n         angmomx,angmomy,angmomz = angular momentum of aspherical particle \n         shapex,shapey,shapez = 3 diameters of aspherical particle \n         quatw,quati,quatj,quatk = quaternion components for aspherical or body particles \n         tqx,tqy,tqz = torque on finite-size particles \n         *end12x, end12y, end12z* = end points of line segment \n         *corner123x, corner123y, corner123z* = corner points of triangle \n         i_name = custom integer vector with name \n         d_name = custom floating point vector with name \n         i2_name[I] = Ith column of custom integer array with name \n         d2_name[I] = Ith column of custom floating-point array with name \n         PERI package per-atom properties: \n         vfrac = volume fraction \n         s0 = max stretch of any bond a particle is part of \n         EFF and AWPMD package per-atom properties: \n         espin = electron spin \n         eradius = electron radius \n         ervel = electron radial velocity \n         erforce = electron radial force \n         SPH package per-atom properties: \n         rho = density of SPH particles \n         drho = change in density \n         e = energy \n         de = change in thermal energy \n         cv = heat capacity \n", - "examples": "\n```lmps\ncompute 1 all property/atom xs vx fx mux\ncompute 2 all property/atom type\ncompute 1 all property/atom ix iy iz\ncompute 3 all property/atom sp spx spy spz\ncompute 1 all property/atom i_myFlag d_Sxyz[1] d_Sxyz[3]\n```\n", - "html_filename": "compute_property_atom.html", - "short_description": "Define a computation that simply stores atom attributes for each atom\nin the group", - "description": "Define a computation that simply stores atom attributes for each atom\nin the group. This is useful so that the values can be used by other\n[output commands ](https://docs.lammps.org/Howto_output.html) that take computes as inputs.\nSee for example, the [compute reduce ](https://docs.lammps.org/compute_reduce.html), [fixave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), and [atom-style variable](https://docs.lammps.org/variable.html) commands.\n\nThe list of possible attributes is essentially the same as that used\nby the [dump custom ](https://docs.lammps.org/dump.html) command, which describes their\nmeaning, with some additional quantities that are only defined for\ncertain [atom styles ](https://docs.lammps.org/atom_style.html). The goal of this augmented\nlist gives an input script access to any per-atom quantity stored by\nLAMMPS.\n\nThe values are stored in a per-atom vector or array as discussed\nbelow. Zeroes are stored for atoms not in the specified group or for\nquantities that are not defined for a particular particle in the group\n(e.g., *shapex* if the particle is not an ellipsoid).\n\nAttributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom\nper-atom integer and floating-point vectors or arrays that have been\nadded via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nWhen that command is used specific names are given to each attribute\nwhich are the \"name\" portion of these attributes. For arrays\n*i2_name* and *d2_name*, the column of the array must also be included\nfollowing the name in brackets (e.g., d2_xyz[2] or i2_mySpin[3]).\n\nThe additional quantities only accessible via this command, and not\ndirectly via the [dump custom ](https://docs.lammps.org/dump.html) command, are as follows.\n\n*Nbonds* is available for all molecular atom styles and refers to the\nnumber of explicit bonds assigned to an atom. Note that if the\n[newton bond ](https://docs.lammps.org/newton.html) command is set to *on* , which is the\ndefault, then every bond in the system is assigned to only one of the\ntwo atoms in the bond. Thus a bond between atoms \\(I\\) and \\(J\\) may\nbe tallied for either atom \\(I\\) or atom \\(J\\).\nIf [newton bond off ](https://docs.lammps.org/newton.html) is set, it will be tallied with both atom\n\\(I\\) and atom \\(J\\).\n\nThe quantities *shapex*, *shapey*, and *shapez* are defined for ellipsoidal\nparticles and define the 3d shape of each particle.\n\nThe quantities *quatw*, *quati*, *quatj*, and *quatk* are defined for\nellipsoidal particles and body particles and store the 4-vector quaternion\nrepresenting the orientation of each particle. See the [set ](https://docs.lammps.org/set.html)\ncommand for an explanation of the quaternion vector.\n\n*End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are defined for line\nsegment particles and define the end points of each line segment.\n\n*Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*,\n*corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for\ntriangular particles and define the corner points of each triangle.\n\nIn addition, the various per-atom quantities listed above for specific\npackages are only accessible by this command.\n\n **New in version 15Sep2022** \n\n The *espin* property was previously called *spin*.\n #### Output info\n\nThis compute calculates a per-atom vector or per-atom array depending\non the number of input values. If a single input is specified, a\nper-atom vector is produced. If two or more inputs are specified, a\nper-atom array is produced where the number of columns = the number of\ninputs. The vector or array can be accessed by any command that uses\nper-atom values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ncorresponding attribute is in (e.g., velocity units for *vx*, charge\nunits for *q*).\n\nFor the spin quantities, *sp* is in the units of the Bohr magneton;\n*spx*, *spy*, and *spz* are unitless quantities; and *fmx*, *fmy*, and *fmz*\nare given in rad/THz.\n", - "restrictions": " none\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = efield or efield/tip4p\n* ex,ey,ez = E-field component values (electric field units)\n* any of ex,ey,ez can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region or energy or potential \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n *        energy value = v_name \n         v_name = variable with name that calculates the potential energy of each atom in the added E-field \n *        potential value = v_name \n         v_name = variable with name that calculates the electric potential of each atom in the added E-field \n", + "examples": "\n```lmps\nfix kick external-field efield 1.0 0.0 0.0\nfix kick external-field efield 0.0 0.0 v_oscillate\nfix kick external-field efield/tip4p 1.0 0.0 0.0\n```\n", + "html_filename": "fix_efield.html", + "short_description": "Add a force \\(\\vec{F} = q\\vec{E}\\) to each charged atom in the group due to an\nexternal electric field being applied to the system", + "description": "Add a force \\(\\vec{F} = q\\vec{E}\\) to each charged atom in the group due to an\nexternal electric field being applied to the system. If the system\ncontains point-dipoles, also add a torque on the dipoles due to the\nexternal electric field.\n\nWhen the *efield/tip4p* style is used, the E-field will be applied to\nthe position of the virtual charge site M of a TIP4P molecule instead of\nthe oxygen position as it is defined by a corresponding [TIP4P pairstyle ](https://docs.lammps.org/pair_lj_cut_tip4p.html). The forces on the M site due to the\nexternal field are projected on the oxygen and hydrogen atoms of the\nTIP4P molecules.\n\nFor charges, any of the 3 quantities defining the E-field components can\nbe specified as an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html),\nnamely *ex*, *ey*, *ez* . If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to\ndetermine the E-field component.\n\nFor point-dipoles, equal-style variables can be used, but atom-style\nvariables are not currently supported, since they imply a spatial\ngradient in the electric field which means additional terms with\ngradients of the field are required for the force and torque on dipoles.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent E-field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent E-field\nwith optional time-dependence as well.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nAdding a force or torque to atoms implies a change in their potential\nenergy as they move or rotate due to the applied E-field.\n\nFor dynamics via the \"run\" command, this energy can be optionally\nadded to the system's potential energy for thermodynamic output (see\nbelow). For energy minimization via the \"minimize\" command, this\nenergy must be added to the system's potential energy to formulate a\nself-consistent minimization problem (see below).\n\nThe *energy* keyword is not allowed if the added field is a constant\nvector (ex,ey,ez), with all components defined as numeric constants\nand not as variables. This is because LAMMPS can compute the energy\nfor each charged particle directly as\n\\[\n U_{efield} = -\\vec{x} \\cdot q\\vec{E} = -q (x\\cdot E_x + y\\cdot E_y + z\\cdot Ez),\\]\nso that \\(-\\nabla U_{efield} = \\vec{F}\\). Similarly for point-dipole particles\nthe energy can be computed as\n\\[\n U_{efield} = -\\vec{\\mu} \\cdot \\vec{E} = -\\mu_x\\cdot E_x + \\mu_y\\cdot E_y + \\mu_z\\cdot E_z\\]\nThe *energy* keyword is optional if the added force is defined with\none or more variables, and if you are performing dynamics via the\n[run ](https://docs.lammps.org/run.html) command. If the keyword is not used, LAMMPS will set\nthe energy to 0.0, which is typically fine for dynamics.\n\nThe *energy* keyword (or *potential* keyword, described below)\nis required if the added force is defined with\none or more variables, and you are performing energy minimization via\nthe \"minimize\" command for charged particles. It is not required for\npoint-dipoles, but a warning is issued since the minimizer in LAMMPS\ndoes not rotate dipoles, so you should not expect to be able to\nminimize the orientation of dipoles in an applied electric field.\n\nThe *energy* keyword specifies the name of an atom-style\n[variable ](https://docs.lammps.org/variable.html) which is used to compute the energy of each\natom as function of its position. Like variables used for *ex*,\n*ey*, *ez*, the energy variable is specified as \"v_name\", where \"name\"\nis the variable name.\n\nNote that when the *energy* keyword is used during an energy\nminimization, you must ensure that the formula defined for the\natom-style [variable ](https://docs.lammps.org/variable.html) is consistent with the force\nvariable formulas, i.e. that -Grad(E) = F. For example, if the force\ndue to the electric field were a spring-like F = kx, then the energy\nformula should be E = -0.5kx\\^2. If you don't do this correctly, the\nminimization will not converge properly.\n\nThe *potential* keyword can be used as an alternative to the *energy* keyword\nto specify the name of an atom-style variable, which is used to compute the\nadded electric potential to each atom as a function of its position. The\nvariable should have units of electric field multiplied by distance (that is,\nin `units real`, the potential should be in volts). As with the *energy*\nkeyword, the variable name is specified as \"v_name\". The energy added by this\nfix is then calculated as the electric potential multiplied by charge.\n\nThe *potential* keyword is mainly intended for correct charge\nequilibration in simulations with [fix qeq/reaxff](https://docs.lammps.org/fix_qeq_reaxff.html),\nsince with variable charges the electric potential can be known\nbeforehand but the energy cannot. A small additional benefit is that\nthe *energy* keyword requires an additional conversion to energy units\nwhich the *potential* keyword avoids. Thus, when the *potential*\nkeyword is specified, the *energy* keyword must not be used. As with\n*energy*, the *potential* keyword is not allowed if the added field is a\nconstant vector. The *potential* keyword is not supported by *fix\nefield/tip4p*.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by this\nfix to add the potential energy inferred by the added force due to the\nelectric field to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nenergy is a fictitious quantity but is needed so that the [minimize](https://docs.lammps.org/minimize.html) command can include the forces added by this fix in a\nconsistent manner. I.e. there is a decrease in potential energy when\natoms move in the direction of the added force due to the electric\nfield.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by this\nfix to add the contribution due to the added forces on atoms to both the\nglobal pressure and per-atom stress of the system via the [computepressure ](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the potential energy discussed above.\nThe vector is the total force added to the group of atoms. The scalar\nand vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the timestep as\nthe iteration count during the minimization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "Fix style *efield/tip4p* is part of the EXTRA-FIX package. It is only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix style *efield/tip4p* can only be used with tip4p pair styles.\n", + "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" }, { "command": [ - "suffix" + "pair_style lj/class2", + "pair_style lj/class2/gpu", + "pair_style lj/class2/kk", + "pair_style lj/class2/omp", + "pair_style lj/class2/coul/cut", + "pair_style lj/class2/coul/cut/kk", + "pair_style lj/class2/coul/cut/omp", + "pair_style lj/class2/coul/long", + "pair_style lj/class2/coul/long/gpu", + "pair_style lj/class2/coul/long/kk", + "pair_style lj/class2/coul/long/omp" ], "syntax": [ - "suffix style args" + "pair_style style args" ], "args": [ [ { - "arg": "suffix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "hybrid", + "arg": "lj/class2/coul/long/omp", "type": 3, "choices": [ - "off", - "on", - "gpu", - "intel", - "kk", - "omp", - "opt", - "hybrid" + "lj/class2", + "lj/class2/coul/cut", + "lj/class2/coul/long", + "lj/class2/gpu", + "lj/class2/kk", + "lj/class2/omp", + "lj/class2/coul/cut/kk", + "lj/class2/coul/cut/omp", + "lj/class2/coul/long/gpu", + "lj/class2/coul/long/kk", + "lj/class2/coul/long/omp" ] }, { @@ -4099,72 +3765,48 @@ export const command_docs = [ } ] ], - "parameters": "* style = off or on or gpu or intel or kk or omp or opt or hybrid\n* args = for hybrid style, default suffix to be used and alternative suffix \n", - "examples": "\n```lmps\nsuffix off\nsuffix on\nsuffix gpu\nsuffix intel\nsuffix hybrid intel omp\nsuffix kk\n```\n", - "html_filename": "suffix.html", - "short_description": "This command allows you to use variants of various styles if they\nexist", - "description": "This command allows you to use variants of various styles if they\nexist. In that respect it operates the same as the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html). It also has options to turn\noff or back on any suffix setting made via the command line.\n\nThe specified style can be *gpu*, *intel*, *kk*, *omp*, *opt* or\n*hybrid* . These refer to optional packages that LAMMPS can be built\nwith, as described on the [Build package ](https://docs.lammps.org/Build_package.html) doc page.\nThe \"gpu\" style corresponds to the GPU package, the \"intel\" style to\nthe INTEL package, the \"kk\" style to the KOKKOS package, the\n\"omp\" style to the OPENMP package, and the \"opt\" style to the OPT\npackage.\n\nThese are the variants these packages provide:\n\n* GPU = a handful of pair styles and the PPPM kspace_style, optimized to\n run on one or more GPUs or multicore CPU/GPU nodes\n* INTEL = a collection of pair styles and neighbor routines\n optimized to run in single, mixed, or double precision on CPUs and\n Intel(R) Xeon Phi(TM) co-processors.\n* KOKKOS = a collection of atom, pair, and fix styles optimized to run\n using the Kokkos library on various kinds of hardware, including GPUs\n via CUDA and many-core chips via OpenMP or threading.\n* OPENMP = a collection of pair, bond, angle, dihedral, improper,\n kspace, compute, and fix styles with support for OpenMP\n multi-threading\n* OPT = a handful of pair styles, cache-optimized for faster CPU\n performance\n* HYBRID = a combination of two packages can be specified (see below)\n\nAs an example, all of the packages provide a [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html) variant, with style names lj/cut/opt, lj/cut/omp,\nlj/cut/gpu, lj/cut/intel, or lj/cut/kk. A variant styles\ncan be specified explicitly in your input script, e.g. pair_style\nlj/cut/gpu. If the suffix command is used with the appropriate style,\nyou do not need to modify your input script. The specified suffix\n(opt,omp,gpu,intel,kk) is automatically appended whenever your\ninput script command creates a new [atom ](https://docs.lammps.org/atom_style.html),\n[pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html),\n[angle ](https://docs.lammps.org/angle_style.html), [dihedral ](https://docs.lammps.org/dihedral_style.html),\n[improper ](https://docs.lammps.org/improper_style.html), [kspace ](https://docs.lammps.org/kspace_style.html),\n[fix ](https://docs.lammps.org/fix.html), [compute ](https://docs.lammps.org/compute.html), or [run ](https://docs.lammps.org/run_style.html) style.\nIf the variant version does not exist, the standard version is\ncreated.\n\nFor \"hybrid\", two packages are specified. The first is used whenever\navailable. If a style with the first suffix is not available, the style\nwith the suffix for the second package will be used if available. For\nexample, \"hybrid intel omp\" will use styles from the INTEL package\nas a first choice and styles from the OPENMP package as a second choice\nif no INTEL variant is available.\n\nIf the specified style is *off*, then any previously specified suffix\nis temporarily disabled, whether it was specified by a command-line\nswitch or a previous suffix command. If the specified style is *on*,\na disabled suffix is turned back on. The use of these 2 commands lets\nyour input script use a standard LAMMPS style (i.e. a non-accelerated\nvariant), which can be useful for testing or benchmarking purposes.\nOf course this is also possible by not using any suffix commands, and\nexplicitly appending or not appending the suffix to the relevant\ncommands in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The default [run_style ](https://docs.lammps.org/run_style.html) verlet is invoked prior to\n > reading the input script and is therefore not affected by a suffix command\n > in the input script. The KOKKOS package requires \"run_style verlet/kk\",\n > so when using the KOKKOS package it is necessary to either use the command\n > line \"-sf kk\" command or add an explicit \"run_style verlet\" command to the\n > input script. \n > \n\n", - "restrictions": " none\n", - "related": "[-suffix command-line switch ](https://docs.lammps.org/Run_options.html)\n" + "parameters": "* style = lj/class2 or lj/class2/coul/cut or lj/class2/coul/long\n* args = list of arguments for a particular style \n *      lj/class2 args = cutoff \n       cutoff = global cutoff for class 2 interactions (distance units) \n *      lj/class2/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for class 2 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for class 2 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style lj/class2 10.0\npair_coeff * * 100.0 2.5\npair_coeff 1 2* 100.0 2.5 9.0\n\npair_style lj/class2/coul/cut 10.0\npair_style lj/class2/coul/cut 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\npair_coeff 1 1 100.0 3.5 9.0 9.0\n\npair_style lj/class2/coul/long 10.0\npair_style lj/class2/coul/long 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", + "html_filename": "pair_class2.html", + "short_description": "The *lj/class2* styles compute a 6/9 Lennard-Jones potential given by\n\\[\n E = \\epsilon \\left[ 2 \\left(\\frac{\\sigma}{r}\\right)^9 -\n 3 \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "The *lj/class2* styles compute a 6/9 Lennard-Jones potential given by\n\\[\n E = \\epsilon \\left[ 2 \\left(\\frac{\\sigma}{r}\\right)^9 -\n 3 \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe *lj/class2/coul/cut* and *lj/class2/coul/long* styles add a\nCoulombic term as described for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles.\n\nSee **pair-Sun** for a description of the COMPASS class2 force field.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global\nclass 2 and Coulombic cutoffs are used. If only one cutoff is\nspecified, it is used as the cutoff for both class 2 and Coulombic\ninteractions for this type pair. If both coefficients are specified,\nthey are used as the class 2 and Coulombic cutoffs for this type pair.\nYou cannot specify 2 cutoffs for style *lj/class2*, since it has no\nCoulombic terms.\n\nFor *lj/class2/coul/long* only the class 2 cutoff can be specified\nsince a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff\nspecified in the pair_style command.\n\n----------\n\nIf the pair_coeff command is not used to define coefficients for a\nparticular I != J type pair, the mixing rule for \\(\\epsilon\\) and\n\\(\\sigma\\) for all class2 potentials is to use the *sixthpower*\nformulas documented by the [pair_modify ](https://docs.lammps.org/pair_modify.html) command.\nThe [pair_modify mix ](https://docs.lammps.org/pair_modify.html) setting is thus ignored for\nclass2 potentials for epsilon and sigma. However it is still followed\nfor mixing the cutoff distance.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable for use in\nfree energy calculations, is part of the FEP package and is documented with\nthe [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is\nonly available if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/class2 pair styles can be mixed.\nEpsilon and sigma are always mixed with the value *sixthpower* . The\ncutoff distance is mixed by whatever option is set by the pair_modify\ncommand (default = geometric). See the \"pair_modify\" command for\ndetails.\n\nAll of the lj/class2 pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/class2/coul/long* pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since a tabulation\ncapability has not yet been added to this potential.\n\nAll of the lj/class2 pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure of the Lennard-Jones\nportion of the pair interaction.\n\nAll of the lj/class2 pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nOnly the *lj/class2* and *lj/class2/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n**(pair-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", + "restrictions": "These styles are part of the CLASS2 package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\n" }, { "command": [ - "fix brownian", - "fix brownian/sphere" + "change_box" ], "syntax": [ - "fix ID group-ID style_name temp seed keyword args" + "change_box group-ID parameter args ... keyword args ..." ], "args": [ [ { - "arg": "fix", + "arg": "change_box", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "parameter", "type": 2, "choices": [] }, { - "arg": "brownian/asphere", - "type": 3, - "choices": [ - "brownian", - "brownian/sphere", - "brownian/asphere" - ] - }, - { - "arg": "temp", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "keyword", "type": 2, "choices": [] }, - { - "arg": "planar_rotation", - "type": 3, - "choices": [ - "rng", - "dipole", - "gamma_r_eigen", - "gamma_t_eigen", - "gamma_r", - "gamma_t", - "rotation_temp", - "planar_rotation" - ] - }, { "arg": "args", "type": 2, @@ -4172,60 +3814,64 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = brownian or brownian/sphere or brownian/asphere\n* temp = temperature\n* seed = random number generator seed\n* one or more keyword/value pairs may be appended\n* keyword = rng or dipole or gamma_r_eigen or gamma_t_eigen or gamma_r or gamma_t or rotation_temp or planar_rotation \n *      rng value = uniform or gaussian or none \n       uniform = use uniform random number generator \n       gaussian = use gaussian random number generator \n       none = turn off noise \n *      dipole value = mux and muy and muz for brownian/asphere \n       mux, muy, and muz = update orientation of dipole having direction (mux,muy,muz) in body frame of rigid body \n *      gamma_r_eigen values = gr1 and gr2 and gr3 for brownian/asphere \n       gr1, gr2, and gr3 = diagonal entries of body frame rotational friction tensor \n *      gamma_r values = gr for brownian/sphere \n       gr = magnitude of the (isotropic) rotational friction tensor \n *      gamma_t_eigen values = gt1 and gt2 and gt3 for brownian/asphere \n       gt1, gt2, and gt3 = diagonal entries of body frame translational friction tensor \n *      gamma_t values = gt for brownian and brownian/sphere \n       gt = magnitude of the (isotropic) translational friction tensor \n *      rotation_temp values = T for brownian/sphere and brownian/asphere \n       T = rotation temperature, which can be different then temp when out of equilibrium \n *      planar_rotation values = none (constrains rotational diffusion to be in xy plane if in 3D) \n", - "examples": "\n```lmps\nfix 1 all brownian 1.0 12908410 gamma_t 1.0\nfix 1 all brownian 1.0 12908410 gamma_t 3.0 rng gaussian\nfix 1 all brownian/sphere 1.0 1294019 gamma_t 3.0 gamma_r 1.0\nfix 1 all brownian/sphere 1.0 19581092 gamma_t 1.0 gamma_r 0.3 rng none\nfix 1 all brownian/asphere 1.0 1294019 gamma_t_eigen 1.0 2.0 3.0 gamma_r_eigen 4.0 7.0 8.0 rng gaussian\nfix 1 all brownian/asphere 1.0 1294019 gamma_t_eigen 1.0 2.0 3.0 gamma_r_eigen 4.0 7.0 8.0 dipole 1.0 0.0 0.0\n```\n", - "html_filename": "fix_brownian.html", - "short_description": "Perform Brownian Dynamics time integration to update position, velocity,\ndipole orientation (for spheres) and quaternion orientation (for\nellipsoids, with optional dipole update as well) of all particles in the\nfix group in each timestep", - "description": "Perform Brownian Dynamics time integration to update position, velocity,\ndipole orientation (for spheres) and quaternion orientation (for\nellipsoids, with optional dipole update as well) of all particles in the\nfix group in each timestep. Brownian Dynamics uses Newton's laws of\nmotion in the limit that inertial forces are negligible compared to\nviscous forces. The stochastic equation of motion for the center of mass\npositions is\n\\[\n d\\mathbf{r} = \\boldsymbol{\\gamma}_t^{-1}\\mathbf{F}dt\n + \\sqrt{2k_B T}\\boldsymbol{\\gamma}_t^{-1/2}d\\mathbf{W}_t,\\]\nin the lab-frame (i.e., \\(\\boldsymbol{\\gamma}_t\\) is not diagonal, but\nonly depends on orientation and so the noise is still additive).\n\nThe rotational motion for the spherical and ellipsoidal particles is not\nas simple an expression, but is chosen to replicate the Boltzmann\ndistribution for the case of conservative torques (see **Ilie1** or **Delong1**).\n\nFor the style *brownian*, only the positions of the particles are\nupdated. This is therefore suitable for point particle simulations.\n\nFor the style *brownian/sphere*, the positions of the particles are\nupdated, and a dipole slaved to the spherical orientation is also\nupdated. This style therefore requires the hybrid atom style\n[atom_style dipole ](https://docs.lammps.org/atom_style.html) and [atom_style sphere](https://docs.lammps.org/atom_style.html). The equation of motion for the dipole is\n\\[\n \\boldsymbol{\\mu}(t+dt) = \\frac{\\boldsymbol{\\mu}(t) + \\boldsymbol{\\omega} \\times \\boldsymbol{\\mu}dt\n }{|\\boldsymbol{\\mu}(t) + \\boldsymbol{\\omega} \\times \\boldsymbol{\\mu}|}\\]\nwhich correctly reproduces a Boltzmann distribution of orientations and\nrotational diffusion moments (see **Ilie1**) when\n\\[\n \\boldsymbol{\\omega} = \\frac{\\mathbf{T}}{\\gamma_r} + \\sqrt{\\frac{2 k_B T_{rot}}{\\gamma_r}\\frac{d\\mathbf{W}}{dt}},\\]\nwith \\(d\\mathbf{W}\\) being a random number with zero mean and variance \\(dt\\)\nand \\(T_{rot}\\) is *rotation_temp*.\n\nFor the style *brownian/asphere*, the center of mass positions and the\nquaternions of ellipsoidal particles are updated. This fix style is\nsuitable for equations of motion where the rotational and translational\nfriction tensors can be diagonalized in a certain (body) reference\nframe. In this case, the rotational equation of motion is updated via\nthe quaternion\n\\[\n \\mathbf{q}(t+dt) = \\frac{\\mathbf{q}(t) + d\\mathbf{q}}{\\lVert\\mathbf{q}(t) + d\\mathbf{q}\\rVert}\\]\nwhich correctly reproduces a Boltzmann distribution of orientations and rotational\ndiffusion moments [see **Ilie1**] when the quaternion step is given by\n\\[\n d\\mathbf{q} = \\boldsymbol{\\Psi}\\boldsymbol{\\omega}dt\\]\nwhere \\(\\boldsymbol{\\Psi}\\) has rows \\((-q_1,-q_2,-q_3)\\),\n\\((q_0,-q_3,q_2)\\), \\((q_3,q_0,-q_1)\\), and \\((-q_2,q_1,q_0)\\).\n\\(\\boldsymbol{\\omega}\\) is evaluated in the body frame of reference where the\nfriction tensor is diagonal. See **Delong1** for more details of\na similar algorithm.\n\n\n---------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This integrator does not by default assume a relationship between the\n > rotational and translational friction tensors, though such a\n > relationship should exist in the case of no-slip boundary conditions\n > between the particles and the surrounding (implicit) solvent. For example,\n > in the case of spherical particles, the condition\n > \\(\\gamma_t=3\\gamma_r/\\sigma^2\\) must be explicitly accounted for\n > by setting *gamma_t* to 3x and *gamma_r* to x (where \\(\\sigma\\)\n > is the sphere's diameter). A similar (though more complex)\n > relationship holds for ellipsoids and rod-like particles. The\n > translational diffusion and rotational diffusion are given by\n > *temp/gamma_t* and *rotation_temp/gamma_r*. \n > \n\n---------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Temperature computation using the [compute temp ](https://docs.lammps.org/compute_temp.html)\n > will not correctly compute the temperature of these overdamped dynamics\n > since we are explicitly neglecting inertial effects. Furthermore,\n > this time integrator does not add the stochastic terms or viscous\n > terms to the force and/or torques. Rather, they are just added in to\n > the equations of motion to update the degrees of freedom. \n > \n\n---------\n\n\nIf the *rng* keyword is used with the *uniform* value, then the noise\nis generated from a uniform distribution (see\n**Dunweg7** for why this works). This is the same method\nof noise generation as used in [fix_langevin ](https://docs.lammps.org/fix_langevin.html).\n\nIf the *rng* keyword is used with the *gaussian* value, then the noise\nis generated from a Gaussian distribution. Typically this added\ncomplexity is unnecessary, and one should be fine using the *uniform*\nvalue for reasons argued in **Dunweg7**.\n\nIf the *rng* keyword is used with the *none* value, then the noise\nterms are set to zero.\n\nThe *gamma_t* keyword sets the (isotropic) translational viscous damping.\nRequired for (and only compatible with) *brownian* and *brownian/sphere*.\nThe units of *gamma_t* are mass/time.\n\nThe *gamma_r* keyword sets the (isotropic) rotational viscous damping.\nRequired for (and only compatible with) *brownian/sphere*.\nThe units of *gamma_r* are mass*length**2/time.\n\nThe *gamma_r_eigen*, and *gamma_t_eigen* keywords are the eigenvalues of\nthe rotational and viscous damping tensors (having the same units as\ntheir isotropic counterparts). Required for (and only compatible with)\n*brownian/asphere*. For a 2D system, the first two values of\n*gamma_r_eigen* must be *inf* (only rotation in *x* --\\ *y* plane), and the third\nvalue of *gamma_t_eigen* must be *inf* (only diffusion in the *x* --\\ *y* plane).\n\nIf the *dipole* keyword is used, then the dipole moments of the particles\nare updated as described above. Only compatible with *brownian/asphere*\n(as *brownian/sphere* updates dipoles automatically).\n\nIf the *rotation_temp* keyword is used, then the rotational diffusion\nwill be occur at this prescribed temperature instead of *temp*. Only\ncompatible with *brownian/sphere* and *brownian/asphere*.\n\nIf the *planar_rotation* keyword is used, then rotation is constrained\nto the *x* -- *y* plane in a 3D simulation. Only compatible with\n*brownian/sphere* and *brownian/asphere* in 3D.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *brownian/asphere*, the components *gamma_t_eigen* = (x,x,x) and\n > *gamma_r_eigen* = (y,y,y), the dynamics will replicate those of the\n > *brownian/sphere* style with *gamma_t* = x and *gamma_r* = y. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Ilie1)** Ilie, Briels, den Otter, Journal of Chemical Physics, 142, 114103 (2015). \n \n**(Delong1)** Delong, Usabiaga, Donev, Journal of Chemical Physics. 143, 144107 (2015) \n \n**(Ilie1)** Ilie, Briels, den Otter, Journal of Chemical Physics, 142, 114103 (2015). \n \n**(Dunweg7)** Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991). \n ", - "restrictions": "The style *brownian/sphere* fix requires that atoms store torque and\nangular velocity (omega) as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The style *brownian/asphere* fix requires that\natoms store torque and quaternions as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command. If the *dipole* keyword is used, they\nmust also store a dipole moment as defined by the [atom_styledipole ](https://docs.lammps.org/atom_style.html) command.\n\nThis fix is part of the BROWNIAN package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[fix propel/self ](https://docs.lammps.org/fix_propel_self.html),\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n" + "parameters": "* group-ID = ID of group of atoms to (optionally) displace\n* one or more parameter/arg pairs may be appended \n *      parameter = x or y or z or xy or xz or yz or boundary or ortho or triclinic or set or remap \n       x, y, z args = style value(s) \n       style = final or delta or scale or volume \n       final values = lo hi \n       lo hi = box boundaries after displacement (distance units) \n       delta values = dlo dhi \n       dlo dhi = change in box boundaries after displacement (distance units) \n       scale values = factor \n       factor = multiplicative factor for change in box length after displacement \n       volume value = none = adjust this dim to preserve volume of system \n       xy, xz, yz args = style value \n       style = final or delta \n       final value = tilt \n       tilt = tilt factor after displacement (distance units) \n       delta value = dtilt \n       dtilt = change in tilt factor after displacement (distance units) \n       boundary args = x y z \n       x,y,z = p or s or f or m, one or two letters \n       p is periodic \n       f is non-periodic and fixed \n       s is non-periodic and shrink-wrapped \n       m is non-periodic and shrink-wrapped with a minimum value \n       ortho args = none = change box to orthogonal \n       triclinic args = none = change box to triclinic \n       set args = none = store state of current box \n       remap args = none = remap atom coords from last saved state to current box \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = distances are defined in lattice units \n         box = distances are defined in simulation box units \n", + "examples": "\n```lmps\nchange_box all xy final -2.0 z final 0.0 5.0 boundary p p f remap units box\nchange_box all x scale 1.1 y volume z volume remap\n```\n", + "html_filename": "change_box.html", + "short_description": "Change the volume and/or shape and/or boundary conditions for the\nsimulation box", + "description": "Change the volume and/or shape and/or boundary conditions for the\nsimulation box. Orthogonal simulation boxes have 3 adjustable size\nparameters (x,y,z). Triclinic (non-orthogonal) simulation boxes have\n6 adjustable size/shape parameters (x,y,z,xy,xz,yz). Any or all of\nthem can be adjusted independently by this command. Thus it can be\nused to expand or contract a box, or to apply a shear strain to a\nnon-orthogonal box. It can also be used to change the boundary\nconditions for the simulation box, similar to the\n[boundary ](https://docs.lammps.org/boundary.html) command.\n\nThe size and shape of the initial simulation box are specified by the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) command used to setup the simulation.\nThe size and shape may be altered by subsequent runs, e.g. by use of\nthe [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix deform ](https://docs.lammps.org/fix_deform.html) commands.\nThe [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands also determine whether the\nsimulation box is orthogonal or triclinic and their doc pages explain\nthe meaning of the xy,xz,yz tilt factors.\n\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a\ngeometric description of triclinic boxes, as defined by LAMMPS, and\nhow to transform these parameters to and from other commonly used\ntriclinic representations.\n\nThe keywords used in this command are applied sequentially to the\nsimulation box and the atoms in it, in the order specified.\n\nBefore the sequence of keywords are invoked, the current box\nsize/shape is stored, in case a *remap* keyword is used to map the\natom coordinates from a previously stored box size/shape to the\ncurrent one.\n\nAfter all the keywords have been processed, any shrink-wrap boundary\nconditions are invoked (see the [boundary ](https://docs.lammps.org/boundary.html) command)\nwhich may change simulation box boundaries, and atoms are migrated to\nnew owning processors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This means that you cannot use the change_box command to enlarge\n > a shrink-wrapped box, e.g. to make room to insert more atoms via the\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) command, because the simulation box\n > will be re-shrink-wrapped before the change_box command completes.\n > Instead you could do something like this, assuming the simulation box\n > is non-periodic and atoms extend from 0 to 20 in all dimensions: \n > \n\n\n```lmps\nchange_box all x final -10 20\ncreate_atoms 1 single -5 5 5 # this will fail to insert an atom\n\nchange_box all x final -10 20 boundary f s s\ncreate_atoms 1 single -5 5 5\nchange_box all boundary s s s # this will work\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the earlier \"displace_box\" version of this command, atom\n > remapping is NOT performed by default. This command allows remapping\n > to be done in a more general way, exactly when you specify it (zero or\n > more times) in the sequence of transformations. Thus if you do not\n > use the *remap* keyword, atom coordinates will not be changed even if\n > the box size/shape changes. If a uniformly strained state is desired,\n > the *remap* keyword should be specified. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is possible to lose atoms with this command. E.g. by\n > changing the box without remapping the atoms, and having atoms end up\n > outside of non-periodic boundaries. It is also possible to alter\n > bonds between atoms straddling a boundary in bad ways. E.g. by\n > converting a boundary from periodic to non-periodic. It is also\n > possible when remapping atoms to put them (nearly) on top of each\n > other. E.g. by converting a boundary from non-periodic to periodic.\n > All of these will typically lead to bad dynamics and/or generate error\n > messages. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The simulation box size/shape can be changed by arbitrarily large\n > amounts by this command. This is not a problem, except that the\n > mapping of processors to the simulation box is not changed from its\n > initial 3d configuration; see the [processors ](https://docs.lammps.org/processors.html)\n > command. Thus, if the box size/shape changes dramatically, the\n > mapping of processors to the simulation box may not end up as\n > optimal as the initial mapping attempted to be. You may wish to\n > re-balance the atoms by using the [balance ](https://docs.lammps.org/balance.html) command\n > if that is the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You cannot use this command after reading a restart file (and\n > before a run is performed) if the restart file stored per-atom\n > information from a fix and any of the specified keywords change the\n > box size or shape or boundary conditions. This is because atoms\n > may be moved to new processors and the restart info will not\n > migrate with them. LAMMPS will generate an error if this could\n > happen. Only the *ortho* and *triclinic* keywords do not trigger\n > this error. One solution is to perform a \"run 0\" command before\n > using the change_box command. This clears the per-atom restart\n > data, whether it has been re-assigned to a new fix or not. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the keywords used in this command are applied one at a time\n > to the simulation box and the atoms in it, care must be taken with\n > triclinic cells to avoid exceeding the limits on skew after each\n > transformation in the sequence. If skew is exceeded before the\n > final transformation this can be avoided by changing the order of\n > the sequence, or breaking the transformation into two or more\n > smaller transformations. For more information on the allowed\n > limits for box skew see the discussion on triclinic boxes on\n > [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page. \n > \n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of their\nstyles and values.\n\nFor style *final*, the final lo and hi box boundaries of a dimension\nare specified. The values can be in lattice or box distance units.\nSee the discussion of the units keyword below.\n\nFor style *delta*, plus or minus changes in the lo/hi box boundaries\nof a dimension are specified. The values can be in lattice or box\ndistance units. See the discussion of the units keyword below.\n\nFor style *scale*, a multiplicative factor to apply to the box length\nof a dimension is specified. For example, if the initial box length\nis 10, and the factor is 1.1, then the final box length will be 11. A\nfactor less than 1.0 means compression.\n\nThe *volume* style changes the specified dimension in such a way that\nthe overall box volume remains constant with respect to the operation\nperformed by the preceding keyword. The *volume* style can only be\nused following a keyword that changed the volume, which is any of the\n*x*, *y*, *z* keywords. If the preceding keyword \"key\" had a *volume*\nstyle, then both it and the current keyword apply to the keyword\npreceding \"key\". I.e. this sequence of keywords is allowed:\n\n```lmps\nchange_box all x scale 1.1 y volume z volume\n```\nThe *volume* style changes the associated dimension so that the\noverall box volume is unchanged relative to its value before the\npreceding keyword was invoked.\n\nIf the following command is used, then the z box length will shrink by\nthe same 1.1 factor the x box length was increased by:\n\n```lmps\nchange_box all x scale 1.1 z volume\n```\nIf the following command is used, then the y,z box lengths will each\nshrink by sqrt(1.1) to keep the volume constant. In this case, the\ny,z box lengths shrink so as to keep their relative aspect ratio\nconstant:\n\n```lmps\nchange_box all x scale 1.1 y volume z volume\n```\nIf the following command is used, then the final box will be a factor\nof 10% larger in x and y, and a factor of 21% smaller in z, so as to\nkeep the volume constant:\n\n```lmps\nchange_box all x scale 1.1 z volume y scale 1.1 z volume\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For solids or liquids, when one dimension of the box is\n > expanded, it may be physically undesirable to hold the other 2 box\n > lengths constant since that implies a density change. For solids,\n > adjusting the other dimensions via the *volume* style may make\n > physical sense (just as for a liquid), but may not be correct for\n > materials and potentials whose Poisson ratio is not 0.5. \n > \n\nFor the *scale* and *volume* styles, the box length is expanded or\ncompressed around its mid point.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of their\nstyles and values. Note that changing the tilt factors of a triclinic\nbox does not change its volume.\n\nFor style *final*, the final tilt factor is specified. The value\ncan be in lattice or box distance units. See the discussion of the\nunits keyword below.\n\nFor style *delta*, a plus or minus change in the tilt factor is\nspecified. The value can be in lattice or box distance units. See\nthe discussion of the units keyword below.\n\nAll of these styles change the xy, xz, yz tilt factors. In LAMMPS,\ntilt factors (xy,xz,yz) for triclinic boxes are required to be no more\nthan half the distance of the parallel box length. For example, if\nxlo = 2 and xhi = 12, then the x box length is 10 and the xy tilt\nfactor must be between -5 and 5. Similarly, both xz and yz must be\nbetween -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a\nlimitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt = ..., -15, -5, 5, 15, 25,\n... are all equivalent. Any tilt factor specified by this command\nmust be within these limits.\n\n----------\n\nThe *boundary* keyword takes arguments that have exactly the same\nmeaning as they do for the [boundary ](https://docs.lammps.org/boundary.html) command. In each\ndimension, a single letter assigns the same style to both the lower\nand upper face of the box. Two letters assigns the first style to the\nlower face and the second style to the upper face.\n\nThe style *p* means the box is periodic; the other styles mean\nnon-periodic. For style *f*, the position of the face is fixed. For\nstyle *s*, the position of the face is set so as to encompass the\natoms in that dimension (shrink-wrapping), no matter how far they\nmove. For style *m*, shrink-wrapping occurs, but is bounded by the\ncurrent box edge in that dimension, so that the box will become no\nsmaller. See the [boundary ](https://docs.lammps.org/boundary.html) command for more\nexplanation of these style options.\n\nNote that the \"boundary\" command itself can only be used before the\nsimulation box is defined via a [read_data ](https://docs.lammps.org/read_data.html) or\n[create_box ](https://docs.lammps.org/create_box.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand. This command allows the boundary conditions to be changed\nlater in your input script. Also note that the\n[read_restart ](https://docs.lammps.org/read_restart.html) will change boundary conditions to\nmatch what is stored in the restart file. So if you wish to change\nthem, you should use the change_box command after the read_restart\ncommand.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Changing a periodic boundary to a non-periodic one will also cause\n > the image flag for that dimension of all atoms to be reset to 0.\n > LAMMPS will print a warning message, if that happens.\n > Please note that this reset can lead to undesired changes when\n > atoms are involved in bonded interactions that straddle periodic\n > boundaries and thus the values of the image flag differs for those\n > atoms. \n > \n\n----------\n\nThe *ortho* and *triclinic* keywords convert the simulation box to be\northogonal or triclinic (non-orthogonal).\n\nThe simulation box is defined as either orthogonal or triclinic when\nit is created via the [create_box ](https://docs.lammps.org/create_box.html),\n[read_data ](https://docs.lammps.org/read_data.html), or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThese keywords allow you to toggle the existing simulation box from\northogonal to triclinic and vice versa. For example, an initial\nequilibration simulation can be run in an orthogonal box, the box can\nbe toggled to triclinic, and then a [non-equilibrium MD (NEMD) simulation ](https://docs.lammps.org/Howto_nemd.html) can be run with deformation via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nIf the simulation box is currently triclinic and has non-zero tilt in\nxy, yz, or xz, then it cannot be converted to an orthogonal box.\n\n----------\n\nThe *set* keyword saves the current box size/shape. This can be\nuseful if you wish to use the *remap* keyword more than once or if you\nwish it to be applied to an intermediate box size/shape in a sequence\nof keyword operations. Note that the box size/shape is saved before\nany of the keywords are processed, i.e. the box size/shape at the time\nthe create_box command is encountered in the input script.\n\nThe *remap* keyword remaps atom coordinates from the last saved box\nsize/shape to the current box state. For example, if you stretch the\nbox in the x dimension or tilt it in the xy plane via the *x* and *xy*\nkeywords, then the *remap* command will dilate or tilt the atoms to\nconform to the new box size/shape, as if the atoms moved with the box\nas it deformed.\n\nNote that this operation is performed without regard to periodic\nboundaries. Also, any shrink-wrapping of non-periodic boundaries (see\nthe [boundary ](https://docs.lammps.org/boundary.html) command) occurs after all keywords,\nincluding this one, have been processed.\n\nOnly atoms in the specified group are remapped.\n\n----------\n\nThe *units* keyword determines the meaning of the distance units used\nto define various arguments. A *box* value selects standard distance\nunits as defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for\nunits = real or metal. A *lattice* value means the distance units are\nin lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing.\n\n----------\n", + "restrictions": "If you use the *ortho* or *triclinic* keywords, then at the point in\nthe input script when this command is issued, no [dumps ](https://docs.lammps.org/dump.html) can\nbe active, nor can a [fix deform ](https://docs.lammps.org/fix_deform.html) be active. This is\nbecause these commands test whether the simulation box is orthogonal\nwhen they are first issued. Note that these commands can be used in\nyour script before a change_box command is issued, so long as an\n[undump ](https://docs.lammps.org/undump.html) or [unfix ](https://docs.lammps.org/unfix.html) command is also used to\nturn them off.\n", + "related": "[fix deform ](https://docs.lammps.org/fix_deform.html), [boundary ](https://docs.lammps.org/boundary.html)\n" }, { "command": [ - "improper_coeff" + "pair_style uf3", + "pair_style uf3/kk" ], "syntax": [ - "improper_coeff N args" + "pair_style style BodyFlag" ], "args": [ [ { - "arg": "improper_coeff", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] + "arg": "uf3/kk", + "type": 3, + "choices": [ + "uf3", + "uf3/kk", + "uf3/kk" + ] }, { - "arg": "args", + "arg": "BodyFlag", "type": 2, "choices": [] } ] ], - "parameters": "* N = numeric improper type (see asterisk form below), or type label\n* args = coefficients for one or more improper types \n", - "examples": "\n```lmps\nimproper_coeff 1 300.0 0.0\nimproper_coeff * 80.2 -1 2\nimproper_coeff *4 80.2 -1 2\n\nlabelmap improper 1 benzene\nimproper_coeff benzene 300.0 0.0\n```\n", - "html_filename": "improper_coeff.html", - "short_description": "Specify the improper force field coefficients for one or more improper\ntypes", - "description": "Specify the improper force field coefficients for one or more improper\ntypes. The number and meaning of the coefficients depends on the\nimproper style. Improper coefficients can also be set in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple improper types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) = the number of improper types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using an improper_coeff command can override a previous\nsetting for the same improper type. For example, these commands set the\ncoeffs for all improper types, then overwrite the coeffs for just\nimproper type 2:\n\n```lmps\nimproper_coeff * 300.0 0.0\nimproper_coeff 2 50.0 0.0\n```\nA line in a data file that specifies improper coefficients uses the\nexact same format as the arguments of the improper_coeff command in an\ninput script, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For\nexample, under the \"Improper Coeffs\" section of a data file, the line\nthat corresponds to the first example above would be listed as\n\n```\n1 300.0 0.0\n```\nThe [improper_style class2 ](https://docs.lammps.org/improper_class2.html) is an exception to\nthis rule, in that an additional argument is used in the input script\nto allow specification of the cross-term coefficients. See its doc\npage for details.\n\n----------\n\nThe list of all improper styles defined in LAMMPS is given on the\n[improper_style ](https://docs.lammps.org/improper_style.html) doc page. They are also listed\nin more compact form on the :ref:`Commands improper ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\nimproper_coeff command.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAn improper style must be defined before any improper coefficients are\nset, either in the input script or in a data file.\n", - "related": "[improper_style ](https://docs.lammps.org/improper_style.html)\n" + "parameters": "* style = uf3 or uf3/kk \n *        BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values: 2 or 3 \n", + "examples": "\n```lmps\npair_style uf3 3\npair_coeff * * Nb.uf3 Nb\n\npair_style uf3 2\npair_coeff * * NbSn.uf3 Nb Sn\n\npair_style uf3 3\npair_coeff * * NbSn.uf3 Nb Sn\n```\n", + "html_filename": "pair_uf3.html", + "short_description": "\nThe *uf3* style computes the **Xie23** potential, a machine-learning interatomic potential", + "description": "\nThe *uf3* style computes the **Xie23** potential, a machine-learning interatomic potential. In UF3,\nthe total energy of the system is defined via two- and three-body\ninteractions:\n\\[\\begin{align*} \n E & = \\sum_{i,j} V_2(r_{ij}) + \\sum_{i,j,k} V_3 (r_{ij},r_{ik},r_{jk}) \\\\\n V_2(r_{ij}) & = \\sum_{n=0}^N c_n B_n(r_{ij}) \\\\\n V_3 (r_{ij},r_{ik},r_{jk}) & = \\sum_{l=0}^{N_l} \\sum_{m=0}^{N_m} \\sum_{n=0}^{N_n} c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) \\end{align*} \\]\nwhere \\(V_2(r_{ij})\\) and \\(V_3 (r_{ij},r_{ik},r_{jk})\\) are the\ntwo- and three-body interactions, respectively. For the two-body the\nsummation is over all neighbors J and for the three-body the summation\nis over all neighbors J and K of atom I within a cutoff distance\ndetermined from the potential files. \\(B_n(r_{ij})\\) are the cubic\nb-spline basis, \\(c_n\\) and \\(c_{l,m,n}\\) are the machine-learned\ninteraction parameters and \\(N\\), \\(N_l\\), \\(N_m\\), and\n\\(N_n\\) denote the number of basis functions per spline or tensor\nspline dimension.\n\nWith *uf3* style only a single pair_coeff command is used to indicate the\nUF3 LAMMPS potential file containing all the two- and three-body interactions\nfollowed by N additional arguments specifying the mapping of UF3 elements to\nLAMMPS atom types, where N is the number of LAMMPS atom types:\n\n* UF3 LAMMPS potential file\n* N elements names = mapping of UF3 elements to atom types\n\nAs an example, if a LAMMPS simulation contains 2 atom types (elements\n'A' and 'B'), the pair_coeff command will be:\n\n```lmps\npair_style uf3 3\npair_coeff * * AB.uf3 A B\n```\nThe AB.uf3 file should contain all two-body (A-A, A-B, B-B) and three-body\n(A-A-A, A-A-B, A-B-B, B-A-A, B-A-B, B-B-B).\n\nIf a value of \"2\" is specified in the :code:`pair_style uf3` command,\nonly the two-body potentials are needed. For 3-body interaction the\nfirst atom type is the central atom. We recommend using the\n:code:[generate_uf3_lammps_pots.py` script (found `here](https://github.com/uf3/uf3/tree/develop/lammps_plugin/scripts)) for\ngenerating the UF3 LAMMPS potential file from the UF3 JSON potentials.\n\n----------\n\nUF3 LAMMPS potential file in the *potentials* directory of the LAMMPS\ndistribution have a \".uf3\" suffix. The interaction block in UF3 LAMMPS potential\nfile should start with :code:`#UF3 POT` and end with :code:`#` characters.\nFollowing shows the format of a generic 2-body and 3-body potential block in\nUF3 LAMMPS potential file-\n\n```lmps\n#UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE\n2B ELEMENT1 ELEMENT2 LEADING_TRIM TRAILING_TRIM\nRij_CUTOFF NUM_OF_KNOTS\nBSPLINE_KNOTS\nNUM_OF_COEFF\nCOEFF\n#\n#UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE\n3B ELEMENT1 ELEMENT2 ELEMENT3 LEADING_TRIM TRAILING_TRIM\nRjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ\nBSPLINE_KNOTS_FOR_JK\nBSPLINE_KNOTS_FOR_IK\nBSPLINE_KNOTS_FOR_IJ\nSHAPE_OF_COEFF_MATRIX[I][J][K]\nCOEFF_MATRIX[0][0][K]\nCOEFF_MATRIX[0][1][K]\nCOEFF_MATRIX[0][2][K]\n.\n.\n.\nCOEFF_MATRIX[1][0][K]\nCOEFF_MATRIX[1][1][K]\nCOEFF_MATRIX[1][2][K]\n.\n.\n.\n#\n```\nThe second line indicates whether the block contains data for 2-body\n(:code:`2B`) or 3-body (:code:`3B`) interaction. This is followed by element\ncombination interaction, :code:`LEADING_TRIM` and :code:`TRAILING_TRIM`\nnumber on the same line. The current implementation is only tested for\n:code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`.\nIf other values are used LAMMPS is terminated after issuing an error message.\nThe :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described\nby the potential block. :code:`NUM_OF_KNOTS` is the number of knots\n(or the length of the knot vector) present on the very next line. The\n:code:`BSPLINE_KNOTS` line should contain all the knots in ascending order.\n:code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line.\nAll the numbers in the BSPLINE_KNOTS and COEFF line should be space-separated.\nSimilar to the 2-body potential block, the third line sets the cutoffs and\nlength of the knots. The cutoff distance between atom-type I and J is\n:code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and between\nJ and K is :code:`Rjk_CUTOFF`.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The current implementation only works for UF3 potentials with cutoff\n > distances for 3-body interactions that follows\n > :code:`2Rij_CUTOFF=2Rik_CUTOFF=Rjk_CUTOFF` relation. \n > \n\nThe :code:`BSPLINE_KNOTS_FOR_JK`, :code:`BSPLINE_KNOTS_FOR_IK`, and\n:code:`BSPLINE_KNOTS_FOR_IJ` lines (note the order) contain the knots in\nincreasing order for atoms J and K, I and K, and atoms I and J\nrespectively. The number of knots is defined by the\n:code:`NUM_OF_KNOTS_*` characters in the previous line. The shape of\nthe coefficient matrix is defined on the\n:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` line followed by the columns of\nthe coefficient matrix, one per line, as shown above. For example, if\nthe coefficient matrix has the shape of 8x8x13, then\n:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` will be :code:`8 8 13` followed\nby 64 (8x8) lines each containing 13 coefficients separated by space.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as described\nabove from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Xie23)** Xie, S.R., Rupp, M. & Hennig, R.G. Ultra-fast interpretable machine-learning potentials. npj Comput Mater 9, 162 (2023). https://doi.org/10.1038/s41524-023-01092-7 \n ", + "restrictions": "The 'uf3' pair style is part of the ML-UF3 package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\".\n\nThe UF3 LAMMPS potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\n\nThe single() function of 'uf3' pair style only return the 2-body\ninteraction energy.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix polarize/bem/gmres", - "fix polarize/bem/icc" + "compute temp/asphere" ], "syntax": [ - "fix ID group-ID style nevery tolerance" + "compute ID group-ID temp/asphere keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -4240,137 +3886,94 @@ export const command_docs = [ "choices": [] }, { - "arg": "polarize/functional", + "arg": "temp/asphere", + "type": 1, + "choices": [] + }, + { + "arg": "dof", "type": 3, "choices": [ - "polarize/bem/gmres", - "polarize/bem/icc", - "polarize/functional" + "bias", + "dof" ] }, { - "arg": "nevery", - "type": 2, - "choices": [] - }, - { - "arg": "tolerance", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = polarize/bem/gmres or polarize/bem/icc or polarize/functional\n* nevery = this fixed is invoked every this many timesteps\n* tolerance = the relative tolerance for the iterative solver to stop \n", - "examples": "\n```lmps\nfix 2 interface polarize/bem/gmres 5 0.0001\nfix 1 interface polarize/bem/icc 1 0.0001\nfix 3 interface polarize/functional 1 0.0001\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", - "html_filename": "fix_polarize.html", - "short_description": "These fixes compute induced charges at the interface between two\nimpermeable media with different dielectric constants", - "description": "These fixes compute induced charges at the interface between two\nimpermeable media with different dielectric constants. The interfaces\nneed to be discretized into vertices, each representing a boundary\nelement. The vertices are treated as if they were regular atoms or\nparticles. [atom_style dielectric ](https://docs.lammps.org/atom_style.html) should be used\nsince it defines the additional properties of each interface particle\nsuch as interface normal vectors, element areas, and local dielectric\nmismatch. These fixes also require the use of [pair_style](https://docs.lammps.org/pair_style.html) and [kspace_style ](https://docs.lammps.org/kspace_style.html) with the\n*dielectric* suffix. At every time step, given a configuration of the\nphysical charges in the system (such as atoms and charged particles)\nthese fixes compute and update the charge of the interface\nparticles. The interfaces are allowed to move during the simulation if\nthe appropriate time integrators are also set (for example, with\n[fix_rigid ](https://docs.lammps.org/fix_rigid.html)).\n\nConsider an interface between two media: one with dielectric constant of\n78 (water), the other of 4 (silica). The interface is discretized into\n2000 boundary elements, each represented by an interface\nparticle. Suppose that each interface particle has a normal unit vector\npointing from the silica medium to water. The dielectric difference\nalong the normal vector is then 78 - 4 = 74, the mean dielectric value\nis (78 + 4) / 2 = 41. Each boundary element also has its area and the\nlocal mean curvature, which is used by these fixes for computing a\ncorrection term in the local electric field. To model charged\ninterfaces, an interface particle will have a non-zero charge value,\ncoming from its area and surface charge density, and its local dielectric\nconstant set to the mean dielectric value.\n\nFor non-interface particles such as atoms and charged particles, the\ninterface normal vectors, element area, and dielectric mismatch are\nirrelevant and unused. Their local dielectric value is used internally\nto rescale their given charge when computing the Coulombic\ninteractions. For instance, to simulate a cation carrying a charge of +2\n(in simulation charge units) in an implicit solvent with a dielectric\nconstant of 40, the cation's charge should be set to +2 and its local\ndielectric constant property (defined in the [atom_style dielectric](https://docs.lammps.org/atom_style.html)) should be set to 40; there is no need to manually rescale\ncharge. This will produce the proper force for any [pair_style](https://docs.lammps.org/pair_style.html) with the dielectric suffix. It is assumed that the\nparticles cannot pass through the interface during the simulation\nbecause the value of the local dielectric constant property does not\nchange.\n\nThere are some example scripts for using these fixes with LAMMPS in the\n``examples/PACKAGES/dielectric`` directory. The README file therein\ncontains specific details on the system setup. Note that the example\ndata files show the additional fields (columns) needed for\n[atom_style dielectric ](https://docs.lammps.org/atom_style.html) beyond the conventional fields\n*id*, *mol*, *type*, *q*, *x*, *y*, and *z*.\n\n----------\n\nFor fix *polarize/bem/gmres* and fix *polarize/bem/icc* the induced\ncharges of the atoms in the specified group, which are the vertices on\nthe interface, are computed using the equation:\n\\[\n \\sigma_b(\\mathbf{s}) = \\dfrac{1 - \\bar{\\epsilon}}{\\bar{\\epsilon}}\n \\sigma_f(\\mathbf{s}) - \\epsilon_0 \\dfrac{\\Delta \\epsilon}{\\bar{\\epsilon}}\n \\mathbf{E}(\\mathbf{s}) \\cdot \\mathbf{n}(\\mathbf{s})\\]\n* \\(\\sigma_b\\) is the induced charge density at the interface vertex \\(\\mathbf{s}\\).\n* \\(\\bar{\\epsilon}\\) is the mean dielectric constant at the interface vertex: \\(\\bar{\\epsilon} = (\\epsilon_1 + \\epsilon_2)/2\\).\n* \\(\\Delta \\epsilon\\) is the dielectric constant difference at the interface vertex: \\(\\Delta \\epsilon = \\epsilon_1 - \\epsilon_2\\)\n* \\(\\sigma_f\\) is the free charge density at the interface vertex\n* \\(\\mathbf{E}(\\mathbf{s})\\) is the electrical field at the vertex\n* \\(\\mathbf{n}(\\mathbf{s})\\) is the unit normal vector at the vertex pointing from medium with \\(\\epsilon_2\\) to that with \\(\\epsilon_1\\)\n\nFix *polarize/bem/gmres* employs the Generalized Minimum Residual\n(GMRES) as described in **Barros** to solve\n\\(\\sigma_b\\).\n\nFix *polarize/bem/icc* employs the successive over-relaxation algorithm\nas described in **Tyagi** to solve \\(\\sigma_b\\).\n\nThe iterative solvers would terminate either when the maximum relative\nchange in the induced charges in consecutive iterations is below the set\ntolerance, or when the number of iterations reaches *iter_max* (see\nbelow).\n\nFix *polarize/functional* employs the energy functional variation\napproach as described in **Jadhao** to solve\n\\(\\sigma_b\\).\n\nThe induced charges computed by these fixes are stored in the *q_scaled* field,\nand can be accessed as in the following example:\n\n```lmps\ncompute qs all property/atom q_scaled\ndump 1 all custom 1000 all.txt id type q x y z c_qs\n```\nNote that the *q* field is the regular atom charges, which do not change\nduring the simulation. For interface particles, *q_scaled* is the sum\nof the real charge, divided by the local dielectric constant *epsilon*,\nand their induced charges. For non-interface particles, *q_scaled* is\nthe real charge, divided by the local dielectric constant *epsilon*.\n\nMore details on the implementation of these fixes and their recommended\nuse are described in **NguyenTD**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) command provides the ability to modify certain\nsettings:\n\n```\n*itr_max* arg\narg = maximum number of iterations for convergence\n*dielectrics* ediff emean epsilon area charge\nediff = dielectric difference or NULL\nemean = dielectric mean or NULL\nepsilon = local dielectric value or NULL\narea = element area or NULL\ncharge = real interface charge or NULL\n*kspace* arg = yes or no\n*rand* max seed\nmax = range of random induced charges to be generated\nseed = random number seed to use when generating random charge\n*mr* arg\narg = maximum number of q-vectors to use when solving (GMRES only)\n*omega* arg\narg = relaxation parameter to use when iterating (ICC only)\n```\nThe *itr_max* keyword sets the max number of iterations to be used for\nsolving each step.\n\nThe *dielectrics* keyword allows properties of the atoms in group\n*group-ID* to be modified. Values passed to any of the arguments\n(*ediff*, *emean*, *epsilon*, *area*, *charge*) will override existing\nvalues for all atoms in the group *group-ID*. Passing NULL to any of\nthese arguments will preserve the existing value. Note that setting the\nproperties of the interface this way will change the properties of all\natoms associated with the fix (all atoms in *group-ID*), so multiple fix\nand fix_modify commands would be needed to change the properties of two\ndifferent interfaces to different values (one fix and fix_modify for\neach interface group).\n\nThe *kspace* keyword turns on long range interactions.\n\nIf the arguments of the *rand* keyword are set, then the atoms subject\nto this fix will be assigned a random initial charge in a uniform\ndistribution from -*max*/2 to *max*/2, using random number seed *seed*.\n\nThe *mr* keyword only applies to *style* = *polarize/bem/gmres*. It is\nthe maximum number of q-vectors to use when solving for the surface\ncharge.\n\nThe *omega* keyword only applies when using *style* =\n*polarize/bem/icc*. It is a relaxation parameter defined in\n**Tyagi** that should generally be set between 0 and 2.\n\nNote that the local dielectric constant (epsilon) can also be set\nindependently using the [set ](https://docs.lammps.org/set.html) command.\n\n----------\n\n*polarize/bem/gmres* or *polarize/bem/icc* compute a global 2-element\nvector which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first element is the number of iterations when the\nsolver terminates (of which the upper bound is set by *iter_max*). The\nsecond element is the RMS error.\n\n**(Barros)** Barros, Sinkovits, Luijten, J. Chem. Phys, 140, 064903 (2014) \n \n**(Tyagi)** Tyagi, Suzen, Sega, Barbosa, Kantorovich, Holm, J Chem Phys, 132, 154112 (2010) \n \n**(Jadhao)** Jadhao, Solis, Olvera de la Cruz, J Chem Phys, 138, 054119 (2013) \n \n**(NguyenTD)** Nguyen, Li, Bagchi, Solis, Olvera de la Cruz, Comput Phys Commun 241, 80-19 (2019) \n ", - "restrictions": "These fixes are part of the DIELECTRIC package. They are only enabled\nif LAMMPS was built with that package, which requires that also the\nKSPACE package is installed. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNote that the *polarize/bem/gmres* and *polarize/bem/icc* fixes only\nsupport [units ](https://docs.lammps.org/units.html) *lj*, *real*, *metal*, *si* and *nano* at\nthe moment.\n\nNote that *polarize/functional* does not yet support charged interfaces.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix polarize ](https://docs.lammps.org/fix_polarize.html), [read_data ](https://docs.lammps.org/read_data.html),\n[pair_style lj/cut/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html),\n[kspace_style pppm/dielectric ](https://docs.lammps.org/kspace_style.html),\n[compute efield/atom ](https://docs.lammps.org/compute_efield_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/asphere = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", + "examples": "\n```lmps\ncompute 1 all temp/asphere\ncompute myTemp mobile temp/asphere bias tempCOM\ncompute myTemp mobile temp/asphere dof rotate\n```\n", + "html_filename": "compute_temp_asphere.html", + "short_description": "Define a computation that calculates the temperature of a group of\naspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy", + "description": "Define a computation that calculates the temperature of a group of\naspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nOnly finite-size particles (aspherical or spherical) can be included\nin the group. For 3d finite-size particles, each has six degrees of\nfreedom (three translational, three rotational). For 2d finite-size\nparticles, each has three degrees of freedom (two translational, one\nrotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all finite-size\n > aspherical or spherical particles in your model will freely rotate,\n > sampling all their rotational DOF. It is possible to use a\n > combination of interaction potentials and fixes that induce no torque\n > or otherwise constrain some of all of your particles so that this is\n > not the case. Then there are fewer DOF and you should use the\n > [compute_modify extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust\n > the DOF accordingly. \n > \n\nFor example, an aspherical particle with all three of its shape\nparameters the same is a sphere. If it does not rotate, then it should\nhave 3 DOF instead of 6 in 3d (or two instead of three in 2d). A\nuniaxial aspherical particle has two of its three shape parameters the\nsame. If it does not rotate around the axis perpendicular to its\ncircular cross section, then it should have 5 DOF instead of 6 in 3d.\nThe latter is the case for uniaxial ellipsoids in a [GayBerne model](https://docs.lammps.org/pair_gayberne.html) since there is no induced torque around the optical\naxis. It will also be the case for biaxial ellipsoids when exactly two\nof the semiaxes have the same length and the corresponding relative well\ndepths are equal.\n\nThe translational kinetic energy is computed the same as is described\nby the [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational\nkinetic energy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is\nthe inertia tensor for the aspherical particle and \\(\\omega\\) is its\nangular velocity, which is computed from its angular momentum.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > ellipsoids, not ellipses, meaning their moments of inertia will be the\n > same as in 3d. \n > \n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute. The formula for the components of the\ntensor is the same as the above formula, except that \\(v^2\\) and\n\\(\\omega^2\\) are replaced by \\(v_x v_y\\) and \\(\\omega_x \\omega_y\\)\nfor the \\(xy\\) component, and the appropriate elements of the moment of\ninertia tensor are used. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic/dof* option of\nthe [compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the\ncase.\n\nThis compute subtracts out translational degrees-of-freedom due to fixes\nthat constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups\nof atoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra/dof* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom.\nA setting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" }, { "command": [ - "hyper" + "compute count/type" ], "syntax": [ - "hyper N Nevent fix-ID compute-ID keyword values ..." + "compute ID group-ID count/type mode" ], "args": [ [ { - "arg": "hyper", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "Nevent", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "fix-ID", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "compute-ID", - "type": 2, + "arg": "count/type", + "type": 1, "choices": [] }, { - "arg": "rebond", + "arg": "improper", "type": 3, "choices": [ - "min", - "dump", - "rebond" + "atom", + "bond", + "angle", + "dihedral", + "improper" ] - }, - { - "arg": "values", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* N = # of timesteps to run\n* Nevent = check for events every this many steps\n* fix-ID = ID of a fix that applies a global or local bias potential, can be NULL\n* compute-ID = ID of a compute that identifies when an event has occurred\n* zero or more keyword/value pairs may be appended\n* keyword = min or dump or rebond \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy, used in quenching \n         ftol = stopping tolerance for force, used in quenching \n         maxiter = max iterations of minimize, used in quenching \n         maxeval = max number of force/energy evaluations, used in quenching \n *        dump value = dump-ID \n         dump-ID = ID of dump to trigger whenever an event takes place \n *        rebond value = Nrebond \n         Nrebond = frequency at which to reset bonds, even if no event has occurred \n", - "examples": "\n```lmps\ncompute event all event/displace 1.0\nfix HG mobile hyper/global 3.0 0.3 0.4 800.0\nhyper 5000 100 HG event min 1.0e-6 1.0e-6 100 100 dump 1 dump 5\n```\n", - "html_filename": "hyper.html", - "short_description": "Run a bond-boost hyperdynamics (HD) simulation where time is\naccelerated by application of a bias potential to one or more pairs of\nnearby atoms in the system", - "description": "Run a bond-boost hyperdynamics (HD) simulation where time is\naccelerated by application of a bias potential to one or more pairs of\nnearby atoms in the system. This command can be used to run both\nglobal and local hyperdynamics. In global HD a single bond within the\nsystem is biased on each timestep. In local HD multiple bonds\n(separated by a sufficient distance) can be biased simultaneously at\neach timestep. In the bond-boost hyperdynamics context, a \"bond\" is\nnot a covalent bond between a pair of atoms in a molecule. Rather it\nis simply a pair of nearby atoms as discussed below.\n\nBoth global and local HD are described in **Voter2013** by Art Voter and collaborators. Similar to parallel\nreplica dynamics (PRD), global and local HD are methods for performing\naccelerated dynamics that are suitable for infrequent-event systems\nthat obey first-order kinetics. A good overview of accelerated\ndynamics methods (AMD) for such systems in given in **Voter2002hd** from the same group. To quote from the review paper:\n\"The dynamical evolution is characterized by vibrational excursions\nwithin a potential basin, punctuated by occasional transitions between\nbasins. The transition probability is characterized by p(t) =\nk\\*exp(-kt) where k is the rate constant.\"\n\nBoth HD and PRD produce a time-accurate trajectory that effectively\nextends the timescale over which a system can be simulated, but they\ndo it differently. HD uses a single replica of the system and\naccelerates time by biasing the interaction potential in a manner such\nthat each timestep is effectively longer. PRD creates Nr replicas of\nthe system and runs dynamics on each independently with a normal\nunbiased potential until an event occurs in one of the replicas. The\ntime between events is reduced by a factor of Nr replicas. For both\nmethods, per CPU second, more physical time elapses and more events\noccur. See the [prd ](https://docs.lammps.org/prd.html) page for more info about PRD.\n\nAn HD run has several stages, which are repeated each time an event\noccurs, as explained below. The logic for an HD run is as follows:\n\n```\nquench\ncreate initial list of bonds\n\nwhile (time remains):\nrun dynamics for Nevent steps\nquench\ncheck for an event\nif event occurred: reset list of bonds\nrestore pre-quench state\n```\nThe list of bonds is the list of atom pairs of atoms that are within a\nshort cutoff distance of each other after the system energy is\nminimized (quenched). This list is created and reset by a [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html) or [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html) command specified as *fix-ID* . At\nevery dynamics timestep, the same fix selects one of more bonds to\napply a bias potential to.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The style of fix associated with the specified *fix-ID*\n > determines whether you are running the global versus local\n > hyperdynamics algorithm. \n > \n\nDynamics (with the bias potential) is run continuously, stopping every\n*Nevent* steps to check if a transition event has occurred. The\nspecified *N* for total steps must be a multiple of *Nevent* . check\nis performed by quenching the system and comparing the resulting atom\ncoordinates to the coordinates from the previous basin.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command.\nMinimization parameters may be set via the\n[min_modify ](https://docs.lammps.org/min_modify.html) command and by the *min* keyword of the\nhyper command. The latter are the settings that would be used with\nthe [minimize ](https://docs.lammps.org/minimize.html) command. Note that typically, you do not\nneed to perform a highly-converged minimization to detect a transition\nevent, though you may need to in order to prevent a set of atoms in\nthe system from relaxing to a saddle point.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nhyper command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an event has occurred.\n\nIf this happens, the list of bonds is reset, since some bond pairs\nare likely now too far apart, and new pairs are likely close enough\nto be considered a bond. The pre-quenched state of the\nsystem (coordinates and velocities) is restored, and dynamics continue.\n\nAt the end of the hyper run, a variety of statistics are output to the\nscreen and logfile. These include info relevant to both global and\nlocal hyperdynamics, such as the number of events and the elapsed\nhyper time (accelerated time), And it includes info specific to one or\nthe other, depending on which style of fix was specified by *fix-ID* .\n\n----------\n\nThe optional keywords operate as follows.\n\nAs explained above, the *min* keyword can be used to specify\nparameters for the quench. Their meaning is the same\nas for the [minimize ](https://docs.lammps.org/minimize.html) command\n\nThe *dump* keyword can be used to trigger a specific dump command with\nthe specified *dump-ID* to output a snapshot each time an event is\ndetected. It can be specified multiple times with different *dump-ID*\nvalues, as in the example above. These snapshots will be for the\nquenched state of the system on a timestep that is a multiple of\n*Nevent*, i.e. a timestep after the event has occurred. Note that any\ndump command in the input script will also output snapshots at\nwhatever timestep interval it defines via its *N* argument; see the\n[dump ](https://docs.lammps.org/dump.html) command for details. This means if you only want a\nparticular dump to output snapshots when events are detected, you\nshould specify its *N* as a value larger than the length of the\nhyperdynamics run.\n\nAs in the code logic above, the bond list is normally only reset when\nan event occurs. The *rebond* keyword will force a reset of the bond\nlist every *Nrebond* steps, even if an event has not occurred.\n*Nrebond* must be a multiple of *Nevent* . This can be useful to check\nif more frequent resets alter event statistics, perhaps because the\nparameters chosen for defining what is a bond and what is an event are\nproducing bad dynamics in the presence of the bias potential.\n\n----------\n\n**(Voter2013)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Voter2002hd)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html), [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html), [compute event/displace ](https://docs.lammps.org/compute_event_displace.html), [prd ](https://docs.lammps.org/prd.html)\n" -}, -{ - "command": [ - "angle_style zero" - ], - "syntax": [ - "angle_style zero keyword" - ], - "args": [ - [ - { - "arg": "angle_style", - "type": 1, - "choices": [] - }, - { - "arg": "zero", - "type": 1, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] } ] ], - "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", - "examples": "\n```lmps\nangle_style zero\nangle_style zero nocoeff\nangle_coeff *\nangle_coeff * 120.0\n```\n", - "html_filename": "angle_zero.html", - "short_description": "Using an angle style of zero means angle forces and energies are not\ncomputed, but the geometry of angle triplets is still accessible to\nother commands", - "description": "Using an angle style of zero means angle forces and energies are not\ncomputed, but the geometry of angle triplets is still accessible to\nother commands.\n\nAs an example, the [compute angle/local ](https://docs.lammps.org/compute_angle_local.html)\ncommand can be used to compute the theta values for the list of\ntriplets of angle atoms listed in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. If no angle style is defined,\nthis command cannot be used.\n\nThe optional *nocoeff* flag allows to read data files with AngleCoeff\nsection for any angle style. Similarly, any [angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands\nwill only be checked for the angle type number and the rest ignored.\n\nNote that the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command must be used for\nall angle types. If specified, there can be only one value, which is\ngoing to be used to assign an equilibrium angle, e.g. for use with\n[fix shake ](https://docs.lammps.org/fix_shake.html).\n", - "restrictions": " none\n", - "related": "[angle_style none ](https://docs.lammps.org/angle_none.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* count/type = style name of this compute command\n* mode = atom or bond or angle or dihedral or improper \n", + "examples": "\n```lmps\ncompute 1 all count/type atom\ncompute 1 flowmols count/type bond\n```\n", + "html_filename": "compute_count_type.html", + "short_description": "\nDefine a computation that counts the current number of atoms for each\natom type", + "description": "\nDefine a computation that counts the current number of atoms for each\natom type. Or the number of bonds (angles, dihedrals, impropers) for\neach bond (angle, dihedral, improper) type.\n\nThe former can be useful if atoms are added to or deleted from the\nsystem in random ways, e.g. via the [fix deposit ](https://docs.lammps.org/fix_deposit.html),\n[fix pour ](https://docs.lammps.org/fix_pour.html), or [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)\ncommands. The latter can be useful in reactive simulations where\nmolecular bonds are broken or created, as well as angles, dihedrals,\nimpropers.\n\nNote that for this command, bonds (angles, etc) are the topological\nkind enumerated in a data file, initially read by the [read_data](https://docs.lammps.org/read_data.html) command or defined by the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. They do not refer to implicit bonds defined on-the-fly by\nbond-order or reactive pair styles based on the current conformation\nof small clusters of atoms.\n\nThese commands can turn off topological bonds (angles, etc) by setting\ntheir bond (angle, etc) types to negative values. This command\nincludes the turned-off bonds (angles, etc) in the count for each\ntype:\n\n* [fix shake ](https://docs.lammps.org/fix_shake.html)\n* [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n\nThese commands can create and/or break topological bonds (angles,\netc). In the case of breaking, they remove the bond (angle, etc) from\nthe system, so that they no longer exist ([bond_style quartic](https://docs.lammps.org/bond_quartic.html) and [BPM bond styles ](https://docs.lammps.org/Howto_bpm.html) are exceptions,\nsee the discussion below). Thus they are not included in the counts\nfor each type:\n\n* [delete_bonds remove ](https://docs.lammps.org/delete_bonds.html)\n* [bond_style quartic ](https://docs.lammps.org/bond_quartic.html)\n* [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n* [fix bond/create ](https://docs.lammps.org/fix_bond_create.html)\n* [fix bond/break ](https://docs.lammps.org/fix_bond_break.html)\n* [BPM package ](https://docs.lammps.org/Howto_bpm.html) bond styles\n\n----------\n\nIf the *mode* setting is *atom* then the count of atoms for each atom\ntype is tallied. Only atoms in the specified group are counted.\n\nThe atom count for each type can be normalized by the total number of\natoms like so:\n\n```lmps\ncompute typevec all count/type atom # number of atoms of each type\nvariable normtypes vector c_typevec/atoms # divide by total number of atoms\nvariable ntypes equal extract_setting(ntypes) # number of atom types\nthermo_style custom step v_normtypes[*${ntypes}] # vector variable needs upper limit\n```\nSimilarly, bond counts can be normalized by the total number of bonds.\nThe same goes for angles, dihedrals, and impropers (see below).\n\nIf the *mode* setting is *bond* then the count of bonds for each bond\ntype is tallied. Only bonds with both atoms in the specified group\nare counted.\n\nFor *mode* = *bond*, broken bonds with a bond type of zero are also\ncounted. The [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) and [BPMbond styles ](https://docs.lammps.org/Howto_bpm.html) break bonds by doing this. See the\n[Howto broken bonds ](https://docs.lammps.org/Howto_broken_bonds.html) doc page for more details.\nNote that the group setting is ignored for broken bonds; all broken\nbonds in the system are counted.\n\nIf the *mode* setting is *angle* then the count of angles for each\nangle type is tallied. Only angles with all 3 atoms in the specified\ngroup are counted.\n\nIf the *mode* setting is *dihedral* then the count of dihedrals for\neach dihedral type is tallied. Only dihedrals with all 4 atoms in the\nspecified group are counted.\n\nIf the *mode* setting is *improper* then the count of impropers for\neach improper type is tallied. Only impropers with all 4 atoms in the\nspecified group are counted.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of counts. If the mode is\n*atom* or *bond* or *angle* or *dihedral* or *improper*, then the\nvector length is the number of atom types or bond types or angle types\nor dihedral types or improper types, respectively.\n\nIf the mode is *bond* this compute also calculates a global scalar\nwhich is the number of broken bonds with type = 0, as explained above.\n\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar and vector values calculated by this compute are both\n\"intensive\".\n", + "restrictions": "none\n", + "related": "none\n" }, { "command": [ - "compute event/displace" + "fix neb/spin" ], "syntax": [ - "compute ID group-ID event/displace threshold" + "fix ID group-ID neb/spin Kspring" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -4385,36 +3988,36 @@ export const command_docs = [ "choices": [] }, { - "arg": "event/displace", + "arg": "neb/spin", "type": 1, "choices": [] }, { - "arg": "threshold", + "arg": "Kspring", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* event/displace = style name of this compute command\n* threshold = minimum distance any particle must move to trigger an event (distance units) \n", - "examples": "\n```lmps\ncompute 1 all event/displace 0.5\n```\n", - "html_filename": "compute_event_displace.html", - "short_description": "Define a computation that flags an \"event\" if any particle in the\ngroup has moved a distance greater than the specified threshold\ndistance when compared to a previously stored reference state\n(i.e., the previous event)", - "description": "Define a computation that flags an \"event\" if any particle in the\ngroup has moved a distance greater than the specified threshold\ndistance when compared to a previously stored reference state\n(i.e., the previous event). This compute is typically used in\nconjunction with the [prd ](https://docs.lammps.org/prd.html) and [tad ](https://docs.lammps.org/tad.html) commands,\nto detect if a transition to a new minimum energy basin has occurred.\n\nThis value calculated by the compute is equal to 0 if no particle has\nmoved far enough, and equal to 1 if one or more particles have moved\nfurther than the threshold distance.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is undergoing significant center-of-mass motion,\n > due to thermal motion, an external force, or an initial net momentum,\n > then this compute will not be able to distinguish that motion from\n > local atom displacements and may generate \"false positives\". \n > \n\n #### Output info\n\nThis compute calculates a global scalar (the flag). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nscalar value will be a 0 or 1 as explained above.\n", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[prd ](https://docs.lammps.org/prd.html), [tad ](https://docs.lammps.org/tad.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* neb/spin = style name of this fix command \n *    Kspring = spring constant for parallel nudging force \n *    (force/distance units or force units, see parallel keyword) \n", + "examples": "\n```lmps\nfix 1 active neb/spin 1.0\n```\n", + "html_filename": "fix_neb_spin.html", + "short_description": "Add nudging forces to spins in the group for a multi-replica\nsimulation run via the [neb/spin ](https://docs.lammps.org/neb_spin.html) command to perform a\ngeodesic nudged elastic band (GNEB) calculation for finding the\ntransition state", + "description": "Add nudging forces to spins in the group for a multi-replica\nsimulation run via the [neb/spin ](https://docs.lammps.org/neb_spin.html) command to perform a\ngeodesic nudged elastic band (GNEB) calculation for finding the\ntransition state.\nHi-level explanations of GNEB are given with the\n[neb/spin ](https://docs.lammps.org/neb_spin.html) command and on the\n[Howto replica ](https://docs.lammps.org/Howto_replica.html) doc page.\nThe fix neb/spin command must be used with the \"neb/spin\" command and\ndefines how inter-replica nudging forces are computed. A GNEB\ncalculation is divided in two stages. In the first stage n replicas\nare relaxed toward a MEP until convergence. In the second stage, the\nclimbing image scheme is enabled, so that the replica having the highest\nenergy relaxes toward the saddle point (i.e. the point of highest energy\nalong the MEP), and a second relaxation is performed.\n\nThe nudging forces are calculated as explained in\n**BessarabB**).\nSee this reference for more explanation about their expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\nas invoked by the [minimize ](https://docs.lammps.org/minimize.html) command via the\n[neb/spin ](https://docs.lammps.org/neb_spin.html) command.\n\n**(BessarabB)** Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,\n335-347 (2015). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[neb_spin ](https://docs.lammps.org/neb_spin.html)\n" }, { "command": [ - "compute slice" + "fix halt" ], "syntax": [ - "compute ID group-ID slice Nstart Nstop Nskip input1 input2 ..." + "fix ID group-ID halt N attribute operator avalue keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -4429,56 +4032,73 @@ export const command_docs = [ "choices": [] }, { - "arg": "slice", + "arg": "halt", "type": 1, "choices": [] }, { - "arg": "Nstart", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "Nstop", - "type": 2, - "choices": [] + "arg": "v_name", + "type": 3, + "choices": [ + "bondmax", + "tlimit", + "v_name" + ] }, { - "arg": "Nskip", - "type": 2, - "choices": [] + "arg": "\"\\|\\^\"", + "type": 3, + "choices": [ + "\"<\"", + "\">\"", + "\"\\|\\^\"" + ] }, { - "arg": "input1", + "arg": "avalue", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "path", + "type": 3, + "choices": [ + "error", + "message", + "path" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* slice = style name of this compute command\n* Nstart = starting index within input vector(s)\n* Nstop = stopping index within input vector(s)\n* Nskip = extract every Nskip elements from input vector(s)\n* input = c_ID, c_ID[N], f_ID, f_ID[N] \n *        c_ID = global vector calculated by a compute with ID \n *        c_ID[I] = Ith column of global array calculated by a compute with ID \n *        f_ID = global vector calculated by a fix with ID \n *        f_ID[I] = Ith column of global array calculated by a fix with ID \n *        v_name = vector calculated by an vector-style variable with name \n", - "examples": "\n```lmps\ncompute 1 all slice 1 100 10 c_msdmol[4]\ncompute 1 all slice 301 400 1 c_msdmol[4] v_myVec\n```\n", - "html_filename": "compute_slice.html", - "short_description": "Define a calculation that \"slices\" one or more vector inputs into\nsmaller vectors, one per listed input", - "description": "Define a calculation that \"slices\" one or more vector inputs into\nsmaller vectors, one per listed input. The inputs can be global\nquantities; they cannot be per-atom or local quantities.\n[Computes ](https://docs.lammps.org/compute.html) and [fixes ](https://docs.lammps.org/fix.html) and vector-style\n[variables ](https://docs.lammps.org/variable.html) can generate such global quantities. The\ngroup specified with this command is ignored.\n\nThe values extracted from the input vector(s) are determined by the\n*Nstart*, *Nstop*, and *Nskip* parameters. The elements of an input\nvector of length N are indexed from 1 to N. Starting at element\n*Nstart*, every Mth element is extracted, where M = *Nskip*, until\nelement *Nstop* is reached. The extracted quantities are stored as a\nvector, which is typically shorter than the input vector.\n\nEach listed input is operated on independently to produce one output\nvector. Each listed input must be a global vector or column of a\nglobal array calculated by another [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html).\n\nIf an input value begins with \"c\\_\", a compute ID must follow which has\nbeen previously defined in the input script and which generates a\nglobal vector or array. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the vector\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script and which generates a global\nvector or array. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when compute slice references\nthe values, else an error results. If no bracketed integer is\nappended, the vector calculated by the fix is used. If a bracketed\ninteger is appended, the Ith column of the array calculated by the fix\nis used. Users can also write code for their own fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf an input value begins with \"v\\_\", a variable name must follow which\nhas been previously defined in the input script. Only vector-style\nvariables can be referenced. See the [variable ](https://docs.lammps.org/variable.html) command\nfor details. Note that variables of style *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to slice.\n\nIf a single input is specified this compute produces a global vector,\neven if the length of the vector is 1. If multiple inputs are\nspecified, then a global array of values is produced, with the number\nof columns equal to the number of inputs specified.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector if a single input value is\nspecified or a global array with N columns where N is the number of\ninputs. The length of the vector or the number of rows in the array\nis equal to the number of values extracted from each input vector.\nThese values can be used by any command that uses global vector or\narray values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector or array values calculated by this compute are simply\ncopies of values generated by computes or fixes or variables that are\ninput vectors to this compute. If there is a single input vector of\nintensive and/or extensive values, then each value in the vector of\nvalues calculated by this compute will be \"intensive\" or \"extensive\",\ndepending on the corresponding input value. If there are multiple\ninput vectors, and all the values in them are intensive, then the\narray values calculated by this compute are \"intensive\". If there are\nmultiple input vectors, and any value in them is extensive, then the\narray values calculated by this compute are \"extensive\". Values\nproduced by a variable are treated as intensive.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ninput quantities are in.\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* halt = style name of this fix command\n* N = check halt condition every N steps\n* attribute = bondmax or tlimit or v_name \n *        bondmax = length of longest bond in the system (in length units) \n *        tlimit = elapsed CPU time (in seconds) \n *        diskfree = free disk space (in MBytes) \n *        v_name = name of [equal-style variable ](https://docs.lammps.org/variable.html) \n* operator = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" or \"\\|\\^\"\n* avalue = numeric value to compare attribute to\n* zero or more keyword/value pairs may be appended\n* keyword = error or message or path \n *        error value = hard or soft or continue \n *        message value = yes or no \n *        path value = path to check for free space (may be in quotes) \n", + "examples": "\n```lmps\nfix 10 all halt 1 bondmax > 1.5\nfix 10 all halt 10 v_myCheck != 0 error soft\nfix 10 all halt 100 diskfree < 100000.0 path \"dump storage/.\"\n```\n", + "html_filename": "fix_halt.html", + "short_description": "Check a condition every N steps during a simulation run", + "description": "Check a condition every N steps during a simulation run. N must be >=1.\nIf the condition is met, exit the run. In this context a \"run\" can be\ndynamics or minimization iterations, as specified by the [run](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe specified group-ID is ignored by this fix.\n\nThe specified *attribute* can be one of the options listed above, namely\n*bondmax*, *tlimit*, *diskfree*, or an [equal-style variable](https://docs.lammps.org/variable.html) referenced as *v_name*, where \"name\" is the name of a\nvariable that has been defined previously in the input script.\n\nThe *bondmax* attribute will loop over all bonds in the system,\ncompute their current lengths, and set *attribute* to the longest bond\ndistance.\n\nThe *tlimit* attribute queries the elapsed CPU time (in seconds) since\nthe current run began, and sets *attribute* to that value. This is an\nalternative way to limit the length of a simulation run, similar to\nthe [timer ](https://docs.lammps.org/timer.html) timeout command. There are two differences in\nusing this method versus the timer command option. The first is that\nthe clock starts at the beginning of the current run (not when the\ntimer or fix command is specified), so that any setup time for the run\nis not included in the elapsed time. The second is that the timer\ninvocation and syncing across all processors (via MPI_Allreduce) is\nnot performed once every *N* steps by this command. Instead it is\nperformed (typically) only a small number of times and the elapsed\ntimes are used to predict when the end-of-the-run will be. Both of\nthese attributes can be useful when performing benchmark calculations\nfor a desired length of time with minimal overhead. For example, if\na run is performing 1000s of timesteps/sec, the overhead for syncing\nthe timer frequently across a large number of processors may be\nnon-negligible.\n\nThe *diskfree* attribute will check for available disk space (in\nMBytes) on supported operating systems. By default it will\ncheck the file system of the current working directory. This\ncan be changed with the optional *path* keyword, which will take\nthe path to a file or folder on the file system to be checked\nas argument. This path must be given with single or double quotes,\nif it contains blanks or other special characters (like \\$).\n\nEqual-style variables evaluate to a numeric value. See the\n[variable ](https://docs.lammps.org/variable.html) command for a description. They calculate\nformulas which can involve mathematical operations, atom properties,\ngroup properties, thermodynamic properties, global values calculated\nby a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html), or references to other\n[variables ](https://docs.lammps.org/variable.html). Thus they are a very general means of\ncomputing some attribute of the current system. For example, the\nfollowing \"bondmax\" variable will calculate the same quantity as the\nhstyle = bondmax option.\n\n```lmps\ncompute bdist all bond/local dist\ncompute bmax all reduce max c_bdist\nvariable bondmax equal c_bmax\n```\nThus these two versions of a fix halt command will do the same thing:\n\n```lmps\nfix 10 all halt 1 bondmax > 1.5\nfix 10 all halt 1 v_bondmax > 1.5\n```\nThe version with \"bondmax\" will just run somewhat faster, due to less\noverhead in computing bond lengths and not storing them in a separate\ncompute.\n\nA variable can be used to implement a large variety of conditions,\nincluding to stop when a specific file exists. Example:\n\n```lmps\nvariable exit equal is_file(EXIT)\nfix 10 all halt 100 v_exit != 0 error soft\n```\nWill stop the current run command when a file ``EXIT`` is created\nin the current working directory. The condition can be cleared\nby removing the file through the [shell ](https://docs.lammps.org/shell.html) command.\n\nThe choice of operators listed above are the usual comparison\noperators. The XOR operation (exclusive or) is also included as \"\\|\\^\".\nIn this context, XOR means that if either the attribute or avalue is\n0.0 and the other is non-zero, then the result is \"true\". Otherwise\nit is \"false\".\n\nThe specified *avalue* must be a numeric value.\n\n----------\n\nThe optional *error* keyword determines how the current run is halted.\nIf its value is *hard*, then LAMMPS will stop with an error message.\n\nIf its value is *soft*, LAMMPS will exit the current run, but continue\nto execute subsequent commands in the input script. However,\nadditional [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) commands will be\nskipped. For example, this allows a script to output the current\nstate of the system, e.g. via a [write_dump ](https://docs.lammps.org/write_dump.html) or\n[write_restart ](https://docs.lammps.org/write_restart.html) command.\n\nIf its value is *continue*, the behavior is the same as for *soft*,\nexcept subsequent [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) commands\nare executed. This allows your script to remedy the condition that\ntriggered the halt, if necessary. Note that you may wish use the\n[unfix ](https://docs.lammps.org/unfix.html) command on the fix halt ID, so that the same\ncondition is not immediately triggered in a subsequent run.\n\nThe optional *message* keyword determines whether a message is printed\nto the screen and logfile when the halt condition is triggered. If\n*message* is set to yes, a one line message with the values that\ntriggered the halt is printed. If *message* is set to no, no message\nis printed; the run simply exits. The latter may be desirable for\npost-processing tools that extract thermodynamic information from log\nfiles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", + "restrictions": "The *diskfree* attribute is currently only supported on Linux, macOS, and \\*BSD.\n", + "related": "[variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "fix nve/dot" + "compute smd/tlsph/shape" ], "syntax": [ - "fix ID group-ID nve/dot" + "compute ID group-ID smd/tlsph/shape" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -4493,29 +4113,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/dot", + "arg": "smd/tlsph/shape", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/dot = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/dot\n```\n", - "html_filename": "fix_nve_dot.html", - "short_description": "Apply a rigid-body integrator as described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack4>`to a group of atoms, but without Langevin dynamics.This command performs Molecular dynamics (MD)via a velocity-Verlet algorithm and an evolution operator that rotatesthe quaternion degrees of freedom, similar to the scheme outlined in **Miller4**.This command is the equivalent of the [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)without damping and noise and can be used to determine the stability rangein a NVE ensemble prior to using the Langevin-type DOTC-integrator(see also [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)).The command is equivalent to the [fix nve ](https://docs.lammps.org/fix_nve.html).The particles are always considered to have a finite size.An example input file can be found in /examples/PACKAGES/cgdna/examples/duplex1/.Further details of the implementation and stability of the integrator are contained in **Henrich4**.The preprint version of the article can be found `here `to a group of atoms, but without Langevin dynamics.This command performs Molecular dynamics (MD)via a velocity-Verlet algorithm and an evolution operator that rotatesthe quaternion degrees of freedom, similar to the scheme outlined in **Miller4**.This command is the equivalent of the [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)without damping and noise and can be used to determine the stability rangein a NVE ensemble prior to using the Langevin-type DOTC-integrator(see also [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)).The command is equivalent to the [fix nve ](https://docs.lammps.org/fix_nve.html).The particles are always considered to have a finite size.An example input file can be found in /examples/PACKAGES/cgdna/examples/duplex1/.Further details of the implementation and stability of the integrator are contained in **Henrich4**.The preprint version of the article can be found `here ` package and the MOLECULE and ASPHERE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html), [fix nve ](https://docs.lammps.org/fix_nve.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/shape = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/shape\n```\n", + "html_filename": "compute_smd_tlsph_shape.html", + "short_description": "Define a computation that outputs the current shape of the volume\nassociated with a particle as a rotated ellipsoid", + "description": "Define a computation that outputs the current shape of the volume\nassociated with a particle as a rotated ellipsoid. It is only\nmeaningful for particles which interact according to the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors, which can be\naccessed by any command that uses per-particle values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-particle vector has 7 entries. The first three entries\ncorrespond to the lengths of the ellipsoid's axes and have units of\nlength. These axis values are computed as the contact radius times the\nxx, yy, or zz components of the Green-Lagrange strain tensor\nassociated with the particle. The next 4 values are quaternions\n(order: q, x, y, z) which describe the spatial rotation of the\nparticle relative to its initial state.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", + "related": "[smd/contact/radius ](https://docs.lammps.org/compute_smd_contact_radius.html)\n" }, { "command": [ - "pair_style amoeba", - "pair_style amoeba/gpu", - "pair_style hippo", - "pair_style hippo/gpu" + "pair_style tracker" ], "syntax": [ - "pair_style style" + "pair_style tracker fix_ID N keyword values attribute1 attribute2 ..." ], "args": [ [ @@ -4525,115 +4142,147 @@ export const command_docs = [ "choices": [] }, { - "arg": "hippo/gpu", + "arg": "tracker", + "type": 1, + "choices": [] + }, + { + "arg": "fix_ID", + "type": 2, + "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "type/include", "type": 3, "choices": [ - "amoeba", - "hippo", - "amoeba/gpu", - "hippo/gpu" + "finite", + "time/min", + "type/include" ] - } - ] - ], - "parameters": "* style = amoeba or hippo \n", - "examples": "\n```lmps\npair_style amoeba\npair_coeff * * protein.prm.amoeba protein.key.amoeba\n```\n\n```lmps\npair_style hippo\npair_coeff * * water.prm.hippo water.key.hippo\n```\n #### Additional info\n\n* [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html)\n* examples/amoeba\n* tools/amoeba\n* potentials/\\*.amoeba\n* potentials/\\*.hippo\n", - "html_filename": "pair_amoeba.html", - "short_description": "The *amoeba* style computes the AMOEBA polarizable field formulated\nby Jay Ponder's group at the U Washington at St Louis **amoeba-Ren**, **amoeba-Shi**", - "description": "The *amoeba* style computes the AMOEBA polarizable field formulated\nby Jay Ponder's group at the U Washington at St Louis **amoeba-Ren**, **amoeba-Shi**. The *hippo* style computes\nthe HIPPO polarizable force field, an extension to AMOEBA, formulated\nby Josh Rackers and collaborators in the Ponder group **amoeba-Rackers**.\n\nThese force fields can be used when polarization effects are desired\nin simulations of water, organic molecules, and biomolecules including\nproteins, provided that parameterizations (Tinker PRM force field\nfiles) are available for the systems you are interested in. Files in\nthe LAMMPS potentials directory with a \"amoeba\" or \"hippo\" suffix can\nbe used. The Tinker distribution and website have additional force\nfield files as well.\n\nAs discussed on the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page, the\nintermolecular (non-bonded) portion of the AMOEBA force field contains\nthese terms:\n\\[\n U_{amoeba} = U_{multipole} + U_{polar} + U_{hal}\\]\nwhile the HIPPO force field contains these terms:\n\\[\n U_{hippo} = U_{multipole} + U_{polar} + U_{qxfer} + U_{repulsion} + U_{dispersion}\\]\nConceptually, these terms compute the following interactions:\n\n* \\(U_{hal}\\) = buffered 14-7 van der Waals with offsets applied to hydrogen atoms\n* \\(U_{repulsion}\\) = Pauli repulsion due to rearrangement of electron density\n* \\(U_{dispersion}\\) = dispersion between correlated, instantaneous induced dipole moments\n* \\(U_{multipole}\\) = electrostatics between permanent point charges, dipoles, and quadrupoles\n* \\(U_{polar}\\) = electronic polarization between induced point dipoles\n* \\(U_{qxfer}\\) = charge transfer effects\n\nNote that the AMOEBA versus HIPPO force fields typically compute the\nsame term differently using their own formulas. The references on\nthis doc page give full details for both force fields.\n\nThe formulas for the AMOEBA energy terms are:\n\\[\\begin{align*} \n U_{hal} = & \\epsilon_{ij} \\left( \\frac{1.07}{\\rho_{ij} + 0.07} \\right)^7 \\left( \\frac{1.12}{\\rho_{ij}^7 + 0.12} - 2 \\right) \\\\\n U_{multipole} = & \\vec{M}_i\\boldsymbol{T_{ij}}\\vec{M}_j, \\quad \\mbox{with} \\quad\n \\vec{M} = \\left(q, \\vec{\\mu}_{perm}, \\boldsymbol{\\Theta} \\right) \\\\\n U_{polar} = & \\frac{1}{2}\\vec{\\mu}_i^{ind} \\vec{E}_i^{perm} \\end{align*} \\]\nThe formulas for the HIPPO energy terms are:\n\\[\\begin{align*} \n U_{multipole} = & Z_i \\frac{1}{r_{ij}} Z_j + Z_i T_{ij}^{damp} \\vec{M}_j + Z_j T_{ji}^{damp} \\vec{M}_i + \\vec{M}_i T_{ij}^{damp} \\vec{M}_j, \\quad \\mbox{with} \\quad\n \\vec{M} = \\left(q, \\vec{\\mu}_{perm}, \\boldsymbol{\\Theta} \\right) \\\\\n U_{polar} = & \\frac{1}{2}\\vec{\\mu}_i^{ind} \\vec{E}_i^{perm} \\\\\n U_{qxfer} = & \\epsilon_i e^{-\\eta_j r_{ij}} + \\epsilon_j e^{-\\eta_i r_{ij}} \\\\\n U_{repulsion} = & \\frac{K_i K_j}{r_{ij}} S^2\n S^2 = \\left( \\int{\\phi_i \\phi_j} dv \\right)^2 = \\vec{M}_i\\boldsymbol{T_{ij}^{repulsion}}\\vec{M}_j \\\\\n U_{dispersion} = & -\\frac{C_6^iC_6^j}{r_{ij}^6} \\left( f_{damp}^{dispersion} \\right)_{ij}^2 \\end{align*} \\]\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The AMOEBA and HIPPO force fields compute long-range charge, dipole,\n > and quadrupole interactions as well as long-range dispersion\n > effects. However, unlike other models with long-range interactions\n > in LAMMPS, this does not require use of a KSpace style via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. That is because for\n > AMOEBA and HIPPO the long-range computations are intertwined with\n > the pairwise computations. So these pair style include both short-\n > and long-range computations. This means the energy and virial\n > computed by the pair style as well as the \"Pair\" timing reported by\n > LAMMPS will include the long-range calculations. \n > \n\nThe implementation of the AMOEBA and HIPPO force fields in LAMMPS was\ndone using F90 code provided by the Ponder group from their `Tinker MD\ncode `_.\n\nThe current implementation (July 2022) of AMOEBA in LAMMPS matches the\nversion discussed in **amoeba-Ponder**, **amoeba-Ren**, and **amoeba-Shi**. Likewise the current\nimplementation of HIPPO in LAMMPS matches the version discussed in\n**amoeba-Rackers**.\n\nAccelerator support via the GPU package is available.\n\n----------\n\nOnly a single pair_coeff command is used with either the *amoeba* and\n*hippo* styles which specifies two Tinker files, a PRM and KEY file.\n\n```lmps\npair_coeff * * ../potentials/protein.prm.amoeba ../potentials/protein.key.amoeba\npair_coeff * * ../potentials/water.prm.hippo ../potentials/water.key.hippo\n```\nExamples of the PRM files are in the potentials directory with an\n\\*.amoeba or \\*.hippo suffix. The examples/amoeba directory has\nexamples of both PRM and KEY files.\n\nA Tinker PRM file is composed of sections, each of which has multiple\nlines. A Tinker KEY file is composed of lines, each of which has a\nkeyword followed by zero or more parameters.\n\nThe list of PRM sections and KEY keywords which LAMMPS recognizes are\nlisted on the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page. If not\nrecognized, the section or keyword is skipped.\n\nNote that if the KEY file is specified as NULL, then no file is\nrequired; default values for various AMOEBA/HIPPO settings are used.\nThe [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page also gives the default\nsettings.\n\n----------\n\nThe *amoeba* and *hippo* pair styles support extraction of two per-atom\nquantities by the [fix pair ](https://docs.lammps.org/fix_pair.html) command. This allows the\nquantities to be output to files by the [dump ](https://docs.lammps.org/dump.html) or otherwise\nprocessed by other LAMMPS commands.\n\nThe names of the two quantities are \"uind\" and \"uinp\" for the induced\ndipole moments for each atom. Neither quantity needs to be triggered by\nthe [fix pair ](https://docs.lammps.org/fix_pair.html) command in order for these pair styles to\ncalculate it.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThese pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner* , *middle* , *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using the GPU accelerated pair styles 'amoeba/gpu' or 'hippo/gpu'\n > when compiling the GPU package for OpenCL has a few known issues\n > when running on integrated GPUs and the calculation may crash.\n >\n > The GPU accelerated pair styles are also not (yet) compatible\n > with single precision FFTs. \n > \n\n----------\n\n**(amoeba-Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003). \n \n**(amoeba-Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013. \n \n**(amoeba-Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). \n \n**(amoeba-Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010). \n \n**(amoeba-Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). \n ", - "restrictions": "These pair styles are part of the AMOEBA package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n\nThe AMOEBA and HIPPO potential (PRM) and KEY files provided with\nLAMMPS in the potentials and examples/amoeba directories are Tinker\nfiles parameterized for Tinker units. Their numeric parameters are\nconverted by LAMMPS to its real units [units ](https://docs.lammps.org/units.html). Thus you\ncan only use these pair styles with real units.\n\nThese potentials do not yet calculate per-atom energy or virial\ncontributions.\n\nAs explained on the [AMOEBA and HIPPO howto ](https://docs.lammps.org/Howto_amoeba.html) page,\nuse of these pair styles to run a simulation with the AMOEBA or HIPPO\nforce fields requires several things.\n\nThe first is a data file generated by the tools/tinker/tinker2lmp.py\nconversion script which uses Tinker file force field file input to\ncreate a data file compatible with LAMMPS.\n\nThe second is use of these commands:\n\n* [atom_style amoeba ](https://docs.lammps.org/atom_style.html)\n* [fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n* [special_bonds one/five ](https://docs.lammps.org/special_bonds.html)\n\nAnd third, depending on the model being simulated, these\ncommands for intramolecular interactions may also be required:\n\n* [bond_style class2 ](https://docs.lammps.org/bond_class2.html)\n* [angle_style amoeba ](https://docs.lammps.org/angle_amoeba.html)\n* [dihedral_style fourier ](https://docs.lammps.org/dihedral_fourier.html)\n* [improper_style amoeba ](https://docs.lammps.org/improper_amoeba.html)\n* [fix amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html)\n* [fix amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html)\n\n----------\n", - "related": "[atom_style amoeba ](https://docs.lammps.org/atom_style.html),\n[bond_style class2 ](https://docs.lammps.org/bond_class2.html),\n[angle_style amoeba ](https://docs.lammps.org/angle_amoeba.html),\n[dihedral_style fourier ](https://docs.lammps.org/dihedral_fourier.html),\n[improper_style amoeba ](https://docs.lammps.org/improper_amoeba.html),\n[fix amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html),\n[fix amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html),\n[special_bonds one/five ](https://docs.lammps.org/special_bonds.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" -}, -{ - "command": [ - "fix lb/viscous" - ], - "syntax": [ - "fix ID group-ID lb/viscous" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] }, { - "arg": "ID", + "arg": "values", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "attribute1", "type": 2, "choices": [] }, { - "arg": "lb/viscous", - "type": 1, + "arg": "attribute2", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* lb/viscous = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 flow lb/viscous\n```\n", - "html_filename": "fix_lb_viscous.html", - "short_description": "This fix is similar to the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, and\nis to be used in place of that command when a lattice-Boltzmann fluid\nis present using the [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)", - "description": "This fix is similar to the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, and\nis to be used in place of that command when a lattice-Boltzmann fluid\nis present using the [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html). This should be used in conjunction with one of the built-in LAMMPS integrators, such as [fix NVE ](https://docs.lammps.org/fix_nve.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html).\n\nThis fix adds a viscous force to each atom to cause it move with the same velocity as the fluid (an equal and opposite force is applied to the fluid via [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)). When [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) is called with the noise option, the atoms will also experience random forces which will thermalize them to the same temperature as the fluid. In this way, the combination of this fix with [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) and a LAMMPS integrator like [fix NVE ](https://docs.lammps.org/fix_nve.html) is analogous to [fix langevin ](https://docs.lammps.org/fix_langevin.html) except here the fluid is explicit. The temperature of the particles can be monitored via the scalar output of [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html).\n\n----------\n\nFor details of this fix, as well as descriptions and results of several\ntest runs, see **fluid-Denniston2**. Please include a citation to\nthis paper if this fix is used in work contributing to published\nresearch.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nAs described in the [fix viscous ](https://docs.lammps.org/fix_viscous.html) documentation:\n\n\"No information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\"\n\n**(fluid-Denniston2)** Denniston, C., Afrasiabian, N., Cole-Andre, M.G., Mackay, F. E., Ollila, S.T.T., and Whitehead, T., LAMMPS lb/fluid fix version 2: Improved Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 275 (2022) [108318](https://doi.org/10.1016/j.cpc.2022.108318) . \n ", - "restrictions": "This fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCan only be used if a lattice-Boltzmann fluid has been created via the\n[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) command, and must come after this\ncommand.\n", - "related": "[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)\n" + "parameters": "* fix_ID = ID of associated internal fix to store data\n* N = prepare data for output every this many timesteps\n* zero or more keywords may be appended\n* keyword = finite or time/min or type/include \n *       finite value = none \n        pair style uses atomic diameters to identify contacts \n *       time/min value = T \n        T = minimum number of timesteps of interaction \n *       type/include value = list1 list2 \n        list1,list2 = separate lists of types (see below) \n* one or more attributes may be appended \n *        possible attributes = id1 id2 time/created time/broken time/total \n         r/min r/ave x y z \n         id1, id2 = IDs of the 2 atoms in each pair interaction \n         time/created = the timestep that the 2 atoms began interacting \n         time/broken = the timestep that the 2 atoms stopped interacting \n         time/total = the total number of timesteps the 2 atoms interacted \n         r/min = the minimum radial distance between the 2 atoms during the interaction (distance units) \n         r/ave = the average radial distance between the 2 atoms during the interaction (distance units) \n         x, y, z = the center of mass position of the 2 atoms when they stopped interacting (distance units) \n", + "examples": "\n```lmps\npair_style hybrid/overlay tracker myfix 1000 id1 id2 type/include 1 * type/include 2 3,4 lj/cut 2.5\npair_coeff 1 1 tracker 2.0\n\npair_style hybrid/overlay tracker myfix 1000 finite x y z time/min 100 granular\npair_coeff * * tracker\n\ndump 1 all local 1000 dump.local f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", + "html_filename": "pair_tracker.html", + "short_description": "Style *tracker* monitors information about pairwise interactions", + "description": "Style *tracker* monitors information about pairwise interactions. It\ndoes not calculate any forces on atoms. [Pair hybrid/overlay](https://docs.lammps.org/pair_hybrid.html) can be used to combine this pair style with any other\npair style, as shown in the examples above.\n\nAt each timestep, if two neighboring atoms move beyond the interaction\ncutoff, pairwise data is processed and transferred to an internal fix\nlabeled *fix_ID*. This allows the local data to be accessed by other\nLAMMPS commands. Additional\nfilters can be applied using the *time/min* or *type/include* keywords\ndescribed below. Note that this is the interaction cutoff defined by\nthis pair style, not the short-range cutoff defined by the pair style\nthat is calculating forces on atoms.\n\nFollowing any optional keyword/value arguments, a list of one or more\nattributes is specified. These include the IDs of the two atoms in\nthe pair. The other attributes for the pair of atoms are the\nduration of time they were \"interacting\" or at the point in time they\nstarted or stopped interacting. In this context, \"interacting\" means\nthe time window during which the two atoms were closer than the\ninteraction cutoff distance. The attributes for time/* refer to\ntimesteps.\n\nData is continuously accumulated by the internal fix over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\n----------\n\nThe following optional keywords may be used.\n\nIf the *finite* keyword is not used, the following coefficients must\nbe defined for each pair of atom types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described\nbelow:\n\n* cutoff (distance units)\n\nIf the *finite* keyword is used, there are no additional coefficients\nto set for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Interaction cutoffs are\ninstead calculated based on the diameter of finite particles. However\nyou must still use the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) for all atom\ntypes. For example the command\n\n```lmps\npair_coeff * *\n```\nshould be used.\n\nThe *time/min* keyword sets a minimum amount of time that an\ninteraction must persist to be included. This setting can be used to\ncensor short-lived interactions.\n\nThe *type/include* keyword filters interactions based on the types of\nthe two atoms. Data is only saved for interactions between atoms\nwhose two atom types appear in *list1* and *list2*. Atom type 1 must\nbe in list1 and atom type 2 in list2. Or vice versa.\n\nEach type list consists of a series of type ranges separated by\ncommas. Each range can be specified as a single numeric value, or a\nwildcard asterisk can be used to specify a range of values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". For example, if M =\nthe number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to M. A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from n to M\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). Note that the *type/include* keyword can be specified\nmultiple times.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff coefficient and cutoff\ndistance for this pair style can be mixed. The cutoff is always mixed\nvia a *geometric* rule. The cutoff is mixed according to the\npair_modify mix value. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options\nare not relevant for this pair style.\n\nThe accumulated data is not written to restart files and should be\noutput before a restart file is written to avoid missing data.\n\nThe internal fix calculates a local vector or local array depending on the\nnumber of input values. The length of the vector or number of rows in\nthe array is the number of recorded, lost interactions. If a single\ninput is specified, a local vector is produced. If two or more inputs\nare specified, a local array is produced where the number of columns =\nthe number of inputs. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\n----------\n", + "restrictions": "This pair style is part of the MISC package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style is currently incompatible with granular pair styles\nthat extend beyond the contact (e.g. JKR and DMT).\n", + "related": "none" }, { "command": [ - "fix nve/sphere", - "fix nve/sphere/omp", - "fix nve/sphere/kk" + "fix_modify AtC mesh create_faceset plane" ], "syntax": [ - "fix ID group-ID nve/sphere" + "fix_modify mesh create_faceset plane [units]" ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "mesh", + "type": 1, + "choices": [] + }, + { + "arg": "create_faceset", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] }, { - "arg": "nve/sphere", + "arg": "plane", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 3, "choices": [ - "nve/sphere", - "nve/sphere/omp", - "nve/sphere/kk" - ] - } + "x", + "y", + "z" + ] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "x", + "y", + "z" + ] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "[units]", + "type": 2, + "choices": [] + } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/sphere = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = update or disc \n *        update value = dipole or dipole/dlm \n         dipole = update orientation of dipole moment during integration \n         dipole/dlm = use DLM integrator to update dipole orientation \n *        disc value = none = treat particles as 2d discs, not spheres \n", - "examples": "\n```lmps\nfix 1 all nve/sphere\nfix 1 all nve/sphere update dipole\nfix 1 all nve/sphere disc\nfix 1 all nve/sphere update dipole/dlm\n```\n", - "html_filename": "fix_nve_sphere.html", - "short_description": "Perform constant NVE integration to update position, velocity, and\nangular velocity for finite-size spherical particles in the group each\ntimestep", - "description": "Perform constant NVE integration to update position, velocity, and\nangular velocity for finite-size spherical particles in the group each\ntimestep. V is volume; E is energy. This creates a system trajectory\nconsistent with the microcanonical ensemble.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\nIf the *update* keyword is used with the *dipole* value, then the\norientation of the dipole moment of each particle is also updated\nduring the time integration. This option should be used for models\nwhere a dipole moment is assigned to finite-size particles,\ne.g. spheroids via use of the [atom_style hybrid sphere dipole](https://docs.lammps.org/atom_style.html) command.\n\nThe default dipole orientation integrator can be changed to the\nDullweber-Leimkuhler-McLachlan integration scheme\n:ref:`(Dullweber) ` when using *update* with the value\n*dipole/dlm* . This integrator is symplectic and time-reversible,\ngiving better energy conservation and allows slightly longer timesteps\nat only a small additional computational cost.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand. If the *dipole* keyword is used, then they must also store a\ndipole moment as defined by the [atom_style dipole ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_faceset = name of the AtC sub-command\n* id = id to assign to the collection of FE faces\n* plane = use plane to define faceset\n* ,, = plane is specified as the x|y|z=val1 plane bounded by the segments x|y|z = [lval2,uval2]\n* units = option to specify real as opposed to lattice units \n", + "examples": "\n```lmps\nfix_modify AtC mesh create_faceset xyplane plane y 0 x -4 0\n```\n", + "html_filename": "atc_mesh_create_faceset_plane.html", + "short_description": "Command to assign an id to a set of FE faces", + "description": "Command to assign an id to a set of FE faces.\n", + "restrictions": "Only viable for rectangular grids.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n" }, { "command": [ - "fix bond/create" + "fix nve/line" ], "syntax": [ - "fix ID group-ID style Nevery itype jtype Rmin bondtype keyword values ..." + "fix ID group-ID nve/line" ], "args": [ [ @@ -4653,49 +4302,83 @@ export const command_docs = [ "choices": [] }, { - "arg": "bond/create/angle", - "type": 3, - "choices": [ - "bond/create", - "bond/create/angle" - ] + "arg": "nve/line", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/line = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/line\n```\n", + "html_filename": "fix_nve_line.html", + "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for line segment particles in the\ngroup each timestep", + "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for line segment particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble. See [Howto spherical ](https://docs.lammps.org/Howto_spherical.html) page for an overview of using line\nsegment particles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that particles be line segments as defined by the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" +}, +{ + "command": [ + "fix phonon" + ], + "syntax": [ + "fix ID group-ID phonon N Noutput Nwait map_file prefix keyword values ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] }, { - "arg": "Nevery", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "itype", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "jtype", + "arg": "phonon", + "type": 1, + "choices": [] + }, + { + "arg": "N", "type": 2, "choices": [] }, { - "arg": "Rmin", + "arg": "Noutput", "type": 2, "choices": [] }, { - "arg": "bondtype", + "arg": "Nwait", "type": 2, "choices": [] }, { - "arg": "aconstrain", + "arg": "GAMMA", "type": 3, "choices": [ - "iparam", - "jparam", - "prob", - "atype", - "dtype", - "itype", - "aconstrain" + "file", + "GAMMA" + ] + }, + { + "arg": "prefix", + "type": 2, + "choices": [] + }, + { + "arg": "nasr", + "type": 3, + "choices": [ + "sysdim", + "nasr" ] }, { @@ -4705,20 +4388,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = bond/create or bond/create/angle\n* Nevery = attempt bond creation every this many steps\n* itype,jtype = atoms of itype can bond to atoms of jtype (1-Ntypes or type label)\n* Rmin = two atoms separated by less than Rmin can bond (distance units)\n* bondtype = type of created bonds (integer or type label)\n* zero or more keyword/value pairs may be appended to args\n* keyword = iparam or jparam or prob or atype or dtype or itype or aconstrain \n *        iparam values = maxbond, newtype \n         maxbond = max # of bonds of bondtype the itype atom can have \n         newtype = change the itype atom to this type when maxbonds exist (1-Ntypes or type label) \n *        jparam values = maxbond, newtype \n         maxbond = max # of bonds of bondtype the jtype atom can have \n         newtype = change the jtype atom to this type when maxbonds exist (1-Ntypes or type label) \n *        prob values = fraction seed \n         fraction = create a bond with this probability if otherwise eligible \n         seed = random number seed (positive integer) \n *        atype value = angletype \n         angletype = type of created angles (integer or type label) \n *        dtype value = dihedraltype \n         dihedraltype = type of created dihedrals (integer or type label) \n *        itype value = impropertype \n         impropertype = type of created impropers (integer or type label) \n *        aconstrain value = amin amax \n         amin = minimal angle at which new bonds can be created \n         amax = maximal angle at which new bonds can be created \n", - "examples": "\n```lmps\nfix 5 all bond/create 10 1 2 0.8 1\nfix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3\nfix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3 atype 1 dtype 2\nfix 5 all bond/create/angle 10 1 2 1.122 1 aconstrain 120 180 prob 1 4928459 iparam 2 1 jparam 2 2\n\nlabelmap atom 1 c1 2 n2\nlabelmap bond 1 c1-n2\nfix 5 all bond/create 10 c1 n2 0.8 c1-n2\n```\n", - "html_filename": "fix_bond_create.html", - "short_description": "Create bonds between pairs of atoms as a simulation runs according to\nspecified criteria", - "description": "Create bonds between pairs of atoms as a simulation runs according to\nspecified criteria. This can be used to model the cross-linking of\npolymers, the formation of a percolation network, etc. In this\ncontext, a bond means an interaction between a pair of atoms computed\nby the [bond_style ](https://docs.lammps.org/bond_style.html) command. Once the bond is created\nit will be permanently in place. Optionally, the creation of a bond\ncan also create angle, dihedral, and improper interactions that the bond\nis part of. See the discussion of the *atype*, *dtype*, and *itype*\nkeywords below.\n\nThis process is different than a [pair-wise ](https://docs.lammps.org/pair_style.html) bond-order\npotential such as Tersoff or AIREBO, which infer bonds and many-body\ninteractions based on the current geometry of a small cluster of atoms\nand effectively create and destroy bonds and higher-order many-body\ninteractions from time step to time step as the atoms move.\n\nA check for possible new bonds is performed every *Nevery* time steps.\nIf two atoms \\(i\\) and \\(j\\) are within a distance *Rmin* of each\nother, atom \\(i\\) is of type *itype*, atom \\(j\\) is of type *jtype*,\nand both \\(i\\) and \\(j\\) are in the specified fix group, then if a bond\ndoes not already exist between atoms \\(i\\) and \\(j\\), and if both\n\\(i\\) and \\(j\\) meet their respective *maxbond* requirements (explained\nbelow), then \\(i\\) and \\(j\\) are labeled as a \"possible\" bond pair.\n\nIf several atoms are close to an atom, it may have multiple possible\nbond partners. Every atom checks its list of possible bond partners\nand labels the closest such partner as its \"sole\" bond partner. After\nthis is done, if atom \\(i\\) has atom \\(j\\) as its sole partner and\natom \\(j\\) has atom \\(i\\) as its sole partner, then the\n\\(i,j\\) bond is \"eligible\" to be formed.\n\nNote that these rules mean that an atom will only be part of at most one\ncreated bond on a given time step. It also means that if atom \\(i\\)\nchooses atom \\(j\\) as its sole partner, but atom \\(j\\) chooses atom\n\\(k\\) as its sole partner (because \\(R_{jk} < R_{ij}\\)), then atom\n\\(i\\) will not form a bond on this time step, even if it has other possible\nbond partners.\n\nIt is permissible to have *itype* = *jtype* . *Rmin* must be \\(\\leq\\) the\npair-wise cutoff distance between *itype* and *jtype* atoms, as defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command.\n\nThe *iparam* and *jparam* keywords can be used to limit the bonding\nfunctionality of the participating atoms. Each atom keeps track of\nhow many bonds of *bondtype* it already has. If atom \\(i\\) of type\n*itype* already has *maxbond* bonds (as set by the *iparam*\nkeyword), then it will not form any more, and likewise for atom \\(j\\).\nIf *maxbond* is set to 0, then there is no limit on the number of bonds\nthat can be formed with that atom.\n\nThe *newtype* value for *iparam* and *jparam* can be used to change\nthe atom type of atom \\(i\\) or \\(j\\) when it reaches *maxbond* number\nof bonds of type *bondtype* . This means it can now interact in a pair-wise\nfashion with other atoms in a different way by specifying different\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) coefficients. If you do not wish the\natom type to change, simply specify *newtype* as *itype* or *jtype* .\n\nThe *prob* keyword can also affect whether an eligible bond is\nactually created. The *fraction* setting must be a value between 0.0\nand 1.0. A uniform random number between 0.0 and 1.0 is generated and\nthe eligible bond is only created if the random number is less than *fraction*.\n\nThe *aconstrain* keyword is only available with the fix\nbond/create/angle command. It allows one to specify minimum and maximum\nangles *amin* and *amax*, respectively, between the two prospective bonding\npartners and a third particle that is already bonded to one of the two\npartners. Such a criterion can be important when new angles are defined\ntogether with the formation of a new bond. Without a restriction on the\npermissible angle, and for stiffer angle potentials, very large energies\ncan arise and lead to unphysical behavior.\n\nAny bond that is created is assigned a bond type of *bondtype*.\n\nWhen a bond is created, data structures within LAMMPS that store bond\ntopologies are updated to reflect the creation. If the bond is part of\nnew 3-body (angle) or 4-body (dihedral, improper) interactions, you\ncan choose to create new angles, dihedrals, and impropers as well using\nthe *atype*, *dtype*, and *itype* keywords. All of these changes\ntypically affect pair-wise interactions between atoms that are now part\nof new bonds, angles, etc.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One data structure that is not updated when a bond breaks are\n > the molecule IDs stored by each atom. Even though two molecules\n > become one molecule due to the created bond, all atoms in the new\n > molecule retain their original molecule IDs. \n > \n\nIf the *atype* keyword is used and if an angle potential is defined\nvia the [angle_style ](https://docs.lammps.org/angle_style.html) command, then any new 3-body\ninteractions inferred by the creation of a bond will create new angles\nof type *angletype*, with parameters assigned by the corresponding\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command. Likewise, the *dtype* and\n*itype* keywords will create new dihedrals and impropers of type\n*dihedraltype* and *impropertype* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To create a new bond, the internal LAMMPS data structures that\n > store this information must have space for it. When LAMMPS is\n > initialized from a data file, the list of bonds is scanned and the\n > maximum number of bonds per atom is tallied. If some atom will\n > acquire more bonds than this limit as this fix operates, then the\n > \"extra bond per atom\" parameter must be set to allow for it. Ditto\n > for \"extra angle per atom\", \"extra dihedral per atom\", and \"extra\n > improper per atom\" if angles, dihedrals, or impropers are being added\n > when bonds are created. See the [read_data ](https://docs.lammps.org/read_data.html) or\n > [create_box ](https://docs.lammps.org/create_box.html) command for more details. Note that a\n > data file with no atoms can be used if you wish to add non-bonded\n > atoms via the [create atoms ](https://docs.lammps.org/create_atoms.html) command (e.g., for a\n > percolation simulation). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS stores and maintains a data structure with a list of the\n > first, second, and third neighbors of each atom (within the bond topology of\n > the system) for use in weighting pair-wise interactions for bonded\n > atoms. Note that adding a single bond always adds a new first neighbor\n > but may also induce **many** new second and third neighbors, depending on the\n > molecular topology of your system. The \"extra special per atom\"\n > parameter must typically be set to allow for the new maximum total\n > size (first + second + third neighbors) of this per-atom list. There are two\n > ways to do this. See the [read_data ](https://docs.lammps.org/read_data.html) or\n > [create_box ](https://docs.lammps.org/create_box.html) commands for details. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even if you do not use the *atype*, *dtype*, or *itype*\n > keywords, the list of topological neighbors is updated for atoms\n > affected by the new bond. This in turn affects which neighbors are\n > considered for pair-wise interactions, using the weighting rules set by\n > the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. Consider a new bond\n > created between atoms \\(i\\) and \\(j\\). If \\(j\\) has a bonded\n > neighbor \\(k\\), then \\(k\\) becomes a second neighbor of \\(i\\).\n > Even if the *atype* keyword is not used to create angle \\(\\angle ijk\\),\n > the pair-wise interaction between \\(i\\) and \\(k\\) could potentially\n > be turned off or weighted by the 1--3 weighting specified\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. This is the case\n > even if the \"angle yes\" option was used with that command. The same\n > is true for third neighbors (1--4 interactions), the *dtype* keyword, and\n > the \"dihedral yes\" option used with the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\nNote that even if your simulation starts with no bonds, you must\ndefine a [bond_style ](https://docs.lammps.org/bond_style.html) and use the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command to specify coefficients for the\n*bondtype* . Similarly, if new atom types are specified by the\n*iparam* or *jparam* keywords, they must be within the range of atom\ntypes allowed by the simulation and pair-wise coefficients must be\nspecified for the new types.\n\nComputationally, each time step this fix is invoked, it loops over\nneighbor lists and computes distances between pairs of atoms in the\nlist. It also communicates between neighboring processors to\ncoordinate which bonds are created. Moreover, if any bonds are\ncreated, neighbor lists must be immediately updated on the same\ntime step. This is to ensure that any pair-wise interactions that\nshould be turned \"off\" due to a bond creation, because they are now\nexcluded by the presence of the bond and the settings of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command, will be immediately\nrecognized. All of these operations increase the cost of a time step.\nThus, you should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the [dump local ](https://docs.lammps.org/dump.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Creating a bond typically alters the energy of a system. You\n > should be careful not to choose bond creation criteria that induce a\n > dramatic change in energy. For example, if you define a very stiff\n > harmonic bond and create it when two atoms are separated by a distance\n > far from the equilibrium bond length, then the two atoms will oscillate\n > dramatically when the bond is formed. More generally, you may need to\n > thermostat your system to compensate for energy changes resulting from\n > created bonds (and angles, dihedrals, impropers). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes two statistics which it stores in a global vector of\nlength 2, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix are\n\"intensive\".\n\nThe two quantities in the global vector are\n\n (1) number of bonds created on the most recent creation time step\n (2) cumulative number of bonds created\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[fix bond/break ](https://docs.lammps.org/fix_bond_break.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* phonon = style name of this fix command\n* N = measure the Green's function every this many timesteps\n* Noutput = output the dynamical matrix every this many measurements\n* Nwait = wait this many timesteps before measuring\n* map_file = file or GAMMA \n *        file is the file that contains the mapping info between atom ID and the lattice indices. \n *        GAMMA flags to treate the whole simulation box as a unit cell, so that the mapping \n *        info can be generated internally. In this case, dynamical matrix at only the gamma-point \n *        will/can be evaluated. \n* prefix = prefix for output files\n* one or none keyword/value pairs may be appended\n* keyword = sysdim or nasr \n *        sysdim value = d \n         d = dimension of the system, usually the same as the MD model dimension \n *        nasr value = n \n         n = number of iterations to enforce the acoustic sum rule \n", + "examples": "\n```lmps\nfix 1 all phonon 20 5000 200000 map.in LJ1D sysdim 1\nfix 1 all phonon 20 5000 200000 map.in EAM3D\nfix 1 all phonon 10 5000 500000 GAMMA EAM0D nasr 100\n```\n", + "html_filename": "fix_phonon.html", + "short_description": "Calculate the dynamical matrix from molecular dynamics simulations\nbased on fluctuation-dissipation theory for a group of atoms", + "description": "Calculate the dynamical matrix from molecular dynamics simulations\nbased on fluctuation-dissipation theory for a group of atoms.\n\nConsider a crystal with \\(N\\) unit cells in three dimensions labeled\n\\(l = (l_1, l_2, l_3)\\) where \\(l_i\\) are integers. Each unit cell is\ndefined by three linearly independent vectors \\(\\mathbf{a}_1\\),\n\\(\\mathbf{a}_2\\), \\(\\mathbf{a}_3\\) forming a parallelepiped,\ncontaining \\(K\\) basis atoms labeled \\(k\\).\n\nBased on fluctuation-dissipation theory, the force constant\ncoefficients of the system in reciprocal space are given by\n(**Campana** , **Kong**)\n\\[\n \\mathbf{\\Phi}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) = k_B T \\mathbf{G}^{-1}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q})\\]\nwhere \\(\\mathbf{G}\\) is the Green's functions coefficients given by\n\\[\n \\mathbf{G}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) = \\left< \\mathbf{u}_{k\\alpha}(\\mathbf{q}) \\bullet \\mathbf{u}_{k^\\prime \\beta}^*(\\mathbf{q}) \\right>\\]\nwhere \\(\\left< \\ldots \\right>\\) denotes the ensemble average, and\n\\[\n \\mathbf{u}_{k\\alpha}(\\mathbf{q}) = \\sum_l \\mathbf{u}_{l k \\alpha} \\exp{(i\\mathbf{qr}_l)}\\]\nis the \\(\\alpha\\) component of the atomic displacement for the \\(k\\)\nth atom in the unit cell in reciprocal space at \\(\\mathbf{q}\\). In\npractice, the Green's functions coefficients can also be measured\naccording to the following formula,\n\\[\n \\mathbf{G}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) =\n \\left< \\mathbf{R}_{k \\alpha}(\\mathbf{q}) \\bullet \\mathbf{R}^*_{k^\\prime \\beta}(\\mathbf{q}) \\right>\n - \\left<\\mathbf{R}\\right>_{k \\alpha}(\\mathbf{q}) \\bullet \\left<\\mathbf{R}\\right>^*_{k^\\prime \\beta}(\\mathbf{q})\\]\nwhere \\(\\mathbf{R}\\) is the instantaneous positions of atoms, and\n\\(\\left<\\mathbf{R}\\right>\\) is the averaged atomic positions. It\ngives essentially the same results as the displacement method and is\neasier to implement in an MD code.\n\nOnce the force constant matrix is known, the dynamical matrix\n\\(\\mathbf{D}\\) can then be obtained by\n\\[\n \\mathbf{D}_{k\\alpha, k^\\prime\\beta}(\\mathbf{q}) =\n (m_k m_{k^\\prime})^{-\\frac{1}{2}} \\mathbf{\\Phi}_{k \\alpha, k^\\prime \\beta}(\\mathbf{q})\\]\nwhose eigenvalues are exactly the phonon frequencies at \\(\\mathbf{q}\\).\n\nThis fix uses positions of atoms in the specified group and calculates\ntwo-point correlations. To achieve this. the positions of the atoms\nare examined every *Nevery* steps and are Fourier-transformed into\nreciprocal space, where the averaging process and correlation\ncomputation is then done. After every *Noutput* measurements, the\nmatrix \\(\\mathbf{G}(\\mathbf{q})\\) is calculated and inverted to\nobtain the elastic stiffness coefficients. The dynamical matrices are\nthen constructed and written to *prefix* .bin.timestep files in binary\nformat and to the file *prefix* .log for each wave-vector\n\\(\\mathbf{q}\\).\n\nA detailed description of this method can be found in\n(**Kong2011**).\n\nThe *sysdim* keyword is optional. If specified with a value smaller\nthan the dimensionality of the LAMMPS simulation, its value is used\nfor the dynamical matrix calculation. For example, using LAMMPS to\nmodel a 2D or 3D system, the phonon dispersion of a 1D atomic chain\ncan be computed using *sysdim* = 1.\n\nThe *nasr* keyword is optional. An iterative procedure is employed to\nenforce the acoustic sum rule on \\(\\Phi\\) at \\(\\Gamma\\), and the number\nprovided by keyword *nasr* gives the total number of iterations. For a\nsystem whose unit cell has only one atom, *nasr* = 1 is sufficient;\nfor other systems, *nasr* = 10 is typically sufficient.\n\nThe *map_file* contains the mapping information between the lattice\nindices and the atom IDs, which tells the code which atom sits at\nwhich lattice point; the lattice indices start from 0. An auxiliary\ncode, [latgen](https://code.google.com/p/latgen), can be employed to\ngenerate the compatible map file for various crystals.\n\nIn case one simulates a non-periodic system, where the whole simulation\nbox is treated as a unit cell, one can set *map_file* as *GAMMA*, so\nthat the mapping info will be generated internally and a file is not\nneeded. In this case, the dynamical matrix at only the gamma-point\nwill/can be evaluated. Please keep in mind that fix-phonon is designed\nfor cyrstals, it will be inefficient and even degrade the performance\nof LAMMPS in case the unit cell is too large.\n\nThe calculated dynamical matrix elements are written out in\n[energy/distance\\^2/mass ](https://docs.lammps.org/units.html) units. The coordinates for *q*\npoints in the log file is in the units of the basis vectors of the\ncorresponding reciprocal lattice.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to change the temperature compute from thermo_temp\nto the one that reflects the true temperature of atoms in the group.\n\nNo global scalar or vector or per-atom quantities are stored by this\nfix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nInstead, this fix outputs its initialization information (including\nmapping information) and the calculated dynamical matrices to the file\n*prefix* .log, with the specified *prefix* . The dynamical matrices are\nalso written to files *prefix* .bin.timestep in binary format. These\ncan be read by the post-processing tool in tools/phonon to compute the\nphonon density of states and/or phonon dispersion curves.\n\nNo parameter of this fix can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Campana)** C. Campana and\nM. H. Muser, *Practical Green's function approach to the\nsimulation of elastic semi-infinite solids*, [Phys. Rev. B [74], 075420 (2006)](https://doi.org/10.1103/PhysRevB.74.075420) \n \n**(Kong)** L.T. Kong, G. Bartels, C. Campana,\nC. Denniston, and Martin H. Muser, *Implementation of Green's\nfunction molecular dynamics: An extension to LAMMPS*, [Computer Physics Communications [180](6):1004-1010 (2009).](https://doi.org/10.1016/j.cpc.2008.12.035) \n \n**(Kong2011)** L.T. Kong, *Phonon dispersion measured directly from\nmolecular dynamics simulations*, [Computer Physics Communications [182](10):2201-2207, (2011).](https://doi.org/10.1016/j.cpc.2011.04.019) \n ", + "restrictions": "This fix assumes a crystalline system with periodical lattice. The\ntemperature of the system should not exceed the melting temperature to\nkeep the system in its solid state.\n\nThis fix is part of the PHONON package. It is only enabled if LAMMPS\nwas built with that package. This fix also requires LAMMPS to be built\nwith 3d-FFT support which is included in the KSPACE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute msd ](https://docs.lammps.org/compute_msd.html),\n[dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html)\n" }, { "command": [ - "compute momentum" + "compute pair/local" ], "syntax": [ - "compute ID group-ID momentum" + "compute ID group-ID pair/local value1 value2 ... keyword args ..." ], "args": [ [ @@ -4738,201 +4421,196 @@ export const command_docs = [ "choices": [] }, { - "arg": "momentum", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* momentum = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all momentum\n```\n", - "html_filename": "compute_momentum.html", - "short_description": "Define a computation that calculates the translational momentum *p*\nof a group of particles", - "description": "Define a computation that calculates the translational momentum *p*\nof a group of particles. It is computed as the sum\n\\(\\vec{p} = \\sum_i m_i \\cdot \\vec{v}_i\\)\nover all particles in the compute group, where *m* and *v* are\nthe mass and velocity vector of the particle, respectively.\n\n #### Output info\n\nThis compute calculates a global vector (the summed momentum) of\nlength 3. This value can be used by any command that uses a global\nvector value from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector value calculated by this compute is \"extensive\". The vector\nvalue will be in mass\\*velocity [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "none" -}, -{ - "command": [ - "fix_modify AtC mesh output" - ], - "syntax": [ - "fix_modify mesh output " - ], - "args": [ - [ - { - "arg": "fix_modify", + "arg": "pair/local", "type": 1, "choices": [] }, { - "arg": "", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, + "arg": "value2", + "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "keyword", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh output = name of the AtC sub-command\n* file_prefix = prefix of various generated output files \n", - "examples": "\n```lmps\nfix_modify AtC mesh output meshData\n```\n", - "html_filename": "atc_mesh_output.html", - "short_description": "Command to output mesh and associated data: nodesets, facesets, and\nelementsets", - "description": "Command to output mesh and associated data: nodesets, facesets, and\nelementsets. This data is only output once upon initialization since\ncurrently the mesh is static. Creates binary (EnSight, \"gold\" format)\noutput of mesh data.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pair/local = style name of this compute command\n* one or more values may be appended\n* value = dist or dx or dy or dz or eng or force or fx or fy or fz or p1 or p2 or ... \n *        dist = pairwise distance \n *        dx, dy, dz = components of pairwise distance \n *        eng = pairwise energy \n *        force = pairwise force \n *        fx, fy, fz = components of pairwise force \n *        p1, p2, ... = pair style specific quantities for allowed N values \n* zero or more keyword/arg pairs may be appended\n* keyword = cutoff \n *        cutoff arg = type or radius \n", + "examples": "\n```lmps\ncompute 1 all pair/local eng\ncompute 1 all pair/local dist eng force\ncompute 1 all pair/local dist eng fx fy fz\ncompute 1 all pair/local dist fx fy fz p1 p2 p3\n```\n", + "html_filename": "compute_pair_local.html", + "short_description": "Define a computation that calculates properties of individual pairwise\ninteractions", + "description": "Define a computation that calculates properties of individual pairwise\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of pairwise interactions in the system.\n\nThe local data stored by this command is generated by looping over the\npairwise neighbor list. Info about an individual pairwise interaction\nwill only be included if both atoms in the pair are in the specified\ncompute group, and if the current pairwise distance is less than the\nforce cutoff distance for that interaction, as defined by the\n[pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands.\n\nThe value *dist* is the distance between the pair of atoms.\nThe values *dx*, *dy*, and *dz* are the \\((x,y,z)\\) components of the\n*distance* between the pair of atoms. This value is always the\ndistance from the atom of higher to the one with the lower atom ID.\n\nThe value *eng* is the interaction energy for the pair of atoms.\n\nThe value *force* is the force acting between the pair of atoms, which\nis positive for a repulsive force and negative for an attractive\nforce. The values *fx*, *fy*, and *fz* are the \\((x,y,z)\\) components of\n*force* on atom I. For pair styles that apply non-central forces,\nsuch as [granular pair styles ](https://docs.lammps.org/pair_gran.html), these values only include\nthe \\((x,y,z)\\) components of the normal force component.\n\nA pair style may define additional pairwise quantities which can be\naccessed as *p1* to *pN*, where \\(N\\) is defined by the pair style.\nMost pair styles do not define any additional quantities, so \\(N = 0\\).\nAn example of ones that do are the [granular pair styles ](https://docs.lammps.org/pair_gran.html)\nwhich calculate the tangential force between two particles and return\nits components and magnitude acting on atom \\(I\\) for\n\\(N \\in \\{1,2,3,4\\}\\). See individual pair styles for details.\n\nWhen using *pN* with pair style *hybrid*, the output will be the Nth\nquantity from the sub-style that computes the pairwise interaction\n(based on atom types). If that sub-style does not define a *pN*,\nthe output will be 0.0. The maximum allowed \\(N\\) is the maximum number\nof quantities provided by any sub-style.\n\nWhen using *pN* with pair style *hybrid/overlay* the quantities\nfrom all sub-styles that provide them are concatenated together\ninto one long list. For example, if there are 3 sub-styles and\n2 of them have additional output (with 3 and 4 quantities,\nrespectively), then 7 values (\\ *p1* up to *p7* ) are defined.\nThe values *p1* to *p3* refer to quantities defined by the first\nof the two sub-styles. Values *p4* to *p7* refer to quantities\nfrom the second of the two sub-styles. If the referenced *pN*\nis not computed for the specific pairwise interaction (based on\natom types), then the output will be 0.0.\n\nThe value *dist*, *dx*, *dy* and *dz* will be in distance [units ](https://docs.lammps.org/units.html).\nThe value *eng* will be in energy [units ](https://docs.lammps.org/units.html).\nThe values *force*, *fx*, *fy*, and *fz* will be in force [units ](https://docs.lammps.org/units.html).\nThe values *pN* will be in whatever units the pair style defines.\n\nThe optional *cutoff* keyword determines how the force cutoff distance\nfor an interaction is determined. For the default setting of *type*,\nthe pairwise cutoff defined by the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand for the types of the two atoms is used. For the *radius*\nsetting, the sum of the radii of the two particles is used as a\ncutoff. For example, this is appropriate for granular particles which\nonly interact when they are overlapping, as computed by\n[granular pair styles ](https://docs.lammps.org/pair_gran.html).\nNote that if a granular model defines atom\ntypes such that all particles of a specific type are monodisperse\n(same diameter), then the two settings are effectively identical.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, pair output from the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local patom1 patom2\ncompute 2 all pair/local dist eng force\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_2[1] c_2[2] c_2[3]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pairs, if two atoms I,J are involved in 1--2, 1--3, and 1--4\n > interactions within the molecular topology, their pairwise interaction\n > may be turned off, and thus they may not appear in the neighbor list,\n > and will not be part of the local data created by this command. More\n > specifically, this will be true of I,J pairs with a weighting factor\n > of 0.0; pairs with a non-zero weighting factor are included. The\n > weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. An exception is if\n > long-range Coulombics are being computed via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command, then atom pairs with\n > weighting factors of zero are still included in the neighbor list, so\n > that a portion of the long-range interaction contribution can be\n > computed in the pair style. Hence in that case, those atom pairs will\n > be part of the local data created by this command. \n > \n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of pairs. If a single keyword is specified, a\nlocal vector is produced. If two or more keywords are specified, a\nlocal array is produced where the number of columns = the number of\nkeywords. The vector or array can be accessed by any command that\nuses local values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *dist* will be in distance [units ](https://docs.lammps.org/units.html). The\noutput for *eng* will be in energy [units ](https://docs.lammps.org/units.html). The output for\n*force*, *fx*, *fy*, and *fz* will be in force [units ](https://docs.lammps.org/units.html).\nThe output for *pN* will be in whatever units the pair style defines.\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" }, { "command": [ - "fix_modify AtC add_molecule" + "compute chunk/atom" ], "syntax": [ - "fix_modify add_molecule " + "compute ID group-ID chunk/atom style args keyword values ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "add_molecule", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "chunk/atom", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "small", - "large" - ] + "arg": "style", + "type": 2, + "choices": [] }, { - "arg": "", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "", + "arg": "units", + "type": 3, + "choices": [ + "region", + "nchunk", + "limit", + "ids", + "compress", + "discard", + "bound", + "pbc", + "units" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* add_molecule = name of the AtC sub-command\n* small or large = can be small if molecule size < cutoff radius, must be large otherwise\n* tag = tag for tracking a molecule\n* group-ID = LAMMPS defined group-ID \n", - "examples": "\n```lmps\ngroup WATERGROUP type 1 2\nfix_modify AtC add_molecule small water WATERGROUP\n```\n", - "html_filename": "atc_add_molecule.html", - "short_description": "Associates a tag with all molecules corresponding to a specified group", - "description": "Associates a tag with all molecules corresponding to a specified group.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n- [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* chunk/atom = style name of this compute command \n *      style = bin/1d or bin/2d or bin/3d or bin/sphere or bin/cylinder or type or molecule or c_ID, c_ID[I], f_ID, f_ID[I], v_name \n       bin/1d args = dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/2d args = dim origin delta dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/3d args = dim origin delta dim origin delta dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/sphere args = xorig yorig zorig rmin rmax nsbin \n       xorig,yorig,zorig = center point of sphere \n       srmin,srmax = bin from sphere radius rmin to rmax \n       nsbin = # of spherical shell bins between rmin and rmax \n       bin/cylinder args = dim origin delta c1 c2 rmin rmax ncbin \n       dim = x or y or z = axis of cylinder axis \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       c1,c2 = coords of cylinder axis in other 2 dimensions (distance units) \n       crmin,crmax = bin from cylinder radius rmin to rmax (distance units) \n       ncbin = # of concentric circle bins between rmin and rmax \n       type args = none \n       molecule args = none \n       c_ID, c_ID[I], f_ID, f_ID[I], v_name args = none \n       c_ID = per-atom vector calculated by a compute with ID \n       c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n       f_ID = per-atom vector calculated by a fix with ID \n       f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n       v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/values pairs may be appended\n* keyword = region or nchunk or limit or ids or compress or discard or bound or pbc or units \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to be part of a chunk \n *        nchunk value = once or every \n         once = only compute the number of chunks once \n         every = re-compute the number of chunks whenever invoked \n *        limit values = 0 or Nc max or Nc exact \n         0 = no limit on the number of chunks \n         Nc max = limit number of chunks to be <= Nc \n         Nc exact = set number of chunks to exactly Nc \n *        ids value = once or nfreq or every \n         once = assign chunk IDs to atoms only once, they persist thereafter \n         nfreq = assign chunk IDs to atoms only once every Nfreq steps (if invoked by [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) which sets Nfreq) \n         every = assign chunk IDs to atoms whenever invoked \n *        compress value = yes or no \n         yes = compress chunk IDs to eliminate IDs with no atoms \n         no = do not compress chunk IDs even if some IDs have no atoms \n *        discard value = yes or no or mixed \n         yes = discard atoms with out-of-range chunk IDs by assigning a chunk ID = 0 \n         no = keep atoms with out-of-range chunk IDs by assigning a valid chunk ID \n         mixed = keep or discard such atoms according to spatial binning rule \n *        bound values = x/y/z lo hi \n         x/y/z = x or y or z to bound spatial bins in this dimension \n         lo = lower or coordinate value (distance units) \n         hi = upper or coordinate value (distance units) \n *        pbc value = no or yes \n         yes = use periodic distance for bin/sphere and bin/cylinder styles \n *        units value = box or lattice or reduced \n", + "examples": "\n```lmps\ncompute 1 all chunk/atom type\ncompute 1 all chunk/atom bin/1d z lower 0.02 units reduced\ncompute 1 all chunk/atom bin/2d z lower 1.0 y 0.0 2.5\ncompute 1 all chunk/atom molecule region sphere nchunk once ids once compress yes\ncompute 1 all chunk/atom bin/sphere 5 5 5 2.0 5.0 5 discard yes\ncompute 1 all chunk/atom bin/cylinder z lower 2 10 10 2.0 5.0 3 discard yes\ncompute 1 all chunk/atom c_cluster\n```\n", + "html_filename": "compute_chunk_atom.html", + "short_description": "Define a computation that calculates an integer chunk ID from 1 to\nNchunk for each atom in the group", + "description": "Define a computation that calculates an integer chunk ID from 1 to\nNchunk for each atom in the group. Values of chunk IDs are determined\nby the *style* of chunk, which can be based on atom type or molecule\nID or spatial binning or a per-atom property or value calculated by\nanother [compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or [atom-style variable ](https://docs.lammps.org/variable.html). Per-atom chunk IDs can be used by other\ncomputes with \"chunk\" in their style name, such as [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) or [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html). Or they can be used by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to sum and time average a\nvariety of per-atom properties over the atoms in each chunk. Or they\ncan simply be accessed by any command that uses per-atom values from a\ncompute as input, as discussed on the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page.\n\nSee the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) page for an overview of how\nthis compute can be used with a variety of other commands to tabulate\nproperties of a simulation. The page gives several examples of input\nscript commands that can be used to calculate interesting properties.\n\nConceptually it is important to realize that this compute does two\nsimple things. First, it sets the value of *Nchunk* = the number of\nchunks, which can be a constant value or change over time. Second, it\nassigns each atom to a chunk via a chunk ID. Chunk IDs range from 1\nto *Nchunk* inclusive; some chunks may have no atoms assigned to them.\nAtoms that do not belong to any chunk are assigned a value of 0. Note\nthat the two operations are not always performed together. For\nexample, spatial bins can be setup once (which sets *Nchunk* ), and\natoms assigned to those bins many times thereafter (setting their\nchunk IDs).\n\nAll other commands in LAMMPS that use chunk IDs assume there are\n*Nchunk* number of chunks, and that every atom is assigned to one of\nthose chunks, or not assigned to any chunk.\n\nThere are many options for specifying for how and when *Nchunk* is\ncalculated, and how and when chunk IDs are assigned to atoms. The\ndetails depend on the chunk *style* and its *args*, as well as\noptional keyword settings. They can also depend on whether a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command is using this compute, since\nthat command requires *Nchunk* to remain static across windows of\ntimesteps it specifies, while it accumulates per-chunk averages.\n\nThe details are described below.\n\n----------\n\nThe different chunk styles operate as follows. For each style, how it\ncalculates *Nchunk* and assigns chunk IDs to atoms is explained. Note\nthat using the optional keywords can change both of those actions, as\ndescribed further below where the keywords are discussed.\n\n----------\n\nThe *binning* styles perform a spatial binning of atoms, and assign an\natom the chunk ID corresponding to the bin number it is in. *Nchunk*\nis set to the number of bins, which can change if the simulation box\nsize changes. This also depends on the setting of the *units*\nkeyword (e.g., for *reduced* units the number of chunks may not change\neven if the box size does).\n\nThe *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers\n(slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta*\nsettings are specified 1, 2, or 3 times. For 2d or 3d bins, there is\nno restriction on specifying dim = *x* before dim = *y* or *z*, or dim = *y*\nbefore dim = *z*. Bins in a particular *dim* have a bin size in that\ndimension given by *delta* . In each dimension, bins are defined\nrelative to a specified *origin*, which may be the lower/upper edge of\nthe simulation box (in that dimension), or its center point, or a\nspecified coordinate value. Starting at the origin, sufficient bins\nare created in both directions to completely span the simulation box\nor the bounds specified by the optional *bounds* keyword.\n\nFor orthogonal simulation boxes, the bins are layers, pencils, or\nboxes aligned with the xyz coordinate axes. For triclinic\n(non-orthogonal) simulation boxes, the bin faces are parallel to the\ntilted faces of the simulation box. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a discussion of the\ngeometry of triclinic boxes in LAMMPS. As described there, a tilted\nsimulation box has edge vectors \\(\\vec a\\), \\(\\vec b\\), and\n\\(\\vec c\\). In that nomenclature, bins in\nthe *x* dimension have faces with normals in the \\(\\vec b \\times \\vec c\\)\ndirection, bins in *y* have faces normal to the \\(\\vec a \\times \\vec c\\)\ndirection, and bins in *z* have faces normal to the \\(\\vec a \\times \\vec b\\)\ndirection. Note that in order to define the size and position of\nthese bins in an unambiguous fashion, the *units* option must be set\nto *reduced* when using a triclinic simulation box, as noted below.\n\nThe meaning of *origin* and *delta* for triclinic boxes is as follows.\nConsider a triclinic box with bins that are 1d layers or slabs in the\nx dimension. No matter how the box is tilted, an *origin* of 0.0\nmeans start layers at the lower \\(\\vec b \\times \\vec c\\) plane of the\nsimulation box and an *origin* of 1.0 means to start layers at the upper\n\\(\\vec b \\times \\vec c\\) face of the box. A *delta* value of 0.1 in\n*reduced* units means there will be 10 layers from 0.0 to 1.0, regardless of\nthe current size or shape of the simulation box.\n\nThe *bin/sphere* style defines a set of spherical shell bins around\nthe origin (\\ *xorig*,\\ *yorig*,\\ *zorig* ), using *nsbin* bins with radii\nequally spaced between *srmin* and *srmax* . This is effectively a 1d\nvector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and\n*nsbin* = 9, then the first bin spans \\(1.0 < r < 2.0\\), and the last bin\nspans \\(9.0 < r < 10.0\\). The geometry of the bins is the same whether the\nsimulation box is orthogonal or triclinic (i.e., the spherical shells\nare not tilted or scaled differently in different dimensions to\ntransform them into ellipsoidal shells).\n\nThe *bin/cylinder* style defines bins for a cylinder oriented along\nthe axis *dim* with the axis coordinates in the other two radial\ndimensions at (\\ *c1*,\\ *c2* ). For dim = *x*, \\(c_1/c_2 = y/z\\);\nfor dim = *y*, \\(c_1/c_2 = x/z\\); for dim = *z*,\n\\(c_1/c_2 = x/y\\). This is effectively a 2d array of bins. The first\ndimension is along the cylinder axis, the second dimension is radially outward\nfrom the cylinder axis. The bin size and positions along the cylinder axis are\nspecified by the *origin* and *delta* values, the same as for the *bin/1d*,\n*bin/2d*, and *bin/3d* styles. There are *ncbin* concentric circle bins in the\nradial direction from the cylinder axis with radii equally spaced\nbetween *crmin* and *crmax* . For example, if *crmin* = 1.0 and\n*crmax* = 10.0 and *ncbin* = 9, then the first bin spans \\(1.0 < r < 2.0\\)\nand the last bin spans \\(9.0 < r < 10.0\\). The geometry of the bins in\nthe radial dimensions is the same whether the simulation box is\northogonal or triclinic (i.e., the concentric circles are not tilted or\nscaled differently in the two different dimensions to transform them\ninto ellipses).\n\nThe created bins (and hence the chunk IDs) are numbered consecutively\nfrom 1 to the number of bins = *Nchunk* . For *bin2d* and *bin3d*, the\nnumbering varies most rapidly in the first dimension (which could be\n*x*, *y*, or *z*), next rapidly in the second dimension, and most slowly in the\nthird dimension. For *bin/sphere*, the bin with smallest radii is chunk\n1 and the bin with largest radii is chunk Nchunk = *ncbin* . For\n*bin/cylinder*, the numbering varies most rapidly in the dimension\nalong the cylinder axis and most slowly in the radial direction.\n\nEach time this compute is invoked, each atom is mapped to a bin based\non its current position. Note that between reneighboring timesteps,\natoms can move outside the current simulation box. If the box is\nperiodic (in that dimension) the atom is remapping into the periodic\nbox for purposes of binning. If the box in not periodic, the atom may\nhave moved outside the bounds of all bins. If an atom is not inside\nany bin, the *discard* keyword is used to determine how a chunk ID is\nassigned to the atom.\n\n----------\n\nThe *type* style uses the atom type as the chunk ID. *Nchunk* is set\nto the number of atom types defined for the simulation (e.g., via the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands).\n\n----------\n\nThe *molecule* style uses the molecule ID of each atom as its chunk\nID. *Nchunk* is set to the largest chunk ID. Note that this excludes\nmolecule IDs for atoms which are not in the specified group or\noptional region.\n\nThere is no requirement that all atoms in a particular molecule are\nassigned the same chunk ID (zero or non-zero), though you probably\nwant that to be the case, if you wish to compute a per-molecule\nproperty. LAMMPS will issue a warning if that is not the case, but\nonly the first time that *Nchunk* is calculated.\n\nNote that atoms with a molecule ID = 0, which may be non-molecular\nsolvent atoms, have an out-of-range chunk ID. These atoms are\ndiscarded (not assigned to any chunk) or assigned to *Nchunk*,\ndepending on the value of the *discard* keyword.\n\n----------\n\nThe *compute/fix/variable* styles set the chunk ID of each atom based\non a quantity calculated and stored by a compute, fix, or variable.\nIn each case, it must be a per-atom quantity. In each case the\nreferenced floating point values are converted to an integer chunk ID\nas follows. The floating point value is truncated (rounded down) to\nan integer value. If the integer value is \\(\\le 0\\), then a chunk ID of 0\nis assigned to the atom. If the integer value is \\(> 0\\), it becomes the\nchunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note\nthat this excludes atoms which are not in the specified group or\noptional region.\n\nIf the style begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf the style begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain timesteps, which must be compatible with the\ntimestep on which this compute accesses the fix, else an error\nresults. Users can also write code for their own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name for an *atom* or\n*atomfile* style [variable ](https://docs.lammps.org/variable.html) must follow which has been\npreviously defined in the input script. Variables of style *atom* can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to\ntreat as a chunk ID.\n\n----------\n\nNormally, *Nchunk* = the number of chunks, is re-calculated every time\nthis fix is invoked, though the value may or may not change. As\nexplained below, the *nchunk* keyword can be set to *once* which means\n*Nchunk* will never change.\n\nIf a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command uses this compute, it\ncan also turn off the re-calculation of *Nchunk* for one or more\nwindows of timesteps. The extent of the windows, during which Nchunk\nis held constant, are determined by the *Nevery*, *Nrepeat*, *Nfreq*\nvalues and the *ave* keyword setting that are used by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command.\n\nSpecifically, if *ave* = *one*, then for each span of *Nfreq*\ntimesteps, *Nchunk* is held constant between the first timestep when\naveraging is done (within the Nfreq-length window), and the last\ntimestep when averaging is done (multiple of Nfreq). If *ave* =\n*running* or *window*, then *Nchunk* is held constant forever,\nstarting on the first timestep when the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command invokes this compute.\n\nNote that multiple [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) commands can use\nthe same compute chunk/atom compute. However, the time windows they\ninduce for holding *Nchunk* constant must be identical, else an error\nwill be generated.\n\n----------\n\nThe various optional keywords operate as follows. Note that some of\nthem function differently or are ignored by different chunk styles.\nSome of them also have different default values, depending on\nthe chunk style, as listed below.\n\nThe *region* keyword applies to all chunk styles. If used, an atom\nmust be in both the specified group and the specified geometric\n[region ](https://docs.lammps.org/region.html) to be assigned to a chunk.\n\n----------\n\nThe *nchunk* keyword applies to all chunk styles. It specifies how\noften *Nchunk* is recalculated, which in turn can affect the chunk IDs\nassigned to individual atoms.\n\nIf *nchunk* is set to *once*, then *Nchunk* is only calculated once,\nthe first time this compute is invoked. If *nchunk* is set to\n*every*, then *Nchunk* is re-calculated every time the compute is\ninvoked. Note that, as described above, the use of this compute\nby the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command can override\nthe *every* setting.\n\nThe default values for *nchunk* are listed below and depend on the\nchunk style and other system and keyword settings. They attempt to\nrepresent typical use cases for the various chunk styles. The\n*nchunk* value can always be set explicitly if desired.\n\n----------\n\nThe *limit* keyword can be used to limit the calculated value of\n*Nchunk* = the number of chunks. The limit is applied each time\n*Nchunk* is calculated, which also limits the chunk IDs assigned to\nany atom. The *limit* keyword is used by all chunk styles except the\n*binning* styles, which ignore it. This is because the number of bins\ncan be tailored using the *bound* keyword (described below) which\neffectively limits the size of *Nchunk* .\n\nIf *limit* is set to *Nc* = 0, then no limit is imposed on *Nchunk*,\nthough the *compress* keyword can still be used to reduce *Nchunk*, as\ndescribed below.\n\nIf *Nc* \\(>\\) 0, then the effect of the *limit* keyword depends on whether\nthe *compress* keyword is also used with a setting of *yes*, and\nwhether the *compress* keyword is specified before the *limit* keyword\nor after.\n\nIn all cases, *Nchunk* is first calculated in the usual way for each\nchunk style, as described above.\n\nFirst, here is what occurs if *compress yes* is not set. If *limit*\nis set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk*\nand *Nc* . If *limit* is set to *Nc exact*, then *Nchunk* is reset to\n*Nc*, whether the original *Nchunk* was larger or smaller than *Nc* .\nIf *Nchunk* shrank due to the *limit* setting, then atom chunk IDs \\(>\\)\n*Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of\nthe *discard* keyword. If *Nchunk* grew, there will simply be some\nchunks with no atoms assigned to them.\n\nIf *compress yes* is set, and the *compress* keyword comes before the\n*limit* keyword, the compression operation is performed first, as\ndescribed below, which resets *Nchunk* . The *limit* keyword is then\napplied to the new *Nchunk* value, exactly as described in the\npreceding paragraph. Note that in this case, all atoms will end up\nwith chunk IDs \\(\\le\\) *Nc*, but their original values (e.g., molecule ID\nor compute/fix/variable) may have been \\(>\\) *Nc*, because of the\ncompression operation.\n\nIf *compress yes* is set, and the *compress* keyword comes after the\n*limit* keyword, then the *limit* value of *Nc* is applied first to\nthe uncompressed value of *Nchunk*, but only if *Nc* \\(<\\) *Nchunk*\n(whether *Nc max* or *Nc exact* is used). This effectively means all\natoms with chunk IDs \\(>\\) *Nc* have their chunk IDs reset to 0 or *Nc*,\ndepending on the setting of the *discard* keyword. The compression\noperation is then performed, which may shrink *Nchunk* further. If\nthe new *Nchunk* \\(<\\) *Nc* and *limit* = *Nc exact* is specified, then\n*Nchunk* is reset to *Nc*, which results in extra chunks with no atoms\nassigned to them. Note that in this case, all atoms will end up with\nchunk IDs \\(\\le\\) *Nc*, and their original values (e.g., molecule ID or\ncompute/fix/variable value) will also have been \\(\\le\\) *Nc* .\n\n----------\n\nThe *ids* keyword applies to all chunk styles. If the setting is\n*once* then the chunk IDs assigned to atoms the first time this\ncompute is invoked will be permanent, and never be re-computed.\n\nIf the setting is *nfreq* and if a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\ncommand is using this compute, then in each of the *Nchunk* = constant\ntime windows (discussed above), the chunk ID's assigned to atoms on\nthe first step of the time window will persist until the end of the\ntime window.\n\nIf the setting is *every*, which is the default, then chunk IDs are\nre-calculated on any timestep this compute is invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the persistent chunk-IDs calculated by this compute\n > to be continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html),\n > then you should use the same ID for this compute, as in the original\n > run. This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with chunk IDs from the restart file. \n > \n\n----------\n\nThe *compress* keyword applies to all chunk styles and affects how\n*Nchunk* is calculated, which in turn affects the chunk IDs assigned\nto each atom. It is useful for converting a \"sparse\" set of chunk IDs\n(with many IDs that have no atoms assigned to them), into a \"dense\"\nset of IDs, where every chunk has one or more atoms assigned to it.\n\nTwo possible use cases are as follows. If a large simulation box is\nmostly empty space, then the *binning* style may produce many bins\nwith no atoms. If *compress* is set to *yes*, only bins with atoms\nwill be contribute to *Nchunk* . Likewise, the *molecule* or\n*compute/fix/variable* styles may produce large *Nchunk* values. For\nexample, the [compute cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html) command\nassigns every atom an atom ID for one of the atoms it is clustered\nwith. For a million-atom system with 5 clusters, there would only be\n5 unique chunk IDs, but the largest chunk ID might be 1 million,\nresulting in *Nchunk* = 1 million. If *compress* is set to *yes*,\n*Nchunk* will be reset to 5.\n\nIf *compress* is set to *no*, which is the default, no compression is\ndone. If it is set to *yes*, all chunk IDs with no atoms are removed\nfrom the list of chunk IDs, and the list is sorted. The remaining\nchunk IDs are renumbered from 1 to *Nchunk* where *Nchunk* is the new\nlength of the list. The chunk IDs assigned to each atom reflect\nthe new renumbering from 1 to *Nchunk* .\n\nThe original chunk IDs (before renumbering) can be accessed by the\n[compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command and its\n*id* keyword, or by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command\nwhich outputs the original IDs as one of the columns in its global\noutput array. For example, using the \"compute cluster/atom\" command\ndiscussed above, the original 5 unique chunk IDs might be atom IDs\n(27,4982,58374,857838,1000000). After compression, these will be\nrenumbered to (1,2,3,4,5). The original values (27,...,1000000) can\nbe output to a file by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command,\nor by using the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command in\nconjunction with the [compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The compression operation requires global communication across\n > all processors to share their chunk ID values. It can require large\n > memory on every processor to store them, even after they are\n > compressed, if there are a large number of unique chunk IDs with\n > atoms assigned to them. It uses a STL map to find unique chunk IDs\n > and store them in sorted order. Each time an atom is assigned a\n > compressed chunk ID, it must access the STL map. All of this means\n > that compression can be expensive, both in memory and CPU time. The\n > use of the *limit* keyword in conjunction with the *compress* keyword\n > can affect these costs, depending on which keyword is used first. So\n > use this option with care. \n > \n\n----------\n\nThe *discard* keyword applies to all chunk styles. It affects what\nchunk IDs are assigned to atoms that do not match one of the valid\nchunk IDs from 1 to *Nchunk* . Note that it does not apply to atoms\nthat are not in the specified group or optionally specified region.\nThose atoms are always assigned a chunk ID = 0.\n\nIf the calculated chunk ID for an atom is not within the range 1 to\n*Nchunk* then it is a \"discard\" atom. Note that *Nchunk* may have\nbeen shrunk by the *limit* keyword. Or the *compress* keyword may\nhave eliminated chunk IDs that were valid before the compression took\nplace, and are now not in the compressed list. Also note that for the\n*molecule* chunk style, if new molecules are added to the system,\ntheir chunk IDs may exceed a previously calculated *Nchunk* .\nLikewise, evaluation of a compute/fix/variable on a later timestep may\nreturn chunk IDs that are invalid for the previously calculated\n*Nchunk* .\n\nAll the chunk styles except the *binning* styles, must use *discard*\nset to either *yes* or *no* . If *discard* is set to *yes*, which is\nthe default, then every \"discard\" atom has its chunk ID set to 0. If\n*discard* is set to *no*, every \"discard\" atom has its chunk ID set to\n*Nchunk* . I.e. it becomes part of the last chunk.\n\nThe *binning* styles use the *discard* keyword to decide whether to\ndiscard atoms outside the spatial domain covered by bins, or to assign\nthem to the bin they are nearest to.\n\nFor the *bin/1d*, *bin/2d*, *bin/3d* styles the details are as\nfollows. If *discard* is set to *yes*, an out-of-domain atom will\nhave its chunk ID set to 0. If *discard* is set to *no*, the atom\nwill have its chunk ID set to the first or last bin in that dimension.\nIf *discard* is set to *mixed*, which is the default, it will only\nhave its chunk ID set to the first or last bin if bins extend to the\nsimulation box boundary in that dimension. This is the case if the\n*bound* keyword settings are *lower* and *upper*, which is the\ndefault. If the *bound* keyword settings are numeric values, then the\natom will have its chunk ID set to 0 if it is outside the bounds of\nany bin. Note that in this case, it is possible that the first or\nlast bin extends beyond the numeric *bounds* settings, depending on\nthe specified *origin* . If this is the case, the chunk ID of the atom\nis only set to 0 if it is outside the first or last bin, not if it is\nsimply outside the numeric *bounds* setting.\n\nFor the *bin/sphere* style the details are as follows. If *discard*\nis set to *yes*, an out-of-domain atom will have its chunk ID set to\n0. If *discard* is set to *no* or *mixed*, the atom will have its\nchunk ID set to the first or last bin, i.e. the innermost or outermost\nspherical shell. If the distance of the atom from the origin is less\nthan *rmin*, it will be assigned to the first bin. If the distance of\nthe atom from the origin is greater than *rmax*, it will be assigned\nto the last bin.\n\nFor the *bin/cylinder* style the details are as follows. If *discard*\nis set to *yes*, an out-of-domain atom will have its chunk ID set to\n0. If *discard* is set to *no*, the atom will have its chunk ID set\nto the first or last bin in both the radial and axis dimensions. If\n*discard* is set to *mixed*, which is the default, the radial\ndimension is treated the same as for *discard* = no. But for the axis\ndimension, it will only have its chunk ID set to the first or last\nbin if bins extend to the simulation box boundary in the axis\ndimension. This is the case if the *bound* keyword settings are\n*lower* and *upper*, which is the default. If the *bound* keyword\nsettings are numeric values, then the atom will have its chunk ID set\nto 0 if it is outside the bounds of any bin. Note that in this case,\nit is possible that the first or last bin extends beyond the numeric\n*bounds* settings, depending on the specified *origin* . If this is\nthe case, the chunk ID of the atom is only set to 0 if it is outside\nthe first or last bin, not if it is simply outside the numeric\n*bounds* setting.\n\nIf *discard* is set to *no* or *mixed*, the atom will have its\nchunk ID set to the first or last bin, i.e. the innermost or outermost\nspherical shell. If the distance of the atom from the origin is less\nthan *rmin*, it will be assigned to the first bin. If the distance of\nthe atom from the origin is greater than *rmax*, it will be assigned\nto the last bin.\n\n----------\n\nThe *bound* keyword only applies to the *bin/1d*, *bin/2d*, *bin/3d*\nstyles and to the axis dimension of the *bin/cylinder* style;\notherwise it is ignored. It can be used one or more times to limit\nthe extent of bin coverage in a specified dimension, i.e. to only bin\na portion of the box. If the *lo* setting is *lower* or the *hi*\nsetting is *upper*, the bin extent in that direction extends to the\nbox boundary. If a numeric value is used for *lo* and/or *hi*, then\nthe bin extent in the *lo* or *hi* direction extends only to that\nvalue, which is assumed to be inside (or at least near) the simulation\nbox boundaries, though LAMMPS does not check for this. Note that\nusing the *bound* keyword typically reduces the total number of bins\nand thus the number of chunks *Nchunk* .\n\nThe *pbc* keyword only applies to the *bin/sphere* and *bin/cylinder*\nstyles. If set to *yes*, the distance an atom is from the sphere\norigin or cylinder axis is calculated in a minimum image sense with\nrespect to periodic dimensions, when determining which bin the atom is\nin. I.e. if x is a periodic dimension and the distance between the\natom and the sphere center in the x dimension is greater than 0.5 \\*\nsimulation box length in x, then a box length is subtracted to give a\ndistance < 0.5 \\* simulation box length. This allosws the sphere or\ncylinder center to be near a box edge, and atoms on the other side of\nthe periodic box will still be close to the center point/axis. Note\nthat with a setting of *yes*, the outer sphere or cylinder radius must\nalso be <= 0.5 \\* simulation box length in any periodic dimension\nexcept for the cylinder axis dimension, or an error is generated.\n\nThe *units* keyword only applies to the *binning* styles; otherwise it\nis ignored. For the *bin/1d*, *bin/2d*, *bin/3d* styles, it\ndetermines the meaning of the distance units used for the bin sizes\n*delta* and for *origin* and *bounds* values if they are coordinate\nvalues. For the *bin/sphere* style it determines the meaning of the\ndistance units used for *xorig*,\\ *yorig*,\\ *zorig* and the radii *srmin*\nand *srmax* . For the *bin/cylinder* style it determines the meaning\nof the distance units used for *delta*,\\ *c1*,\\ *c2* and the radii *crmin*\nand *crmax* .\n\nFor orthogonal simulation boxes, any of the 3 options may\nbe used. For non-orthogonal (triclinic) simulation boxes, only the\n*reduced* option may be used.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\) for units = *real* or *metal*).\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacing. A *reduced* value means normalized\nunitless values between 0 and 1, which represent the lower and upper\nfaces of the simulation box respectively. Thus an *origin* value of\n0.5 means the center of the box in any dimension. A *delta* value of\n0.1 means 10 bins span the box in that dimension.\n\nNote that for the *bin/sphere* style, the radii *srmin* and *srmax* are\nscaled by the lattice spacing or reduced value of the *x* dimension.\n\nNote that for the *bin/cylinder* style, the radii *crmin* and *crmax*\nare scaled by the lattice spacing or reduced value of the first\ndimension perpendicular to the cylinder axis (e.g., *y* for an *x*-axis\ncylinder, *x* for a *y*-axis cylinder, and *x* for a *z*-axis cylinder).\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom vector (the chunk ID), which can\nbe accessed by any command that uses per-atom values from a compute\nas input. It also calculates a global scalar (the number of chunks),\nwhich can be similarly accessed everywhere outside of a per-atom context.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values are unitless chunk IDs, ranging from 1 to\n*Nchunk* (inclusive) for atoms assigned to chunks, and 0 for atoms not\nbelonging to a chunk. The scalar contains the value of *Nchunk*.\n", + "restrictions": "Even if the *nchunk* keyword is set to *once*, the chunk IDs assigned\nto each atom are not stored in a restart files. This means you cannot\nexpect those assignments to persist in a restarted simulation.\nInstead you must re-specify this command and assign atoms to chunks when\nthe restarted simulation begins.\n", + "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[compute global/atom ](https://docs.lammps.org/compute_global_atom.html)\n" }, { "command": [ - "fix_modify AtC remove_source" + "dump cfg/uef" ], "syntax": [ - "fix_modify remove_source " + "dump ID group-ID cfg/uef N file mass type xs ys zs args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "dump", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "remove_source", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "cfg/uef", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "", + "arg": "file", "type": 2, "choices": [] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_source = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* element_set = name of set of elements \n", - "examples": "\n```lmps\nfix_modify AtC remove_source temperature groupNAME\n```\n", - "html_filename": "atc_remove_source.html", - "short_description": "Remove a domain source", - "description": "Remove a domain source.\n", - "restrictions": "The keyword *all* is reserved and thus not available as element_set name.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC source ](https://docs.lammps.org/atc_source.html)\n" -}, -{ - "command": [ - "pair_style ylz" - ], - "syntax": [ - "pair_style ylz cutoff" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "mass", + "type": 2, "choices": [] }, { - "arg": "ylz", - "type": 1, + "arg": "type", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "xs", + "type": 2, + "choices": [] + }, + { + "arg": "ys", + "type": 2, + "choices": [] + }, + { + "arg": "zs", + "type": 2, + "choices": [] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style ylz 2.6\npair_coeff * * 1.0 1.0 4 3 0.0 2.6\n```\n", - "html_filename": "pair_ylz.html", - "short_description": "\nThe *ylz* (Yuan-Li-Zhang) style computes an anisotropic interaction\nbetween pairs of coarse-grained particles considering the relative\nparticle orientations", - "description": "\nThe *ylz* (Yuan-Li-Zhang) style computes an anisotropic interaction\nbetween pairs of coarse-grained particles considering the relative\nparticle orientations. This potential was originally developed as a\nparticle-based solvent-free model for biological membranes\n**Yuan**. Unlike [pair_style gayberne](https://docs.lammps.org/pair_gayberne.html), whose orientation dependence is strictly derived from\nthe closest distance between two ellipsoidal rigid bodies, the\norientation-dependence of this pair style is mathematically defined such\nthat the particles can self-assemble into one-particle-thick fluid\nmembranes. The potential of this pair style is described by:\n\\[\n U ( \\mathbf{r}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ) =\\left\\{\\begin{matrix} {u}_R(r)+\\left [ 1-\\phi (\\mathbf{\\hat{r}}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ) \\right ]\\epsilon, ~~ r<{r}_{min} \\\\ {u}_A(r)\\phi (\\mathbf{\\hat{r}}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ),~~ {r}_{min}` when using *update* with the value\n*dipole/dlm* . This integrator is symplectic and time-reversible,\ngiving better energy conservation and allows slightly longer timesteps\nat only a small additional computational cost.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand. If the *dipole* keyword is used, then they must also store a\ndipole moment as defined by the [atom_style dipole ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" +}, +{ + "command": [ + "compute pe/atom" + ], + "syntax": [ + "compute ID group-ID pe/atom keyword ..." + ], + "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -4988,186 +4673,154 @@ export const command_docs = [ "choices": [] }, { - "arg": "tdpd/source", - "type": 2, - "choices": [] - }, - { - "arg": "cc_index", - "type": 2, + "arg": "pe/atom", + "type": 1, "choices": [] }, { - "arg": "region", + "arg": "fix", "type": 3, "choices": [ - "sphere", - "cuboid", - "region" + "pair", + "bond", + "angle", + "dihedral", + "improper", + "kspace", + "fix" ] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* edpd/source or tdpd/source = style name of this fix command\n* index (only specified for tdpd/source) = index of chemical species (1 to Nspecies)\n* keyword = sphere or cuboid or region \n *        sphere args = cx cy cz radius source \n         cx,cy,cz = x,y,z center of spherical domain (distance units) \n         radius = radius of a spherical domain (distance units) \n         source = heat source or concentration source (flux units, see below) \n *        cuboid values = cx cy cz dLx dLy dLz source \n         cx,cy,cz = x,y,z center of a cuboid domain (distance units) \n         dLx,dLy,dLz = x,y,z side length of a cuboid domain (distance units) \n         source = heat source or concentration source (flux units, see below) \n *        region values = region-ID source \n         region = ID of region for heat or concentration source \n         source = heat source or concentration source (flux units, see below) \n", - "examples": "\n```lmps\nfix 1 all edpd/source sphere 0.0 0.0 0.0 5.0 0.01\nfix 1 all edpd/source cuboid 0.0 0.0 0.0 20.0 10.0 10.0 -0.01\nfix 1 all tdpd/source 1 sphere 5.0 0.0 0.0 5.0 0.01\nfix 1 all tdpd/source 2 cuboid 0.0 0.0 0.0 20.0 10.0 10.0 0.01\nfix 1 all tdpd/source 1 region lower -0.01\n```\n", - "html_filename": "fix_dpd_source.html", - "short_description": "Fix *edpd/source* adds a heat source as an external heat flux to each\natom in a spherical or cuboid domain, where the *source* is in units\nof energy/time", - "description": "Fix *edpd/source* adds a heat source as an external heat flux to each\natom in a spherical or cuboid domain, where the *source* is in units\nof energy/time. Fix *tdpd/source* adds an external concentration\nsource of the chemical species specified by *index* as an external\nconcentration flux for each atom in a spherical or cuboid domain,\nwhere the *source* is in units of mole/volume/time.\n\nThis command can be used to give an additional heat/concentration\nsource term to atoms in a simulation, such as for a simulation of a\nheat conduction with a source term (see Fig.12 in **Li2014b**)\nor diffusion with a source term (see Fig.1 in **Li2015b**), as\nan analog of a periodic Poiseuille flow problem.\n\n **Deprecated in version 15Jun2023** \n\nIf the *sphere* keyword is used, the *cx, cy, cz, radius* values define\na spherical domain to apply the source flux to.\n\nIf the *cuboid* keyword is used, the *cx, cy, cz, dLx, dLy, dLz* define\na cuboid domain to apply the source flux to.\n\nIf the *region* keyword is used, the *region-ID* selects which\n[region ](https://docs.lammps.org/region.html) to apply the source flux to.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information of these fixes is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to these fixes. No global or per-atom quantities are stored by\nthese fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of these fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. These fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Li2014b)** Z. Li, Y.-H. Tang, H. Lei, B. Caswell and G.E. Karniadakis,\n\"Energy-conserving dissipative particle dynamics with\ntemperature-dependent properties\", J. Comput. Phys., 265: 113-127\n(2014). DOI: 10.1016/j.jcp.2014.02.003 \n \n**(Li2015b)** Z. Li, A. Yazdani, A. Tartakovsky and G.E. Karniadakis,\n\"Transport dissipative particle dynamics model for mesoscopic\nadvection-diffusion-reaction problems\", J. Chem. Phys., 143: 014101\n(2015). DOI: 10.1063/1.4923254 \n ", - "restrictions": "These fixes are part of the DPD-MESO package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix *edpd/source* must be used with the [pair_style edpd](https://docs.lammps.org/pair_mesodpd.html) command. Fix *tdpd/source* must be used with the\n[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html) command.\n", - "related": "[pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html), [pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html),\n[compute edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html),\n[compute tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pe/atom = style name of this compute command\n* zero or more keywords may be appended\n* keyword = pair or bond or angle or dihedral or improper or kspace or fix \n", + "examples": "\n```lmps\ncompute 1 all pe/atom\ncompute 1 all pe/atom pair\ncompute 1 all pe/atom pair bond\n```\n", + "html_filename": "compute_pe_atom.html", + "short_description": "Define a computation that computes the per-atom potential energy for\neach atom in a group", + "description": "Define a computation that computes the per-atom potential energy for\neach atom in a group. See the [compute pe ](https://docs.lammps.org/compute_pe.html) command if\nyou want the potential energy of the entire system.\n\nThe per-atom energy is calculated by the various pair, bond, etc\npotentials defined for the simulation. If no extra keywords are\nlisted, then the potential energy is the sum of pair, bond, angle,\ndihedral, improper, \\(k\\)-space (long-range), and fix energy (i.e., it is as\nthough all the keywords were listed). If any extra keywords are listed,\nthen only those components are summed to compute the potential energy.\n\nNote that the energy of each atom is due to its interaction with all\nother atoms in the simulation, not just with other atoms in the group.\n\nFor an energy contribution produced by a small set of atoms (e.g., 4\natoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that\nenergy is assigned in equal portions to each atom in the set (e.g., 1/4 of the\ndihedral energy to each of the four atoms).\n\nThe [dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) style calculates\npairwise interactions between 1--4 atoms. The energy contribution of\nthese terms is included in the pair energy, not the dihedral energy.\n\nThe KSpace contribution is calculated using the method in\n:ref:[(Heyes) ](https://docs.lammps.org/Heyes1>` for the Ewald method and a related method for PPPM,as specified by the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html) command.For PPPM, the calculation requires 1 extra FFT each timestep thatper-atom energy is calculated. This `document ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be\n > specified if a fix is to contribute per-atom potential energy to this\n > command. \n > \n\nAs an example of per-atom potential energy compared to total potential\nenergy, these lines in an input script should yield the same result\nin the last 2 columns of thermo output:\n\n```lmps\ncompute peratom all pe/atom\ncompute pe all reduce sum c_peratom\nthermo_style custom step temp etotal press pe c_pe\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The per-atom energy does not include any Lennard-Jones tail\n > corrections to the energy added by the\n > [pair_modify tail yes ](https://docs.lammps.org/pair_modify.html) command, since those are\n > contributions to the global system energy. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n" }, { "command": [ - "pair_style edip", - "pair_style edip/omp", - "pair_style edip/multi" + "atom_modify" ], "syntax": [ - "pair_style style" + "atom_modify keyword values ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "atom_modify", "type": 1, "choices": [] }, { - "arg": "edip/omp", + "arg": "sort", "type": 3, "choices": [ - "edip", - "edip/multi", - "edip/omp" + "id", + "map", + "first", + "sort" ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = edip or edip/multi \n", - "examples": "\n```lmps\npair_style edip\npair_coeff * * Si.edip Si\n```\n", - "html_filename": "pair_edip.html", - "short_description": "The *edip* and *edip/multi* styles compute a 3-body **EDIP**\npotential which is popular for modeling silicon materials where\nit can have advantages over other models such as the\n[Stillinger-Weber ](https://docs.lammps.org/pair_sw.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\npotentials", - "description": "The *edip* and *edip/multi* styles compute a 3-body **EDIP**\npotential which is popular for modeling silicon materials where\nit can have advantages over other models such as the\n[Stillinger-Weber ](https://docs.lammps.org/pair_sw.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\npotentials. The *edip* style has been programmed for single element\npotentials, while *edip/multi* supports multi-element EDIP runs.\n\nIn EDIP, the energy E of a system of atoms is\n\\[\\begin{align*} \n E = & \\sum_{j \\ne i} \\phi_{2}(R_{ij}, Z_{i}) + \\sum_{j \\ne i} \\sum_{k \\ne i,k > j} \\phi_{3}(R_{ij}, R_{ik}, Z_{i}) \\\\\n \\phi_{2}(r, Z) = & A\\left[\\left(\\frac{B}{r}\\right)^{\\rho} - e^{-\\beta Z^2}\\right]exp{\\left(\\frac{\\sigma}{r-a}\\right)} \\\\\n \\phi_{3}(R_{ij}, R_{ik}, Z_i) = & exp{\\left(\\frac{\\gamma}{R_{ij}-a}\\right)}exp{\\left(\\frac{\\gamma}{R_{ik}-a}\\right)}h(cos\\theta_{ijk},Z_i) \\\\\n Z_i = & \\sum_{m \\ne i} f(R_{im}) \\qquad\n f(r) = \\begin{cases}\n 1 & \\quad ra\n \\end{cases} \\\\\n h(l,Z) = & \\lambda [(1-e^{-Q(Z)(l+\\tau(Z))^2}) + \\eta Q(Z)(l+\\tau(Z))^2 ] \\\\\n Q(Z) = & Q_0 e^{-\\mu Z} \\qquad \\tau(Z) = u_1 + u_2 (u_3 e^{-u_4 Z} - e^{-2u_4 Z}) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance = a. Both terms depend on the\nlocal environment of atom I through its effective coordination number\ndefined by Z, which is unity for a cutoff distance < c and gently goes\nto 0 at distance = a.\n\nOnly a single pair_coeff command is used with the *edip* style which\nspecifies a EDIP potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of EDIP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file Si.edip has EDIP values for Si.\n\nEDIP files in the *potentials* directory of the LAMMPS\ndistribution have a \".edip\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* A (energy units)\n* B (distance units)\n* cutoffA (distance units)\n* cutoffC (distance units)\n* \\(\\alpha\\)\n* \\(\\beta\\)\n* \\(\\eta\\)\n* \\(\\gamma\\) (distance units)\n* \\(lambda\\) (energy units)\n* \\(\\mu\\)\n* \\(\\tau\\)\n* \\(\\sigma\\) (distance units)\n* Q0\n* u1\n* u2\n* u3\n* u4\n\nThe A, B, beta, sigma parameters are used only for two-body interactions.\nThe eta, gamma, lambda, mu, Q0 and all u1 to u4 parameters are used only\nfor three-body interactions. The alpha and cutoffC parameters are used\nfor the coordination environment function only.\n\nThe EDIP potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify EDIP parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAt the moment, only a single element parameterization is\nimplemented. However, the author is not aware of other\nmulti-element EDIP parameterization. If you know any and\nyou are interest in that, please contact the author of\nthe EDIP package.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(EDIP)** J F Justo et al, Phys Rev B 58, 2539 (1998). \n ", - "restrictions": "This pair style can only be used if LAMMPS was built with the\nMANYBODY package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe EDIP potential files provided with LAMMPS (see the potentials directory)\nare parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the EDIP potential with any LAMMPS units, but you would need\nto create your own EDIP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* one or more keyword/value pairs may be appended\n* keyword = id or map or first or sort \n *         id value = yes or no \n *         map value = yes or array or hash \n *         first value = group-ID = group whose atoms will appear first in internal atom lists \n *         sort values = Nfreq binsize \n          Nfreq = sort atoms spatially every this many time steps \n          binsize = bin size for spatial sorting (distance units) \n", + "examples": "\n```lmps\natom_modify map yes\natom_modify map hash sort 10000 2.0\natom_modify first colloid\n```\n", + "html_filename": "atom_modify.html", + "short_description": "Modify certain attributes of atoms defined and stored within LAMMPS,\nin addition to what is specified by the [atom_style ](https://docs.lammps.org/atom_style.html)\ncommand", + "description": "Modify certain attributes of atoms defined and stored within LAMMPS,\nin addition to what is specified by the [atom_style ](https://docs.lammps.org/atom_style.html)\ncommand. The *id* and *map* keywords must be specified before a\nsimulation box is defined; other keywords can be specified any time.\n\nThe *id* keyword determines whether non-zero atom IDs can be assigned\nto each atom. If the value is *yes*, which is the default, IDs are\nassigned, whether you use the [create atoms ](https://docs.lammps.org/create_atoms.html) or\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands to initialize atoms. If the value is *no* the IDs for all\natoms are assumed to be 0.\n\nIf atom IDs are used, they must all be positive integers. They should\nalso be unique, though LAMMPS does not check for this. Typically they\nshould also be consecutively numbered (from 1 to Natoms), though this\nis not required. Molecular [atom styles ](https://docs.lammps.org/atom_style.html) are those\nthat store bond topology information (styles bond, angle, molecular,\nfull). These styles require atom IDs since the IDs are used to encode\nthe topology. Some other LAMMPS commands also require the use of atom\nIDs. E.g. some many-body pair styles use them to avoid double\ncomputation of the I-J interaction between two atoms.\n\nThe only reason not to use atom IDs is if you are running an atomic\nsimulation so large that IDs cannot be uniquely assigned. For a\ndefault LAMMPS build this limit is 2\\^31 or about 2 billion atoms.\nHowever, even in this case, you can use 64-bit atom IDs, allowing 2\\^63\nor about 9e18 atoms, if you build LAMMPS with the - DLAMMPS_BIGBIG\nswitch. This is described on the [Build_settings ](https://docs.lammps.org/Build_settings.html)\ndoc page. If atom IDs are not used, they must be specified as 0 for\nall atoms, e.g. in a data or restart file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a [triclinic simulation box ](https://docs.lammps.org/Howto_triclinic.html) is used,\n > atom IDs are required, due to how neighbor lists are built. \n > \n\nThe *map* keyword determines how atoms with specific IDs are found\nwhen required. An example are the bond (angle, etc) methods which\nneed to find the local index of an atom with a specific global ID\nwhich is a bond (angle, etc) partner. LAMMPS performs this operation\nefficiently by creating a \"map\", which is either an *array* or *hash*\ntable, as described below.\n\nWhen the *map* keyword is not specified in your input script, LAMMPS\nonly creates a map for [atom_styles ](https://docs.lammps.org/atom_style.html) for molecular\nsystems which have permanent bonds (angles, etc). No map is created\nfor atomic systems, since it is normally not needed. However some\nLAMMPS commands require a map, even for atomic systems, and will\ngenerate an error if one does not exist. The *map* keyword thus\nallows you to force the creation of a map. The *yes* value will\ncreate either an *array* or *hash* style map, as explained in the next\nparagraph. The *array* and *hash* values create an array-style or\nhash-style map respectively.\n\nFor an *array* -style map, each processor stores a lookup table of\nlength N, where N is the largest atom ID in the system. This is a\nfast, simple method for many simulations, but requires too much memory\nfor large simulations. For a *hash* -style map, a hash table is\ncreated on each processor, which finds an atom ID in constant time\n(independent of the global number of atom IDs). It can be slightly\nslower than the *array* map, but its memory cost is proportional to\nthe number of atoms owned by a processor, i.e. N/P when N is the total\nnumber of atoms in the system and P is the number of processors.\n\nThe *first* keyword allows a [group ](https://docs.lammps.org/group.html) to be specified whose\natoms will be maintained as the first atoms in each processor's list\nof owned atoms. This in only useful when the specified group is a\nsmall fraction of all the atoms, and there are other operations LAMMPS\nis performing that will be sped-up significantly by being able to loop\nover the smaller set of atoms. Otherwise the reordering required by\nthis option will be a net slow-down. The [neigh_modify include ](https://docs.lammps.org/neigh_modify.html) and [comm_modify group ](https://docs.lammps.org/comm_modify.html)\ncommands are two examples of commands that require this setting to\nwork efficiently. Several [fixes ](https://docs.lammps.org/fix.html), most notably time\nintegration fixes like [fix nve ](https://docs.lammps.org/fix_nve.html), also take advantage of\nthis setting if the group they operate on is the group specified by\nthis command. Note that specifying \"all\" as the group-ID effectively\nturns off the *first* option.\n\nIt is OK to use the *first* keyword with a group that has not yet been\ndefined, e.g. to use the atom_modify first command at the beginning of\nyour input script. LAMMPS does not use the group until a simulation\nis run.\n\nThe *sort* keyword turns on a spatial sorting or reordering of atoms\nwithin each processor's subdomain every *Nfreq* timesteps. If\n*Nfreq* is set to 0, then sorting is turned off. Sorting can improve\ncache performance and thus speed-up a LAMMPS simulation, as discussed\nin a paper by **Meloni**. Its efficacy depends on the problem\nsize (atoms/processor), how quickly the system becomes disordered, and\nvarious other factors. As a general rule, sorting is typically more\neffective at speeding up simulations of liquids as opposed to solids.\nIn tests we have done, the speed-up can range from zero to 3-4x.\n\nReordering is performed every *Nfreq* timesteps during a dynamics run\nor iterations during a minimization. More precisely, reordering\noccurs at the first reneighboring that occurs after the target\ntimestep. The reordering is performed locally by each processor,\nusing bins of the specified *binsize* . If *binsize* is set to 0.0,\nthen a binsize equal to half the [neighbor ](https://docs.lammps.org/neighbor.html) cutoff\ndistance (force cutoff plus skin distance) is used, which is a\nreasonable value. After the atoms have been binned, they are\nreordered so that atoms in the same bin are adjacent to each other in\nthe processor's 1d list of atoms.\n\nThe goal of this procedure is for atoms to put atoms close to each\nother in the processor's one-dimensional list of atoms that are also\nnear to each other spatially. This can improve cache performance when\npairwise interactions and neighbor lists are computed. Note that if\nbins are too small, there will be few atoms/bin. Likewise if bins are\ntoo large, there will be many atoms/bin. In both cases, the goal of\ncache locality will be undermined.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Running a simulation with sorting on versus off should not\n > change the simulation results in a statistical sense. However, a\n > different ordering will induce round-off differences, which will lead\n > to diverging trajectories over time when comparing two simulations.\n > Various commands, particularly those which use random numbers\n > (e.g. [velocity create ](https://docs.lammps.org/velocity.html), and [fix langevin ](https://docs.lammps.org/fix_langevin.html)), may generate (statistically identical)\n > results which depend on the order in which atoms are processed. The\n > order of atoms in a [dump ](https://docs.lammps.org/dump.html) file will also typically change\n > if sorting is enabled. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When running simple pair-wise potentials like Lennard Jones on GPUs\n > with the KOKKOS package, using a larger binsize (e.g. 2x larger than\n > default) and a more frequent reordering than default (e.g. every 100\n > time steps) may improve performance.\n >\n > \n > \n\n\n**(Meloni)** Meloni, Rosati and Colombo, J Chem Phys, 126, 121102 (2007). \n ", + "restrictions": "The *first* and *sort* options cannot be used together. Since sorting\nis on by default, it will be turned off if the *first* keyword is\nused with a group-ID that is not \"all\".\n", + "related": "none\n" }, { "command": [ - "dihedral_style none" + "uncompute" ], "syntax": [ - "dihedral_style none" + "uncompute compute-ID" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "uncompute", "type": 1, "choices": [] }, { - "arg": "none", - "type": 1, + "arg": "compute-ID", + "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style none\n```\n", - "html_filename": "dihedral_none.html", - "short_description": "Using a dihedral style of none means dihedral forces and energies are\nnot computed, even if quadruplets of dihedral atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command", - "description": "Using a dihedral style of none means dihedral forces and energies are\nnot computed, even if quadruplets of dihedral atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [dihedral_style zero ](https://docs.lammps.org/dihedral_zero.html) command for a way to\ncalculate dihedral statistics, but compute no dihedral interactions.\n", + "parameters": "* compute-ID = ID of a previously defined compute \n", + "examples": "\n```lmps\nuncompute 2\nuncompute lower-boundary\n```\n", + "html_filename": "uncompute.html", + "short_description": "Delete a compute that was previously defined with a [compute ](https://docs.lammps.org/compute.html)\ncommand", + "description": "Delete a compute that was previously defined with a [compute ](https://docs.lammps.org/compute.html)\ncommand. This also wipes out any additional changes made to the compute\nvia the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n", "restrictions": " none\n", - "related": "[dihedral_style zero ](https://docs.lammps.org/dihedral_zero.html)\n" + "related": "[compute ](https://docs.lammps.org/compute.html)\n" }, { "command": [ - "python" + "compute_modify" ], "syntax": [ - "python mode keyword args ..." + "compute_modify compute-ID keyword value ..." ], "args": [ [ { - "arg": "python", + "arg": "compute_modify", "type": 1, "choices": [] }, { - "arg": "mode", + "arg": "compute-ID", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "dynamic/dof", + "type": 3, + "choices": [ + "extra/dof", + "dynamic/dof" + ] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* mode = source or name of Python function\n\n if mode is source: \n *      keyword = here or name of a *Python file* \n       here arg = inline \n       inline = one or more lines of Python code which defines func \n       must be a single argument, typically enclosed between triple quotes \n       *Python file* = name of a file with Python code which will be executed immediately \n* if mode is the name of a Python function, one or more keywords with/without arguments must be appended \n *      keyword = invoke or input or return or format or length or file or here or exists \n       invoke arg = none = invoke the previously defined Python function \n       input args = N i1 i2 ... iN \n       N = # of inputs to function \n       i1,...,iN = value, SELF, or LAMMPS variable name \n       value = integer number, floating point number, or string \n       SELF = reference to LAMMPS itself which can be accessed by Python function \n       variable = v_name, where name = name of LAMMPS variable, e.g. v_abc \n       return arg = varReturn \n       varReturn = v_name = LAMMPS variable name which the return value of the Python function will be assigned to \n       format arg = fstring with M characters \n       M = N if no return value, where N = # of inputs \n       M = N+1 if there is a return value \n       fstring = each character (i,f,s,p) corresponds in order to an input or return value \n       'i' = integer, 'f' = floating point, 's' = string, 'p' = SELF \n       length arg = Nlen \n       Nlen = max length of string returned from Python function \n       file arg = filename \n       filename = file of Python code, which defines func \n       here arg = inline \n       inline = one or more lines of Python code which defines func \n       must be a single argument, typically enclosed between triple quotes \n       exists arg = none = Python code has been loaded by previous python command \n", - "examples": "\n```lmps\npython pForce input 2 v_x 20.0 return v_f format fff file force.py\npython pForce invoke\n\npython factorial input 1 myN return v_fac format ii here \"\"\"\ndef factorial(n):\nif n == 1: return n\n #### return n * factorial(n-1)\n\npython loop input 1 SELF return v_value format pf here \"\"\"\ndef loop(lmpptr,N,cut0):\nfrom lammps import lammps\nlmp = lammps(ptr=lmpptr)\n\n# loop N times, increasing cutoff each time\n\nfor i in range(N):\ncut = cut0 + i*0.1\nlmp.set_variable(\"cut\",cut) # set a variable in LAMMPS\nlmp.command(\"pair_style lj/cut ${cut}\") # LAMMPS commands\nlmp.command(\"pair_coeff * * 1.0 1.0\")\n #### lmp.command(\"run 100\")\n\npython source funcdef.py\n\npython source here \"from lammps import lammps\"\n```\n", - "html_filename": "python.html", - "short_description": "The *python* command allows interfacing LAMMPS with an embedded Python\ninterpreter and enables either executing arbitrary python code in that\ninterpreter, registering a Python function for future execution (as a\npython style variable, from a fix interfaced with python, or for direct\ninvocation), or invoking such a previously registered function", - "description": "The *python* command allows interfacing LAMMPS with an embedded Python\ninterpreter and enables either executing arbitrary python code in that\ninterpreter, registering a Python function for future execution (as a\npython style variable, from a fix interfaced with python, or for direct\ninvocation), or invoking such a previously registered function.\n\nArguments, including LAMMPS variables, can be passed to the function\nfrom the LAMMPS input script and a value returned by the Python function\nassigned to a LAMMPS variable. The Python code for the function can be included\ndirectly in the input script or in a separate Python file. The function\ncan be standard Python code or it can make \"callbacks\" to LAMMPS through\nits library interface to query or set internal values within LAMMPS.\nThis is a powerful mechanism for performing complex operations in a\nLAMMPS input script that are not possible with the simple input script\nand variable syntax which LAMMPS defines. Thus your input script can\noperate more like a true programming language.\n\nUse of this command requires building LAMMPS with the PYTHON package\nwhich links to the Python library so that the Python interpreter is\nembedded in LAMMPS. More details about this process are given below.\n\nThere are two ways to invoke a Python function once it has been\nregistered. One is using the *invoke* keyword. The other is to assign\nthe function to a [python-style variable ](https://docs.lammps.org/variable.html) defined in\nyour input script. Whenever the variable is evaluated, it will execute\nthe Python function to assign a value to the variable. Note that\nvariables can be evaluated in many different ways within LAMMPS. They\ncan be substituted with their result directly in an input script, or\nthey can be passed to various commands as arguments, so that the\nvariable is evaluated during a simulation run.\n\nA broader overview of how Python can be used with LAMMPS is given in the\n[Use Python with LAMMPS ](https://docs.lammps.org/Python_head.html) section of the\ndocumentation. There also is an ``examples/python`` directory which\nillustrates use of the python command.\n\n----------\n\nThe first argument of the *python* command is either the *source*\nkeyword or the name of a Python function. This defines the mode\nof the python command.\n\nIf the *source* keyword is used, it is followed by either a file name or\nthe *here* keyword. No other keywords can be used. The *here* keyword\nis followed by a string with python commands, either on a single line\nenclosed in quotes, or as multiple lines enclosed in triple quotes.\nThese Python commands will be passed to the python interpreter and\nexecuted immediately without registering a Python function for future\nexecution. The code will be loaded into and run in the \"main\" module of\nthe Python interpreter. This allows running arbitrary Python code at\nany time while processing the LAMMPS input file. This can be used to\npre-load Python modules, initialize global variables, define functions\nor classes, or perform operations using the python programming language.\nThe Python code will be executed in parallel on all MPI processes. No\narguments can be passed.\n\nIn all other cases, the first argument is the name of a Python function\nthat will be registered with LAMMPS for future execution. The function\nmay already be defined (see *exists* keyword) or must be defined using\nthe *file* or *here* keywords as explained below.\n\nIf the *invoke* keyword is used, no other keywords can be used, and a\nprevious *python* command must have registered the Python function\nreferenced by this command. This invokes the Python function with the\npreviously defined arguments and the return value is processed as\nexplained below. You can invoke the function as many times as you wish\nin your input script.\n\nThe *input* keyword defines how many arguments *N* the Python function\nexpects. If it takes no arguments, then the *input* keyword should not\nbe used. Each argument can be specified directly as a value, e.g. '6'\nor '3.14159' or 'abc' (a string of characters). The type of each\nargument is specified by the *format* keyword as explained below, so\nthat Python will know how to interpret the value. If the word SELF is\nused for an argument it has a special meaning. A pointer is passed to\nthe Python function which it can convert into a reference to LAMMPS\nitself using the [LAMMPS Python module ](https://docs.lammps.org/Python_module.html). This\nenables the function to call back to LAMMPS through its library\ninterface as explained below. This allows the Python function to query\nor set values internal to LAMMPS which can affect the subsequent\nexecution of the input script. A LAMMPS variable can also be used as an\nargument, specified as v_name, where \"name\" is the name of the variable.\nAny style of LAMMPS variable returning a scalar or a string can be used,\nas defined by the [variable ](https://docs.lammps.org/variable.html) command. The *format*\nkeyword must be used to set the type of data that is passed to Python.\nEach time the Python function is invoked, the LAMMPS variable is\nevaluated and its value is passed to the Python function.\n\nThe *return* keyword is only needed if the Python function returns a\nvalue. The specified *varReturn* must be of the form v_name, where\n\"name\" is the name of a python-style LAMMPS variable, defined by the\n[variable ](https://docs.lammps.org/variable.html) command. The Python function can return a\nnumeric or string value, as specified by the *format* keyword.\n\nAs explained on the [variable ](https://docs.lammps.org/variable.html) doc page, the definition\nof a python-style variable associates a Python function name with the\nvariable. This must match the *Python function name* first argument of\nthe *python* command. For example these two commands would be\nconsistent:\n\n```lmps\nvariable foo python myMultiply\npython myMultiply return v_foo format f file funcs.py\n```\nThe two commands can appear in either order in the input script so\nlong as both are specified before the Python function is invoked for\nthe first time. Afterwards, the variable 'foo' is associated with\nthe Python function 'myMultiply'.\n\nThe *format* keyword must be used if the *input* or *return* keywords\nare used. It defines an *fstring* with M characters, where M = sum of\nnumber of inputs and outputs. The order of characters corresponds to\nthe N inputs, followed by the return value (if it exists). Each\ncharacter must be one of the following: \"i\" for integer, \"f\" for\nfloating point, \"s\" for string, or \"p\" for SELF. Each character defines\nthe type of the corresponding input or output value of the Python\nfunction and affects the type conversion that is performed internally as\ndata is passed back and forth between LAMMPS and Python. Note that it\nis permissible to use a [python-style variable ](https://docs.lammps.org/variable.html) in a\nLAMMPS command that allows for an equal-style variable as an argument,\nbut only if the output of the Python function is flagged as a numeric\nvalue (\"i\" or \"f\") via the *format* keyword.\n\nIf the *return* keyword is used and the *format* keyword specifies the\noutput as a string, then the default maximum length of that string is\n63 characters (64-1 for the string terminator). If you want to return\na longer string, the *length* keyword can be specified with its *Nlen*\nvalue set to a larger number (the code allocates space for Nlen+1 to\ninclude the string terminator). If the Python function generates a\nstring longer than the default 63 or the specified *Nlen*, it will be\ntruncated.\n\n----------\n\nEither the *file*, *here*, or *exists* keyword must be used, but only\none of them. These keywords specify what Python code to load into the\nPython interpreter. The *file* keyword gives the name of a file\ncontaining Python code, which should end with a \".py\" suffix. The code\nwill be immediately loaded into and run in the \"main\" module of the\nPython interpreter. The Python code will be executed in parallel on all\nMPI processes. Note that Python code which contains a function\ndefinition does not \"execute\" the function when it is run; it simply\ndefines the function so that it can be invoked later.\n\nThe *here* keyword does the same thing, except that the Python code\nfollows as a single argument to the *here* keyword. This can be done\nusing triple quotes as delimiters, as in the examples above. This\nallows Python code to be listed verbatim in your input script, with\nproper indentation, blank lines, and comments, as desired. See the\n[Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page, for an explanation of\nhow triple quotes can be used as part of input script syntax.\n\nThe *exists* keyword takes no argument. It means that Python code\ncontaining the required Python function with the given name has already\nbeen executed, for example by a *python source* command or in the same\nfile that was used previously with the *file* keyword.\n\nNote that the Python code that is loaded and run must contain a function\nwith the specified function name. To operate properly when later\ninvoked, the function code must match the *input* and *return* and\n*format* keywords specified by the python command. Otherwise Python\nwill generate an error.\n\n----------\n\nThis section describes how Python code can be written to work with\nLAMMPS.\n\nWhether you load Python code from a file or directly from your input\nscript, via the *file* and *here* keywords, the code can be identical.\nIt must be indented properly as Python requires. It can contain\ncomments or blank lines. If the code is in your input script, it cannot\nhowever contain triple-quoted Python strings, since that will conflict\nwith the triple-quote parsing that the LAMMPS input script performs.\n\nAll the Python code you specify via one or more python commands is\nloaded into the Python \"main\" module, i.e. ``__name__ == '__main__'``.\nThe code can define global variables, define global functions, define\nclasses or execute statements that are outside of function definitions.\nIt can contain multiple functions, only one of which matches the *func*\nsetting in the python command. This means you can use the *file*\nkeyword once to load several functions, and the *exists* keyword\nthereafter in subsequent python commands to register the other functions\nthat were previously loaded with LAMMPS.\n\nA Python function you define (or more generally, the code you load)\ncan import other Python modules or classes, it can make calls to other\nsystem functions or functions you define, and it can access or modify\nglobal variables (in the \"main\" module) which will persist between\nsuccessive function calls. The latter can be useful, for example, to\nprevent a function from being invoke multiple times per timestep by\ndifferent commands in a LAMMPS input script that access the returned\npython-style variable associated with the function. For example,\nconsider this function loaded with two global variables defined\noutside the function:\n\n```python\nnsteplast = -1\nnvaluelast = 0\n\ndef expensive(nstep):\nglobal nsteplast,nvaluelast\nif nstep == nsteplast: return nvaluelast\nnsteplast = nstep\n# perform complicated calculation\nnvalue = ...\nnvaluelast = nvalue\nreturn nvalue\n```\nThe variable 'nsteplast' stores the previous timestep the function was\ninvoked (passed as an argument to the function). The variable\n'nvaluelast' stores the return value computed on the last function\ninvocation. If the function is invoked again on the same timestep, the\nprevious value is simply returned, without re-computing it. The\n\"global\" statement inside the Python function allows it to overwrite the\nglobal variables from within the local context of the function.\n\nNote that if you load Python code multiple times (via multiple python\ncommands), you can overwrite previously loaded variables and functions\nif you are not careful. E.g. if the code above were loaded twice, the\nglobal variables would be re-initialized, which might not be what you\nwant. Likewise, if a function with the same name exists in two chunks\nof Python code you load, the function loaded second will override the\nfunction loaded first.\n\nIt's important to realize that if you are running LAMMPS in parallel,\neach MPI task will load the Python interpreter and execute a local\ncopy of the Python function(s) you define. There is no connection\nbetween the Python interpreters running on different processors.\nThis implies three important things.\n\nFirst, if you put a print or other statement creating output to the\nscreen in your Python function, you will see P copies of the output,\nwhen running on P processors. If the prints occur at (nearly) the same\ntime, the P copies of the output may be mixed together. When loading\nthe LAMMPS Python module into the embedded Python interpreter, it is\npossible to pass the pointer to the current LAMMPS class instance and\nvia the Python interface to the LAMMPS library interface, it is possible\nto determine the MPI rank of the current process and thus adapt the\nPython code so that output will only appear on MPI rank 0. The\nfollowing LAMMPS input demonstrates how this could be done. The text\n'Hello, LAMMPS!' should be printed only once, even when running LAMMPS\nin parallel.\n\n```lmps\npython python_hello input 1 SELF format p here \"\"\"\ndef python_hello(handle):\nfrom lammps import lammps\nlmp = lammps(ptr=handle)\nme = lmp.extract_setting('world_rank')\nif me == 0:\n #### print('Hello, LAMMPS!')\n\npython python_hello invoke\n```\nIf your Python code loads Python modules that are not pre-loaded by the\nPython library, then it will load the module from disk. This may be a\nbottleneck if 1000s of processors try to load a module at the same time.\nOn some large supercomputers, loading of modules from disk by Python may\nbe disabled. In this case you would need to pre-build a Python library\nthat has the required modules pre-loaded and link LAMMPS with that\nlibrary.\n\nThird, if your Python code calls back to LAMMPS (discussed in the\nnext section) and causes LAMMPS to perform an MPI operation requires\nglobal communication (e.g. via MPI_Allreduce), such as computing the\nglobal temperature of the system, then you must ensure all your Python\nfunctions (running independently on different processors) call back to\nLAMMPS. Otherwise the code may hang.\n\n----------\n\nYour Python function can \"call back\" to LAMMPS through its\nlibrary interface, if you use the SELF input to pass Python\na pointer to LAMMPS. The mechanism for doing this in your\nPython function is as follows:\n\n```python\ndef foo(handle,...):\nfrom lammps import lammps\nlmp = lammps(ptr=handle)\nlmp.command('print \"Hello from inside Python\"')\n...\n```\nThe function definition must include a variable ('handle' in this case)\nwhich corresponds to SELF in the *python* command. The first line of\nthe function imports the [\"lammps\" Python module ](https://docs.lammps.org/Python_module.html).\nThe second line creates a Python object ``lmp`` which wraps the instance\nof LAMMPS that called the function. The 'ptr=handle' argument is what\nmakes that happen. The third line invokes the command() function in the\nLAMMPS library interface. It takes a single string argument which is a\nLAMMPS input script command for LAMMPS to execute, the same as if it\nappeared in your input script. In this case, LAMMPS should output\n\n```\nHello from inside Python\n```\nto the screen and log file. Note that since the LAMMPS print command\nitself takes a string in quotes as its argument, the Python string\nmust be delimited with a different style of quotes.\n\nThe [Python_head` page describes the syntaxfor how Python wraps the various functions included in the LAMMPSlibrary interface.A more interesting example is in the ``examples/python/in.python`` scriptwhich loads and runs the following function from ``examples/python/funcs.py``:```pythondef loop(N,cut0,thresh,lmpptr):print(\"LOOP ARGS\", N, cut0, thresh, lmpptr)from lammps import lammpslmp = lammps(ptr=lmpptr)natoms = lmp.get_natoms()for i in range(N):cut = cut0 + i*0.1lmp.set_variable(\"cut\",cut) # set a variable in LAMMPSlmp.command(\"pair_style lj/cut ${cut}\") # LAMMPS command#lmp.command(\"pair_style lj/cut %d\" % cut) # LAMMPS command optionlmp.command(\"pair_coeff * * 1.0 1.0\") # dittolmp.command(\"run 10\") # dittope = lmp.extract_compute(\"thermo_pe\",0,0) # extract total PE from LAMMPSprint(\"PE\", pe/natoms, thresh)if pe/natoms ](https://docs.lammps.org/ thresh: return```with these input script commands:```lmpspython loop input 4 10 1.0 -4.0 SELF format iffp file funcs.pypython loop invoke```This has the effect of looping over a series of 10 short runs (10timesteps each) where the pair style cutoff is increased from a valueof 1.0 in distance units, in increments of 0.1. The looping stopswhen the per-atom potential energy falls below a threshold of -4.0 inenergy units. More generally, Python can be used to implement a loopwith complex logic, much more so than can be created using the LAMMPS:doc:`jump ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the callback mechanism just described, recognize that\n > there are some operations you should not attempt because LAMMPS cannot\n > execute them correctly. If the Python function is invoked between\n > runs in the LAMMPS input script, then it should be OK to invoke any\n > LAMMPS input script command via the library interface command() or\n > file() functions, so long as the command would work if it were\n > executed in the LAMMPS input script directly at the same point. \n > \n\nHowever, a Python function can also be invoked during a run, whenever\nan associated LAMMPS variable it is assigned to is evaluated. If the\nvariable is an input argument to another LAMMPS command (e.g. [fix setforce ](https://docs.lammps.org/fix_setforce.html)), then the Python function will be invoked\ninside the class for that command, in one of its methods that is\ninvoked in the middle of a timestep. You cannot execute arbitrary\ninput script commands from the Python function (again, via the\ncommand() or file() functions) at that point in the run and expect it\nto work. Other library functions such as those that invoke computes\nor other variables may have hidden side effects as well. In these\ncases, LAMMPS has no simple way to check that something illogical is\nbeing attempted.\n\nThe same applies to Python functions called during a simulation run at\neach time step using [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html).\n\n----------\n\nIf you run Python code directly on your workstation, either\ninteractively or by using Python to launch a Python script stored in a\nfile, and your code has an error, you will typically see informative\nerror messages. That is not the case when you run Python code from\nLAMMPS using an embedded Python interpreter. The code will typically\nfail silently. LAMMPS will catch some errors but cannot tell you\nwhere in the Python code the problem occurred. For example, if the\nPython code cannot be loaded and run because it has syntax or other\nlogic errors, you may get an error from Python pointing to the\noffending line, or you may get one of these generic errors from\nLAMMPS:\n\n```\nCould not process Python file\nCould not process Python string\n```\nWhen the Python function is invoked, if it does not return properly,\nyou will typically get this generic error from LAMMPS:\n\n```\nPython function evaluation failed\n```\nHere are three suggestions for debugging your Python code while\nrunning it under LAMMPS.\n\nFirst, don't run it under LAMMPS, at least to start with! Debug it\nusing plain Python. Load and invoke your function, pass it arguments,\ncheck return values, etc.\n\nSecond, add Python print statements to the function to check how far\nit gets and intermediate values it calculates. See the discussion\nabove about printing from Python when running in parallel.\n\nThird, use Python exception handling. For example, say this statement\nin your Python function is failing, because you have not initialized the\nvariable foo:\n\n```python\nfoo += 1\n```\nIf you put one (or more) statements inside a \"try\" statement,\nlike this:\n\n```python\nimport exceptions\nprint(\"Inside simple function\")\ntry:\nfoo += 1 # one or more statements here\nexcept Exception as e:\nprint(\"FOO error:\", e)\n```\nthen you will get this message printed to the screen:\n\n```\nFOO error: local variable 'foo' referenced before assignment\n```\nIf there is no error in the try statements, then nothing is printed.\nEither way the function continues on (unless you put a return or\nsys.exit() in the except clause).\n\n----------\n", - "restrictions": "This command is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBuilding LAMMPS with the PYTHON package will link LAMMPS with the Python\nlibrary on your system. Settings to enable this are in the\nlib/python/Makefile.lammps file. See the lib/python/README file for\ninformation on those settings.\n\nIf you use Python code which calls back to LAMMPS, via the SELF input\nargument explained above, there is an extra step required when building\nLAMMPS. LAMMPS must also be built as a shared library and your Python\nfunction must be able to load the [\"lammps\" Python module](https://docs.lammps.org/Python_module.html) that wraps the LAMMPS library interface. These are the\nsame steps required to use Python by itself to wrap LAMMPS. Details on\nthese steps are explained on the [Python ](https://docs.lammps.org/Python_head.html) doc page.\nNote that it is important that the stand-alone LAMMPS executable and the\nLAMMPS shared library be consistent (built from the same source code\nfiles) in order for this to work. If the two have been built at\ndifferent times using different source files, problems may occur.\n\nAnother limitation of calling back to Python from the LAMMPS module\nusing the *python* command in a LAMMPS input is that both, the Python\ninterpreter and LAMMPS, must be linked to the same Python runtime as a\nshared library. If the Python interpreter is linked to Python\nstatically (which seems to happen with Conda) then loading the shared\nLAMMPS library will create a second python \"main\" module that hides the\none from the Python interpreter and all previous defined function and\nglobal variables will become invisible.\n", - "related": "[shell ](https://docs.lammps.org/shell.html), [variable ](https://docs.lammps.org/variable.html), [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html)\n" + "parameters": "* compute-ID = ID of the compute to modify\n* one or more keyword/value pairs may be listed\n* keyword = extra/dof or dynamic/dof \n *        extra/dof value = N \n         N = # of extra degrees of freedom to subtract \n *        dynamic/dof value = yes or no \n         yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature \n", + "examples": "\n```lmps\ncompute_modify myTemp extra/dof 0\ncompute_modify newtemp dynamic/dof yes extra/dof 600\n```\n", + "html_filename": "compute_modify.html", + "short_description": "Modify one or more parameters of a previously defined compute", + "description": "Modify one or more parameters of a previously defined compute. Not\nall compute styles support all parameters.\n\nThe *extra/dof* keyword refers to how many degrees of freedom are\nsubtracted (typically from \\(3N\\)) as a normalizing factor in a\ntemperature computation. Only computes that compute a temperature use\nthis option. The default is 2 or 3 for [2d or 3d systems](https://docs.lammps.org/dimension.html) which is a correction factor for an ensemble of velocities\nwith zero total linear momentum. For compute temp/partial, if one or\nmore velocity components are excluded, the value used for *extra/dof* is\nscaled accordingly. You can use a negative number for the *extra/dof*\nparameter if you need to add degrees-of-freedom. See the [computetemp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) command for an example.\n\nThe *dynamic/dof* keyword determines whether the number\nof atoms \\(N\\) in the compute group and their associated degrees\nof freedom (DOF) are re-computed each time a temperature is computed.\nOnly compute styles that calculate a temperature use this option. By\ndefault, \\(N\\) and their DOF are assumed to be constant. If you\nare adding atoms or molecules to the system (see the [fix pour](https://docs.lammps.org/fix_pour.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html), and [fix gcmc](https://docs.lammps.org/fix_gcmc.html) commands) or expect atoms or molecules to be lost\n(e.g. due to exiting the simulation box or via [fix evaporate](https://docs.lammps.org/fix_evaporate.html)), then this option should be used to ensure the\ntemperature is correctly normalized.\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html)\n" }, { "command": [ - "pair_style meam/spline", - "pair_style meam/spline/omp" + "fix ehex" ], "syntax": [ - "pair_style meam/spline" + "fix ID group-ID ehex nevery F keyword value" ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "meam/spline", - "type": 3, - "choices": [ - "meam/spline", - "meam/spline/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style meam/spline\npair_coeff * * Ti.meam.spline Ti\npair_coeff * * Ti.meam.spline Ti O\n```\n", - "html_filename": "pair_meam_spline.html", - "short_description": "The *meam/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky1**", - "description": "The *meam/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky1**. For a single species (\"old-style\") MEAM,\nthe total energy E is given by\n\\[\\begin{align*} \n E & =\\sum_{i ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nEach timestep particles are inserted, they are placed randomly inside\nthe insertion volume so as to mimic a stream of poured particles. If\nthey are molecules they are also oriented randomly. Each atom in the\nparticle is tested for overlaps with existing particles, including\neffects due to periodic boundary conditions if applicable. If an\noverlap is detected, another random insertion attempt is made; see the\n*vol* keyword discussion below. The larger the volume of the\ninsertion region, the more particles that can be inserted at any one\ntimestep. Particles are inserted again after enough time has elapsed\nthat the previously inserted particles fall out of the insertion\nvolume under the influence of gravity. Insertions continue every so\nmany timesteps until the desired # of particles has been inserted.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the particle\n > count is changing due to adding particles, you typically should use\n > the [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command\n > for the temperature compute you are using. \n > \n\n----------\n\nAll other keywords are optional with defaults as shown below.\n\nThe *diam* option is only used when inserting atoms and specifies the\ndiameters of inserted particles. There are 3 styles: *one*, *range*,\nor *poly* . For *one*, all particles will have diameter *D* . For\n*range*, the diameter of each particle will be chosen randomly and\nuniformly between the specified *Dlo* and *Dhi* bounds. For *poly*, a\nseries of *Npoly* diameters is specified. For each diameter a\npercentage value from 0.0 to 1.0 is also specified. The *Npoly*\npercentages must sum to 1.0. For the example shown above with \"diam 2\n0.7 0.4 1.5 0.6\", all inserted particles will have a diameter of 0.7\nor 1.5. 40% of the particles will be small; 60% will be large.\n\nNote that for molecule insertion, the diameters of individual atoms in\nthe molecule can be specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command. If not specified, the diameter of\neach atom in the molecule has a default diameter of 1.0.\n\nThe *id* option has two settings which are used to determine the atom\nor molecule IDs to assign to inserted particles/molecules. In both\ncases a check is done of the current system to find the maximum\ncurrent atom and molecule ID of any existing particle. Newly inserted\nparticles and molecules are assigned IDs that increment those max\nvalues. For the *max* setting, which is the default, this check is\ndone at every insertion step, which allows for particles to leave the\nsystem, and their IDs to potentially be re-used. For the *next*\nsetting this check is done only once when the fix is specified, which\ncan be more efficient if you are sure particles will not be added in\nsome other way.\n\nThe *vol* option specifies what volume fraction of the insertion\nvolume will be filled with particles. For particles with a size\nspecified by the *diam range* keyword, they are assumed to all be of\nmaximum diameter *Dhi* for purposes of computing their contribution to\nthe volume fraction.\n\nThe higher the volume fraction value, the more particles are inserted\neach timestep. Since inserted particles cannot overlap, the maximum\nvolume fraction should be no higher than about 0.6. Each timestep\nparticles are inserted, LAMMPS will make up to a total of M tries to\ninsert the new particles without overlaps, where M = # of inserted\nparticles \\* Nattempt. If LAMMPS is unsuccessful at completing all\ninsertions, it prints a warning.\n\nThe *dens* and *vel* options enable inserted particles to have a range\nof densities or xy velocities. The specific values for a particular\ninserted particle will be chosen randomly and uniformly between the\nspecified bounds. Internally, the density value for a particle is\nconverted to a mass, based on the radius (volume) of the particle.\nThe *vz* or *vy* value for option *vel* assigns a z-velocity (3d) or\ny-velocity (2d) to each inserted particle.\n\nThe *rate* option moves the insertion volume in the z direction (3d)\nor y direction (2d). This enables pouring particles from a\nsuccessively higher height over time.\n\nThe *ignore* option is useful when running a simulation that used line\nsegment (2d) or triangle (3d) particles, typically to define\nboundaries for spherical granular particles to interact with. See the\n[atom_style line or tri ](https://docs.lammps.org/atom_style.html) command for details. Lines\nand triangles store their size, and if the size is large it may\noverlap (in a spherical sense) with the insertion region, even if the\nline/triangle is oriented such that there is no actual overlap. This\ncan prevent particles from being inserted. The *ignore* keyword\ncauses the overlap check to skip any line or triangle particles.\nObviously you should only use it if there is in fact no overlap of the\nline or triangle particles with the insertion region.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). This means you must be careful when restarting a\npouring simulation, when the restart file was written in the middle of\nthe pouring operation. Specifically, you should use a new fix pour\ncommand in the input script for the restarted simulation that\ncontinues the operation. You will need to adjust the arguments of the\noriginal fix pour command to do this.\n\nAlso note that because the state of the random number generator is not\nsaved in restart files, you cannot do \"exact\" restarts with this fix,\nwhere the simulation continues on the same as if no restart had taken\nplace. However, in a statistical sense, a restarted simulation should\nproduce the same behavior if you adjust the fix pour parameters\nappropriately.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. This fix computes a global scalar, which can be accessed by various\noutput commands. The scalar is the cumulative number of insertions. The\nscalar value calculated by this fix is \"intensive\". No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor 3d simulations, a gravity fix in the -z direction must be defined\nfor use in conjunction with this fix. For 2d simulations, gravity\nmust be defined in the -y direction.\n\nThe specified insertion region cannot be a \"dynamic\" region, as\ndefined by the [region ](https://docs.lammps.org/region.html) command.\n", - "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix gravity ](https://docs.lammps.org/fix_gravity.html),\n[region ](https://docs.lammps.org/region.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ehex = style name of this fix command\n* nevery = add/subtract heat every this many timesteps\n* F = energy flux into the reservoir (energy/time units)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region or constrain or com or hex \n *        region value = region-ID \n         region-ID = ID of region (reservoir) atoms must be in for added thermostatting force \n *        constrain value = none \n         apply the constraint algorithm (SHAKE or RATTLE) again at the end of the timestep \n *        com value = none \n         rescale all sites of a constrained cluster of atom if its COM is in the reservoir \n *        hex value = none \n         omit the coordinate correction to recover the HEX algorithm \n", + "examples": "\n```lmps\n# Lennard-Jones, from examples/in.ehex.lj\n\nfix fnve all nve\n# specify regions rhot and rcold\n...\nfix fhot all ehex 1 0.15 region rhot\nfix fcold all ehex 1 -0.15 region rcold\n\n# SPC/E water, from examples/in.ehex.spce\nfix fnve all nve\n# specify regions rhot and rcold\n...\nfix fhot all ehex 1 0.075 region rhot constrain com\nfix fcold all ehex 1 -0.075 region rcold constrain com\nfix frattle all rattle 1e-10 400 0 b 1 a 1\n```\n", + "html_filename": "fix_ehex.html", + "short_description": "This fix implements the asymmetric version of the enhanced heat\nexchange algorithm **Wirnsberger**", + "description": "This fix implements the asymmetric version of the enhanced heat\nexchange algorithm **Wirnsberger**. The eHEX algorithm is\nan extension of the heat exchange algorithm **Ikeshoji** and\nadds an additional coordinate integration to account for higher-order\ntruncation terms in the operator splitting. The original HEX\nalgorithm (implemented as [fix heat ](https://docs.lammps.org/fix_heat.html)) is known to\nexhibit a slight energy drift limiting the accessible simulation times\nto a few nanoseconds. This issue is greatly improved by the new\nalgorithm decreasing the energy drift by at least a factor of a\nhundred (LJ and SPC/E water) with little computational overhead.\n\nIn both algorithms (non-translational) kinetic energy is constantly\nswapped between regions (reservoirs) to impose a heat flux onto the\nsystem. The equations of motion are therefore modified if a particle\n\\(i\\) is located inside a reservoir \\(\\Gamma_k\\) where \\(k>0\\). We\nuse \\(\\Gamma_0\\) to label those parts of the simulation box which\nare not thermostatted.) The input parameter *region-ID* of this fix\ncorresponds to \\(k\\). The energy swap is modelled by introducing an\nadditional thermostatting force to the equations of motion, such that\nthe time evolution of coordinates and momenta of particle \\(i\\)\nbecomes **Wirnsberger**\n\\[\\begin{align*} \n \\dot{\\mathbf r}_i &= \\mathbf v_i, \\\\\n \\dot{\\mathbf v}_i &= \\frac{\\mathbf f_i}{m_i} + \\frac{\\mathbf g_i}{m_i}. \\end{align*} \\]\nThe thermostatting force is given by\n\\[\\begin{align*} \n \\mathbf g_i = \\begin{cases}\n \\frac{m_i}{2} \\frac{ F_{\\Gamma_{k(\\mathbf r_i)}}}{ K_{\\Gamma_{k(\\mathbf r_i)}}}\n \\left(\\mathbf v_i - \\mathbf v_{\\Gamma_{k(\\mathbf r_i)}} \\right) & \\mbox{$k(\\mathbf r_i)> 0$ (inside a reservoir),} \\\\\n 0 & \\mbox{otherwise, }\n \\end{cases} \\end{align*} \\]\nwhere \\(m_i\\) is the mass and \\(k(\\mathbf r_i)\\) maps the particle\nposition to the respective reservoir. The quantity\n\\(F_{\\Gamma_{k(\\mathbf r_i)}}\\) corresponds to the input parameter\n*F*, which is the energy flux into the reservoir. Furthermore,\n\\(K_{\\Gamma_{k(\\mathbf r_i)}}\\) and \\(v_{\\Gamma_{k(\\mathbf r_i)}}\\)\ndenote the non-translational kinetic energy and the center of mass\nvelocity of that reservoir. The thermostatting force does not affect\nthe center of mass velocities of the individual reservoirs and the\nentire simulation box. A derivation of the equations and details on\nthe numerical implementation with velocity Verlet in LAMMPS can be\nfound in reference \"(Wirnsberger)\"#_Wirnsberger.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix only integrates the thermostatting force and must be\n > combined with another integrator, such as [fix nve ](https://docs.lammps.org/fix_nve.html), to\n > solve the full equations of motion. \n > \n\nThis fix is different from a thermostat such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) in that energy is\nadded/subtracted continually. Thus if there is not another mechanism\nin place to counterbalance this effect, the entire system will heat or\ncool continuously.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If heat is subtracted from the system too aggressively so that\n > the group's kinetic energy would go to zero, then LAMMPS will halt\n > with an error message. Increasing the value of *nevery* means that\n > heat is added/subtracted less frequently but in larger portions. The\n > resulting temperature profile will therefore be the same. \n > \n\nThis fix will default to [fix_heat ](https://docs.lammps.org/fix_heat.html) (HEX algorithm) if\nthe keyword *hex* is specified.\n\n----------\n\n**Compatibility with SHAKE and RATTLE (rigid molecules)** :\n\nThis fix is compatible with [fix shake ](https://docs.lammps.org/fix_shake.html) and [fix rattle ](https://docs.lammps.org/fix_shake.html). If either of these constraining algorithms is\nspecified in the input script and the keyword *constrain* is set, the\nbond distances will be corrected a second time at the end of the\nintegration step. It is recommended to specify the keyword *com* in\naddition to the keyword *constrain* . With this option all sites of a\nconstrained cluster are rescaled, if its center of mass is located\ninside the region. Rescaling all sites of a cluster by the same factor\ndoes not introduce any velocity components along fixed bonds. No\nrescaling takes place if the center of mass lies outside the region.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can only use the keyword *com* along with *constrain* . \n > \n\nTo achieve the highest accuracy it is recommended to use [fix rattle ](https://docs.lammps.org/fix_shake.html) with the keywords *constrain* and *com* as\nshown in the second example. Only if RATTLE is employed, the velocity\nconstraints will be satisfied.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even if RATTLE is used and the keywords *com* and *constrain*\n > are both set, the coordinate constraints will not necessarily be\n > satisfied up to the target precision. The velocity constraints are\n > satisfied as long as all sites of a cluster are rescaled (keyword\n > *com* ) and the cluster does not span adjacent reservoirs. The current\n > implementation of the eHEX algorithm introduces a small error in the\n > bond distances, which goes to zero with order three in the\n > timestep. For example, in a simulation of SPC/E water with a timestep\n > of 2 fs the maximum relative error in the bond distances was found to\n > be on the order of \\(10^{-7}\\) for relatively large\n > temperature gradients. A higher precision can be achieved by\n > decreasing the timestep. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Wirnsberger)** Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143,\n124104 (2015). \n \n**(Ikeshoji)** Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 (1994). \n ", + "restrictions": "This fix is part of the RIGID package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix heat ](https://docs.lammps.org/fix_heat.html), [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html), [compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html)\n" }, { "command": [ - "bond_style gromos", - "bond_style gromos/omp" + "fix drude/transform/direct" ], "syntax": [ - "bond_style gromos" + "fix ID group-ID style keyword value ..." ], "args": [ [ { - "arg": "bond_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "gromos", - "type": 3, - "choices": [ - "gromos", - "gromos/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nbond_style gromos\nbond_coeff 5 80.0 1.2\n```\n", - "html_filename": "bond_gromos.html", - "short_description": "The *gromos* bond style uses the potential\n\\[\n E = K (r^2 - r_0^2)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", - "description": "The *gromos* bond style uses the potential\n\\[\n E = K (r^2 - r_0^2)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the usual 1/4\nfactor is included in \\(K\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\(r_0\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" -}, -{ - "command": [ - "pair_style lj/switch3/coulgauss/long" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ + "arg": "ID", + "type": 2, + "choices": [] + }, { - "arg": "pair_style", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "mm3/switch3/coulgauss/long", + "arg": "drude/transform/inverse", "type": 3, "choices": [ - "lj/switch3/coulgauss/long", - "mm3/switch3/coulgauss/long" + "drude/transform/direct", + "drude/transform/inverse" ] }, { - "arg": "args", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* style = lj/switch3/coulgauss/long or mm3/switch3/coulgauss/long\n* args = list of arguments for a particular style \n *      lj/switch3/coulgauss/long args = cutoff (cutoff2) width \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n       width = width parameter of the smoothing function (distance units) \n *      mm3/switch3/coulgauss/long args = cutoff (cutoff2) width \n       cutoff = global cutoff for MM3 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n       width = width parameter of the smoothing function (distance units) \n", - "examples": "\n```lmps\npair_style lj/switch3/coulgauss/long 12.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style lj/switch3/coulgauss/long 12.0 10.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style mm3/switch3/coulgauss/long 12.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style mm3/switch3/coulgauss/long 12.0 10.0 3.0\npair_coeff 1 0.2 2.5 1.2\n```\n", - "html_filename": "pair_lj_switch3_coulgauss_long.html", - "short_description": "The *lj/switch3/coulgauss* style evaluates the LJ\nvdW potential\n\\[\n E = 4\\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12}-\\left(\\frac{\\sigma}{r}\\right)^{6} \\right]\\]\nThe *mm3/switch3/coulgauss/long* style evaluates the MM3\nvdW potential :ref:`(Allinger) `\n\\[\\begin{align*} \n E & = \\epsilon_{ij} \\left[ -2.25 \\left(\\frac{r_{v,ij}}{r_{ij}}\\right)^6 + 1.84(10)^5 \\exp\\left[-12.0 r_{ij}/r_{v,ij}\\right] \\right] S_3(r_{ij}) \\\\\n r_{v,ij} & = r_{v,i} + r_{v,j} \\\\\n \\epsilon_{ij} & = \\sqrt{\\epsilon_i \\epsilon_j} \\end{align*} \\]\nBoth potentials go smoothly to zero at the cutoff r_c as defined by the\nswitching function\n\\[.", - "description": "The *lj/switch3/coulgauss* style evaluates the LJ\nvdW potential\n\\[\n E = 4\\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12}-\\left(\\frac{\\sigma}{r}\\right)^{6} \\right]\\]\nThe *mm3/switch3/coulgauss/long* style evaluates the MM3\nvdW potential :ref:`(Allinger) `\n\\[\\begin{align*} \n E & = \\epsilon_{ij} \\left[ -2.25 \\left(\\frac{r_{v,ij}}{r_{ij}}\\right)^6 + 1.84(10)^5 \\exp\\left[-12.0 r_{ij}/r_{v,ij}\\right] \\right] S_3(r_{ij}) \\\\\n r_{v,ij} & = r_{v,i} + r_{v,j} \\\\\n \\epsilon_{ij} & = \\sqrt{\\epsilon_i \\epsilon_j} \\end{align*} \\]\nBoth potentials go smoothly to zero at the cutoff r_c as defined by the\nswitching function\n\\[.. math::\\]\n S_3(r) = \\left\\lbrace \\begin{array}{ll}\n 1 & \\quad\\mathrm{if}\\quad r < r_\\mathrm{c} - w \\\\\n 3x^2 - 2x^3 & \\quad\\mathrm{if}\\quad r < r_\\mathrm{c} \\quad\\mathrm{with\\quad} x=\\frac{r_\\mathrm{c} - r}{w} \\\\\n 0 & \\quad\\mathrm{if}\\quad r >= r_\\mathrm{c}\n \\end{array} \\right.\n\nwhere w is the width defined in the arguments. This potential\nis combined with Coulomb interaction between Gaussian charge densities:\n\\[\n E = \\frac{q_i q_j \\mathrm{erf}\\left( r/\\sqrt{\\gamma_1^2+\\gamma_2^2} \\right) }{\\epsilon r_{ij}}\\]\nwhere \\(q_i\\) and \\(q_j\\) are the charges on the two atoms,\n\\(\\epsilon\\) is the dielectric constant which can be set by the\n[dielectric ](https://docs.lammps.org/dielectric.html) command, \\(\\gamma_i\\) and\n\\(\\gamma_j\\) are the widths of the Gaussian charge distribution and\nerf() is the error-function. This style has to be used in conjunction\nwith the [kspace_style ](https://docs.lammps.org/kspace_style.html) command\n\nIf one cutoff is specified it is used for both the vdW and Coulomb\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the vdW terms, and the second is the cutoff for the Coulombic term.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n* \\(\\gamma\\) (distance)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/long pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nShifting the potential energy is not necessary because the switching\nfunction ensures that the potential is zero at the cut-off.\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\noptions since they can tabulate the short-range portion of the\nlong-range Coulombic interactions.\n\nThes pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the\nLennard-Jones portion of the energy and pressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n", - "restrictions": "These styles are part of the YAFF package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = drude/transform/direct or drude/transform/inverse \n", + "examples": "\n```lmps\nfix 3 all drude/transform/direct\nfix 1 all drude/transform/inverse\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "fix_drude_transform.html", + "short_description": "Transform the coordinates of Drude oscillators from real to reduced\nand back for thermalizing the Drude oscillators as described in\n**Lamoureux1** using a Nose-Hoover thermostat", + "description": "Transform the coordinates of Drude oscillators from real to reduced\nand back for thermalizing the Drude oscillators as described in\n**Lamoureux1** using a Nose-Hoover thermostat. This fix is\ndesigned to be used with the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html). Polarizable models in LAMMPS are described\non the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nDrude oscillators are a pair of atoms representing a single\npolarizable atom. Ideally, the mass of Drude particles would vanish\nand their positions would be determined self-consistently by iterative\nminimization of the energy, the cores' positions being fixed. It is\nhowever more efficient and it yields comparable results, if the Drude\noscillators (the motion of the Drude particle relative to the core)\nare thermalized at a low temperature. In that case, the Drude\nparticles need a small mass.\n\nThe thermostats act on the reduced degrees of freedom, which are\ndefined by the following equations. Note that in these equations\nupper case denotes atomic or center of mass values and lower case\ndenotes Drude particle or dipole values. Primes denote the transformed\n(reduced) values, while bare letters denote the original values.\n\nMasses:\n\\[\n M' = M + m\\]\n\\[\n m' = \\frac {M\\, m } {M'}\\]\nPositions:\n\\[\n X' = \\frac {M\\, X + m\\, x} {M'}\\]\n\\[\n x' = x - X\\]\nVelocities:\n\\[\n V' = \\frac {M\\, V + m\\, v} {M'}\\]\n\\[\n v' = v - V\\]\nForces:\n\\[\n F' = F + f\\]\n\\[\n f' = \\frac { M\\, f - m\\, F} {M'}\\]\nThis transform conserves the total kinetic energy\n\\[\n \\frac 1 2 \\, (M\\, V^2\\ + m\\, v^2)\n = \\frac 1 2 \\, (M'\\, V'^2\\ + m'\\, v'^2)\\]\nand the virial defined with absolute positions\n\\[\n X\\, F + x\\, f = X'\\, F' + x'\\, f'\\]\n----------\n\nThis fix requires each atom know whether it is a Drude particle or\nnot. You must therefore use the [fix drude ](https://docs.lammps.org/fix_drude.html) command to\nspecify the Drude status of each atom type.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >only the Drude core atoms need to be in the group specified for\n > this fix. A Drude electron will be transformed together with its core\n > even if it is not itself in the group. It is safe to include Drude\n > electrons or non-polarizable atoms in the group. The non-polarizable\n > atoms will simply not be transformed. \n > \n\n----------\n\nThis fix does NOT perform time integration. It only transform masses,\ncoordinates, velocities and forces. Thus you must use separate time\nintegration fixes, like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix npt ](https://docs.lammps.org/fix_nh.html) to actually update the velocities and positions of\natoms. In order to thermalize the reduced degrees of freedom at\ndifferent temperatures, two Nose-Hoover thermostats must be defined,\nacting on two distinct groups.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *fix drude/transform/direct* command must appear before any\n > Nose-Hoover thermostatting fixes. The *fix drude/transform/inverse*\n > command must appear after any Nose-Hoover thermostatting fixes. \n > \n\nExample:\n\n```lmps\nfix fDIRECT all drude/transform/direct\nfix fNVT gCORES nvt temp 300.0 300.0 100\nfix fNVT gDRUDES nvt temp 1.0 1.0 100\nfix fINVERSE all drude/transform/inverse\ncompute TDRUDE all temp/drude\nthermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]\n```\nIn this example, *gCORES* is the group of the atom cores and *gDRUDES*\nis the group of the Drude particles (electrons). The centers of mass\nof the Drude oscillators will be thermostatted at 300.0 and the\ninternal degrees of freedom will be thermostatted at 1.0. The\ntemperatures of cores and Drude particles, in center-of-mass and\nrelative coordinates, are calculated using [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n\nIn addition, if you want to use a barostat to simulate a system at\nconstant pressure, only one of the Nose-Hoover fixes must be *npt*,\nthe other one should be *nvt* . You must add a *compute temp/com* and a\n*fix_modify* command so that the temperature of the *npt* fix be just\nthat of its group (the Drude cores) but the pressure be the overall\npressure *thermo_press*.\n\nExample:\n\n```lmps\ncompute cTEMP_CORE gCORES temp/com\nfix fDIRECT all drude/transform/direct\nfix fNPT gCORES npt temp 298.0 298.0 100 iso 1.0 1.0 500\nfix_modify fNPT temp cTEMP_CORE press thermo_press\nfix fNVT gDRUDES nvt temp 5.0 5.0 100\nfix fINVERSE all drude/transform/inverse\n```\nIn this example, *gCORES* is the group of the atom cores and *gDRUDES*\nis the group of the Drude particles. The centers of mass of the Drude\noscillators will be thermostatted at 298.0 and the internal degrees of\nfreedom will be thermostatted at 5.0. The whole system will be\nbarostatted at 1.0.\n\nIn order to avoid the flying ice cube problem (irreversible transfer\nof linear momentum to the center of mass of the system), you may need\nto add a *fix momentum* command:\n\n```lmps\nfix fMOMENTUM all momentum 100 linear 1 1 1\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\n**(Lamoureux1)** Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003). \n ", + "restrictions": " none\n", + "related": "[fix drude ](https://docs.lammps.org/fix_drude.html),\n[fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" }, { "command": [ - "bond_style rheo/shell" + "fix_modify AtC mesh output" ], "syntax": [ - "bond_style rheo/shell keyword value attribute1 attribute2 ..." + "fix_modify mesh output " ], "args": [ [ { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "rheo/shell", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "", "type": 2, "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "attribute1", - "type": 2, + "arg": "output", + "type": 1, "choices": [] }, { - "arg": "attribute2", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* required keyword = t/form\n* optional keyword = store/local \n *        t/form value = formation time for a bond (time units) \n *        store/local values = fix_ID N attributes ... \n         * fix_ID = ID of associated internal fix to store data \n         * N = prepare data for output every this many timesteps \n         * attributes = zero or more of the below attributes may be appended \n         *id1, id2* = IDs of two atoms in the bond \n         time = the timestep the bond broke \n         *x, y, z* = the center of mass position of the two atoms when the bond broke (distance units) \n         *x/ref, y/ref, z/ref* = the initial center of mass position of the two atoms (distance units) \n", - "examples": "\n```lmps\nbond_style rheo/shell t/form 10.0\nbond_coeff 1 1.0 0.05 0.1\n```\n", - "html_filename": "bond_rheo_shell.html", - "short_description": "\nThe *rheo/shell* bond style is designed to work with\n[fix rheo/oxidation ](https://docs.lammps.org/fix_rheo_oxidation.html) which creates candidate\nbonds between eligible surface or near-surface particles", - "description": "\nThe *rheo/shell* bond style is designed to work with\n[fix rheo/oxidation ](https://docs.lammps.org/fix_rheo_oxidation.html) which creates candidate\nbonds between eligible surface or near-surface particles. When a bond\nis first created, it computes no forces and starts a timer. Forces are\nnot computed until the timer reaches the specified bond formation time,\n*t/form*, and the bond is enabled and applies forces. If the two particles\nmove outside of the maximum bond distance or move into the bulk before\nthe timer reaches *t/form*, the bond automatically deletes itself. This\ndeletion is not recorded as a broken bond in the optional *store/local* fix.\n\nBefore bonds are enabled, they are still treated as regular bonds by\nall other parts of LAMMPS. This means they are written to data files\nand counted in computes such as [nbond/atom ](https://docs.lammps.org/compute_nbond_atom.html).\nTo only count enabled bonds, use the *nbond/shell* attribute in\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html).\n\nWhen enabled, the bond then computes forces based on deviations from\nthe initial reference state of the two atoms much like a BPM style\nbond (as further discussed in the [BPM howto page ](https://docs.lammps.org/Howto_bpm.html)).\nThe reference state is stored by each bond when it is first enabled.\nData is then preserved across run commands and is written to\n[binary restart files ](https://docs.lammps.org/restart.html) such that restarting the system\nwill not reset the reference state of a bond or the timer.\n\nThis bond style is based on a model described in\n**rheo_clemmer**. The force has a magnitude of\n\\[\n F = 2 k (r - r_0) + \\frac{2 k}{r_0^2 \\epsilon_c^2} (r - r_0)^3\\]\nwhere \\(k\\) is a stiffness, \\(r\\) is the current distance\nand \\(r_0\\) is the initial distance between the two particles, and\n\\(\\epsilon_c\\) is maximum strain beyond which a bond breaks. This\nis done by setting the bond type to 0 such that forces are no longer\ncomputed.\n\nA damping force proportional to the difference in the normal velocity\nof particles is also applied to bonded particles:\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\ndisplacement normal vector, and \\(\\vec{v}\\) is the velocity difference\nbetween the two particles.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(k\\) (force/distance units)\n* \\(\\epsilon_c\\) (unit less)\n* \\(\\gamma\\) (force/velocity units)\n\nUnlike other BPM-style bonds, this bond style does not update special\nbond settings when bonds are created or deleted. This bond style also\ndoes not enforce specific [special_bonds ](https://docs.lammps.org/special_bonds.html) settings.\nThis behavior is purposeful such [RHEO pair ](https://docs.lammps.org/pair_rheo.html) forces\nand heat flows are still calculated.\n\nIf the *store/local* keyword is used, an internal fix will track bonds that\nbreak during the simulation. Whenever a bond breaks, data is processed\nand transferred to an internal fix labeled *fix_ID*. This allows the\nlocal data to be accessed by other LAMMPS commands. Following this optional\nkeyword, a list of one or more attributes is specified. These include the\nIDs of the two atoms in the bond. The other attributes for the two atoms\ninclude the timestep during which the bond broke and the current/initial\ncenter of mass position of the two atoms.\n\nData is continuously accumulated over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\nNote that when unbroken bonds are dumped to a file via the\n[dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 (broken bonds)\nare not included.\nThe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to\nquery the status of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n #### Restart and other info\n\nThis bond style writes the reference state of each bond to\n[binary restart files ](https://docs.lammps.org/restart.html). Loading a restart\nfile will properly restore bonds. However, the reference state is NOT\nwritten to data files. Therefore reading a data file will not\nrestore bonds and will cause their reference states to be redefined.\n\nIf the *store/local* option is used, an internal fix will calculate\na local vector or local array depending on the number of input values.\nThe length of the vector or number of rows in the array is the number\nof recorded, broken bonds. If a single input is specified, a local\nvector is produced. If two or more inputs are specified, a local array\nis produced where the number of columns = the number of inputs. The\nvector or array can be accessed by any command that uses local values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor an overview of LAMMPS output options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\nThe single() function of this bond style returns 0.0 for the energy\nof a bonded interaction, since energy is not conserved in these\ndissipative potentials. The single() function also calculates two\nextra bond quantities, the initial distance \\(r_0\\) and a time.\nThese extra quantities can be accessed by the\n[compute bond/local ](https://docs.lammps.org/compute_bond_local.html) command as *b1* and *b2* .\n\n**(rheo_clemmer)** Clemmer, Pierce, O'Connor, Nevins, Jones, Lechman, Tencer, Appl. Math. Model., 130, 310-326 (2024). \n ", - "restrictions": "This bond style is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [fix rheo/oxidation ](https://docs.lammps.org/fix_rheo_oxidation.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh output = name of the AtC sub-command\n* file_prefix = prefix of various generated output files \n", + "examples": "\n```lmps\nfix_modify AtC mesh output meshData\n```\n", + "html_filename": "atc_mesh_output.html", + "short_description": "Command to output mesh and associated data: nodesets, facesets, and\nelementsets", + "description": "Command to output mesh and associated data: nodesets, facesets, and\nelementsets. This data is only output once upon initialization since\ncurrently the mesh is static. Creates binary (EnSight, \"gold\" format)\noutput of mesh data.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "create_atoms" + "displace_atoms" ], "syntax": [ - "create_atoms type style args keyword values ..." + "displace_atoms group-ID style args keyword value ..." ], "args": [ [ { - "arg": "create_atoms", + "arg": "displace_atoms", "type": 1, "choices": [] }, { - "arg": "type", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "random", + "arg": "rotate", "type": 3, "choices": [ - "box", - "region", - "single", - "mesh", - "random" + "move", + "ramp", + "random", + "rotate" ] }, { @@ -5389,45 +5005,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "units", - "type": 3, - "choices": [ - "mol", - "basis", - "ratio", - "subset", - "remap", - "var", - "set", - "radscale", - "meshmode", - "rotate", - "overlap", - "maxtry", - "units" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* type = atom type (1-Ntypes or type label) of atoms to create (offset for molecule creation)\n* style = box or region or single or mesh or random \n *        box args = none \n *        region args = region-ID \n         region-ID = particles will only be created if contained in the region \n *        single args = x y z \n         x,y,z = coordinates of a single particle (distance units) \n *        mesh args = STL-file \n         STL-file = file with triangle mesh in STL format \n *        random args = N seed region-ID \n         N = number of particles to create \n         seed = random # seed (positive integer) \n         region-ID = create atoms within this region, use NULL for entire simulation box \n* zero or more keyword/value pairs may be appended\n* keyword = mol or basis or ratio or subset or remap or var or set or radscale or meshmode or rotate or overlap or maxtry or units \n *        mol values = template-ID seed \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n         seed = random # seed (positive integer) \n *        basis values = M itype \n         M = which basis atom \n         itype = atom type (1-Ntypes or type label) to assign to this basis atom \n *        ratio values = frac seed \n         frac = fraction of lattice sites (0 to 1) to populate randomly \n         seed = random # seed (positive integer) \n *        subset values = Nsubset seed \n         Nsubset = # of lattice sites to populate randomly \n         seed = random # seed (positive integer) \n *        remap value = yes or no \n *        var value = name = variable name to evaluate for test of atom creation \n *        set values = dim name \n         dim = x or y or z \n         name = name of variable to set with x, y, or z atom position \n *        radscale value = factor \n         factor = scale factor for setting atom radius \n *        meshmode values = mode arg \n         mode = bisect or qrand \n         bisect arg = radthresh \n         radthresh = threshold value for mesh to determine when to split triangles (distance units) \n         qrand arg = density \n         density = minimum number density for atoms place on mesh triangles (inverse distance squared units) \n *        rotate values = theta Rx Ry Rz \n         theta = rotation angle for single molecule (degrees) \n         Rx,Ry,Rz = rotation vector for single molecule \n *        overlap value = Doverlap \n         Doverlap = only insert if at least this distance from all existing atoms \n *        maxtry value = Ntry \n         Ntry = number of attempts to insert a particle before failure \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", - "examples": "\n```lmps\ncreate_atoms 1 box\n\nlabelmap atom 1 Pt\ncreate_atoms Pt box\n\nlabelmap atom 1 C 2 Si\ncreate_atoms C region regsphere basis Si C\n\ncreate_atoms 3 region regsphere basis 2 3\ncreate_atoms 3 region regsphere basis 2 3 ratio 0.5 74637\ncreate_atoms 3 single 0 0 5\ncreate_atoms 1 box var v set x xpos set y ypos\ncreate_atoms 2 random 50 12345 NULL overlap 2.0 maxtry 50\ncreate_atoms 1 mesh open_box.stl meshmode qrand 0.1 units box\ncreate_atoms 1 mesh funnel.stl meshmode bisect 4.0 units box radscale 0.9\n```\n", - "html_filename": "create_atoms.html", - "short_description": "This command creates atoms (or molecules) within the simulation box,\neither on a lattice, or at random points, or on a surface defined by a\ntriangulated mesh", - "description": "This command creates atoms (or molecules) within the simulation box,\neither on a lattice, or at random points, or on a surface defined by a\ntriangulated mesh. Or it creates a single atom (or molecule) at a\nspecified point. It is an alternative to reading in atom coordinates\nexplicitly via a [read_data ](https://docs.lammps.org/read_data.html) or [read_restart](https://docs.lammps.org/read_restart.html) command.\n\nTo use this command a simulation box must already exist, which is\ntypically created via the [create_box ](https://docs.lammps.org/create_box.html) command.\nBefore using this command, a lattice must typically also be defined\nusing the [lattice ](https://docs.lammps.org/lattice.html) command, unless you specify the\n*single* or *mesh* style with units = box or the *random* style. To\ncreate atoms on a lattice for general triclinic boxes, see the\ndiscussion below.\n\nFor the remainder of this doc page, a created atom or molecule is\nreferred to as a \"particle\".\n\nIf created particles are individual atoms, they are assigned the\nspecified atom *type*, though this can be altered via the *basis*\nkeyword as discussed below. If molecules are being created, the type\nof each atom in the created molecule is specified in a specified file\nread by the [molecule ](https://docs.lammps.org/molecule.html) command, and those values are\nadded to the specified atom *type* (e.g., if *type* = 2 and the file\nspecifies atom types 1, 2, and 3, then each created molecule will have\natom types 3, 4, and 5).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You cannot use this command to create atoms that are outside the\n > simulation box; they will just be ignored by LAMMPS. This is true\n > even if you are using shrink-wrapped box boundaries, as specified\n > by the [boundary ](https://docs.lammps.org/boundary.html) command. However, you can first\n > use the [change_box ](https://docs.lammps.org/change_box.html) command to temporarily\n > expand the box, then add atoms via create_atoms, then finally use\n > change_box command again if needed to re-shrink-wrap the new atoms.\n > See the [change_box ](https://docs.lammps.org/change_box.html) doc page for an example of\n > how to do this, using the create_atoms *single* style to insert a\n > new atom outside the current simulation box. \n > \n\n----------\n\nFor the *box* style, the create_atoms command fills the entire\nsimulation box with particles on the lattice. If your simulation box\nis periodic, you should ensure its size is a multiple of the lattice\nspacings, to avoid unwanted atom overlaps at the box boundaries. If\nyour box is periodic and a multiple of the lattice spacing in a\nparticular dimension, LAMMPS is careful to put exactly one particle at\nthe boundary (on either side of the box), not zero or two.\n\nFor the *region* style, a geometric volume is filled with particles on\nthe lattice. This volume is what is both inside the simulation box\nand also consistent with the region volume. See the [region](https://docs.lammps.org/region.html) command for details. Note that a region can be specified so\nthat its \"volume\" is either inside or outside its geometric boundary.\nAlso note that if a region is the same size as a periodic simulation\nbox (in some dimension), LAMMPS does NOT implement the same logic\ndescribed above for the *box* style, to ensure exactly one particle at\nperiodic boundaries. If this is desired, you should either use the\n*box* style, or tweak the region size to get precisely the particles\nyou want.\n\n----------\n\nIf the simulation box is formulated as a general triclinic box defined\nby arbitrary edge vectors **A**, **B**, **C**, then the *box* and\n*region* styles will create atoms on a lattice commensurate with those\nedge vectors. See the [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc\npage for a detailed explanation of orthogonal, restricted triclinic,\nand general triclinic simulation boxes. As with the [create_box](https://docs.lammps.org/create_box.html) command, the [lattice ](https://docs.lammps.org/lattice.html) command used by\nthis command must be of style *custom* and use its *triclinic/general*\noption. The *a1, *a2*, *a3* settings of the [lattice ](https://docs.lammps.org/lattice.html)\ncommand define the edge vectors of a unit cell of the general\ntriclinic lattice. The [create_box ](https://docs.lammps.org/create_box.html) command creates\na simulation box which replicates that unit cell along each of the\n**A**, **B**, **C** edge vectors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box created by the [create_box ](https://docs.lammps.org/create_box.html) command as\n > well as the atoms created by this command with their per-atom\n > information (e.g. coordinates, velocities) are converted (rotated)\n > from general to restricted triclinic form when the two commands are\n > invoked. The [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page also\n > discusses other LAMMPS commands which can input/output general\n > triclinic representations of the simulation box and per-atom data. \n > \n\nThe *box* style will fill the entire general triclinic box with\nparticles on the lattice, as explained above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *region* style also operates as explained above, but the check\n > for particles inside the region is performed *after* the particle\n > coordinates have been converted to the restricted triclinic box.\n > This means the region must also be defined with respect to the\n > restricted triclinic box, not the general triclinic box. \n > \n\nIf the simulation box is general triclinic, the *single*, *random*,\nand *mesh* styles described next operate on the box *after* it has\nbeen converted to restricted triclinic. So all the settings for those\nstyles should be made in that context.\n\n----------\n\nFor the *single* style, a single particle is added to the system at\nthe specified coordinates. This can be useful for debugging purposes\nor to create a tiny system with a handful of particles at specified\npositions. For a 2d simulation the specified z coordinate must be\n0.0.\n\nThe *porosity* style has been renamed to *random* with added functionality.\n\nFor the *random* style, *N* particles are added to the system at\nrandomly generated coordinates, which can be useful for generating an\namorphous system. For 2d simulations, the z coordinates of all added\natoms will be 0.0.\n\nThe particles are created one by one using the specified random number\n*seed*, resulting in the same set of particle coordinates, independent\nof how many processors are being used in the simulation. Unless the\n*overlap* keyword is specified, particles created by the *random*\nstyle will typically be highly overlapped. Various additional\ncriteria can be used to accept or reject a random particle insertion;\nsee the keyword discussion below. Multiple attempts per particle are\nmade (see the *maxtry* keyword) until the insertion is either\nsuccessful or fails. If this command fails to add all requested *N*\nparticles, a warning will be output.\n\nIf the *region-ID* argument is specified as NULL, then the randomly\ncreated particles will be anywhere in the simulation box. If a\n*region-ID* is specified, a geometric volume is filled that is both\ninside the simulation box and is also consistent with the region\nvolume. See the [region ](https://docs.lammps.org/region.html) command for details. Note\nthat a region can be specified so that its \"volume\" is either inside\nor outside its geometric boundary.\n\nNote that the create_atoms command adds particles to those that\nalready exist. This means it can be used to add particles to a system\npreviously read in from a data or restart file. Or the create_atoms\ncommand can be used multiple times, to add multiple sets of particles\nto the simulation. For example, grain boundaries can be created, by\ninterleaving the create_atoms command with [lattice ](https://docs.lammps.org/lattice.html)\ncommands specifying different orientations.\n\nWhen this command is used, care should be taken to ensure the\nresulting system does not contain particles that are highly\noverlapped. Such overlaps will cause many interatomic potentials to\ncompute huge energies and forces, leading to bad dynamics. There are\nseveral strategies to avoid this problem:\n\n* Use the [delete_atoms overlap ](https://docs.lammps.org/delete_atoms.html) command after\n create_atoms. For example, this strategy can be used to overlay and\n surround a large protein molecule with a volume of water molecules,\n then delete water molecules that overlap with the protein atoms.\n\n* For the *random* style, use the optional *overlap* keyword to avoid\n overlaps when each new particle is created.\n\n* Before running dynamics on an overlapped system, perform an\n [energy minimization ](https://docs.lammps.org/minimize.html). Or run initial dynamics with\n [pair_style soft ](https://docs.lammps.org/pair_soft.html) or with [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html) to un-overlap the particles, before running normal\n dynamics.\n\n ![Image](img/marble_race.jpg) \n\n\nFor the *mesh* style, a file with a triangle mesh in [STL format](https://en.wikipedia.org/wiki/STL_(file_format)) is read and one or\nmore particles are placed into the area of each triangle. The reader\nsupports both ASCII and binary files conforming to the format on the\nWikipedia page. Binary STL files (e.g. as frequently offered for\n3d-printing) can also be first converted to ASCII for editing with the\n:ref:`stl_bin2txt tool `. The use of the *units box* option\nis required. There are two algorithms available for placing atoms:\n*bisect* and *qrand*. They can be selected via the *meshmode* option;\n*bisect* is the default. If the atom style allows it, the radius will\nbe set to a value depending on the algorithm and the value of the\n*radscale* parameter (see below), and the atoms created from the mesh\nare assigned a new molecule ID.\n\nIn *bisect* mode a particle is created at the center of each triangle\nunless the average distance of the triangle vertices from its center is\nlarger than the *radthresh* value (default is lattice spacing in\nx-direction). In case the average distance is over the threshold, the\ntriangle is recursively split into two halves along the the longest side\nuntil the threshold is reached. There will be at least one sphere per\ntriangle. The value of *radthresh* is set as an argument to *meshmode\nbisect*. The average distance of the vertices from the center is also\nused to set the radius.\n\nIn *qrand* mode a quasi-random sequence is used to distribute particles\non mesh triangles using an approach by **Roberts2019**.\nParticles are added to the triangle until the minimum number density is\nmet or exceeded such that every triangle will have at least one\nparticle. The minimum number density is set as an argument to the\n*qrand* option. The radius will be set so that the sum of the area of\nthe radius of the particles created in place of a triangle will be equal\nto the area of that triangle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The atom placement algorithms in the *mesh* style benefit from meshes\n > where triangles are close to equilateral. It is therefore\n > recommended to pre-process STL files to optimize the mesh\n > accordingly. There are multiple open source and commercial software\n > tools available with the capability to generate optimized meshes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In most cases the atoms created in *mesh* style will become an\n > immobile or rigid object that would not be time integrated or moved\n > by [fix move ](https://docs.lammps.org/fix_move.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). For\n > computational efficiency *and* to avoid undesired contributions to\n > pressure and potential energy due to close contacts, it is usually\n > beneficial to exclude computing interactions between the created\n > particles using [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html). \n > \n\n----------\n\nIndividual atoms are inserted by this command, unless the *mol*\nkeyword is used. It specifies a *template-ID* previously defined\nusing the [molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that\ndefines the molecule. The coordinates, atom types, charges, etc, as\nwell as any bond/angle/etc and special neighbor information for the\nmolecule can be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in this file are the coordinates and types of atoms in\nthe molecule.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are using the *mol* keyword in combination with the\n > [atom style template ](https://docs.lammps.org/atom_style.html) command, they must use\n > the same molecule template-ID. \n > \n\nUsing a lattice to add molecules, e.g. via the *box* or *region* or\n*single* styles, is exactly the same as adding atoms on lattice\npoints, except that entire molecules are added at each point, i.e. on\nthe point defined by each basis atom in the unit cell as it tiles the\nsimulation box or region. This is done by placing the geometric\ncenter of the molecule at the lattice point, and (by default) giving\nthe molecule a random orientation about the point. The random *seed*\nspecified with the *mol* keyword is used for this operation, and the\nrandom numbers generated by each processor are different. This means\nthe coordinates of individual atoms (in the molecules) will be\ndifferent when running on different numbers of processors, unlike when\natoms are being created in parallel.\n\nNote that with random rotations, it may be important to use a lattice\nwith a large enough spacing that adjacent molecules will not overlap,\nregardless of their relative orientations. See the description of the\n*rotate* keyword below, which overrides the default random orientation\nand inserts all molecules at a specified orientation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the [create_box ](https://docs.lammps.org/create_box.html) command is used to create\n > the simulation box, followed by the create_atoms command with its\n > *mol* option for adding molecules, then you typically need to use the\n > optional keywords allowed by the [create_box ](https://docs.lammps.org/create_box.html) command\n > for extra bonds (angles,etc) or extra special neighbors. This is\n > because by default, the [create_box ](https://docs.lammps.org/create_box.html) command sets up a\n > non-molecular system that does not allow molecules to be added. \n > \n\n----------\n\nThis is the meaning of the other optional keywords.\n\nThe *basis* keyword is only used when atoms (not molecules) are being\ncreated. It specifies an atom type that will be assigned to specific\nbasis atoms as they are created. See the [lattice ](https://docs.lammps.org/lattice.html)\ncommand for specifics on how basis atoms are defined for the unit cell\nof the lattice. By default, all created atoms are assigned the\nargument *type* as their atom type.\n\nThe *ratio* and *subset* keywords can be used in conjunction with the\n*box* or *region* styles to limit the total number of particles\ninserted. The lattice defines a set of *Nlatt* eligible sites for\ninserting particles, which may be limited by the *region* style or the\n*var* and *set* keywords. For the *ratio* keyword, only the specified\nfraction of them (\\(0 \\le f \\le 1\\)) will be assigned particles.\nFor the *subset* keyword only the specified *Nsubset* of them will be\nassigned particles. In both cases the assigned lattice sites are\nchosen randomly. An iterative algorithm is used that ensures the\ncorrect number of particles are inserted, in a perfectly random\nfashion. Which lattice sites are selected will change with the number\nof processors used.\n\nThe *remap* keyword only applies to the *single* style. If it is set\nto *yes*, then if the specified position is outside the simulation\nbox, it will mapped back into the box, assuming the relevant\ndimensions are periodic. If it is set to *no*, no remapping is done\nand no particle is created if its position is outside the box.\n\nThe *var* and *set* keywords can be used together to provide a\ncriterion for accepting or rejecting the addition of an individual\natom, based on its coordinates. They apply to all styles except\n*single*. The *name* specified for the *var* keyword is the name of\nan [equal-style variable ](https://docs.lammps.org/variable.html) that should evaluate to a\nzero or non-zero value based on one or two or three variables that\nwill store the *x*, *y*, or *z* coordinates of an atom (one variable per\ncoordinate). If used, these other variables must be\n[internal-style variables ](https://docs.lammps.org/variable.html) defined in the input\nscript; their initial numeric value can be anything. They must be\ninternal-style variables, because this command resets their values\ndirectly. The *set* keyword is used to identify the names of these\nother variables, one variable for the *x*-coordinate of a created atom,\none for *y*, and one for *z*.\n\n ![Image](img/sinusoid.jpg) \n\nWhen an atom is created, its \\((x,y,z)\\) coordinates become the values for\nany *set* variable that is defined. The *var* variable is then\nevaluated. If the returned value is 0.0, the atom is not created. If\nit is non-zero, the atom is created.\n\nAs an example, these commands can be used in a 2d simulation, to\ncreate a sinusoidal surface. Note that the surface is \"rough\" due to\nindividual lattice points being \"above\" or \"below\" the mathematical\nexpression for the sinusoidal curve. If a finer lattice were used,\nthe sinusoid would appear to be \"smoother\". Also note the use of the\n\"xlat\" and \"ylat\" [thermo_style ](https://docs.lammps.org/thermo_style.html) keywords, which\nconverts lattice spacings to distance.\n(Click on the image for a larger version)\n\n\n```lmps\ndimension 2\nvariable x equal 100\nvariable y equal 25\nlattice hex 0.8442\nregion box block 0 $x 0 $y -0.5 0.5\ncreate_box 1 box\n\nvariable xx internal 0.0\nvariable yy internal 0.0\nvariable v equal \"(0.2*v_y*ylat * cos(v_xx/xlat * 2.0*PI*4.0/v_x) + 0.5*v_y*ylat - v_yy) > 0.0\"\ncreate_atoms 1 box var v set x xx set y yy\nwrite_dump all atom sinusoid.lammpstrj\n```\n-----\n\nThe *rotate* keyword allows specification of the orientation\nat which molecules are inserted. The axis of rotation is\ndetermined by the rotation vector \\((R_x,R_y,R_z)\\) that goes through the\ninsertion point. The specified *theta* determines the angle of\nrotation around that axis. Note that the direction of rotation for\nthe atoms around the rotation axis is consistent with the right-hand\nrule: if your right-hand's thumb points along *R*, then your fingers\nwrap around the axis in the direction of rotation.\n\nThe *radscale* keyword only applies to the *mesh* style and adjusts the\nradius of created particles (see above), provided this is supported by\nthe atom style. Its value is a prefactor (must be \\(>\\) 0.0, default is\n1.0) that is applied to the atom radius inferred from the size of the\nindividual triangles in the triangle mesh that the particle corresponds\nto.\n\nThe *overlap* keyword only applies to the *random* style. It prevents\nnewly created particles from being created closer than the specified\n*Doverlap* distance from any other particle. If particles have finite\nsize (see [atom_style sphere ](https://docs.lammps.org/atom_style.html) for example) *Doverlap*\nshould be specified large enough to include the particle size in the\nnon-overlapping criterion. If molecules are being randomly inserted, then\nan insertion is only accepted if each particle in the molecule meets the\noverlap criterion with respect to other particles (not including particles\nin the molecule itself).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Checking for overlaps is a costly \\(\\mathcal{O}(N(N+M))\\) operation for\n > inserting *N* new particles into a system with *M* existing particles.\n > This is because distances to all *M* existing particles are computed for\n > each new particle that is added. Thus the intended use of this\n > keyword is to add relatively small numbers of particles to systems\n > that remain at a relatively low density even after the new\n > particles are created. Careful use of the *maxtry* keyword in\n > combination with *overlap* is recommended. See the discussion\n > above about systems with overlapped particles for alternate\n > strategies that allow for overlapped insertions. \n > \n\n\nThe *maxtry* keyword only applies to the *random* style. It limits\nthe number of attempts to generate valid coordinates for a single new\nparticle that satisfy all requirements imposed by the *region*, *var*,\nand *overlap* keywords. The default is 10 attempts per particle\nbefore the loop over the requested *N* particles advances to the next\nparticle. Note that if insertion success is unlikely (e.g., inserting\nnew particles into a dense system using the *overlap* keyword),\nsetting the *maxtry* keyword to a large value may result in this\ncommand running for a long time.\n\n ![Image](img/overlap.png) \n\nHere is an example for the *random* style using these commands\n\n```lmps\nunits lj\ndimension 2\nregion box block 0 50 0 50 -0.5 0.5\ncreate_box 1 box\ncreate_atoms 1 random 2000 13487 NULL overlap 1.0 maxtry 50\npair_style lj/cut 2.5\npair_coeff 1 1 1.0 1.0 2.5\n```\nto produce a system as shown in the image with 1520 particles (out of\n2000 requested) that are moderately dense and which have no overlaps\nsufficient to prevent the LJ pair_style from running properly (because\nthe overlap criterion is 1.0). The create_atoms command ran for 0.3 s\non a single CPU core.\n(Click on the image for a larger version)\n\n-----\n\nThe *units* keyword determines the meaning of the distance units used\nby parameters for various styles. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command (e.g.,\n\\(\\mathring{\\textrm{A}}\\) for units = *real* or *metal* . A *lattice* value means\nthe distance units are in lattice spacings. These are affected settings:\n\n* for *single* style: coordinates of the particle created\n* for *random* style: overlap distance *Doverlap* by the *overlap* keyword\n* for *mesh* style: *bisect* threshold value for *meshmode* = *bisect*\n* for *mesh* style: *radthresh* value for *meshmode* = *bisect*\n* for *mesh* style: *density* value for *meshmode* = *qrand*\n\nSince *density* represents an area (distance ^2), the lattice spacing\nfactor is also squared.\n\n----------\n\nAtom IDs are assigned to created atoms in the following way. The\ncollection of created atoms are assigned consecutive IDs that start\nimmediately following the largest atom ID existing before the\ncreate_atoms command was invoked. This is done by the processor's\ncommunicating the number of atoms they each own, the first processor\nnumbering its atoms from \\(1\\) to \\(N_1\\), the second processor from\n\\(N_1+1\\) to \\(N_2\\), and so on, where \\(N_1\\) is the number of\natoms owned by the first processor, \\(N_2\\) is the number owned by the\nsecond processor, and so forth. Thus, when the same simulation is performed on\ndifferent numbers of processors, there is no guarantee a particular created\natom will be assigned the same ID in both simulations. If molecules are being\ncreated, molecule IDs are assigned to created molecules in a similar fashion.\n\nAside from their ID, atom type, and \\(xyz\\) position, other properties of\ncreated atoms are set to default values, depending on which quantities\nare defined by the chosen [atom style ](https://docs.lammps.org/atom_style.html). See the\n[atom style ](https://docs.lammps.org/atom_style.html) command for more details. See the\n[set ](https://docs.lammps.org/set.html) and [velocity ](https://docs.lammps.org/velocity.html) commands for info on\nhow to change these values.\n\n* charge = 0.0\n* dipole moment magnitude = 0.0\n* diameter = 1.0\n* shape = 0.0 0.0 0.0\n* density = 1.0\n* volume = 1.0\n* velocity = 0.0 0.0 0.0\n* angular velocity = 0.0 0.0 0.0\n* angular momentum = 0.0 0.0 0.0\n* quaternion = (1,0,0,0)\n* bonds, angles, dihedrals, impropers = none\n\nIf molecules are being created, these defaults can be overridden by\nvalues specified in the file read by the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. That is, the file typically defines bonds (angles, etc.) between\natoms in the molecule, and can optionally define charges on each atom.\n\nNote that the *sphere* atom style sets the default particle diameter to\n1.0 as well as the density. This means the mass for the particle is not\n1.0, but is \\(\\frac{\\pi}{6} d^3 = 0.5236\\), where \\(d\\) is the\ndiameter. When using the *mesh* style, the particle diameter is adjusted from\nthe size of the individual triangles in the triangle mesh.\n\nNote that the *ellipsoid* atom style sets the default particle shape\nto (0.0 0.0 0.0) and the density to 1.0, which means it is a point\nparticle, not an ellipsoid, and has a mass of 1.0.\n\nNote that the *peri* style sets the default volume and density to 1.0\nand thus also set the mass for the particle to 1.0.\n\nThe [set ](https://docs.lammps.org/set.html) command can be used to override many of these\ndefault settings.\n\n----------\n\n**(Roberts2019)** R. Roberts (2019) \"Evenly Distributing Points in a Triangle.\" Extreme Learning. ``_ \n ", - "restrictions": "An [atom_style ](https://docs.lammps.org/atom_style.html) must be previously defined to use this\ncommand.\n\nA rotation vector specified for a single molecule must be in\nthe z-direction for a 2d model.\n\nFor [molecule templates ](https://docs.lammps.org/molecule.html) that are created from multiple\nfiles, i.e. contain multiple molecule *sets*, only the first set is\nused. To create multiple molecules the files currently need to be\nmerged and different molecule IDs assigned with a Molecules section.\n", - "related": "[lattice ](https://docs.lammps.org/lattice.html), [region ](https://docs.lammps.org/region.html),\n[create_box ](https://docs.lammps.org/create_box.html), [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html)\n" + "parameters": "* group-ID = ID of group of atoms to displace\n* style = move or ramp or random or rotate \n *        move args = delx dely delz \n         delx,dely,delz = distance to displace in each dimension (distance units) \n         any of delx,dely,delz can be a variable (see below) \n *        ramp args = ddim dlo dhi dim clo chi \n         ddim = x or y or z \n         dlo,dhi = displacement distance between dlo and dhi (distance units) \n         dim = x or y or z \n         clo,chi = lower and upper bound of domain to displace (distance units) \n *        random args = dx dy dz seed \n         dx,dy,dz = random displacement magnitude in each dimension (distance units) \n         seed = random # seed (positive integer) \n *        rotate args = Px Py Pz Rx Ry Rz theta \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         theta = angle of rotation (degrees) \n* zero or more keyword/value pairs may be appended \n *        keyword = units \n         units value = box or lattice \n", + "examples": "\n```lmps\ndisplace_atoms top move 0 -5 0 units box\ndisplace_atoms flow ramp x 0.0 5.0 y 2.0 20.5\n```\n", + "html_filename": "displace_atoms.html", + "short_description": "Displace a group of atoms", + "description": "Displace a group of atoms. This can be used to move atoms a large\ndistance before beginning a simulation or to randomize atoms initially\non a lattice. For example, in a shear simulation, an initial strain\ncan be imposed on the system. Or two groups of atoms can be brought\ninto closer proximity.\n\nThe *move* style displaces the group of atoms by the specified 3d\ndisplacement vector. Any of the three quantities defining the vector\ncomponents can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case,\nthe variable will be evaluated, and its value(s) used for the\ndisplacement(s). The scale factor implied by the *units* keyword will\nalso be applied to the variable result.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Atom-style variables can specify the same formulas as\nequal-style variables but can also include per-atom values, such as\natom coordinates or per-atom values read from a file. Note that if\nthe variable references other [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html)\ncommands, those values must be up-to-date for the current timestep.\nSee the \"Variable Accuracy\" section of the [variable ](https://docs.lammps.org/variable.html)\ndoc page for more details.\n\nThe *ramp* style displaces atoms a variable amount in one dimension\ndepending on the atom's coordinate in a (possibly) different\ndimension. For example, the second example command displaces atoms in\nthe *x* -direction an amount between 0.0 and 5.0 distance units. Each\natom's displacement depends on the fractional distance its *y*\ncoordinate is between 2.0 and 20.5. Atoms with *y* -coordinates outside\nthose bounds will be moved the minimum (0.0) or maximum (5.0) amount.\n\nThe *random* style independently moves each atom in the group by a\nrandom displacement, uniformly sampled from a value between \\(-dx\\) and\n\\(+dx\\) in the *x* dimension, and similarly for *y* and *z*.\nRandom numbers are used in such a way that the displacement of a particular\natom is the same, regardless of how many processors are being used.\n\nThe *rotate* style rotates each atom in the group by the angle *theta*\naround a rotation axis \\(R = (R_x,R_y,R_z)\\) that goes through a point\n\\(P = (P_x,P_y,P_z)\\). The direction of rotation for the atoms around the\nrotation axis is consistent with the right-hand rule: if your\nright-hand thumb points along *R*, then your fingers wrap around the\naxis in the direction of positive theta.\n\nIf the defined [atom_style ](https://docs.lammps.org/atom_style.html) assigns an orientation to\neach atom ([atom styles ](https://docs.lammps.org/atom_style.html) ellipsoid, line, tri, body),\nthen that property is also updated appropriately to correspond to the\natom's rotation.\n\nDistance units for displacements and the origin point of the *rotate*\nstyle are determined by the setting of *box* or *lattice* for the\n*units* keyword. *Box* means distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\) for\n*real* or *metal* units). *Lattice* means distance units are in lattice\nspacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used\nto define the lattice spacing.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care should be taken not to move atoms on top of other atoms.\n > After the move, atoms are remapped into the periodic simulation box if\n > needed, and any shrink-wrap boundary conditions (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command) are enforced which may change the\n > box size. Other than this effect, this command does not change the\n > size or shape of the simulation box. See the\n > [change_box ](https://docs.lammps.org/change_box.html) command if that effect is desired. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atoms can be moved arbitrarily long distances by this command.\n > If the simulation box is non-periodic and shrink-wrapped (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command), this can change its size or shape.\n > This is not a problem, except that the mapping of processors to the\n > simulation box is not changed by this command from its initial 3d\n > configuration; see the [processors ](https://docs.lammps.org/processors.html) command. Thus, if\n > the box size/shape changes dramatically, the mapping of processors to\n > the simulation box may not end up as optimal as the initial mapping\n > attempted to be. \n > \n\n----------\n", + "restrictions": "For a 2d simulation, only rotations around the a vector parallel to\nthe \\(z\\)-axis are allowed.\n", + "related": "[lattice ](https://docs.lammps.org/lattice.html), [change_box ](https://docs.lammps.org/change_box.html),\n[fix move ](https://docs.lammps.org/fix_move.html)\n" }, { "command": [ - "compute stress/cartesian" + "compute improper/local" ], "syntax": [ - "compute ID group-ID stress/cartesian args" + "compute ID group-ID improper/local value1 value2 ..." ], "args": [ [ @@ -5447,109 +5049,98 @@ export const command_docs = [ "choices": [] }, { - "arg": "stress/cartesian", + "arg": "improper/local", "type": 1, "choices": [] }, { - "arg": "args", + "arg": "value1", + "type": 2, + "choices": [] + }, + { + "arg": "value2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* args = argument specific to the compute style \n *   *stress/cartesian* args = dim1 bin_width1 dim2 bin_width2 keyword \n    dim1 = x or y or z \n    bin_width1 = width of the bin \n    dim2 = x or y or z or NULL \n    bin_width2 = width of the bin \n    keyword = ke or pair or bond \n", - "examples": "\n```lmps\ncompute 1 all stress/cartesian x 0.1 NULL 0\ncompute 1 all stress/cartesian y 0.1 z 0.1\ncompute 1 all stress/cartesian x 0.1 NULL 0 ke pair\n```\n", - "html_filename": "compute_stress_cartesian.html", - "short_description": "Compute *stress/cartesian* defines computations that calculate profiles of the\ndiagonal components of the local stress tensor over one or two Cartesian\ndimensions, as described in **Ikeshoji2**", - "description": "Compute *stress/cartesian* defines computations that calculate profiles of the\ndiagonal components of the local stress tensor over one or two Cartesian\ndimensions, as described in **Ikeshoji2**. The stress tensor is\nsplit into a kinetic contribution \\(P^k\\) and a virial contribution\n\\(P^v\\). The sum gives the total stress tensor \\(P = P^k+P^v\\).\nThis compute obeys momentum balance through fluid interfaces. They use the\nIrving--Kirkwood contour, which is the straight line between particle pairs.\n\n **New in version 15Jun2023** \n\n Added support for bond styles\nThis compute only supports pair and bond (no angle, dihedral, improper,\nor kspace) forces. By default, if no extra keywords are specified, all\nsupported contributions to the stress are included (ke, pair, bond). If any\nkeywords are specified, then only those components are summed.\n\n #### Output info\n\nThe output columns for *stress/cartesian* are the position of the\ncenter of the local volume in the first and second dimensions, number\ndensity, \\(P^k_{xx}\\), \\(P^k_{yy}\\), \\(P^k_{zz}\\),\n\\(P^v_{xx}\\), \\(P^v_{yy}\\), and \\(P^v_{zz}\\). There are 8\ncolumns when one dimension is specified and 9 columns when two\ndimensions are specified. The number of bins (rows) is\n\\((L_1/b_1)(L_2/b_2)\\), where \\(L_1\\) and \\(L_2\\) are the lengths\nof the simulation box in the specified dimensions and \\(b_1\\) and\n\\(b_2\\) are the specified bin widths. When only one dimension is\nspecified, the number of bins (rows) is \\(L_1/b_1\\).\n\nThis array can be output with [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n\n```lmps\ncompute p all stress/cartesian x 0.1\nfix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector\n```\nThe values calculated by this compute are \"intensive\". The stress\nvalues will be in pressure [units ](https://docs.lammps.org/units.html). The number density\nvalues are in inverse volume [units ](https://docs.lammps.org/units.html).\n\nNOTE 1: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the\n[pair_modify tail yes ](https://docs.lammps.org/pair_modify.html)\ncommand, since those are contributions to the global system pressure.\n\nNOTE 2: The local stress profiles generated by these computes are\nsimilar to those obtained by the\n[method-of-planes (MOP) ](https://docs.lammps.org/compute_stress_mop.html).\nA key difference is that compute\n[stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html)\nconsiders particles crossing a set of planes, while\n*stress/cartesian* computes averages for a set of small volumes.\nMoreover, this compute computes the diagonal components of the stress\ntensor \\(P_{xx}\\), \\(P_{yy}\\), and \\(P_{zz}\\), while\n*stress/mop/profile* computes the components\n\\(P_{ix}\\), \\(P_{iy}\\), and \\(P_{iz}\\), where \\(i\\) is the\ndirection normal to the plane.\n\nMore information on the similarities and differences can be found in\n**Ikeshoji2**.\n\n**(Ikeshoji2)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003). \n ", - "restrictions": "These computes calculate the stress tensor contributions for pair and bond\nforces only (no angle, dihedral, improper, or kspace force).\nIt requires pairwise force calculations not available for most\nmany-body pair styles.\n\nThese computes are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html), [compute stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html),\n[compute stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html)\n\n----------\n\n.. _Ikeshoji2:\n\n**(Ikeshoji)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003).\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* improper/local = style name of this compute command\n* one or more values may be appended\n* value = chi \n *        chi = tabulate improper angles \n", + "examples": "\n```lmps\ncompute 1 all improper/local chi\n```\n", + "html_filename": "compute_improper_local.html", + "short_description": "Define a computation that calculates properties of individual improper\ninteractions", + "description": "Define a computation that calculates properties of individual improper\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of impropers in the system, modified by\nthe group parameter as explained below.\n\nThe value *chi* is the improper angle, as defined in the doc pages for\nthe individual improper styles listed on\n[improper_style ](https://docs.lammps.org/improper_style.html) doc page.\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their impropers. An improper will\nonly be included if all four atoms in the improper are in the specified\ncompute group.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, improper output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local itype iatom1 iatom2 iatom3 iatom4\ncompute 2 all improper/local chi\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_2[1]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of impropers. If a single keyword is specified, a\nlocal vector is produced. If two or more keywords are specified, a\nlocal array is produced where the number of columns = the number of\nkeywords. The vector or array can be accessed by any command that\nuses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *chi* will be in degrees.\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" }, { "command": [ - "pair_style lj/expand/sphere" + "fix bond/react" ], "syntax": [ - "pair_style style args" + "fix ID group-ID bond/react common_keyword values &" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style = lj/expand/sphere\n* args = list of arguments for a particular style \n *      lj/expand/sphere args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/expand/sphere 2.5\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.1 0.4 2.8\n```\n", - "html_filename": "pair_lj_expand_sphere.html", - "short_description": "\nThe *lj/expand/sphere* style compute a 12/6 Lennard-Jones potential with\na distance shifted by \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\), the\naverage diameter of both atoms", - "description": "\nThe *lj/expand/sphere* style compute a 12/6 Lennard-Jones potential with\na distance shifted by \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\), the\naverage diameter of both atoms. This can be used to model particles of\ndifferent sizes but same interactions, which is different from using\ndifferent sigma values as in [pair style lj/cut/sphere](https://docs.lammps.org/pair_lj_cut_sphere.html).\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the distance \\(\\Delta\\).\nI.e. the actual force cutoff is the sum \\(r_c + \\Delta\\).\n\nThis is the same potential function used by the [lj/expand](https://docs.lammps.org/pair_lj.html) pair style, but the \\(\\Delta\\) parameter is not\nset as a per-type parameter via the [pair_coeff command](https://docs.lammps.org/pair_coeff.html). Instead it is calculated individually for each pair\nusing the per-atom diameter attribute of [atom_style sphere](https://docs.lammps.org/atom_style.html) for the two atoms as the average diameter, \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\)\n\nNote that \\(\\sigma\\) is defined in the LJ formula above as the\nzero-crossing distance for the potential, *not* as the energy minimum which\nis at \\(2^{\\frac{1}{6}} \\sigma\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on cutoffs, neighbor lists, and efficiency \n >If your system is mildly polydisperse, meaning the ratio of the\n > diameter of the largest particle to the smallest is less than 2.0,\n > then the neighbor lists built by the code should be reasonably\n > efficient. Which means they will not contain too many particle\n > pairs that do not interact. However, if your system is highly\n > polydisperse (ratio > 2.0), the neighbor list build and force\n > computations may be inefficient. There are two ways to try and\n > speed up the simulations.\n >\n > The first is to assign atoms to different atom types so that atoms of\n > each type are similar in size. E.g. if particle diameters range from\n > 1 to 5 use 4 atom types, ensuring atoms of type 1 have diameters from\n > 1.0-2.0, type 2 from 2.0-3.0, etc. This will reduce the number of\n > non-interacting pairs in the neighbor lists and thus reduce the time\n > spent on computing pairwise interactions.\n >\n > The second is to use the [neighbor multi ](https://docs.lammps.org/neighbor.html) command\n > which enabled a different algorithm for building neighbor lists. This\n > will also require that you assign multiple atom types according to\n > diameters, but will in addition use a more efficient size-dependent\n > strategy to construct the neighbor lists and thus reduce the time\n > spent on building neighbor lists.\n >\n > Here are example input script commands using the first option for a\n > highly polydisperse system:\n >\n > >\n > units lj\n > atom_style sphere\n > lattice fcc 0.8442\n > region box block 0 10 0 10 0 10\n > create_box 2 box\n > create_atoms 1 box\n >\n > # create atoms with random diameters from bimodal distribution\n > variable switch atom random(0.0,1.0,345634)\n > variable diam atom (v_switch<0.75)*normal(0.2,0.04,325)+(v_switch>=0.7)*normal(0.6,0.2,453)\n > set group all diameter v_diam\n >\n > # assign type 2 to atoms with diameter > 0.35\n > variable large atom (2.0*radius)>0.35\n > group large variable large\n > set group large type 2\n >\n > pair_style lj/expand/sphere 2.0\n > pair_coeff * * 1.0 0.5\n >\n > neighbor 0.3 bin\n >\n > Using multiple atom types speeds up the calculation for this example\n > by more than 30 percent, but using the multi-style neighbor list does\n > not provide a speedup. \n > \n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units) (optional)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff specified in the [pair_style command ](https://docs.lammps.org/pair_style.html) is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, and cutoff\ncoefficients for the *lj/expand/sphere* pair style can be mixed. The\ndefault mixing style is *geometric*. See the [pair_modify command](https://docs.lammps.org/pair_modify.html) for details.\n\nThe *lj/expand/sphere* pair style supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for the energy of the Lennard-Jones portion of the pair interaction.\n\nThe *lj/expand/sphere* pair style does *not* support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail corrections to\nthe energy and pressure.\n\nThe *lj/expand/sphere* pair style writes its information to [binaryrestart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not\nneed to be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does *not* support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "The *lj/expand/sphere* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\n----------\n", - "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n* [pair_style lj/cut/sphere ](https://docs.lammps.org/pair_lj_cut_sphere.html)\n" -}, -{ - "command": [ - "compute plasticity/atom" - ], - "syntax": [ - "compute ID group-ID plasticity/atom" - ], - "args": [ - [ + }, { - "arg": "compute", + "arg": "bond/react", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "reset_mol_ids", + "type": 3, + "choices": [ + "stabilization", + "reset_mol_ids" + ] }, { - "arg": "group-ID", + "arg": "values", "type": 2, "choices": [] }, { - "arg": "plasticity/atom", - "type": 1, + "arg": "&", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in compute command\n* plasticity/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all plasticity/atom\n```\n", - "html_filename": "compute_plasticity_atom.html", - "short_description": "Define a computation that calculates the per-atom plasticity for each\natom in a group", - "description": "Define a computation that calculates the per-atom plasticity for each\natom in a group. This is a quantity relevant for\n[Peridynamics models ](https://docs.lammps.org/pair_peri.html).\nSee [this document ](https://docs.lammps.org/PDF/PDLammps_overview.pdf)\nfor an overview of LAMMPS commands for Peridynamics modeling.\n\nThe plasticity for a Peridynamic particle is the so-called consistency\nparameter (\\(\\lambda\\)). For elastic deformation, \\(\\lambda = 0\\),\notherwise \\(\\lambda > 0\\) for plastic deformation. For details, see\n:ref:[(Mitchell) ](https://docs.lammps.org/Mitchell>` and the PDF doc included in the LAMMPSdistribution in `doc/PDF/PDLammps_EPS.pdf ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >\n **New in version 15Sep2022** \n >\n > [Type labels ](https://docs.lammps.org/Howto_type_labels.html) allow for molecule templates\n > and data files to use alphanumeric atom types that match those of\n > a force field. Input files that use type labels are inherently\n > compatible with each other and portable between different\n > simulations. Therefore, it is highly recommended to use type labels\n > to specify atom, bond, etc. types when using fix bond/react. \n > \n\nOnly one 'fix bond/react' command can be used at a time. Multiple\nreactions can be simultaneously applied by specifying multiple *react*\narguments to a single 'fix bond/react' command. This syntax is\nnecessary because the \"common\" keywords are applied to all reactions.\n\nThe *stabilization* keyword enables reaction site stabilization.\nReaction site stabilization is performed by including reacting atoms\nin an internally-created fix [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) time\nintegrator for a set number of time steps given by the\n*stabilize_steps* keyword. While reacting atoms are being time\nintegrated by the internal nve/limit, they are prevented from being\ninvolved in any new reactions. The *xmax* value keyword should\ntypically be set to the maximum distance that non-reacting atoms move\nduring the simulation.\n\nFix bond/react creates and maintains two important dynamic groups of\natoms when using the *stabilization* keyword. The first group contains\nall atoms currently involved in a reaction; this group is\nautomatically time-integrated by an internally-created\n[nve/limit ](https://docs.lammps.org/fix_nve_limit.html) integrator. The second group contains\nall atoms currently not involved in a reaction. This group should be\ncontrolled by a thermostat in order to time integrate the system. The name\nof this group of non-reacting atoms is created by appending '_REACT'\nto the group-ID argument of the *stabilization* keyword, as shown in\nthe second example above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using reaction stabilization, you should generally **not** have\n > a separate thermostat that acts on the \"all\" group. \n > \n\nThe group-ID set using the *stabilization* keyword can be an existing\nstatic group or a previously-unused group-ID. It cannot be specified\nas \"all\". If the group-ID is previously unused, the fix bond/react\ncommand creates a [dynamic group ](https://docs.lammps.org/group.html) that is initialized to\ninclude all atoms. If the group-ID is that of an existing static\ngroup, the group is used as the parent group of new,\ninternally-created dynamic group. In both cases, this new dynamic\ngroup is named by appending '_REACT' to the group-ID (e.g.,\nnvt_grp_REACT). By specifying an existing group, you may thermostat\nconstant-topology parts of your system separately. The dynamic group\ncontains only atoms not involved in a reaction at a given time step,\nand therefore should be used by a subsequent system-wide time\nintegrator such as [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), or\n[fix nve ](https://docs.lammps.org/fix_nve.html), as shown in the second example\nabove (full examples can be found in examples/PACKAGES/reaction). The time\nintegration command should be placed after the fix bond/react command\ndue to the internal dynamic grouping performed by fix bond/react.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the group-ID is an existing static group, react-group-IDs\n > should also be specified as this static group or a subset. \n > \n\nThe *reset_mol_ids* keyword invokes the [reset_atoms mol](https://docs.lammps.org/reset_atoms.html) command after a reaction occurs, to ensure that\nmolecule IDs are consistent with the new bond topology. The group-ID\nused for [reset_atoms mol ](https://docs.lammps.org/reset_atoms.html) is the group-ID for this\nfix. Resetting molecule IDs is necessarily a global operation, so it\ncan be slow for very large systems.\n\nThe following comments pertain to each *react* argument (in other\nwords, they can be customized for each reaction, or reaction step):\n\nA check for possible new reaction sites is performed every *Nevery*\ntime steps. *Nevery* can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html), whose value is rounded up to the nearest\ninteger.\n\nThree physical conditions must be met for a reaction to occur. First,\nan initiator atom pair must be identified within the reaction distance\ncutoffs. Second, the topology surrounding the initiator atom pair must\nmatch the topology of the pre-reaction template. Only atom types and\nbond connectivity are used to identify a valid reaction site (not bond\ntypes, etc.). Finally, any reaction constraints listed in the map file\n(see below) must be satisfied. If all of these conditions are met, the\nreaction site is eligible to be modified to match the post-reaction\ntemplate.\n\nAn initiator atom pair will be identified if several conditions are\nmet. First, a pair of atoms \\(i\\) and \\(j\\) within the specified\nreact-group-ID of type *itype* and *jtype* must be separated by a distance\nbetween *Rmin* and *Rmax* . *Rmin* and *Rmax* can be specified with\nequal-style [variables ](https://docs.lammps.org/variable.html). For example, these reaction cutoffs\ncan be functions of the reaction conversion using the following commands:\n\n```lmps\nvariable rmax equal 0 # initialize variable before bond/react\nfix myrxn all bond/react react myrxn1 all 1 0 v_rmax mol1 mol2 map_file.txt\nvariable rmax equal 3+f_myrxn[1]/100 # arbitrary function of reaction count\n```\nThe following criteria are used if multiple candidate initiator atom\npairs are identified within the cutoff distance:\n\n (1) If the initiator atoms in the pre-reaction template are not 1--2\n neighbors (i.e., not directly bonded) the closest potential partner is\n chosen.\n (2) Otherwise, if the initiator atoms in the pre-reaction template are 1--2\n neighbors (i.e. directly bonded) the farthest potential partner is\n chosen.\n (3) Then, if both an atom \\(i\\) and atom \\(j\\) have each other as\n initiator partners, these two atoms are identified as the initiator atom\n pair of the reaction site.\n\nNote that it can be helpful to select unique atom types for the\ninitiator atoms: if an initiator atom pair is identified, as described\nin the previous steps, but it does not correspond to the same pair\nspecified in the pre-reaction template, an otherwise eligible reaction\ncould be prevented from occurring. Once this unique initiator atom\npair is identified for each reaction, there could be two or more\nreactions that involve the same atom on the same time step. If this is\nthe case, only one such reaction is permitted to occur. This reaction\nis chosen randomly from all potential reactions involving the\noverlapping atom. This capability allows, for example, different\nreaction pathways to proceed from identical reaction sites with\nuser-specified probabilities.\n\nThe pre-reacted molecule template is specified by a molecule command.\nThis molecule template file contains a sample reaction site and its\nsurrounding topology. As described below, the initiator atom pairs of\nthe pre-reacted template are specified by atom ID in the map file. The\npre-reacted molecule template should contain as few atoms as possible\nwhile still completely describing the topology of all atoms affected\nby the reaction (which includes all atoms that change atom type or\nconnectivity, and all bonds that change bond type). For example, if\nthe force field contains dihedrals, the pre-reacted template should\ncontain any atom within three bonds of reacting atoms.\n\nSome atoms in the pre-reacted template that are not reacting may have\nmissing topology with respect to the simulation. For example, the\npre-reacted template may contain an atom that, in the simulation, is\ncurrently connected to the rest of a long polymer chain. These are\nreferred to as edge atoms, and are also specified in the map file. All\npre-reaction template atoms should be linked to an initiator atom, via\nat least one path that does not involve edge atoms. When the\npre-reaction template contains edge atoms, not all atoms, bonds,\ncharges, etc. specified in the reaction templates will be updated.\nSpecifically, topology that involves only atoms that are \"too near\" to\ntemplate edges will not be updated. The definition of \"too near the\nedge\" depends on which interactions are defined in the simulation. If\nthe simulation has defined dihedrals, atoms within two bonds of edge\natoms are considered \"too near the edge.\" If the simulation defines\nangles, but not dihedrals, atoms within one bond of edge atoms are\nconsidered \"too near the edge.\" If just bonds are defined, only edge\natoms are considered \"too near the edge.\"\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Small molecules (i.e., ones that have all their atoms contained\n > within the reaction templates) never have edge atoms. \n > \n\nNote that some care must be taken when a building a molecule template\nfor a given simulation. All atom types in the pre-reacted template\nmust be the same as those of a potential reaction site in the\nsimulation. A detailed discussion of matching molecule template atom\ntypes with the simulation is provided on the [molecule ](https://docs.lammps.org/molecule.html)\ncommand page. It is highly recommended to use [Type labels ](https://docs.lammps.org/Howto_type_labels.html)\n(added in version 15Sep2022) in both molecule templates and data\nfiles, which automates the process of syncing atom types between\ndifferent input files.\n\nThe post-reacted molecule template contains a sample of the reaction\nsite and its surrounding topology after the reaction has occurred. It\nmust contain the same number of atoms as the pre-reacted template\n(unless there are created atoms). A one-to-one correspondence between\nthe atom IDs in the pre- and post-reacted templates is specified in\nthe map file as described below. Note that during a reaction, an atom,\nbond, etc. type may change to one that was previously not present in\nthe simulation. These new types must also be defined during the setup\nof a given simulation. A discussion of correctly handling this is also\nprovided on the [molecule ](https://docs.lammps.org/molecule.html) command page.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a reaction occurs, it is possible that the resulting\n > topology/atom (e.g., special bonds, dihedrals) exceeds that of\n > the existing system and reaction templates. As when inserting\n > molecules, enough space for this increased topology/atom must be\n > reserved by using the relevant \"extra\" keywords to the\n > [read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) commands. \n > \n\nThe map file is a text document with the following format:\n\nA map file has a header and a body. The header of map file the\ncontains one mandatory keyword and five optional keywords. The\nmandatory keyword is *equivalences* :\n\n```\nN *equivalences* = # of atoms N in the reaction molecule templates\n```\nThe optional keywords are *edgeIDs* , *deleteIDs* , *chiralIDs* , and\n*constraints* :\n\n```\nN *edgeIDs* = # of edge atoms N in the pre-reacted molecule template\nN *deleteIDs* = # of atoms N that are deleted\nN *createIDs* = # of atoms N that are created\nN *chiralIDs* = # of chiral centers N\nN *constraints* = # of reaction constraints N\n```\nThe body of the map file contains two mandatory sections and five\noptional sections. The first mandatory section begins with the keyword\n\"InitiatorIDs\" and lists the two atom IDs of the initiator atom pair\nin the pre-reacted molecule template. The second mandatory section\nbegins with the keyword \"Equivalences\" and lists a one-to-one\ncorrespondence between atom IDs of the pre- and post-reacted\ntemplates. The first column is an atom ID of the pre-reacted molecule\ntemplate, and the second column is the corresponding atom ID of the\npost-reacted molecule template. The first optional section begins with\nthe keyword \"EdgeIDs\" and lists the atom IDs of edge atoms in the\npre-reacted molecule template. The second optional section begins with\nthe keyword \"DeleteIDs\" and lists the atom IDs of pre-reaction\ntemplate atoms to delete. The third optional section begins with the\nkeyword \"CreateIDs\" and lists the atom IDs of the post-reaction\ntemplate atoms to create. The fourth optional section begins with the\nkeyword \"ChiralIDs\" lists the atom IDs of chiral atoms whose\nhandedness should be enforced. The fifth optional section begins with\nthe keyword \"Constraints\" and lists additional criteria that must be\nsatisfied in order for the reaction to occur. Currently, there are\nsix types of constraints available, as discussed below: \"distance\",\n\"angle\", \"dihedral\", \"arrhenius\", \"rmsd\", and \"custom\".\n\nA sample map file is given below:\n\n----------\n\n```\n# this is a map file\n\n7 equivalences\n2 edgeIDs\n\nInitiatorIDs\n\n3\n5\n\nEdgeIDs\n\n1\n7\n\nEquivalences\n\n1 1\n2 2\n3 3\n4 4\n5 5\n6 6\n7 7\n```\n----------\n\nA user-specified set of atoms can be deleted by listing their\npre-reaction template IDs in the DeleteIDs section. A deleted atom\nmust still be included in the post-reaction molecule template, in\nwhich it cannot be bonded to an atom that is not deleted. In addition\nto deleting unwanted reaction by-products, this feature can be used to\nremove specific topologies, such as small rings, that may be otherwise\nindistinguishable.\n\nAtoms can be created by listing their post-reaction template IDs in\nthe CreateIDs section. A created atom should not be included in the\npre-reaction template. The inserted positions of created atoms are\ndetermined by the coordinates of the post-reaction template, after\noptimal translation and rotation of the post-reaction template to the\nreaction site (using a fit with atoms that are neither created nor\ndeleted). The *modify_create* keyword can be used to modify the\ndefault behavior when creating atoms. The *modify_create* keyword has\ntwo sub-keywords, *fit* and *overlap*. One or more of the sub-keywords\nmay be used after the *modify_create* keyword. The *fit* sub-keyword\ncan be used to specify which post-reaction atoms are used for the\noptimal translation and rotation of the post-reaction template. The\nfragment-ID value of the *fit* sub-keyword must be the name of a\nmolecule fragment defined in the post-reaction [molecule](https://docs.lammps.org/molecule.html) template, and only atoms in this fragment are used for the\nfit. Atoms are created only if no current atom in the simulation is\nwithin a distance \\(R\\) of any created atom, including the effect of\nperiodic boundary conditions if applicable. \\(R\\) is defined by the\n*overlap* sub-keyword. Note that the default value for \\(R\\) is 0.0, which\nwill allow atoms to strongly overlap if you are inserting where other\natoms are present. The velocity of each created atom is initialized in\na random direction with a magnitude calculated from the instantaneous\ntemperature of the reaction site.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The 'Coords' section must be included in the post-reaction template\n > when creating atoms because these coordinates are used to determine\n > where new atoms are inserted. \n > \n\nThe handedness of atoms that are chiral centers can be enforced by\nlisting their IDs in the ChiralIDs section. A chiral atom must be\nbonded to four atoms with mutually different atom types. This feature\nuses the coordinates and types of the involved atoms in the\npre-reaction template to determine handedness. Three atoms bonded to\nthe chiral center are arbitrarily chosen, to define an oriented plane,\nand the relative position of the fourth bonded atom determines the\nchiral center's handedness.\n\nAny number of additional constraints may be specified in the\nConstraints section of the map file. The constraint of type \"distance\"\nhas syntax as follows:\n\n```\ndistance *ID1* *ID2* *rmin* *rmax*\n```\nwhere \"distance\" is the required keyword, *ID1* and *ID2* are\npre-reaction atom IDs (or molecule-fragment IDs, see below), and these\ntwo atoms must be separated by a distance between *rmin* and *rmax*\nfor the reaction to occur.\n\nThe constraint of type \"angle\" has the following syntax:\n\n```\nangle *ID1* *ID2* *ID3* *amin* *amax*\n```\nwhere \"angle\" is the required keyword, *ID1*, *ID2* and *ID3* are\npre-reaction atom IDs (or molecule-fragment IDs, see below), and these\nthree atoms must form an angle between *amin* and *amax* for the\nreaction to occur (where *ID2* is the central atom). Angles must be\nspecified in degrees. This constraint can be used to enforce a certain\norientation between reacting molecules.\n\nThe constraint of type \"dihedral\" has the following syntax:\n\n```\ndihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*\n```\nwhere \"dihedral\" is the required keyword, and *ID1*, *ID2*, *ID3*\nand *ID4* are pre-reaction atom IDs (or molecule-fragment IDs, see\nbelow). Dihedral angles are calculated in the interval \\((-180^\\circ,180^\\circ]\\).\nRefer to the [dihedral style ](https://docs.lammps.org/dihedral_style.html) documentation for\nfurther details on convention. If *amin* is less than *amax*, these\nfour atoms must form a dihedral angle greater than *amin* **and** less\nthan *amax* for the reaction to occur. If *amin* is greater than\n*amax*, these four atoms must form a dihedral angle greater than\n*amin* **or** less than *amax* for the reaction to occur. Angles must\nbe specified in degrees. Optionally, a second range of permissible\nangles *amin2* to *amax2* can be specified.\n\nFor the 'distance', 'angle', and 'dihedral' constraints (explained\nabove), atom IDs can be replaced by pre-reaction molecule-fragment\nIDs. The molecule-fragment ID must begin with a letter. The location\nof the ID is the geometric center of all atom positions in the\nfragment. The molecule fragment must have been defined in the\n[molecule ](https://docs.lammps.org/molecule.html) command for the pre-reaction template.\n\nThe constraint of type 'arrhenius' imposes an additional reaction\nprobability according to the modified Arrhenius equation,\n\\[\n k = AT^{n}e^{-E_{a}/k_{B}T}.\\]\nThe Arrhenius constraint has the following syntax:\n\n```\narrhenius *A* *n* *E_a* *seed*\n```\nwhere \"arrhenius\" is the required keyword, *A* is the pre-exponential\nfactor, *n* is the exponent of the temperature dependence, \\(E_a\\)\nis the activation energy ([units ](https://docs.lammps.org/units.html) of energy), and *seed* is a\nrandom number seed. The temperature is defined as the instantaneous\ntemperature averaged over all atoms in the reaction site and is\ncalculated in the same manner as for example\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html). Currently, there are no\noptions for additional temperature averaging or velocity-biased\ntemperature calculations. A uniform random number between 0 and 1 is\ngenerated using *seed* ; if this number is less than the result of the\nArrhenius equation above, the reaction is permitted to occur.\n\nThe constraint of type 'rmsd' has the following syntax:\n\n```\nrmsd *RMSDmax* *molfragment*\n```\nwhere \"rmsd\" is the required keyword, and *RMSDmax* is the maximum\nroot-mean-square deviation between atom positions of the pre-reaction\ntemplate and the local reaction site (distance units), after optimal\ntranslation and rotation of the pre-reaction template. Optionally, the\nname of a molecule fragment (of the pre-reaction template) can be\nspecified by *molfragment* . If a molecule fragment is specified,\nonly atoms that are part of this molecule fragment are used to\ndetermine the RMSD. A molecule fragment must have been defined in the\n[molecule ](https://docs.lammps.org/molecule.html) command for the pre-reaction template. For\nexample, the molecule fragment could consist of only the backbone\natoms of a polymer chain. This constraint can be used to enforce a\nspecific relative position and orientation between reacting molecules.\n\nThe constraint of type \"custom\" has the following syntax:\n\n```\ncustom *varstring*\n```\nwhere 'custom' is the required keyword, and *varstring* is a variable\nexpression. The expression must be a valid equal-style variable\nformula that can be read by the [variable ](https://docs.lammps.org/variable.html) command,\nafter any special reaction functions are evaluated. If the resulting\nexpression is zero, the reaction is prevented from occurring;\notherwise, it is permitted to occur. There are three special reaction\nfunctions available, 'rxnbond', 'rxnsum', and 'rxnave'. The 'rxnbond'\nfunction allows per-bond values to be included in the variable strings\nof the custom constraint. The 'rxnbond' function has two mandatory\narguments. The first argument is the ID of a previously defined\n'compute bond/local' command. This 'compute bond/local' must compute\nonly one value, e.g. bond force. This value is returned by the\n'rxnbond' function. The second argument is the name of a molecule\nfragment in the pre-reaction template. The fragment must contain\nexactly two atoms, corresponding to the atoms involved in the bond\nwhose value should be calculated. An example of a constraint that uses\nthe force experienced by a bond is provided below. The 'rxnsum' and\n'rxnave' functions operate over the atoms in a given reaction site,\nand have one mandatory argument and one optional argument. The\nmandatory argument is the identifier for an atom-style variable. The\nsecond, optional argument is the name of a molecule fragment in the\npre-reaction template, and can be used to operate over a subset of\natoms in the reaction site. The 'rxnsum' function sums the atom-style\nvariable over the reaction site, while the 'rxnave' returns the\naverage value. For example, a constraint on the total potential energy\nof atoms involved in the reaction can be imposed as follows:\n\n```lmps\ncompute 1 all pe/atom # in LAMMPS input script\nvariable my_pe atom c_1 # in LAMMPS input script\n```\n\n```lmps\ncustom \"rxnsum(v_my_pe) > 100\" # in Constraints section of map file\n```\nThe above example prevents the reaction from occurring unless the\ntotal potential energy of the reaction site is above 100. As a second\nexample, this time using the 'rxnbond' function, consider a modified\nArrhenius constraint that depends on the bond force of a specific bond:\n\n```lmps\n# in LAMMPS input script\n\ncompute bondforce all bond/local force\n\ncompute ke_atom all ke/atom\nvariable ke atom c_ke_atom\n\nvariable E_a equal 100.0 # activation energy\nvariable l0 equal 1.0 # characteristic length\n```\n\n```lmps\n# in Constraints section of map file\n\ncustom \"exp(-(v_E_a-rxnbond(c_bondforce,bond1frag)*v_l0)/(2/3*rxnave(v_ke))) < random(0,1,12345)\"\n```\nBy using an inequality and the 'random(x,y,z)' function, the left-hand\nside can be interpreted as the probability of the reaction occurring,\nsimilar to the 'arrhenius' constraint above.\n\nBy default, all constraints must be satisfied for the reaction to\noccur. In other words, constraints are evaluated as a series of\nlogical values using the logical AND operator \"&&\". More complex logic\ncan be achieved by explicitly adding the logical AND operator \"&&\" or\nthe logical OR operator \"||\" after a given constraint command. If a\nlogical operator is specified after a constraint, it must be placed\nafter all constraint parameters, on the same line as the constraint\n(one per line). Similarly, parentheses can be used to group\nconstraints. The expression that results from concatenating all\nconstraints should be a valid logical expression that can be read by\nthe [variable ](https://docs.lammps.org/variable.html) command after converting each\nconstraint to a logical value. Because exactly one constraint is\nallowed per line, having a valid logical expression implies that left\nparentheses \"(\" should only appear before a constraint, and right\nparentheses \")\" should only appear after a constraint and before any\nlogical operator.\n\nOnce a reaction site has been successfully identified, data structures\nwithin LAMMPS that store bond topology are updated to reflect the\npost-reacted molecule template. All force fields with fixed bonds,\nangles, dihedrals or impropers are supported.\n\nA few capabilities to note:\n\n (1) You may specify as many *react* arguments as desired. For example, you\n could break down a complicated reaction mechanism into several reaction\n steps, each defined by its own *react* argument.\n (2) While typically a bond is formed or removed between the initiator atoms\n specified in the pre-reacted molecule template, this is not required.\n (3) By reversing the order of the pre- and post-reacted molecule templates in\n another *react* argument, you can allow for the possibility of one or\n more reverse reactions.\n\nThe optional keywords deal with the probability of a given reaction\noccurring as well as the stable equilibration of each reaction site as\nit occurs.\n\nThe *prob* keyword can affect whether or not an eligible reaction\nactually occurs. The fraction setting must be a value between 0.0 and\n1.0, and can be specified with an equal-style [variable ](https://docs.lammps.org/variable.html).\nA uniform random number between 0.0 and 1.0 is generated and the\neligible reaction only occurs if the random number is less than the\nfraction. Up to \\(N\\) reactions are permitted to occur, as optionally\nspecified by the *max_rxn* keyword.\n\nThe *rate_limit* keyword can enforce an upper limit on the overall\nrate of the reaction. The number of reaction occurrences is limited to\nNlimit within an interval of Nsteps timesteps. No reactions are\npermitted to occur within the first Nsteps timesteps of the first run\nafter reading a data file. Nlimit can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html).\n\nThe *stabilize_steps* keyword allows for the specification of how many\ntime steps a reaction site is stabilized before being returned to the\noverall system thermostat. In order to produce the most physical\nbehavior, this \"reaction site equilibration time\" should be tuned to\nbe as small as possible while retaining stability for a given system\nor reaction step. After a limited number of case studies, this number\nhas been set to a default of 60 time steps. Ideally, it should be\nindividually tuned for each fix reaction step. Note that in some\nsituations, decreasing rather than increasing this parameter will\nresult in an increase in stability.\n\nThe *custom_charges* keyword can be used to specify which atoms'\natomic charges are updated. When the value is set to *no* , all atomic\ncharges are updated to those specified by the post-reaction template\n(default). Otherwise, the value should be the name of a molecule\nfragment defined in the pre-reaction molecule template. In this case,\nonly the atomic charges of atoms in the molecule fragment are updated.\n\nThe *rescale_charges* keyword can be used to ensure the total charge\nof the system does not change as reactions occur. When the argument is\nset to *yes* , a fixed value is added to the charges of post-reaction\natoms such that their total charge equals that of the pre-reaction\nsite. If only a subset of atomic charges are updated via the\n*custom_charges* keyword, this rescaling is applied to the subset.\nThis keyword could be useful for systems that contain different\nmolecules with the same reactive site, if the partial charges on the\nreaction site vary from molecule to molecule, or when removing\nreaction by-products.\n\nThe *molecule* keyword can be used to force the reaction to be\nintermolecular, intramolecular or either. When the value is set to\n*off* , molecule IDs are not considered when searching for reactions\n(default). When the value is set to *inter* , the initiator atoms must\nhave different molecule IDs in order to be considered for the\nreaction. When the value is set to *intra* , only initiator atoms with\nthe same molecule ID are considered for the reaction.\n\nA few other considerations:\n\nOptionally, you can enforce additional behaviors on reacting atoms.\nFor example, it may be beneficial to force reacting atoms to remain at\na certain temperature. For this, you can use the internally-created\ndynamic group named \"bond_react_MASTER_group\", which consists of all\natoms currently involved in a reaction. For example, adding the\nfollowing command would add an additional thermostat to the group of\nall currently-reacting atoms:\n\n```lmps\nfix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command must be added after the fix bond/react command, and\n > will apply to all reactions. \n > \n\nComputationally, each time step this fix is invoked, it loops over\nneighbor lists (for bond-forming reactions) and computes distances\nbetween pairs of atoms in the list. It also communicates between\nneighboring processors to coordinate which bonds are created and/or\nremoved. All of these operations increase the cost of a time step. Thus,\nyou should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the\n[dump local ](https://docs.lammps.org/dump.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCumulative reaction counts for each reaction are written to [binary restart files ](https://docs.lammps.org/restart.html).\nThese values are associated with the reaction name (react-ID).\nAdditionally, internally-created per-atom properties are stored to\nallow for smooth restarts. None of the [fix_modify ](https://docs.lammps.org/fix_modify.html)\noptions are relevant to this fix.\n\nThis fix computes one statistic for each *react* argument that it\nstores in a global vector, of length (number of react arguments), that\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nvector values calculated by this fix are \"intensive\".\n\nThere is one quantity in the global vector for each *react* argument:\n\n (1) cumulative number of reactions that occurred\n\nNo parameter of this fix can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nWhen fix bond/react is \"[unfixed ](https://docs.lammps.org/unfix.html)\", all internally-created\ngroups are deleted. Therefore, fix bond/react can only be unfixed after\nunfixing all other fixes that use any group created by fix bond/react.\n", + "restrictions": "This fix is part of the REACTION package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix bond/create ](https://docs.lammps.org/fix_bond_create.html),\n[fix bond/break ](https://docs.lammps.org/fix_bond_break.html),\n[fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" }, { "command": [ - "fix print" + "region" ], "syntax": [ - "fix ID group-ID print N string keyword value ..." + "region ID style args keyword arg ..." ], "args": [ [ { - "arg": "fix", + "arg": "region", "type": 1, "choices": [] }, @@ -5559,90 +5150,64 @@ export const command_docs = [ "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "print", - "type": 1, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] + "arg": "intersect", + "type": 3, + "choices": [ + "delete", + "block", + "cone", + "cylinder", + "ellipsoid", + "plane", + "prism", + "sphere", + "union", + "intersect" + ] }, { - "arg": "string", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "title", + "arg": "open", "type": 3, "choices": [ - "file", - "append", - "screen", - "title" + "side", + "units", + "move", + "rotate", + "open" ] }, { - "arg": "value", + "arg": "arg", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* print = style name of this fix command\n* N = print every N steps; N can be a variable (see below)\n* string = text string to print with optional variable names\n* zero or more keyword/value pairs may be appended\n* keyword = file or append or screen or title \n *        file value = filename \n *        append value = filename \n *        screen value = yes or no \n *        title value = string \n         string = text to print as 1st line of output file \n", - "examples": "\n```lmps\nfix extra all print 100 \"Coords of marker atom = $x $y $z\"\nfix extra all print 100 \"Coords of marker atom = $x $y $z\" file coord.txt\n```\n", - "html_filename": "fix_print.html", - "short_description": "Print a text string every N steps during a simulation run", - "description": "Print a text string every N steps during a simulation run. This can\nbe used for diagnostic purposes or as a debugging tool to monitor some\nquantity during a run. The text string must be a single argument, so\nit should be enclosed in single or double quotes if it is more than\none word. If it contains variables it must be enclosed in double\nquotes to ensure they are not evaluated when the input script line is\nread, but will instead be evaluated each time the string is printed.\n\n **New in version 15Jun2023** \n\n support for vector style variables\nSee the [variable ](https://docs.lammps.org/variable.html) command for a description of\n*equal* and *vector* style variables which are typically the most\nuseful ones to use with the print command. Equal- and vector-style\nvariables can calculate formulas involving mathematical operations,\natom properties, group properties, thermodynamic properties, global\nvalues calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html),\nor references to other [variables ](https://docs.lammps.org/variable.html). Vector-style\nvariables are printed in a bracketed, comma-separated format,\ne.g. [1,2,3,4] or [12.5,2,4.6,10.1].\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, the text string can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on the [variable > ](https://docs.lammps.org/variable.html) doc page. This is a convenient way to evaluate a\n > formula immediately without using the variable command to define a\n > named variable and then use that variable in the text string. The\n > formula can include a trailing colon and format string which\n > determines the precision with which the numeric value is output.\n > This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name\nis the variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the **next** timestep at which the\nstring will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the\nvariable should return timestep values. See the stagger() and\nlogfreq() and stride() math functions for [equal-style variables](https://docs.lammps.org/variable.html), as examples of useful functions to use in this\ncontext. For example, the following commands will print output at\ntimesteps 10,20,30,100,200,300,1000,2000,etc:\n\n```lmps\nvariable s equal logfreq(10,3,10)\nfix extra all print v_s \"Coords of marker atom = $x $y $z\"\n```\nThe specified group-ID is ignored by this fix.\n\nIf the *file* or *append* keyword is used, a filename is specified to\nwhich the output generated by this fix will be written. If *file* is\nused, then the filename is overwritten if it already exists. If\n*append* is used, then the filename is appended to if it already\nexists, or created if it does not exist.\n\nIf the *screen* keyword is used, output by this fix to the screen and\nlogfile can be turned on or off as desired.\n\nThe *title* keyword allow specification of the string that will be\nprinted as the first line of the output file, assuming the *file*\nkeyword was used. By default, the title line is as follows:\n\n```\n# Fix print output for fix ID\n```\nwhere ID is replaced with the fix-ID.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[variable ](https://docs.lammps.org/variable.html), [print ](https://docs.lammps.org/print.html)\n" -}, -{ - "command": [ - "improper_style none" - ], - "syntax": [ - "improper_style none" - ], - "args": [ - [ - { - "arg": "improper_style", - "type": 1, - "choices": [] - }, - { - "arg": "none", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nimproper_style none\n```\n", - "html_filename": "improper_none.html", - "short_description": "Using an improper style of none means improper forces and energies are\nnot computed, even if quadruplets of improper atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command", - "description": "Using an improper style of none means improper forces and energies are\nnot computed, even if quadruplets of improper atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [improper_style zero ](https://docs.lammps.org/improper_zero.html) command for a way to\ncalculate improper statistics, but compute no improper interactions.\n", - "restrictions": " none\n", - "related": "[improper_style zero ](https://docs.lammps.org/improper_zero.html)\n" + "parameters": "* ID = user-assigned name for the region\n* style = delete or block or cone or cylinder or ellipsoid or plane or prism or sphere or union or intersect \n *        delete = no args \n *        block args = xlo xhi ylo yhi zlo zhi \n         xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all dimensions (distance units) \n         xlo,xhi,ylo,yhi,zlo,zhi can be a variable \n *        cone args = dim c1 c2 radlo radhi lo hi \n         dim = x or y or z = axis of cone \n         c1,c2 = coords of cone axis in other 2 dimensions (distance units) \n         radlo,radhi = cone radii at lo and hi end (distance units) \n         lo,hi = bounds of cone in dim (distance units) \n         c1,c2,radlo,radhi,lo,hi can be a variable (see below) \n *        cylinder args = dim c1 c2 radius lo hi \n         dim = x or y or z = axis of cylinder \n         c1,c2 = coords of cylinder axis in other 2 dimensions (distance units) \n         radius = cylinder radius (distance units) \n         c1,c2, and radius can be a variable (see below) \n         lo,hi = bounds of cylinder in dim (distance units) \n *        ellipsoid args = x y z a b c \n         x,y,z = center of ellipsoid (distance units) \n         a,b,c = half the length of the principal axes of the ellipsoid (distance units) \n         x,y,z,a,b and c can be a variable (see below) \n *        plane args = px py pz nx ny nz \n         px,py,pz = point on the plane (distance units) \n         nx,ny,nz = direction normal to plane (distance units) \n *        prism args = xlo xhi ylo yhi zlo zhi xy xz yz \n         xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism (distance units) \n         xy = distance to tilt y in x direction (distance units) \n         xz = distance to tilt z in x direction (distance units) \n         yz = distance to tilt z in y direction (distance units) \n *        sphere args = x y z radius \n         x,y,z = center of sphere (distance units) \n         radius = radius of sphere (distance units) \n         x,y,z, and radius can be a variable (see below) \n *        union args = N reg-ID1 reg-ID2 ... \n         N = # of regions to follow, must be 2 or greater \n         reg-ID1,reg-ID2, ... = IDs of regions to join together \n *        intersect args = N reg-ID1 reg-ID2 ... \n         N = # of regions to follow, must be 2 or greater \n         reg-ID1,reg-ID2, ... = IDs of regions to intersect \n* zero or more keyword/arg pairs may be appended\n* keyword = side or units or move or rotate or open \n *        side value = in or out \n         in = the region is inside the specified geometry \n         out = the region is outside the specified geometry \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n *        move args = v_x v_y v_z \n         v_x,v_y,v_z = equal-style variables for x,y,z displacement of region over time (distance units) \n *        rotate args = v_theta Px Py Pz Rx Ry Rz \n         v_theta = equal-style variable for rotaton of region over time (in radians) \n         Px,Py,Pz = origin for axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n *        open value = integer from 1-6 corresponding to face index (see below) \n* accelerated styles (with same args) = block/kk \n", + "examples": "\n```lmps\nregion 1 block -3.0 5.0 INF 10.0 INF INF\nregion 2 sphere 0.0 0.0 0.0 5 side out\nregion void cylinder y 2 3 5 -5.0 EDGE units box\nregion 1 prism 0 10 0 10 0 10 2 0 0\nregion outside union 4 side1 side2 side3 side4\nregion 2 sphere 0.0 0.0 0.0 5 side out move v_left v_up NULL\nregion openbox block 0 10 0 10 0 10 open 5 open 6 units box\nregion funnel cone z 10 10 2 5 0 10 open 1 units box\n```\n", + "html_filename": "region.html", + "short_description": "This command defines a geometric region of space", + "description": "This command defines a geometric region of space. Various other\ncommands use regions. For example, the region can be filled with\natoms via the [create_atoms ](https://docs.lammps.org/create_atoms.html) command. Or a bounding\nbox around the region, can be used to define the simulation box via\nthe [create_box ](https://docs.lammps.org/create_box.html) command. Or the atoms in the region\ncan be identified as a group via the [group ](https://docs.lammps.org/group.html) command, or\ndeleted via the [delete_atoms ](https://docs.lammps.org/delete_atoms.html) command. Or the\nsurface of the region can be used as a boundary wall via the [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) command.\n\nCommands which use regions typically test whether an atom's position\nis contained in the region or not. For this purpose, coordinates\nexactly on the region boundary are considered to be interior to the\nregion. This means, for example, for a spherical region, an atom on\nthe sphere surface would be part of the region if the sphere were\ndefined with the *side in* keyword, but would not be part of the\nregion if it were defined using the *side out* keyword. See more\ndetails on the *side* keyword below.\n\nNormally, regions in LAMMPS are \"static\", meaning their geometric\nextent does not change with time. If the *move* or *rotate* keyword\nis used, as described below, the region becomes \"dynamic\", meaning\nit's location or orientation changes with time. This may be useful,\nfor example, when thermostatting a region, via the compute temp/region\ncommand, or when the fix wall/region command uses a region surface as\na bounding wall on particle motion, i.e. a rotating container.\n\nThe *delete* style removes the named region. Since there is little\noverhead to defining extra regions, there is normally no need to do\nthis, unless you are defining and discarding large numbers of regions\nin your input script.\n\nThe lo/hi values for *block* or *cone* or *cylinder* or *prism* styles\ncan be specified as EDGE or INF. EDGE means they extend all the way\nto the global simulation box boundary. Note that this is the current\nbox boundary; if the box changes size during a simulation, the region\ndoes not. INF means a large negative or positive number (1.0e20), so\nit should encompass the simulation box even if it changes size. If a\nregion is defined before the simulation box has been created (via\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands), then an EDGE or INF\nparameter cannot be used. For a *prism* region, a non-zero tilt\nfactor in any pair of dimensions cannot be used if both the lo/hi\nvalues in either of those dimensions are INF. E.g. if the xy tilt is\nnon-zero, then xlo and xhi cannot both be INF, nor can ylo and yhi.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Regions in LAMMPS do not get wrapped across periodic boundaries,\n > as specified by the [boundary ](https://docs.lammps.org/boundary.html) command. For example, a\n > spherical region that is defined so that it overlaps a periodic\n > boundary is not treated as 2 half-spheres, one on either side of the\n > simulation box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Regions in LAMMPS are always 3d geometric objects, regardless of\n > whether the [dimension ](https://docs.lammps.org/dimension.html) of a simulation is 2d or 3d.\n > Thus when using regions in a 2d simulation, you should be careful to\n > define the region so that its intersection with the 2d x-y plane of\n > the simulation has the 2d geometric extent you want. \n > \n\nFor style *cone*, an axis-aligned cone is defined which is like a\n*cylinder* except that two different radii (one at each end) can be\ndefined. Either of the radii (but not both) can be 0.0.\n\nFor style *cone* and *cylinder*, the c1,c2 params are coordinates in\nthe 2 other dimensions besides the cylinder axis dimension. For dim =\nx, c1/c2 = y/z; for dim = y, c1/c2 = x/z; for dim = z, c1/c2 = x/y.\nThus the third example above specifies a cylinder with its axis in the\ny-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and\nextending in the y-direction from -5.0 to the upper box boundary.\n\nFor style *ellipsoid*, an axis-aligned ellipsoid is defined. The\nellipsoid has its center at (x,y,z) and is defined by 3 axis-aligned\nvectors given by A = (a,0,0); B = (0,b,0); C = (0,0,c). Note that\nalthough the ellipsoid is specified as axis-aligned it can be rotated\nvia the optional *rotate* keyword.\n\nFor style *plane*, a plane is defined which contain the point\n(px,py,pz) and has a normal vector (nx,ny,nz). The normal vector does\nnot have to be of unit length. The \"inside\" of the plane is the\nhalf-space in the direction of the normal vector; see the discussion\nof the *side* option below.\n\nFor style *prism*, a parallelepiped is defined (it's too hard to spell\nparallelepiped in an input script!). The parallelepiped has its\n\"origin\" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting\nfrom the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =\n(xz,yz,zhi-zlo). *Xy,xz,yz* can be 0.0 or positive or negative values\nand are called \"tilt factors\" because they are the amount of\ndisplacement applied to faces of an originally orthogonal box to\ntransform it into the parallelepiped.\n\nA prism region that will be used with the [create_box ](https://docs.lammps.org/create_box.html)\ncommand to define a triclinic simulation box must have tilt factors\n(xy,xz,yz) that do not skew the box more than half the distance of\ncorresponding the parallel box length. For example, if xlo = 2 and\nxhi = 12, then the x box length is 10 and the xy tilt factor must be\nbetween -5 and 5. Similarly, both xz and yz must be between\n-(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a limitation,\nsince if the maximum tilt factor is 5 (as in this example), then\nconfigurations with tilt = ..., -15, -5, 5, 15, 25, ... are all\ngeometrically equivalent.\n\nFor style *sphere*, a sphere is defined with its center at (x,y,z)\nand with radius as its radius.\n\nThe *radius* value for styles *sphere* and *cylinder*, and the\nparameters a,b,c for style *ellipsoid*, can each be specified as an\nequal-style [variable ](https://docs.lammps.org/variable.html). Likewise, for style *sphere*\nand *ellipsoid* the x-, y-, and z- coordinates of the center of the\nsphere/ellipsoid can be specified as an equal-style variable. And for\nstyle *cylinder* the two center positions c1 and c2 for the location\nof the cylinder axes can be specified as a equal-style variable. For style *cone*\nall properties can be defined via equal-style variables.\n\nIf the value is a variable, it should be specified as v_name, where\nname is the variable name. In this case, the variable will be\nevaluated each timestep, and its value used to determine the radius of\nthe region.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent radius or have\na time dependent position of the sphere or cylinder region.\n\nSee the [Howto tricilinc ](https://docs.lammps.org/Howto_triclinic.html) page for a\ngeometric description of triclinic boxes, as defined by LAMMPS, and\nhow to transform these parameters to and from other commonly used\ntriclinic representations.\n\nThe *union* style creates a region consisting of the volume of all the\nlisted regions combined. The *intersect* style creates a region\nconsisting of the volume that is common to all the listed regions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *union* and *intersect* regions operate by invoking methods\n > from their list of sub-regions. Thus you cannot delete the\n > sub-regions after defining a *union* or *intersection* region. \n > \n\n----------\n\nThe *side* keyword determines whether the region is considered to be\ninside or outside of the specified geometry. Using this keyword in\nconjunction with *union* and *intersect* regions, complex geometries\ncan be built up. For example, if the interior of two spheres were\neach defined as regions, and a *union* style with *side* = out was\nconstructed listing the region-IDs of the 2 spheres, the resulting\nregion would be all the volume in the simulation box that was outside\nboth of the spheres.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the region for any argument above listed as having distance\nunits. It also affects the scaling of the velocity vector specified\nwith the *vel* keyword, the amplitude vector specified with the\n*wiggle* keyword, and the rotation point specified with the *rotate*\nkeyword, since they each involve a distance metric.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings which are used as follows:\n\n* For style *block*, the lattice spacing in dimension x is applied to\n xlo and xhi, similarly the spacings in dimensions y,z are applied to\n ylo/yhi and zlo/zhi.\n* For style *cone*, the lattice spacing in argument *dim* is applied to\n lo and hi. The spacings in the two radial dimensions are applied to\n c1 and c2. The two cone radii are scaled by the lattice\n spacing in the dimension corresponding to c1.\n* For style *cylinder*, the lattice spacing in argument *dim* is applied\n to lo and hi. The spacings in the two radial dimensions are applied\n to c1 and c2. The cylinder radius is scaled by the lattice\n spacing in the dimension corresponding to c1.\n* For style *ellipsoid*, the lattice spacing in dimensions x,y,z are\n applied to the ellipsoid center x,y,z. The spacing in dimensions\n x,y,z are applied to the ellipsoid radii a,b,c respectively.\n* For style *plane*, the lattice spacing in dimension x is applied to\n px and nx, similarly the spacings in dimensions y,z are applied to\n py/ny and pz/nz.\n* For style *prism*, the lattice spacing in dimension x is applied to\n xlo and xhi, similarly for ylo/yhi and zlo/zhi. The lattice spacing\n in dimension x is applied to xy and xz, and the spacing in dimension y\n to yz.\n* For style *sphere*, the lattice spacing in dimensions x,y,z are\n applied to the sphere center x,y,z. The spacing in dimension x is\n applied to the sphere radius.\n\n----------\n\nIf the *move* or *rotate* keywords are used, the region is \"dynamic\",\nmeaning its location or orientation changes with time. These keywords\ncannot be used with a *union* or *intersect* style region. Instead,\nthe keywords should be used to make the individual sub-regions of the\n*union* or *intersect* region dynamic. Normally, each sub-region\nshould be \"dynamic\" in the same manner (e.g. rotate around the same\npoint), though this is not a requirement.\n\nThe *move* keyword allows one or more [equal-style variables ](https://docs.lammps.org/variable.html) to be used to specify the x,y,z displacement\nof the region, typically as a function of time. A variable is\nspecified as v_name, where name is the variable name. Any of the\nthree variables can be specified as NULL, in which case no\ndisplacement is calculated in that dimension.\n\nNote that equal-style variables can specify formulas with various\nmathematical functions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand keywords for the simulation box parameters and timestep and\nelapsed time. Thus it is easy to specify a region displacement that\nchange as a function of time or spans consecutive runs in a continuous\nfashion. For the latter, see the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command and the *elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, these commands would displace a region from its initial\nposition, in the positive x direction, effectively at a constant\nvelocity:\n\n```lmps\nvariable dx equal ramp(0,10)\nregion 2 sphere 10.0 10.0 0.0 5 move v_dx NULL NULL\n```\nNote that the initial displacement is 0.0, though that is not required.\n\nEither of these variables would \"wiggle\" the region back and forth in\nthe y direction:\n\n```lmps\nvariable dy equal swiggle(0,5,100)\nvariable dysame equal 5*sin(2*PI*elaplong*dt/100)\nregion 2 sphere 10.0 10.0 0.0 5 move NULL v_dy NULL\n```\nThe *rotate* keyword rotates the region around a rotation axis *R* =\n(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The rotation\nangle is calculated, presumably as a function of time, by a variable\nspecified as v_theta, where theta is the variable name. The variable\nshould generate its result in radians. The direction of rotation for\nthe region around the rotation axis is consistent with the right-hand\nrule: if your right-hand thumb points along *R*, then your fingers\nwrap around the axis in the direction of rotation.\n\nThe *move* and *rotate* keywords can be used together. In this case,\nthe displacement specified by the *move* keyword is applied to the *P*\npoint of the *rotate* keyword.\n\n----------\n\nThe *open* keyword can be used (multiple times) to indicate that one\nor more faces of the region are ignored for purposes of particle/wall\ninteractions. This keyword is only relevant for regions used by the\n*fix wall/region* and *fix wall/gran/region* commands. It can be used\nto create \"open\" containers where only some of the region faces are\nwalls. For example, a funnel can be created with a *cone* style\nregion that has an open face at the smaller radius for particles to\nflow out, or at the larger radius for pouring particles into the cone,\nor both.\n\nNote that using the *open* keyword partly overrides the *side*\nkeyword, since both exterior and interior surfaces of an open region\nare tested for particle contacts. The exception to this is a *union*\nor *intersect* region which includes an open sub-region. In that case\nthe *side* keyword is still used to define the union/intersect region\nvolume, and the *open* settings are only applied to the individual\nsub-regions that use them.\n\nThe indices specified as part of the *open* keyword have the following\nmeanings:\n\nFor style *block*, indices 1-6 correspond to the xlo, xhi, ylo, yhi,\nzlo, zhi surfaces of the block. I.e. 1 is the yz plane at x = xlo, 2\nis the yz-plane at x = xhi, 3 is the xz plane at y = ylo, 4 is the xz\nplane at y = yhi, 5 is the xy plane at z = zlo, 6 is the xy plane at z\n= zhi). In the second-to-last example above, the region is a box open\nat both xy planes.\n\nFor style *prism*, values 1-6 have the same mapping as for style\n*block* . I.e. in an untilted *prism*, *open* indices correspond to\nthe xlo, xhi, ylo, yhi, zlo, zhi surfaces.\n\nFor style *cylinder*, index 1 corresponds to the flat end cap at the\nlow coordinate along the cylinder axis, index 2 corresponds to the\nhigh-coordinate flat end cap along the cylinder axis, and index 3 is\nthe curved cylinder surface. For example, a *cylinder* region with\n*open 1 open 2* keywords will be open at both ends (e.g. a section of\npipe), regardless of the cylinder orientation.\n\nFor style *cone*, the mapping is the same as for style *cylinder* .\nIndex 1 is the low-coordinate flat end cap, index 2 is the\nhigh-coordinate flat end cap, and index 3 is the curved cone surface.\nIn the last example above, a *cone* region is defined along the z-axis\nthat is open at the zlo value (e.g. for use as a funnel).\n\nFor all other styles, the *open* keyword is ignored. As indicated\nabove, this includes the *intersect* and *union* regions, though their\nsub-regions can be defined with the *open* keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently, only *block* style regions are supported by Kokkos. The\n > code using the region (such as a fix or compute) must also be\n > supported by Kokkos or no acceleration will occur. \n > \n\n----------\n", + "restrictions": "A prism cannot be of 0.0 thickness in any dimension; use a small z\nthickness for 2d simulations. For 2d simulations, the xz and yz\nparameters must be 0.0.\n", + "related": "[lattice ](https://docs.lammps.org/lattice.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), [group ](https://docs.lammps.org/group.html)\n" }, { "command": [ - "dump" + "fix temp/rescale", + "fix temp/rescale/kk" ], "syntax": [ - "dump ID group-ID style N file attribute1 attribute2 ..." + "fix ID group-ID temp/rescale N Tstart Tstop window fraction" ], "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -5657,39 +5222,11 @@ export const command_docs = [ "choices": [] }, { - "arg": "yaml", + "arg": "temp/rescale", "type": 3, "choices": [ - "atom", - "atom/adios", - "atom/gz", - "atom/zstd", - "cfg", - "cfg/gz", - "cfg/zstd", - "cfg/uef", - "custom", - "custom/gz", - "custom/zstd", - "custom/adios", - "dcd", - "grid", - "grid/vtk", - "h5md", - "image", - "local", - "local/gz", - "local/zstd", - "molfile", - "movie", - "netcdf", - "netcdf/mpiio", - "vtk", - "xtc", - "xyz", - "xyz/gz", - "xyz/zstd", - "yaml" + "temp/rescale", + "temp/rescale/kk" ] }, { @@ -5698,36 +5235,41 @@ export const command_docs = [ "choices": [] }, { - "arg": "file", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "attribute1", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "attribute2", + "arg": "window", + "type": 2, + "choices": [] + }, + { + "arg": "fraction", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be dumped\n* style = atom or atom/adios or atom/gz or atom/zstd or cfg or cfg/gz or cfg/zstd or cfg/uef or custom or custom/gz or custom/zstd or custom/adios or dcd or grid or grid/vtk or h5md or image or local or local/gz or local/zstd or molfile or movie or netcdf or netcdf/mpiio or vtk or xtc or xyz or xyz/gz or xyz/zstd or yaml\n* N = dump on timesteps which are multiples of N\n* file = name of file to write dump info to\n* attribute1,attribute2,... = list of attributes for a particular style \n *        atom attributes = none \n *        atom/adios attributes = none, discussed on [dump atom/adios ](https://docs.lammps.org/dump_adios.html) page \n *        atom/gz attributes = none \n *        atom/zstd attributes = none \n *        cfg attributes = same as custom attributes, see below \n *        cfg/gz attributes = same as custom attributes, see below \n *        cfg/zstd attributes = same as custom attributes, see below \n *        cfg/uef attributes = same as custom attributes, discussed on [dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html) page \n *        custom, custom/gz, custom/zstd attributes = see below \n *        custom/adios attributes = same as custom attributes, discussed on [dump custom/adios ](https://docs.lammps.org/dump_adios.html) page \n *        dcd attributes = none \n *        h5md attributes = discussed on [dump h5md ](https://docs.lammps.org/dump_h5md.html) page \n *        grid attributes = see below \n *        grid/vtk attributes = see below \n *        image attributes = discussed on [dump image ](https://docs.lammps.org/dump_image.html) page \n *        local, local/gz, local/zstd attributes = see below \n *        molfile attributes = discussed on [dump molfile ](https://docs.lammps.org/dump_molfile.html) page \n *        movie attributes = discussed on [dump image ](https://docs.lammps.org/dump_image.html) page \n *        netcdf attributes = discussed on [dump netcdf ](https://docs.lammps.org/dump_netcdf.html) page \n *        netcdf/mpiio attributes = discussed on [dump netcdf ](https://docs.lammps.org/dump_netcdf.html) page \n *        vtk attributes = same as custom attributes, see below, also [dump vtk ](https://docs.lammps.org/dump_vtk.html) page \n *        xtc attributes = none \n *        xyz attributes = none \n *        xyz/gz attributes = none \n *        xyz/zstd attributes = none \n *        yaml attributes = same as custom attributes, see below \n* custom or custom/gz or custom/zstd or cfg or cfg/gz or cfg/zstd or cfg/uef or netcdf or netcdf/mpiio or yaml attributes: \n *          possible attributes = id, mol, proc, procp1, type, element, mass, \n           x, y, z, xs, ys, zs, xu, yu, zu, \n           xsu, ysu, zsu, ix, iy, iz, \n           vx, vy, vz, fx, fy, fz, \n           q, mux, muy, muz, mu, \n           radius, diameter, omegax, omegay, omegaz, \n           angmomx, angmomy, angmomz, tqx, tqy, tqz, \n           c_ID, c_ID[I], f_ID, f_ID[I], v_name, \n           i_name, d_name, i2_name[I], d2_name[I] \n           id = atom ID \n           mol = molecule ID \n           proc = ID of processor that owns atom \n           procp1 = ID+1 of processor that owns atom \n           type = atom type \n           typelabel = atom [type label ](https://docs.lammps.org/Howto_type_labels.html) \n           element = name of atom element, as defined by [dump_modify ](https://docs.lammps.org/dump_modify.html) command \n           mass = atom mass \n           x,y,z = unscaled atom coordinates \n           xs,ys,zs = scaled atom coordinates \n           xu,yu,zu = unwrapped atom coordinates \n           xsu,ysu,zsu = scaled unwrapped atom coordinates \n           ix,iy,iz = box image that the atom is in \n           vx,vy,vz = atom velocities \n           fx,fy,fz = forces on atoms \n           q = atom charge \n           mux,muy,muz = orientation of dipole moment of atom \n           mu = magnitude of dipole moment of atom \n           radius,diameter = radius, diameter of spherical particle \n           omegax,omegay,omegaz = angular velocity of spherical particle \n           angmomx,angmomy,angmomz = angular momentum of aspherical particle \n           tqx,tqy,tqz = torque on finite-size particles \n           c_ID = per-atom vector calculated by a compute with ID \n           c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = per-atom vector calculated by a fix with ID \n           f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n           v_name = per-atom vector calculated by an atom-style variable with name \n           i_name = custom integer vector with name \n           d_name = custom floating point vector with name \n           i2_name[I] = Ith column of custom integer array with name, I can include wildcard (see below) \n           d2_name[I] = Ith column of custom floating point vector with name, I can include wildcard (see below) \n* local or local/gz or local/zstd attributes: \n *          possible attributes = index, c_ID, c_ID[I], f_ID, f_ID[I] \n           index = enumeration of local values \n           c_ID = local vector calculated by a compute with ID \n           c_ID[I] = Ith column of local array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = local vector calculated by a fix with ID \n           f_ID[I] = Ith column of local array calculated by a fix with ID, I can include wildcard (see below) \n* grid or grid/vtk attributes: \n *          possible attributes = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n           gname = name of grid defined by compute or fix \n           dname = name of data field defined by compute or fix \n           c_ID = per-grid vector calculated by a compute with ID \n           c_ID[I] = Ith column of per-grid array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = per-grid vector calculated by a fix with ID \n           f_ID[I] = Ith column of per-grid array calculated by a fix with ID, I can include wildcard (see below) \n", - "examples": "\n```lmps\ndump myDump all atom 100 dump.lammpstrj\ndump myDump all atom/gz 100 dump.atom.gz\ndump myDump all atom/zstd 100 dump.atom.zst\ndump 2 subgroup atom 50 dump.run.bin\ndump 4a all custom 100 dump.myforce.* id type x y vx fx\ndump 4a all custom 100 dump.myvel.lammpsbin id type x y z vx vy vz\ndump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke\ndump 4b flow custom 100 dump.%.myforce id type c_myF[*] v_ke\ndump 2 inner cfg 10 dump.snap.*.cfg mass type xs ys zs vx vy vz\ndump snap all cfg 100 dump.config.*.cfg mass type xs ys zs id type c_Stress[2]\ndump 1 all xtc 1000 file.xtc\n```\n", - "html_filename": "dump.html", - "short_description": "Dump a snapshot of quantities to one or more files once every\n\\(N\\) timesteps in one of several styles", - "description": "Dump a snapshot of quantities to one or more files once every\n\\(N\\) timesteps in one of several styles. The timesteps on which\ndump output is written can also be controlled by a variable. See the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\n\nAlmost all the styles output per-atom data, i.e. one or more values\nper atom. The exceptions are as follows. The *local* styles output\none or more values per bond (angle, dihedral, improper) or per pair of\ninteracting atoms (force or neighbor interactions). The *grid* styles\noutput one or more values per grid cell, which are produced by other\ncommands which overlay the simulation domain with a regular grid. See\nthe [Howto grid ](https://docs.lammps.org/Howto_grid.html) doc page for details. The *image*\nstyle renders a JPG, PNG, or PPM image file of the system for each\nsnapshot, while the *movie* style combines and compresses the series\nof images into a movie file; both styles are discussed in detail on\nthe [dump image ](https://docs.lammps.org/dump_image.html) page.\n\nOnly information for atoms in the specified group is dumped. The\n[dump_modify thresh and region and refresh ](https://docs.lammps.org/dump_modify.html)\ncommands can also alter what atoms are included. Not all styles\nsupport these options; see details on the [dump_modify](https://docs.lammps.org/dump_modify.html) doc page.\n\nAs described below, the filename determines the kind of output: text\nor binary or gzipped, one big file or one per timestep, one file for\nall the processors or multiple smaller files.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on timesteps\n > when neighbor lists are rebuilt, the coordinates of an atom written\n > to a dump file may be slightly outside the simulation box.\n > Re-neighbor timesteps will not typically coincide with the\n > timesteps dump snapshots are written. See the [dump_modify > pbc ](https://docs.lammps.org/dump_modify.html) command if you wish to force coordinates to be\n > strictly inside the simulation box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unless the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) option is invoked,\n > the lines of atom or grid information written to dump files\n > (typically one line per atom or grid cell) will be in an\n > indeterminate order for each snapshot. This is even true when\n > running on a single processor, if the [atom_modify sort > ](https://docs.lammps.org/atom_modify.html) option is on, which it is by default. In this case\n > atoms are re-ordered periodically during a simulation, due to\n > spatial sorting. It is also true when running in parallel, because\n > data for a single snapshot is collected from multiple processors,\n > each of which owns a subset of the atoms. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Without either including atom IDs or using the [dump_modify sort > ](https://docs.lammps.org/dump_modify.html) option, it is impossible for visualization programs\n > (e.g. OVITO or VMD) or analysis tools to assign data in different\n > frames consistently to the same atom. This can lead to incorrect\n > visualizations or results. LAMMPS will print a warning in such cases. \n > \n\nFor the *atom*, *custom*, *cfg*, *grid*, and *local* styles, sorting\nis off by default. For the *dcd*, *grid/vtk*, *xtc*, *xyz*, and\n*molfile* styles, sorting by atom ID or grid ID is on by default. See\nthe [dump_modify ](https://docs.lammps.org/dump_modify.html) page for details.\n\nThe *style* keyword determines what kind of data is written to the\ndump file(s) and in what format.\n\nNote that *atom*, *custom*, *dcd*, *xtc*, *xyz*, and *yaml* style dump\nfiles can be read directly by [VMD](https://www.ks.uiuc.edu/Research/vmd),\na popular tool for visualizing and analyzing trajectories from atomic\nand molecular systems. For reading *netcdf* style dump files, the\nnetcdf plugin needs to be recompiled from source using a NetCDF version\ncompatible with the one used by LAMMPS. The bundled plugin binary\nuses a very old version of NetCDF that is not compatible with LAMMPS.\n\nLikewise the [OVITO visualization package](https://www.ovito.org),\npopular for materials modeling, can read the *atom*, *custom*,\n*local*, *xtc*, *cfg*, *netcdf*, and *xyz* style atom dump files\ndirectly. With version 3.8 and above, OVITO can also read and\nvisualize *grid* style dump files with grid cell data, including\niso-surface images of the grid cell values.\n\nNote that settings made via the [dump_modify ](https://docs.lammps.org/dump_modify.html)\ncommand can also alter the format of individual values and content of\nthe dump file itself. This includes the precision of values output to\ntext-based dump files which is controlled by the [dump_modifyformat ](https://docs.lammps.org/dump_modify.html) command and its options.\n\n----------\n\nFormat of native LAMMPS format dump files:\n\nThe *atom*, *custom*, *grid*, and *local* styles create files in a\nsimple LAMMPS-specific text format that is mostly self-explanatory\nwhen viewing a dump file. Many post-processing tools either included\nwith LAMMPS or third-party tools can read this format, as does the\n[rerun ](https://docs.lammps.org/rerun.html) command. See tools described on the [Tools](https://docs.lammps.org/Tools.html) doc page for examples, including [Pizza.py](https://lammps.github.io/pizza).\n\nFor all these styles, the dimensions of the simulation box are\nincluded in each snapshot. The simulation box in LAMMPS can be\ndefined in one of 3 ways: orthogonal, restricted triclinic, and\ngeneral triclinic. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html)\ndoc page for a detailed description of all 3 options.\n\nFor an orthogonal simulation box the box information is formatted as:\n\n```\nITEM: BOX BOUNDS xx yy zz\nxlo xhi\nylo yhi\nzlo zhi\n```\nwhere xlo,xhi are the maximum extents of the simulation box in the\n\\(x\\)-dimension, and similarly for \\(y\\) and \\(z\\). The\n\"xx yy zz\" terms are six characters that encode the style of boundary for each\nof the six simulation box boundaries (xlo,xhi; ylo,yhi; and zlo,zhi). Each of\nthe six characters is one of *p* (periodic), *f* (fixed), *s* (shrink wrap),\nor *m* (shrink wrapped with a minimum value). See the\n[boundary ](https://docs.lammps.org/boundary.html) command for details.\n\nFor a restricted triclinic simulation box, an orthogonal bounding box\nwhich encloses the restricted triclinic simulation box is output,\nalong with the three tilt factors (*xy*, *xz*, *yz*) of the triclinic\nbox, formatted as follows:\n\n```\nITEM: BOX BOUNDS xy xz yz xx yy zz\nxlo_bound xhi_bound xy\nylo_bound yhi_bound xz\nzlo_bound zhi_bound yz\n```\nThe presence of the text \"xy xz yz\" in the ITEM line indicates that\nthe three tilt factors will be included on each of the three following lines.\nThis bounding box is convenient for many visualization programs. The\nmeaning of the six character flags for \"xx yy zz\" is the same as above.\n\nNote that the first two numbers on each line are now xlo_bound instead\nof xlo, etc. because they represent a bounding box. See the [Howtotriclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a geometric description of\ntriclinic boxes, as defined by LAMMPS, simple formulas for how the six\nbounding box extents (xlo_bound, xhi_bound, etc.) are calculated from the\ntriclinic parameters, and how to transform those parameters to and\nfrom other commonly used triclinic representations.\n\nFor a general triclinic simulation box, see the \"General triclinic\"\nsection below for a description of the ITEM: BOX BOUNDS format as well\nas how per-atom coordinates and per-atom vector quantities are output.\n\nThe *atom* and *custom* styles output a \"ITEM: NUMBER OF ATOMS\" line\nwith the count of atoms in the snapshot. Likewise they output an\n\"ITEM: ATOMS\" line which includes column descriptors for the per-atom\nlines that follow. For example, the descriptors would be \"id type xs\nys zs\" for the default *atom* style, and would be the atom attributes\nyou specify in the dump command for the *custom* style. Each\nsubsequent line will list the data for a single atom.\n\nFor style *atom*, atom coordinates are written to the file, along with\nthe atom ID and atom type. By default, atom coords are written in a\nscaled format (from 0 to 1). That is, an \\(x\\) value of 0.25 means the\natom is at a location 1/4 of the distance from *xlo* to *xhi* of the box\nboundaries. The format can be changed to unscaled coords via the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) settings. Image flags can also be\nadded for each atom via dump_modify.\n\nStyle *custom* allows you to specify a list of atom attributes to be\nwritten to the dump file for each atom. Possible attributes are\nlisted above and will appear in the order specified. You cannot\nspecify a quantity that is not defined for a particular\nsimulation---such as *q* for atom style *bond*, since that atom style\ndoes not assign charges. Dumps occur at the very end of a timestep,\nso atom attributes will include effects due to fixes that are applied\nduring the timestep. An explanation of the possible dump custom\nattributes is given below.\n\nFor style *grid* the dimension of the simulation domain and size of\nthe Nx by Ny by Nz grid that overlays the simulation domain are also\noutput with each snapshot:\n\n```\nITEM: DIMENSION\ndim\nITEM: GRID SIZE\nnx ny nz\n```\nThe value dim will be 2 or 3 for 2d or 3d simulations. It is included\nso that post-processing tools like [OVITO](https://www.ovito.org),\nwhich can visualize grid-based quantities know how to draw each grid\ncell. The grid size will match the input script parameters for\ngrid(s) created by the computes or fixes which are referenced by the\nthe dump command. For 2d simulations (and grids), nz will always\nbe 1.\n\nThere will also be an \"ITEM: GRID DATA\" line which includes column\ndescriptors for the per grid cell data. Each subsequent line (Nx *\nNy * Nz lines) will list the data for a single grid cell. If grid\ncell IDs are included in the output via the [computeproperty/grid ](https://docs.lammps.org/compute_property_grid.html) command, then the IDs will\nrange from 1 to N = Nx*Ny*Nz. The ordering of IDs is with the x index\nvarying fastest, then the y index, and the z index varying slowest.\n\nFor style *local*, local output generated by [computes ](https://docs.lammps.org/compute.html)\nand [fixes ](https://docs.lammps.org/fix.html) is used to generate lines of output that is\nwritten to the dump file. This local data is typically calculated by\neach processor based on the atoms it owns, but there may be zero or\nmore entities per atom (e.g., a list of bond distances). An explanation\nof the possible dump local attributes is given below. Note that by\nusing input from the [compute property/local](https://docs.lammps.org/compute_property_local.html) command with dump local, it is possible to\ngenerate information on bonds, angles, etc. that can be cut and pasted\ndirectly into a data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\n----------\n\nDump files in other popular formats:\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This section only discusses file formats relevant to this doc page.\n > The top of this page has links to other dump commands (with their\n > own pages) which write files in additional popular formats. \n > \n\nStyle *cfg* has the same command syntax as style *custom* and writes\nextended CFG format files, as used by the [AtomEye](http://li.mit.edu/Archive/Graphics/A/) visualization package.\nSince the extended CFG format uses a single snapshot of the system per\nfile, a wildcard \"\\*\" must be included in the filename, as discussed\nbelow. The list of atom attributes for style *cfg* must begin with\neither \"mass type xs ys zs\" or \"mass type xsu ysu zsu\" since these\nquantities are needed to write the CFG files in the appropriate format\n(though the \"mass\" and \"type\" fields do not appear explicitly in the\nfile). Any remaining attributes will be stored as \"auxiliary\nproperties\" in the CFG files. Note that you will typically want to\nuse the [dump_modify element ](https://docs.lammps.org/dump_modify.html) command with\nCFG-formatted files, to associate element names with atom types, so\nthat AtomEye can render atoms appropriately. When unwrapped\ncoordinates *xsu*, *ysu*, and *zsu* are requested, the nominal AtomEye\nperiodic cell dimensions are expanded by a large factor UNWRAPEXPAND =\n10.0, which ensures atoms that are displayed correctly for up to\nUNWRAPEXPAND/2 periodic boundary crossings in any direction. Beyond\nthis, AtomEye will rewrap the unwrapped coordinates. The expansion\ncauses the atoms to be drawn farther away from the viewer, but it is\neasy to zoom the atoms closer, and the interatomic distances are\nunaffected.\n\nThe *dcd* style writes DCD files, a standard atomic trajectory format\nused by the CHARMM, NAMD, and XPlor molecular dynamics packages. DCD\nfiles are binary and thus may not be portable to different machines.\nThe number of atoms per snapshot cannot change with the *dcd* style.\nThe *unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command\nallows DCD coordinates to be written \"unwrapped\" by the image flags\nfor each atom. Unwrapped means that if the atom has passed through\na periodic boundary one or more times, the value is printed for what\nthe coordinate would be if it had not been wrapped back into the\nperiodic box. Note that these coordinates may thus be far outside\nthe box size stored with the snapshot.\n\nThe *xtc* style writes XTC files, a compressed trajectory format used\nby the GROMACS molecular dynamics package, and described [here](https://manual.gromacs.org/current/reference-manual/file-formats.html#xtc).\nThe precision used in XTC files can be adjusted via the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) command. The default value of 1000\nmeans that coordinates are stored to 1/1000 nanometer accuracy. XTC\nfiles are portable binary files written in the NFS XDR data format, so\nthat any machine which supports XDR should be able to read them. The\nnumber of atoms per snapshot cannot change with the *xtc* style. The\n*unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command allows\nXTC coordinates to be written \"unwrapped\" by the image flags for each\natom. Unwrapped means that if the atom has passed through a periodic\nboundary one or more times, the value is printed for what the\ncoordinate would be if it had not been wrapped back into the periodic\nbox. Note that these coordinates may thus be far outside the box size\nstored with the snapshot.\n\nThe *xyz* style writes XYZ files, which is a simple text-based\ncoordinate format that many codes can read. Specifically it has a line\nwith the number of atoms, then a comment line that is usually ignored\nfollowed by one line per atom with the atom type and the \\(x\\)-,\n\\(y\\)-, and \\(z\\)-coordinate of that atom. You can use the\n[dump_modify element ](https://docs.lammps.org/dump_modify.html) option to change the output\nfrom using the (numerical) atom type to an element name (or some other\nlabel). This option will help many visualization programs to guess bonds\nand colors. You can use the [dump_modify types labels ](https://docs.lammps.org/dump_modify.html)\noption to replace numeric atom types with [type labels ](https://docs.lammps.org/Howto_type_labels.html).\n\nThe *grid/vtk* style writes VTK files for grid data on a regular\nrectilinear grid. Its content is conceptually similar to that of the\ntext file produced by the *grid* style, except that it in an XML-based\nformat which visualization programs which support the VTK format can\nread, e.g. the [ParaView tool](https://www.paraview.org). For this\nstyle, there can only be 1 or 3 per grid cell attributes specified.\nIf it is a single value, it is a scalar quantity. If 3 values are\nspecified it is encoded in the VTK file as a vector quantity (for each\ngrid cell). The filename for this style must include a \"\\*\" wildcard\ncharacter to produce one file per snapshot; see details below.\n\nDump style *yaml* has the same command syntax as style *custom* and\nwrites YAML format files that can be easily parsed by a variety of\ndata processing tools and programming languages. Each timestep will\nbe written as a YAML \"document\" (i.e., starts with \"---\" and ends with\n\"...\"). The style supports writing one file per timestep through the\n\"\\*\" wildcard but not multi-processor outputs with the \"%\" token in\nthe filename. In addition to per-atom data, [thermo ](https://docs.lammps.org/thermo.html)\ndata can be included in the *yaml* style dump file using the\n[dump_modify thermo yes ](https://docs.lammps.org/dump_modify.html). The data included in the\ndump file uses the \"thermo\" tag and is otherwise identical to data\nspecified by the [thermo_style ](https://docs.lammps.org/thermo_style.html) command.\n\nBelow is an example for a YAML format dump created by the following commands.\n\n```lmps\ndump out all yaml 100 dump.yaml id type x y z vx vy vz ix iy iz\ndump_modify out time yes units yes thermo yes format 1 %5d format \"% 10.6e\"\n```\nThe tags \"time\", \"units\", and \"thermo\" are optional and enabled by the\ndump_modify command. The list under the \"box\" tag has three lines for\northogonal boxes and four lines for triclinic boxes, where the first\nthree are the box boundaries and the fourth the three tilt factors\n(\\(xy\\), \\(xz\\), \\(yz\\)). The \"thermo\" data follows the\nformat of the *yaml* thermo style. The \"keywords\" tag lists the\nper-atom properties contained in the \"data\" columns, which contain a\nlist with one line per atom. The keywords may be renamed using the\ndump_modify command same as for the *custom* dump style.\n\n```yaml\n---\ncreator: LAMMPS\ntimestep: 0\nunits: lj\ntime: 0\nnatoms: 4000\nboundary: [ p, p, p, p, p, p, ]\nthermo:\n- keywords: [ Step, Temp, E_pair, E_mol, TotEng, Press, ]\n- data: [ 0, 0, -27093.472213010766, 0, 0, 0, ]\nbox:\n- [ 0, 16.795961913825074 ]\n- [ 0, 16.795961913825074 ]\n- [ 0, 16.795961913825074 ]\n- [ 0, 0, 0 ]\nkeywords: [ id, type, x, y, z, vx, vy, vz, ix, iy, iz, ]\ndata:\n- [ 1 , 1 , 0.000000e+00 , 0.000000e+00 , 0.000000e+00 , -1.841579e-01 , -9.710036e-01 , -2.934617e+00 , 0 , 0 , 0, ]\n- [ 2 , 1 , 8.397981e-01 , 8.397981e-01 , 0.000000e+00 , -1.799591e+00 , 2.127197e+00 , 2.298572e+00 , 0 , 0 , 0, ]\n- [ 3 , 1 , 8.397981e-01 , 0.000000e+00 , 8.397981e-01 , -1.807682e+00 , -9.585130e-01 , 1.605884e+00 , 0 , 0 , 0, ]\n\n[...]\n...\n---\ntimestep: 100\nunits: lj\ntime: 0.5\n\n[...]\n\n...\n```\n----------\n\nFrequency of dump output:\n\nDumps are performed on timesteps that are a multiple of \\(N\\)\n(including timestep 0) and on the last timestep of a minimization if\nthe minimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of \\(N\\). This behavior\ncan be changed via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command,\nwhich can also be useful if the dump command is invoked after a\nminimization ended on an arbitrary timestep.\n\nThe value of \\(N\\) can be changed between runs by using the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command (not allowed for *dcd*\nstyle). The [dump_modify every ](https://docs.lammps.org/dump_modify.html) command also\nallows a variable to be used to determine the sequence of timesteps on\nwhich dump files are written. In this mode a dump on the first\ntimestep of a run will also not be written unless the\n[dump_modify first ](https://docs.lammps.org/dump_modify.html) command is used.\n\nIf you instead want to dump snapshots based on simulation time (in\ntime units of the [units` command), the :doc:`dump_modifyevery/time ](https://docs.lammps.org/dump_modify.html) command can be used. This can be useful\nwhen the timestep size varies during a simulation run, e.g. by use of\nthe [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) command.\n\n----------\n\nDump filenames:\n\nThe specified dump filename determines how the dump file(s) is\nwritten. The default is to write one large text file, which is opened\nwhen the dump command is invoked and closed when an [undump](https://docs.lammps.org/undump.html) command is used or when LAMMPS exits. For the *dcd* and\n*xtc* styles, this is a single large binary file.\n\nMany of the styles allow dump filenames to contain either or both of\ntwo wildcard characters. If a \"\\*\" character appears in the filename,\nthen one file per snapshot is written and the \"\\*\" character is\nreplaced with the timestep value. For example, tmp.dump.\\* becomes\ntmp.dump.0, tmp.dump.10000, tmp.dump.20000, etc. This option is not\navailable for the *dcd* and *xtc* styles. Note that the\n[dump_modify pad ](https://docs.lammps.org/dump_modify.html) command can be used to ensure all\ntimestep numbers are the same length (e.g., 00010), which can make it\neasier to read a series of dump files in order with some\npost-processing tools.\n\nIf a \"%\" character appears in the filename, then each of P processors\nwrites a portion of the dump file, and the \"%\" character is replaced\nwith the processor ID from \\(0\\) to \\(P-1\\). For example,\ntmp.dump.% becomes tmp.dump.0, tmp.dump.1, ... tmp.dump.\\(P-1\\),\netc. This creates smaller files and can be a fast mode of output on\nparallel machines that support parallel I/O for output. This option is\n**not** available for the *dcd*, *xtc*, *xyz*, *grid/vtk*, and *yaml*\nstyles.\n\nBy default, \\(P\\) is the the number of processors, meaning one file per\nprocessor, but \\(P\\) can be set to a smaller value via the *nfile* or\n*fileper* keywords of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command.\nThese options can be the most efficient way of writing out dump files\nwhen running on large numbers of processors.\n\nNote that using the \"\\*\" and \"%\" characters together can produce a\nlarge number of small dump files!\n\n **Deprecated in version 21Nov2023** \n\nThe MPIIO package and the the corresponding \"/mpiio\" dump styles, except\nfor the unrelated \"netcdf/mpiio\" style were removed from LAMMPS.\n\n----------\n\nCompression of dump file data:\n\nIf the specified filename ends with \".bin\" or \".lammpsbin\", the dump\nfile (or files, if \"\\*\" or \"%\" is also used) is written in binary\nformat. A binary dump file will be about the same size as a text\nversion, but will typically write out much faster. Of course, when\npost-processing, you will need to convert it back to text format (see\nthe :ref:`binary2txt tool `) or write your own code to read\nthe binary file. The format of the binary file can be understood by\nlooking at the :file:`tools/binary2txt.cpp` file. This option is only\navailable for the *atom* and *custom* styles.\n\nIf the filename ends with \".gz\", the dump file (or files, if \"\\*\" or \"%\"\nis also used) is written in gzipped format. A gzipped dump file will be\nabout \\(3\\times\\) smaller than the text version, but will also take\nlonger to write. This option is not available for the *dcd* and *xtc*\nstyles.\n\nNote that styles that end with *gz* are identical in command syntax to\nthe corresponding styles without \"gz\", however, they generate\ncompressed files using the zlib library. Thus the filename suffix\n\".gz\" is mandatory. This is an alternative approach to writing\ncompressed files via a pipe, as done by the regular dump styles, which\nmay be required on clusters where the interface to the high-speed\nnetwork disallows using the fork() library call (which is needed for a\npipe). For the remainder of this page, you should thus consider the\n*atom* and *atom/gz* styles (etc.) to be inter-changeable, with the\nexception of the required filename suffix.\n\nSimilarly, styles that end with *zstd* are identical to the gz styles,\nbut use the Zstd compression library instead and require a \".zst\"\nsuffix. See the [dump_modify ](https://docs.lammps.org/dump_modify.html) page for details on\nhow to control the compression level in both variants.\n\n----------\n\nGeneral triclinic simulation box output for the *atom* and *custom* styles:\n\nAs mentioned above, the simulation box can be defined as a general\ntriclinic box, which means that 3 arbitrary box edge vectors **A**,\n**B**, **C** can be specified. See the [Howto triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed description of general\ntriclinic boxes.\n\nThis option is provided as a convenience for users who may be\nconverting data from solid-state crystallographic representations or\nfrom DFT codes for input to LAMMPS. However, as explained on the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally, LAMMPS\nonly uses restricted triclinic simulation boxes. This means the box\nand per-atom information (e.g. coordinates, velocities) LAMMPS stores\nare converted (rotated) from general to restricted triclinic form when\nthe system is created.\n\nFor dump output, if the [dump_modify triclinic/general](https://docs.lammps.org/dump_modify.html) command is used, the box description and per-atom\ncoordinates and other per-atom vectors will be converted (rotated)\nfrom restricted to general form when each dump file snapshots is\noutput. This option can only be used if the simulation box was\ninitially created as general triclinic. If the option is not used,\nand the simulation box is general triclinic, then the dump file\nsnapshots will reflect the internal restricted triclinic geometry.\n\nThe dump_modify triclinic/general option affects 3 aspects of the dump\nfile output.\n\nFirst, the format for the BOX BOUNDS is as follows\n\n```\nITEM: BOX BOUNDS abc origin\nax ay az originx\nbx by bz originy\ncx cy cz originz\n```\nwhere the **A** edge vector of the box is (ax,ay,az) and similarly\nfor **B** and **C**. The origin of all 3 edge vectors is (originx,\noriginy, originz).\n\nSecond, the coordinates of each atom are converted (rotated) so that\nthe atom is inside (or near) the general triclinic box defined by the\n**A**, **B**, **C** edge vectors. For style *atom*, this only alters\noutput for unscaled atom coords, via the [dump_modify scaled no](https://docs.lammps.org/dump_modify.html) setting. For style *custom*, this alters output for\neither unscaled or unwrapped output of atom coords, via the *x,y,z* or\n*xu,yu,zu* attributes. For output of scaled atom coords by both\nstyles, there is no difference between restricted and general\ntriclinic values.\n\nThird, the output for any attribute of the *custom* style which\nrepresents a per-atom vector quantity will be converted (rotated) to\nbe oriented consistent with the general triclinic box and its\norientation relative to the standard xyz coordinate axes.\n\nThis applies to the following *custom* style attributes:\n\n* vx,vy,vz = atom velocities\n* fx,fy,fz = forces on atoms\n* mux,muy,muz = orientation of dipole moment of atom\n* omegax,omegay,omegaz = angular velocity of spherical particle\n* angmomx,angmomy,angmomz = angular momentum of aspherical particle\n* tqx,tqy,tqz = torque on finite-size particles\n\nFor example, if the velocity of an atom in a restricted triclinic box\nis along the x-axis, then it will be output for a general triclinic\nbox as a vector along the **A** edge vector of the box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *custom*, the [dump_modify thresh ](https://docs.lammps.org/dump_modify.html)\n > command may access per-atom attributes either directly or\n > indirectly through a compute or variable. If the attribute is an\n > atom coordinate or one of the vectors mentioned above, its value\n > will *NOT* be a general triclinic (rotated) value. Rather it will\n > be a restricted triclinic value. \n > \n\n----------\n\nArguments for different styles:\n\nThe sections below describe per-atom, local, and per grid cell\nattributes which can be used as arguments to the various styles.\n\nNote that in the discussion below, for styles which can reference\nvalues from a compute or fix or custom atom property, like the\n*custom* , *cfg* , *grid* or *local* styles, the bracketed index\n\\(i\\) can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of columns in\nthe array, then an asterisk with no numeric values means all column\nindices from 1 to \\(N\\). A leading asterisk means all indices\nfrom 1 to n (inclusive). A trailing asterisk means all indices from m\nto \\(N\\) (inclusive). A middle asterisk means all indices from m\nto n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two dump commands are\nequivalent, since the [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\ncommand creates a per-atom array with six columns:\n\n```lmps\ncompute myPress all stress/atom NULL\ndump 2 all custom 100 tmp.dump id myPress[*]\ndump 2 all custom 100 tmp.dump id myPress[1] myPress[2] myPress[3] &\nmyPress[4] myPress[5] myPress[6]\n```\n----------\n\nPer-atom attributes used as arguments to the *custom* and *cfg* styles:\n\nThe *id*, *mol*, *proc*, *procp1*, *type*, *typelabel*, *element*, *mass*,\n*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *q* attributes are self-explanatory.\n\n*Id* is the atom ID. *Mol* is the molecule ID, included in the data file\nfor molecular systems. *Proc* is the ID of the processor (0 to\n\\(N_\\text{procs}-1\\)) that currently owns the atom. *Procp1* is the\nproc ID+1, which can be convenient in place of a *type* attribute (1 to\n\\(N_\\text{types}\\)) for coloring atoms in a visualization program.\n*Type* is the atom type (1 to \\(N_\\text{types}\\)). *Typelabel* is the\natom [type label ](https://docs.lammps.org/Howto_type_labels.html). *Element* is typically the\nchemical name of an element, which you must assign to each type via the\n[dump_modify element ](https://docs.lammps.org/dump_modify.html) command. More generally, it can\nbe any string you wish to associated with an atom type. *Mass* is the atom\nmass. The quantities *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, and *q* are\ncomponents of atom velocity and force and atomic charge.\n\nThere are several options for outputting atom coordinates. The *x*,\n*y*, and *z* attributes write atom coordinates \"unscaled\", in the\nappropriate distance [units ](https://docs.lammps.org/units.html) (\\(\\mathring{\\textrm{A}}\\),\n\\(\\sigma\\), etc.). Use *xs*, *ys*, and *zs* if you want the\ncoordinates \"scaled\" to the box size so that each value is 0.0 to 1.0.\nIf the simulation box is triclinic (tilted), then all atom coords will\nstill be between 0.0 and 1.0. The actual unscaled \\((x,y,z)\\)\ncoordinate is \\(x_s a + y_s b + z_s c\\), where \\((a,b,c)\\) are\nthe non-orthogonal vectors of the simulation box edges, as discussed on\nthe [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page.\n\nUse *xu*, *yu*, and *zu* if you want the coordinates \"unwrapped\" by the\nimage flags for each atom. Unwrapped means that if the atom has passed\nthrough a periodic boundary one or more times, the value is printed for\nwhat the coordinate would be if it had not been wrapped back into the\nperiodic box. Note that using *xu*, *yu*, and *zu* means that the\ncoordinate values may be far outside the box bounds printed with the\nsnapshot. Using *xsu*, *ysu*, and *zsu* is similar to using *xu*, *yu*,\nand *zu*, except that the unwrapped coordinates are scaled by the box\nsize. Atoms that have passed through a periodic boundary will have the\ncorresponding coordinate increased or decreased by 1.0.\n\nThe image flags can be printed directly using the *ix*, *iy*, and *iz*\nattributes. For periodic dimensions, they specify which image of the\nsimulation box the atom is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of \\(-1\\) means subtract 1 box length to\nget the true value. LAMMPS updates these flags as atoms cross\nperiodic boundaries during the simulation.\n\nThe *mux*, *muy*, and *muz* attributes are specific to dipolar systems\ndefined with an atom style of *dipole* . They give the orientation of\nthe atom's point dipole moment. The *mu* attribute gives the magnitude\nof the atom's dipole moment.\n\nThe *radius* and *diameter* attributes are specific to spherical\nparticles that have a finite size, such as those defined with an atom\nstyle of *sphere* .\n\nThe *omegax*, *omegay*, and *omegaz* attributes are specific to\nfinite-size spherical particles that have an angular velocity. Only\ncertain atom styles, such as *sphere*, define this quantity.\n\nThe *angmomx*, *angmomy*, and *angmomz* attributes are specific to\nfinite-size aspherical particles that have an angular momentum. Only\nthe *ellipsoid* atom style defines this quantity.\n\nThe *tqx*, *tqy*, and *tqz* attributes are for finite-size particles\nthat can sustain a rotational torque due to interactions with other\nparticles.\n\nThe *c_ID* and *c_ID[I]* attributes allow per-atom vectors or arrays\ncalculated by a [compute ](https://docs.lammps.org/compute.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the compute that has\nbeen defined previously in the input script. See the [compute](https://docs.lammps.org/compute.html) command for details. There are computes for calculating the\nper-atom energy, stress, centro-symmetry parameter, and coordination\nnumber of individual atoms.\n\nNote that computes which calculate global or local quantities, as\nopposed to per-atom quantities, cannot be output in a dump custom\ncommand. Instead, global quantities can be output by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command, and local quantities\ncan be output by the dump local command.\n\nIf *c_ID* is used as a attribute, then the per-atom vector calculated by\nthe compute is printed. If *c_ID[i]* is used, then \\(i\\) must be in\nthe range from 1 to \\(M\\), which will print the \\(i\\)\\ th column\nof the per-atom array with \\(M\\) columns calculated by the compute.\nSee the discussion above for how \\(i\\) can be specified with a\nwildcard asterisk to effectively specify multiple values.\n\nThe *f_ID* and *f_ID[I]* attributes allow vector or array per-atom\nquantities calculated by a [fix ](https://docs.lammps.org/fix.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the fix that has been\ndefined previously in the input script. The [fix ave/atom](https://docs.lammps.org/fix_ave_atom.html) command is one that calculates per-atom quantities.\nSince it can time-average per-atom quantities produced by any\n[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or atom-style [variable](https://docs.lammps.org/variable.html), this allows those time-averaged results to be written to a\ndump file.\n\nIf *f_ID* is used as a attribute, then the per-atom vector calculated by\nthe fix is printed. If *f_ID[i]* is used, then \\(i\\) must be in the\nrange from 1 to \\(M\\), which will print the \\(i\\)\\ th column of\nthe per-atom array with \\(M\\) columns calculated by the fix. See\nthe discussion above for how \\(i\\) can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *v_name* attribute allows per-atom vectors calculated by a\n[variable ](https://docs.lammps.org/variable.html) to be output. The name in the attribute\nshould be replaced by the actual name of the variable that has been\ndefined previously in the input script. Only an atom-style variable can\nbe referenced, since it is the only style that generates per-atom\nvalues. Variables of style *atom* can reference individual atom\nattributes, per-atom attributes, thermodynamic keywords, or invoke other\ncomputes, fixes, or variables when they are evaluated, so this is a very\ngeneral means of creating quantities to output to a dump file.\n\nThe *i_name*, *d_name*, *i2_name*, *d2_name* attributes refer to\ncustom per-atom integer and floating-point vectors or arrays that have\nbeen added via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\ncommand. When that command is used specific names are given to each\nattribute which are the \"name\" portion of these keywords. For arrays\n*i2_name* and *d2_name*, the column of the array must also be included\nfollowing the name in brackets (e.g., d2_xyz[i], i2_mySpin[i], where\n\\(i\\) is in the range from 1 to \\(M\\), where \\(M\\) is the\nnumber of columns in the custom array). See the discussion above for\nhow \\(i\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nSee the [Modify ](https://docs.lammps.org/Modify.html) page for information on how to add\nnew compute and fix styles to LAMMPS to calculate per-atom quantities\nwhich could then be output into dump files.\n\n----------\n\nAttributes used as arguments to the *local* style:\n\nThe *index* attribute can be used to generate an index number from 1\nto N for each line written into the dump file, where N is the total\nnumber of local datums from all processors, or lines of output that\nwill appear in the snapshot. Note that because data from different\nprocessors depend on what atoms they currently own, and atoms migrate\nbetween processor, there is no guarantee that the same index will be\nused for the same info (e.g. a particular bond) in successive\nsnapshots.\n\nThe *c_ID* and *c_ID[I]* attributes allow local vectors or arrays\ncalculated by a [compute ](https://docs.lammps.org/compute.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the compute that has\nbeen defined previously in the input script. See the\n[compute ](https://docs.lammps.org/compute.html) command for details. There are computes for\ncalculating local information such as indices, types, and energies for\nbonds and angles.\n\nNote that computes which calculate global or per-atom quantities, as\nopposed to local quantities, cannot be output in a dump local command.\nInstead, global quantities can be output by the [thermo_stylecustom ](https://docs.lammps.org/thermo_style.html) command, and per-atom quantities can be output\nby the dump custom command.\n\nIf *c_ID* is used as a attribute, then the local vector calculated by\nthe compute is printed. If *c_ID[I]* is used, then I must be in the\nrange from 1-M, which will print the Ith column of the local array\nwith M columns calculated by the compute. See the discussion above\nfor how I can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nThe *f_ID* and *f_ID[I]* attributes allow local vectors or arrays\ncalculated by a [fix ](https://docs.lammps.org/fix.html) to be output. The ID in the attribute\nshould be replaced by the actual ID of the fix that has been defined\npreviously in the input script.\n\nIf *f_ID* is used as a attribute, then the local vector calculated by\nthe fix is printed. If *f_ID[I]* is used, then I must be in the\nrange from 1-M, which will print the Ith column of the local with M\ncolumns calculated by the fix. See the discussion above for how I can\nbe specified with a wildcard asterisk to effectively specify multiple\nvalues.\n\nHere is an example of how to dump bond info for a system, including\nthe distance and energy of each bond:\n\n```lmps\ncompute 1 all property/local batom1 batom2 btype\ncompute 2 all bond/local dist eng\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_2[1] c_2[2]\n```\n----------\n\nAttributes used as arguments to the *grid* and *grid/vtk* styles:\n\nThe attributes that begin with *c_ID* and *f_ID* both take\ncolon-separated fields *gname* and *dname*. These refer to a grid\nname and data field name which is defined by the compute or fix. Note\nthat a compute or fix can define one or more grids (of different\nsizes) and one or more data fields for each of those grids. The sizes\nof all grids output in a single dump grid command must be the same.\n\nThe *c_ID:gname:dname* and *c_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [compute ](https://docs.lammps.org/compute.html) to\nbe output. The ID in the attribute should be replaced by the actual\nID of the compute that has been defined previously in the input\nscript.\n\nIf *c_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the compute is printed. If *c_ID:gname:dname[I]* is\nused, then I must be in the range from 1-M, which will print the Ith\ncolumn of the per-grid array with M columns calculated by the compute.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *f_ID:gname:dname* and *f_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [fix ](https://docs.lammps.org/fix.html) to be\noutput. The ID in the attribute should be replaced by the actual ID\nof the fix that has been defined previously in the input script.\n\nIf *f_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the fix is printed. If *f_ID:gname:dname[I]* is used,\nthen I must be in the range from 1-M, which will print the Ith column\nof the per-grid with M columns calculated by the fix. See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\n----------\n", - "restrictions": "To write gzipped dump files, you must either compile LAMMPS with the\n-DLAMMPS_GZIP option or use the styles from the COMPRESS package.\nSee the [Build settings ](https://docs.lammps.org/Build_settings.html) page for details.\n\nWhile a dump command is active (i.e., has not been stopped by using\nthe [undump command ](https://docs.lammps.org/undump.html)), no commands may be used that will\nchange the timestep (e.g., [reset_timestep ](https://docs.lammps.org/reset_timestep.html)).\nLAMMPS will terminate with an error otherwise.\n\nThe *atom/gz*, *cfg/gz*, *custom/gz*, and *xyz/gz* styles are part of\nthe COMPRESS package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThe *xtc*, *dcd*, and *yaml* styles are part of the EXTRA-DUMP package.\nThey are only enabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump atom/adios ](https://docs.lammps.org/dump_adios.html), [dump custom/adios ](https://docs.lammps.org/dump_adios.html),\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html), [dump h5md ](https://docs.lammps.org/dump_h5md.html),\n[dump image ](https://docs.lammps.org/dump_image.html), [dump molfile ](https://docs.lammps.org/dump_molfile.html),\n[dump netcdf ](https://docs.lammps.org/dump_netcdf.html), [dump netcdf/mpiio ](https://docs.lammps.org/dump_netcdf.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html),\n[write_dump ](https://docs.lammps.org/write_dump.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/rescale = style name of this fix command\n* N = perform rescaling every N steps\n* Tstart,Tstop = desired temperature at start/end of run (temperature units) \n *        Tstart can be a variable (see below) \n* window = only rescale if temperature is outside this window (temperature units)\n* fraction = rescale to target temperature by this fraction \n", + "examples": "\n```lmps\nfix 3 flow temp/rescale 100 1.0 1.1 0.02 0.5\nfix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0\nfix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0\n```\n", + "html_filename": "fix_temp_rescale.html", + "short_description": "Reset the temperature of a group of atoms by explicitly rescaling\ntheir velocities", + "description": "Reset the temperature of a group of atoms by explicitly rescaling\ntheir velocities.\n\nThe rescaling is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration if finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with this fix. The translational degrees of freedom can\nalso have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nRescaling is performed every N timesteps. The target temperature is a\nramped value between the *Tstart* and *Tstop* temperatures at the\nbeginning and end of the run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This thermostat will generate an error if the current\n > temperature is zero at the end of a timestep it is invoked on. It\n > cannot rescale a zero temperature. \n > \n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nRescaling is only performed if the difference between the current and\ndesired temperatures is greater than the *window* value. The amount\nof rescaling that is applied is a *fraction* (from 0.0 to 1.0) of the\ndifference between the actual and desired temperature. E.g. if\n*fraction* = 1.0, the temperature is reset to exactly the desired\nvalue.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, this fix should not normally\n > be used on atoms that also have their temperature controlled by\n > another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if one of this command had\nbeen issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) for details. Note that the\nID of the new compute is the fix-ID + underscore + \"temp\", and the\ngroup for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the fix continues in an uninterrupted\nfashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "fix_modify AtC boundary_faceset" + "fix_modify AtC atom_element_map" ], "syntax": [ - "fix_modify boundary_faceset " + "fix_modify atom_element_map []" ], "args": [ [ @@ -5742,270 +5284,231 @@ export const command_docs = [ "choices": [] }, { - "arg": "boundary_faceset", + "arg": "atom_element_map", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 3, "choices": [ - "is", - "add" + "eulerian", + "lagrangian" ] }, { - "arg": "", + "arg": "[]", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary_faceset = name of the AtC sub-command\n* is or add = select whether to select or add a faceset\n* faceset_name = name of the faceset \n", - "examples": "\n```lmps\nfix_modify AtC boundary_faceset is obndy\n```\n", - "html_filename": "atc_boundary_faceset.html", - "short_description": "This command species the faceset name when using a faceset to compute\nthe MD/FE boundary fluxes", - "description": "This command species the faceset name when using a faceset to compute\nthe MD/FE boundary fluxes. The faceset must already exist.\n", - "restrictions": "This is only valid when *fe_md_boundary* is set to *faceset* .\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fe_md_boundary ](https://docs.lammps.org/atc_fe_md_boundary.html)\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* atom_element_map = name of the AtC sub-command\n* eulerian or lagrangian = frame of reference\n* frequency = frequency of updating atom-to-continuum maps based on the current configuration - (only for eulerian) \n", + "examples": "\n```lmps\nfix_modify AtC atom_element_map eulerian 100\n```\n", + "html_filename": "atc_atom_element_map.html", + "short_description": "Changes frame of reference from *eulerian* to *lagrangian* or vice versa\nand sets the frequency for which the map from atoms to elements is\nreformed and all the attendant data is recalculated", + "description": "Changes frame of reference from *eulerian* to *lagrangian* or vice versa\nand sets the frequency for which the map from atoms to elements is\nreformed and all the attendant data is recalculated.\n", + "restrictions": "Cannot change map type after initialization.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix adapt/fep" + "shell" ], "syntax": [ - "fix ID group-ID adapt/fep N attribute args ... keyword value ..." + "shell command args" ], "args": [ [ { - "arg": "fix", + "arg": "shell", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "putenv", + "type": 3, + "choices": [ + "cd", + "mkdir", + "mv", + "rm", + "rmdir", + "putenv" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* command = cd or mkdir or mv or rm or rmdir or putenv or arbitrary command \n *        cd arg = dir \n         dir = directory to change to \n *        mkdir args = dir1 dir2 ... \n         dir1,dir2 = one or more directories to create \n *        mv args = old new \n         old = old filename \n         new = new filename or destination folder \n *        rm args = [-f] file1 file2 ... \n         -f = turn off warnings (optional) \n         file1,file2 = one or more filenames to delete \n *        rmdir args = dir1 dir2 ... \n         dir1,dir2 = one or more directories to delete \n *        putenv args = var1=value1 var2=value2 \n         var=value = one of more definitions of environment variables \n *        anything else is passed as a command to the shell for direct execution \n", + "examples": "\n```lmps\nshell cd sub1\nshell cd ..\nshell mkdir tmp1 tmp2/tmp3\nshell rmdir tmp1 tmp2\nshell mv log.lammps hold/log.1\nshell rm TMP/file1 TMP/file2\nshell putenv LAMMPS_POTENTIALS=../../potentials\nshell my_setup file1 10 file2\nshell my_post_process 100 dump.out\n```\n", + "html_filename": "shell.html", + "short_description": "Execute a shell command", + "description": "Execute a shell command. A few simple file-based shell commands are\nsupported directly, in Unix-style syntax. Any command not listed\nabove is passed as-is to the C-library system() call, which invokes\nthe command in a shell. To use the external executable instead of\nthe built-in version one needs to use a full path, for example\n*/bin/rm* instead of *rm*. The built-in commands will also work\non operating systems, that do not - by default - provide the\ncorresponding external executables (like *mkdir* on Windows).\n\nThis command provides a ways to invoke custom commands or executables\nfrom your input script. For example, you can move files around in\npreparation for the next section of the input script. Or you can run a\nprogram that pre-processes data for input into LAMMPS. Or you can run a\nprogram that post-processes LAMMPS output data.\n\nWith the exception of *cd*, all commands, including ones invoked via a\nsystem() call, are executed by only a single processor, so that\nfiles/directories are not being manipulated by multiple processors\nconcurrently which may result in unexpected errors or corrupted files.\n\nThe *cd* command changes the current working directory similar to\nthe ``cd`` command. All subsequent LAMMPS commands that read/write files\nwill use the new directory. All processors execute this command.\n\nThe *mkdir* command creates directories similar to the Unix ``mkdir -p``\ncommand. That is, it will attempt to create the entire path of\nsubdirectories if they do not exist yet.\n\nThe *mv* command renames a file and/or moves it to a new directory.\nIt cannot rename files across filesystem boundaries or between drives.\n\nThe *rm* command deletes file similar to the Unix ``rm`` command.\n\nThe *rmdir* command deletes directories similar to Unix ``rmdir`` command.\nIf a directory is not empty, its contents are also removed recursively\nsimilar to the Unix ``rm -r`` command.\n\nThe *putenv* command defines or updates an environment variable directly.\nSince this command does not pass through the shell, no shell variable\nexpansion or globbing is performed, only the usual substitution for\nLAMMPS variables defined with the [variable ](https://docs.lammps.org/variable.html) command is\nperformed. The resulting string is then used literally.\n\nAny other command is passed as-is to the shell along with its arguments as\none string, invoked by the C-library system() call. For example,\nthese lines in your input script:\n\n```lmps\nvariable n equal 10\nvariable foo string file2\nshell my_setup file1 $n ${foo}\n```\nwould be the same as invoking\n\n```bash\nmy_setup file1 10 file2\n```\nfrom a command-line prompt. The executable program \"my_setup\" is run\nwith 3 arguments: file1 10 file2.\n", + "restrictions": "LAMMPS will do a best effort to detect errors and print suitable\nwarnings, but due to the nature of delegating commands to the C-library\nsystem() call, this is not always reliable.\n", + "related": "none\n" +}, +{ + "command": [ + "dihedral_style hybrid" + ], + "syntax": [ + "dihedral_style hybrid style1 style2 ..." + ], + "args": [ + [ { - "arg": "adapt/fep", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "hybrid", + "type": 1, "choices": [] }, { - "arg": "atom", - "type": 3, - "choices": [ - "pair", - "kspace", - "atom" - ] - }, - { - "arg": "args", + "arg": "style1", "type": 2, "choices": [] }, { - "arg": "after", - "type": 3, - "choices": [ - "scale", - "reset", - "after" - ] - }, - { - "arg": "value", + "arg": "style2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* adapt/fep = style name of this fix command\n* N = adapt simulation settings every this many timesteps\n* one or more attribute/arg pairs may be appended\n* attribute = pair or kspace or atom \n *        pair args = pstyle pparam I J v_name \n         pstyle = pair style name (e.g., lj/cut) \n         pparam = parameter to adapt over time \n         I,J = type pair(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of pparam \n *        kspace arg = v_name \n         v_name = variable with name that calculates scale factor on K-space terms \n *        atom args = aparam v_name \n         aparam = parameter to adapt over time \n         I = type(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of aparam \n* zero or more keyword/value pairs may be appended\n* keyword = scale or reset or after \n *        scale value = no or yes \n         no = the variable value is the new setting \n         yes = the variable value multiplies the original setting \n *        reset value = no or yes \n         no = values will remain altered at the end of a run \n         yes = reset altered values to their original values at the end \n         of a run \n *        after value = no or yes \n         no = parameters are adapted at timestep N \n         yes = parameters are adapted one timestep after N \n", - "examples": "\n```lmps\nfix 1 all adapt/fep 1 pair soft a 1 1 v_prefactor\nfix 1 all adapt/fep 1 pair soft a 2* 3 v_prefactor\nfix 1 all adapt/fep 1 pair lj/cut epsilon * * v_scale1 coul/cut scale 3 3 v_scale2 scale yes reset yes\nfix 1 all adapt/fep 10 atom diameter 1 v_size\n\nlabelmap atom 1 c1\nfix 1 all adapt/fep 1 pair soft a c1 c1 v_prefactor\n```\nExample input scripts available: examples/PACKAGES/fep\n", - "html_filename": "fix_adapt_fep.html", - "short_description": "Change or adapt one or more specific simulation attributes or settings\nover time as a simulation runs", - "description": "Change or adapt one or more specific simulation attributes or settings\nover time as a simulation runs.\n\nThis is an enhanced version of the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command\nwith two differences:\n\n* It is possible to modify the charges of chosen atom types only,\n instead of scaling all the charges in the system.\n* There is a new option *after* for better compatibility with\n [fix ave/time ](https://docs.lammps.org/fix_ave_time.html).\n\nThis version is suited for free energy calculations using\n[compute ti ](https://docs.lammps.org/compute_ti.html) or [compute fep ](https://docs.lammps.org/compute_fep.html).\n\nIf *N* is specified as 0, the specified attributes are only changed\nonce, before the simulation begins. This is all that is needed if the\nassociated variables are not time-dependent. If *N* > 0, then changes\nare made every *N* steps during the simulation, presumably with a\nvariable that is time-dependent.\n\nDepending on the value of the *reset* keyword, attributes changed by\nthis fix will or will not be reset back to their original values at\nthe end of a simulation. Even if *reset* is specified as *yes*, a\nrestart file written during a simulation will contain the modified\nsettings.\n\nIf the *scale* keyword is set to *no*, then the value the parameter is\nset to will be whatever the variable generates. If the *scale*\nkeyword is set to *yes*, then the value of the altered parameter will\nbe the initial value of that parameter multiplied by whatever the\nvariable generates (i.e., the variable is now a \"scale factor\" applied\nin (presumably) a time-varying fashion to the parameter). Internally,\nthe parameters themselves are actually altered; make sure you use the\n*reset yes* option if you want the parameters to be restored to their\ninitial values after the run.\n\nIf the *after* keyword is set to *yes*, then the parameters are\nchanged one timestep after the multiple of N. In this manner, if a fix\nsuch as \"fix ave/time\" is used to calculate averages at every N\ntimesteps, all the contributions to the average will be obtained with\nthe same values of the parameters.\n\n----------\n\nThe *pair* keyword enables various parameters of potentials defined by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command to be changed, if the pair\nstyle supports it. Note that the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands must be used in the usual manner\nto specify these parameters initially; the fix adapt command simply\noverrides the parameters.\n\nThe *pstyle* argument is the name of the pair style. If [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used, *pstyle* should be\na sub-style name. For example, *pstyle* could be specified as \"soft\"\nor \"lubricate\". The *pparam* argument is the name of the parameter to\nchange. This is the current list of pair styles and parameters that\ncan be varied by this fix. See the doc pages for individual pair\nstyles and their energy formulas for the meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) | biga0,biga1,r0 | type pairs |\n| [buck, buck/coul/cut, buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut, coul/cut/global ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/debye ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda | type pairs |\n| [coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) | scale | type pairs |\n| [coul/streitz ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [eam, eam/alloy, eam/fs ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) | k | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | a,b | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/tip4p/cut, lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma | type pairs |\n| [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [meam ](https://docs.lammps.org/pair_meam.html) | scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamR,gamA | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [pace, pace/extrapolation ](https://docs.lammps.org/pair_pace.html) | scale | type pairs |\n| [snap ](https://docs.lammps.org/pair_snap.html) | scale | type pairs |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) | epsilon,sigma,nu,mu | type pairs |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is easy to add new potentials and their parameters to this\n > list. All it typically takes is adding an extract() method to the\n > pair\\_\\*.cpp file associated with the potential. \n > \n\nNote that for many of the potentials, the parameter that can be varied\nis effectively a prefactor on the entire energy expression for the\npotential (e.g., the lj/cut epsilon). The parameters listed as \"scale\"\nare exactly that, since the energy expression for the\n[coul/cut ](https://docs.lammps.org/pair_coul.html) potential (for example) has no labeled\nprefactor in its formula. To apply an effective prefactor to some\npotentials, multiple parameters need to be altered. For example, the\n[Buckingham potential ](https://docs.lammps.org/pair_buck.html) needs both the A and C terms\naltered together. To scale the Buckingham potential, you should thus\nlist the pair style twice, once for A and once for C.\n\nIf a type pair parameter is specified, the *I* and *J* settings should\nbe specified to indicate which type pairs to apply it to. If a global\nparameter is specified, the *I* and *J* settings still need to be\nspecified, but are ignored.\n\nSimilar to the [pair_coeff command ](https://docs.lammps.org/pair_coeff.html), \\(I\\) and\n\\(J\\) can be specified in one of several ways. Explicit numeric values\ncan be used for each, as in the first example above. Or, one or both of\nthe types in the I,J pair can be a [type label ](https://docs.lammps.org/Howto_type_labels.html).\nLAMMPS sets the coefficients for the symmetric \\(J,I\\) interaction to\nthe same values.\n\nA wild-card asterisk can be used in place of or in conjunction with\nthe \\(I,J\\) arguments to set the coefficients for multiple pairs of atom\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of atom types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). For the asterisk syntax, note that only type pairs with\n\\(I \\le J\\) are considered; if asterisks imply type pairs where\n\\(J < I\\), they are ignored.\n\nIMPROTANT NOTE: If [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is\nbeing used, then the *pstyle* will be a sub-style name. You must specify\n\\(I,J\\) arguments that correspond to type pair values defined (via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for that sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. Equal-style\nvariables can specify formulas with various mathematical functions,\nand include [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify parameters that change as a function of time or span\nconsecutive runs in a continuous fashion. For the latter, see the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command and the\n*elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, these commands would change the prefactor coefficient of\nthe [pair_style soft ](https://docs.lammps.org/pair_soft.html) potential from 10.0 to 30.0 in a\nlinear fashion over the course of a simulation:\n\n```lmps\nvariable prefactor equal ramp(10,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n----------\n\nThe *kspace* keyword used the specified variable as a scale factor on\nthe energy, forces, virial calculated by whatever \\(k\\)-space solver is\ndefined by the [kspace_style ](https://docs.lammps.org/kspace_style.html) command. If the\nvariable has a value of 1.0, then the solver is unaltered.\n\nThe *kspace* keyword works this way whether the *scale* keyword\nis set to *no* or *yes* .\n\n----------\n\nThe *atom* keyword enables various atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be varied by this fix:\n\n* charge = charge on particle\n* diameter = diameter of particle\n\nThe \\(I\\) argument indicates which atom types are affected. A wild-card\nasterisk can be used in place of or in conjunction with the \\(I\\) argument\nto set the coefficients for multiple atom types.\n\nThe *v_name* argument of the *atom* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. See the\ndiscussion above describing the formulas associated with equal-style\nvariables. The new value is assigned to the corresponding attribute\nfor all atoms in the fix group.\n\nIf the atom parameter is *diameter* and per-atom density and per-atom\nmass are defined for particles (e.g., [atom_style granular ](https://docs.lammps.org/atom_style.html)),\nthen the mass of each particle is also changed when the diameter changes\n(density is assumed to stay constant).\n\nFor example, these commands would shrink the diameter of all granular\nparticles in the \"center\" group from 1.0 to 0.1 in a linear fashion\nover the course of a 1000-step simulation:\n\n```lmps\nvariable size equal ramp(1.0,0.1)\nfix 1 center adapt 10 atom diameter * v_size\n```\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix changes\nparameters on the outermost rRESPA level.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "The keyword \"scale yes\" is not supported for scaling per-atom parameters\ndiameter and change. You can use [fix adapt ](https://docs.lammps.org/fix_adapt.html) for those.\n", - "related": "[compute fep ](https://docs.lammps.org/compute_fep.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html),\n[compute ti ](https://docs.lammps.org/compute_ti.html), [pair_style \\*/soft ](https://docs.lammps.org/pair_fep_soft.html)\n" + "parameters": "* style1,style2 = list of one or more dihedral styles \n", + "examples": "\n```lmps\ndihedral_style hybrid harmonic helix\ndihedral_coeff 1 harmonic 6.0 1 3\ndihedral_coeff 2* helix 10 10 10\n```\n", + "html_filename": "dihedral_hybrid.html", + "short_description": "The *hybrid* style enables the use of multiple dihedral styles in one\nsimulation", + "description": "The *hybrid* style enables the use of multiple dihedral styles in one\nsimulation. An dihedral style is assigned to each dihedral type. For\nexample, dihedrals in a polymer flow (of dihedral type 1) could be\ncomputed with a *harmonic* potential and dihedrals in the wall\nboundary (of dihedral type 2) could be computed with a *helix*\npotential. The assignment of dihedral type to style is made via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command or in the data file.\n\nIn the dihedral_coeff commands, the name of a dihedral style must be\nadded after the dihedral type, with the remaining coefficients being\nthose appropriate to that style. In the example above, the 2\ndihedral_coeff commands set dihedrals of dihedral type 1 to be\ncomputed with a *harmonic* potential with coefficients 6.0, 1, 3 for\nK, d, n. All other dihedral types (2-N) are computed with a *helix*\npotential with coefficients 10, 10, 10 for A, B, C.\n\nIf dihedral coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"helix\", must be added after the dihedral type, for\neach line in the \"Dihedral Coeffs\" section, e.g.\n\n```\nDihedral Coeffs\n\n1 harmonic 6.0 1 3\n2 helix 10 10 10\n...\n```\nIf *class2* is one of the dihedral hybrid styles, the same rule holds\nfor specifying additional AngleTorsion (and EndBondTorsion, etc)\ncoefficients either via the input script or in the data file.\nI.e. *class2* must be added to each line after the dihedral type. For\nlines in the AngleTorsion (or EndBondTorsion, etc) Coeffs section of the data\nfile for dihedral types that are not *class2*, you must use an\ndihedral style of *skip* as a placeholder, e.g.\n\n```\nAngleTorsion Coeffs\n\n1 skip\n2 class2 1.0 1.0 1.0 3.0 3.0 3.0 30.0 50.0\n...\n```\nNote that it is not necessary to use the dihedral style *skip* in the\ninput script, since AngleTorsion (or EndBondTorsion, etc) coefficients\nneed not be specified at all for dihedral types that are not *class2* .\n\nA dihedral style of *none* with no additional coefficients can be used\nin place of a dihedral style, either in a input script dihedral_coeff\ncommand or in the data file, if you desire to turn off interactions\nfor specific dihedral types.\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other dihedral styles, the hybrid dihedral style does not store\ndihedral coefficient info for individual sub-styles in a [binary restart files ](https://docs.lammps.org/restart.html). Thus when restarting a simulation from a\nrestart file, you need to re-specify dihedral_coeff commands.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "fix npt/cauchy" + "pair_write" ], "syntax": [ - "fix ID group-ID style_name keyword value ..." + "pair_write itype jtype N style inner outer file keyword Qi Qj" ], "args": [ [ { - "arg": "fix", + "arg": "pair_write", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "itype", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "jtype", "type": 2, "choices": [] }, { - "arg": "style_name", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "fixedpoint", + "arg": "bitmap", "type": 3, "choices": [ - "temp", - "iso", - "aniso", - "tri", - "x", - "y", - "z", - "xy", - "yz", - "xz", - "couple", - "tchain", - "pchain", - "mtk", - "tloop", - "ploop", - "nreset", - "drag", - "dilate", - "scalexy", - "scaleyz", - "scalexz", - "flip", - "alpha", - "continue", - "fixedpoint" + "r", + "rsq", + "bitmap" ] }, { - "arg": "value", + "arg": "inner", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = npt/cauchy\n* one or more keyword/value pairs may be appended\n* keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate or scalexy or scaleyz or scalexz or flip or alpha or continue or fixedpoint \n *        temp values = Tstart Tstop Tdamp \n         Tstart,Tstop = external temperature at start/end of run \n         Tdamp = temperature damping parameter (time units) \n *        iso or aniso or tri values = Pstart Pstop Pdamp \n         Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n         Pdamp = pressure damping parameter (time units) \n *        x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n         Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n         Pdamp = stress damping parameter (time units) \n *        couple = none or xyz or xy or yz or xz \n *        tchain value = N \n         N = length of thermostat chain (1 = single thermostat) \n *        pchain values = N \n         N length of thermostat chain on barostat (0 = no thermostat) \n *        mtk value = yes or no = add in MTK adjustment term or not \n *        tloop value = M \n         M = number of sub-cycles to perform on thermostat \n *        ploop value = M \n         M = number of sub-cycles to perform on barostat thermostat \n *        nreset value = reset reference cell every this many timesteps \n *        drag value = Df \n         Df = drag factor added to barostat/thermostat (0.0 = no drag) \n *        dilate value = dilate-group-ID \n         dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n *        scalexy value = yes or no = scale xy with ly \n *        scaleyz value = yes or no = scale yz with lz \n *        scalexz value = yes or no = scale xz with lz \n *        flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n *        alpha value = strength of Cauchy stress control parameter \n *        continue value = yes or no = whether of not to continue from a previous run \n *        fixedpoint values = x y z \n         x,y,z = perform barostat dilation/contraction around this point (distance units) \n", - "examples": "\n```lmps\nfix 1 water npt/cauchy temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0 alpha 0.001\n```\n", - "html_filename": "fix_npt_cauchy.html", - "short_description": "This command performs time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the isothermal-isobaric (npt)\nensembles", - "description": "This command performs time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the isothermal-isobaric (npt)\nensembles. This updates the position and velocity for atoms in the\ngroup each timestep and the box dimensions.\n\nThe thermostatting and barostatting is achieved by adding some dynamic\nvariables which are coupled to the particle velocities\n(thermostatting) and simulation domain dimensions (barostatting). In\naddition to basic thermostatting and barostatting, this fix can\nalso create a chain of thermostats coupled to the particle thermostat,\nand another chain of thermostats coupled to the barostat\nvariables. The barostat can be coupled to the overall box volume, or\nto individual dimensions, including the *xy*, *xz* and *yz* tilt\ndimensions. The external pressure of the barostat can be specified as\neither a scalar pressure (isobaric ensemble) or as components of a\nsymmetric stress tensor (constant stress ensemble). When used\ncorrectly, the time-averaged temperature and stress tensor of the\nparticles will match the target values specified by Tstart/Tstop and\nPstart/Pstop.\n\nThe equations of motion used are those of Shinoda et al in\n**nc-Shinoda**, which combine the hydrostatic equations of\nMartyna, Tobias and Klein in **nc-Martyna** with the strain\nenergy proposed by Parrinello and Rahman in\n**nc-Parrinello**. The time integration schemes closely\nfollow the time-reversible measure-preserving Verlet and rRESPA\nintegrators derived by Tuckerman et al in **nc-Tuckerman**.\n\n----------\n\nThe thermostat parameters are specified using the *temp* keyword.\nOther thermostat-related keywords are *tchain*, *tloop* and *drag*,\nwhich are discussed below.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles. The translational degrees of freedom can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature at each timestep is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The atoms in the\nfix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. Note that this is NOT the same as 100 time units for\n > most [units ](https://docs.lammps.org/units.html) settings. \n > \n\n----------\n\nThe barostat parameters are specified using one or more of the *iso*,\n*aniso*, *tri*, *x*, *y*, *z*, *xy*, *xz*, *yz*, and *couple* keywords.\nThese keywords give you the ability to specify all 6 components of an\nexternal stress tensor, and to couple various of these components\ntogether so that the dimensions they represent are varied together\nduring a constant-pressure simulation.\n\nOther barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *drag*, and *dilate*, which are discussed below.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, *xy*, *xz*, *yz*\nkeywords, which correspond to the 6 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. If\nthe *xy* keyword is used, the xy tilt factor will change. A box\ndimension will not change if that component is not specified, although\nyou have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover barostat will not work well for arbitrary values\n > of *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. This option should\nbe used with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin. Also note that for atoms not in the fix\ngroup, a separate time integration fix like [fix nve ](https://docs.lammps.org/fix_nve.html) or\n[fix nvt ](https://docs.lammps.org/fix_nh.html) can be used on them, independent of whether they\nare dilated or not.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Pstart Pstop Pdamp\" is the same as\nspecifying these 7 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy 0.0 0.0 Pdamp\nyz 0.0 0.0 Pdamp\nxz 0.0 0.0 Pdamp\ncouple none\n```\n----------\n\nIn some cases (e.g. for solids) the pressure (volume) and/or\ntemperature of the system can oscillate undesirably when a Nose/Hoover\nbarostat and thermostat is applied. The optional *drag* keyword will\ndamp these oscillations, although it alters the Nose/Hoover equations.\nA value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.\nA non-zero value adds a drag term; the larger the value specified, the\ngreater the damping effect. Performing a short run and monitoring the\npressure and temperature is the best way to determine if the drag term\nis working. Typically a value between 0.2 to 2.0 is sufficient to\ndamp oscillations after a few periods. Note that use of the drag\nkeyword will interfere with energy conservation and will also change\nthe distribution of positions and velocities so that they do not\ncorrespond to the nominal NVT, NPT, or NPH ensembles.\n\nAn alternative way to control initial oscillations is to use chain\nthermostats. The keyword *tchain* determines the number of thermostats\nin the particle thermostat. A value of 1 corresponds to the original\nNose-Hoover thermostat. The keyword *pchain* specifies the number of\nthermostats in the chain thermostatting the barostat degrees of\nfreedom. A value of 0 corresponds to no thermostatting of the\nbarostat variables.\n\nThe *mtk* keyword controls whether or not the correction terms due to\nMartyna, Tuckerman, and Klein are included in the equations of motion\n**nc-Martyna**. Specifying *no* reproduces the original\nHoover barostat, whose volume probability distribution function\ndiffers from the true NPT and NPH ensembles by a factor of 1/V. Hence\nusing *yes* is more correct, but in many cases the difference is\nnegligible.\n\nThe keyword *tloop* can be used to improve the accuracy of integration\nscheme at little extra cost. The initial and final updates of the\nthermostat variables are broken up into *tloop* sub-steps, each of\nlength *dt* /\\ *tloop* . This corresponds to using a first-order\nSuzuki-Yoshida scheme **nc-Tuckerman**. The keyword *ploop*\ndoes the same thing for the barostat thermostat.\n\nThe keyword *nreset* controls how often the reference dimensions used\nto define the strain energy are reset. If this keyword is not used,\nor is given a value of zero, then the reference dimensions are set to\nthose of the initial simulation domain and are never changed. If the\nsimulation domain changes significantly during the simulation, then\nthe final average pressure tensor will differ significantly from the\nspecified values of the external stress tensor. A value of *nstep*\nmeans that every *nstep* timesteps, the reference dimensions are set\nto those of the current simulation domain.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when barostatting triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\nThe *fixedpoint* keyword specifies the fixed point for barostat volume\nchanges. By default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle trajectories are unaffected by the\nchosen value, except for a time-dependent constant translation of\npositions.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using a barostat coupled to tilt dimensions *xy*, *xz*, *yz* can\n > sometimes result in arbitrarily large values of the tilt dimensions,\n > i.e. a dramatically deformed simulation box. LAMMPS allows the tilt\n > factors to grow a small amount beyond the normal limit of half the box\n > length (0.6 times the box length), and then performs a box \"flip\" to\n > an equivalent periodic cell. See the discussion of the *flip* keyword\n > above, to allow this bound to be exceeded, if desired. \n > \n\nThe flip operation is described in more detail in the page for\n[fix deform ](https://docs.lammps.org/fix_deform.html). Both the barostat dynamics and the atom\ntrajectories are unaffected by this operation. However, if a tilt\nfactor is incremented by a large amount (1.5 times the box length) on\na single timestep, LAMMPS can not accommodate this event and will\nterminate the simulation with an error. This error typically indicates\nthat there is something badly wrong with how the simulation was\nconstructed, such as specifying values of *Pstart* that are too far\nfrom the current stress value, or specifying a timestep that is too\nlarge. Triclinic barostatting should be used with care. This also is\ntrue for other barostat styles, although they tend to be more\nforgiving of insults. In particular, it is important to recognize that\nequilibrium liquids can not support a shear stress and that\nequilibrium solids can not support shear stresses that exceed the\nyield stress.\n\nOne exception to this rule is if the first dimension in the tilt factor\n(x for xy) is non-periodic. In that case, the limits on the tilt\nfactor are not enforced, since flipping the box in that dimension does\nnot change the atom positions due to non-periodicity. In this mode,\nif you tilt the system to extreme angles, the simulation will simply\nbecome inefficient due to the highly skewed simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, this fix\n > performs thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > fix npt/cauchy should not normally be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)\n > commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nThis fix compute a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if one of these sets of commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nThe group for both the new temperature and pressure compute is \"all\"\nsince pressure is computed for the entire system. See the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html)\ncommands for details. Note that the IDs of the new computes are the\nfix-ID + underscore + \"temp\" or fix_ID + underscore + \"press\".\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of these\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Or you can print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate\ncompute-ID. It also means that changing attributes of *thermo_temp*\nor *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\nThis fix can be used with either the *verlet* or *respa*\n[integrators ](https://docs.lammps.org/run_style.html). When using this fix\nwith *respa*, LAMMPS uses an integrator constructed\naccording to the following factorization of the Liouville propagator\n(for two rRESPA levels):\n\\[\\begin{align*} \n \\exp \\left(\\mathrm{i} L \\Delta t \\right) = & \\hat{E}\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right) \\\\\n &\\times \\left[\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_1 \\frac{\\Delta t}{n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\right]^n \\\\\n &\\times\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right) \\\\\n &+ \\mathcal{O} \\left(\\Delta t^3 \\right) \\end{align*} \\]\nThis factorization differs somewhat from that of Tuckerman et al, in\nthat the barostat is only updated at the outermost rRESPA level,\nwhereas Tuckerman's factorization requires splitting the pressure into\npieces corresponding to the forces computed at each rRESPA level. In\ntheory, the latter method will exhibit better numerical stability. In\npractice, because Pdamp is normally chosen to be a large multiple of\nthe outermost rRESPA timestep, the barostat dynamics are not the\nlimiting factor for numerical stability. Both factorizations are\ntime-reversible and can be shown to preserve the phase space measure\nof the underlying non-Hamiltonian equations of motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Under NPT dynamics, for a system with zero initial total linear\n > momentum, the total momentum fluctuates close to zero. It may occasionally\n > undergo brief excursions to non-negligible values, before returning close\n > to zero. Over long simulations, this has the effect of causing the\n > center-of-mass to undergo a slow random walk. This can be mitigated by\n > resetting the momentum at infrequent intervals using the\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) command. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure, as described above.\nIf you do this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The\n > *temp* keyword will override this (for the pressure compute being\n > used by fix npt), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe cumulative energy change in the system imposed by this fix, due to\nthermostatting and/or barostatting, is included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix also computes a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Rhe vector\nvalues are \"intensive\".\n\nThe vector stores internal Nose/Hoover thermostat and barostat\nvariables. The number and meaning of the vector values depends on\nwhich fix is used and the settings for keywords *tchain* and *pchain*,\nwhich specify the number of Nose/Hoover chains for the thermostat and\nbarostat. If no thermostatting is done, then *tchain* is 0. If no\nbarostatting is done, then *pchain* is 0. In the following list,\n\"ndof\" is 0, 1, 3, or 6, and is the number of degrees of freedom in\nthe barostat. Its value is 0 if no barostat is used, else its value\nis 6 if any off-diagonal stress tensor component is barostatted, else\nits value is 1 if *couple xyz* is used or *couple xy* for a 2d\nsimulation, otherwise its value is 3.\n\nThe order of values in the global vector and their meaning is as\nfollows. The notation means there are tchain values for eta, followed\nby tchain for eta_dot, followed by ndof for omega, etc:\n\n* eta[tchain] = particle thermostat displacements (unitless)\n* eta_dot[tchain] = particle thermostat velocities (1/time units)\n* omega[ndof] = barostat displacements (unitless)\n* omega_dot[ndof] = barostat velocities (1/time units)\n* etap[pchain] = barostat thermostat displacements (unitless)\n* etap_dot[pchain] = barostat thermostat velocities (1/time units)\n* PE_eta[tchain] = potential energy of each particle thermostat displacement (energy units)\n* KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity (energy units)\n* PE_omega[ndof] = potential energy of each barostat displacement (energy units)\n* KE_omega_dot[ndof] = kinetic energy of each barostat velocity (energy units)\n* PE_etap[pchain] = potential energy of each barostat thermostat displacement (energy units)\n* KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)\n* PE_strain[1] = scalar strain energy (energy units)\n\nThis fix can ramp its external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of\nhow to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(nc-Shinoda)** Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). \n \n**(nc-Martyna)** Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994). \n \n**(nc-Parrinello)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n \n**(nc-Tuckerman)** Tuckerman, Alejandre, Lopez-Rendon, Jochim, and\nMartyna, J Phys A: Math Gen, 39, 5629 (2006). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. *Z*, *xz*, and *yz*, cannot be\nbarostatted for 2D simulations. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final Tstop cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n\nThe *alpha* keyword modifies the barostat as per Miller et\nal. (Miller)_\"#nc-Miller\" so that the Cauchy stress is controlled.\n*alpha* is the non-dimensional parameter, typically set to 0.001 or\n0.01 that determines how aggressively the algorithm drives the system\ntowards the set Cauchy stresses. Larger values of *alpha* will modify\nthe system more quickly, but can lead to instabilities. Smaller\nvalues will lead to longer convergence time. Since *alpha* also\ninfluences how much the stress fluctuations deviate from the\nequilibrium fluctuations, it should be set as small as possible.\n\nA *continue* value of *yes* indicates that the fix is subsequent to a\nprevious run with the npt/cauchy fix, and the intention is to continue\nfrom the converged stress state at the end of the previous run. This\nmay be required, for example, when implementing a multi-step loading/unloading\nsequence over several fixes.\n\nSetting *alpha* to zero is not permitted. To \"turn off\" the\ncauchystat control and thus restore the equilibrium stress\nfluctuations, two subsequent fixes should be used. In the first, fix\nnpt/cauchy is used and the simulation box equilibrates to the\ncorrect shape for the desired stresses. In the second,\n[fix npt ](https://docs.lammps.org/fix_nh.html) is used instead which uses the\noriginal Parrinello-Rahman algorithm, but now with the corrected\nsimulation box shape from using fix npt/cauchy.\n\nThis fix can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" -}, -{ - "command": [ - "fix_modify AtC filter scale" - ], - "syntax": [ - "fix_modify filter scale " - ], - "args": [ - [ + }, { - "arg": "fix_modify", - "type": 1, + "arg": "outer", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "filter", - "type": 1, + "arg": "keyword", + "type": 2, "choices": [] }, { - "arg": "scale", - "type": 1, + "arg": "Qi", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "Qj", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter scale = name of the AtC sub-command\n* scale = characteristic times scale of the filter \n", - "examples": "\n```lmps\nfix_modify AtC filter scale 10.0\n```\n", - "html_filename": "atc_filter_scale.html", - "short_description": "Sets the time scale for MD dynamics filter to construct a more\nappropriate continuous field", - "description": "Sets the time scale for MD dynamics filter to construct a more\nappropriate continuous field.\n", - "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter type ](https://docs.lammps.org/atc_filter_type.html)\n" + "parameters": "* itype,jtype = 2 atom types\n* N = # of values\n* style = r or rsq or bitmap\n* inner,outer = inner and outer cutoff (distance units)\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values\n* Qi,Qj = 2 atom charges (charge units) (optional) \n", + "examples": "\n```lmps\npair_write 1 3 500 r 1.0 10.0 table.txt LJ\npair_write 1 1 1000 rsq 2.0 8.0 table.txt Yukawa_1_1 -0.5 0.5\n```\n", + "html_filename": "pair_write.html", + "short_description": "Write energy and force values to a file as a function of distance for\nthe currently defined pair potential", + "description": "Write energy and force values to a file as a function of distance for\nthe currently defined pair potential. This is useful for plotting the\npotential function or otherwise debugging its values. If the file\nalready exists, the table of values is appended to the end of the file\nto allow multiple tables of energy and force to be included in one\nfile. In case a new file is created, the first line will be a comment\ncontaining a \"DATE:\" and \"UNITS:\" tag with the current date and the\ncurrent [units ](https://docs.lammps.org/units.html) setting as argument. For subsequent\ninvocations of the pair_write command, the current units setting is\ncompared against the entry in the file, if present, and pair_write\nwill refuse to add a table if the units are not the same.\n\nThe energy and force values are computed at distances from inner to\nouter for 2 interacting atoms of type itype and jtype, using the\nappropriate [pair_coeff ](https://docs.lammps.org/pair_coeff.html) coefficients. If the style\nis *r*, then N distances are used, evenly spaced in r; if the style is\n*rsq*, N distances are used, evenly spaced in r\\^2.\n\nFor example, for N = 7, style = *r*, inner = 1.0, and outer = 4.0,\nvalues are computed at r = 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0.\n\nIf the style is *bitmap*, then 2\\^N values are written to the file in a\nformat and order consistent with how they are read in by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for pair style *table* . For\nreasonable accuracy in a bitmapped table, choose N >= 12, an *inner*\nvalue that is smaller than the distance of closest approach of 2\natoms, and an *outer* value <= cutoff of the potential.\n\nIf the pair potential is computed between charged atoms, the charges\nof the pair of interacting atoms can optionally be specified. If not\nspecified, values of Qi = Qj = 1.0 are used.\n\nThe file is written in the format used as input for the\n[pair_style ](https://docs.lammps.org/pair_style.html) *table* option with *keyword* as the\nsection name. Each line written to the file lists an index number\n(1-N), a distance (in distance units), an energy (in energy units),\nand a force (in force units).\n", + "restrictions": "All force field coefficients for pair and other kinds of interactions\nmust be set before this command can be invoked.\n\nDue to how the pairwise force is computed, an inner value > 0.0 must\nbe specified even if the potential has a finite value at r = 0.0.\n\nThe *pair_write* command can only be used for pairwise additive\ninteractions for which a `Pair::single()` function can be and has\nbeen implemented. This excludes for example manybody potentials\nor TIP4P coulomb styles.\n", + "related": "[pair_style table ](https://docs.lammps.org/pair_table.html),\n[pair_style ](https://docs.lammps.org/pair_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute smd/internal/energy" + "pair_style e3b" ], "syntax": [ - "compute ID group-ID smd/internal/energy" + "pair_style e3b Otype" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "e3b", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "Otype", "type": 2, "choices": [] - }, - { - "arg": "smd/internal/energy", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/smd/internal/energy = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/internal/energy\n```\n", - "html_filename": "compute_smd_internal_energy.html", - "short_description": "Define a computation which outputs the per-particle enthalpy, i.e.,\nthe sum of potential energy and heat", - "description": "Define a computation which outputs the per-particle enthalpy, i.e.,\nthe sum of potential energy and heat.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output Info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will be given in [units ](https://docs.lammps.org/units.html) of energy.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", - "related": "none\n" + "parameters": "* Otype = atom type for oxygen \n *    pair_coeff * * keyword \n* one or more keyword/value pairs must be appended.\n* keyword = preset or Ea or Eb or Ec or E2 or K3 or K2 or Rs or Rc3 or Rc2 or bondL or neigh\n* If the preset keyword is given, no others are needed.\n Otherwise, all are mandatory except for neigh .\n The neigh keyword is always optional. \n *      preset arg = 2011 or 2015 = which set of predefined parameters to use \n       2011 = use the potential parameters from :ref:`(Tainter 2011) ` \n       2015 = use the potential parameters from :ref:`(Tainter 2015) ` \n *      Ea arg = three-body energy for type A hydrogen bonding interactions (energy units) \n *      Eb arg = three-body energy for type B hydrogen bonding interactions (energy units) \n *      Ec arg = three-body energy for type C hydrogen bonding interactions (energy units) \n *      E2 arg = two-body energy correction (energy units) \n *      K3 arg = three-body exponential constant (inverse distance units) \n *      K2 arg = two-body exponential constant (inverse distance units) \n *      Rc3 arg = three-body cutoff (distance units) \n *      Rc2 arg = two-body cutoff (distance units) \n *      Rs arg = three-body switching function cutoff (distance units) \n *      bondL arg = intramolecular OH bond length (distance units) \n *      neigh arg = approximate integer number of molecules within Rc3 of an oxygen atom \n", + "examples": "\n```lmps\npair_style e3b 1\npair_coeff * * Ea 35.85 Eb -240.2 Ec 449.3 E2 108269.9 K3 1.907 K2 4.872 Rc3 5.2 Rc2 5.2 Rs 5.0 bondL 0.9572\n\npair_style hybrid/overlay e3b 1 lj/cut/tip4p/long 1 2 1 1 0.15 8.5\npair_coeff * * e3b preset 2011\n```\nUsed in example input script:\n\n```\nexamples/PACKAGES/e3b/in.e3b-tip4p2005\n```\n", + "html_filename": "pair_e3b.html", + "short_description": "The *e3b* style computes an \\\"explicit three-body\\\" (E3B) potential for water **Kumar**", + "description": "The *e3b* style computes an \\\"explicit three-body\\\" (E3B) potential for water **Kumar**.\n\\[\\begin{align*} \n E =& E_2 \\sum_{i,j}e^{-k_2 r_{ij}} + E_A \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type A}}} f(r_{ij})f(r_{k\\ell}) + E_B \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type B}}} f(r_{ij})f(r_{k\\ell}) + E_C \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type C}}} f(r_{ij})f(r_{k\\ell}) \\\\\n f(r) =& e^{-k_3 r}s(r) \\\\\n s(r) =& \\begin{cases}\n 1 & rR_f\\\\\n \\end{cases} \\end{align*} \\]\nThis potential was developed as a water model that includes the\nthree-body cooperativity of hydrogen bonding explicitly. To use it in\nthis way, it must be applied in conjunction with a conventional two-body\nwater model, through pair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). The\nthree body interactions are split into three types: A, B, and C. Type A\ncorresponds to anti-cooperative double hydrogen bond donor interactions.\nType B corresponds to the cooperative interaction of molecules that both\ndonate and accept a hydrogen bond. Type C corresponds to\nanti-cooperative double hydrogen bond acceptor interactions. The\nthree-body interactions are smoothly cutoff by the switching function\ns(r) between Rs and Rc3. The two-body interactions are designed to\ncorrect for the effective many-body interactions implicitly included in\nthe conventional two-body potential. The two-body interactions are cut\noff sharply at Rc2, because K3 is typically significantly smaller than\nK2. See **Kumar** for more details.\n\nOnly a single [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command is used with the\n*e3b* style and the first two arguments must be \\* \\*. The oxygen atom\ntype for the pair style is passed as the only argument to the\n*pair_style* command, not in the *pair_coeff* command. The hydrogen\natom type is inferred from the ordering of the atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Every atom of type Otype must be part of a water molecule.\n > Each water molecule must have consecutive IDs with the oxygen first.\n > This pair style does not test that this criteria is met. \n > \n\nThe *pair_coeff* command must have at least one keyword/value pair, as\ndescribed above. The *preset* keyword sets the potential parameters to\nthe values used in **Tainter2011** or\n**Tainter2015**. To use the water models defined in\nthose references, the *e3b* style should always be used in conjunction\nwith an *lj/cut/tip4p/long* style through *pair_style hybrid/overlay*,\nas demonstrated in the second example above. The *preset 2011* option\nshould be used with the [TIP4P water model ](https://docs.lammps.org/Howto_tip4p.html). The\n*preset 2015* option should be used with the [TIP4P/2005 watermodel ](https://docs.lammps.org/Howto_tip4p.html). If the *preset* keyword is used, no other keyword\nis needed. Changes to the preset parameters can be made by specifying\nthe *preset* keyword followed by the specific parameter to change, like\n*Ea* . Note that the other keywords must come after *preset* in the\npair_style command. The *e3b* style can also be used to implement any\nthree-body potential of the same form by specifying all the keywords\nexcept *neigh* : *Ea*, *Eb*, *Ec*, *E2*, *K3*, *K2*, *Rc3*, *Rc2*,\n*Rs*, and *bondL* . The keyword *bondL* specifies the intramolecular\nOH bond length of the water model being used. This is needed to include\nH atoms that are within the cutoff even when the attached oxygen atom is\nnot.\n\nThis pair style allocates arrays sized according to the number of\npairwise interactions within Rc3. To do this it needs an estimate for\nthe number of water molecules within Rc3 of an oxygen atom. This\nestimate defaults to 10 and can be changed using the *neigh* keyword,\nwhich takes an integer as an argument. If the neigh setting is too\nsmall, the simulation will fail with the error \"neigh is too small\". If\nthe neigh setting is too large, the pair style will use more memory than\nnecessary.\n\nThis pair style tallies a breakdown of the total E3B potential energy\ninto sub-categories, which can be accessed via the [compute pair](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 4. The 4 values\ncorrespond to the terms in the first equation above: the E2 term, the Ea\nterm, the Eb term, and the Ec term.\n\nSee the examples/PACKAGES/e3b directory for a complete example script.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style is incompatible with [respa ](https://docs.lammps.org/run_style.html).\n\n----------\n\n**(Tainter2011)** Kumar and Skinner, J. Phys. Chem. B, 112, 8311 (2008) \n \n**(Tainter2015)** Tainter, Pieniazek, Lin, and Skinner, J. Chem. Phys., 134, 184501 (2011) \n \n \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThis pair style requires a fixed number of atoms in the simulation, so it is incompatible with fixes like [fix deposit ](https://docs.lammps.org/fix_deposit.html).\nIf the number of atoms changes between runs, this pair style must be re-initialized by calling the *pair_style* and *pair_coeffs* commands.\nThis is not a fundamental limitation of the pair style, but the code currently does not support a variable number of atoms.\n\nThe *preset* keyword currently only works with real, metal, si, and cgs [units ](https://docs.lammps.org/units.html).\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "fix efield" + "fix oneway" ], "syntax": [ - "fix ID group-ID style ex ey ez keyword value ..." + "fix ID group-ID oneway N region-ID direction" ], "args": [ [ @@ -6025,401 +5528,444 @@ export const command_docs = [ "choices": [] }, { - "arg": "efield/tip4p", - "type": 3, - "choices": [ - "efield", - "efield/tip4p" - ] - }, - { - "arg": "ex", - "type": 2, + "arg": "oneway", + "type": 1, "choices": [] }, { - "arg": "ey", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "ez", + "arg": "region-ID", "type": 2, "choices": [] }, { - "arg": "potential", + "arg": "z", "type": 3, "choices": [ - "region", - "energy", - "potential" + "x", + "-x", + "y", + "-y", + "z" ] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = efield or efield/tip4p\n* ex,ey,ez = E-field component values (electric field units)\n* any of ex,ey,ez can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region or energy or potential \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n *        energy value = v_name \n         v_name = variable with name that calculates the potential energy of each atom in the added E-field \n *        potential value = v_name \n         v_name = variable with name that calculates the electric potential of each atom in the added E-field \n", - "examples": "\n```lmps\nfix kick external-field efield 1.0 0.0 0.0\nfix kick external-field efield 0.0 0.0 v_oscillate\nfix kick external-field efield/tip4p 1.0 0.0 0.0\n```\n", - "html_filename": "fix_efield.html", - "short_description": "Add a force \\(\\vec{F} = q\\vec{E}\\) to each charged atom in the group due to an\nexternal electric field being applied to the system", - "description": "Add a force \\(\\vec{F} = q\\vec{E}\\) to each charged atom in the group due to an\nexternal electric field being applied to the system. If the system\ncontains point-dipoles, also add a torque on the dipoles due to the\nexternal electric field.\n\nWhen the *efield/tip4p* style is used, the E-field will be applied to\nthe position of the virtual charge site M of a TIP4P molecule instead of\nthe oxygen position as it is defined by a corresponding [TIP4P pairstyle ](https://docs.lammps.org/pair_lj_cut_tip4p.html). The forces on the M site due to the\nexternal field are projected on the oxygen and hydrogen atoms of the\nTIP4P molecules.\n\nFor charges, any of the 3 quantities defining the E-field components can\nbe specified as an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html),\nnamely *ex*, *ey*, *ez* . If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to\ndetermine the E-field component.\n\nFor point-dipoles, equal-style variables can be used, but atom-style\nvariables are not currently supported, since they imply a spatial\ngradient in the electric field which means additional terms with\ngradients of the field are required for the force and torque on dipoles.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent E-field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent E-field\nwith optional time-dependence as well.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nAdding a force or torque to atoms implies a change in their potential\nenergy as they move or rotate due to the applied E-field.\n\nFor dynamics via the \"run\" command, this energy can be optionally\nadded to the system's potential energy for thermodynamic output (see\nbelow). For energy minimization via the \"minimize\" command, this\nenergy must be added to the system's potential energy to formulate a\nself-consistent minimization problem (see below).\n\nThe *energy* keyword is not allowed if the added field is a constant\nvector (ex,ey,ez), with all components defined as numeric constants\nand not as variables. This is because LAMMPS can compute the energy\nfor each charged particle directly as\n\\[\n U_{efield} = -\\vec{x} \\cdot q\\vec{E} = -q (x\\cdot E_x + y\\cdot E_y + z\\cdot Ez),\\]\nso that \\(-\\nabla U_{efield} = \\vec{F}\\). Similarly for point-dipole particles\nthe energy can be computed as\n\\[\n U_{efield} = -\\vec{\\mu} \\cdot \\vec{E} = -\\mu_x\\cdot E_x + \\mu_y\\cdot E_y + \\mu_z\\cdot E_z\\]\nThe *energy* keyword is optional if the added force is defined with\none or more variables, and if you are performing dynamics via the\n[run ](https://docs.lammps.org/run.html) command. If the keyword is not used, LAMMPS will set\nthe energy to 0.0, which is typically fine for dynamics.\n\nThe *energy* keyword (or *potential* keyword, described below)\nis required if the added force is defined with\none or more variables, and you are performing energy minimization via\nthe \"minimize\" command for charged particles. It is not required for\npoint-dipoles, but a warning is issued since the minimizer in LAMMPS\ndoes not rotate dipoles, so you should not expect to be able to\nminimize the orientation of dipoles in an applied electric field.\n\nThe *energy* keyword specifies the name of an atom-style\n[variable ](https://docs.lammps.org/variable.html) which is used to compute the energy of each\natom as function of its position. Like variables used for *ex*,\n*ey*, *ez*, the energy variable is specified as \"v_name\", where \"name\"\nis the variable name.\n\nNote that when the *energy* keyword is used during an energy\nminimization, you must ensure that the formula defined for the\natom-style [variable ](https://docs.lammps.org/variable.html) is consistent with the force\nvariable formulas, i.e. that -Grad(E) = F. For example, if the force\ndue to the electric field were a spring-like F = kx, then the energy\nformula should be E = -0.5kx\\^2. If you don't do this correctly, the\nminimization will not converge properly.\n\nThe *potential* keyword can be used as an alternative to the *energy* keyword\nto specify the name of an atom-style variable, which is used to compute the\nadded electric potential to each atom as a function of its position. The\nvariable should have units of electric field multiplied by distance (that is,\nin `units real`, the potential should be in volts). As with the *energy*\nkeyword, the variable name is specified as \"v_name\". The energy added by this\nfix is then calculated as the electric potential multiplied by charge.\n\nThe *potential* keyword is mainly intended for correct charge\nequilibration in simulations with [fix qeq/reaxff](https://docs.lammps.org/fix_qeq_reaxff.html),\nsince with variable charges the electric potential can be known\nbeforehand but the energy cannot. A small additional benefit is that\nthe *energy* keyword requires an additional conversion to energy units\nwhich the *potential* keyword avoids. Thus, when the *potential*\nkeyword is specified, the *energy* keyword must not be used. As with\n*energy*, the *potential* keyword is not allowed if the added field is a\nconstant vector. The *potential* keyword is not supported by *fix\nefield/tip4p*.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by this\nfix to add the potential energy inferred by the added force due to the\nelectric field to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nenergy is a fictitious quantity but is needed so that the [minimize](https://docs.lammps.org/minimize.html) command can include the forces added by this fix in a\nconsistent manner. I.e. there is a decrease in potential energy when\natoms move in the direction of the added force due to the electric\nfield.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by this\nfix to add the contribution due to the added forces on atoms to both the\nglobal pressure and per-atom stress of the system via the [computepressure ](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the potential energy discussed above.\nThe vector is the total force added to the group of atoms. The scalar\nand vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the timestep as\nthe iteration count during the minimization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "Fix style *efield/tip4p* is part of the EXTRA-FIX package. It is only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix style *efield/tip4p* can only be used with tip4p pair styles.\n", - "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* oneway = style name of this fix command\n* N = apply this fix every this many timesteps\n* region-ID = ID of region where fix is active\n* direction = x or -x or y or -y or z or -z = coordinate and direction of the oneway constraint \n", + "examples": "\n```lmps\nfix 1 ions oneway 10 semi -x\nfix 2 all oneway 1 left -z\nfix 3 all oneway 1 right z\n```\n", + "html_filename": "fix_oneway.html", + "short_description": "Enforce that particles in the group and in a given region can only\nmove in one direction", + "description": "Enforce that particles in the group and in a given region can only\nmove in one direction. This is done by reversing a particle's\nvelocity component, if it has the wrong sign in the specified\ndimension. The effect is that the particle moves in one direction\nonly.\n\nThis can be used, for example, as a simple model of a semi-permeable\nmembrane, or as an implementation of Maxwell's demon.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command\n" }, { "command": [ - "angle_style class2", - "angle_style class2/kk", - "angle_style class2/omp", - "angle_style class2/p6" + "if" ], "syntax": [ - "angle_style class2" + "if boolean then t1 t2 ... elif boolean f1 f2 ... elif boolean f1 f2 ... else e1 e2 ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "if", "type": 1, "choices": [] }, { - "arg": "class2", - "type": 3, - "choices": [ - "class2", - "class2/kk", - "class2/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nangle_style class2\nangle_coeff * 75.0 25.0 0.3 0.002\nangle_coeff 1 bb 10.5872 1.0119 1.5228\nangle_coeff * ba 3.6551 24.895 1.0119 1.5228\n```\n", - "html_filename": "angle_class2.html", - "short_description": "The *class2* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{bb} + E_{ba} \\\\\n E_a & = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4(\\theta - \\theta_0)^4 \\\\\n E_{bb} & = M (r_{ij} - r_1) (r_{jk} - r_2) \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{bb}\\) is a bond-bond\nterm, and \\(E_{ba}\\) is a bond-angle term", - "description": "The *class2* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{bb} + E_{ba} \\\\\n E_a & = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4(\\theta - \\theta_0)^4 \\\\\n E_{bb} & = M (r_{ij} - r_1) (r_{jk} - r_2) \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{bb}\\) is a bond-bond\nterm, and \\(E_{ba}\\) is a bond-angle term. \\(\\theta_0\\) is\nthe equilibrium angle and \\(r_1\\) and \\(r_2\\) are the\nequilibrium bond lengths.\n\nSee **angle-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_a\\), \\(E_{bb}\\), and \\(E_{ba}\\)\nformulas must be defined for each angle type via the [angle_coeff](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 4 coefficients for the \\(E_a\\) formula:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4.\n\nFor the \\(E_{bb}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 4 coefficients, the\nfirst of which is \"bb\" to indicate they are BondBond coefficients. In\na data file, these coefficients should be listed under a \"BondBond\nCoeffs\" heading and you must leave out the \"bb\", i.e. only list 3\ncoefficients after the angle type.\n\n* bb\n* \\(M\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nFor the \\(E_{ba}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 5 coefficients, the\nfirst of which is \"ba\" to indicate they are BondAngle coefficients.\nIn a data file, these coefficients should be listed under a \"BondAngle\nCoeffs\" heading and you must leave out the \"ba\", i.e. only list 4\ncoefficients after the angle type.\n\n* ba\n* \\(N_1\\) (energy/distance)\n* \\(N_2\\) (energy/distance)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nThe \\(\\theta_0\\) value in the \\(E_{ba}\\) formula is not specified,\nsince it is the same value from the \\(E_a\\) formula.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important that the order of the I,J,K atoms in each angle\n > listed in the Angles section of the data file read by the\n > [read_data ](https://docs.lammps.org/read_data.html) command be consistent with the order\n > of the \\(r_1\\) and \\(r_2\\) BondBond and BondAngle\n > coefficients. This is because the terms in the formulas for\n > \\(E_{bb}\\) and \\(E_{ba}\\) will use the I,J atoms to compute\n > \\(r_{ij}\\) and the J,K atoms to compute \\(r_{jk}\\). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\nThe *class2/p6* angle style uses the *class2* potential expanded to sixth order:\n\\[\n E_{a} = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6\\]\nIn this expanded term 6 coefficients for the \\(E_a\\) formula need to be set:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n* \\(K_5\\) (energy)\n* \\(K_6\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4 or radian\\^5 or radian\\^6.\n\nThe bond-bond and bond-angle terms remain unchanged.\n\n----------\n\n**(angle-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the CLASS2\npackage. For the *class2/p6* style LAMMPS needs to be built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" -}, -{ - "command": [ - "create_box" - ], - "syntax": [ - "create_box N region-ID keyword value ...", - "create_box N NULL alo ahi blo bhi clo chi keyword value ..." - ], - "args": [ - [ - { - "arg": "create_box", - "type": 1, + "arg": "boolean", + "type": 2, "choices": [] }, { - "arg": "N", + "arg": "then", "type": 2, "choices": [] }, { - "arg": "region-ID", + "arg": "t1", "type": 2, "choices": [] }, { - "arg": "extra/special/per/atom", - "type": 3, - "choices": [ - "bond/types", - "angle/types", - "dihedral/types", - "improper/types", - "extra/bond/per/atom", - "extra/angle/per/atom", - "extra/dihedral/per/atom", - "extra/improper/per/atom", - "extra/special/per/atom" - ] - }, - { - "arg": "value", + "arg": "t2", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "create_box", - "type": 1, + "arg": "elif", + "type": 2, "choices": [] }, { - "arg": "N", + "arg": "boolean", "type": 2, "choices": [] }, { - "arg": "NULL", + "arg": "f1", "type": 2, "choices": [] }, { - "arg": "alo", + "arg": "f2", "type": 2, "choices": [] }, { - "arg": "ahi", + "arg": "elif", "type": 2, "choices": [] }, { - "arg": "blo", + "arg": "boolean", "type": 2, "choices": [] }, { - "arg": "bhi", + "arg": "f1", "type": 2, "choices": [] }, { - "arg": "clo", + "arg": "f2", "type": 2, "choices": [] }, { - "arg": "chi", + "arg": "else", "type": 2, "choices": [] }, { - "arg": "extra/special/per/atom", - "type": 3, - "choices": [ - "bond/types", - "angle/types", - "dihedral/types", - "improper/types", - "extra/bond/per/atom", - "extra/angle/per/atom", - "extra/dihedral/per/atom", - "extra/improper/per/atom", - "extra/special/per/atom" - ] + "arg": "e1", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "e2", "type": 2, "choices": [] } ] ], - "parameters": "* N = # of atom types to use in this simulation\n* region-ID = ID of region to use as simulation domain or NULL for general triclinic box\n* alo,ahi,blo,bhi,clo,chi = multipliers on a1,a2,a3 vectors defined by [lattice ](https://docs.lammps.org/lattice.html) command (only when region-ID = NULL)\n* zero or more keyword/value pairs may be appended\n* keyword = bond/types or angle/types or dihedral/types or improper/types or extra/bond/per/atom or extra/angle/per/atom or extra/dihedral/per/atom or extra/improper/per/atom or extra/special/per/atom \n *        bond/types value = # of bond types \n *        angle/types value = # of angle types \n *        dihedral/types value = # of dihedral types \n *        improper/types value = # of improper types \n *        extra/bond/per/atom value = # of bonds per atom \n *        extra/angle/per/atom value = # of angles per atom \n *        extra/dihedral/per/atom value = # of dihedrals per atom \n *        extra/improper/per/atom value = # of impropers per atom \n *        extra/special/per/atom value = # of special neighbors per atom \n", - "examples": "\n```lmps\n# orthogonal or restricted triclinic box using regionID = mybox\ncreate_box 2 mybox\ncreate_box 2 mybox bond/types 2 extra/bond/per/atom 1\n```\n\n```lmps\n# 2d general triclinic box using primitive cell for 2d hex lattice\nlattice custom 1.0 a1 1.0 0.0 0.0 a2 0.5 0.86602540378 0.0 &\na3 0.0 0.0 1.0 basis 0.0 0.0 0.0 triclinic/general\ncreate_box 1 NULL 0 5 0 5 -0.5 0.5\n```\n\n```lmps\n# 3d general triclinic box using primitive cell for 3d fcc lattice\nlattice custom 1.0 a2 0.0 0.5 0.5 a1 0.5 0.0 0.5 a3 0.5 0.5 0.0 basis 0.0 0.0 0.0 triclinic/general\ncreate box 1 NULL -5 5 -10 10 0 20\n```\n", - "html_filename": "create_box.html", - "short_description": "This command creates a simulation box", - "description": "This command creates a simulation box. It also partitions the box into\na regular 3d grid of smaller sub-boxes, one per processor (MPI task).\nThe geometry of the partitioning is based on the size and shape of the\nsimulation box, the number of processors being used and the settings\nof the [processors ](https://docs.lammps.org/processors.html) command. The partitioning can\nlater be changed by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nSimulation boxes in LAMMPS can be either orthogonal or triclinic in\nshape. Orthogonal boxes are a brick in 3d (rectangle in 2d) with 6\nfaces that are each perpendicular to one of the standard xyz\ncoordinate axes. Triclinic boxes are a parallelepiped in 3d\n(parallelogram in 2d) with opposite pairs of faces parallel to each\nother. LAMMPS supports two forms of triclinic boxes, restricted and\ngeneral, which differ in how the box is oriented with respect to the\nxyz coordinate axes. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html)\nfor a detailed description of all 3 kinds of simulation boxes.\n\nThe argument *N* is the number of atom types that will be used in the\nsimulation.\n\nOrthogonal and restricted triclinic boxes are created by specifying a\nregion ID previously defined by the [region ](https://docs.lammps.org/region.html) command.\nGeneral triclinic boxes are discussed below.\n\nIf the region is not of style *prism*, then LAMMPS encloses the region\n(block, sphere, etc.) with an axis-aligned orthogonal bounding box\nwhich becomes the simulation domain. For a 2d simulation, the zlo and\nzhi values of the simulation box must straddle zero.\n\nIf the region is of style *prism*, LAMMPS creates a non-orthogonal\nsimulation domain shaped as a parallelepiped with triclinic symmetry.\nAs defined by the [region prism ](https://docs.lammps.org/region.html) command, the\nparallelepiped has an \"origin\" at (xlo,ylo,zlo) and three edge vectors\nstarting from the origin given by \\(\\vec a =\n(x_\\text{hi}-x_\\text{lo},0,0)\\); \\(\\vec b =\n(xy,y_\\text{hi}-y_\\text{lo},0)\\); and \\(\\vec c =\n(xz,yz,z_\\text{hi}-z_\\text{lo})\\). In LAMMPS lingo, this is a\nrestricted triclinic box because the three edge vectors cannot be\ndefined in arbitrary (general) directions. The parameters *xy* ,\n*xz* , and *yz* can be 0.0 or positive or negative values and are\ncalled \"tilt factors\" because they are the amount of displacement\napplied to faces of an originally orthogonal box to transform it into\nthe parallelepiped. For a 2d simulation, the zlo and zhi values of\nthe simulation box must straddle zero.\n\nTypically a *prism* region used with the create_box command should\nhave tilt factors \\((xy,xz,yz)\\) that do not skew the box more\nthan half the distance of the parallel box length. For example, if\n\\(x_\\text{lo} = 2\\) and \\(x_\\text{hi} = 12\\), then the\n\\(x\\) box length is 10 and the \\(xy\\) tilt factor must be\nbetween \\(-5\\) and \\(5\\). Similarly, both \\(xz\\) and\n\\(yz\\) must be between \\(-(x_\\text{hi}-x_\\text{lo})/2\\) and\n\\(+(y_\\text{hi}-y_\\text{lo})/2\\). Note that this is not a\nlimitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt \\(= \\dots, -15\\),\n\\(-5\\), \\(5\\), \\(15\\), \\(25, \\dots\\) are all\ngeometrically equivalent.\n\nLAMMPS will issue a warning if the tilt factors of the created box do\nnot meet this criterion. This is because simulations with large tilt\nfactors may run inefficiently, since they require more ghost atoms and\nthus more communication. With very large tilt factors, LAMMPS may\neventually produce incorrect trajectories and stop with errors due to\nlost atoms or similar issues.\n\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for geometric\ndescriptions of triclinic boxes and tilt factors, as well as how to\ntransform the restricted triclinic parameters to and from other\ncommonly used triclinic representations.\n\nWhen a prism region is used, the simulation domain should normally be\nperiodic in the dimension that the tilt is applied to, which is given\nby the second dimension of the tilt factor (e.g., \\(y\\) for\n\\(xy\\) tilt). This is so that pairs of atoms interacting across\nthat boundary will have one of them shifted by the tilt factor.\nPeriodicity is set by the [boundary ](https://docs.lammps.org/boundary.html) command. For\nexample, if the \\(xy\\) tilt factor is non-zero, then the \\(y\\)\ndimension should be periodic. Similarly, the \\(z\\) dimension\nshould be periodic if \\(xz\\) or \\(yz\\) is non-zero. LAMMPS\ndoes not require this periodicity, but you may lose atoms if this is\nnot the case.\n\nNote that if your simulation will tilt the box (e.g., via the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command), the simulation box must be\ncreated as triclinic, even if the tilt factors are initially 0.0. You\ncan also change an orthogonal box to a triclinic box or vice versa by\nusing the [change box ](https://docs.lammps.org/change_box.html) command with its *ortho* and\n*triclinic* options.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is non-periodic (in a dimension), then you should not\n > make the lo/hi box dimensions (as defined in your [region > ](https://docs.lammps.org/region.html) command) radically smaller/larger than the extent of the\n > atoms you eventually plan to create (e.g., via the\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) command). For example, if your\n > atoms extend from 0 to 50, you should not specify the box bounds as\n > \\(-10000\\) and \\(10000\\). This is because as described\n > above, LAMMPS uses the specified box size to lay out the 3d grid of\n > processors. A huge (mostly empty) box will be sub-optimal for\n > performance when using \"fixed\" boundary conditions (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command). When using \"shrink-wrap\"\n > boundary conditions (see the [boundary ](https://docs.lammps.org/boundary.html) command), a\n > huge (mostly empty) box may cause a parallel simulation to lose\n > atoms the first time that LAMMPS shrink-wraps the box around the\n > atoms. \n > \n\n----------\n\nAs noted above, general triclinic boxes in LAMMPS allow the box to\nhave arbitrary edge vectors **A**, **B**, **C**. The only\nrestrictions are that the three vectors be distinct, non-zero, and not\nco-planar. They must also define a right-handed system such that\n(**A** x **B**) points in the direction of **C**. Note that a\nleft-handed system can be converted to a right-handed system by simply\nswapping the order of any pair of the **A**, **B**, **C** vectors.\n\nTo create a general triclinic boxes, the region is specified as NULL\nand the next 6 parameters (alo,ahi,blo,bhi,clo,chi) define the three\nedge vectors **A**, **B**, **C** using additional information\npreviously defined by the [lattice ](https://docs.lammps.org/lattice.html) command.\n\nThe lattice must be of style *custom* and use its *triclinic/general*\noption. This insures the lattice satisfies the restrictions listed\nabove. The *a1, *a2*, *a3* settings of the [lattice ](https://docs.lammps.org/lattice.html)\ncommand define the edge vectors of a unit cell of the general\ntriclinic lattice. This command uses them to define the three edge\nvectors and origin of the general triclinic box as:\n\n* **A** = (ahi-alo) * *a1*\n* **B** = (bhi-blo) * *a2*\n* **C** = (chi-clo) * *a3*\n* origin = (alo*a1 + blo*a2 + clo*a3)\n\nFor 2d general triclinic boxes, clo = -0.5 and chi = 0.5 is required.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box defined by this command and per-atom information\n > (e.g. coordinates, velocities) defined by the [create_atoms > ](https://docs.lammps.org/create_atoms.html) command are converted (rotated) from general to\n > restricted triclinic form when the two commands are invoked. The\n > ` doc page also discusses other LAMMPS commands\n > which can input/output general triclinic representations of the\n > simulation box and per-atom data. \n > \n\n----------\n\nThe optional keywords can be used to create a system that allows for\nbond (angle, dihedral, improper) interactions, or for molecules with\nspecial 1--2, 1--3, or 1--4 neighbors to be added later. These\noptional keywords serve the same purpose as the analogous keywords\nthat can be used in a data file which are recognized by the\n[read_data ](https://docs.lammps.org/read_data.html) command when it sets up a system.\n\nNote that if these keywords are not used, then the create_box command\ncreates an atomic (non-molecular) simulation that does not allow bonds\nbetween pairs of atoms to be defined, or a [bond potential](https://docs.lammps.org/bond_style.html) to be specified, or for molecules with special neighbors\nto be added to the system by commands such as [create_atoms mol](https://docs.lammps.org/create_atoms.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour](https://docs.lammps.org/fix_pour.html).\n\nAs an example, see the examples/deposit/in.deposit.molecule script,\nwhich deposits molecules onto a substrate. Initially there are no\nmolecules in the system, but they are added later by the [fixdeposit ](https://docs.lammps.org/fix_deposit.html) command. The create_box command in the script\nuses the bond/types and extra/bond/per/atom keywords to allow this.\nIf the added molecule contained more than one special bond (allowed by\ndefault), an extra/special/per/atom keyword would also need to be\nspecified.\n\n----------\n", - "restrictions": "An [atom_style ](https://docs.lammps.org/atom_style.html) and [region ](https://docs.lammps.org/region.html) must have\nbeen previously defined to use this command.\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[region ](https://docs.lammps.org/region.html)\n" + "parameters": "* boolean = a Boolean expression evaluated as TRUE or FALSE (see below)\n* then = required word\n* t1,t2,...,tN = one or more LAMMPS commands to execute if condition is met, each enclosed in quotes\n* elif = optional word, can appear multiple times\n* f1,f2,...,fN = one or more LAMMPS commands to execute if elif condition is met, each enclosed in quotes (optional arguments)\n* else = optional argument\n* e1,e2,...,eN = one or more LAMMPS commands to execute if no condition is met, each enclosed in quotes (optional arguments) \n", + "examples": "\n```lmps\nif \"${steps} > 1000\" then quit\nif \"${myString} == a10\" then quit\nif \"$x <= $y\" then \"print 'X is smaller = $x'\" else \"print 'Y is smaller = $y'\"\nif \"(${eng} > 0.0) || ($n < 1000)\" then &\n\"timestep 0.005\" &\nelif $n<10000 &\n\"timestep 0.01\" &\nelse &\n\"timestep 0.02\" &\n\"print 'Max step reached'\"\nif \"${eng} > ${eng_previous}\" then \"jump file1\" else \"jump file2\"\n```\n", + "html_filename": "if.html", + "short_description": "This command provides an if-then-else capability within an input\nscript", + "description": "This command provides an if-then-else capability within an input\nscript. A Boolean expression is evaluated and the result is TRUE or\nFALSE. Note that as in the examples above, the expression can contain\nvariables, as defined by the [variable ](https://docs.lammps.org/variable.html) command, which\nwill be evaluated as part of the expression. Thus a user-defined\nformula that reflects the current state of the simulation can be used\nto issue one or more new commands.\n\nIf the result of the Boolean expression is TRUE, then one or more\ncommands (t1, t2, ..., tN) are executed. If it is FALSE, then Boolean\nexpressions associated with successive elif keywords are evaluated\nuntil one is found to be true, in which case its commands (f1, f2,\n..., fN) are executed. If no Boolean expression is TRUE, then the\ncommands associated with the else keyword, namely (e1, e2, ..., eN),\nare executed. The elif and else keywords and their associated\ncommands are optional. If they are not specified and the initial\nBoolean expression is FALSE, then no commands are executed.\n\nThe syntax for Boolean expressions is described below.\n\nEach command (t1, f1, e1, etc.) can be any valid LAMMPS input script\ncommand. If the command is more than one word, it must enclosed in\nquotes, so it will be treated as a single argument, as in the examples\nabove.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a command itself requires a quoted argument (e.g., a\n > [print ](https://docs.lammps.org/print.html) command), then double and single quotes can be used\n > and nested in the usual manner, as in the examples above and below.\n > The [Commands parse ](https://docs.lammps.org/Commands_parse.html) page has more details on\n > using quotes in arguments. Only one of level of nesting is allowed,\n > but that should be sufficient for most use cases. \n > \n\nNote that by using the line continuation character \"&\", the if command\ncan be spread across many lines, though it is still a single command:\n\n```lmps\nif \"$a < $b\" then &\n\"print 'Minimum value = $a'\" &\n\"run 1000\" &\nelse &\n'print \"Minimum value = $b\"' &\n\"minimize 0.001 0.001 1000 10000\"\n```\nNote that if one of the commands to execute is [quit ](https://docs.lammps.org/quit.html), as in\nthe first example above, then executing the command will cause LAMMPS\nto halt.\n\nNote that by jumping to a label in the same input script, the if\ncommand can be used to break out of a loop. See the [variable delete ](https://docs.lammps.org/variable.html) command for info on how to delete the associated\nloop variable, so that it can be re-used later in the input script.\n\nHere is an example of a loop which checks every 1000 steps if the\nsystem temperature has reached a certain value, and if so, breaks out\nof the loop to finish the run. Note that any variable could be\nchecked, so long as it is current on the timestep when the run\ncompletes. As explained on the [variable ](https://docs.lammps.org/variable.html) doc page,\nthis can be ensured by including the variable in thermodynamic output.\n\n```lmps\nvariable myTemp equal temp\nlabel loop\nvariable a loop 1000\nrun 1000\nif \"${myTemp} < 300.0\" then \"jump SELF break\"\nnext a\njump SELF loop\nlabel break\nprint \"ALL DONE\"\n```\nHere is an example of a double loop which uses the if and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif \"$b > 2\" then \"jump SELF break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\nnext a\njump SELF loopa\n```\n----------\n\nThe Boolean expressions for the if and elif keywords have a C-like\nsyntax. Note that each expression is a single argument within the if\ncommand. Thus if you want to include spaces in the expression for\nclarity, you must enclose the entire expression in quotes.\n\nAn expression is built out of numbers (which start with a digit or\nperiod or minus sign) or strings (which start with a letter and can\ncontain alphanumeric characters, underscores, or forward slashes):\n\n```\n0.2, 100, 1.0e20, -15.4, ...\nInP, myString, a123, ab_23_cd, lj/cut, ...\n```\nand Boolean operators:\n\n```\nA == B, A != B, A < B, A <= B, A > B, A >= B, A && B, A \\|\\| B, A \\|\\^ B, !A\n```\nEach A and B is a number or string or a variable reference like ``$a`` or\n``${abc}``, or A or B can be another Boolean expression.\n\nNote that all variables used will be substituted for before the\nBoolean expression in evaluated. A variable can produce a number,\nlike an [equal-style variable ](https://docs.lammps.org/variable.html), or it can produce a\nstring, like an [index-style variable ](https://docs.lammps.org/variable.html).\n\nThe Boolean operators ``==`` and ``!=`` can operate on a pair or strings\nor numbers. They cannot compare a number to a string. All the other\nBoolean operations can only operate on numbers.\n\nExpressions are evaluated left to right and have the usual C-style\nprecedence: the unary logical NOT operator ``!`` has the highest\nprecedence, the 4 relational operators ``<``, ``<=``, ``>``, and ``>=`` are\nnext; the two remaining relational operators ``==`` and ``!=`` are next;\nthen the logical AND operator ``&&``; and finally the logical OR\noperator ``||`` and logical XOR (exclusive or) operator ``|^`` have\nthe lowest precedence. Parenthesis can be used to group one or more\nportions of an expression and/or enforce a different order of\nevaluation than what would occur with the default precedence.\n\nWhen the six relational operators (first six in list above) compare two\nnumbers, they return either a 1.0 or 0.0 depending on whether the\nrelationship between A and B is TRUE or FALSE.\n\nWhen the three logical operators (last three in list above) compare two numbers,\nthey also return either a 1.0 or 0.0 depending on whether the\nrelationship between A and B is TRUE or FALSE (or just A). The\nlogical AND operator will return 1.0 if both its arguments are\nnon-zero, else it returns 0.0. The logical OR operator will return\n1.0 if either of its arguments is non-zero, else it returns 0.0. The\nlogical XOR operator will return 1.0 if one of its arguments is zero\nand the other non-zero, else it returns 0.0. The logical NOT operator\nreturns 1.0 if its argument is 0.0, else it returns 0.0. The 3\nlogical operators can only be used to operate on numbers, not on\nstrings.\n\nThe overall Boolean expression produces a TRUE result if the numeric\nresult is non-zero. If the result is zero, the expression result is\nFALSE.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the Boolean expression is a single numeric value with no Boolean\n > operators, it will be FALSE if the value = 0.0, otherwise TRUE. If\n > the Boolean expression is a single string, an error message will be\n > issued. \n > \n\n----------\n", + "restrictions": " none\n", + "related": "[variable ](https://docs.lammps.org/variable.html), [print ](https://docs.lammps.org/print.html)\n" }, { "command": [ - "temper/grem" + "compute smd/hourglass/error" ], "syntax": [ - "temper/grem N M lambda fix-ID thermostat-ID seed1 seed2 index" + "compute ID group-ID smd/hourglass/error" ], "args": [ [ { - "arg": "temper/grem", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "M", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "lambda", - "type": 2, + "arg": "smd/hourglass/error", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/hourglass/error = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/hourglass/error\n```\n", + "html_filename": "compute_smd_hourglass_error.html", + "short_description": "Define a computation which outputs the error of the approximated\nrelative separation with respect to the actual relative separation of\nthe particles i and j", + "description": "Define a computation which outputs the error of the approximated\nrelative separation with respect to the actual relative separation of\nthe particles i and j. Ideally, if the deformation gradient is exact,\nand there exists a unique mapping between all particles' positions\nwithin the neighborhood of the central node and the deformation\ngradient, the approximated relative separation will coincide with the\nactual relative separation of the particles i and j in the deformed\nconfiguration. This compute is only really useful for debugging the\nhourglass control mechanism which is part of the Total-Lagrangian SPH\npair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will are dimensionless. See\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\ntlsph pair style.\n", + "related": "[smd/tlsph_defgrad ](https://docs.lammps.org/compute_smd_tlsph_defgrad.html)\n" +}, +{ + "command": [ + "angle_style cosine/squared", + "angle_style cosine/squared/omp" + ], + "syntax": [ + "angle_style cosine/squared" + ], + "args": [ + [ + { + "arg": "angle_style", + "type": 1, "choices": [] }, { - "arg": "fix-ID", + "arg": "cosine/squared", + "type": 3, + "choices": [ + "cosine/squared", + "cosine/squared/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/squared\nangle_coeff 2*4 75.0 100.0\n```\n", + "html_filename": "angle_cosine_squared.html", + "short_description": "The *cosine/squared* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2\\]\n, which is commonly used in the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor", + "description": "The *cosine/squared* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2\\]\n, which is commonly used in the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nSee **cosine-Mayo** for a description of the DREIDING force field.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(cosine-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" +}, +{ + "command": [ + "fix wall/srd" + ], + "syntax": [ + "fix ID group-ID wall/srd face arg ... keyword value ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] + }, + { + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "thermostat-ID", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "seed1", + "arg": "wall/srd", + "type": 1, + "choices": [] + }, + { + "arg": "zhi", + "type": 3, + "choices": [ + "xlo", + "xhi", + "ylo", + "yhi", + "zlo", + "zhi" + ] + }, + { + "arg": "arg", "type": 2, "choices": [] }, { - "arg": "seed2", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "index", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* lambda = initial lambda for this ensemble\n* fix-ID = ID of *fix grem*\n* thermostat-ID = ID of the thermostat that controls kinetic temperature\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* index = which temperature (0 to N-1) I am simulating (optional) \n", - "examples": "\n```lmps\ntemper/grem 100000 1000 ${lambda} fxgREM fxnvt 0 58728\ntemper/grem 40000 100 ${lambda} fxgREM fxnpt 0 32285 ${walkers}\n```\n", - "html_filename": "temper_grem.html", - "short_description": "Run a parallel tempering or replica exchange simulation in LAMMPS\npartition mode using multiple generalized replicas (ensembles) of a\nsystem defined by [fix grem ](https://docs.lammps.org/fix_grem.html), which stands for the\ngeneralized replica exchange method (gREM) originally developed by\n**KimStraub**", - "description": "Run a parallel tempering or replica exchange simulation in LAMMPS\npartition mode using multiple generalized replicas (ensembles) of a\nsystem defined by [fix grem ](https://docs.lammps.org/fix_grem.html), which stands for the\ngeneralized replica exchange method (gREM) originally developed by\n**KimStraub**. It uses non-Boltzmann ensembles to sample over first\norder phase transitions. The is done by defining replicas with an\nenthalpy dependent effective temperature\n\nTwo or more replicas must be used. See the [temper ](https://docs.lammps.org/temper.html)\ncommand for an explanation of how to run replicas on multiple\npartitions of one or more processors.\n\nThis command is a modification of the [temper ](https://docs.lammps.org/temper.html) command and\nhas the same dependencies, restraints, and input variables which are\ndiscussed there in greater detail.\n\nInstead of temperature, this command performs replica exchanges in\nlambda as per the generalized ensemble enforced by [fix grem](https://docs.lammps.org/fix_grem.html). The desired lambda is specified by *lambda*, which is\ntypically a variable previously set in the input script, so that each\npartition is assigned a different temperature. See the [variable](https://docs.lammps.org/variable.html) command for more details. For example:\n\n```lmps\nvariable lambda world 400 420 440 460\nfix fxnvt all nvt temp 300.0 300.0 100.0\nfix fxgREM all grem ${lambda} -0.05 -50000 fxnvt\ntemper/grem 100000 100 ${lambda} fxgREM fxnvt 3847 58382\n```\nwould define 4 lambdas with constant kinetic temperature but unique\ngeneralized temperature, and assign one of them to [fix grem ](https://docs.lammps.org/fix_grem.html) used by each replica, and to the grem command.\n\nAs the gREM simulation runs for *N* timesteps, a swap between adjacent\nensembles will be attempted every *M* timesteps. If *seed1* is 0,\nthen the swap attempts will alternate between odd and even pairings.\nIf *seed1* is non-zero then it is used as a seed in a random number\ngenerator to randomly choose an odd or even pairing each time. Each\nattempted swap of temperatures is either accepted or rejected based on\na Metropolis criterion, derived for gREM by :ref:`(Kim) `, which uses\n*seed2* in the random number generator.\n\nFile management works identical to the [temper ](https://docs.lammps.org/temper.html) command.\nDump files created by this fix contain continuous trajectories and\nrequire post-processing to obtain per-replica information.\n\nThe last argument *index* in the grem command is optional and is used\nwhen restarting a run from a set of restart files (one for each\nreplica) which had previously swapped to new lambda. This is done\nusing a variable. For example if the log file listed the following for\na simulation with 5 replicas:\n\n```\n500000 2 4 0 1 3\n```\nthen a setting of\n\n```lmps\nvariable walkers world 2 4 0 1 3\n```\nwould be used to restart the run with a grem command like the example\nabove with ${walkers} as the last argument. This functionality is\nidentical to [temper ](https://docs.lammps.org/temper.html).\n\n----------\n\n**(KimStraub)** Kim, Keyes, Straub, J Chem Phys, 132, 224107 (2010). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThis command must be used with [fix grem ](https://docs.lammps.org/fix_grem.html).\n", - "related": "[fix grem ](https://docs.lammps.org/fix_grem.html), [temper ](https://docs.lammps.org/temper.html), [variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/srd = style name of this fix command\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        xlo, ylo, zlo arg = EDGE or constant or variable \n         EDGE = current lo edge of simulation box \n         constant = number like 0.0 or -30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *        xhi, yhi, zhi arg = EDGE or constant or variable \n         EDGE = current hi edge of simulation box \n         constant = number like 50.0 or 100.3 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", + "examples": "\n```lmps\nfix xwalls all wall/srd xlo EDGE xhi EDGE\nfix walls all wall/srd xlo 0.0 ylo 10.0 units box\nfix top all wall/srd zhi v_pressdown\n```\n", + "html_filename": "fix_wall_srd.html", + "short_description": "Bound the simulation with one or more walls which interact with\nstochastic reaction dynamics (SRD) particles as slip (smooth) or\nno-slip (rough) flat surfaces", + "description": "Bound the simulation with one or more walls which interact with\nstochastic reaction dynamics (SRD) particles as slip (smooth) or\nno-slip (rough) flat surfaces. The wall interaction is actually\ninvoked via the [fix srd ](https://docs.lammps.org/fix_srd.html) command, only on the group of\nSRD particles it defines, so the group setting for the fix wall/srd\ncommand is ignored.\n\nA particle/wall collision occurs if an SRD particle moves outside the\nwall on a timestep. This alters the position and velocity of the SRD\nparticle and imparts a force to the wall.\n\nThe *collision* and *Tsrd* settings specified via the [fix srd ](https://docs.lammps.org/fix_srd.html) command affect the SRD/wall collisions. A *slip*\nsetting for the *collision* keyword means that the tangential\ncomponent of the SRD particle momentum is preserved. Thus only a\nnormal force is imparted to the wall. The normal component of the new\nSRD velocity is sampled from a Gaussian distribution at temperature\n*Tsrd* .\n\nFor a *noslip* setting of the *collision* keyword, both the normal and\ntangential components of the new SRD velocity are sampled from a\nGaussian distribution at temperature *Tsrd* . Additionally, a new\ntangential direction for the SRD velocity is chosen randomly. This\ncollision style imparts both a normal and tangential force to the\nwall.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face reflects particles\nthat move to a coordinate less than the wall position, back in the\n*hi* direction. A *hi* face reflects particles that move to a\ncoordinate higher than the wall position, back in the *lo* direction.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the trajectory of the SRD particle is tracked as it\n > collides with the wall, you must ensure that r = distance of the\n > particle from the wall, is always > 0 for SRD particles, or LAMMPS\n > will generate an error. This means you cannot start your simulation\n > with SRD particles at the wall position *coord* (r = 0) or with\n > particles on the wrong side of the wall (r < 0). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have 2 or more walls that come together at an edge or\n > corner (e.g. walls in the x and y dimensions), then be sure to set the\n > *overlap* keyword to *yes* in the [fix srd ](https://docs.lammps.org/fix_srd.html) command,\n > since the walls effectively overlap when SRD particles collide with\n > them. LAMMPS will issue a warning if you do not do this. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The walls of this fix only interact with SRD particles, as\n > defined by the [fix srd ](https://docs.lammps.org/fix_srd.html) command. If you are simulating\n > a mixture containing other kinds of particles, then you should\n > typically use [another wall command ](https://docs.lammps.org/fix_wall.html) to act on the other\n > particles. Since SRD particles will be colliding both with the walls\n > and the other particles, it is important to ensure that the other\n > particle's finite extent does not overlap an SRD wall. If you do not\n > do this, you may generate errors when SRD particles end up \"inside\"\n > another particle or a wall at the beginning of a collision step. \n > \n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\nIt is not relevant when EDGE or a variable is used to specify a face\nposition.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html).\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall/srd xlo v_ramp\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall/srd xlo v_linear\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall/srd xlo v_wiggle\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall/srd xlo v_wiggle\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo*\nto *hi* over the course of a run. The *vdisplace(c0,velocity)* function\ndoes something similar using the equation *position = c0 +\nvelocity\\*delta*, where *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The number of rows in\nthe array is equal to the number of walls defined by the fix. The\nnumber of columns is 3, for the x,y,z components of force on each\nwall.\n\nNote that an outward normal force on a wall will be a negative value\nfor *lo* walls and a positive value for *hi* walls. The array values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "Any dimension (xyz) that has an SRD wall must be non-periodic.\n", + "related": "[fix srd ](https://docs.lammps.org/fix_srd.html)\n" }, { "command": [ - "fix_modify AtC filter" + "fix electron/stopping" ], "syntax": [ - "fix_modify filter " + "fix ID group-ID style args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "filter", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "electron/stopping/fit", "type": 3, "choices": [ - "on", - "off", - "equilibrate" + "electron/stopping", + "electron/stopping/fit" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter = name of the AtC sub-command\n* on or off or equilibrate = Select state of filter \n", - "examples": "\n```lmps\nfix_modify AtC filter on\n```\n", - "html_filename": "atc_time_filter.html", - "short_description": "Filters the MD dynamics to construct a more appropriate continuous\nfield", - "description": "Filters the MD dynamics to construct a more appropriate continuous\nfield. Equilibrating first filters the time derivatives without changing\nthe dynamics to provide a better initial condition to the filtered\ndynamics.\n", - "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n- [fix_modify AtC equilibrium_start ](https://docs.lammps.org/atc_equilibrium_start.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = electron/stopping or electron/stopping/fit \n *    electron/stopping args = Ecut file keyword value ... \n     Ecut = minimum kinetic energy for electronic stopping (energy units) \n     file = name of the file containing the electronic stopping power table \n *    electron/stopping/fit args = Ecut c1 c2 ... \n     Ecut = minimum kinetic energy for electronic stopping (energy units) \n     c1 c2 = linear and quadratic coefficients for the fitted quadratic polynomial \n* zero or more keyword/value pairs may be appended to args for style = electron/stopping \n *     keyword = region or minneigh \n      region value = region-ID \n      region-ID = region whose atoms will be affected by this fix \n      minneigh value = minneigh \n      minneigh = minimum number of neighbors an atom to have stopping applied \n", + "examples": "\n```lmps\nfix el all electron/stopping 10.0 elstop-table.txt\nfix el all electron/stopping 10.0 elstop-table.txt minneigh 3\nfix el mygroup electron/stopping 1.0 elstop-table.txt region bulk\nfix 1 all electron/stopping/fit 4.63 3.3e-3 4.0e-8\nfix 1 all electron/stopping/fit 3.49 1.8e-3 9.0e-8 7.57 4.2e-3 5.0e-8\n```\n", + "html_filename": "fix_electron_stopping.html", + "short_description": "This fix implements inelastic energy loss for fast projectiles in solids", + "description": "This fix implements inelastic energy loss for fast projectiles in solids. It\napplies a friction force to fast moving atoms to slow them down due to\n**elstopping** (energy lost via electronic collisions per\nunit of distance). This fix should be used for simulation of irradiation\ndamage or ion implantation, where the ions can lose noticeable amounts of\nenergy from electron excitations. If the electronic stopping power is not\nconsidered, the simulated range of the ions can be severely overestimated\n(**Nordlund98**, **Nordlund95**).\n\nThe electronic stopping is implemented by applying a friction force\nto each atom as:\n\\[\n \\vec{F}_i = \\vec{F}^0_i - \\frac{\\vec{v}_i}{\\|\\vec{v}_i\\|} \\cdot S_e\\]\nwhere \\(\\vec{F}_i\\) is the resulting total force on the atom.\n\\(\\vec{F}^0_i\\) is the original force applied to the atom, \\(\\vec{v}_i\\) is\nits velocity and \\(S_e\\) is the stopping power of the ion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In addition to electronic stopping, atomic cascades and irradiation\n > simulations require the use of an adaptive timestep (see\n > [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)) and the repulsive ZBL potential (see\n > [ZBL ](https://docs.lammps.org/pair_zbl.html) potential) or similar. Without these settings the\n > interaction between the ion and the target atoms will be faulty. It is also\n > common to use in such simulations a thermostat ([fix_nvt ](https://docs.lammps.org/fix_nh.html)) in\n > the borders of the simulation cell. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix removes energy from fast projectiles without depositing it as a\n > heat to the simulation cell. Such implementation might lead to the unphysical\n > results when the amount of energy deposited to the electronic system is large,\n > e.g. simulations of Swift Heavy Ions (energy per nucleon of 100 keV/amu or\n > higher) or multiple projectiles. You could compensate energy loss by coupling\n > bulk atoms with some thermostat or control heat transfer between electronic and\n > atomic subsystems with the two-temperature model ([fix_ttm ](https://docs.lammps.org/fix_ttm.html)). \n > \n\nAt low velocities the electronic stopping is negligible. The electronic\nfriction is not applied to atoms whose kinetic energy is smaller than *Ecut*,\nor smaller than the lowest energy value given in the table in *file* .\nElectronic stopping should be applied only when a projectile reaches bulk\nmaterial. This fix scans neighbor list and excludes atoms with fewer than\n*minneigh* neighbors (by default one). If the pair potential cutoff is large,\nminneigh should be increased, though not above the number of nearest neighbors\nin bulk material. An alternative is to disable the check for neighbors by\nsetting *minneigh* to zero and using the *region* keyword. This is necessary\nwhen running simulations of cluster bombardment.\n\nIf the *region* keyword is used, the atom must also be in the specified\ngeometric [region ](https://docs.lammps.org/region.html) in order to have electronic stopping applied to\nit. This is useful if the position of the bulk material is fixed. By default\nthe electronic stopping is applied everywhere in the simulation cell.\n\n----------\n\nThe energy ranges and stopping powers are read from the file *file* .\nLines starting with *#* and empty lines are ignored. Otherwise each\nline must contain exactly **N+1** numbers, where **N** is the number of atom\ntypes in the simulation.\n\nThe first column is the energy for which the stopping powers on that\nline apply. The energies must be sorted from the smallest to the largest.\nThe other columns are the stopping powers \\(S_e\\) for each atom type,\nin ascending order, in force [units ](https://docs.lammps.org/units.html). The stopping powers for\nintermediate energy values are calculated with linear interpolation between\n2 nearest points.\n\nFor example:\n\n```\n# This is a comment\n# atom-1 atom-2\n# eV eV/Ang eV/Ang # units metal\n10 0 0\n250 60 80\n750 100 150\n```\nIf an atom which would have electronic stopping applied to it has a\nkinetic energy higher than the largest energy given in *file*, LAMMPS\nwill exit with an error message.\n\nThe stopping power depends on the energy of the ion and the target\nmaterial. The electronic stopping table can be obtained from\nscientific publications, experimental databases or by using\n**SRIM** software. Other programs such as **CasP** or\n**PASS** can calculate the energy deposited as a function\nof the impact parameter of the ion; these results can be used\nto derive the stopping power.\n\n----------\n\nStyle *electron/stopping/fit* calculates the electronic stopping power\nand cumulative energy lost to the electron gas via a quadratic functional\nand applies a drag force to the classical equations-of-motion for all\natoms moving above some minimum cutoff velocity (i.e., kinetic energy).\nThese coefficients can be determined by fitting a quadratic polynomial to\nelectronic stopping data predicted by, for example, SRIM or TD-DFT. Multiple\n'Ecut c1 c2' values can be provided for multi-species simulations in the order\nof the atom types. There is an examples/PACKAGES/electron_stopping/ directory,\nwhich illustrates uses of this command. Details of this implementation are\nfurther described in **Stewart2018** and **Lee2020**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) options are not supported.\n\nThis fix computes a global scalar, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the total energy\nloss from electronic stopping applied by this fix since the start of\nthe latest run. It is considered \"intensive\".\n\nThe *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command have no effect\non this fix.\n\n**(elstopping)** Wikipedia - Electronic Stopping Power: https://en.wikipedia.org/wiki/Stopping_power_%28particle_radiation%29 \n \n**(Nordlund98)** Nordlund, Kai, et al. Physical Review B 57.13 (1998): 7556. \n \n**(Nordlund95)** Nordlund, Kai. Computational materials science 3.4 (1995): 448-456. \n \n**(SRIM)** SRIM webpage: http://www.srim.org/ \n \n**(CasP)** CasP webpage: http://www.casp-program.org/ \n \n**(PASS)** PASS webpage: https://www.sdu.dk/en/DPASS \n \n**(Stewart2018)** J.A. Stewart, et al. (2018) Journal of Applied Physics, 123(16), 165902. \n \n**(Lee2020)** C.W. Lee, et al. (2020) Physical Review B, 102(2), 024107. \n ", + "restrictions": "This pair style is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "none" }, { "command": [ - "pair_style polymorphic" + "fix_modify AtC computes" ], "syntax": [ - "pair_style polymorphic" + "fix_modify computes " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "polymorphic", - "type": 1, + "arg": "", + "type": 2, "choices": [] - } - ] + }, + { + "arg": "computes", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "add", + "delete" + ] + }, + { + "arg": "", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "volume", + "number" + ] + } + ] ], - "parameters": "style = polymorphic \n", - "examples": "\n```lmps\npair_style polymorphic\npair_coeff * * FeCH_BOP_I.poly Fe C H\npair_coeff * * TlBr_msw.poly Tl Br\npair_coeff * * CuTa_eam.poly Cu Ta\npair_coeff * * GaN_tersoff.poly Ga N\npair_coeff * * GaN_sw.poly Ga N\n```\n", - "html_filename": "pair_polymorphic.html", - "short_description": "The *polymorphic* pair style computes a 3-body free-form potential\n(**Zhou3**) for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2}\\sum_{i=1}^{i=N}\\sum_{j=1}^{j=N}\\left[\\left(1-\\delta_{ij}\\right)\\cdot U_{IJ}\\left(r_{ij}\\right)-\\left(1-\\eta_{ij}\\right)\\cdot F_{IJ}\\left(X_{ij}\\right)\\cdot V_{IJ}\\left(r_{ij}\\right)\\right] \\\\\n X_{ij} & = \\sum_{k=i_1,k\\neq j}^{i_N}W_{IK}\\left(r_{ik}\\right)\\cdot G_{JIK}\\left(\\cos\\theta_{jik}\\right)\\cdot P_{JIK}\\left(\\Delta r_{jik}\\right) \\\\\n \\Delta r_{jik} & = r_{ij}-\\xi_{IJ}\\cdot r_{ik} \\end{align*} \\]\nwhere I, J, K represent species of atoms i, j, and k, \\(i_1, ...,\ni_N\\) represents a list of *i* 's neighbors, \\(\\delta_{ij}\\) is a\nDirac constant (i.e., \\(\\delta_{ij} = 1\\) when \\(i = j\\), and\n\\(\\delta_{ij} = 0\\) otherwise), \\(\\eta_{ij}\\) is similar\nconstant that can be set either to \\(\\eta_{ij} = \\delta_{ij}\\) or\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\) depending on the potential type,\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\)\nare pair functions, \\(G_{JIK}(\\cos\\theta_{jik})\\) is an angular\nfunction, \\(P_{JIK}(\\Delta r_{jik})\\) is a function of atomic\nspacing differential \\(\\Delta r_{jik} = r_{ij} - \\xi_{IJ} \\cdot\nr_{ik}\\) with \\(\\xi_{IJ}\\) being a pair-dependent parameter, and\n\\(F_{IJ}(X_{ij})\\) is a function of the local environment variable\n\\(X_{ij}\\)", - "description": "The *polymorphic* pair style computes a 3-body free-form potential\n(**Zhou3**) for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2}\\sum_{i=1}^{i=N}\\sum_{j=1}^{j=N}\\left[\\left(1-\\delta_{ij}\\right)\\cdot U_{IJ}\\left(r_{ij}\\right)-\\left(1-\\eta_{ij}\\right)\\cdot F_{IJ}\\left(X_{ij}\\right)\\cdot V_{IJ}\\left(r_{ij}\\right)\\right] \\\\\n X_{ij} & = \\sum_{k=i_1,k\\neq j}^{i_N}W_{IK}\\left(r_{ik}\\right)\\cdot G_{JIK}\\left(\\cos\\theta_{jik}\\right)\\cdot P_{JIK}\\left(\\Delta r_{jik}\\right) \\\\\n \\Delta r_{jik} & = r_{ij}-\\xi_{IJ}\\cdot r_{ik} \\end{align*} \\]\nwhere I, J, K represent species of atoms i, j, and k, \\(i_1, ...,\ni_N\\) represents a list of *i* 's neighbors, \\(\\delta_{ij}\\) is a\nDirac constant (i.e., \\(\\delta_{ij} = 1\\) when \\(i = j\\), and\n\\(\\delta_{ij} = 0\\) otherwise), \\(\\eta_{ij}\\) is similar\nconstant that can be set either to \\(\\eta_{ij} = \\delta_{ij}\\) or\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\) depending on the potential type,\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\)\nare pair functions, \\(G_{JIK}(\\cos\\theta_{jik})\\) is an angular\nfunction, \\(P_{JIK}(\\Delta r_{jik})\\) is a function of atomic\nspacing differential \\(\\Delta r_{jik} = r_{ij} - \\xi_{IJ} \\cdot\nr_{ik}\\) with \\(\\xi_{IJ}\\) being a pair-dependent parameter, and\n\\(F_{IJ}(X_{ij})\\) is a function of the local environment variable\n\\(X_{ij}\\). This generic potential is fully defined once the\nconstants \\(\\eta_{ij}\\) and \\(\\xi_{IJ}\\), and the six functions\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\),\n\\(G_{JIK}(\\cos\\theta_{jik})\\), \\(P_{JIK}(\\Delta r_{jik})\\), and\n\\(F_{IJ}(X_{ij})\\) are given. Here LAMMPS uses a global parameter\n\\(\\eta\\) to represent \\(\\eta_{ij}\\). When \\(\\eta = 1\\),\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\), otherwise \\(\\eta_{ij} =\n\\delta_{ij}\\). Additionally, \\(\\eta = 3\\) indicates that the function\n\\(P_{JIK}(\\Delta r)\\) depends on species I, J and K, otherwise\n\\(P_{JIK}(\\Delta r) = P_{IK}(\\Delta r)\\) only depends on species I\nand K. Note that these six functions are all one dimensional, and hence\ncan be provided in a tabular form. This allows users to design different\npotentials solely based on a manipulation of these functions. For\ninstance, the potential reduces to a Stillinger-Weber potential\n(**SW**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = A_{IJ}\\cdot\\epsilon_{IJ}\\cdot \\left(\\frac{\\sigma_{IJ}}{r}\\right)^q\\cdot \\left[B_{IJ}\\cdot \\left(\\frac{\\sigma_{IJ}}{r}\\right)^{p-q}-1\\right]\\cdot exp\\left(\\frac{\\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\sqrt{\\lambda_{IJ}\\cdot \\epsilon_{IJ}}\\cdot exp\\left(\\frac{\\gamma_{IJ}\\cdot \\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n F_{IJ}\\left(X\\right) & = -X \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = \\sqrt{\\lambda_{IJ}\\cdot \\epsilon_{IJ}}\\cdot exp\\left(\\frac{\\gamma_{IJ}\\cdot \\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\left(\\cos\\theta+\\frac{1}{3}\\right)^2 \\end{align*} \\]\nThe potential reduces to a Tersoff potential (**Tersoff**\nor **poly-Albe**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = \\frac{D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{2S_{IJ}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\frac{S_{IJ}\\cdot D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{\\frac{2}{S_{IJ}}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = \\left(1+X\\right)^{-\\frac{1}{2}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = exp\\left(2\\mu_{IK}\\cdot \\Delta r\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\gamma_{IK}\\left[1+\\frac{c_{IK}^2}{d_{IK}^2}-\\frac{c_{IK}^2}{d_{IK}^2+\\left(h_{IK}+\\cos\\theta\\right)^2}\\right] \\end{align*} \\]\nwhere\n\\[\n f_{c,IJ}\\left(r\\right)=\\left\\{\\begin{array}{l}\n 1, r\\leq R_{IJ}-D_{IJ} \\\\\n \\frac{1}{2}+\\frac{1}{2}cos\\left[\\frac{\\pi\\left(r+D_{IJ}-R_{IJ}\\right)}{2D_{IJ}}\\right], R_{IJ}-D_{IJ} < r < R_{IJ}+D_{IJ} \\\\\n 0, r \\geq R_{IJ}+D_{IJ}\n \\end{array}\\right.\\]\nThe potential reduces to a modified Stillinger-Weber potential\n(**Zhou3**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = \\varphi_{R,IJ}\\left(r\\right)-\\varphi_{A,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = u_{IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = -X \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = u_{IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = g_{JIK}\\left(\\cos\\theta\\right) \\end{align*} \\]\nThe potential reduces to a Rockett-Tersoff potential (**Wang3**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = A_{IJ}exp\\left(-\\lambda_{1,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right)f_{ca,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\left\\{\\begin{array}{l}B_{IJ}exp\\left(-\\lambda_{2,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right)+ \\\\ A_{IJ}exp\\left(-\\lambda_{1,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right) \\left[1-f_{ca,IJ}\\left(r\\right)\\right]\\end{array} \\right\\} \\\\\n F_{IJ}\\left(X\\right) & = \\left[1+\\left(\\beta_{IJ}X\\right)^{n_{IJ}}\\right]^{-\\frac{1}{2n_{IJ}}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = exp\\left(\\lambda_{3,IK}\\cdot \\Delta r^3\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = 1+\\frac{c_{IK}^2}{d_{IK}^2}-\\frac{c_{IK}^2}{d_{IK}^2+\\left(h_{IK}+\\cos\\theta\\right)^2} \\end{align*} \\]\nwhere \\(f_{ca,IJ}(r)\\) is similar to the \\(f_{c,IJ}(r)\\) defined\nabove:\n\\[\n f_{ca,IJ}\\left(r\\right)=\\left\\{\\begin{array}{l}\n 1, r\\leq R_{a,IJ}-D_{a,IJ} \\\\\n \\frac{1}{2}+\\frac{1}{2}cos\\left[\\frac{\\pi\\left(r+D_{a,IJ}-R_{a,IJ}\\right)}{2D_{a,IJ}}\\right], R_{a,IJ}-D_{a,IJ} < r < R_{a,IJ}+D_{a,IJ} \\\\\n 0, r \\geq R_{a,IJ}+D_{a,IJ}\n \\end{array}\\right.\\]\nThe potential becomes the embedded atom method (**poly-Daw**)\nif we set\n\\[\\begin{align*} \n \\eta_{ij} & = 1-\\delta_{ij} (\\eta = 1),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = \\phi_{IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = 1 \\\\\n F_{II}\\left(X\\right) & = -2F_I\\left(X\\right) \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = f_{J}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = 1 \\end{align*} \\]\nIn the embedded atom method case, \\(\\phi_{IJ}(r)\\) is the pair\nenergy, \\(F_I(X)\\) is the embedding energy, *X* is the local\nelectron density, and \\(f_J(r)\\) is the atomic electron density\nfunction.\n\nThe potential reduces to another type of Tersoff potential (**Zhou4**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 3),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = \\frac{D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{2S_{IJ}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\cdot T_{IJ}\\left(r\\right)+V_{ZBL,IJ}\\left(r\\right)\\left[1-T_{IJ}\\left(r\\right)\\right] \\\\\n V_{IJ}\\left(r\\right) & = \\frac{S_{IJ}\\cdot D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{\\frac{2}{S_{IJ}}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\cdot T_{IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = \\left(1+X\\right)^{-\\frac{1}{2}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = \\omega_{JIK} \\cdot exp\\left(\\alpha_{JIK}\\cdot \\Delta r\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\gamma_{JIK}\\left[1+\\frac{c_{JIK}^2}{d_{JIK}^2}-\\frac{c_{JIK}^2}{d_{JIK}^2+\\left(h_{JIK}+\\cos\\theta\\right)^2}\\right] \\\\\n T_{IJ}\\left(r\\right) & = \\frac{1}{1+exp\\left[-b_{f,IJ}\\left(r-r_{f,IJ}\\right)\\right]} \\\\\n V_{ZBL,IJ}\\left(r\\right) & = 14.4 \\cdot \\frac{Z_I \\cdot Z_J}{r}\\sum_{k=1}^{4}\\mu_k \\cdot exp\\left[-\\nu_k \\left(Z_I^{0.23}+Z_J^{0.23}\\right) r\\right] \\end{align*} \\]\nwhere \\(f_{c,IJ}(r)\\) is the same as defined above. This Tersoff\npotential differs from the one above because the \\(P_{JIK}(\\Delta\nr)\\) function is now dependent on all three species I, J, and K.\n\nIf the tabulated functions are created using the parameters of\nStillinger-Weber, Tersoff, and EAM potentials, the polymorphic pair\nstyle will produce the same global properties (energies and stresses)\nand the same forces as the [sw ](https://docs.lammps.org/pair_sw.html), [tersoff](https://docs.lammps.org/pair_tersoff.html), and [eam ](https://docs.lammps.org/pair_eam.html) pair styles. The polymorphic\npair style also produces the same per-atom properties (energies and\nstresses) as the corresponding [tersoff ](https://docs.lammps.org/pair_tersoff.html) and\n[eam ](https://docs.lammps.org/pair_eam.html) pair styles. However, due to a different\npartitioning of global properties to per-atom properties, the\npolymorphic pair style will produce different per-atom properties\n(energies and stresses) as the [sw ](https://docs.lammps.org/pair_sw.html) pair style. This does\nnot mean that polymorphic pair style is different from the sw pair\nstyle. It just means that the definitions of the atom energies and atom\nstresses are different.\n\nOnly a single pair_coeff command is used with the polymorphic pair style\nwhich specifies a potential file for all needed elements. These are\nmapped to LAMMPS atom types by specifying N additional arguments after\nthe filename in the pair_coeff command, where N is the number of LAMMPS\natom types:\n\n* filename\n* N element names = mapping of polymorphic potential elements to atom types\n\nSee the pair_coeff page for alternate ways to specify the path for\nthe potential file. Several files for polymorphic potentials are\nincluded in the potentials directory of the LAMMPS distribution. They\nhave a \"poly\" suffix.\n\nAs an example, imagine the GaN_tersoff.poly file has tabulated functions\nfor Ga-N tersoff potential. If your LAMMPS simulation has 4 atom types and\nyou want the first 3 to be Ga, and the fourth to be N, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * GaN_tersoff.poly Ga Ga Ga N\n```\nThe first two arguments must be \\* \\* to span all pairs of LAMMPS atom\ntypes. The first three Ga arguments map LAMMPS atom types 1,2,3 to the\nGa element in the polymorphic file. The final N argument maps LAMMPS\natom type 4 to the N element in the polymorphic file. If a mapping value\nis specified as NULL, the mapping is not performed. This can be used\nwhen an polymorphic potential is used as part of the hybrid pair\nstyle. The NULL values are placeholders for atom types that will be used\nwith other potentials.\n\nPotential files in the potentials directory of the LAMMPS distribution\nhave a \".poly\" suffix. At the beginning of the files, an unlimited\nnumber of lines starting with '#' are used to describe the potential and\nare ignored by LAMMPS. The next line lists two numbers:\n\n```\nntypes eta\n```\nHere *ntypes* represent total number of species defined in the potential\nfile, \\(\\eta = 1\\) reduces to embedded atom method, \\(\\eta = 3\\)\nassumes a three species dependent \\(P_{JIK}(\\Delta r)\\) function,\nand all other values of \\(\\eta\\) assume a two species dependent\n\\(P_{JK}(\\Delta r)\\) function. The value of *ntypes* must equal the\ntotal number of different species defined in the pair_coeff command. The\nnext *ntypes* lines each lists two numbers and a character string\nrepresenting atomic number, atomic mass, and name of the species of the\nntypes elements:\n\n```\natomic-number atomic-mass element-name(1)\natomic-number atomic-mass element-name(2)\n...\natomic-number atomic-mass element-name(ntypes)\n```\nThe next line contains four numbers:\n\n```\nnr ntheta nx xmax\n```\nHere nr is total number of tabular points for radial functions U, V, W,\nP, ntheta is total number of tabular points for the angular function G,\nnx is total number of tabular points for the function F, xmax is a\nmaximum value of the argument of function F. Note that the pair\nfunctions \\(U_{IJ}(r)\\), \\(V_{IJ}(r)\\), \\(W_{IJ}(r)\\) are\nuniformly tabulated between 0 and cutoff distance of the IJ pair,\n\\(G_{JIK}(\\cos\\theta)\\) is uniformly tabulated between -1 and 1,\n\\(P_{JIK}(\\Delta r)\\) is uniformly tabulated between -rcmax and\nrcmax where rcmax is the maximum cutoff distance of all pairs, and\n\\(F_{IJ}(X)\\) is uniformly tabulated between 0 and xmax. Linear\nextrapolation is assumed if actual simulations exceed these ranges.\n\nThe next ntypes\\*(ntypes+1)/2 lines contain two numbers:\n\n```\ncut xi(1)\ncut xi(2)\n...\ncut xi(ntypes\\*(ntypes+1)/2)\n```\nHere cut means the cutoff distance of the pair functions, \"xi\" is\n\\(\\xi\\) as defined in the potential functions above. The\nntypes\\*(ntypes+1)/2 lines are related to the pairs according to the\nsequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then ij\n(cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ..., ntypes\n(i.e., the sequence of the ij pairs follows 11, 22, ..., 12, 13, 14,\n..., 23, 24, ...).\n\nIn the final blocks of the potential file, U, V, W, P, G, and F\nfunctions are listed sequentially. First, U functions are given for each\nof the ntypes\\*(ntypes+1)/2 pairs according to the sequence described\nabove. For each of the pairs, nr values are listed. Next, similar arrays\nare given for V and W functions. If P functions depend only on pair\nspecies, i.e., \\(\\eta \\neq 3\\), then P functions are also listed the\nsame way the next. If P functions depend on three species, i.e.,\n\\(\\eta = 3\\), then P functions are listed for all the\nntypes*ntypes*ntypes IJK triplets in a natural sequence I from 1 to\nntypes, J from 1 to ntypes, and K from 1 to ntypes (i.e., IJK = 111,\n112, 113, ..., 121, 122, 123 ..., 211, 212, ...). Next, G functions are\nlisted for all the ntypes*ntypes*ntypes IJK triplets similarly. For each\nof the G functions, ntheta values are listed. Finally, F functions are\nlisted for all the ntypes*(ntypes+1)/2 pairs in the same sequence as\ndescribed above. For each of the F functions, nx values are listed.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write their information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n----------\n\n**(Zhou3)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015). \n \n**(SW)** F. H. Stillinger, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985). \n \n**(Tersoff)** J. Tersoff, Phys. Rev. B, 39, 5566 (1989). \n \n**(poly-Albe)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, 66, 035205 (2002). \n \n**(Wang3)** J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991). \n \n**(poly-Daw)** M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984). \n \n**(Zhou4)** X. W. Zhou, M. E. Foster, J. A. Ronevich, and C. W. San Marchi, J. Comp. Chem., 41, 1299 (2020). \n ", - "restrictions": "If using create_atoms command, atomic masses must be defined in the\ninput script. If using read_data, atomic masses must be defined in the\natomic structure data file.\n\nThis pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair potential requires the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe potential files provided with LAMMPS (see the potentials directory)\nare parameterized for metal [units ](https://docs.lammps.org/units.html). You can use any LAMMPS\nunits, but you would need to create your own potential files.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n\n----------\n\n.. _Zhou3:\n\n**(Zhou3)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).\n\n.. _Zhou4:\n\n**(Zhou4)** X. W. Zhou, M. E. Foster, J. A. Ronevich, and C. W. San Marchi, J. Comp. Chem., 41, 1299 (2020).\n\n.. _SW:\n\n**(SW)** F. H. Stillinger, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985).\n\n.. _Tersoff:\n\n**(Tersoff)** J. Tersoff, Phys. Rev. B, 39, 5566 (1989).\n\n.. _poly-Albe:\n\n**(Albe1)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, 66, 035205 (2002).\n\n.. _Wang3:\n\n**(Wang)** J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991).\n\n.. _poly-Daw:\n\n**(Daw)** M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984).\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* computes = name of the AtC sub-command\n* add or delete = add or delete the calculation of an equivalent continuum field for the specified per-atom compute as volume or number density quantity\n* per-atom compute-ID = ID of a per-atom compute; fields can be calculated for all per-atom computes available in LAMMPS\n* volume or number = select whether the created field is a per-unit-volume quantity or a per-atom quantity as weighted by kernel functions \n", + "examples": "\n```lmps\ncompute virial all stress/atom\nfix_modify AtC computes add virial volume\nfix_modify AtC computes delete virial\n\ncompute centrosymmetry all centro/atom\nfix_modify AtC computes add centrosymmetry number\n```\n", + "html_filename": "atc_hardy_computes.html", + "short_description": "Calculates continuum fields corresponding to specified per-atom\n[computes ](https://docs.lammps.org/compute.html) created by LAMMPS", + "description": "Calculates continuum fields corresponding to specified per-atom\n[computes ](https://docs.lammps.org/compute.html) created by LAMMPS.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). The per-atom compute\nmust be specified before the corresponding continuum field can be\nrequested.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [compute ](https://docs.lammps.org/compute.html)\n" }, { "command": [ - "fix_modify AtC unfix" + "pair_style multi/lucy/rx", + "pair_style multi/lucy/rx/kk" ], "syntax": [ - "fix_modify unfix " + "pair_style multi/lucy/rx style N keyword ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] + "arg": "multi/lucy/rx", + "type": 3, + "choices": [ + "multi/lucy/rx", + "multi/lucy/rx/kk" + ] }, { - "arg": "unfix", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* unfix = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply boundary condition \n", - "examples": "\n```lmps\nfix_modify AtC unfix temperature groupNAME\n```\n", - "html_filename": "atc_unfix.html", - "short_description": "Removes constraint on field values for specified nodes", - "description": "Removes constraint on field values for specified nodes.\n", - "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fix ](https://docs.lammps.org/atc_fix.html)\n" + "parameters": "* style = lookup or linear = method of interpolation\n* N = use N values in lookup, linear tables\n* weighting = fractional or molecular (optional) \n", + "examples": "\n```lmps\npair_style multi/lucy/rx linear 1000\npair_style multi/lucy/rx linear 1000 fractional\npair_style multi/lucy/rx linear 1000 molecular\npair_coeff * * multibody.table ENTRY1 h2o h2o 7.0\npair_coeff * * multibody.table ENTRY1 h2o 1fluid 7.0\n```\n", + "html_filename": "pair_multi_lucy_rx.html", + "short_description": "Style *multi/lucy/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command", + "description": "Style *multi/lucy/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command. The species of\none CG particle can interact with a species in a neighboring CG\nparticle through a site-site interaction potential model. Style\n*multi/lucy/rx* computes the site-site density-dependent force\nfollowing from the many-body form described in **Moore2** and\n**Warren2** as\n\\[\n F_{i}^{DD}(\\rho_i,\\rho_j,r_{ij}) = \\frac{1}{2} \\omega_{DD}\\left(r_{ij}\\right)\n \\left[A\\left(\\rho_i\\right) + A\\left(\\rho_j\\right)\\right]e_{ij}\\]\nwhich consists of a density-dependent function, \\(A(\\rho)\\), and a\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\). The\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\), is taken\nas the Lucy function:\n\\[\n \\omega_{DD}\\left(r_{ij}\\right) = \\left(1+\\frac{3r_{ij}}{r_{cut}}\\right)\\left(1+\\frac{r_{ij}}{r_{cut}}\\right)^3\\]\nThe density-dependent energy for a given particle is given by:\n\\[\n u_{i}^{DD}\\left(\\rho_{i}\\right) = \\frac{\\pi r_{cut}^4}{84} \\int_{\\rho_0}^{\\rho_i} A\\left(\\rho'\\right) d\\rho'\\]\nSee the supporting information of **Brennan2** or the\npublication by **Moore2** for more details on the functional\nform.\n\nAn interpolation table is used to evaluate the density-dependent energy\n(\\(\\int A(\\rho') d \\rho'\\)) and force (\\(A(\\rho')\\)). Note that\nthe prefactor to the energy is computed after the interpolation, thus\nthe \\(\\int A(\\rho') d\\rho'\\) will have units of energy / length\\^4.\n\nThe interpolation table is created as a pre-computation by fitting\ncubic splines to the file values and interpolating the\ndensity-dependent energy and force at each of *N* densities. During a\nsimulation, the tables are used to interpolate the density-dependent\nenergy and force as needed for each pair of particles separated by a\ndistance *R* . The interpolation is done in one of 2 styles: *lookup*\nand *linear* .\n\nFor the *lookup* style, the density is used to find the nearest table\nentry, which is the density-dependent energy and force.\n\nFor the *linear* style, the density is used to find the 2 surrounding\ntable values from which the density-dependent energy and force are\ncomputed by linear interpolation.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* species1\n* species2\n* cutoff (distance units)\n\nThe filename specifies a file containing the tabulated\ndensity-dependent energy and force. The keyword specifies a section\nof the file. The cutoff is an optional coefficient. If not\nspecified, the outer cutoff in the table itself (see below) will be\nused to build an interpolation table that extend to the largest\ntabulated distance. If specified, only file values up to the cutoff\nare used to create the interpolation table. The format of this file\nis described below.\n\nThe species tags define the site-site interaction potential between\ntwo species contained within two different particles. The species\ntags must either correspond to the species defined in the reaction\nkinetics files specified with the [fix rx ](https://docs.lammps.org/fix_rx.html) command or they\nmust correspond to the tag \"1fluid\", signifying interaction with a\nproduct species mixture determined through a one-fluid approximation.\nThe interaction potential is weighted by the geometric average of\neither the mole fraction concentrations or the number of molecules\nassociated with the interacting coarse-grained particles (see the\n*fractional* or *molecular* weighting pair style options). The coarse-grained potential is\nstored before and after the reaction kinetics solver is applied, where\nthe difference is defined to be the internal chemical energy (uChem).\n\n----------\n\nThe format of a tabulated file is a series of one or more sections,\ndefined as follows (without the parenthesized comments):\n\n```\n# Density-dependent function (one or more comment or blank lines)\n\nDD-FUNCTION (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ parameters)\n(blank)\n1 1.0 25.5 102.34 (index, density, energy/r\\^4, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style multi/lucy/rx ](https://docs.lammps.org/pair_multi_lucy_rx.html)\ncommand. Let Ntable = *N* in the pair_style command, and Nfile = \"N\"\nin the tabulated file. What LAMMPS does is a preliminary\ninterpolation by creating splines using the Nfile tabulated values as\nnodal points. It uses these to interpolate the density-dependent\nenergy and force at Ntable different points. The resulting tables of\nlength Ntable are then used as described above, when computing the\ndensity-dependent energy and force. This means that if you want the\ninterpolation tables of length Ntable to match exactly what is in the\ntabulated file (with effectively no preliminary interpolation), you\nshould set Ntable = Nfile, and use the \"RSQ\" parameter. This is\nbecause the internal table abscissa is always RSQ (separation distance\nsquared), for efficient lookup.\n\nAll other parameters are optional. If \"R\" or \"RSQ\" does not appear,\nthen the distances in each line of the table are used as-is to perform\nspline interpolation. In this case, the table values can be spaced in\n*density* uniformly or however you wish to position table values in\nregions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo*\nand *rhi* . If specified, the density associated with each\ndensity-dependent energy and force value is computed from these 2\nvalues (at high accuracy), rather than using the (low-accuracy) value\nlisted in each line of the table. The density values in the table\nfile are ignored in this case. For \"R\", distances uniformly spaced\nbetween *rlo* and *rhi* are computed; for \"RSQ\", squared distances\nuniformly spaced between *rlo\\*rlo* and *rhi\\*rhi* are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the\n > file are effectively ignored, and replaced by new values as described\n > in the previous paragraph. If the density value in the table is not\n > very close to the new value (i.e. round-off difference), then you will\n > be assigning density-dependent energy and force values to a different\n > density, which is probably not what you want. LAMMPS will warn if\n > this is occurring. \n > \n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in density units), the third value is the density-dependent function\nvalue (in energy units / length\\^4), and the fourth is the force (in force\nunits). The density values must increase from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style multi/lucy/rx\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Moore2)** Moore, J Chem Phys, 144, 104501 (2016). \n \n**(Warren2)** Warren, Phys Rev E, 68, 066702 (2003). \n \n**(Brennan2)** Brennan, J Chem Phys Lett, 5, 2144-2149 (2014). \n ", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute temp/partial" + "fix pair" ], "syntax": [ - "compute ID group-ID temp/partial xflag yflag zflag" + "fix ID group-ID pair N pstyle name flag ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -6434,152 +5980,202 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/partial", + "arg": "pair", "type": 1, "choices": [] }, { - "arg": "xflag", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "yflag", + "arg": "pstyle", "type": 2, "choices": [] }, { - "arg": "zflag", + "arg": "name", + "type": 2, + "choices": [] + }, + { + "arg": "flag", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/partial = style name of this compute command\n* xflag,yflag,zflag = 0/1 for whether to exclude/include this dimension \n", - "examples": "\n```lmps\ncompute newT flow temp/partial 1 1 0\n```\n", - "html_filename": "compute_temp_partial.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms, after excluding one or more velocity components", - "description": "Define a computation that calculates the temperature of a group of\natoms, after excluding one or more velocity components. A compute of\nthis style can be used by any command that computes a temperature\n(e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) = temperature. The calculation of KE excludes the\n\\(x\\), \\(y\\), or \\(z\\) dimensions if *xflag*, *yflag*, or *zflag*\nis 0. The dim parameter is adjusted to give the correct number of\ndegrees of freedom.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of velocity components by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* pair = style name of this fix command\n* N = invoke this fix once every N timesteps\n* pstyle = name of pair style to extract info from (e.g. eam)\n* one or more name/flag pairs can be listed\n* name = name of quantity the pair style allows extraction of\n* flag = 1 if pair style needs to be triggered to produce data for name, 0 if not \n", + "examples": "\n```lmps\nfix request all pair 100 eam rho 0\nfix request all pair 100 amoeba uind 0 uinp 0\n```\n", + "html_filename": "fix_pair.html", + "short_description": "\nExtract per-atom quantities from a pair style and store them in this\nfix so they can be accessed by other LAMMPS commands, e.g", + "description": "\nExtract per-atom quantities from a pair style and store them in this\nfix so they can be accessed by other LAMMPS commands, e.g. by a\n[dump ](https://docs.lammps.org/dump.html) command or by another [fix ](https://docs.lammps.org/fix.html),\n[compute ](https://docs.lammps.org/compute.html), or [variable ](https://docs.lammps.org/variable.html) command.\n\nThese are example use cases:\n\n* extract per-atom density from [pair_style eam ](https://docs.lammps.org/pair_eam.html) to a dump file\n* extract induced dipoles from [pair_style amoeba ](https://docs.lammps.org/pair_amoeba.html) to a dump file\n* extract accuracy metrics from a machine-learned potential to trigger output when\n a condition is met (see the [dump_modify skip ](https://docs.lammps.org/dump_modify.html) command)\n\nThe *N* argument determines how often the fix is invoked.\n\nThe *pstyle* argument is the name of the pair style. It can be a\nsub-style used in a [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) command. If\nthere are multiple sub-styles using the same pair style, then *pstyle*\nshould be specified as \"style:N\", where *N* is the number of the\ninstance of the pair style you wish monitor (e.g., the first or second).\nFor example, *pstyle* could be specified as \"pace/extrapolation\" or\n\"amoeba\" or \"eam:1\" or \"eam:2\".\n\nOne or more *name/flag* pairs of arguments follow. Each *name* is a\nper-atom quantity which the pair style must recognize as an extraction\nrequest. See the doc pages for individual [pair_styles](https://docs.lammps.org/pair_style.html) to see what fix pair requests (if any) they support.\n\nThe *flag* setting determines whether this fix will also trigger the\npair style to compute the named quantity so it can be extracted. If the\nquantity is always computed by the pair style, no trigger is needed;\nspecify *flag* = 0. If the quantity is not always computed\n(e.g. because it is expensive to calculate), then specify *flag* = 1.\nThis will trigger the quantity to be calculated only on timesteps it is\nneeded. Again, see the doc pages for individual [pair_styles](https://docs.lammps.org/pair_style.html) to determine which fix pair requests (if any) need to be\ntriggered with a *flag* = 1 setting.\n\nThe per-atom data extracted from the pair style is stored by this fix\nas either a per-atom vector or array. If there is only one *name*\nargument specified and the pair style computes a single value for each\natom, then this fix stores it as a per-atom vector. Otherwise a\nper-atom array is created, with its data in the order of the *name*\narguments.\n\nFor example, [pair_style amoeba ](https://docs.lammps.org/pair_amoeba.html) allows extraction of\ntwo named quantities: \"uind\" and \"uinp\", both of which are 3-vectors for\neach atom, i.e. dipole moments. In the example below a 6-column per-atom\narray will be created. Columns 1-3 will store the \"uind\" values;\ncolumns 4-6 will store the \"uinp\" values.\n\n```lmps\npair_style amoeba\nfix ex all pair 10 amoeba uind 0 uinp 0\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nAs explained above, this fix produces a per-atom vector or array which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). If\nan array is produced, the number of columns is the sum of the number\nof per-atom quantities produced by each *name* argument requested from\nthe pair style.\n", + "restrictions": "none\n", + "related": "[compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "pair_style snap", - "pair_style snap/intel", - "pair_style snap/kk" + "unfix" ], "syntax": [ - "pair_style snap" + "unfix fix-ID" ], "args": [ [ { - "arg": "pair_style", + "arg": "unfix", "type": 1, "choices": [] }, { - "arg": "snap", - "type": 3, - "choices": [ - "snap", - "snap/intel", - "snap/kk" - ] + "arg": "fix-ID", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style snap\npair_coeff * * InP.snapcoeff InP.snapparam In In P P\n```\n", - "html_filename": "pair_snap.html", - "short_description": "Pair style *snap* defines the spectral neighbor analysis potential\n(SNAP), a machine-learning interatomic potential **Thompson20142**", - "description": "Pair style *snap* defines the spectral neighbor analysis potential\n(SNAP), a machine-learning interatomic potential **Thompson20142**. Like the GAP framework of Bartok et\nal. **Bartok20102**, SNAP uses bispectrum components\nto characterize the local neighborhood of each atom in a very general\nway. The mathematical definition of the bispectrum calculation and its\nderivatives w.r.t. atom positions is identical to that used by\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html), which is used to fit SNAP\npotentials to *ab initio* energy, force, and stress data. In SNAP, the\ntotal energy is decomposed into a sum over atom energies. The energy of\natom *i* is expressed as a weighted sum over bispectrum components.\n\\[\n E^i_{SNAP}(B_1^i,...,B_K^i) = \\beta^{\\mu_i}_0 + \\sum_{k=1}^K \\beta_k^{\\mu_i} B_k^i\\]\nwhere \\(B_k^i\\) is the *k* -th bispectrum component of atom *i*,\nand \\(\\beta_k^{\\mu_i}\\) is the corresponding linear coefficient that\ndepends on \\(\\mu_i\\), the SNAP element of atom *i* . The number of\nbispectrum components used and their definitions depend on the value of\n*twojmax* and other parameters defined in the SNAP parameter file\ndescribed below. The bispectrum calculation is described in more detail\nin [compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html).\n\nNote that unlike for other potentials, cutoffs for SNAP potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe SNAP potential files themselves.\n\nOnly a single pair_coeff command is used with the *snap* style which\nspecifies a SNAP coefficient file followed by a SNAP parameter file\nand then N additional arguments specifying the mapping of SNAP\nelements to LAMMPS atom types, where N is the number of\nLAMMPS atom types:\n\n* SNAP coefficient file\n* SNAP parameter file\n* N element names = mapping of SNAP elements to atom types\n\nAs an example, if a LAMMPS indium phosphide simulation has 4 atoms\ntypes, with the first two being indium and the third and fourth being\nphophorous, the pair_coeff command would look like this:\n\n```lmps\npair_coeff * * snap InP.snapcoeff InP.snapparam In In P P\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe two filenames are for the coefficient and parameter files, respectively.\nThe two trailing 'In' arguments map LAMMPS atom types 1 and 2 to the\nSNAP 'In' element. The two trailing 'P' arguments map LAMMPS atom types\n3 and 4 to the SNAP 'P' element.\n\nIf a SNAP mapping value is specified as NULL, the mapping is not\nperformed. This can be used when a *snap* potential is used as part of\nthe *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nThe name of the SNAP coefficient file usually ends in the \".snapcoeff\"\nextension. It may contain coefficients for many SNAP elements. The only\nrequirement is that each of the unique element names appearing in the\nLAMMPS pair_coeff command appear exactly once in the SNAP coefficient\nfile. It is okay if the SNAP coefficient file contains additional\nelements not in the pair_coeff command, except when using *chemflag*\n(see below). The name of the SNAP parameter file usually ends in the\n\".snapparam\" extension. It contains a small number of parameters that\ndefine the overall form of the SNAP potential. See the [pair_coeff](https://docs.lammps.org/pair_coeff.html) page for alternate ways to specify the path for these\nfiles.\n\nSNAP potentials are quite commonly combined with one or more other\nLAMMPS pair styles using the *hybrid/overlay* pair style. As an\nexample, the SNAP tantalum potential provided in the LAMMPS potentials\ndirectory combines the *snap* and *zbl* pair styles. It is invoked by\nthe following commands:\n\n```lmps\nvariable zblcutinner equal 4\nvariable zblcutouter equal 4.8\nvariable zblz equal 73\npair_style hybrid/overlay &\nzbl ${zblcutinner} ${zblcutouter} snap\npair_coeff * * zbl 0.0\npair_coeff 1 1 zbl ${zblz}\npair_coeff * * snap Ta06A.snapcoeff Ta06A.snapparam Ta\n```\nIt is convenient to keep these commands in a separate file that can be\ninserted in any LAMMPS input script using the [include ](https://docs.lammps.org/include.html)\ncommand.\n\nThe top of the SNAP coefficient file can contain any number of blank and\ncomment lines (start with #), but follows a strict format after\nthat. The first non-blank non-comment line must contain two integers:\n\n* nelem = Number of elements\n* ncoeff = Number of coefficients\n\nThis is followed by one block for each of the *nelem* elements.\nThe first line of each block contains three entries:\n\n* Element name (text string)\n* R = Element radius (distance units)\n* w = Element weight (dimensionless)\n\nThis line is followed by *ncoeff* coefficients, one per line.\n\nThe SNAP parameter file can contain blank and comment lines (start\nwith #) anywhere. Each non-blank non-comment line must contain one\nkeyword/value pair. The required keywords are *rcutfac* and\n*twojmax* . Optional keywords are *rfac0*, *rmin0*,\n*switchflag*, *bzeroflag*, *quadraticflag*, *chemflag*,\n*bnormflag*, *wselfallflag*, *switchinnerflag*,\n*sinner*, *dinner*, *chunksize*, and *parallelthresh* .\n\nThe default values for these keywords are\n\n* *rfac0* = 0.99363\n* *rmin0* = 0.0\n* *switchflag* = 1\n* *bzeroflag* = 1\n* *quadraticflag* = 0\n* *chemflag* = 0\n* *bnormflag* = 0\n* *wselfallflag* = 0\n* *switchinnerflag* = 0\n* *chunksize* = 32768\n* *parallelthresh* = 8192\n\nFor detailed definitions of all of these keywords,\nsee the [compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html) doc page.\n\nIf *quadraticflag* is set to 1, then the SNAP energy expression includes\nadditional quadratic terms that have been shown to increase the overall\naccuracy of the potential without much increase in computational cost\n**Wood20182**.\n\\[\n E^i_{SNAP}(\\mathbf{B}^i) = \\beta^{\\mu_i}_0 + \\boldsymbol{\\beta}^{\\mu_i} \\cdot \\mathbf{B}_i + \\frac{1}{2}\\mathbf{B}^t_i \\cdot \\boldsymbol{\\alpha}^{\\mu_i} \\cdot \\mathbf{B}_i\\]\nwhere \\(\\mathbf{B}_i\\) is the *K*-vector of bispectrum components,\n\\(\\boldsymbol{\\beta}^{\\mu_i}\\) is the *K*-vector of linear\ncoefficients for element \\(\\mu_i\\), and\n\\(\\boldsymbol{\\alpha}^{\\mu_i}\\) is the symmetric *K* by *K* matrix\nof quadratic coefficients. The SNAP coefficient file should contain\n*K* (\\ *K* +1)/2 additional coefficients in each element block, the\nupper-triangular elements of \\(\\boldsymbol{\\alpha}^{\\mu_i}\\).\n\nIf *chemflag* is set to 1, then the energy expression is written in\nterms of explicit multi-element bispectrum components indexed on ordered\ntriplets of elements, which has been shown to increase the ability of\nthe SNAP potential to capture energy differences in chemically complex\nsystems, at the expense of a significant increase in computational cost\n**Cusentino20202**.\n\\[\n E^i_{SNAP}(\\mathbf{B}^i) = \\beta^{\\mu_i}_0 + \\sum_{\\kappa,\\lambda,\\mu} \\boldsymbol{\\beta}^{\\kappa\\lambda\\mu}_{\\mu_i} \\cdot \\mathbf{B}^{\\kappa\\lambda\\mu}_i\\]\nwhere \\(\\mathbf{B}^{\\kappa\\lambda\\mu}_i\\) is the *K*-vector of\nbispectrum components for neighbors of elements \\(\\kappa\\),\n\\(\\lambda\\), and \\(\\mu\\) and\n\\(\\boldsymbol{\\beta}^{\\kappa\\lambda\\mu}_{\\mu_i}\\) is the\ncorresponding *K*-vector of linear coefficients for element\n\\(\\mu_i\\). The SNAP coefficient file should contain a total of\n\\(K N_{elem}^3\\) coefficients in each element block, where\n\\(N_{elem}\\) is the number of elements in the SNAP coefficient file,\nwhich must equal the number of unique elements appearing in the LAMMPS\npair_coeff command, to avoid ambiguity in the number of coefficients.\n\nThe keyword *switchinnerflag* activates an additional switching function\nthat smoothly turns off contributions to the SNAP potential from neighbor\natoms at short separations. If *switchinnerflag* is set to 1 then\nthe additional keywords *sinner* and *dinner* must also be provided.\nEach of these is followed by *nelements* values, where *nelements*\nis the number of unique elements appearing in appearing in the LAMMPS\npair_coeff command. The element order should correspond to the order\nin which elements first appear in the pair_coeff command reading from\nleft to right.\n\nThe keywords *chunksize* and *parallelthresh* are only applicable when\nusing the pair style *snap* with the KOKKOS package on GPUs and are\nignored otherwise. The *chunksize* keyword controls the number of atoms\nin each pass used to compute the bispectrum components and is used to\navoid running out of memory. For example if there are 8192 atoms in the\nsimulation and the *chunksize* is set to 4096, the bispectrum\ncalculation will be broken up into two passes (running on a single GPU).\nThe *parallelthresh* keyword controls a crossover threshold for\nperforming extra parallelism. For small systems, exposing additional\nparallelism can be beneficial when there is not enough work to fully\nsaturate the GPU threads otherwise. However, the extra parallelism also\nleads to more divergence and can hurt performance when the system is\nalready large enough to saturate the GPU threads. Extra parallelism\nwill be performed if the *chunksize* (or total number of atoms per GPU)\nis smaller than *parallelthresh*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The previously used *diagonalstyle* keyword was removed in 2019,\n > since all known SNAP potentials use the default value of 3. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Thompson20142)** Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316 (2015). \n \n**(Bartok20102)** Bartok, Payne, Kondor, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Wood20182)** Wood and Thompson, J Chem Phys, 148, 241721, (2018) \n \n**(Cusentino20202)** Cusentino, Wood, Thompson, J Phys Chem A, 124, 5456, (2020) \n ", - "restrictions": "This style is part of the ML-SNAP package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *snap/intel* accelerator variant will *only* be available if LAMMPS\nis built with Intel *compilers* and for CPUs with AVX-512 support.\nWhile the INTEL package in general allows multiple floating point\nprecision modes to be selected, *snap/intel* will currently always use\nfull double precision regardless of the precision mode selected.\nAdditionally, the *intel* variant of snap will **NOT** use multiple\nthreads with OpenMP.\n", - "related": "[compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snad/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snav/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html)\n" + "parameters": "* fix-ID = ID of a previously defined fix \n", + "examples": "\n```lmps\nunfix 2\nunfix lower-boundary\n```\n", + "html_filename": "unfix.html", + "short_description": "Delete a fix that was previously defined with a [fix ](https://docs.lammps.org/fix.html)\ncommand", + "description": "Delete a fix that was previously defined with a [fix ](https://docs.lammps.org/fix.html)\ncommand. This also wipes out any additional changes made to the fix\nvia the [fix_modify ](https://docs.lammps.org/fix_modify.html) command.\n", + "restrictions": " none\n", + "related": "[fix ](https://docs.lammps.org/fix.html)\n" }, { "command": [ - "bond_style mesocnt" + "fix imd" ], "syntax": [ - "bond_style mesocnt" + "fix ID group-ID imd trate port keyword values ..." ], "args": [ [ { - "arg": "bond_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "mesocnt", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "imd", "type": 1, "choices": [] + }, + { + "arg": "trate", + "type": 2, + "choices": [] + }, + { + "arg": "port", + "type": 2, + "choices": [] + }, + { + "arg": "nowait", + "type": 3, + "choices": [ + "unwrap", + "fscale", + "trate", + "nowait" + ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style mesocnt\nbond_coeff 1 C 10 10 20.0\nbond_coeff 4 custom 800.0 10.0\n```\n", - "html_filename": "bond_mesocnt.html", - "short_description": "\nThe *mesocnt* bond style is a wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", - "description": "\nThe *mesocnt* bond style is a wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the\nusual 1/2 factor is included in \\(K\\). The style implements\nparameterization presets of \\(K\\) for mesoscopic simulations of\ncarbon nanotubes based on the atomistic simulations of\n**Srivastava_1**.\n\nOther presets can be readily implemented in the future.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* preset = *C* or *custom*\n* additional parameters depending on preset\n\nPreset *C* is for carbon nanotubes, and the additional parameters are:\n\n* chiral index \\(n\\) (unitless)\n* chiral index \\(m\\) (unitless)\n* \\(r_0\\) (distance)\n\nPreset *custom* is simply a direct wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and the additional parameters are:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n**(Srivastava_1)** Zhigilei, Wei and Srivastava, Phys. Rev. B 71, 165417\n(2005). \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\nand MESONT packages. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* imd = style name of this fix command\n* port = port number on which the fix listens for an IMD client\n* keyword = unwrap or fscale or trate or nowait \n *        unwrap arg = on or off \n         off = coordinates are wrapped back into the principal unit cell (default) \n         on = \"unwrapped\" coordinates using the image flags used \n *        fscale arg = factor \n         factor = floating point number to scale IMD forces (default: 1.0) \n *        trate arg = transmission rate of coordinate data sets (default: 1) \n *        nowait arg = on or off \n         off = LAMMPS waits to be connected to an IMD client before continuing (default) \n         on = LAMMPS listens for an IMD client, but continues with the run \n", + "examples": "\n```lmps\nfix vmd all imd 5678\nfix comm all imd 8888 trate 5 unwrap on fscale 10.0\n```\n", + "html_filename": "fix_imd.html", + "short_description": "This fix implements the \"Interactive MD\" (IMD) protocol which allows\nrealtime visualization and manipulation of MD simulations through the\nIMD protocol, as initially implemented in VMD and NAMD", + "description": "This fix implements the \"Interactive MD\" (IMD) protocol which allows\nrealtime visualization and manipulation of MD simulations through the\nIMD protocol, as initially implemented in VMD and NAMD. Specifically\nit allows LAMMPS to connect an IMD client, for example the [VMD visualization program ](https://www.ks.uiuc.edu/Research/vmd), so that it can monitor the progress of the\nsimulation and interactively apply forces to selected atoms.\n\nIf LAMMPS is compiled with the pre-processor flag -DLAMMPS_ASYNC_IMD\nthen fix imd will use POSIX threads to spawn a IMD communication\nthread on MPI rank 0 in order to offload data reading and writing\nfrom the main execution thread and potentially lower the inferred\nlatencies for slow communication links. This feature has only been\ntested under linux.\n\nThe source code for this fix includes code developed by the Theoretical\nand Computational Biophysics Group in the Beckman Institute for Advanced\nScience and Technology at the University of Illinois at\nUrbana-Champaign. We thank them for providing a software interface that\nallows codes like LAMMPS to hook to [VMD ](https://www.ks.uiuc.edu/Research/vmd).\n\nUpon initialization of the fix, it will open a communication port on\nthe node with MPI task 0 and wait for an incoming connection. As soon\nas an IMD client is connected, the simulation will continue and the\nfix will send the current coordinates of the fix's group to the IMD\nclient at every trate MD step. When using r-RESPA, trate applies to\nthe steps of the outmost RESPA level. During a run with an active IMD\nconnection also the IMD client can request to apply forces to selected\natoms of the fix group.\n\nThe port number selected must be an available network port number. On\nmany machines, port numbers < 1024 are reserved for accounts with\nsystem manager privilege and specific applications. If multiple imd\nfixes would be active at the same time, each needs to use a different\nport number.\n\nThe *nowait* keyword controls the behavior of the fix when no IMD\nclient is connected. With the default setting of *off*, LAMMPS will\nwait until a connection is made before continuing with the\nexecution. Setting *nowait* to *on* will have the LAMMPS code be ready\nto connect to a client, but continue with the simulation. This can for\nexample be used to monitor the progress of an ongoing calculation\nwithout the need to be permanently connected or having to download a\ntrajectory file.\n\nThe *trate* keyword allows to select how often the coordinate data is\nsent to the IMD client. It can also be changed on request of the IMD\nclient through an IMD protocol message. The *unwrap* keyword allows\nto send \"unwrapped\" coordinates to the IMD client that undo the\nwrapping back of coordinates into the principle unit cell, as done by\ndefault in LAMMPS. The *fscale* keyword allows to apply a scaling\nfactor to forces transmitted by the IMD client. The IMD protocols\nstipulates that forces are transferred in kcal/mol/Angstrom under the\nassumption that coordinates are given in Angstrom. For LAMMPS runs\nwith different units or as a measure to tweak the forces generated by\nthe manipulation of the IMD client, this option allows to make\nadjustments.\n\nTo connect VMD to a listening LAMMPS simulation on the same machine\nwith fix imd enabled, one needs to start VMD and load a coordinate or\ntopology file that matches the fix group. When the VMD command\nprompts appears, one types the command line:\n\n```\nimd connect localhost 5678\n```\nThis assumes that *fix imd* was started with 5678 as a port\nnumber for the IMD protocol.\n\nThe steps to do interactive manipulation of a running simulation in\nVMD are the following:\n\nIn the Mouse menu of the VMD Main window, select \"Mouse -> Force ->\nAtom\". You may alternately select \"Residue\", or \"Fragment\" to apply\nforces to whole residues or fragments. Your mouse can now be used to\napply forces to your simulation. Click on an atom, residue, or fragment\nand drag to apply a force. Click quickly without moving the mouse to\nturn the force off. You can also use a variety of 3D position trackers\nto apply forces to your simulation. Game controllers or haptic devices\nwith force-feedback such as the Novint Falcon or Sensable PHANTOM allow\nyou to feel the resistance due to inertia or interactions with neighbors\nthat the atoms experience you are trying to move, as if they were real\nobjects. See the [VMD IMD Homepage ](https://www.ks.uiuc.edu/Research/vmd/imd/) for more details.\n\nIf IMD control messages are received, a line of text describing the\nmessage and its effect will be printed to the LAMMPS output screen, if\nscreen output is active.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global scalar or vector or per-atom quantities\nare stored by this fix for access by various [output commands](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is not\ninvoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the MISC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nWhen used in combination with VMD, a topology or coordinate file has\nto be loaded, which matches (in number and ordering of atoms) the\ngroup the fix is applied to. The fix internally sorts atom IDs by\nascending integer value; in VMD (and thus the IMD protocol) those will\nbe assigned 0-based consecutive index numbers.\n\nWhen using multiple active IMD connections at the same time, each\nneeds to use a different port number.\n", + "related": "none\n" }, { "command": [ - "pair_style soft", - "pair_style soft/gpu", - "pair_style soft/kk", - "pair_style soft/omp" + "variable" ], "syntax": [ - "pair_style soft cutoff" + "variable name style args ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "variable", "type": 1, "choices": [] }, { - "arg": "soft", + "arg": "name", + "type": 2, + "choices": [] + }, + { + "arg": "atom", "type": 3, "choices": [ - "soft", - "soft/gpu", - "soft/kk", - "soft/omp" + "delete", + "atomfile", + "file", + "format", + "getenv", + "index", + "internal", + "loop", + "python", + "string", + "timer", + "uloop", + "universe", + "world", + "equal", + "vector", + "atom" ] }, { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for soft interactions (distance units) \n", - "examples": "\n```lmps\npair_style soft 1.0\npair_coeff * * 10.0\npair_coeff 1 1 10.0 3.0\n\npair_style soft 1.0\npair_coeff * * 0.0\nvariable prefactor equal ramp(0,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n", - "html_filename": "pair_soft.html", - "short_description": "Style *soft* computes pairwise interactions with the formula\n\\[\n E = A \\left[ 1 + \\cos\\left(\\frac{\\pi r}{r_c}\\right) \\right]\n \\qquad r < r_c\\]\nIt is useful for pushing apart overlapping atoms, since it does not\nblow up as r goes to 0", - "description": "Style *soft* computes pairwise interactions with the formula\n\\[\n E = A \\left[ 1 + \\cos\\left(\\frac{\\pi r}{r_c}\\right) \\right]\n \\qquad r < r_c\\]\nIt is useful for pushing apart overlapping atoms, since it does not\nblow up as r goes to 0. A is a prefactor that can be made to vary in\ntime from the start to the end of the run (see discussion below),\ne.g. to start with a very soft potential and slowly harden the\ninteractions over time. \\(r_c\\) is the cutoff.\nSee the [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html) command for another way\nto push apart overlapping atoms.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global soft\ncutoff is used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The syntax for [pair_coeff ](https://docs.lammps.org/pair_coeff.html) with a single A\n > coeff is different in the current version of LAMMPS than in older\n > versions which took two values, Astart and Astop, to ramp between\n > them. This functionality is now available in a more general form\n > through the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command, as explained below.\n > Note that if you use an old input script and specify Astart and Astop\n > without a cutoff, then LAMMPS will interpret that as A and a cutoff,\n > which is probably not what you want. \n > \n\nThe [fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to vary A for one\nor more pair types over the course of a simulation, in which case\npair_coeff settings for A must still be specified, but will be\noverridden. For example these commands will vary the prefactor A for\nall pairwise interactions from 0.0 at the beginning to 30.0 at the end\nof a run:\n\n```lmps\nvariable prefactor equal ramp(0,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\nNote that a formula defined by an [equal-style variable ](https://docs.lammps.org/variable.html)\ncan use the current timestep, elapsed time in the current run, elapsed\ntime since the beginning of a series of runs, as well as access other\nvariables.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is always mixed via a\n*geometric* rule. The cutoff is mixed according to the pair_modify\nmix value. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the pair interaction goes to 0.0 at the cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": " none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" + "parameters": "* name = name of variable to define\n* style = delete or atomfile or file or format or getenv or index or internal or loop or python or string or timer or uloop or universe or world or equal or vector or atom \n *        delete = no args \n *        atomfile arg = filename \n *        file arg = filename \n *        format args = vname fstr \n         vname = name of equal-style variable to evaluate \n         fstr = C-style format string \n *        getenv arg = one string \n *        index args = one or more strings \n *        internal arg = numeric value \n *        loop args = N \n         N = integer size of loop, loop from 1 to N inclusive \n *        loop args = N pad \n         N = integer size of loop, loop from 1 to N inclusive \n         pad = all values will be same length, e.g. 001, 002, ..., 100 \n *        loop args = N1 N2 \n         N1,N2 = loop from N1 to N2 inclusive \n *        loop args = N1 N2 pad \n         N1,N2 = loop from N1 to N2 inclusive \n         pad = all values will be same length, e.g. 050, 051, ..., 100 \n *        python arg = function \n *        string arg = one string \n *        timer arg = no arguments \n *        uloop args = N \n         N = integer size of loop \n *        uloop args = N pad \n         N = integer size of loop \n         pad = all values will be same length, e.g. 001, 002, ..., 100 \n *        universe args = one or more strings \n *        world args = one string for each partition of processors \n *        equal or vector or atom args = one formula containing numbers, thermo keywords, math operations, built-in functions, atom values and vectors, compute/fix/variable references \n         numbers = 0.0, 100, -5.4, 2.8e-4, etc \n         constants = PI, version, on, off, true, false, yes, no \n         thermo keywords = vol, ke, press, etc from [thermo_style ](https://docs.lammps.org/thermo_style.html) \n         math operators = (), -x, x+y, x-y, x\\*y, x/y, x\\^y, x%y, \n         x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \\|\\| y, x \\|\\^ y, !x \n         math functions = sqrt(x), exp(x), ln(x), log(x), abs(x), \n         sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), \n         random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), \n         ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), \n         logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), \n         vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) \n         group functions = count(group), mass(group), charge(group), \n         xcm(group,dim), vcm(group,dim), fcm(group,dim), \n         bound(group,dir), gyration(group), ke(group), \n         angmom(group,dim), torque(group,dim), \n         inertia(group,dimdim), omega(group,dim) \n         region functions = count(group,region), mass(group,region), charge(group,region), \n         xcm(group,dim,region), vcm(group,dim,region), fcm(group,dim,region), \n         bound(group,dir,region), gyration(group,region), ke(group,reigon), \n         angmom(group,dim,region), torque(group,dim,region), \n         inertia(group,dimdim,region), omega(group,dim,region) \n         special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) \n         feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id) \n         atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] \n         atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz \n         custom atom property = i_name, d_name, i_name[i], d_name[i], i2_name[i], d2_name[i], i2_name[i][j], d_name[i][j] \n         compute references = c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] \n         fix references = f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] \n         variable references = v_name, v_name[i] \n         vector initialization = [1,3,7,10] (for vector variables only) \n", + "examples": "\n```lmps\nvariable x index run1 run2 run3 run4 run5 run6 run7 run8\nvariable LoopVar loop $n\nvariable beta equal temp/3.0\nvariable b1 equal x[234]+0.5*vol\nvariable b1 equal \"x[234] + 0.5*vol\"\nvariable b equal xcm(mol1,x)/2.0\nvariable b equal c_myTemp\nvariable b atom x*y/vol\nvariable foo string myfile\nvariable foo internal 3.5\nvariable myPy python increase\nvariable f file values.txt\nvariable temp world 300.0 310.0 320.0 ${Tfinal}\nvariable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\nvariable x uloop 15 pad\nvariable str format x %.6g\nvariable myvec vector [1,3,7,10]\nvariable x delete\n```\n\n```lmps\nvariable start timer\nother commands\nvariable stop timer\nprint \"Elapsed time: $(v_stop-v_start:%.6f)\"\n```\n", + "html_filename": "variable.html", + "short_description": "This command assigns one or more strings to a variable name for\nevaluation later in the input script or during a simulation", + "description": "This command assigns one or more strings to a variable name for\nevaluation later in the input script or during a simulation.\n\nVariables can thus be useful in several contexts. A variable can be\ndefined and then referenced elsewhere in an input script to become\npart of a new input command. For variable styles that store multiple\nstrings, the [next ](https://docs.lammps.org/next.html) command can be used to increment which\nstring is assigned to the variable. Variables of style *equal* store\na formula which when evaluated produces a single numeric value which\ncan be output either directly (see the [print ](https://docs.lammps.org/print.html), [fixprint ](https://docs.lammps.org/fix_print.html), and [run every ](https://docs.lammps.org/run.html) commands) or as part of\nthermodynamic output (see the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand), or used as input to an averaging fix (see the [fixave/time ](https://docs.lammps.org/fix_ave_time.html) command). Variables of style *vector* store\na formula which produces a vector of such values which can be used as\ninput to various averaging fixes, or elements of which can be part of\nthermodynamic output. Variables of style *atom* store a formula which\nwhen evaluated produces one numeric value per atom which can be output\nto a dump file (see the [dump custom ](https://docs.lammps.org/dump.html) command) or used as\ninput to an averaging fix (see the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) and [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) commands).\nVariables of style *atomfile* can be used anywhere in an input script\nthat atom-style variables are used; they get their per-atom values\nfrom a file rather than from a formula. Variables of style *python*\ncan be hooked to Python functions using code you provide, so that the\nvariable gets its value from the evaluation of the Python code.\nVariables of style *internal* are used by a few commands which set\ntheir value directly.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, an input script can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on this page. This is a\n > convenient way to evaluate a formula immediately without using the\n > variable command to define a named variable and then evaluate that\n > variable. The formula can include a trailing colon and format\n > string which determines the precision with which the numeric value\n > is generated. This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nIn the discussion that follows, the \"name\" of the variable is the\narbitrary string that is the first argument in the variable command.\nThis name can only contain alphanumeric characters and underscores.\nThe \"string\" is one or more of the subsequent arguments. The \"string\"\ncan be simple text as in the first example above, it can contain other\nvariables as in the second example, or it can be a formula as in the third\nexample. The \"value\" is the numeric quantity resulting from\nevaluation of the string. Note that the same string can generate\ndifferent values when it is evaluated at different times during a\nsimulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When an input script line is encountered that defines a variable\n > of style *equal* or *vector* or *atom* or *python* that contains a\n > formula or Python code, the formula is NOT immediately evaluated. It\n > will be evaluated every time when the variable is **used** instead. If\n > you simply want to evaluate a formula in place you can use as\n > so-called. See the section below about \"Immediate Evaluation of\n > Variables\" for more details on the topic. This is also true of a\n > *format* style variable since it evaluates another variable when it is\n > invoked. \n > \n\nVariables of style *equal* and *vector* and *atom* can be used as\ninputs to various other commands which evaluate their formulas as\nneeded, e.g. at different timesteps during a [run ](https://docs.lammps.org/run.html). In\nthis context, variables of style *timer* or *internal* or *python* can\nbe used in place of an equal-style variable, with the following two\ncaveats.\n\nFirst, internal-style variables can be used except by commands that\nset the value stored by the internal variable. When the LAMMPS\ncommand evaluates the internal-style variable, it will use the value\nset (internally) by another command. Second, python-style variables\ncan be used so long as the associated Python function, as defined by\nthe [python ](https://docs.lammps.org/python.html) command, returns a numeric value. When the\nLAMMPS command evaluates the python-style variable, the Python\nfunction will be executed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a variable command is encountered in the input script and\n > the variable name has already been specified, the command is ignored.\n > This means variables can NOT be re-defined in an input script (with\n > two exceptions, read further). This is to allow an input script to be\n > processed multiple times without resetting the variables; see the\n > [jump ](https://docs.lammps.org/jump.html) or [include ](https://docs.lammps.org/include.html) commands. It also means\n > that using the [command-line switch ](https://docs.lammps.org/Run_options.html) -var will\n > override a corresponding index variable setting in the input script. \n > \n\nThere are two exceptions to this rule. First, variables of style\n*string*, *getenv*, *internal*, *equal*, *vector*, *atom*, and\n*python* ARE redefined each time the command is encountered. This\nallows these style of variables to be redefined multiple times in an\ninput script. In a loop, this means the formula associated with an\n*equal* or *atom* style variable can change if it contains a\nsubstitution for another variable, e.g. $x or v_x.\n\nSecond, as described below, if a variable is iterated on to the end of\nits list of strings via the [next ](https://docs.lammps.org/next.html) command, it is removed\nfrom the list of active variables, and is thus available to be\nre-defined in a subsequent variable command. The *delete* style does\nthe same thing.\n\nVariables are **not** deleted by the [clear ](https://docs.lammps.org/clear.html) command with\nthe exception of atomfile-style variables.\n\n----------\n\nThe [Commands parse ](https://docs.lammps.org/Commands_parse.html) page explains how\noccurrences of a variable name in an input script line are replaced by\nthe variable's string. The variable name can be referenced as $x if\nthe name \"x\" is a single character, or as ${LoopVar} if the name\n\"LoopVar\" is one or more characters.\n\nAs described below, for variable styles *index*, *loop*, *file*,\n*universe*, and *uloop*, which string is assigned to a variable can be\nincremented via the [next ](https://docs.lammps.org/next.html) command. When there are no more\nstrings to assign, the variable is exhausted and a flag is set that\ncauses the next [jump ](https://docs.lammps.org/jump.html) command encountered in the input\nscript to be skipped. This enables the construction of simple loops\nin the input script that are iterated over and then exited from.\n\nAs explained above, an exhausted variable can be re-used in an input\nscript. The *delete* style also removes the variable, the same as if\nit were exhausted, allowing it to be redefined later in the input\nscript or when the input script is looped over. This can be useful\nwhen breaking out of a loop via the [if ](https://docs.lammps.org/if.html) and [jump ](https://docs.lammps.org/jump.html)\ncommands before the variable would become exhausted. For example,\n\n```lmps\nlabel loop\nvariable a loop 5\nprint \"A = $a\"\nif \"$a > 2\" then \"jump in.script break\"\nnext a\njump in.script loop\nlabel break\nvariable a delete\n```\n----------\n\nThe next sections describe in how all the various variable styles are\ndefined and what they store. The styles are listed alphabetically,\nexcept for the *equal* and *vector* and *atom* styles, which are\nexplained together after all the others.\n\nMany of the styles store one or more strings. Note that a single\nstring can contain spaces (multiple words), if it is enclosed in\nquotes in the variable command. When the variable is substituted for\nin another input script command, its returned string will then be\ninterpreted as multiple arguments in the expanded command.\n\n----------\n\nFor the *atomfile* style, a filename is provided which contains one or\nmore sets of values, to assign on a per-atom basis to the variable.\nThe format of the file is described below.\n\nWhen an atomfile-style variable is defined, the file is opened and the\nfirst set of per-atom values are read and stored with the variable.\nThis means the variable can then be evaluated as many times as desired\nand will return those values. There are two ways to cause the next\nset of per-atom values from the file to be read: use the\n[next ](https://docs.lammps.org/next.html) command or the next() function in an atom-style\nvariable, as discussed below. Unlike most variable styles, which\nremain defined, atomfile-style variables are **deleted** during a\n[clear ](https://docs.lammps.org/clear.html) command.\n\nThe rules for formatting the file are as follows. Each time a set of\nper-atom values is read, a non-blank line is searched for in the file.\nThe file is read line by line but only up to 254 characters are used.\nThe rest are ignored. A comment character \"#\" can be used anywhere\non a line and all text following and the \"#\" character are ignored;\ntext starting with the comment character is stripped. Blank lines\nare skipped. The first non-blank line is expected to contain a single\ninteger number as the count *N* of per-atom lines to follow. *N* can\nbe the total number of atoms in the system or less, indicating that data\nfor a subset is read. The next N lines must consist of two numbers,\nthe atom-ID of the atom for which a value is set followed by a floating\npoint number with the value. The atom-IDs may be listed in any order.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Every time a set of per-atom lines is read, the value of the atomfile\n > variable for **all** atoms is first initialized to 0.0. Thus values\n > for atoms whose ID do not appear in the set in the file will remain\n > at 0.0. \n > \n\nBelow is a small example for the atomfile variable file format:\n\n```\n# first set\n4\n# atom-ID value\n3 1\n4 -4\n1 0.5\n2 -0.5\n\n# second set\n2\n\n2 1.0\n4 -1.0\n```\n----------\n\nFor the *file* style, a filename is provided which contains a list of\nstrings to assign to the variable, one per line. The strings can be\nnumeric values if desired. See the discussion of the next() function\nbelow for equal-style variables, which will convert the string of a\nfile-style variable into a numeric value in a formula.\n\nWhen a file-style variable is defined, the file is opened and the\nstring on the first line is read and stored with the variable. This\nmeans the variable can then be evaluated as many times as desired and\nwill return that string. There are two ways to cause the next string\nfrom the file to be read: use the [next ](https://docs.lammps.org/next.html) command or the\nnext() function in an equal- or atom-style variable, as discussed\nbelow.\n\nThe rules for formatting the file are as follows. A comment character\n\"#\" can be used anywhere on a line; text starting with the comment\ncharacter is stripped. Blank lines are skipped. The first \"word\" of\na non-blank line, delimited by white-space, is the \"string\" assigned\nto the variable.\n\n----------\n\nFor the *format* style, an equal-style or compatible variable is\nspecified along with a C-style format string, e.g. \"%f\" or \"%.10g\",\nwhich must be appropriate for formatting a double-precision\nfloating-point value and may not have extra characters. The default\nformat is \"%.15g\". This variable style allows an equal-style variable\nto be formatted precisely when it is evaluated.\n\nNote that if you simply wish to print a variable value with desired\nprecision to the screen or logfile via the [print ](https://docs.lammps.org/print.html) or\n[fix print ](https://docs.lammps.org/fix_print.html) commands, you can also do this by\nspecifying an \"immediate\" variable with a trailing colon and format\nstring, as part of the string argument of those commands. This is\nexplained on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page.\n\n----------\n\nFor the *getenv* style, a single string is assigned to the variable\nwhich should be the name of an environment variable. When the\nvariable is evaluated, it returns the value of the environment\nvariable, or an empty string if it not defined. This style of\nvariable can be used to adapt the behavior of LAMMPS input scripts via\nenvironment variable settings, or to retrieve information that has\nbeen previously stored with the [shell putenv ](https://docs.lammps.org/shell.html) command.\nNote that because environment variable settings are stored by the\noperating systems, they persist even if the corresponding *getenv*\nstyle variable is deleted, and also are set for sub-shells executed\nby the [shell ](https://docs.lammps.org/shell.html) command.\n\n----------\n\nFor the *index* style, one or more strings are specified. Initially,\nthe first string is assigned to the variable. Each time a\n[next ](https://docs.lammps.org/next.html) command is used with the variable name, the next\nstring is assigned. All processors assign the same string to the\nvariable.\n\nIndex-style variables with a single string value can also be set by\nusing the [command-line switch -var ](https://docs.lammps.org/Run_options.html).\n\n----------\n\nFor the *internal* style a numeric value is provided. This value will\nbe assigned to the variable until a LAMMPS command sets it to a new\nvalue. There are currently only two LAMMPS commands that require\n*internal* variables as inputs, because they reset them:\n[create_atoms ](https://docs.lammps.org/create_atoms.html) and [fix controller](https://docs.lammps.org/fix_controller.html). As mentioned above, an internal-style variable can\nbe used in place of an equal-style variable anywhere else in an input\nscript, e.g. as an argument to another command that allows for\nequal-style variables.\n\n----------\n\nThe *loop* style is identical to the *index* style except that the\nstrings are the integers from 1 to N inclusive, if only one argument N\nis specified. This allows generation of a long list of runs\n(e.g. 1000) without having to list N strings in the input script.\nInitially, the string \"1\" is assigned to the variable. Each time a\n[next ](https://docs.lammps.org/next.html) command is used with the variable name, the next\nstring (\"2\", \"3\", etc) is assigned. All processors assign the same\nstring to the variable. The *loop* style can also be specified with\ntwo arguments N1 and N2. In this case the loop runs from N1 to N2\ninclusive, and the string N1 is initially assigned to the variable.\nN1 <= N2 and N2 >= 0 is required.\n\n----------\n\nFor the *python* style a Python function name is provided. This needs\nto match a function name specified in a [python ](https://docs.lammps.org/python.html) command\nwhich returns a value to this variable as defined by its *return*\nkeyword. For example these two commands would be self-consistent:\n\n```lmps\nvariable foo python myMultiply\npython myMultiply return v_foo format f file funcs.py\n```\nThe two commands can appear in either order so long as both are\nspecified before the Python function is invoked for the first time.\n\nEach time the variable is evaluated, the associated Python function is\ninvoked, and the value it returns is also returned by the variable.\nSince the Python function can use other LAMMPS variables as input, or\nquery interal LAMMPS quantities to perform its computation, this means\nthe variable can return a different value each time it is evaluated.\n\nThe type of value stored in the variable is determined by the *format*\nkeyword of the [python ](https://docs.lammps.org/python.html) command. It can be an integer\n(i), floating point (f), or string (s) value. As mentioned above, if\nit is a numeric value (integer or floating point), then the\npython-style variable can be used in place of an equal-style variable\nanywhere in an input script, e.g. as an argument to another command\nthat allows for equal-style variables.\n\n----------\n\nFor the *string* style, a single string is assigned to the variable.\nTwo differences between this style and using the *index* style exist:\na variable with *string* style can be redefined, e.g. by another command later\nin the input script, or if the script is read again in a loop. The other\ndifference is that *string* performs variable substitution even if the\nstring parameter is quoted.\n\n----------\n\nThe *uloop* style is identical to the *universe* style except that the\nstrings are the integers from 1 to N. This allows generation of long\nlist of runs (e.g. 1000) without having to list N strings in the input\nscript.\n\n----------\n\nFor the *universe* style, one or more strings are specified. There\nmust be at least as many strings as there are processor partitions or\n\"worlds\". LAMMPS can be run with multiple partitions via the\n[-partition command-line switch ](https://docs.lammps.org/Run_options.html). This variable\ncommand initially assigns one string to each world. When a\n[next ](https://docs.lammps.org/next.html) command is encountered using this variable, the first\nprocessor partition to encounter it, is assigned the next available\nstring. This continues until all the variable strings are consumed.\nThus, this command can be used to run 50 simulations on 8 processor\npartitions. The simulations will be run one after the other on\nwhatever partition becomes available, until they are all finished.\nUniverse-style variables are incremented using the files\n\"tmp.lammps.variable\" and \"tmp.lammps.variable.lock\" which you will\nsee in your directory during such a LAMMPS run.\n\n----------\n\nFor the *world* style, one or more strings are specified. There must\nbe one string for each processor partition or \"world\". LAMMPS can be\nrun with multiple partitions via the [-partition command-lineswitch ](https://docs.lammps.org/Run_options.html). This variable command assigns one string to\neach world. All processors in the world are assigned the same string.\nThe next command cannot be used with equal-style variables, since\nthere is only one value per world. This style of variable is useful\nwhen you wish to run different simulations on different partitions, or\nwhen performing a parallel tempering simulation (see the [temper](https://docs.lammps.org/temper.html) command), to assign different temperatures to different\npartitions.\n\n----------\n\nFor the *equal* and *vector* and *atom* styles, a single string is\nspecified which represents a formula that will be evaluated afresh\neach time the variable is used. If you want spaces in the string,\nenclose it in double quotes so the parser will treat it as a single\nargument. For *equal* -style variables the formula computes a scalar\nquantity, which becomes the value of the variable whenever it is\nevaluated. For *vector* -style variables the formula must compute a\nvector of quantities, which becomes the value of the variable whenever\nit is evaluated. The calculated vector can be of length one, but it\ncannot be a simple scalar value like that produced by an equal-style\ncompute. I.e. the formula for a vector-style variable must have at\nleast one quantity in it that refers to a global vector produced by a\ncompute, fix, or other vector-style variable. For *atom* -style\nvariables the formula computes one quantity for each atom whenever it\nis evaluated.\n\nNote that *equal*, *vector*, and *atom* variables can produce\ndifferent values at different stages of the input script or at\ndifferent times during a run. For example, if an *equal* variable is\nused in a [fix print ](https://docs.lammps.org/fix_print.html) command, different values could\nbe printed each timestep it was invoked. If you want a variable to be\nevaluated immediately, so that the result is stored by the variable\ninstead of the string, see the section below on \"Immediate Evaluation\nof Variables\".\n\nThe next command cannot be used with *equal* or *vector* or *atom*\nstyle variables, since there is only one string.\n\nThe formula for an *equal*, *vector*, or *atom* variable can contain a\nvariety of quantities. The syntax for each kind of quantity is\nsimple, but multiple quantities can be nested and combined in various\nways to build up formulas of arbitrary complexity. For example, this\nis a valid (though strange) variable formula:\n\n```lmps\nvariable x equal \"pe + c_MyTemp / vol^(1/3)\"\n```\nSpecifically, a formula can contain numbers, constants, thermo\nkeywords, math operators, math functions, group functions, region\nfunctions, special functions, feature functions, atom values, atom\nvectors, custom atom properties, compute references, fix references, and references to other\nvariables.\n\n| | |\n|---|---|\n| Number | 0.2, 100, 1.0e20, -15.4, etc |\n| Constant | PI, version, on, off, true, false, yes, no |\n| Thermo keywords | vol, pe, ebond, etc |\n| Math operators | (), -x, x+y, x-y, x\\*y, x/y, x\\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \\|\\| y, x \\|\\^ y, !x |\n| Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) |\n| Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) |\n| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |\n| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) |\n| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |\n| Atom values | id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] |\n| Atom vectors | id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q |\n| Custom atom properties | i_name, d_name, i_name[i], d_name[i], i2_name[i], d2_name[i], i2_name[i][j], d_name[i][j] |\n| Compute references | c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] |\n| Fix references | f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] |\n| Other variables | v_name, v_name[i] |\n\nMost of the formula elements produce a scalar value. Some produce a\nglobal or per-atom vector of values. Global vectors can be produced\nby computes or fixes or by other vector-style variables. Per-atom\nvectors are produced by atom vectors, computes or fixes which output a\nper-atom vector or array, and variables that are atom-style variables.\nMath functions that operate on scalar values produce a scalar value;\nmath function that operate on global or per-atom vectors do so\nelement-by-element and produce a global or per-atom vector.\n\nA formula for equal-style variables cannot use any formula element\nthat produces a global or per-atom vector. A formula for a\nvector-style variable can use formula elements that produce either a\nscalar value or a global vector value, but cannot use a formula\nelement that produces a per-atom vector. A formula for an atom-style\nvariable can use formula elements that produce either a scalar value\nor a per-atom vector, but not one that produces a global vector.\n\nAtom-style variables are evaluated by other commands that define a\n[group ](https://docs.lammps.org/group.html) on which they operate, e.g. a [dump ](https://docs.lammps.org/dump.html)\nor [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) command. When they\ninvoke the atom-style variable, only atoms in the group are included\nin the formula evaluation. The variable evaluates to 0.0 for atoms\nnot in the group.\n\n----------\n\nNumbers, constants, and thermo keywords\n---------------------------------------\n\nNumbers can contain digits, scientific notation\n(3.0e20,3.0e-20,3.0E20,3.0E-20), and leading minus signs.\n\nConstants are set at compile time and cannot be changed. *PI* will\nreturn the number 3.14159265358979323846; *on*, *true* or *yes* will\nreturn 1.0; *off*, *false* or *no* will return 0.0; *version* will\nreturn a numeric version code of the current LAMMPS version (e.g.\nversion 2 Sep 2015 will return the number 20150902). The corresponding\nvalue for newer versions of LAMMPS will be larger, for older versions\nof LAMMPS will be smaller. This can be used to have input scripts\nadapt automatically to LAMMPS versions, when non-backwards compatible\nsyntax changes are introduced. Here is an illustrative example (which\nwill not work, since the *version* has been introduced more recently):\n\n```lmps\nif $(version<20140513) then \"communicate vel yes\" else \"comm_modify vel yes\"\n```\nThe thermo keywords allowed in a formula are those defined by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command. Thermo keywords\nthat require a [compute ](https://docs.lammps.org/compute.html) to calculate their values such\nas \"temp\" or \"press\", use computes stored and invoked by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. This means that you can\nonly use those keywords in a variable if the style you are using with\nthe thermo_style command (and the thermo keywords associated with that\nstyle) also define and use the needed compute. Note that some thermo\nkeywords use a compute indirectly to calculate their value (e.g. the\nenthalpy keyword uses temp, pe, and pressure). If a variable is\nevaluated directly in an input script (not during a run), then the\nvalues accessed by the thermo keyword must be current. See the\ndiscussion below about \"Variable Accuracy\".\n\n----------\n\nMath Operators\n--------------\n\nMath operators are written in the usual way, where the \"x\" and \"y\" in\nthe examples can themselves be arbitrarily complex formulas, as in the\nexamples above. In this syntax, \"x\" and \"y\" can be scalar values or\nper-atom vectors. For example, \"ke/natoms\" is the division of two\nscalars, where \"vy+vz\" is the element-by-element sum of two per-atom\nvectors of y and z velocities.\n\nOperators are evaluated left to right and have the usual C-style\nprecedence: unary minus and unary logical NOT operator \"!\" have the\nhighest precedence, exponentiation \"\\^\" is next; multiplication and\ndivision and the modulo operator \"%\" are next; addition and\nsubtraction are next; the 4 relational operators \"<\", \"<=\", \">\", and\n\">=\" are next; the two remaining relational operators \"==\" and \"!=\"\nare next; then the logical AND operator \"&&\"; and finally the logical\nOR operator \"||\" and logical XOR (exclusive or) operator \"\\|^\" have the\nlowest precedence. Parenthesis can be used to group one or more\nportions of a formula and/or enforce a different order of evaluation\nthan what would occur with the default precedence.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because a unary minus is higher precedence than exponentiation,\n > the formula \"-2\\^2\" will evaluate to 4, not -4. This convention is\n > compatible with some programming languages, but not others. As\n > mentioned, this behavior can be easily overridden with parenthesis;\n > the formula \"-(2\\^2)\" will evaluate to -4. \n > \n\nThe 6 relational operators return either a 1.0 or 0.0 depending on\nwhether the relationship between x and y is TRUE or FALSE. For\nexample the expression x<10.0 in an atom-style variable formula will\nreturn 1.0 for all atoms whose x-coordinate is less than 10.0, and 0.0\nfor the others. The logical AND operator will return 1.0 if both its\narguments are non-zero, else it returns 0.0. The logical OR operator\nwill return 1.0 if either of its arguments is non-zero, else it\nreturns 0.0. The logical XOR operator will return 1.0 if one of its\narguments is zero and the other non-zero, else it returns 0.0. The\nlogical NOT operator returns 1.0 if its argument is 0.0, else it\nreturns 0.0.\n\nThese relational and logical operators can be used as a masking or\nselection operation in a formula. For example, the number of atoms\nwhose properties satisfy one or more criteria could be calculated by\ntaking the returned per-atom vector of ones and zeroes and passing it\nto the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\n----------\n\nMath Functions\n--------------\n\nMath functions are specified as keywords followed by one or more\nparenthesized arguments \"x\", \"y\", \"z\", each of which can themselves be\narbitrarily complex formulas. In this syntax, the arguments can\nrepresent scalar values or global vectors or per-atom vectors. In the\nlatter case, the math operation is performed on each element of the\nvector. For example, \"sqrt(natoms)\" is the sqrt() of a scalar, where\n\"sqrt(y\\*z)\" yields a per-atom vector with each element being the\nsqrt() of the product of one atom's y and z coordinates.\n\nMost of the math functions perform obvious operations. The ln() is\nthe natural log; log() is the base 10 log.\n\nThe random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z =\nseed. It generates a uniform random number between lo and hi. The\nnormal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and\nz = seed. It generates a Gaussian variate centered on mu with\nvariance sigma\\^2. In both cases the seed is used the first time the\ninternal random number generator is invoked, to initialize it. For\nequal-style and vector-style variables, every processor uses the same\nseed so that they each generate the same sequence of random numbers.\nFor atom-style variables, a unique seed is created for each processor,\nbased on the specified seed. This effectively generates a different\nrandom number for each atom being looped over in the atom-style\nvariable.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Internally, there is just one random number generator for all\n > equal-style and vector-style variables and another one for all\n > atom-style variables. If you define multiple variables (of each\n > style) which use the random() or normal() math functions, then the\n > internal random number generators will only be initialized once, which\n > means only one of the specified seeds will determine the sequence of\n > generated random numbers. \n > \n\nThe ceil(), floor(), and round() functions are those in the C math\nlibrary. Ceil() is the smallest integer not less than its argument.\nFloor() if the largest integer not greater than its argument. Round()\nis the nearest integer to its argument.\n\nThe ternary(x,y,z) function is the equivalent of the ternary operator\n(? and :) in C or C++. It takes 3 arguments. The first argument is a\nconditional. The result of the function is y if x evaluates to true\n(non-zero). The result is z if x evaluates to false (zero).\n\nThe ramp(x,y) function uses the current timestep to generate a value\nlinearly interpolated between the specified x,y values over the course\nof a run, according to this formula:\n\n```\nvalue = x + (y-x) \\* (timestep-startstep) / (stopstep-startstep)\n```\nThe run begins on startstep and ends on stopstep. Startstep and\nstopstep can span multiple runs, using the *start* and *stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for\ndetails of how to do this. If called in between runs or during a\n[run 0 ](https://docs.lammps.org/run.html) command, the ramp(x,y) function will return the\nvalue of x.\n\nThe stagger(x,y) function uses the current timestep to generate a new\ntimestep. X,y > 0 and x > y are required. The generated timesteps\nincrease in a staggered fashion, as the sequence\nx,x+y,2x,2x+y,3x,3x+y,etc. For any current timestep, the next\ntimestep in the sequence is returned. Thus if stagger(1000,100) is\nused in a variable by the [dump_modify every ](https://docs.lammps.org/dump_modify.html)\ncommand, it will generate the sequence of output timesteps:\n\n```\n100,1000,1100,2000,2100,3000,etc\n```\nThe logfreq(x,y,z) function uses the current timestep to generate a\nnew timestep. X,y,z > 0 and y < z are required. The generated\ntimesteps are on a base-z logarithmic scale, starting with x, and the\ny value is how many of the z-1 possible timesteps within one\nlogarithmic interval are generated. I.e. the timesteps follow the\nsequence\nx,2x,3x,...y\\*x,x\\*z,2x\\*z,3x\\*z,...y\\*x\\*z,x\\*z\\^2,2x\\*z\\^2,etc. For\nany current timestep, the next timestep in the sequence is returned.\nThus if logfreq(100,4,10) is used in a variable by the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it will generate this\nsequence of output timesteps:\n\n```\n100,200,300,400,1000,2000,3000,4000,10000,20000,etc\n```\nThe logfreq2(x,y,z) function is similar to logfreq, except a single\nlogarithmic interval is divided into y equally-spaced timesteps and\nall of them are output. Y < z is not required. Thus, if\nlogfreq2(100,18,10) is used in a variable by the [dump_modifyevery ](https://docs.lammps.org/dump_modify.html) command, then the interval between 100 and 1000\nis divided as 900/18 = 50 steps, and it will generate the sequence of\noutput timesteps:\n\n```\n100,150,200,...950,1000,1500,2000,...9500,10000,15000,etc\n```\nThe logfreq3(x,y,z) function generates y points between x and z (inclusive),\nthat are separated by a multiplicative ratio: (z/x)\\^(1/(y-1)). Constraints\nare: x,z > 0, y > 1, z-x >= y-1. For eg., if logfreq3(10,25,1000) is used in\na variable by the [fix print ](https://docs.lammps.org/fix_print.html) command, then the interval\nbetween 10 and 1000 is divided into 24 parts with a multiplicative\nseparation of ~1.21, and it will generate the following sequence of output\ntimesteps:\n\n```\n10, 13, 15, 18, 22, 27, 32,...384, 465, 563, 682, 826, 1000\n```\nThe stride(x,y,z) function uses the current timestep to generate a new\ntimestep. X,y >= 0 and z > 0 and x <= y are required. The generated\ntimesteps increase in increments of z, from x to y, i.e. it generates\nthe sequence x,x+z,x+2z,...,y. If y-x is not a multiple of z, then\nsimilar to the way a for loop operates, the last value will be one\nthat does not exceed y. For any current timestep, the next timestep\nin the sequence is returned. Thus if stride(1000,2000,100) is used\nin a variable by the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it\nwill generate the sequence of output timesteps:\n\n```\n1000,1100,1200, ... ,1900,2000\n```\nThe stride2(x,y,z,a,b,c) function is similar to the stride() function\nexcept it generates two sets of strided timesteps, one at a coarser\nlevel and one at a finer level. Thus it is useful for debugging,\ne.g. to produce output every timestep at the point in simulation when\na problem occurs. X,y >= 0 and z > 0 and x <= y are required, as are\na,b >= 0 and c > 0 and a < b. Also, a >= x and b <= y are required so\nthat the second stride is inside the first. The generated timesteps\nincrease in increments of z, starting at x, until a is reached. At\nthat point the timestep increases in increments of c, from a to b,\nthen after b, increments by z are resumed until y is reached. For any\ncurrent timestep, the next timestep in the sequence is returned. Thus\nif stride2(1000,2000,100,1350,1360,1) is used in a variable by the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it will generate the\nsequence of output timesteps:\n\n```\n1000,1100,1200,1300,1350,1351,1352, ... 1359,1360,1400,1500, ... ,2000\n```\nThe vdisplace(x,y) function takes 2 arguments: x = value0 and y =\nvelocity, and uses the elapsed time to change the value by a linear\ndisplacement due to the applied velocity over the course of a run,\naccording to this formula:\n\n```\nvalue = value0 + velocity\\*(timestep-startstep)\\*dt\n```\nwhere dt = the timestep size.\n\nThe run begins on startstep. Startstep can span multiple runs, using\nthe *start* keyword of the [run ](https://docs.lammps.org/run.html) command. See the [run](https://docs.lammps.org/run.html) command for details of how to do this. Note that the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) keyword elaplong = timestep-startstep.\nIf used between runs this function will return\nthe value according to the end of the last run or the value of x if\nused before *any* runs. This function assumes the length of the time\nstep does not change and thus may not be used in combination with\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html).\n\nThe swiggle(x,y,z) and cwiggle(x,y,z) functions each take 3 arguments:\nx = value0, y = amplitude, z = period. They use the elapsed time to\noscillate the value by a sin() or cos() function over the course of a\nrun, according to one of these formulas, where omega = 2 PI / period:\n\n```\nvalue = value0 + Amplitude \\* sin(omega\\*(timestep-startstep)\\*dt)\nvalue = value0 + Amplitude \\* (1 - cos(omega\\*(timestep-startstep)\\*dt))\n```\nwhere dt = the timestep size.\n\nThe run begins on startstep. Startstep can span multiple runs, using\nthe *start* keyword of the [run ](https://docs.lammps.org/run.html) command. See the [run](https://docs.lammps.org/run.html) command for details of how to do this. Note that the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) keyword elaplong = timestep-startstep.\nIf used between runs these functions will return\nthe value according to the end of the last run or the value of x if\nused before *any* runs. These functions assume the length of the time\nstep does not change and thus may not be used in combination with\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html).\n\n----------\n\nGroup and Region Functions\n--------------------------\n\nGroup functions are specified as keywords followed by one or two\nparenthesized arguments. The first argument *ID* is the group-ID.\nThe *dim* argument, if it exists, is *x* or *y* or *z* . The *dir*\nargument, if it exists, is *xmin*, *xmax*, *ymin*, *ymax*, *zmin*, or\n*zmax* . The *dimdim* argument, if it exists, is *xx* or *yy* or *zz*\nor *xy* or *yz* or *xz* .\n\nThe group function count() is the number of atoms in the group. The\ngroup functions mass() and charge() are the total mass and charge of\nthe group. Xcm() and vcm() return components of the position and\nvelocity of the center of mass of the group. Fcm() returns a\ncomponent of the total force on the group of atoms. Bound() returns\nthe min/max of a particular coordinate for all atoms in the group.\nGyration() computes the radius-of-gyration of the group of atoms. See\nthe [compute gyration ](https://docs.lammps.org/compute_gyration.html) command for a definition\nof the formula. Angmom() returns components of the angular momentum\nof the group of atoms around its center of mass. Torque() returns\ncomponents of the torque on the group of atoms around its center of\nmass, based on current forces on the atoms. Inertia() returns one of\n6 components of the symmetric inertia tensor of the group of atoms\naround its center of mass, ordered as Ixx,Iyy,Izz,Ixy,Iyz,Ixz.\nOmega() returns components of the angular velocity of the group of\natoms around its center of mass.\n\nRegion functions are specified exactly the same way as group functions\nexcept they take an extra final argument *IDR* which is the region ID.\nThe function is computed for all atoms that are in both the group and\nthe region. If the group is \"all\", then the only criteria for atom\ninclusion is that it be in the region.\n\n----------\n\nSpecial Functions\n-----------------\n\nSpecial functions take specific kinds of arguments, meaning their\narguments cannot be formulas themselves.\n\nThe sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), and\nrsort(x) functions each take 1 argument which is of the form \"c_ID\" or\n\"c_ID[N]\" or \"f_ID\" or \"f_ID[N]\" or \"v_name\". The first two are\ncomputes and the second two are fixes; the ID in the reference should be\nreplaced by the ID of a compute or fix defined elsewhere in the input\nscript. The compute or fix must produce either a global vector or\narray. If it produces a global vector, then the notation without \"[N]\"\nshould be used. If it produces a global array, then the notation with\n\"[N]\" should be used, where N is an integer, to specify which column of\nthe global array is being referenced. The last form of argument\n\"v_name\" is for a vector-style variable where \"name\" is replaced by the\nname of the variable.\n\nThe sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions\noperate on a global vector of inputs and reduce it to a single scalar\nvalue. This is analogous to the operation of the [compute reduce](https://docs.lammps.org/compute_reduce.html) command, which performs similar operations on per-atom\nand local vectors.\n\nThe sort(x) and rsort(x) functions operate on a global vector of inputs\nand return a global vector of the same length.\n\nThe sum() function calculates the sum of all the vector elements. The\nmin() and max() functions find the minimum and maximum element\nrespectively. The ave() function is the same as sum() except that it\ndivides the result by the length of the vector.\n\nThe trap() function is the same as sum() except the first and last\nelements are multiplied by a weighting factor of 1/2 when performing\nthe sum. This effectively implements an integration via the\ntrapezoidal rule on the global vector of data. I.e. consider a set of\npoints, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),\n..., (N,VN), where the Vi are the values in the global vector of\nlength N. The integral from 1 to N of these points is trap(). When\nappropriately normalized by the timestep size, this function is useful\nfor calculating integrals of time-series data, like that generated by\nthe [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command.\n\nThe slope() function uses linear regression to fit a line to the set\nof points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),\n..., (N,VN), where the Vi are the values in the global vector of\nlength N. The returned value is the slope of the line. If the line\nhas a single point or is vertical, it returns 1.0e20.\n\nThe sort(x) and rsort(x) functions sort the data of the input vector by\ntheir numeric value: sort(x) sorts in ascending order, rsort(x) sorts\nin descending order.\n\nThe gmask(x) function takes 1 argument which is a group ID. It\ncan only be used in atom-style variables. It returns a 1 for\natoms that are in the group, and a 0 for atoms that are not.\n\nThe rmask(x) function takes 1 argument which is a region ID. It can\nonly be used in atom-style variables. It returns a 1 for atoms that\nare in the geometric region, and a 0 for atoms that are not.\n\nThe grmask(x,y) function takes 2 arguments. The first is a group ID,\nand the second is a region ID. It can only be used in atom-style\nvariables. It returns a 1 for atoms that are in both the group and\nregion, and a 0 for atoms that are not in both.\n\nThe next(x) function takes 1 argument which is a variable ID (not\n\"v_foo\", just \"foo\"). It must be for a file-style or atomfile-style\nvariable. Each time the next() function is invoked (i.e. each time\nthe equal-style or atom-style variable is evaluated), the following\nsteps occur.\n\nFor file-style variables, the current string value stored by the\nfile-style variable is converted to a numeric value and returned by\nthe function. And the next string value in the file is read and\nstored. Note that if the line previously read from the file was not a\nnumeric string, then it will typically evaluate to 0.0, which is\nlikely not what you want.\n\nFor atomfile-style variables, the current per-atom values stored by\nthe atomfile-style variable are returned by the function. And the\nnext set of per-atom values in the file is read and stored.\n\nSince file-style and atomfile-style variables read and store the first\nline of the file or first set of per-atoms values when they are\ndefined in the input script, these are the value(s) that will be\nreturned the first time the next() function is invoked. If next() is\ninvoked more times than there are lines or sets of lines in the file,\nthe variable is deleted, similar to how the [next ](https://docs.lammps.org/next.html) command\noperates.\n\nThe is_file(name) function is a test whether *name* is a (readable) file\nand returns 1 in this case, otherwise it returns 0. For that *name*\nis taken as a literal string and must not have any blanks in it.\n\nThe is_os(name) function is a test whether *name* is part of the OS\ninformation that LAMMPS collects and provides in the\n:cpp:func:`platform::os_info() ` function.\nThe argument *name* is interpreted as a regular expression as documented\nfor the :cpp:func:`utils::strmatch() `\nfunction. This allows to adapt LAMMPS inputs to the OS it runs on:\n\n```lmps\nif $(is_os(^Windows)) then &\n\"shell copy ${input_dir}\\some_file.txt .\" &\nelse &\n\"shell cp ${input_dir}/some_file.txt .\"\n```\nThe extract_setting(name) function enables access to basic settings for\nthe LAMMPS executable and the running simulation via calling the\n:cpp:func:`lammps_extract_setting` library function. For example, the\nnumber of processors (MPI ranks) being used by the simulation or the MPI\nprocess ID (for this processor) can be queried, or the number of atom\ntypes, bond types and so on. For the full list of available keywords\n*name* and their meaning, see the documentation for extract_setting()\nvia the link in this paragraph.\n\nThe label2type(kind,label) function converts type labels into numeric\ntypes, using label maps created by the [labelmap ](https://docs.lammps.org/labelmap.html) or\n[read_data ](https://docs.lammps.org/read_data.html) commands. The first argument is the label\nmap kind (atom, bond, angle, dihedral, or improper) and the second\nargument is the label. The function returns the corresponding numeric\ntype or triggers an error if the queried label does not exist.\n\nThe is_typelabel(kind,label) function has the same arguments as\nlabel2type(), but returns 1 if the type label has been assigned,\notherwise it returns 0. This function can be used to check if a\nparticular type label already exists in the simulation.\n\n----------\n\nFeature Functions\n-----------------\n\nFeature functions allow probing of the running LAMMPS executable for\nwhether specific features are available, active, or defined. All 3 of\nthe functions take two arguments, a *category* and a category-specific\nsecond argument. Both are strings and thus cannot be formulas\nthemselves; only $-style immediate variable expansion is possible.\nThe return value of the functions is either 1.0 or 0.0 depending on\nwhether the function evaluates to true or false, respectively.\n\nThe *is_available(category,name)* function queries whether a specific\nfeature is available in the LAMMPS executable that is being run, i.e\nwhether it was included or enabled at compile time.\n\nThis supports the following categories: *command*, *compute*, *fix*,\n*pair_style* and *feature* . For all the categories except *feature*\nthe *name* is a style name, e.g. *nve* for the *fix* category. Note\nthat many LAMMPS input script commands such as *create_atoms* are\nactually instances of a command style which LAMMPS defines, as opposed\nto built-in commands. For all of these styles except *command*,\nappending of active suffixes is also tried before reporting failure.\n\nThe *feature* category checks the availability of the following\ncompile-time enabled features: GZIP support, PNG support, JPEG support,\nFFMPEG support, and C++ exceptions for error handling. Corresponding\nnames are *gzip*, *png*, *jpeg*, *ffmpeg* and *exceptions* .\n\nExample: Only dump in a given format if the compiled binary supports it.\n\n```lmps\nif \"$(is_available(feature,png))\" then \"print 'PNG supported'\" else \"print 'PNG not supported'\"\nif \"$(is_available(feature,ffmpeg)\" then \"dump 3 all movie 25 movie.mp4 type type zoom 1.6 adiam 1.0\"\n```\nThe *is_active(category,feature)* function queries whether a specific\nfeature is currently active within LAMMPS. The features are grouped\nby categories. Supported categories and features are:\n\n* *package* : features = *gpu* or *intel* or *kokkos* or *omp*\n* *newton* : features = *pair* or *bond* or *any*\n* *pair* : features = *single* or *respa* or *manybody* or *tail* or *shift*\n* *comm_style* : features = *brick* or *tiled*\n* *min_style* : features = a minimizer style name\n* *run_style* : features = a run style name\n* *atom_style* : features = an atom style name\n* *pair_style* : features = a pair style name\n* *bond_style* : features = a bond style name\n* *angle_style* : features = an angle style name\n* *dihedral_style* : features = a dihedral style name\n* *improper_style* : features = an improper style name\n* *kspace_style* : features = a kspace style name\n\nMost of the settings are self-explanatory. For the *package*\ncategory, a package may have been included in the LAMMPS build, but\nnot have enabled by any input script command, and hence be inactive.\nThe *single* feature in the *pair* category checks whether the\ncurrently defined pair style supports a Pair::single() function as\nneeded by compute group/group and others features or LAMMPS.\nSimilarly, the *respa* feature checks whether the inner/middle/outer\nmode of r-RESPA is supported by the current pair style.\n\nFor the categories with *style* in their name, only a single instance\nof the style is ever active at any time in a LAMMPS simulation. Thus\nthe check is whether the currently active style matches the specified\nname. This check is also done using suffix flags, if available and\nenabled.\n\nExample 1: Disable use of suffix for PPPM when using GPU package\n(i.e. run it on the CPU concurrently while running the pair style on\nthe GPU), but do use the suffix otherwise (e.g. with OPENMP).\n\n```lmps\npair_style lj/cut/coul/long 14.0\nif $(is_active(package,gpu)) then \"suffix off\"\nkspace_style pppm\n```\nExample 2: Use r-RESPA with inner/outer cutoff, if supported by the\ncurrent pair style, otherwise fall back to using r-RESPA with simply\nthe pair keyword and reducing the outer time step.\n\n```lmps\ntimestep $(2.0*(1.0+2.0*is_active(pair,respa)))\nif $(is_active(pair,respa)) then \"run_style respa 4 3 2 2 improper 1 inner 2 5.5 7.0 outer 3 kspace 4\" else \"run_style respa 3 3 2 improper 1 pair 2 kspace 3\"\n```\nThe *is_defined(category,id)* function checks whether an instance of a\nstyle or variable with a specific ID or name is currently defined\nwithin LAMMPS. The supported categories are *compute*, *dump*,\n*fix*, *group*, *region*, and *variable*. Each of these styles (as\nwell as the variable command) can be specified multiple times within\nLAMMPS, each with a unique *id*. This function checks whether the\nspecified *id* exists. For category *variable\", the *id* is the\nvariable name.\n\n----------\n\nAtom Values and Vectors\n-----------------------\n\nAtom values take an integer argument I from 1 to N, where I is the\natom-ID, e.g. x[243], which means use the x coordinate of the atom\nwith ID = 243. Or they can take a variable name, specified as v_name,\nwhere name is the name of the variable, like x[v_myIndex]. The\nvariable can be of any style except *vector* or *atom* or *atomfile*\nvariables. The variable is evaluated and the result is expected to be\nnumeric and is cast to an integer (i.e. 3.4 becomes 3), to use an\nindex, which must be a value from 1 to N. Note that a \"formula\"\ncannot be used as the argument between the brackets, e.g. x[243+10]\nor x[v_myIndex+1] are not allowed. To do this a single variable can\nbe defined that contains the needed formula.\n\nNote that the 0 < atom-ID <= N, where N is the largest atom ID\nin the system. If an ID is specified for an atom that does not\ncurrently exist, then the generated value is 0.0.\n\nAtom vectors generate one value per atom, so that a reference like\n\"vx\" means the x-component of each atom's velocity will be used when\nevaluating the variable.\n\nThe meaning of the different atom values and vectors is mostly\nself-explanatory. *Mol* refers to the molecule ID of an atom, and is\nonly defined if an [atom_style ](https://docs.lammps.org/atom_style.html) is being used that\ndefines molecule IDs.\n\nNote that many other atom attributes can be used as inputs to a\nvariable by using the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command and then referencing that compute.\n\n----------\n\nCustom atom properties\n----------------------\n\nCustom atom properties refer to per-atom integer and floating point\nvectors or arrays that have been added via the [fix property/atom](https://docs.lammps.org/fix_property_atom.html) command. When that command is used specific\nnames are given to each attribute which are the \"name\" portion of\nthese references. References beginning with *i* and *d* refer to\ninteger and floating point properties respectively. Per-atom vectors\nare referenced by *i_name* and *d_name*; per-atom arrays are\nreferenced by *i2_name* and *d2_name*.\n\nThe various allowed references to integer custom atom properties in\nthe variable formulas for equal-, vector-, and atom-style variables\nare listed in the following table. References to floating point\ncustom atom properties are the same; just replace the leading \"i\" with\n\"d\".\n\n| | | |\n|---|---|---|\n| equal | i_name[I] | element of per-atom vector (I = atom ID) |\n| equal | i2_name[I][J] | element of per-atom array (I = atom ID) |\n| vector | i_name[I] | element of per-atom vector (I = atom ID) |\n| vector | i2_name[I][J] | element of per-atom array (I = atom ID) |\n| atom | i_name | per-atom vector |\n| atom | i2_name[I] | column of per-atom array |\n\nThe I and J indices in these custom atom property references can be\nintegers or can be a variable name, specified as v_name, where name is\nthe name of the variable. The rules for this syntax are the same as\nfor indices in the \"Atom Values and Vectors\" discussion above.\n\n----------\n\nCompute References\n------------------\n\nCompute references access quantities calculated by a [compute](https://docs.lammps.org/compute.html). The ID in the reference should be replaced by the ID of a\ncompute defined elsewhere in the input script.\n\nAs discussed on the page for the [compute ](https://docs.lammps.org/compute.html) command,\ncomputes can produce global, per-atom, local, and per-grid values.\nOnly global and per-atom values can be used in a variable. Computes\ncan also produce scalars (global only), vectors, and arrays. See the\ndoc pages for individual computes to see what different kinds of data\nthey produce.\n\nAn equal-style variable can only use scalar values, either from global\nor per-atom data. In the case of per-atom data, this would be a value\nfor a specific atom.\n\nA vector-style variable can use scalar values (same as for equal-style\nvariables), or global vectors of values. The latter can also be a\ncolumn of a global array.\n\nAtom-style variables can use scalar values (same as for equal-style\nvariables), or per-atom vectors of values. The latter can also be a\ncolumn of a per-atom array.\n\nThe various allowed compute references in the variable formulas for\nequal-, vector-, and atom-style variables are listed in the following\ntable:\n\n| | | |\n|---|---|---|\n| equal | c_ID | global scalar |\n| equal | c_ID[I] | element of global vector |\n| equal | c_ID[I][J] | element of global array |\n| equal | C_ID[I] | element of per-atom vector (I = atom ID) |\n| equal | C_ID[I][J] | element of per-atom array (I = atom ID) |\n| vector | c_ID | global vector |\n| vector | c_ID[I] | column of global array |\n| atom | c_ID | per-atom vector |\n| atom | c_ID[I] | column of per-atom array |\n\nNote that if an equal-style variable formula wishes to access per-atom\ndata from a compute, it must use capital \"C\" as the ID prefix and not\nlower-case \"c\".\n\nAlso note that if a vector- or atom-style variable formula needs to\naccess a scalar value from a compute (i.e. the 5 kinds of values in\nthe first 5 lines of the table), it can not do so directly. Instead,\nit can use a reference to an equal-style variable which stores the\nscalar value from the compute.\n\nThe I and J indices in these compute references can be integers or can\nbe a variable name, specified as v_name, where name is the name of the\nvariable. The rules for this syntax are the same as for indices in\nthe \"Atom Values and Vectors\" discussion above.\n\nIf a variable containing a compute is evaluated directly in an input\nscript (not during a run), then the values accessed by the compute\nshould be current. See the discussion below about \"Variable\nAccuracy\".\n\n----------\n\nFix References\n--------------\n\nFix references access quantities calculated by a [fix ](https://docs.lammps.org/fix.html).\nThe ID in the reference should be replaced by the ID of a fix defined\nelsewhere in the input script.\n\nAs discussed on the page for the [fix ](https://docs.lammps.org/fix.html) command, fixes can\nproduce global, per-atom, local, and per-grid values. Only global and\nper-atom values can be used in a variable. Fixes can also produce\nscalars (global only), vectors, and arrays. See the doc pages for\nindividual fixes to see what different kinds of data they produce.\n\nAn equal-style variable can only use scalar values, either from global\nor per-atom data. In the case of per-atom data, this would be a value\nfor a specific atom.\n\nA vector-style variable can use scalar values (same as for equal-style\nvariables), or global vectors of values. The latter can also be a\ncolumn of a global array.\n\nAtom-style variables can use scalar values (same as for equal-style\nvariables), or per-atom vectors of values. The latter can also be a\ncolumn of a per-atom array.\n\nThe allowed fix references in variable formulas for equal-, vector-,\nand atom-style variables are listed in the following table:\n\n| | | |\n|---|---|---|\n| equal | f_ID | global scalar |\n| equal | f_ID[I] | element of global vector |\n| equal | f_ID[I][J] | element of global array |\n| equal | F_ID[I] | element of per-atom vector (I = atom ID) |\n| equal | F_ID[I][J] | element of per-atom array (I = atom ID) |\n| vector | f_ID | global vector |\n| vector | f_ID[I] | column of global array |\n| atom | f_ID | per-atom vector |\n| atom | f_ID[I] | column of per-atom array |\n\nNote that if an equal-style variable formula wishes to access per-atom\ndata from a fix, it must use capital \"F\" as the ID prefix and not\nlower-case \"f\".\n\nAlso note that if a vector- or atom-style variable formula needs to\naccess a scalar value from a fix (i.e. the 5 kinds of values in the\nfirst 5 lines of the table), it can not do so directly. Instead, it\ncan use a reference to an equal-style variable which stores the scalar\nvalue from the fix.\n\nThe I and J indices in these fix references can be integers or can be\na variable name, specified as v_name, where name is the name of the\nvariable. The rules for this syntax are the same as for indices in\nthe \"Atom Values and Vectors\" discussion above.\n\nNote that some fixes only generate quantities on certain timesteps.\nIf a variable attempts to access the fix on non-allowed timesteps, an\nerror is generated. For example, the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand may only generate averaged quantities every 100 steps. See\nthe doc pages for individual fix commands for details.\n\nIf a variable containing a fix is evaluated directly in an input\nscript (not during a run), then the values accessed by the fix should\nbe current. See the discussion below about \"Variable Accuracy\".\n\n----------\n\nVariable References\n-------------------\n\nVariable references access quantities stored or calculated by other\nvariables, which will cause those variables to be evaluated. The name\nin the reference should be replaced by the name of a variable defined\nelsewhere in the input script.\n\nAs discussed on this doc page, equal-style variables generate a single\nglobal numeric value, vector-style variables generate a vector of\nglobal numeric values, and atom-style and atomfile-style variables\ngenerate a per-atom vector of numeric values. All other variables\nstore one or more strings.\n\nThe formula for an equal-style variable can use any style of variable\nincluding a vector_style or atom-style or atomfile-style. For these\n3 styles, a subscript must be used to access a single value from\nthe vector-, atom-, or atomfile-style variable. If a string-storing\nvariable is used, the string is converted to a numeric value. Note\nthat this will typically produce a 0.0 if the string is not a numeric\nstring, which is likely not what you want.\n\nThe formula for a vector-style variable can use any style of variable,\nincluding atom-style or atomfile-style variables. For these 2 styles,\na subscript must be used to access a single value from the atom-, or\natomfile-style variable.\n\nThe formula for an atom-style variable can use any style of variable,\nincluding other atom-style or atomfile-style variables. If it uses a\nvector-style variable, a subscript must be used to access a single\nvalue from the vector-style variable.\n\nThe allowed variable references in variable formulas for equal-,\nvector-, and atom-style variables are listed in the following table.\nNote that there is no ambiguity as to what a reference means, since\nreferenced variables produce only a global scalar or global vector or\nper-atom vector.\n\n| | | |\n|---|---|---|\n| equal | v_name | global scalar from an equal-style variable |\n| equal | v_name[I] | element of global vector from a vector-style variable |\n| equal | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n| vector | v_name | global scalar from an equal-style variable |\n| vector | v_name | global vector from a vector-style variable |\n| vector | v_name[I] | element of global vector from a vector-style variable |\n| vector | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n| atom | v_name | global scalar from an equal-style variable |\n| atom | v_name | per-atom vector from an atom-style or atomfile-style variable |\n| atom | v_name[I] | element of global vector from a vector-style variable |\n| atom | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n\nFor the I index, an integer can be specified or a variable name,\nspecified as v_name, where name is the name of the variable. The\nrules for this syntax are the same as for indices in the \"Atom Values\nand Vectors\" discussion above.\n\n----------\n\nVector Initialization\n---------------------\n\n*Vector*-style variables only can be initialized with a special\nsyntax, instead of using a formula. The syntax is a bracketed,\ncomma-separated syntax like the following:\n\n```lmps\nvariable myvec vector [1,3.5,7,10.2]\n```\nThe 3rd argument formula is replaced by the vector values in brackets,\nseparated by commas. This example creates a 4-length vector with\nspecific numeric values, each of which can be specified as an integer\nor floating point value. Note that while whitespace can be added\nbefore or after individual values, no other mathematical operations\ncan be specified. E.g. \"3*10\" or \"3*v_abc\" are not valid vector\nelements, nor is \"10*[1,2,3,4]\" valid for the entire vector.\n\nUnlike vector variables specified with formulas, this vector variable\nis static; its length and values never changes. Its values can be\nused in other commands (including vector-style variables specified\nwith formulas) via the usual syntax for accessing individual vector\nelements or the entire vector.\n\n----------\n\n #### Immediate Evaluation of Variables\n\nIf you want an equal-style variable to be evaluated immediately, it\nmay be the case that you do not need to define a variable at all. See\nthe [Commands parse ](https://docs.lammps.org/Commands_parse.html) page for info on how to\nuse \"immediate\" variables in an input script, specified as $(formula)\nwith parenthesis, where the formula has the same syntax as equal-style\nvariables described on this page. This effectively evaluates a\nformula immediately without using the variable command to define a\nnamed variable.\n\nMore generally, there is a difference between referencing a variable\nwith a leading $ sign (e.g. $x or ${abc}) versus with a leading \"v\\_\"\n(e.g. v_x or v_abc). The former can be used in any input script\ncommand, including a variable command. The input script parser\nevaluates the reference variable immediately and substitutes its value\ninto the command. As explained on the [Commands parse](https://docs.lammps.org/Commands_parse.html) doc page, you can also use un-named \"immediate\"\nvariables for this purpose. For example, a string like this\n$((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates the\nstring between the parenthesis as an equal-style variable formula.\n\nReferencing a variable with a leading \"v\\_\" is an optional or required\nkind of argument for some commands (e.g. the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) or [dump custom ](https://docs.lammps.org/dump.html) or [thermo_style](https://docs.lammps.org/thermo_style.html) commands) if you wish it to evaluate a variable\nperiodically during a run. It can also be used in a variable formula\nif you wish to reference a second variable. The second variable will\nbe evaluated whenever the first variable is evaluated.\n\nAs an example, suppose you use this command in your input script to\ndefine the variable \"v\" as\n\n```lmps\nvariable v equal vol\n```\nbefore a run where the simulation box size changes. You might think\nthis will assign the initial volume to the variable \"v\". That is not\nthe case. Rather it assigns a formula which evaluates the volume\n(using the thermo_style keyword \"vol\") to the variable \"v\". If you\nuse the variable \"v\" in some other command like [fix ave/time](https://docs.lammps.org/fix_ave_time.html) then the current volume of the box will be evaluated\ncontinuously during the run.\n\nIf you want to store the initial volume of the system, you can do it\nthis way:\n\n```lmps\nvariable v equal vol\nvariable v0 equal $v\n```\nThe second command will force \"v\" to be evaluated (yielding the\ninitial volume) and assign that value to the variable \"v0\". Thus the\ncommand\n\n```lmps\nthermo_style custom step v_v v_v0\n```\nwould print out both the current and initial volume periodically\nduring the run.\n\nNote that it is a mistake to enclose a variable formula in double\nquotes if it contains variables preceded by $ signs. For example,\n\n```lmps\nvariable vratio equal \"${vfinal}/${v0}\"\n```\nThis is because the quotes prevent variable substitution (explained on\nthe [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page), and thus an error\nwill occur when the formula for \"vratio\" is evaluated later.\n\n----------\n\n #### Variable Accuracy\n\nObviously, LAMMPS attempts to evaluate variables which contain\nformulas (\\ *equal* and *vector* and *atom* style variables)\naccurately whenever the evaluation is performed. Depending on what is\nincluded in the formula, this may require invoking a [compute](https://docs.lammps.org/compute.html), either directly or indirectly via a thermo keyword, or\naccessing a value previously calculated by a compute, or accessing a\nvalue calculated and stored by a [fix ](https://docs.lammps.org/fix.html). If the compute is\none that calculates the energy or pressure of the system, then the\ncorresponding energy or virial quantities need to be tallied during\nthe evaluation of the interatomic potentials (pair, bond, etc) on any\ntimestep that the variable needs the tallies. An input script can\nalso request variables be evaluated before or after or in between\nruns, e.g. by including them in a [print ](https://docs.lammps.org/print.html) command.\n\nLAMMPS keeps track of all of this as it performs a [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) simulation, as well as in between\nsimulations. An error will be generated if you attempt to evaluate a\nvariable when LAMMPS knows it cannot produce accurate values. For\nexample, if a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command prints\na variable which accesses values stored by a [fix ave/time](https://docs.lammps.org/fix_ave_time.html) command and the timesteps on which thermo output is\ngenerated are not multiples of the averaging frequency used in the fix\ncommand, then an error will occur.\n\nHowever, there are two special cases to be aware when a variable\nrequires invocation of a compute (directly or indirectly). The first\nis if the variable is evaluated before the first [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) command in the input script. In this case,\nLAMMPS will generate an error. This is because many computes require\ninitializations which have not yet taken place. One example is the\ncalculation of degrees of freedom for temperature computes. Another\nexample are the computes mentioned above which require tallying of\nenergy or virial quantities; these values are not tallied until the\nfirst simulation begins.\n\nThe second special case is when a variable that depends on a compute\nis evaluated in between [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommands. It is possible for other input script commands issued\nfollowing the previous run, but before the variable is evaluated, to\nchange the system. For example, the [delete_atoms ](https://docs.lammps.org/delete_atoms.html)\ncommand could be used to remove atoms. Since the compute will not\nre-initialize itself until the next simulation or it may depend on\nenergy/virial computations performed before the system was changed, it\nwill potentially generate an incorrect answer when evaluated. Note\nthat LAMMPS will not generate an error in this case; the evaluated\nvariable may simply be incorrect.\n\nThe way to get around both of these special cases is to perform a\n0-timestep run before evaluating the variable. For example, these\ncommands\n\n```lmps\n# delete_atoms random fraction 0.5 yes all NULL 49839\n# run 0 post no\nvariable t equal temp # this thermo keyword invokes a temperature compute\nprint \"Temperature of system = $t\"\nrun 1000\n```\nwill generate an error if the \"run 1000\" command is the first\nsimulation in the input script. If there were a previous run, these\ncommands will print the correct temperature of the system. But if the\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html) command is uncommented, the printed\ntemperature will be incorrect, because information stored by\ntemperature compute is no longer valid.\n\nBoth these issues are resolved, if the \"run 0\" command is uncommented.\nThis is because the \"run 0\" simulation will initialize (or\nre-initialize) the temperature compute correctly.\n\n----------\n", + "restrictions": "Indexing any formula element by global atom ID, such as an atom value,\nrequires the [atom style ](https://docs.lammps.org/atom_style.html) to use a global mapping in\norder to look up the vector indices. By default, only atom styles\nwith molecular information create global maps. The [atom_modifymap ](https://docs.lammps.org/atom_modify.html) command can override the default, e.g. for\natomic-style atom styles.\n\nAll *universe* - and *uloop* -style variables defined in an input\nscript must have the same number of values.\n", + "related": "[next ](https://docs.lammps.org/next.html), [jump ](https://docs.lammps.org/jump.html), [include ](https://docs.lammps.org/include.html),\n[temper ](https://docs.lammps.org/temper.html), [fix print ](https://docs.lammps.org/fix_print.html), [print ](https://docs.lammps.org/print.html)\n" }, { "command": [ - "compute ackland/atom" + "fix temp/berendsen", + "fix temp/berendsen/kk" ], "syntax": [ - "compute ID group-ID ackland/atom keyword/value" + "fix ID group-ID temp/berendsen Tstart Tstop Tdamp" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -6594,84 +6190,80 @@ export const command_docs = [ "choices": [] }, { - "arg": "ackland/atom", - "type": 1, + "arg": "temp/berendsen", + "type": 3, + "choices": [ + "temp/berendsen", + "temp/berendsen/kk" + ] + }, + { + "arg": "Tstart", + "type": 2, "choices": [] }, { - "arg": "keyword/value", + "arg": "Tstop", + "type": 2, + "choices": [] + }, + { + "arg": "Tdamp", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ackland/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = legacy \n *        legacy args = yes or no = use ( yes ) or do not use ( no ) legacy Ackland algorithm implementation \n", - "examples": "\n```lmps\ncompute 1 all ackland/atom\ncompute 1 all ackland/atom legacy yes\n```\n", - "html_filename": "compute_ackland_atom.html", - "short_description": "Defines a computation that calculates the local lattice structure\naccording to the formulation given in **Ackland**", - "description": "Defines a computation that calculates the local lattice structure\naccording to the formulation given in **Ackland**.\nHistorically, LAMMPS had two, slightly different implementations of\nthe algorithm from the paper. With the *legacy* keyword, it is\npossible to switch between the pre-2015 (\\ *legacy yes*\\ ) and post-2015\nimplementation (\\ *legacy no*\\ ). The post-2015 variant is the default.\n\nIn contrast to the [centro-symmetry parameter ](https://docs.lammps.org/compute_centro_atom.html) this method is stable against\ntemperature boost, because it is based not on the distance between\nparticles but the angles. Therefore statistical fluctuations are\naveraged out a little more. A comparison with the Common Neighbor\nAnalysis metric is made in the paper.\n\nThe result is a number which is mapped to the following different\nlattice structures:\n\n* 0 = UNKNOWN\n* 1 = BCC\n* 2 = FCC\n* 3 = HCP\n* 4 = ICO\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each of\nwhich computes this quantity.-\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\n**(Ackland)** Ackland, Jones, Phys Rev B, 73, 054104 (2006). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe per-atom vector values will be unitless since they are the\nintegers defined above.\n", - "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/berendsen = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run \n *        Tstart can be a variable (see below) \n* Tdamp = temperature damping parameter (time units) \n", + "examples": "\n```lmps\nfix 1 all temp/berendsen 300.0 300.0 100.0\n```\n", + "html_filename": "fix_temp_berendsen.html", + "short_description": "Reset the temperature of a group of atoms by using a Berendsen\nthermostat **Berendsen2**, which rescales their velocities\nevery timestep", + "description": "Reset the temperature of a group of atoms by using a Berendsen\nthermostat **Berendsen2**, which rescales their velocities\nevery timestep.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration for finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with this fix. The translational degrees of freedom can\nalso have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (tau or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command).\n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This thermostat will generate an error if the current\n > temperature is zero at the end of a timestep. It cannot rescale a\n > zero temperature. \n > \n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, this fix should not normally\n > be used on atoms that also have their temperature controlled by\n > another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if this command had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID + underscore + \"temp\",\nand the group for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to\n[binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file,\nso that the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Berendsen2)** Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem\nPhys, 81, 3684 (1984). \n ", + "restrictions": "This fix can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html)\n" }, { "command": [ - "pair_style vashishta", - "pair_style vashishta/gpu", - "pair_style vashishta/omp", - "pair_style vashishta/kk", - "pair_style vashishta/table", - "pair_style vashishta/table/omp" + "improper_style amoeba" ], "syntax": [ - "pair_style style args" + "improper_style amoeba" ], "args": [ [ { - "arg": "pair_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "vashishta/table/omp", - "type": 3, - "choices": [ - "vashishta", - "vashishta/table", - "vashishta/gpu", - "vashishta/omp", - "vashishta/kk", - "vashishta/table/omp" - ] - }, - { - "arg": "args", - "type": 2, + "arg": "amoeba", + "type": 1, "choices": [] } ] ], - "parameters": "* style = vashishta or vashishta/table\n* args = list of arguments for a particular style \n *      vashishta args = none \n *      vashishta/table args = Ntable cutinner \n       Ntable = # of tabulation points \n       cutinner = tablulate from cutinner to cutoff \n", - "examples": "\n```lmps\npair_style vashishta\npair_coeff * * SiC.vashishta Si C\n\npair_style vashishta/table 100000 0.2\npair_coeff * * SiC.vashishta Si C\n```\n", - "html_filename": "pair_vashishta.html", - "short_description": "The *vashishta* and *vashishta/table* styles compute the combined\n2-body and 3-body family of potentials developed in the group of Priya\nVashishta and collaborators", - "description": "The *vashishta* and *vashishta/table* styles compute the combined\n2-body and 3-body family of potentials developed in the group of Priya\nVashishta and collaborators. By combining repulsive, screened\nCoulombic, screened charge-dipole, and dispersion interactions with a\nbond-angle energy based on the Stillinger-Weber potential, this\npotential has been used to describe a variety of inorganic compounds,\nincluding SiO2 **Vashishta1990**, SiC\n**Vashishta2007**, and InP **Branicio2009**.\n\nThe potential for the energy U of a system of atoms is\n\\[\\begin{align*} \n U & = \\sum_i^N \\sum_{j > i}^N U_{ij}^{(2)} (r_{ij}) + \\sum_i^N \\sum_{j \\neq i}^N \\sum_{k > j, k \\neq i}^N U_{ijk}^{(3)} (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n U_{ij}^{(2)} (r) & = \\frac{H_{ij}}{r^{\\eta_{ij}}} + \\frac{Z_i Z_j}{r}\\exp(-r/\\lambda_{1,ij}) - \\frac{D_{ij}}{r^4}\\exp(-r/\\lambda_{4,ij}) - \\frac{W_{ij}}{r^6}, r < r_{c,{ij}} \\\\\n U_{ijk}^{(3)}(r_{ij},r_{ik},\\theta_{ijk}) & = B_{ijk} \\frac{\\left[ \\cos \\theta_{ijk} - \\cos \\theta_{0ijk} \\right]^2} {1+C_{ijk}\\left[ \\cos \\theta_{ijk} - \\cos \\theta_{0ijk} \\right]^2} \\times \\\\\n & \\exp \\left( \\frac{\\gamma_{ij}}{r_{ij} - r_{0,ij}} \\right) \\exp \\left( \\frac{\\gamma_{ik}}{r_{ik} - r_{0,ik}} \\right), r_{ij} < r_{0,ij}, r_{ik} < r_{0,ik} \\end{align*} \\]\nwhere we follow the notation used in **Branicio2009**.\n\\(U^2\\) is a two-body term and U3 is a three-body term. The\nsummation over two-body terms is over all neighbors J within\na cutoff distance = \\(r_c\\). The twobody terms are shifted and\ntilted by a linear function so that the energy and force are\nboth zero at \\(r_c\\). The summation over three-body terms\nis over all neighbors *i* and *k* within a cut-off distance \\(= r_0\\),\nwhere the exponential screening function becomes zero.\n\nThe *vashishta* style computes these formulas analytically. The\n*vashishta/table* style tabulates the analytic values for *Ntable*\npoints from cutinner to the cutoff of the potential. The points are\nequally spaced in R\\^2 space from cutinner\\^2 to cutoff\\^2. For the\ntwo-body term in the above equation, a linear interpolation for each\npairwise distance between adjacent points in the table. In practice\nthe tabulated version can run 3-5x faster than the analytic version\nwith moderate to little loss of accuracy for Ntable values\nbetween 10000 and 1000000. It is not recommended to use less than\n5000 tabulation points.\n\nOnly a single pair_coeff command is used with either style which\nspecifies a Vashishta potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Vashishta elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.vashishta has parameters for\nSi and C. If your LAMMPS simulation has 4 atoms types and you want\nthe first 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.vashishta Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the file. The final C argument maps LAMMPS atom type 4\nto the C element in the file. If a mapping value is specified as\nNULL, the mapping is not performed. This can be used when a *vashishta*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nVashishta files in the *potentials* directory of the LAMMPS\ndistribution have a \".vashishta\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formulae above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* *H* (energy units)\n* \\(\\eta\\)\n* \\(Z_i\\) (electron charge units)\n* \\(Z_j\\) (electron charge units)\n* \\(\\lambda_1\\) (distance units)\n* *D* (energy units)\n* \\(\\lambda_4\\) (distance units)\n* *W* (energy units)\n* \\(r_c\\) (distance units)\n* *B* (energy units)\n* \\(\\gamma\\)\n* \\(r_0\\) (distance units)\n* *C*\n* \\(\\cos\\theta_0\\)\n\nThe non-annotated parameters are unitless. The Vashishta potential\nfile must contain entries for all the elements listed in the\npair_coeff command. It can also contain entries for additional\nelements not being used in a particular simulation; LAMMPS ignores\nthose entries. For a single-element simulation, only a single entry\nis required (e.g. SiSiSi). For a two-element simulation, the file\nmust contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC,\nCCSi, CCC), that specify parameters for all permutations of the two\nelements interacting in three-body configurations. Thus for 3\nelements, 27 entries would be required, etc.\n\nDepending on the particular version of the Vashishta potential, the\nvalues of these parameters may be keyed to the identities of zero,\none, two, or three elements. In order to make the input file format\nunambiguous, general, and simple to code, LAMMPS uses a slightly\nconfusing method for specifying parameters. All parameters are\ndivided into two classes: two-body and three-body. Two-body and\nthree-body parameters are handled differently, as described below.\nThe two-body parameters are *H*, \\(\\eta\\), \\(\\lambda_1\\),\n*D*, \\(\\lambda_4\\), *W*, \\(r_c\\), \\(\\gamma\\),\nand \\(r_0\\). They appear in the above formulae with two subscripts.\nThe parameters \\(Z_i\\) and \\(Z_j\\) are also classified\nas two-body parameters, even\nthough they only have 1 subscript. The three-body parameters are *B*,\n*C*, \\(\\cos\\theta_0\\). They appear in the above formulae with\nthree subscripts. Two-body and three-body parameters are handled\ndifferently, as described below.\n\nThe first element in each entry is the center atom in a three-body\ninteraction, while the second and third elements are two neighbor\natoms. Three-body parameters for a central atom I and two neighbors J\nand K are taken from the IJK entry. Note that even though three-body\nparameters do not depend on the order of J and K, LAMMPS stores\nthree-body parameters for both IJK and IKJ. The user must ensure that\nthese values are equal. Two-body parameters for an atom I interacting\nwith atom J are taken from the IJJ entry, where the second and third\nelements are the same. Thus the two-body parameters for Si interacting\nwith C come from the SiCC entry. Note that even though two-body\nparameters (except possibly gamma and r0 in U3) do not depend on the\norder of the two elements, LAMMPS will get the Si-C value from the\nSiCC entry and the C-Si value from the CSiSi entry. The user must\nensure that these values are equal. Two-body parameters appearing in\nentries where the second and third elements are different are stored but\nnever used. It is good practice to enter zero for these values. Note\nthat the three-body function U3 above contains the two-body parameters\n\\(\\gamma\\) and \\(r_0\\). So U3 for a central C atom bonded to\nan Si atom and a\nsecond C atom will take three-body parameters from the CSiC entry, but\ntwo-body parameters from the CCC and CSiSi entries.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Vashishta1990)** P. Vashishta, R. K. Kalia, J. P. Rino, Phys. Rev. B\n41, 12197 (1990). \n \n**(Vashishta2007)** P. Vashishta, R. K. Kalia, A. Nakano,\nJ. P. Rino. J. Appl. Phys. 101, 103515 (2007). \n \n**(Branicio2009)** Branicio, Rino, Gan and Tsuzuki, J. Phys Condensed\nMatter 21 (2009) 095002 \n ", - "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Vashishta potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html). You can\nuse the Vashishta potential with any LAMMPS units, but you would need\nto create your own potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style amoeba\nimproper_coeff 1 49.6\n```\n", + "html_filename": "improper_amoeba.html", + "short_description": "The *amoeba* improper style uses the potential\n\\[\n E = K (\\chi)^2\\]\nwhere \\(\\chi\\) is the improper angle and \\(K\\) is a prefactor", + "description": "The *amoeba* improper style uses the potential\n\\[\n E = K (\\chi)^2\\]\nwhere \\(\\chi\\) is the improper angle and \\(K\\) is a prefactor.\nNote that the usual 1/2 factor is included in \\(K\\).\n\nThis formula seems like a simplified version of the formula for the\n[improper_style harmonic ](https://docs.lammps.org/improper_harmonic.html) command with\n\\(\\chi_0\\) = 0.0. However the computation of the angle\n\\(\\chi\\) is done differently to match how the Tinker MD code\ncomputes its out-of-plane improper for the AMOEBA and HIPPO force\nfields. See the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page for more\ninformation about the implementation of AMOEBA and HIPPO in LAMMPS.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command are ordered I,J,K,L then\natoms I,K,L are considered to lie in a plane and atom J is\nout-of-place. The angle \\(\\chi_0\\) is computed as the Allinger\nangle which is defined as the angle between the plane of I,K,L, and\nthe vector from atom I to atom J.\n\nThe following coefficient must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n\nNote that the angle \\(\\chi\\) is computed in radians; hence\n\\(K\\) is effectively energy per radian\\^2.\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nAMOEBA package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html),\n[improper_harmonic ](https://docs.lammps.org/improper_harmonic.html)\n" }, { "command": [ - "improper_style class2", - "improper_style class2/omp", - "improper_style class2/kk" + "dihedral_style class2", + "dihedral_style class2/omp", + "dihedral_style class2/kk" ], "syntax": [ - "improper_style class2" + "dihedral_style class2" ], "args": [ [ { - "arg": "improper_style", + "arg": "dihedral_style", "type": 1, "choices": [] }, @@ -6687,82 +6279,100 @@ export const command_docs = [ ] ], "parameters": "", - "examples": "\n```lmps\nimproper_style class2\nimproper_coeff 1 100.0 0\nimproper_coeff * aa 0.0 0.0 0.0 115.06 130.01 115.06\n```\n", - "html_filename": "improper_class2.html", - "short_description": "The *class2* improper style uses the potential\n\\[\\begin{align*} \n E = & E_i + E_{aa} \\\\\n E_i = & K [ \\frac{\\chi_{ijkl} + \\chi_{kjli} + \\chi_{ljik}}{3} - \\chi_0 ]^2 \\\\\n E_{aa} = & M_1 (\\theta_{ijk} - \\theta_1) (\\theta_{kjl} - \\theta_3) + \\\\\n & M_2 (\\theta_{ijk} - \\theta_1) (\\theta_{ijl} - \\theta_2) + \\\\\n & M_3 (\\theta_{ijl} - \\theta_2) (\\theta_{kjl} - \\theta_3) \\end{align*} \\]\nwhere \\(E_i\\) is the improper term and \\(E_{aa}\\) is an\nangle-angle term", - "description": "The *class2* improper style uses the potential\n\\[\\begin{align*} \n E = & E_i + E_{aa} \\\\\n E_i = & K [ \\frac{\\chi_{ijkl} + \\chi_{kjli} + \\chi_{ljik}}{3} - \\chi_0 ]^2 \\\\\n E_{aa} = & M_1 (\\theta_{ijk} - \\theta_1) (\\theta_{kjl} - \\theta_3) + \\\\\n & M_2 (\\theta_{ijk} - \\theta_1) (\\theta_{ijl} - \\theta_2) + \\\\\n & M_3 (\\theta_{ijl} - \\theta_2) (\\theta_{kjl} - \\theta_3) \\end{align*} \\]\nwhere \\(E_i\\) is the improper term and \\(E_{aa}\\) is an\nangle-angle term. The 3 \\(\\chi\\) terms in \\(E_i\\) are an\naverage over 3 out-of-plane angles.\n\nThe 4 atoms in an improper quadruplet (listed in the data file read by\nthe [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L.\n\\(\\chi_{ijkl}\\) refers to the angle between the plane of I,J,K and\nthe plane of J,K,L, and the bond JK lies in both planes. Similarly for\n\\(\\chi_{kjli}\\) and \\(\\chi_{ljik}\\).\nNote that atom J appears in the common bonds (JI, JK, JL) of all 3 X\nterms. Thus J (the second atom in the quadruplet) is the atom of\nsymmetry in the 3 \\(\\chi\\) angles.\n\nThe subscripts on the various \\(\\theta\\)\\ s refer to different\ncombinations of three atoms (I,J,K,L) used to form a particular angle.\nE.g. \\(\\theta_{ijl}\\) is the angle formed by atoms I,J,L with J\nin the middle. \\(\\theta_1\\), \\(\\theta_2\\), \\(\\theta_3\\)\nare the equilibrium positions of those angles. Again,\natom J (the second atom in the quadruplet) is the atom of symmetry in the\ntheta angles, since it is always the center atom.\n\nSince atom J is the atom of symmetry, normally the bonds J-I, J-K, J-L\nwould exist for an improper to be defined between the 4 atoms, but\nthis is not required.\n\nSee **improper-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_i\\) and \\(E_{aa}\\) formulas must be\ndefined for each\nimproper type via the [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as\nin the example above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThese are the 2 coefficients for the \\(E_i\\) formula:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n\\(\\chi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\nFor the \\(E_{aa}\\) formula, each line in a [improper_coeff](https://docs.lammps.org/improper_coeff.html) command in the input script lists 7 coefficients,\nthe first of which is *aa* to indicate they are AngleAngle\ncoefficients. In a data file, these coefficients should be listed\nunder a *AngleAngle Coeffs* heading and you must leave out the *aa*,\ni.e. only list 6 coefficients after the improper type.\n\n* *aa*\n* \\(M_1\\) (energy)\n* \\(M_2\\) (energy)\n* \\(M_3\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n* \\(\\theta_3\\) (degrees)\n\nThe \\(\\theta\\) values are specified in degrees, but LAMMPS\nconverts them to radians internally; hence the hence the various\n\\(M\\) are effectively energy per radian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(improper-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nCLASS2 package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "examples": "\n```lmps\ndihedral_style class2\ndihedral_coeff 1 100 75 100 70 80 60\ndihedral_coeff * mbt 3.5945 0.1704 -0.5490 1.5228\ndihedral_coeff * ebt 0.3417 0.3264 -0.9036 0.1368 0.0 -0.8080 1.0119 1.1010\ndihedral_coeff 2 at 0.0 -0.1850 -0.7963 -2.0220 0.0 -0.3991 110.2453 105.1270\ndihedral_coeff * aat -13.5271 110.2453 105.1270\ndihedral_coeff * bb13 0.0 1.0119 1.1010\n```\n", + "html_filename": "dihedral_class2.html", + "short_description": "The *class2* dihedral style uses the potential\n\\[\\begin{align*} \n E = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\\\\n E_d = & \\sum_{n=1}^{3} K_n [ 1 - \\cos (n \\phi - \\phi_n) ] \\\\\n E_{mbt} = & (r_{jk} - r_2) [ A_1 \\cos (\\phi) + A_2 \\cos (2\\phi) + A_3 \\cos (3\\phi) ] \\\\\n E_{ebt} = & (r_{ij} - r_1) [ B_1 \\cos (\\phi) + B_2 \\cos (2\\phi) + B_3 \\cos (3\\phi) ] + \\\\\n & (r_{kl} - r_3) [ C_1 \\cos (\\phi) + C_2 \\cos (2\\phi) + C_3 \\cos (3\\phi) ] \\\\\n E_{at} = & (\\theta_{ijk} - \\theta_1) [ D_1 \\cos (\\phi) + D_2 \\cos (2\\phi) + D_3 \\cos (3\\phi) ] + \\\\\n & (\\theta_{jkl} - \\theta_2) [ E_1 \\cos (\\phi) + E_2 \\cos (2\\phi) + E_3 \\cos (3\\phi) ] \\\\\n E_{aat} = & M (\\theta_{ijk} - \\theta_1) (\\theta_{jkl} - \\theta_2) \\cos (\\phi) \\\\\n E_{bb13} = & N (r_{ij} - r_1) (r_{kl} - r_3) \\end{align*} \\]\nwhere \\(E_d\\) is the dihedral term, \\(E_{mbt}\\) is a middle-bond-torsion term,\n\\(E_{ebt}\\) is an end-bond-torsion term, \\(E_{at}\\) is an angle-torsion term, \\(E_{aat}\\)\nis an angle-angle-torsion term, and \\(E_{bb13}\\) is a bond-bond-13 term", + "description": "The *class2* dihedral style uses the potential\n\\[\\begin{align*} \n E = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\\\\n E_d = & \\sum_{n=1}^{3} K_n [ 1 - \\cos (n \\phi - \\phi_n) ] \\\\\n E_{mbt} = & (r_{jk} - r_2) [ A_1 \\cos (\\phi) + A_2 \\cos (2\\phi) + A_3 \\cos (3\\phi) ] \\\\\n E_{ebt} = & (r_{ij} - r_1) [ B_1 \\cos (\\phi) + B_2 \\cos (2\\phi) + B_3 \\cos (3\\phi) ] + \\\\\n & (r_{kl} - r_3) [ C_1 \\cos (\\phi) + C_2 \\cos (2\\phi) + C_3 \\cos (3\\phi) ] \\\\\n E_{at} = & (\\theta_{ijk} - \\theta_1) [ D_1 \\cos (\\phi) + D_2 \\cos (2\\phi) + D_3 \\cos (3\\phi) ] + \\\\\n & (\\theta_{jkl} - \\theta_2) [ E_1 \\cos (\\phi) + E_2 \\cos (2\\phi) + E_3 \\cos (3\\phi) ] \\\\\n E_{aat} = & M (\\theta_{ijk} - \\theta_1) (\\theta_{jkl} - \\theta_2) \\cos (\\phi) \\\\\n E_{bb13} = & N (r_{ij} - r_1) (r_{kl} - r_3) \\end{align*} \\]\nwhere \\(E_d\\) is the dihedral term, \\(E_{mbt}\\) is a middle-bond-torsion term,\n\\(E_{ebt}\\) is an end-bond-torsion term, \\(E_{at}\\) is an angle-torsion term, \\(E_{aat}\\)\nis an angle-angle-torsion term, and \\(E_{bb13}\\) is a bond-bond-13 term.\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are equilibrium angles and \\(r_1\\), \\(r_2\\), and\n\\(r_3\\) are equilibrium bond lengths.\n\nSee **dihedral-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_d\\), \\(E_{mbt}\\), \\(E_{ebt}\\),\n\\(E_{at}\\), \\(E_{aat}\\), and \\(E_{bb13}\\) formulas must be\ndefined for each dihedral type via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand as in the example above, or in the data file\nor restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 6 coefficients for the \\(E_d\\) formula:\n\n* \\(K_1\\) (energy)\n* \\(\\phi_1\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(\\phi_2\\) (degrees)\n* \\(K_3\\) (energy)\n* \\(phi_3\\) (degrees)\n\nFor the \\(E_{mbt}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n5 coefficients, the first of which is *mbt* to indicate they are\nMiddleBondTorsion coefficients. In a data file, these coefficients\nshould be listed under a *MiddleBondTorsion Coeffs* heading and you\nmust leave out the *mbt*, i.e. only list 4 coefficients after the\ndihedral type.\n\n* *mbt*\n* \\(A_1\\) (energy/distance)\n* \\(A_2\\) (energy/distance)\n* \\(A_3\\) (energy/distance)\n* \\(r_2\\) (distance)\n\nFor the \\(E_{ebt}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n9 coefficients, the first of which is *ebt* to indicate they are\nEndBondTorsion coefficients. In a data file, these coefficients\nshould be listed under a *EndBondTorsion Coeffs* heading and you must\nleave out the *ebt*, i.e. only list 8 coefficients after the dihedral\ntype.\n\n* *ebt*\n* \\(B_1\\) (energy/distance)\n* \\(B_2\\) (energy/distance)\n* \\(B_3\\) (energy/distance)\n* \\(C_1\\) (energy/distance)\n* \\(C_2\\) (energy/distance)\n* \\(C_3\\) (energy/distance)\n* \\(r_1\\) (distance)\n* \\(r_3\\) (distance)\n\nFor the \\(E_{at}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n9 coefficients, the first of which is *at* to indicate they are\nAngleTorsion coefficients. In a data file, these coefficients should\nbe listed under a *AngleTorsion Coeffs* heading and you must leave out\nthe *at*, i.e. only list 8 coefficients after the dihedral type.\n\n* *at*\n* \\(D_1\\) (energy)\n* \\(D_2\\) (energy)\n* \\(D_3\\) (energy)\n* \\(E_1\\) (energy)\n* \\(E_2\\) (energy)\n* \\(E_3\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are specified in degrees, but\nLAMMPS converts them to radians internally; hence the various\n\\(D\\) and \\(E\\) are effectively energy per radian.\n\nFor the \\(E_{aat}\\) formula, each line in a [dihedral_coeff](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists 4 coefficients,\nthe first of which is *aat* to indicate they are AngleAngleTorsion\ncoefficients. In a data file, these coefficients should be listed\nunder a *AngleAngleTorsion Coeffs* heading and you must leave out the\n*aat*, i.e. only list 3 coefficients after the dihedral type.\n\n* *aat*\n* \\(M\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are specified in degrees, but\nLAMMPS converts them to radians internally; hence \\(M\\) is\neffectively energy per radian\\^2.\n\nFor the \\(E_{bb13}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n4 coefficients, the first of which is *bb13* to indicate they are\nBondBond13 coefficients. In a data file, these coefficients should be\nlisted under a *BondBond13 Coeffs* heading and you must leave out the\n*bb13*, i.e. only list 3 coefficients after the dihedral type.\n\n* *bb13*\n* \\(N\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_3\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(dihedral-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nCLASS2 package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "compute smd/ulsph/stress" + "dihedral_style multi/harmonic", + "dihedral_style multi/harmonic/omp" ], "syntax": [ - "compute ID group-ID smd/ulsph/stress" + "dihedral_style multi/harmonic" ], "args": [ [ { - "arg": "compute", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "smd/ulsph/stress", - "type": 1, - "choices": [] + "arg": "multi/harmonic", + "type": 3, + "choices": [ + "multi/harmonic", + "multi/harmonic/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/stress = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/ulsph/stress\n```\n", - "html_filename": "compute_smd_ulsph_stress.html", - "short_description": "Define a computation that outputs the Cauchy stress tensor", - "description": "Define a computation that outputs the Cauchy stress tensor.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of pressure.\n\nThe per-particle vector has 7 entries. The first six entries\ncorrespond to the xx, yy, zz, xy, xz, yz components of the symmetric\nCauchy stress tensor. The seventh entry is the second invariant of the\nstress tensor, i.e., the von Mises equivalent stress.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", - "related": "[compute smd/ulsph/strain ](https://docs.lammps.org/compute_smd_ulsph_strain.html), [compute smd/ulsph/strain/rate ](https://docs.lammps.org/compute_smd_ulsph_strain_rate.html) [compute smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" + "parameters": "", + "examples": "\n```lmps\ndihedral_style multi/harmonic\ndihedral_coeff 1 20 20 20 20 20\n```\n", + "html_filename": "dihedral_multi_harmonic.html", + "short_description": "The *multi/harmonic* dihedral style uses the potential\n\\[\n E = \\sum_{n=1,5} A_n \\cos^{n-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* \\(A_3\\) (energy)\n* \\(A_4\\) (energy)\n* \\(A_5\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", + "description": "The *multi/harmonic* dihedral style uses the potential\n\\[\n E = \\sum_{n=1,5} A_n \\cos^{n-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* \\(A_3\\) (energy)\n* \\(A_4\\) (energy)\n* \\(A_5\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "compute stress/cylinder" + "pair_style lj/cut/coul/cut", + "pair_style lj/cut/coul/cut/gpu", + "pair_style lj/cut/coul/cut/kk", + "pair_style lj/cut/coul/cut/omp", + "pair_style lj/cut/coul/debye", + "pair_style lj/cut/coul/debye/gpu", + "pair_style lj/cut/coul/debye/kk", + "pair_style lj/cut/coul/debye/omp", + "pair_style lj/cut/coul/dsf", + "pair_style lj/cut/coul/dsf/gpu", + "pair_style lj/cut/coul/dsf/kk", + "pair_style lj/cut/coul/dsf/omp", + "pair_style lj/cut/coul/long", + "pair_style lj/cut/coul/long/gpu", + "pair_style lj/cut/coul/long/kk", + "pair_style lj/cut/coul/long/intel", + "pair_style lj/cut/coul/long/opt", + "pair_style lj/cut/coul/long/omp", + "pair_style lj/cut/coul/msm", + "pair_style lj/cut/coul/msm/gpu", + "pair_style lj/cut/coul/msm/omp", + "pair_style lj/cut/coul/wolf", + "pair_style lj/cut/coul/wolf/omp" ], "syntax": [ - "compute ID group-ID style args" + "pair_style style args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "stress/cylinder", + "arg": "lj/cut/coul/wolf/omp", "type": 3, "choices": [ - "stress/spherical", - "stress/cylinder" + "lj/cut/coul/cut", + "lj/cut/coul/debye", + "lj/cut/coul/dsf", + "lj/cut/coul/wolf", + "lj/cut/coul/cut/gpu", + "lj/cut/coul/cut/kk", + "lj/cut/coul/cut/omp", + "lj/cut/coul/debye/gpu", + "lj/cut/coul/debye/kk", + "lj/cut/coul/debye/omp", + "lj/cut/coul/dsf/gpu", + "lj/cut/coul/dsf/kk", + "lj/cut/coul/dsf/omp", + "lj/cut/coul/wolf/omp" ] }, { @@ -6772,20 +6382,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/spherical or stress/cylinder\n* args = argument specific to the compute style \n *   *stress/cylinder* args = zlo zh Rmax bin_width keyword \n    zlo = minimum z-boundary for cylinder \n    zhi = maximum z-boundary for cylinder \n    Rmax = maximum radius to perform calculation to \n    bin_width = width of radial bins to use for calculation \n    keyword = ke (zero or one can be specified) \n    ke = yes or no \n *   *stress/spherical* \n    x0, y0, z0 = origin of the spherical coordinate system \n    bin_width = width of spherical shells \n    Rmax = maximum radius of spherical shells \n", - "examples": "\n```lmps\ncompute 1 all stress/cylinder -10.0 10.0 15.0 0.25\ncompute 1 all stress/cylinder -10.0 10.0 15.0 0.25 ke no\ncompute 1 all stress/spherical 0 0 0 0.1 10\n```\n", - "html_filename": "compute_stress_curvilinear.html", - "short_description": "Compute *stress/cylinder*, and compute\n*stress/spherical* define computations that calculate profiles of the\ndiagonal components of the local stress tensor in the specified\ncoordinate system", - "description": "Compute *stress/cylinder*, and compute\n*stress/spherical* define computations that calculate profiles of the\ndiagonal components of the local stress tensor in the specified\ncoordinate system. The stress tensor is split into a kinetic\ncontribution \\(P^k\\) and a virial contribution \\(P^v\\). The sum\ngives the total stress tensor \\(P = P^k+P^v\\). These computes can\nfor example be used to calculate the diagonal components of the local\nstress tensor of surfaces with cylindrical or spherical\nsymmetry. These computes obeys momentum balance through fluid\ninterfaces. They use the Irving--Kirkwood contour, which is the straight\nline between particle pairs.\n\nThe compute *stress/cylinder* computes the stress profile along the\nradial direction in cylindrical coordinates, as described in\n**Addington1**. The compute *stress/spherical*\ncomputes the stress profile along the radial direction in spherical\ncoordinates, as described in **Ikeshoji4**.\n\n\n #### Output info\n\nThe default output columns for *stress/cylinder* are the radius to the\ncenter of the cylindrical shell, number density, \\(P^k_{rr}\\),\n\\(P^k_{\\phi\\phi}\\), \\(P^k_{zz}\\), \\(P^v_{rr}\\),\n\\(P^v_{\\phi\\phi}\\), and \\(P^v_{zz}\\). When the keyword *ke* is\nset to *no*, the kinetic contributions are not calculated, and\nconsequently there are only 5 columns: the position of the center of the\ncylindrical shell, the number density, \\(P^v_{rr}\\),\n\\(P^v_{\\phi\\phi}\\), and \\(P^v_{zz}\\). The number of bins (rows) is\n\\(R_\\text{max}/b\\), where \\(b\\) is the specified bin width.\n\nThe output columns for *stress/spherical* are the position of the center\nof the spherical shell, the number density, \\(P^k_{rr}\\),\n\\(P^k_{\\theta\\theta}\\), \\(P^k_{\\phi\\phi}\\), \\(P^v_{rr}\\),\n\\(P^v_{\\theta\\theta}\\), and \\(P^v_{\\phi\\phi}\\). There are 8\ncolumns and the number of bins (rows) is \\(R_\\text{max}/b\\), where\n\\(b\\) is the specified bin width.\n\nThis array can be output with [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n\n```lmps\ncompute 1 all stress/spherical 0 0 0 0.1 10\nfix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector\n```\nThe values calculated by this compute are \"intensive\". The stress\nvalues will be in pressure [units ](https://docs.lammps.org/units.html). The number density\nvalues are in inverse volume [units ](https://docs.lammps.org/units.html).\n\nNOTE 1: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the\n[pair_modify tail yes ](https://docs.lammps.org/pair_modify.html)\ncommand, since those are contributions to the global system pressure.\n\n**(Addington1)** Addington, Long, Gubbins, J Chem Phys, 149, 084109 (2018). \n \n**(Ikeshoji4)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003). \n ", - "restrictions": "These computes calculate the stress tensor contributions for pair styles\nonly (i.e., no bond, angle, dihedral, etc. contributions, and in the\npresence of bonded interactions, the result may be incorrect due to\nexclusions for [special bonds ](https://docs.lammps.org/special_bonds.html) excluding pairs of atoms\ncompletely). It requires pairwise force calculations not available for most\nmany-body pair styles. Note that \\(k\\)-space calculations are also excluded.\n\nThese computes are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html), [compute stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html)\n" + "parameters": "* style = lj/cut/coul/cut or lj/cut/coul/debye or lj/cut/coul/dsf or lj/cut/coul/long *lj/cut/coul/msm* or lj/cut/coul/wolf\n* args = list of arguments for a particular style \n *      lj/cut/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/debye args = kappa cutoff (cutoff2) \n       kappa = inverse of the Debye length (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/dsf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n *      lj/cut/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *lj/cut/coul/msm* args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/wolf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 2 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style lj/cut/coul/cut 10.0\npair_style lj/cut/coul/cut 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\npair_coeff 1 1 100.0 3.5 9.0 9.0\n\npair_style lj/cut/coul/debye 1.5 3.0\npair_style lj/cut/coul/debye 1.5 2.5 5.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\npair_coeff 1 1 1.0 1.5 2.5 5.0\n\npair_style lj/cut/coul/dsf 0.05 2.5 10.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.0 2.5\n\npair_style lj/cut/coul/long 10.0\npair_style lj/cut/coul/long 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/msm 10.0\npair_style lj/cut/coul/msm 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/wolf 0.2 5. 10.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.0 2.5\n```\n", + "html_filename": "pair_lj_cut_coul.html", + "short_description": "The *lj/cut/coul* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "The *lj/cut/coul* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nStyle *lj/cut/coul/cut* adds a Coulombic pairwise interaction given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the 2 atoms, and \\(\\epsilon\\) is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nStyle *lj/cut/coul/debye* adds an additional exp() damping factor\nto the Coulombic term, given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\exp(- \\kappa r) \\qquad r < r_c\\]\nwhere \\(\\kappa\\) is the inverse of the Debye length. This potential\nis another way to mimic the screening effect of a polar solvent.\n\nStyle *lj/cut/coul/dsf* computes the Coulombic term via the damped\nshifted force model described in **Fennell2**, given by:\n\\[\n E =\n q_iq_j \\left[ \\frac{\\mbox{erfc} (\\alpha r)}{r} - \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c} +\n \\left( \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c^2} + \\frac{2\\alpha}{\\sqrt{\\pi}}\\frac{\\exp (-\\alpha^2 r^2_c)}{r_c} \\right)(r-r_c) \\right] \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter and erfc() is the complementary\nerror-function. This potential is essentially a short-range,\nspherically-truncated, charge-neutralized, shifted, pairwise *1/r*\nsummation. The potential is based on Wolf summation, proposed as an\nalternative to Ewald summation for condensed phase systems where\ncharge screening causes electrostatic interactions to become\neffectively short-ranged. In order for the electrostatic sum to be\nabsolutely convergent, charge neutralization within the cutoff radius\nis enforced by shifting the potential through placement of image\ncharges on the cutoff sphere. Convergence can often be improved by\nsetting \\(\\alpha\\) to a small non-zero value.\n\nStyles *lj/cut/coul/long* and *lj/cut/coul/msm* compute the same\nCoulombic interactions as style *lj/cut/coul/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\nStyle *coul/wolf* adds a Coulombic pairwise interaction via the Wolf\nsummation method, described in **Wolf3**, given by:\n\\[\n E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and erfc() is the\ncomplementary error-function terms. This potential is essentially a\nshort-range, spherically-truncated, charge-neutralized, shifted,\npairwise *1/r* summation. With a manipulation of adding and subtracting\na self term (for i = j) to the first and second term on the\nright-hand-side, respectively, and a small enough \\(\\alpha\\) damping\nparameter, the second term shrinks and the potential becomes a\nrapidly-converging real-space summation. With a long enough cutoff and\nsmall enough \\(\\alpha\\) parameter, the energy and forces calculated by the\nWolf summation method approach those of the Ewald sum. So it is a means\nof getting effective long-range interactions with a short-range\npotential.\n\n #### Coefficients\n\nFor all of the *lj/cut/coul* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{\\frac{1}{6}} \\sigma\\).\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nFor *lj/cut/coul/long* and *lj/cut/coul/msm* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff specified in\nthe pair_style command.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/coul/soft* and\n*lj/cut/coul/long/soft*, suitable for use in free energy calculations, is\npart of the FEP package and is documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/cut/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Fennell2)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,\n234104 (2006). \n \n**(Wolf3)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n ", + "restrictions": "The *lj/cut/coul/long* and *lj/cut/coul/msm* styles are part of the KSPACE package.\n\nThe *lj/cut/coul/debye*, *lj/cut/coul/dsf*, and *lj/cut/coul/wolf* styles are part\nof the EXTRA-PAIR package.\n\nThese styles are only enabled if LAMMPS was built with those respective\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style ilp/tmd" + "pair_style body/rounded/polygon" ], "syntax": [ - "pair_style [hybrid/overlay ...] ilp/tmd cutoff tap_flag" + "pair_style body/rounded/polygon c_n c_t mu delta_ua cutoff" ], "args": [ [ @@ -6795,303 +6405,348 @@ export const command_docs = [ "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "body/rounded/polygon", + "type": 1, + "choices": [] + }, + { + "arg": "c_n", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "c_t", "type": 2, "choices": [] }, { - "arg": "ilp/tmd", - "type": 1, + "arg": "mu", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "delta_ua", "type": 2, "choices": [] }, { - "arg": "tap_flag", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style hybrid/overlay ilp/tmd 16.0 1\npair_coeff * * ilp/tmd TMD.ILP Mo S S\n\npair_style hybrid/overlay sw/mod sw/mod ilp/tmd 16.0\npair_coeff * * sw/mod 1 tmd.sw.mod Mo S S NULL NULL NULL\npair_coeff * * sw/mod 2 tmd.sw.mod NULL NULL NULL W Se Se\npair_coeff * * ilp/tmd TMD.ILP Mo S S W Se Se\n```\n", - "html_filename": "pair_ilp_tmd.html", - "short_description": "\nThe *ilp/tmd* style computes the registry-dependent interlayer\npotential (ILP) potential for transition metal dichalcogenides (TMD)\nas described in **Ouyang7** and **Jiang**", - "description": "\nThe *ilp/tmd* style computes the registry-dependent interlayer\npotential (ILP) potential for transition metal dichalcogenides (TMD)\nas described in **Ouyang7** and **Jiang**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since each MX2 (M = Mo, W and X = S, Se Te) layer contains two\n > sub-layers of X atoms and one sub-layer of M atoms, the definition of the\n > normal vectors used for graphene and h-BN is no longer valid for TMDs.\n > In **Ouyang7**, a new definition is proposed, where for\n > each atom `i`, its six nearest neighboring atoms belonging to the same\n > sub-layer are chosen to define the normal vector `{\\bf n}_i`. \n > \n\nThe parameter file (e.g. TMD.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. TMD.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful.\n > These parameters provide a good description in both short- and long-range\n > interaction regimes. This feature is essential for simulations in high pressure\n > regime (i.e., the interlayer distance is smaller than the equilibrium\n > distance). The benchmark tests and comparison of these parameters can\n > be found in **Ouyang7**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair ilp/tmd\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Ouyang7)** W. Ouyang, et al., J. Chem. Theory Comput. 17, 7237 (2021). \n \n**(Jiang)** W. Jiang, et al., J. Phys. Chem. A, 127, 46, 9820-9830 (2023). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe TMD.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom TMD.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" + "parameters": " *    c_n = normal damping coefficient \n *    c_t = tangential damping coefficient \n *    mu = normal friction coefficient during gross sliding \n *    delta_ua = multiple contact scaling factor \n *    cutoff = global separation cutoff for interactions (distance units), see below for definition \n", + "examples": "\n```lmps\npair_style body/rounded/polygon 20.0 5.0 0.0 1.0 0.5\npair_coeff * * 100.0 1.0\npair_coeff 1 1 100.0 1.0\n```\n", + "html_filename": "pair_body_rounded_polygon.html", + "short_description": "Style *body/rounded/polygon* is for use with 2d models of body\nparticles of style *rounded/polygon* ", + "description": "Style *body/rounded/polygon* is for use with 2d models of body\nparticles of style *rounded/polygon* . It calculates pairwise\nbody/body interactions which can include body particles modeled as\n1-vertex circular disks with a specified diameter. See the\n[Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nrounded/polygon particles.\n\nThis pairwise interaction between rounded polygons is described in\n**pair-Fraige**, where a polygon does not have sharp corners,\nbut is rounded at its vertices by circles centered on each vertex with\na specified diameter. The edges of the polygon are defined between\npairs of adjacent vertices. The circle diameter for each polygon is\nspecified in the data file read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand. This is a 2d discrete element model (DEM) which allows for\nmultiple contact points.\n\nNote that when two particles interact, the effective surface of each\npolygon particle is displaced outward from each of its vertices and\nedges by half its circle diameter (as in the diagram below of a gray\nand yellow square particle). The interaction forces and energies\nbetween two particles are defined with respect to the separation of\ntheir respective rounded surfaces, not by the separation of the\nvertices and edges themselves.\n\nThis means that the specified cutoff in the pair_style command is the\ncutoff distance, \\(r_c\\), for the surface separation, \\(\\delta_n\\) (see figure\nbelow). This is the distance at which two particles no longer\ninteract. If \\(r_c\\) is specified as 0.0, then it is a contact-only\ninteraction. I.e. the two particles must overlap in order to exert a\nrepulsive force on each other. If \\(r_c > 0.0\\), then the force between\ntwo particles will be attractive for surface separations from 0 to\n\\(r_c\\), and repulsive once the particles overlap.\n\nNote that unlike for other pair styles, the specified cutoff is not\nthe distance between the centers of two particles at which they stop\ninteracting. This center-to-center distance depends on the shape and\nsize of the two particles and their relative orientation. LAMMPS\ntakes that into account when computing the surface separation distance\nand applying the \\(r_c\\) cutoff.\n\nThe forces between vertex-vertex, vertex-edge, and edge-edge overlaps\nare given by:\n\\[\\begin{align*} \n F_n &= \\begin{cases}\n k_n \\delta_n - c_n v_n & \\delta_n \\le 0 \\\\\n -k_{na} \\delta_n - c_n v_n & 0 < \\delta_n \\le r_c \\\\\n 0 & \\delta_n > r_c \\\\\n \\end{cases} \\\\\n F_t &= \\begin{cases}\n \\mu k_n \\delta_n - c_t v_t & \\delta_n \\le 0 \\\\\n 0 & \\delta_n > 0\n \\end{cases} \\end{align*} \\]\n\n ![Image](JPG/pair_body_rounded.jpg) \n\nNote that \\(F_n\\) and \\(F_t\\) are functions of the surface separation\n\\(\\delta_n = d - (R_i + R_j)\\). In this model, when\n\\((R_i + R_j) < d < (R_i + R_j) + r_c\\), that is, \\(0 < \\delta_n < r_c\\),\nthe cohesive region of the two surfaces overlap and the two surfaces are\nattractive to each other.\n\nIn **pair-Fraige**, the tangential friction force between two\nparticles that are in contact is modeled differently prior to gross\nsliding (i.e. static friction) and during gross-sliding (kinetic\nfriction). The latter takes place when the tangential deformation\nexceeds the Coulomb frictional limit. In the current implementation,\nhowever, we do not take into account frictional history, i.e. we do\nnot keep track of how many time steps the two particles have been in\ncontact nor calculate the tangential deformation. Instead, we assume\nthat gross sliding takes place as soon as two particles are in\ncontact.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file read by the [read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(k_n\\) (energy/distance\\^2 units)\n* \\(k_{na}\\) (energy/distance\\^2 units)\n\nEffectively, \\(k_n\\) and \\(k_{na}\\) are the slopes of the red lines in the plot\nabove for force versus surface separation, for \\(\\delta_n < 0\\) and\n\\(0 < \\delta_n < r_c\\) respectively.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(pair-Fraige)** F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds,\nParticuology, 6, 455 (2008). \n ", + "restrictions": "These pair styles are part of the BODY package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "bond_style fene", - "bond_style fene/intel", - "bond_style fene/kk", - "bond_style fene/omp", - "bond_style fene/nm" + "minimize" ], "syntax": [ - "bond_style fene", - "bond_style fene/nm" + "minimize etol ftol maxiter maxeval" ], "args": [ [ { - "arg": "bond_style", + "arg": "minimize", "type": 1, "choices": [] }, { - "arg": "fene", - "type": 3, - "choices": [ - "fene", - "fene/intel", - "fene/kk", - "fene/omp" - ] - } - ], - [ + "arg": "etol", + "type": 2, + "choices": [] + }, { - "arg": "bond_style", - "type": 1, + "arg": "ftol", + "type": 2, "choices": [] }, { - "arg": "fene/nm", + "arg": "maxiter", + "type": 2, + "choices": [] + }, + { + "arg": "maxeval", "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style fene\nbond_coeff 1 30.0 1.5 1.0 1.0\n\nbond_style fene/nm\nbond_coeff 1 2.25344 1.5 1.0 1.12246 2 6\n```\n", - "html_filename": "bond_fene.html", - "short_description": "The *fene* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**fene-Kremer**, used for bead-spring polymer models", - "description": "The *fene* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**fene-Kremer**, used for bead-spring polymer models. The first\nterm is attractive, the second Lennard-Jones term is repulsive. The\nfirst term extends to \\(R_0\\), the maximum extent of the bond. The second\nterm is cutoff at \\(2^\\frac{1}{6} \\sigma\\), the minimum of the LJ potential.\n\nThe *fene/nm* bond style substitutes the standard LJ potential with the generalized LJ potential\nin the same form as in pair style [nm/cut ](https://docs.lammps.org/pair_nm.html). The bond energy is then given by\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + \\frac{E_0}{(n-m)} \\left[ m \\left(\\frac{r_0}{r}\\right)^n - n \\left(\\frac{r_0}{r}\\right)^m \\right]\\]\nSimilar to the *fene* style, the generalized Lennard-Jones is cut off at\nthe potential minimum, \\(r_0\\), to be repulsive only. The following\ncoefficients must be defined for each bond type via the [bond_coeff](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n\nFor the *fene/nm* style, the following coefficients are used. Please\nnote, that the standard LJ potential and thus the regular FENE potential\nis recovered for (n=12 m=6) and \\(r_0 = 2^\\frac{1}{6} \\sigma\\).\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(E_0\\) (energy)\n* \\(r_0\\) (distance)\n* \\(n\\) (unitless)\n* \\(m\\) (unitless)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(fene-Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", - "restrictions": "The *fene* bond style can only be used if LAMMPS was built with the MOLECULE\npackage; the *fene/nm* bond style can only be used if LAMMPS was built\nwith the EXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nYou typically should specify [special_bonds fene ](https://docs.lammps.org/special_bonds.html)\nor [special_bonds lj/coul 0 1 1 ](https://docs.lammps.org/special_bonds.html) to use this bond\nstyle. LAMMPS will issue a warning it that's not the case.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[pair style lj/cut ](https://docs.lammps.org/pair_lj.html), [pair style nm/cut ](https://docs.lammps.org/pair_nm.html).\n" + "parameters": "* etol = stopping tolerance for energy (unitless)\n* ftol = stopping tolerance for force (force units)\n* maxiter = max iterations of minimizer\n* maxeval = max number of force/energy evaluations \n", + "examples": "\n```lmps\nminimize 1.0e-4 1.0e-6 100 1000\nminimize 0.0 1.0e-8 1000 100000\n```\n", + "html_filename": "minimize.html", + "short_description": "Perform an energy minimization of the system, by iteratively adjusting\natom coordinates", + "description": "Perform an energy minimization of the system, by iteratively adjusting\natom coordinates. Iterations are terminated when one of the stopping\ncriteria is satisfied. At that point the configuration will hopefully\nbe in a local potential energy minimum. More precisely, the\nconfiguration should approximate a critical point for the objective\nfunction (see below), which may or may not be a local minimum.\n\nThe minimization algorithm used is set by the [min_style](https://docs.lammps.org/min_style.html) command. Other options are set by the [min_modify](https://docs.lammps.org/min_modify.html) command. Minimize commands can be interspersed with\n[run ](https://docs.lammps.org/run.html) commands to alternate between relaxation and dynamics.\nThe minimizers bound the distance atoms may move in one iteration, so\nthat you can relax systems with highly overlapped atoms (large energies\nand forces) by pushing the atoms off of each other.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Neighbor list update settings \n >The distance that atoms can move during individual minimization steps\n > can be quite large, especially at the beginning of a minimization.\n > Thus [neighbor list settings ](https://docs.lammps.org/neigh_modify.html) of *every = 1* and\n > *delay = 0* are **required**. This may be combined with either\n > *check = no* (always update the neighbor list) or *check = yes* (only\n > update the neighbor list if at least one atom has moved more than\n > half the [neighbor list skin ](https://docs.lammps.org/neighbor.html) distance since the last\n > reneighboring). Using *check = yes* is recommended since it avoids\n > unneeded reneighboring steps when the system is closer to the minimum\n > and thus atoms move only small distances. Using *check = no* may be\n > required for debugging or when coupling LAMMPS with external codes\n > that require a predictable sequence of neighbor list updates.\n >\n > If the settings are **not** *every = 1* and *delay = 0*, LAMMPS will\n > temporarily apply a [neigh_modify every 1 delay 0 check yes > ](https://docs.lammps.org/neigh_modify.html) setting during the minimization and restore the\n > original setting at the end of the minimization. A corresponding\n > message will be printed to the screen and log file, if this happens. \n > \n\nAlternate means of relaxing a system are to run dynamics with a small or\n[limited timestep ](https://docs.lammps.org/fix_nve_limit.html). Or dynamics can be run using\n[fix viscous ](https://docs.lammps.org/fix_viscous.html) to impose a damping force that slowly\ndrains all kinetic energy from the system. The [pair_style soft](https://docs.lammps.org/pair_soft.html) potential can be used to un-overlap atoms while running\ndynamics.\n\nNote that you can minimize some atoms in the system while holding the\ncoordinates of other atoms fixed by applying [fix setforce 0.0 0.00.0 ](https://docs.lammps.org/fix_setforce.html) to the other atoms. See a more detailed discussion\nof **fix_minimize**.\n\nThe [minimization styles ](https://docs.lammps.org/min_style.html) *cg*, *sd*, and *hftn*\ninvolves an outer iteration loop which sets the search direction along\nwhich atom coordinates are changed. An inner iteration is then\nperformed using a line search algorithm. The line search typically\nevaluates forces and energies several times to set new coordinates.\nCurrently, a backtracking algorithm is used which may not be optimal\nin terms of the number of force evaluations performed, but appears to\nbe more robust than previous line searches we have tried. The\nbacktracking method is described in Nocedal and Wright's Numerical\nOptimization (Procedure 3.1 on p 41).\n\nThe [minimization styles ](https://docs.lammps.org/min_style.html) *quickmin*, *fire* and\n*fire/old* perform damped dynamics using an Euler integration step. Thus\nthey require a [timestep ](https://docs.lammps.org/timestep.html) be defined.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damped dynamic minimizer algorithms will use the timestep you\n > have defined via the [timestep ](https://docs.lammps.org/timestep.html) command or its\n > default value. Often they will converge more quickly if you use a\n > timestep about 10x larger than you would normally use for regular\n > molecular dynamics simulations. \n > \n\n----------\n\nIn all cases, the objective function being minimized is the total\npotential energy of the system as a function of the N atom\ncoordinates:\n\\[\\begin{align*} E(r_1,r_2, \\ldots ,r_N) = & \\sum_{i,j} E_{\\it pair}(r_i,r_j) +\n \\sum_{ij} E_{\\it bond}(r_i,r_j) +\n \\sum_{ijk} E_{\\it angle}(r_i,r_j,r_k) + \\\\\n & \\sum_{ijkl} E_{\\it dihedral}(r_i,r_j,r_k,r_l) +\n \\sum_{ijkl} E_{\\it improper}(r_i,r_j,r_k,r_l) +\n \\sum_i E_{\\it fix}(r_i) \\end{align*} \\]\nwhere the first term is the sum of all non-bonded [pairwiseinteractions ](https://docs.lammps.org/pair_style.html) including [long-range Coulombicinteractions ](https://docs.lammps.org/kspace_style.html), the second through fifth terms are [bond](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html), [dihedral](https://docs.lammps.org/dihedral_style.html), and [improper ](https://docs.lammps.org/improper_style.html) interactions\nrespectively, and the last term is energy due to [fixes ](https://docs.lammps.org/fix.html)\nwhich can act as constraints or apply force to atoms, such as through\ninteraction with a wall. See the discussion below about how fix\ncommands affect minimization.\n\nThe starting point for the minimization is the current configuration\nof the atoms.\n\n----------\n\nThe minimization procedure stops if any of several criteria are met:\n\n* the change in energy between outer iterations is less than *etol*\n* the 2-norm (length) of the global force vector is less than the *ftol*\n* the line search fails because the step distance backtracks to 0.0\n* the number of outer iterations or timesteps exceeds *maxiter*\n* the number of total force evaluations exceeds *maxeval*\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the [minimization style ](https://docs.lammps.org/min_style.html) *spin*,\n > *spin/cg*, and *spin/lbfgs* replace\n > the force tolerance *ftol* by a torque tolerance.\n > The minimization procedure stops if the 2-norm (length) of the torque vector on atom\n > (defined as the cross product between the\n > atomic spin and its precession vectors omega) is less than *ftol*,\n > or if any of the other criteria are met. Torque have the same units as the energy. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can also use the [fix halt ](https://docs.lammps.org/fix_halt.html) command to specify\n > a general criterion for exiting a minimization, that is a\n > calculation performed on the state of the current system, as\n > defined by an [equal-style variable ](https://docs.lammps.org/variable.html). \n > \n\nFor the first criterion, the specified energy tolerance *etol* is\nunitless; it is met when the energy change between successive\niterations divided by the energy magnitude is less than or equal to\nthe tolerance. For example, a setting of 1.0e-4 for *etol* means an\nenergy tolerance of one part in 10\\^4. For the damped dynamics\nminimizers this check is not performed for a few steps after\nvelocities are reset to 0, otherwise the minimizer would prematurely\nconverge.\n\nFor the second criterion, the specified force tolerance *ftol* is in\nforce units, since it is the length of the global force vector for all\natoms, e.g. a vector of size 3N for N atoms. Since many of the\ncomponents will be near zero after minimization, you can think of\n*ftol* as an upper bound on the final force on any component of any\natom. For example, a setting of 1.0e-4 for *ftol* means no x, y, or z\ncomponent of force on any atom will be larger than 1.0e-4 (in force\nunits) after minimization.\n\nEither or both of the *etol* and *ftol* values can be set to 0.0, in\nwhich case some other criterion will terminate the minimization.\n\nDuring a minimization, the outer iteration count is treated as a\ntimestep. Output is triggered by this timestep, e.g. thermodynamic\noutput or dump and restart files.\n\nUsing the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command with the\n*fmax* or *fnorm* keywords can be useful for monitoring the progress\nof the minimization. Note that these outputs will be calculated only\nfrom forces on the atoms, and will not include any extra degrees of\nfreedom, such as from the [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command.\n\nFollowing minimization, a statistical summary is printed that lists\nwhich convergence criterion caused the minimizer to stop, as well as\ninformation about the energy, force, final line search, and iteration\ncounts. An example is as follows:\n\n```\nMinimization stats:\nStopping criterion = max iterations\nEnergy initial, next-to-last, final =\n-0.626828169302 -2.82642039062 -2.82643549739\nForce two-norm initial, final = 2052.1 91.9642\nForce max component initial, final = 346.048 9.78056\nFinal line search alpha, max atom move = 2.23899e-06 2.18986e-05\nIterations, force evaluations = 2000 12724\n```\nThe 3 energy values are for before and after the minimization and on\nthe next-to-last iteration. This is what the *etol* parameter checks.\n\nThe two-norm force values are the length of the global force vector\nbefore and after minimization. This is what the *ftol* parameter\nchecks.\n\nThe max-component force values are the absolute value of the largest\ncomponent (x,y,z) in the global force vector, i.e. the infinity-norm\nof the force vector.\n\nThe alpha parameter for the line-search, when multiplied by the max\nforce component (on the last iteration), gives the max distance any\natom moved during the last iteration. Alpha will be 0.0 if the line\nsearch could not reduce the energy. Even if alpha is non-zero, if the\n\"max atom move\" distance is tiny compared to typical atom coordinates,\nthen it is possible the last iteration effectively caused no atom\nmovement and thus the evaluated energy did not change and the\nminimizer terminated. Said another way, even with non-zero forces,\nit's possible the effect of those forces is to move atoms a distance\nless than machine precision, so that the energy cannot be further\nreduced.\n\nThe iterations and force evaluation values are what is checked by the\n*maxiter* and *maxeval* parameters.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are several force fields in LAMMPS which have discontinuities\n > or other approximations which may prevent you from performing an\n > energy minimization to tight tolerances. For example, you should use\n > a [pair style ](https://docs.lammps.org/pair_style.html) that goes to 0.0 at the cutoff\n > distance when performing minimization (even if you later change it\n > when running dynamics). If you do not do this, the total energy of\n > the system will have discontinuities when the relative distance\n > between any pair of atoms changes from cutoff *plus* epsilon to\n > cutoff *minus* epsilon and the minimizer may thus behave poorly.\n > Some of the many-body potentials use splines and other internal\n > cutoffs that inherently have this problem. The [long-range > Coulombic styles ](https://docs.lammps.org/kspace_style.html) (PPPM, Ewald) are approximate to\n > within the user-specified tolerance, which means their energy and\n > forces may not agree to a higher precision than the Kspace-specified\n > tolerance. This agreement is further reduced when using tabulation\n > to speed up the computation of the real-space part of the Coulomb\n > interactions, which is enabled by default. In all these cases, the\n > minimizer may give up and stop before finding a minimum to the\n > specified energy or force tolerance. \n > \n\nNote that a cutoff Lennard-Jones potential (and others) can be shifted\nso that its energy is 0.0 at the cutoff via the [pair_modify](https://docs.lammps.org/pair_modify.html) command. See the doc pages for individual [pairstyles ](https://docs.lammps.org/pair_style.html) for details. Note that most Coulombic potentials\nhave a cutoff, unless versions with a long-range component are used\n(e.g. [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)) or some\nother damping/smoothing schemes are used. The CHARMM potentials go to\n0.0 at the cutoff (e.g. [pair_style lj/charmm/coul/charmm](https://docs.lammps.org/pair_charmm.html)), as do the GROMACS potentials (e.g. [pair_stylelj/gromacs ](https://docs.lammps.org/pair_gromacs.html)).\n\nIf a soft potential ([pair_style soft ](https://docs.lammps.org/pair_soft.html)) is used the\nAstop value is used for the prefactor (no time dependence).\n\n.. _fix_minimize:\n\nThe [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command can be used to apply an\nexternal pressure to the simulation box and allow it to shrink/expand\nduring the minimization.\n\nOnly a few other fixes (typically those that add forces) are invoked\nduring minimization. See the doc pages for individual [fix ](https://docs.lammps.org/fix.html)\ncommands to see which ones are relevant. Current examples of fixes\nthat can be used include:\n\n* [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n* [fix addtorque ](https://docs.lammps.org/fix_addtorque.html)\n* [fix efield ](https://docs.lammps.org/fix_efield.html)\n* [fix enforce2d ](https://docs.lammps.org/fix_enforce2d.html)\n* [fix indent ](https://docs.lammps.org/fix_indent.html)\n* [fix lineforce ](https://docs.lammps.org/fix_lineforce.html)\n* [fix planeforce ](https://docs.lammps.org/fix_planeforce.html)\n* [fix setforce ](https://docs.lammps.org/fix_setforce.html)\n* [fix spring ](https://docs.lammps.org/fix_spring.html)\n* [fix spring/self ](https://docs.lammps.org/fix_spring_self.html)\n* [fix viscous ](https://docs.lammps.org/fix_viscous.html)\n* [fix wall ](https://docs.lammps.org/fix_wall.html)\n* [fix wall/region ](https://docs.lammps.org/fix_wall_region.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Some fixes which are invoked during minimization have an\n > associated potential energy. For that energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > that fix. The doc pages for individual [fix ](https://docs.lammps.org/fix.html) commands\n > specify if this should be done. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The minimizers in LAMMPS do not allow for bonds (or angles, etc)\n > to be held fixed while atom coordinates are being relaxed, e.g. via\n > [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). See more\n > info in the Restrictions section below. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\nThe :doc:`fix box/relax ` command can be used to apply an\nexternal pressure to the simulation box and allow it to shrink/expand\nduring the minimization. \n ", + "restrictions": "Features that are not yet implemented are listed here, in case someone\nknows how they could be coded:\n\nIt is an error to use [fix shake ](https://docs.lammps.org/fix_shake.html) with minimization\nbecause it turns off bonds that should be included in the potential\nenergy of the system. The effect of a fix shake can be approximated\nduring a minimization by using stiff spring constants for the bonds\nand/or angles that would normally be constrained by the SHAKE\nalgorithm.\n\n[Fix rigid ](https://docs.lammps.org/fix_rigid.html) is also not supported by minimization. It\nis not an error to have it defined, but the energy minimization will\nnot keep the defined body(s) rigid during the minimization. Note that\nif bonds, angles, etc internal to a rigid body have been turned off\n(e.g. via [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html)), they will not\ncontribute to the potential energy which is probably not what is\ndesired.\n\nPair potentials that produce torque on a particle (e.g. [granular potentials ](https://docs.lammps.org/pair_gran.html) or the [GayBerne potential ](https://docs.lammps.org/pair_gayberne.html) for ellipsoidal particles) are not\nrelaxed by a minimization. More specifically, radial relaxations are\ninduced, but no rotations are induced by a minimization, so such a\nsystem will not fully relax.\n", + "related": "[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "angle_write" + "fix ipi" ], "syntax": [ - "angle_write atype N file keyword" + "fix ID group-ID ipi address port [unix] [reset]" ], "args": [ [ { - "arg": "angle_write", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "atype", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "file", + "arg": "ipi", + "type": 1, + "choices": [] + }, + { + "arg": "address", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "port", + "type": 2, + "choices": [] + }, + { + "arg": "[unix]", + "type": 2, + "choices": [] + }, + { + "arg": "[reset]", "type": 2, "choices": [] } ] ], - "parameters": "* atype = angle type\n* N = # of values\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values \n", - "examples": "\n```lmps\nangle_write 1 500 table.txt Harmonic_1\nangle_write 3 1000 table.txt Harmonic_3\n```\n", - "html_filename": "angle_write.html", - "short_description": "\nWrite energy and force values to a file as a function of angle for the\ncurrently defined angle potential", - "description": "\nWrite energy and force values to a file as a function of angle for the\ncurrently defined angle potential. Force in this context means the\nforce with respect to the angle, not the force on individual atoms.\nThis is useful for plotting the potential function or otherwise\ndebugging its values. The resulting file can also be used as input for\nuse with [angle style table ](https://docs.lammps.org/angle_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed for angles ranging from 0\ndegrees to 180 degrees for 3 interacting atoms forming an angle type\natype, using the appropriate [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncoefficients. N evenly spaced angles are used.\n\nFor example, for N = 6, values are computed at \\(\\theta = 0, 36,\n72, 108, 144, 180\\).\n\nThe file is written in the format used as input for the\n[angle_style table ](https://docs.lammps.org/angle_table.html) option with *keyword* as the\nsection name. Each line written to the file lists an index number\n(1-N), an angle (in degrees), an energy (in energy units), and a force\n(in force units per radians^2). In case a new file is created, the\nfirst line will be a comment with a \"DATE:\" and \"UNITS:\" tag with the\ncurrent date and [units ](https://docs.lammps.org/units.html) settings. For subsequent\ninvocations of the *angle_write* command for the same file, data will be\nappended and the current units settings will be compared to the data\nfrom the header, if present. The *angle_write* will refuse to add a\ntable to an existing file if the units are not the same.\n", - "restrictions": "All force field coefficients for angle and other kinds of interactions\nmust be set before this command can be invoked.\n\nThe table of the angle energy and force data data is created by using a\nseparate, internally created, new LAMMPS instance with a dummy system of\n3 atoms for which the angle potential energy is computed after\ntransferring the angle style and coefficients and arranging the three atoms\ninto the corresponding geometries. The angle force is then determined\nfrom the potential energies through numerical differentiation. As a\nconsequence of this approach, not all angle styles are compatible. The\nfollowing conditions must be met:\n\n- The angle style must be able to write its coefficients to a data file.\n This condition excludes for example [angle style hybrid ](https://docs.lammps.org/angle_hybrid.html) and\n [angle style table ](https://docs.lammps.org/angle_table.html).\n- The potential function must not have any terms that depend on geometry\n properties other than the angle. This condition excludes for example\n [angle style class2 ](https://docs.lammps.org/angle_class2.html) all angle types for\n [angle style charmm ](https://docs.lammps.org/angle_charmm.html) that have non-zero\n Urey-Bradley terms. Please note that the *write_angle* command has no\n way of checking for this condition, so the resulting tables may be\n bogus if the requirement is not met. It is thus recommended to make\n careful tests for any created tables.\n", - "related": "[angle_style table ](https://docs.lammps.org/angle_table.html), [bond_write ](https://docs.lammps.org/bond_write.html),\n[dihedral_write ](https://docs.lammps.org/dihedral_write.html), [angle_style ](https://docs.lammps.org/angle_style.html),\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ipi = style name of this fix command\n* address = internet address (FQDN or IP), or UNIX socket name\n* port = port number (ignored for UNIX sockets)\n\n* zero or more keywords may be appended\n* keyword = unix or reset \n *        unix args = none = use a unix socket \n *        reset args = none = reset electrostatics at each call \n", + "examples": "\n```lmps\nfix 1 all ipi my.server.com 12345\nfix 1 all ipi mysocket 666 unix reset\n```\n", + "html_filename": "fix_ipi.html", + "short_description": "This fix enables LAMMPS to be run as a client for the i-PI Python\nwrapper **ipihome**", + "description": "This fix enables LAMMPS to be run as a client for the i-PI Python\nwrapper **ipihome**. i-PI is a universal force engine,\ndesigned to perform advanced molecular simulations, with a special\nfocus on path integral molecular dynamics (PIMD) simulation.\nThe philosophy behind i-PI is to separate the evaluation of the\nenergy and forces, which is delegated to the client, and the evolution\nof the dynamics, that is the responsibility of i-PI. This approach also\nsimplifies combining energies computed from different codes, which\ncan for instance be useful to mix first-principles calculations,\nempirical force fields or machine-learning potentials.\nThe following publication **IPICPC** discusses the\noverall implementation of i-PI, and focuses on path-integral techniques,\nwhile a later release **IPICPC2** introduces several\nadditional features and simulation schemes.\n\nThe communication between i-PI and LAMMPS takes place using sockets,\nand is reduced to the bare minimum. All the parameters of the dynamics\nare specified in the input of i-PI, and all the parameters of the force\nfield must be specified as LAMMPS inputs, preceding the *fix ipi* command.\n\nThe server address must be specified by the *address* argument, and\ncan be either the IP address, the fully-qualified name of the server,\nor the name of a UNIX socket for local, faster communication. In the\ncase of internet sockets, the *port* argument specifies the port\nnumber on which i-PI is listening, while the *unix* optional switch\nspecifies that the socket is a UNIX socket.\n\nNote that there is no check of data integrity, or that the atomic\nconfigurations make sense. It is assumed that the species in the i-PI\ninput are listed in the same order as in the data file of LAMMPS. The\ninitial configuration is ignored, as it will be substituted with the\ncoordinates received from i-PI before forces are ever evaluated.\n\nA note of caution when using potentials that contain long-range\nelectrostatics, or that contain parameters that depend on box size:\nall of these options will be initialized based on the cell size in the\nLAMMPS-side initial configuration and kept constant during the run.\nThis is required to e.g. obtain reproducible and conserved forces.\nIf the cell varies too wildly, it may be advisable to re-initialize\nthese interactions at each call. This behavior can be requested by\nsetting the *reset* switch.\n\n #### Obtaining i-PI\n\nHere are the commands to set up a virtual environment and install\ni-PI into it with all its dependencies via the PyPI repository and\nthe pip package manager.\n\n```sh\npython -m venv ipienv\nsource ipienv/bin/activate\npip install --upgrade pip\npip install ipi\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThere is no restart information associated with this fix, since all\nthe dynamical parameters are dealt with by i-PI.\n\n**(ipihome)**\n[https://ipi-code.org](https://ipi-code.org) \n \n**(IPICPC)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185,\n1019-1026 (2014). \n \n**(IPICPC2)** Kapil et al., Comp Phys Comm 236, 214-223 (2019). \n ", + "restrictions": "Using this fix on anything other than all atoms requires particular\ncare, since i-PI will know nothing on atoms that are not those whose\ncoordinates are transferred. However, one could use this strategy to\ndefine an external potential acting on the atoms that are moved by\ni-PI.\n\nSince the i-PI code uses atomic units internally, this fix needs to\nconvert LAMMPS data to and from its [specified units ](https://docs.lammps.org/units.html)\naccordingly when communicating with i-PI. This is not possible for\nreduced units (\"units lj\") and thus *fix ipi* will stop with an error in\nthis case.\n\nThis fix is part of the MISC package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\nBecause of the use of UNIX domain sockets, this fix will only\nwork in a UNIX environment.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n\n----------\n\n.. _IPICPC:\n\n**(IPI-CPC-2014)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185,\n1019-1026 (2014).\n\n.. _IPICPC2:\n\n**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214-223 (2019).\n\n\n.. _ipihome:\n\n**(IPI)**\n[https://ipi-code.org](https://ipi-code.org)\n" }, { "command": [ - "fix_modify AtC write_atom_weights" + "write_dump" ], "syntax": [ - "fix_modify write_atom_weights " + "write_dump group-ID style file dump-args modify dump_modify-args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "write_dump", "type": 1, "choices": [] }, { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "write_atom_weights", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "", + "arg": "dump-args", + "type": 2, + "choices": [] + }, + { + "arg": "modify", + "type": 2, + "choices": [] + }, + { + "arg": "dump_modify-args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* write_atom_weights = name of the AtC sub-command\n* filename = name of file that atomic weights are written to\n* frequency = how often writes will occur \n", - "examples": "\n```lmps\nfix_modify AtC write_atom_weights atm_wt_file.txt 10\n```\n", - "html_filename": "atc_write_atom_weights.html", - "short_description": "Command for writing the values of atomic weights to a specified file", - "description": "Command for writing the values of atomic weights to a specified file.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* group-ID = ID of the group of atoms to be dumped\n* style = any of the supported [dump styles ](https://docs.lammps.org/dump.html)\n* file = name of file to write dump info to\n* dump-args = any additional args needed for a particular [dump style ](https://docs.lammps.org/dump.html)\n* modify = all args after this keyword are passed to [dump_modify ](https://docs.lammps.org/dump_modify.html) (optional)\n* dump-modify-args = args for [dump_modify ](https://docs.lammps.org/dump_modify.html) (optional) \n", + "examples": "\n```lmps\nwrite_dump all atom dump.atom\nwrite_dump subgroup atom dump.run.bin\nwrite_dump all custom dump.myforce.* id type x y vx fx\nwrite_dump flow custom dump.%.myforce id type c_myF[3] v_ke modify sort id\nwrite_dump all xyz system.xyz modify sort id element O H\nwrite_dump all image snap*.jpg type type size 960 960 modify backcolor white\nwrite_dump all image snap*.jpg element element &\nbond atom 0.3 shiny 0.1 ssao yes 6345 0.2 size 1600 1600 &\nmodify backcolor white element C C O H N C C C O H H S O H\nwrite_dump all atom/gz dump.atom.gz modify compression_level 9\nwrite_dump flow custom/zstd dump.%.myforce.zst &\nid type c_myF[3] v_ke &\nmodify sort id &\ncompression_level 15\n```\n", + "html_filename": "write_dump.html", + "short_description": "Dump a single snapshot of atom quantities to one or more files for the\ncurrent state of the system", + "description": "Dump a single snapshot of atom quantities to one or more files for the\ncurrent state of the system. This is a one-time immediate operation,\nin contrast to the [dump ](https://docs.lammps.org/dump.html) command which will will set up a\ndump style to write out snapshots periodically during a running\nsimulation.\n\nThe syntax for this command is mostly identical to that of the\n[dump ](https://docs.lammps.org/dump.html) and [dump_modify ](https://docs.lammps.org/dump_modify.html) commands as if\nthey were concatenated together, with the following exceptions: There\nis no need for a dump ID or dump frequency and the keyword *modify* is\nadded. The latter is so that the full range of\n[dump_modify ](https://docs.lammps.org/dump_modify.html) options can be specified for the single\nsnapshot, just as they can be for multiple snapshots. The *modify*\nkeyword separates the arguments that would normally be passed to the\n*dump* command from those that would be given the *dump_modify*. Both\nsupport optional arguments and thus LAMMPS needs to be able to cleanly\nseparate the two sets of args.\n\nNote that if the specified filename uses wildcard characters \"\\*\" or\n\"%\", as supported by the [dump ](https://docs.lammps.org/dump.html) command, they will operate\nin the same fashion to create the new filename(s). Normally, [dump image ](https://docs.lammps.org/dump_image.html) files require a filename with a \"\\*\" character\nfor the timestep. That is not the case for the write_dump command; no\nwildcard \"\\*\" character is necessary.\n\n----------\n", + "restrictions": "All restrictions for the [dump ](https://docs.lammps.org/dump.html) and\n[dump_modify ](https://docs.lammps.org/dump_modify.html) commands apply to this command as well,\nwith the exception of the [dump image ](https://docs.lammps.org/dump_image.html) filename not\nrequiring a wildcard \"\\*\" character, as noted above.\n\nSince dumps are normally written during a [run ](https://docs.lammps.org/run.html) or [energy minimization ](https://docs.lammps.org/minimize.html), the simulation has to be ready to run\nbefore this command can be used. Similarly, if the dump requires\ninformation from a compute, fix, or variable, the information needs to\nhave been calculated for the current timestep (e.g. by a prior run),\nelse LAMMPS will generate an error message.\n\nFor example, it is not possible to dump per-atom energy with this\ncommand before a run has been performed, since no energies and forces\nhave yet been calculated. See the [variable ](https://docs.lammps.org/variable.html) doc page\nsection on Variable Accuracy for more information on this topic.\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html)\n" }, { "command": [ - "angle_coeff" + "pair_style line/lj" ], "syntax": [ - "angle_coeff N args" + "pair_style line/lj cutoff" ], "args": [ [ { - "arg": "angle_coeff", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "line/lj", + "type": 1, "choices": [] }, { - "arg": "args", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* N = numeric angle type (see asterisk form below), or type label\n* args = coefficients for one or more angle types \n", - "examples": "\n```lmps\nangle_coeff 1 300.0 107.0\nangle_coeff * 5.0\nangle_coeff 2*10 5.0\n\nlabelmap angle 1 hydroxyl\nangle_coeff hydroxyl 300.0 107.0\n```\n", - "html_filename": "angle_coeff.html", - "short_description": "Specify the angle force field coefficients for one or more angle types", - "description": "Specify the angle force field coefficients for one or more angle types.\nThe number and meaning of the coefficients depends on the angle style.\nAngle coefficients can also be set in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple angle types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of angle types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using an [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command can\noverride a previous setting for the same angle type. For example,\nthese commands set the coeffs for all angle types, then overwrite the\ncoeffs for just angle type 2:\n\n```lmps\nangle_coeff * 200.0 107.0 1.2\nangle_coeff 2 50.0 107.0\n```\nA line in a data file that specifies angle coefficients uses the exact\nsame format as the arguments of the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand in an input script, except that wild-card asterisks should not\nbe used since coefficients for all \\(N\\) types must be listed in the\nfile. For example, under the \"Angle Coeffs\" section of a data file, the\nline that corresponds to the first example above would be listed as\n\n```\n1 300.0 107.0\n```\nThe [angle_style class2 ](https://docs.lammps.org/angle_class2.html) is an exception to this\nrule, in that an additional argument is used in the input script to\nallow specification of the cross-term coefficients. See its doc page\nfor details.\n\n----------\n\nThe list of all angle styles defined in LAMMPS is given on the\n[angle_style ](https://docs.lammps.org/angle_style.html) doc page. They are also listed in more\ncompact form on the :ref:`Commands angle ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAn angle style must be defined before any angle coefficients are\nset, either in the input script or in a data file.\n", - "related": "[angle_style ](https://docs.lammps.org/angle_style.html)\n" + "parameters": "cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style line/lj 3.0\npair_coeff * * 1.0 1.0 1.0 0.8 1.12\npair_coeff 1 2 1.0 2.0 1.0 1.5 1.12 5.0\npair_coeff 1 2 1.0 0.0 1.0 1.0 2.5\n```\n", + "html_filename": "pair_line_lj.html", + "short_description": "Style *line/lj* treats particles which are line segments as a set of\nsmall spherical particles that tile the line segment length as explained\nbelow", + "description": "Style *line/lj* treats particles which are line segments as a set of\nsmall spherical particles that tile the line segment length as explained\nbelow. Interactions between two line segments, each with N1 and N2\nspherical particles, are calculated as the pairwise sum of N1\\*N2\nLennard-Jones interactions. Interactions between a line segment with N\nspherical particles and a point particle are treated as the pairwise sum\nof N Lennard-Jones interactions. See the [pair_style lj/cut](https://docs.lammps.org/pair_lj.html) page for the definition of Lennard-Jones interactions.\n\nThe set of non-overlapping spherical sub-particles that represent a\nline segment are generated in the following manner. Their size is a\nfunction of the line segment length and the specified sub-particle\nsize for that particle type. If a line segment has a length L and is\nof type I, then the number of spheres N that represent the segment is\ncalculated as N = L/sizeI, rounded up to an integer value. Thus if L\nis not evenly divisible by sizeI, N is incremented to include one\nextra sphere. The centers of the spheres are spaced equally along the\nline segment. Imagine N+1 equally-space points, which include the 2\nend points of the segment. The sphere centers are halfway between\neach pair of points.\n\nThe LJ interaction between 2 spheres on different line segments (or a\nsphere on a line segment and a point particles) is computed with\nsub-particle \\(\\epsilon\\), \\(\\sigma\\), and *cutoff* values that\nare set by the pair_coeff command, as described below. If the distance\nbetween the 2 spheres is greater than the sub-particle cutoff, there is\nno interaction. This means that some pairs of sub-particles on 2 line\nsegments may interact, but others may not.\n\nFor purposes of creating the neighbor list for pairs of interacting\nline segments or lines/point particles, a regular particle-particle\ncutoff is used, as defined by the *cutoff* setting above in the\npair_style command or overridden with an optional argument in the\npair_coeff command for a type pair as discussed below. The distance\nbetween the centers of 2 line segments, or the center of a line\nsegment and a point particle, must be less than this distance (plus\nthe neighbor skin; see the [neighbor ](https://docs.lammps.org/neighbor.html) command), for\nthe pair of particles to be included in the neighbor list.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This means that a too-short value for the *cutoff* setting can\n > exclude a pair of particles from the neighbor list even if pairs of\n > their sub-particle spheres would interact, based on the sub-particle\n > cutoff specified in the pair_coeff command. E.g. sub-particles at the\n > ends of the line segments that are close to each other. Which may not\n > be what you want, since it means the ends of 2 line segments could\n > pass through each other. It is up to you to specify a *cutoff*\n > setting that is consistent with the length of the line segments you\n > are using and the sub-particle cutoff settings. \n > \n\nFor style *line/lj*, the following coefficients must be defined for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* sizeI (distance units)\n* sizeJ (distance units)\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* subcutoff (distance units)\n* cutoff (distance units)\n\nThe *sizeI* and *sizeJ* coefficients are the sub-particle sizes for\nline particles of type I and type J. They are used to define the N\nsub-particles per segment as described above. These coefficients are\nactually stored on a per-type basis. Thus if there are multiple\npair_coeff commands that involve type I, as either the first or\nsecond atom type, you should use consistent values for sizeI or sizeJ\nin all of them. If you do not do this, the last value specified for\nsizeI will apply to all segments of type I. If typeI or typeJ refers\nto point particles, the corresponding sizeI or sizeJ is ignored; it\ncan be set to 0.0.\n\nThe \\(\\epsilon\\), \\(\\sigma\\), and *subcutoff* coefficients are\nused to compute an LJ interactions between a pair of sub-particles on 2\nline segments (of type I and J), or between a sub particle/point\nparticle pair. As discussed above, the *subcutoff* and *cutoff* params\nare different. The latter is only used for building the neighbor list\nwhen the distance between centers of two line segments or one segment\nand a point particle is calculated.\n\nThe *cutoff* coefficient is optional. If not specified, the global\ncutoff is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, coefficients must be specified.\nNo default mixing rules are used.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This style is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be line segments so they participate in\nline/line or line/particle interactions requires the use the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style tri/lj ](https://docs.lammps.org/pair_tri_lj.html)\n" }, { "command": [ - "fix ave/correlate" + "pair_style gauss", + "pair_style gauss/gpu", + "pair_style gauss/omp", + "pair_style gauss/cut", + "pair_style gauss/cut/omp" ], "syntax": [ - "fix ID group-ID ave/correlate Nevery Nrepeat Nfreq value1 value2 ... keyword args ..." + "pair_style gauss cutoff", + "pair_style gauss/cut cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "gauss", + "type": 3, + "choices": [ + "gauss", + "gauss/gpu", + "gauss/omp" + ] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "ave/correlate", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "Nrepeat", - "type": 2, - "choices": [] - }, - { - "arg": "Nfreq", + "arg": "gauss/cut", "type": 2, "choices": [] }, { - "arg": "value1", + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* cutoff = global cutoff for Gauss interactions (distance units) \n", + "examples": "\n```lmps\npair_style gauss 12.0\npair_coeff * * 1.0 0.9\npair_coeff 1 4 1.0 0.9 10.0\n\npair_style gauss/cut 3.5\npair_coeff 1 4 0.2805 1.45 0.112\n```\n", + "html_filename": "pair_gauss.html", + "short_description": "Style *gauss* computes a tethering potential of the form\n\\[\n E = - A \\exp(-B r^2) \\qquad r < r_c\\]\nbetween an atom and its corresponding tether site which will typically\nbe a frozen atom in the simulation", + "description": "Style *gauss* computes a tethering potential of the form\n\\[\n E = - A \\exp(-B r^2) \\qquad r < r_c\\]\nbetween an atom and its corresponding tether site which will typically\nbe a frozen atom in the simulation. \\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* B (1/distance\\^2 units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\nStyle *gauss/cut* computes a generalized Gaussian interaction potential\nbetween pairs of particles:\n\\[\n E = \\frac{H}{\\sigma_h\\sqrt{2\\pi}} \\exp\\left[-\\frac{(r-r_{mh})^2}{2\\sigma_h^2}\\right]\\]\nwhere H determines together with the standard deviation \\(\\sigma_h\\)\nthe peak height of the Gaussian function, and \\(r_{mh}\\) the peak\nposition. Examples of the use of the Gaussian potentials include\nimplicit solvent simulations of salt ions **Lenart2** and\nof surfactants **Jusufi2**. In these instances the\nGaussian potential mimics the hydration barrier between a pair of\nparticles. The hydration barrier is located at \\(r_{mh}\\) and has a\nwidth of \\(\\sigma_h\\). The prefactor determines the height of the\npotential barrier.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* H (energy \\* distance units)\n* \\(r_{mh}\\) (distance units)\n* \\(\\sigma_h\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A, B, H, sigma_h, r_mh\nparameters, and the cutoff distance for these pair styles can be mixed:\n\n* A (energy units)\n* \\(\\sqrt{\\frac{1}{B}}\\) (distance units, see below)\n* H (energy units)\n* \\(r_{mh}\\) (distance units)\n* \\(\\sigma_h\\) (distance units)\n* cutoff (distance units)\n\nThe default mix value is *geometric* .\nOnly *arithmetic* and *geometric* mix values are supported.\nSee the \"pair_modify\" command for details.\n\nThe A and H parameters are mixed using the same rules normally\nused to mix the \"epsilon\" parameter in a Lennard Jones interaction.\nThe sigma_h, r_mh, and the cutoff distance are mixed using the same\nrules used to mix the \"sigma\" parameter in a Lennard Jones interaction.\nThe B parameter is converted to a distance (sigma), before mixing\n(using sigma=B\\^-0.5), and converted back to a coefficient\nafterwards (using B=sigma\\^2).\nNegative A values are converted to positive A values (using abs(A))\nbefore mixing, and converted back after mixing\n(by multiplying by min(sign(Ai),sign(Aj))).\nThis way, if either particle is repulsive (if Ai<0 or Aj<0),\nthen the default interaction between both particles will be repulsive.\n\nFor the *gauss* style there is no effect due to the Gaussian well\nbeyond the cutoff; hence reasonable cutoffs need to be specified.\n\nThe *gauss/cut* style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Gauss-potential portion of the pair\ninteraction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for these pair styles.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe *gauss* pair style tallies an \"occupancy\" count of how many\nGaussian-well sites have an atom within the distance at which the force\nis a maximum = sqrt(0.5/b). This quantity can be accessed via the\n[compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of\nlength 1.\n\nTo print this quantity to the log file (with a descriptive column\nheading) the following commands could be included in an input script:\n\n```lmps\ncompute gauss all pair gauss\nvariable occ equal c_gauss[1]\nthermo_style custom step temp epair v_occ\n```\n----------\n\n**(Lenart2)** Lenart , Jusufi, and Panagiotopoulos, J Chem Phys, 126,\n044509 (2007). \n \n**(Jusufi2)** Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,\n13783 (2008). \n ", + "restrictions": "The *gauss* and *gauss/cut* styles are part of the EXTRA-PAIR package.\nThey are only enabled if LAMMPS is build with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nPrior to this version, the *gauss* pair style did not apply\n[special_bonds ](https://docs.lammps.org/special_bonds.html) factors.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style coul/diel ](https://docs.lammps.org/pair_coul_diel.html)\n" +}, +{ + "command": [ + "pair_style nb3b/harmonic" + ], + "syntax": [ + "pair_style style" + ], + "args": [ + [ { - "arg": "value2", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "title3", + "arg": "nb3b/screened", "type": 3, "choices": [ - "type", - "ave", - "start", - "prefactor", - "file", - "overwrite", - "title1", - "title2", - "title3" + "nb3b/harmonic", + "nb3b/screened" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/correlate = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of correlation time windows to accumulate\n* Nfreq = calculate time window averages every this many timesteps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = type or ave or start or prefactor or file or overwrite or title1 or title2 or title3 \n *        type arg = auto or upper or lower or auto/upper or auto/lower or full \n         auto = correlate each value with itself \n         upper = correlate each value with each succeeding value \n         lower = correlate each value with each preceding value \n         auto/upper = auto + upper \n         auto/lower = auto + lower \n         full = correlate each value with every other value, including itself = auto + upper + lower \n *        ave args = one or running \n         one = zero the correlation accumulation every Nfreq steps \n         running = accumulate correlations continuously \n *        start args = Nstart \n         Nstart = start accumulating correlations on this timestep \n *        prefactor args = value \n         value = prefactor to scale all the correlation data by \n *        file arg = filename \n         filename = name of file to output correlation data to \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file \n", - "examples": "\n```lmps\nfix 1 all ave/correlate 5 100 1000 c_myTemp file temp.correlate\nfix 1 all ave/correlate 1 50 10000 &\nc_thermo_press[1] c_thermo_press[2] c_thermo_press[3] &\ntype upper ave running title1 \"My correlation data\"\nfix 1 all ave/correlate 1 50 10000 c_thermo_press[*]\n```\n", - "html_filename": "fix_ave_correlate.html", - "short_description": "Use one or more global scalar values as inputs every few timesteps,\ncalculate time correlations between them at varying time intervals,\nand average the correlation data over longer timescales", - "description": "Use one or more global scalar values as inputs every few timesteps,\ncalculate time correlations between them at varying time intervals,\nand average the correlation data over longer timescales. The resulting\ncorrelation values can be time integrated by\n[variables ](https://docs.lammps.org/variable.html) or used by other\n[output commands ](https://docs.lammps.org/Howto_output.html) such as\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html), and can also be written to a file.\nSee the [fix ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html) command for an\nalternate method for computing correlation functions efficiently over\nvery long time windows.\n\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity. If\nyou wish to spatial- or time-average or histogram per-atom quantities\nfrom a compute, fix, or variable, then see the\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), or\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) commands. If you wish to convert a\nper-atom quantity into a single global value, see the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe input values must be all scalars. What kinds of\ncorrelations between input values are calculated is determined by the\n*type* keyword as discussed below.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce global quantities are those which\ndo not have the word *atom* in their style name. Only a few\n[fixes ](https://docs.lammps.org/fix.html) produce global quantities. See the doc pages for\nindividual fixes for info on which ones produce such values.\n[Variables ](https://docs.lammps.org/variable.html) of style *equal* and *vector* are the only\nones that can be used with this fix. Variables of style *atom* cannot\nbe used, since they produce per-atom values.\n\n----------\n\nFor input values from a compute or fix or variable , the bracketed\nindex I can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector, then an\nasterisk with no numeric values means all indices from 1 to \\(N\\). A\nleading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive).\nA middle asterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector had been listed one by one. For example, the following two fix\nave/correlate commands are equivalent, since the [compute pressure](https://docs.lammps.org/compute_pressure.html) command creates a global vector with six values:\n\n```lmps\ncompute myPress all pressure NULL\nfix 1 all ave/correlate 1 50 10000 c_myPress[*]\nfix 1 all ave/correlate 1 50 10000 &\nc_myPress[1] c_myPress[2] c_myPress[3] &\nc_myPress[4] c_myPress[5] c_myPress[6]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what timesteps the input values will be used to calculate\ncorrelation data. The input values are sampled every \\(N_\\text{every}\\)\ntime steps. The correlation data for the preceding samples is computed on\ntime steps that are a multiple of \\(N_\\text{freq}\\)\\ . Consider a set of\nsamples from some initial time up to an output timestep. The initial time\ncould be the beginning of the simulation or the last output time; see the *ave*\nkeyword for options. For the set of samples, the correlation value\n\\(C_{ij}\\) is calculated as:\n\\[\n C_{ij}(\\Delta t) = \\left\\langle V_i(t) V_j(t+\\Delta t)\\right\\rangle,\\]\nwhich is the correlation value between input values \\(V_i\\) and\n\\(V_j\\), separated by time \\(\\Delta t\\). Note that the second value\n\\(V_j\\) in the pair is always the one sampled at the later time. The\naverage is an average over every pair of samples in the set that are separated\nby time \\(\\Delta t\\). The maximum \\(\\Delta t\\) used is of size\n\\((N_\\text{repeat} - 1) N_\\text{every}\\)\\ .\nThus the correlation between a pair of input values yields\n\\(N_\\text{repeat}\\) correlation data:\n\\[\n C_{ij}(0), C_{ij}(N_\\text{every}), C_{ij}(2N_\\text{every}), \\dotsc,\n C_{ij}\\bigl((N_\\text{repeat}-1) N_\\text{every}\\bigr)\\]\nFor example, if \\(N_\\text{every}=5\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on time steps\n\\(0, 5, 10, 15,\\dotsc,100\\) will be used to compute the final averages\non time step 100. Six averages will be computed: \\(C_{ij}(0)\\),\n\\(C_{ij}(5)\\), \\(C_{ij}(10)\\), \\(C_{ij}(15)\\), \\(C_{ij}(20)\\),\nand \\(C_{ij}(25)\\). \\(C_{ij}(10)\\) on time step 100 will\nbe the average of 19 samples, namely \\(V_i(0) V_j(10)\\),\n\\(V_i(5) V_j(15)\\), \\(V_i(10) V_j(20)\\),\n\\(V_i(15) V_j(25), \\dotsc,\\)\n\\(V_i(85) V_j(95)\\), and \\(V_i(90) V_j(100)\\).\n\n\\(N_\\text{freq}\\) must be a multiple of \\(N_\\text{every}\\);\n\\(N_\\text{every}\\) and \\(N_\\text{repeat}\\) must be non-zero.\nAlso, if the *ave* keyword is set to *one* which is the default, then\n\\(N_\\text{freq} \\ge (N_\\text{repeat} -1) N_\\text{every}\\) is required.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the compute is used. If a\nbracketed term is appended, the \\(I^\\text{th}\\) element of the global\nvector calculated by the compute is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector which\ncan then be accessed by fix ave/correlate. It can also be a compute defined\nnot in your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the fix is used. If a\nbracketed term is appended, the \\(I^\\text{th}\\) element of the global\nvector calculated by the fix is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with \\(N_\\text{every}\\), else an error will\nresult. Users can also write code for their own fix styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has been\npreviously defined in the input script. Only equal-style or vector-style\nvariables can be referenced; the latter requires a bracketed term to specify\nthe \\(I^\\text{th}\\) element of the vector calculated by the variable.\nSee the [variable ](https://docs.lammps.org/variable.html) command for details. Note that variables of\nstyle *equal* or *vector* define a formula which can reference individual atom\nproperties or thermodynamic keywords, or they can invoke other computes, fixes,\nor variables when they are evaluated, so this is a very general means of\nspecifying quantities to time correlate.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nThe *type* keyword determines which pairs of input values are\ncorrelated with each other. For \\(N\\) input values \\(V_i\\),\nwith \\(i \\in \\{1,\\dotsc,N\\}\\), let the number of pairs be\n\\(N_\\text{pair}\\). Note that the second value in the\npair, \\(V_i(t) V_j(t+\\Delta t)\\), is always the one sampled at the later\ntime.\n\n* If *type* is set to *auto* then each input value is correlated with\n itself (i.e., \\(C_{ii} = V_i^2\\) for \\(i \\in \\{1,\\dotsc,N\\}\\),\n so \\(N_\\text{pair} = N\\)).\n* If *type* is set to *upper* then each input value is correlated with every\n succeeding value (i.e., \\(C_{ij} = V_i V_j\\) for \\(i < j\\), so\n \\(N_\\text{pair} = N (N-1)/2\\)).\n* If *type* is set to *lower* then each input value is correlated with every\n preceding value (i.e., \\(C_{ij} = V_i V_j\\) for \\(i > j\\), so\n \\(N_\\text{pair} = N(N-1)/2\\)).\n* If *type* is set to *auto/upper* then each input value is correlated\n with itself and every succeeding value (i.e., \\(C_{ij} = V_i V_j\\)\n for \\(i \\ge j\\), so \\(N_\\text{pair} = N(N+1)/2\\)).\n* If *type* is set to *auto/lower* then each input value is correlated\n with itself and every preceding value (i.e., \\(C_{ij} = V_i V_j\\)\n for \\(i \\le j\\), so \\(N_\\text{pair} = N(N+1)/2\\)).\n* If *type* is set to *full* then each input value is correlated with\n itself and every other value (i.e., \\(C_{ij} = V_i V_j\\) for\n \\(\\{i,j\\} = \\{1,N\\}\\), so \\(N_\\text{pair} = N^2\\)).\n\nThe *ave* keyword determines what happens to the accumulation of correlation\nsamples every \\(N_\\text{freq}\\) timesteps. If the *ave* setting is *one*,\nthen the accumulation is restarted or zeroed every \\(N_\\text{freq}\\)\ntimesteps. Thus the outputs on successive \\(N_\\text{freq}\\) timesteps are\nessentially independent of each other. The exception is that the\n\\(C_{ij}(0) = V_i(t) V_j(t)\\) value at a time step \\(t,\\) where\n\\(t\\) is a multiple of \\(N_\\text{freq}\\), contributes to the\ncorrelation output both at time \\(t\\) and at time \\(t+N_\\text{freq}\\).\n\nIf the *ave* setting is *running*, then the accumulation is never zeroed.\nThus the output of correlation data at any timestep is the average over samples\naccumulated every \\(N_\\text{every}\\) steps since the fix was defined.\nIt can only be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nThe *start* keyword specifies what time step the accumulation of\ncorrelation samples will begin on. The default is step 0. Setting it\nto a larger value can avoid adding non-equilibrated data to the\ncorrelation averages.\n\nThe *prefactor* keyword specifies a constant which will be used as a multiplier\non the correlation data after it is averaged. It is effectively a scale factor\non \\(V_i V_j\\), which can be used to account for the size of the time\nwindow or other unit conversions.\n\nThe *file* keyword allows a filename to be specified. Every\n\\(N_\\text{freq}\\) steps, an array of correlation data is written to the\nfile. The number of rows is \\(N_\\text{repeat}\\), as described above.\nThe number of columns is \\(N_\\text{pair}+2\\), also as described above.\nThus the file ends up to be a series of these array sections.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *title1*, *title2*, and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output file,\nassuming the *file* keyword was used. LAMMPS uses default values for each of\nthese, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Time-correlated data for fix ID\n# TimeStep Number-of-time-windows\n# Index TimeDelta Ncount valueI\\*valueJ valueI\\*valueJ ...\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the two values that are printed at the first of each section\nof output. In the third line the value pairs are replaced with the\nappropriate fields from the fix ave/correlate command.\n\n----------\n\nLet \\(S_{ij}\\) be a set of time correlation data for input values\n\\(I\\) and \\(J\\), namely the \\(N_\\text{repeat}\\) values:\n\\[\n S_{ij} = C_{ij}(0), C_{ij}(N_\\text{every}), C_{ij}(2N_\\text{every}),\n \\dotsc, C_{ijI}\\bigl((N_\\text{repeat}-1) N_\\text{every}\\bigr)\\]\nAs explained below, these data are output as one column of a global\narray, which is effectively the correlation matrix.\n\nThe *trap* function defined for [equal-style variables ](https://docs.lammps.org/variable.html)\ncan be used to perform a time integration of this vector of data,\nusing a trapezoidal rule. This is useful for calculating various\nquantities which can be derived from time correlation data. If a\nnormalization factor is needed for the time integration, it can be\nincluded in the variable formula or via the *prefactor* keyword.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The values can only be\naccessed on timesteps that are multiples of \\(N_\\text{freq}\\) since that is\nwhen averaging is performed. The global array has # of rows\n\\(N_\\text{repeat}\\) and # of columns \\(N_\\text{pair}+2\\). The first\ncolumn has the time \\(\\Delta t\\) (in time steps) between the pairs of input\nvalues used to calculate the correlation, as described above. The second\ncolumn has the number of samples contributing to the correlation average, as\ndescribed above. The remaining Npair columns are for \\(I,J\\) pairs of the\n\\(N\\) input values, as determined by the *type* keyword, as described\nabove.\n\n* For *type* = *auto*, the \\(N_\\text{pair} = N\\) columns are ordered:\n \\(C_{11}, C_{22}, \\dotsc, C_{NN}\\)\n* For *type* = *upper*, the \\(N_\\text{pair} = N(N-1)/2\\) columns are\n ordered: \\(C_{12}, C_{13}, \\dotsc, C_{1N}, C_{23}, \\dotsc, C_{2N},\n C_{34}, \\dotsc, C_{N-1,N}\\)\n* For *type* = *lower*, the \\(N_\\text{pair} = N(N-1)/2\\) columns are\n ordered: \\(C_{21}, C_{31}, C_{32}, C_{41}, C_{42}, C_{43I}, \\dotsc,\n C_{N1}, C_{N2}, \\dotsc, C_{N,N-1}\\)\n* For *type* = *auto/upper*, the \\(N_\\text{pair} = N(N+1)/2\\) columns are\n ordered: \\(C_{11}, C_{12}, C_{13}, \\dotsc, C_{1N}, C_{22}, C_{23},\n \\dotsc, C_{2N}, C_{33}, C_{34}, \\dotsc, C_{N-1,N}, C_{NN}\\)\n* For *type* = *auto/lower*, the \\(N_\\text{pair} = N(N+1)/2\\) columns are\n ordered: \\(C_{11}, C_{21}, C_{22}, C_{31}, C_{32}, C_{33}, C_{41},\n \\dotsc, C_{44}, C_{N1}, C_{N2}, \\dotsc, C_{N,N-1}, C_{NN}\\)\n* For *type* = *full*, the \\(N_\\text{pair} = N^2\\) columns are ordered:\n \\(C_{11}, C_{12}, \\dotsc, C_{1N}, C_{21}, C_{22}, \\dotsc, C_{2N},\n C_{31}, \\dotsc, C_{3N}, \\dotsc, C_{N1}, \\dotsc, C_{N,N-1}, C_{NN}\\)\n\nThe array values calculated by this fix are treated as extensive. If\nyou need to divide them by the number of atoms, you must do this in a\nlater processing step (e.g., when using them in a [variable ](https://docs.lammps.org/variable.html)).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[fix ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html),\n[compute ](https://docs.lammps.org/compute.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html), [variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* style = nb3b/harmonic or nb3b/screened \n", + "examples": "\n```lmps\npair_style nb3b/harmonic\npair_coeff * * MgOH.nb3bharmonic Mg O H\n\npair_style nb3b/screened\npair_coeff * * PO.nb3b.screened P NULL O\npair_coeff * * SiOH.nb3b.screened Si O H\n```\n", + "html_filename": "pair_nb3b.html", + "short_description": "The pair style *nb3b/harmonic* computes a non-bonded 3-body harmonic potential for the\nenergy E of a system of atoms as\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and *K* is a\nprefactor", + "description": "The pair style *nb3b/harmonic* computes a non-bonded 3-body harmonic potential for the\nenergy E of a system of atoms as\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and *K* is a\nprefactor. Note that the usual 1/2 factor is included in *K* . The form\nof the potential is identical to that used in angle_style *harmonic*,\nbut in this case, the atoms do not need to be explicitly bonded.\n\nStyle *nb3b/screened* adds an additional exponentially decaying factor to\nthe harmonic term, given by\n\\[\n E = K (\\theta - \\theta_0)^2 \\exp \\left(- \\frac{r_{ij}}{\\rho_{ij}} - \\frac{r_{ik}}{\\rho_{ik}} \\right)\\]\nwhere \\(\\rho_ij\\) and \\(\\rho_ik\\) are the screening factors along\nthe two bonds. Note that the usual 1/2 factor is included in *K*.\n\nOnly a single pair_coeff command is used with these styles which\nspecifies a potential file with parameters for specified elements.\nThese are mapped to LAMMPS atom types by specifying N additional\narguments after the filename in the pair_coeff command, where N is the\nnumber of LAMMPS atom types:\n\n* filename\n* N element names = mapping of elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.nb3b.harmonic has potential values\nfor Si and C. If your LAMMPS simulation has 4 atoms types and you\nwant the first 3 to be Si, and the fourth to be C, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * SiC.nb3b.harmonic Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the potential file. The final C argument maps LAMMPS atom\ntype 4 to the C element in the potential file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen the potential is used as part of the *hybrid* pair style. The\nNULL values are placeholders for atom types that will be used with\nother potentials. Two examples of pair_coeff command for use with the\n*hybrid* pair style are:\n\n```lmps\npair_coeff * * nb3b/harmonic MgOH.nb3b.harmonic Mg O H\n```\nThree-body non-bonded harmonic files in the *potentials* directory of\nthe LAMMPS distribution have a \".nb3b.harmonic\" suffix. Lines that\nare not blank or comments (starting with #) define parameters for a\ntriplet of elements.\n\nEach entry has six arguments. The first three are atom types as\nreferenced in the LAMMPS input file. The first argument specifies the\ncentral atom. The fourth argument indicates the *K* parameter. The\nfifth argument indicates \\(\\theta_0\\). The sixth argument indicates a\nseparation cutoff in Angstroms.\n\nFor a given entry, if the second and third arguments are identical,\nthen the entry is for a cutoff for the distance between types 1 and 2\n(values for *K* and \\(\\theta_0\\) are irrelevant in this case).\n\nFor a given entry, if the first three arguments are all different, then\nthe entry is for the *K* and \\(\\theta_0\\) parameters (the cutoff in\nthis case is irrelevant).\n\nIt is required that the potential file contains entries for *all*\npermutations of the elements listed in the pair_coeff command.\nIf certain combinations are not parameterized the corresponding\nparameters should be set to zero. The potential file can also\ncontain entries for additional elements which are not used in\na particular simulation; LAMMPS ignores those entries.\n\n----------\n", + "restrictions": "This pair style can only be used if LAMMPS was built with the MANYBODY\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix viscous/sphere" + "fix rigid", + "fix rigid/omp", + "fix rigid/nve", + "fix rigid/nve/omp", + "fix rigid/nvt", + "fix rigid/nvt/omp", + "fix rigid/npt", + "fix rigid/npt/omp", + "fix rigid/nph", + "fix rigid/nph/omp", + "fix rigid/small", + "fix rigid/small/omp", + "fix rigid/nve/small", + "fix rigid/nvt/small", + "fix rigid/npt/small" ], "syntax": [ - "fix ID group-ID viscous/sphere gamma keyword values ..." + "fix ID group-ID style bodystyle args keyword values ..." ], "args": [ [ @@ -7111,20 +6766,63 @@ export const command_docs = [ "choices": [] }, { - "arg": "viscous/sphere", - "type": 1, - "choices": [] + "arg": "rigid/small/omp", + "type": 3, + "choices": [ + "rigid", + "rigid/nve", + "rigid/nvt", + "rigid/npt", + "rigid/nph", + "rigid/small", + "rigid/nve/small", + "rigid/nvt/small", + "rigid/npt/small", + "rigid/nph/small", + "rigid/omp", + "rigid/nve/omp", + "rigid/nvt/omp", + "rigid/npt/omp", + "rigid/nph/omp", + "rigid/small/omp" + ] }, { - "arg": "gamma", - "type": 2, - "choices": [] + "arg": "group", + "type": 3, + "choices": [ + "single", + "molecule", + "group" + ] }, { - "arg": "keyword", + "arg": "args", "type": 2, "choices": [] }, + { + "arg": "gravity", + "type": 3, + "choices": [ + "langevin", + "reinit", + "mol", + "iso", + "aniso", + "x", + "y", + "z", + "couple", + "tparam", + "pchain", + "dilate", + "force", + "torque", + "infile", + "gravity" + ] + }, { "arg": "values", "type": 2, @@ -7132,71 +6830,106 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* viscous/sphere = style name of this fix command\n* gamma = damping coefficient (torque/angular velocity units)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale \n       scale values = *type ratio* or v_name \n       type = atom type (1-N) \n       ratio = factor to scale the damping coefficients by \n       v_name = reference to atom style variable name \n", - "examples": "\n```lmps\nfix 1 flow viscous/sphere 0.1\nfix 1 damp viscous/sphere 0.5 scale 3 2.5\nfix 1 damp viscous/sphere 0.5 scale v_radscale\n```\n", - "html_filename": "fix_viscous_sphere.html", - "short_description": "Add a viscous damping torque to finite-size spherical particles in the group\nthat is proportional to the angular velocity of the atom", - "description": "Add a viscous damping torque to finite-size spherical particles in the group\nthat is proportional to the angular velocity of the atom. In granular\nsimulations this can be useful for draining the rotational kinetic energy from\nthe system in a controlled fashion. If used without additional thermostatting\n(to add kinetic energy to the system), it has the effect of slowly (or rapidly)\nfreezing the system; hence it can also be used as a simple energy minimization\ntechnique.\n\nThe damping torque \\(T_i\\) is given by \\(T_i = - \\gamma \\omega_i\\).\nThe larger the coefficient, the faster the rotational kinetic energy is reduced.\n\nIf the optional keyword *scale* is used, \\(\\gamma\\) can be scaled up\nor down by the specified factor for atoms. This factor can be set for\ndifferent atom types and thus the *scale* keyword used multiple times\nfollowed by the atom type and the associated scale factor. Alternately\nthe scaling factor can be computed for each atom (e.g. based on its\nradius) by using an [atom-style variable ](https://docs.lammps.org/variable.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should specify gamma in torque/angular velocity units. This is not\n > the same as mass/time units, at least for some of the LAMMPS\n > [units ](https://docs.lammps.org/units.html) options like \"real\" or \"metal\" that are not\n > self-consistent. \n > \n\nIn the current implementation, rather than have the user specify a viscosity,\n\\(\\gamma\\) is specified directly in torque/angular velocity units.\nIf needed, \\(\\gamma\\) can be adjusted for atoms of different sizes\n(i.e. \\(\\sigma\\)) by using the *scale* keyword.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying torques. Default is the outermost level.\n\nThe torques due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n", - "related": "[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = rigid or rigid/nve or rigid/nvt or rigid/npt or rigid/nph or rigid/small or rigid/nve/small or rigid/nvt/small or rigid/npt/small or rigid/nph/small\n* bodystyle = single or molecule or group \n *        single args = none \n *        molecule args = none \n *        *custom* args = i_propname or v_varname \n         i_propname = a custom integer vector defined via fix property/atom \n         v_varname = an atom-style or atomfile-style variable \n *        group args = N groupID1 groupID2 ... \n         N = # of groups \n         groupID1, groupID2, ... = list of N group IDs \n* zero or more keyword/value pairs may be appended\n* keyword = langevin or reinit or temp or mol or iso or aniso or x or y or z or couple or tparam or pchain or dilate or force or torque or infile or gravity \n *        langevin values = Tstart Tstop Tperiod seed \n         Tstart,Tstop = desired temperature at start/stop of run (temperature units) \n         Tdamp = temperature damping parameter (time units) \n         seed = random number seed to use for white noise (positive integer) \n *        reinit value = yes or no \n *        temp values = Tstart Tstop Tdamp \n         Tstart,Tstop = desired temperature at start/stop of run (temperature units) \n         Tdamp = temperature damping parameter (time units) \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        iso or aniso values = Pstart Pstop Pdamp \n         Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n         Pdamp = pressure damping parameter (time units) \n *        x or y or z values = Pstart Pstop Pdamp \n         Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n         Pdamp = stress damping parameter (time units) \n *        couple value = none or xyz or xy or yz or xz \n *        tparam values = Tchain Titer Torder \n         Tchain = length of Nose/Hoover thermostat chain \n         Titer = number of thermostat iterations performed \n         Torder = 3 or 5 = Yoshida-Suzuki integration parameters \n *        pchain values = Pchain \n         Pchain = length of the Nose/Hoover thermostat chain coupled with the barostat \n *        dilate value = dilate-group-ID \n         dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n *        force values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass force is active \n *        torque values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass torque is active \n *        infile filename \n         filename = file with per-body values of mass, center-of-mass, moments of inertia \n *        gravity values = gravity-ID \n         gravity-ID = ID of fix gravity command to add gravitational forces \n..\n FIXME These don't seem to be included in the source code\n mol value = template-ID\n template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n", + "examples": "\n```lmps\nfix 1 clump rigid single reinit yes\nfix 1 clump rigid/small molecule\nfix 1 clump rigid single force 1 off off on langevin 1.0 1.0 1.0 428984\nfix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0 reinit no\nfix 1 polychains rigid molecule force 1*5 off off off force 6*10 off off on\nfix 1 polychains rigid/small molecule langevin 1.0 1.0 1.0 428984\nfix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off\nfix 1 rods rigid/npt molecule temp 300.0 300.0 100.0 iso 0.5 0.5 10.0\nfix 1 particles rigid/npt molecule temp 1.0 1.0 5.0 x 0.5 0.5 1.0 z 0.5 0.5 1.0 couple xz\nfix 1 water rigid/nph molecule iso 0.5 0.5 1.0\nfix 1 particles rigid/npt/small molecule temp 1.0 1.0 1.0 iso 0.5 0.5 1.0\n\nvariable bodyid atom 1.0*gmask(clump1)+2.0*gmask(clump2)+3.0*gmask(clump3)\nfix 1 clump rigid custom v_bodyid\n\nvariable bodyid atomfile bodies.txt\nfix 1 clump rigid custom v_bodyid\n\nfix 0 all property/atom i_bodyid\nread_restart data.rigid fix 0 NULL Bodies\nfix 1 clump rigid/small custom i_bodyid\n```\n", + "html_filename": "fix_rigid.html", + "short_description": "Treat one or more sets of atoms as independent rigid bodies", + "description": "Treat one or more sets of atoms as independent rigid bodies. This\nmeans that each timestep the total force and torque on each rigid body\nis computed as the sum of the forces and torques on its constituent\nparticles. The coordinates, velocities, and orientations of the atoms\nin each body are then updated so that the body moves and rotates as a\nsingle entity. This is implemented by creating internal data structures\nfor each rigid body and performing time integration on these data\nstructures. Positions, velocities, and orientations of the constituent\nparticles are regenerated from the rigid body data structures in every\ntime step. This restricts which operations and fixes can be applied to\nrigid bodies. See below for a detailed discussion.\n\nExamples of large rigid bodies are a colloidal particle, or portions\nof a biomolecule such as a protein.\n\nExample of small rigid bodies are patchy nanoparticles, such as those\nmodeled in **Zhang1** by Sharon Glotzer's group,\nclumps of granular particles, lipid molecules consisting of one or\nmore point dipoles connected to other spheroids or ellipsoids,\nirregular particles built from line segments (2d) or triangles (3d),\nand coarse-grain models of nano or colloidal particles consisting of a\nsmall number of constituent particles. Note that the [fix shake](https://docs.lammps.org/fix_shake.html) command can also be used to rigidify small molecules of\n2, 3, or 4 atoms, e.g. water molecules. That fix treats the\nconstituent atoms as point masses.\n\nThese fixes also update the positions and velocities of the atoms in\neach rigid body via time integration, in the NVE, NVT, NPT, or NPH\nensemble, as described below.\n\nThere are two main variants of this fix, fix rigid and fix\nrigid/small. The NVE/NVT/NPT/NHT versions belong to one of the two\nvariants, as their style names indicate.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all of the *bodystyle* options and keyword/value options are\n > available for both the *rigid* and *rigid/small* variants. See\n > details below. \n > \n\nThe *rigid* styles are typically the best choice for a system with a\nsmall number of large rigid bodies, each of which can extend across\nthe domain of many processors. It operates by creating a single\nglobal list of rigid bodies, which all processors contribute to.\nMPI_Allreduce operations are performed each timestep to sum the\ncontributions from each processor to the force and torque on all the\nbodies. This operation will not scale well in parallel if large\nnumbers of rigid bodies are simulated.\n\nThe *rigid/small* styles are typically best for a system with a large\nnumber of small rigid bodies. Each body is assigned to the atom\nclosest to the geometrical center of the body. The fix operates using\nlocal lists of rigid bodies owned by each processor and information is\nexchanged and summed via local communication between neighboring\nprocessors when ghost atom info is accumulated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To use the *rigid/small* styles the ghost atom cutoff must be large\n > enough to span the distance between the atom that owns the body and\n > every other atom in the body. This distance value is printed out\n > when the rigid bodies are defined. If the [pair_style > ](https://docs.lammps.org/pair_style.html) cutoff plus neighbor skin does not span this\n > distance, then you should use the [comm_modify cutoff > ](https://docs.lammps.org/comm_modify.html) command with a setting epsilon larger than the\n > distance. \n > \n\nWhich of the two variants is faster for a particular problem is hard\nto predict. The best way to decide is to perform a short test run.\nBoth variants should give identical numerical answers for short runs.\nLong runs should give statistically similar results, but round-off\ndifferences may accumulate to produce divergent trajectories.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not update the atoms in rigid bodies via other\n > time-integration fixes (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html), [fix > nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix move > ](https://docs.lammps.org/fix_move.html)), or you will have conflicting updates to positions and\n > velocities resulting in unphysical behavior in most cases. When\n > performing a hybrid simulation with some atoms in rigid bodies, and\n > some not, a separate time integration fix like [fix nve > ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) should be used for the\n > non-rigid particles. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes are overkill if you simply want to hold a collection of\n > atoms stationary or have them move with a constant velocity. A\n > simpler way to hold atoms stationary is to not include those atoms\n > in your time integration fix. E.g. use \"fix 1 mobile nve\" instead\n > of \"fix 1 all nve\", where \"mobile\" is the group of atoms that you\n > want to move. You can move atoms with a constant velocity by\n > assigning them an initial velocity (via the [velocity > ](https://docs.lammps.org/velocity.html) command), setting the force on them to 0.0 (via the\n > [fix setforce ](https://docs.lammps.org/fix_setforce.html) command), and integrating them\n > as usual (e.g. via the [fix nve ](https://docs.lammps.org/fix_nve.html) command). \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The aggregate properties of each rigid body are calculated at the\n > start of a simulation run and are maintained in internal data\n > structures. The properties include the position and velocity of the\n > center-of-mass of the body, its moments of inertia, and its angular\n > momentum. This is done using the properties of the constituent\n > atoms of the body at that point in time (or see the *infile*\n > keyword option). Thereafter, changing these properties of\n > individual atoms in the body will have no effect on a rigid body's\n > dynamics, unless they effect any computation of per-atom forces or\n > torques. If the keyword *reinit* is set to *yes* (the default), the\n > rigid body data structures will be recreated at the beginning of\n > each *run* command; if the keyword *reinit* is set to *no*, the\n > rigid body data structures will be built only at the very first\n > *run* command and maintained for as long as the rigid fix is\n > defined. For example, you might think you could displace the atoms\n > in a body or add a large velocity to each atom in a body to make it\n > move in a desired direction before a second run is performed, using\n > the [set ](https://docs.lammps.org/set.html) or [displace_atoms ](https://docs.lammps.org/displace_atoms.html) or\n > [velocity ](https://docs.lammps.org/velocity.html) commands. But these commands will not\n > affect the internal attributes of the body unless *reinit* is set\n > to *yes* . With *reinit* set to *no* (or using the *infile*\n > option, which implies *reinit* *no* ) the position and velocity of\n > individual atoms in the body will be reset when time integration\n > starts again. \n > \n\n----------\n\nEach rigid body must have two or more atoms. An atom can belong to at\nmost one rigid body. Which atoms are in which bodies can be defined\nvia several options.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >With the *rigid/small* styles, which require that *bodystyle* be\n > specified as *molecule* or *custom*, you can define a system that has\n > no rigid bodies initially. This is useful when you are using the\n > *mol* keyword in conjunction with another fix that is adding rigid\n > bodies on-the-fly as molecules, such as [fix deposit ](https://docs.lammps.org/fix_deposit.html)\n > or [fix pour ](https://docs.lammps.org/fix_pour.html). \n > \n\nFor bodystyle *single* the entire fix group of atoms is treated as one\nrigid body. This option is only allowed for the *rigid* styles.\n\nFor bodystyle *molecule*, atoms are grouped into rigid bodies by their\nrespective molecule IDs: each set of atoms in the fix group with the\nsame molecule ID is treated as a different rigid body. This option is\nallowed for both the *rigid* and *rigid/small* styles. Note that\natoms with a molecule ID = 0 will be treated as a single rigid body.\nFor a system with atomic solvent (typically this is atoms with\nmolecule ID = 0) surrounding rigid bodies, this may not be what you\nwant. Thus you should be careful to use a fix group that only\nincludes atoms you want to be part of rigid bodies.\n\nBodystyle *custom* is similar to bodystyle *molecule* except that it\nis more flexible in using other per-atom properties to define the sets\nof atoms that form rigid bodies. A custom per-atom integer vector\ndefined by the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command\ncan be used. Or an [atom-style or atomfile-style variable](https://docs.lammps.org/variable.html) can be used; the floating-point value produced by the\nvariable is rounded to an integer. As with bodystyle *molecule* ,\neach set of atoms in the fix groups with the same integer value is\ntreated as a different rigid body. Since fix property/atom custom\nvectors and atom-style variables produce values for all atoms, you\nshould be careful to use a fix group that only includes atoms you want\nto be part of rigid bodies.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To compute the initial center-of-mass position and other properties\n > of each rigid body, the image flags for each atom in the body are\n > used to \"unwrap\" the atom coordinates. Thus you must ensure that\n > these image flags are consistent so that the unwrapping creates a\n > valid rigid body (one where the atoms are close together),\n > particularly if the atoms in a single rigid body straddle a\n > periodic boundary. This means the input data file or restart file\n > must define the image flags for each atom consistently or that you\n > have used the [set ](https://docs.lammps.org/set.html) command to specify them correctly.\n > If a dimension is non-periodic then the image flag of each atom\n > must be 0 in that dimension, else an error is generated. \n > \n\nThe *force* and *torque* keywords discussed next are only allowed for\nthe *rigid* styles.\n\nBy default, each rigid body is acted on by other atoms which induce an\nexternal force and torque on its center of mass, causing it to\ntranslate and rotate. Components of the external center-of-mass force\nand torque can be turned off by the *force* and *torque* keywords.\nThis may be useful if you wish a body to rotate but not translate, or\nvice versa, or if you wish it to rotate or translate continuously\nunaffected by interactions with other particles. Note that if you\nexpect a rigid body not to move or rotate by using these keywords, you\nmust ensure its initial center-of-mass translational or angular\nvelocity is 0.0. Otherwise the initial translational or angular\nmomentum the body has will persist.\n\nAn xflag, yflag, or zflag set to *off* means turn off the component of\nforce of torque in that dimension. A setting of *on* means turn on\nthe component, which is the default. Which rigid body(s) the settings\napply to is determined by the first argument of the *force* and\n*torque* keywords. It can be an integer M from 1 to Nbody, where\nNbody is the number of rigid bodies defined. A wild-card asterisk can\nbe used in place of, or in conjunction with, the M argument to set the\nflags for multiple rigid bodies. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If N = the number of rigid bodies, then an asterisk\nwith no numeric values means all bodies from 1 to N. A leading\nasterisk means all bodies from 1 to n (inclusive). A trailing\nasterisk means all bodies from n to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive). Note that you can use the\n*force* or *torque* keywords as many times as you like. If a\nparticular rigid body has its component flags set multiple times, the\nsettings from the final keyword are used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For computational efficiency, you may wish to turn off pairwise and\n > bond interactions within each rigid body, as they no longer\n > contribute to the motion. The [neigh_modify exclude > ](https://docs.lammps.org/neigh_modify.html) and [delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands are\n > used to do this. If the rigid bodies have strongly overlapping\n > atoms, you may need to turn off these interactions to avoid\n > numerical problems due to large equal/opposite intra-body forces\n > swamping the contribution of small inter-body forces. \n > \n\nFor computational efficiency, you should typically define one fix\nrigid or fix rigid/small command which includes all the desired rigid\nbodies. LAMMPS will allow multiple rigid fixes to be defined, but it\nis more expensive.\n\n----------\n\nThe constituent particles within a rigid body can be point particles\n(the default in LAMMPS) or finite-size particles, such as spheres or\nellipsoids or line segments or triangles. See the [atom_stylesphere and ellipsoid and line and tri ](https://docs.lammps.org/atom_style.html) commands for more\ndetails on these kinds of particles. Finite-size particles contribute\ndifferently to the moment of inertia of a rigid body than do point\nparticles. Finite-size particles can also experience torque (e.g. due\nto [frictional granular interactions ](https://docs.lammps.org/pair_gran.html)) and have an\norientation. These contributions are accounted for by these fixes.\n\nForces between particles within a body do not contribute to the\nexternal force or torque on the body. Thus for computational\nefficiency, you may wish to turn off pairwise and bond interactions\nbetween particles within each rigid body. The [neigh_modifyexclude ](https://docs.lammps.org/neigh_modify.html) and [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\ncommands are used to do this. For finite-size particles this also\nmeans the particles can be highly overlapped when creating the rigid\nbody.\n\n----------\n\nThe *rigid*, *rigid/nve*, *rigid/small*, and *rigid/small/nve* styles\nperform constant NVE time integration. They are referred to below as\nthe 4 NVE rigid styles. The only difference is that the *rigid* and\n*rigid/small* styles use an integration technique based on Richardson\niterations. The *rigid/nve* and *rigid/small/nve* styles uses the\nmethods described in the paper by **Miller3**, which are\nthought to provide better energy conservation than an iterative\napproach.\n\nThe *rigid/nvt* and *rigid/nvt/small* styles performs constant NVT\nintegration using a Nose/Hoover thermostat with chains as described\noriginally in **Hoover** and **Martyna2**, which thermostats both the translational and rotational\ndegrees of freedom of the rigid bodies. They are referred to below as\nthe 2 NVT rigid styles. The rigid-body algorithm used by *rigid/nvt*\nis described in the paper by **Kamberaj**.\n\nThe *rigid/npt*, *rigid/nph*, *rigid/npt/small*, and *rigid/nph/small*\nstyles perform constant NPT or NPH integration using a Nose/Hoover\nbarostat with chains. They are referred to below as the 4 NPT and NPH\nrigid styles. For the NPT case, the same Nose/Hoover thermostat is\nalso used as with *rigid/nvt* and *rigid/nvt/small* .\n\nThe barostat parameters are specified using one or more of the *iso*,\n*aniso*, *x*, *y*, *z* and *couple* keywords. These keywords give you\nthe ability to specify 3 diagonal components of the external stress\ntensor, and to couple these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation. The effects of these keywords are similar to those\ndefined in [fix npt/nph ](https://docs.lammps.org/fix_nh.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently the *rigid/npt*, *rigid/nph*, *rigid/npt/small*, and\n > *rigid/nph/small* styles do not support triclinic (non-orthogonal)\n > boxes. \n > \n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z* keywords, which\ncorrespond to the 3 simulation box dimensions. For each component,\nthe external pressure or tensor component at each timestep is a ramped\nvalue during the run from *Pstart* to *Pstop* . If a target pressure\nis specified for a component, then the corresponding box dimension\nwill change during a simulation. For example, if the *y* keyword is\nused, the y-box length will change. A box dimension will not change\nif that component is not specified, although you have the option to\nchange that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. Another example is a\nsystem consisting of rigid bodies and point particles where the\nbarostat is only coupled with the rigid bodies. This option should be\nused with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin.\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\nThe *iso* and *aniso* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *reinit* keyword determines, whether the rigid body properties\nare re-initialized between run commands. With the option *yes* (the\ndefault) this is done, with the option *no* this is not done. Turning\noff the re-initialization can be helpful to protect rigid bodies against\nunphysical manipulations between runs or when properties cannot be\neasily re-computed (e.g. when read from a file). When using the *infile*\nkeyword, the *reinit* option is automatically set to *no* .\n\nThe *langevin* and *temp* and *tparam* keywords perform thermostatting\nof the rigid bodies, altering both their translational and rotational\ndegrees of freedom. What is meant by \"temperature\" of a collection of\nrigid bodies and how it can be monitored via the fix output is\ndiscussed below.\n\nThe *langevin* keyword applies a Langevin thermostat to the constant\nNVE time integration performed by any of the 4 NVE rigid styles:\n*rigid*, *rigid/nve*, *rigid/small*, *rigid/small/nve* . It cannot\nbe used with the 2 NVT rigid styles: *rigid/nvt*, *rigid/small/nvt* .\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (\\(\\tau\\) or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command). The random # *seed* must be a positive\ninteger.\n\nThe way that Langevin thermostatting operates is explained on the [fix langevin ](https://docs.lammps.org/fix_langevin.html) doc page. If you wish to simply viscously\ndamp the rotational motion without thermostatting, you can set\n*Tstart* and *Tstop* to 0.0, which means only the viscous drag term in\nthe Langevin thermostat will be applied. See the discussion on the\n[fix viscous ](https://docs.lammps.org/fix_viscous.html) page for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *langevin* keyword is used with fix rigid versus fix\n > rigid/small, different dynamics will result for parallel runs. This\n > is because of the way random numbers are used in the two cases. The\n > dynamics for the two cases should be statistically similar, but will\n > not be identical, even for a single timestep. \n > \n\nThe *temp* and *tparam* keywords apply a Nose/Hoover thermostat to the\nNVT time integration performed by the 2 NVT rigid styles. They cannot\nbe used with the 4 NVE rigid styles. The desired temperature at each\ntimestep is a ramped value during the run from *Tstart* to *Tstop* .\nThe *Tdamp* parameter is specified in time units and determines how\nrapidly the temperature is relaxed. For example, a value of 100.0\nmeans to relax the temperature in a timespan of (roughly) 100 time\nunits (tau or fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\n\nNose/Hoover chains are used in conjunction with this thermostat. The\n*tparam* keyword can optionally be used to change the chain settings\nused. *Tchain* is the number of thermostats in the Nose Hoover chain.\nThis value, along with *Tdamp* can be varied to dampen undesirable\noscillations in temperature that can occur in a simulation. As a rule\nof thumb, increasing the chain length should lead to smaller\noscillations. The keyword *pchain* specifies the number of thermostats\nin the chain thermostatting the barostat degrees of freedom.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are alternate ways to thermostat a system of rigid bodies.\n > You can use [fix langevin ](https://docs.lammps.org/fix_langevin.html) to treat the\n > individual particles in the rigid bodies as effectively immersed in\n > an implicit solvent, e.g. a Brownian dynamics model. For hybrid\n > systems with both rigid bodies and solvent particles, you can\n > thermostat only the solvent particles that surround one or more\n > rigid bodies by appropriate choice of groups in the compute and fix\n > commands for temperature and thermostatting. The solvent\n > interactions with the rigid bodies should then effectively\n > thermostat the rigid body temperature as well without use of the\n > Langevin or Nose/Hoover options associated with the fix rigid\n > commands. \n > \n\n----------\n\nThe *mol* keyword can only be used with the *rigid/small* styles. It\nmust be used when other commands, such as [fix deposit](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html), add rigid bodies\non-the-fly during a simulation. You specify a *template-ID*\npreviously defined using the [molecule ](https://docs.lammps.org/molecule.html) command, which\nreads a file that defines the molecule. You must use the same\n*template-ID* that the other fix which is adding rigid bodies uses.\nThe coordinates, atom types, atom diameters, center-of-mass, and\nmoments of inertia can be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in this file are the coordinates and types of atoms in\nthe molecule, in which case the molecule command calculates the other\nquantities itself.\n\nNote that these other fixes create new rigid bodies, in addition to\nthose defined initially by this fix via the *bodystyle* setting.\n\nAlso note that when using the *mol* keyword, extra restart information\nabout all rigid bodies is written out whenever a restart file is\nwritten out. See the NOTE in the next section for details.\n\n----------\n\nThe *infile* keyword allows a file of rigid body attributes to be read\nin from a file, rather then having LAMMPS compute them. There are 5\nsuch attributes: the total mass of the rigid body, its center-of-mass\nposition, its 6 moments of inertia, its center-of-mass velocity, and\nthe 3 image flags of the center-of-mass position. For rigid bodies\nconsisting of point particles or non-overlapping finite-size\nparticles, LAMMPS can compute these values accurately.\n\nHowever, for rigid bodies consisting of finite-size particles which\noverlap each other, LAMMPS will ignore the overlaps when computing\nthese 4 attributes, which means the dynamics of the bodies will be\nincorrect. The amount of error this induces depends on the amount of\noverlap. To avoid this issue, the values can be pre-computed\n(e.g. using Monte Carlo integration).\n\nThe format of the file is as follows. Note that the file does not\nhave to list attributes for every rigid body integrated by fix rigid.\nOnly bodies which the file specifies will have their computed\nattributes overridden. The file can contain initial blank lines or\ncomment lines starting with \"#\" which are ignored. The first\nnon-blank, non-comment line should list N = the number of lines to\nfollow. The N successive lines contain the following information:\n\n```\nID1 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\nID2 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n...\nIDN masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n```\nThe rigid body IDs are all positive integers. For the *single*\nbodystyle, only an ID of 1 can be used. For the *group* bodystyle,\nIDs from 1 to Ng can be used where Ng is the number of specified\ngroups. For the *molecule* bodystyle, use the molecule ID for the\natoms in a specific rigid body as the rigid body ID.\n\nThe masstotal and center-of-mass coordinates (xcm,ycm,zcm) are\nself-explanatory. The center-of-mass should be consistent with what\nis calculated for the position of the rigid body with all its atoms\nunwrapped by their respective image flags. If this produces a\ncenter-of-mass that is outside the simulation box, LAMMPS wraps it\nback into the box.\n\nThe 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the\nvalues consistent with the current orientation of the rigid body\naround its center of mass. The values are with respect to the\nsimulation box XYZ axes, not with respect to the principal axes of the\nrigid body itself. LAMMPS performs the latter calculation internally.\n\nThe (vxcm,vycm,vzcm) values are the velocity of the center of mass.\nThe (lx,ly,lz) values are the angular momentum of the body. The\n(vxcm,vycm,vzcm) and (lx,ly,lz) values can simply be set to 0 if you\nwish the body to have no initial motion.\n\nThe (ixcm,iycm,izcm) values are the image flags of the center of mass\nof the body. For periodic dimensions, they specify which image of the\nsimulation box the body is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of -1 means subtract 1 box length to\nget the true value. LAMMPS updates these flags as the rigid bodies\ncross periodic boundaries during the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the *infile* or *mol* keywords and write restart files\n > during a simulation, then each time a restart file is written, the\n > fix also write an auxiliary restart file with the name rfile.rigid,\n > where \"rfile\" is the name of the restart file,\n > e.g. tmp.restart.10000 and tmp.restart.10000.rigid. This auxiliary\n > file is in the same format described above. Thus it can be used in\n > a new input script that restarts the run and re-specifies a rigid\n > fix using an *infile* keyword and the appropriate filename. Note\n > that the auxiliary file will contain one line for every rigid body,\n > even if the original file only listed a subset of the rigid bodies. \n > \n\nIf the system has rigid bodies with finite-size overlapping particles\nand the model uses the [fix gravity ](https://docs.lammps.org/fix_gravity.html) command to\napply a gravitational force to the rigid bodies, then the *gravity*\nkeyword should be used in the following manner.\n\nFirst, the group specified for the [fix gravity ](https://docs.lammps.org/fix_gravity.html)\ncommand should not include any atoms in rigid bodies which have\noverlapping particles. It can be empty (see the [group empty](https://docs.lammps.org/group.html) command) or only contain single particles not in rigid\nbodies, e.g. background particles.\n\nSecond, the *infile* keyword should be used to specify the total mass\nand other properties of the rigid bodies with overlaps, so that their\ndynamics will be modeled correctly, as explained above.\n\nThird, the *gravity* keyword should be used the with the ID of the\n[fix gravity ](https://docs.lammps.org/fix_gravity.html) command as its argument. The rigid\nfixes will access the gravity fix to extract the current direction of\nthe gravity vector at each timestep (which can be static or dynamic).\nA gravity force will then be applied to each rigid body at its\ncenter-of-mass position using its total mass.\n\n----------\n\nIf you use a [temperature compute ](https://docs.lammps.org/compute.html) with a group that\nincludes particles in rigid bodies, the degrees-of-freedom removed by\neach rigid body are accounted for in the temperature (and pressure)\ncomputation, but only if the temperature group includes all the\nparticles in a particular rigid body.\n\nA 3d rigid body has 6 degrees of freedom (3 translational, 3\nrotational), except for a collection of point particles lying on a\nstraight line, which has only 5, e.g a dimer. A 2d rigid body has 3\ndegrees of freedom (2 translational, 1 rotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You may wish to explicitly subtract additional\n > degrees-of-freedom if you use the *force* and *torque* keywords to\n > eliminate certain motions of one or more rigid bodies. LAMMPS does\n > not do this automatically. \n > \n\nThe rigid body contribution to the pressure of the system (virial) is\nalso accounted for by this fix.\n\n----------\n\nIf your simulation is a hybrid model with a mixture of rigid bodies\nand non-rigid particles (e.g. solvent) there are several ways these\nrigid fixes can be used in tandem with [fix nve ](https://docs.lammps.org/fix_nve.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), and [fix nph](https://docs.lammps.org/fix_nh.html).\n\nIf you wish to perform NVE dynamics (no thermostatting or\nbarostatting), use one of 4 NVE rigid styles to integrate the rigid\nbodies, and [fix nve ](https://docs.lammps.org/fix_nve.html) to integrate the non-rigid\nparticles.\n\nIf you wish to perform NVT dynamics (thermostatting, but no\nbarostatting), you can use one of the 2 NVT rigid styles for the rigid\nbodies, and any thermostatting fix for the non-rigid particles\n([fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)). You can also use one\nof the 4 NVE rigid styles for the rigid bodies and thermostat them\nusing [fix langevin ](https://docs.lammps.org/fix_langevin.html) on the group that contains\nall the particles in the rigid bodies. The net force added by\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) to each rigid body effectively\nthermostats its translational center-of-mass motion. Not sure how\nwell it does at thermostatting its rotational motion.\n\nIf you wish to perform NPT or NPH dynamics (barostatting), you cannot\nuse both [fix npt ](https://docs.lammps.org/fix_nh.html) and the NPT or NPH rigid styles. This\nis because there can only be one fix which monitors the global\npressure and changes the simulation box dimensions. So you have 3\nchoices:\n\n#. Use one of the 4 NPT or NPH styles for the rigid bodies. Use the\n *dilate* all option so that it will dilate the positions of the\n non-rigid particles as well. Use [fix nvt ](https://docs.lammps.org/fix_nh.html) (or any\n other thermostat) for the non-rigid particles.\n#. Use [fix npt ](https://docs.lammps.org/fix_nh.html) for the group of non-rigid particles. Use\n the *dilate* all option so that it will dilate the center-of-mass\n positions of the rigid bodies as well. Use one of the 4 NVE or 2 NVT\n rigid styles for the rigid bodies.\n#. Use [fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html) to compute the\n pressure and change the box dimensions. Use one of the 4 NVE or 2 NVT\n rigid styles for the rigid bodies. Use [fix nvt ](https://docs.lammps.org/fix_nh.html) (or\n any other thermostat) for the non-rigid particles.\n\nIn all case, the rigid bodies and non-rigid particles both contribute\nto the global pressure and the box is scaled the same by any of the\nbarostatting fixes.\n\nYou could even use the second and third options for a non-hybrid\nsimulation consisting of only rigid bodies, assuming you give\n[fix npt ](https://docs.lammps.org/fix_nh.html) an empty group, though it's an odd thing to\ndo. The barostatting fixes ([fix npt ](https://docs.lammps.org/fix_nh.html) and [fixpress/berensen ](https://docs.lammps.org/fix_press_berendsen.html)) will monitor the pressure and\nchange the box dimensions, but not time integrate any particles. The\nintegration of the rigid bodies will be performed by fix rigid/nvt.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about the 4 NVE rigid styles is written to [binaryrestart files ](https://docs.lammps.org/restart.html). The exception is if the *infile* or *mol*\nkeyword is used, in which case an auxiliary file is written out with\nrigid body information each time a restart file is written, as\nexplained above for the *infile* keyword. For the 2 NVT rigid styles,\nthe state of the Nose/Hoover thermostat is written to [binaryrestart files ](https://docs.lammps.org/restart.html). Ditto for the 4 NPT and NPH rigid styles,\nand the state of the Nose/Hoover barostat. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by the 4 NPT and NPH rigid styles to change the computes\nused to calculate the instantaneous pressure tensor. Note that the 2\nNVT rigid fixes do not use any external compute to compute\ninstantaneous temperature.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *bodyforces* option is supported by\nall rigid styles to set whether per-body forces and torques are\ncomputed early or late in a timestep, i.e. at the post-force stage or\nat the final-integrate stage or the timestep, respectively.\n\nThe cumulative energy change in the system imposed by the 6 NVT, NPT,\nNPH rigid fixes, via either thermostatting and/or barostatting, is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThe 2 NVE rigid fixes compute a global scalar which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The scalar value\ncalculated by these fixes is \"intensive\". The scalar is the current\ntemperature of the collection of rigid bodies. This is averaged over\nall rigid bodies and their translational and rotational degrees of\nfreedom. The translational energy of a rigid body is 1/2 m v\\^2,\nwhere m = total mass of the body and v = the velocity of its center of\nmass. The rotational energy of a rigid body is 1/2 I w\\^2, where I =\nthe moment of inertia tensor of the body and w = its angular velocity.\nDegrees of freedom constrained by the *force* and *torque* keywords\nare removed from this calculation, but only for the *rigid* and\n*rigid/nve* fixes.\n\nThe 6 NVT, NPT, NPH rigid fixes compute a global scalar which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nis the same cumulative energy change due to these fixes described\nabove. The scalar value calculated by this fix is \"extensive\".\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthese fixes to add the contribution due to the added forces on atoms\nto both the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nAll of the *rigid* styles (but not the *rigid/small* styles) compute a\nglobal array of values which can be accessed by various [outputcommands ](https://docs.lammps.org/Howto_output.html). Similar information about the bodies\ndefined by the *rigid/small* styles can be accessed via the\n[compute rigid/local ](https://docs.lammps.org/compute_rigid_local.html) command.\n\nThe number of rows in the array is equal to the number of rigid\nbodies. The number of columns is 15. Thus for each rigid body, 15\nvalues are stored: the xyz coords of the center of mass (COM), the xyz\ncomponents of the COM velocity, the xyz components of the force acting\non the COM, the xyz components of the torque acting on the COM, and\nthe xyz image flags of the COM.\n\nThe center of mass (COM) for each body is similar to unwrapped\ncoordinates written to a dump file. It will always be inside (or\nslightly outside) the simulation box. The image flags have the same\nmeaning as image flags for atom positions (see the \"dump\" command).\nThis means you can calculate the unwrapped COM by applying the image\nflags to the COM, the same as when unwrapped coordinates are written\nto a dump file.\n\nThe force and torque values in the array are not affected by the\n*force* and *torque* keywords in the fix rigid command; they reflect\nvalues before any changes are made by those keywords.\n\nThe ordering of the rigid bodies (by row in the array) is as follows.\nFor the *single* keyword there is just one rigid body. For the\n*molecule* keyword, the bodies are ordered by ascending molecule ID.\nFor the *group* keyword, the list of group IDs determines the ordering\nof bodies.\n\nThe array values calculated by these fixes are \"intensive\", meaning\nthey are independent of the number of atoms in the simulation.\n\nNo parameter of these fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. These fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Zhang1)** Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004). \n \n**(Miller3)** Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,\nJ Chem Phys, 116, 8649 (2002). \n \n**(Hoover)** Hoover, Phys Rev A, 31, 1695 (1985). \n \n**(Martyna2)** Martyna, Klein, Tuckerman, J Chem Phys, 97, 2635 (1992);\nMartyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117. \n \n**(Kamberaj)** Kamberaj, Low, Neal, J Chem Phys, 122, 224114 (2005). \n ", + "restrictions": "These fixes are all part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAssigning a temperature via the [velocity create ](https://docs.lammps.org/velocity.html)\ncommand to a system with [rigid bodies ](https://docs.lammps.org/fix_rigid.html) may not have\nthe desired outcome for two reasons. First, the velocity command can\nbe invoked before the rigid-body fix is invoked or initialized and the\nnumber of adjusted degrees of freedom (DOFs) is known. Thus it is not\npossible to compute the target temperature correctly. Second, the\nassigned velocities may be partially canceled when constraints are\nfirst enforced, leading to a different temperature than desired. A\nworkaround for this is to perform a [run 0 ](https://docs.lammps.org/run.html) command, which\nensures all DOFs are accounted for properly, and then rescale the\ntemperature to the desired value before performing a simulation. For\nexample:\n\n```lmps\nvelocity all create 300.0 12345\nrun 0 # temperature may not be 300K\nvelocity all scale 300.0 # now it should be\n```\n", + "related": "[delete_bonds ](https://docs.lammps.org/delete_bonds.html), [neigh_modify ](https://docs.lammps.org/neigh_modify.html)\nexclude, [fix shake ](https://docs.lammps.org/fix_shake.html)\n" }, { "command": [ - "compute gyration/shape/chunk" + "dihedral_style opls", + "dihedral_style opls/intel", + "dihedral_style opls/kk", + "dihedral_style opls/omp" ], "syntax": [ - "compute ID group-ID gyration/shape/chunk compute-ID" + "dihedral_style opls" ], "args": [ [ { - "arg": "compute", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "opls", + "type": 3, + "choices": [ + "opls", + "opls/intel", + "opls/kk", + "opls/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\ndihedral_style opls\ndihedral_coeff 1 1.740 -0.157 0.279 0.00 # CT-CT-CT-CT\ndihedral_coeff 2 0.000 0.000 0.366 0.000 # CT-CT-CT-HC\ndihedral_coeff 3 0.000 0.000 0.318 0.000 # HC-CT-CT-HC\n```\n", + "html_filename": "dihedral_opls.html", + "short_description": "The *opls* dihedral style uses the potential\n\\[\\begin{align*} \n E = & \\frac{1}{2} K_1 [1 + \\cos(\\phi)] + \\frac{1}{2} K_2 [1 - \\cos(2 \\phi)] + \\\\\n & \\frac{1}{2} K_3 [1 + \\cos(3 \\phi)] + \\frac{1}{2} K_4 [1 - \\cos(4 \\phi)] \\end{align*} \\]\nNote that the usual 1/2 factor is not included in the K values", + "description": "The *opls* dihedral style uses the potential\n\\[\\begin{align*} \n E = & \\frac{1}{2} K_1 [1 + \\cos(\\phi)] + \\frac{1}{2} K_2 [1 - \\cos(2 \\phi)] + \\\\\n & \\frac{1}{2} K_3 [1 + \\cos(3 \\phi)] + \\frac{1}{2} K_4 [1 - \\cos(4 \\phi)] \\end{align*} \\]\nNote that the usual 1/2 factor is not included in the K values.\n\nThis dihedral potential is used in the OPLS force field and is\ndescribed in **Watkins**.\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K_1\\) (energy)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Watkins)** Watkins and Jorgensen, J Phys Chem A, 105, 4118-4125 (2001). \n ", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" +}, +{ + "command": [ + "pair_style kolmogorov/crespi/z" + ], + "syntax": [ + "pair_style [hybrid/overlay ...] kolmogorov/crespi/z cutoff" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "[hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "...]", "type": 2, "choices": [] }, { - "arg": "gyration/shape/chunk", + "arg": "kolmogorov/crespi/z", "type": 1, "choices": [] }, { - "arg": "compute-ID", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/shape/chunk = style name of this compute command\n* compute-ID = ID of [compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html) command \n", - "examples": "\n```lmps\ncompute 1 molecule gyration/shape/chunk pe\n```\n", - "html_filename": "compute_gyration_shape_chunk.html", - "short_description": "Define a computation that calculates the eigenvalues of the gyration tensor and\nthree shape parameters of multiple chunks of atoms", - "description": "Define a computation that calculates the eigenvalues of the gyration tensor and\nthree shape parameters of multiple chunks of atoms. The computation includes\nall effects due to atoms passing through periodic boundaries.\n\nThe three computed shape parameters are the asphericity, \\(b\\),\nthe acylindricity, \\(c\\), and the relative shape anisotropy, \\(k\\),\nviz.,\n\\[.. math::\\]\n b &= l_z - \\frac12(l_y+l_x) \\\\\n c &= l_y - l_x \\\\\n k &= \\frac{3}{2} \\frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \\frac{1}{2}\n\nwhere \\(l_x \\le l_y \\le l_z\\) are the three eigenvalues of the gyration\ntensor. A general description of these parameters is provided in\n**Mattice2** while an application to polymer systems\ncan be found in **Theodorou2**. The asphericity is always\nnon-negative and zero only when the three principal moments are equal.\nThis zero condition is met when the distribution of particles is spherically\nsymmetric (hence the name asphericity) but also whenever the particle\ndistribution is symmetric with respect to the three coordinate axes (e.g.,\nwhen the particles are distributed uniformly on a cube, tetrahedron, or other\nPlatonic solid). The acylindricity is always non-negative and zero only when\nthe two principal moments are equal. This zero condition is met when the\ndistribution of particles is cylindrically symmetric (hence the name,\nacylindricity), but also whenever the particle distribution is symmetric with\nrespect to the two coordinate axes (e.g., when the particles are distributed\nuniformly on a regular prism). The relative shape anisotropy\nis bounded between 0 (if all points are spherically symmetric) and 1\n(if all points lie on a line).\n\nThe tensor keyword must be specified in the compute gyration/chunk command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the gyration tensor in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html)\n > command for a discussion of image flags and how they are set for each\n > atom. You can reset the image flags (e.g., to 0) before invoking this\n > compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global array with six columns,\nwhich can be accessed by indices 1--6. The first three columns are the\neigenvalues of the gyration tensor followed by the asphericity, the\nacylindricity and the relative shape anisotropy. The computed values can be\nused by any command that uses global array values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe array calculated by this compute is\n\"intensive\". The first five columns will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html) while the sixth one is dimensionless.\n\n**(Mattice2)** Mattice, Suter, Conformational Theory of Large Molecules, Wiley, New York, 1994. \n \n**(Theodorou2)** Theodorou, Suter, Macromolecules, 18, 1206 (1985). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html)\n[compute gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style hybrid/overlay kolmogorov/crespi/z 20.0\npair_coeff * * none\npair_coeff 1 2 kolmogorov/crespi/z CC.KC C C\n\npair_style hybrid/overlay rebo kolmogorov/crespi/z 14.0\npair_coeff * * rebo CH.rebo C C\npair_coeff 1 2 kolmogorov/crespi/z CC.KC C C\n```\n", + "html_filename": "pair_kolmogorov_crespi_z.html", + "short_description": "The *kolmogorov/crespi/z* style computes the Kolmogorov-Crespi interaction\npotential as described in **KC05**", + "description": "The *kolmogorov/crespi/z* style computes the Kolmogorov-Crespi interaction\npotential as described in **KC05**. An important simplification is made,\nwhich is to take all normals along the z-axis.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & e^{-\\lambda(r_{ij} -z_0)} \\left[ C + f(\\rho_{ij}) + f(\\rho_{ji}) \\right] - A \\left( \\frac{r_{ij}}{z_0}\\right)^{-6} + A \\left( \\frac{\\textrm{cutoff}}{z_0}\\right)^{-6} \\\\\n \\rho_{ij}^2 = & \\rho_{ji}^2 = x_{ij}^2 + y_{ij}^2 \\qquad \\qquad (\\mathbf{n}_i \\equiv \\mathbf{\\hat{z}}) \\\\\n f(\\rho) = & e^{-(\\rho/\\delta)^2} \\sum_{n=0}^2 C_{2n} \\left( \\rho/\\delta \\right)^{2n} \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth forces.\nEnergies are shifted so that they go continuously to zero at the cutoff assuming\nthat the exponential part of \\(V_{ij}\\) (first term) decays sufficiently fast.\nThis shift is achieved by the last term in the equation for \\(V_{ij}\\) above.\n\nThis potential is intended for interactions between two layers of graphene.\nTherefore, to avoid interaction between layers in multi-layered materials,\neach layer should have a separate atom type and interactions should only\nbe computed between atom types of neighboring layers.\n\nThe parameter file (e.g. CC.KC), is intended for use with metal\n[units ](https://docs.lammps.org/units.html), with energies in meV. An additional parameter, *S*,\nis available to facilitate scaling of energies in accordance with\n**vanWijk**.\n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\n**(KC05)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(vanWijk)** M. M. van Wijk, A. Schuring, M. I. Katsnelson, and A. Fasolino,\nPhysical Review Letters, 113, 135504 (2014) \n ", + "restrictions": "This fix is part of the INTERLAYER package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style lebedeva/z ](https://docs.lammps.org/pair_lebedeva_z.html)\n" }, { "command": [ - "fix nve/asphere", - "fix nve/asphere/gpu", - "fix nve/asphere/intel" + "compute sph/e/atom" ], "syntax": [ - "fix ID group-ID nve/asphere" + "compute ID group-ID sph/e/atom" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -7211,35 +6944,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/asphere", - "type": 3, - "choices": [ - "nve/asphere", - "nve/asphere/gpu", - "nve/asphere/intel" - ] + "arg": "sph/e/atom", + "type": 1, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/asphere = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/asphere\n```\n", - "html_filename": "fix_nve_asphere.html", - "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for aspherical particles in the\ngroup each timestep", - "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for aspherical particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/e/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all sph/e/atom\n```\n", + "html_filename": "compute_sph_e_atom.html", + "short_description": "Define a computation that calculates the per-atom internal energy\nfor each atom in a group", + "description": "Define a computation that calculates the per-atom internal energy\nfor each atom in a group.\n\nThe internal energy is the energy associated with the internal degrees\nof freedom of an SPH particle, i.e. a Smooth-Particle Hydrodynamics\nparticle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the internal energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "fix filter/corotate" + "compute temp/chunk" ], "syntax": [ - "fix ID group-ID filter/corotate keyword value ..." + "compute ID group-ID temp/chunk chunkID value1 value2 ... keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -7254,152 +6983,134 @@ export const command_docs = [ "choices": [] }, { - "arg": "filter/corotate", + "arg": "temp/chunk", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "chunkID", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "value1", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* one or more constraint/value pairs are appended\n* constraint = b or a or t or m \n *        b values = one or more bond types \n *        a values = one or more angle types \n *        t values = one or more atom types \n *        m value = one or more mass values \n", - "examples": "\n```lmps\ntimestep 8\nrun_style respa 3 2 8 bond 1 pair 2 kspace 3\nfix cor all filter/corotate m 1.0\n\nfix cor all filter/corotate b 4 19 a 3 5 2\n```\n", - "html_filename": "fix_filter_corotate.html", - "short_description": "This fix implements a corotational filter for a mollified impulse\nmethod", - "description": "This fix implements a corotational filter for a mollified impulse\nmethod. In biomolecular simulations, it allows the usage of larger\ntimesteps for long-range electrostatic interactions. For details, see\n**Fath2017**.\n\nWhen using [run_style respa ](https://docs.lammps.org/run_style.html) for a biomolecular\nsimulation with high-frequency covalent bonds, the outer time-step is\nrestricted to below ~ 4fs due to resonance problems. This fix filters\nthe outer stage of the respa and thus a larger (outer) time-step can\nbe used. Since in large biomolecular simulations the computation of\nthe long-range electrostatic contributions poses a major bottleneck,\nthis can significantly accelerate the simulation.\n\nThe filter computes a cluster decomposition of the molecular structure\nfollowing the criteria indicated by the options a, b, t and m. This\nprocess is similar to the approach in [fix shake ](https://docs.lammps.org/fix_shake.html),\nhowever, the clusters are not kept constrained. Instead, the position\nis slightly modified only for the computation of long-range forces. A\ngood cluster decomposition constitutes in building clusters which\ncontain the fastest covalent bonds inside clusters.\n\nIf the clusters are chosen suitably, the [run_style respa ](https://docs.lammps.org/run_style.html) is stable for outer timesteps of at least 8fs.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to these fixes. No global or per-atom quantities are\nstored by these fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of these fixes can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. These\nfixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Fath2017)** Fath, Hochbruck, Singh, J Comp Phys, 333, 180-198 (2017). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCurrently, it does not support [molecule templates ](https://docs.lammps.org/molecule.html).\n", - "related": "none" -}, -{ - "command": [ - "pair_style resquared", - "pair_style resquared/gpu", - "pair_style resquared/omp" - ], - "syntax": [ - "pair_style resquared cutoff" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "value2", + "type": 2, "choices": [] }, { - "arg": "resquared", + "arg": "cdof", "type": 3, "choices": [ - "resquared", - "resquared/gpu", - "resquared/omp" + "com", + "bias", + "adof", + "cdof" ] }, { - "arg": "cutoff", - "type": 2, - "choices": [] + "arg": "internal", + "type": 3, + "choices": [ + "temp", + "kecom", + "internal" + ] } ] ], - "parameters": "* cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style resquared 10.0\npair_coeff * * 1.0 1.0 1.7 3.4 3.4 1.0 1.0 1.0\n```\n", - "html_filename": "pair_resquared.html", - "short_description": "Style *resquared* computes the RE-squared anisotropic interaction\n:ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`, **Babadi** between pairs ofellipsoidal and/or spherical Lennard-Jones particles", - "description": "Style *resquared* computes the RE-squared anisotropic interaction\n:ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`, **Babadi** between pairs ofellipsoidal and/or spherical Lennard-Jones particles. For ellipsoidalinteractions, the potential considers the ellipsoid as being comprisedof small spheres of size \\(\\sigma\\). LJ particles are a single sphere ofsize \\(\\sigma\\). The distinction is made to allow the pair style to makeefficient calculations of ellipsoid/solvent interactions.Details for the equations used are given in the references below andin `this supplementary document 0.0, then the particle is treated as an\nellipsoid (even if the 3 parameters are equal to each other).\n\nA12 specifies the energy prefactor which depends on the types of the\ntwo interacting particles.\n\nFor ellipsoid/ellipsoid interactions, the interaction is computed by\nthe formulas in the supplementary document referenced above. A12 is\nthe Hamaker constant as described in :ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`. In LJunits:\\[ A_{12} = 4\\pi^2\\epsilon_{\\mathrm{LJ}}(\\rho\\sigma^3)^2\\]where \\(\\rho\\) gives the number density of the spherical particlescomposing the ellipsoids and \\(\\epsilon_{\\mathrm{LJ}}\\) determinesthe interaction strength of the spherical particles.For ellipsoid/LJ sphere interactions, the interaction is also computedby the formulas in the supplementary document referenced above. A12has a modified form (see `here ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only atoms in the specified group contribute to the calculations performed\n > by this compute. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\n > command defines its own group; atoms will have a chunk ID = 0 if they are\n > not in that group, signifying they are not assigned to a chunk, and will\n > thus also not contribute to this calculation. You can specify the \"all\"\n > group for this command if you simply want to include atoms with non-zero\n > chunk IDs. \n > \n\nThe simplest way to output the per-chunk results of the compute\ntemp/chunk calculation to a file is to use the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all temp/chunk cc1 temp\nfix 1 all ave/time 100 1 100 c_myChunk[1] file tmp.out mode vector\n```\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *com* keyword can be used with a value of *yes* to subtract the\nvelocity of the center-of-mass for each chunk from the velocity of the\natoms in that chunk, before calculating either the global or per-chunk\ntemperature. This can be useful if the atoms are streaming or\notherwise moving collectively, and you wish to calculate only the\nthermal temperature.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This also\nallows calculation of the global or per-chunk temperature using only\nthe thermal temperature of atoms in each chunk after the translational\nkinetic energy components have been altered in a prescribed way\n(e.g., to remove a velocity profile). It also applies to the calculation\nof the other per-chunk values, such as *kecom* or *internal*, which\ninvolve the center-of-mass velocity of each chunk, which is calculated\nafter the velocity bias is removed from each atom. Note that the\ntemperature compute will apply its bias globally to the entire system,\nnot on a per-chunk basis.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formulas used for the global or per-chunk temperature,\nas described above. They can be used to calculate a more appropriate\ntemperature for some kinds of chunks. Here are three examples:\n\nIf spatially binned chunks contain some number of water molecules and\n[fix shake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then\nyou could calculate a temperature with six degrees of freedom (DOF) (three\ntranslational, three rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the x component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nIf each chunk consists of a large molecule, with some number of its\nbonds constrained by [fix shake ](https://docs.lammps.org/fix_shake.html) or the entire molecule\nby [fix rigid/small ](https://docs.lammps.org/fix_rigid.html), *adof* = 0.0 and *cdof* could be\nset to the remaining degrees of freedom for the entire molecule\n(entire chunk in this case; i.e., 6 for 3d, or 3 for 2d, for a rigid\nmolecule).\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThis compute also optionally calculates a global array, if one or more\nof the optional values are specified. The number of rows in the array\nis the number of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of\ncolumns is the number of specified values (1 or more). These values\ncan be accessed by any command that uses global array values from a\ncompute as input. Again, see the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\". The array values are \"intensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html). The array values\nwill be in temperature [units ](https://docs.lammps.org/units.html) for the *temp* value, and in\nenergy [units ](https://docs.lammps.org/units.html) for the *kecom* and *internal* values.\n", + "restrictions": "The *com* and *bias* keywords cannot be used together.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [fix ave/chunk temp ](https://docs.lammps.org/fix_ave_chunk.html)\n" }, { "command": [ - "pair_style buck6d/coul/gauss/dsf" + "fix widom" ], "syntax": [ - "pair_style style args" + "fix ID group-ID widom N M type seed T keyword values ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "buck6d/coul/gauss/long", - "type": 3, - "choices": [ - "buck6d/coul/gauss/dsf", - "buck6d/coul/gauss/long" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style = buck6d/coul/gauss/dsf or buck6d/coul/gauss/long\n* args = list of arguments for a particular style \n *      buck6d/coul/gauss/dsf args = smooth cutoff (cutoff2) \n       smooth = smoothing onset within Buckingham cutoff (ratio) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck6d/coul/gauss/long args = smooth smooth2 cutoff (cutoff2) \n       smooth = smoothing onset within Buckingham cutoff (ratio) \n       smooth2 = smoothing onset within Coulombic cutoff (ratio) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style buck6d/coul/gauss/dsf 0.9000 12.0000\npair_coeff 1 1 1030. 3.061 457.179 4.521 0.608\n\npair_style buck6d/coul/gauss/long 0.9000 1.0000 12.0000\npair_coeff 1 1 1030. 3.061 457.179 4.521 0.608\n```\n", - "html_filename": "pair_buck6d_coul_gauss.html", - "short_description": "The *buck6d/coul/gauss* styles evaluate vdW and Coulomb\ninteractions following the MOF-FF force field after\n**Schmid**", - "description": "The *buck6d/coul/gauss* styles evaluate vdW and Coulomb\ninteractions following the MOF-FF force field after\n**Schmid**. The vdW term of the *buck6d* styles\ncomputes a dispersion damped Buckingham potential:\n\\[\n E = A e^{-\\kappa r} - \\frac{C}{r^6} \\cdot \\frac{1}{1 + D r^{14}} \\qquad r < r_c \\\\\\]\nwhere A and C are a force constant, \\(\\kappa\\) is an ionic-pair dependent\nreciprocal length parameter, D is a dispersion correction parameter,\nand the cutoff \\(r_c\\) truncates the interaction distance.\nThe first term in the potential corresponds to the Buckingham\nrepulsion term and the second term to the dispersion attraction with\na damping correction analog to the Grimme correction used in DFT.\nThe latter corrects for artifacts occurring at short distances which\nbecome an issue for soft vdW potentials.\n\nThe *buck6d* styles include a smoothing function which is invoked\naccording to the global smoothing parameter within the specified\ncutoff. Hereby a parameter of i.e. 0.9 invokes the smoothing\nwithin 90% of the cutoff. No smoothing is applied at a value\nof 1.0. For the *gauss/dsf* style this smoothing is only applicable\nfor the dispersion damped Buckingham potential. For the *gauss/long*\nstyles the smoothing function can also be invoked for the real\nspace coulomb interactions which enforce continuous energies and\nforces at the cutoff.\n\nBoth styles *buck6d/coul/gauss/dsf* and *buck6d/coul/gauss/long*\nevaluate a Coulomb potential using spherical Gaussian type charge\ndistributions which effectively dampen electrostatic interactions\nfor high charges at close distances. The electrostatic potential\nis thus evaluated as:\n\\[\n E = \\frac{C_{q_i q_j}}{\\epsilon r_{ij}}\\,\\, \\textrm{erf}\\left(\\alpha_{ij} r_{ij}\\right)\\quad\\quad\\quad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the two atoms, epsilon is the dielectric constant which\ncan be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command, \\(\\alpha\\)\nis the ion pair dependent damping parameter and erf() is the\nerror-function. The cutoff \\(r_c\\) truncates the interaction distance.\n\nThe style *buck6d/coul/gauss/dsf* computes the Coulomb interaction\nvia the damped shifted force model described in **Fennell**\napproximating an Ewald sum similar to the [pair coul/dsf ](https://docs.lammps.org/pair_coul.html)\nstyles. In *buck6d/coul/gauss/long* an additional damping factor is\napplied to the Coulombic term so it can be used in conjunction with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\noptions. The Coulombic cutoff in this case separates the real and\nreciprocal space evaluation of the Ewald sum.\n\nIf one cutoff is specified it is used for both the vdW and Coulomb\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the vdW terms, and the second is the cutoff for the Coulombic term.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* \\(\\rho\\) (distance\\^-1 units)\n* C (energy-distance\\^6 units)\n* D (distance\\^14 units)\n* \\(\\alpha\\) (distance\\^-1 units)\n* cutoff (distance units)\n\nThe second coefficient, \\(\\rho\\), must be greater than zero. The\nlatter coefficient is optional. If not specified, the global vdW cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy. Instead the smoothing function should be applied\nby setting the global smoothing parameter to a value < 1.0.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\n \n \n**(Fennell)** S. Bureekaew, S. Amirjalayer, M. Tafipolsky, C. Spickermann, T.K. Roy and R. Schmid, Phys. Status Solidi B, 6, 1128 (2013). \n ", - "restrictions": "These styles are part of the MOFFF package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "pair_style lj/cut", - "pair_style lj/cut/gpu", - "pair_style lj/cut/intel", - "pair_style lj/cut/kk", - "pair_style lj/cut/opt", - "pair_style lj/cut/omp" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "widom", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "M", + "type": 2, + "choices": [] + }, + { + "arg": "type", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "T", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* style = lj/cut\n* args = list of arguments for a particular style \n *      lj/cut args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/cut 2.5\npair_coeff * * 1 1\npair_coeff 1 1 1 1.1 2.8\n```\n", - "html_filename": "pair_lj.html", - "short_description": "The *lj/cut* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "The *lj/cut* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nSee the [lj/cut/coul ](https://docs.lammps.org/pair_lj_cut_coul.html) styles to add a Coulombic\npairwise interaction and the [lj/cut/tip4p ](https://docs.lammps.org/pair_lj_cut_tip4p.html) styles to\nadd the TIP4P water model.\n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the\nzero-crossing distance for the potential, *not* as the energy minimum at\n\\(r_0 = 2^{\\frac{1}{6}} \\sigma\\). The _same_ potential function becomes:\n\\[\n E = \\epsilon \\left[ \\left(\\frac{r_0}{r}\\right)^{12} -\n 2 \\left(\\frac{r_0}{r}\\right)^6 \\right] \\qquad r < r_c\\]\nWhen using the minimum as reference width. In the literature both\nformulations are used, but the describe the same potential, only the\n\\(\\sigma\\) value must be computed by \\(\\sigma = r_0 /\n2^{\\frac{1}{6}}\\) for use with LAMMPS, if this latter formulation is\nused.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable\nfor use in free energy calculations, is part of the FEP package and\nis documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\nstyles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric*. See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut* pair styles support the use of the *inner*, *middle*, and\n*outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command,\nmeaning the pairwise forces can be partitioned by distance at different\nlevels of the rRESPA hierarchy. The other styles only support the\n*pair* keyword of run_style respa. See the [run_style ](https://docs.lammps.org/run_style.html)\ncommand for details.\n\n----------\n", - "restrictions": "", - "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut/coul/cut ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/debye ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/wolf ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html)\n* [pair_style lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* widom = style name of this fix command\n* N = invoke this fix every N steps\n* M = number of Widom insertions to attempt every N steps\n* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used)\n* seed = random # seed (positive integer)\n* T = temperature of the system (temperature units)\n* zero or more keyword/value pairs may be appended to args \n *      keyword = mol, region, full_energy, charge, intra_energy \n       mol value = template-ID \n       template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n       region value = region-ID \n       region-ID = ID of region where Widom insertions are allowed \n       full_energy = compute the entire system energy when performing Widom insertions \n       charge value = charge of inserted atoms (charge units) \n       intra_energy value = intramolecular energy (energy units) \n", + "examples": "\n```lmps\nfix 2 gas widom 1 50000 1 19494 2.0\nfix 3 water widom 1000 100 0 29494 300.0 mol h2omol full_energy\n\nlabelmap atom 1 Li\nfix 2 ion widom 1 50000 Li 19494 2.0\n```\n", + "html_filename": "fix_widom.html", + "short_description": "This fix performs Widom insertions of atoms or molecules at the given\ntemperature as discussed in **Frenkel1**", + "description": "This fix performs Widom insertions of atoms or molecules at the given\ntemperature as discussed in **Frenkel1**. Specific uses\ninclude computation of Henry constants of small molecules in microporous\nmaterials or amorphous systems.\n\n\nEvery N timesteps the fix attempts M number of Widom insertions of atoms\nor molecules.\n\nIf the *mol* keyword is used, only molecule insertions are performed.\nConversely, if the *mol* keyword is not used, only atom insertions are\nperformed.\n\nThis command may optionally use the *region* keyword to define an\ninsertion volume. The specified region must have been previously\ndefined with a [region ](https://docs.lammps.org/region.html) command. It must be defined with\nside = *in* . Insertion attempts occur only within the specified\nregion. For non-rectangular regions, random trial points are generated\nwithin the rectangular bounding box until a point is found that lies\ninside the region. If no valid point is generated after 1000 trials, no\ninsertion is performed. If an attempted insertion places the atom or\nmolecule center-of-mass outside the specified region, a new attempted\ninsertion is generated. This process is repeated until the atom or\nmolecule center-of-mass is inside the specified region.\n\nNote that neighbor lists are re-built every timestep that this fix is\ninvoked, so you should not set N to be too small. See the [neighbor](https://docs.lammps.org/neighbor.html) command for details.\n\nWhen an atom or molecule is to be inserted, its coordinates are chosen\nat a random position within the current simulation cell or region.\nRelative coordinates for atoms in a molecule are taken from the\ntemplate molecule provided by the user. The center of mass of the\nmolecule is placed at the insertion point. The orientation of the\nmolecule is chosen at random by rotating about this point.\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the [molecule](https://docs.lammps.org/molecule.html) command, which reads a file that defines the molecule. The\ncoordinates, atom types, charges, etc., as well as any bonding and\nspecial neighbor information for the molecule can be specified in the\nmolecule file. See the [molecule ](https://docs.lammps.org/molecule.html) command for details.\nThe only settings required to be in this file are the coordinates and\ntypes of atoms in the molecule.\n\nNote that fix widom does not use configurational bias MC or any other\nkind of sampling of intramolecular degrees of freedom. Inserted\nmolecules can have different orientations, but they will all have the\nsame intramolecular configuration, which was specified in the molecule\ncommand input.\n\nFor atoms, inserted particles have the specified atom type. For\nmolecules, they use the same atom types as in the template molecule\nsupplied by the user.\n\nThe excess chemical potential mu_ex is defined as:\n\\[\n \\mu_{ex} = -kT \\ln(<\\exp(-(U_{N+1}-U_{N})/{k_B T})>)\\]\nwhere \\(k_B\\) is the Boltzmann constant, \\(T\\) is the\nuser-specified temperature, \\(U_N\\) and \\(U_{N+1}\\) is the\npotential energy of the system with \\(N\\) and \\(N+1\\) particles.\n\nThe *full_energy* option means that the fix calculates the total\npotential energy of the entire simulated system, instead of just the\nenergy of the part that is changed. By default, this option is off, in\nwhich case only partial energies are computed to determine the energy\ndifference due to the proposed change.\n\nThe *full_energy* option is needed for systems with complicated\npotential energy calculations, including the following:\n\n* long-range electrostatics (kspace)\n* many-body pair styles\n* hybrid pair styles\n* eam pair styles\n* tail corrections\n* need to include potential energy contributions from other fixes\n\nIn these cases, LAMMPS will automatically apply the *full_energy*\nkeyword and issue a warning message.\n\nWhen the *mol* keyword is used, the *full_energy* option also includes\nthe intramolecular energy of inserted and deleted molecules, whereas\nthis energy is not included when *full_energy* is not used. If this is\nnot desired, the *intra_energy* keyword can be used to define an amount\nof energy that is subtracted from the final energy when a molecule is\ninserted, and subtracted from the initial energy when a molecule is\ndeleted. For molecules that have a non-zero intramolecular energy, this\nwill ensure roughly the same behavior whether or not the *full_energy*\noption is used.\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [restrain ](https://docs.lammps.org/fix_restrain.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when performing\nWidom insertions), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*energy* option for that fix. The doc pages for individual [fix](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\nUse the *charge* option to insert atoms with a user-specified point\ncharge. Note that doing so will cause the system to become non-neutral.\nLAMMPS issues a warning when using long-range electrostatics (kspace)\nwith non-neutral systems. See the [compute group/group](https://docs.lammps.org/compute_group_group.html) documentation for more details about simulating\nnon-neutral systems with kspace on.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for Widom insertions etc. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep > ](https://docs.lammps.org/reset_timestep.html). The fix will try to detect it and stop with an\n > error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 3, which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n* 1 = average excess chemical potential on each timestep\n* 2 = average difference in potential energy on each timestep\n* 3 = volume of the insertion region\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Frenkel1)** Frenkel and Smit, Understanding Molecular Simulation,\nAcademic Press, London, 2002. \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is **required**.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nCan be run in parallel, but some aspects of the insertion procedure\nwill not scale well in parallel. Only usable for 3D simulations.\n", + "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html),\n[neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n" }, { "command": [ - "fix move" + "fix nvt/uef" ], "syntax": [ - "fix ID group-ID move style args keyword values ..." + "fix ID group-ID style_name erate edot_x edot_y temp Tstart Tstop Tdamp keyword value ..." ], "args": [ [ @@ -7419,96 +7130,75 @@ export const command_docs = [ "choices": [] }, { - "arg": "move", - "type": 1, - "choices": [] - }, - { - "arg": "variable", + "arg": "npt/uef", "type": 3, "choices": [ - "linear", - "wiggle", - "rotate", - "transrot", - "variable" + "nvt/uef", + "npt/uef" ] }, { - "arg": "args", + "arg": "erate", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "edot_x", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "edot_y", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* move = style name of this fix command\n* style = linear or wiggle or rotate or transrot or variable \n *        linear args = Vx Vy Vz \n         Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *        wiggle args = Ax Ay Az period \n         Ax,Ay,Az = components of amplitude vector (distance units), any component can be specified as NULL \n         period = period of oscillation (time units) \n *        rotate args = Px Py Pz Rx Ry Rz period \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        transrot args = Vx Vy Vz Px Py Pz Rx Ry Rz period \n         Vx,Vy,Vz = components of velocity vector (velocity units) \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        variable args = v_dx v_dy v_dz v_vx v_vy v_vz \n         v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL \n         v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = box or lattice \n", - "examples": "\n```lmps\nfix 1 boundary move wiggle 3.0 0.0 0.0 1.0 units box\nfix 2 boundary move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0\nfix 2 boundary move variable v_myx v_myy NULL v_VX v_VY NULL\nfix 3 boundary move transrot 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 1.0 5.0 units box\n```\n", - "html_filename": "fix_move.html", - "short_description": "Perform updates of position and velocity for atoms in the group each\ntimestep using the specified settings or formulas, without regard to\nforces on the atoms", - "description": "Perform updates of position and velocity for atoms in the group each\ntimestep using the specified settings or formulas, without regard to\nforces on the atoms. This can be useful for boundary or other atoms,\nwhose movement can influence nearby atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The atoms affected by this fix should not normally be time integrated\n > by other fixes (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt > ](https://docs.lammps.org/fix_nh.html)), since that will change their positions and velocities\n > twice. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As atoms move due to this fix, they will pass through periodic\n > boundaries and be remapped to the other side of the simulation box,\n > just as they would during normal time integration (e.g. via the\n > [fix nve ](https://docs.lammps.org/fix_nve.html) command). It is up to you to decide whether\n > periodic boundaries are appropriate with the kind of atom motion you\n > are prescribing with this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed below, atoms are moved relative to their initial\n > position at the time the fix is specified. These initial coordinates\n > are stored by the fix in \"unwrapped\" form, by using the image flags\n > associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section\n > of the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image\n > flags and how they are set for each atom. You can reset the image\n > flags (e.g. to 0) before invoking this fix by using the [set > image ](https://docs.lammps.org/set.html) command. \n > \n\n----------\n\nThe *linear* style moves atoms at a constant velocity, so that their\nposition *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + V \\* delta\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *V* is the specified velocity vector with components\n(Vx,Vy,Vz), and *delta* is the time elapsed since the fix was\nspecified. This style also sets the velocity of each atom to V =\n(Vx,Vy,Vz). If any of the velocity components is specified as NULL,\nthen the position and velocity of that component is time integrated\nthe same as the [fix nve ](https://docs.lammps.org/fix_nve.html) command would perform, using\nthe corresponding force component on the atom.\n\nNote that the *linear* style is identical to using the *variable*\nstyle with an [equal-style variable ](https://docs.lammps.org/variable.html) that uses the\nvdisplace() function. E.g.\n\n```lmps\nvariable V equal 10.0\nvariable x equal vdisplace(0.0,$V)\nfix 1 boundary move variable v_x NULL NULL v_V NULL NULL\n```\nThe *wiggle* style moves atoms in an oscillatory fashion, so that\ntheir position *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + A sin(omega\\*delta)\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *A* is the specified amplitude vector with components\n(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time elapsed\nsince the fix was specified. This style also sets the velocity of each\natom to the time derivative of this expression. If any of the amplitude\ncomponents is specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix nve ](https://docs.lammps.org/fix_nve.html)\ncommand would perform, using the corresponding force component on the\natom.\n\nNote that the *wiggle* style is identical to using the *variable*\nstyle with [equal-style variables ](https://docs.lammps.org/variable.html) that use the\nswiggle() and cwiggle() functions. E.g.\n\n```lmps\nvariable A equal 10.0\nvariable T equal 5.0\nvariable omega equal 2.0*PI/$T\nvariable x equal swiggle(0.0,$A,$T)\nvariable v equal v_omega*($A-cwiggle(0.0,$A,$T))\nfix 1 boundary move variable v_x NULL NULL v_v NULL NULL\n```\nThe *rotate* style rotates atoms around a rotation axis *R* = (Rx,Ry,Rz)\nthat goes through a point *P* = (Px,Py,Pz). The *period* of the\nrotation is also specified. The direction of rotation for the atoms\naround the rotation axis is consistent with the right-hand rule: if your\nright-hand thumb points along *R*, then your fingers wrap around the\naxis in the direction of rotation.\n\nThis style also sets the velocity of each atom to (omega cross Rperp)\nwhere omega is its angular velocity around the rotation axis and Rperp\nis a perpendicular vector from the rotation axis to the atom. If the\ndefined [atom_style ](https://docs.lammps.org/atom_style.html) assigns an angular velocity or\nangular momentum or orientation to each atom ([atom styles](https://docs.lammps.org/atom_style.html) sphere, ellipsoid, line, tri, body), then\nthose properties are also updated appropriately to correspond to the\natom's motion and rotation over time.\n\nThe *transrot* style combines the effects of *rotate* and *linear* so\nthat it is possible to prescribe a rotating group of atoms that also\nmoves at a constant velocity. The arguments are for the translation\nfirst and then for the rotation. Since the rotation affects all\ncoordinate components, it is not possible to set any of the\ntranslation vector components to NULL.\n\nThe *variable* style allows the position and velocity components of\neach atom to be set by formulas specified via the\n[variable ](https://docs.lammps.org/variable.html) command. Each of the 6 variables is\nspecified as an argument to the fix as v_name, where name is the\nvariable name that is defined elsewhere in the input script.\n\nEach variable must be of either the *equal* or *atom* style.\n*Equal* -style variables compute a single numeric quantity, that can be\na function of the timestep as well as of other simulation values.\n*Atom* -style variables compute a numeric quantity for each atom, that\ncan be a function per-atom quantities, such as the atom's position, as\nwell as of the timestep and other simulation values. Note that this fix\nstores the original coordinates of each atom (see note below) so that\nper-atom quantity can be used in an atom-style variable formula. See\nthe [variable ](https://docs.lammps.org/variable.html) command for details.\n\nThe first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*\nstyle are used to calculate a displacement from the atom's original\nposition at the time the fix was specified. The second 3 variables\n(v_vx,v_vy,v_vz) specified are used to compute a velocity for each\natom.\n\nAny of the 6 variables can be specified as NULL. If both the\ndisplacement and velocity variables for a particular x,y,z component\nare specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix nve ](https://docs.lammps.org/fix_nve.html)\ncommand would perform, using the corresponding force component on the\natom. If only the velocity variable for a component is specified as\nNULL, then the displacement variable will be used to set the position\nof the atom, and its velocity component will not be changed. If only\nthe displacement variable for a component is specified as NULL, then\nthe velocity variable will be used to set the velocity of the atom,\nand the position of the atom will be time integrated using that\nvelocity.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the *linear* velocity and *wiggle* amplitude and *rotate*\norigin. This setting is ignored for the *variable* style. A *box*\nvalue selects standard units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand, e.g. velocity in Angstroms/fs and amplitude and position\nin Angstroms for units = real. A *lattice* value means the velocity\nunits are in lattice spacings per time and the amplitude and position\nare in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Each of these 3\nquantities may be dependent on the x,y,z dimension, since the lattice\nspacings can be different in x,y,z.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of moving atoms to [binaryrestart files ](https://docs.lammps.org/restart.html), as well as the initial timestep, so that the\nmotion can be continuous in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the move positions are a function of the current\n > timestep and the initial timestep, you cannot reset the timestep to a\n > different value after reading a restart file, if you expect a fix move\n > command to work in an uninterrupted fashion. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the original unwrapped x,y,z coords of\neach atom. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix adjusts the\nposition and velocity of atoms on the outermost rRESPA level.\n", - "restrictions": " none\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [displace_atoms ](https://docs.lammps.org/displace_atoms.html)\n" -}, -{ - "command": [ - "compute" - ], - "syntax": [ - "compute ID group-ID style args" - ], - "args": [ - [ + }, { - "arg": "compute", - "type": 1, + "arg": "temp", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "style", + "arg": "Tdamp", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the computation\n* group-ID = ID of the group of atoms to perform the computation on\n* style = one of a list of possible style names (see below)\n* args = arguments used by a particular style \n", - "examples": "\n```lmps\ncompute 1 all temp\ncompute newtemp flow temp/partial 1 1 0\ncompute 3 all ke/atom\n```\n", - "html_filename": "compute.html", - "short_description": "Define a diagnostic computation that will be performed on a group of\natoms", - "description": "Define a diagnostic computation that will be performed on a group of\natoms. Quantities calculated by a compute are instantaneous values,\nmeaning they are calculated from information about atoms on the\ncurrent timestep or iteration, though internally a compute may store\nsome information about a previous state of the system. Defining a\ncompute does not perform the computation. Instead computes are\ninvoked by other LAMMPS commands as needed (e.g., to calculate a\ntemperature needed for a thermostat fix or to generate thermodynamic\nor dump file output). See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor a summary of various LAMMPS output options, many of which involve\ncomputes.\n\nThe ID of a compute can only contain alphanumeric characters and\nunderscores.\n\n----------\n\nComputes calculate and store any of four *styles* of quantities:\nglobal, per-atom, local, or per-grid.\n\nA global quantity is one or more system-wide values, e.g. the\ntemperature of the system. A per-atom quantity is one or more values\nper atom, e.g. the kinetic energy of each atom. Per-atom values are\nset to 0.0 for atoms not in the specified compute group. Local\nquantities are calculated by each processor based on the atoms it\nowns, but there may be zero or more per atom, e.g. a list of bond\ndistances. Per-grid quantities are calculated on a regular 2d or 3d\ngrid which overlays a 2d or 3d simulation domain. The grid points and\nthe data they store are distributed across processors; each processor\nowns the grid points which fall within its subdomain.\n\nAs a general rule of thumb, computes that produce per-atom quantities\nhave the word \"atom\" at the end of their style, e.g. *ke/atom* .\nComputes that produce local quantities have the word \"local\" at the\nend of their style, e.g. *bond/local* . Computes that produce\nper-grid quantities have the word \"grid\" at the end of their style,\ne.g. *property/grid* . And styles with neither \"atom\" or \"local\" or\n\"grid\" at the end of their style name produce global quantities.\n\nGlobal, per-atom, local, and per-grid quantities can also be of three\n*kinds*: a single scalar value (global only), a vector of values, or a\n2d array of values. For per-atom, local, and per-grid quantities, a\n\"vector\" means a single value for each atom, each local entity\n(e.g. bond), or grid cell. Likewise an \"array\", means multiple values\nfor each atom, each local entity, or each grid cell.\n\nNote that a single compute can produce any combination of global,\nper-atom, local, or per-grid values. Likewise it can produce any\ncombination of scalar, vector, or array output for each style. The\nexception is that for per-atom, local, and per-grid output, either a\nvector or array can be produced, but not both. The doc page for each\ncompute explains the values it produces.\n\nWhen a compute output is accessed by another input script command it\nis referenced via the following bracket notation, where ID is the ID\nof the compute:\n\n| | |\n|---|---|\n| c_ID | entire scalar, vector, or array |\n| c_ID[I] | one element of vector, one column of array |\n| c_ID[I][J] | one element of array |\n\nIn other words, using one bracket reduces the dimension of the\nquantity once (vector \\(\\to\\) scalar, array \\(\\to\\) vector).\nUsing two brackets reduces the dimension twice (array \\(\\to\\)\nscalar). Thus, for example, a command that uses global scalar compute\nvalues as input can also process elements of a vector or array.\nDepending on the command, this can either be done directly using the\nsyntax in the table, or by first defining a [variable ](https://docs.lammps.org/variable.html)\nof the appropriate style to store the quantity, then using the\nvariable as an input to the command.\n\nNote that commands and [variables ](https://docs.lammps.org/variable.html) which take compute\noutputs as input typically do not allow for all styles and kinds of\ndata (e.g., a command may require global but not per-atom values, or\nit may require a vector of values, not a scalar). This means there is\ntypically no ambiguity about referring to a compute output as c_ID\neven if it produces, for example, both a scalar and vector. The doc\npages for various commands explain the details, including how any\nambiguities are resolved.\n\n----------\n\nIn LAMMPS, the values generated by a compute can be used in several\nways:\n\n* The results of computes that calculate a global temperature or\n pressure can be used by fixes that do thermostatting or barostatting\n or when atom velocities are created.\n* Global values can be output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) or [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n Or the values can be referenced in a [variable equal ](https://docs.lammps.org/variable.html) or\n [variable atom ](https://docs.lammps.org/variable.html) command.\n* Per-atom values can be output via the [dump custom ](https://docs.lammps.org/dump.html) command.\n Or they can be time-averaged via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\n command or reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command. Or the per-atom values can be referenced in an [atom-style variable ](https://docs.lammps.org/variable.html).\n* Local values can be reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command, or histogrammed by the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command, or output by the [dump local ](https://docs.lammps.org/dump.html) command.\n\nThe results of computes that calculate global quantities can be either\n\"intensive\" or \"extensive\" values. Intensive means the value is\nindependent of the number of atoms in the simulation\n(e.g., temperature). Extensive means the value scales with the number of\natoms in the simulation (e.g., total rotational kinetic energy).\n[Thermodynamic output ](https://docs.lammps.org/thermo_style.html) will normalize extensive\nvalues by the number of atoms in the system, depending on the\n\"thermo_modify norm\" setting. It will not normalize intensive values.\nIf a compute value is accessed in another way (e.g., by a\n[variable ](https://docs.lammps.org/variable.html)), you may want to know whether it is an\nintensive or extensive value. See the page for individual\ncomputes for further info.\n\n----------\n\nLAMMPS creates its own computes internally for thermodynamic output.\nThree computes are always created, named \"thermo_temp\",\n\"thermo_press\", and \"thermo_pe\", as if these commands had been invoked\nin the input script:\n\n```lmps\ncompute thermo_temp all temp\ncompute thermo_press all pressure thermo_temp\ncompute thermo_pe all pe\n```\nAdditional computes for other quantities are created if the thermo\nstyle requires it. See the documentation for the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command.\n\nFixes that calculate temperature or pressure, i.e. for thermostatting\nor barostatting, may also create computes. These are discussed in the\ndocumentation for specific [fix ](https://docs.lammps.org/fix.html) commands.\n\nIn all these cases, the default computes LAMMPS creates can be\nreplaced by computes defined by the user in the input script, as\ndescribed by the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) and [fix modify ](https://docs.lammps.org/fix_modify.html) commands.\n\nProperties of either a default or user-defined compute can be modified\nvia the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nComputes can be deleted with the [uncompute ](https://docs.lammps.org/uncompute.html) command.\n\nCode for new computes can be added to LAMMPS; see the\n[Modify ](https://docs.lammps.org/Modify.html) page for details. The results of their\ncalculations accessed in the various ways described above.\n\n----------\n\nEach compute style has its own page which describes its arguments\nand what it does. Here is an alphabetic list of compute styles\navailable in LAMMPS. They are also listed in more compact form on the\n[Commands compute ](https://docs.lammps.org/Commands_compute.html) doc page.\n\nThere are also additional accelerated compute styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands compute ](https://docs.lammps.org/Commands_compute.html) page are followed by one or more of\n(g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [ackland/atom ](https://docs.lammps.org/compute_ackland_atom.html) - determines the local lattice structure based on the Ackland formulation\n* [adf ](https://docs.lammps.org/compute_adf.html) - angular distribution function of triples of atoms\n* [aggregate/atom ](https://docs.lammps.org/compute_cluster_atom.html) - aggregate ID for each atom\n* [angle ](https://docs.lammps.org/compute_angle.html) - energy of each angle sub-style\n* [angle/local ](https://docs.lammps.org/compute_angle_local.html) - theta and energy of each angle\n* [angmom/chunk ](https://docs.lammps.org/compute_angmom_chunk.html) - angular momentum for each chunk\n* [ave/sphere/atom ](https://docs.lammps.org/compute_ave_sphere_atom.html) - compute local density and temperature around each atom\n* [basal/atom ](https://docs.lammps.org/compute_basal_atom.html) - calculates the hexagonal close-packed \"c\" lattice vector of each atom\n* [body/local ](https://docs.lammps.org/compute_body_local.html) - attributes of body sub-particles\n* [bond ](https://docs.lammps.org/compute_bond.html) - energy of each bond sub-style\n* [bond/local ](https://docs.lammps.org/compute_bond_local.html) - distance and energy of each bond\n* [born/matrix ](https://docs.lammps.org/compute_born_matrix.html) - second derivative or potential with respect to strain\n* [centro/atom ](https://docs.lammps.org/compute_centro_atom.html) - centro-symmetry parameter for each atom\n* [centroid/stress/atom ](https://docs.lammps.org/compute_stress_atom.html) - centroid based stress tensor for each atom\n* [chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) - assign chunk IDs to each atom\n* [chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html) - spreads chunk values to each atom in chunk\n* [cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html) - cluster ID for each atom\n* [cna/atom ](https://docs.lammps.org/compute_cna_atom.html) - common neighbor analysis (CNA) for each atom\n* [cnp/atom ](https://docs.lammps.org/compute_cnp_atom.html) - common neighborhood parameter (CNP) for each atom\n* [com ](https://docs.lammps.org/compute_com.html) - center of mass of group of atoms\n* [com/chunk ](https://docs.lammps.org/compute_com_chunk.html) - center of mass for each chunk\n* [contact/atom ](https://docs.lammps.org/compute_contact_atom.html) - contact count for each spherical particle\n* [coord/atom ](https://docs.lammps.org/compute_coord_atom.html) - coordination number for each atom\n* [count/type ](https://docs.lammps.org/compute_count_type.html) - count of atoms or bonds by type\n* [damage/atom ](https://docs.lammps.org/compute_damage_atom.html) - Peridynamic damage for each atom\n* [dihedral ](https://docs.lammps.org/compute_dihedral.html) - energy of each dihedral sub-style\n* [dihedral/local ](https://docs.lammps.org/compute_dihedral_local.html) - angle of each dihedral\n* [dilatation/atom ](https://docs.lammps.org/compute_dilatation_atom.html) - Peridynamic dilatation for each atom\n* [dipole ](https://docs.lammps.org/compute_dipole.html) - dipole vector and total dipole\n* [dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html) - dipole vector and total dipole for each chunk\n* [dipole/tip4p ](https://docs.lammps.org/compute_dipole.html) - dipole vector and total dipole with TIP4P pair style\n* [dipole/tip4p/chunk ](https://docs.lammps.org/compute_dipole_chunk.html) - dipole vector and total dipole for each chunk with TIP4P pair style\n* [displace/atom ](https://docs.lammps.org/compute_displace_atom.html) - displacement of each atom\n* [dpd ](https://docs.lammps.org/compute_dpd.html) - total values of internal conductive energy, internal mechanical energy, chemical energy, and harmonic average of internal temperature\n* [dpd/atom ](https://docs.lammps.org/compute_dpd_atom.html) - per-particle values of internal conductive energy, internal mechanical energy, chemical energy, and internal temperature\n* [edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html) - per-atom temperature for each eDPD particle in a group\n* [efield/atom ](https://docs.lammps.org/compute_efield_atom.html) - electric field at each atom\n* [efield/wolf/atom ](https://docs.lammps.org/compute_efield_wolf_atom.html) - electric field at each atom\n* [entropy/atom ](https://docs.lammps.org/compute_entropy_atom.html) - pair entropy fingerprint of each atom\n* [erotate/asphere ](https://docs.lammps.org/compute_erotate_asphere.html) - rotational energy of aspherical particles\n* [erotate/rigid ](https://docs.lammps.org/compute_erotate_rigid.html) - rotational energy of rigid bodies\n* [erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html) - rotational energy of spherical particles\n* [erotate/sphere/atom ](https://docs.lammps.org/compute_erotate_sphere_atom.html) - rotational energy for each spherical particle\n* [event/displace ](https://docs.lammps.org/compute_event_displace.html) - detect event on atom displacement\n* [fabric ](https://docs.lammps.org/compute_fabric.html) - calculates fabric tensors from pair interactions\n* [fep ](https://docs.lammps.org/compute_fep.html) - compute free energies for alchemical transformation from perturbation theory\n* [fep/ta ](https://docs.lammps.org/compute_fep_ta.html) - compute free energies for a test area perturbation\n* [force/tally ](https://docs.lammps.org/compute_tally.html) - force between two groups of atoms via the tally callback mechanism\n* [fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html) - fragment ID for each atom\n* [global/atom ](https://docs.lammps.org/compute_global_atom.html) - assign global values to each atom from arrays of global values\n* [group/group ](https://docs.lammps.org/compute_group_group.html) - energy/force between two groups of atoms\n* [gyration ](https://docs.lammps.org/compute_gyration.html) - radius of gyration of group of atoms\n* [gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html) - radius of gyration for each chunk\n* [gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html) - shape parameters from gyration tensor\n* [gyration/shape/chunk ](https://docs.lammps.org/compute_gyration_shape_chunk.html) - shape parameters from gyration tensor for each chunk\n* [heat/flux ](https://docs.lammps.org/compute_heat_flux.html) - heat flux through a group of atoms\n* [heat/flux/tally ](https://docs.lammps.org/compute_tally.html) - heat flux through a group of atoms via the tally callback mechanism\n* [heat/flux/virial/tally ](https://docs.lammps.org/compute_tally.html) - virial heat flux between two groups via the tally callback mechanism\n* [hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html) - bond orientational order parameter q6\n* [hma ](https://docs.lammps.org/compute_hma.html) - harmonically mapped averaging for atomic crystals\n* [improper ](https://docs.lammps.org/compute_improper.html) - energy of each improper sub-style\n* [improper/local ](https://docs.lammps.org/compute_improper_local.html) - angle of each improper\n* [inertia/chunk ](https://docs.lammps.org/compute_inertia_chunk.html) - inertia tensor for each chunk\n* [ke ](https://docs.lammps.org/compute_ke.html) - translational kinetic energy\n* [ke/atom ](https://docs.lammps.org/compute_ke_atom.html) - kinetic energy for each atom\n* [ke/atom/eff ](https://docs.lammps.org/compute_ke_atom_eff.html) - per-atom translational and radial kinetic energy in the electron force field model\n* [ke/eff ](https://docs.lammps.org/compute_ke_eff.html) - kinetic energy of a group of nuclei and electrons in the electron force field model\n* [ke/rigid ](https://docs.lammps.org/compute_ke_rigid.html) - translational kinetic energy of rigid bodies\n* [composition/atom ](https://docs.lammps.org/compute_composition_atom.html) - local composition for each atom\n* [mliap ](https://docs.lammps.org/compute_mliap.html) - gradients of energy and forces with respect to model parameters and related quantities for training machine learning interatomic potentials\n* [momentum ](https://docs.lammps.org/compute_momentum.html) - translational momentum\n* [msd ](https://docs.lammps.org/compute_msd.html) - mean-squared displacement of group of atoms\n* [msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html) - mean-squared displacement for each chunk\n* [msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html) - MSD and non-Gaussian parameter of group of atoms\n* [nbond/atom ](https://docs.lammps.org/compute_nbond_atom.html) - calculates number of bonds per atom\n* [omega/chunk ](https://docs.lammps.org/compute_omega_chunk.html) - angular velocity for each chunk\n* [orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) - Steinhardt bond orientational order parameters Ql\n* [pace ](https://docs.lammps.org/compute_pace.html) - atomic cluster expansion descriptors and related quantities\n* [pair ](https://docs.lammps.org/compute_pair.html) - values computed by a pair style\n* [pair/local ](https://docs.lammps.org/compute_pair_local.html) - distance/energy/force of each pairwise interaction\n* [pe ](https://docs.lammps.org/compute_pe.html) - potential energy\n* [pe/atom ](https://docs.lammps.org/compute_pe_atom.html) - potential energy for each atom\n* [pe/mol/tally ](https://docs.lammps.org/compute_tally.html) - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism\n* [pe/tally ](https://docs.lammps.org/compute_tally.html) - potential energy between two groups of atoms via the tally callback mechanism\n* [plasticity/atom ](https://docs.lammps.org/compute_plasticity_atom.html) - Peridynamic plasticity for each atom\n* [pod/atom ](https://docs.lammps.org/compute_pod_atom.html) - POD descriptors for each atom\n* [podd/atom ](https://docs.lammps.org/compute_pod_atom.html) - derivative of POD descriptors for each atom\n* [pod/local ](https://docs.lammps.org/compute_pod_atom.html) - local POD descriptors and their derivatives\n* [pod/global ](https://docs.lammps.org/compute_pod_atom.html) - global POD descriptors and their derivatives\n* [pressure ](https://docs.lammps.org/compute_pressure.html) - total pressure and pressure tensor\n* [pressure/alchemy ](https://docs.lammps.org/compute_pressure_alchemy.html) - mixed system total pressure and pressure tensor for [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) runs\n* [pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) - pressure tensor in the reference frame of an applied flow field\n* [property/atom ](https://docs.lammps.org/compute_property_atom.html) - convert atom attributes to per-atom vectors/arrays\n* [property/chunk ](https://docs.lammps.org/compute_property_chunk.html) - extract various per-chunk attributes\n* [property/grid ](https://docs.lammps.org/compute_property_grid.html) - convert per-grid attributes to per-grid vectors/arrays\n* [property/local ](https://docs.lammps.org/compute_property_local.html) - convert local attributes to local vectors/arrays\n* [ptm/atom ](https://docs.lammps.org/compute_ptm_atom.html) - determines the local lattice structure based on the Polyhedral Template Matching method\n* [rattlers/atom ](https://docs.lammps.org/compute_rattlers_atom.html) - identify under-coordinated rattler atoms\n* [rdf ](https://docs.lammps.org/compute_rdf.html) - radial distribution function \\(g(r)\\) histogram of group of atoms\n* [reaxff/atom ](https://docs.lammps.org/compute_reaxff_atom.html) - extract ReaxFF bond information\n* [reduce ](https://docs.lammps.org/compute_reduce.html) - combine per-atom quantities into a single global value\n* [reduce/chunk ](https://docs.lammps.org/compute_reduce_chunk.html) - reduce per-atom quantities within each chunk\n* [reduce/region ](https://docs.lammps.org/compute_reduce.html) - same as compute reduce, within a region\n* [rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html) - convert atom attributes in RHEO package to per-atom vectors/arrays\n* [rigid/local ](https://docs.lammps.org/compute_rigid_local.html) - extract rigid body attributes\n* [saed ](https://docs.lammps.org/compute_saed.html) - electron diffraction intensity on a mesh of reciprocal lattice nodes\n* [slcsa/atom ](https://docs.lammps.org/compute_slcsa_atom.html) - perform Supervised Learning Crystal Structure Analysis (SL-CSA)\n* [slice ](https://docs.lammps.org/compute_slice.html) - extract values from global vector or array\n* [smd/contact/radius ](https://docs.lammps.org/compute_smd_contact_radius.html) - contact radius for Smooth Mach Dynamics\n* [smd/damage ](https://docs.lammps.org/compute_smd_damage.html) - damage status of SPH particles in Smooth Mach Dynamics\n* [smd/hourglass/error ](https://docs.lammps.org/compute_smd_hourglass_error.html) - error associated with approximated relative separation in Smooth Mach Dynamics\n* [smd/internal/energy ](https://docs.lammps.org/compute_smd_internal_energy.html) - per-particle enthalpy in Smooth Mach Dynamics\n* [smd/plastic/strain ](https://docs.lammps.org/compute_smd_plastic_strain.html) - equivalent plastic strain per particle in Smooth Mach Dynamics\n* [smd/plastic/strain/rate ](https://docs.lammps.org/compute_smd_plastic_strain_rate.html) - time rate of the equivalent plastic strain in Smooth Mach Dynamics\n* [smd/rho ](https://docs.lammps.org/compute_smd_rho.html) - per-particle mass density in Smooth Mach Dynamics\n* [smd/tlsph/defgrad ](https://docs.lammps.org/compute_smd_tlsph_defgrad.html) - deformation gradient in Smooth Mach Dynamics\n* [smd/tlsph/dt ](https://docs.lammps.org/compute_smd_tlsph_dt.html) - CFL-stable time increment per particle in Smooth Mach Dynamics\n* [smd/tlsph/num/neighs ](https://docs.lammps.org/compute_smd_tlsph_num_neighs.html) - number of particles inside the smoothing kernel radius for Smooth Mach Dynamics\n* [smd/tlsph/shape ](https://docs.lammps.org/compute_smd_tlsph_shape.html) - current shape of the volume of a particle for Smooth Mach Dynamics\n* [smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html) - Green--Lagrange strain tensor for Smooth Mach Dynamics\n* [smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html) - rate of strain for Smooth Mach Dynamics\n* [smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html) - per-particle Cauchy stress tensor for SPH particles\n* [smd/triangle/vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html) - coordinates of vertices corresponding to the triangle elements of a mesh for Smooth Mach Dynamics\n* [smd/ulsph/effm ](https://docs.lammps.org/compute_smd_ulsph_effm.html) - per-particle effective shear modulus\n* [smd/ulsph/num/neighs ](https://docs.lammps.org/compute_smd_ulsph_num_neighs.html) - number of neighbor particles inside the smoothing kernel radius for Smooth Mach Dynamics\n* [smd/ulsph/strain ](https://docs.lammps.org/compute_smd_ulsph_strain.html) - logarithmic strain tensor for Smooth Mach Dynamics\n* [smd/ulsph/strain/rate ](https://docs.lammps.org/compute_smd_ulsph_strain_rate.html) - logarithmic strain rate for Smooth Mach Dynamics\n* [smd/ulsph/stress ](https://docs.lammps.org/compute_smd_ulsph_stress.html) - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics\n* [smd/vol ](https://docs.lammps.org/compute_smd_vol.html) - per-particle volumes and their sum in Smooth Mach Dynamics\n* [snap ](https://docs.lammps.org/compute_sna_atom.html) - gradients of SNAP energy and forces with respect to linear coefficients and related quantities for fitting SNAP potentials\n* [sna/atom ](https://docs.lammps.org/compute_sna_atom.html) - bispectrum components for each atom\n* [sna/grid ](https://docs.lammps.org/compute_sna_atom.html) - global array of bispectrum components on a regular grid\n* [sna/grid/local ](https://docs.lammps.org/compute_sna_atom.html) - local array of bispectrum components on a regular grid\n* [snad/atom ](https://docs.lammps.org/compute_sna_atom.html) - derivative of bispectrum components for each atom\n* [snav/atom ](https://docs.lammps.org/compute_sna_atom.html) - virial contribution from bispectrum components for each atom\n* [sph/e/atom ](https://docs.lammps.org/compute_sph_e_atom.html) - per-atom internal energy of Smooth-Particle Hydrodynamics atoms\n* [sph/rho/atom ](https://docs.lammps.org/compute_sph_rho_atom.html) - per-atom density of Smooth-Particle Hydrodynamics atoms\n* [sph/t/atom ](https://docs.lammps.org/compute_sph_t_atom.html) - per-atom internal temperature of Smooth-Particle Hydrodynamics atoms\n* [spin ](https://docs.lammps.org/compute_spin.html) - magnetic quantities for a system of atoms having spins\n* [stress/atom ](https://docs.lammps.org/compute_stress_atom.html) - stress tensor for each atom\n* [stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html) - stress tensor in cartesian coordinates\n* [stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html) - stress tensor in cylindrical coordinates\n* [stress/mop ](https://docs.lammps.org/compute_stress_mop.html) - normal components of the local stress tensor using the method of planes\n* [stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html) - profile of the normal components of the local stress tensor using the method of planes\n* [stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html) - stress tensor in spherical coordinates\n* [stress/tally ](https://docs.lammps.org/compute_tally.html) - stress between two groups of atoms via the tally callback mechanism\n* [tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html) - per-atom chemical concentration of a specified species for each tDPD particle\n* [temp ](https://docs.lammps.org/compute_temp.html) - temperature of group of atoms\n* [temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) - temperature of aspherical particles\n* [temp/body ](https://docs.lammps.org/compute_temp_body.html) - temperature of body particles\n* [temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) - temperature of each chunk\n* [temp/com ](https://docs.lammps.org/compute_temp_com.html) - temperature after subtracting center-of-mass velocity\n* [temp/cs ](https://docs.lammps.org/compute_temp_cs.html) - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other\n* [temp/deform ](https://docs.lammps.org/compute_temp_deform.html) - temperature excluding box deformation velocity\n* [temp/deform/eff ](https://docs.lammps.org/compute_temp_deform_eff.html) - temperature excluding box deformation velocity in the electron force field model\n* [temp/drude ](https://docs.lammps.org/compute_temp_drude.html) - temperature of Core--Drude pairs\n* [temp/eff ](https://docs.lammps.org/compute_temp_eff.html) - temperature of a group of nuclei and electrons in the electron force field model\n* [temp/partial ](https://docs.lammps.org/compute_temp_partial.html) - temperature excluding one or more dimensions of velocity\n* [temp/profile ](https://docs.lammps.org/compute_temp_profile.html) - temperature excluding a binned velocity profile\n* [temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) - temperature excluding ramped velocity component\n* [temp/region ](https://docs.lammps.org/compute_temp_region.html) - temperature of a region of atoms\n* [temp/region/eff ](https://docs.lammps.org/compute_temp_region_eff.html) - temperature of a region of nuclei and electrons in the electron force field model\n* [temp/rotate ](https://docs.lammps.org/compute_temp_rotate.html) - temperature of a group of atoms after subtracting out their center-of-mass and angular velocities\n* [temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) - temperature of spherical particles\n* [temp/uef ](https://docs.lammps.org/compute_temp_uef.html) - kinetic energy tensor in the reference frame of an applied flow field\n* [ti ](https://docs.lammps.org/compute_ti.html) - thermodynamic integration free energy values\n* [torque/chunk ](https://docs.lammps.org/compute_torque_chunk.html) - torque applied on each chunk\n* [vacf ](https://docs.lammps.org/compute_vacf.html) - velocity auto-correlation function of group of atoms\n* [vcm/chunk ](https://docs.lammps.org/compute_vcm_chunk.html) - velocity of center-of-mass for each chunk\n* [viscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html) - velocity profile under cosine-shaped acceleration\n* [voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) - Voronoi volume and neighbors for each atom\n* [xrd ](https://docs.lammps.org/compute_xrd.html) - X-ray diffraction intensity on a mesh of reciprocal lattice nodes\n", - "restrictions": "none\n", - "related": "[uncompute ](https://docs.lammps.org/uncompute.html), [compute_modify ](https://docs.lammps.org/compute_modify.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt/uef or npt/uef\n* *Tstart*, *Tstop*, and Tdamp are documented in the [fix npt ](https://docs.lammps.org/fix_nh.html) command\n* edot_x and edot_y are the strain rates in the x and y directions (1/(time units))\n* one or more keyword/value pairs may be appended \n *      keyword = erate or ext or strain or temp or iso or x or y or z or tchain or pchain or tloop or ploop or mtk \n       erate values = e_x e_y = true strain rates (required) \n       ext value = x or y or z or xy or yz or xz = external dimensions \n       sets the external dimensions used to calculate the scalar pressure \n       strain values = e_x e_y = initial strain \n       usually not needed, but may be needed to resume a run with a data file. \n       temp, iso, x, y, z, tchain, pchain, tloop, ploop, mtk \n       keywords documented by the [fix npt ](https://docs.lammps.org/fix_nh.html) command \n", + "examples": "\n```lmps\nfix uniax_nvt all nvt/uef temp 400 400 100 erate 0.00001 -0.000005\nfix biax_nvt all nvt/uef temp 400 400 100 erate 0.000005 0.000005\nfix uniax_npt all npt/uef temp 400 400 300 iso 1 1 3000 erate 0.00001 -0.000005 ext yz\nfix biax_npt all npt/uef temp 400 400 100 erate -0.00001 0.000005 x 1 1 3000\n```\n", + "html_filename": "fix_nh_uef.html", + "short_description": "These fixes can be used to simulate non-equilibrium molecular dynamics\n(NEMD) under diagonal flow fields, including uniaxial and bi-axial flow", + "description": "These fixes can be used to simulate non-equilibrium molecular dynamics\n(NEMD) under diagonal flow fields, including uniaxial and bi-axial flow.\nSimulations under continuous extensional flow may be carried out for an\nindefinite amount of time. It is an implementation of the boundary\nconditions from **Dobson**, and also uses numerical\nlattice reduction as was proposed by **Hunt**. The lattice\nreduction algorithm is from **Semaev**. The fix is\nintended for simulations of homogeneous flows, and integrates the SLLOD\nequations of motion, originally proposed by Hoover and Ladd (see\n**Sllod**). Additional detail about this\nimplementation can be found in **Nicholson**.\n\nNote that NEMD simulations of a continuously strained system can be\nperformed using the [fix deform ](https://docs.lammps.org/fix_deform.html), [fix nvt/sllod](https://docs.lammps.org/fix_nvt_sllod.html), and [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\ncommands.\n\nThe applied flow field is set by the *erate* keyword. The values\n*edot_x* and *edot_y* correspond to the strain rates in the xx and yy\ndirections. It is implicitly assumed that the flow field is\ntraceless, and therefore the strain rate in the zz direction is eqal\nto -(*edot_x* + *edot_y*).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Due to an instability in the SLLOD equations under extension,\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) should be used to regularly reset the\n > linear momentum. \n > \n\nThe boundary conditions require a simulation box that does not have a\nconsistent alignment relative to the applied flow field. Since LAMMPS\nutilizes an upper-triangular simulation box, it is not possible to\nexpress the evolving simulation box in the same coordinate system as the\nflow field. These fixes keep track of two coordinate systems: the flow\nframe, and the upper triangular LAMMPS frame. The coordinate systems are\nrelated to each other through the QR decomposition, as is illustrated in\nthe image below.\n\n ![Image](JPG/uef_frames.jpg) \n\nDuring most molecular dynamics operations, the system is represented\nin the LAMMPS frame. Only when the positions and velocities are\nupdated is the system rotated to the flow frame, and it is rotated\nback to the LAMMPS frame immediately afterwards. For this reason, all\nvector-valued quantities (except for the tensors from\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) and\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html)) will be computed in the\nLAMMPS frame. Rotationally invariant scalar quantities like the\ntemperature and hydrostatic pressure are frame-invariant and will be\ncomputed correctly. Additionally, the system is in the LAMMPS frame\nduring all of the output steps, and therefore trajectory files made\nusing the dump command will be in the LAMMPS frame unless the\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html) command is used.\n\n----------\n\nTemperature control is achieved with the default Nose-Hoover style\nthermostat documented in [fix nvt ](https://docs.lammps.org/fix_nh.html). When this fix is\nactive, only the peculiar velocity of each atom is stored, defined as\nthe velocity relative to the streaming velocity. This is in contrast to\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), which uses a lab-frame velocity,\nand removes the contribution from the streaming velocity in order to\ncompute the temperature.\n\nPressure control is achieved using the default Nose-Hoover barostat\ndocumented in [fix npt ](https://docs.lammps.org/fix_nh.html). There are two ways to control the\npressure using this fix. The first method involves using the *ext*\nkeyword along with the *iso* pressure style. With this method, the\npressure is controlled by scaling the simulation box isotropically to\nachieve the average pressure only in the directions specified by\n*ext* . For example, if the *ext* value is set to *xy*, the average\npressure (Pxx+Pyy)/2 will be controlled.\n\nThis example command will control the total hydrostatic pressure under\nuniaxial tension:\n\n```lmps\nfix f1 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xyz\n```\nThis example command will control the average stress in compression\ndirections, which would typically correspond to free surfaces under\ndrawing with uniaxial tension:\n\n```lmps\nfix f2 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xy\n```\nThe second method for pressure control involves setting the normal\nstresses using the *x*, *y*, and/or *z* keywords. When using this\nmethod, the same pressure must be specified via *Pstart* and *Pstop*\nfor all dimensions controlled. Any choice of pressure conditions that\nwould cause LAMMPS to compute a deviatoric stress are not permissible\nand will result in an error. Additionally, all dimensions with\ncontrolled stress must have the same applied strain rate. The *ext*\nkeyword must be set to the default value (\\ *xyz* ) when using this\nmethod.\n\nFor example, the following commands will work:\n\n```lmps\nfix f3 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 y 1 1 5 erate -0.5 -0.5\nfix f4 all npt/uef temp 0.7 0.7 0.5 z 1 1 5 erate 0.5 0.5\n```\nThe following commands will not work:\n\n```lmps\nfix f5 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 1 1 5 erate -0.5 -0.5\nfix f6 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 2 2 5 erate 0.5 0.5\n```\n----------\n\nThese fixes compute a temperature and pressure each timestep. To do\nthis, they create their own computes of style \"temp/uef\" and\n\"pressure/uef\", as if one of these two sets of commands had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/uef\ncompute fix-ID_press group-ID pressure/uef fix-ID_temp\n\ncompute fix-ID_temp all temp/uef\ncompute fix-ID_press all pressure/uef fix-ID_temp\n```\nSee the [compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html) and [computepressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) commands for details. Note that\nthe IDs of the new computes are the fix-ID + underscore + \"temp\" or\nfix_ID + underscore + \"press\".\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix writes the state of all the thermostat and barostat variables,\nas well as the cumulative strain applied, to [binary restart files](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html) command for info\non how to re-specify a fix in an input script that reads a restart file,\nso that the operation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is not necessary to set the *strain* keyword when resuming a\n > run from a restart file. Only for resuming from data files, which do\n > not contain the cumulative applied strain, will this keyword be\n > necessary. \n > \n\nThese fixes can be used with the [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp*\nand *press* options. The temperature and pressure computes used must be\nof type *temp/uef* and *pressure/uef* .\n\nThese fixes compute the same global scalar and vector quantities as\n[fix nvt andnpt ](https://docs.lammps.org/fix_nh.html).\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Dobson)** Dobson, J Chem Phys, 141, 184103 (2014). \n \n**(Hunt)** Hunt, Mol Simul, 42, 347 (2016). \n \n**(Semaev)** Semaev, Cryptography and Lattices, 181 (2001). \n \n**(Sllod)** Evans and Morriss, Phys Rev A, 30, 1528 (1984). \n \n**(Nicholson)** Nicholson and Rutledge, J Chem Phys, 145,\n244903 (2016). \n ", + "restrictions": "These fixes are part of the UEF package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nDue to requirements of the boundary conditions, when the *strain*\nkeyword is set to zero (or unset), the initial simulation box must be\ncubic and have style triclinic. If the box is initially of type ortho,\nuse [change_box ](https://docs.lammps.org/change_box.html) before invoking the fix.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html),\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html),\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html),\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html)\n" }, { "command": [ - "pair_style" + "pair_style mie/cut", + "pair_style mie/cut/gpu" ], "syntax": [ - "pair_style style args" + "pair_style mie/cut cutoff" ], "args": [ [ @@ -7518,83 +7208,109 @@ export const command_docs = [ "choices": [] }, { - "arg": "style", - "type": 2, - "choices": [] + "arg": "mie/cut", + "type": 3, + "choices": [ + "mie/cut", + "mie/cut/gpu" + ] }, { - "arg": "args", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* style = one of the styles from the list below\n* args = arguments used by a particular style \n", - "examples": "\n```lmps\npair_style lj/cut 2.5\npair_style eam/alloy\npair_style hybrid lj/charmm/coul/long 10.0 eam\npair_style table linear 1000\npair_style none\n```\n", - "html_filename": "pair_style.html", - "short_description": "Set the formula(s) LAMMPS uses to compute pairwise interactions", - "description": "Set the formula(s) LAMMPS uses to compute pairwise interactions. In\nLAMMPS, pair potentials are defined between pairs of atoms that are\nwithin a cutoff distance and the set of active interactions typically\nchanges over time. See the [bond_style ](https://docs.lammps.org/bond_style.html) command to\ndefine potentials between pairs of bonded atoms, which typically\nremain in place for the duration of a simulation.\n\nIn LAMMPS, pairwise force fields encompass a variety of interactions,\nsome of which include many-body effects, e.g. EAM, Stillinger-Weber,\nTersoff, REBO potentials. They are still classified as \"pairwise\"\npotentials because the set of interacting atoms changes with time\n(unlike molecular bonds) and thus a neighbor list is used to find\nnearby interacting atoms.\n\nHybrid models where specified pairs of atom types interact via\ndifferent pair potentials can be setup using the *hybrid* pair style.\n\nThe coefficients associated with a pair style are typically set for\neach pair of atom types, and are specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command or read from a file by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) command sets options for mixing of\ntype I-J interaction coefficients and adding energy offsets or tail\ncorrections to Lennard-Jones potentials. Details on these options as\nthey pertain to individual potentials are described on the doc page\nfor the potential. Likewise, info on whether the potential\ninformation is stored in a [restart file ](https://docs.lammps.org/write_restart.html) is listed\non the potential doc page.\n\nIn the formulas listed for each pair style, *E* is the energy of a\npairwise interaction between two atoms separated by a distance *r* .\nThe force between the atoms is the negative derivative of this\nexpression.\n\nIf the pair_style command has a cutoff argument, it sets global\ncutoffs for all pairs of atom types. The distance(s) can be smaller\nor larger than the dimensions of the simulation box.\n\nIn many cases, the global cutoff value can be overridden for a\nspecific pair of atom types by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\nIf a new pair_style command is specified with a new style, all\nprevious [pair_coeff ](https://docs.lammps.org/pair_coeff.html) and [pair_modify](https://docs.lammps.org/pair_modify.html) command settings are erased; those commands must be\nre-specified if necessary.\n\nIf a new pair_style command is specified with the same style, then\nonly the global settings in that command are reset. Any previous\ndoc:`pair_coeff ` and [pair_modify ](https://docs.lammps.org/pair_modify.html)\ncommand settings are preserved. The only exception is that if the\nglobal cutoff in the pair_style command is changed, it will override\nthe corresponding cutoff in any of the previous [pair_modify](https://docs.lammps.org/pair_coeff.html) commands.\n\nTwo pair styles which do not follow this rule are the pair_style\n*table* and *hybrid* commands. A new pair_style command for these\nstyles will wipe out all previously specified [pair_coeff](https://docs.lammps.org/pair_coeff.html) and [pair_modify ](https://docs.lammps.org/pair_modify.html) settings, including\nfor the sub-styles of the *hybrid* command.\n\n----------\n\nHere is an alphabetic list of pair styles defined in LAMMPS. They are\nalso listed in more compact form on the [Commands pair](https://docs.lammps.org/Commands_pair.html) doc page.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the pair_style command, and coefficients\nspecified by the associated [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands pair ](https://docs.lammps.org/Commands_pair.html)\ndoc page are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [none ](https://docs.lammps.org/pair_none.html) - turn off pairwise interactions\n* [hybrid ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of pairwise interactions\n* [hybrid/molecular ](https://docs.lammps.org/pair_hybrid.html) - different pair styles for intra- and inter-molecular interactions\n* [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of superposed pairwise interactions\n* [hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of scaled superposed pairwise interactions\n* [zero ](https://docs.lammps.org/pair_zero.html) - neighbor list but no interactions\n\n* [adp ](https://docs.lammps.org/pair_adp.html) - angular dependent potential (ADP) of Mishin\n* [agni ](https://docs.lammps.org/pair_agni.html) - AGNI machine-learning potential\n* [aip/water/2dm ](https://docs.lammps.org/pair_aip_water_2dm.html) - anisotropic interfacial potential for water in 2d geometries\n* [airebo ](https://docs.lammps.org/pair_airebo.html) - AIREBO potential of Stuart\n* [airebo/morse ](https://docs.lammps.org/pair_airebo.html) - AIREBO with Morse instead of LJ\n* [amoeba ](https://docs.lammps.org/pair_amoeba.html) -\n* [atm ](https://docs.lammps.org/pair_atm.html) - Axilrod-Teller-Muto potential\n* [awpmd/cut ](https://docs.lammps.org/pair_awpmd.html) - Antisymmetrized Wave Packet MD potential for atoms and electrons\n* [beck ](https://docs.lammps.org/pair_beck.html) - Beck potential\n* [body/nparticle ](https://docs.lammps.org/pair_body_nparticle.html) - interactions between body particles\n* [body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html) - granular-style 2d polygon potential\n* [body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html) - granular-style 3d polyhedron potential\n* [bop ](https://docs.lammps.org/pair_bop.html) - BOP potential of Pettifor\n* [born ](https://docs.lammps.org/pair_born.html) - Born-Mayer-Huggins potential\n* [born/coul/dsf ](https://docs.lammps.org/pair_born.html) - Born with damped-shifted-force model\n* [born/coul/dsf/cs ](https://docs.lammps.org/pair_cs.html) - Born with damped-shifted-force and core/shell model\n* [born/coul/long ](https://docs.lammps.org/pair_born.html) - Born with long-range Coulomb\n* [born/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - Born with long-range Coulomb and core/shell\n* [born/coul/msm ](https://docs.lammps.org/pair_born.html) - Born with long-range MSM Coulomb\n* [born/coul/wolf ](https://docs.lammps.org/pair_born.html) - Born with Wolf potential for Coulomb\n* [born/coul/wolf/cs ](https://docs.lammps.org/pair_cs.html) - Born with Wolf potential for Coulomb and core/shell model\n* [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) - Born-Mayer / Gaussian potential\n* [bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html) - repulsive harmonic force with damping\n* [brownian ](https://docs.lammps.org/pair_brownian.html) - Brownian potential for Fast Lubrication Dynamics\n* [brownian/poly ](https://docs.lammps.org/pair_brownian.html) - Brownian potential for Fast Lubrication Dynamics with polydispersity\n* [buck ](https://docs.lammps.org/pair_buck.html) - Buckingham potential\n* [buck/coul/cut ](https://docs.lammps.org/pair_buck.html) - Buckingham with cutoff Coulomb\n* [buck/coul/long ](https://docs.lammps.org/pair_buck.html) - Buckingham with long-range Coulomb\n* [buck/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - Buckingham with long-range Coulomb and core/shell\n* [buck/coul/msm ](https://docs.lammps.org/pair_buck.html) - Buckingham with long-range MSM Coulomb\n* [buck/long/coul/long ](https://docs.lammps.org/pair_buck_long.html) - long-range Buckingham with long-range Coulomb\n* [buck/mdf ](https://docs.lammps.org/pair_mdf.html) - Buckingham with a taper function\n* [buck6d/coul/gauss/dsf ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) - dispersion-damped Buckingham with damped-shift-force model\n* [buck6d/coul/gauss/long ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) - dispersion-damped Buckingham with long-range Coulomb\n* [colloid ](https://docs.lammps.org/pair_colloid.html) - integrated colloidal potential\n* [comb ](https://docs.lammps.org/pair_comb.html) - charge-optimized many-body (COMB) potential\n* [comb3 ](https://docs.lammps.org/pair_comb.html) - charge-optimized many-body (COMB3) potential\n* [cosine/squared ](https://docs.lammps.org/pair_cosine_squared.html) - Cooke-Kremer-Deserno membrane model potential\n* [coul/cut ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential\n* [coul/cut/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [coul/cut/global ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential\n* [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - Coulomb potential with a soft core\n* [coul/debye ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential with Debye screening\n* [coul/diel ](https://docs.lammps.org/pair_coul_diel.html) - Coulomb potential with dielectric permittivity\n* [coul/dsf ](https://docs.lammps.org/pair_coul.html) - Coulomb with damped-shifted-force model\n* [coul/exclude ](https://docs.lammps.org/pair_coul.html) - subtract Coulomb potential for excluded pairs\n* [coul/long ](https://docs.lammps.org/pair_coul.html) - long-range Coulomb potential\n* [coul/long/cs ](https://docs.lammps.org/pair_cs.html) - long-range Coulomb potential and core/shell\n* [coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - long-range Coulomb potential with a soft core\n* [coul/msm ](https://docs.lammps.org/pair_coul.html) - long-range MSM Coulomb\n* [coul/slater/cut ](https://docs.lammps.org/pair_coul.html) - smeared out Coulomb\n* [coul/slater/long ](https://docs.lammps.org/pair_coul.html) - long-range smeared out Coulomb\n* [coul/shield ](https://docs.lammps.org/pair_coul_shield.html) - Coulomb for boron nitride for use with [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html) potential\n* [coul/streitz ](https://docs.lammps.org/pair_coul.html) - Coulomb via Streitz/Mintmire Slater orbitals\n* [coul/tt ](https://docs.lammps.org/pair_coul_tt.html) - damped charge-dipole Coulomb for Drude dipoles\n* [coul/wolf ](https://docs.lammps.org/pair_coul.html) - Coulomb via Wolf potential\n* [coul/wolf/cs ](https://docs.lammps.org/pair_cs.html) - Coulomb via Wolf potential with core/shell adjustments\n* [dpd ](https://docs.lammps.org/pair_dpd.html) - dissipative particle dynamics (DPD)\n* [dpd/coul/slater/long ](https://docs.lammps.org/pair_dpd_coul_slater_long.html) - dissipative particle dynamics (DPD) with electrostatic interactions\n* [dpd/ext ](https://docs.lammps.org/pair_dpd_ext.html) - generalized force field for DPD\n* [dpd/ext/tstat ](https://docs.lammps.org/pair_dpd_ext.html) - pairwise DPD thermostatting with generalized force field\n* [dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html) - DPD for constant temperature and pressure\n* [dpd/fdt/energy ](https://docs.lammps.org/pair_dpd_fdt.html) - DPD for constant energy and enthalpy\n* [dpd/tstat ](https://docs.lammps.org/pair_dpd.html) - pairwise DPD thermostatting\n* [dsmc ](https://docs.lammps.org/pair_dsmc.html) - Direct Simulation Monte Carlo (DSMC)\n* [e3b ](https://docs.lammps.org/pair_e3b.html) - Explicit-three body (E3B) water model\n* [drip ](https://docs.lammps.org/pair_drip.html) - Dihedral-angle-corrected registry-dependent interlayer potential (DRIP)\n* [eam ](https://docs.lammps.org/pair_eam.html) - embedded atom method (EAM)\n* [eam/alloy ](https://docs.lammps.org/pair_eam.html) - alloy EAM\n* [eam/cd ](https://docs.lammps.org/pair_eam.html) - concentration-dependent EAM\n* [eam/cd/old ](https://docs.lammps.org/pair_eam.html) - older two-site model for concentration-dependent EAM\n* [eam/fs ](https://docs.lammps.org/pair_eam.html) - Finnis-Sinclair EAM\n* [eam/he ](https://docs.lammps.org/pair_eam.html) - Finnis-Sinclair EAM modified for Helium in metals\n* [edip ](https://docs.lammps.org/pair_edip.html) - three-body EDIP potential\n* [edip/multi ](https://docs.lammps.org/pair_edip.html) - multi-element EDIP potential\n* [edpd ](https://docs.lammps.org/pair_mesodpd.html) - eDPD particle interactions\n* [eff/cut ](https://docs.lammps.org/pair_eff.html) - electron force field with a cutoff\n* [eim ](https://docs.lammps.org/pair_eim.html) - embedded ion method (EIM)\n* [exp6/rx ](https://docs.lammps.org/pair_exp6_rx.html) - reactive DPD potential\n* [extep ](https://docs.lammps.org/pair_extep.html) - extended Tersoff potential\n* [gauss ](https://docs.lammps.org/pair_gauss.html) - Gaussian potential\n* [gauss/cut ](https://docs.lammps.org/pair_gauss.html) - generalized Gaussian potential\n* [gayberne ](https://docs.lammps.org/pair_gayberne.html) - Gay-Berne ellipsoidal potential\n* [granular ](https://docs.lammps.org/pair_granular.html) - Generalized granular potential\n* [gran/hertz/history ](https://docs.lammps.org/pair_gran.html) - granular potential with Hertzian interactions\n* [gran/hooke ](https://docs.lammps.org/pair_gran.html) - granular potential with history effects\n* [gran/hooke/history ](https://docs.lammps.org/pair_gran.html) - granular potential without history effects\n* [gw ](https://docs.lammps.org/pair_gw.html) - Gao-Weber potential\n* [gw/zbl ](https://docs.lammps.org/pair_gw.html) - Gao-Weber potential with a repulsive ZBL core\n* [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) - repulsive-only harmonic potential\n* [hbond/dreiding/lj ](https://docs.lammps.org/pair_hbond_dreiding.html) - DREIDING hydrogen bonding LJ potential\n* [hbond/dreiding/morse ](https://docs.lammps.org/pair_hbond_dreiding.html) - DREIDING hydrogen bonding Morse potential\n* [hdnnp ](https://docs.lammps.org/pair_hdnnp.html) - High-dimensional neural network potential\n* [hippo ](https://docs.lammps.org/pair_amoeba.html) -\n* [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html) - registry-dependent interlayer potential (ILP)\n* [ilp/tmd ](https://docs.lammps.org/pair_ilp_tmd.html) - interlayer potential (ILP) potential for transition metal dichalcogenides (TMD)\n* [kim ](https://docs.lammps.org/pair_kim.html) - interface to potentials provided by KIM project\n* [kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html) - Kolmogorov-Crespi (KC) potential with no simplifications\n* [kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html) - Kolmogorov-Crespi (KC) potential with normals along z-axis\n* [lcbop ](https://docs.lammps.org/pair_lcbop.html) - long-range bond-order potential (LCBOP)\n* [lebedeva/z ](https://docs.lammps.org/pair_lebedeva_z.html) - Lebedeva interlayer potential for graphene with normals along z-axis\n* [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) - LJ potential in A/B form with a taper function\n* [lepton ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string\n* [lepton/coul ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string with support for charges\n* [lepton/sphere ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string with support for radii\n* [line/lj ](https://docs.lammps.org/pair_line_lj.html) - LJ potential between line segments\n* [list ](https://docs.lammps.org/pair_list.html) - potential between pairs of atoms explicitly listed in an input file\n* [lj/charmm/coul/charmm ](https://docs.lammps.org/pair_charmm.html) - CHARMM potential with cutoff Coulomb\n* [lj/charmm/coul/charmm/implicit ](https://docs.lammps.org/pair_charmm.html) - CHARMM for implicit solvent\n* [lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html) - CHARMM with long-range Coulomb\n* [lj/charmm/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - CHARMM with long-range Coulomb and a soft core\n* [lj/charmm/coul/msm ](https://docs.lammps.org/pair_charmm.html) - CHARMM with long-range MSM Coulomb\n* [lj/charmmfsw/coul/charmmfsh ](https://docs.lammps.org/pair_charmm.html) - CHARMM with force switching and shifting\n* [lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) - CHARMM with force switching and long-rnage Coulomb\n* [lj/class2 ](https://docs.lammps.org/pair_class2.html) - COMPASS (class 2) force field without Coulomb\n* [lj/class2/coul/cut ](https://docs.lammps.org/pair_class2.html) - COMPASS with cutoff Coulomb\n* [lj/class2/coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS with cutoff Coulomb with a soft core\n* [lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) - COMPASS with long-range Coulomb\n* [lj/class2/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - COMPASS with long-range Coulomb with core/shell adjustments\n* [lj/class2/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS with long-range Coulomb with a soft core\n* [lj/class2/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS (class 2) force field with no Coulomb with a soft core\n* [lj/cubic ](https://docs.lammps.org/pair_lj_cubic.html) - LJ with cubic after inflection point\n* [lj/cut ](https://docs.lammps.org/pair_lj.html) - cutoff Lennard-Jones potential without Coulomb\n* [lj/cut/coul/cut ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with cutoff Coulomb\n* [lj/cut/coul/cut/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with cutoff Coulomb with a soft core\n* [lj/cut/coul/debye ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Debye screening added to Coulomb\n* [lj/cut/coul/debye/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Coulomb via damped shifted forces\n* [lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with long-range Coulomb\n* [lj/cut/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - LJ with long-range Coulomb with core/shell adjustments\n* [lj/cut/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with long-range Coulomb with a soft core\n* [lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with long-range MSM Coulomb\n* [lj/cut/coul/msm/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/wolf ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Coulomb via Wolf potential\n* [lj/cut/dipole/cut ](https://docs.lammps.org/pair_dipole.html) - point dipoles with cutoff\n* [lj/cut/dipole/long ](https://docs.lammps.org/pair_dipole.html) - point dipoles with long-range Ewald\n* [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with a soft core\n* [lj/cut/sphere ](https://docs.lammps.org/pair_lj_cut_sphere.html) - LJ where per-atom radius is used as LJ sigma\n* [lj/cut/thole/long ](https://docs.lammps.org/pair_thole.html) - LJ with Coulomb with thole damping\n* [lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html) - LJ with cutoff Coulomb for TIP4P water\n* [lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) - LJ with long-range Coulomb for TIP4P water\n* [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with cutoff Coulomb for TIP4P water with a soft core\n* [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) - Lennard-Jones for variable size particles\n* [lj/expand/coul/long ](https://docs.lammps.org/pair_lj_expand.html) - Lennard-Jones for variable size particles with long-range Coulomb\n* [lj/expand/sphere ](https://docs.lammps.org/pair_lj_expand_sphere.html) - Variable size LJ where per-atom radius is used as delta (size)\n* [lj/gromacs ](https://docs.lammps.org/pair_gromacs.html) - GROMACS-style Lennard-Jones potential\n* [lj/gromacs/coul/gromacs ](https://docs.lammps.org/pair_gromacs.html) - GROMACS-style LJ and Coulomb potential\n* [lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html) - long-range LJ and long-range Coulomb\n* [lj/long/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/long/dipole/long ](https://docs.lammps.org/pair_dipole.html) - long-range LJ and long-range point dipoles\n* [lj/long/tip4p/long ](https://docs.lammps.org/pair_lj_long.html) - long-range LJ and long-range Coulomb for TIP4P water\n* [lj/mdf ](https://docs.lammps.org/pair_mdf.html) - LJ potential with a taper function\n* [lj/relres ](https://docs.lammps.org/pair_lj_relres.html) - LJ using multiscale Relative Resolution (RelRes) methodology :ref:`(Chaimovich) `.\n* [lj/spica ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining\n* [lj/spica/coul/long ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining with long-range Coulomb\n* [lj/spica/coul/msm ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining with long-range Coulomb via MSM\n* [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) - LJ with dipole interaction with shifted forces\n* [lj/smooth ](https://docs.lammps.org/pair_lj_smooth.html) - smoothed Lennard-Jones potential\n* [lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html) - linear smoothed LJ potential\n* [lj/switch3/coulgauss/long ](https://docs.lammps.org/pair_lj_switch3_coulgauss_long.html) - smoothed LJ vdW potential with Gaussian electrostatics\n* [lj96/cut ](https://docs.lammps.org/pair_lj96.html) - Lennard-Jones 9/6 potential\n* [local/density ](https://docs.lammps.org/pair_local_density.html) - Generalized basic local density potential\n* [lubricate ](https://docs.lammps.org/pair_lubricate.html) - Hydrodynamic lubrication forces\n* [lubricate/poly ](https://docs.lammps.org/pair_lubricate.html) - Hydrodynamic lubrication forces with polydispersity\n* [lubricateU ](https://docs.lammps.org/pair_lubricateU.html) - Hydrodynamic lubrication forces for Fast Lubrication Dynamics\n* [lubricateU/poly ](https://docs.lammps.org/pair_lubricateU.html) - Hydrodynamic lubrication forces for Fast Lubrication with polydispersity\n* [mdpd ](https://docs.lammps.org/pair_mesodpd.html) - mDPD particle interactions\n* [mdpd/rhosum ](https://docs.lammps.org/pair_mesodpd.html) - mDPD particle interactions for mass density\n* [meam ](https://docs.lammps.org/pair_meam.html) - Modified embedded atom method (MEAM)\n* [meam/ms ](https://docs.lammps.org/pair_meam.html) - Multi-state modified embedded atom method (MS-MEAM)\n* [meam/spline ](https://docs.lammps.org/pair_meam_spline.html) - Splined version of MEAM\n* [meam/sw/spline ](https://docs.lammps.org/pair_meam_sw_spline.html) - Splined version of MEAM with a Stillinger-Weber term\n* [mesocnt ](https://docs.lammps.org/pair_mesocnt.html) - Mesoscopic vdW potential for (carbon) nanotubes\n* [mesocnt/viscous ](https://docs.lammps.org/pair_mesocnt.html) - Mesoscopic vdW potential for (carbon) nanotubes with friction\n* [mgpt ](https://docs.lammps.org/pair_mgpt.html) - Simplified model generalized pseudopotential theory (MGPT) potential\n* [mie/cut ](https://docs.lammps.org/pair_mie.html) - Mie potential\n* [mliap ](https://docs.lammps.org/pair_mliap.html) - Multiple styles of machine-learning potential\n* [mm3/switch3/coulgauss/long ](https://docs.lammps.org/pair_lj_switch3_coulgauss_long.html) - Smoothed MM3 vdW potential with Gaussian electrostatics\n* [momb ](https://docs.lammps.org/pair_momb.html) - Many-Body Metal-Organic (MOMB) force field\n* [morse ](https://docs.lammps.org/pair_morse.html) - Morse potential\n* [morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) - Linear smoothed Morse potential\n* [morse/soft ](https://docs.lammps.org/pair_morse.html) - Morse potential with a soft core\n* [multi/lucy ](https://docs.lammps.org/pair_multi_lucy.html) - DPD potential with density-dependent force\n* [multi/lucy/rx ](https://docs.lammps.org/pair_multi_lucy_rx.html) - reactive DPD potential with density-dependent force\n* [nb3b/harmonic ](https://docs.lammps.org/pair_nb3b.html) - Non-bonded 3-body harmonic potential\n* [nb3b/screened ](https://docs.lammps.org/pair_nb3b.html) - Non-bonded 3-body screened harmonic potential\n* [nm/cut ](https://docs.lammps.org/pair_nm.html) - N-M potential\n* [nm/cut/coul/cut ](https://docs.lammps.org/pair_nm.html) - N-M potential with cutoff Coulomb\n* [nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) - N-M potential with long-range Coulomb\n* [nm/cut/split ](https://docs.lammps.org/pair_nm.html) - Split 12-6 Lennard-Jones and N-M potential\n* [oxdna/coaxstk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/excv ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/hbond ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/stk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/xstk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna2/coaxstk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/dh ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/hbond ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/stk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/xstk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxrna2/coaxstk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/dh ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/hbond ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/stk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/xstk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [pace ](https://docs.lammps.org/pair_pace.html) - Atomic Cluster Expansion (ACE) machine-learning potential\n* [pace/extrapolation ](https://docs.lammps.org/pair_pace.html) - Atomic Cluster Expansion (ACE) machine-learning potential with extrapolation grades\n* [pedone ](https://docs.lammps.org/pair_pedone.html) - Pedone (PMMCS) potential (non-Coulomb part)\n* [pod ](https://docs.lammps.org/pair_pod.html) - Proper orthogonal decomposition (POD) machine-learning potential\n* [peri/eps ](https://docs.lammps.org/pair_peri.html) - Peridynamic EPS potential\n* [peri/lps ](https://docs.lammps.org/pair_peri.html) - Peridynamic LPS potential\n* [peri/pmb ](https://docs.lammps.org/pair_peri.html) - Peridynamic PMB potential\n* [peri/ves ](https://docs.lammps.org/pair_peri.html) - Peridynamic VES potential\n* [polymorphic ](https://docs.lammps.org/pair_polymorphic.html) - Polymorphic 3-body potential\n* [python ](https://docs.lammps.org/pair_python.html) -\n* [quip ](https://docs.lammps.org/pair_quip.html) -\n* [rann ](https://docs.lammps.org/pair_rann.html) -\n* [reaxff ](https://docs.lammps.org/pair_reaxff.html) - ReaxFF potential\n* [rebo ](https://docs.lammps.org/pair_airebo.html) - Second generation REBO potential of Brenner\n* [rebomos ](https://docs.lammps.org/pair_rebomos.html) - REBOMoS potential for MoS2\n* [rheo ](https://docs.lammps.org/pair_rheo.html) - fluid interactions in RHEO package\n* [rheo/solid ](https://docs.lammps.org/pair_rheo_solid.html) - solid interactions in RHEO package\n* [resquared ](https://docs.lammps.org/pair_resquared.html) - Everaers RE-Squared ellipsoidal potential\n* [saip/metal ](https://docs.lammps.org/pair_saip_metal.html) - Interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces\n* [sdpd/taitwater/isothermal ](https://docs.lammps.org/pair_sdpd_taitwater_isothermal.html) - Smoothed dissipative particle dynamics for water at isothermal conditions\n* [smatb ](https://docs.lammps.org/pair_smatb.html) - Second Moment Approximation to the Tight Binding\n* [smatb/single ](https://docs.lammps.org/pair_smatb.html) - Second Moment Approximation to the Tight Binding for single-element systems\n* [smd/hertz ](https://docs.lammps.org/pair_smd_hertz.html) -\n* [smd/tlsph ](https://docs.lammps.org/pair_smd_tlsph.html) -\n* [smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html) -\n* [smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html) -\n* [smtbq ](https://docs.lammps.org/pair_smtbq.html) -\n* [snap ](https://docs.lammps.org/pair_snap.html) - SNAP machine-learning potential\n* [soft ](https://docs.lammps.org/pair_soft.html) - Soft (cosine) potential\n* [sph/heatconduction ](https://docs.lammps.org/pair_sph_heatconduction.html) -\n* [sph/idealgas ](https://docs.lammps.org/pair_sph_idealgas.html) -\n* [sph/lj ](https://docs.lammps.org/pair_sph_lj.html) -\n* [sph/rhosum ](https://docs.lammps.org/pair_sph_rhosum.html) -\n* [sph/taitwater ](https://docs.lammps.org/pair_sph_taitwater.html) -\n* [sph/taitwater/morris ](https://docs.lammps.org/pair_sph_taitwater_morris.html) -\n* [spin/dipole/cut ](https://docs.lammps.org/pair_spin_dipole.html) -\n* [spin/dipole/long ](https://docs.lammps.org/pair_spin_dipole.html) -\n* [spin/dmi ](https://docs.lammps.org/pair_spin_dmi.html) -\n* [spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html) -\n* [spin/exchange/biquadratic ](https://docs.lammps.org/pair_spin_exchange.html) -\n* [spin/magelec ](https://docs.lammps.org/pair_spin_magelec.html) -\n* [spin/neel ](https://docs.lammps.org/pair_spin_neel.html) -\n* [srp ](https://docs.lammps.org/pair_srp.html) -\n* [srp/react ](https://docs.lammps.org/pair_srp.html) -\n* [sw ](https://docs.lammps.org/pair_sw.html) - Stillinger-Weber 3-body potential\n* [sw/angle/table ](https://docs.lammps.org/pair_sw_angle_table.html) - Stillinger-Weber potential with tabulated angular term\n* [sw/mod ](https://docs.lammps.org/pair_sw.html) - modified Stillinger-Weber 3-body potential\n* [table ](https://docs.lammps.org/pair_table.html) - tabulated pair potential\n* [table/rx ](https://docs.lammps.org/pair_table_rx.html) -\n* [tdpd ](https://docs.lammps.org/pair_mesodpd.html) - tDPD particle interactions\n* [tersoff ](https://docs.lammps.org/pair_tersoff.html) - Tersoff 3-body potential\n* [tersoff/mod ](https://docs.lammps.org/pair_tersoff_mod.html) - modified Tersoff 3-body potential\n* [tersoff/mod/c ](https://docs.lammps.org/pair_tersoff_mod.html) -\n* [tersoff/table ](https://docs.lammps.org/pair_tersoff.html) -\n* [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) - Tersoff/ZBL 3-body potential\n* [thole ](https://docs.lammps.org/pair_thole.html) - Coulomb interactions with thole damping\n* [threebody/table ](https://docs.lammps.org/pair_threebody_table.html) - generic tabulated three-body potential\n* [tip4p/cut ](https://docs.lammps.org/pair_coul.html) - Coulomb for TIP4P water w/out LJ\n* [tip4p/long ](https://docs.lammps.org/pair_coul.html) - long-range Coulomb for TIP4P water w/out LJ\n* [tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) -\n* [tracker ](https://docs.lammps.org/pair_tracker.html) - monitor information about pairwise interactions\n* [tri/lj ](https://docs.lammps.org/pair_tri_lj.html) - LJ potential between triangles\n* [ufm ](https://docs.lammps.org/pair_ufm.html) -\n* [uf3 ](https://docs.lammps.org/pair_uf3.html) - UF3 machine-learning potential\n* [vashishta ](https://docs.lammps.org/pair_vashishta.html) - Vashishta 2-body and 3-body potential\n* [vashishta/table ](https://docs.lammps.org/pair_vashishta.html) -\n* [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) - Wang-Frenkel Potential for short-ranged interactions\n* [ylz ](https://docs.lammps.org/pair_ylz.html) - Yuan-Li-Zhang Potential for anisotropic interactions\n* [yukawa ](https://docs.lammps.org/pair_yukawa.html) - Yukawa potential\n* [yukawa/colloid ](https://docs.lammps.org/pair_yukawa_colloid.html) - screened Yukawa potential for finite-size particles\n* [zbl ](https://docs.lammps.org/pair_zbl.html) - Ziegler-Biersack-Littmark potential\n\n----------\n", - "restrictions": "This command must be used before any coefficients are set by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [read_data ](https://docs.lammps.org/read_data.html), or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nSome pair styles are part of specific packages. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual pair potentials tell if it is part of a package.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [read_data ](https://docs.lammps.org/read_data.html),\n[pair_modify ](https://docs.lammps.org/pair_modify.html), [kspace_style ](https://docs.lammps.org/kspace_style.html),\n[dielectric ](https://docs.lammps.org/dielectric.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" + "parameters": "* cutoff = global cutoff for mie/cut interactions (distance units) \n", + "examples": "\n```lmps\npair_style mie/cut 10.0\npair_coeff 1 1 0.72 3.40 23.00 6.66\npair_coeff 2 2 0.30 3.55 12.65 6.00\npair_coeff 1 2 0.46 3.32 16.90 6.31\n```\n", + "html_filename": "pair_mie.html", + "short_description": "The *mie/cut* style computes the Mie potential, given by\n\\[\n E = C \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{rep}} - \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{att}} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and C is a function that depends on the repulsive and\nattractive exponents, given by:\n\\[\n C = \\left(\\frac{\\gamma_{rep}}{\\gamma_{rep}-\\gamma_{att}}\\right) \\left(\\frac{\\gamma_{rep}}{\\gamma_{att}}\\right)^{\\left(\\frac{\\gamma_{att}}{\\gamma_{rep}-\\gamma_{att}}\\right)}\\]\nNote that for 12/6 exponents, C is equal to 4 and the formula is the\nsame as the standard Lennard-Jones potential", + "description": "The *mie/cut* style computes the Mie potential, given by\n\\[\n E = C \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{rep}} - \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{att}} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and C is a function that depends on the repulsive and\nattractive exponents, given by:\n\\[\n C = \\left(\\frac{\\gamma_{rep}}{\\gamma_{rep}-\\gamma_{att}}\\right) \\left(\\frac{\\gamma_{rep}}{\\gamma_{att}}\\right)^{\\left(\\frac{\\gamma_{att}}{\\gamma_{rep}-\\gamma_{att}}\\right)}\\]\nNote that for 12/6 exponents, C is equal to 4 and the formula is the\nsame as the standard Lennard-Jones potential.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* epsilon (energy units)\n* sigma (distance units)\n* gammaR\n* gammaA\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\ncutoff specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the mie/cut pair styles can be mixed.\nIf not explicitly defined, both the repulsive and attractive gamma\nexponents for different atoms will be calculated following the same\nmixing rule defined for distances. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix_modify AtC fix_flux" + "write_restart" ], "syntax": [ - "fix_modify fix_flux " + "write_restart file keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "write_restart", "type": 1, "choices": [] }, { - "arg": "", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "fix_flux", - "type": 1, - "choices": [] + "arg": "nfile", + "type": 3, + "choices": [ + "fileper", + "nfile" + ] }, { - "arg": "", + "arg": "value", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* file = name of file to write restart information to\n* zero or more keyword/value pairs may be appended\n* keyword = fileper or nfile \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n", + "examples": "\n```lmps\nwrite_restart restart.equil\nwrite_restart poly.%.* nfile 10\n```\n", + "html_filename": "write_restart.html", + "short_description": "Write a binary restart file of the current state of the simulation", + "description": "Write a binary restart file of the current state of the simulation.\n\nDuring a long simulation, the [restart ](https://docs.lammps.org/restart.html) command is\ntypically used to output restart files periodically. The\nwrite_restart command is useful after a minimization or whenever you\nwish to write out a single current restart file.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the restart filename can contain\ntwo wild-card characters. If a \"\\*\" appears in the filename, it is\nreplaced with the current timestep value. If a \"%\" character appears\nin the filename, then one file is written by each processor and the\n\"%\" character is replaced with the processor ID from 0 to P-1. An\nadditional file with the \"%\" replaced by \"base\" is also written, which\ncontains global information. For example, the files written for\nfilename restart.% would be restart.base, restart.0, restart.1, ...\nrestart.P-1. This creates smaller files and can be a fast mode of\noutput and subsequent input on parallel machines that support parallel\nI/O. The optional *fileper* and *nfile* keywords discussed below can\nalter the number of files written.\n\nRestart files can be read by a [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand to restart a simulation from a particular state. Because the\nfile is binary (to enable exact restarts), it may not be readable on\nanother machine. In this case, you can use the [-r command-lineswitch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Although the purpose of restart files is to enable restarting a\n > simulation from where it left off, not all information about a\n > simulation is stored in the file. For example, the list of fixes\n > that were specified during the initial run is not stored, which\n > means the new input script must specify any fixes you want to use.\n > Even when restart information is stored in the file, as it is for\n > some fixes, commands may need to be re-specified in the new input\n > script, in order to re-use that information. Details are usually\n > given in the documentation of the respective command. Also, see the\n > [read_restart ](https://docs.lammps.org/read_restart.html) command for general information\n > about what is stored in a restart file. \n > \n\n----------\n\nThe optional *nfile* or *fileper* keywords can be used in conjunction\nwith the \"%\" wildcard character in the specified restart file name.\nAs explained above, the \"%\" character causes the restart file to be\nwritten in pieces, one piece for each of P processors. By default P =\nthe number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set P to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets P to the specified Nf value. For example, if\nNf = 4, and the simulation is running on 100 processors, 4 files will\nbe written, by processors 0,25,50,75. Each will collect information\nfrom itself and the next 24 processors and write it to a restart file.\n\nFor the *fileper* keyword, the specified value of Np means write one\nfile for every Np processors. For example, if Np = 4, every fourth\nprocessor (0,4,8,12,etc) will collect information from itself and the\nnext 3 processors and write it to a restart file.\n\n----------\n", + "restrictions": "This command requires inter-processor communication to migrate atoms\nbefore the restart file is written. This means that your system must\nbe ready to perform a simulation before using this command (force\nfields setup, atom masses initialized, etc).\n", + "related": "[restart ](https://docs.lammps.org/restart.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[write_data ](https://docs.lammps.org/write_data.html)\n" +}, +{ + "command": [ + "improper_style umbrella", + "improper_style umbrella/omp" + ], + "syntax": [ + "improper_style umbrella" + ], + "args": [ + [ { - "arg": "", - "type": 2, + "arg": "improper_style", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "umbrella", "type": 3, "choices": [ - "value", - "function" + "umbrella", + "umbrella/omp" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fix_flux = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* face_set = name of set of element faces\n* value or function = value or name of function followed by its parameters \n", - "examples": "\n```lmps\nfix_modify AtC fix_flux temperature faceSet 10.0\n```\n", - "html_filename": "atc_fix_flux.html", - "short_description": "Command for fixing normal fluxes e.g", - "description": "Command for fixing normal fluxes e.g. heat_flux. This command only\nprescribes the normal component of the physical flux, e.g. heat (energy)\nflux. The units are in AtC units, i.e. derived from the LAMMPS length,\ntime, and mass scales.\n", - "restrictions": "Only normal fluxes (Neumann data) can be prescribed.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC unfix_flux ](https://docs.lammps.org/atc_unfix_flux.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style umbrella\nimproper_coeff 1 100.0 180.0\n```\n", + "html_filename": "improper_umbrella.html", + "short_description": "The *umbrella* improper style uses the following potential, which is\ncommonly referred to as a classic inversion and used in the\n[DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field:\n\\[\\begin{align*} \n E = & \\frac{1}{2}K\\left( \\frac{1}{\\sin\\omega_0}\\right) ^2 \\left( \\cos\\omega - \\cos\\omega_0\\right) ^2 \\qquad \\omega_0 \\neq 0^o \\\\\n E = & K\\left( 1-cos\\omega\\right) \\qquad \\omega_0 = 0^o \\end{align*} \\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle between the IL\naxis and the IJK plane:\n\n ![Image](JPG/umbrella.jpg) \n\nIf \\(\\omega_0 = 0\\) the potential term has a minimum for the planar\nstructure", + "description": "The *umbrella* improper style uses the following potential, which is\ncommonly referred to as a classic inversion and used in the\n[DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field:\n\\[\\begin{align*} \n E = & \\frac{1}{2}K\\left( \\frac{1}{\\sin\\omega_0}\\right) ^2 \\left( \\cos\\omega - \\cos\\omega_0\\right) ^2 \\qquad \\omega_0 \\neq 0^o \\\\\n E = & K\\left( 1-cos\\omega\\right) \\qquad \\omega_0 = 0^o \\end{align*} \\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle between the IL\naxis and the IJK plane:\n\n ![Image](JPG/umbrella.jpg) \n\nIf \\(\\omega_0 = 0\\) the potential term has a minimum for the planar\nstructure. Otherwise it has two minima at \\(\\omega +/- \\omega_0\\),\nwith a barrier in between.\n\nSee **umbrella-Mayo** for a description of the DREIDING force field.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\omega_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(umbrella-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990), \n ", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "fix wall/ees" + "fix nve/limit" ], "syntax": [ - "fix ID group-ID style args" + "fix ID group-ID nve/limit xmax" ], "args": [ [ @@ -7614,34 +7330,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/region/ees", - "type": 3, - "choices": [ - "wall/ees", - "wall/region/ees" - ] + "arg": "nve/limit", + "type": 1, + "choices": [] }, { - "arg": "args", + "arg": "xmax", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = wall/ees or wall/region/ees \n *        args for style wall/ees : one or more *face parameters* groups may be appended \n *        face = xlo or xhi or ylo or yhi or zlo or zhi \n *        parameters = coord epsilon sigma cutoff \n         coord = position of wall = EDGE or constant or variable \n         EDGE = current lo or hi edge of simulation box \n         constant = number like 0.0 or -30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n         epsilon can be a variable (see below) \n         sigma = size factor for wall-particle interaction (distance units) \n         sigma can be a variable (see below) \n         cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n *        args for style wall/region/ees : region-ID *epsilon* sigma *cutoff* \n         region-ID = region whose boundary will act as wall \n         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n         sigma = size factor for wall-particle interaction (distance units) \n         cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n", - "examples": "\n```lmps\nfix wallhi all wall/ees xlo -1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/ees xhi EDGE 1.0 1.0 2.5\nfix wallhi all wall/ees v_wiggle 23.2 1.0 1.0 2.5\nfix zwalls all wall/ees zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858\n\nfix ees_cube all wall/region/ees myCube 1.0 1.0 2.5\n```\n", - "html_filename": "fix_wall_ees.html", - "short_description": "Fix *wall/ees* bounds the simulation domain on one or more of its\nfaces with a flat wall that interacts with the ellipsoidal atoms in\nthe group by generating a force on the atom in a direction\nperpendicular to the wall and a torque parallel with the wall", - "description": "Fix *wall/ees* bounds the simulation domain on one or more of its\nfaces with a flat wall that interacts with the ellipsoidal atoms in\nthe group by generating a force on the atom in a direction\nperpendicular to the wall and a torque parallel with the wall. The\nenergy of wall-particle interactions E is given by:\n\\[\n E = \\epsilon \\left[ \\frac{2 \\sigma_{LJ}^{12} \\left(7 r^5+14 r^3\n \\sigma_{n}^2+3 r \\sigma_{n}^4\\right) }{945\n \\left(r^2-\\sigma_{n}^2\\right)^7} -\\frac{ \\sigma_{LJ}^6 \\left(2 r\n \\sigma_{n}^3+\\sigma_{n}^2 \\left(r^2-\\sigma_{n}^2\\right)\\log{\n \\left[\\frac{r-\\sigma_{n}}{r+\\sigma_{n}}\\right]}\\right) }{12\n \\sigma_{n}^5 \\left(r^2-\\sigma_{n}^2\\right)} \\right]\\qquad \\sigma_n\n < r < r_c\\]\nIntroduced by Babadi and Ejtehadi in **BabadiEjtehadi**. Here, *r* is the distance from the particle to the\nwall at position *coord*, and Rc is the *cutoff* distance at which\nthe particle and wall no longer interact. Also, \\(\\sigma_n\\) is\nthe distance between center of ellipsoid and the nearest point of its\nsurface to the wall as shown below.\n\n ![Image](JPG/fix_wall_ees_image.jpg) \n\nDetails of using this command and specifications are the same as\nfix/wall command. You can also find an example in USER/ees/ under\nexamples/ directory.\n\nThe prefactor \\(\\epsilon\\) can be thought of as an\neffective Hamaker constant with energy units for the strength of the\nellipsoid-wall interaction. More specifically, the \\(\\epsilon\\)\nprefactor is\n\\[\n 8 \\pi^2 \\quad \\rho_{wall} \\quad \\rho_{ellipsoid} \\quad \\epsilon\n \\quad \\sigma_a \\quad \\sigma_b \\quad \\sigma_c\\]\nwhere \\(\\epsilon\\) is the LJ energy parameter for the constituent\nLJ particles and \\(\\sigma_a\\), \\(\\sigma_b\\), and\n\\(\\sigma_c\\) are the radii of the ellipsoidal\nparticles. \\(\\rho_{wall}\\) and \\(\\rho_{ellipsoid}\\) are the\nnumber density of the constituent particles, in the wall and ellipsoid\nrespectively, in units of 1/volume.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You must ensure that r is always bigger than \\(\\sigma_n\\) for\n > all particles in the group, or LAMMPS will generate an error. This\n > means you cannot start your simulation with particles touching the wall\n > position *coord* (\\(r = \\sigma_n\\)) or with particles penetrating\n > the wall (\\(0 =< r < \\sigma_n\\)) or with particles on the wrong\n > side of the wall (\\(r < 0\\)). \n > \n\nFix *wall/region/ees* treats the surface of the geometric region defined\nby the *region-ID* as a bounding wall which interacts with nearby\nellipsoidal particles according to the EES potential introduced above.\n\nOther details of this command are the same as for the [fixwall/region ](https://docs.lammps.org/fix_wall_region.html) command. One may also find an example\nof using this fix in the examples/PACKAGES/ees/ directory.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes are written to [binary restartfiles ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthese fixes to add the energy of interaction between atoms and all the\nspecified walls or region wall to the global potential energy of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault settings for these fixes are [fix_modify energy no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthese fixes. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThese fixes computes a global scalar and a global vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). See the [fix wall ](https://docs.lammps.org/fix_wall.html) command for a\ndescription of the scalar and vector.\n\nNo parameter of these fixes can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to these fixes are imposed during an energy\nminimization, invoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy*\n > option for this fix. \n > \n\n\n**(BabadiEjtehadi)** Babadi and Ejtehadi, EPL, 77 (2007) 23002. \n ", - "restrictions": "These fixes are part of the EXTRA-FIX package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes requires that atoms be ellipsoids as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[fix wall ](https://docs.lammps.org/fix_wall.html),\n[pair resquared ](https://docs.lammps.org/pair_resquared.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve = style name of this fix command\n* xmax = maximum distance an atom can move in one timestep (distance units) \n", + "examples": "\n```lmps\nfix 1 all nve/limit 0.1\n```\n", + "html_filename": "fix_nve_limit.html", + "short_description": "Perform constant NVE updates of position and velocity for atoms in the\ngroup each timestep", + "description": "Perform constant NVE updates of position and velocity for atoms in the\ngroup each timestep. A limit is imposed on the maximum distance an\natom can move in one timestep. This is useful when starting a\nsimulation with a configuration containing highly overlapped atoms.\nNormally this would generate huge forces which would blow atoms out of\nthe simulation box, causing LAMMPS to stop with an error.\n\nUsing this fix can overcome that problem. Forces on atoms must still\nbe computable (which typically means 2 atoms must have a separation\ndistance > 0.0). But large velocities generated by large forces are\nreset to a value that corresponds to a displacement of length *xmax*\nin a single timestep. *Xmax* is specified in distance units; see the\n[units ](https://docs.lammps.org/units.html) command for details. The value of *xmax* should be\nconsistent with the neighbor skin distance and the frequency of\nneighbor list re-building, so that pairwise interactions are not\nmissed on successive timesteps as atoms move. See the\n[neighbor ](https://docs.lammps.org/neighbor.html) and [neigh_modify ](https://docs.lammps.org/neigh_modify.html) commands\nfor details.\n\nNote that if a velocity reset occurs the integrator will not conserve\nenergy. On steps where no velocity resets occur, this integrator is\nexactly like the [fix nve ](https://docs.lammps.org/fix_nve.html) command. Since forces are\nunaltered, pressures computed by thermodynamic output will still be\nvery large for overlapped configurations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not use [fix shake ](https://docs.lammps.org/fix_shake.html) in conjunction\n > with this fix. That is because fix shake applies constraint forces\n > based on the predicted positions of atoms after the next timestep.\n > It has no way of knowing the timestep may change due to this fix,\n > which will cause the constraint forces to be invalid. A better\n > strategy is to turn off fix shake when performing initial dynamics\n > that need this fix, then turn fix shake on when doing normal dynamics\n > with a fixed-size timestep. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the count of how\nmany updates of atom's velocity/position were limited by the maximum\ndistance criterion. This should be roughly the number of atoms so\naffected, except that updates occur at both the beginning and end of a\ntimestep in a velocity Verlet timestepping algorithm. This is a\ncumulative quantity for the current run, but is re-initialized to zero\neach time a run is performed. The scalar value calculated by this fix\nis \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html),\n[pair_style soft ](https://docs.lammps.org/pair_soft.html)\n" }, { "command": [ - "fix tgnvt/drude" + "fix nvk" ], "syntax": [ - "fix ID group-ID style_name keyword values ..." + "fix ID group-ID nvk" ], "args": [ [ @@ -7661,44 +7374,32 @@ export const command_docs = [ "choices": [] }, { - "arg": "tgnpt/drude", - "type": 3, - "choices": [ - "tgnvt/drude", - "tgnpt/drude" - ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, + "arg": "nvk", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = tgnvt/drude or tgnpt/drude\n* one or more keyword/values pairs may be appended \n *      keyword = temp iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or scalexy or scaleyz or scalexz or flip or fixedpoint \n       temp values = Tstart Tstop Tdamp Tdrude Tdamp_drude \n       Tstart, Tstop = external temperature at start/end of run (temperature units) \n       Tdamp = temperature damping parameter (time units) \n       Tdrude = desired temperature of Drude oscillators (temperature units) \n       Tdamp_drude = temperature damping parameter for Drude oscillators (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       pchain value = N \n       N length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = M \n       M = number of sub-cycles to perform on thermostat \n       ploop value = M \n       M = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       scalexy value = yes or no = scale xy with ly \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       fixedpoint values = x y z \n       x,y,z = perform barostat dilation/contraction around this point (distance units) \n", - "examples": "\n```lmps\ncomm_modify vel yes\nfix 1 all tgnvt/drude temp 300.0 300.0 100.0 1.0 20.0\nfix 1 water tgnpt/drude temp 300.0 300.0 100.0 1.0 20.0 iso 0.0 0.0 1000.0\nfix 2 jello tgnpt/drude temp 300.0 300.0 100.0 1.0 20.0 tri 5.0 5.0 1000.0\nfix 2 ice tgnpt/drude temp 250.0 250.0 100.0 1.0 20.0 x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\nExample input scripts available: examples/PACKAGES/drude\n", - "html_filename": "fix_tgnh_drude.html", - "short_description": "These commands are variants of the Nose-Hoover fix styles [fix nvt](https://docs.lammps.org/fix_nh.html) and [fix npt ](https://docs.lammps.org/fix_nh.html) for thermalized Drude polarizable\nmodels", - "description": "These commands are variants of the Nose-Hoover fix styles [fix nvt](https://docs.lammps.org/fix_nh.html) and [fix npt ](https://docs.lammps.org/fix_nh.html) for thermalized Drude polarizable\nmodels. They apply temperature-grouped Nose-Hoover thermostat (TGNH)\nproposed by **tgnh-Son**. When there are fast vibrational\nmodes with frequencies close to Drude oscillators (e.g. double bonds or\nout-of-plane torsions), this thermostat can provide better kinetic\nenergy equipartitioning.\n\nThe difference between TGNH and the original Nose-Hoover thermostat is that,\nTGNH separates the kinetic energy of the group into three contributions:\nmolecular center of mass (COM) motion,\nmotion of COM of atom-Drude pairs or non-polarizable atoms relative to molecular COM,\nand relative motion of atom-Drude pairs.\nAn independent Nose-Hoover chain is applied to each type of motion.\nThe temperatures for these three types of motion are denoted as\nmolecular translational temperature (\\(T_\\mathrm{M}\\)), real atomic temperature (\\(T_\\mathrm{R}\\)) and Drude temperature (\\(T_\\mathrm{D}\\)),\nwhich are defined in terms of their associated degrees of freedom (DOF):\n\\[\n T_\\mathrm{M}=\\frac{\\Sigma_{i}^{N_\\mathrm{mol}} M_i V_i^2}{3 \\left ( N_\\mathrm{mol} - \\frac{N_\\mathrm{mol}}{N_\\mathrm{mol,sys}} \\right ) k_\\mathrm{B}}\\]\n\\[\n T_\\mathrm{R}=\\frac{\\Sigma_{i}^{N_\\mathrm{real}} m_i (v_i-v_{M,i})^2}{(N_\\mathrm{DOF} - 3 N_\\mathrm{mol} + 3 \\frac{N_\\mathrm{mol}}{N_\\mathrm{mol,sys}} - 3 N_\\mathrm{drude}) k_\\mathrm{B}}\\]\n\\[\n T_\\mathrm{D}=\\frac{\\Sigma_{i}^{N_\\mathrm{drude}} m_i^{\\prime} v_i^{\\prime 2}}{3 N_\\mathrm{drude} k_\\mathrm{B}}\\]\nHere \\(N_\\mathrm{mol}\\) and \\(N_\\mathrm{mol,sys}\\) are the numbers of molecules in the group and in the whole system, respectively.\n\\(N_\\mathrm{real}\\) is the number of atom-Drude pairs and non-polarizable atoms in the group.\n\\(N_\\mathrm{drude}\\) is the number of Drude particles in the group.\n\\(N_\\mathrm{DOF}\\) is the DOF of the group.\n\\(M_i\\) and \\(V_i\\) are the mass and the COM velocity of the i-th molecule.\n\\(m_i\\) is the mass of the i-th atom-Drude pair or non-polarizable atom.\n\\(v_i\\) is the velocity of COM of i-th atom-Drude pair or non-polarizable atom.\n\\(v_{M,i}\\) is the COM velocity of the molecule the i-th atom-Drude pair or non-polarizable atom belongs to.\n\\(m_i^\\prime\\) and \\(v_i^\\prime\\) are the reduced mass and the relative velocity of the i-th atom-Drude pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes require that each atom knows whether it is a Drude particle or\n > not. You must therefore use the [fix drude ](https://docs.lammps.org/fix_drude.html) command to\n > specify the Drude status of each atom type.\n >\n > Because the TGNH thermostat thermostats the molecular COM motion,\n > all atoms belonging to the same molecule must be in the same group.\n > That is, these fixes can not be applied to a subset of a molecule.\n >\n > For this fix to act correctly, ghost atoms need to know their velocity.\n > You must use the [comm_modify ](https://docs.lammps.org/comm_modify.html) command to enable this.\n >\n > These fixes assume that the translational DOF of the whole system is removed.\n > It is therefore recommended to invoke [fix momentum ](https://docs.lammps.org/fix_momentum.html) command so that the \\(T_\\mathrm{M}\\) is calculated correctly. \n > \n\n----------\n\nThe thermostat parameters are specified using the *temp* keyword.\nThe thermostat is applied to only the translational DOF\nfor the particles. The translational DOF can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature for molecular and real atomic motion is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\nThe parameter *Tdrude* is the desired temperature for Drude motion at each timestep.\nSimilar to *Tdamp*, the *Tdamp_drude* parameter determines the relaxation speed for Drude motion.\nFix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\nOther thermostat-related keywords are *tchain* and *tloop*,\nwhich are detailed in [fix nvt ](https://docs.lammps.org/fix_nh.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. A smaller *Tdamp_drude* value would be required\n > to maintain Drude motion at low temperature. \n > \n\n\n```lmps\nfix 1 all nvt temp 300.0 300.0 $(100.0*dt) 1.0 $(20.0*dt)\n```\n----------\n\nThe barostat parameters for fix style *tgnpt/drude* is specified\nusing one or more of the *iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*,\n*xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify all 6 components of an external stress tensor, and\nto couple various of these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation. Other barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *scalexy*, *scaleyz*, *scalexz*, *flip* and *fixedpoint*.\nThe meaning of barostat parameters are detailed in [fix npt ](https://docs.lammps.org/fix_nh.html).\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, these fixes\n > perform thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied.\n > Likewise, these fixes should not be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html) command. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >However, not all temperature compute commands are valid to be used\n > with these fixes. Precisely, only temperature compute that does\n > not modify the DOF of the group can be used. E.g. [compute > temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) and [compute viscosity/cos > ](https://docs.lammps.org/compute_viscosity_cos.html) compute the kinetic energy after remove a\n > velocity gradient without affecting the DOF of the group, then they\n > can be invoked in this way. In contrast, [compute > temp/partial ](https://docs.lammps.org/compute_temp_partial.html) may remove the DOF at one or\n > more dimensions, therefore it cannot be used with these fixes. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by these fixes. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure, as described above. If you\ndo this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The\n > *temp* keyword will override this (for the pressure compute being\n > used by fix npt), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe cumulative energy change in the system imposed by these fixes, due\nto thermostatting and/or barostatting, are included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes also compute a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The vector\nvalues are \"intensive\". The vector stores the three temperatures\n\\(T_\\mathrm{M}\\), \\(T_\\mathrm{R}\\) and \\(T_\\mathrm{D}\\).\n\nThese fixes can ramp their external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the [run](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of how\nto do this.\n\nThese fixes are not invoked during [energy minimization](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(tgnh-Son)** Son, McDaniel, Cui and Yethiraj, J Phys Chem Lett, 10, 7523 (2019). \n ", - "restrictions": "These fixes are only available when LAMMPS was built with the\nDRUDE package. These fixes cannot be used with dynamic groups as\ndefined by the [group ](https://docs.lammps.org/group.html) command. These fixes cannot be\nused in 2D simulations.\n\n*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final *Tstop* cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n", - "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix_npt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvk = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nvk\n```\n", + "html_filename": "fix_nvk.html", + "short_description": "Perform constant kinetic energy integration using the Gaussian\nthermostat to update position and velocity for atoms in the group each\ntimestep", + "description": "Perform constant kinetic energy integration using the Gaussian\nthermostat to update position and velocity for atoms in the group each\ntimestep. V is volume; K is kinetic energy. This creates a system\ntrajectory consistent with the isokinetic ensemble.\n\nThe equations of motion used are those of Minary et al in\n**nvk-Minary**, a variant of those initially given by Zhang in\n**nvk-Zhang**.\n\nThe kinetic energy will be held constant at its value given when fix\nnvk is initiated. If a different kinetic energy is desired, the\n[velocity ](https://docs.lammps.org/velocity.html) command should be used to change the kinetic\nenergy prior to this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(nvk-Minary)** Minary, Martyna, and Tuckerman, J Chem Phys, 18, 2510 (2003). \n \n**(nvk-Zhang)** Zhang, J Chem Phys, 106, 6102 (1997). \n ", + "restrictions": "The Gaussian thermostat only works when it is applied to all atoms in\nthe simulation box. Therefore, the group must be set to all.\n\nThis fix has not yet been implemented to work with the RESPA integrator.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none\n" }, { "command": [ - "compute gyration" + "fix freeze", + "fix freeze/kk" ], "syntax": [ - "compute ID group-ID gyration" + "fix ID group-ID freeze" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -7713,61 +7414,71 @@ export const command_docs = [ "choices": [] }, { - "arg": "gyration", - "type": 1, - "choices": [] + "arg": "freeze", + "type": 3, + "choices": [ + "freeze", + "freeze/kk" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 molecule gyration\n```\n", - "html_filename": "compute_gyration.html", - "short_description": "Define a computation that calculates the radius of gyration \\(R_g\\) of the\ngroup of atoms, including all effects due to atoms passing through\nperiodic boundaries", - "description": "Define a computation that calculates the radius of gyration \\(R_g\\) of the\ngroup of atoms, including all effects due to atoms passing through\nperiodic boundaries.\n\n\\(R_g\\) is a measure of the size of the group of atoms, and is computed as\nthe square root of the \\(R_g^2\\) value in this formula\n\\[\n R_g^2 = \\frac{1}{M} \\sum_i m_i (r_i - r_{\\text{cm}})^2\\]\nwhere \\(M\\) is the total mass of the group, \\(r_{\\text{cm}}\\) is the\ncenter-of-mass position of the group, and the sum is over all atoms in\nthe group.\n\nA \\(R_g^2\\) tensor, stored as a 6-element vector, is also calculated\nby this compute. The formula for the components of the tensor is the\nsame as the above formula, except that \\((r_i - r_{\\text{cm}})^2\\) is\nreplaced by\n\\((r_{i,x} - r_{\\text{cm},x}) \\cdot (r_{i,y} - r_{\\text{cm},y})\\) for the\n\\(xy\\) component, and so on. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\nNote that unlike the scalar \\(R_g\\), each of the six values of the tensor\nis effectively a \"squared\" value, since the cross-terms may be negative\nand taking a square root would be invalid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to \\(R_g\\) in \"unwrapped\" form,\n > by using the image flags associated with each atom. See the\n > [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates.\n > See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You can\n > reset the image flags (e.g., to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global scalar (\\(R_g\\)) and a global vector of\nlength 6 (\\(R_g^2\\) tensor), which can be accessed by indices 1--6. These\nvalues can be used by any command that uses a global scalar value or\nvector values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar and vector values calculated by this compute are\n\"intensive\". The scalar and vector values will be in distance and\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html), respectively.\n", - "restrictions": " none\n", - "related": "[compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html),\n[compute gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* freeze = style name of this fix command \n", + "examples": "\n```lmps\nfix 2 bottom freeze\n```\n", + "html_filename": "fix_freeze.html", + "short_description": "Zero out the force and torque on a granular particle", + "description": "Zero out the force and torque on a granular particle. This is useful\nfor preventing certain particles from moving in a simulation. The\n[granular pair styles ](https://docs.lammps.org/pair_gran.html) also detect if this fix has been\ndefined and compute interactions between frozen and non-frozen\nparticles appropriately, as if the frozen particle has infinite mass.\nA similar functionality for normal (point) particles can be obtained\nusing [fix setforce ](https://docs.lammps.org/fix_setforce.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be a single freeze fix defined. This is because other\nthe [granular pair styles ](https://docs.lammps.org/pair_gran.html) treat frozen particles\ndifferently and need to be able to reference a single group to which\nthis fix is applied.\n", + "related": "[atom_style sphere ](https://docs.lammps.org/atom_style.html), [fix setforce ](https://docs.lammps.org/fix_setforce.html)\n" }, { "command": [ - "bond_style lepton", - "bond_style lepton/omp" + "fix_modify AtC mass_matrix" ], "syntax": [ - "bond_style style args" + "fix_modify mass_matrix " ], "args": [ [ { - "arg": "bond_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "", "type": 2, "choices": [] }, { - "arg": "args", - "type": 2, + "arg": "mass_matrix", + "type": 1, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "fe", + "md_fe" + ] } ] ], - "parameters": "* style = lepton\n* args = optional arguments \n *    args = auto_offset or no_offset \n     auto_offset = offset the potential energy so that the value at r0 is 0.0 (default) \n     no_offset = do not offset the potential energy \n", - "examples": "\n```lmps\nbond_style lepton\nbond_style lepton no_offset\n\nbond_coeff 1 1.5 \"k*r^2; k=250.0\"\nbond_coeff 2 1.1 \"k2*r^2 + k3*r^3 + k4*r^4; k2=300.0; k3=-100.0; k4=50.0\"\nbond_coeff 3 1.3 \"k*r^2; k=350.0\"\n```\n", - "html_filename": "bond_lepton.html", - "short_description": "\nBond style *lepton* computes bonded interactions between two atoms with\na custom function", - "description": "\nBond style *lepton* computes bonded interactions between two atoms with\na custom function. The potential function must be provided as an\nexpression string using \"r\" as the distance variable relative to the\nreference distance \\(r_0\\) which is provided as a bond coefficient.\nFor example `\"200.0*r^2\"` represents a harmonic potential with a force\nconstant *K* of 200.0 energy units:\n\\[\n U_{bond,i} = K (r_i - r_0)^2 = K r^2 \\qquad r = r_i - r_0\\]\n\nBy default the potential energy U is shifted so that he value U is 0.0\nfor $r = r_0$. This is equivalent to using the optional keyword\n*auto_offset*. When using the keyword *no_offset* instead, the\npotential energy is not shifted.\n\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* bond style interfaces with, evaluates this expression string at\nrun time to compute the pairwise energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect to\n\"r\" and then uses that to compute the force between the atom pairs forming\nbonds as defined by the topology data.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* \\(r_0\\) (distance)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The \\(r_0\\) is the\n\"equilibrium distance\". The potential energy function in the Lepton\nexpression is shifted in such a way, that the potential energy is 0 for\na bond length \\(r_i == r_0\\).\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [bond_style table ](https://docs.lammps.org/bond_table.html),\n[bond_write ](https://docs.lammps.org/bond_write.html), [angle_style lepton ](https://docs.lammps.org/angle_lepton.html),\n[dihedral_style lepton ](https://docs.lammps.org/dihedral_lepton.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mass_matrix = name of the AtC sub-command\n* fe or md_fe = activate/deactivate using the FE mass matrix in the MD region \n", + "examples": "\n```lmps\nfix_modify AtC mass_matrix fe\n```\n", + "html_filename": "atc_mass_matrix.html", + "short_description": "Determines whether AtC uses the FE mass matrix based on Gaussian\nquadrature or based on atomic quadrature in the MD region", + "description": "Determines whether AtC uses the FE mass matrix based on Gaussian\nquadrature or based on atomic quadrature in the MD region. This is\nuseful for fully overlapping simulations to improve efficiency.\n", + "restrictions": "Should not be used unless the FE region is contained within the MD\nregion, otherwise the method will be unstable and inaccurate.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style zero" + "pair_style awpmd/cut" ], "syntax": [ - "pair_style zero cutoff [nocoeff] [full]" + "pair_style awpmd/cut Rc keyword value ..." ], "args": [ [ @@ -7777,152 +7488,131 @@ export const command_docs = [ "choices": [] }, { - "arg": "zero", + "arg": "awpmd/cut", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "Rc", "type": 2, "choices": [] }, { - "arg": "[nocoeff]", - "type": 2, - "choices": [] + "arg": "flex_press", + "type": 3, + "choices": [ + "hartree", + "dproduct", + "uhf", + "free", + "pbc", + "fix", + "harm", + "ermscale", + "flex_press" + ] }, { - "arg": "[full]", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* zero = style name of this pair style\n* cutoff = global cutoff (distance units)\n* nocoeff = ignore all pair_coeff parameters (optional)\n* full = build full neighbor list (optional) \n", - "examples": "\n```lmps\npair_style zero 10.0\npair_style zero 5.0 nocoeff\npair_coeff * *\npair_coeff 1 2*4 3.0\n```\n", - "html_filename": "pair_zero.html", - "short_description": "Define a global or per-type cutoff length for the purpose of\nbuilding a neighbor list and acquiring ghost atoms, but do\nnot compute any pairwise forces or energies", - "description": "Define a global or per-type cutoff length for the purpose of\nbuilding a neighbor list and acquiring ghost atoms, but do\nnot compute any pairwise forces or energies.\n\nThis can be useful for fixes or computes which require a neighbor list\nto enumerate pairs of atoms within some cutoff distance, but when\npairwise forces are not otherwise needed. Examples are the [fix bond/create ](https://docs.lammps.org/fix_bond_create.html), [compute rdf ](https://docs.lammps.org/compute_rdf.html),\n[compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) commands.\n\nNote that the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command can be\nused to ensure communication of ghost atoms even when a pair style is\nnot defined, but it will not trigger neighbor list generation.\n\nThe optional *nocoeff* flag allows to read data files with a PairCoeff\nsection for any pair style. Similarly, any pair_coeff commands\nwill only be checked for the atom type numbers and the rest ignored.\nIn this case, only the global cutoff will be used.\n\nThe optional *full* flag builds a full neighbor list instead of the default\nhalf neighbor list.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nThis coefficient is optional. If not specified, the global cutoff\nspecified in the pair_style command is used. If the pair_style has\nbeen specified with the optional *nocoeff* flag, then a cutoff\npair coefficient is ignored.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe cutoff distance for this pair style can be mixed. The default mix\nvalue is *geometric* . See the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*,\nand *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command.\n\n----------\n", - "restrictions": "none\n", - "related": "[pair_style none ](https://docs.lammps.org/pair_none.html)\n" + "parameters": "* Rc = global cutoff, -1 means cutoff of half the shortest box length\n* zero or more keyword/value pairs may be appended\n* keyword = hartree or dproduct or uhf or free or pbc or fix or harm or ermscale or flex_press \n *        hartree value = none \n *        dproduct value = none \n *        uhf value = none \n *        free value = none \n *        pbc value = Plen \n         Plen = periodic width of electron = -1 or positive value (distance units) \n *        fix value = Flen \n         Flen = fixed width of electron = -1 or positive value (distance units) \n *        harm value = width \n         width = harmonic width constraint \n *        ermscale value = factor \n         factor = scaling between electron mass and width variable mass \n *        flex_press value = none \n", + "examples": "\n```lmps\npair_style awpmd/cut -1\npair_style awpmd/cut 40.0 uhf free\npair_coeff * *\npair_coeff 2 2 20.0\n```\n", + "html_filename": "pair_awpmd.html", + "short_description": "This pair style contains an implementation of the Antisymmetrized Wave\nPacket Molecular Dynamics (AWPMD) method", + "description": "This pair style contains an implementation of the Antisymmetrized Wave\nPacket Molecular Dynamics (AWPMD) method. Need citation here. Need\nbasic formulas here. Could be links to other documents.\n\nRc is the cutoff.\n\nThe pair_style command allows for several optional keywords\nto be specified.\n\nThe *hartree*, *dproduct*, and *uhf* keywords specify the form of the\ninitial trial wave function for the system. If the *hartree* keyword\nis used, then a Hartree multielectron trial wave function is used. If\nthe *dproduct* keyword is used, then a trial function which is a\nproduct of two determinants for each spin type is used. If the *uhf*\nkeyword is used, then an unrestricted Hartree-Fock trial wave function\nis used.\n\nThe *free*, *pbc*, and *fix* keywords specify a width constraint on\nthe electron wave packets. If the *free* keyword is specified, then there is no\nconstraint. If the *pbc* keyword is used and *Plen* is specified as\n-1, then the maximum width is half the shortest box length. If *Plen*\nis a positive value, then the value is the maximum width. If the\n*fix* keyword is used and *Flen* is specified as -1, then electrons\nhave a constant width that is read from the data file. If *Flen* is a\npositive value, then the constant width for all electrons is set to\n*Flen* .\n\nThe *harm* keyword allow oscillations in the width of the\nelectron wave packets. More details are needed.\n\nThe *ermscale* keyword specifies a unitless scaling factor\nbetween the electron masses and the width variable mass. More\ndetails needed.\n\nIf the *flex_press* keyword is used, then a contribution from the\nelectrons is added to the total virial and pressure of the system.\n\nThis potential is designed to be used with [atom_style wavepacket ](https://docs.lammps.org/atom_style.html) definitions, in order to handle the\ndescription of systems with interacting nuclei and explicit electrons.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *awpmd/cut*, the cutoff coefficient is optional. If it is not\nused (as in some of the examples above), the default global value\nspecified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for this pair style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": " none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "neigh_modify" + "dihedral_style harmonic", + "dihedral_style harmonic/intel", + "dihedral_style harmonic/kk", + "dihedral_style harmonic/omp" ], "syntax": [ - "neigh_modify keyword values ..." + "dihedral_style harmonic" ], "args": [ [ { - "arg": "neigh_modify", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] + "arg": "harmonic", + "type": 3, + "choices": [ + "harmonic", + "harmonic/intel", + "harmonic/kk", + "harmonic/omp" + ] } ] ], - "parameters": "* one or more keyword/value pairs may be listed \n *      keyword = delay or every or check or once or cluster or include or exclude or page or one or binsize or collection/type or collection/interval \n       delay value = N \n       N = delay building neighbor lists until this many steps since last build \n       every value = M \n       M = consider building neighbor lists every this many steps \n       check value = yes or no \n       yes = only build if at least one atom has moved half the skin distance or more \n       no = always build on 1st step where every and delay are conditions are satisfied \n       once value = yes or no \n       yes = only build neighbor list once at start of run and never rebuild \n       no = rebuild neighbor list according to other settings \n       cluster value = yes or no \n       yes = check bond,angle,etc neighbor list for nearby clusters \n       no = do not check bond,angle,etc neighbor list for nearby clusters \n       include value = group-ID \n       group-ID = only build pair neighbor lists for atoms in this group \n       exclude values: \n       type M N \n       M,N = exclude if one atom in pair is type M, other is type N (M and N may be type labels) \n       group group1-ID group2-ID \n       group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd \n       molecule/intra group-ID \n       group-ID = exclude if both atoms are in the same molecule and in group \n       molecule/inter group-ID \n       group-ID = exclude if both atoms are in different molecules and in group \n       none \n       delete all exclude settings \n       page value = N \n       N = number of pairs stored in a single neighbor page \n       one value = N \n       N = max number of neighbors of one atom \n       binsize value = size \n       size = bin size for neighbor list construction (distance units) \n       collection/type values = N arg1 ... argN \n       N = number of custom collections \n       arg = N separate lists of types (see below) \n       collection/interval values = N arg1 ... argN \n       N = number of custom collections \n       arg = N separate cutoffs for intervals (see below) \n", - "examples": "\n```lmps\nneigh_modify every 2 delay 10 check yes page 100000\nneigh_modify exclude type 2 3\nneigh_modify exclude group frozen frozen check no\nneigh_modify exclude group residue1 chain3\nneigh_modify exclude molecule/intra rigid\nneigh_modify collection/type 2 1*2,5 3*4\nneigh_modify collection/interval 2 1.0 10.0\n```\n", - "html_filename": "neigh_modify.html", - "short_description": "This command sets parameters that affect the building and use of\npairwise neighbor lists", - "description": "This command sets parameters that affect the building and use of\npairwise neighbor lists. Depending on what pair interactions and other\ncommands are defined, a simulation may require one or more neighbor\nlists.\n\nThe *every*, *delay*, *check*, and *once* options affect how often lists\nare built as a simulation runs. The *delay* setting means never build\nnew lists until at least N steps after the previous build. The *every*\nsetting means attempt to build lists every M steps (after the delay has\npassed). If the *check* setting is *no*, the lists are built on the\nfirst step that satisfies the *delay* and *every* settings. If the\n*check* setting is *yes*, then the *every* and *delay* settings\ndetermine when a build may possibly be performed, but an actual build\nonly occurs if at least one atom has moved more than half the neighbor\nskin distance (specified in the [neighbor ](https://docs.lammps.org/neighbor.html) command)\nsince the last neighbor list build.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Impact of neighbor list settings \n >The choice of neighbor list settings can have a significant impact on\n > the (parallel) performance of LAMMPS and the correctness of the\n > simulation results. Since building the neighbor lists is time\n > consuming, doing it less frequently can speed up a calculation. If\n > the lists are rebuilt too infrequently, however, interacting pairs\n > may be missing and thus the resulting pairwise interactions\n > incorrect. The optimal settings depend on many factors like the\n > properties of the simulated system (density, geometry, topology,\n > temperature, pressure), the force field parameters and settings, the\n > size of the timestep, neighbor list skin distance and more. The\n > default settings are chosen to be very conservative to guarantee\n > correctness of the simulation. They depend on the *check* flag\n > heuristics to reduce the number of neighbor list rebuilds at a minor\n > expense for executing the check. Determining the correctness of a\n > specific choice of neighbor list settings is complicated by the fact\n > that a neighbor list rebuild changes the order in which pairwise\n > interactions are computed and thus\n > - due to the limitations of floating-point math - the trajectory. \n > \n\nIf the *once* setting is yes, then the neighbor list is only built once\nat the beginning of each run, and never rebuilt, except on steps when a\nrestart file is written, or steps when a fix forces a rebuild to occur\n(e.g. fixes that create or delete atoms, such as [fix deposit](https://docs.lammps.org/fix_deposit.html) or [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)). This setting\nshould only be made if you are certain atoms will not move far enough\nthat the neighbor list should be rebuilt, e.g. running a simulation of a\ncold crystal. Note that it is not that expensive to check if neighbor\nlists should be rebuilt.\n\nWhen the rRESPA integrator is used (see the [run_style ](https://docs.lammps.org/run_style.html)\ncommand), the *every* and *delay* parameters refer to the longest\n(outermost) timestep.\n\nThe *cluster* option does a sanity test every time neighbor lists are\nbuilt for bond, angle, dihedral, and improper interactions, to check\nthat each set of 2, 3, or 4 atoms is a cluster of nearby atoms. It\ndoes this by computing the distance between pairs of atoms in the\ninteraction and ensuring they are not further apart than half the\nperiodic box length. If they are, an error is generated, since the\ninteraction would be computed between far-away atoms instead of their\nnearby periodic images. The only way this should happen is if the\npairwise cutoff is so short that atoms that are part of the same\ninteraction are not communicated as ghost atoms. This is an unusual\nmodel (e.g. no pair interactions at all) and the problem can be fixed\nby use of the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command. Note\nthat to save time, the default *cluster* setting is *no*, so that this\ncheck is not performed.\n\nThe *include* option limits the building of pairwise neighbor lists to\natoms in the specified group. This can be useful for models where a\nlarge portion of the simulation is particles that do not interact with\nother particles or with each other via pairwise interactions. The\ngroup specified with this option must also be specified via the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html) command. Note that specifying\n\"all\" as the group-ID effectively turns off the *include* option.\n\nThe *exclude* option turns off pairwise interactions between certain\npairs of atoms, by not including them in the neighbor list. These are\nsample scenarios where this is useful:\n\n* In crack simulations, pairwise interactions can be shut off between 2\n slabs of atoms to effectively create a crack.\n* When a large collection of atoms is treated as frozen, interactions\n between those atoms can be turned off to save needless\n computation. E.g. Using the [fix setforce ](https://docs.lammps.org/fix_setforce.html) command\n to freeze a wall or portion of a bio-molecule.\n* When one or more rigid bodies are specified, interactions within each\n body can be turned off to save needless computation. See the [fix rigid ](https://docs.lammps.org/fix_rigid.html) command for more details.\n\n **New in version 29Aug2024** \n\n Support for type labels was added.\nThe *exclude type* option turns off the pairwise interaction if one atom\nis of type M and the other of type N. M can equal N. The *exclude\ngroup* option turns off the interaction if one atom is in the first\ngroup and the other is the second. Group1-ID can equal group2-ID. The\n*exclude molecule/intra* option turns off the interaction if both atoms\nare in the specified group and in the same molecule, as determined by\ntheir molecule ID. The *exclude molecule/inter* turns off the\ninteraction between pairs of atoms that have different molecule IDs and\nare both in the specified group.\n\nEach of the exclude options can be specified multiple times. The\n*exclude type* option is the most efficient option to use; it requires\nonly a single check, no matter how many times it has been specified.\nThe other exclude options are more expensive if specified multiple\ntimes; they require one check for each time they have been specified.\n\nNote that the exclude options only affect pairwise interactions; see\nthe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command for information on\nturning off bond interactions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Excluding pairwise interactions will not work correctly when\n > also using a long-range solver via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. LAMMPS will give a warning\n > to this effect. This is because the short-range pairwise interaction\n > needs to subtract off a term from the total energy for pairs whose\n > short-range interaction is excluded, to compensate for how the\n > long-range solver treats the interaction. This is done correctly for\n > pairwise interactions that are excluded (or weighted) via the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command. But it is not done for\n > interactions that are excluded via these neigh_modify exclude options. \n > \n\nThe *page* and *one* options affect how memory is allocated for the\nneighbor lists. For most simulations the default settings for these\noptions are fine, but if a very large problem is being run or a very\nlong cutoff is being used, these parameters can be tuned. The indices\nof neighboring atoms are stored in \"pages\", which are allocated one\nafter another as they fill up. The size of each page is set by the\n*page* value. A new page is allocated when the next atom's neighbors\ncould potentially overflow the list. This threshold is set by the\n*one* value which tells LAMMPS the maximum number of neighbor's one\natom can have.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS can crash without an error message if the number of\n > neighbors for a single particle is larger than the *page* setting,\n > which means it is much, much larger than the *one* setting. This is\n > because LAMMPS does not error check these limits for every pairwise\n > interaction (too costly), but only after all the particle's neighbors\n > have been found. This problem usually means something is very wrong\n > with the way you have setup your problem (particle spacing, cutoff\n > length, neighbor skin distance, etc). If you really expect that many\n > neighbors per particle, then boost the *one* and *page* settings\n > accordingly. \n > \n\nThe *binsize* option allows you to specify what size of bins will be\nused in neighbor list construction to sort and find neighboring atoms.\nBy default, for [neighbor style bin ](https://docs.lammps.org/neighbor.html), LAMMPS uses bins\nthat are 1/2 the size of the maximum pair cutoff. For [neighborstyle multi ](https://docs.lammps.org/neighbor.html), the bins are 1/2 the size of the collection\ninteraction cutoff. Typically these are good values for minimizing the\ntime for neighbor list construction. This setting overrides the\ndefault. If you make it too big, there is little overhead due to\nlooping over bins, but more atoms are checked. If you make it too\nsmall, the optimal number of atoms is checked, but bin overhead goes up.\nIf you set the binsize to 0.0, LAMMPS will use the default binsize of\n1/2 the cutoff.\n\nThe *collection/type* option allows you to define collections of atom\ntypes, used by the *multi* neighbor mode. By grouping atom types with\nsimilar physical size or interaction cutoff lengths, one may be able to\nimprove performance by reducing overhead. You must first specify the\nnumber of collections N to be defined followed by N lists of types.\nEach list consists of a series of type ranges separated by commas. The\nrange can be specified as a single numeric value, or a wildcard asterisk\ncan be used to specify a range of values. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". For example, if M = the number of atom types,\nthen an asterisk with no numeric values means all types from 1 to M. A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to M (inclusive). A middle asterisk\nmeans all types from m to n (inclusive). Note that all atom types must\nbe included in exactly one of the N collections.\n\nThe *collection/interval* option provides a similar capability. This\ncommand allows a user to define collections by specifying a series of\ncutoff intervals. LAMMPS will automatically sort atoms into these\nintervals based on their type-dependent cutoffs or their finite size.\nYou must first specify the number of collections N to be defined\nfollowed by N values representing the upper cutoff of each interval.\nThis command is particularly useful for granular pair styles where the\ninteraction distance of particles depends on their radius and may not\ndepend on their atom type.\n", - "restrictions": "If the *delay* setting is non-zero, then it must be a multiple of the\n*every* setting.\n\nThe *molecule/intra* and *molecule/inter* exclusion options can only\nbe used with atom styles that define molecule IDs.\n\nThe value of the *page* setting must be at least 10x larger than the\n*one* setting. This ensures neighbor pages are not mostly empty\nspace.\n\nThe *exclude group* setting is currently not compatible with dynamic groups.\n", - "related": "[neighbor ](https://docs.lammps.org/neighbor.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" + "parameters": "", + "examples": "\n```lmps\ndihedral_style harmonic\ndihedral_coeff 1 80.0 1 2\n```\n", + "html_filename": "dihedral_harmonic.html", + "short_description": "The *harmonic* dihedral style uses the potential\n\\[\n E = K [ 1 + d \\cos (n \\phi) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (integer >= 0)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Here are important points to take note of when defining LAMMPS\n > dihedral coefficients for the harmonic style, so that they are\n > compatible with how harmonic dihedrals are defined by other force\n > fields: \n > \n\n* The LAMMPS convention is that the trans position = 180 degrees, while\n in some force fields trans = 0 degrees", + "description": "The *harmonic* dihedral style uses the potential\n\\[\n E = K [ 1 + d \\cos (n \\phi) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (integer >= 0)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Here are important points to take note of when defining LAMMPS\n > dihedral coefficients for the harmonic style, so that they are\n > compatible with how harmonic dihedrals are defined by other force\n > fields: \n > \n\n* The LAMMPS convention is that the trans position = 180 degrees, while\n in some force fields trans = 0 degrees.\n* Some force fields reverse the sign convention on \\(d\\).\n* Some force fields let \\(n\\) be positive or negative which corresponds to\n \\(d = 1\\) or \\(d = -1\\) for the harmonic style.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "pair_style lubricate", - "pair_style lubricate/omp", - "pair_style lubricate/poly", - "pair_style lubricate/poly/omp" + "dump netcdf" ], "syntax": [ - "pair_style style mu flaglog flagfld cutinner cutoff flagHI flagVF" + "dump ID group-ID netcdf N file args", + "dump ID group-ID netcdf/mpiio N file args" ], "args": [ [ { - "arg": "pair_style", + "arg": "dump", "type": 1, "choices": [] }, { - "arg": "lubricate/poly/omp", - "type": 3, - "choices": [ - "lubricate", - "lubricate/poly", - "lubricate/omp", - "lubricate/poly/omp" - ] - }, - { - "arg": "mu", - "type": 2, - "choices": [] - }, - { - "arg": "flaglog", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "flagfld", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cutinner", - "type": 2, + "arg": "netcdf", + "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "flagHI", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "flagVF", + "arg": "args", "type": 2, "choices": [] } - ] - ], - "parameters": "* style = lubricate or lubricate/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 to exclude/include log terms in the lubrication approximation\n* flagfld = 0/1 to exclude/include Fast Lubrication Dynamics (FLD) effects\n* cutinner = inner cutoff distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms \n", - "examples": "(all assume radius = 1)\n\n```lmps\npair_style lubricate 1.5 1 1 2.01 2.5\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n\npair_style lubricate 1.5 1 1 2.01 2.5\npair_coeff * *\nvariable mu equal ramp(1,2)\nfix 1 all adapt 1 pair lubricate mu * * v_mu\n```\n", - "html_filename": "pair_lubricate.html", - "short_description": "Styles *lubricate* and *lubricate/poly* compute hydrodynamic\ninteractions between mono-disperse finite-size spherical particles in\na pairwise fashion", - "description": "Styles *lubricate* and *lubricate/poly* compute hydrodynamic\ninteractions between mono-disperse finite-size spherical particles in\na pairwise fashion. The interactions have 2 components. The first is\nBall-Melrose lubrication terms via the formulas in **Ball1**\n\\[\\begin{align*} \n W & = - a_{sq} | (v_1 - v_2) \\bullet \\mathbf{nn} |^2 -\n a_{sh} | (\\omega_1 + \\omega_2) \\bullet\n (\\mathbf{I} - \\mathbf{nn}) - 2 \\Omega_N |^2 - \\\\\n & a_{pu} | (\\omega_1 - \\omega_2) \\bullet (\\mathbf{I} - \\mathbf{nn}) |^2 -\n a_{tw} | (\\omega_1 - \\omega_2) \\bullet \\mathbf{nn} |^2 \\qquad r < r_c \\\\\n & \\\\\n \\Omega_N & = \\mathbf{n} \\times (v_1 - v_2) / r \\end{align*} \\]\nwhich represents the dissipation W between two nearby particles due to\ntheir relative velocities in the presence of a background solvent with\nviscosity *mu* . Note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity.\n\nThe Asq (squeeze) term is the strongest and is included if *flagHI* is\nset to 1 (default). It scales as 1/gap where gap is the separation\nbetween the surfaces of the 2 particles. The Ash (shear) and Apu\n(pump) terms are only included if *flaglog* is set to 1. They are the\nnext strongest interactions, and the only other singular interaction,\nand scale as log(gap). Note that *flaglog* = 1 and *flagHI* = 0 is\ninvalid, and will result in a warning message, after which *flagHI* will\nbe set to 1. The Atw (twist) term is currently not included. It is\ntypically a very small contribution to the lubrication forces.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n*Cutinner* sets the minimum center-to-center separation that will be\nused in calculations irrespective of the actual separation. *Cutoff*\nis the maximum center-to-center separation at which an interaction is\ncomputed. Using a *cutoff* less than 3 radii is recommended if\n*flaglog* is set to 1.\n\nThe other component is due to the Fast Lubrication Dynamics (FLD)\napproximation, described in **Kumar1**, which can be\nrepresented by the following equation\n\\[\n F^{H} = -R_{FU}(U-U^{\\infty}) + R_{FE}E^{\\infty}\\]\nwhere U represents the velocities and angular velocities of the\nparticles, \\(U^{\\infty}\\) represents the velocity and the angular velocity\nof the undisturbed fluid, and \\(E^{\\infty}\\) represents the rate of strain\ntensor of the undisturbed fluid with viscosity *mu* . Again, note that\nthis is dynamic viscosity which has units of mass/distance/time, not\nkinematic viscosity. Volume fraction corrections to R_FU are included\nas long as *flagVF* is set to 1 (default).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the FLD terms, these pair styles are designed to be used\n > with explicit time integration and a correspondingly small timestep.\n > Thus either [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) or [fix > nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html) should be used for time integration.\n > To perform implicit FLD, see the [pair_style lubricateU > ](https://docs.lammps.org/pair_lubricateU.html) command. \n > \n\nStyle *lubricate* requires monodisperse spherical particles; style\n*lubricate/poly* allows for polydisperse spherical particles.\n\nThe viscosity *mu* can be varied in a time-dependent manner over the\ncourse of a simulation, in which case in which case the pair_style\nsetting for *mu* will be overridden. See the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand for details.\n\nIf the suspension is sheared via the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand then the pair style uses the shear rate to adjust the\nhydrodynamic interactions accordingly. Volume changes due to fix\ndeform are accounted for when computing the volume fraction\ncorrections to R_FU.\n\nWhen computing the volume fraction corrections to R_FU, the presence of\nwalls (whether moving or stationary) will affect the volume fraction\navailable to colloidal particles. This is currently accounted for with\nthe following types of walls: [wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[wall/lj126 ](https://docs.lammps.org/fix_wall.html), [wall/colloid ](https://docs.lammps.org/fix_wall.html), and\n[wall/harmonic ](https://docs.lammps.org/fix_wall.html). For these wall styles, the correct\nvolume fraction will be used when walls do not coincide with the box\nboundary, as well as when walls move and thereby cause a change in the\nvolume fraction. Other wall styles may still work, but they will result\nin the volume fraction being computed based on the box boundaries.\nSeveral wall styles are not compatible with these pair styles and using\nthem will result in an error.\n\nSince lubrication forces are dissipative, it is usually desirable to\nthermostat the system at a constant temperature. If Brownian motion\n(at a constant temperature) is desired, it can be set using the\n[pair_style brownian ](https://docs.lammps.org/pair_brownian.html) command. These pair styles\nand the brownian style should use consistent parameters for *mu*,\n*flaglog*, *flagfld*, *cutinner*, *cutoff*, *flagHI* and *flagVF* .\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for this\npair style can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ball1)** Ball and Melrose, Physica A, 247, 444-472 (1997). \n \n**(Kumar1)** Kumar and Higdon, Phys Rev E, 82, 051401 (2010). See also\nhis thesis for more details: A. Kumar, \"Microscale Dynamics in\nSuspensions of Non-spherical Particles\", Thesis, University of\nIllinois Urbana-Champaign,\n(2010). ([https://www.ideals.illinois.edu/handle/2142/16032](https://www.ideals.illinois.edu/handle/2142/16032)) \n ", - "restrictions": "These styles are part of the COLLOID package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly spherical monodisperse particles are allowed for pair_style\nlubricate.\n\nOnly spherical particles are allowed for pair_style lubricate/poly.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they\ncompute depend on atom velocities. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for more details.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\n" -}, -{ - "command": [ - "compute efield/atom" - ], - "syntax": [ - "compute ID group-ID efield/atom keyword val" - ], - "args": [ + ], [ { - "arg": "compute", + "arg": "dump", "type": 1, "choices": [] }, @@ -7937,139 +7627,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "efield/atom", - "type": 1, + "arg": "netcdf/mpiio", + "type": 2, "choices": [] }, { - "arg": "kspace", - "type": 3, - "choices": [ - "pair", - "kspace" - ] - }, - { - "arg": "val", + "arg": "N", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* efield/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = pair or kspace \n *      pair args = yes or no \n *      kspace args = yes or no \n", - "examples": "\n```lmps\ncompute 1 all efield/atom\ncompute 1 all efield/atom pair yes kspace no\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", - "html_filename": "compute_efield_atom.html", - "short_description": "Define a computation that calculates the electric field at each atom in a group", - "description": "Define a computation that calculates the electric field at each atom in a group.\nThe compute should only enabled with pair and kspace styles that are provided\nby the DIELECTRIC package because only these styles compute the per-atom\nelectric field at every time step.\n\nThe electric field is a 3-component vector. The value of the electric field\ncomponents will be 0.0 for atoms not in the specified compute group.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *pair* and *kspace* keywords, the real-space and reciprocal-space\ncontributions to the electric field can be turned off and on.\n\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in electric field [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the DIELECTRIC package. It is only enabled if\nLAMMPS was built with that package.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" -}, -{ - "command": [ - "pair_style eam", - "pair_style eam/gpu", - "pair_style eam/intel", - "pair_style eam/kk", - "pair_style eam/omp", - "pair_style eam/opt", - "pair_style eam/alloy", - "pair_style eam/alloy/gpu", - "pair_style eam/alloy/intel", - "pair_style eam/alloy/kk", - "pair_style eam/alloy/omp", - "pair_style eam/alloy/opt", - "pair_style eam/cd", - "pair_style eam/cd/old", - "pair_style eam/fs", - "pair_style eam/he", - "pair_style eam/he", - "pair_style eam/he", - "pair_style eam/he", - "pair_style eam/he", - "pair_style eam/he" - ], - "syntax": [ - "pair_style style" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "file", + "type": 2, "choices": [] }, { - "arg": "eam/fs/opt", - "type": 3, - "choices": [ - "eam", - "eam/alloy", - "eam/cd", - "eam/cd/old", - "eam/fs", - "eam/he", - "eam/gpu", - "eam/intel", - "eam/kk", - "eam/omp", - "eam/opt", - "eam/alloy/gpu", - "eam/alloy/intel", - "eam/alloy/kk", - "eam/alloy/omp", - "eam/alloy/opt", - "eam/fs/gpu", - "eam/fs/intel", - "eam/fs/kk", - "eam/fs/omp", - "eam/fs/opt" - ] + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = eam or eam/alloy or eam/cd or eam/cd/old or eam/fs or eam/he \n", - "examples": "\n```lmps\npair_style eam\npair_coeff * * cuu3\npair_coeff 1*3 1*3 niu3.eam\n\npair_style eam/alloy\npair_coeff * * ../potentials/NiAlH_jea.eam.alloy Ni Al Ni Ni\n\npair_style eam/cd\npair_coeff * * ../potentials/FeCr.cdeam Fe Cr\n\npair_style eam/fs\npair_coeff * * NiAlH_jea.eam.fs Ni Al Ni Ni\n\npair_style eam/he\npair_coeff * * PdHHe.eam.he Pd H He\n```\n", - "html_filename": "pair_eam.html", - "short_description": "Style *eam* computes pairwise interactions for metals and metal alloys\nusing embedded-atom method (EAM) potentials **Daw**", - "description": "Style *eam* computes pairwise interactions for metals and metal alloys\nusing embedded-atom method (EAM) potentials **Daw**. The total\nenergy Ei of an atom I is given by\n\\[\n E_i = F_\\alpha \\left(\\sum_{j \\neq i}\\ \\rho_\\beta (r_{ij})\\right) +\n \\frac{1}{2} \\sum_{j \\neq i} \\phi_{\\alpha\\beta} (r_{ij})\\]\nwhere F is the embedding energy which is a function of the atomic\nelectron density rho, phi is a pair potential interaction, and alpha\nand beta are the element types of atoms I and J. The multi-body\nnature of the EAM potential is a result of the embedding energy term.\nBoth summations in the formula are over all neighbors J of atom I\nwithin the cutoff distance.\n\nThe cutoff distance and the tabulated values of the functionals F,\nrho, and phi are listed in one or more files which are specified by\nthe [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. These are ASCII text files\nin a DYNAMO-style format which is described below. DYNAMO was the\noriginal serial EAM MD code, written by the EAM originators. Several\nDYNAMO potential files for different metals are included in the\n\"potentials\" directory of the LAMMPS distribution. All of these files\nare parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *eam* style reads single-element EAM potentials in the\n > DYNAMO *funcfl* format. Either single element or alloy systems can be\n > modeled using multiple *funcfl* files and style *eam* . For the alloy\n > case LAMMPS mixes the single-element potentials to produce alloy\n > potentials, the same way that DYNAMO does. Alternatively, a single\n > DYNAMO *setfl* file or Finnis/Sinclair EAM file can be used by LAMMPS\n > to model alloy systems by invoking the *eam/alloy* or *eam/cd* or\n > *eam/fs* or *eam/he* styles as described below. These files require no\n > mixing since they specify alloy interactions explicitly. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that unlike for other potentials, cutoffs for EAM potentials are not\n > set in the pair_style or pair_coeff command; they are specified in the EAM\n > potential files themselves. Likewise, valid EAM potential files usually\n > contain atomic masses; thus you may not need to use the [mass ](https://docs.lammps.org/mass.html)\n > command to specify them, unless the potential file uses a dummy value (e.g.\n > 0.0). LAMMPS will print a warning, if this is the case. \n > \n\nThere are web sites that distribute and document EAM potentials stored\nin DYNAMO or other formats:\n\n* https://www.ctcms.nist.gov/potentials\n* https://openkim.org\n\nThese potentials should be usable with LAMMPS, though the alternate\nformats would need to be converted to the DYNAMO format used by LAMMPS\nand described on this page. The NIST site is maintained by Chandler\nBecker (cbecker at nist.gov) who is good resource for info on\ninteratomic potentials and file formats.\n\nThe OpenKIM Project at\n[https://openkim.org/browse/models/by-type](https://openkim.org/browse/models/by-type)\nprovides EAM potentials that can be used directly in LAMMPS with the\n[kim command ](https://docs.lammps.org/kim_commands.html) interface.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The EAM potential files tabulate the embedding energy as a function\n > of the local electron density \\(\\rho\\). When atoms get too\n > close, this electron density may exceed the range for which the\n > embedding energy was tabulated for. To avoid crashes, LAMMPS will\n > assume a linearly increasing embedding energy for electron densities\n > beyond the maximum tabulated value. LAMMPS will print a warning when\n > this happens. It may be acceptable at the beginning of an\n > equilibration (e.g. when using randomized coordinates) but would be a\n > big concern for accuracy if it happens during production runs. The\n > EAM potential file triggering the warning during production is thus\n > not a good choice, and the EAM model in general not likely a good\n > model for the kind of system under investigation. \n > \n\n----------\n\nFor style *eam*, potential values are read from a file that is in the\nDYNAMO single-element *funcfl* format. If the DYNAMO file was created\nby a Fortran program, it cannot have \"D\" values in it for exponents.\nC only recognizes \"e\" or \"E\" for scientific notation.\n\nFor style *eam* a potential file must be assigned to each I,I pair of\natom types by using one or more pair_coeff commands, each with a\nsingle argument:\n\n* filename\n\nThus the following command\n\n```lmps\npair_coeff *2 1*2 cuu3.eam\n```\nwill read the cuu3 potential file and use the tabulated Cu values for\nF, phi, rho that it contains for type pairs 1,1 and 2,2 (type pairs\n1,2 and 2,1 are ignored). See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) doc\npage for alternate ways to specify the path for the potential file.\nIn effect, this makes atom types 1 and 2 in LAMMPS be Cu atoms.\nDifferent single-element files can be assigned to different atom types\nto model an alloy system. The mixing to create alloy potentials for\ntype pairs with I != J is done automatically the same way that the\nserial DYNAMO code originally did it; you do not need to specify\ncoefficients for these type pairs.\n\n*Funcfl* files in the *potentials* directory of the LAMMPS\ndistribution have an \".eam\" suffix. A DYNAMO single-element *funcfl*\nfile is formatted as follows:\n\n* line 1: comment (ignored)\n* line 2: atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* line 3: Nrho, drho, Nr, dr, cutoff\n\nOn line 2, all values but the mass are ignored by LAMMPS. The mass is\nin mass [units ](https://docs.lammps.org/units.html), e.g. mass number or grams/mole for metal\nunits. The cubic lattice constant is in Angstroms. On line 3, Nrho\nand Nr are the number of tabulated values in the subsequent arrays,\ndrho and dr are the spacing in density and distance space for the\nvalues in those arrays, and the specified cutoff becomes the pairwise\ncutoff used by LAMMPS for the potential. The units of dr are\nAngstroms; I'm not sure of the units for drho - some measure of\nelectron density.\n\nFollowing the three header lines are three arrays of tabulated values:\n\n* embedding function F(rho) (Nrho values)\n* effective charge function Z(r) (Nr values)\n* density function rho(r) (Nr values)\n\nThe values for each array can be listed as multiple values per line,\nso long as each array starts on a new line. For example, the\nindividual Z(r) values are for r = 0,dr,2\\*dr, ... (Nr-1)\\*dr.\n\nThe units for the embedding function F are eV. The units for the\ndensity function rho are the same as for drho (see above, electron\ndensity). The units for the effective charge Z are \"atomic charge\" or\nsqrt(Hartree \\* Bohr-radii). For two interacting atoms i,j this is used\nby LAMMPS to compute the pair potential term in the EAM energy\nexpression as r\\*phi, in units of eV-Angstroms, via the formula\n\\[\n r \\cdot \\phi = 27.2 \\cdot 0.529 \\cdot Z_i \\cdot Z_j\\]\nwhere 1 Hartree = 27.2 eV and 1 Bohr = 0.529 Angstroms.\n\n----------\n\nStyle *eam/alloy* computes pairwise interactions using the same\nformula as style *eam* . However the associated\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command reads a DYNAMO *setfl* file\ninstead of a *funcfl* file. *Setfl* files can be used to model a\nsingle-element or alloy system. In the alloy case, as explained\nabove, *setfl* files contain explicit tabulated values for alloy\ninteractions. Thus they allow more generality than *funcfl* files for\nmodeling alloys.\n\nFor style *eam/alloy*, potential values are read from a file that is\nin the DYNAMO multi-element *setfl* format, except that element names\n(Ni, Cu, etc) are added to one of the lines in the file. If the\nDYNAMO file was created by a Fortran program, it cannot have \"D\"\nvalues in it for exponents. C only recognizes \"e\" or \"E\" for\nscientific notation.\n\nOnly a single pair_coeff command is used with the *eam/alloy* style\nwhich specifies a DYNAMO *setfl* file, which contains information for\nM elements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of *setfl* elements to atom types\n\nAs an example, the potentials/NiAlH_jea.eam.alloy file is a *setfl*\nfile which has tabulated EAM values for 3 elements and their alloy\ninteractions: Ni, Al, and H. See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) doc\npage for alternate ways to specify the path for the potential file.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Ni, and the fourth to be Al, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * NiAlH_jea.eam.alloy Ni Ni Ni Al\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Ni arguments map LAMMPS atom types 1,2,3 to the Ni\nelement in the *setfl* file. The final Al argument maps LAMMPS atom\ntype 4 to the Al element in the *setfl* file. Note that there is no\nrequirement that your simulation use all the elements specified by the\n*setfl* file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *eam/alloy* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n*Setfl* files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.alloy\" suffix. A DYNAMO multi-element *setfl* file is\nformatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff\n\nIn a DYNAMO *setfl* file, line 4 only lists Nelements = the # of\nelements in the *setfl* file. For LAMMPS, the element name (Ni, Cu,\netc) of each element must be added to the line, in the order the\nelements appear in the file.\n\nThe meaning and units of the values in line 5 is the same as for the\n*funcfl* file described above. Note that the cutoff (in Angstroms) is\na global value, valid for all pairwise interactions for all element\npairings.\n\nFollowing the 5 header lines are Nelements sections, one for each\nelement, each with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function F(rho) (Nrho values)\n* density function rho(r) (Nr values)\n\nAs with the *funcfl* files, only the mass (in mass [units ](https://docs.lammps.org/units.html),\ne.g. mass number or grams/mole for metal units) is used by LAMMPS from\nthe first line. The cubic lattice constant is in Angstroms. The F and\nrho arrays are unique to a single element and have the same format and\nunits as in a *funcfl* file.\n\nFollowing the Nelements sections, Nr values for each pair potential\nphi(r) array are listed for all i,j element pairs in the same format\nas other arrays. Since these interactions are symmetric (i,j = j,i)\nonly phi arrays with i >= j are listed, in the following order: i,j =\n(1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (Nelements,\nNelements). Unlike the effective charge array Z(r) in *funcfl* files,\nthe tabulated values for each phi function are listed in *setfl* files\ndirectly as r\\*phi (in units of eV-Angstroms), since they are for atom\npairs.\n\n----------\n\nStyle *eam/cd* is similar to the *eam/alloy* style, except that it\ncomputes alloy pairwise interactions using the concentration-dependent\nembedded-atom method (CD-EAM). This model can reproduce the enthalpy\nof mixing of alloys over the full composition range, as described in\n**Stukowski**. Style *eam/cd/old* is an older, slightly\ndifferent and slower two-site formulation of the model **Caro**.\n\nThe pair_coeff command is specified the same as for the *eam/alloy*\nstyle. However the DYNAMO *setfl* file must has two\nlines added to it, at the end of the file:\n\n* line 1: Comment line (ignored)\n* line 2: N Coefficient0 Coefficient1 ... CoefficientN\n\nThe last line begins with the degree *N* of the polynomial function\n*h(x)* that modifies the cross interaction between A and B elements.\nThen *N+1* coefficients for the terms of the polynomial are then\nlisted.\n\nModified EAM *setfl* files used with the *eam/cd* style must contain\nexactly two elements, i.e. in the current implementation the *eam/cd*\nstyle only supports binary alloys. The first and second elements in\nthe input EAM file are always taken as the *A* and *B* species.\n\n*CD-EAM* files in the *potentials* directory of the LAMMPS\ndistribution have a \".cdeam\" suffix.\n\n----------\n\nStyle *eam/fs* computes pairwise interactions for metals and metal\nalloys using a generalized form of EAM potentials due to Finnis and\nSinclair **Finnis1**. Style *eam/he* is similar to\n*eam/fs* except that it allows for negative electron density in\norder to capture the behavior of helium in metals **Zhou6**.\n\nThe total energy Ei of an atom I is given by\n\\[\n E_i = F_\\alpha \\left(\\sum_{j \\neq i}\\\n \\rho_{\\alpha\\beta} (r_{ij})\\right) +\n \\frac{1}{2} \\sum_{j \\neq i} \\phi_{\\alpha\\beta} (r_{ij})\\]\nwhere \\(\\rho_{\\alpha\\beta}\\) refers to the density contributed\nby a neighbor atom J of element \\(\\beta\\) at the site of atom I\nof element \\(\\alpha\\).\nThis has the same form as the EAM formula above, except that rho is\nnow a functional specific to the elements of both atoms I and J,\nso that different elements can contribute differently to the total\nelectron density at an atomic site depending on the identity of the\nelement at that atomic site.\n\nThe associated [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for style *eam/fs*\nor *eam/he* reads a DYNAMO *setfl* file that has been extended to include\nadditional \\(\\rho_{\\alpha\\beta}\\) arrays of tabulated values. A\ndiscussion of how FS EAM differs from conventional EAM alloy potentials is\ngiven in **Ackland1**. An example of such a potential is the\nsame author's Fe-P FS potential **Ackland2**. Note that while\nFS potentials always specify the embedding energy with a square root\ndependence on the total density, the implementation in LAMMPS does not\nrequire that; the user can tabulate any functional form desired in the\nFS potential files.\n\nFor style *eam/fs* and *eam/he* the form of the pair_coeff command is exactly\nthe same as for style *eam/alloy*, e.g.\n\n```lmps\npair_coeff * * NiAlH_jea.eam.fs Ni Ni Ni Al\n```\nwith N additional arguments after the filename, where N is\nthe number of LAMMPS atom types. See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ndoc page for alternate ways to specify the path for the potential\nfile. The N values determine the mapping of LAMMPS atom types to EAM\nelements in the file, as described above for style *eam/alloy* . As\nwith *eam/alloy*, if a mapping value is NULL, the mapping is not\nperformed. This can be used when an *eam/fs* or *eam/he* potential is\nused as part of a *hybrid* pair style. The NULL values are used as\nplaceholders for atom types that will be used with other potentials.\n\nFS EAM and HE EAM files include more information than the DYNAMO *setfl*\nformat files read by *eam/alloy*, in that i,j density functionals for\nall pairs of elements are included as needed by the Finnis/Sinclair\nformulation of the EAM.\n\nFS EAM files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.fs\" suffix. They are formatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff\n\nThe 5-line header section is identical to an EAM *setfl* file.\n\nFollowing the header are Nelements sections, one for each element \\(\\beta\\),\neach with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function F(rho) (Nrho values)\n* density function \\(\\rho_{1\\beta} (r)\\) for element \\(\\beta\\) at element 1 (Nr values)\n* density function \\(\\rho_{2\\beta} (r)\\) for element \\(\\beta\\) at element 2\n* ...\n* density function \\(\\rho_{N_{elem}\\beta} (r)\\) for element \\(\\beta\\) at element \\(N_{elem}\\)\n\nThe units of these quantities in line 1 are the same as for *setfl*\nfiles. Note that the rho(r) arrays in Finnis/Sinclair can be\nasymmetric (\\(\\rho_{\\alpha\\beta} (r) \\neq \\rho_{\\beta\\alpha} (r)\\) )\nso there are Nelements\\^2 of them listed in the file.\n\nFollowing the Nelements sections, Nr values for each pair potential\nphi(r) array are listed in the same manner (r\\*phi, units of\neV-Angstroms) as in EAM *setfl* files. Note that in Finnis/Sinclair,\nthe phi(r) arrays are still symmetric, so only phi arrays for i >= j\nare listed.\n\nHE EAM files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.he\" suffix. They are formatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff, rhomax\n\nThe 5-line header section is identical to an FS EAM file\nexcept that line 5 lists an additional value, rhomax. Unlike in FS EAM\nfiles where embedding energies F(rho) are always defined between rho = 0\nand rho = (Nrho -1)drho, F(rho) in HE EAM files are defined between\nrho = rhomin and rho = rhomax. Since drho = (rhomax - rhomin)/(Nrho - 1),\nrhomin = rhomax - (Nrho - 1)drho. The embedding energies F(rho) are\nlisted for rho = rhomin, rhomin + drho, rhomin + 2drho, ..., rhomax.\nThis gives users additional flexibility to define a negative rhomin and\ntherefore an embedding energy function that works for both positive and\nnegative electron densities. The format and units of these sections are\nidentical to the FS EAM files (see above).\n\n----------\n\nThe *eam*, *eam/alloy*, *eam/fs*, and *eam/he* pair styles support\nextraction of two per-atom quantities by the [fix pair ](https://docs.lammps.org/fix_pair.html)\ncommand. This allows the quantities to be output to files by the\n[dump ](https://docs.lammps.org/dump.html) or otherwise processed by other LAMMPS commands.\n\nThe names of the two quantities are \"rho\" and \"fp\" for the density and\nderivative of the embedding energy for each atom. Neither quantity\nneeds to be triggered by the [fix pair ](https://docs.lammps.org/fix_pair.html) command in order\nfor these pair styles to calculate it.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above with the individual styles. You never need to specify\na pair_coeff command with I != J arguments for the eam styles.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe eam pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential\nfiles. Thus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThe eam pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n\n\n\n----------\n\n**(Daw)** Daw, Baskes, Phys Rev Lett, 50, 1285 (1983).\nDaw, Baskes, Phys Rev B, 29, 6443 (1984). \n \n**(Stukowski)** Stukowski, Sadigh, Erhart, Caro; Modeling Simulation\nMaterials Science & Engineering, 7, 075005 (2009). \n \n**(Caro)** A Caro, DA Crowson, M Caro; Phys Rev Lett, 95, 075702 (2005) \n \n**(Finnis1)** Finnis, Sinclair, Philosophical Magazine A, 50, 45 (1984). \n \n**(Zhou6)** Zhou, Bartelt, Sills, Physical Review B, 103, 014108 (2021). \n \n**(Ackland1)** Ackland, Condensed Matter (2005). \n \n**(Ackland2)** Ackland, Mendelev, Srolovitz, Han and Barashev, Journal\nof Physics: Condensed Matter, 16, S2629 (2004). \n ", - "restrictions": "All of these styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* netcdf or netcdf/mpiio = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write dump info to\n* args = list of atom attributes, same as for [dump_style custom ](https://docs.lammps.org/dump.html) \n", + "examples": "\n```lmps\ndump 1 all netcdf 100 traj.nc type x y z vx vy vz\ndump_modify 1 append yes at -1 thermo yes\ndump 1 all netcdf/mpiio 1000 traj.nc id type x y z\ndump 1 all netcdf 1000 traj.*.nc id type x y z\n```\n", + "html_filename": "dump_netcdf.html", + "short_description": "Dump a snapshot of atom coordinates every N timesteps in Amber-style\nNetCDF file format", + "description": "Dump a snapshot of atom coordinates every N timesteps in Amber-style\nNetCDF file format. NetCDF files are binary, portable and\nself-describing. This dump style will write only one file on the root\nnode. The dump style *netcdf* uses the [standard NetCDF library ](https://www.unidata.ucar.edu/software/netcdf/). All data is collected on one processor and then\nwritten to the dump file. Dump style *netcdf/mpiio* uses the\n[parallel NetCDF library ](https://trac.mcs.anl.gov/projects/parallel-netcdf/) and MPI-IO to write to the dump\nfile in parallel; it has better performance on a larger number of\nprocessors. Note that style *netcdf* outputs all atoms sorted by atom\ntag while style *netcdf/mpiio* outputs atoms in order of their MPI\nrank.\n\nNetCDF files can be directly visualized via the following tools:\n\n* Ovito (https://www.ovito.org/). Ovito supports the AMBER convention and\n all extensions of this dump style.\n* VMD (https://www.ks.uiuc.edu/Research/vmd/).\n\nIn addition to per-atom data, [thermo ](https://docs.lammps.org/thermo.html) data can be included in the\ndump file. The data included in the dump file is identical to the data specified\nby [thermo_style ](https://docs.lammps.org/thermo_style.html).\n\n----------\n", + "restrictions": "The *netcdf* and *netcdf/mpiio* dump styles are part of the\nNETCDF package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThe *netcdf* and *netcdf/mpiio* dump styles currently cannot dump\nstring properties or properties from variables.\n\n----------\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" }, { "command": [ - "dihedral_style spherical" + "pair_style extep" ], "syntax": [ - "dihedral_style spherical" + "pair_style extep" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "spherical", + "arg": "extep", "type": 1, "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\ndihedral_coeff 1 1 286.1 1 124 1 1 90.0 0 1 90.0 0\ndihedral_coeff 1 3 69.3 1 93.9 1 1 90 0 1 90 0 &\n49.1 0 0.00 0 1 74.4 1 0 0.00 0 &\n25.2 0 0.00 0 0 0.00 0 1 48.1 1\n```\n", - "html_filename": "dihedral_spherical.html", - "short_description": "The *spherical* dihedral style uses the potential:\n\n ![Image](JPG/dihedral_spherical_angles.jpg) \n\n\\[\\begin{align*} \n E(\\phi,\\theta_1,\\theta_2) & = \\sum_{i=1}^N\\nolimits\\ C_i\\ \\Phi_i(\\phi)\\ \\Theta_{1i}(\\theta_1)\\ \\Theta_{2i}(\\theta_2) \\\\\n \\Phi_{i}(\\phi) & = u_i - \\mathrm{cos}((\\phi - a_i)K_i) \\\\\n \\Theta_{1i}(\\theta_1) & = v_i - \\mathrm{cos}((\\theta_1-b_i)L_i) \\\\\n \\Theta_{2i}(\\theta_2) & = w_i - \\mathrm{cos}((\\theta_2-c_i)M_i) \\end{align*} \\]\nFor this dihedral style, the energy can be any function that combines the\n4-body dihedral-angle (\\(\\phi\\)) and the two 3-body bond-angles\n(\\(\\theta_1\\), \\(\\theta_2\\))", - "description": "The *spherical* dihedral style uses the potential:\n\n ![Image](JPG/dihedral_spherical_angles.jpg) \n\n\\[\\begin{align*} \n E(\\phi,\\theta_1,\\theta_2) & = \\sum_{i=1}^N\\nolimits\\ C_i\\ \\Phi_i(\\phi)\\ \\Theta_{1i}(\\theta_1)\\ \\Theta_{2i}(\\theta_2) \\\\\n \\Phi_{i}(\\phi) & = u_i - \\mathrm{cos}((\\phi - a_i)K_i) \\\\\n \\Theta_{1i}(\\theta_1) & = v_i - \\mathrm{cos}((\\theta_1-b_i)L_i) \\\\\n \\Theta_{2i}(\\theta_2) & = w_i - \\mathrm{cos}((\\theta_2-c_i)M_i) \\end{align*} \\]\nFor this dihedral style, the energy can be any function that combines the\n4-body dihedral-angle (\\(\\phi\\)) and the two 3-body bond-angles\n(\\(\\theta_1\\), \\(\\theta_2\\)).\nFor this reason, there is usually no need to define 3-body \"angle\" forces\nseparately for the atoms participating in these interactions.\nIt is probably more efficient to incorporate 3-body angle forces into\nthe dihedral interaction even if it requires adding additional terms to\nthe expansion (as was done in the second example). A careful choice of\nparameters can prevent singularities that occur with traditional\nforce-fields whenever theta1 or theta2 approach 0 or 180 degrees.\n\nThe last example above corresponds to an interaction with a single energy\nminima located near \\(\\phi=93.9\\), \\(\\theta_1=74.4\\),\n\\(\\theta_2=48.1\\) degrees, and it remains numerically stable at all\nangles (\\(\\phi\\), \\(\\theta_1\\), \\(\\theta_2\\)). In this example,\nthe coefficients 49.1, and 25.2 can be physically interpreted as the\nharmonic spring constants for theta1 and theta2 around their minima.\nThe coefficient 69.3 is the harmonic spring constant for phi after\ndivision by sin(74.4)\\*sin(48.1) (the minima positions for theta1 and theta2).\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe Dihedral Coeffs section of a data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(n\\) (integer >= 1)\n* \\(C_1\\) (energy)\n* \\(K_1\\) (typically an integer)\n* \\(a_1\\) (degrees)\n* \\(u_1\\) (typically 0.0 or 1.0)\n* \\(L_1\\) (typically an integer)\n* \\(b_1\\) (degrees, typically 0.0 or 90.0)\n* \\(v_1\\) (typically 0.0 or 1.0)\n* \\(M_1\\) (typically an integer)\n* \\(c_1\\) (degrees, typically 0.0 or 90.0)\n* \\(w_1\\) (typically 0.0 or 1.0)\n* [...]\n* \\(C_n\\) (energy)\n* \\(K_n\\) (typically an integer)\n* \\(a_n\\) (degrees)\n* \\(u_n\\) (typically 0.0 or 1.0)\n* \\(L_n\\) (typically an integer)\n* \\(b_n\\) (degrees, typically 0.0 or 90.0)\n* \\(v_n\\) (typically 0.0 or 1.0)\n* \\(M_n\\) (typically an integer)\n* \\(c_n\\) (degrees, typically 0.0 or 90.0)\n* \\(w_n\\) (typically 0.0 or 1.0)\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "examples": "\n```lmps\npair_style extep\npair_coeff * * BN.extep B N\n```\n", + "html_filename": "pair_extep.html", + "short_description": "Style *extep* computes the Extended Tersoff Potential (ExTeP)\ninteractions as described in **Los2017**", + "description": "Style *extep* computes the Extended Tersoff Potential (ExTeP)\ninteractions as described in **Los2017**.\n\n----------\n\n**(Los2017)** J. H. Los et al. \"Extended Tersoff potential for boron nitride:\nEnergetics and elastic properties of pristine and defective h-BN\",\nPhys. Rev. B 96 (184108), 2017. \n ", + "restrictions": "none\n", + "related": "`pair_tersoff `\n" }, { "command": [ - "fix drag" + "fix adapt" ], "syntax": [ - "fix ID group-ID drag x y z fmag delta" + "fix ID group-ID adapt N attribute args ... keyword value ..." ], "args": [ [ @@ -8089,56 +7710,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "drag", + "arg": "adapt", "type": 1, "choices": [] }, { - "arg": "x", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "y", - "type": 2, - "choices": [] + "arg": "atom", + "type": 3, + "choices": [ + "pair", + "bond", + "angle", + "kspace", + "atom" + ] }, { - "arg": "z", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "fmag", - "type": 2, - "choices": [] + "arg": "mass", + "type": 3, + "choices": [ + "scale", + "reset", + "mass" + ] }, { - "arg": "delta", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* drag = style name of this fix command\n* x,y,z = coord to drag atoms towards\n* fmag = magnitude of force to apply to each atom (force units)\n* delta = cutoff distance inside of which force is not applied (distance units) \n", - "examples": "\n```lmps\nfix center small-molecule drag 0.0 10.0 0.0 5.0 2.0\n```\n", - "html_filename": "fix_drag.html", - "short_description": "Apply a force to each atom in a group to drag it towards the point\n(x,y,z)", - "description": "Apply a force to each atom in a group to drag it towards the point\n(x,y,z). The magnitude of the force is specified by fmag. If an atom\nis closer than a distance delta to the point, then the force is not\napplied.\n\nAny of the x,y,z values can be specified as NULL which means do not\ninclude that dimension in the distance calculation or force\napplication.\n\nThis command can be used to steer one or more atoms to a new location\nin the simulation.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms by the drag force. The vector values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* adapt = style name of this fix command\n* N = adapt simulation settings every this many timesteps\n* one or more attribute/arg pairs may be appended\n* attribute = pair or bond or angle or kspace or atom \n *        pair args = pstyle pparam I J v_name \n         pstyle = pair style name (e.g., lj/cut) \n         pparam = parameter to adapt over time \n         I,J = type pair(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of pparam \n *        bond args = bstyle bparam I v_name \n         bstyle = bond style name (e.g., harmonic) \n         bparam = parameter to adapt over time \n         I = type bond to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of bparam \n *        angle args = astyle aparam I v_name \n         astyle = angle style name (e.g., harmonic) \n         aparam = parameter to adapt over time \n         I = type angle to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of aparam \n *        kspace arg = v_name \n         v_name = variable with name that calculates scale factor on \\(k\\)-space terms \n *        atom args = atomparam v_name \n         atomparam = charge or diameter or diameter/disc = parameter to adapt over time \n         v_name = variable with name that calculates value of atomparam \n* zero or more keyword/value pairs may be appended\n* keyword = scale or reset or mass \n *      scale value = no or yes \n       no = the variable value is the new setting \n       yes = the variable value multiplies the original setting \n *      reset value = no or yes \n       no = values will remain altered at the end of a run \n       yes = reset altered values to their original values at the end of a run \n *      mass value = no or yes \n       no = mass is not altered by changes in diameter \n       yes = mass is altered by changes in diameter \n", + "examples": "\n```lmps\nfix 1 all adapt 1 pair soft a 1 1 v_prefactor\nfix 1 all adapt 1 pair soft a 2* 3 v_prefactor\nfix 1 all adapt 1 pair lj/cut epsilon * * v_scale1 pair coul/cut scale 3 3 v_scale2 scale yes reset yes\nfix 1 all adapt 10 atom diameter v_size\n\nvariable ramp_up equal \"ramp(0.01,0.5)\"\nfix stretch all adapt 1 bond harmonic r0 1 v_ramp_up\n\nlabelmap atom 1 c1\nfix 1 all adapt 1 pair soft a c1 c1 v_prefactor\n```\n", + "html_filename": "fix_adapt.html", + "short_description": "Change or adapt one or more specific simulation attributes or settings over\ntime as a simulation runs", + "description": "Change or adapt one or more specific simulation attributes or settings over\ntime as a simulation runs. Pair potential and \\(k\\)-space and atom\nattributes which can be varied by this fix are discussed below. Many other\nfixes can also be used to time-vary simulation parameters (e.g., the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command will change the simulation box\nsize/shape and the [fix move ](https://docs.lammps.org/fix_move.html) command will change atom\npositions and velocities in a prescribed manner). Also note that many commands\nallow variables as arguments for specific parameters, if described in that\nmanner on their doc pages. An equal-style variable can calculate a\ntime-dependent quantity, so this is another way to vary a simulation parameter\nover time.\n\nIf \\(N\\) is specified as 0, the specified attributes are only changed\nonce, before the simulation begins. This is all that is needed if the\nassociated variables are not time-dependent. If \\(N > 0\\), then changes\nare made every \\(N\\) steps during the simulation, presumably with a\nvariable that is time-dependent.\n\nDepending on the value of the *reset* keyword, attributes changed by\nthis fix will or will not be reset back to their original values at\nthe end of a simulation. Even if *reset* is specified as *yes*, a\nrestart file written during a simulation will contain the modified\nsettings.\n\nIf the *scale* keyword is set to *no*, which is the default, then\nthe value of the altered parameter will be whatever the variable\ngenerates. If the *scale* keyword is set to *yes*, then the value\nof the altered parameter will be the initial value of that parameter\nmultiplied by whatever the variable generates (i.e., the variable is\nnow a \"scale factor\" applied in (presumably) a time-varying fashion to\nthe parameter).\n\nNote that whether scale is *no* or *yes*, internally, the parameters\nthemselves are actually altered by this fix. Make sure you use the\n*reset yes* option if you want the parameters to be restored to their\ninitial values after the run.\n\n----------\n\nThe *pair* keyword enables various parameters of potentials defined by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command to be changed, if the pair\nstyle supports it. Note that the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands must be used in the usual manner\nto specify these parameters initially; the fix adapt command simply\noverrides the parameters.\n\nThe *pstyle* argument is the name of the pair style. If\n[pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used,\n*pstyle* should be a sub-style name. If there are multiple\nsub-styles using the same pair style, then *pstyle* should be specified\nas \"style:N\", where *N* is which instance of the pair style you wish to\nadapt (e.g., the first or second). For example, *pstyle* could be\nspecified as \"soft\" or \"lubricate\" or \"lj/cut:1\" or \"lj/cut:2\". The\n*pparam* argument is the name of the parameter to change. This is the\ncurrent list of pair styles and parameters that can be varied by this\nfix. See the doc pages for individual pair styles and their energy\nformulas for the meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [born/coul/long, born/coul/msm ](https://docs.lammps.org/pair_born.html) | coulombic_cutoff | type global |\n| [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) | biga0,biga1,r0 | type pairs |\n| [buck, buck/coul/cut ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c,coulombic_cutoff | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut, coul/cut/global ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/debye ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/dsf ](https://docs.lammps.org/pair_coul.html) | coulombic_cutoff | type global |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | coulombic_cutoff, scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda, coulombic_cutoff | type pairs |\n| [coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) | scale | type pairs |\n| [coul/streitz ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [eam, eam/alloy, eam/fs ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) | k, cutoff | type pairs |\n| [kim ](https://docs.lammps.org/pair_kim.html) | scale | type global |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | A,B | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda,coulombic_cutoff | type pairs |\n| [lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html) | cutoff | type global |\n| [lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [lubricate ](https://docs.lammps.org/pair_lubricate.html) | mu | global |\n| [meam ](https://docs.lammps.org/pair_meam.html) | scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamma_repulsive,gamma_attractive | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | D0,R0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | D0,R0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | E0,R0,m,n | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | E0,R0,m,n,coulombic_cutoff | type pairs |\n| [pace, pace/extrapolation ](https://docs.lammps.org/pair_pace.html) | scale | type pairs |\n| [quip ](https://docs.lammps.org/pair_quip.html) | scale | type global |\n| [snap ](https://docs.lammps.org/pair_snap.html) | scale | type pairs |\n| [spin/dmi ](https://docs.lammps.org/pair_spin_dmi.html) | coulombic_cutoff | type global |\n| [spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html) | coulombic_cutoff | type global |\n| [spin/magelec ](https://docs.lammps.org/pair_spin_magelec.html) | coulombic_cutoff | type global |\n| [spin/neel ](https://docs.lammps.org/pair_spin_neel.html) | coulombic_cutoff | type global |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n| [table ](https://docs.lammps.org/pair_table.html) | table_cutoff | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) | epsilon,sigma,nu,mu | type pairs |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is easy to add new pairwise potentials and their parameters\n > to this list. All it typically takes is adding an extract() method to\n > the pair\\_\\*.cpp file associated with the potential. \n > \n\nSome parameters are global settings for the pair style (e.g., the\nviscosity setting \"mu\" for [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html)).\nOther parameters apply to atom type pairs within the pair style (e.g., the\nprefactor \\(a\\) for [pair_style soft ](https://docs.lammps.org/pair_soft.html)).\n\nNote that for many of the potentials, the parameter that can be varied\nis effectively a prefactor on the entire energy expression for the\npotential (e.g., the lj/cut epsilon). The parameters listed as \"scale\"\nare exactly that, since the energy expression for the\n[coul/cut ](https://docs.lammps.org/pair_coul.html) potential (for example) has no labeled\nprefactor in its formula. To apply an effective prefactor to some\npotentials, multiple parameters need to be altered. For example, the\n[Buckingham potential ](https://docs.lammps.org/pair_buck.html) needs both the \\(A\\) and\n\\(C\\) terms altered together. To scale the Buckingham potential, you\nshould thus list the pair style twice, once for \\(A\\) and once for\n\\(C\\).\n\nIf a type pair parameter is specified, the \\(I\\) and \\(J\\) settings\nshould be specified to indicate which type pairs to apply it to. If a global\nparameter is specified, the \\(I\\) and \\(J\\) settings still need to be\nspecified, but are ignored.\n\nSimilar to the [pair_coeff command ](https://docs.lammps.org/pair_coeff.html), \\(I\\) and\n\\(J\\) can be specified in one of several ways. Explicit numeric values\ncan be used for each, as in the first example above. Or, one or both of\nthe types in the I,J pair can be a [type label ](https://docs.lammps.org/Howto_type_labels.html).\nLAMMPS sets the coefficients for the symmetric \\(J,I\\) interaction to\nthe same values.\n\nA wild-card asterisk can be used in place of or in conjunction with\nthe \\(I,J\\) arguments to set the coefficients for multiple pairs of atom\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\)\nis the number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). For the asterisk syntax, note that only type pairs with\n\\(I \\le J\\) are considered; if asterisks imply type pairs where\n\\(J < I\\), they are ignored.\n\nIMPORTANT NOTE: If [pair_style hybrid or hybrid/overlay](https://docs.lammps.org/pair_hybrid.html) is being used, then the *pstyle* will be a sub-style\nname. You must specify \\(I,J\\) arguments that correspond to type pair\nvalues defined (via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for\nthat sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. Equal-style\nvariables can specify formulas with various mathematical functions, and\ninclude [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify parameters that change as a function of time or span\nconsecutive runs in a continuous fashion. For the latter, see the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command and the\n*elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for\ndetails.\n\nFor example, these commands would change the prefactor coefficient of\nthe [pair_style soft ](https://docs.lammps.org/pair_soft.html) potential from 10.0 to 30.0 in a\nlinear fashion over the course of a simulation:\n\n```lmps\nvariable prefactor equal ramp(10,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n----------\n\nThe *bond* keyword uses the specified variable to change the value of\na bond coefficient over time, very similar to how the *pair* keyword\noperates. The only difference is that now a bond coefficient for a\ngiven bond type is adapted.\n\nA wild-card asterisk can be used in place of or in conjunction with the\nbond type argument to set the coefficients for multiple bond types.\nThis takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of bond types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nCurrently *bond* does not support bond_style hybrid nor bond_style\nhybrid/overlay as bond styles. The bond styles that currently work\nwith fix_adapt are\n\n| | | |\n|---|---|---|\n| [class2 ](https://docs.lammps.org/bond_class2.html) | r0 | type bonds |\n| [fene ](https://docs.lammps.org/bond_fene.html) | k,r0 | type bonds |\n| [fene/nm ](https://docs.lammps.org/bond_fene.html) | k,r0 | type bonds |\n| [gromos ](https://docs.lammps.org/bond_gromos.html) | k,r0 | type bonds |\n| [harmonic ](https://docs.lammps.org/bond_harmonic.html) | k,r0 | type bonds |\n| [morse ](https://docs.lammps.org/bond_morse.html) | r0 | type bonds |\n| [nonlinear ](https://docs.lammps.org/bond_nonlinear.html) | epsilon,r0 | type bonds |\n\n----------\n\nThe *angle* keyword uses the specified variable to change the value of\nan angle coefficient over time, very similar to how the *pair* keyword\noperates. The only difference is that now an angle coefficient for a\ngiven angle type is adapted.\n\nA wild-card asterisk can be used in place of or in conjunction with the\nangle type argument to set the coefficients for multiple angle types.\nThis takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of angle types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nCurrently *angle* does not support angle_style hybrid nor angle_style\nhybrid/overlay as angle styles. The angle styles that currently work\nwith fix_adapt are\n\n| | | |\n|---|---|---|\n| [harmonic ](https://docs.lammps.org/angle_harmonic.html) | k,theta0 | type angles |\n| [cosine ](https://docs.lammps.org/angle_cosine.html) | k | type angles |\n\nNote that internally, theta0 is stored in radians, so the variable\nthis fix uses to reset theta0 needs to generate values in radians.\n\n----------\n\nThe *kspace* keyword used the specified variable as a scale factor on\nthe energy, forces, virial calculated by whatever \\(k\\)-space solver is\ndefined by the [kspace_style ](https://docs.lammps.org/kspace_style.html) command. If the\nvariable has a value of 1.0, then the solver is unaltered.\n\nThe *kspace* keyword works this way whether the *scale* keyword\nis set to *no* or *yes* .\n\n----------\n\nThe *atom* keyword enables various atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be varied by this fix:\n\n* charge = charge on particle\n* diameter or diameter/disc = diameter of particle\n\nThe *v_name* argument of the *atom* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each\ntime this fix is invoked to set, or scale the parameter to a new\nvalue. It should be specified as v_name, where name is the variable\nname. See the discussion above describing the formulas associated\nwith equal-style variables. The new value is assigned to the\ncorresponding attribute for all atoms in the fix group.\n\nIf the atom parameter is *diameter* and per-atom density and per-atom\nmass are defined for particles (e.g., [atom_style granular](https://docs.lammps.org/atom_style.html)), then the mass of each particle is, by default, also\nchanged when the diameter changes. The mass is set from the particle\nvolume for 3d systems (density is assumed to stay constant). For 2d,\nthe default is for LAMMPS to model particles with a radius attribute\nas spheres. However, if the atom parameter is *diameter/disc*, then the\nmass is set from the particle area (the density is assumed to be in\nmass/distance\\ \\(^2\\) units). The mass of the particle may also be kept\nconstant if the *mass* keyword is set to *no*. This can be useful to account\nfor diameter changes that do not involve mass changes (e.g., thermal\nexpansion).\n\nFor example, these commands would shrink the diameter of all granular\nparticles in the \"center\" group from 1.0 to 0.1 in a linear fashion\nover the course of a 1000-step simulation:\n\n```lmps\nvariable size equal ramp(1.0,0.1)\nfix 1 center adapt 10 atom diameter v_size\n```\n----------\n\nThis fix can be used in long simulations which are restarted one or\nmore times to continuously adapt simulation parameters, but it must be\ndone carefully. There are two issues to consider. The first is how\nto adapt the parameters in a continuous manner from one simulation to\nthe next. The second is how, if desired, to reset the parameters to\ntheir original values at the end of the last restarted run.\n\nNote that all the parameters changed by this fix are written into a\nrestart file in their current changed state. A new restarted\nsimulation does not know the original time=0 values, unless the\ninput script explicitly resets the parameters (after the restart file\nis read) to the original values.\n\nAlso note that the time-dependent variable(s) used in the restart\nscript should typically be written as a function of time elapsed since\nthe original simulation began.\n\nWith this in mind, if the *scale* keyword is set to *no* (the default)\nin a restarted simulation, original parameters are not needed. The\nadapted parameters should seamlessly continue their variation relative\nto the preceding simulation.\n\nIf the *scale* keyword is set to *yes*, then the input script should\ntypically reset the parameters being adapted to their original values,\nso that the scaling formula specified by the variable will operate\ncorrectly. An exception is if the *atom* keyword is being used with\n*scale yes*. In this case, information is added to the restart file\nso that per-atom properties in the new run will automatically be\nscaled relative to their original values. This will only work if the\nfix adapt command specified in the restart script has the same ID as\nthe one used in the original script.\n\nIn a restarted run, if the *reset* keyword is set to *yes*, and the\nrun ends in this script (as opposed to just writing more restart\nfiles), parameters will be restored to the values they were at the\nbeginning of the run command in the restart script, which as\nexplained above, may or may not be the original values of the\nparameters. Again, an exception is if the *atom* keyword is being\nused with *reset yes* (in all the runs). In that case, the original\nper-atom parameters are stored in the restart file, and will be\nrestored when the restarted run finally completes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nIf the *atom* keyword is used and the *scale* or *reset* keyword is\nset to *yes*, then this fix writes information to a restart file so\nthat in a restarted run scaling can continue in a seamless manner\nand/or the per-atom values can be restored, as explained above.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix changes\nparameters on the outermost rRESPA level.\n", + "restrictions": " none\n", + "related": "[compute ti ](https://docs.lammps.org/compute_ti.html), [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html)\n" }, { "command": [ - "compute smd/damage" + "fix nve", + "fix nve/gpu", + "fix nve/intel", + "fix nve/kk", + "fix nve/omp" ], "syntax": [ - "compute ID group-ID smd/damage" + "fix ID group-ID nve" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -8153,166 +7788,108 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/damage", - "type": 1, - "choices": [] + "arg": "nve", + "type": 3, + "choices": [ + "nve", + "nve/gpu", + "nve/intel", + "nve/kk", + "nve/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/damage = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/damage\n```\n", - "html_filename": "compute_smd_damage.html", - "short_description": "Define a computation that calculates the damage status of SPH particles\naccording to the damage model which is defined via the SMD SPH pair styles, e.g., the maximum plastic strain failure criterion", - "description": "Define a computation that calculates the damage status of SPH particles\naccording to the damage model which is defined via the SMD SPH pair styles, e.g., the maximum plastic strain failure criterion.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values are dimensionless an in the range of zero to one.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the \"Build\n", - "related": "[smd/plastic_strain ](https://docs.lammps.org/compute_smd_plastic_strain.html), [smd/tlsph_stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve\n```\n", + "html_filename": "fix_nve.html", + "short_description": "Perform plain time integration to update position and velocity for\natoms in the group each timestep", + "description": "Perform plain time integration to update position and velocity for\natoms in the group each timestep. This creates a system trajectory\nconsistent with the microcanonical ensemble (NVE) provided there\nare (full) periodic boundary conditions and no other \"manipulations\"\nof the system (e.g. fixes that modify forces or velocities).\n\nThis fix invokes the velocity form of the\nStoermer-Verlet time integration algorithm (velocity-Verlet). Other\ntime integration options can be invoked using the [run_style ](https://docs.lammps.org/run_style.html) command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [run_style ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "pair_style agni", - "pair_style agni/omp" + "compute voronoi/atom" ], "syntax": [ - "pair_style agni" + "compute ID group-ID voronoi/atom keyword arg ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "agni", - "type": 3, - "choices": [ - "agni", - "agni/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style agni\npair_coeff * * Al.agni Al\n```\n", - "html_filename": "pair_agni.html", - "short_description": "Style *agni* style computes the many-body vectorial force components for\nan atom as\n\\[\\begin{align*} \n F_i^u & = \\sum_t^{N_t}\\alpha_t \\cdot \\exp\\left[-\\frac{\\left(d_{i,t}^u\\right)^2}{2l^2}\\right] \\\\\n d_{i,t}^u & = \\left|\\left| V_i^u(\\eta) - V_t^u(\\eta) \\right|\\right| \\\\\n V_i^u(\\eta) & = \\sum_{j \\neq i}\\frac{r^u_{ij}}{r_{ij}} \\cdot e^{-\\left(\\frac{r_{ij}}{\\eta} \\right)^2} \\cdot f_d\\left(r_{ij}\\right) \\\\\n f_d\\left(r_{ij}\\right) & = \\frac{1}{2} \\left[\\cos\\left(\\frac{\\pi r_{ij}}{R_c}\\right) + 1 \\right] \\end{align*} \\]\n\\(u\\) labels the individual components, i.e", - "description": "Style *agni* style computes the many-body vectorial force components for\nan atom as\n\\[\\begin{align*} \n F_i^u & = \\sum_t^{N_t}\\alpha_t \\cdot \\exp\\left[-\\frac{\\left(d_{i,t}^u\\right)^2}{2l^2}\\right] \\\\\n d_{i,t}^u & = \\left|\\left| V_i^u(\\eta) - V_t^u(\\eta) \\right|\\right| \\\\\n V_i^u(\\eta) & = \\sum_{j \\neq i}\\frac{r^u_{ij}}{r_{ij}} \\cdot e^{-\\left(\\frac{r_{ij}}{\\eta} \\right)^2} \\cdot f_d\\left(r_{ij}\\right) \\\\\n f_d\\left(r_{ij}\\right) & = \\frac{1}{2} \\left[\\cos\\left(\\frac{\\pi r_{ij}}{R_c}\\right) + 1 \\right] \\end{align*} \\]\n\\(u\\) labels the individual components, i.e. \\(x\\), \\(y\\) or \\(z\\), and \\(V\\) is the\ncorresponding atomic fingerprint. \\(d\\) is the Euclidean distance between\nany two atomic fingerprints. A total of \\(N_t\\) reference atomic\nenvironments are considered to construct the force field file. \\(\\alpha_t\\)\nand \\(l\\) are the weight coefficients and length scale parameter of the\nnon-linear regression model.\n\nThe method implements the recently proposed machine learning access to\natomic forces as discussed extensively in the following publications -\n**Botu2015adaptive** and **Botu2015learning**. The premise\nof the method is to map the atomic environment numerically into a\nfingerprint, and use machine learning methods to create a mapping to the\nvectorial atomic forces.\n\nOnly a single pair_coeff command is used with the *agni* style which\nspecifies an AGNI potential file containing the parameters of the\nforce field for the needed elements. These are mapped to LAMMPS atom\ntypes by specifying \\(N\\) additional arguments after the filename in the\npair_coeff command, where \\(N\\) is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of AGNI elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the force field file.\n\nAn AGNI force field is fully specified by the filename which contains the\nparameters of the force field, i.e., the reference training environments\nused to construct the machine learning force field. Example force field\nand input files are provided in the examples/PACKAGES/agni directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Botu2015adaptive)** V. Botu and R. Ramprasad, Int. J. Quant. Chem., 115(16), 1074 (2015). \n \n**(Botu2015learning)** V. Botu and R. Ramprasad, Phys. Rev. B, 92(9), 094306 (2015). \n ", - "restrictions": "Currently, only elemental systems are implemented. Also, the method\nonly provides access to the forces and not energies or stresses.\nThe lack of potential energy data makes this pair style incompatible with\nseveral of the [minimizer algorthms ](https://docs.lammps.org/min_style.html) like *cg* or *sd* .\nIt should work with damped dynamics based minimizers like *fire* or\n*quickmin* . However, one can access the energy via thermodynamic\nintegration of the forces as discussed in\n**Botu2016construct**. This pair style is part of the\nMISC package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThe AGNI force field files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the AGNI potential with any LAMMPS units, but you would need\nto create your own AGNI potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n\n**(Botu2016construct)** V. Botu, R. Batra, J. Chapman and R. Ramprasad, https://arxiv.org/abs/1610.02098 (2016). \n ", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "labelmap" - ], - "syntax": [ - "labelmap option args" - ], - "args": [ - [ + "arg": "ID", + "type": 2, + "choices": [] + }, { - "arg": "labelmap", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "voronoi/atom", "type": 1, "choices": [] }, { - "arg": "write", + "arg": "neighbors", "type": 3, "choices": [ - "atom", - "bond", - "angle", - "dihedral", - "improper", - "clear", - "write" + "only_group", + "occupation", + "surface", + "radius", + "edge_histo", + "edge_threshold", + "face_threshold", + "neighbors" ] }, { - "arg": "args", + "arg": "arg", "type": 2, "choices": [] } ] ], - "parameters": "* option = atom or bond or angle or dihedral or improper or clear or write \n *      clear = no args \n *      write arg = filename \n *      atom or bond or angle or dihedral or improper \n       args = list of one or more numeric-type/type-label pairs \n", - "examples": "\n```lmps\nlabelmap atom 1 c1 2 hc 3 cp 4 nt\nlabelmap atom 3 carbon 4 'c3\"' 5 \"c1'\" 6 \"c#\"\nlabelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C'\nlabelmap clear\nlabelmap write mymap.include\nlabelmap bond 1 carbonyl 2 nitrile 3 \"\"\" c1'-c2\" \"\"\"\n```\n", - "html_filename": "labelmap.html", - "short_description": "\nDefine alphanumeric type labels to associate with one or more numeric\natom, bond, angle, dihedral or improper types", - "description": "\nDefine alphanumeric type labels to associate with one or more numeric\natom, bond, angle, dihedral or improper types. A collection of type\nlabels for all atom types, bond types, etc. is stored as a label map.\n\nThe label map can also be defined by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand when it reads these sections in a data file: Atom Type Labels,\nBond Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for a general discussion of how type\nlabels can be used. See **Typelabel1** for a\ndiscussion of the type label implementation in LAMMPS and its uses.\n\nValid type labels can contain any alphanumeric character, but must not\nstart with a number, a '#', or a '*' character. They can contain other\nstandard ASCII characters such as angular or square brackets '<' and '>'\nor '[' and ']', parenthesis '(' and ')', dash '-', underscore '_', plus\n'+' and equals '=' signs and more. They must not contain blanks or any\nother whitespace. Note that type labels must be put in single or double\nquotation marks if they contain the '#' character or if they contain a\ndouble (\") or single quotation mark ('). If the label contains both\na single and a double quotation mark, then triple quotation (\"\"\") must\nbe used. When enclosing a type label with quotation marks, the\nLAMMPS input parser may require adding leading or trailing blanks\naround the type label so it can identify the enclosing quotation\nmarks. Those blanks will be removed when defining the label.\n\nA *labelmap* command can only modify the label map for one type-kind\n(atom types, bond types, etc). Any number of numeric-type/type-label\npairs may follow. If a type label already exists for the same numeric\ntype, it will be overwritten. Type labels must be unique; assigning the\nsame type label to multiple numeric types within the same type-kind is\nnot allowed. When reading and writing data files, it is required that\nthere is a label defined for *every* numeric type within a given\ntype-kind in order to write out the type label section for that\ntype-kind.\n\nThe *clear* option resets the label map and thus discards all previous\nsettings.\n\nThe *write* option takes a filename as argument and writes the current\nlabel mappings to a file as a sequence of *labelmap* commands, so the\nfile can be copied into a new LAMMPS input file or read in using the\n[include ](https://docs.lammps.org/include.html) command.\n\n----------\n\n**(Typelabel1)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024). \n ", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nLabel maps are currently not supported when using the KOKKOS package.\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_data ](https://docs.lammps.org/write_data.html),\n[molecule ](https://docs.lammps.org/molecule.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* voronoi/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = only_group or occupation or surface or radius or edge_histo or edge_threshold or face_threshold or neighbors \n *        only_group = no arg \n *        occupation = no arg \n *        surface arg = sgroup-ID \n         sgroup-ID = compute the dividing surface between group-ID and sgroup-ID \n         this keyword adds a third column to the compute output \n *        radius arg = v_r \n         v_r = radius atom style variable for a poly-disperse Voronoi tessellation \n *        edge_histo arg = maxedge \n         maxedge = maximum number of Voronoi cell edges to be accounted in the histogram \n *        edge_threshold arg = minlength \n         minlength = minimum length for an edge to be counted \n *        face_threshold arg = minarea \n         minarea = minimum area for a face to be counted \n *        neighbors value = yes or no = store list of all neighbors or no \n", + "examples": "\n```lmps\ncompute 1 all voronoi/atom\ncompute 2 precipitate voronoi/atom surface matrix\ncompute 3b precipitate voronoi/atom radius v_r\ncompute 4 solute voronoi/atom only_group\ncompute 5 defects voronoi/atom occupation\ncompute 6 all voronoi/atom neighbors yes\n```\n", + "html_filename": "compute_voronoi_atom.html", + "short_description": "Define a computation that calculates the Voronoi tessellation of the\natoms in the simulation box", + "description": "Define a computation that calculates the Voronoi tessellation of the\natoms in the simulation box. The tessellation is calculated using all\natoms in the simulation, but non-zero values are only stored for atoms\nin the group.\n\nTwo per-atom quantities are calculated by this compute. The first is\nthe volume of the Voronoi cell around each atom. Any point in an\natom's Voronoi cell is closer to that atom than any other. The second\nis the number of faces of the Voronoi cell. This is equal to the\nnumber of nearest neighbors of the central atom, plus any exterior\nfaces (see note below).\n\n----------\n\nIf the *only_group* keyword is specified the tessellation is performed\nonly with respect to the atoms contained in the compute group. This is\nequivalent to deleting all atoms not contained in the group prior to\nevaluating the tessellation.\n\nIf the *surface* keyword is specified a third quantity per atom is\ncomputed: the Voronoi cell surface of the given atom. *surface* takes\na group ID as an argument. If a group other than *all* is specified,\nonly the Voronoi cell facets facing a neighbor atom from the specified\ngroup are counted towards the surface area.\n\nIn the example above, a precipitate embedded in a matrix, only atoms\nat the surface of the precipitate will have non-zero surface area, and\nonly the outward facing facets of the Voronoi cells are counted (the\nhull of the precipitate). The total surface area of the precipitate\ncan be obtained by running a \"reduce sum\" compute on c_2[3].\n\nIf the *radius* keyword is specified with an atom style variable as\nthe argument, a poly-disperse Voronoi tessellation is\nperformed. Examples for radius variables are\n\n```lmps\nvariable r1 atom (type==1)*0.1+(type==2)*0.4\ncompute radius all property/atom radius\nvariable r2 atom c_radius\n```\nHere v_r1 specifies a per-type radius of 0.1 units for type 1 atoms\nand 0.4 units for type 2 atoms, and v_r2 accesses the radius property\npresent in atom_style sphere for granular models.\n\nThe *edge_histo* keyword activates the compilation of a histogram of\nnumber of edges on the faces of the Voronoi cells in the compute\ngroup. The argument *maxedge* of the this keyword is the largest\nnumber of edges on a single Voronoi cell face expected to occur in the\nsample. This keyword generates output of a global vector by this\ncompute with *maxedge* +1 entries. The last entry in the vector\ncontains the number of faces with more than *maxedge* edges. Since the\npolygon with the smallest amount of edges is a triangle, entries 1 and\n2 of the vector will always be zero.\n\nThe *edge_threshold* and *face_threshold* keywords allow the\nsuppression of edges below a given minimum length and faces below a\ngiven minimum area. Ultra short edges and ultra small faces can occur\nas artifacts of the Voronoi tessellation. These keywords will affect\nthe neighbor count and edge histogram outputs.\n\nIf the *occupation* keyword is specified the tessellation is only\nperformed for the first invocation of the compute and then stored.\nFor all following invocations of the compute the number of atoms in\neach Voronoi cell in the stored tessellation is counted. In this mode\nthe compute returns a per-atom array with 2 columns. The first column\nis the number of atoms currently in the Voronoi volume defined by this\natom at the time of the first invocation of the compute (note that the\natom may have moved significantly). The second column contains the\ntotal number of atoms sharing the Voronoi cell of the stored\ntessellation at the location of the current atom. Numbers in column\none can be any positive integer including zero, while column two\nvalues will always be greater than zero. Column one data can be used\nto locate vacancies (the coordinates are given by the atom coordinates\nat the time step when the compute was first invoked), while column two\ndata can be used to identify interstitial atoms.\n\nIf the *neighbors* value is set to yes, then this compute also creates\na local array with 3 columns. There is one row for each face of each\nVoronoi cell. The 3 columns are the atom ID of the atom that owns the\ncell, the atom ID of the atom in the neighboring cell (or zero if the\nface is external), and the area of the face. The array can be\naccessed by any command that uses local values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options. More specifically, the array can be\naccessed by a [dump local ](https://docs.lammps.org/dump.html) command to write a file\ncontaining all the Voronoi neighbors in a system:\n\n```lmps\ncompute 6 all voronoi/atom neighbors yes\ndump d2 all local 1 dump.neighbors index c_6[1] c_6[2] c_6[3]\n```\nIf the *face_threshold* keyword is used, then only faces with areas\ngreater than the threshold are stored.\n\n----------\n\nThe Voronoi calculation is performed by the freely available\n[Voro++ package ](https://math.lbl.gov/voro++/), written by Chris Rycroft at UC Berkeley and LBL,\nwhich must be installed on your system when building LAMMPS for use\nwith this compute. See instructions on obtaining and installing the\nVoro++ software in the src/VORONOI/README file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The calculation of Voronoi volumes is performed by each processor\n > for the atoms it owns, and includes the effect of ghost atoms\n > stored by the processor. This assumes that the Voronoi cells of\n > owned atoms are not affected by atoms beyond the ghost atom cut-off\n > distance. This is usually a good assumption for liquid and solid\n > systems, but may lead to underestimation of Voronoi volumes in low\n > density systems. By default, the set of ghost atoms stored by each\n > processor is determined by the cutoff used for [pair_style > ](https://docs.lammps.org/pair_style.html) interactions. The cutoff can be set explicitly via\n > the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command. The Voronoi\n > cells for atoms adjacent to empty regions will extend into those\n > regions up to the communication cutoff in \\(x\\), \\(y\\), or\n > \\(z\\). In that situation, an exterior face is created at the\n > cutoff distance normal to the \\(x\\), \\(y\\), or \\(z\\)\n > direction. For triclinic systems, the exterior face is parallel to\n > the corresponding reciprocal lattice vector. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The Voro++ package performs its calculation in 3d. This will still\n > work for a 2d LAMMPS simulation, provided all the atoms have the\n > same \\(z\\)-coordinate. The Voronoi cell of each atom will be a\n > columnar polyhedron with constant cross-sectional area along the\n > \\(z\\)-direction and two exterior faces at the top and bottom of\n > the simulation box. If the atoms do not all have the same\n > \\(z\\)-coordinate, then the columnar cells will be accordingly\n > distorted. The cross-sectional area of each Voronoi cell can be\n > obtained by dividing its volume by the \\(z\\) extent of the\n > simulation box. Note that you define the \\(z\\) extent of the\n > simulation box for 2d simulations when using the [create_box > ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands. \n > \n\n #### Output info\n\n **Deprecated in version 21Nov2023** \n\nThis compute calculates a per-atom array with two columns. In regular\ndynamic tessellation mode the first column is the Voronoi volume, the\nsecond is the neighbor count, as described above (read above for the\noutput data in case the *occupation* keyword is specified). These\nvalues can be accessed by any command that uses per-atom values from a\ncompute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for\nan overview of LAMMPS output options.\n\nIf the *edge_histo* keyword is used, then this compute generates a\nglobal vector of length *maxedge* +1, containing a histogram of the\nnumber of edges per face.\n\nIf the *neighbors* value is set to *yes*, then this compute calculates a\nlocal array with three columns. There is one row for each face of each\nVoronoi cell.\n\nThe Voronoi cell volume will be in distance [units ](https://docs.lammps.org/units.html) cubed.\nThe Voronoi face area will be in distance [units ](https://docs.lammps.org/units.html) squared.\n", + "restrictions": "This compute is part of the VORONOI package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nIt also requires you have a copy of the Voro++ library built and\ninstalled on your system. See instructions on obtaining and\ninstalling the Voro++ software in the src/VORONOI/README file.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html), [dump local ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "compute reduce" + "python" ], "syntax": [ - "compute ID group-ID style arg mode input1 input2 ... keyword args ..." + "python mode keyword args ..." ], "args": [ [ { - "arg": "compute", + "arg": "python", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "reduce/region", - "type": 3, - "choices": [ - "reduce", - "reduce/region" - ] - }, - { - "arg": "arg", - "type": 2, - "choices": [] - }, - { - "arg": "aveabs", - "type": 3, - "choices": [ - "sum", - "min", - "minabs", - "max", - "maxabs", - "ave", - "sumsq", - "avesq", - "sumabs", - "aveabs" - ] - }, - { - "arg": "input1", + "arg": "mode", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "keyword", "type": 2, "choices": [] }, - { - "arg": "inputs", - "type": 3, - "choices": [ - "replace", - "inputs" - ] - }, { "arg": "args", "type": 2, @@ -8320,113 +7897,94 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = reduce or reduce/region \n *        reduce arg = none \n *        reduce/region arg = region-ID \n         region-ID = ID of region to use for choosing atoms \n* mode = sum or min or minabs or max or maxabs or ave or sumsq or avesq or sumabs or aveabs\n* one or more inputs can be listed\n* input = x or y or z or vx or vy or vz or fx or fy or fz or c_ID or c_ID[N] or f_ID or f_ID[N] or v_name \n *        x, y, z, vx, vy, vz, fx, fy, fz = atom attribute (position, velocity, force component) \n *        c_ID = per-atom or local vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom or local array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom or local vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom or local array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/args pairs may be appended\n* keyword = replace or inputs \n *        replace args = vec1 vec2 \n         vec1 = reduced value from this input vector will be replaced \n         vec2 = replace it with vec1[N] where N is index of max/min value from vec2 \n *        inputs arg = peratom or local \n         peratom = all inputs are per-atom quantities (default) \n         local = all input are local quantities \n", - "examples": "\n```lmps\ncompute 1 all reduce sum c_force\ncompute 1 all reduce/region subbox sum c_force\ncompute 2 all reduce min c_press[2] f_ave v_myKE\ncompute 2 all reduce min c_press[*] f_ave v_myKE inputs peratom\ncompute 3 fluid reduce max c_index[1] c_index[2] c_dist replace 1 3 replace 2 3\ncompute 4 all reduce max c_bond inputs local\n```\n", - "html_filename": "compute_reduce.html", - "short_description": "Define a calculation that \"reduces\" one or more vector inputs into\nscalar values, one per listed input", - "description": "Define a calculation that \"reduces\" one or more vector inputs into\nscalar values, one per listed input. For the compute reduce command,\nthe inputs can be either per-atom or local quantities and must all be\nof the same kind (per-atom or local); see discussion of the optional\n*inputs* keyword below. The compute reduce/region command can only be\nused with per-atom inputs.\n\nAtom attributes are per-atom quantities, [computes ](https://docs.lammps.org/compute.html) and\n[fixes ](https://docs.lammps.org/fix.html) can generate either per-atom or local quantities,\nand [atom-style variables ](https://docs.lammps.org/variable.html) generate per-atom\nquantities. See the [variable ](https://docs.lammps.org/variable.html) command and its\nspecial functions which can perform the same reduction operations as\nthe compute reduce command on global vectors.\n\nThe reduction operation is specified by the *mode* setting. The *sum*\noption adds the values in the vector into a global total. The *min*\nor *max* options find the minimum or maximum value across all vector\nvalues. The *minabs* or *maxabs* options find the minimum or maximum\nvalue across all absolute vector values. The *ave* setting adds the\nvector values into a global total, then divides by the number of\nvalues in the vector. The *sumsq* option sums the square of the\nvalues in the vector into a global total. The *avesq* setting does\nthe same as *sumsq*, then divides the sum of squares by the number of\nvalues. The last two options can be useful for calculating the\nvariance of some quantity (e.g., variance = sumsq \\(-\\) ave\\\n\\(^2\\)). The *sumabs* option sums the absolute values in the\nvector into a global total. The *aveabs* setting does the same as\n*sumabs*, then divides the sum of absolute values by the number of\nvalues.\n\nEach listed input is operated on independently. For per-atom inputs,\nthe group specified with this command means only atoms within the\ngroup contribute to the result. Likewise for per-atom inputs, if the\ncompute reduce/region command is used, the atoms must also currently\nbe within the region. Note that an input that produces per-atom\nquantities may define its own group which affects the quantities it\nreturns. For example, if a compute is used as an input which\ngenerates a per-atom vector, it will generate values of 0.0 for atoms\nthat are not in the group specified for that compute.\n\nEach listed input can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an atom-style\n[variable ](https://docs.lammps.org/variable.html).\n\nNote that for values from a compute or fix, the bracketed index \\(I\\) can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute reduce\ncommands are equivalent, since the\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) command creates a per-atom\narray with six columns:\n\n```lmps\ncompute myPress all stress/atom NULL\ncompute 2 all reduce min c_myPress[*]\ncompute 2 all reduce min c_myPress[1] c_myPress[2] c_myPress[3] &\nc_myPress[4] c_myPress[5] c_myPress[6]\n```\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*,\n*fy*, and *fz*) are self-explanatory. Note that other atom attributes\ncan be used as inputs to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. Valid computes can generate\nper-atom or local quantities. See the individual [compute](https://docs.lammps.org/compute.html) page for details. If no bracketed integer is appended, the\nvector calculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. Valid fixes can generate\nper-atom or local quantities. See the individual [fix ](https://docs.lammps.org/fix.html)\npage for details. Note that some fixes only produce their values on\ncertain timesteps, which must be compatible with when compute reduce\nreferences the values, else an error results. If no bracketed integer\nis appended, the vector calculated by the fix is used. If a bracketed\ninteger is appended, the Ith column of the array calculated by the fix\nis used. Users can also write code for their own fix style and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be an\n[atom-style variable ](https://docs.lammps.org/variable.html). Atom-style variables can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to\nreduce.\n\n----------\n\nIf the *replace* keyword is used, two indices *vec1* and *vec2* are\nspecified, where each index ranges from 1 to the number of input\nvalues. The replace keyword can only be used if the *mode* is *min*\nor *max* . It works as follows. A min/max is computed as usual on\nthe *vec2* input vector. The index \\(N\\) of that value within\n*vec2* is also stored. Then, instead of performing a min/max on the\n*vec1* input vector, the stored index is used to select the \\(N\\)\\\nth element of the *vec1* vector.\n\nThus, for example, if you wish to use this compute to find the bond\nwith maximum stretch, you can do it as follows:\n\n```lmps\ncompute 1 all property/local batom1 batom2\ncompute 2 all bond/local dist\ncompute 3 all reduce max c_1[1] c_1[2] c_2 replace 1 3 replace 2 3\nthermo_style custom step temp c_3[1] c_3[2] c_3[3]\n```\nThe first two input values in the compute reduce command are vectors\nwith the IDs of the two atoms in each bond, using the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command. The last input\nvalue is bond distance, using the\n[compute bond/local ](https://docs.lammps.org/compute_bond_local.html) command. Instead of taking the\nmax of the two atom ID vectors, which does not yield useful\ninformation in this context, the *replace* keywords will extract the\natom IDs for the two atoms in the bond of maximum stretch. These atom\nIDs and the bond stretch will be printed with thermodynamic output.\n\nThe *inputs* keyword allows selection of whether all the inputs are\nper-atom or local quantities. As noted above, all the inputs must be\nthe same kind (per-atom or local). Per-atom is the default setting.\nIf a compute or fix is specified as an input, it must produce per-atom\nor local data to match this setting. If it produces both, e.g. for\nthe [compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) command, then\nthis keyword selects between them.\n\n----------\n\nIf a single input is specified this compute produces a global scalar\nvalue. If multiple inputs are specified, this compute produces a\nglobal vector of values, the length of which is equal to the number of\ninputs specified.\n\nAs discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the\nvalue(s) produced by this compute are all \"extensive\", meaning their\nvalue scales linearly with the number of atoms involved. If\nnormalized values are desired, this compute can be accessed by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command with\n[thermo_modify norm yes ](https://docs.lammps.org/thermo_modify.html) set as an option. Or it\ncan be accessed by a [variable ](https://docs.lammps.org/variable.html) that divides by the\nappropriate atom count.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar if a single input value is\nspecified or a global vector of length \\(N\\), where \\(N\\) is\nthe number of inputs, and which can be accessed by indices 1 to\n\\(N\\). These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) doc page for an overview of LAMMPS output\noptions.\n\nAll the scalar or vector values calculated by this compute are\n\"intensive\", except when the *sum*, *sumabs*, or *sumsq* modes are used on\nper-atom or local vectors, in which case the calculated values are\n\"extensive\".\n\nThe scalar or vector values will be in whatever [units ](https://docs.lammps.org/units.html)\nthe quantities being reduced are in.\n", - "restrictions": "As noted above, the compute reduce/region command can only be used\nwith per-atom inputs.\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* mode = source or name of Python function\n\n if mode is source: \n *      keyword = here or name of a *Python file* \n       here arg = inline \n       inline = one or more lines of Python code which defines func \n       must be a single argument, typically enclosed between triple quotes \n       *Python file* = name of a file with Python code which will be executed immediately \n* if mode is the name of a Python function, one or more keywords with/without arguments must be appended \n *      keyword = invoke or input or return or format or length or file or here or exists \n       invoke arg = none = invoke the previously defined Python function \n       input args = N i1 i2 ... iN \n       N = # of inputs to function \n       i1,...,iN = value, SELF, or LAMMPS variable name \n       value = integer number, floating point number, or string \n       SELF = reference to LAMMPS itself which can be accessed by Python function \n       variable = v_name, where name = name of LAMMPS variable, e.g. v_abc \n       return arg = varReturn \n       varReturn = v_name = LAMMPS variable name which the return value of the Python function will be assigned to \n       format arg = fstring with M characters \n       M = N if no return value, where N = # of inputs \n       M = N+1 if there is a return value \n       fstring = each character (i,f,s,p) corresponds in order to an input or return value \n       'i' = integer, 'f' = floating point, 's' = string, 'p' = SELF \n       length arg = Nlen \n       Nlen = max length of string returned from Python function \n       file arg = filename \n       filename = file of Python code, which defines func \n       here arg = inline \n       inline = one or more lines of Python code which defines func \n       must be a single argument, typically enclosed between triple quotes \n       exists arg = none = Python code has been loaded by previous python command \n", + "examples": "\n```lmps\npython pForce input 2 v_x 20.0 return v_f format fff file force.py\npython pForce invoke\n\npython factorial input 1 myN return v_fac format ii here \"\"\"\ndef factorial(n):\nif n == 1: return n\n #### return n * factorial(n-1)\n\npython loop input 1 SELF return v_value format pf here \"\"\"\ndef loop(lmpptr,N,cut0):\nfrom lammps import lammps\nlmp = lammps(ptr=lmpptr)\n\n# loop N times, increasing cutoff each time\n\nfor i in range(N):\ncut = cut0 + i*0.1\nlmp.set_variable(\"cut\",cut) # set a variable in LAMMPS\nlmp.command(\"pair_style lj/cut ${cut}\") # LAMMPS commands\nlmp.command(\"pair_coeff * * 1.0 1.0\")\n #### lmp.command(\"run 100\")\n\npython source funcdef.py\n\npython source here \"from lammps import lammps\"\n```\n", + "html_filename": "python.html", + "short_description": "The *python* command allows interfacing LAMMPS with an embedded Python\ninterpreter and enables either executing arbitrary python code in that\ninterpreter, registering a Python function for future execution (as a\npython style variable, from a fix interfaced with python, or for direct\ninvocation), or invoking such a previously registered function", + "description": "The *python* command allows interfacing LAMMPS with an embedded Python\ninterpreter and enables either executing arbitrary python code in that\ninterpreter, registering a Python function for future execution (as a\npython style variable, from a fix interfaced with python, or for direct\ninvocation), or invoking such a previously registered function.\n\nArguments, including LAMMPS variables, can be passed to the function\nfrom the LAMMPS input script and a value returned by the Python function\nassigned to a LAMMPS variable. The Python code for the function can be included\ndirectly in the input script or in a separate Python file. The function\ncan be standard Python code or it can make \"callbacks\" to LAMMPS through\nits library interface to query or set internal values within LAMMPS.\nThis is a powerful mechanism for performing complex operations in a\nLAMMPS input script that are not possible with the simple input script\nand variable syntax which LAMMPS defines. Thus your input script can\noperate more like a true programming language.\n\nUse of this command requires building LAMMPS with the PYTHON package\nwhich links to the Python library so that the Python interpreter is\nembedded in LAMMPS. More details about this process are given below.\n\nThere are two ways to invoke a Python function once it has been\nregistered. One is using the *invoke* keyword. The other is to assign\nthe function to a [python-style variable ](https://docs.lammps.org/variable.html) defined in\nyour input script. Whenever the variable is evaluated, it will execute\nthe Python function to assign a value to the variable. Note that\nvariables can be evaluated in many different ways within LAMMPS. They\ncan be substituted with their result directly in an input script, or\nthey can be passed to various commands as arguments, so that the\nvariable is evaluated during a simulation run.\n\nA broader overview of how Python can be used with LAMMPS is given in the\n[Use Python with LAMMPS ](https://docs.lammps.org/Python_head.html) section of the\ndocumentation. There also is an ``examples/python`` directory which\nillustrates use of the python command.\n\n----------\n\nThe first argument of the *python* command is either the *source*\nkeyword or the name of a Python function. This defines the mode\nof the python command.\n\nIf the *source* keyword is used, it is followed by either a file name or\nthe *here* keyword. No other keywords can be used. The *here* keyword\nis followed by a string with python commands, either on a single line\nenclosed in quotes, or as multiple lines enclosed in triple quotes.\nThese Python commands will be passed to the python interpreter and\nexecuted immediately without registering a Python function for future\nexecution. The code will be loaded into and run in the \"main\" module of\nthe Python interpreter. This allows running arbitrary Python code at\nany time while processing the LAMMPS input file. This can be used to\npre-load Python modules, initialize global variables, define functions\nor classes, or perform operations using the python programming language.\nThe Python code will be executed in parallel on all MPI processes. No\narguments can be passed.\n\nIn all other cases, the first argument is the name of a Python function\nthat will be registered with LAMMPS for future execution. The function\nmay already be defined (see *exists* keyword) or must be defined using\nthe *file* or *here* keywords as explained below.\n\nIf the *invoke* keyword is used, no other keywords can be used, and a\nprevious *python* command must have registered the Python function\nreferenced by this command. This invokes the Python function with the\npreviously defined arguments and the return value is processed as\nexplained below. You can invoke the function as many times as you wish\nin your input script.\n\nThe *input* keyword defines how many arguments *N* the Python function\nexpects. If it takes no arguments, then the *input* keyword should not\nbe used. Each argument can be specified directly as a value, e.g. '6'\nor '3.14159' or 'abc' (a string of characters). The type of each\nargument is specified by the *format* keyword as explained below, so\nthat Python will know how to interpret the value. If the word SELF is\nused for an argument it has a special meaning. A pointer is passed to\nthe Python function which it can convert into a reference to LAMMPS\nitself using the [LAMMPS Python module ](https://docs.lammps.org/Python_module.html). This\nenables the function to call back to LAMMPS through its library\ninterface as explained below. This allows the Python function to query\nor set values internal to LAMMPS which can affect the subsequent\nexecution of the input script. A LAMMPS variable can also be used as an\nargument, specified as v_name, where \"name\" is the name of the variable.\nAny style of LAMMPS variable returning a scalar or a string can be used,\nas defined by the [variable ](https://docs.lammps.org/variable.html) command. The *format*\nkeyword must be used to set the type of data that is passed to Python.\nEach time the Python function is invoked, the LAMMPS variable is\nevaluated and its value is passed to the Python function.\n\nThe *return* keyword is only needed if the Python function returns a\nvalue. The specified *varReturn* must be of the form v_name, where\n\"name\" is the name of a python-style LAMMPS variable, defined by the\n[variable ](https://docs.lammps.org/variable.html) command. The Python function can return a\nnumeric or string value, as specified by the *format* keyword.\n\nAs explained on the [variable ](https://docs.lammps.org/variable.html) doc page, the definition\nof a python-style variable associates a Python function name with the\nvariable. This must match the *Python function name* first argument of\nthe *python* command. For example these two commands would be\nconsistent:\n\n```lmps\nvariable foo python myMultiply\npython myMultiply return v_foo format f file funcs.py\n```\nThe two commands can appear in either order in the input script so\nlong as both are specified before the Python function is invoked for\nthe first time. Afterwards, the variable 'foo' is associated with\nthe Python function 'myMultiply'.\n\nThe *format* keyword must be used if the *input* or *return* keywords\nare used. It defines an *fstring* with M characters, where M = sum of\nnumber of inputs and outputs. The order of characters corresponds to\nthe N inputs, followed by the return value (if it exists). Each\ncharacter must be one of the following: \"i\" for integer, \"f\" for\nfloating point, \"s\" for string, or \"p\" for SELF. Each character defines\nthe type of the corresponding input or output value of the Python\nfunction and affects the type conversion that is performed internally as\ndata is passed back and forth between LAMMPS and Python. Note that it\nis permissible to use a [python-style variable ](https://docs.lammps.org/variable.html) in a\nLAMMPS command that allows for an equal-style variable as an argument,\nbut only if the output of the Python function is flagged as a numeric\nvalue (\"i\" or \"f\") via the *format* keyword.\n\nIf the *return* keyword is used and the *format* keyword specifies the\noutput as a string, then the default maximum length of that string is\n63 characters (64-1 for the string terminator). If you want to return\na longer string, the *length* keyword can be specified with its *Nlen*\nvalue set to a larger number (the code allocates space for Nlen+1 to\ninclude the string terminator). If the Python function generates a\nstring longer than the default 63 or the specified *Nlen*, it will be\ntruncated.\n\n----------\n\nEither the *file*, *here*, or *exists* keyword must be used, but only\none of them. These keywords specify what Python code to load into the\nPython interpreter. The *file* keyword gives the name of a file\ncontaining Python code, which should end with a \".py\" suffix. The code\nwill be immediately loaded into and run in the \"main\" module of the\nPython interpreter. The Python code will be executed in parallel on all\nMPI processes. Note that Python code which contains a function\ndefinition does not \"execute\" the function when it is run; it simply\ndefines the function so that it can be invoked later.\n\nThe *here* keyword does the same thing, except that the Python code\nfollows as a single argument to the *here* keyword. This can be done\nusing triple quotes as delimiters, as in the examples above. This\nallows Python code to be listed verbatim in your input script, with\nproper indentation, blank lines, and comments, as desired. See the\n[Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page, for an explanation of\nhow triple quotes can be used as part of input script syntax.\n\nThe *exists* keyword takes no argument. It means that Python code\ncontaining the required Python function with the given name has already\nbeen executed, for example by a *python source* command or in the same\nfile that was used previously with the *file* keyword.\n\nNote that the Python code that is loaded and run must contain a function\nwith the specified function name. To operate properly when later\ninvoked, the function code must match the *input* and *return* and\n*format* keywords specified by the python command. Otherwise Python\nwill generate an error.\n\n----------\n\nThis section describes how Python code can be written to work with\nLAMMPS.\n\nWhether you load Python code from a file or directly from your input\nscript, via the *file* and *here* keywords, the code can be identical.\nIt must be indented properly as Python requires. It can contain\ncomments or blank lines. If the code is in your input script, it cannot\nhowever contain triple-quoted Python strings, since that will conflict\nwith the triple-quote parsing that the LAMMPS input script performs.\n\nAll the Python code you specify via one or more python commands is\nloaded into the Python \"main\" module, i.e. ``__name__ == '__main__'``.\nThe code can define global variables, define global functions, define\nclasses or execute statements that are outside of function definitions.\nIt can contain multiple functions, only one of which matches the *func*\nsetting in the python command. This means you can use the *file*\nkeyword once to load several functions, and the *exists* keyword\nthereafter in subsequent python commands to register the other functions\nthat were previously loaded with LAMMPS.\n\nA Python function you define (or more generally, the code you load)\ncan import other Python modules or classes, it can make calls to other\nsystem functions or functions you define, and it can access or modify\nglobal variables (in the \"main\" module) which will persist between\nsuccessive function calls. The latter can be useful, for example, to\nprevent a function from being invoke multiple times per timestep by\ndifferent commands in a LAMMPS input script that access the returned\npython-style variable associated with the function. For example,\nconsider this function loaded with two global variables defined\noutside the function:\n\n```python\nnsteplast = -1\nnvaluelast = 0\n\ndef expensive(nstep):\nglobal nsteplast,nvaluelast\nif nstep == nsteplast: return nvaluelast\nnsteplast = nstep\n# perform complicated calculation\nnvalue = ...\nnvaluelast = nvalue\nreturn nvalue\n```\nThe variable 'nsteplast' stores the previous timestep the function was\ninvoked (passed as an argument to the function). The variable\n'nvaluelast' stores the return value computed on the last function\ninvocation. If the function is invoked again on the same timestep, the\nprevious value is simply returned, without re-computing it. The\n\"global\" statement inside the Python function allows it to overwrite the\nglobal variables from within the local context of the function.\n\nNote that if you load Python code multiple times (via multiple python\ncommands), you can overwrite previously loaded variables and functions\nif you are not careful. E.g. if the code above were loaded twice, the\nglobal variables would be re-initialized, which might not be what you\nwant. Likewise, if a function with the same name exists in two chunks\nof Python code you load, the function loaded second will override the\nfunction loaded first.\n\nIt's important to realize that if you are running LAMMPS in parallel,\neach MPI task will load the Python interpreter and execute a local\ncopy of the Python function(s) you define. There is no connection\nbetween the Python interpreters running on different processors.\nThis implies three important things.\n\nFirst, if you put a print or other statement creating output to the\nscreen in your Python function, you will see P copies of the output,\nwhen running on P processors. If the prints occur at (nearly) the same\ntime, the P copies of the output may be mixed together. When loading\nthe LAMMPS Python module into the embedded Python interpreter, it is\npossible to pass the pointer to the current LAMMPS class instance and\nvia the Python interface to the LAMMPS library interface, it is possible\nto determine the MPI rank of the current process and thus adapt the\nPython code so that output will only appear on MPI rank 0. The\nfollowing LAMMPS input demonstrates how this could be done. The text\n'Hello, LAMMPS!' should be printed only once, even when running LAMMPS\nin parallel.\n\n```lmps\npython python_hello input 1 SELF format p here \"\"\"\ndef python_hello(handle):\nfrom lammps import lammps\nlmp = lammps(ptr=handle)\nme = lmp.extract_setting('world_rank')\nif me == 0:\n #### print('Hello, LAMMPS!')\n\npython python_hello invoke\n```\nIf your Python code loads Python modules that are not pre-loaded by the\nPython library, then it will load the module from disk. This may be a\nbottleneck if 1000s of processors try to load a module at the same time.\nOn some large supercomputers, loading of modules from disk by Python may\nbe disabled. In this case you would need to pre-build a Python library\nthat has the required modules pre-loaded and link LAMMPS with that\nlibrary.\n\nThird, if your Python code calls back to LAMMPS (discussed in the\nnext section) and causes LAMMPS to perform an MPI operation requires\nglobal communication (e.g. via MPI_Allreduce), such as computing the\nglobal temperature of the system, then you must ensure all your Python\nfunctions (running independently on different processors) call back to\nLAMMPS. Otherwise the code may hang.\n\n----------\n\nYour Python function can \"call back\" to LAMMPS through its\nlibrary interface, if you use the SELF input to pass Python\na pointer to LAMMPS. The mechanism for doing this in your\nPython function is as follows:\n\n```python\ndef foo(handle,...):\nfrom lammps import lammps\nlmp = lammps(ptr=handle)\nlmp.command('print \"Hello from inside Python\"')\n...\n```\nThe function definition must include a variable ('handle' in this case)\nwhich corresponds to SELF in the *python* command. The first line of\nthe function imports the [\"lammps\" Python module ](https://docs.lammps.org/Python_module.html).\nThe second line creates a Python object ``lmp`` which wraps the instance\nof LAMMPS that called the function. The 'ptr=handle' argument is what\nmakes that happen. The third line invokes the command() function in the\nLAMMPS library interface. It takes a single string argument which is a\nLAMMPS input script command for LAMMPS to execute, the same as if it\nappeared in your input script. In this case, LAMMPS should output\n\n```\nHello from inside Python\n```\nto the screen and log file. Note that since the LAMMPS print command\nitself takes a string in quotes as its argument, the Python string\nmust be delimited with a different style of quotes.\n\nThe [Python_head` page describes the syntaxfor how Python wraps the various functions included in the LAMMPSlibrary interface.A more interesting example is in the ``examples/python/in.python`` scriptwhich loads and runs the following function from ``examples/python/funcs.py``:```pythondef loop(N,cut0,thresh,lmpptr):print(\"LOOP ARGS\", N, cut0, thresh, lmpptr)from lammps import lammpslmp = lammps(ptr=lmpptr)natoms = lmp.get_natoms()for i in range(N):cut = cut0 + i*0.1lmp.set_variable(\"cut\",cut) # set a variable in LAMMPSlmp.command(\"pair_style lj/cut ${cut}\") # LAMMPS command#lmp.command(\"pair_style lj/cut %d\" % cut) # LAMMPS command optionlmp.command(\"pair_coeff * * 1.0 1.0\") # dittolmp.command(\"run 10\") # dittope = lmp.extract_compute(\"thermo_pe\",0,0) # extract total PE from LAMMPSprint(\"PE\", pe/natoms, thresh)if pe/natoms ](https://docs.lammps.org/ thresh: return```with these input script commands:```lmpspython loop input 4 10 1.0 -4.0 SELF format iffp file funcs.pypython loop invoke```This has the effect of looping over a series of 10 short runs (10timesteps each) where the pair style cutoff is increased from a valueof 1.0 in distance units, in increments of 0.1. The looping stopswhen the per-atom potential energy falls below a threshold of -4.0 inenergy units. More generally, Python can be used to implement a loopwith complex logic, much more so than can be created using the LAMMPS:doc:`jump ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the callback mechanism just described, recognize that\n > there are some operations you should not attempt because LAMMPS cannot\n > execute them correctly. If the Python function is invoked between\n > runs in the LAMMPS input script, then it should be OK to invoke any\n > LAMMPS input script command via the library interface command() or\n > file() functions, so long as the command would work if it were\n > executed in the LAMMPS input script directly at the same point. \n > \n\nHowever, a Python function can also be invoked during a run, whenever\nan associated LAMMPS variable it is assigned to is evaluated. If the\nvariable is an input argument to another LAMMPS command (e.g. [fix setforce ](https://docs.lammps.org/fix_setforce.html)), then the Python function will be invoked\ninside the class for that command, in one of its methods that is\ninvoked in the middle of a timestep. You cannot execute arbitrary\ninput script commands from the Python function (again, via the\ncommand() or file() functions) at that point in the run and expect it\nto work. Other library functions such as those that invoke computes\nor other variables may have hidden side effects as well. In these\ncases, LAMMPS has no simple way to check that something illogical is\nbeing attempted.\n\nThe same applies to Python functions called during a simulation run at\neach time step using [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html).\n\n----------\n\nIf you run Python code directly on your workstation, either\ninteractively or by using Python to launch a Python script stored in a\nfile, and your code has an error, you will typically see informative\nerror messages. That is not the case when you run Python code from\nLAMMPS using an embedded Python interpreter. The code will typically\nfail silently. LAMMPS will catch some errors but cannot tell you\nwhere in the Python code the problem occurred. For example, if the\nPython code cannot be loaded and run because it has syntax or other\nlogic errors, you may get an error from Python pointing to the\noffending line, or you may get one of these generic errors from\nLAMMPS:\n\n```\nCould not process Python file\nCould not process Python string\n```\nWhen the Python function is invoked, if it does not return properly,\nyou will typically get this generic error from LAMMPS:\n\n```\nPython function evaluation failed\n```\nHere are three suggestions for debugging your Python code while\nrunning it under LAMMPS.\n\nFirst, don't run it under LAMMPS, at least to start with! Debug it\nusing plain Python. Load and invoke your function, pass it arguments,\ncheck return values, etc.\n\nSecond, add Python print statements to the function to check how far\nit gets and intermediate values it calculates. See the discussion\nabove about printing from Python when running in parallel.\n\nThird, use Python exception handling. For example, say this statement\nin your Python function is failing, because you have not initialized the\nvariable foo:\n\n```python\nfoo += 1\n```\nIf you put one (or more) statements inside a \"try\" statement,\nlike this:\n\n```python\nimport exceptions\nprint(\"Inside simple function\")\ntry:\nfoo += 1 # one or more statements here\nexcept Exception as e:\nprint(\"FOO error:\", e)\n```\nthen you will get this message printed to the screen:\n\n```\nFOO error: local variable 'foo' referenced before assignment\n```\nIf there is no error in the try statements, then nothing is printed.\nEither way the function continues on (unless you put a return or\nsys.exit() in the except clause).\n\n----------\n", + "restrictions": "This command is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBuilding LAMMPS with the PYTHON package will link LAMMPS with the Python\nlibrary on your system. Settings to enable this are in the\nlib/python/Makefile.lammps file. See the lib/python/README file for\ninformation on those settings.\n\nIf you use Python code which calls back to LAMMPS, via the SELF input\nargument explained above, there is an extra step required when building\nLAMMPS. LAMMPS must also be built as a shared library and your Python\nfunction must be able to load the [\"lammps\" Python module](https://docs.lammps.org/Python_module.html) that wraps the LAMMPS library interface. These are the\nsame steps required to use Python by itself to wrap LAMMPS. Details on\nthese steps are explained on the [Python ](https://docs.lammps.org/Python_head.html) doc page.\nNote that it is important that the stand-alone LAMMPS executable and the\nLAMMPS shared library be consistent (built from the same source code\nfiles) in order for this to work. If the two have been built at\ndifferent times using different source files, problems may occur.\n\nAnother limitation of calling back to Python from the LAMMPS module\nusing the *python* command in a LAMMPS input is that both, the Python\ninterpreter and LAMMPS, must be linked to the same Python runtime as a\nshared library. If the Python interpreter is linked to Python\nstatically (which seems to happen with Conda) then loading the shared\nLAMMPS library will create a second python \"main\" module that hides the\none from the Python interpreter and all previous defined function and\nglobal variables will become invisible.\n", + "related": "[shell ](https://docs.lammps.org/shell.html), [variable ](https://docs.lammps.org/variable.html), [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html)\n" }, { "command": [ - "fix_modify AtC poisson_solver" + "angle_style lepton", + "angle_style lepton/omp" ], "syntax": [ - "fix_modify poisson_solver mesh create " + "angle_style style args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "poisson_solver", - "type": 1, + "arg": "args", + "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = lepton\n* args = optional arguments \n *    args = auto_offset or no_offset \n     auto_offset = offset the potential energy so that the value at theta0 is 0.0 (default) \n     no_offset = do not offset the potential energy \n", + "examples": "\n```lmps\nangle_style lepton\nangle_style lepton no_offset\n\nangle_coeff 1 120.0 \"k*theta^2; k=250.0\"\nangle_coeff 2 90.0 \"k2*theta^2 + k3*theta^3 + k4*theta^4; k2=300.0; k3=-100.0; k4=50.0\"\nangle_coeff 3 109.47 \"k*theta^2; k=350.0\"\n```\n", + "html_filename": "angle_lepton.html", + "short_description": "\nAngle style *lepton* computes angular interactions between three atoms\nwith a custom potential function", + "description": "\nAngle style *lepton* computes angular interactions between three atoms\nwith a custom potential function. The potential function must be\nprovided as an expression string using \"theta\" as the angle variable\nrelative to the reference angle \\(\\theta_0\\) which is provided as an\nangle coefficient. For example `\"200.0*theta^2\"` represents a\n[harmonic angle ](https://docs.lammps.org/angle_harmonic.html) potential with a force constant\n*K* of 200.0 energy units:\n\\[\n U_{angle,i} = K (\\theta_i - \\theta_0)^2 = K \\theta^2 \\qquad \\theta = \\theta_i - \\theta_0\\]\n\nBy default the potential energy U is shifted so that the value U is 0.0\nfor $theta = theta_0$. This is equivalent to using the optional keyword\n*auto_offset*. When using the keyword *no_offset* instead, the\npotential energy is not shifted.\n\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* angle style interfaces with, evaluates this expression string\nat run time to compute the pairwise energy. It also creates an\nanalytical representation of the first derivative of this expression\nwith respect to \"theta\" and then uses that to compute the force between\nthe angle atoms as defined by the topology data.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* \\(\\theta_0\\) (degrees)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The \\(\\theta_0\\)\ncoefficient is the \"equilibrium angle\". It is entered in degrees, but\ninternally converted to radians. Thus the expression must assume\n\"theta\" is in radians. The potential energy function in the Lepton\nexpression is shifted in such a way, that the potential energy is 0 for\na angle \\(\\theta_i == \\theta_0\\).\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style table ](https://docs.lammps.org/angle_table.html),\n[bond_style lepton ](https://docs.lammps.org/bond_lepton.html),[dihedral_style lepton ](https://docs.lammps.org/dihedral_lepton.html)\n" +}, +{ + "command": [ + "dihedral_style zero" + ], + "syntax": [ + "dihedral_style zero keyword" + ], + "args": [ + [ { - "arg": "mesh", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "create", + "arg": "zero", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", + "arg": "keyword", "type": 2, "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* poisson_solver = name of the AtC sub-command\n* nx *ny* nz = number of elements in x, y, and z\n* region-id = id of region to be meshed\n* f or p = periodicity flags for x, y, and z \n", - "examples": "\n```lmps\nfix_modify AtC poisson_solver mesh create 10 1 1 feRegion p p p\n```\n", - "html_filename": "atc_poisson_solver.html", - "short_description": "Creates a uniform mesh in a rectangular region", - "description": "Creates a uniform mesh in a rectangular region.\n", - "restrictions": "Creates only uniform rectangular grids in rectangular regions.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", + "examples": "\n```lmps\ndihedral_style zero\ndihedral_style zero nocoeff\ndihedral_coeff *\n```\n", + "html_filename": "dihedral_zero.html", + "short_description": "Using a dihedral style of zero means dihedral forces and energies are\nnot computed, but the geometry of dihedral quadruplets is still\naccessible to other commands", + "description": "Using a dihedral style of zero means dihedral forces and energies are\nnot computed, but the geometry of dihedral quadruplets is still\naccessible to other commands.\n\nAs an example, the [compute dihedral/local ](https://docs.lammps.org/compute_dihedral_local.html) command can be used to\ncompute the theta values for the list of quadruplets of dihedral atoms\nlisted in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no dihedral style is defined, this command cannot be\nused.\n\nThe optional *nocoeff* flag allows to read data files with a DihedralCoeff\nsection for any dihedral style. Similarly, any dihedral_coeff commands\nwill only be checked for the dihedral type number and the rest ignored.\n\nNote that the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command must be\nused for all dihedral types, though no additional values are\nspecified.\n", + "restrictions": " none\n", + "related": "none\n\n\n[dihedral_style none ](https://docs.lammps.org/dihedral_none.html)\n" }, { "command": [ - "compute pe/atom" + "fix nve/body" ], "syntax": [ - "compute ID group-ID pe/atom keyword ..." + "fix ID group-ID nve/body" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -8441,151 +7999,126 @@ export const command_docs = [ "choices": [] }, { - "arg": "pe/atom", + "arg": "nve/body", "type": 1, "choices": [] - }, - { - "arg": "fix", - "type": 3, - "choices": [ - "pair", - "bond", - "angle", - "dihedral", - "improper", - "kspace", - "fix" - ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pe/atom = style name of this compute command\n* zero or more keywords may be appended\n* keyword = pair or bond or angle or dihedral or improper or kspace or fix \n", - "examples": "\n```lmps\ncompute 1 all pe/atom\ncompute 1 all pe/atom pair\ncompute 1 all pe/atom pair bond\n```\n", - "html_filename": "compute_pe_atom.html", - "short_description": "Define a computation that computes the per-atom potential energy for\neach atom in a group", - "description": "Define a computation that computes the per-atom potential energy for\neach atom in a group. See the [compute pe ](https://docs.lammps.org/compute_pe.html) command if\nyou want the potential energy of the entire system.\n\nThe per-atom energy is calculated by the various pair, bond, etc\npotentials defined for the simulation. If no extra keywords are\nlisted, then the potential energy is the sum of pair, bond, angle,\ndihedral, improper, \\(k\\)-space (long-range), and fix energy (i.e., it is as\nthough all the keywords were listed). If any extra keywords are listed,\nthen only those components are summed to compute the potential energy.\n\nNote that the energy of each atom is due to its interaction with all\nother atoms in the simulation, not just with other atoms in the group.\n\nFor an energy contribution produced by a small set of atoms (e.g., 4\natoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that\nenergy is assigned in equal portions to each atom in the set (e.g., 1/4 of the\ndihedral energy to each of the four atoms).\n\nThe [dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) style calculates\npairwise interactions between 1--4 atoms. The energy contribution of\nthese terms is included in the pair energy, not the dihedral energy.\n\nThe KSpace contribution is calculated using the method in\n:ref:[(Heyes) ](https://docs.lammps.org/Heyes1>` for the Ewald method and a related method for PPPM,as specified by the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html) command.For PPPM, the calculation requires 1 extra FFT each timestep thatper-atom energy is calculated. This `document ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be\n > specified if a fix is to contribute per-atom potential energy to this\n > command. \n > \n\nAs an example of per-atom potential energy compared to total potential\nenergy, these lines in an input script should yield the same result\nin the last 2 columns of thermo output:\n\n```lmps\ncompute peratom all pe/atom\ncompute pe all reduce sum c_peratom\nthermo_style custom step temp etotal press pe c_pe\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The per-atom energy does not include any Lennard-Jones tail\n > corrections to the energy added by the\n > [pair_modify tail yes ](https://docs.lammps.org/pair_modify.html) command, since those are\n > contributions to the global system energy. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/body = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/body\n```\n", + "html_filename": "fix_nve_body.html", + "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for body particles in the group each\ntimestep", + "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for body particles in the group each\ntimestep. V is volume; E is energy. This creates a system trajectory\nconsistent with the microcanonical ensemble. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nparticles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be body particles. They cannot be\npoint particles.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" }, { "command": [ - "neb" + "pair_style coul/slater", + "pair_style coul/slater/cut", + "pair_style coul/slater/long", + "pair_style coul/slater/long/gpu" ], "syntax": [ - "neb etol ftol N1 N2 Nevery file-style arg keyword values" + "pair_style coul/slater/cut lambda cutoff", + "pair_style coul/slater/long lambda cutoff" ], "args": [ [ { - "arg": "neb", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "etol", + "arg": "coul/slater/cut", "type": 2, "choices": [] }, { - "arg": "ftol", + "arg": "lambda", "type": 2, "choices": [] }, { - "arg": "N1", + "arg": "cutoff", "type": 2, "choices": [] + } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "N2", + "arg": "coul/slater/long", "type": 2, "choices": [] }, { - "arg": "Nevery", + "arg": "lambda", "type": 2, "choices": [] }, { - "arg": "none", - "type": 3, - "choices": [ - "final", - "each", - "none" - ] - }, - { - "arg": "arg", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* etol = stopping tolerance for energy (dimensionless)\n* ftol = stopping tolerance for force (force units)\n* N1 = max # of iterations (timesteps) to run initial NEB\n* N2 = max # of iterations (timesteps) to run barrier-climbing NEB\n* Nevery = print replica energies and reaction coordinates every this many timesteps\n* file-style = final or each or none \n *        final arg = filename \n         filename = file with initial coords for final replica \n         coords for intermediate replicas are linearly interpolated \n         between first and last replica \n *        each arg = filename \n         filename = unique filename for each replica (except first) \n         with its initial coords \n *        none arg = no argument all replicas assumed to already have \n         their initial coords \n* zero or more keyword/value pairs may be appended\n* keyword = verbosity \n *      verbosity value = verbose or default or terse \n       verbose = very detailed per-replica output \n       default = some per-replica output \n       terse = only global state output \n", - "examples": "\n```lmps\nneb 0.1 0.0 1000 500 50 final coords.final\nneb 0.0 0.001 1000 500 50 each coords.initial.$i\nneb 0.0 0.001 1000 500 50 none verbose\n```\n", - "html_filename": "neb.html", - "short_description": "Perform a nudged elastic band (NEB) calculation using multiple\nreplicas of a system", - "description": "Perform a nudged elastic band (NEB) calculation using multiple\nreplicas of a system. Two or more replicas must be used; the first\nand last are the end points of the transition path.\n\nNEB is a method for finding both the atomic configurations and height of\nthe energy barrier associated with a transition state, e.g. for an atom\nto perform a diffusive hop from one energy basin to another in a\ncoordinated fashion with its neighbors. The implementation in LAMMPS\nfollows the discussion in these 4 papers: **HenkelmanA**, **HenkelmanB**, **Nakano3** and **Maras2**.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partitioncommand-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI\ninstalled, you can run a multi-replica simulation with more replicas\n(partitions) than you have physical processors, e.g you can run a\n10-replica simulation on just one or two processors. You will simply\nnot get the performance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As explained below, a NEB calculation performs a damped dynamics\n > minimization across all the replicas. The minimizer uses whatever\n > timestep you have defined in your input script, via the\n > [timestep ](https://docs.lammps.org/timestep.html) command. Often NEB will converge more\n > quickly if you use a timestep about 10x larger than you would normally\n > use for dynamics simulations. \n > \n\nWhen a NEB calculation is performed, it is assumed that each replica\nis running the same system, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of atoms, the interaction\npotentials, and the starting configuration when the neb command is\nissued should be the same for every replica.\n\nIn a NEB calculation each replica is connected to other replicas by\ninter-replica nudging forces. These forces are imposed by the\n[fix neb ](https://docs.lammps.org/fix_neb.html) command, which must be used in conjunction\nwith the neb command. The group used to define the fix neb command\ndefines the NEB atoms which are the only ones that inter-replica springs\nare applied to. If the group does not include all atoms, then non-NEB\natoms have no inter-replica springs and the forces they feel and their\nmotion is computed in the usual way due only to other atoms within\ntheir replica. Conceptually, the non-NEB atoms provide a background\nforce field for the NEB atoms. They can be allowed to move during the\nNEB minimization procedure (which will typically induce different\ncoordinates for non-NEB atoms in different replicas), or held fixed\nusing other LAMMPS commands such as [fix setforce ](https://docs.lammps.org/fix_setforce.html).\nNote that the [partition ](https://docs.lammps.org/partition.html) command can be used to invoke\na command on a subset of the replicas, e.g. if you wish to hold NEB or\nnon-NEB atoms fixed in only the end-point replicas.\n\nThe initial atomic configuration for each of the replicas can be\nspecified in different manners via the *file-style* setting, as\ndiscussed below. Only atoms whose initial coordinates should differ\nfrom the current configuration need be specified.\n\nConceptually, the initial and final configurations for the first\nreplica should be states on either side of an energy barrier.\n\nAs explained below, the initial configurations of intermediate\nreplicas can be atomic coordinates interpolated in a linear fashion\nbetween the first and last replicas. This is often adequate for\nsimple transitions. For more complex transitions, it may lead to slow\nconvergence or even bad results if the minimum energy path (MEP, see\nbelow) of states over the barrier cannot be correctly converged to\nfrom such an initial path. In this case, you will want to generate\ninitial states for the intermediate replicas that are geometrically\ncloser to the MEP and read them in.\n\n----------\n\nFor a *file-style* setting of *final*, a filename is specified which\ncontains atomic coordinates for zero or more atoms, in the format\ndescribed below. For each atom that appears in the file, the new\ncoordinates are assigned to that atom in the final replica. Each\nintermediate replica also assigns a new position to that atom in an\ninterpolated manner. This is done by using the current position of\nthe atom as the starting point and the read-in position as the final\npoint. The distance between them is calculated, and the new position\nis assigned to be a fraction of the distance. E.g. if there are 10\nreplicas, the second replica will assign a position that is 10% of the\ndistance along a line between the starting and final point, and the\n9th replica will assign a position that is 90% of the distance along\nthe line. Note that for this procedure to produce consistent\ncoordinates across all the replicas, the current coordinates need to\nbe the same in all replicas. LAMMPS does not check for this, but\ninvalid initial configurations will likely result if it is not the\ncase.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"distance\" between the starting and final point is\n > calculated in a minimum-image sense for a periodic simulation box.\n > This means that if the two positions are on opposite sides of a box\n > (periodic in that dimension), the distance between them will be small,\n > because the periodic image of one of the atoms is close to the other.\n > Similarly, even if the assigned position resulting from the\n > interpolation is outside the periodic box, the atom will be wrapped\n > back into the box when the NEB calculation begins. \n > \n\nFor a *file-style* setting of *each*, a filename is specified which is\nassumed to be unique to each replica. This can be done by using a\nvariable in the filename, e.g.\n\n```lmps\nvariable i equal part\nneb 0.0 0.001 1000 500 50 each coords.initial.$i\n```\nwhich in this case will substitute the partition ID (0 to N-1) for the\nvariable I, which is also effectively the replica ID. See the\n[variable ](https://docs.lammps.org/variable.html) command for other options, such as using\nworld-, universe-, or uloop-style variables.\n\nEach replica (except the first replica) will read its file, formatted\nas described below, and for any atom that appears in the file, assign\nthe specified coordinates to its atom. The various files do not need\nto contain the same set of atoms.\n\nFor a *file-style* setting of *none*, no filename is specified. Each\nreplica is assumed to already be in its initial configuration at the\ntime the neb command is issued. This allows each replica to define\nits own configuration by reading a replica-specific data or restart or\ndump file, via the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [read_dump ](https://docs.lammps.org/read_dump.html)\ncommands. The replica-specific names of these files can be specified\nas in the discussion above for the *each* file-style. Also see the\nsection below for how a NEB calculation can produce restart files, so\nthat a long calculation can be restarted if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >None of the *file-style* settings change the initial\n > configuration of any atom in the first replica. The first replica\n > must thus be in the correct initial configuration at the time the neb\n > command is issued. \n > \n\n----------\n\nA NEB calculation proceeds in two stages, each of which is a\nminimization procedure, performed via damped dynamics. To enable\nthis, you must first define a damped dynamics\n[min_style ](https://docs.lammps.org/min_style.html), such as *quickmin* or *fire* . The *cg*,\n*sd*, and *hftn* styles cannot be used, since they perform iterative\nline searches in their inner loop, which cannot be easily synchronized\nacross multiple replicas.\n\nThe minimizer tolerances for energy and force are set by *etol* and\n*ftol*, the same as for the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nA non-zero *etol* means that the NEB calculation will terminate if the\nenergy criterion is met by every replica. The energies being compared\nto *etol* do not include any contribution from the inter-replica\nnudging forces, since these are non-conservative. A non-zero *ftol*\nmeans that the NEB calculation will terminate if the force criterion\nis met by every replica. The forces being compared to *ftol* include\nthe inter-replica nudging forces.\n\nThe maximum number of iterations in each stage is set by *N1* and\n*N2* . These are effectively timestep counts since each iteration of\ndamped dynamics is like a single timestep in a dynamics\n[run ](https://docs.lammps.org/run.html). During both stages, the potential energy of each\nreplica and its normalized distance along the reaction path (reaction\ncoordinate RD) will be printed to the screen and log file every\n*Nevery* timesteps. The RD is 0 and 1 for the first and last replica.\nFor intermediate replicas, it is the cumulative distance (normalized\nby the total cumulative distance) between adjacent replicas, where\n\"distance\" is defined as the length of the 3N-vector of differences in\natomic coordinates, where N is the number of NEB atoms involved in the\ntransition. These outputs allow you to monitor NEB's progress in\nfinding a good energy barrier. *N1* and *N2* must both be multiples\nof *Nevery* .\n\nIn the first stage of NEB, the set of replicas should converge toward\na minimum energy path (MEP) of conformational states that transition\nover a barrier. The MEP for a transition is defined as a sequence of\n3N-dimensional states, each of which has a potential energy gradient\nparallel to the MEP itself. The configuration of highest energy along\na MEP corresponds to a saddle point. The replica states will also be\nroughly equally spaced along the MEP due to the inter-replica nudging\nforce added by the [fix neb ](https://docs.lammps.org/fix_neb.html) command.\n\nIn the second stage of NEB, the replica with the highest energy is\nselected and the inter-replica forces on it are converted to a force\nthat drives its atom coordinates to the top or saddle point of the\nbarrier, via the barrier-climbing calculation described in\n**HenkelmanB**. As before, the other replicas rearrange\nthemselves along the MEP so as to be roughly equally spaced.\n\nWhen both stages are complete, if the NEB calculation was successful,\nthe configurations of the replicas should be along (close to) the MEP\nand the replica with the highest energy should be an atomic\nconfiguration at (close to) the saddle point of the transition. The\npotential energies for the set of replicas represents the energy\nprofile of the transition along the MEP.\n\n----------\n\nA few other settings in your input script are required or advised to\nperform a NEB calculation. See the NOTE about the choice of timestep\nat the beginning of this doc page.\n\nAn atom map must be defined which it is not by default for [atom_style atomic ](https://docs.lammps.org/atom_style.html) problems. The [atom_modify map ](https://docs.lammps.org/atom_modify.html) command can be used to do this.\n\nThe minimizers in LAMMPS operate on all atoms in your system, even\nnon-NEB atoms, as defined above. To prevent non-NEB atoms from moving\nduring the minimization, you should use the [fix setforce ](https://docs.lammps.org/fix_setforce.html) command to set the force on each of those\natoms to 0.0. This is not required, and may not even be desired in\nsome cases, but if those atoms move too far (e.g. because the initial\nstate of your system was not well-minimized), it can cause problems\nfor the NEB procedure.\n\nThe damped dynamics [minimizers ](https://docs.lammps.org/min_style.html), such as *quickmin*\nand *fire* ), adjust the position and velocity of the atoms via an\nEuler integration step. Thus you must define an appropriate\n[timestep ](https://docs.lammps.org/timestep.html) to use with NEB. As mentioned above, NEB\nwill often converge more quickly if you use a timestep about 10x\nlarger than you would normally use for dynamics simulations.\n\n----------\n\nEach file read by the neb command containing atomic coordinates used\nto initialize one or more replicas must be formatted as follows.\n\nThe file can be ASCII text or a gzipped text file (detected by a .gz\nsuffix). The file can contain initial blank lines or comment lines\nstarting with \"#\" which are ignored. The first non-blank, non-comment\nline should list N = the number of lines to follow. The N successive\nlines contain the following information:\n\n```\nID1 x1 y1 z1\nID2 x2 y2 z2\n...\nIDN xN yN zN\n```\nThe fields are the atom ID, followed by the x,y,z coordinates. The\nlines can be listed in any order. Additional trailing information on\nthe line is OK, such as a comment.\n\nNote that for a typical NEB calculation you do not need to specify\ninitial coordinates for very many atoms to produce differing starting\nand final replicas whose intermediate replicas will converge to the\nenergy barrier. Typically only new coordinates for atoms\ngeometrically near the barrier need be specified.\n\nAlso note there is no requirement that the atoms in the file\ncorrespond to the NEB atoms in the group defined by the [fix neb ](https://docs.lammps.org/fix_neb.html) command. Not every NEB atom need be in the file,\nand non-NEB atoms can be listed in the file.\n\n----------\n\nFour kinds of output can be generated during a NEB calculation: energy\nbarrier statistics, thermodynamic output by each replica, dump files,\nand restart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file\ncontains a line of output, printed once every *Nevery* timesteps. The\namount of information printed in this line can be selected with the\n*verbosity* keyword. Available options are *terse*, *default*, and\n*verbose*.\n\nWith the *terse* setting, it contains the timestep, the maximum force of\na replica, the maximum force per atom (in any replica), potential\ngradients in the initial, final, and climbing replicas, the forward and\nbackward energy barriers, the total reaction coordinate (RDT).\n\nWith the *default* setting, additionally the normalized\nreaction coordinate and potential energy of each replica are printed.\n\nWith the *verbose* setting, additional per-replica properties are\nprinted: the \"path angle\" (pathangle), the angle between the 3N-length\ntangent vector and the 3N-length force vector at image *i*\n(angletangrad), the angle between the 3N-length energy gradient vector\nof replica *i* and that of replica *i* +1 (anglegrad), the norm of the\nenergy gradient (gradV), the the two-norm of the 3N-length force vector\n(RepForce), and the maximum force component of any atom (MaxAtomForce).\n\nThe \"maximum force per replica\" is the two-norm of the 3N-length force\nvector for the atoms in each replica, maximized across replicas, which\nis what the *ftol* setting is checking against. In this case, N is\nall the atoms in each replica. The \"maximum force per atom\" is the\nmaximum force component of any atom in any replica. The potential\ngradients are the two-norm of the 3N-length force vector solely due to\nthe interaction potential i.e. without adding in inter-replica\nforces.\n\nThe \"reaction coordinate\" (RD) for each replica is the two-norm of the\n3N-length vector of distances between its atoms and the preceding\nreplica's atoms, added to the RD of the preceding replica. The RD of\nthe first replica RD1 = 0.0; the RD of the final replica RDN = RDT,\nthe total reaction coordinate. The normalized RDs are divided by RDT,\nso that they form a monotonically increasing sequence from zero to\none. When computing RD, N only includes the atoms being operated on by\nthe fix neb command.\n\nThe forward (reverse) energy barrier is the potential energy of the\nhighest replica minus the energy of the first (last) replica.\n\nThe \"path angle\" (pathangle) for the replica i which is the angle\nbetween the 3N-length vectors \\((R_{i-1} - R_i)\\) and\n\\((R_{i+1} - R_i)\\) (where \\(R_i\\) is the atomic coordinates of\nreplica *i*). A \"path angle\" of 180 indicates that replicas *i* -1, *i*\nand *i* +1 are aligned. \"angletangrad\" is the angle between the\n3N-length tangent vector and the 3N-length force vector at image\n*i*. The tangent vector is calculated as in **HenkelmanA** for all intermediate replicas and at R2 - R1 and RM - RM-1\nfor the first and last replica, respectively. \"anglegrad\" is the angle\nbetween the 3N-length energy gradient vector of replica *i* and that of\nreplica *i* +1. It is not defined for the final replica and reads nan.\ngradV is the norm of the energy gradient of image *i* (\\(\\nabla\nV\\)). ReplicaForce is the two-norm of the 3N-length force vector\n(including nudging forces) for replica *i*. MaxAtomForce is the maximum\nforce component of any atom in replica *i*.\n\nWhen a NEB calculation does not converge properly, the supplementary\ninformation can help understanding what is going wrong. For instance\nwhen the path angle becomes acute, the definition of tangent used in\nthe NEB calculation is questionable and the NEB cannot may diverge\n**Maras2**.\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a\nNEB calculation, these contain the thermodynamic output for each\nreplica.\n\nIf [dump ](https://docs.lammps.org/dump.html) commands in the input script define a filename\nthat includes a *universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html),\nthen one dump file (per dump command) will be created for each\nreplica. At the end of the NEB calculation, the final snapshot in\neach file will contain the sequence of snapshots that transition the\nsystem over the energy barrier. Earlier snapshots will show the\nconvergence of the replicas to the MEP.\n\nLikewise, [restart ](https://docs.lammps.org/restart.html) filenames can be specified with a\n*universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html), to generate\nrestart files for each replica. These may be useful if the NEB\ncalculation fails to converge properly to the MEP, and you wish to\nrestart the calculation from an intermediate point with altered\nparameters.\n\nThere are 2 Python scripts provided in the tools/python directory,\nneb_combine.py and neb_final.py, which are useful in analyzing output\nfrom a NEB calculation. Assume a NEB simulation with M replicas, and\nthe NEB atoms labeled with a specific atom type.\n\nThe neb_combine.py script extracts atom coords for the NEB atoms from\nall M dump files and creates a single dump file where each snapshot\ncontains the NEB atoms from all the replicas and one copy of non-NEB\natoms from the first replica (presumed to be identical in other\nreplicas). This can be visualized/animated to see how the NEB atoms\nrelax as the NEB calculation proceeds.\n\nThe neb_final.py script extracts the final snapshot from each of the M\ndump files to create a single dump file with M snapshots. This can be\nvisualized to watch the system make its transition over the energy\nbarrier.\n\nTo illustrate, here are images from the final snapshot produced by the\nneb_combine.py script run on the dump files produced by the two\nexample input scripts in examples/neb.\n \n | | | \n |---|---| \n | ![Image](img/hop1.jpg) | ![Image](img/hop2.jpg) | \n\n\n----------\n\n**(HenkelmanA)** Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000). \n \n**(HenkelmanB)** Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,\n9901-9904 (2000). \n \n**(Nakano3)** Nakano, Comp Phys Comm, 178, 280-289 (2008). \n \n**(Maras2)** Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,\nComp Phys Comm, 205, 13-21 (2016) \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n----------\n", - "related": "[prd ](https://docs.lammps.org/prd.html), [temper ](https://docs.lammps.org/temper.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix neb ](https://docs.lammps.org/fix_neb.html)\n" + "parameters": "lambda = decay length of the charge (distance units)\ncutoff = cutoff (distance units) \n", + "examples": "\n```lmps\npair_style coul/slater/cut 1.0 3.5\npair_coeff * *\npair_coeff 2 2 2.5\n\npair_style coul/slater/long 1.0 12.0\npair_coeff * *\npair_coeff 1 1 5.0\n```\n", + "html_filename": "pair_coul_slater.html", + "short_description": "Styles *coul/slater* compute electrostatic interactions in mesoscopic models\nwhich employ potentials without explicit excluded-volume interactions", + "description": "Styles *coul/slater* compute electrostatic interactions in mesoscopic models\nwhich employ potentials without explicit excluded-volume interactions.\nThe goal is to prevent artificial ionic pair formation by including a charge\ndistribution in the Coulomb potential, following the formulation of\n**Melchor**:\n\\[\n E = \\frac{Cq_iq_j}{\\epsilon r} \\left( 1- \\left( 1 + \\frac{r_{ij}}{\\lambda} exp\\left( -2r_{ij}/\\lambda \\right) \\right) \\right) \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff distance and \\(\\lambda\\) is the decay length of the charge.\nC is the same Coulomb conversion factor as in the pair_styles coul/cut and coul/long. In this way the Coulomb\ninteraction between ions is corrected at small distances r.\nFor the *coul/slater/cut* style, the potential energy for distances larger than the cutoff is zero,\nwhile for the *coul/slater/long*, the long-range interactions are computed either by the Ewald or the PPPM technique.\n\nPhenomena that can be captured at a mesoscopic level using this type of electrostatic\ninteractions include the formation of polyelectrolyte-surfactant aggregates,\ncharge stabilization of colloidal suspensions, and the formation of\ncomplexes driven by charged species in biological systems. **Vaiwala**.\n\nThe cutoff distance is optional. If it is not used,\nthe default global value specified in the pair_style command is used.\nFor each pair of atom types, a specific cutoff distance can be defined via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(r_c\\) (distance units)\n\nThe global decay length of the charge (\\(\\lambda\\)) specified in the pair_style command is used for all pairs.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*coul/slater* styles can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift and table options are not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \n \n**(Vaiwala)** Vaiwala, Jadhav, and Thaokar, J Chem Phys, 146, 124904 (2017). \n ", + "restrictions": "The *coul/slater/long* style requires the long-range solvers included in the KSPACE package.\n\nThese styles are part of the EXTRA-PAIR package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style, hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n" }, { "command": [ - "min_modify" + "compute cluster/atom", + "compute fragment/atom" ], "syntax": [ - "min_modify keyword values ..." + "compute ID group-ID cluster/atom cutoff", + "compute ID group-ID fragment/atom keyword value ...", + "compute ID group-ID aggregate/atom cutoff" ], "args": [ [ { - "arg": "min_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "cluster/atom", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] } - ] - ], - "parameters": "* one or more keyword/value pairs may be listed \n *      keyword = dmax or line or norm or alpha_damp or discrete_factor or integrator or abcfire or tmax \n       dmax value = max \n       max = maximum distance for line search to move (distance units) \n       line value = backtrack or quadratic or forcezero or spin_cubic or spin_none \n       backtrack,quadratic,forcezero,spin_cubic,spin_none = style of linesearch to use \n       norm value = two or inf or max \n       two = Euclidean two-norm (length of 3N vector) \n       inf = max force component across all 3-vectors \n       max = max force norm across all 3-vectors \n       alpha_damp value = damping \n       damping = fictitious magnetic damping for spin minimization (adim) \n       discrete_factor value = factor \n       factor = discretization factor for adaptive spin timestep (adim) \n       integrator value = eulerimplicit or verlet or leapfrog or eulerexplicit \n       time integration scheme for fire minimization \n       abcfire value = yes or no (default no) \n       yes = use ABC-FIRE variant of fire minimization style \n       no = use default FIRE variant of fire minimization style \n       tmax value = factor \n       factor = maximum adaptive timestep for fire minimization (adim) \n", - "examples": "\n```lmps\nmin_modify dmax 0.2\nmin_modify integrator verlet tmax 4\n```\n", - "html_filename": "min_modify.html", - "short_description": "This command sets parameters that affect the energy minimization\nalgorithms selected by the [min_style ](https://docs.lammps.org/min_style.html) command", - "description": "This command sets parameters that affect the energy minimization\nalgorithms selected by the [min_style ](https://docs.lammps.org/min_style.html) command. The\nvarious settings may affect the convergence rate and overall number of\nforce evaluations required by a minimization, so users can experiment\nwith these parameters to tune their minimizations.\n\nThe *cg* and *sd* minimization styles have an outer iteration and an\ninner iteration which is steps along a one-dimensional line search in\na particular search direction. The *dmax* parameter is how far any\natom can move in a single line search in any dimension (x, y, or z).\nFor the *quickmin* and *fire* minimization styles, the *dmax* setting\nis how far any atom can move in a single iteration (timestep). Thus a\nvalue of 0.1 in real [units ](https://docs.lammps.org/units.html) means no atom will move\nfurther than 0.1 Angstroms in a single outer iteration. This prevents\nhighly overlapped atoms from being moved long distances (e.g. through\nanother atom) due to large forces.\n\nThe choice of line search algorithm for the *cg* and *sd* minimization\nstyles can be selected via the *line* keyword. The default\n*quadratic* line search algorithm starts out using the robust\nbacktracking method described below. However, once the system gets\nclose to a local minimum and the linesearch steps get small, so that\nthe energy is approximately quadratic in the step length, it uses the\nestimated location of zero gradient as the linesearch step, provided\nthe energy change is downhill. This becomes more efficient than\nbacktracking for highly-converged relaxations. The *forcezero* line\nsearch algorithm is similar to *quadratic* . It may be more\nefficient than *quadratic* on some systems.\n\nThe backtracking search is robust and should always find a local\nenergy minimum. However, it will \"converge\" when it can no longer\nreduce the energy of the system. Individual atom forces may still be\nlarger than desired at this point, because the energy change is\nmeasured as the difference of two large values (energy before and\nenergy after) and that difference may be smaller than machine epsilon\neven if atoms could move in the gradient direction to reduce forces\nfurther.\n\nThe choice of a norm can be modified for the min styles *cg*, *sd*\n, *quickmin*, *fire*, *fire/old*, *spin*, *spin/cg* and\n*spin/lbfgs* using the *norm* keyword. The default *two* norm computes\nthe 2-norm (Euclidean length) of the global force vector:\n\\[ || \\vec{F} ||_{2} = \\sqrt{\\vec{F}_1^2+ \\cdots + \\vec{F}_N^2}\\]\nThe *max* norm computes the length of the 3-vector force\nfor each atom (2-norm), and takes the maximum value of those across\nall atoms\n\\[\n || \\vec{F} ||_{max} = {\\rm max}\\left(||\\vec{F}_1||, \\cdots, ||\\vec{F}_N||\\right)\\]\nThe *inf* norm takes the maximum component across the forces of\nall atoms in the system:\n\\[\n || \\vec{F} ||_{inf} = {\\rm max}\\left(|F_1^1|, |F_1^2|, |F_1^3| \\cdots, |F_N^1|, |F_N^2|, |F_N^3|\\right)\\]\nFor the min styles *spin*, *spin/cg* and *spin/lbfgs*, the force\nnorm is replaced by the spin-torque norm.\n\nKeywords *alpha_damp* and *discrete_factor* only make sense when\na [min_spin ](https://docs.lammps.org/min_spin.html) command is declared.\nKeyword *alpha_damp* defines an analog of a magnetic damping.\nIt defines a relaxation rate toward an equilibrium for a given\nmagnetic system.\nKeyword *discrete_factor* defines a discretization factor for the\nadaptive timestep used in the *spin* minimization.\nSee [min_spin ](https://docs.lammps.org/min_spin.html) for more information about those\nquantities.\n\nThe choice of a line search algorithm for the *spin/cg* and\n*spin/lbfgs* styles can be specified via the *line* keyword. The\n*spin_cubic* and *spin_none* keywords only make sense when one of those two\nminimization styles is declared. The *spin_cubic* performs the line\nsearch based on a cubic interpolation of the energy along the search\ndirection. The *spin_none* keyword deactivates the line search\nprocedure. The *spin_none* is a default value for *line* keyword for\nboth *spin/lbfgs* and *spin/cg* . Convergence of *spin/lbfgs* can be\nmore robust if *spin_cubic* line search is used.\n\nThe Newton *integrator* used for *fire* minimization can be selected to\nbe either the symplectic Euler (\\ *eulerimplicit* ), velocity Verlet (\\\n*verlet* ), Leapfrog (\\ *leapfrog* ) or non-symplectic forward Euler\n(\\ *eulerexplicit* \\). The keyword *tmax* defines the maximum value for\nthe adaptive timestep during a *fire* minimization. It is a\nmultiplication factor applied to the current [timestep ](https://docs.lammps.org/timestep.html)\n(not in time unit). For example, *tmax* = 4.0 with a [timestep](https://docs.lammps.org/timestep.html) of 2fs, means that the maximum value the timestep can reach\nduring a *fire* minimization is 4fs. Note that parameter defaults has\nbeen chosen to be reliable in most cases, but one should consider\nadjusting [timestep ](https://docs.lammps.org/timestep.html) and *tmax* to optimize the\nminimization for large or complex systems. Other parameters of the\n*fire* minimization can be tuned (\\ *tmin*, *delaystep*, *dtgrow*,\n*dtshrink*, *alpha0*, and *alphashrink* ). Please refer to the\nreferences describing the [min_style ](https://docs.lammps.org/min_style.html) *fire*. An\nadditional stopping criteria *vdfmax* is used by *fire* in order to\navoid unnecessary looping when it is reasonable to think the system will\nnot be relaxed further. Note that in this case the system will NOT have\nreached your minimization criteria. This could happen when the system\ncomes to be stuck in a local basin of the phase space. *vdfmax* is the\nmaximum number of consecutive iterations with P(t) < 0.\n\nThe *abcfire* keyword allows to activate the ABC-FIRE variant of the\n*fire* minimization algorithm. ABC-FIRE introduces an additional factor\nthat modifies the bias and scaling of the velocities of the atoms during\nthe mixing step **EcheverriRestrepo**. This\ncan lead to faster convergence of the minimizer.\n\nThe [min_style ](https://docs.lammps.org/min_style.html) *fire* is an optimized implementation of\n[min_style ](https://docs.lammps.org/min_style.html) *fire/old*. It can however behave similarly\nto the *fire/old* style by using the following set of parameters:\n\n```lmps\nmin_modify integrator eulerexplicit tmax 10.0 tmin 0.0 delaystep 5 &\ndtgrow 1.1 dtshrink 0.5 alpha0 0.1 alphashrink 0.99 &\nvdfmax 100000 halfstepback no initialdelay no\n```\n\n**(EcheverriRestrepo)** Echeverri Restrepo, Andric, Comput Mater Sci, 218, 111978 (2023). \n ", - "restrictions": "For magnetic GNEB calculations, only *spin_none* value for *line*\nkeyword can be used when minimization styles *spin/cg* and *spin/lbfgs* are\nemployed. See [neb/spin ](https://docs.lammps.org/neb_spin.html) for more explanation.\n", - "related": "[min_style ](https://docs.lammps.org/min_style.html), [minimize ](https://docs.lammps.org/minimize.html)\n" -}, -{ - "command": [ - "fix wall/reflect/stochastic" - ], - "syntax": [ - "fix ID group-ID wall/reflect/stochastic rstyle seed face args ... keyword value ..." - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -8600,67 +8133,63 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/reflect/stochastic", - "type": 1, + "arg": "fragment/atom", + "type": 2, "choices": [] }, { - "arg": "ccl", - "type": 3, - "choices": [ - "diffusive", - "maxwell", - "ccl" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { - "arg": "seed", + "arg": "value", "type": 2, "choices": [] + } + ], + [ + { + "arg": "compute", + "type": 1, + "choices": [] }, { - "arg": "zhi", - "type": 3, - "choices": [ - "xlo", - "xhi", - "ylo", - "yhi", - "zlo", - "zhi" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "aggregate/atom", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/reflect/stochastic = style name of this fix command\n* rstyle = diffusive or maxwell or ccl\n* seed = random seed for stochasticity (positive integer)\n* one or more face/args pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        args = pos temp velx vely velz accomx accomy accomz \n         pos = EDGE or constant \n         EDGE = current lo or hi edge of simulation box \n         constant = number like 0.0 or 30.0 (distance units) \n         temp = wall temperature (temperature units) \n         velx,vely,velz = wall velocity in x,y,z directions (velocity units) \n         accomx,accomy,accomz = accommodation coeffs in x,y,z directions (unitless) \n         not specified for rstyle = diffusive \n         single accom coeff specified for rstyle maxwell \n         all 3 coeffs specified for rstyle cll \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", - "examples": "\n```lmps\nfix zwalls all wall/reflect/stochastic diffusive 23424 zlo EDGE 300 0.1 0.1 0 zhi EDGE 200 0.1 0.1 0\nfix ywalls all wall/reflect/stochastic maxwell 345533 ylo 5.0 300 0.1 0.0 0.0 0.8 yhi 10.0 300 0.1 0.0 0.0 0.8\nfix xwalls all wall/reflect/stochastic cercignanilampis 2308 xlo 0.0 300 0.0 0.1 0.9 0.8 0.7 xhi EDGE 300 0.0 0.1 0 0.9 0.8 0.7 units box\n```\n", - "html_filename": "fix_wall_reflect_stochastic.html", - "short_description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them", - "description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them.\n\nReflection means that if an atom moves outside the wall on a timestep\n(e.g. due to the [fix nve ](https://docs.lammps.org/fix_nve.html) command), then it is put back\ninside the wall with a changed velocity.\n\nThis fix models treats the wall as a moving solid boundary with a\nfinite temperature, which can exchange energy with particles that\ncollide with it. This is different than the simpler [fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command which models mirror\nreflection. For this fix, the post collision velocity of each\nparticle is treated stochastically. The randomness can come from many\nsources: thermal motion of the wall atoms, surface roughness, etc.\nThree stochastic reflection models are currently implemented.\n\nFor rstyle *diffusive*, particles are reflected diffusively. Their\nvelocity distribution corresponds to an equilibrium distribution of\nparticles at the wall temperature. No accommodation coefficients\nare specified.\n\nFor rstyle *maxwell*, particle reflection is Maxwellian which means\npartially diffusive and partially specular (**Maxwell**). A\nsingle accommodation coeff is specified which must be between 0.0 and\n1.0 inclusive. It determines the fraction of the collision which is\ndiffusive versus specular. An accommodation coefficient of 1.0 is fully\ndiffusive; a coefficient of 0.0 is fully specular.\n\nFor rstyle *cll*, particle collisions are computed by the\nCercignani/Lampis model. See **CL** and **To** for details.\nThree accommodations coefficient are specified. Each must be between\n0.0 and 1.0 inclusive. Two are velocity accommodation coefficients;\none is a normal kinetic energy accommodation. The normal coeff is the\none corresponding to the normal of the wall itself. For example if\nthe wall is *ylo* or *yhi*, *accomx* and *accomz* are the tangential\nvelocity accommodation coefficients, and *accomy* is the normal\nkinetic energy accommodation coefficient.\n\nThe optional *units* keyword determines the distance units used to\ndefine a wall position. A *box* value selects standard distance units\nas defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units\n= real or metal. A *lattice* value means the distance units are in\nlattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have been\npreviously used to define the lattice spacings.\n\n----------\n\n**(Maxwell)** J.C. Maxwell, Philos. Tans. Royal Soc. London, 157: 49-88\n(1867). \n \n**(CL)** C. Cercignani and M. Lampis. Trans. Theory\nStat. Phys. 1, 2, 101 (1971). \n \n**(To)** Q.D. To, V.H. Vu, G. Lauriat, and\nC. Leonard. J. Math. Phys. 56, 103101 (2015). \n ", - "restrictions": "This fix has the same limitations as the [fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command. Any dimension (xyz) that\nhas a wall must be non-periodic. It should not be used with rigid\nbodies such as those defined by the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommand. The wall velocity must lie on the same plane as the wall\nitself.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cluster/atom or fragment/atom or aggregate/atom = style name of this compute command\n* cutoff = distance within which to label atoms as part of same cluster (distance units)\n* zero or more keyword/value pairs may be appended to fragment/atom\n* keyword = single \n *        single value = yes or no to treat single atoms (no bonds) as fragments \n", + "examples": "\n```lmps\ncompute 1 all cluster/atom 3.5\ncompute 1 all fragment/atom\ncompute 1 all fragment/atom single no\ncompute 1 all aggregate/atom 3.5\n```\n", + "html_filename": "compute_cluster_atom.html", + "short_description": "Define a computation that assigns each atom a cluster, fragment, or\naggregate ID", + "description": "Define a computation that assigns each atom a cluster, fragment, or\naggregate ID. Only atoms in the compute group are clustered and\nassigned cluster IDs. Atoms not in the compute group are assigned an\nID = 0.\n\nA cluster is defined as a set of atoms, each of which is within the\ncutoff distance from one or more other atoms in the cluster. If an\natom has no neighbors within the cutoff distance, then it is a 1-atom\ncluster.\n\nA fragment is similarly defined as a set of atoms, each of which has a\nbond to another atom in the fragment. Bonds can be defined initially\nvia the [data file ](https://docs.lammps.org/read_data.html) or [create_bonds](https://docs.lammps.org/create_bonds.html) commands, or dynamically by fixes which create or\nbreak bonds like [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fixbond/create ](https://docs.lammps.org/fix_bond_create.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\nor [fix bond/break ](https://docs.lammps.org/fix_bond_break.html). The cluster ID or fragment\nID of every atom in the cluster will be set to the smallest atom ID of\nany atom in the cluster or fragment, respectively.\n\nFor the *fragment/atom* style, the *single* keyword determines whether\nsingle atoms (not bonded to another atom) are treated as one-atom\nfragments or not, based on the *yes* or *no* setting. If the setting\nis *no* (the default), their fragment IDs are set to 0.\n\nAn aggregate is defined by combining the rules for clusters and\nfragments (i.e., a set of atoms, where each of them is within the cutoff\ndistance from one or more atoms within a fragment that is part of\nthe same cluster). This measure can be used to track molecular assemblies\nlike micelles.\n\nFor computes *cluster/atom* and *aggregate/atom* a neighbor list\nneeded to compute cluster IDs is constructed each time the compute is\ninvoked. Thus it can be inefficient to compute/dump this quantity too\nfrequently or to have multiple *cluster/atom* or *aggregate/atom*\nstyle computes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included when computing the clusters. This\n > does not apply when using long-range coulomb (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g., \\(1.0 \\times 10^{-50}\\)). Another workaround is to write a\n > dump file and use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the clusters\n > for snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the compute fragment/atom style, each fragment is identified\n > using the current bond topology. This will not account for bonds\n > broken by the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command\n > because it does not perform a full update of the bond topology data\n > structures within LAMMPS. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be an ID \\(> 0\\), as explained above.\n", + "restrictions": "none\n", + "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n" }, { "command": [ - "pair_style bop" + "pair_style gw" ], "syntax": [ - "pair_style bop keyword ..." + "pair_style style" ], "args": [ [ @@ -8670,47 +8199,45 @@ export const command_docs = [ "choices": [] }, { - "arg": "bop", - "type": 1, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "gw/zbl", + "type": 3, + "choices": [ + "gw", + "gw/zbl" + ] } ] ], - "parameters": "* zero or more keywords may be appended\n* keyword = save \n *      save = pre-compute and save some values \n", - "examples": "\n```lmps\npair_style bop\npair_coeff * * ../potentials/CdTe_bop Cd Te\npair_style bop save\npair_coeff * * ../potentials/CdTe.bop.table Cd Te Te\ncomm_modify cutoff 14.70\n```\n", - "html_filename": "pair_bop.html", - "short_description": "The *bop* pair style computes Bond-Order Potentials (BOP) based on\nquantum mechanical theory incorporating both \\(\\sigma\\) and \\(\\pi\\) bonding", - "description": "The *bop* pair style computes Bond-Order Potentials (BOP) based on\nquantum mechanical theory incorporating both \\(\\sigma\\) and \\(\\pi\\) bonding.\nBy analytically deriving the BOP from quantum mechanical theory its\ntransferability to different phases can approach that of quantum\nmechanical methods. This potential is similar to the original BOP\ndeveloped by Pettifor (**Pettifor_1**,\n**Pettifor_2**, **Pettifor_3**) and later updated\nby Murdick, Zhou, and Ward (**Murdick**, **Ward**).\nCurrently, BOP potential files for these systems are provided with\nLAMMPS: AlCu, CCu, CdTe, CdTeSe, CdZnTe, CuH, GaAs. A system with\nonly a subset of these elements, including a single element (e.g. C or\nCu or Al or Ga or Zn or CdZn), can also be modeled by using the\nappropriate alloy file and assigning all atom types to the\nsingle element or subset of elements via the pair_coeff command, as\ndiscussed below.\n\nThe BOP potential consists of three terms:\n\\[\n E = \\frac{1}{2} \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\phi_{ij} \\left( r_{ij} \\right) - \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\beta_{\\sigma,ij} \\left( r_{ij} \\right) \\cdot \\Theta_{\\sigma,ij} - \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\beta_{\\pi,ij} \\left( r_{ij} \\right) \\cdot \\Theta_{\\pi,ij} + U_{prom}\\]\nwhere \\(\\phi_{ij}(r_{ij})\\) is a short-range two-body function\nrepresenting the repulsion between a pair of ion cores,\n\\(\\beta_{\\sigma,ij}(r_{ij})\\) and \\(\\beta_{\\sigma,ij}(r_{ij})\\)\nare respectively sigma and \\(\\pi\\) bond integrals, \\(\\Theta_{\\sigma,ij}\\)\nand \\(\\Theta_{\\pi,ij}\\) are \\(\\sigma\\) and \\(\\pi\\)\nbond-orders, and U_prom is the promotion energy for sp-valent systems.\n\nThe detailed formulas for this potential are given in Ward\n(**Ward**); here we provide only a brief description.\n\nThe repulsive energy \\(\\phi_{ij}(r_{ij})\\) and the bond integrals\n\\(\\beta_{\\sigma,ij}(r_{ij})\\) and \\(\\beta_{\\phi,ij}(r_{ij})\\) are functions of the\ninteratomic distance \\(r_{ij}\\) between atom *i* and *j* . Each of these\npotentials has a smooth cutoff at a radius of \\(r_{cut,ij}\\). These\nsmooth cutoffs ensure stable behavior at situations with high sampling\nnear the cutoff such as melts and surfaces.\n\nThe bond-orders can be viewed as environment-dependent local variables\nthat are ij bond specific. The maximum value of the \\(\\sigma\\)\nbond-order (\\(\\Theta_{\\sigma}\\) is 1, while that of the \\(\\pi\\)\nbond-order (\\(\\Theta_{\\pi}\\)) is 2, attributing to a maximum value\nof the total bond-order (\\(\\Theta_{\\sigma}+\\Theta_{\\pi}\\)) of 3.\nThe \\(\\sigma\\) and \\(\\pi\\) bond-orders reflect the ubiquitous\nsingle-, double-, and triple- bond behavior of chemistry. Their\nanalytical expressions can be derived from tight- binding theory by\nrecursively expanding an inter-site Green's function as a continued\nfraction. To accurately represent the bonding with a computationally\nefficient potential formulation suitable for MD simulations, the derived\nBOP only takes (and retains) the first two levels of the recursive\nrepresentations for both the \\(\\sigma\\) and the \\(\\pi\\) bond-orders. Bond-order\nterms can be understood in terms of molecular orbital hopping paths\nbased upon the Cyrot-Lackmann theorem (**Pettifor_1**).\nThe \\(\\sigma\\) bond-order with a half-full valence shell is used to\ninterpolate the bond-order expression that incorporated explicit valance\nband filling. This \\(\\pi\\) bond-order expression also contains also contains\na three-member ring term that allows implementation of an asymmetric\ndensity of states, which helps to either stabilize or destabilize\nclose-packed structures. The \\(\\pi\\) bond-order includes hopping paths of\nlength 4. This enables the incorporation of dihedral angles effects.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that unlike for other potentials, cutoffs for BOP\n > potentials are not set in the pair_style or pair_coeff command; they\n > are specified in the BOP potential files themselves. Likewise, the\n > BOP potential files list atomic masses; thus you do not need to use\n > the [mass ](https://docs.lammps.org/mass.html) command to specify them. Note that for BOP\n > potentials with hydrogen, you will likely want to set the mass of H\n > atoms to be 10x or 20x larger to avoid having to use a tiny timestep.\n > You can do this by using the [mass ](https://docs.lammps.org/mass.html) command after using the\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command to read the BOP potential\n > file. \n > \n\nOne option can be specified as a keyword with the pair_style command.\n\nThe *save* keyword gives you the option to calculate in advance and\nstore a set of distances, angles, and derivatives of angles. The\ndefault is to not do this, but to calculate them on-the-fly each time\nthey are needed. The former may be faster, but takes more memory.\nThe latter requires less memory, but may be slower. It is best to\ntest this option to optimize the speed of BOP for your particular\nsystem configuration.\n\n----------\n\nOnly a single pair_coeff command is used with the *bop* style which\nspecifies a BOP potential file, with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of BOP elements to atom types\n\nAs an example, imagine the CdTe.bop file has BOP values for Cd\nand Te. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Cd, and the fourth to be Te, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * CdTe Cd Cd Cd Te\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Cd arguments map LAMMPS atom types 1,2,3 to the Cd\nelement in the BOP file. The final Te argument maps LAMMPS atom type\n4 to the Te element in the BOP file.\n\nBOP files in the *potentials* directory of the LAMMPS distribution\nhave a \".bop\" suffix. The potentials are in tabulated form containing\npre-tabulated pair functions for phi_ij(r_ij), beta_(sigma,ij)(r_ij),\nand beta_pi,ij)(r_ij).\n\nThe parameters/coefficients format for the different kinds of BOP\nfiles are given below with variables matching the formulation of Ward\n(**Ward**) and Zhou (**Zhou1**). Each header line containing a\n\":\" is preceded by a blank line.\n\n----------\n\n**No angular table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Ward**).\n\n* Line 1: # elements N\n\nThe first line is followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g_(sigma0), g_(sigma1), g_(sigma2) (These are coefficients for\n g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. **Ward**\n contains the full expressions for the constants as functions of\n b_(sigma,ijk), p_(sigma,ijk), u_(sigma,ijk))\n* Line 2: g_(sigma0), g_(sigma1), g_(sigma2) (for e_1-e_1-e_2)\n\nThe next section contains a block for each interaction type for the\nphi_ij(r_ij). Each block has nr entries with 5 entries per line.\n\n* Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e_1-e_1\n interaction type)\n* Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues\n until nr)\n* ...\n* Line nr/5_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the\n e_1-e_1 interaction type)\n\nThe next section contains a block for each interaction type for the\nbeta_(sigma,ij)(r_ij). Each block has nr entries with 5 entries per\nline.\n\n* Line 1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4),\n beta_sigma(r5) (for the e_1-e_1 interaction type)\n* Line 2: beta_sigma(r6), beta_sigma(r7), beta_sigma(r8), beta_sigma(r9),\n beta_sigma(r10) (this continues until nr)\n* ...\n* Line nr/5+1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3),\n beta_sigma(r4), beta_sigma(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block for each interaction type for\nbeta_(pi,ij)(r_ij). Each block has nr entries with 5 entries per line.\n\n* Line 1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5)\n (for the e_1-e_1 interaction type)\n* Line 2: beta_pi(r6), beta_pi(r7), beta_pi(r8), beta_pi(r9),\n beta_pi(r10) (this continues until nr)\n* ...\n* Line nr/5+1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4),\n beta_pi(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block for each interaction type for the\nTHETA_(S,ij)((THETA_(sigma,ij))\\^(1/2), f_(sigma,ij)). Each block has\nnBOt entries with 5 entries per line.\n\n* Line 1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),\n THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)\n* Line 2: THETA_(S,ij)(r6), THETA_(S,ij)(r7), THETA_(S,ij)(r8),\n THETA_(S,ij)(r9), THETA_(S,ij)(r10) (this continues until nBOt)\n* ...\n* Line nBOt/5+1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),\n THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block of N lines for e_1-e_N\n\n* Line 1: delta\\^mu (for e_1)\n* Line 2: delta\\^mu (for e_2 and repeats to e_N)\n\nThe last section contains more constants for e_i-e_j interactions with\ni=0->N, j=i->N\n\n* Line 1: (A_ij)\\^(mu\\*nu) (for e1-e1)\n* Line 2: (A_ij)\\^(mu\\*nu) (for e1-e2 and repeats as above)\n\n----------\n\n**Angular spline table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Zhou1**).\n\n* Line 1: # elements N\n\nThe first line is followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; ntheta is the power of the\n power of the spline used to fit the angular function; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g0, g1, g2... (These are coefficients for the angular spline\n of the g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. The\n function can contain up to 10 term thus 10 constants. The first line\n can contain up to five constants. If the spline has more than five\n terms the second line will contain the remaining constants The\n following lines will then contain the constants for the remaining g0,\n g1, g2... (for e_1-e_1-e_2) and the other three body\n interactions\n\nThe rest of the table has the same structure as the previous section\n(see above).\n\n----------\n\n**Angular no-spline table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Zhou1**).\n\n* Line 1: # elements N\n\nThe first two lines are followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; ntheta is the number of\n divisions for the tabulated values of the g angular function; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5) (for the e_1-e_1-e_1\n interaction type)\n* Line 2: g(theta6), g(theta7), g(theta8), g(theta9), g(theta10) (this continues\n until ntheta)\n* ...\n* Line ntheta/5+1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5), (for the\n e_1-e_1-e_2 interaction type)\n\nThe rest of the table has the same structure as the previous section (see above).\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Pettifor_1)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 59, 8487\n(1999). \n \n**(Pettifor_2)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. Lett., 84,\n4124 (2000). \n \n**(Pettifor_3)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 65, 172103\n(2002). \n \n**(Murdick)** D.A. Murdick, X.W. Zhou, H.N.G. Wadley, D. Nguyen-Manh, R.\nDrautz, and D.G. Pettifor, Phys. Rev. B, 73, 45206 (2006). \n \n**(Ward)** D.K. Ward, X.W. Zhou, B.M. Wong, F.P. Doty, and J.A.\nZimmerman, Phys. Rev. B, 85,115206 (2012). \n \n**(Zhou1)** X.W. Zhou, D.K. Ward, M. Foster (TBP). \n ", - "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newtion ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nPair style bop is not compatible with being used as a sub-style with\ndoc:`hybrid pair styles `. Pair style bop is also not\ncompatible with [multi-cutoff neighbor lists ](https://docs.lammps.org/neighbor.html) or\n[multi-cutoff communitcation ](https://docs.lammps.org/comm_modify.html).\n\nThe .bop.table potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the BOP potential with any LAMMPS units, but you would need\nto create your own BOP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "parameters": "* style = gw or gw/zbl \n", + "examples": "\n```lmps\npair_style gw\npair_coeff * * SiC.gw Si C C\n\npair_style gw/zbl\npair_coeff * * SiC.gw.zbl C Si\n```\n", + "html_filename": "pair_gw.html", + "short_description": "The *gw* style computes a 3-body **Gao** potential;\nsimilarly *gw/zbl* combines this potential with a modified\nrepulsive ZBL core function in a similar fashion as implemented\nin the [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) pair style", + "description": "The *gw* style computes a 3-body **Gao** potential;\nsimilarly *gw/zbl* combines this potential with a modified\nrepulsive ZBL core function in a similar fashion as implemented\nin the [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) pair style.\n\nUnfortunately the author of this contributed code has not been\nable to submit a suitable documentation explaining the details\nof the potentials. The LAMMPS developers thus have finally decided\nto release the code anyway with only the technical explanations.\nFor details of the model and the parameters, please refer to the\nlinked publication.\n\nOnly a single pair_coeff command is used with the *gw* and *gw/zbl*\nstyles which specifies a Gao-Weber potential file with parameters\nfor all needed elements. These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of GW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.gw has Gao-Weber values for Si and C.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Si, and the fourth to be C, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * SiC.gw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the GW file. The final C argument maps LAMMPS atom type 4\nto the C element in the GW file. If a mapping value is specified as\nNULL, the mapping is not performed. This can be used when a *gw*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nGao-Weber files in the *potentials* directory of the LAMMPS\ndistribution have a \".gw\" suffix. Gao-Weber with ZBL files\nhave a \".gz.zbl\" suffix. The structure of the potential files\nis similar to other many-body potentials supported by LAMMPS.\nYou have to refer to the comments in the files and the literature\nto learn more details.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Gao)** Gao and Weber, Nuclear Instruments and Methods in Physics\nResearch B 191 (2012) 504. \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Gao-Weber potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the GW potential with any LAMMPS units, but you would need\nto create your own GW potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "run_style" + "package" ], "syntax": [ - "run_style style args" + "package style args" ], "args": [ [ { - "arg": "run_style", + "arg": "package", "type": 1, "choices": [] }, { - "arg": "respa/omp", + "arg": "omp", "type": 3, "choices": [ - "verlet", - "verlet/split", - "respa", - "respa/omp" + "gpu", + "intel", + "kokkos", + "omp" ] }, { @@ -8720,20 +8247,62 @@ export const command_docs = [ } ] ], - "parameters": "* style = verlet or verlet/split or respa or respa/omp \n *        verlet args = none \n *        verlet/split args = none \n *        respa args = N n1 n2 ... keyword values ... \n         N = # of levels of rRESPA \n         n1, n2, ... = loop factors between rRESPA levels (N-1 values) \n         zero or more keyword/value pairings may be appended to the loop factors \n         keyword = bond or angle or dihedral or improper or \n         pair or inner or middle or outer or hybrid or kspace \n         bond value = M \n         M = which level (1-N) to compute bond forces in \n         angle value = M \n         M = which level (1-N) to compute angle forces in \n         dihedral value = M \n         M = which level (1-N) to compute dihedral forces in \n         improper value = M \n         M = which level (1-N) to compute improper forces in \n         pair value = M \n         M = which level (1-N) to compute pair forces in \n         inner values = M cut1 cut2 \n         M = which level (1-N) to compute pair inner forces in \n         cut1 = inner cutoff between pair inner and \n         pair middle or outer (distance units) \n         cut2 = outer cutoff between pair inner and \n         pair middle or outer (distance units) \n         middle values = M cut1 cut2 \n         M = which level (1-N) to compute pair middle forces in \n         cut1 = inner cutoff between pair middle and pair outer (distance units) \n         cut2 = outer cutoff between pair middle and pair outer (distance units) \n         outer value = M \n         M = which level (1-N) to compute pair outer forces in \n         hybrid values = M1 M2 ... (as many values as there are hybrid sub-styles \n         M1 = which level (1-N) to compute the first pair_style hybrid sub-style in \n         M2 = which level (1-N) to compute the second pair_style hybrid sub-style in \n         M3,etc \n         kspace value = M \n         M = which level (1-N) to compute kspace forces in \n", - "examples": "\n```lmps\nrun_style verlet\nrun_style respa 4 2 2 2 bond 1 dihedral 2 pair 3 kspace 4\nrun_style respa 4 2 2 2 bond 1 dihedral 2 inner 3 5.0 6.0 outer 4 kspace 4\nrun_style respa 3 4 2 bond 1 hybrid 2 2 1 kspace 3\n```\n", - "html_filename": "run_style.html", - "short_description": "Choose the style of time integrator used for molecular dynamics\nsimulations performed by LAMMPS", - "description": "Choose the style of time integrator used for molecular dynamics\nsimulations performed by LAMMPS.\n\nThe *verlet* style is the velocity form of the\nStoermer-Verlet time integration algorithm (velocity-Verlet)\n\n----------\n\nThe *verlet/split* style is also a velocity-Verlet integrator, but it\nsplits the force calculation within each timestep over 2 partitions of\nprocessors. See the [-partition command-line switch ](https://docs.lammps.org/Run_options.html)\nfor info on how to run LAMMPS with multiple partitions.\n\nSpecifically, this style performs all computation except the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) portion of the force field on the\nfirst partition. This include the [pair style ](https://docs.lammps.org/pair_style.html),\n[bond style ](https://docs.lammps.org/bond_style.html), [neighbor list building](https://docs.lammps.org/neighbor.html), [fixes ](https://docs.lammps.org/fix.html) including time integration, and output.\nThe [kspace_style ](https://docs.lammps.org/kspace_style.html) portion of the calculation is\nperformed on the second partition.\n\nThis can lead to a significant speedup, if the number of processors can\nbe easily increased and the fraction of time is spent in computing\nKspace interactions is significant, too. The two partitions may have a\ndifferent number of processors. This is most useful for the PPPM\nkspace_style when its performance on a large number of processors\ndegrades due to the cost of communication in its 3d FFTs. In this\nscenario, splitting your P total processors into 2 subsets of\nprocessors, P1 in the first partition and P2 in the second partition,\ncan enable your simulation to run faster. This is because the\nlong-range forces in PPPM can be calculated at the same time as pairwise\nand bonded forces are being calculated *and* the parallel 3d FFTs can be\nfaster to compute when running on fewer processors. Please note that\nthe scenario of using fewer MPI processes to reduce communication\noverhead can also be implemented through using MPI with OpenMP threads\nvia the INTEL, KOKKOS, or OPENMP package. This alternative option is\ntypically more effective in case of a fixed number of available\nprocessors and less complex to execute.\n\nTo use the *verlet/split* style, you must define 2 partitions with the\n[-partition command-line switch ](https://docs.lammps.org/Run_options.html), where partition P1\nis either the same size or an integer multiple of the size of the\npartition P2. Typically having P1 be 3x larger than P2 is a good\nchoice, since the (serial) performance of LAMMPS is often best if the\ntime spent in the ``Pair`` computation versus ``Kspace`` is a 3:1 split.\nThe 3d processor layouts in each partition must overlay in the following\nsense. If P1 is a Px1 by Py1 by Pz1 grid, and P2 = Px2 by Py2 by Pz2,\nthen Px1 must be an integer multiple of Px2, and similarly for Py1 a\nmultiple of Py2, and Pz1 a multiple of Pz2.\n\nTypically the best way to do this is to let the first partition choose\nits own optimal layout, then require the second partition's layout to\nmatch the integer multiple constraint. See the\n[processors ](https://docs.lammps.org/processors.html) command with its *part* keyword for a way\nto control this, e.g.\n\n```lmps\nprocessors * * * part 1 2 multiple\n```\nYou can also use the [partition ](https://docs.lammps.org/partition.html) command to explicitly\nspecify the processor layout on each partition. E.g. for 2 partitions\nof 60 and 15 processors each:\n\n```lmps\npartition yes 1 processors 3 4 5\npartition yes 2 processors 3 1 5\n```\nWhen you run in 2-partition mode with the *verlet/split* style, the\nthermodynamic data for the entire simulation will be output to the log\nand screen file of the first partition, which are log.lammps.0 and\nscreen.0 by default; see the [-plog and -pscreen command-lineswitches ](https://docs.lammps.org/Run_options.html) to change this. The log and screen file for the\nsecond partition will not contain thermodynamic output beyond the first\ntimestep of the run.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for\nperformance details of the speed-up offered by the *verlet/split*\nstyle. One important performance consideration is the assignment of\nlogical processors in the 2 partitions to the physical cores of a\nparallel machine. The [processors ](https://docs.lammps.org/processors.html) command has\noptions to support this, and strategies are discussed in [Section5 ](https://docs.lammps.org/Speed.html) of the manual.\n\n----------\n\nThe *respa* style implements the rRESPA multi-timescale integrator\n**Tuckerman3** with N hierarchical levels, where level\n1 is the innermost loop (shortest timestep) and level N is the outermost\nloop (largest timestep). The loop factor arguments specify what the\nlooping factor is between levels. N1 specifies the number of iterations\nof level 1 for a single iteration of level 2, N2 is the iterations of\nlevel 2 per iteration of level 3, etc. N-1 looping parameters must be\nspecified.\n\nThus with a 4-level respa setting of \"2 2 2\" for the 3 loop factors, you\ncould choose to have bond interactions computed 8x per large timestep,\nangle interactions computed 4x, pair interactions computed 2x, and\nlong-range interactions once per large timestep.\n\nThe [timestep ](https://docs.lammps.org/timestep.html) command sets the large timestep for the\noutermost rRESPA level. Thus if the 3 loop factors are \"2 2 2\" for\n4-level rRESPA, and the outer timestep is set to 4.0 fs, then the inner\ntimestep would be 8x smaller or 0.5 fs. All other LAMMPS commands that\nspecify number of timesteps (e.g. [thermo ](https://docs.lammps.org/thermo.html) for thermo\noutput every N steps, [neigh_modify delay/every ](https://docs.lammps.org/neigh_modify.html)\nparameters, [dump ](https://docs.lammps.org/dump.html) every N steps, etc) refer to the\noutermost timesteps.\n\nThe rRESPA keywords enable you to specify at what level of the hierarchy\nvarious forces will be computed. If not specified, the defaults are\nthat bond forces are computed at level 1 (innermost loop), angle forces\nare computed where bond forces are, dihedral forces are computed where\nangle forces are, improper forces are computed where dihedral forces\nare, pair forces are computed at the outermost level, and kspace forces\nare computed where pair forces are. The inner, middle, outer forces\nhave no defaults.\n\nFor fixes that support it, the rRESPA level at which a given fix is\nactive, can be selected through the [fix_modify ](https://docs.lammps.org/fix_modify.html)\ncommand.\n\nThe *inner* and *middle* keywords take additional arguments for cutoffs\nthat are used by the pairwise force computations. If the 2 cutoffs for\n*inner* are 5.0 and 6.0, this means that all pairs up to 6.0 apart are\ncomputed by the inner force. Those between 5.0 and 6.0 have their force\ngo ramped to 0.0 so the overlap with the next regime (middle or outer)\nis smooth. The next regime (middle or outer) will compute forces for\nall pairs from 5.0 outward, with those from 5.0 to 6.0 having their\nvalue ramped in an inverse manner.\n\nNote that you can use *inner* and *outer* without using *middle* to\nsplit the pairwise computations into two portions instead of three.\nUnless you are using a very long pairwise cutoff, a 2-way split is often\nfaster than a 3-way split, since it avoids too much duplicate\ncomputation of pairwise interactions near the intermediate cutoffs.\n\nAlso note that only a few pair potentials support the use of the *inner*\nand *middle* and *outer* keywords. If not, only the *pair* keyword can\nbe used with that pair style, meaning all pairwise forces are computed\nat the same rRESPA level. See the doc pages for individual pair styles\nfor details.\n\nAnother option for using pair potentials with rRESPA is with the\n*hybrid* keyword, which requires the use of the [pair_style hybridor hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. In this scenario, different\nsub-styles of the hybrid pair style are evaluated at different rRESPA\nlevels. This can be useful, for example, to set different timesteps for\nhybrid coarse-grained/all-atom models. The *hybrid* keyword requires as\nmany level assignments as there are hybrid sub-styles, which assigns\neach sub-style to a rRESPA level, following their order of definition in\nthe pair_style command. Since the *hybrid* keyword operates on pair\nstyle computations, it is mutually exclusive with either the *pair* or\nthe *inner* /\\ *middle* /\\ *outer* keywords.\n\nWhen using rRESPA (or for any MD simulation) care must be taken to\nchoose a timestep size(s) that ensures the Hamiltonian for the chosen\nensemble is conserved. For the constant NVE ensemble, total energy\nmust be conserved. Unfortunately, it is difficult to know *a priori*\nhow well energy will be conserved, and a fairly long test simulation\n(~10 ps) is usually necessary in order to verify that no long-term\ndrift in energy occurs with the trial set of parameters.\n\nWith that caveat, a few rules-of-thumb may be useful in selecting\n*respa* settings. The following applies mostly to biomolecular\nsimulations using the CHARMM or a similar all-atom force field, but\nthe concepts are adaptable to other problems. Without SHAKE, bonds\ninvolving hydrogen atoms exhibit high-frequency vibrations and require\na timestep on the order of 0.5 fs in order to conserve energy. The\nrelatively inexpensive force computations for the bonds, angles,\nimpropers, and dihedrals can be computed on this innermost 0.5 fs\nstep. The outermost timestep cannot be greater than 4.0 fs without\nrisking energy drift. Smooth switching of forces between the levels\nof the rRESPA hierarchy is also necessary to avoid drift, and a 1-2\nAngstrom \"healing distance\" (the distance between the outer and inner\ncutoffs) works reasonably well. We thus recommend the following\nsettings for use of the *respa* style without SHAKE in biomolecular\nsimulations:\n\n```lmps\ntimestep 4.0\nrun_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4\n```\nWith these settings, users can expect good energy conservation and\nroughly a 2.5 fold speedup over the *verlet* style with a 0.5 fs\ntimestep.\n\nIf SHAKE is used with the *respa* style, time reversibility is lost,\nbut substantially longer time steps can be achieved. For biomolecular\nsimulations using the CHARMM or similar all-atom force field, bonds\ninvolving hydrogen atoms exhibit high frequency vibrations and require\na time step on the order of 0.5 fs in order to conserve energy.\nThese high frequency modes also limit the outer time step sizes since\nthe modes are coupled. It is therefore desirable to use SHAKE with\nrespa in order to freeze out these high frequency motions and increase\nthe size of the time steps in the respa hierarchy. The following\nsettings can be used for biomolecular simulations with SHAKE and\nrRESPA:\n\n```lmps\nfix 2 all shake 0.000001 500 0 m 1.0 a 1\ntimestep 4.0\nrun_style respa 2 2 inner 1 4.0 5.0 outer 2\n```\nWith these settings, users can expect good energy conservation and\nroughly a 1.5 fold speedup over the *verlet* style with SHAKE and a\n2.0 fs timestep.\n\nFor non-biomolecular simulations, the *respa* style can be\nadvantageous if there is a clear separation of time scales - fast and\nslow modes in the simulation. For example, a system of slowly-moving\ncharged polymer chains could be setup as follows:\n\n```lmps\ntimestep 4.0\nrun_style respa 2 8\n```\nThis is two-level rRESPA with an 8x difference between the short and\nlong timesteps. The bonds, angles, dihedrals will be computed every\n0.5 fs (assuming real units), while the pair and kspace interactions\nwill be computed once every 4 fs. These are the default settings for\neach kind of interaction, so no additional keywords are necessary.\n\nEven a LJ system can benefit from rRESPA if the interactions are\ndivided by the inner, middle and outer keywords. A 2-fold or more\nspeedup can be obtained while maintaining good energy conservation.\nIn real units, for a pure LJ fluid at liquid density, with a sigma of\n3.0 Angstroms, and epsilon of 0.1 kcal/mol, the following settings\nseem to work well:\n\n```lmps\ntimestep 36.0\nrun_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3\n```\n----------\n\nThe *respa/omp* style is a variant of *respa* adapted for use with\npair, bond, angle, dihedral, improper, or kspace styles with an *omp*\nsuffix. It is functionally equivalent to *respa* but performs\nadditional operations required for managing *omp* styles. For more on\n*omp* styles see the [Speed omp ](https://docs.lammps.org/Speed_omp.html) doc page. Accelerated\nstyles take the same arguments and should produce the same results,\nexcept for round-off and precision issues.\n\nYou can specify *respa/omp* explicitly in your input script, or you\ncan use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you\ninvoke LAMMPS, or you can use the [suffix ](https://docs.lammps.org/suffix.html) command in\nyour input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n----------\n\n**(Tuckerman3)** Tuckerman, Berne and Martyna, J Chem Phys, 97, p 1990\n(1992). \n ", - "restrictions": "The *verlet/split* style can only be used if LAMMPS was built with the\nREPLICA package. Correspondingly the *respa/omp* style is available\nonly if the OPENMP package was included. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nRun style *verlet/split* is not compatible with kspace styles from\nthe INTEL package and it is not compatible with any tip4p, dipole,\nor spin kspace styles.\n\nWhenever using rRESPA, the user should experiment with trade-offs in\nspeed and accuracy for their system, and verify that they are\nconserving energy to adequate precision.\n", - "related": "[timestep ](https://docs.lammps.org/timestep.html), [run ](https://docs.lammps.org/run.html)\n" + "parameters": "* style = gpu or intel or kokkos or omp\n* args = arguments specific to the style \n *        gpu args = Ngpu keyword value ... \n         Ngpu = # of GPUs per node \n         zero or more keyword/value pairs may be appended \n         keywords = neigh or newton or pair/only or binsize or split or gpuID or tpa or blocksize or omp or platform or device_type or ocl_args \n         neigh value = yes or no \n         yes = neighbor list build on GPU (default) \n         no = neighbor list build on CPU \n         newton = off or on \n         off = set Newton pairwise flag off (default and required) \n         on = set Newton pairwise flag on (currently not allowed) \n         pair/only = off or on \n         off = apply \"gpu\" suffix to all available styles in the GPU package (default) \n         on = apply \"gpu\" suffix only pair styles \n         binsize value = size \n         size = bin size for neighbor list construction (distance units) \n         split = fraction \n         fraction = fraction of atoms assigned to GPU (default = 1.0) \n         tpa value = Nlanes \n         Nlanes = # of GPU vector lanes (CUDA threads) used per atom \n         blocksize value = size \n         size = thread block size for pair force computation \n         omp value = Nthreads \n         Nthreads = number of OpenMP threads to use on CPU (default = 0) \n         platform value = id \n         id = For OpenCL, platform ID for the GPU or accelerator \n         gpuID values = id \n         id = ID of first GPU to be used on each node \n         device_type value = intelgpu or nvidiagpu or amdgpu or applegpu or generic or *custom*,val1,val2,... \n         val1,val2,... = custom OpenCL accelerator configuration parameters (see below for details) \n         ocl_args value = args \n         args = List of additional OpenCL compiler arguments delimited by colons \n *        intel args = NPhi keyword value ... \n         Nphi = # of co-processors per node \n         zero or more keyword/value pairs may be appended \n         keywords = mode or omp or lrt or balance or ghost or tpc or tptask or pppm_table or no_affinity \n         mode value = single or mixed or double \n         single = perform force calculations in single precision \n         mixed = perform force calculations in mixed precision \n         double = perform force calculations in double precision \n         omp value = Nthreads \n         Nthreads = number of OpenMP threads to use on CPU (default = 0) \n         lrt value = yes or no \n         yes = use additional thread dedicated for some PPPM calculations \n         no = do not dedicate an extra thread for some PPPM calculations \n         balance value = split \n         split = fraction of work to offload to co-processor, -1 for dynamic \n         ghost value = yes or no \n         yes = include ghost atoms for offload \n         no = do not include ghost atoms for offload \n         tpc value = Ntpc \n         Ntpc = max number of co-processor threads per co-processor core (default = 4) \n         tptask value = Ntptask \n         Ntptask = max number of co-processor threads per MPI task (default = 240) \n         pppm_table value = yes or no \n         yes = Precompute pppm values in table (doesn't change accuracy) \n         no = Compute pppm values on the fly \n         no_affinity values = none \n *        kokkos args = keyword value ... \n         zero or more keyword/value pairs may be appended \n         keywords = neigh or neigh/qeq or neigh/thread or neigh/transpose or newton or binsize or comm or comm/exchange or comm/forward or comm/pair/forward or comm/fix/forward or comm/reverse or comm/pair/reverse or sort or atom/map or gpu/aware or pair/only \n         neigh value = full or half \n         full = full neighbor list \n         half = half neighbor list built in thread-safe manner \n         neigh/qeq value = full or half \n         full = full neighbor list \n         half = half neighbor list built in thread-safe manner \n         neigh/thread value = off or on \n         off = thread only over atoms \n         on = thread over both atoms and neighbors \n         neigh/transpose value = off or on \n         off = use same memory layout for GPU neigh list build as pair style \n         on = use transposed memory layout for GPU neigh list build \n         newton = off or on \n         off = set Newton pairwise and bonded flags off \n         on = set Newton pairwise and bonded flags on \n         binsize value = size \n         size = bin size for neighbor list construction (distance units) \n         comm value = no or host or device \n         use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse \n         comm/exchange value = no or host or device \n         comm/forward value = no or host or device \n         comm/pair/forward value = no or device \n         comm/fix/forward value = no or device \n         comm/reverse value = no or host or device \n         no = perform communication pack/unpack in non-KOKKOS mode \n         host = perform pack/unpack on host (e.g. with OpenMP threading) \n         device = perform pack/unpack on device (e.g. on GPU) \n         comm/pair/reverse value = no or device \n         no = perform communication pack/unpack in non-KOKKOS mode \n         device = perform pack/unpack on device (e.g. on GPU) \n         sort value = no or device \n         no = perform atom sorting in non-KOKKOS mode \n         device = perform atom sorting on device (e.g. on GPU) \n         atom/map value = no or device \n         no = build atom map in non-KOKKOS mode \n         device = build atom map on device (e.g. on GPU) \n         gpu/aware = off or on \n         off = do not use GPU-aware MPI \n         on = use GPU-aware MPI (default) \n         pair/only = off or on \n         off = use device acceleration (e.g. GPU) for all available styles in the KOKKOS package (default) \n         on = use device acceleration only for pair styles (and host acceleration for others) \n *        omp args = Nthreads keyword value ... \n         Nthreads = # of OpenMP threads to associate with each MPI process \n         zero or more keyword/value pairs may be appended \n         keywords = neigh \n         neigh value = yes or no \n         yes = threaded neighbor list build (default) \n         no = non-threaded neighbor list build \n", + "examples": "\n```lmps\npackage gpu 0\npackage gpu 1 split 0.75\npackage gpu 2 split -1.0\npackage gpu 0 omp 2 device_type intelgpu\npackage kokkos neigh half comm device\npackage omp 0 neigh no\npackage omp 4\npackage intel 1\npackage intel 2 omp 4 mode mixed balance 0.5\n```\n", + "html_filename": "package.html", + "short_description": "This command invokes package-specific settings for the various\naccelerator packages available in LAMMPS", + "description": "This command invokes package-specific settings for the various\naccelerator packages available in LAMMPS. Currently the following\npackages use settings from this command: GPU, INTEL, KOKKOS, and\nOPENMP.\n\nIf this command is specified in an input script, it must be near the\ntop of the script, before the simulation box has been defined. This\nis because it specifies settings that the accelerator packages use in\ntheir initialization, before a simulation is defined.\n\nThis command can also be specified from the command-line when\nlaunching LAMMPS, using the \"-pk\" [command-line switch ](https://docs.lammps.org/Run_options.html). The syntax is exactly the same as when used\nin an input script.\n\nNote that all of the accelerator packages require the package command\nto be specified (except the OPT package), if the package is to be used\nin a simulation (LAMMPS can be built with an accelerator package\nwithout using it in a particular simulation). However, in all cases,\na default version of the command is typically invoked by other\naccelerator settings.\n\nThe KOKKOS package requires a \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html) respectively, which invokes a \"package\nkokkos\" command with default settings.\n\nFor the GPU, INTEL, and OPENMP packages, if a \"-sf gpu\" or \"-sf\nintel\" or \"-sf omp\" [command-line switch ](https://docs.lammps.org/Run_options.html) is used to\nauto-append accelerator suffixes to various styles in the input\nscript, then those switches also invoke a \"package gpu\", \"package\nintel\", or \"package omp\" command with default settings.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A package command for a particular style can be invoked multiple\n > times when a simulation is setup, e.g. by the [-c on, -k on, -sf, and -pk command-line switches ](https://docs.lammps.org/Run_options.html), and by using this command\n > in an input script. Each time it is used all of the style options are\n > set, either to default values or to specified settings. I.e. settings\n > from previous invocations do not persist across multiple invocations. \n > \n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more details\nabout using the various accelerator packages for speeding up LAMMPS\nsimulations.\n\n----------\n\nThe *gpu* style invokes settings associated with the use of the GPU\npackage.\n\nThe *Ngpu* argument sets the number of GPUs per node. If *Ngpu* is 0\nand no other keywords are specified, GPU or accelerator devices are\nauto-selected. In this process, all platforms are searched for\naccelerator devices and GPUs are chosen if available. The device with\nthe highest number of compute cores is selected. The number of devices\nis increased to be the number of matching accelerators with the same\nnumber of compute cores. If there are more devices than MPI tasks,\nthe additional devices will be unused. The auto-selection of GPUs/\naccelerator devices and platforms can be restricted by specifying\na non-zero value for *Ngpu* and / or using the *gpuID*, *platform*,\nand *device_type* keywords as described below. If there are more MPI\ntasks (per node) than GPUs, multiple MPI tasks will share each GPU.\n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *neigh* keyword specifies where neighbor lists for pair style\ncomputation will be built. If *neigh* is *yes*, which is the default,\nneighbor list building is performed on the GPU. If *neigh* is *no*,\nneighbor list building is performed on the CPU. GPU neighbor list\nbuilding currently cannot be used with a triclinic box. GPU neighbor\nlists are not compatible with commands that are not GPU-enabled. When\na non-GPU enabled command requires a neighbor list, it will also be\nbuilt on the CPU. In these cases, it will typically be more efficient\nto only use CPU neighbor list builds.\n\nThe *newton* keyword sets the Newton flags for pairwise (not bonded)\ninteractions to *off* or *on*, the same as the [newton ](https://docs.lammps.org/newton.html)\ncommand allows. Currently, only an *off* value is allowed, since all\nthe GPU package pair styles require this setting. This means more\ncomputation is done, but less communication. In the future a value of\n*on* may be allowed, so the *newton* keyword is included as an option\nfor compatibility with the package command for other accelerator\nstyles. Note that the newton setting for bonded interactions is not\naffected by this keyword.\n\nThe *pair/only* keyword can change how any \"gpu\" suffix is applied.\nBy default a suffix is applied to all styles for which an accelerated\nvariant is available. However, that is not always the most effective\nway to use an accelerator. With *pair/only* set to *on* the suffix\nwill only by applied to supported pair styles, which tend to be the\nmost effective in using an accelerator and their operation can be\noverlapped with all other computations on the CPU.\n\nThe *binsize* keyword sets the size of bins used to bin atoms in\nneighbor list builds performed on the GPU, if *neigh* = *yes* is set.\nIf *binsize* is set to 0.0 (the default), then the binsize is set\nautomatically using heuristics in the GPU package.\n\nThe *split* keyword can be used for load balancing force calculations\nbetween CPU and GPU cores in GPU-enabled pair styles. If 0 < *split* <\n1.0, a fixed fraction of particles is offloaded to the GPU while force\ncalculation for the other particles occurs simultaneously on the CPU.\nIf *split* < 0.0, the optimal fraction (based on CPU and GPU timings)\nis calculated every 25 timesteps, i.e. dynamic load-balancing across\nthe CPU and GPU is performed. If *split* = 1.0, all force\ncalculations for GPU accelerated pair styles are performed on the GPU.\nIn this case, other [hybrid ](https://docs.lammps.org/pair_hybrid.html) pair interactions,\n[bond ](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html),\n[dihedral ](https://docs.lammps.org/dihedral_style.html), [improper ](https://docs.lammps.org/improper_style.html), and\n[long-range ](https://docs.lammps.org/kspace_style.html) calculations can be performed on the\nCPU while the GPU is performing force calculations for the GPU-enabled\npair style. If all CPU force computations complete before the GPU\ncompletes, LAMMPS will block until the GPU has finished before\ncontinuing the timestep.\n\nAs an example, if you have two GPUs per node and 8 CPU cores per node,\nand would like to run on 4 nodes (32 cores) with dynamic balancing of\nforce calculation across CPU and GPU cores, you could specify\n\n```bash\nmpirun -np 32 -sf gpu -in in.script # launch command\npackage gpu 2 split -1 # input script command\n```\nIn this case, all CPU cores and GPU devices on the nodes would be\nutilized. Each GPU device would be shared by 4 CPU cores. The CPU\ncores would perform force calculations for some fraction of the\nparticles at the same time the GPUs performed force calculation for\nthe other particles.\n\nThe *gpuID* keyword is used to specify the first ID for the GPU or\nother accelerator that LAMMPS will use. For example, if the ID is\n1 and *Ngpu* is 3, GPUs 1-3 will be used. Device IDs should be\ndetermined from the output of nvc_get_devices, ocl_get_devices,\nor hip_get_devices\nas provided in the lib/gpu directory. When using OpenCL with\naccelerators that have main memory NUMA, the accelerators can be\nsplit into smaller virtual accelerators for more efficient use\nwith MPI.\n\nThe *tpa* keyword sets the number of GPU vector lanes per atom used to\nperform force calculations. With a default value of 1, the number of\nlanes will be chosen based on the pair style, however, the value can\nbe set explicitly with this keyword to fine-tune performance. For\nlarge cutoffs or with a small number of particles per GPU, increasing\nthe value can improve performance. The number of lanes per atom must\nbe a power of 2 and currently cannot be greater than the SIMD width\nfor the GPU / accelerator. In the case it exceeds the SIMD width, it\nwill automatically be decreased to meet the restriction.\n\nThe *blocksize* keyword allows you to tweak the number of threads used\nper thread block. This number should be a multiple of 32 (for GPUs)\nand its maximum depends on the specific GPU hardware. Typical choices\nare 64, 128, or 256. A larger block size increases occupancy of\nindividual GPU cores, but reduces the total number of thread blocks,\nthus may lead to load imbalance. On modern hardware, the sensitivity\nto the blocksize is typically low.\n\nThe *Nthreads* value for the *omp* keyword sets the number of OpenMP\nthreads allocated for each MPI task. This setting controls OpenMP\nparallelism only for routines run on the CPUs. For more details on\nsetting the number of OpenMP threads, see the discussion of the\n*Nthreads* setting on this page for the \"package omp\" command.\nThe meaning of *Nthreads* is exactly the same for the GPU, INTEL,\nand GPU packages.\n\nThe *platform* keyword is only used with OpenCL to specify the ID for\nan OpenCL platform. See the output from ocl_get_devices in the lib/gpu\ndirectory. In LAMMPS only one platform can be active at a time and by\ndefault (id=-1) the platform is auto-selected to find the GPU with the\nmost compute cores. When *Ngpu* or other keywords are specified, the\nauto-selection is appropriately restricted. For example, if *Ngpu* is\n3, only platforms with at least 3 accelerators are considered. Similar\nrestrictions can be enforced by the *gpuID* and *device_type* keywords.\n\nThe *device_type* keyword can be used for OpenCL to specify the type of\nGPU to use or specify a custom configuration for an accelerator. In most\ncases this selection will be automatic and there is no need to use the\nkeyword. The *applegpu* type is not specific to a particular GPU vendor,\nbut is separate due to the more restrictive Apple OpenCL implementation.\nFor expert users, to specify a custom configuration, the *custom* keyword\nfollowed by the next parameters can be specified:\n\nCONFIG_ID, SIMD_SIZE, MEM_THREADS, SHUFFLE_AVAIL, FAST_MATH,\nTHREADS_PER_ATOM, THREADS_PER_CHARGE, THREADS_PER_THREE, BLOCK_PAIR,\nBLOCK_BIO_PAIR, BLOCK_ELLIPSE, PPPM_BLOCK_1D, BLOCK_NBOR_BUILD,\nBLOCK_CELL_2D, BLOCK_CELL_ID, MAX_SHARED_TYPES, MAX_BIO_SHARED_TYPES,\nPPPM_MAX_SPLINE, NBOR_PREFETCH.\n\nCONFIG_ID can be 0. SHUFFLE_AVAIL in {0,1} indicates that inline-PTX\n(NVIDIA) or OpenCL extensions (Intel) should be used for horizontal\nvector operations. FAST_MATH in {0,1} indicates that OpenCL fast math\noptimizations are used during the build and hardware-accelerated\ntranscendental functions are used when available. THREADS_PER_* give the\ndefault *tpa* values for ellipsoidal models, styles using charge, and\nany other styles. The BLOCK_* parameters specify the block sizes for\nvarious kernel calls and the MAX_*SHARED*_ parameters are used to\ndetermine the amount of local shared memory to use for storing model\nparameters.\n\nFor OpenCL, the routines are compiled at runtime for the specified GPU\nor accelerator architecture. The *ocl_args* keyword can be used to\nspecify additional flags for the runtime build.\n\n----------\n\nThe *intel* style invokes settings associated with the use of the INTEL\npackage. The keywords *balance*, *ghost*, *tpc*, and *tptask* are\n**only** applicable if LAMMPS was built with Xeon Phi co-processor\nsupport and are otherwise ignored.\n\nThe *Nphi* argument sets the number of co-processors per node.\nThis can be set to any value, including 0, if LAMMPS was not\nbuilt with co-processor support.\n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *Nthreads* value for the *omp* keyword sets the number of OpenMP\nthreads allocated for each MPI task. This setting controls OpenMP\nparallelism only for routines run on the CPUs. For more details on\nsetting the number of OpenMP threads, see the discussion of the\n*Nthreads* setting on this page for the \"package omp\" command.\nThe meaning of *Nthreads* is exactly the same for the GPU, INTEL,\nand GPU packages.\n\nThe *mode* keyword determines the precision mode to use for\ncomputing pair style forces, either on the CPU or on the co-processor,\nwhen using a INTEL supported [pair style ](https://docs.lammps.org/pair_style.html). It\ncan take a value of *single*, *mixed* which is the default, or\n*double* . *Single* means single precision is used for the entire\nforce calculation. *Mixed* means forces between a pair of atoms are\ncomputed in single precision, but accumulated and stored in double\nprecision, including storage of forces, torques, energies, and virial\nquantities. *Double* means double precision is used for the entire\nforce calculation.\n\nThe *lrt* keyword can be used to enable \"Long Range Thread (LRT)\"\nmode. It can take a value of *yes* to enable and *no* to disable.\nLRT mode generates an extra thread (in addition to any OpenMP threads\nspecified with the OMP_NUM_THREADS environment variable or the *omp*\nkeyword). The extra thread is dedicated for performing part of the\n[PPPM solver ](https://docs.lammps.org/kspace_style.html) computations and communications. This\ncan improve parallel performance on processors supporting\nSimultaneous Multithreading (SMT) such as Hyper-Threading (HT) on Intel\nprocessors. In this mode, one additional thread is generated per MPI\nprocess. LAMMPS will generate a warning in the case that more threads\nare used than available in SMT hardware on a node. If the PPPM solver\nfrom the INTEL package is not used, then the LRT setting is\nignored and no extra threads are generated. Enabling LRT will replace\nthe [run_style ](https://docs.lammps.org/run_style.html) with the *verlet/lrt/intel* style that\nis identical to the default *verlet* style aside from supporting the\nLRT feature. This feature requires setting the pre-processor flag\n-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS.\n\nThe *balance* keyword sets the fraction of [pair style ](https://docs.lammps.org/pair_style.html) work\noffloaded to the co-processor for split values between 0.0 and 1.0 inclusive.\nWhile this fraction of work is running on the co-processor, other calculations\nwill run on the host, including neighbor and pair calculations that are not\noffloaded, as well as angle, bond, dihedral, kspace, and some MPI\ncommunications. If *split* is set to -1, the fraction of work is dynamically\nadjusted automatically throughout the run. This typically give performance\nwithin 5 to 10 percent of the optimal fixed fraction.\n\nThe *ghost* keyword determines whether or not ghost atoms, i.e. atoms\nat the boundaries of processor subdomains, are offloaded for neighbor\nand force calculations. When the value = \"no\", ghost atoms are not\noffloaded. This option can reduce the amount of data transfer with\nthe co-processor and can also overlap MPI communication of forces with\ncomputation on the co-processor when the [newton pair ](https://docs.lammps.org/newton.html)\nsetting is \"on\". When the value = \"yes\", ghost atoms are offloaded.\nIn some cases this can provide better performance, especially if the\n*balance* fraction is high.\n\nThe *tpc* keyword sets the max # of co-processor threads *Ntpc* that\nwill run on each core of the co-processor. The default value = 4,\nwhich is the number of hardware threads per core supported by the\ncurrent generation Xeon Phi chips.\n\nThe *tptask* keyword sets the max # of co-processor threads (Ntptask*\nassigned to each MPI task. The default value = 240, which is the\ntotal # of threads an entire current generation Xeon Phi chip can run\n(240 = 60 cores \\* 4 threads/core). This means each MPI task assigned\nto the Phi will enough threads for the chip to run the max allowed,\neven if only 1 MPI task is assigned. If 8 MPI tasks are assigned to\nthe Phi, each will run with 30 threads. If you wish to limit the\nnumber of threads per MPI task, set *tptask* to a smaller value.\nE.g. for *tptask* = 16, if 8 MPI tasks are assigned, each will run\nwith 16 threads, for a total of 128.\n\nNote that the default settings for *tpc* and *tptask* are fine for\nmost problems, regardless of how many MPI tasks you assign to a Phi.\n\nThe *pppm_table* keyword with the argument yes allows to use a\npre-computed table to efficiently spread the charge to the PPPM grid.\nThis feature is enabled by default but can be turned off using the\nkeyword with the argument *no*.\n\nThe *no_affinity* keyword will turn off automatic setting of core\naffinity for MPI tasks and OpenMP threads on the host when using\noffload to a co-processor. Affinity settings are used when possible\nto prevent MPI tasks and OpenMP threads from being on separate NUMA\ndomains and to prevent offload threads from interfering with other\nprocesses/threads used for LAMMPS.\n\n----------\n\nThe *kokkos* style invokes settings associated with the use of the\nKOKKOS package.\n\nAll of the settings are optional keyword/value pairs. Each has a default\nvalue as listed below.\n\nThe *neigh* keyword determines how neighbor lists are built. A value of\n*half* uses a thread-safe variant of half-neighbor lists, the same as\nused by most pair styles in LAMMPS, which is the default when running on\nCPUs (i.e. the Kokkos CUDA back end is not enabled).\n\nA value of *full* uses a full neighbor lists and is the default when\nrunning on GPUs. This performs twice as much computation as the *half*\noption, however that is often a win because it is thread-safe and\ndoes not require atomic operations in the calculation of pair forces. For\nthat reason, *full* is the default setting for GPUs. However, when\nrunning on CPUs, a *half* neighbor list is the default because it are\noften faster, just as it is for non-accelerated pair styles. Similarly,\nthe *neigh/qeq* keyword determines how neighbor lists are built for\n[fix qeq/reaxff/kk ](https://docs.lammps.org/fix_qeq_reaxff.html).\n\nIf the *neigh/thread* keyword is set to *off*, then the KOKKOS package\nthreads only over atoms. However, for small systems, this may not expose\nenough parallelism to keep a GPU busy. When this keyword is set to *on*,\nthe KOKKOS package threads over both atoms and neighbors of atoms. When\nusing *neigh/thread* *on*, the [newton pair ](https://docs.lammps.org/newton.html) setting must\nbe \"off\". Using *neigh/thread* *on* may be slower for large systems, so\nthis this option is turned on by default only when running on one or\nmore GPUs and there are 16k atoms or less owned by an MPI rank. Not all\nKOKKOS-enabled potentials support this keyword yet, and only thread over\natoms. Many simple pairwise potentials such as Lennard-Jones do support\nthreading over both atoms and neighbors.\n\nIf the *neigh/transpose* keyword is set to *off*, then the KOKKOS\npackage will use the same memory layout for building the neighbor list on\nGPUs as used for the pair style. When this keyword is set to *on* it\nwill use a different (transposed) memory layout to build the neighbor\nlist on GPUs. This can be faster in some cases (e.g. ReaxFF HNS\nbenchmark) but slower in others (e.g. Lennard Jones benchmark). The\ncopy between different memory layouts is done out of place and\ntherefore doubles the memory overhead of the neighbor list, which can\nbe significant.\n\nThe *newton* keyword sets the Newton flags for pairwise and bonded\ninteractions to *off* or *on*, the same as the [newton ](https://docs.lammps.org/newton.html)\ncommand allows. The default for GPUs is *off* because this will almost\nalways give better performance for the KOKKOS package. This means more\ncomputation is done, but less communication. However, when running on\nCPUs a value of *on* is the default since it can often be faster, just\nas it is for non-accelerated pair styles\n\nThe *binsize* keyword sets the size of bins used to bin atoms during\nneighbor list builds. The same value can be set by the\n[neigh_modify binsize ](https://docs.lammps.org/neigh_modify.html) command. Making it an option\nin the package kokkos command allows it to be set from the command line.\nThe default value for CPUs is 0.0, which means the LAMMPS default will be\nused, which is bins = 1/2 the size of the pairwise cutoff + neighbor skin\ndistance. This is fine when neighbor lists are built on the CPU. For GPU\nbuilds, a 2x larger binsize equal to the pairwise cutoff + neighbor skin\nis often faster, which is the default. Note that if you use a\nlonger-than-usual pairwise cutoff, e.g. to allow for a smaller fraction\nof KSpace work with a [long-range Coulombic solver ](https://docs.lammps.org/kspace_style.html)\nbecause the GPU is faster at performing pairwise interactions, then this\nrule of thumb may give too large a binsize and the default should be\noverridden with a smaller value.\n\nThe *comm* and *comm/exchange* and *comm/forward* and *comm/pair/forward*\nand *comm/fix/forward* and *comm/reverse* and *comm/pair/reverse*\nkeywords determine whether the host or device performs the packing and\nunpacking of data when communicating per-atom data between processors.\n\"Exchange\" communication happens only on timesteps that neighbor lists\nare rebuilt. The data is only for atoms that migrate to new processors.\n\"Forward\" communication happens every timestep. \"Reverse\" communication\nhappens every timestep if the *newton* option is on. The data is for\natom coordinates and any other atom properties that needs to be updated\nfor ghost atoms owned by each processor. \"Pair/comm\" controls additional\ncommunication in pair styles, such as pair_style EAM. \"Fix/comm\" controls\nadditional communication in fixes, such as fix SHAKE.\n\nThe *comm* keyword is simply a short-cut to set the same value for all\nthe comm keywords.\n\nThe value options for the keywords are *no* or *host* or *device* . A\nvalue of *no* means to use the standard non-KOKKOS method of\npacking/unpacking data for the communication. A value of *host* means to\nuse the host, typically a multicore CPU, and perform the\npacking/unpacking in parallel with threads. A value of *device* means to\nuse the device, typically a GPU, to perform the packing/unpacking\noperation.\n\nFor the *comm/pair/forward* or *comm/fix/forward* or *comm/pair/reverse*\nkeywords, if a value of *host* is used it will be automatically\nbe changed to *no* since these keywords don't support *host* mode. The\nvalue of *no* will also always be used when running on the CPU, i.e. setting\nthe value to *device* will have no effect if the pair/fix style is\nrunning on the CPU. For the *comm/fix/forward* or *comm/pair/reverse*\nkeywords, not all styles support *device* mode and in that case will run\nin *no* mode instead.\n\nThe optimal choice for these keywords depends on the input script and\nthe hardware used. The *no* value is useful for verifying that the\nKokkos-based *host* and *device* values are working correctly. It is the\ndefault when running on CPUs since it is usually the fastest.\n\nWhen running on CPUs or Xeon Phi, the *host* and *device* values work\nidentically. When using GPUs, the *device* value is the default since it\nwill typically be optimal if all of your styles used in your input\nscript are supported by the KOKKOS package. In this case data can stay\non the GPU for many timesteps without being moved between the host and\nGPU, if you use the *device* value. If your script uses styles (e.g.\nfixes) which are not yet supported by the KOKKOS package, then data has\nto be moved between the host and device anyway, so it is typically faster\nto let the host handle communication, by using the *host* value. Using\n*host* instead of *no* will enable use of multiple threads to\npack/unpack communicated data. When running small systems on a GPU,\nperforming the exchange pack/unpack on the host CPU can give speedup\nsince it reduces the number of CUDA kernel launches.\n\nThe *sort* keyword determines whether the host or device performs atom\nsorting, see the [atom_modify sort ](https://docs.lammps.org/atom_modify.html) command. The value\noptions for the *sort* keyword are *no* or *device* similar to the *comm*\nkeywords above. If a value of *host* is used it will be automatically be\nchanged to *no* since the *sort* keyword does not support *host* mode. Not\nall fix styles with extra atom data support *device* mode and in that case\na warning will be given and atom sorting will run in *no* mode instead.\n\nThe *atom/map* keyword determines whether the host or device builds the\natom_map, see the [atom_modify map ](https://docs.lammps.org/atom_modify.html) command. The\nvalue options for the *atom/map* keyword are identical to the *sort*\nkeyword above.\n\nThe *gpu/aware* keyword chooses whether GPU-aware MPI will be used. When\nthis keyword is set to *on*, buffers in GPU memory are passed directly\nthrough MPI send/receive calls. This reduces overhead of first copying\nthe data to the host CPU. However GPU-aware MPI is not supported on all\nsystems, which can lead to segmentation faults and would require using a\nvalue of *off* . If LAMMPS can safely detect that GPU-aware MPI is not\navailable (currently only possible with OpenMPI v2.0.0 or later), then\nthe *gpu/aware* keyword is automatically set to *off* by default. When\nthe *gpu/aware* keyword is set to *off* while any of the *comm*\nkeywords are set to *device*, the value for these *comm* keywords will\nbe automatically changed to *no* . This setting has no effect if not\nrunning on GPUs or if using only one MPI rank. GPU-aware MPI is available\nfor OpenMPI 1.8 (or later versions), Mvapich2 1.9 (or later) when the\n\"MV2_USE_CUDA\" environment variable is set to \"1\", CrayMPI, and IBM\nSpectrum MPI when the \"-gpu\" flag is used.\n\nThe *pair/only* keyword can change how the KOKKOS suffix \"kk\" is applied\nwhen using an accelerator device. By default device acceleration is always\nused for all available styles. With *pair/only* set to *on* the suffix\nsetting will choose device acceleration only for pair styles and run all\nother force computations on the host CPU. The *comm* flags, along with the\n*sort* and *atom/map* keywords will also automatically be changed to *no* .\nThis can result in better performance for certain configurations and\nsystem sizes.\n\n----------\n\nThe *omp* style invokes settings associated with the use of the\nOPENMP package.\n\nThe *Nthreads* argument sets the number of OpenMP threads allocated for\neach MPI task. For example, if your system has nodes with dual\nquad-core processors, it has a total of 8 cores per node. You could\nuse two MPI tasks per node (e.g. using the -ppn option of the mpirun\ncommand in MPICH or -npernode in OpenMPI), and set *Nthreads* = 4.\nThis would use all 8 cores on each node. Note that the product of MPI\ntasks \\* threads/task should not exceed the physical number of cores\n(on a node), otherwise performance will suffer.\n\nSetting *Nthreads* = 0 instructs LAMMPS to use whatever value is the\ndefault for the given OpenMP environment. This is usually determined\nvia the *OMP_NUM_THREADS* environment variable or the compiler\nruntime. Note that in most cases the default for OpenMP capable\ncompilers is to use one thread for each available CPU core when\n*OMP_NUM_THREADS* is not explicitly set, which can lead to poor\nperformance.\n\nHere are examples of how to set the environment variable when\nlaunching LAMMPS:\n\n```bash\nenv OMP_NUM_THREADS=4 lmp_machine -sf omp -in in.script\nenv OMP_NUM_THREADS=2 mpirun -np 2 lmp_machine -sf omp -in in.script\nmpirun -x OMP_NUM_THREADS=2 -np 2 lmp_machine -sf omp -in in.script\n```\nor you can set it permanently in your shell's start-up script.\nAll three of these examples use a total of 4 CPU cores.\n\nNote that different MPI implementations have different ways of passing\nthe OMP_NUM_THREADS environment variable to all MPI processes. The\nsecond example line above is for MPICH; the third example line with -x is\nfor OpenMPI. Check your MPI documentation for additional details.\n\nWhat combination of threads and MPI tasks gives the best performance\nis difficult to predict and can depend on many components of your\ninput. Not all features of LAMMPS support OpenMP threading via the\nOPENMP package and the parallel efficiency can be very different,\ntoo.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you build LAMMPS with the GPU, INTEL, and / or OPENMP\n > packages, be aware these packages all allow setting of the *Nthreads*\n > value via their package commands, but there is only a single global\n > *Nthreads* value used by OpenMP. Thus if multiple package commands are\n > invoked, you should ensure the values are consistent. If they are\n > not, the last one invoked will take precedence, for all packages.\n > Also note that if the [-sf hybrid intel omp command-line switch ](https://docs.lammps.org/Run_options.html) is used, it invokes a \"package intel\" command, followed by a\n > \"package omp\" command, both with a setting of *Nthreads* = 0. Likewise\n > for a hybrid suffix for gpu and omp. Note that KOKKOS also supports\n > setting the number of OpenMP threads from the command line using the\n > \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html). The default for\n > KOKKOS is 1 thread per MPI task, so any other number of threads should\n > be explicitly set using the \"-k on\" command-line switch (and this\n > setting should be consistent with settings from any other packages\n > used). \n > \n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *neigh* keyword specifies whether neighbor list building will be\nmulti-threaded in addition to force calculations. If *neigh* is set\nto *no* then neighbor list calculation is performed only by MPI tasks\nwith no OpenMP threading. If *mode* is *yes* (the default), a\nmulti-threaded neighbor list build is used. Using *neigh* = *yes* is\nalmost always faster and should produce identical neighbor lists at the\nexpense of using more memory. Specifically, neighbor list pages are\nallocated for all threads at the same time and each thread works\nwithin its own pages.\n\n----------\n", + "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n\nThe *gpu* style of this command can only be invoked if LAMMPS was built\nwith the GPU package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThe *intel* style of this command can only be invoked if LAMMPS was\nbuilt with the INTEL package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *kokkos* style of this command can only be invoked if LAMMPS was built\nwith the KOKKOS package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe *omp* style of this command can only be invoked if LAMMPS was built\nwith the OPENMP package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[suffix ](https://docs.lammps.org/suffix.html), [-pk command-line switch ](https://docs.lammps.org/Run_options.html)\n\n #### Defaults\n\nFor the GPU package, the default parameters and settings are:\n\n```\nNgpu = 0, neigh = yes, newton = off, binsize = 0.0, split = 1.0, gpuID = 0 to Ngpu-1, tpa = 1, omp = 0, platform=-1.\n```\nThese settings are made automatically if the \"-sf gpu\"\n[command-line switch ](https://docs.lammps.org/Run_options.html) is used. If it is not used,\nyou must invoke the package gpu command in your input script or via the\n\"-pk gpu\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the INTEL package, the default parameters and settings are:\n\n```\nNphi = 1, omp = 0, mode = mixed, lrt = no, balance = -1, tpc = 4, tptask = 240, pppm_table = yes\n```\nThe default ghost option is determined by the pair style being used.\nThis value is output to the screen in the offload report at the end of each\nrun. Note that all of these settings, except \"omp\" and \"mode\", are ignored if\nLAMMPS was not built with Xeon Phi co-processor support. These settings are\nmade automatically if the \"-sf intel\" [command-line switch ](https://docs.lammps.org/Run_options.html)\nis used. If it is not used, you must invoke the package intel command in your\ninput script or via the \"-pk intel\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the KOKKOS package when using GPUs, the option defaults are:\n\n```\nneigh = full, neigh/qeq = full, newton = off, binsize = 2x LAMMPS default value, comm = device, sort = device, atom/map = device, neigh/transpose = off, gpu/aware = on\n```\nFor GPUs, option neigh/thread = on when there are 16k atoms or less on\nan MPI rank, otherwise it is \"off\". When LAMMPS can safely detect that\nGPU-aware MPI is not available, the default value of gpu/aware becomes\n\"off\".\n\nFor the KOKKOS package when using CPUs or Xeon Phis, the option defaults are:\n\n```\nneigh = half, neigh/qeq = half, newton = on, binsize = 0.0, comm = no, sort = no, atom/map = no\n```\nThese settings are made automatically by\nthe required \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html). You can\nchange them by using the package kokkos command in your input script or\nvia the [-pk kokkos command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the OMP package, the defaults are\n\n```\nNthreads = 0, neigh = yes\n```\nThese settings are made automatically if the \"-sf omp\"\n[command-line switch ](https://docs.lammps.org/Run_options.html) is used. If it is not used,\nyou must invoke the package omp command in your input script or via the\n\"-pk omp\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n" }, { "command": [ - "compute gyration/chunk" + "min_style cg", + "min_style hftn", + "min_style sd", + "min_style quickmin", + "min_style fire" ], "syntax": [ - "compute ID group-ID gyration/chunk chunkID keyword value ..." + "min_style style" + ], + "args": [ + [ + { + "arg": "min_style", + "type": 1, + "choices": [] + }, + { + "arg": "spin/lbfgs", + "type": 3, + "choices": [ + "cg", + "hftn", + "sd", + "quickmin", + "fire", + "spin", + "spin/cg", + "spin/lbfgs" + ] + } + ] + ], + "parameters": "* style = cg or hftn or sd or quickmin or fire or spin or spin/cg or spin/lbfgs \n *        spin is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n *        spin/cg is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n *        spin/lbfgs is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n", + "examples": "\n```lmps\nmin_style cg\nmin_style fire\nmin_style spin\n```\n", + "html_filename": "min_style.html", + "short_description": "Choose a minimization algorithm to use when a [minimize](https://docs.lammps.org/minimize.html) command is performed", + "description": "Choose a minimization algorithm to use when a [minimize](https://docs.lammps.org/minimize.html) command is performed.\n\nStyle *cg* is the Polak-Ribiere version of the conjugate gradient (CG)\nalgorithm. At each iteration the force gradient is combined with the\nprevious iteration information to compute a new search direction\nperpendicular (conjugate) to the previous search direction. The PR\nvariant affects how the direction is chosen and how the CG method is\nrestarted when it ceases to make progress. The PR variant is thought\nto be the most effective CG choice for most problems.\n\nStyle *hftn* is a Hessian-free truncated Newton algorithm. At each\niteration a quadratic model of the energy potential is solved by a\nconjugate gradient inner iteration. The Hessian (second derivatives)\nof the energy is not formed directly, but approximated in each\nconjugate search direction by a finite difference directional\nderivative. When close to an energy minimum, the algorithm behaves\nlike a Newton method and exhibits a quadratic convergence rate to high\naccuracy. In most cases the behavior of *hftn* is similar to *cg*,\nbut it offers an alternative if *cg* seems to perform poorly. This\nstyle is not affected by the [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nStyle *sd* is a steepest descent algorithm. At each iteration, the\nsearch direction is set to the downhill direction corresponding to the\nforce vector (negative gradient of energy). Typically, steepest\ndescent will not converge as quickly as CG, but may be more robust in\nsome situations.\n\nStyle *quickmin* is a damped dynamics method described in\n**Sheppard**, where the damping parameter is related\nto the projection of the velocity vector along the current force\nvector for each atom. The velocity of each atom is initialized to 0.0\nby this style, at the beginning of a minimization.\n\nStyle *fire* is a damped dynamics method described in **Bitzek**, which is similar to *quickmin* but adds a variable timestep\nand alters the projection operation to maintain components of the\nvelocity non-parallel to the current force vector. The velocity of each\natom is initialized to 0.0 by this style, at the beginning of a\nminimization. This style correspond to an optimized version described\nin **Guenole** that include different time integration\nschemes and default parameters. The default parameters can be modified\nwith the command [min_modify ](https://docs.lammps.org/min_modify.html).\n\nStyle *spin* is a damped spin dynamics with an adaptive timestep.\n\nStyle *spin/cg* uses an orthogonal spin optimization (OSO) combined to\na conjugate gradient (CG) approach to minimize spin configurations.\n\nStyle *spin/lbfgs* uses an orthogonal spin optimization (OSO) combined\nto a limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) approach\nto minimize spin configurations.\n\nSee the [min/spin ](https://docs.lammps.org/min_spin.html) page for more information about\nthe *spin*, *spin/cg* and *spin/lbfgs* styles.\n\nEither the *quickmin* or the *fire* styles are useful in the context of\nnudged elastic band (NEB) calculations via the [neb ](https://docs.lammps.org/neb.html) command.\n\nEither the *spin*, *spin/cg*, or *spin/lbfgs* styles are useful in the\ncontext of magnetic geodesic nudged elastic band (GNEB) calculations via\nthe [neb/spin ](https://docs.lammps.org/neb_spin.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damped dynamic minimizers use whatever timestep you have\n > defined via the [timestep ](https://docs.lammps.org/timestep.html) command. Often they\n > will converge more quickly if you use a timestep about 10x larger\n > than you would normally use for dynamics simulations.\n > For *fire*, the default timestep is recommended to be equal to\n > the one you would normally use for dynamics simulations. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *quickmin*, *fire*, *hftn*, and *cg/kk* styles do not yet\n > support the use of the [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command\n > or minimizations involving the electron radius in [eFF > ](https://docs.lammps.org/pair_eff.html) models. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Sheppard)** Sheppard, Terrell, Henkelman, J Chem Phys, 128, 134106\n(2008). See ref 1 in this paper for original reference to Qmin in\nJonsson, Mills, Jacobsen. \n \n**(Bitzek)** Bitzek, Koskinen, Gahler, Moseler, Gumbsch, Phys Rev Lett,\n97, 170201 (2006). \n \n**(Guenole)** Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek,\nComput Mater Sci, 175, 109584 (2020). \n ", + "restrictions": "The *spin*, *spin/cg*, and *spin/lbfgps* styles are part of the SPIN\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[min_modify ](https://docs.lammps.org/min_modify.html), [minimize ](https://docs.lammps.org/minimize.html), [neb ](https://docs.lammps.org/neb.html)\n" +}, +{ + "command": [ + "compute dipole/chunk" + ], + "syntax": [ + "compute ID group-ID style chunkID arg" ], "args": [ [ @@ -8753,9 +8322,12 @@ export const command_docs = [ "choices": [] }, { - "arg": "gyration/chunk", - "type": 1, - "choices": [] + "arg": "dipole/tip4p/chunk", + "type": 3, + "choices": [ + "dipole/chunk", + "dipole/tip4p/chunk" + ] }, { "arg": "chunkID", @@ -8763,36 +8335,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "keyword", + "arg": "arg", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = dipole/chunk or dipole/tip4p/chunk\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* arg = mass or geometry = use COM or geometric center for charged chunk correction (optional) \n", + "examples": "\n```lmps\ncompute 1 fluid dipole/chunk molchunk\ncompute dw water dipole/chunk 1 geometry\n```\n", + "html_filename": "compute_dipole_chunk.html", + "short_description": "Define a computation that calculates the dipole vector and total dipole\nfor multiple chunks of atoms", + "description": "Define a computation that calculates the dipole vector and total dipole\nfor multiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages for\ndetails of how chunks can be defined and examples of how they can be\nused to measure properties of a system.\n\nThese computes calculate the \\((x,y,z)\\) coordinates of the dipole\nvector and the total dipole moment for each chunk, which includes all\neffects due to atoms passing through periodic boundaries. For chunks\nwith a net charge the resulting dipole is made position independent by\nsubtracting the position vector of the center of mass or geometric\ncenter times the net charge from the computed dipole vector. Both\nper-atom charges and per-atom dipole moments, if present, contribute to\nthe computed dipole.\n\nCompute *dipole/tip4p/chunk* includes adjustments for the charge\ncarrying point M in molecules with TIP4P water geometry. The\ncorresponding parameters are extracted from the pair style.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not in\nthat group, signifying they are not assigned to a chunk, and will thus\nalso not contribute to this calculation. You can specify the \"all\"\ngroup for this command if you simply want to include atoms with non-zero\nchunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's dipole in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the [set image > ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute com/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all dipole/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThese computes calculate a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is 4\nfor the \\((x,y,z)\\) dipole vector components and the total dipole of\neach chunk. These values can be accessed by any command that uses\nglobal array values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndipole units (i.e., charge [units ](https://docs.lammps.org/units.html) times distance\n[units ](https://docs.lammps.org/units.html)).\n", + "restrictions": "Compute style *dipole/tip4p/chunk* is part of the EXTRA-COMPUTE\npackage. It is only enabled if LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCompute style *dipole/tip4p/chunk* can only be used with tip4p pair\nstyles.\n", + "related": "[compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html),\n[compute dipole ](https://docs.lammps.org/compute_dipole.html)\n" +}, +{ + "command": [ + "pair_style sph/idealgas" + ], + "syntax": [ + "pair_style sph/idealgas" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "sph/idealgas", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* zero or more keyword/value pairs may be appended\n* keyword = tensor \n *        tensor value = none \n", - "examples": "\n```lmps\ncompute 1 molecule gyration/chunk molchunk\ncompute 2 molecule gyration/chunk molchunk tensor\n```\n", - "html_filename": "compute_gyration_chunk.html", - "short_description": "Define a computation that calculates the radius of gyration \\(R_g\\) for\nmultiple chunks of atoms", - "description": "Define a computation that calculates the radius of gyration \\(R_g\\) for\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin.\nSee the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the radius of gyration \\(R_g\\) for each chunk,\nwhich includes all effects due to atoms passing through periodic\nboundaries.\n\n\\(R_g\\) is a measure of the size of a chunk, and is computed by the\nformula\n\\[\n R_g^2 = \\frac{1}{M} \\sum_i m_i (r_i - r_{\\text{cm}})^2\\]\nwhere \\(M\\) is the total mass of the chunk, \\(r_{\\text{cm}}\\) is\nthe center-of-mass position of the chunk, and the sum is over all atoms in the\nchunk.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nIf the *tensor* keyword is specified, then the scalar \\(R_g\\) value is not\ncalculated, but an \\(R_g\\) tensor is instead calculated for each chunk.\nThe formula for the components of the tensor is the same as the above\nformula, except that \\((r_i - r_{\\text{cm}})^2\\) is replaced by\n\\((r_{i,x} - r_{\\text{cm},x}) \\cdot (r_{i,y} - r_{\\text{cm},y})\\) for the\n\\(xy\\) component, and so on. The six components of the tensor are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to \\(R_g\\) in \"unwrapped\" form,\n > by using the image flags associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html)\n > command for a discussion of \"unwrapped\" coordinates.\n > See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You can\n > reset the image flags (e.g., to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute gyration/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all gyration/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global vector if the *tensor* keyword is not\nspecified and a global array if it is. The length of the vector or\nnumber of rows in the array = the number of chunks *Nchunk* as\ncalculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\ncommand. If the *tensor* keyword is specified, the global array has six\ncolumns. The vector or array can\nbe accessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nAll the vector or array values calculated by this compute are\n\"intensive\". The vector or array values will be in distance\n[units ](https://docs.lammps.org/units.html), since they are the square root of values\nrepresented by the formula above.\n", - "restrictions": " none\n", - "related": "none\n\n\n[compute gyration ](https://docs.lammps.org/compute_gyration.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style sph/idealgas\npair_coeff * * 1.0 2.4\n```\n", + "html_filename": "pair_sph_idealgas.html", + "short_description": "The sph/idealgas style computes pressure forces between particles\naccording to the ideal gas equation of state:\n\\[\n p = (\\gamma - 1) \\rho e\\]\nwhere \\(\\gamma = 1.4\\) is the heat capacity ratio, \\(\\rho\\) is\nthe local density, and e is the internal energy per unit mass", + "description": "The sph/idealgas style computes pressure forces between particles\naccording to the ideal gas equation of state:\n\\[\n p = (\\gamma - 1) \\rho e\\]\nwhere \\(\\gamma = 1.4\\) is the heat capacity ratio, \\(\\rho\\) is\nthe local density, and e is the internal energy per unit mass. This\npair style also computes Monaghan's artificial viscosity to prevent\nparticles from interpenetrating :ref:[(Monaghan) ](https://docs.lammps.org/ideal-Monoghan>`.See `this PDF guide ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix performs its operations at the same point in the\n > timestep as other time integration fixes, such as [fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), or [fix npt ](https://docs.lammps.org/fix_nh.html).\n > Thus fix recenter should normally be the last such fix specified in\n > the input script, since the adjustments it makes to atom coordinates\n > should come after the changes made by time integration. LAMMPS will\n > warn you if your fixes are not ordered this way. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use this fix on a small group of atoms (e.g. a molecule\n > in solvent) without using the *shift* keyword to adjust the positions\n > of all atoms in the system, then the results can be unpredictable.\n > For example, if the molecule is pushed consistently in one direction\n > by a flowing solvent, its velocity will increase. But its coordinates\n > will be re-centered, meaning it is moved back towards the force. Thus\n > over time, the velocity and effective temperature of the molecule\n > could become very large, though it won't actually be moving due to the\n > re-centering. If you are thermostatting the entire system, then the\n > solvent would be cooled to compensate. A better solution for this\n > simulation scenario is to use the [fix spring ](https://docs.lammps.org/fix_spring.html) command\n > to tether the molecule in place. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the distance the\ngroup is moved by fix recenter.\n\nThis fix also computes global 3-vector which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The 3 quantities in the\nvector are xyz components of displacement applied to the group of\natoms by the fix.\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix should not be used with an x,y,z setting that causes a large\nshift in the system on the first timestep, due to the requested COM\nbeing very different from the initial COM. This could cause atoms to\nbe lost, especially in parallel. Instead, use the\n[displace_atoms ](https://docs.lammps.org/displace_atoms.html) command, which can be used to\nmove atoms a large distance.\n", - "related": "[fix momentum ](https://docs.lammps.org/fix_momentum.html), [velocity ](https://docs.lammps.org/velocity.html)\n" -}, -{ - "command": [ - "improper_style hybrid", - "improper_style hybrid/kk" - ], - "syntax": [ - "improper_style hybrid style1 style2 ..." - ], - "args": [ + ], [ { - "arg": "improper_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "hybrid", - "hybrid/kk" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "style1", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "snad/atom", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style1,style2 = list of one or more improper styles \n", - "examples": "\n```lmps\nimproper_style hybrid harmonic cvff\nimproper_coeff 1 harmonic 120.0 30\nimproper_coeff 2 cvff 20.0 -1 2\n```\n", - "html_filename": "improper_hybrid.html", - "short_description": "The *hybrid* style enables the use of multiple improper styles in one\nsimulation", - "description": "The *hybrid* style enables the use of multiple improper styles in one\nsimulation. An improper style is assigned to each improper type. For\nexample, impropers in a polymer flow (of improper type 1) could be\ncomputed with a *harmonic* potential and impropers in the wall\nboundary (of improper type 2) could be computed with a *cvff*\npotential. The assignment of improper type to style is made via the\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) command or in the data file.\n\nIn the improper_coeff command, the first coefficient sets the improper\nstyle and the remaining coefficients are those appropriate to that\nstyle. In the example above, the 2 improper_coeff commands would set\nimpropers of improper type 1 to be computed with a *harmonic*\npotential with coefficients 120.0, 30 for \\(K\\), \\(\\chi_0\\).\nImproper type 2 would be computed with a *cvff* potential with coefficients\n20.0, -1, 2 for K, d, and n, respectively.\n\nIf improper coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"cvff\", must be added after the improper type, for\neach line in the \"Improper Coeffs\" section, e.g.\n\n```\nImproper Coeffs\n\n1 harmonic 120.0 30\n2 cvff 20.0 -1 2\n...\n```\nIf *class2* is one of the improper hybrid styles, the same rule holds\nfor specifying additional AngleAngle coefficients either via the input\nscript or in the data file. I.e. *class2* must be added to each line\nafter the improper type. For\nlines in the AngleAngle Coeffs section of the data\nfile for dihedral types that are not *class2*, you must use an\nimproper style of *skip* as a placeholder, e.g.\n\n```\nAngleAngle Coeffs\n\n1 skip\n2 class2 0.0 0.0 0.0 115.06 130.01 115.06\n...\n```\nNote that it is not necessary to use the improper style *skip* in the\ninput script, since AngleAngle coefficients\nneed not be specified at all for improper types that are not *class2*.\n\nAn improper style of *none* can be specified as the second argument to\nthe improper_coeff command, if you desire to turn off certain improper\ntypes.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other improper styles, the hybrid improper style does not store\nimproper coefficient info for individual sub-styles in [binaryrestart files ](https://docs.lammps.org/restart.html) or [data files ](https://docs.lammps.org/write_data.html). Thus when\nrestarting a simulation, you need to re-specify the improper_coeff\ncommands.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" -}, -{ - "command": [ - "fix_modify AtC equilibrium_start" - ], - "syntax": [ - "fix_modify equilibrium_start " - ], - "args": [ - [ + }, { - "arg": "fix_modify", - "type": 1, + "arg": "rcutfac", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "rfac0", "type": 2, "choices": [] }, { - "arg": "equilibrium_start", - "type": 1, + "arg": "twojmax", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* equilibrium_start = name of the AtC sub-command\n* exponential or step or no_filter = select type of filter \n", - "examples": "\n```lmps\nfix_modify AtC equilibrium_start on\n```\n", - "html_filename": "atc_equilibrium_start.html", - "short_description": "Starts filtered calculations assuming they start in equilibrium,\ni.e", - "description": "Starts filtered calculations assuming they start in equilibrium,\ni.e. perfect finite element force balance.\n", - "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n" -}, -{ - "command": [ - "write_data" - ], - "syntax": [ - "write_data file keyword value ..." - ], - "args": [ - [ + "arg": "R_1", + "type": 2, + "choices": [] + }, { - "arg": "write_data", - "type": 1, + "arg": "R_2", + "type": 2, "choices": [] }, { - "arg": "file", + "arg": "w_1", "type": 2, "choices": [] }, { - "arg": "pair", + "arg": "w_2", + "type": 2, + "choices": [] + }, + { + "arg": "delta", "type": 3, "choices": [ - "nocoeff", - "nofix", - "nolabelmap", - "triclinic/general", - "types", - "pair" + "rmin0", + "switchflag", + "bzeroflag", + "quadraticflag", + "chem", + "bnormflag", + "wselfallflag", + "bikflag", + "switchinnerflag", + "sinner", + "dinner", + "dgradflag", + "nnn", + "wmode", + "delta" ] }, { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } - ] - ], - "parameters": "* file = name of data file to write out\n* zero or more keyword/value pairs may be appended\n* keyword = nocoeff or nofix or nolabelmap or triclinic/general or types or pair \n *        nocoeff = do not write out force field info \n *        nofix = do not write out extra sections read by fixes \n *        nolabelmap = do not write out type labels \n *        triclinic/general = write data file in general triclinic format \n *        types value = numeric or labels \n *        pair value = ii or ij \n         ii = write one line of pair coefficient info per atom type \n         ij = write one line of pair coefficient info per IJ atom type pair \n", - "examples": "\n```lmps\nwrite_data data.polymer\nwrite_data data.*\nwrite_data data.solid triclinic/general\n```\n", - "html_filename": "write_data.html", - "short_description": "Write a data file in text format of the current state of the\nsimulation", - "description": "Write a data file in text format of the current state of the\nsimulation. Data files can be read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand to begin a simulation. The [read_data ](https://docs.lammps.org/read_data.html) command\nalso describes their format.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the data filename can contain a \"\\*\"\nwild-card character. The \"\\*\" is replaced with the current timestep\nvalue.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Data in Coeff sections \n >The write_data command may not always write all coefficient settings\n > to the corresponding Coeff sections of the data file. This can have\n > one of multiple reasons. 1) The style may be a hybrid style. In that\n > case *no* coeff information is written. 2) A few styles may be\n > missing the code that would write those sections (This is rare these\n > days, but if you come across one, please notify the LAMMPS\n > developers). 3) Some pair styles require a single pair_coeff\n > statement and those are not compatible with data files. 4) The\n > default for write_data is to write a PairCoeff section, which has\n > only entries for atom types i == j. The remaining coefficients would\n > be inferred through the currently selected mixing rule. If there has\n > been a pair_coeff command with i != j, this setting would be lost.\n > LAMMPS will detect this and print a warning message unless *pair ij*\n > is appended to the write_data command. This will request writing a\n > PairIJCoeff section which has information for all pairs of atom types.\n > In cases where the coefficient data in the data file is incomplete,\n > you will need to re-specify that information in your input script\n > that reads the data file. \n > \n\nBecause a data file is in text format, if you use a data file written\nout by this command to restart a simulation, the initial state of the\nnew run will be slightly different than the final state of the old run\n(when the file was written) which was represented internally by LAMMPS\nin binary format. A new simulation which reads the data file will\nthus typically diverge from a simulation that continued in the\noriginal input script.\n\nIf you want to do more exact restarts, using binary files, see the\n[restart ](https://docs.lammps.org/restart.html), [write_restart ](https://docs.lammps.org/write_restart.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. You can also convert\nbinary restart files to text data files, after a simulation has run,\nusing the [-r command-line switch ](https://docs.lammps.org/Run_options.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only limited information about a simulation is stored in a data\n > file. For example, no information about atom [groups ](https://docs.lammps.org/group.html) and\n > [fixes ](https://docs.lammps.org/fix.html) are stored. [Binary restart files ](https://docs.lammps.org/read_restart.html)\n > store more information. \n > \n\nBond interactions (angle, etc) that have been turned off by the\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\ncommand will be written to a data file as if they are turned on. This\nmeans they will need to be turned off again in a new run after the\ndata file is read.\n\nBonds that are broken (e.g. by a bond-breaking potential) are not\nwritten to the data file. Thus these bonds will not exist when the\ndata file is read.\n\n----------\n\nUse of the *nocoeff* keyword means no force field parameters are\nwritten to the data file. This can be helpful, for example, if you\nwant to make significant changes to the force field or if the force\nfield parameters are read in separately, e.g. from an include file.\n\nUse of the *nofix* keyword means no extra sections read by fixes are\nwritten to the data file (see the *fix* option of the [read_data](https://docs.lammps.org/read_data.html) command for details). For example, this option excludes\nsections for user-created per-atom properties from [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html).\n\nThe *nolabelmap* and *types* keywords refer to type labels that may be\ndefined for numeric atom types, bond types, angle types, etc. The\nlabel map can be defined in two ways, either by the [labelmap](https://docs.lammps.org/labelmap.html) command or in data files read by the [read_data](https://docs.lammps.org/read_data.html) command which have sections for Atom Type Labels, Bond\nType Labels, Angle Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nUse of the *nolabelmap* keyword means that even if type labels exist\nfor a given type-kind (Atoms, Bonds, Angles, etc.), type labels are\nnot written to the data file. By default, they are written if they\nexist. A type label must be defined for every numeric type (within a\ngiven type-kind) to be written to the data file.\n\nUse of the *triclinic/general* keyword will output a data file which\nspecifies a general triclinic simulation box as well as per-atom\nquantities consistent with the general triclinic box. The latter means\nthat per-atom vectors, such as velocities and dipole moments will be\noriented consistent with the 3d rotation implied by the general\ntriclinic box (relative to the associated restricted triclinic box).\n\nThis option can only be requested if the simulation box was initially\ndefined to be general triclinic. If if was and the\n*triclinic/general* keyword is not used, then the data file will\nspecify a restricted triclinic box, since that is the internal format\nLAMMPS uses for both general and restricted triclinic simulations.\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more\nexplanation of how general triclinic simulation boxes are supported by\nLAMMPS. And see the [read_data ](https://docs.lammps.org/read_data.html) doc page for details\nof how the format is altered for general triclinic data files.\n\nThe *types* keyword determines how atom types, bond types, angle\ntypes, etc are written into these data file sections: Atoms, Bonds,\nAngles, etc. The default is the *numeric* setting, even if type label\nmaps exist. If the *labels* setting is used, type labels will be\nwritten to the data file, if the corresponding label map exists. Note\nthat when using *types labels*, the *nolabelmap* keyword cannot be\nused.\n\nThe *pair* keyword lets you specify in what format the pair\ncoefficient information is written into the data file. If the value\nis specified as *ii*, then one line per atom type is written, to\nspecify the coefficients for each of the I=J interactions. This means\nthat no cross-interactions for I != J will be specified in the data\nfile and the pair style will apply its mixing rule, as documented on\nindividual [pair_style ](https://docs.lammps.org/pair_style.html) doc pages. Of course this\nbehavior can be overridden in the input script after reading the data\nfile, by specifying additional [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands\nfor any desired I,J pairs.\n\nIf the value is specified as *ij*, then one line of coefficients is\nwritten for all I,J pairs where I <= J. These coefficients will\ninclude any specific settings made in the input script up to that\npoint. The presence of these I != J coefficients in the data file\nwill effectively turn off the default mixing rule for the pair style.\nAgain, the coefficient values in the data file can be overridden\nin the input script after reading the data file, by specifying\nadditional [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for any desired I,J\npairs.\n\n----------\n", - "restrictions": "This command requires inter-processor communication to migrate atoms\nbefore the data file is written. This means that your system must be\nready to perform a simulation before using this command (force fields\nsetup, atom masses initialized, etc).\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_restart ](https://docs.lammps.org/write_restart.html)\n" -}, -{ - "command": [ - "create_bonds" - ], - "syntax": [ - "create_bonds style args ... keyword value ..." - ], - "args": [ + ], [ { - "arg": "create_bonds", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "single/improper", - "type": 3, - "choices": [ - "many", - "single/bond", - "single/angle", - "single/dihedral", - "single/improper" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "snav/atom", "type": 2, "choices": [] }, - { - "arg": "value", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* style = many or single/bond or single/angle or single/dihedral or single/improper \n *      many args = group-ID group2-ID btype rmin rmax \n       group-ID = ID of first group \n       group2-ID = ID of second group, bonds will be between atoms in the 2 groups \n       btype = bond type of created bonds \n       rmin = minimum distance between pair of atoms to bond together \n       rmax = maximum distance between pair of atoms to bond together \n *      single/bond args = btype batom1 batom2 \n       btype = bond type of new bond \n       batom1,batom2 = atom IDs for two atoms in bond \n *      single/angle args = atype aatom1 aatom2 aatom3 \n       atype = angle type of new angle \n       aatom1,aatom2,aatom3 = atom IDs for three atoms in angle \n *      single/dihedral args = dtype datom1 datom2 datom3 datom4 \n       dtype = dihedral type of new dihedral \n       datom1,datom2,datom3,datom4 = atom IDs for four atoms in dihedral \n *      single/improper args = itype iatom1 iatom2 iatom3 iatom4 \n       itype = improper type of new improper \n       iatom1,iatom2,iatom3,iatom4 = atom IDs for four atoms in improper \n* zero or more keyword/value pairs may be appended\n* keyword = special \n *      special value = yes or no \n", - "examples": "\n```lmps\ncreate_bonds many all all 1 1.0 1.2\ncreate_bonds many surf solvent 3 2.0 2.4\ncreate_bonds single/bond 1 1 2\ncreate_bonds single/angle 5 52 98 107 special no\ncreate_bonds single/dihedral 2 4 19 27 101\ncreate_bonds single/improper 3 23 26 31 57\n```\n", - "html_filename": "create_bonds.html", - "short_description": "Create bonds between pairs of atoms that meet a specified distance\ncriteria", - "description": "Create bonds between pairs of atoms that meet a specified distance\ncriteria. Or create a single bond, angle, dihedral or improper between 2, 3,\nor 4 specified atoms.\n\nThe new bond (angle, dihedral, improper) interactions will then be computed\nduring a simulation by the bond (angle, dihedral, improper) potential defined by\nthe [bond_style ](https://docs.lammps.org/bond_style.html), [bond_coeff ](https://docs.lammps.org/bond_coeff.html),\n[angle_style ](https://docs.lammps.org/angle_style.html), [angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[dihedral_style ](https://docs.lammps.org/dihedral_style.html),\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html), [improper_style ](https://docs.lammps.org/improper_style.html),\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands.\n\nThe *many* style is useful for adding bonds to a system (e.g., between\nnearest neighbors in a lattice of atoms) without having to enumerate\nall the bonds in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nThe *single* styles are useful for adding bonds, angles, dihedrals, and\nimpropers to a system incrementally, then continuing a simulation.\n\nNote that this command does not auto-create any angle, dihedral, or improper\ninteractions when a bond is added, nor does it auto-create any bonds\nwhen an angle, dihedral, or improper is added. It also will not auto-create\nany angles when a dihedral or improper is added. Thus, the flexibility of this\ncommand is limited. It can be used several times to create different types of\nbond at different distances, but it cannot typically auto-create all the\nbonds or angles or dihedrals or impropers that would normally be defined in a\ndata file for a complex system of molecules.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system has no bonds (angles, dihedrals, impropers) to begin\n > with, or if more bonds per atom are being added than currently exist,\n > then you must ensure that the number of bond types and the maximum\n > number of bonds per atom are set to large enough values, and\n > similarly for angles, dihedrals, impropers, and special neighbors,\n > otherwise an error may occur when too many bonds (angles, dihedrals,\n > impropers) are added to an atom. If the [read_data ](https://docs.lammps.org/read_data.html)\n > command is used to define the system, these parameters can be set via\n > its optional *extra/bond/types*, *extra/bond/per/atom*, and similar\n > keywords to the command. If the [create_box ](https://docs.lammps.org/create_box.html)\n > command is used to define the system, these two parameters can be set\n > via its optional *bond/types* and *extra/bond/per/atom* arguments,\n > and similarly for angles, dihedrals, and impropers. See the\n > corresponding documentation pages for these two commands for details. \n > \n\n----------\n\nThe *many* style will create bonds between pairs of atoms \\(I,J\\),\nwhere \\(I\\) is in one of the two specified groups and \\(J\\) is in the\nother. The two groups can be the same (e.g., group \"all\"). The created bonds\nwill be of bond type *btype*, where *btype* must be a value between 1 and the\nnumber of bond types defined.\n\nFor a bond to be created, an \\(I,J\\) pair of atoms must be a distance\n\\(D\\) apart such that \\(r_\\text{min} \\le D \\le r_\\text{max}\\).\n\nThe following settings must have been made in an input script before\nthe *many* style is used:\n\n* special_bonds weight for 1--2 interactions must be 0.0\n* a [pair_style ](https://docs.lammps.org/pair_style.html) must be defined\n* no [kspace_style ](https://docs.lammps.org/kspace_style.html) defined\n* minimum [pair_style ](https://docs.lammps.org/pair_style.html) cutoff + [neighbor ](https://docs.lammps.org/neighbor.html)\n skin \\(\\ge r_\\text{max}\\)\n\nThese settings are required so that a neighbor list can be created to\nsearch for nearby atoms. Pairs of atoms that are already bonded cannot\nappear in the neighbor list, to avoid creation of duplicate bonds. The\nneighbor list for all atom type pairs must also extend to a distance\nthat encompasses the *rmax* for new bonds to create. When using\nperiodic boundary conditions, the box length in each periodic dimension\nmust be larger than *rmax*, so that no bonds are created between the\nsystem and its own periodic image.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want to create bonds between pairs of 1--3 or 1--4 atoms in\n > the current bond topology, then you need to use [special_bonds > lj 0 1 1 ](https://docs.lammps.org/special_bonds.html) to ensure those pairs appear in the\n > neighbor list. They will not appear with the default special_bonds\n > settings, which are zero for 1--2, 1--3, and 1--4 atoms. 1--3 or 1--4\n > atoms are those which are two hops or three hops apart in the bond\n > topology. \n > \n\nAn additional requirement for this style is that your system must be\nready to perform a simulation. This means, for example, that all\n[pair_style ](https://docs.lammps.org/pair_style.html) coefficients be set via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. A [bond_style ](https://docs.lammps.org/bond_style.html)\ncommand and all bond coefficients must also be set, even if no bonds\nexist before this command is invoked. This is because the building of\nneighbor list requires initialization and setup of a simulation,\nsimilar to what a [run ](https://docs.lammps.org/run.html) command would require.\n\nNote that you can change any of these settings after this command\nexecutes (e.g., if you wish to use long-range Coulombic interactions)\nvia the [kspace_style ](https://docs.lammps.org/kspace_style.html) command for your subsequent\nsimulation.\n\n----------\n\nThe *single/bond* style creates a single bond of type *btype* between\ntwo atoms with IDs *batom1* and *batom2* . *Btype* must be a value\nbetween 1 and the number of bond types defined.\n\nThe *single/angle* style creates a single angle of type *atype*\nbetween three atoms with IDs *aatom1*, *aatom2*, and *aatom3* . The\nordering of the atoms is the same as in the *Angles* section of a data\nfile read by the [read_data ](https://docs.lammps.org/read_data.html) command (i.e., the three atoms\nare ordered linearly within the angle; the central atom is *aatom2*).\n*Atype* must be a value between 1 and the number of angle types\ndefined.\n\nThe *single/dihedral* style creates a single dihedral of type *dtype*\nbetween four atoms with IDs *datom1*, *datom2*, *datom3*, and *datom4* . The\nordering of the atoms is the same as in the *Dihedrals* section of a data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command. I.e. the 4 atoms are ordered\nlinearly within the dihedral. *dtype* must be a value between 1 and\nthe number of dihedral types defined.\n\nThe *single/improper* style creates a single improper of type *itype*\nbetween four atoms with IDs *iatom1*, *iatom2*, *iatom3*, and *iatom4* . The\nordering of the atoms is the same as in the *Impropers* section of a data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command. I.e. the 4 atoms are ordered\nlinearly within the improper. *itype* must be a value between 1 and\nthe number of improper types defined.\n\n----------\n\nThe keyword *special* controls whether an internal list of special\nbonds is created after one or more bonds, or a single angle, dihedral, or\nimproper is added to the system.\n\nThe default value is *yes* . A value of *no* cannot be used\nwith the *many* style.\n\nThis is an expensive operation since the bond topology for the system\nmust be walked to find all 1--2, 1--3, and 1--4 interactions to store in an\ninternal list, which is used when pairwise interactions are weighted;\nsee the [special_bonds ](https://docs.lammps.org/special_bonds.html) command for details.\n\nThus if you are adding a few bonds or a large list of angles all at\nthe same time, by using this command repeatedly, it is more efficient\nto only trigger the internal list to be created once, after the last\nbond (or angle, or dihedral, or improper) is added:\n\n```lmps\ncreate_bonds single/bond 5 52 98 special no\ncreate_bonds single/bond 5 73 74 special no\n...\ncreate_bonds single/bond 5 17 386 special no\ncreate_bonds single/bond 4 112 183 special yes\n```\nNote that you **must** ensure the internal list is rebuilt after the last\nbond (angle, dihedral, improper) is added, *before* performing a simulation.\nOtherwise, pairwise interactions will not be properly excluded or\nweighted. LAMMPS does **not** check that you have done this correctly.\n\n----------\n", - "restrictions": "This command cannot be used with molecular systems defined using\nmolecule template files via the [molecule ](https://docs.lammps.org/molecule.html) and\n[atom_style template ](https://docs.lammps.org/atom_style.html) commands.\n\nFor style *many*, no [kspace style ](https://docs.lammps.org/kspace_style.html) must be\ndefined. Also, the *rmax* value must be smaller than any periodic box\nlength and the neighbor list cutoff (largest pair cutoff plus neighbor\nskin).\n", - "related": "[create_atoms ](https://docs.lammps.org/create_atoms.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" -}, -{ - "command": [ - "fix nve/bpm/sphere" - ], - "syntax": [ - "fix ID group-ID nve/bpm/sphere" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "nve/bpm/sphere", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/bpm/sphere = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n", - "examples": "\n```lmps\nfix 1 all nve/bpm/sphere\nfix 1 all nve/bpm/sphere disc\n```\n", - "html_filename": "fix_nve_bpm_sphere.html", - "short_description": "\nPerform constant NVE integration to update position, velocity, angular\nvelocity, and quaternion orientation for finite-size spherical\nparticles in the group each timestep", - "description": "\nPerform constant NVE integration to update position, velocity, angular\nvelocity, and quaternion orientation for finite-size spherical\nparticles in the group each timestep. V is volume; E is energy. This\ncreates a system trajectory consistent with the microcanonical\nensemble.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\nIt also differs from the [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\ncommand which assumes finite-size spheroid particles which do not\nstore a quaternion. It thus does not update a particle's orientation\nor quaternion.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BPM package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis fix requires that atoms store torque, angular velocity (omega), a\nradius, and a quaternion as defined by the [atom_style bpm/sphere](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be finite-size spheres with\nquaternions. They cannot be point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\n" -}, -{ - "command": [ - "fix" - ], - "syntax": [ - "fix ID group-ID style args" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "style", - "type": 2, - "choices": [] - }, - { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID = user-assigned name for the fix\n* group-ID = ID of the group of atoms to apply the fix to\n* style = one of a long list of possible style names (see below)\n* args = arguments used by a particular style \n", - "examples": "\n```lmps\nfix 1 all nve\nfix 3 all nvt temp 300.0 300.0 0.01\nfix mine top setforce 0.0 NULL 0.0\n```\n", - "html_filename": "fix.html", - "short_description": "Set a fix that will be applied to a group of atoms", - "description": "Set a fix that will be applied to a group of atoms. In LAMMPS, a\n\"fix\" is any operation that is applied to the system during\ntimestepping or minimization. Examples include updating of atom\npositions and velocities due to time integration, controlling\ntemperature, applying constraint forces to atoms, enforcing boundary\nconditions, computing diagnostics, etc. There are hundreds of fixes\ndefined in LAMMPS and new ones can be added; see the\n[Modify ](https://docs.lammps.org/Modify.html) page for details.\n\nFixes perform their operations at different stages of the timestep.\nIf two or more fixes operate at the same stage of the timestep, they are\ninvoked in the order they were specified in the input script.\n\nThe ID of a fix can only contain alphanumeric characters and\nunderscores.\n\nFixes can be deleted with the [unfix ](https://docs.lammps.org/unfix.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [unfix ](https://docs.lammps.org/unfix.html) command is the only way to turn off a\n > fix; simply specifying a new fix with a similar style will not turn\n > off the first one. This is especially important to realize for\n > integration fixes. For example, using a [fix nve ](https://docs.lammps.org/fix_nve.html)\n > command for a second run after using a [fix nvt ](https://docs.lammps.org/fix_nh.html) command\n > for the first run will not cancel out the NVT time integration\n > invoked by the \"fix nvt\" command. Thus, two time integrators would be\n > in place! \n > \n\nIf you specify a new fix with the same ID and style as an existing\nfix, the old fix is deleted and the new one is created (presumably\nwith new settings). This is the same as if an \"unfix\" command were\nfirst performed on the old fix, except that the new fix is kept in the\nsame order relative to the existing fixes as the old one originally\nwas. Note that this operation also wipes out any additional changes\nmade to the old fix via the [fix_modify ](https://docs.lammps.org/fix_modify.html) command.\n\nThe [fix modify ](https://docs.lammps.org/fix_modify.html) command allows settings for some\nfixes to be reset. See the page for individual fixes for details.\n\nSome fixes store an internal \"state\" which is written to binary\nrestart files via the [restart ](https://docs.lammps.org/restart.html) or\n[write_restart ](https://docs.lammps.org/write_restart.html) commands. This allows the fix to\ncontinue on with its calculations in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file. See the doc pages\nfor individual fixes for info on which ones can be restarted.\n\n----------\n\nSome fixes calculate and store any of four *styles* of quantities:\nglobal, per-atom, local, or per-grid.\n\nA global quantity is one or more system-wide values, e.g. the energy\nof a wall interacting with particles. A per-atom quantity is one or\nmore values per atom, e.g. the original coordinates of each atom at\ntime 0. Per-atom values are set to 0.0 for atoms not in the specified\nfix group. Local quantities are calculated by each processor based on\nthe atoms it owns, but there may be zero or more per atom, e.g. values\nfor each bond. Per-grid quantities are calculated on a regular 2d or\n3d grid which overlays a 2d or 3d simulation domain. The grid points\nand the data they store are distributed across processors; each\nprocessor owns the grid points which fall within its subdomain.\n\nAs a general rule of thumb, fixes that produce per-atom quantities\nhave the word \"atom\" at the end of their style, e.g. *ave/atom* .\nFixes that produce local quantities have the word \"local\" at the end\nof their style, e.g. *store/local* . Fixes that produce per-grid\nquantities have the word \"grid\" at the end of their style,\ne.g. *ave/grid* .\n\nGlobal, per-atom, local, and per-grid quantities can also be of three\n*kinds*: a single scalar value (global only), a vector of values, or a\n2d array of values. For per-atom, local, and per-grid quantities, a\n\"vector\" means a single value for each atom, each local entity\n(e.g. bond), or grid cell. Likewise an \"array\", means multiple values\nfor each atom, each local entity, or each grid cell.\n\nNote that a single fix can produce any combination of global,\nper-atom, local, or per-grid values. Likewise it can produce any\ncombination of scalar, vector, or array output for each style. The\nexception is that for per-atom, local, and per-grid output, either a\nvector or array can be produced, but not both. The doc page for each\nfix explains the values it produces, if any.\n\nWhen a fix output is accessed by another input script command it is\nreferenced via the following bracket notation, where ID is the ID of\nthe fix:\n\n| | |\n|---|---|\n| f_ID | entire scalar, vector, or array |\n| f_ID[I] | one element of vector, one column of array |\n| f_ID[I][J] | one element of array |\n\nIn other words, using one bracket reduces the dimension of the\nquantity once (vector \\(\\to\\) scalar, array \\(\\to\\) vector).\nUsing two brackets reduces the dimension twice (array \\(\\to\\)\nscalar). Thus, for example, a command that uses global scalar fix\nvalues as input can also process elements of a vector or array.\nDepending on the command, this can either be done directly using the\nsyntax in the table, or by first defining a [variable ](https://docs.lammps.org/variable.html)\nof the appropriate style to store the quantity, then using the\nvariable as an input to the command.\n\nNote that commands and [variables ](https://docs.lammps.org/variable.html) which take fix\noutputs as input typically do not allow for all styles and kinds of\ndata (e.g., a command may require global but not per-atom values, or\nit may require a vector of values, not a scalar). This means there is\ntypically no ambiguity about referring to a fix output as c_ID even if\nit produces, for example, both a scalar and vector. The doc pages for\nvarious commands explain the details, including how any ambiguities\nare resolved.\n\n----------\n\nIn LAMMPS, the values generated by a fix can be used in several ways:\n\n* Global values can be output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) or [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n Alternatively, the values can be referenced in an\n [equal-style variable ](https://docs.lammps.org/variable.html) command.\n* Per-atom values can be output via the [dump custom ](https://docs.lammps.org/dump.html) command,\n or they can be time-averaged via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\n command or reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command. Alternatively, per-atom values can be referenced in an\n [atom-style variable ](https://docs.lammps.org/variable.html).\n* Local values can be reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command or histogrammed by the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command.\n They can also be output by the [dump local ](https://docs.lammps.org/dump.html) command.\n\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for a summary of\nvarious LAMMPS output options, many of which involve fixes.\n\nThe results of fixes that calculate global quantities can be either\n\"intensive\" or \"extensive\" values. Intensive means the value is\nindependent of the number of atoms in the simulation\n(e.g., temperature). Extensive means the value scales with the number of\natoms in the simulation (e.g., total rotational kinetic energy).\n[Thermodynamic output ](https://docs.lammps.org/thermo_style.html) will normalize extensive\nvalues by the number of atoms in the system, depending on the\n\"thermo_modify norm\" setting. It will not normalize intensive values.\nIf a fix value is accessed in another way (e.g., by a\n[variable ](https://docs.lammps.org/variable.html)), you may want to know whether it is an\nintensive or extensive value. See the page for individual fix styles\nfor further info.\n\n----------\n\nEach fix style has its own page that describes its arguments and\nwhat it does, as listed below. Here is an alphabetical list of fix\nstyles available in LAMMPS. They are also listed in more compact form\non the [Commands fix ](https://docs.lammps.org/Commands_fix.html) doc page.\n\nThere are also additional accelerated fix styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands fix ](https://docs.lammps.org/Commands_fix.html) doc\npage are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html) - apply cosine-shaped acceleration to atoms\n* [acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html) - apply ACKS2 charge equilibration\n* [adapt ](https://docs.lammps.org/fix_adapt.html) - change a simulation parameter over time\n* [adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) - enhanced version of fix adapt\n* [addforce ](https://docs.lammps.org/fix_addforce.html) - add a force to each atom\n* [add/heat ](https://docs.lammps.org/fix_add_heat.html) - add a heat flux to each atom\n* [addtorque ](https://docs.lammps.org/fix_addtorque.html) - add a torque to a group of atoms\n* [alchemy ](https://docs.lammps.org/fix_alchemy.html) - perform an \"alchemical transformation\" between two partitions\n* [amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html) - torsion/torsion terms in AMOEBA force field\n* [amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html) - 6-body terms in AMOEBA force field\n* [append/atoms ](https://docs.lammps.org/fix_append_atoms.html) - append atoms to a running simulation\n* [atc ](https://docs.lammps.org/fix_atc.html) - initiates a coupled MD/FE simulation\n* [atom/swap ](https://docs.lammps.org/fix_atom_swap.html) - Monte Carlo atom type swapping\n* [ave/atom ](https://docs.lammps.org/fix_ave_atom.html) - compute per-atom time-averaged quantities\n* [ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) - compute per-chunk time-averaged quantities\n* [ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) - compute/output time correlations\n* [ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html) - alternative to [ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) that allows efficient calculation over long time windows\n* [ave/grid ](https://docs.lammps.org/fix_ave_grid.html) - compute per-grid time-averaged quantities\n* [ave/histo ](https://docs.lammps.org/fix_ave_histo.html) - compute/output time-averaged histograms\n* [ave/histo/weight ](https://docs.lammps.org/fix_ave_histo.html) - weighted version of fix ave/histo\n* [ave/time ](https://docs.lammps.org/fix_ave_time.html) - compute/output global time-averaged quantities\n* [aveforce ](https://docs.lammps.org/fix_aveforce.html) - add an averaged force to each atom\n* [balance ](https://docs.lammps.org/fix_balance.html) - perform dynamic load-balancing\n* [brownian ](https://docs.lammps.org/fix_brownian.html) - overdamped translational brownian motion\n* [brownian/asphere ](https://docs.lammps.org/fix_brownian.html) - overdamped translational and rotational brownian motion for ellipsoids\n* [brownian/sphere ](https://docs.lammps.org/fix_brownian.html) - overdamped translational and rotational brownian motion for spheres\n* [bocs ](https://docs.lammps.org/fix_bocs.html) - NPT style time integration with pressure correction\n* [bond/break ](https://docs.lammps.org/fix_bond_break.html) - break bonds on the fly\n* [bond/create ](https://docs.lammps.org/fix_bond_create.html) - create bonds on the fly\n* [bond/create/angle ](https://docs.lammps.org/fix_bond_create.html) - create bonds on the fly with angle constraints\n* [bond/react ](https://docs.lammps.org/fix_bond_react.html) - apply topology changes to model reactions\n* [bond/swap ](https://docs.lammps.org/fix_bond_swap.html) - Monte Carlo bond swapping\n* [box/relax ](https://docs.lammps.org/fix_box_relax.html) - relax box size during energy minimization\n* [charge/regulation ](https://docs.lammps.org/fix_charge_regulation.html) - Monte Carlo sampling of charge regulation\n* [cmap ](https://docs.lammps.org/fix_cmap.html) - CMAP torsion/torsion terms in CHARMM force field\n* [colvars ](https://docs.lammps.org/fix_colvars.html) - interface to the collective variables \"Colvars\" library\n* [controller ](https://docs.lammps.org/fix_controller.html) - apply control loop feedback mechanism\n* [damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html) - Cundall non-viscous damping for granular simulations\n* [deform ](https://docs.lammps.org/fix_deform.html) - change the simulation box size/shape\n* [deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) - change the simulation box size/shape with additional loading conditions\n* [deposit ](https://docs.lammps.org/fix_deposit.html) - add new atoms above a surface\n* [dpd/energy ](https://docs.lammps.org/fix_dpd_energy.html) - constant energy dissipative particle dynamics\n* [drag ](https://docs.lammps.org/fix_drag.html) - drag atoms towards a defined coordinate\n* [drude ](https://docs.lammps.org/fix_drude.html) - part of Drude oscillator polarization model\n* [drude/transform/direct ](https://docs.lammps.org/fix_drude_transform.html) - part of Drude oscillator polarization model\n* [drude/transform/inverse ](https://docs.lammps.org/fix_drude_transform.html) - part of Drude oscillator polarization model\n* [dt/reset ](https://docs.lammps.org/fix_dt_reset.html) - reset the timestep based on velocity, forces\n* [edpd/source ](https://docs.lammps.org/fix_dpd_source.html) - add heat source to eDPD simulations\n* [efield ](https://docs.lammps.org/fix_efield.html) - impose electric field on system\n* [efield/tip4p ](https://docs.lammps.org/fix_efield.html) - impose electric field on system with TIP4P molecules\n* [ehex ](https://docs.lammps.org/fix_ehex.html) - enhanced heat exchange algorithm\n* [electrode/conp ](https://docs.lammps.org/fix_electrode.html) - impose electric potential\n* [electrode/conq ](https://docs.lammps.org/fix_electrode.html) - impose total electric charge\n* [electrode/thermo ](https://docs.lammps.org/fix_electrode.html) - apply thermo-potentiostat\n* [electron/stopping ](https://docs.lammps.org/fix_electron_stopping.html) - electronic stopping power as a friction force\n* [electron/stopping/fit ](https://docs.lammps.org/fix_electron_stopping.html) - electronic stopping power as a friction force\n* [enforce2d ](https://docs.lammps.org/fix_enforce2d.html) - zero out *z*-dimension velocity and force\n* [eos/cv ](https://docs.lammps.org/fix_eos_cv.html) - applies a mesoparticle equation of state to relate the particle internal energy to the particle internal temperature\n* [eos/table ](https://docs.lammps.org/fix_eos_table.html) - applies a tabulated mesoparticle equation of state to relate the particle internal energy to the particle internal temperature\n* [eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html) - applies a tabulated mesoparticle equation of state to relate the concentration-dependent particle internal energy to the particle internal temperature\n* [evaporate ](https://docs.lammps.org/fix_evaporate.html) - remove atoms from simulation periodically\n* [external ](https://docs.lammps.org/fix_external.html) - callback to an external driver program\n* [ffl ](https://docs.lammps.org/fix_ffl.html) - apply a Fast-Forward Langevin equation thermostat\n* [filter/corotate ](https://docs.lammps.org/fix_filter_corotate.html) - implement corotation filter to allow larger timesteps with r-RESPA\n* [flow/gauss ](https://docs.lammps.org/fix_flow_gauss.html) - Gaussian dynamics for constant mass flux\n* [freeze ](https://docs.lammps.org/fix_freeze.html) - freeze atoms in a granular simulation\n* [gcmc ](https://docs.lammps.org/fix_gcmc.html) - grand canonical insertions/deletions\n* [gld ](https://docs.lammps.org/fix_gld.html) - generalized Langevin dynamics integrator\n* [gle ](https://docs.lammps.org/fix_gle.html) - generalized Langevin equation thermostat\n* [gravity ](https://docs.lammps.org/fix_gravity.html) - add gravity to atoms in a granular simulation\n* [grem ](https://docs.lammps.org/fix_grem.html) - implements the generalized replica exchange method\n* [halt ](https://docs.lammps.org/fix_halt.html) - terminate a dynamics run or minimization\n* [heat ](https://docs.lammps.org/fix_heat.html) - add/subtract momentum-conserving heat\n* [heat/flow ](https://docs.lammps.org/fix_heat_flow.html) - plain time integration of heat flow with per-atom temperature updates\n* [hyper/global ](https://docs.lammps.org/fix_hyper_global.html) - global hyperdynamics\n* [hyper/local ](https://docs.lammps.org/fix_hyper_local.html) - local hyperdynamics\n* [imd ](https://docs.lammps.org/fix_imd.html) - implements the \"Interactive MD\" (IMD) protocol\n* [indent ](https://docs.lammps.org/fix_indent.html) - impose force due to an indenter\n* [ipi ](https://docs.lammps.org/fix_ipi.html) - enable LAMMPS to run as a client for i-PI path-integral simulations\n* [langevin ](https://docs.lammps.org/fix_langevin.html) - Langevin temperature control\n* [langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html) - Langevin temperature control of Drude oscillators\n* [langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html) - Langevin temperature control for the electron force field model\n* [langevin/spin ](https://docs.lammps.org/fix_langevin_spin.html) - Langevin temperature control for a spin or spin-lattice system\n* [lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) - lattice-Boltzmann fluid on a uniform mesh\n* [lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html) - [fix momentum ](https://docs.lammps.org/fix_momentum.html) replacement for use with a lattice-Boltzmann fluid\n* [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) - [fix viscous ](https://docs.lammps.org/fix_viscous.html) replacement for use with a lattice-Boltzmann fluid\n* [lineforce ](https://docs.lammps.org/fix_lineforce.html) - constrain atoms to move in a line\n* [manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html) - restrain atoms to a manifold during minimization\n* [mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html) - LAMMPS operates as a client for a quantum code via the MolSSI Driver Interface (MDI)\n* [mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html) - LAMMPS operates as client for QM/MM simulation with a quantum code via the MolSSI Driver Interface (MDI)\n* [meso/move ](https://docs.lammps.org/fix_meso_move.html) - move mesoscopic SPH/SDPD particles in a prescribed fashion\n* [mol/swap ](https://docs.lammps.org/fix_mol_swap.html) - Monte Carlo atom type swapping with a molecule\n* [momentum ](https://docs.lammps.org/fix_momentum.html) - zero the linear and/or angular momentum of a group of atoms\n* [momentum/chunk ](https://docs.lammps.org/fix_momentum.html) - zero the linear and/or angular momentum of a chunk of atoms\n* [move ](https://docs.lammps.org/fix_move.html) - move atoms in a prescribed fashion\n* [msst ](https://docs.lammps.org/fix_msst.html) - multi-scale shock technique (MSST) integration\n* [mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) - DPD using the modified velocity-Verlet integration algorithm\n* [mvv/edpd ](https://docs.lammps.org/fix_mvv_dpd.html) - constant energy DPD using the modified velocity-Verlet algorithm\n* [mvv/tdpd ](https://docs.lammps.org/fix_mvv_dpd.html) - constant temperature DPD using the modified velocity-Verlet algorithm\n* [neb ](https://docs.lammps.org/fix_neb.html) - nudged elastic band (NEB) spring forces\n* [neb/spin ](https://docs.lammps.org/fix_neb_spin.html) - nudged elastic band (NEB) spring forces for spins\n* [nonaffine/displacement ](https://docs.lammps.org/fix_nonaffine_displacement.html) - calculate nonaffine displacement of atoms\n* [nph ](https://docs.lammps.org/fix_nh.html) - constant NPH time integration via Nose/Hoover\n* [nph/asphere ](https://docs.lammps.org/fix_nph_asphere.html) - NPH for aspherical particles\n* [nph/body ](https://docs.lammps.org/fix_nph_body.html) - NPH for body particles\n* [nph/eff ](https://docs.lammps.org/fix_nh_eff.html) - NPH for nuclei and electrons in the electron force field model\n* [nph/sphere ](https://docs.lammps.org/fix_nph_sphere.html) - NPH for spherical particles\n* [nphug ](https://docs.lammps.org/fix_nphug.html) - constant-stress Hugoniostat integration\n* [npt ](https://docs.lammps.org/fix_nh.html) - constant NPT time integration via Nose/Hoover\n* [npt/asphere ](https://docs.lammps.org/fix_npt_asphere.html) - NPT for aspherical particles\n* [npt/body ](https://docs.lammps.org/fix_npt_body.html) - NPT for body particles\n* [npt/cauchy ](https://docs.lammps.org/fix_npt_cauchy.html) - NPT with Cauchy stress\n* [npt/eff ](https://docs.lammps.org/fix_nh_eff.html) - NPT for nuclei and electrons in the electron force field model\n* [npt/sphere ](https://docs.lammps.org/fix_npt_sphere.html) - NPT for spherical particles\n* [npt/uef ](https://docs.lammps.org/fix_nh_uef.html) - NPT style time integration with diagonal flow\n* [numdiff ](https://docs.lammps.org/fix_numdiff.html) - numerically approximate atomic forces using finite energy differences\n* [numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html) - numerically approximate virial stress tensor using finite energy differences\n* [nve ](https://docs.lammps.org/fix_nve.html) - constant NVE time integration\n* [nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html) - NVE for aspherical particles\n* [nve/asphere/noforce ](https://docs.lammps.org/fix_nve_asphere_noforce.html) - NVE for aspherical particles without forces\n* [nve/awpmd ](https://docs.lammps.org/fix_nve_awpmd.html) - NVE for the Antisymmetrized Wave Packet Molecular Dynamics model\n* [nve/body ](https://docs.lammps.org/fix_nve_body.html) - NVE for body particles\n* [nve/dot ](https://docs.lammps.org/fix_nve_dot.html) - rigid body constant energy time integrator for coarse grain models\n* [nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) - Langevin style rigid body time integrator for coarse grain models\n* [nve/eff ](https://docs.lammps.org/fix_nve_eff.html) - NVE for nuclei and electrons in the electron force field model\n* [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) - NVE with limited step length\n* [nve/line ](https://docs.lammps.org/fix_nve_line.html) - NVE for line segments\n* [nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html) - NVE time integration for atoms constrained to a curved surface (manifold)\n* [nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html) - NVE without forces (update positions only)\n* [nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) - NVE for spherical particles\n* [nve/bpm/sphere ](https://docs.lammps.org/fix_nve_bpm_sphere.html) - NVE for spherical particles used in the BPM package\n* [nve/spin ](https://docs.lammps.org/fix_nve_spin.html) - NVE for a spin or spin-lattice system\n* [nve/tri ](https://docs.lammps.org/fix_nve_tri.html) - NVE for triangles\n* [nvk ](https://docs.lammps.org/fix_nvk.html) - constant kinetic energy time integration\n* [nvt ](https://docs.lammps.org/fix_nh.html) - NVT time integration via Nose/Hoover\n* [nvt/asphere ](https://docs.lammps.org/fix_nvt_asphere.html) - NVT for aspherical particles\n* [nvt/body ](https://docs.lammps.org/fix_nvt_body.html) - NVT for body particles\n* [nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) - NVE for nuclei and electrons in the electron force field model\n* [nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html) - NVT time integration for atoms constrained to a curved surface (manifold)\n* [nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) - NVT for NEMD with SLLOD equations\n* [nvt/sllod/eff ](https://docs.lammps.org/fix_nvt_sllod_eff.html) - NVT for NEMD with SLLOD equations for the electron force field model\n* [nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html) - NVT for spherical particles\n* [nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) - NVT style time integration with diagonal flow\n* [oneway ](https://docs.lammps.org/fix_oneway.html) - constrain particles on move in one direction\n* [orient/bcc ](https://docs.lammps.org/fix_orient.html) - add grain boundary migration force for BCC\n* [orient/fcc ](https://docs.lammps.org/fix_orient.html) - add grain boundary migration force for FCC\n* [orient/eco ](https://docs.lammps.org/fix_orient_eco.html) - add generalized grain boundary migration force\n* [pafi ](https://docs.lammps.org/fix_pafi.html) - constrained force averages on hyper-planes to compute free energies (PAFI)\n* [pair ](https://docs.lammps.org/fix_pair.html) - access per-atom info from pair styles\n* [phonon ](https://docs.lammps.org/fix_phonon.html) - calculate dynamical matrix from MD simulations\n* [pimd/langevin ](https://docs.lammps.org/fix_pimd.html) - Feynman path-integral molecular dynamics with stochastic thermostat\n* [pimd/nvt ](https://docs.lammps.org/fix_pimd.html) - Feynman path-integral molecular dynamics with Nose-Hoover thermostat\n* [planeforce ](https://docs.lammps.org/fix_planeforce.html) - constrain atoms to move in a plane\n* [plumed ](https://docs.lammps.org/fix_plumed.html) - wrapper on PLUMED free energy library\n* [poems ](https://docs.lammps.org/fix_poems.html) - constrain clusters of atoms to move as coupled rigid bodies\n* [polarize/bem/gmres ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with generalized minimum residual (GMRES)\n* [polarize/bem/icc ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with the successive over-relaxation algorithm\n* [polarize/functional ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with the energy variational approach\n* [pour ](https://docs.lammps.org/fix_pour.html) - pour new atoms/molecules into a granular simulation domain\n* [precession/spin ](https://docs.lammps.org/fix_precession_spin.html) - apply a precession torque to each magnetic spin\n* [press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html) - pressure control by Berendsen barostat\n* [press/langevin ](https://docs.lammps.org/fix_press_langevin.html) - pressure control by Langevin barostat\n* [print ](https://docs.lammps.org/fix_print.html) - print text and variables during a simulation\n* [propel/self ](https://docs.lammps.org/fix_propel_self.html) - model self-propelled particles\n* [property/atom ](https://docs.lammps.org/fix_property_atom.html) - add customized per-atom values\n* [python/invoke ](https://docs.lammps.org/fix_python_invoke.html) - call a Python function during a simulation\n* [python/move ](https://docs.lammps.org/fix_python_move.html) - move particles using a Python function during a simulation run\n* [qbmsst ](https://docs.lammps.org/fix_qbmsst.html) - quantum bath multi-scale shock technique time integrator\n* [qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) - charge equilibration for COMB potential\n* [qeq/dynamic ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via dynamic method\n* [qeq/fire ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via FIRE minimizer\n* [qeq/point ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via point method\n* [qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) - charge equilibration for ReaxFF potential\n* [qeq/shielded ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via shielded method\n* [qeq/slater ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via Slater method\n* [qmmm ](https://docs.lammps.org/fix_qmmm.html) - functionality to enable a quantum mechanics/molecular mechanics coupling\n* [qtb ](https://docs.lammps.org/fix_qtb.html) - implement quantum thermal bath scheme\n* [rattle ](https://docs.lammps.org/fix_shake.html) - RATTLE constraints on bonds and/or angles\n* [reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html) - write out ReaxFF bond information\n* [reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html) - write out ReaxFF molecule information\n* [recenter ](https://docs.lammps.org/fix_recenter.html) - constrain the center-of-mass position of a group of atoms\n* [restrain ](https://docs.lammps.org/fix_restrain.html) - constrain a bond, angle, dihedral\n* [rheo ](https://docs.lammps.org/fix_rheo.html) - integrator for the RHEO package\n* [rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html) - thermal integrator for the RHEO package\n* [rheo/oxidation ](https://docs.lammps.org/fix_rheo_oxidation.html) - create oxidation bonds for the RHEO package\n* [rheo/pressure ](https://docs.lammps.org/fix_rheo_pressure.html) - pressure calculation for the RHEO package\n* [rheo/viscosity ](https://docs.lammps.org/fix_rheo_pressure.html) - viscosity calculation for the RHEO package\n* [rhok ](https://docs.lammps.org/fix_rhok.html) - add bias potential for long-range ordered systems\n* [rigid ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NVE integration\n* [rigid/meso ](https://docs.lammps.org/fix_rigid_meso.html) - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body\n* [rigid/nph ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NPH integration\n* [rigid/nph/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NPH integration\n* [rigid/npt ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NPT integration\n* [rigid/npt/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NPT integration\n* [rigid/nve ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration\n* [rigid/nve/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with alternate NVE integration\n* [rigid/nvt ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NVT integration\n* [rigid/nvt/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NVT integration\n* [rigid/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NVE integration\n* [rx ](https://docs.lammps.org/fix_rx.html) - solve reaction kinetic ODEs for a defined reaction set\n* [saed/vtk ](https://docs.lammps.org/fix_saed_vtk.html) - time-average the intensities from [compute saed ](https://docs.lammps.org/compute_saed.html)\n* [setforce ](https://docs.lammps.org/fix_setforce.html) - set the force on each atom\n* [setforce/spin ](https://docs.lammps.org/fix_setforce.html) - set magnetic precession vectors on each atom\n* [sgcmc ](https://docs.lammps.org/fix_sgcmc.html) - fix for hybrid semi-grand canonical MD/MC simulations\n* [shake ](https://docs.lammps.org/fix_shake.html) - SHAKE constraints on bonds and/or angles\n* [shardlow ](https://docs.lammps.org/fix_shardlow.html) - integration of DPD equations of motion using the Shardlow splitting\n* [smd ](https://docs.lammps.org/fix_smd.html) - applied a steered MD force to a group\n* [smd/adjust_dt ](https://docs.lammps.org/fix_smd_adjust_dt.html) - calculate a new stable time increment for use with SMD integrators\n* [smd/integrate_tlsph ](https://docs.lammps.org/fix_smd_integrate_tlsph.html) - explicit time integration with total Lagrangian SPH pair style\n* [smd/integrate_ulsph ](https://docs.lammps.org/fix_smd_integrate_ulsph.html) - explicit time integration with updated Lagrangian SPH pair style\n* [smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html) - update position and velocity near rigid surfaces using SPH integrators\n* [smd/setvel ](https://docs.lammps.org/fix_smd_setvel.html) - sets each velocity component, ignoring forces, for Smooth Mach Dynamics\n* [smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) - create a rigid wall with a triangulated surface for use in Smooth Mach Dynamics\n* [sph ](https://docs.lammps.org/fix_sph.html) - time integration for SPH/DPDE particles\n* [sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html) - update energy and density but not position or velocity in Smooth Particle Hydrodynamics\n* [spring ](https://docs.lammps.org/fix_spring.html) - apply harmonic spring force to group of atoms\n* [spring/chunk ](https://docs.lammps.org/fix_spring_chunk.html) - apply harmonic spring force to each chunk of atoms\n* [spring/rg ](https://docs.lammps.org/fix_spring_rg.html) - spring on radius of gyration of group of atoms\n* [spring/self ](https://docs.lammps.org/fix_spring_self.html) - spring from each atom to its origin\n* [srd ](https://docs.lammps.org/fix_srd.html) - stochastic rotation dynamics (SRD)\n* [store/force ](https://docs.lammps.org/fix_store_force.html) - store force on each atom\n* [store/state ](https://docs.lammps.org/fix_store_state.html) - store attributes for each atom\n* [tdpd/source ](https://docs.lammps.org/fix_dpd_source.html) - add external concentration source\n* [temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) - temperature control by Berendsen thermostat\n* [temp/csld ](https://docs.lammps.org/fix_temp_csvr.html) - canonical sampling thermostat with Langevin dynamics\n* [temp/csvr ](https://docs.lammps.org/fix_temp_csvr.html) - canonical sampling thermostat with Hamiltonian dynamics\n* [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) - temperature control by velocity rescaling\n* [temp/rescale/eff ](https://docs.lammps.org/fix_temp_rescale_eff.html) - temperature control by velocity rescaling in the electron force field model\n* [tfmc ](https://docs.lammps.org/fix_tfmc.html) - perform force-bias Monte Carlo with time-stamped method\n* [tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html) - NVT time integration for Drude polarizable model via temperature-grouped Nose-Hoover\n* [tgnpt/drude ](https://docs.lammps.org/fix_tgnh_drude.html) - NPT time integration for Drude polarizable model via temperature-grouped Nose-Hoover\n* [thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html) - Mueller-Plathe kinetic energy exchange for thermal conductivity calculation\n* [ti/spring ](https://docs.lammps.org/fix_ti_spring.html) - perform thermodynamic integration between a solid and an Einstein crystal\n* [tmd ](https://docs.lammps.org/fix_tmd.html) - guide a group of atoms to a new configuration\n* [ttm ](https://docs.lammps.org/fix_ttm.html) - two-temperature model for electronic/atomic coupling (replicated grid)\n* [ttm/grid ](https://docs.lammps.org/fix_ttm.html) - two-temperature model for electronic/atomic coupling (distributed grid)\n* [ttm/mod ](https://docs.lammps.org/fix_ttm.html) - enhanced two-temperature model with additional options\n* [tune/kspace ](https://docs.lammps.org/fix_tune_kspace.html) - auto-tune \\(k\\)-space parameters\n* [vector ](https://docs.lammps.org/fix_vector.html) - accumulate a global vector every *N* timesteps\n* [viscosity ](https://docs.lammps.org/fix_viscosity.html) - Mueller-Plathe momentum exchange for viscosity calculation\n* [viscous ](https://docs.lammps.org/fix_viscous.html) - viscous damping for granular simulations\n* [viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html) - viscous damping on angular velocity for granular simulations\n* [wall/body/polygon ](https://docs.lammps.org/fix_wall_body_polygon.html) - time integration for body particles of style [rounded/polygon ](https://docs.lammps.org/Howto_body.html)\n* [wall/body/polyhedron ](https://docs.lammps.org/fix_wall_body_polyhedron.html) - time integration for body particles of style [rounded/polyhedron ](https://docs.lammps.org/Howto_body.html)\n* [wall/colloid ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones wall interacting with finite-size particles\n* [wall/ees ](https://docs.lammps.org/fix_wall_ees.html) - wall for ellipsoidal particles\n* [wall/flow ](https://docs.lammps.org/fix_wall_flow.html) - flow boundary conditions\n* [wall/gran ](https://docs.lammps.org/fix_wall_gran.html) - frictional wall(s) for granular simulations\n* [wall/gran/region ](https://docs.lammps.org/fix_wall_gran_region.html) - [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) equivalent for use with granular particles\n* [wall/harmonic ](https://docs.lammps.org/fix_wall.html) - harmonic spring wall\n* [wall/lj1043 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 10--4--3 wall\n* [wall/lj126 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 12--6 wall\n* [wall/lj93 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 9--3 wall\n* [wall/lepton ](https://docs.lammps.org/fix_wall.html) - Custom Lepton expression wall\n* [wall/morse ](https://docs.lammps.org/fix_wall.html) - Morse potential wall\n* [wall/piston ](https://docs.lammps.org/fix_wall_piston.html) - moving reflective piston wall\n* [wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) - reflecting wall(s)\n* [wall/reflect/stochastic ](https://docs.lammps.org/fix_wall_reflect_stochastic.html) - reflecting wall(s) with finite temperature\n* [wall/region ](https://docs.lammps.org/fix_wall_region.html) - use region surface as wall\n* [wall/region/ees ](https://docs.lammps.org/fix_wall_ees.html) - use region surface as wall for ellipsoidal particles\n* [wall/srd ](https://docs.lammps.org/fix_wall_srd.html) - slip/no-slip wall for SRD particles\n* [wall/table ](https://docs.lammps.org/fix_wall.html) - Tabulated potential wall wall\n* [widom ](https://docs.lammps.org/fix_widom.html) - Widom insertions of atoms or molecules\n", - "restrictions": "Some fix styles are part of specific packages. They are only enabled\nif LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual fixes tell if it is part of a package.\n", - "related": "[unfix ](https://docs.lammps.org/unfix.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" -}, -{ - "command": [ - "bond_style" - ], - "syntax": [ - "bond_style style args" - ], - "args": [ - [ - { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "table", - "type": 3, - "choices": [ - "none", - "zero", - "hybrid", - "bpm/rotational", - "bpm/spring", - "class2", - "fene", - "fene/expand", - "fene/nm", - "gaussian", - "gromos", - "harmonic", - "harmonic/shift/cut", - "lepton", - "morse", - "nonlinear", - "oxdna/fene", - "oxdena2/fene", - "oxrna2/fene", - "quartic", - "special", - "table" - ] - }, - { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* style = none or zero or hybrid or bpm/rotational or bpm/spring or class2 or fene or fene/expand or fene/nm or gaussian or gromos or harmonic or harmonic/restrain *harmonic/shift* or harmonic/shift/cut or lepton or morse or nonlinear or oxdna/fene or oxdena2/fene or oxrna2/fene or quartic or special or table\n\n* args = none for any style except hybrid\n\n * hybrid args = list of one or more styles \n", - "examples": "\n```lmps\nbond_style harmonic\nbond_style fene\nbond_style hybrid harmonic fene\n```\n", - "html_filename": "bond_style.html", - "short_description": "Set the formula(s) LAMMPS uses to compute bond interactions between\npairs of atoms", - "description": "Set the formula(s) LAMMPS uses to compute bond interactions between\npairs of atoms. In LAMMPS, a bond differs from a pairwise\ninteraction, which are set via the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand. Bonds are defined between specified pairs of atoms and\nremain in force for the duration of the simulation (unless new bonds\nare created or existing bonds break, which is possible in some fixes\nand bond potentials). The list of bonded atoms is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand from a data or restart file. By contrast, pair potentials are\ntypically defined between all pairs of atoms within a cutoff distance\nand the set of active interactions changes over time.\n\nHybrid models where bonds are computed using different bond potentials\ncan be setup using the *hybrid* bond style.\n\nThe coefficients associated with a bond style can be specified in a\ndata or restart file or via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nAll bond potentials store their coefficient data in binary restart\nfiles which means bond_style and [bond_coeff ](https://docs.lammps.org/bond_coeff.html) commands\ndo not need to be re-specified in an input script that restarts a\nsimulation. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ndetails on how to do this. The one exception is that bond_style\n*hybrid* only stores the list of sub-styles in the restart file; bond\ncoefficients need to be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both a bond and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between two bonded atoms. \n > \n\nIn the formulas listed for each bond style, *r* is the distance\nbetween the two atoms in the bond.\n\n----------\n\nHere is an alphabetic list of bond styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the bond_style command, and coefficients\nspecified by the associated [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands bond ](https://docs.lammps.org/Commands_bond.html)\ndoc page are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [none ](https://docs.lammps.org/bond_none.html) - turn off bonded interactions\n* [zero ](https://docs.lammps.org/bond_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/bond_hybrid.html) - define multiple styles of bond interactions\n\n* [bpm/rotational ](https://docs.lammps.org/bond_bpm_rotational.html) - breakable bond with forces and torques based on deviation from reference state\n* [bpm/spring ](https://docs.lammps.org/bond_bpm_spring.html) - breakable bond with forces based on deviation from reference length\n* [class2 ](https://docs.lammps.org/bond_class2.html) - COMPASS (class 2) bond\n* [fene ](https://docs.lammps.org/bond_fene.html) - FENE (finite-extensible non-linear elastic) bond\n* [fene/expand ](https://docs.lammps.org/bond_fene_expand.html) - FENE bonds with variable size particles\n* [fene/nm ](https://docs.lammps.org/bond_fene.html) - FENE bonds with a generalized Lennard-Jones potential\n* [gaussian ](https://docs.lammps.org/bond_gaussian.html) - multicentered Gaussian-based bond potential\n* [gromos ](https://docs.lammps.org/bond_gromos.html) - GROMOS force field bond\n* [harmonic ](https://docs.lammps.org/bond_harmonic.html) - harmonic bond\n* [harmonic/restrain ](https://docs.lammps.org/bond_harmonic_restrain.html) - harmonic bond to restrain to original bond distance\n* [harmonic/shift ](https://docs.lammps.org/bond_harmonic_shift.html) - shifted harmonic bond\n* [harmonic/shift/cut ](https://docs.lammps.org/bond_harmonic_shift_cut.html) - shifted harmonic bond with a cutoff\n* [lepton ](https://docs.lammps.org/bond_lepton.html) - bond potential from evaluating a string\n* [mesocnt ](https://docs.lammps.org/bond_mesocnt.html) - Harmonic bond wrapper with parameterization presets for nanotubes\n* [mm3 ](https://docs.lammps.org/bond_mm3.html) - MM3 anharmonic bond\n* [morse ](https://docs.lammps.org/bond_morse.html) - Morse bond\n* [nonlinear ](https://docs.lammps.org/bond_nonlinear.html) - nonlinear bond\n* [oxdna/fene ](https://docs.lammps.org/bond_oxdna.html) - modified FENE bond suitable for DNA modeling\n* [oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html) - same as oxdna but used with different pair styles\n* [oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html) - modified FENE bond suitable for RNA modeling\n* [quartic ](https://docs.lammps.org/bond_quartic.html) - breakable quartic bond\n* [rheo/shell ](https://docs.lammps.org/bond_rheo_shell.html) - shell bond for oxidation modeling in RHEO\n* [special ](https://docs.lammps.org/bond_special.html) - enable special bond exclusions for 1-5 pairs and beyond\n* [table ](https://docs.lammps.org/bond_table.html) - tabulated by bond length\n\n----------\n", - "restrictions": "Bond styles can only be set for atom styles that allow bonds to be\ndefined.\n\nMost bond styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual bond potentials tell if it is part of a package.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" -}, -{ - "command": [ - "fix python/invoke" - ], - "syntax": [ - "fix ID group-ID python/invoke N callback function_name" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "python/invoke", - "type": 1, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "end_of_step", - "type": 3, - "choices": [ - "post_force", - "end_of_step" - ] - }, - { - "arg": "function_name", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are ignored by this fix\n* python/invoke = style name of this fix command\n* N = execute every N steps\n* callback = post_force or end_of_step \n *        post_force = callback after force computations on atoms every N time steps \n *        end_of_step = callback after every N time steps \n", - "examples": "\n```lmps\npython post_force_callback here \"\"\"\nfrom lammps import lammps\n\ndef post_force_callback(lammps_ptr, vflag):\nlmp = lammps(ptr=lammps_ptr)\n #### # access LAMMPS state using Python interface\n\npython end_of_step_callback here \"\"\"\ndef end_of_step_callback(lammps_ptr):\nlmp = lammps(ptr=lammps_ptr)\n #### # access LAMMPS state using Python interface\n\nfix pf all python/invoke 50 post_force post_force_callback\nfix eos all python/invoke 50 end_of_step end_of_step_callback\n```\n", - "html_filename": "fix_python_invoke.html", - "short_description": "This fix allows you to call a Python function during a simulation run", - "description": "This fix allows you to call a Python function during a simulation run.\nThe callback is either executed after forces have been applied to atoms\nor at the end of every N time steps.\n\nCallback functions must be declared in the global scope of the\nactive Python interpreter. This can either be done by defining it\ninline using the python command or by importing functions from other\nPython modules. If LAMMPS is driven using the library interface from\nPython, functions defined in the driving Python interpreter can also\nbe executed.\n\nEach callback is given a pointer object as first argument. This can be\nused to initialize an instance of the lammps Python interface, which\ngives access to the LAMMPS state from Python.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >While you can access the state of LAMMPS via library functions\n > from these callbacks, trying to execute input script commands will in the best\n > case not work or in the worst case result in undefined behavior. \n > \n\n", - "restrictions": "This fix is part of the PYTHON package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nBuilding LAMMPS with the PYTHON package will link LAMMPS with the\nPython library on your system. Settings to enable this are in the\nlib/python/Makefile.lammps file. See the lib/python/README file for\ninformation on those settings.\n", - "related": "[python command ](https://docs.lammps.org/python.html)\n" -}, -{ - "command": [ - "compute smd/plastic/strain" - ], - "syntax": [ - "compute ID group-ID smd/plastic/strain" - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "smd/plastic/strain", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/plastic/strain = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/plastic/strain\n```\n", - "html_filename": "compute_smd_plastic_strain.html", - "short_description": "Define a computation that outputs the equivalent plastic strain per\nparticle", - "description": "Define a computation that outputs the equivalent plastic strain per\nparticle. This command is only meaningful if a material model with\nplasticity is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given dimensionless. See [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", - "related": "[smd/plastic/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain.html),\n[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" -}, -{ - "command": [ - "fix ave/grid" - ], - "syntax": [ - "fix ID group-ID ave/grid Nevery Nrepeat Nfreq Nx Ny Nz value1 value2 ... keyword args ..." - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "ave/grid", - "type": 1, - "choices": [] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "Nrepeat", - "type": 2, - "choices": [] - }, - { - "arg": "Nfreq", - "type": 2, - "choices": [] - }, - { - "arg": "Nx", - "type": 2, - "choices": [] - }, - { - "arg": "Ny", - "type": 2, - "choices": [] - }, - { - "arg": "Nz", - "type": 2, - "choices": [] - }, - { - "arg": "value1", - "type": 2, - "choices": [] - }, - { - "arg": "value2", - "type": 2, - "choices": [] - }, - { - "arg": "cdof", - "type": 3, - "choices": [ - "discard", - "norm", - "ave", - "bias", - "adof", - "cdof" - ] - }, - { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/grid = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* Nx, Ny, Nz = grid size in each dimension\n* one or more per-atom or per-grid input values can be listed\n* per-atom value = vx, vy, vz, fx, fy, fz, density/mass, density/number, mass, temp, c_ID, c_ID[I], f_ID, f_ID[I], v_name \n *        vx,vy,vz,fx,fy,fz,mass = atom attribute (velocity, force component, mass) \n *        density/number, density/mass = number or mass density (per volume) \n *        temp = temperature \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* per-grid value = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n *        gname = name of grid defined by compute or fix \n *        dname = name of data field defined by compute or fix \n *        c_ID = per-grid vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-grid array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-grid vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-grid array calculated by a fix with ID, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = discard or norm or ave or bias or adof or cdof \n *        discard arg = yes or no \n         yes = discard an atom outside grid in a non-periodic dimension \n         no = remap an atom outside grid in a non-periodic dimension to first or last grid cell \n *        norm arg = all or sample or none = how output on Nfreq steps is normalized \n         all = output is sum of atoms across all Nrepeat samples, divided by atom count \n         sample = output is sum of Nrepeat sample averages, divided by Nrepeat \n         none = output is sum of Nrepeat sample sums, divided by Nrepeat \n *        ave args = one or running or *window M* \n         one = output new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        bias arg = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias for temperature calculation \n *        adof value = dof_per_atom \n         dof_per_atom = define this many degrees-of-freedom per atom for temperature calculation \n *        cdof value = dof_per_grid_cell \n         dof_per_grid_cell = add this many degrees-of-freedom per grid_cell for temperature calculation \n", - "examples": "\n```lmps\nfix 1 all ave/grid 10000 1 10000 10 10 10 fx fy fz c_myMSD[*]\nfix 1 flow ave/grid 100 10 1000 20 20 30 f_TTM:grid:data\n```\n", - "html_filename": "fix_ave_grid.html", - "short_description": "Overlay the 2d or 3d simulation box with a uniformly spaced 2d or 3d\ngrid and use it to either (a) time-average per-atom quantities for the\natoms in each grid cell, or to (b) time-average per-grid quantities\nproduced by other computes or fixes", - "description": "Overlay the 2d or 3d simulation box with a uniformly spaced 2d or 3d\ngrid and use it to either (a) time-average per-atom quantities for the\natoms in each grid cell, or to (b) time-average per-grid quantities\nproduced by other computes or fixes. This fix operates in either\n\"per-atom mode\" (all input values are per-atom) or in \"per-grid mode\"\n(all input values are per-grid). You cannot use both per-atom and\nper-grid inputs in the same command.\n\nThe grid created by this command is distributed; each processor owns\nthe grid points that are within its subdomain. This is similar to\nthe [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command when it uses chunks\nfrom the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command which\nare 2d or 3d regular bins. However, the per-bin outputs in that case\nare global; each processor stores a copy of the entire set of bin\ndata. Thus it more efficient to use the fix ave/grid command when the\ngrid is large and a simulation is run on many processors.\n\nFor per-atom mode, only atoms in the specified group contribute to the\nsumming and averaging calculations. For per-grid mode, the specified\ngroup is ignored.\n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be accessed and\ncontribute to the average. The final averaged quantities are generated on time\nsteps that are a multiples of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps. \\(N_\\text{freq}\\)\nmust be a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat} = 1\\)\\ . Also, the time steps\ncontributing to the average value cannot overlap (i.e.,\n\\(N_\\text{repeat} \\times N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on\ntime steps 90,92,94,96,98,100 will be used to compute the final average\non timestep 100. Similarly for timesteps 190,192,194,196,198,200 on\ntimestep 200, etc. If \\(N_\\text{repeat}=1\\) and \\(N_\\text{freq} = 100\\), then no time\naveraging is done; values are simply generated on timesteps\n100,200,etc.\n\nIn per-atom mode, each input value can also be averaged over the atoms\nin each grid cell. The way the averaging is done across the \\(N_\\text{repeat}\\)\ntimesteps to produce output on the \\(N_\\text{freq}\\) timesteps, and across\nmultiple \\(N_\\text{freq}\\) outputs, is determined by the *norm* and *ave*\nkeyword settings, as discussed below.\n\n----------\n\nThe *Nx*, *Ny*, and *Nz* arguments specify the size of the grid that\noverlays the simulation box. For 2d simulations, *Nz* must be 1. The\n*Nx*, *Ny*, *Nz* values can be any positive integer. The grid can be\nvery coarse compared to the particle count, or very fine. If one or\nmore of the values = 1, then bins are 2d planes or 1d slices of the\nsimulation domain. Note that if the total number of grid cells is\nsmall, it may be more efficient to use the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) command which can treat a grid defined by the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command as a global\ngrid where each processor owns a copy of all the grid cells. If *Nx*\n= *Ny* = *Nz* = 1 is used, the same calculation would be more\nefficiently performed by the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\ncommand.\n\nIf the simulation box size or shape changes during a simulation, the\ngrid always conforms to the size/shape of the current simulation box.\nIf one more dimensions have non-periodic shrink-wrapped boundary\nconditions, as defined by the [boundary ](https://docs.lammps.org/boundary.html) command, then\nthe grid will extend over the (dynamic) shrink-wrapped extent in each\ndimension. If the box shape is triclinic, as explained in [Howtotriclinic ](https://docs.lammps.org/Howto_triclinic.html), then the grid is also triclinic; each\ngrid cell is a small triclinic cell with the same shape as the\nsimulation box.\n\n----------\n\nIn both per-atom and per-grid mode, input values from a compute or fix\nthat produces an array of values (multiple values per atom or per grid\npoint), the bracketed index I can be specified using a wildcard\nasterisk with the index to effectively specify multiple values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the number of\ncolumns in the array (for *mode* = vector), then an asterisk with no\nnumeric values means all indices from 1 to N. A leading asterisk\nmeans all indices from 1 to n (inclusive). A trailing asterisk means\nall indices from n to N (inclusive). A middle asterisk means all\nindices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. E.g. if there were a compute fft/grid\ncommand which produced 3 values for each grid point, these two fix\nave/grid commands would be equivalent:\n\n```lmps\ncompute myFFT all fft/grid 10 10 10 ...\nfix 1 all ave/grid 100 1 100 10 10 10 c_myFFT:grid:data[*]\nfix 2 all ave/grid 100 1 100 10 10 10 c_myFFT:grid:data[*][1] c_myFFT:grid:data[*][2] c_myFFT:grid:data[3]\n```\n----------\n\n*Per-atom mode*:\n\nEach specified per-atom value can be an atom attribute (velocity,\nforce component), a number or mass density, a mass or temperature, or\nthe result of a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the\nevaluation of an atom-style [variable ](https://docs.lammps.org/variable.html). In the latter\ncases, the compute, fix, or variable must produce a per-atom quantity,\nnot a global quantity. Note that the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command provides access to any attribute\ndefined and stored by atoms.\n\nThe per-atom values of each input vector are summed and averaged\nindependently of the per-atom values in other input vectors.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom quantities are those\nwhich have the word *atom* in their style name. See the doc pages for\nindividual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce per-atom\nquantities. [Variables ](https://docs.lammps.org/variable.html) of style *atom* are the only\nones that can be used with this fix since all other styles of variable\nproduce global quantities.\n\n----------\n\nThe atom attribute values (vx,vy,vz,fx,fy,fz,mass) are\nself-explanatory. As noted above, any other atom attributes can be\nused as input values to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nThe *density/number* value means the number density is computed for\neach grid cell, i.e. number/volume. The *density/mass* value means\nthe mass density is computed for each grid/cell,\ni.e. total-mass/volume. The output values are in units of 1/volume or\ndensity (mass/volume). See the [units ](https://docs.lammps.org/units.html) command page for\nthe definition of density for each choice of units, e.g. gram/cm\\^3.\n\nThe *temp* value computes the temperature for each grid cell, by the\nformula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE = total kinetic energy of the atoms in the grid cell (\n\\(\\frac{1}{2} m v^2\\)), DOF = the total number of degrees of\nfreedom for all atoms in the grid cell, \\(k_B\\) = Boltzmann\nconstant, and \\(T\\) = temperature.\n\nThe DOF is calculated as N\\*adof + cdof, where N = number of atoms in\nthe grid cell, adof = degrees of freedom per atom, and cdof = degrees\nof freedom per grid cell. By default adof = 2 or 3 = dimensionality\nof system, as set via the [dimension ](https://docs.lammps.org/dimension.html) command, and\ncdof = 0.0. This gives the usual formula for temperature.\n\nNote that currently this temperature only includes translational\ndegrees of freedom for each atom. No rotational degrees of freedom\nare included for finite-size particles. Also no degrees of freedom\nare subtracted for any velocity bias or constraints that are applied,\nsuch as [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html), or\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause those degrees of freedom (e.g. a constrained bond) could apply\nto sets of atoms that are both inside and outside a specific grid\ncell, and hence the concept is somewhat ill-defined. In some cases,\nyou can use the *adof* and *cdof* keywords to adjust the calculated\ndegrees of freedom appropriately, as explained below.\n\nAlso note that a bias can be subtracted from atom velocities before\nthey are used in the above formula for KE, by using the *bias*\nkeyword. This allows, for example, a thermal temperature to be\ncomputed after removal of a flow velocity profile.\n\nNote that the per-grid-cell temperature calculated by this fix and the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command (using bins)\ncan be different. The compute calculates the temperature for each\nchunk for a single snapshot. This fix can do that but can also time\naverage those values over many snapshots, or it can compute a\ntemperature as if the atoms in the grid cell on different timesteps\nwere collected together as one set of atoms to calculate their\ntemperature. The compute allows the center-of-mass velocity of each\nchunk to be subtracted before calculating the temperature; this fix\ndoes not.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See\nthe discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain timesteps, which must be compatible with\n\\(N_\\text{every}\\), else an error results. Users can also write code for their\nown fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. Variables of style\n*atom* can reference thermodynamic keywords and various per-atom\nattributes, or invoke other computes, fixes, or variables when they\nare evaluated, so this is a very general means of generating per-atom\nquantities to average within grid cells.\n\n----------\n\n*Per-grid mode*:\n\nThe attributes that begin with *c_ID* and *f_ID* both take\ncolon-separated fields *gname* and *dname*. These refer to a grid\nname and data field name which is defined by the compute or fix. Note\nthat a compute or fix can define one or more grids (of different\nsizes) and one or more data fields for each of those grids. The sizes\nof all grids used as values for one instance of this fix must be the\nsame.\n\nThe *c_ID:gname:dname* and *c_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [compute ](https://docs.lammps.org/compute.html) to\nbe accessed. The ID in the attribute should be replaced by the actual\nID of the compute that has been defined previously in the input\nscript.\n\nIf *c_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the compute is accessed. If *c_ID:gname:dname[I]* is\nused, then I must be in the range from 1-M, which will access the Ith\ncolumn of the per-grid array with M columns calculated by the compute.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *f_ID:gname:dname* and *f_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [fix ](https://docs.lammps.org/fix.html) to be\noutput. The ID in the attribute should be replaced by the actual ID\nof the fix that has been defined previously in the input script.\n\nIf *f_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the fix is printed. If *f_ID:gname:dname[I]* is used,\nthen I must be in the range from 1-M, which will print the Ith column\nof the per-grid with M columns calculated by the fix. See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix and\nits outputs. Some are only applicable to per-atom mode. Some are\napplicable to both per-atom and per-grid mode.\n\nThe *discard* keyword is only applicable to per-atom mode. If a\ndimension of the system is non-periodic, then grid cells will only\nspan the box dimension (fixed or shrink-wrap boundaries as set by the\n[boundary` command). An atom may thus be slightly outside therange of grid cells on a particular timestep. If *discard* is set to*yes* (the default), then the atom will be assigned to the closestgrid cell (lowest or highest) in that dimension. If *discard* is setto *no* the atom will be ignored.----------The *norm* keyword is only applicable to per-atom mode. In per-gridmode, the *norm* keyword setting is ignored. The output grid value onan \\(N_\\text{freq}\\) timestep is the sum of the grid values in each of the\\(N_\\text{repeat}\\) samples, divided by \\(N_\\text{repeat}\\).In per-atom mode, the *norm* keyword affects how averaging is done forthe per-grid values that are output on an \\(N_\\text{freq}\\) timestep. \\(N_\\text{repeat}\\)samples contribute to the output. The *norm* keyword has 3 possiblesettings: *all* or *sample* or *none*. *All* is the default.In the formulas that follow, SumI is the sum of a per-atom propertyover the CountI atoms in a grid cell for a single sample I, where Ivaries from 1 to N, and N = Nrepeat. These formulas are used for anyper-atom input value listed above, except *density/number*,*density/mass*, and *temp*. Those input values are discussed below.In per-atom mode, for *norm all* the output grid value on the \\(N_\\text{freq}\\)timestep is an average over atoms across the entire \\(N_\\text{freq}\\) timescale:Output = (Sum1 + Sum2 + ... + SumN) / (Count1 + Count2 + ... + CountN)In per-atom mode, for *norm sample* the output grid value on the\\(N_\\text{freq}\\) timestep is an average of an average:Output = (Sum1/Count1 + Sum2/Count2 + ... + SumN/CountN) / NrepeatIn per-atom mode, for *norm none* the output grid value on the\\(N_\\text{freq}\\) timestep is not normalized by the atom counts:Output = (Sum1 + Sum2 + ... SumN) / NrepeatFor *density/number* and *density/mass*, the output value is the sameas in the formulas above for *norm all* and *norm sample*, except thatthe result is also divided by the grid cell volume. For *norm all*,this will be the volume at the final \\(N_\\text{freq}\\) timestep. For *normsample*, the divide-by-volume is done for each sample, using the gridcell volume at the sample timestep. For *norm none*, the output isthe same as for *norm all*.For *temp*, the output temperature uses the formula for kinetic energyKE listed above, and is normalized similarly to the formulas above for*norm all* and *norm sample*, except for the way the degrees offreedom (DOF) are calculated. For *norm none*, the output is the sameas for *norm all*.For *norm all*, the DOF = \\(N_\\text{repeat} \\times\\) *cdof* plus *Count* times*adof*, where *Count* = (Count1 + Count2 + ... + CountN). The *cdof*and *adof* keywords are discussed below. The output temperature iscomputed with all atoms across all samples contributing.For *norm sample*, the DOF for a single sample = *cdof* plus *Count*times *adof*, where *Count* = CountI for a single sample. The outputtemperature is the average of *Nsample* temperatures calculated foreach sample.Finally, for all 3 *norm* settings the output count of atoms per gridcell is:Output count = (Count1 + Count2 + ... CountN) / NrepeatThis count is the same for all per-atom input values, including*density/number*, *density/mass*, and *temp*.----------The *ave* keyword is applied to both per-atom and per-grid mode. Itdetermines how the per-grid values produced once every \\(N_\\text{freq}\\) stepsare averaged with values produced on previous steps that weremultiples of \\(N_\\text{freq}\\), before they are accessed by another outputcommand.If the *ave* setting is *one*, which is the default, then the gridvalues produced on \\(N_\\text{freq}\\) timesteps are independent of each other;they are output as-is without further averaging.If the *ave* setting is *running*, then the grid values produced on\\(N_\\text{freq}\\) timesteps are summed and averaged in a cumulative sense beforebeing output. Each output grid value is thus the average of the gridvalue produced on that timestep with all preceding values for the samegrid value. This running average begins when the fix is defined; itcan only be restarted by deleting the fix via the :doc:`unfix ](https://docs.lammps.org/unfix.html)\ncommand, or re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the grid values produced on\n\\(N_\\text{freq}\\) timesteps are summed and averaged within a moving \"window\" of\ntime, so that the last M values for the same grid are used to produce\nthe output. E.g. if M = 3 and Nfreq = 1000, then the grid value\noutput on step 10000 will be the average of the grid values on steps\n8000,9000,10000. Outputs on early steps will average over less than M\nvalues if they are not available.\n\n----------\n\nThe *bias*, *adof*, and *cdof* keywords are only applicable to\nper-atom mode.\n\nThe *bias* keyword specifies the ID of a temperature compute that\nremoves a \"bias\" velocity from each atom, specified as *bias-ID* .\nIt is only used when the *temp* value is calculated, to compute the\nthermal temperature of each grid cell after the translational kinetic\nenergy components have been altered in a prescribed way, e.g. to\nremove a flow velocity profile. See the doc pages for individual\ncomputes that calculate a temperature to see which ones implement a\nbias.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formula described above for temperature calculation for\neach grid cell. They are only used when the *temp* value is\ncalculated. They can be used to calculate a more appropriate\ntemperature in some cases. Here are 3 examples:\n\nIf grid cells contain some number of water molecules and [fixshake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then you could\ncalculate a temperature with 6 degrees of freedom (DOF) (3\ntranslational, 3 rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the x component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nUsing *cdof* = -2 or -3 (for 2d or 3d simulations) will subtract out 2\nor 3 degrees of freedom for each grid cell, similar to how the\n[compute temp ](https://docs.lammps.org/compute_temp.html) command subtracts out 3 DOF for the\nentire system.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix calculates a per-grid array which has one column for each of\nthe specified input values. The units for each column with be in the\n[units ](https://docs.lammps.org/units.html) for the per-atom or per-grid quantity for the\ncorresponding input value. If the fix is used in per-atom mode, it\nalso calculates a per-grid vector with the count of atoms in each grid\ncell. The number of rows in the per-grid array and number of values\nin the per-grid vector (distributed across all processors) is Nx *\nNy * Nz.\n\nFor access by other commands, the name of the single grid produced by\nthis fix is \"grid\". The names of its two per-grid datums are \"data\"\nfor the per-grid array and \"count\" for the per-grid vector (if using\nper-atom values). Both datums can be accessed by various [outputcommands ](https://docs.lammps.org/Howto_output.html).\n\nIn per-atom mode, the per-grid array values calculated by this fix are\ntreated as \"intensive\", since they are typically already normalized by\nthe count of atoms in each grid cell.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "none\n", - "related": "[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n" -}, -{ - "command": [ - "compute sna/atom", - "compute snad/atom", - "compute snav/atom", - "compute snap", - "compute sna/grid" - ], - "syntax": [ - "compute ID group-ID sna/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID snad/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID snav/atom rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID snap rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID snap rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID sna/grid nx ny nz rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ...", - "compute ID group-ID sna/grid/local nx ny nz rcutfac rfac0 twojmax R_1 R_2 ... w_1 w_2 ... keyword values ..." - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "sna/atom", - "type": 1, - "choices": [] - }, { "arg": "rcutfac", "type": 2, @@ -9480,7 +8662,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "snad/atom", + "arg": "snap", "type": 2, "choices": [] }, @@ -9563,7 +8745,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "snav/atom", + "arg": "snap", "type": 2, "choices": [] }, @@ -9646,7 +8828,22 @@ export const command_docs = [ "choices": [] }, { - "arg": "snap", + "arg": "sna/grid", + "type": 2, + "choices": [] + }, + { + "arg": "nx", + "type": 2, + "choices": [] + }, + { + "arg": "ny", + "type": 2, + "choices": [] + }, + { + "arg": "nz", "type": 2, "choices": [] }, @@ -9729,7 +8926,22 @@ export const command_docs = [ "choices": [] }, { - "arg": "snap", + "arg": "sna/grid/local", + "type": 2, + "choices": [] + }, + { + "arg": "nx", + "type": 2, + "choices": [] + }, + { + "arg": "ny", + "type": 2, + "choices": [] + }, + { + "arg": "nz", "type": 2, "choices": [] }, @@ -9794,219 +9006,143 @@ export const command_docs = [ "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sna/atom = style name of this compute command\n* rcutfac = scale factor applied to all cutoff radii (positive real)\n* rfac0 = parameter in distance to angle conversion (0 < rcutfac < 1)\n* twojmax = band limit for bispectrum components (non-negative integer)\n* R_1, R_2,... = list of cutoff radii, one for each type (distance units)\n* w_1, w_2,... = list of neighbor weights, one for each type\n* nx, ny, nz = number of grid points in x, y, and z directions (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = rmin0 or switchflag or bzeroflag or quadraticflag or chem or bnormflag or wselfallflag or bikflag or switchinnerflag or sinner or dinner or dgradflag or nnn or wmode or delta \n *        rmin0 value = parameter in distance to angle conversion (distance units) \n *        switchflag value = 0 or 1 \n         0 = do not use switching function \n         1 = use switching function \n *        bzeroflag value = 0 or 1 \n         0 = do not subtract B0 \n         1 = subtract B0 \n *        quadraticflag value = 0 or 1 \n         0 = do not generate quadratic terms \n         1 = generate quadratic terms \n *        chem values = nelements elementlist \n         nelements = number of SNAP elements \n         elementlist = ntypes integers in range [0, nelements) \n *        bnormflag value = 0 or 1 \n         0 = do not normalize \n         1 = normalize bispectrum components \n *        wselfallflag value = 0 or 1 \n         0 = self-contribution only for element of central atom \n         1 = self-contribution for all elements \n *        switchinnerflag value = 0 or 1 \n         0 = do not use inner switching function \n         1 = use inner switching function \n *        sinner values = sinnerlist \n         sinnerlist = ntypes values of Sinner (distance units) \n *        dinner values = dinnerlist \n         dinnerlist = ntypes values of Dinner (distance units) \n *        bikflag value = 0 or 1 (only implemented for compute snap) \n         0 = descriptors are summed over atoms of each type \n         1 = descriptors are listed separately for each atom \n *        dgradflag value = 0 or 1 (only implemented for compute snap) \n         0 = descriptor gradients are summed over atoms of each type \n         1 = descriptor gradients are listed separately for each atom pair \n* additional keyword = nnn or wmode or delta \n *        nnn value = number of considered nearest neighbors to compute the bispectrum over a target specific number of neighbors (only implemented for compute sna/atom) \n *        wmode value = weight function for finding optimal cutoff to match the target number of neighbors (required if nnn used, only implemented for compute sna/atom) \n         0 = heavyside weight function \n         1 = hyperbolic tangent weight function \n *        delta value = transition interval centered at cutoff distance for hyperbolic tangent weight function (ignored if wmode=0, required if wmode=1, only implemented for compute sna/atom) \n", + "examples": "\n```lmps\ncompute b all sna/atom 1.4 0.99363 6 2.0 2.4 0.75 1.0 rmin0 0.0\ncompute db all sna/atom 1.4 0.95 6 2.0 1.0\ncompute vb all sna/atom 1.4 0.95 6 2.0 1.0\ncompute snap all snap 1.4 0.95 6 2.0 1.0\ncompute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 chem 2 0 1\ncompute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 switchinnerflag 1 sinner 1.35 1.6 dinner 0.25 0.3\ncompute bgrid all sna/grid/local 200 200 200 1.4 0.95 6 2.0 1.0\ncompute bnnn all sna/atom 9.0 0.99363 8 0.5 1.0 rmin0 0.0 nnn 24 wmode 1 delta 0.2\n```\n", + "html_filename": "compute_sna_atom.html", + "short_description": "Define a computation that calculates a set of quantities related to the\nbispectrum components of the atoms in a group", + "description": "Define a computation that calculates a set of quantities related to the\nbispectrum components of the atoms in a group. These computes are used\nprimarily for calculating the dependence of energy, force, and stress\ncomponents on the linear coefficients in the [snap pair_style](https://docs.lammps.org/pair_snap.html), which is useful when training a SNAP potential to match\ntarget data.\n\nBispectrum components of an atom are order parameters characterizing the\nradial and angular distribution of neighbor atoms. The detailed\nmathematical definition is given in the paper by Thompson et\nal. **Thompson20141**\n\nThe position of a neighbor atom *i'* relative to a central atom *i* is a\npoint within the 3D ball of radius \\(R_{ii'}\\) = *rcutfac*\n\\((R_i + R_i')\\)\n\nBartok et al. **Bartok20101**, proposed mapping this 3D\nball onto the 3-sphere, the surface of the unit ball in a\nfour-dimensional space. The radial distance *r* within *R_ii'* is\nmapped on to a third polar angle \\(\\theta_0\\) defined by,\n\\[\n \\theta_0 = {\\sf rfac0} \\frac{r-r_{min0}}{R_{ii'}-r_{min0}} \\pi\\]\nIn this way, all possible neighbor positions are mapped on to a subset\nof the 3-sphere. Points south of the latitude \\(\\theta_0\\) =\n*rfac0* \\(\\pi\\) are excluded.\n\nThe natural basis for functions on the 3-sphere is formed by the\nrepresentatives of *SU(2)*, the matrices \\(U^j_{m,m'}(\\theta, \\phi,\n\\theta_0)\\). These functions are better known as \\(D^j_{m,m'}\\), the\nelements of the Wigner *D* -matrices **Meremianin2006**, **Varshalovich1987**, **Mason2009** The density of neighbors on the 3-sphere can be written as\na sum of Dirac-delta functions, one for each neighbor, weighted by\nspecies and radial distance. Expanding this density function as a\ngeneralized Fourier series in the basis functions, we can write each\nFourier coefficient as\n\\[\n u^j_{m,m'} = U^j_{m,m'}(0,0,0) + \\sum_{r_{ii'} < R_{ii'}}{f_c(r_{ii'}) w_{\\mu_{i'}} U^j_{m,m'}(\\theta_0,\\theta,\\phi)}\\]\nThe \\(w_{\\mu_{i'}}\\) neighbor weights are dimensionless numbers that\ndepend on \\(\\mu_{i'}\\), the SNAP element of atom *i'*, while the\ncentral atom is arbitrarily assigned a unit weight. The function\n\\(f_c(r)\\) ensures that the contribution of each neighbor atom goes\nsmoothly to zero at \\(R_{ii'}\\):\n\\[\\begin{align*} \n f_c(r) = & \\frac{1}{2}(\\cos(\\pi \\frac{r-r_{min0}}{R_{ii'}-r_{min0}}) + 1), r \\leq R_{ii'} \\\\\n = & 0, r > R_{ii'} \\end{align*} \\]\nThe expansion coefficients \\(u^j_{m,m'}\\) are complex-valued and\nthey are not directly useful as descriptors, because they are not\ninvariant under rotation of the polar coordinate frame. However, the\nfollowing scalar triple products of expansion coefficients can be shown\nto be real-valued and invariant under rotation **Bartok20101**.\n\\[\n B_{j_1,j_2,j} =\n \\sum_{m_1,m'_1=-j_1}^{j_1}\\sum_{m_2,m'_2=-j_2}^{j_2}\\sum_{m,m'=-j}^{j} (u^j_{m,m'})^*\n H {\\scriptscriptstyle \\begin{array}{l} {j} {m} {m'} \\\\\n {j_1} {m_1} {m'_1} \\\\\n {j_2} {m_2} {m'_2} \\end{array}}\n u^{j_1}_{m_1,m'_1} u^{j_2}_{m_2,m'_2}\\]\nThe constants \\(H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}\\) are\ncoupling coefficients, analogous to Clebsch-Gordan coefficients for\nrotations on the 2-sphere. These invariants are the components of the\nbispectrum and these are the quantities calculated by the compute\n*sna/atom* . They characterize the strength of density correlations at\nthree points on the 3-sphere. The j2=0 subset form the power spectrum,\nwhich characterizes the correlations of two points. The lowest-order\ncomponents describe the coarsest features of the density function, while\nhigher-order components reflect finer detail. Each bispectrum component\ncontains terms that depend on the positions of up to 4 atoms (3\nneighbors and the central atom).\n\nCompute *snad/atom* calculates the derivative of the bispectrum\ncomponents summed separately for each LAMMPS atom type:\n\\[\n -\\sum_{i' \\in I} \\frac{\\partial {B^{i'}_{j_1,j_2,j} }}{\\partial {\\bf r}_i}\\]\nThe sum is over all atoms *i'* of atom type *I* . For each atom *i*,\nthis compute evaluates the above expression for each direction, each\natom type, and each bispectrum component. See section below on output\nfor a detailed explanation.\n\nCompute *snav/atom* calculates the virial contribution due to the\nderivatives:\n\\[\n -{\\bf r}_i \\otimes \\sum_{i' \\in I} \\frac{\\partial {B^{i'}_{j_1,j_2,j}}}{\\partial {\\bf r}_i}\\]\nAgain, the sum is over all atoms *i'* of atom type *I* . For each atom\n*i*, this compute evaluates the above expression for each of the six\nvirial components, each atom type, and each bispectrum component. See\nsection below on output for a detailed explanation.\n\nCompute *snap* calculates a global array containing information related\nto all three of the above per-atom computes *sna/atom*, *snad/atom*,\nand *snav/atom* . The first row of the array contains the summation of\n*sna/atom* over all atoms, but broken out by type. The last six rows of\nthe array contain the summation of *snav/atom* over all atoms, broken\nout by type. In between these are 3\\*\\ *N* rows containing the same\nvalues computed by *snad/atom* (these are already summed over all atoms\nand broken out by type). The element in the last column of each row\ncontains the potential energy, force, or stress, according to the row.\nThese quantities correspond to the user-specified reference potential\nthat must be subtracted from the target data when fitting SNAP. The\npotential energy calculation uses the built in compute *thermo_pe*. The\nstress calculation uses a compute called *snap_press* that is\nautomatically created behind the scenes, according to the following\ncommand:\n\n```lmps\ncompute snap_press all pressure NULL virial\n```\nSee section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe compute *sna/grid* and *sna/grid/local* commands calculate\nbispectrum components for a regular grid of points. These are\ncalculated from the local density of nearby atoms *i'* around each grid\npoint, as if there was a central atom *i* at the grid point. This is\nuseful for characterizing fine-scale structure in a configuration of\natoms, and it is used in the [MALA package](https://github.com/casus/mala) to build machine-learning surrogates\nfor finite-temperature Kohn-Sham density functional theory (:ref:`Ellis\net al. `) Neighbor atoms not in the group do not contribute\nto the bispectrum components of the grid points. The distance cutoff\n\\(R_{ii'}\\) assumes that *i* has the same type as the neighbor atom\n*i'*.\n\nCompute *sna/grid* calculates a global array containing bispectrum\ncomponents for a regular grid of points.\nThe grid is aligned with the current box dimensions, with the\nfirst point at the box origin, and forming a regular 3d array with\n*nx*, *ny*, and *nz* points in the x, y, and z directions. For triclinic\nboxes, the array is congruent with the periodic lattice vectors\na, b, and c. The array contains one row for each of the\n\\(nx \\times ny \\times nz\\) grid points, looping over the index for *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents. See section below on output for a detailed explanation of the data\nlayout in the global array.\n\nCompute *sna/grid/local* calculates bispectrum components of a regular\ngrid of points similarly to compute *sna/grid* described above.\nHowever, because the array is local, it contains only rows for grid points\nthat are local to the processor subdomain. The global grid\nof \\(nx \\times ny \\times nz\\) points is still laid out in space the same as for *sna/grid*,\nbut grid points are strictly partitioned, so that every grid point appears in\none and only one local array. The array contains one row for each of the\nlocal grid points, looping over the global index *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains\nthe global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents. See section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe value of all bispectrum components will be zero for atoms not in\nthe group. Neighbor atoms not in the group do not contribute to the\nbispectrum of atoms in the group.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\nThe argument *rcutfac* is a scale factor that controls the ratio of\natomic radius to radial cutoff distance.\n\nThe argument *rfac0* and the optional keyword *rmin0* define the\nlinear mapping from radial distance to polar angle \\(theta_0\\) on the\n3-sphere, given above.\n\nThe argument *twojmax* defines which\nbispectrum components are generated. See section below on output for a\ndetailed explanation of the number of bispectrum components and the\nordered in which they are listed.\n\nThe keyword *switchflag* can be used to turn off the switching\nfunction \\(f_c(r)\\).\n\nThe keyword *bzeroflag* determines whether or not *B0*, the bispectrum\ncomponents of an atom with no neighbors, are subtracted from the\ncalculated bispectrum components. This optional keyword normally only\naffects compute *sna/atom* . However, when *quadraticflag* is on, it\nalso affects *snad/atom* and *snav/atom* .\n\nThe keyword *quadraticflag* determines whether or not the quadratic\ncombinations of bispectrum quantities are generated. These are formed\nby taking the outer product of the vector of bispectrum components with\nitself. See section below on output for a detailed explanation of the\nnumber of quadratic terms and the ordered in which they are listed.\n\nThe keyword *chem* activates the explicit multi-element variant of the\nSNAP bispectrum components. The argument *nelements* specifies the\nnumber of SNAP elements that will be handled. This is followed by\n*elementlist*, a list of integers of length *ntypes*, with values in the\nrange [0, *nelements* ), which maps each LAMMPS type to one of the SNAP\nelements. Note that multiple LAMMPS types can be mapped to the same\nelement, and some elements may be mapped by no LAMMPS type. However, in\ntypical use cases (training SNAP potentials) the mapping from LAMMPS\ntypes to elements is one-to-one.\n\nThe explicit multi-element variant invoked by the *chem* keyword\npartitions the density of neighbors into partial densities for each\nchemical element. This is described in detail in the paper by\n**Cusentino2020** The bispectrum components are\nindexed on ordered triplets of elements:\n\\[\n B_{j_1,j_2,j}^{\\kappa\\lambda\\mu} =\n \\sum_{m_1,m'_1=-j_1}^{j_1}\\sum_{m_2,m'_2=-j_2}^{j_2}\\sum_{m,m'=-j}^{j} (u^{\\mu}_{j,m,m'})^*\n H {\\scriptscriptstyle \\begin{array}{l} {j} {m} {m'} \\\\\n {j_1} {m_1} {m'_1} \\\\\n {j_2} {m_2} {m'_2} \\end{array}}\n u^{\\kappa}_{j_1,m_1,m'_1} u^{\\lambda}_{j_2,m_2,m'_2}\\]\nwhere \\(u^{\\mu}_{j,m,m'}\\) is an expansion coefficient for the partial density of neighbors\nof element \\(\\mu\\)\n\\[\n u^{\\mu}_{j,m,m'} = w^{self}_{\\mu_{i}\\mu} U^{j,m,m'}(0,0,0) + \\sum_{r_{ii'} < R_{ii'}}{\\delta_{\\mu\\mu_{i'}}f_c(r_{ii'}) w_{\\mu_{i'}} U^{j,m,m'}(\\theta_0,\\theta,\\phi)}\\]\nwhere \\(w^{self}_{\\mu_{i}\\mu}\\) is the self-contribution, which is\neither 1 or 0 (see keyword *wselfallflag* below),\n\\(\\delta_{\\mu\\mu_{i'}}\\) indicates that the sum is only over\nneighbor atoms of element \\(\\mu\\), and all other quantities are the\nsame as those appearing in the original equation for \\(u^j_{m,m'}\\)\ngiven above.\n\nThe keyword *wselfallflag* defines the rule used for the\nself-contribution. If *wselfallflag* is on, then\n\\(w^{self}_{\\mu_{i}\\mu}\\) = 1. If it is off then\n\\(w^{self}_{\\mu_{i}\\mu}\\) = 0, except in the case of\n\\({\\mu_{i}=\\mu}\\), when \\(w^{self}_{\\mu_{i}\\mu}\\) = 1. When the\n*chem* keyword is not used, this keyword has no effect.\n\nThe keyword *bnormflag* determines whether or not the bispectrum\ncomponent \\(B_{j_1,j_2,j}\\) is divided by a factor of \\(2j+1\\).\nThis normalization simplifies force calculations because of the\nfollowing symmetry relation\n\\[.. math::\\]\n \\frac{B_{j_1,j_2,j}}{2j+1} = \\frac{B_{j,j_2,j_1}}{2j_1+1} = \\frac{B_{j_1,j,j_2}}{2j_2+1}\n\nThis option is typically used in conjunction with the *chem* keyword,\nand LAMMPS will generate a warning if both *chem* and *bnormflag*\nare not both set or not both unset.\n\nThe keyword *switchinnerflag* with value 1\nactivates an additional radial switching\nfunction similar to \\(f_c(r)\\) above, but acting to switch off\nsmoothly contributions from neighbor atoms at short separation distances.\nThis is useful when SNAP is used in combination with a simple\nrepulsive potential. For a neighbor atom at\ndistance \\(r\\), its contribution is scaled by a multiplicative\nfactor \\(f_{inner}(r)\\) defined as follows:\n\\[\\begin{align*} \n = & 0, r \\leq S_{inner} - D_{inner} \\\\\n f_{inner}(r) = & \\frac{1}{2}(1 - \\cos(\\frac{\\pi}{2} (1 + \\frac{r-S_{inner}}{D_{inner}})), S_{inner} - D_{inner} < r \\leq S_{inner} + D_{inner} \\\\\n = & 1, r > S_{inner} + D_{inner} \\end{align*} \\]\nwhere the switching region is centered at \\(S_{inner}\\) and it extends a distance \\(D_{inner}\\)\nto the left and to the right of this.\nWith this option, additional keywords *sinner* and *dinner* must be used,\neach followed by *ntypes*\nvalues for \\(S_{inner}\\) and \\(D_{inner}\\), respectively.\nWhen the central atom and the neighbor atom have different types,\nthe values of \\(S_{inner}\\) and \\(D_{inner}\\) are\nthe arithmetic means of the values for both types.\n\nThe keywords *bikflag* and *dgradflag* are only used by compute *snap*.\nThe keyword *bikflag* determines whether or not to list the descriptors\nof each atom separately, or sum them together and list in a single row.\nIf *bikflag* is set\nto *0* then a single bispectrum row is used, which contains the per-atom bispectrum\ndescriptors \\(B_{i,k}\\) summed over all atoms *i* to produce\n\\(B_k\\). If *bikflag* is set\nto *1* this is replaced by a separate per-atom bispectrum row for each atom.\nIn this case, the entries in the final column for these rows\nare set to zero.\n\nThe keyword *dgradflag* determines whether to sum atom gradients or list\nthem separately. If *dgradflag* is set to 0, the bispectrum\ndescriptor gradients w.r.t. atom *j* are summed over all atoms *i'*\nof type *I* (similar to *snad/atom* above).\nIf *dgradflag* is set to 1, gradients are listed separately for each pair of atoms.\nEach row corresponds\nto a single term \\(\\frac{\\partial {B_{i,k} }}{\\partial {r}^a_j}\\)\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. This also changes\nthe number of columns to be equal to the number of bispectrum components, with 3\nadditional columns representing the indices \\(i\\), \\(j\\), and \\(a\\),\nas explained more in the Output info section below. The option *dgradflag=1*\nrequires that *bikflag=1*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *dgradflag* = 1 produces a global array with \\(N + 3N^2 + 1\\) rows\n > which becomes expensive for systems with more than 1000 atoms. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of [special_bonds > ](https://docs.lammps.org/special_bonds.html) command can remove pairwise interactions between\n > atoms in the same bond, angle, or dihedral. This is the default\n > setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, and\n > means those pairwise interactions do not appear in the neighbor list.\n > Because this fix uses the neighbor list, it also means those pairs\n > will not be included in the calculation. One way to get around this,\n > is to write a dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the bispectrum components for snapshots in the dump file.\n > The rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command that includes all pairs in the neighbor list. \n > \n\nThe keyword *nnn* allows for the calculation of the bispectrum over a\nspecific target number of neighbors. This option is only implemented for\nthe compute *sna/atom* . An optimal cutoff radius for defining the\nneighborhood of the central atom is calculated by means of a dichotomy\nalgorithm. This iterative process allows to assign weights to\nneighboring atoms in order to match the total sum of weights with the\ntarget number of neighbors. Depending on the radial weight function\nused in that process, the cutoff radius can fluctuate a lot in the\npresence of thermal noise. Therefore, in addition to the *nnn* keyword,\nthe keyword *wmode* allows to choose whether a Heaviside (*wmode* = 0)\nfunction or a Hyperbolic tangent function (*wmode* = 1) should be used.\nIf the Heaviside function is used, the cutoff radius exactly matches the\ndistance between the central atom an its *nnn*'th neighbor. However, in\nthe case of the hyperbolic tangent function, the dichotomy algorithm\nallows to span the weights over a distance *delta* in order to reduce\nfluctuations in the resulting local atomic environment fingerprint. The\ndetailed formalism is given in the paper by Lafourcade et\nal. **Lafourcade2023_2**.\n\n----------\n\n #### Output info\n\nCompute *sna/atom* calculates a per-atom array, each column\ncorresponding to a particular bispectrum component. The total number of\ncolumns and the identity of the bispectrum component contained in each\ncolumn depend of the value of *twojmax*, as described by the following\npiece of python code:\n\n```\nfor j1 in range(0,twojmax+1):\nfor j2 in range(0,j1+1):\nfor j in range(j1-j2,min(twojmax,j1+j2)+1,2):\nif (j>=j1): print j1/2.,j2/2.,j/2.\n```\nThere are \\(m(m+1)/2\\) descriptors with last index *j*,\nwhere *m* = \\(\\lfloor j \\rfloor + 1\\).\nHence, for even *twojmax* = 2(*m* -1), \\(K = m(m+1)(2m+1)/6\\), the *m* -th pyramidal number,\nand for odd *twojmax* = 2 *m* -1, \\(K = m(m+1)(m+2)/3\\), twice the *m* -th tetrahedral number.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the *diagonal* keyword allowing other possible choices\n > for the number of bispectrum components was removed in 2019,\n > since all potentials use the value of 3, corresponding to the\n > above set of bispectrum components. \n > \n\nCompute *snad/atom* evaluates a per-atom array. The columns are arranged\ninto *ntypes* blocks, listed in order of atom type *I* . Each block\ncontains three sub-blocks corresponding to the *x*, *y*, and *z*\ncomponents of the atom position. Each of these sub-blocks contains *K*\ncolumns for the *K* bispectrum components, the same as for compute\n*sna/atom*\n\nCompute *snav/atom* evaluates a per-atom array. The columns are arranged\ninto *ntypes* blocks, listed in order of atom type *I* . Each block\ncontains six sub-blocks corresponding to the *xx*, *yy*, *zz*,\n*yz*, *xz*, and *xy* components of the virial tensor in Voigt\nnotation. Each of these sub-blocks contains *K* columns for the *K*\nbispectrum components, the same as for compute *sna/atom*\n\nCompute *snap* evaluates a global array. The columns are arranged into\n*ntypes* blocks, listed in order of atom type *I* . Each block contains\none column for each bispectrum component, the same as for compute\n*sna/atom* . A final column contains the corresponding energy, force\ncomponent on an atom, or virial stress component. The rows of the array\nappear in the following order:\n\n* 1 row: *sna/atom* quantities summed for all atoms of type *I*\n* 3\\*\\ *N* rows: *snad/atom* quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID.\n* 6 rows: *snav/atom* quantities summed for all atoms of type *I*\n\nFor example, if *K* =30 and ntypes=1, the number of columns in the\nper-atom arrays generated by *sna/atom*, *snad/atom*, and\n*snav/atom* are 30, 90, and 180, respectively. With *quadratic* value=1,\nthe numbers of columns are 930, 2790, and 5580, respectively. The\nnumber of columns in the global array generated by *snap* are 31, and\n931, respectively, while the number of rows is 1+3\\*\\ *N* +6, where *N*\nis the total number of atoms.\n\nCompute *sna/grid* evaluates a global array.\nThe array contains one row for each of the\n\\(nx \\times ny \\times nz\\) grid points, looping over the index for *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents.\n\nCompute *sna/grid/local* evaluates a local array.\nThe array contains one row for each of the\nlocal grid points, looping over the global index *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains\nthe global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents.\n\nIf the *quadratic* keyword value is set to 1, then additional columns\nare generated, corresponding to the products of all distinct pairs of\nbispectrum components. If the number of bispectrum components is *K*,\nthen the number of distinct pairs is *K* (\\ *K* +1)/2. For compute\n*sna/atom* these columns are appended to existing *K* columns. The\nordering of quadratic terms is upper-triangular, (1,1),(1,2)...(1,\\ *K*\n),(2,1)...(\\ *K* -1,\\ *K* -1),(\\ *K* -1,\\ *K* ),(\\ *K*,\\ *K* ).\nFor computes *snad/atom* and *snav/atom* each set of *K* (\\ *K* +1)/2\nadditional columns is inserted directly after each of sub-block of\nlinear terms i.e. linear and quadratic terms are contiguous. So the\nnesting order from inside to outside is bispectrum component, linear\nthen quadratic, vector/tensor component, type.\n\nIf the *chem* keyword is used, then the data is arranged into\n\\(N_{elem}^3\\) sub-blocks, each sub-block corresponding to a\nparticular chemical labeling \\(\\kappa\\lambda\\mu\\) with the last\nlabel changing fastest. Each sub-block contains *K* bispectrum\ncomponents. For the purposes of handling contributions to force, virial,\nand quadratic combinations, these \\(N_{elem}^3\\) sub-blocks are\ntreated as a single block of \\(K N_{elem}^3\\) columns.\n\nIf the *bik* keyword is set to 1, the structure of the snap array is expanded.\nThe first \\(N\\) rows of the snap array\ncorrespond to \\(B_{i,k}\\) instead of a single row summed over atoms \\(i\\).\nIn this case, the entries in the final column for these rows\nare set to zero. Also, each row contains only non-zero entries for the\ncolumns corresponding to the type of that atom. This is not true in the case\nof *dgradflag* keyword = 1 (see below).\n\nIf the *dgradflag* keyword is set to 1, this changes the structure of the\nglobal array completely.\nHere the *snad/atom* quantities are replaced with rows corresponding to\ndescriptor gradient components on single atoms:\n\\[\n \\frac{\\partial {B_{i,k} }}{\\partial {r}^a_j}\\]\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. The rows are\norganized in chunks, where each chunk corresponds to an atom with global index\n\\(j\\). The rows in an atom \\(j\\) chunk correspond to\natoms with global index \\(i\\). The total number of rows for\nthese descriptor gradients is therefore \\(3N^2\\).\nThe number of columns is equal to the number of bispectrum components,\nplus 3 additional left-most columns representing the global atom indices\n\\(i\\), \\(j\\),\nand Cartesian direction \\(a\\) (0, 1, 2, for x, y, z).\nThe first 3 columns of the first \\(N\\) rows belong to the reference\npotential force components. The remaining K columns contain the\n\\(B_{i,k}\\) per-atom descriptors corresponding to the non-zero entries\nobtained when *bikflag* = 1.\nThe first column of the last row, after the first\n\\(N + 3N^2\\) rows, contains the reference potential\nenergy. The virial components are not used with this option. The total number of\nrows is therefore \\(N + 3N^2 + 1\\) and the number of columns is \\(K + 3\\).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options. To see how this command\ncan be used within a Python workflow to train SNAP potentials, see the\nexamples in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n\n**(Thompson20141)** Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316, (2015). \n \n**(Bartok20101)** Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Meremianin2006)** Meremianin, J. Phys. A, 39, 3099 (2006). \n \n**(Varshalovich1987)** Varshalovich, Moskalev, Khersonskii, Quantum Theory\nof Angular Momentum, World Scientific, Singapore (1987). \n \n**(Mason2009)** J. K. Mason, Acta Cryst A65, 259 (2009). \n \n**(Bartok20101)** Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Cusentino2020)** Cusentino, Wood, Thompson, J Phys Chem A, 124, 5456, (2020) \n \n**(Lafourcade2023_2)** Lafourcade, Maillet, Denoual, Duval, Allera, Goryaeva, and Marinica,\n[Comp. Mat. Science, 230, 112534 (2023)](https://doi.org/10.1016/j.commatsci.2023.112534) \n ", + "restrictions": "These computes are part of the ML-SNAP package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html)\n[compute slcsa/atom ](https://docs.lammps.org/compute_slcsa_atom.html)\n" +}, +{ + "command": [ + "fix_modify AtC source_integration" + ], + "syntax": [ + "fix_modify source_integration " + ], + "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "source_integration", + "type": 1, "choices": [] }, { - "arg": "sna/grid", - "type": 2, + "arg": "", + "type": 3, + "choices": [ + "fe", + "atom" + ] + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* source_integration = name of the AtC sub-command\n* fe or atom = (undocumented) \n", + "examples": "\n```lmps\nfix_modify AtC source_integration atom\n```\n", + "html_filename": "atc_source_integration.html", + "short_description": "(undocumented)\n", + "description": "(undocumented)\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" +}, +{ + "command": [ + "fix mol/swap" + ], + "syntax": [ + "fix ID group-ID mol/swap N X itype jtype seed T keyword value ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, "choices": [] }, { - "arg": "nx", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "ny", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "nz", - "type": 2, + "arg": "mol/swap", + "type": 1, "choices": [] }, { - "arg": "rcutfac", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "rfac0", + "arg": "X", "type": 2, "choices": [] }, { - "arg": "twojmax", + "arg": "itype", "type": 2, "choices": [] }, { - "arg": "R_1", + "arg": "jtype", "type": 2, "choices": [] }, { - "arg": "R_2", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "w_1", + "arg": "T", "type": 2, "choices": [] }, { - "arg": "w_2", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "delta", - "type": 3, - "choices": [ - "rmin0", - "switchflag", - "bzeroflag", - "quadraticflag", - "chem", - "bnormflag", - "wselfallflag", - "bikflag", - "switchinnerflag", - "sinner", - "dinner", - "dgradflag", - "nnn", - "wmode", - "delta" - ] - }, - { - "arg": "values", - "type": 2, - "choices": [] - } - ], - [ - { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "sna/grid/local", - "type": 2, - "choices": [] - }, - { - "arg": "nx", - "type": 2, - "choices": [] - }, - { - "arg": "ny", - "type": 2, - "choices": [] - }, - { - "arg": "nz", - "type": 2, - "choices": [] - }, - { - "arg": "rcutfac", - "type": 2, - "choices": [] - }, - { - "arg": "rfac0", - "type": 2, - "choices": [] - }, - { - "arg": "twojmax", - "type": 2, - "choices": [] - }, - { - "arg": "R_1", - "type": 2, - "choices": [] - }, - { - "arg": "R_2", - "type": 2, - "choices": [] - }, - { - "arg": "w_1", - "type": 2, - "choices": [] - }, - { - "arg": "w_2", - "type": 2, - "choices": [] - }, - { - "arg": "delta", - "type": 3, - "choices": [ - "rmin0", - "switchflag", - "bzeroflag", - "quadraticflag", - "chem", - "bnormflag", - "wselfallflag", - "bikflag", - "switchinnerflag", - "sinner", - "dinner", - "dgradflag", - "nnn", - "wmode", - "delta" - ] - }, - { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sna/atom = style name of this compute command\n* rcutfac = scale factor applied to all cutoff radii (positive real)\n* rfac0 = parameter in distance to angle conversion (0 < rcutfac < 1)\n* twojmax = band limit for bispectrum components (non-negative integer)\n* R_1, R_2,... = list of cutoff radii, one for each type (distance units)\n* w_1, w_2,... = list of neighbor weights, one for each type\n* nx, ny, nz = number of grid points in x, y, and z directions (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = rmin0 or switchflag or bzeroflag or quadraticflag or chem or bnormflag or wselfallflag or bikflag or switchinnerflag or sinner or dinner or dgradflag or nnn or wmode or delta \n *        rmin0 value = parameter in distance to angle conversion (distance units) \n *        switchflag value = 0 or 1 \n         0 = do not use switching function \n         1 = use switching function \n *        bzeroflag value = 0 or 1 \n         0 = do not subtract B0 \n         1 = subtract B0 \n *        quadraticflag value = 0 or 1 \n         0 = do not generate quadratic terms \n         1 = generate quadratic terms \n *        chem values = nelements elementlist \n         nelements = number of SNAP elements \n         elementlist = ntypes integers in range [0, nelements) \n *        bnormflag value = 0 or 1 \n         0 = do not normalize \n         1 = normalize bispectrum components \n *        wselfallflag value = 0 or 1 \n         0 = self-contribution only for element of central atom \n         1 = self-contribution for all elements \n *        switchinnerflag value = 0 or 1 \n         0 = do not use inner switching function \n         1 = use inner switching function \n *        sinner values = sinnerlist \n         sinnerlist = ntypes values of Sinner (distance units) \n *        dinner values = dinnerlist \n         dinnerlist = ntypes values of Dinner (distance units) \n *        bikflag value = 0 or 1 (only implemented for compute snap) \n         0 = descriptors are summed over atoms of each type \n         1 = descriptors are listed separately for each atom \n *        dgradflag value = 0 or 1 (only implemented for compute snap) \n         0 = descriptor gradients are summed over atoms of each type \n         1 = descriptor gradients are listed separately for each atom pair \n* additional keyword = nnn or wmode or delta \n *        nnn value = number of considered nearest neighbors to compute the bispectrum over a target specific number of neighbors (only implemented for compute sna/atom) \n *        wmode value = weight function for finding optimal cutoff to match the target number of neighbors (required if nnn used, only implemented for compute sna/atom) \n         0 = heavyside weight function \n         1 = hyperbolic tangent weight function \n *        delta value = transition interval centered at cutoff distance for hyperbolic tangent weight function (ignored if wmode=0, required if wmode=1, only implemented for compute sna/atom) \n", - "examples": "\n```lmps\ncompute b all sna/atom 1.4 0.99363 6 2.0 2.4 0.75 1.0 rmin0 0.0\ncompute db all sna/atom 1.4 0.95 6 2.0 1.0\ncompute vb all sna/atom 1.4 0.95 6 2.0 1.0\ncompute snap all snap 1.4 0.95 6 2.0 1.0\ncompute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 chem 2 0 1\ncompute snap all snap 1.0 0.99363 6 3.81 3.83 1.0 0.93 switchinnerflag 1 sinner 1.35 1.6 dinner 0.25 0.3\ncompute bgrid all sna/grid/local 200 200 200 1.4 0.95 6 2.0 1.0\ncompute bnnn all sna/atom 9.0 0.99363 8 0.5 1.0 rmin0 0.0 nnn 24 wmode 1 delta 0.2\n```\n", - "html_filename": "compute_sna_atom.html", - "short_description": "Define a computation that calculates a set of quantities related to the\nbispectrum components of the atoms in a group", - "description": "Define a computation that calculates a set of quantities related to the\nbispectrum components of the atoms in a group. These computes are used\nprimarily for calculating the dependence of energy, force, and stress\ncomponents on the linear coefficients in the [snap pair_style](https://docs.lammps.org/pair_snap.html), which is useful when training a SNAP potential to match\ntarget data.\n\nBispectrum components of an atom are order parameters characterizing the\nradial and angular distribution of neighbor atoms. The detailed\nmathematical definition is given in the paper by Thompson et\nal. **Thompson20141**\n\nThe position of a neighbor atom *i'* relative to a central atom *i* is a\npoint within the 3D ball of radius \\(R_{ii'}\\) = *rcutfac*\n\\((R_i + R_i')\\)\n\nBartok et al. **Bartok20101**, proposed mapping this 3D\nball onto the 3-sphere, the surface of the unit ball in a\nfour-dimensional space. The radial distance *r* within *R_ii'* is\nmapped on to a third polar angle \\(\\theta_0\\) defined by,\n\\[\n \\theta_0 = {\\sf rfac0} \\frac{r-r_{min0}}{R_{ii'}-r_{min0}} \\pi\\]\nIn this way, all possible neighbor positions are mapped on to a subset\nof the 3-sphere. Points south of the latitude \\(\\theta_0\\) =\n*rfac0* \\(\\pi\\) are excluded.\n\nThe natural basis for functions on the 3-sphere is formed by the\nrepresentatives of *SU(2)*, the matrices \\(U^j_{m,m'}(\\theta, \\phi,\n\\theta_0)\\). These functions are better known as \\(D^j_{m,m'}\\), the\nelements of the Wigner *D* -matrices **Meremianin2006**, **Varshalovich1987**, **Mason2009** The density of neighbors on the 3-sphere can be written as\na sum of Dirac-delta functions, one for each neighbor, weighted by\nspecies and radial distance. Expanding this density function as a\ngeneralized Fourier series in the basis functions, we can write each\nFourier coefficient as\n\\[\n u^j_{m,m'} = U^j_{m,m'}(0,0,0) + \\sum_{r_{ii'} < R_{ii'}}{f_c(r_{ii'}) w_{\\mu_{i'}} U^j_{m,m'}(\\theta_0,\\theta,\\phi)}\\]\nThe \\(w_{\\mu_{i'}}\\) neighbor weights are dimensionless numbers that\ndepend on \\(\\mu_{i'}\\), the SNAP element of atom *i'*, while the\ncentral atom is arbitrarily assigned a unit weight. The function\n\\(f_c(r)\\) ensures that the contribution of each neighbor atom goes\nsmoothly to zero at \\(R_{ii'}\\):\n\\[\\begin{align*} \n f_c(r) = & \\frac{1}{2}(\\cos(\\pi \\frac{r-r_{min0}}{R_{ii'}-r_{min0}}) + 1), r \\leq R_{ii'} \\\\\n = & 0, r > R_{ii'} \\end{align*} \\]\nThe expansion coefficients \\(u^j_{m,m'}\\) are complex-valued and\nthey are not directly useful as descriptors, because they are not\ninvariant under rotation of the polar coordinate frame. However, the\nfollowing scalar triple products of expansion coefficients can be shown\nto be real-valued and invariant under rotation **Bartok20101**.\n\\[\n B_{j_1,j_2,j} =\n \\sum_{m_1,m'_1=-j_1}^{j_1}\\sum_{m_2,m'_2=-j_2}^{j_2}\\sum_{m,m'=-j}^{j} (u^j_{m,m'})^*\n H {\\scriptscriptstyle \\begin{array}{l} {j} {m} {m'} \\\\\n {j_1} {m_1} {m'_1} \\\\\n {j_2} {m_2} {m'_2} \\end{array}}\n u^{j_1}_{m_1,m'_1} u^{j_2}_{m_2,m'_2}\\]\nThe constants \\(H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}\\) are\ncoupling coefficients, analogous to Clebsch-Gordan coefficients for\nrotations on the 2-sphere. These invariants are the components of the\nbispectrum and these are the quantities calculated by the compute\n*sna/atom* . They characterize the strength of density correlations at\nthree points on the 3-sphere. The j2=0 subset form the power spectrum,\nwhich characterizes the correlations of two points. The lowest-order\ncomponents describe the coarsest features of the density function, while\nhigher-order components reflect finer detail. Each bispectrum component\ncontains terms that depend on the positions of up to 4 atoms (3\nneighbors and the central atom).\n\nCompute *snad/atom* calculates the derivative of the bispectrum\ncomponents summed separately for each LAMMPS atom type:\n\\[\n -\\sum_{i' \\in I} \\frac{\\partial {B^{i'}_{j_1,j_2,j} }}{\\partial {\\bf r}_i}\\]\nThe sum is over all atoms *i'* of atom type *I* . For each atom *i*,\nthis compute evaluates the above expression for each direction, each\natom type, and each bispectrum component. See section below on output\nfor a detailed explanation.\n\nCompute *snav/atom* calculates the virial contribution due to the\nderivatives:\n\\[\n -{\\bf r}_i \\otimes \\sum_{i' \\in I} \\frac{\\partial {B^{i'}_{j_1,j_2,j}}}{\\partial {\\bf r}_i}\\]\nAgain, the sum is over all atoms *i'* of atom type *I* . For each atom\n*i*, this compute evaluates the above expression for each of the six\nvirial components, each atom type, and each bispectrum component. See\nsection below on output for a detailed explanation.\n\nCompute *snap* calculates a global array containing information related\nto all three of the above per-atom computes *sna/atom*, *snad/atom*,\nand *snav/atom* . The first row of the array contains the summation of\n*sna/atom* over all atoms, but broken out by type. The last six rows of\nthe array contain the summation of *snav/atom* over all atoms, broken\nout by type. In between these are 3\\*\\ *N* rows containing the same\nvalues computed by *snad/atom* (these are already summed over all atoms\nand broken out by type). The element in the last column of each row\ncontains the potential energy, force, or stress, according to the row.\nThese quantities correspond to the user-specified reference potential\nthat must be subtracted from the target data when fitting SNAP. The\npotential energy calculation uses the built in compute *thermo_pe*. The\nstress calculation uses a compute called *snap_press* that is\nautomatically created behind the scenes, according to the following\ncommand:\n\n```lmps\ncompute snap_press all pressure NULL virial\n```\nSee section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe compute *sna/grid* and *sna/grid/local* commands calculate\nbispectrum components for a regular grid of points. These are\ncalculated from the local density of nearby atoms *i'* around each grid\npoint, as if there was a central atom *i* at the grid point. This is\nuseful for characterizing fine-scale structure in a configuration of\natoms, and it is used in the [MALA package](https://github.com/casus/mala) to build machine-learning surrogates\nfor finite-temperature Kohn-Sham density functional theory (:ref:`Ellis\net al. `) Neighbor atoms not in the group do not contribute\nto the bispectrum components of the grid points. The distance cutoff\n\\(R_{ii'}\\) assumes that *i* has the same type as the neighbor atom\n*i'*.\n\nCompute *sna/grid* calculates a global array containing bispectrum\ncomponents for a regular grid of points.\nThe grid is aligned with the current box dimensions, with the\nfirst point at the box origin, and forming a regular 3d array with\n*nx*, *ny*, and *nz* points in the x, y, and z directions. For triclinic\nboxes, the array is congruent with the periodic lattice vectors\na, b, and c. The array contains one row for each of the\n\\(nx \\times ny \\times nz\\) grid points, looping over the index for *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents. See section below on output for a detailed explanation of the data\nlayout in the global array.\n\nCompute *sna/grid/local* calculates bispectrum components of a regular\ngrid of points similarly to compute *sna/grid* described above.\nHowever, because the array is local, it contains only rows for grid points\nthat are local to the processor subdomain. The global grid\nof \\(nx \\times ny \\times nz\\) points is still laid out in space the same as for *sna/grid*,\nbut grid points are strictly partitioned, so that every grid point appears in\none and only one local array. The array contains one row for each of the\nlocal grid points, looping over the global index *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains\nthe global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents. See section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe value of all bispectrum components will be zero for atoms not in\nthe group. Neighbor atoms not in the group do not contribute to the\nbispectrum of atoms in the group.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\nThe argument *rcutfac* is a scale factor that controls the ratio of\natomic radius to radial cutoff distance.\n\nThe argument *rfac0* and the optional keyword *rmin0* define the\nlinear mapping from radial distance to polar angle \\(theta_0\\) on the\n3-sphere, given above.\n\nThe argument *twojmax* defines which\nbispectrum components are generated. See section below on output for a\ndetailed explanation of the number of bispectrum components and the\nordered in which they are listed.\n\nThe keyword *switchflag* can be used to turn off the switching\nfunction \\(f_c(r)\\).\n\nThe keyword *bzeroflag* determines whether or not *B0*, the bispectrum\ncomponents of an atom with no neighbors, are subtracted from the\ncalculated bispectrum components. This optional keyword normally only\naffects compute *sna/atom* . However, when *quadraticflag* is on, it\nalso affects *snad/atom* and *snav/atom* .\n\nThe keyword *quadraticflag* determines whether or not the quadratic\ncombinations of bispectrum quantities are generated. These are formed\nby taking the outer product of the vector of bispectrum components with\nitself. See section below on output for a detailed explanation of the\nnumber of quadratic terms and the ordered in which they are listed.\n\nThe keyword *chem* activates the explicit multi-element variant of the\nSNAP bispectrum components. The argument *nelements* specifies the\nnumber of SNAP elements that will be handled. This is followed by\n*elementlist*, a list of integers of length *ntypes*, with values in the\nrange [0, *nelements* ), which maps each LAMMPS type to one of the SNAP\nelements. Note that multiple LAMMPS types can be mapped to the same\nelement, and some elements may be mapped by no LAMMPS type. However, in\ntypical use cases (training SNAP potentials) the mapping from LAMMPS\ntypes to elements is one-to-one.\n\nThe explicit multi-element variant invoked by the *chem* keyword\npartitions the density of neighbors into partial densities for each\nchemical element. This is described in detail in the paper by\n**Cusentino2020** The bispectrum components are\nindexed on ordered triplets of elements:\n\\[\n B_{j_1,j_2,j}^{\\kappa\\lambda\\mu} =\n \\sum_{m_1,m'_1=-j_1}^{j_1}\\sum_{m_2,m'_2=-j_2}^{j_2}\\sum_{m,m'=-j}^{j} (u^{\\mu}_{j,m,m'})^*\n H {\\scriptscriptstyle \\begin{array}{l} {j} {m} {m'} \\\\\n {j_1} {m_1} {m'_1} \\\\\n {j_2} {m_2} {m'_2} \\end{array}}\n u^{\\kappa}_{j_1,m_1,m'_1} u^{\\lambda}_{j_2,m_2,m'_2}\\]\nwhere \\(u^{\\mu}_{j,m,m'}\\) is an expansion coefficient for the partial density of neighbors\nof element \\(\\mu\\)\n\\[\n u^{\\mu}_{j,m,m'} = w^{self}_{\\mu_{i}\\mu} U^{j,m,m'}(0,0,0) + \\sum_{r_{ii'} < R_{ii'}}{\\delta_{\\mu\\mu_{i'}}f_c(r_{ii'}) w_{\\mu_{i'}} U^{j,m,m'}(\\theta_0,\\theta,\\phi)}\\]\nwhere \\(w^{self}_{\\mu_{i}\\mu}\\) is the self-contribution, which is\neither 1 or 0 (see keyword *wselfallflag* below),\n\\(\\delta_{\\mu\\mu_{i'}}\\) indicates that the sum is only over\nneighbor atoms of element \\(\\mu\\), and all other quantities are the\nsame as those appearing in the original equation for \\(u^j_{m,m'}\\)\ngiven above.\n\nThe keyword *wselfallflag* defines the rule used for the\nself-contribution. If *wselfallflag* is on, then\n\\(w^{self}_{\\mu_{i}\\mu}\\) = 1. If it is off then\n\\(w^{self}_{\\mu_{i}\\mu}\\) = 0, except in the case of\n\\({\\mu_{i}=\\mu}\\), when \\(w^{self}_{\\mu_{i}\\mu}\\) = 1. When the\n*chem* keyword is not used, this keyword has no effect.\n\nThe keyword *bnormflag* determines whether or not the bispectrum\ncomponent \\(B_{j_1,j_2,j}\\) is divided by a factor of \\(2j+1\\).\nThis normalization simplifies force calculations because of the\nfollowing symmetry relation\n\\[.. math::\\]\n \\frac{B_{j_1,j_2,j}}{2j+1} = \\frac{B_{j,j_2,j_1}}{2j_1+1} = \\frac{B_{j_1,j,j_2}}{2j_2+1}\n\nThis option is typically used in conjunction with the *chem* keyword,\nand LAMMPS will generate a warning if both *chem* and *bnormflag*\nare not both set or not both unset.\n\nThe keyword *switchinnerflag* with value 1\nactivates an additional radial switching\nfunction similar to \\(f_c(r)\\) above, but acting to switch off\nsmoothly contributions from neighbor atoms at short separation distances.\nThis is useful when SNAP is used in combination with a simple\nrepulsive potential. For a neighbor atom at\ndistance \\(r\\), its contribution is scaled by a multiplicative\nfactor \\(f_{inner}(r)\\) defined as follows:\n\\[\\begin{align*} \n = & 0, r \\leq S_{inner} - D_{inner} \\\\\n f_{inner}(r) = & \\frac{1}{2}(1 - \\cos(\\frac{\\pi}{2} (1 + \\frac{r-S_{inner}}{D_{inner}})), S_{inner} - D_{inner} < r \\leq S_{inner} + D_{inner} \\\\\n = & 1, r > S_{inner} + D_{inner} \\end{align*} \\]\nwhere the switching region is centered at \\(S_{inner}\\) and it extends a distance \\(D_{inner}\\)\nto the left and to the right of this.\nWith this option, additional keywords *sinner* and *dinner* must be used,\neach followed by *ntypes*\nvalues for \\(S_{inner}\\) and \\(D_{inner}\\), respectively.\nWhen the central atom and the neighbor atom have different types,\nthe values of \\(S_{inner}\\) and \\(D_{inner}\\) are\nthe arithmetic means of the values for both types.\n\nThe keywords *bikflag* and *dgradflag* are only used by compute *snap*.\nThe keyword *bikflag* determines whether or not to list the descriptors\nof each atom separately, or sum them together and list in a single row.\nIf *bikflag* is set\nto *0* then a single bispectrum row is used, which contains the per-atom bispectrum\ndescriptors \\(B_{i,k}\\) summed over all atoms *i* to produce\n\\(B_k\\). If *bikflag* is set\nto *1* this is replaced by a separate per-atom bispectrum row for each atom.\nIn this case, the entries in the final column for these rows\nare set to zero.\n\nThe keyword *dgradflag* determines whether to sum atom gradients or list\nthem separately. If *dgradflag* is set to 0, the bispectrum\ndescriptor gradients w.r.t. atom *j* are summed over all atoms *i'*\nof type *I* (similar to *snad/atom* above).\nIf *dgradflag* is set to 1, gradients are listed separately for each pair of atoms.\nEach row corresponds\nto a single term \\(\\frac{\\partial {B_{i,k} }}{\\partial {r}^a_j}\\)\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. This also changes\nthe number of columns to be equal to the number of bispectrum components, with 3\nadditional columns representing the indices \\(i\\), \\(j\\), and \\(a\\),\nas explained more in the Output info section below. The option *dgradflag=1*\nrequires that *bikflag=1*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *dgradflag* = 1 produces a global array with \\(N + 3N^2 + 1\\) rows\n > which becomes expensive for systems with more than 1000 atoms. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of [special_bonds > ](https://docs.lammps.org/special_bonds.html) command can remove pairwise interactions between\n > atoms in the same bond, angle, or dihedral. This is the default\n > setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, and\n > means those pairwise interactions do not appear in the neighbor list.\n > Because this fix uses the neighbor list, it also means those pairs\n > will not be included in the calculation. One way to get around this,\n > is to write a dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the bispectrum components for snapshots in the dump file.\n > The rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command that includes all pairs in the neighbor list. \n > \n\nThe keyword *nnn* allows for the calculation of the bispectrum over a\nspecific target number of neighbors. This option is only implemented for\nthe compute *sna/atom* . An optimal cutoff radius for defining the\nneighborhood of the central atom is calculated by means of a dichotomy\nalgorithm. This iterative process allows to assign weights to\nneighboring atoms in order to match the total sum of weights with the\ntarget number of neighbors. Depending on the radial weight function\nused in that process, the cutoff radius can fluctuate a lot in the\npresence of thermal noise. Therefore, in addition to the *nnn* keyword,\nthe keyword *wmode* allows to choose whether a Heaviside (*wmode* = 0)\nfunction or a Hyperbolic tangent function (*wmode* = 1) should be used.\nIf the Heaviside function is used, the cutoff radius exactly matches the\ndistance between the central atom an its *nnn*'th neighbor. However, in\nthe case of the hyperbolic tangent function, the dichotomy algorithm\nallows to span the weights over a distance *delta* in order to reduce\nfluctuations in the resulting local atomic environment fingerprint. The\ndetailed formalism is given in the paper by Lafourcade et\nal. **Lafourcade2023_2**.\n\n----------\n\n #### Output info\n\nCompute *sna/atom* calculates a per-atom array, each column\ncorresponding to a particular bispectrum component. The total number of\ncolumns and the identity of the bispectrum component contained in each\ncolumn depend of the value of *twojmax*, as described by the following\npiece of python code:\n\n```\nfor j1 in range(0,twojmax+1):\nfor j2 in range(0,j1+1):\nfor j in range(j1-j2,min(twojmax,j1+j2)+1,2):\nif (j>=j1): print j1/2.,j2/2.,j/2.\n```\nThere are \\(m(m+1)/2\\) descriptors with last index *j*,\nwhere *m* = \\(\\lfloor j \\rfloor + 1\\).\nHence, for even *twojmax* = 2(*m* -1), \\(K = m(m+1)(2m+1)/6\\), the *m* -th pyramidal number,\nand for odd *twojmax* = 2 *m* -1, \\(K = m(m+1)(m+2)/3\\), twice the *m* -th tetrahedral number.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the *diagonal* keyword allowing other possible choices\n > for the number of bispectrum components was removed in 2019,\n > since all potentials use the value of 3, corresponding to the\n > above set of bispectrum components. \n > \n\nCompute *snad/atom* evaluates a per-atom array. The columns are arranged\ninto *ntypes* blocks, listed in order of atom type *I* . Each block\ncontains three sub-blocks corresponding to the *x*, *y*, and *z*\ncomponents of the atom position. Each of these sub-blocks contains *K*\ncolumns for the *K* bispectrum components, the same as for compute\n*sna/atom*\n\nCompute *snav/atom* evaluates a per-atom array. The columns are arranged\ninto *ntypes* blocks, listed in order of atom type *I* . Each block\ncontains six sub-blocks corresponding to the *xx*, *yy*, *zz*,\n*yz*, *xz*, and *xy* components of the virial tensor in Voigt\nnotation. Each of these sub-blocks contains *K* columns for the *K*\nbispectrum components, the same as for compute *sna/atom*\n\nCompute *snap* evaluates a global array. The columns are arranged into\n*ntypes* blocks, listed in order of atom type *I* . Each block contains\none column for each bispectrum component, the same as for compute\n*sna/atom* . A final column contains the corresponding energy, force\ncomponent on an atom, or virial stress component. The rows of the array\nappear in the following order:\n\n* 1 row: *sna/atom* quantities summed for all atoms of type *I*\n* 3\\*\\ *N* rows: *snad/atom* quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID.\n* 6 rows: *snav/atom* quantities summed for all atoms of type *I*\n\nFor example, if *K* =30 and ntypes=1, the number of columns in the\nper-atom arrays generated by *sna/atom*, *snad/atom*, and\n*snav/atom* are 30, 90, and 180, respectively. With *quadratic* value=1,\nthe numbers of columns are 930, 2790, and 5580, respectively. The\nnumber of columns in the global array generated by *snap* are 31, and\n931, respectively, while the number of rows is 1+3\\*\\ *N* +6, where *N*\nis the total number of atoms.\n\nCompute *sna/grid* evaluates a global array.\nThe array contains one row for each of the\n\\(nx \\times ny \\times nz\\) grid points, looping over the index for *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents.\n\nCompute *sna/grid/local* evaluates a local array.\nThe array contains one row for each of the\nlocal grid points, looping over the global index *ix* fastest,\nthen *iy*, and *iz* slowest. Each row of the array contains\nthe global indexes *ix*, *iy*, and *iz* first, followed by the *x*, *y*,\nand *z* coordinates of the grid point, followed by the bispectrum\ncomponents.\n\nIf the *quadratic* keyword value is set to 1, then additional columns\nare generated, corresponding to the products of all distinct pairs of\nbispectrum components. If the number of bispectrum components is *K*,\nthen the number of distinct pairs is *K* (\\ *K* +1)/2. For compute\n*sna/atom* these columns are appended to existing *K* columns. The\nordering of quadratic terms is upper-triangular, (1,1),(1,2)...(1,\\ *K*\n),(2,1)...(\\ *K* -1,\\ *K* -1),(\\ *K* -1,\\ *K* ),(\\ *K*,\\ *K* ).\nFor computes *snad/atom* and *snav/atom* each set of *K* (\\ *K* +1)/2\nadditional columns is inserted directly after each of sub-block of\nlinear terms i.e. linear and quadratic terms are contiguous. So the\nnesting order from inside to outside is bispectrum component, linear\nthen quadratic, vector/tensor component, type.\n\nIf the *chem* keyword is used, then the data is arranged into\n\\(N_{elem}^3\\) sub-blocks, each sub-block corresponding to a\nparticular chemical labeling \\(\\kappa\\lambda\\mu\\) with the last\nlabel changing fastest. Each sub-block contains *K* bispectrum\ncomponents. For the purposes of handling contributions to force, virial,\nand quadratic combinations, these \\(N_{elem}^3\\) sub-blocks are\ntreated as a single block of \\(K N_{elem}^3\\) columns.\n\nIf the *bik* keyword is set to 1, the structure of the snap array is expanded.\nThe first \\(N\\) rows of the snap array\ncorrespond to \\(B_{i,k}\\) instead of a single row summed over atoms \\(i\\).\nIn this case, the entries in the final column for these rows\nare set to zero. Also, each row contains only non-zero entries for the\ncolumns corresponding to the type of that atom. This is not true in the case\nof *dgradflag* keyword = 1 (see below).\n\nIf the *dgradflag* keyword is set to 1, this changes the structure of the\nglobal array completely.\nHere the *snad/atom* quantities are replaced with rows corresponding to\ndescriptor gradient components on single atoms:\n\\[\n \\frac{\\partial {B_{i,k} }}{\\partial {r}^a_j}\\]\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. The rows are\norganized in chunks, where each chunk corresponds to an atom with global index\n\\(j\\). The rows in an atom \\(j\\) chunk correspond to\natoms with global index \\(i\\). The total number of rows for\nthese descriptor gradients is therefore \\(3N^2\\).\nThe number of columns is equal to the number of bispectrum components,\nplus 3 additional left-most columns representing the global atom indices\n\\(i\\), \\(j\\),\nand Cartesian direction \\(a\\) (0, 1, 2, for x, y, z).\nThe first 3 columns of the first \\(N\\) rows belong to the reference\npotential force components. The remaining K columns contain the\n\\(B_{i,k}\\) per-atom descriptors corresponding to the non-zero entries\nobtained when *bikflag* = 1.\nThe first column of the last row, after the first\n\\(N + 3N^2\\) rows, contains the reference potential\nenergy. The virial components are not used with this option. The total number of\nrows is therefore \\(N + 3N^2 + 1\\) and the number of columns is \\(K + 3\\).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options. To see how this command\ncan be used within a Python workflow to train SNAP potentials, see the\nexamples in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n\n**(Thompson20141)** Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316, (2015). \n \n**(Bartok20101)** Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Meremianin2006)** Meremianin, J. Phys. A, 39, 3099 (2006). \n \n**(Varshalovich1987)** Varshalovich, Moskalev, Khersonskii, Quantum Theory\nof Angular Momentum, World Scientific, Singapore (1987). \n \n**(Mason2009)** J. K. Mason, Acta Cryst A65, 259 (2009). \n \n**(Bartok20101)** Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Cusentino2020)** Cusentino, Wood, Thompson, J Phys Chem A, 124, 5456, (2020) \n \n**(Lafourcade2023_2)** Lafourcade, Maillet, Denoual, Duval, Allera, Goryaeva, and Marinica,\n[Comp. Mat. Science, 230, 112534 (2023)](https://doi.org/10.1016/j.commatsci.2023.112534) \n ", - "restrictions": "These computes are part of the ML-SNAP package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html)\n[compute slcsa/atom ](https://docs.lammps.org/compute_slcsa_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* atom/swap = style name of this fix command\n* N = invoke this fix every N steps\n* X = number of swaps to attempt every N steps\n* itype,jtype = two atom types (1-Ntypes or type label) to swap with each other\n* seed = random # seed (positive integer)\n* T = scaling temperature of the MC swaps (temperature units)\n* zero or more keyword/value pairs may be appended to args\n* keyword = ke \n *        ke value = no or yes \n         no = no conservation of kinetic energy after atom swaps \n         yes = kinetic energy is conserved after atom swaps \n", + "examples": "\n```lmps\nfix 2 all mol/swap 100 1 2 3 29494 300.0 ke no\nfix mySwap fluid mol/swap 500 10 1 2 482798 1.0\n\nlabelmap atom 1 A 2 B\nfix mySwap fluid mol/swap 500 10 A B 482798 1.0\n```\n", + "html_filename": "fix_mol_swap.html", + "short_description": "This fix performs Monte Carlo swaps of two specified atom types within\na randomly selected molecule", + "description": "This fix performs Monte Carlo swaps of two specified atom types within\na randomly selected molecule. Two possible use cases are as follows.\n\nFirst, consider a mixture of some molecules with atoms of itype and\nother molecules with atoms of jtype. The fix will select a random\nmolecule and attempt to swap all the itype atoms to jtype for the\nfirst kind of molecule, or all the jtype atoms to itype for the second\nkind. Because the swap will only take place if it is energetically\nfavorable, the fix can be used to determine the miscibility of 2\ndifferent kinds of molecules much more quickly than just dynamics\nwould do it.\n\nSecond, consider diblock co-polymers with two types of monomers itype\nand jtype. The fix will select a random molecule and attempt to do a\nitype <--> jtype swap of all those monomers within the molecule. Thus\nthe fix can be used to find the energetically favorable fractions of\ntwo flavors of diblock co-polymers.\n\nIntra-molecular swaps of atom types are attempted every N timesteps. On\nthat timestep, X swaps are attempted. For each attempt a single\nmolecule ID is randomly selected. The range of possible molecule IDs\nfrom loID to hiID is pre-computed before each run begins. The\nloID/hiID is set for the molecule with the smallest/largest ID which\nhas any itype or jtype atoms in it. Note that if you define a system\nwith many molecule IDs between loID and hiID which have no itype or\njtype atoms, then the fix will be inefficient at performing swaps.\nAlso note that if atoms with molecule ID = 0 exist, they are not\nconsidered molecules by this fix; they are assumed to be solvent atoms\nor molecules.\n\nCandidate atoms for swapping must also be in the fix group. Atoms\nwithin the selected molecule which are not itype or jtype are ignored.\n\nWhen an atom is swapped from itype to jtype (or vice versa), if\ncharges are defined, the charge values for itype versus jtype atoms\nare also swapped. This requires that all itype atoms in the system\nhave the same charge value. Likewise all jtype atoms in the system\nmust have the same charge value. If this is not the case, LAMMPS\nissues a warning that it cannot swap charge values.\n\nIf the *ke* keyword is set to yes, which is the default, and the\nmasses of itype and jtype atoms are different, then when a swap\noccurs, the velocity of the swapped atom is rescaled by the sqrt of\nthe mass ratio, so as to conserve the kinetic energy of the atom.\n\n----------\n\nThe potential energy of the entire system is computed before and after\neach swap is performed within a single molecule. The specified\ntemperature T is used in the Metropolis criterion to accept or reject\nthe attempted swap. If the swap is rejected all swapped values are\nreversed.\n\nThe potential energy calculations can include systems and models with\nthe following features:\n\n* manybody pair styles, including EAM\n* hybrid pair styles\n* long-range electrostatics (kspace)\n* triclinic systems\n* potential energy contributions from other fixes\n\nFor the last bullet point, fixes can have an associated potential\nenergy. Examples of such fixes include: [efield ](https://docs.lammps.org/fix_efield.html),\n[gravity ](https://docs.lammps.org/fix_gravity.html), [addforce ](https://docs.lammps.org/fix_addforce.html),\n[langevin ](https://docs.lammps.org/fix_langevin.html), [restrain ](https://docs.lammps.org/fix_restrain.html),\n[temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale](https://docs.lammps.org/fix_temp_rescale.html), and [wall fixes ](https://docs.lammps.org/fix_wall.html). For that\nenergy to be included in the total potential energy of the system (the\nquantity used for the swap accept/reject decision), you MUST enable\nthe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The\ndoc pages for individual [fix ](https://docs.lammps.org/fix.html) commands specify if this\nshould be done.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One comment on computational efficiency. If the cutoff lengths\n > defined for the pair style are different for itype versus jtype\n > atoms (for any of their interactions with any other atom type), then\n > a new neighbor list needs to be generated for every attempted swap.\n > This is potentially expensive if N is small or X is large. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for MC exchanges, the number of\nexchange attempts and successes etc. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 2, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n* 1 = swap attempts\n* 2 = swap accepts\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html), [fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n" }, { "command": [ - "pair_style pod", - "pair_style pod/kk" + "pair_style bpm/spring" ], "syntax": [ - "pair_style pod" + "pair_style bpm/spring" ], "args": [ [ @@ -10016,110 +9152,80 @@ export const command_docs = [ "choices": [] }, { - "arg": "pod", - "type": 3, - "choices": [ - "pod", - "pod/kk" - ] + "arg": "bpm/spring", + "type": 1, + "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\npair_style pod\npair_coeff * * Ta_param.pod Ta_coefficients.pod Ta\n```\n", - "html_filename": "pair_pod.html", - "short_description": "\nPair style *pod* defines the proper orthogonal descriptor (POD)\npotential **Nguyen20222b**,\n**Nguyen20232b**, **Nguyen20242b**,\nand **Nguyen20243b**", - "description": "\nPair style *pod* defines the proper orthogonal descriptor (POD)\npotential **Nguyen20222b**,\n**Nguyen20232b**, **Nguyen20242b**,\nand **Nguyen20243b**. The [fitpod](https://docs.lammps.org/fitpod_command.html) is used to fit the POD potential.\n\nOnly a single pair_coeff command is used with the *pod* style which\nspecifies a POD parameter file followed by a coefficient file, a\nprojection matrix file, and a centroid file.\n\nThe POD parameter file (``Ta_param.pod``) can contain blank and comment\nlines (start with #) anywhere. Each non-blank non-comment line must\ncontain one keyword/value pair. See [fitpod ](https://docs.lammps.org/fitpod_command.html) for\nthe description of all the keywords that can be assigned in the\nparameter file.\n\nThe coefficient file (``Ta_coefficients.pod``) contains coefficients for\nthe POD potential. The top of the coefficient file can contain any\nnumber of blank and comment lines (start with #), but follows a strict\nformat after that. The first non-blank non-comment line must contain:\n\n* model_coefficients: *ncoeff* *nproj* *ncentroid*\n\nThis is followed by *ncoeff* coefficients, *nproj* projection matrix entries,\nand *ncentroid* centroid coordinates, one per line. The coefficient\nfile is generated after training the POD potential using [fitpod](https://docs.lammps.org/fitpod_command.html).\n\nAs an example, if a LAMMPS indium phosphide simulation has 4 atoms\ntypes, with the first two being indium and the third and fourth being\nphophorous, the pair_coeff command would look like this:\n\n```lmps\npair_coeff * * pod InP_param.pod InP_coefficients.pod In In P P\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe two filenames are for the parameter and coefficient files, respectively.\nThe two trailing 'In' arguments map LAMMPS atom types 1 and 2 to the\nPOD 'In' element. The two trailing 'P' arguments map LAMMPS atom types\n3 and 4 to the POD 'P' element.\n\nIf a POD mapping value is specified as NULL, the mapping is not\nperformed. This can be used when a *pod* potential is used as part of\nthe *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nExamples about training and using POD potentials are found in the\ndirectory lammps/examples/PACKAGES/pod and the Github repo https://github.com/cesmix-mit/pod-examples.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Nguyen20222b)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232b)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242b)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243b)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", - "restrictions": "This style is part of the ML-POD package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fitpod ](https://docs.lammps.org/fitpod_command.html),\n[compute pod/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute podd/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/local ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/global ](https://docs.lammps.org/compute_pod_atom.html)\n" + "examples": "\n```lmps\npair_style bpm/spring\npair_coeff * * 1.0 1.0 1.0\npair_coeff 1 1 1.0 1.0 1.0\n```\n", + "html_filename": "pair_bpm_spring.html", + "short_description": "\nStyle *bpm/spring* computes pairwise forces with the formula\n\\[\n F = k (r - r_c)\\]\nwhere \\(k\\) is a stiffness and \\(r_c\\) is the cutoff length", + "description": "\nStyle *bpm/spring* computes pairwise forces with the formula\n\\[\n F = k (r - r_c)\\]\nwhere \\(k\\) is a stiffness and \\(r_c\\) is the cutoff length.\nAn additional damping force is also applied to interacting\nparticles. The force is proportional to the difference in the\nnormal velocity of particles\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, \\(\\vec{v}\\) is the velocity difference\nbetween the two particles, and \\(w\\) is a smoothing factor.\nThis smoothing factor is constructed such that damping forces go to zero\nas particles come out of contact to avoid discontinuities. It is\ngiven by\n\\[\n w = 1.0 - \\left( \\frac{r}{r_c} \\right)^8 .\\]\nThis pair style is designed for use in a spring-based bonded particle\nmodel. It mirrors the construction of the [bpm/spring](https://docs.lammps.org/bond_bpm_spring.html) bond style.\n\nThis pair interaction is always applied to pairs of non-bonded particles\nthat are within the interaction distance. For pairs of bonded particles\nthat are within the interaction distance, there is the option to either\ninclude this pair interaction and overlay the pair force over the bond\nforce or to exclude this pair interaction such that the two particles\nonly interact via the bond force. See discussion of the *overlay/pair*\noption for BPM bond styles and the [special_bonds ](https://docs.lammps.org/special_bonds.html)\ncommand in the [how to ](https://docs.lammps.org/Howto_bpm.html) page on BPMs for more details.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(k\\) (force/distance units)\n* \\(r_c\\) (distance units)\n* \\(\\gamma\\) (force/velocity units)\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is always mixed via a\n*geometric* rule. The cutoff is mixed according to the pair_modify\nmix value. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the pair interaction goes to 0.0 at the cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This pair style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [bond bpm/spring ](https://docs.lammps.org/bond_bpm_spring.html)\n" }, { "command": [ - "pair_style mgpt" + "compute property/atom" ], "syntax": [ - "pair_style mgpt" + "compute ID group-ID property/atom input1 input2 ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "mgpt", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style mgpt\npair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin Omega\ncp ~/lammps/potentials/Ta6.8x.mgpt.parmin parmin\ncp ~/lammps/potentials/Ta6.8x.mgpt.potin potin\npair_coeff * * parmin potin Omega volpress yes nbody 1234 precision double\npair_coeff * * parmin potin Omega volpress yes nbody 12\n```\n", - "html_filename": "pair_mgpt.html", - "short_description": "Within DFT quantum mechanics, generalized pseudopotential theory (GPT)\n(**Moriarty1**) provides a first-principles approach to\nmulti-ion interatomic potentials in d-band transition metals, with a\nvolume-dependent, real-space total-energy functional for the N-ion\nelemental bulk material in the form\n\\[\n E_{\\rm tot}({\\bf R}_1 \\ldots {\\bf R}_N) = NE_{\\rm vol}(\\Omega )\n + \\frac{1}{2} \\sum _{i,j} \\mbox{}^\\prime \\ v_2(ij;\\Omega )\n + \\frac{1}{6} \\sum _{i,j,k} \\mbox{}^\\prime \\ v_3(ijk;\\Omega )\n + \\frac{1}{24} \\sum _{i,j,k,l} \\mbox{}^\\prime \\ v_4(ijkl;\\Omega )\\]\nwhere the prime on each summation sign indicates the exclusion of all\nself-interaction terms from the summation", - "description": "Within DFT quantum mechanics, generalized pseudopotential theory (GPT)\n(**Moriarty1**) provides a first-principles approach to\nmulti-ion interatomic potentials in d-band transition metals, with a\nvolume-dependent, real-space total-energy functional for the N-ion\nelemental bulk material in the form\n\\[\n E_{\\rm tot}({\\bf R}_1 \\ldots {\\bf R}_N) = NE_{\\rm vol}(\\Omega )\n + \\frac{1}{2} \\sum _{i,j} \\mbox{}^\\prime \\ v_2(ij;\\Omega )\n + \\frac{1}{6} \\sum _{i,j,k} \\mbox{}^\\prime \\ v_3(ijk;\\Omega )\n + \\frac{1}{24} \\sum _{i,j,k,l} \\mbox{}^\\prime \\ v_4(ijkl;\\Omega )\\]\nwhere the prime on each summation sign indicates the exclusion of all\nself-interaction terms from the summation. The leading volume term\nE_vol as well as the two-ion central-force pair potential v_2 and the\nthree- and four-ion angular-force potentials, v_3 and v_4, depend\nexplicitly on the atomic volume Omega, but are structure independent\nand transferable to all bulk ion configurations, either ordered or\ndisordered, and with of without the presence of point and line\ndefects. The simplified model GPT or MGPT (**Moriarty2**,\n**Moriarty3**), which retains the form of E_tot and permits\nmore efficient large-scale atomistic simulations, derives from the GPT\nthrough a series of systematic approximations applied to E_vol and the\npotentials v_n that are valid for mid-period transition metals with\nnearly half-filled d bands.\n\nBoth analytic (**Moriarty2**) and matrix\n(**Moriarty3**) representations of MGPT have been developed.\nIn the more general matrix representation, which can also be applied\nto f-band actinide metals and permits both canonical and non-canonical\nd/f bands, the multi-ion potentials are evaluated on the fly during a\nsimulation through d- or f-state matrix multiplication, and the forces\nthat move the ions are determined analytically. Fast matrix-MGPT\nalgorithms have been developed independently by Glosli\n(**Glosli**, **Moriarty3**) and by Oppelstrup\n(**Oppelstrup**)\n\nThe *mgpt* pair style calculates forces, energies, and the total\nenergy per atom, E_tot/N, using the Oppelstrup matrix-MGPT algorithm.\nInput potential and control data are entered through the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Each material treated requires\ninput parmin and potin potential files, as shown in the above\nexamples, as well as specification by the user of the initial atomic\nvolume Omega through pair_coeff. At the beginning of a time step in\nany simulation, the total volume of the simulation cell V should\nalways be equal to Omega\\*N, where N is the number of metal ions\npresent, taking into account the presence of any vacancies and/or\ninterstitials in the case of a solid. In a constant-volume\nsimulation, which is the normal mode of operation for the *mgpt* pair\nstyle, Omega, V and N all remain constant throughout the simulation\nand thus are equal to their initial values. In a constant-stress\nsimulation, the cell volume V will change (slowly) as the simulation\nproceeds. After each time step, the atomic volume should be updated\nby the code as Omega = V/N. In addition, the volume term E_vol and\nthe potentials v_2, v_3 and v_4 have to be removed at the end of the\ntime step, and then respecified at the new value of Omega. In all\nsimulations, Omega must remain within the defined volume range for\nE_vol and the potentials for the given material.\n\nThe default option volpress yes in the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand includes all volume derivatives of E_tot required to calculate\nthe stress tensor and pressure correctly. The option volpress no\ndisregards the pressure contribution resulting from the volume term\nE_vol, and can be used for testing and analysis purposes. The\nadditional optional variable nbody controls the specific terms in\nE_tot that are calculated. The default option and the normal option\nfor mid-period transition and actinide metals is nbody 1234 for which\nall four terms in E_tot are retained. The option nbody 12, for\nexample, retains only the volume term and the two-ion pair potential\nterm and can be used for GPT series-end transition metals that can be\nwell described without v_3 and v_4. The nbody option can also be used\nto test or analyze the contribution of any of the four terms in E_tot\nto a given calculated property.\n\nThe *mgpt* pair style makes extensive use of matrix algebra and\nincludes optimized kernels for the BlueGene/Q architecture and the\nIntel/AMD (x86) architectures. When compiled with the appropriate\ncompiler and compiler switches (-msse3 on x86, and using the IBM XL\ncompiler on BG/Q), these optimized routines are used automatically.\nFor BG/Q machines, building with the default Makefile for that\narchitecture (e.g., \"make bgq\") should enable the optimized algebra\nroutines. For x-86 machines, there is a provided Makefile.mgptfast\nwhich enables the fast algebra routines, i.e. build LAMMPS with \"make\nmgptfast\". The user will be informed in the output files of the\nmatrix kernels in use. To further improve speed, on x86 the option\nprecision single can be added to the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand line, which improves speed (up to a factor of two) at the cost\nof doing matrix calculations with 7 digit precision instead of the\ndefault 16. For consistency the default option can be specified\nexplicitly by the option precision double.\n\nAll remaining potential and control data are contained with the parmin\nand potin files, including cutoffs, atomic mass, and other basic MGPT\nvariables. Specific MGPT potential data for the transition metals\ntantalum (Ta4 and Ta6.8x potentials), molybdenum (Mo5.2 potentials),\nand vanadium (V6.1 potentials) are contained in the LAMMPS potentials\ndirectory. The stored files are, respectively, Ta4.mgpt.parmin,\nTa4.mgpt.potin, Ta6.8x.mgpt.parmin, Ta6.8x.mgpt.potin,\nMo5.2.mgpt.parmin, Mo5.2.mgpt.potin, V6.1.mgpt.parmin, and\nV6.1.mgpt.potin . Useful corresponding informational \"README\" files\non the Ta4, Ta6.8x, Mo5.2 and V6.1 potentials are also included in the\npotentials directory. These latter files indicate the volume mesh and\nrange for each potential and give appropriate references for the\npotentials. It is expected that MGPT potentials for additional\nmaterials will be added over time.\n\nUseful example MGPT scripts are given in the examples/PACKAGES/mgpt\ndirectory. These scripts show the necessary steps to perform\nconstant-volume calculations and simulations. It is strongly\nrecommended that the user work through and understand these examples\nbefore proceeding to more complex simulations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For good performance, LAMMPS should be built with the compiler\n > flags \"-O3 -msse3 -funroll-loops\" when including this pair style. The\n > src/MAKE/OPTIONS/Makefile.mgptfast is an example machine Makefile with\n > these options included as part of a standard MPI build. Note that it\n > as provided, it will build with whatever low-level compiler (g++, icc,\n > etc) is the default for your MPI installation. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneeds to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Moriarty1)** Moriarty, Physical Review B, 38, 3199 (1988). \n \n**(Moriarty2)** Moriarty, Physical Review B, 42, 1609 (1990).\nMoriarty, Physical Review B 49, 12431 (1994). \n \n**(Moriarty3)** Moriarty, Benedict, Glosli, Hood, Orlikowski, Patel, Soderlind, Streitz, Tang, and Yang,\nJournal of Materials Research, 21, 563 (2006). \n \n**(Glosli)** Glosli, unpublished, 2005.\nStreitz, Glosli, Patel, Chan, Yates, de Supinski, Sexton and Gunnels, Journal of Physics: Conference\nSeries, 46, 254 (2006). \n \n**(Oppelstrup)** Oppelstrup, unpublished, 2015.\nOppelstrup and Moriarty, to be published. \n ", - "restrictions": "This pair style is part of the MGPT package and is only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe MGPT potentials require the [newtion ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair style interactions.\n\nThe stored parmin and potin potential files provided with LAMMPS in\nthe \"potentials\" directory are written in Rydberg atomic units, with\nenergies in Rydbergs and distances in Bohr radii. The *mgpt* pair\nstyle converts Rydbergs to Hartrees to make the potential files\ncompatible with LAMMPS electron [units ](https://docs.lammps.org/units.html).\n\nThe form of E_tot used in the *mgpt* pair style is only appropriate\nfor elemental bulk solids and liquids. This includes solids with\npoint and extended defects such as vacancies, interstitials, grain\nboundaries and dislocations. Alloys and free surfaces, however,\nrequire significant modifications, which are not included in the\n*mgpt* pair style. Likewise, the *hybrid* pair style is not allowed,\nwhere MGPT would be used for some atoms but not for others.\n\nElectron-thermal effects are not included in the standard MGPT\npotentials provided in the \"potentials\" directory, where the\npotentials have been constructed at zero electron temperature.\nPhysically, electron-thermal effects may be important in 3d (e.g., V)\nand 4d (e.g., Mo) transition metals at high temperatures near melt and\nabove. It is expected that temperature-dependent MGPT potentials for\nsuch cases will be added over time.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "fix_modify AtC gradients" - ], - "syntax": [ - "fix_modify gradients " - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "gradients", + "arg": "property/atom", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "add", - "delete" - ] + "arg": "input1", + "type": 2, + "choices": [] }, { - "arg": "", + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* gradients = name of the AtC sub-command\n* add or delete = select whether to add or delete calculation of gradients for the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by :ref:`(Eshelby) `\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", - "examples": "\n```lmps\nfix_modify AtC gradients add temperature velocity stress\nfix_modify AtC gradients delete velocity\n```\n", - "html_filename": "atc_hardy_gradients.html", - "short_description": "Requests calculation and output of gradients of the fields from the AtC\ntransfer class", - "description": "Requests calculation and output of gradients of the fields from the AtC\ntransfer class. These gradients will be with regard to spatial or\nmaterial coordinate for Eulerian or Lagrangian analysis, respectively,\nas specified by [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/atom = style name of this compute command\n* input = one or more atom attributes \n *        possible attributes = id, mol, proc, type, mass, \n         x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz, \n         vx, vy, vz, fx, fy, fz, \n         q, mux, muy, muz, mu, \n         spx, spy, spz, sp, fmx, fmy, fmz, \n         nbonds, \n         radius, diameter, omegax, omegay, omegaz, \n         temperature, heatflow, \n         angmomx, angmomy, angmomz, \n         shapex, shapey, shapez, \n         quatw, quati, quatj, quatk, tqx, tqy, tqz, \n         end1x, end1y, end1z, end2x, end2y, end2z, \n         corner1x, corner1y, corner1z, \n         corner2x, corner2y, corner2z, \n         corner3x, corner3y, corner3z, \n         i_name, d_name, i2_name[I], d2_name[I], \n         vfrac, s0, espin, eradius, ervel, erforce, \n         rho, drho, e, de, cv, buckling, \n         id = atom ID \n         mol = molecule ID \n         proc = ID of processor that owns atom \n         type = atom type \n         mass = atom mass \n         x,y,z = unscaled atom coordinates \n         xs,ys,zs = scaled atom coordinates \n         xu,yu,zu = unwrapped atom coordinates \n         ix,iy,iz = box image that the atom is in \n         vx,vy,vz = atom velocities \n         fx,fy,fz = forces on atoms \n         q = atom charge \n         mux,muy,muz = orientation of dipole moment of atom \n         mu = magnitude of dipole moment of atom \n         *spx, spy, spz* = direction of the atomic magnetic spin \n         sp = magintude of atomic magnetic spin moment \n         *fmx, fmy, fmz* = magnetic force \n         nbonds = number of bonds assigned to an atom \n         radius,diameter = radius,diameter of spherical particle \n         omegax,omegay,omegaz = angular velocity of spherical particle \n         temperature = internal temperature of spherical particle \n         heatflow = internal heat flow of spherical particle \n         angmomx,angmomy,angmomz = angular momentum of aspherical particle \n         shapex,shapey,shapez = 3 diameters of aspherical particle \n         quatw,quati,quatj,quatk = quaternion components for aspherical or body particles \n         tqx,tqy,tqz = torque on finite-size particles \n         *end12x, end12y, end12z* = end points of line segment \n         *corner123x, corner123y, corner123z* = corner points of triangle \n         i_name = custom integer vector with name \n         d_name = custom floating point vector with name \n         i2_name[I] = Ith column of custom integer array with name \n         d2_name[I] = Ith column of custom floating-point array with name \n         PERI package per-atom properties: \n         vfrac = volume fraction \n         s0 = max stretch of any bond a particle is part of \n         EFF and AWPMD package per-atom properties: \n         espin = electron spin \n         eradius = electron radius \n         ervel = electron radial velocity \n         erforce = electron radial force \n         SPH package per-atom properties: \n         rho = density of SPH particles \n         drho = change in density \n         e = energy \n         de = change in thermal energy \n         cv = heat capacity \n", + "examples": "\n```lmps\ncompute 1 all property/atom xs vx fx mux\ncompute 2 all property/atom type\ncompute 1 all property/atom ix iy iz\ncompute 3 all property/atom sp spx spy spz\ncompute 1 all property/atom i_myFlag d_Sxyz[1] d_Sxyz[3]\n```\n", + "html_filename": "compute_property_atom.html", + "short_description": "Define a computation that simply stores atom attributes for each atom\nin the group", + "description": "Define a computation that simply stores atom attributes for each atom\nin the group. This is useful so that the values can be used by other\n[output commands ](https://docs.lammps.org/Howto_output.html) that take computes as inputs.\nSee for example, the [compute reduce ](https://docs.lammps.org/compute_reduce.html), [fixave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), and [atom-style variable](https://docs.lammps.org/variable.html) commands.\n\nThe list of possible attributes is essentially the same as that used\nby the [dump custom ](https://docs.lammps.org/dump.html) command, which describes their\nmeaning, with some additional quantities that are only defined for\ncertain [atom styles ](https://docs.lammps.org/atom_style.html). The goal of this augmented\nlist gives an input script access to any per-atom quantity stored by\nLAMMPS.\n\nThe values are stored in a per-atom vector or array as discussed\nbelow. Zeroes are stored for atoms not in the specified group or for\nquantities that are not defined for a particular particle in the group\n(e.g., *shapex* if the particle is not an ellipsoid).\n\nAttributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom\nper-atom integer and floating-point vectors or arrays that have been\nadded via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nWhen that command is used specific names are given to each attribute\nwhich are the \"name\" portion of these attributes. For arrays\n*i2_name* and *d2_name*, the column of the array must also be included\nfollowing the name in brackets (e.g., d2_xyz[2] or i2_mySpin[3]).\n\nThe additional quantities only accessible via this command, and not\ndirectly via the [dump custom ](https://docs.lammps.org/dump.html) command, are as follows.\n\n*Nbonds* is available for all molecular atom styles and refers to the\nnumber of explicit bonds assigned to an atom. Note that if the\n[newton bond ](https://docs.lammps.org/newton.html) command is set to *on* , which is the\ndefault, then every bond in the system is assigned to only one of the\ntwo atoms in the bond. Thus a bond between atoms \\(I\\) and \\(J\\) may\nbe tallied for either atom \\(I\\) or atom \\(J\\).\nIf [newton bond off ](https://docs.lammps.org/newton.html) is set, it will be tallied with both atom\n\\(I\\) and atom \\(J\\).\n\nThe quantities *shapex*, *shapey*, and *shapez* are defined for ellipsoidal\nparticles and define the 3d shape of each particle.\n\nThe quantities *quatw*, *quati*, *quatj*, and *quatk* are defined for\nellipsoidal particles and body particles and store the 4-vector quaternion\nrepresenting the orientation of each particle. See the [set ](https://docs.lammps.org/set.html)\ncommand for an explanation of the quaternion vector.\n\n*End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are defined for line\nsegment particles and define the end points of each line segment.\n\n*Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*,\n*corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for\ntriangular particles and define the corner points of each triangle.\n\nIn addition, the various per-atom quantities listed above for specific\npackages are only accessible by this command.\n\n **New in version 15Sep2022** \n\n The *espin* property was previously called *spin*.\n #### Output info\n\nThis compute calculates a per-atom vector or per-atom array depending\non the number of input values. If a single input is specified, a\nper-atom vector is produced. If two or more inputs are specified, a\nper-atom array is produced where the number of columns = the number of\ninputs. The vector or array can be accessed by any command that uses\nper-atom values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ncorresponding attribute is in (e.g., velocity units for *vx*, charge\nunits for *q*).\n\nFor the spin quantities, *sp* is in the units of the Bohr magneton;\n*spx*, *spy*, and *spz* are unitless quantities; and *fmx*, *fmy*, and *fmz*\nare given in rad/THz.\n", + "restrictions": " none\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" }, { "command": [ - "compute stress/atom" + "fix npt/body" ], "syntax": [ - "compute ID group-ID style temp-ID keyword ..." + "fix ID group-ID npt/body keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -10134,85 +9240,88 @@ export const command_docs = [ "choices": [] }, { - "arg": "centroid/stress/atom", - "type": 3, - "choices": [ - "stress/atom", - "centroid/stress/atom" - ] + "arg": "npt/body", + "type": 1, + "choices": [] }, { - "arg": "temp-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "virial", - "type": 3, - "choices": [ - "ke", - "pair", - "bond", - "angle", - "dihedral", - "improper", - "kspace", - "fix", - "virial" - ] + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/atom or centroid/stress/atom\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial \n", - "examples": "\n```lmps\ncompute 1 mobile stress/atom NULL\ncompute 1 mobile stress/atom myRamp\ncompute 1 all stress/atom NULL pair bond\ncompute 1 all centroid/stress/atom NULL bond dihedral improper\n```\n", - "html_filename": "compute_stress_atom.html", - "short_description": "Define a computation that computes per-atom stress tensor for each\natom in a group", - "description": "Define a computation that computes per-atom stress tensor for each\natom in a group. In case of compute *stress/atom*, the tensor for\neach atom is symmetric with 6 components and is stored as a 6-element\nvector in the following order: \\(xx\\), \\(yy\\), \\(zz\\),\n\\(xy\\), \\(xz\\), \\(yz\\). In case of compute\n*centroid/stress/atom*, the tensor for each atom is asymmetric with 9\ncomponents and is stored as a 9-element vector in the following order:\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\), \\(yx\\), \\(zx\\), \\(zy\\). See the [computepressure ](https://docs.lammps.org/compute_pressure.html) command if you want the stress tensor\n(pressure) of the entire system.\n\nThe stress tensor for atom \\(I\\) is given by the following\nformula, where \\(a\\) and \\(b\\) take on values \\(x\\),\n\\(y\\), \\(z\\) to generate the components of the tensor:\n\\[\n S_{ab} = - m v_a v_b - W_{ab}\\]\nThe first term is a kinetic energy contribution for atom \\(I\\).\nSee details below on how the specified *temp-ID* can affect the\nvelocities used in this calculation. The second term is the virial\ncontribution due to intra and intermolecular interactions, where the\nexact computation details are determined by the compute style.\n\nIn case of compute *stress/atom*, the virial contribution is:\n\\[\\begin{align*} \n W_{ab} & = \\frac{1}{2} \\sum_{n = 1}^{N_p} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) + \\frac{1}{2} \\sum_{n = 1}^{N_b} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) \\\\\n & + \\frac{1}{3} \\sum_{n = 1}^{N_a} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b}) + \\frac{1}{4} \\sum_{n = 1}^{N_d} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) \\\\\n & + \\frac{1}{4} \\sum_{n = 1}^{N_i} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) + {\\rm Kspace}(r_{i_a},F_{i_b}) + \\sum_{n = 1}^{N_f} r_{i_a} F_{i_b} \\end{align*} \\]\nThe first term is a pairwise energy contribution where \\(n\\) loops\nover the \\(N_p\\) neighbors of atom \\(I\\), \\(\\mathbf{r}_1\\)\nand \\(\\mathbf{r}_2\\) are the positions of the two atoms in the\npairwise interaction, and \\(\\mathbf{F}_1\\) and\n\\(\\mathbf{F}_2\\) are the forces on the two atoms resulting from the\npairwise interaction. The second term is a bond contribution of\nsimilar form for the \\(N_b\\) bonds which atom \\(I\\) is part\nof. There are similar terms for the \\(N_a\\) angle, \\(N_d\\)\ndihedral, and \\(N_i\\) improper interactions atom \\(I\\) is part\nof. There is also a term for the KSpace contribution from long-range\nCoulombic interactions, if defined. Finally, there is a term for the\n\\(N_f\\) [fixes ](https://docs.lammps.org/fix.html) that apply internal constraint forces\nto atom \\(I\\). Currently, only the [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html) commands contribute to this term. As\nthe coefficients in the formula imply, a virial contribution produced\nby a small set of atoms (e.g. 4 atoms in a dihedral or 3 atoms in a\nTersoff 3-body interaction) is assigned in equal portions to each atom\nin the set. E.g. 1/4 of the dihedral virial to each of the 4 atoms,\nor 1/3 of the fix virial due to SHAKE constraints applied to atoms in\na water molecule via the [fix shake ](https://docs.lammps.org/fix_shake.html) command.\nAs an exception, the virial contribution from\nconstraint forces in [fix rigid ](https://docs.lammps.org/fix_rigid.html) on each atom\nis computed from the constraint force acting on the corresponding atom\nand its position, i.e. the total virial is not equally distributed.\n\nIn case of compute *centroid/stress/atom*, the virial contribution is:\n\\[\\begin{align*} \n W_{ab} & = \\sum_{n = 1}^{N_p} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_b} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_a} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_d} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_i} r_{I0_a} F_{I_b} \\\\\n & + {\\rm Kspace}(r_{i_a},F_{i_b}) + \\sum_{n = 1}^{N_f} r_{i_a} F_{i_b} \\end{align*} \\]\nAs with compute *stress/atom*, the first, second, third, fourth and\nfifth terms are pairwise, bond, angle, dihedral and improper\ncontributions, but instead of assigning the virial contribution\nequally to each atom, only the force \\(\\mathbf{F}_I\\) acting on\natom \\(I\\) due to the interaction and the relative position\n\\(\\mathbf{r}_{I0}\\) of the atom \\(I\\) to the geometric center\nof the interacting atoms, i.e. centroid, is used. As the geometric\ncenter is different for each interaction, the \\(\\mathbf{r}_{I0}\\)\nalso differs. The sixth term, Kspace contribution,\nis computed identically to compute *stress/atom*.\nThe seventh term is handed differently depending on\nif the constraint forces are due to [fix shake ](https://docs.lammps.org/fix_shake.html)\nor [fix rigid ](https://docs.lammps.org/fix_rigid.html).\nIn case of SHAKE constraints, each distance constraint is\nhanded as a pairwise interaction.\nE.g. in case of a water molecule, two OH and one HH distance\nconstraints are treated as three pairwise interactions.\nIn case of [fix rigid ](https://docs.lammps.org/fix_rigid.html),\nall constraint forces in the molecule are treated\nas a single many-body interaction with a single centroid position.\nIn case of water molecule, the formula expression would become\nidentical to that of the three-body angle interaction.\nAlthough the total system virial is the same as\ncompute *stress/atom*, compute *centroid/stress/atom* is know to\nresult in more consistent heat flux values for angle, dihedrals,\nimproper and constraint force contributions\nwhen computed via [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html).\n\nIf no extra keywords are listed, the kinetic contribution *and* all\nof the virial contribution terms are included in the per-atom stress\ntensor. If any extra keywords are listed, only those terms are\nsummed to compute the tensor. The *virial* keyword means include all\nterms except the kinetic energy *ke* .\n\nNote that the stress for each atom is due to its interaction with all\nother atoms in the simulation, not just with other atoms in the group.\n\nDetails of how compute *stress/atom* obtains the virial for individual\natoms for either pairwise or many-body potentials, and including the\neffects of periodic boundary conditions is discussed in\n**Thompson2**. The basic idea for many-body\npotentials is to treat each component of the force computation between\na small cluster of atoms in the same manner as in the formula above\nfor bond, angle, dihedral, etc interactions. Namely the quantity\n\\(\\mathbf{r} \\cdot \\mathbf{F}\\) is summed over the atoms in the\ninteraction, with the \\(r\\) vectors unwrapped by periodic\nboundaries so that the cluster of atoms is close together. The total\ncontribution for the cluster interaction is divided evenly among those\natoms.\n\nDetails of how compute *centroid/stress/atom* obtains the virial for\nindividual atoms are given in **Surblys1** and\n**Surblys2**, where the\nidea is that the virial of the atom \\(I\\) is the result of only\nthe force \\(\\mathbf{F}_I\\) on the atom due to the interaction and\nits positional vector \\(\\mathbf{r}_{I0}\\), relative to the\ngeometric center of the interacting atoms, regardless of the number of\nparticipating atoms. The periodic boundary treatment is identical to\nthat of compute *stress/atom*, and both of them reduce to identical\nexpressions for two-body interactions, i.e. computed values for\ncontributions from bonds and two-body pair styles, such as\n[Lennard-Jones ](https://docs.lammps.org/pair_lj.html), will be the same, while contributions\nfrom angles, dihedrals and impropers will be different.\n\nThe [dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) style calculates\npairwise interactions between 1-4 atoms. The virial contribution of\nthese terms is included in the pair virial, not the dihedral virial.\n\nThe KSpace contribution is calculated using the method in\n**Heyes2** for the Ewald method and by the methodology\ndescribed in **Sirk1** for PPPM. The choice of KSpace\nsolver is specified by the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html)\ncommand. Note that for PPPM, the calculation requires 6 extra FFTs\neach timestep that per-atom stress is calculated. Thus it can\nsignificantly increase the cost of the PPPM calculation if it is\nneeded on a large fraction of the simulation timesteps.\n\nThe *temp-ID* argument can be used to affect the per-atom velocities\nused in the kinetic energy contribution to the total stress. If the\nkinetic energy is not included in the stress, than the temperature\ncompute is not used and can be specified as NULL. If the kinetic\nenergy is included and you wish to use atom velocities as-is, then\n*temp-ID* can also be specified as NULL. If desired, the specified\ntemperature compute can be one that subtracts off a bias to leave each\natom with only a thermal velocity to use in the formula above, e.g. by\nsubtracting a background streaming velocity. See the doc pages for\nindividual [compute commands ](https://docs.lammps.org/compute.html) to determine which ones\ninclude a bias.\n\n----------\n\nNote that as defined in the formula, per-atom stress is the negative\nof the per-atom pressure tensor. It is also really a stress\\*volume\nformulation, meaning the computed quantity is in units of\npressure\\*volume. It would need to be divided by a per-atom volume to\nhave units of stress (pressure), but an individual atom's volume is\nnot well defined or easy to compute in a deformed solid or a liquid.\nSee the [compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) command for\none possible way to estimate a per-atom volume.\n\nThus, if the diagonal components of the per-atom stress tensor are\nsummed for all atoms in the system and the sum is divided by\n\\(dV\\), where \\(d\\) = dimension and \\(V\\) is the volume of\nthe system, the result should be \\(-P\\), where \\(P\\) is the\ntotal pressure of the system.\n\nThese lines in an input script for a 3d system should yield that\nresult. I.e. the last 2 columns of thermo output will be the same:\n\n```lmps\ncompute peratom all stress/atom NULL\ncompute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]\nvariable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)\nthermo_style custom step temp etotal press v_press\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The per-atom stress does not include any Lennard-Jones tail\n > corrections to the pressure added by the [pair_modify tail yes > ](https://docs.lammps.org/pair_modify.html) command, since those are contributions to the global\n > system pressure. \n > \n\nThe compute stress/atom can be used in a number of ways. Here is an\nexample to compute a 1-d pressure profile in x-direction across the\ncomplete simulation box. You will need to adjust the number of bins and the\nselections for time averaging to your specific simulation. This assumes\nthat the dimensions of the simulation cell does not change.\n\n```lmps\n# set number of bins\nvariable nbins index 20\nvariable fraction equal 1.0/v_nbins\n# define bins as chunks\ncompute cchunk all chunk/atom bin/1d x lower ${fraction} units reduced\ncompute stress all stress/atom NULL\n# apply conversion to pressure early since we have no variable style for processing chunks\nvariable press atom -(c_stress[1]+c_stress[2]+c_stress[3])/(3.0*vol*${fraction})\ncompute binpress all reduce/chunk cchunk sum v_press\nfix avg all ave/time 10 40 400 c_binpress mode vector file ave_stress.txt\n```\n #### Output info\n\nCompute *stress/atom* calculates a per-atom array with 6 columns,\nwhich can be accessed by indices 1-6 by any command that uses per-atom\nvalues from a compute as input. Compute *centroid/stress/atom*\nproduces a per-atom array with 9 columns, but otherwise can be used in\nan identical manner to compute *stress/atom*. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe ordering of the 6 columns for *stress/atom* is as follows: xx, yy,\nzz, xy, xz, yz. The ordering of the 9 columns for\n*centroid/stress/atom* is as follows: xx, yy, zz, xy, xz, yz, yx, zx,\nzy.\n\nThe per-atom array values will be in pressure\\*volume [units](https://docs.lammps.org/units.html) as discussed above.\n\n**(Thompson2)** Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009). \n \n**(Surblys1)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019). \n \n**(Surblys2)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021). \n \n**(Heyes2)** Heyes, Phys Rev B, 49, 755 (1994). \n \n**(Sirk1)** Sirk, Moore, Brown, J Chem Phys, 138, 064505 (2013). \n ", - "restrictions": "Currently, compute *centroid/stress/atom* does not support pair styles\nwith many-body interactions ([EAM ](https://docs.lammps.org/pair_eam.html) is an exception,\nsince its computations are performed pairwise), nor granular pair\nstyles with pairwise forces which are not aligned with the vector\nbetween the pair of particles. All bond styles are supported. All\nangle, dihedral, improper styles are supported with the exception of\nINTEL and KOKKOS variants of specific styles. It also does not\nsupport models with long-range Coulombic or dispersion forces,\ni.e. the kspace_style command in LAMMPS. It also does not implement the\nfollowing fixes which add rigid-body constraints:\n[fix rigid/* ](https://docs.lammps.org/fix_rigid.html) and the OpenMP accelerated version of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html),\nwhile all other [fix rigid/*/small ](https://docs.lammps.org/fix_rigid.html) are implemented.\n\nLAMMPS will generate an error if one of these options is included in\nyour model. Extension of centroid stress calculations to these force\nand fix styles is planned for the future.\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* npt/body = style name of this fix command\n* additional thermostat and barostat related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all npt/body temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/body temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/body temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 water npt/body temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_npt_body.html", + "short_description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat", + "description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat. P is pressure; T is\ntemperature. This creates a system trajectory consistent with the\nisothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the body particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*,\n*iso*, *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/body\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/body\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix nvt_body ](https://docs.lammps.org/fix_nvt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "bond_style harmonic/restrain" + "fix_modify AtC initial" ], "syntax": [ - "bond_style harmonic/restrain" + "fix_modify initial " ], "args": [ [ { - "arg": "bond_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "harmonic/restrain", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "initial", "type": 1, "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "constant", + "function" + ] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style harmonic\nbond_coeff 5 80.0\n```\n", - "html_filename": "bond_harmonic_restrain.html", - "short_description": "\nThe *harmonic/restrain* bond style uses the potential\n\\[\n E = K (r - r_{t=0})^2\\]\nwhere \\(r_{t=0}\\) is the distance between the bonded atoms at the\nbeginning of the first [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommand after the bond style has been defined (*t=0*)", - "description": "\nThe *harmonic/restrain* bond style uses the potential\n\\[\n E = K (r - r_{t=0})^2\\]\nwhere \\(r_{t=0}\\) is the distance between the bonded atoms at the\nbeginning of the first [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommand after the bond style has been defined (*t=0*). Note that the\nusual 1/2 factor is included in \\(K\\). This will effectively\nrestrain bonds to their initial length, whatever that is. This is where\nthis bond style differs from [bond style harmonic ](https://docs.lammps.org/bond_harmonic.html)\nwhere the bond length is set through the per bond type coefficients.\n\nThe following coefficient must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands\n\n* \\(K\\) (energy/distance\\^2)\n\nThis bond style differs from other options to add harmonic restraints\nlike [fix restrain ](https://docs.lammps.org/fix_restrain.html) or [pair style list](https://docs.lammps.org/pair_list.html) or [fix colvars ](https://docs.lammps.org/fix_colvars.html) in that it requires a\nbond topology, and thus the defined bonds will trigger exclusion of\nspecial neighbors from the neighbor list according to the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings.\n\n #### Restart info\n\nThis bond style supports the [write_restart ](https://docs.lammps.org/write_restart.html) and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. The state of the initial\nbond lengths is stored with restart files and read back.\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis bond style maintains internal data to determine the original bond\nlengths \\(r_{t=0}\\). This information will be written to\n[binary restart files ](https://docs.lammps.org/write_restart.html) but **not** to [datafiles ](https://docs.lammps.org/write_data.html). Thus, continuing a simulation is *only* possible\nwith [read_restart ](https://docs.lammps.org/read_restart.html). When using the [read_datacommand ](https://docs.lammps.org/read_data.html), the reference bond lengths \\(r_{t=0}\\) will be\nre-initialized from the current geometry.\n\nThis bond style cannot be used with [fix shake or fix rattle](https://docs.lammps.org/fix_shake.html), with [fix filter/corotate ](https://docs.lammps.org/fix_filter_corotate.html), or\nany [tip4p pair style ](https://docs.lammps.org/pair_lj_cut_tip4p.html) since there is no specific\nequilibrium distance for a given bond type.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [bond_harmonic ](https://docs.lammps.org/bond_harmonic.html),\n[fix restrain ](https://docs.lammps.org/fix_restrain.html), [pair style list ](https://docs.lammps.org/pair_list.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* initial = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply initial condition\n* constant or function = value or name of function followed by its parameters \n", + "examples": "\n```lmps\nfix_modify AtC initial temperature groupNAME 10.\n```\n", + "html_filename": "atc_initial.html", + "short_description": "Sets the initial values for the specified field at the specified nodes", + "description": "Sets the initial values for the specified field at the specified nodes.\n", + "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix wall/lj93", - "fix wall/lj93/kk", - "fix wall/lj126", - "fix wall/lj1043", - "fix wall/colloid", - "fix wall/harmonic", - "fix wall/lepton", - "fix wall/morse" + "fix viscosity" ], "syntax": [ - "fix ID group-ID style [tabstyle] [N] face args ... keyword value ..." + "fix ID group-ID viscosity N vdim pdim Nbin keyword value ..." ], "args": [ [ @@ -10232,59 +9341,42 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/lj93/kk", - "type": 3, - "choices": [ - "wall/lj93", - "wall/lj126", - "wall/lj1043", - "wall/colloid", - "wall/harmonic", - "wall/lepton", - "wall/morse", - "wall/table", - "wall/lj93/kk" - ] - }, - { - "arg": "[tabstyle]", - "type": 2, + "arg": "viscosity", + "type": 1, "choices": [] }, { - "arg": "[N]", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "zhi", + "arg": "y", "type": 3, "choices": [ - "xlo", - "xhi", - "ylo", - "yhi", - "zlo", - "zhi" + "x", + "y" ] }, { - "arg": "harmonic", - "type": 2, + "arg": "y", + "type": 3, "choices": [ - "lj126", - "lj1043", - "colloid", - "harmonic" + "x", + "y" ] }, { - "arg": "pbc", + "arg": "Nbin", + "type": 2, + "choices": [] + }, + { + "arg": "vtarget", "type": 3, "choices": [ - "units", - "fld", - "pbc" + "swap", + "vtarget" ] }, { @@ -10294,139 +9386,161 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = wall/lj93 or wall/lj126 or wall/lj1043 or wall/colloid or wall/harmonic or wall/lepton or wall/morse or wall/table\n* tabstyle = linear or spline = method of table interpolation (only applies to wall/table)\n* N = use N values in linear or spline interpolation (only applies to wall/table)\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi\n\n.. spacer\n\n* args for styles lj93 or lj126 or lj1043 or colloid or harmonic \n *          args = coord epsilon sigma cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n           epsilon can be a variable (see below) \n *          sigma = size factor for wall-particle interaction (distance units) \n           sigma can be a variable (see below) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style lepton \n *          args = coord expression cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          expression = Lepton expression for the potential (energy units) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style morse \n *          args = coord D_0 alpha r_0 cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          D_0 = depth of the potential (energy units) \n           D_0 can be a variable (see below) \n *          alpha = width factor for wall-particle interaction (1/distance units) \n           alpha can be a variable (see below) \n *          r_0 = distance of the potential minimum from the face of region (distance units) \n           r_0 can be a variable (see below) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style table \n *          args = coord filename keyword cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          filename = file containing tabulated energy and force values \n *          keyword = section identifier to select a specific table in table file \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* zero or more keyword/value pairs may be appended\n* keyword = units or fld or pbc \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n *        fld value = yes or no \n         yes = invoke the wall constraint to be compatible with implicit FLD \n         no = invoke the wall constraint in the normal way \n *        pbc value = yes or no \n         yes = allow periodic boundary in a wall dimension \n         no = require non-perioidic boundaries in any wall dimension \n", - "examples": "\n```lmps\nfix wallhi all wall/lj93 xlo -1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/lj93 xhi EDGE 1.0 1.0 2.5\nfix wallhi all wall/harmonic xhi EDGE 100.0 0.0 4.0 units box\nfix wallhi all wall/morse xhi EDGE 1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/lj126 v_wiggle 23.2 1.0 1.0 2.5\nfix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858\nfix xwall mobile wall/table spline 200 EDGE -5.0 walltab.dat HARMONIC 4.0\nfix xwalls mobile wall/lepton xlo -5.0 \"k*(r-rc)^2;k=100.0\" 4.0 xhi 5.0 \"k*(r-rc)^2;k=100.0\" 4.0\n```\n", - "html_filename": "fix_wall.html", - "short_description": "Bound the simulation domain on one or more of its faces with a flat\nwall that interacts with the atoms in the group by generating a force\non the atom in a direction perpendicular to the wall", - "description": "Bound the simulation domain on one or more of its faces with a flat\nwall that interacts with the atoms in the group by generating a force\non the atom in a direction perpendicular to the wall. The energy of\nwall-particle interactions depends on the style.\n\nFor style *wall/lj93*, the energy E is given by the 9-3 Lennard-Jones potential:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\frac{2}{15} \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^3 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj126*, the energy E is given by the 12-6 Lennard-Jones potential:\n\\[.. math::\\]\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj1043*, the energy E is given by the 10-4-3 Lennard-Jones potential:\n\\[.. math::\\]\n E = 2 \\pi \\epsilon \\left[ \\frac{2}{5} \\left(\\frac{\\sigma}{r}\\right)^{10} -\n \\left(\\frac{\\sigma}{r}\\right)^4 -\n \\frac{\\sqrt(2)\\sigma^3}{3\\left(r+\\left(0.61/\\sqrt(2)\\right)\\sigma\\right)^3}\\right]\n \\qquad r < r_c\n\nFor style *wall/colloid*, the energy E is given by an integrated form\nof the [pair_style colloid ](https://docs.lammps.org/pair_colloid.html) potential:\n\\[\\begin{align*} \n E = & \\epsilon \\left[ \\frac{\\sigma^{6}}{7560}\n \\left(\\frac{6R-D}{D^{7}} + \\frac{D+8R}{(D+2R)^{7}} \\right) \\right. \\\\\n & \\left. - \\frac{1}{6} \\left(\\frac{2R(D+R) + D(D+2R)\n \\left[ \\ln D - \\ln (D+2R) \\right]}{D(D+2R)} \\right) \\right] \\qquad r < r_c \\end{align*} \\]\nFor style *wall/harmonic*, the energy E is given by a repulsive-only harmonic\nspring potential:\n\\[.. math::\\]\n E = \\epsilon \\quad (r - r_c)^2 \\qquad r < r_c\n\nFor style *wall/morse*, the energy E is given by a Morse potential:\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\nFor style *wall/lepton*, the energy E is provided as an Lepton\nexpression string using \"r\" as the distance variable. The `Lepton\nlibrary `_, that the *wall/lepton*\nstyle interfaces with, evaluates this expression string at run time to\ncompute the wall-particle energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect\nto \"r\" and then uses that to compute the force between the wall and\natoms in the fix group. The Lepton expression must be either enclosed\nin quotes or must not contain any whitespace so that LAMMPS recognizes\nit as a single keyword.\n\nOptionally, the expression may use \"rc\" to refer to the cutoff distance\nfor the given wall. Further constants in the expression can be defined\nin the same string as additional expressions separated by semicolons.\nThe expression \"k*(r-rc)^2;k=100.0\" represents a repulsive-only harmonic\nspring as in fix *wall/harmonic* with a force constant *K* (same as\n\\(\\epsilon\\) above) of 100 energy units. More details on the Lepton\nexpression strings are given below.\n\nFor style *wall/table*, the energy E and forces are determined from\ninterpolation tables listed in one or more files as a function of\ndistance. The interpolation tables are used to evaluate energy and\nforces between particles and the wall similar to how analytic formulas\nare used for the other wall styles.\n\nThe interpolation tables are created as a pre-computation by fitting\ncubic splines to the file values and interpolating energy and force\nvalues at each of *N* distances. During a simulation, the tables are\nused to interpolate energy and force values as needed for each wall and\nparticle separated by a distance *R* . The interpolation is done in\none of two styles: *linear* or *spline* .\n\nFor the *linear* style, the distance *R* is used to find the 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored for each of the *N* values in the table, one set of splines for\nenergy, another for force. Note that these splines are different than\nthe ones used to pre-compute the *N* values. Those splines were fit\nto the *Nfile* values in the tabulated file, where often *Nfile* <\n*N* . The distance *R* is used to find the appropriate set of spline\ncoefficients which are used to evaluate a cubic polynomial which\ncomputes the energy or force.\n\nFor each wall a filename and a keyword must be provided as in the\nexamples above. The filename specifies a file containing tabulated\nenergy and force values. The keyword specifies a section of the file.\nThe format of this file is described below.\n\nIn all cases, *r* is the distance from the particle to the wall at\nposition *coord*, and \\(r_c\\) is the *cutoff* distance at which the\nparticle and wall no longer interact. The energy of the wall\npotential is shifted so that the wall-particle interaction energy is\n0.0 at the cutoff distance.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face interacts with\nparticles near the lower side of the simulation box in that dimension.\nA *hi* face interacts with particles near the upper side of the\nsimulation box in that dimension.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position. See examples below.\n\nFor the *wall/lj93* and *wall/lj126* and *wall/lj1043* styles,\n\\(\\epsilon\\) and \\(\\sigma\\) are the usual Lennard-Jones\nparameters, which determine the strength and size of the particle as it\ninteracts with the wall. Epsilon has energy units. Note that this\n\\(\\epsilon\\) and \\(\\sigma\\) may be different than any\n\\(\\epsilon\\) or \\(\\sigma\\) values defined for a pair style that\ncomputes particle-particle interactions.\n\nThe *wall/lj93* interaction is derived by integrating over a 3d\nhalf-lattice of Lennard-Jones 12/6 particles. The *wall/lj126*\ninteraction is effectively a harder, more repulsive wall interaction.\nThe *wall/lj1043* interaction is yet a different form of wall\ninteraction, described in Magda et al in **Magda**.\n\nFor the *wall/colloid* style, *R* is the radius of the colloid particle,\n*D* is the distance from the surface of the colloid particle to the wall\n(r-R), and \\(\\sigma\\) is the size of a constituent LJ particle\ninside the colloid particle and wall. Note that the cutoff distance Rc\nin this case is the distance from the colloid particle center to the\nwall. The prefactor \\(\\epsilon\\) can be thought of as an effective\nHamaker constant with energy units for the strength of the colloid-wall\ninteraction. More specifically, the \\(\\epsilon\\) prefactor is\n\\(4\\pi^2 \\rho_{wall} \\rho_{colloid} \\epsilon \\sigma^6\\), where\n\\(\\epsilon\\) and \\(\\sigma\\) are the LJ parameters for the\nconstituent LJ particles. \\(\\rho_{wall}\\) and \\(\\rho_{colloid}\\)\nare the number density of the constituent particles, in the wall and\ncolloid respectively, in units of 1/volume.\n\nThe *wall/colloid* interaction is derived by integrating over\nconstituent LJ particles of size \\(\\sigma\\) within the colloid\nparticle and a 3d half-lattice of Lennard-Jones 12/6 particles of size\n\\(\\sigma\\) in the wall. As mentioned in the preceding paragraph,\nthe density of particles in the wall and colloid can be different, as\nspecified by the \\(\\epsilon\\) prefactor.\n\nFor the *wall/harmonic* style, \\(\\epsilon\\) is effectively the spring\nconstant K, and has units (energy/distance\\^2). The input parameter\n\\(\\sigma\\) is ignored. The minimum energy position of the harmonic\nspring is at the *cutoff* . This is a repulsive-only spring since the\ninteraction is truncated at the *cutoff*\n\nFor the *wall/morse* style, the three parameters are in this order:\n\\(D_0\\) the depth of the potential, \\(\\alpha\\) the width\nparameter, and \\(r_0\\) the location of the minimum. \\(D_0\\) has\nenergy units, \\(\\alpha\\) inverse distance units, and \\(r_0\\)\ndistance units.\n\nFor any wall that supports them, the \\(\\epsilon\\) and/or\n\\(\\sigma\\) and/or \\(\\alpha\\) parameter can be specified as an\n[equal-style variable ](https://docs.lammps.org/variable.html), in which case it should be\nspecified as v_name, where name is the variable name. As with a\nvariable wall position, the variable is evaluated each timestep and the\nresult becomes the current epsilon or sigma of the wall. Equal-style\nvariables can specify formulas with various mathematical functions, and\ninclude [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify a time-dependent wall interaction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For all of the styles, you must ensure that r is always > 0 for\n > all particles in the group, or LAMMPS will generate an error. This\n > means you cannot start your simulation with particles at the wall\n > position *coord* (r = 0) or with particles on the wrong side of the\n > wall (r < 0). For the *wall/lj93* and *wall/lj126* styles, the energy\n > of the wall/particle interaction (and hence the force on the particle)\n > blows up as r -> 0. The *wall/colloid* style is even more\n > restrictive, since the energy blows up as D = r-R -> 0. This means\n > the finite-size particles of radius R must be a distance larger than R\n > from the wall position *coord* . The *harmonic* style is a softer\n > potential and does not blow up as r -> 0, but you must use a large\n > enough \\(\\epsilon\\) that particles always reamin on the correct side of\n > the wall (r > 0). \n > \n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant or\nvariable is used. It is not relevant when EDGE is used to specify a\nface position. In the variable case, the variable is assumed to\nproduce a value compatible with the *units* setting you specify.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\nThe *fld* keyword can be used with a *yes* setting to invoke the wall\nconstraint before pairwise interactions are computed. This allows an\nimplicit FLD model using [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\nto include the wall force in its calculations. If the setting is *no*,\nwall forces are imposed after pairwise interactions, in the usual\nmanner.\n\nThe *pbc* keyword can be used with a *yes* setting to allow walls to be\nspecified in a periodic dimension. See the [boundary ](https://docs.lammps.org/boundary.html)\ncommand for options on simulation box boundaries. The default for *pbc*\nis *no*, which means the system must be non-periodic when using a wall.\nBut you may wish to use a periodic box. E.g. to allow some particles to\ninteract with the wall via the fix group-ID, and others to pass through\nit and wrap around a periodic box. In this case you should ensure that\nthe wall is sufficiently far enough away from the box boundary. If you\ndo not, then particles may interact with both the wall and with periodic\nimages on the other side of the box, which is probably not what you\nwant.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html). The wall interaction parameters (epsilon,\nsigma) could be varied with additional variable definitions.\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall xlo v_ramp 1.0 1.0 2.5\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall xlo v_linear 1.0 1.0 2.5\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall xlo v_wiggle 1.0 1.0 2.5\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall xlo v_wiggle 1.0 1.0 2.5\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo* to\n*hi* over the course of a run. The *vdisplace(c0,velocity)* function does\nsomething similar using the equation *position = c0 + velocity\\*delta*,\nwhere *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n #### Table file format\n\nSuitable tables for use with fix *wall/table* can be created by the\nPython code in the ``tools/tabulate`` folder of the LAMMPS source code\ndistribution.\n\nThe format of a tabulated file is as follows (without the parenthesized\ncomments):\n\n```\n# Tabulated wall potential UNITS: real\n\nHARMONIC (keyword is the first text on a line)\nN 100 FP 200 200\n(blank line)\n1 0.04 1568.16 792.00 (index, distance to wall, energy, force)\n2 0.08 1536.64 784.00\n3 0.12 1505.44 776.00\n...\n99 3.96 0.16 8.00\n100 4.00 0 0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The line can contain additional text, but the initial text\nmust match the argument specified in the fix *wall/table* command. The\nnext line lists (in any order) one or more parameters for the table.\nEach parameter is a keyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the fix *wall/table* command. Let Ntable = *N* in the fix\ncommand, and Nfile = \"N\" in the tabulated file. What LAMMPS does is a\npreliminary interpolation by creating splines using the Nfile tabulated\nvalues as nodal points. It uses these to interpolate as needed to\ngenerate energy and force values at Ntable different points. The\nresulting tables of length Ntable are then used as described above, when\ncomputing energy and force for wall-particle interactions. This means that\nif you want the interpolation tables of length Ntable to match exactly\nwhat is in the tabulated file (with effectively no preliminary\ninterpolation), you should set Ntable = Nfile.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and all the\nspecified walls to the global potential energy of the system as part\nof [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting\nfor this fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the interaction between atoms\nand all the specified walls to both the global pressure and per-atom\nstress of the system via the [compute pressure](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar energy and a global vector of forces,\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNote that the scalar energy is the sum of interactions with all defined\nwalls. If you want the energy on a per-wall basis, you need to use\nmultiple fix wall commands. The length of the vector is equal to the\nnumber of walls defined by the fix. Each vector value is the normal\nforce on a specific wall. Note that an outward force on a wall will be\na negative value for *lo* walls and a positive value for *hi* walls.\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy*\n > option for this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Magda)** Magda, Tirrell, Davis, J Chem Phys, 83, 1888-1901 (1985);\nerratum in JCP 84, 2901 (1986). \n ", - "restrictions": "Fix *wall/lepton* is part of the LEPTON package and only enabled if\nLAMMPS was built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html),\n[fix wall/region ](https://docs.lammps.org/fix_wall_region.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* viscosity = style name of this fix command\n* N = perform momentum exchange every N steps\n* vdim = x or y or z = which momentum component to exchange\n* pdim = x or y or z = direction of momentum transfer\n* Nbin = # of layers in pdim direction (must be even number)\n* zero or more keyword/value pairs may be appended\n* keyword = swap or vtarget \n *        swap value = Nswap = number of swaps to perform every N steps \n *        vtarget value = V or INF = target velocity of swap partners (velocity units) \n", + "examples": "\n```lmps\nfix 1 all viscosity 100 x z 20\nfix 1 all viscosity 50 x z 20 swap 2 vtarget 1.5\n```\n", + "html_filename": "fix_viscosity.html", + "short_description": "Use the Muller-Plathe algorithm described in **Muller-Plathe2** to exchange momenta between two particles in\ndifferent regions of the simulation box every N steps", + "description": "Use the Muller-Plathe algorithm described in **Muller-Plathe2** to exchange momenta between two particles in\ndifferent regions of the simulation box every N steps. This induces a\nshear velocity profile in the system. As described below this enables\na viscosity of the fluid to be calculated. This algorithm is\nsometimes called a reverse non-equilibrium MD (reverse NEMD) approach\nto computing viscosity. This is because the usual NEMD approach is to\nimpose a shear velocity profile on the system and measure the response\nvia an off-diagonal component of the stress tensor, which is\nproportional to the momentum flux. In the Muller-Plathe method, the\nmomentum flux is imposed, and the shear velocity profile is the\nsystem's response.\n\nThe simulation box is divided into *Nbin* layers in the *pdim*\ndirection, where the layer 1 is at the low end of that dimension and\nthe layer *Nbin* is at the high end. Every N steps, Nswap pairs of\natoms are chosen in the following manner. Only atoms in the fix group\nare considered. Nswap atoms in layer 1 with positive velocity\ncomponents in the *vdim* direction closest to the target value *V* are\nselected. Similarly, Nswap atoms in the \"middle\" layer (see below) with\nnegative velocity components in the *vdim* direction closest to the\nnegative of the target value *V* are selected. The two sets of Nswap\natoms are paired up and their *vdim* momenta components are swapped\nwithin each pair. This resets their velocities, typically in opposite\ndirections. Over time, this induces a shear velocity profile in the\nsystem which can be measured using commands such as the following,\nwhich writes the profile to the file tmp.profile:\n\n```lmps\ncompute layers all chunk/atom bin/1d z lower 0.05 units reduced\nfix f1 all ave/chunk 100 10 1000 layers vx file tmp.profile\n```\nNote that by default, Nswap = 1 and vtarget = INF, though this can be\nchanged by the optional *swap* and *vtarget* keywords. When vtarget =\nINF, one or more atoms with the most positive and negative velocity\ncomponents are selected. Setting these parameters appropriately, in\nconjunction with the swap rate N, allows the momentum flux rate to be\nadjusted across a wide range of values, and the momenta to be\nexchanged in large chunks or more smoothly.\n\nThe \"middle\" layer for momenta swapping is defined as the *Nbin* /2 + 1\nlayer. Thus if *Nbin* = 20, the two swapping layers are 1 and 11.\nThis should lead to a symmetric velocity profile since the two layers\nare separated by the same distance in both directions in a periodic\nsense. This is why *Nbin* is restricted to being an even number.\n\nAs described below, the total momentum transferred by these velocity\nswaps is computed by the fix and can be output. Dividing this\nquantity by time and the cross-sectional area of the simulation box\nyields a momentum flux. The ratio of momentum flux to the slope of\nthe shear velocity profile is proportional to the viscosity of the\nfluid, in appropriate units. See the **Muller-Plathe2** for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is periodic in the direction of the momentum\n > flux, then the flux is going in 2 directions. This means the\n > effective momentum flux in one direction is reduced by a factor of 2.\n > You will see this in the equations for viscosity in the Muller-Plathe\n > paper. LAMMPS is simply tallying momentum which does not account for\n > whether or not your system is periodic; you must use the value\n > appropriately to yield a viscosity for your system. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After equilibration, if the velocity profile you observe is not\n > linear, then you are likely swapping momentum too frequently and are\n > not in a regime of linear response. In this case you cannot\n > accurately infer a viscosity and should try increasing the Nevery\n > parameter. \n > \n\nAn alternative method for calculating a viscosity is to run a NEMD\nsimulation, as described on the [Howto nemd ](https://docs.lammps.org/Howto_nemd.html) doc page.\nNEMD simulations deform the simulation box via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nSome features or combination of settings in LAMMPS do not support\nnon-orthogonal boxes. Using fix viscosity keeps the box orthogonal;\nthus it does not suffer from these limitations.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nmomentum transferred between the bottom and middle of the simulation\nbox (in the *pdim* direction) is stored as a scalar quantity by this\nfix. This quantity is zeroed when the fix is defined and accumulates\nthereafter, once every N steps. The units of the quantity are\nmomentum = mass\\*velocity. The scalar value calculated by this fix is\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Muller-Plathe2)** Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999). \n \n**(Muller-Plathe2)** Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nSwaps conserve both momentum and kinetic energy, even if the masses of\nthe swapped atoms are not equal. Thus you should not need to\nthermostat the system. If you do use a thermostat, you may want to\napply it only to the non-swapped dimensions (other than *vdim* ).\n\nLAMMPS does not check, but you should not use this fix to swap\nvelocities of atoms that are in constrained molecules, e.g. via [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is because\napplication of the constraints will alter the amount of transferred\nmomentum. You should, however, be able to use flexible molecules.\nSee the **Maginn** for an example of using this algorithm\nin a computation of alcohol molecule properties.\n\nWhen running a simulation with large, massive particles or molecules\nin a background solvent, you may want to only exchange momenta between\nsolvent particles.\n\n**(Maginn)** Kelkar, Rafferty, Maginn, Siepmann, Fluid Phase Equilibria,\n260, 218-231 (2007). \n ", + "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html)\n" }, { "command": [ - "compute temp/com" + "pair_style bop" ], "syntax": [ - "compute ID group-ID temp/com" + "pair_style bop keyword ..." ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "bop", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] - }, - { - "arg": "temp/com", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/com = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all temp/com\ncompute myTemp mobile temp/com\n```\n", - "html_filename": "compute_temp_com.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity of the group", - "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity of the group.\nThis is useful if the group is expected to have a non-zero net\nvelocity for some reason. A compute of this style can be used by any\ncommand that computes a temperature,\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nAfter the center-of-mass velocity has been subtracted from each atom,\nthe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the\nsimulation, \\(N\\) is number of atoms in the group, \\(k_B\\) is\nthe Boltzmann constant, and \\(T\\) is the absolute temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the center-of-mass velocity by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly.\nIf needed, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues is in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" + "parameters": "* zero or more keywords may be appended\n* keyword = save \n *      save = pre-compute and save some values \n", + "examples": "\n```lmps\npair_style bop\npair_coeff * * ../potentials/CdTe_bop Cd Te\npair_style bop save\npair_coeff * * ../potentials/CdTe.bop.table Cd Te Te\ncomm_modify cutoff 14.70\n```\n", + "html_filename": "pair_bop.html", + "short_description": "The *bop* pair style computes Bond-Order Potentials (BOP) based on\nquantum mechanical theory incorporating both \\(\\sigma\\) and \\(\\pi\\) bonding", + "description": "The *bop* pair style computes Bond-Order Potentials (BOP) based on\nquantum mechanical theory incorporating both \\(\\sigma\\) and \\(\\pi\\) bonding.\nBy analytically deriving the BOP from quantum mechanical theory its\ntransferability to different phases can approach that of quantum\nmechanical methods. This potential is similar to the original BOP\ndeveloped by Pettifor (**Pettifor_1**,\n**Pettifor_2**, **Pettifor_3**) and later updated\nby Murdick, Zhou, and Ward (**Murdick**, **Ward**).\nCurrently, BOP potential files for these systems are provided with\nLAMMPS: AlCu, CCu, CdTe, CdTeSe, CdZnTe, CuH, GaAs. A system with\nonly a subset of these elements, including a single element (e.g. C or\nCu or Al or Ga or Zn or CdZn), can also be modeled by using the\nappropriate alloy file and assigning all atom types to the\nsingle element or subset of elements via the pair_coeff command, as\ndiscussed below.\n\nThe BOP potential consists of three terms:\n\\[\n E = \\frac{1}{2} \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\phi_{ij} \\left( r_{ij} \\right) - \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\beta_{\\sigma,ij} \\left( r_{ij} \\right) \\cdot \\Theta_{\\sigma,ij} - \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\beta_{\\pi,ij} \\left( r_{ij} \\right) \\cdot \\Theta_{\\pi,ij} + U_{prom}\\]\nwhere \\(\\phi_{ij}(r_{ij})\\) is a short-range two-body function\nrepresenting the repulsion between a pair of ion cores,\n\\(\\beta_{\\sigma,ij}(r_{ij})\\) and \\(\\beta_{\\sigma,ij}(r_{ij})\\)\nare respectively sigma and \\(\\pi\\) bond integrals, \\(\\Theta_{\\sigma,ij}\\)\nand \\(\\Theta_{\\pi,ij}\\) are \\(\\sigma\\) and \\(\\pi\\)\nbond-orders, and U_prom is the promotion energy for sp-valent systems.\n\nThe detailed formulas for this potential are given in Ward\n(**Ward**); here we provide only a brief description.\n\nThe repulsive energy \\(\\phi_{ij}(r_{ij})\\) and the bond integrals\n\\(\\beta_{\\sigma,ij}(r_{ij})\\) and \\(\\beta_{\\phi,ij}(r_{ij})\\) are functions of the\ninteratomic distance \\(r_{ij}\\) between atom *i* and *j* . Each of these\npotentials has a smooth cutoff at a radius of \\(r_{cut,ij}\\). These\nsmooth cutoffs ensure stable behavior at situations with high sampling\nnear the cutoff such as melts and surfaces.\n\nThe bond-orders can be viewed as environment-dependent local variables\nthat are ij bond specific. The maximum value of the \\(\\sigma\\)\nbond-order (\\(\\Theta_{\\sigma}\\) is 1, while that of the \\(\\pi\\)\nbond-order (\\(\\Theta_{\\pi}\\)) is 2, attributing to a maximum value\nof the total bond-order (\\(\\Theta_{\\sigma}+\\Theta_{\\pi}\\)) of 3.\nThe \\(\\sigma\\) and \\(\\pi\\) bond-orders reflect the ubiquitous\nsingle-, double-, and triple- bond behavior of chemistry. Their\nanalytical expressions can be derived from tight- binding theory by\nrecursively expanding an inter-site Green's function as a continued\nfraction. To accurately represent the bonding with a computationally\nefficient potential formulation suitable for MD simulations, the derived\nBOP only takes (and retains) the first two levels of the recursive\nrepresentations for both the \\(\\sigma\\) and the \\(\\pi\\) bond-orders. Bond-order\nterms can be understood in terms of molecular orbital hopping paths\nbased upon the Cyrot-Lackmann theorem (**Pettifor_1**).\nThe \\(\\sigma\\) bond-order with a half-full valence shell is used to\ninterpolate the bond-order expression that incorporated explicit valance\nband filling. This \\(\\pi\\) bond-order expression also contains also contains\na three-member ring term that allows implementation of an asymmetric\ndensity of states, which helps to either stabilize or destabilize\nclose-packed structures. The \\(\\pi\\) bond-order includes hopping paths of\nlength 4. This enables the incorporation of dihedral angles effects.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that unlike for other potentials, cutoffs for BOP\n > potentials are not set in the pair_style or pair_coeff command; they\n > are specified in the BOP potential files themselves. Likewise, the\n > BOP potential files list atomic masses; thus you do not need to use\n > the [mass ](https://docs.lammps.org/mass.html) command to specify them. Note that for BOP\n > potentials with hydrogen, you will likely want to set the mass of H\n > atoms to be 10x or 20x larger to avoid having to use a tiny timestep.\n > You can do this by using the [mass ](https://docs.lammps.org/mass.html) command after using the\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command to read the BOP potential\n > file. \n > \n\nOne option can be specified as a keyword with the pair_style command.\n\nThe *save* keyword gives you the option to calculate in advance and\nstore a set of distances, angles, and derivatives of angles. The\ndefault is to not do this, but to calculate them on-the-fly each time\nthey are needed. The former may be faster, but takes more memory.\nThe latter requires less memory, but may be slower. It is best to\ntest this option to optimize the speed of BOP for your particular\nsystem configuration.\n\n----------\n\nOnly a single pair_coeff command is used with the *bop* style which\nspecifies a BOP potential file, with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of BOP elements to atom types\n\nAs an example, imagine the CdTe.bop file has BOP values for Cd\nand Te. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Cd, and the fourth to be Te, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * CdTe Cd Cd Cd Te\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Cd arguments map LAMMPS atom types 1,2,3 to the Cd\nelement in the BOP file. The final Te argument maps LAMMPS atom type\n4 to the Te element in the BOP file.\n\nBOP files in the *potentials* directory of the LAMMPS distribution\nhave a \".bop\" suffix. The potentials are in tabulated form containing\npre-tabulated pair functions for phi_ij(r_ij), beta_(sigma,ij)(r_ij),\nand beta_pi,ij)(r_ij).\n\nThe parameters/coefficients format for the different kinds of BOP\nfiles are given below with variables matching the formulation of Ward\n(**Ward**) and Zhou (**Zhou1**). Each header line containing a\n\":\" is preceded by a blank line.\n\n----------\n\n**No angular table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Ward**).\n\n* Line 1: # elements N\n\nThe first line is followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g_(sigma0), g_(sigma1), g_(sigma2) (These are coefficients for\n g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. **Ward**\n contains the full expressions for the constants as functions of\n b_(sigma,ijk), p_(sigma,ijk), u_(sigma,ijk))\n* Line 2: g_(sigma0), g_(sigma1), g_(sigma2) (for e_1-e_1-e_2)\n\nThe next section contains a block for each interaction type for the\nphi_ij(r_ij). Each block has nr entries with 5 entries per line.\n\n* Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e_1-e_1\n interaction type)\n* Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues\n until nr)\n* ...\n* Line nr/5_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the\n e_1-e_1 interaction type)\n\nThe next section contains a block for each interaction type for the\nbeta_(sigma,ij)(r_ij). Each block has nr entries with 5 entries per\nline.\n\n* Line 1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4),\n beta_sigma(r5) (for the e_1-e_1 interaction type)\n* Line 2: beta_sigma(r6), beta_sigma(r7), beta_sigma(r8), beta_sigma(r9),\n beta_sigma(r10) (this continues until nr)\n* ...\n* Line nr/5+1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3),\n beta_sigma(r4), beta_sigma(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block for each interaction type for\nbeta_(pi,ij)(r_ij). Each block has nr entries with 5 entries per line.\n\n* Line 1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5)\n (for the e_1-e_1 interaction type)\n* Line 2: beta_pi(r6), beta_pi(r7), beta_pi(r8), beta_pi(r9),\n beta_pi(r10) (this continues until nr)\n* ...\n* Line nr/5+1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4),\n beta_pi(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block for each interaction type for the\nTHETA_(S,ij)((THETA_(sigma,ij))\\^(1/2), f_(sigma,ij)). Each block has\nnBOt entries with 5 entries per line.\n\n* Line 1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),\n THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)\n* Line 2: THETA_(S,ij)(r6), THETA_(S,ij)(r7), THETA_(S,ij)(r8),\n THETA_(S,ij)(r9), THETA_(S,ij)(r10) (this continues until nBOt)\n* ...\n* Line nBOt/5+1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3),\n THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)\n\nThe next section contains a block of N lines for e_1-e_N\n\n* Line 1: delta\\^mu (for e_1)\n* Line 2: delta\\^mu (for e_2 and repeats to e_N)\n\nThe last section contains more constants for e_i-e_j interactions with\ni=0->N, j=i->N\n\n* Line 1: (A_ij)\\^(mu\\*nu) (for e1-e1)\n* Line 2: (A_ij)\\^(mu\\*nu) (for e1-e2 and repeats as above)\n\n----------\n\n**Angular spline table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Zhou1**).\n\n* Line 1: # elements N\n\nThe first line is followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; ntheta is the power of the\n power of the spline used to fit the angular function; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g0, g1, g2... (These are coefficients for the angular spline\n of the g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. The\n function can contain up to 10 term thus 10 constants. The first line\n can contain up to five constants. If the spline has more than five\n terms the second line will contain the remaining constants The\n following lines will then contain the constants for the remaining g0,\n g1, g2... (for e_1-e_1-e_2) and the other three body\n interactions\n\nThe rest of the table has the same structure as the previous section\n(see above).\n\n----------\n\n**Angular no-spline table file format** :\n\nThe parameters/coefficients format for the BOP potentials input file\ncontaining pre-tabulated functions of g is given below with variables\nmatching the formulation of Ward (**Ward**). This format also\nassumes the angular functions have the formulation of (**Zhou1**).\n\n* Line 1: # elements N\n\nThe first two lines are followed by N lines containing the atomic\nnumber, mass, and element symbol of each element.\n\nFollowing the definition of the elements several global variables for\nthe tabulated functions are given.\n\n* Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken\n into for function tables and MUST be a factor of 5; ntheta is the number of\n divisions for the tabulated values of the g angular function; nBOt is the number\n of divisions for the tabulated values of THETA_(S,ij)\n* Line 2: delta_1-delta_7 (if all are not used in the particular\n* formulation, set unused values to 0.0)\n\nFollowing this N lines for e_1-e_N containing p_pi.\n\n* Line 3: p_pi (for e_1)\n* Line 4: p_pi (for e_2 and continues to e_N)\n\nThe next section contains several pair constants for the number of\ninteraction types e_i-e_j, with i=1->N, j=i->N\n\n* Line 1: r_cut (for e_1-e_1 interactions)\n* Line 2: c_sigma, a_sigma, c_pi, a_pi\n* Line 3: delta_sigma, delta_pi\n* Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of\n the previous section but is interaction type dependent)\n\nThe next section contains a line for each three body interaction type\ne_j-e_i-e_k with i=0->N, j=0->N, k=j->N\n\n* Line 1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5) (for the e_1-e_1-e_1\n interaction type)\n* Line 2: g(theta6), g(theta7), g(theta8), g(theta9), g(theta10) (this continues\n until ntheta)\n* ...\n* Line ntheta/5+1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5), (for the\n e_1-e_1-e_2 interaction type)\n\nThe rest of the table has the same structure as the previous section (see above).\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Pettifor_1)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 59, 8487\n(1999). \n \n**(Pettifor_2)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. Lett., 84,\n4124 (2000). \n \n**(Pettifor_3)** D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 65, 172103\n(2002). \n \n**(Murdick)** D.A. Murdick, X.W. Zhou, H.N.G. Wadley, D. Nguyen-Manh, R.\nDrautz, and D.G. Pettifor, Phys. Rev. B, 73, 45206 (2006). \n \n**(Ward)** D.K. Ward, X.W. Zhou, B.M. Wong, F.P. Doty, and J.A.\nZimmerman, Phys. Rev. B, 85,115206 (2012). \n \n**(Zhou1)** X.W. Zhou, D.K. Ward, M. Foster (TBP). \n ", + "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newtion ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nPair style bop is not compatible with being used as a sub-style with\ndoc:`hybrid pair styles `. Pair style bop is also not\ncompatible with [multi-cutoff neighbor lists ](https://docs.lammps.org/neighbor.html) or\n[multi-cutoff communitcation ](https://docs.lammps.org/comm_modify.html).\n\nThe .bop.table potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the BOP potential with any LAMMPS units, but you would need\nto create your own BOP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix_modify AtC atomic_charge" + "pair_style buck/long/coul/long", + "pair_style buck/long/coul/long/omp" ], "syntax": [ - "fix_modify atomic_charge" + "pair_style buck/long/coul/long flag_buck flag_coul cutoff (cutoff2)" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] + "arg": "buck/long/coul/long", + "type": 3, + "choices": [ + "buck/long/coul/long", + "buck/long/coul/long/omp" + ] }, { - "arg": "", + "arg": "cut", "type": 3, "choices": [ - "include", - "omit" + "long", + "cut" ] }, { - "arg": "atomic_charge", - "type": 1, + "arg": "off", + "type": 3, + "choices": [ + "long", + "off" + ] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "(cutoff2)", + "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* include or omit = switch to activate/deactivate inclusion of intrinsic atomic charge in ATC\n* atomic_charge = name of the AtC sub-command \n", - "examples": "\n```lmps\nfix_modify AtC include atomic_charge\n```\n", - "html_filename": "atc_atomic_charge.html", - "short_description": "Determines whether AtC tracks the total charge as a finite element\nfield", - "description": "Determines whether AtC tracks the total charge as a finite element\nfield.\n", - "restrictions": "Required for: *electrostatics*\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* flag_buck = long or cut \n *        long = use Kspace long-range summation for the dispersion term 1/r\\^6 \n *        cut = use a cutoff \n* flag_coul = long or off \n *        long = use Kspace long-range summation for the Coulombic term 1/r \n *        off = omit the Coulombic term \n* cutoff = global cutoff for Buckingham (and Coulombic if only 1 cutoff) (distance units)\n* cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style buck/long/coul/long cut off 2.5\npair_style buck/long/coul/long cut long 2.5 4.0\npair_style buck/long/coul/long long long 4.0\npair_coeff * * 1 1\npair_coeff 1 1 1 3 4\n```\n", + "html_filename": "pair_buck_long.html", + "short_description": "The *buck/long/coul/long* style computes a Buckingham potential (exp/6\ninstead of Lennard-Jones 12/6) and Coulombic potential, given by\n\\[\\begin{align*} \n E = & A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c \\\\\n E = & \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c \\end{align*} \\]\n\\(r_c\\) is the cutoff", + "description": "The *buck/long/coul/long* style computes a Buckingham potential (exp/6\ninstead of Lennard-Jones 12/6) and Coulombic potential, given by\n\\[\\begin{align*} \n E = & A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c \\\\\n E = & \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c \\end{align*} \\]\n\\(r_c\\) is the cutoff. If one cutoff is specified in the pair_style\ncommand, it is used for both the Buckingham and Coulombic terms. If\ntwo cutoffs are specified, they are used as cutoffs for the Buckingham\nand Coulombic terms respectively.\n\nThe purpose of this pair style is to capture long-range interactions\nresulting from both attractive 1/r\\^6 Buckingham and Coulombic 1/r\ninteractions. This is done by use of the *flag_buck* and *flag_coul*\nsettings. The **Ismail** paper has more details on when it is\nappropriate to include long-range 1/r\\^6 interactions, using this\npotential.\n\nIf *flag_buck* is set to *long*, no cutoff is used on the Buckingham\n1/r\\^6 dispersion term. The long-range portion can be calculated by\nusing the [kspace_style ewald/disp or pppm/disp ](https://docs.lammps.org/kspace_style.html)\ncommands. The specified Buckingham cutoff then determines which\nportion of the Buckingham interactions are computed directly by the\npair potential versus which part is computed in reciprocal space via\nthe Kspace style. If *flag_buck* is set to *cut*, the Buckingham\ninteractions are simply cutoff, as with [pair_style buck ](https://docs.lammps.org/pair_buck.html).\n\nIf *flag_coul* is set to *long*, no cutoff is used on the Coulombic\ninteractions. The long-range portion can calculated by using any of\nseveral [kspace_style ](https://docs.lammps.org/kspace_style.html) command options such as\n*pppm* or *ewald* . Note that if *flag_buck* is also set to long, then\nthe *ewald/disp* or *pppm/disp* Kspace style needs to be used to\nperform the long-range calculations for both the Buckingham and\nCoulombic interactions. If *flag_coul* is set to *off*, Coulombic\ninteractions are not computed.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* rho (distance units)\n* C (energy-distance\\^6 units)\n* cutoff (distance units)\n* cutoff2 (distance units)\n\nThe second coefficient, rho, must be greater than zero.\n\nThe latter 2 coefficients are optional. If not specified, the global\nBuckingham and Coulombic cutoffs specified in the pair_style command\nare used. If only one cutoff is specified, it is used as the cutoff\nfor both Buckingham and Coulombic interactions for this type pair. If\nboth coefficients are specified, they are used as the Buckingham and\nCoulombic cutoffs for this type pair. Note that if you are using\n*flag_buck* set to *long*, you cannot specify a Buckingham cutoff for\nan atom type pair, since only one global Buckingham cutoff is allowed.\nSimilarly, if you are using *flag_coul* set to *long*, you cannot\nspecify a Coulombic cutoff for an atom type pair, since only one\nglobal Coulombic cutoff is allowed.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the exp() and 1/r\\^6 portion of the pair\ninteraction, assuming *flag_buck* is *cut* .\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Buckingham portion of the pair\ninteraction.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\ntable/disp options since they can tabulate the short-range portion of\nthe long-range Coulombic and dispersion interactions.\n\nThis pair style write its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n\n**(Ismail)** Ismail, Tsige, In 't Veld, Grest, Molecular Physics\n(accepted) (2007). \n ", + "restrictions": "This style is part of the KSPACE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "angle_style dipole", - "angle_style dipole/omp" + "bond_style hybrid", + "bond_style hybrid/kk" ], "syntax": [ - "angle_style dipole" + "bond_style hybrid style1 style2 ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "dipole", + "arg": "hybrid", "type": 3, "choices": [ - "dipole", - "dipole/omp" + "hybrid", + "hybrid/kk" ] + }, + { + "arg": "style1", + "type": 2, + "choices": [] + }, + { + "arg": "style2", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style dipole\nangle_coeff 6 2.1 180.0\n```\n", - "html_filename": "angle_dipole.html", - "short_description": "The *dipole* angle style is used to control the orientation of a dipolar\natom within a molecule **Orsi**", - "description": "The *dipole* angle style is used to control the orientation of a dipolar\natom within a molecule **Orsi**. Specifically, the *dipole* angle\nstyle restrains the orientation of a point dipole \\(\\mu_j\\) (embedded in atom\n\\(j\\)) with respect to a reference (bond) vector\n\\(\\vec{r}_{ij} = \\vec{r}_i - \\vec{r}_j\\), where \\(i\\) is another atom of\nthe same molecule (typically, \\(i\\) and \\(j\\) are also covalently bonded).\n\nIt is convenient to define an angle gamma between the 'free' vector \\(\\vec{\\mu}_j\\)\nand the reference (bond) vector \\(\\vec{r}_{ij}\\):\n\\[\n \\cos\\gamma = \\frac{\\vec{\\mu}_j\\cdot\\vec{r}_{ij}}{\\mu_j\\,r_{ij}}\\]\nThe *dipole* angle style uses the potential:\n\\[\n E = K (\\cos\\gamma - \\cos\\gamma_0)^2\\]\nwhere \\(K\\) is a rigidity constant and gamma0 is an equilibrium (reference)\nangle.\n\nThe torque on the dipole can be obtained by differentiating the\npotential using the 'chain rule' as in appendix C.3 of\n**Allen1**:\n\\[\n \\vec{T}_j = \\frac{2K(\\cos\\gamma - \\cos\\gamma_0)}{\\mu_j\\,r_{ij}}\\, \\vec{r}_{ij} \\times \\vec{\\mu}_j\\]\nExample: if \\(\\gamma_0\\) is set to 0 degrees, the torque generated by\nthe potential will tend to align the dipole along the reference\ndirection defined by the (bond) vector \\(\\vec{r}_{ij}\\) (in other words, \\(\\vec{\\mu}_j\\) is\nrestrained to point towards atom \\(i\\)).\n\nThe dipolar torque \\(\\vec{T}_j\\) must be counterbalanced in order to conserve\nthe local angular momentum. This is achieved via an additional force\ncouple generating a torque equivalent to the opposite of \\(\\vec{T}_j\\):\n\\[\\begin{align*} \n -\\vec{T}_j & = \\vec{r}_{ij} \\times \\vec{F}_i \\\\\n \\vec{F}_j & = -\\vec{F}_i \\end{align*} \\]\nwhere \\(\\vec{F}_i\\) and \\(\\vec{F}_j\\) are applied on atoms \\(i\\)\nand \\(j\\), respectively.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\gamma_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n**(Orsi)** Orsi & Essex, The ELBA force field for coarse-grain modeling of\nlipid membranes, PloS ONE 6(12): e28637, 2011. \n \n**(Allen1)** Allen & Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nDIPOLE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the \"Angles\" section of the data file, the atom ID \\(j\\)\n > defining the direction of the dipole vector to restrain must come\n > before the atom ID of the reference atom \\(i\\). A third atom ID \\(k\\) must\n > also be provided to comply with the requirement of a valid angle\n > definition. This atom ID \\(k\\) should be chosen to be that of an atom\n > bonded to atom \\(i\\) to avoid errors with \"lost angle atoms\" when running\n > in parallel. Since the LAMMPS code checks for valid angle definitions,\n > cannot use the same atom ID of either \\(i\\) or \\(j\\) (this was allowed\n > and recommended with older LAMMPS versions). \n > \n\nThe [newton ](https://docs.lammps.org/newton.html) command for intramolecular interactions must be \"on\"\n(which is the default except when using some accelerator packages).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This angle style should **NOT** be used with fix shake. \n > \n\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_hybrid ](https://docs.lammps.org/angle_hybrid.html)\n" + "parameters": "* style1,style2 = list of one or more bond styles \n", + "examples": "\n```lmps\nbond_style hybrid harmonic fene\nbond_coeff 1 harmonic 80.0 1.2\nbond_coeff 2* fene 30.0 1.5 1.0 1.0\n```\n", + "html_filename": "bond_hybrid.html", + "short_description": "The *hybrid* style enables the use of multiple bond styles in one\nsimulation", + "description": "The *hybrid* style enables the use of multiple bond styles in one\nsimulation. A bond style is assigned to each bond type. For example,\nbonds in a polymer flow (of bond type 1) could be computed with a\n*fene* potential and bonds in the wall boundary (of bond type 2) could\nbe computed with a *harmonic* potential. The assignment of bond type\nto style is made via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command or in\nthe data file.\n\nIn the bond_coeff commands, the name of a bond style must be added\nafter the bond type, with the remaining coefficients being those\nappropriate to that style. In the example above, the 2 bond_coeff\ncommands set bonds of bond type 1 to be computed with a *harmonic*\npotential with coefficients 80.0, 1.2 for \\(K\\), \\(r_0\\). All other bond types\n(2-N) are computed with a *fene* potential with coefficients 30.0,\n1.5, 1.0, 1.0 for \\(K\\), \\(R_0\\), \\(\\epsilon\\), \\(\\sigma\\).\n\nIf bond coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"fene\" must be added after the bond type, for each\nline in the \"Bond Coeffs\" section, e.g.\n\n```\nBond Coeffs\n\n1 harmonic 80.0 1.2\n2 fene 30.0 1.5 1.0 1.0\n...\n```\nA bond style of *none* with no additional coefficients can be used in\nplace of a bond style, either in a input script bond_coeff command or\nin the data file, if you desire to turn off interactions for specific\nbond types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nUnlike other bond styles, the hybrid bond style does not store bond\ncoefficient info for individual sub-styles in a [binary restart files ](https://docs.lammps.org/restart.html). Thus when restarting a simulation from a restart\nfile, you need to re-specify bond_coeff commands.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "compute temp/body" + "fix nve/bpm/sphere" ], "syntax": [ - "compute ID group-ID temp/body keyword value ..." + "fix ID group-ID nve/bpm/sphere" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -10441,224 +9555,256 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/body", + "arg": "nve/bpm/sphere", "type": 1, "choices": [] - }, - { - "arg": "dof", - "type": 3, - "choices": [ - "bias", - "dof" - ] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/body = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", - "examples": "\n```lmps\ncompute 1 all temp/body\ncompute myTemp mobile temp/body bias tempCOM\ncompute myTemp mobile temp/body dof rotate\n```\n", - "html_filename": "compute_temp_body.html", - "short_description": "Define a computation that calculates the temperature of a group of\nbody particles, including a contribution from both their\ntranslational and rotational kinetic energy", - "description": "Define a computation that calculates the temperature of a group of\nbody particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nOnly body particles can be included in the group. For 3d particles,\neach has 6 degrees of freedom (3 translational, 3 rotational). For 2d\nbody particles, each has 3 degrees of freedom (2 translational, 1\nrotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all body\n > particles in your model will freely rotate, sampling all their\n > rotational DOF. It is possible to use a combination of interaction\n > potentials and fixes that induce no torque or otherwise constrain\n > some of all of your particles so that this is not the case. Then\n > there are less DOF and you should use the [compute_modify > extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust the DOF accordingly. \n > \n\nThe translational kinetic energy is computed the same as is described\nby the [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational\nkinetic energy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\)\nis the moment of inertia tensor for the aspherical particle and \\(\\omega\\)\nis its angular velocity, which is computed from its angular momentum.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) and \\(\\omega^2\\) are replaced by \\(v_x v_y\\)\nand \\(\\omega_x \\omega_y\\) for the \\(xy\\) component, and so on.\nAnd the appropriate elements of the moment of inertia tensor are used.\nNote that because it lacks the 1/2 factor, these tensor components are\ntwice those of the traditional kinetic energy tensor. The six\ncomponents of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic/dof* option of\nthe [compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the\ncase.\n\nThis compute subtracts out translational degrees-of-freedom due to\nfixes that constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the\ntemperature of groups of atoms that include these constraints will be\ncomputed correctly. If needed, the subtracted degrees-of-freedom can\nbe altered using the *extra/dof* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom. A\nsetting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the BODY package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/bpm/sphere = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n", + "examples": "\n```lmps\nfix 1 all nve/bpm/sphere\nfix 1 all nve/bpm/sphere disc\n```\n", + "html_filename": "fix_nve_bpm_sphere.html", + "short_description": "\nPerform constant NVE integration to update position, velocity, angular\nvelocity, and quaternion orientation for finite-size spherical\nparticles in the group each timestep", + "description": "\nPerform constant NVE integration to update position, velocity, angular\nvelocity, and quaternion orientation for finite-size spherical\nparticles in the group each timestep. V is volume; E is energy. This\ncreates a system trajectory consistent with the microcanonical\nensemble.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\nIt also differs from the [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\ncommand which assumes finite-size spheroid particles which do not\nstore a quaternion. It thus does not update a particle's orientation\nor quaternion.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BPM package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis fix requires that atoms store torque, angular velocity (omega), a\nradius, and a quaternion as defined by the [atom_style bpm/sphere](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be finite-size spheres with\nquaternions. They cannot be point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\n" }, { "command": [ - "improper_style" + "kspace_modify" ], "syntax": [ - "improper_style style" + "kspace_modify keyword value ..." ], "args": [ [ { - "arg": "improper_style", + "arg": "kspace_modify", "type": 1, "choices": [] }, { - "arg": "harmonic", + "arg": "wire", "type": 3, "choices": [ - "none", - "hybrid", - "class2", - "cvff", - "harmonic" + "collective", + "compute", + "cutoff/adjust", + "diff", + "disp/auto", + "fftbench", + "force/disp/kspace", + "force/disp/real", + "force", + "gewald/disp", + "gewald", + "kmax/ewald", + "mesh", + "minorder", + "mix/disp", + "order/disp", + "order", + "overlap", + "scafacos", + "slab", + "splittol", + "wire" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = none or hybrid or class2 or cvff or harmonic \n", - "examples": "\n```lmps\nimproper_style harmonic\nimproper_style cvff\nimproper_style hybrid cvff harmonic\n```\n", - "html_filename": "improper_style.html", - "short_description": "Set the formula(s) LAMMPS uses to compute improper interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation", - "description": "Set the formula(s) LAMMPS uses to compute improper interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation. The list of improper quadruplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file. Note that the ordering of the 4 atoms in\nan improper quadruplet determines the definition of the improper\nangle used in the formula for each style. See the doc pages of\nindividual styles for details.\n\nHybrid models where impropers are computed using different improper\npotentials can be setup using the *hybrid* improper style.\n\nThe coefficients associated with an improper style can be specified in\na data or restart file or via the [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nAll improper potentials store their coefficient data in binary restart\nfiles which means improper_style and\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands do not need to be\nre-specified in an input script that restarts a simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for details on how to do\nthis. The one exception is that improper_style *hybrid* only stores\nthe list of sub-styles in the restart file; improper coefficients need\nto be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both an improper and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between a group of 4 bonded atoms. \n > \n\n----------\n\nHere is an alphabetic list of improper styles defined in LAMMPS.\nClick on the style to display the formula it computes and coefficients\nspecified by the associated [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the improper_style command, and coefficients\nspecified by the associated [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands improper ` page are followed by one or\nmore of (g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [none ](https://docs.lammps.org/improper_none.html) - turn off improper interactions\n* [zero ](https://docs.lammps.org/improper_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/improper_hybrid.html) - define multiple styles of improper interactions\n* [amoeba ](https://docs.lammps.org/improper_amoeba.html) - AMOEBA out-of-plane improper\n* [class2 ](https://docs.lammps.org/improper_class2.html) - COMPASS (class 2) improper\n* [cossq ](https://docs.lammps.org/improper_cossq.html) - improper with a cosine squared term\n* [cvff ](https://docs.lammps.org/improper_cvff.html) - CVFF improper\n* [distance ](https://docs.lammps.org/improper_distance.html) - improper based on distance between atom planes\n* [distharm ](https://docs.lammps.org/improper_distharm.html) - improper that is harmonic in the out-of-plane distance\n* [fourier ](https://docs.lammps.org/improper_fourier.html) - improper with multiple cosine terms\n* [harmonic ](https://docs.lammps.org/improper_harmonic.html) - harmonic improper\n* [inversion/harmonic ](https://docs.lammps.org/improper_inversion_harmonic.html) - harmonic improper with Wilson-Decius out-of-plane definition\n* [ring ](https://docs.lammps.org/improper_ring.html) - improper which prevents planar conformations\n* [umbrella ](https://docs.lammps.org/improper_umbrella.html) - DREIDING improper\n* [sqdistharm ](https://docs.lammps.org/improper_sqdistharm.html) - improper that is harmonic in the square of the out-of-plane distance\n\n----------\n", - "restrictions": "Improper styles can only be set for atom_style choices that allow\nimpropers to be defined.\n\nMost improper styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual improper potentials tell if it is part of a package.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* one or more keyword/value pairs may be listed\n* keyword = collective or compute or cutoff/adjust or diff or disp/auto or fftbench or force/disp/kspace or force/disp/real or force or gewald/disp or gewald or kmax/ewald or mesh or minorder or mix/disp or order/disp or order or overlap or scafacos or slab or splittol or wire \n *        collective value = yes or no \n *        compute value = yes or no \n *        cutoff/adjust value = yes or no \n *        diff value = ad or ik = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode \n *        disp/auto value = yes or no \n *        fftbench value = yes or no \n *        force/disp/real value = accuracy (force units) \n *        force/disp/kspace value = accuracy (force units) \n *        force value = accuracy (force units) \n *        gewald value = rinv (1/distance units) \n         rinv = G-ewald parameter for Coulombics \n *        gewald/disp value = rinv (1/distance units) \n         rinv = G-ewald parameter for dispersion \n *        kmax/ewald value = kx ky kz \n         kx,ky,kz = number of Ewald sum kspace vectors in each dimension \n *        mesh value = x y z \n         x,y,z = grid size in each dimension for long-range Coulombics \n *        *mesh/disp* value = x y z \n         x,y,z = grid size in each dimension for 1/r\\^6 dispersion \n *        minorder value = M \n         M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication \n *        mix/disp value = pair or geom or none \n *        order value = N \n         N = extent of Gaussian for PPPM or MSM mapping of charge to grid \n *        order/disp value = N \n         N = extent of Gaussian for PPPM mapping of dispersion term to grid \n *        overlap = yes or no = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor \n *        *pressure/scalar* value = yes or no \n *        scafacos values = option value1 value2 ... \n         option = tolerance \n         value = energy or energy_rel or field or field_rel or potential or potential_rel \n         option = fmm_tuning \n         value = 0 or 1 \n *        slab value = volfactor or nozforce \n         volfactor = ratio of the total extended volume used in the \n         2d approximation compared with the volume of the simulation domain \n         nozforce turns off kspace forces in the z direction \n *        splittol value = tol \n         tol = relative size of two eigenvalues (see discussion below) \n *        wire value = volfactor (available with ELECTRODE package) \n         volfactor = ratio of the total extended dimension used in the 1d \n         approximation compared with the dimension of the simulation domain \n", + "examples": "\n```lmps\nkspace_modify mesh 24 24 30 order 6\nkspace_modify slab 3.0\nkspace_modify scafacos tolerance energy\n```\n", + "html_filename": "kspace_modify.html", + "short_description": "Set parameters used by the kspace solvers defined by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command", + "description": "Set parameters used by the kspace solvers defined by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command. Not all parameters are\nrelevant to all kspace styles.\n\n----------\n\nThe *collective* keyword applies only to PPPM. It is set to *no* by\ndefault, except on IBM BlueGene machines. If this option is set to\n*yes*, LAMMPS will use MPI collective operations to remap data for\n3d-FFT operations instead of the default point-to-point communication.\nThis is faster on IBM BlueGene machines, and may also be faster on\nother machines if they have an efficient implementation of MPI\ncollective operations and adequate hardware.\n\n----------\n\nThe *compute* keyword allows Kspace computations to be turned off,\neven though a [kspace_style ](https://docs.lammps.org/kspace_style.html) is defined. This is\nnot useful for running a real simulation, but can be useful for\ndebugging purposes or for computing only partial forces that do not\ninclude the Kspace contribution. You can also do this by simply not\ndefining a [kspace_style ](https://docs.lammps.org/kspace_style.html), but a Kspace-compatible\n[pair_style ](https://docs.lammps.org/pair_style.html) requires a kspace style to be defined.\nThis keyword gives you that option.\n\n----------\n\nThe *cutoff/adjust* keyword applies only to MSM. If this option is\nturned on, the Coulombic cutoff will be automatically adjusted at the\nbeginning of the run to give the desired estimated error. Other\ncutoffs such as LJ will not be affected. If the grid is not set using\nthe *mesh* command, this command will also attempt to use the optimal\ngrid that minimizes cost using an estimate given by\n**Hardy1**. Note that this cost estimate is not exact, somewhat\nexperimental, and still may not yield the optimal parameters.\n\n----------\n\nThe *diff* keyword specifies the differentiation scheme used by the\nPPPM method to compute forces on particles given electrostatic\npotentials on the PPPM mesh. The *ik* approach is the default for\nPPPM and is the original formulation used in **Hockney1**. It\nperforms differentiation in Kspace, and uses 3 FFTs to transfer each\ncomponent of the computed fields back to real space for total of 4\nFFTs per timestep.\n\nThe analytic differentiation *ad* approach uses only 1 FFT to transfer\ninformation back to real space for a total of 2 FFTs per timestep. It\nthen performs analytic differentiation on the single quantity to\ngenerate the 3 components of the electric field at each grid point.\nThis is sometimes referred to as \"smoothed\" PPPM. This approach\nrequires a somewhat larger PPPM mesh to achieve the same accuracy as\nthe *ik* method. Currently, only the *ik* method (default) can be\nused for a triclinic simulation cell with PPPM. The *ad* method is\nalways used for MSM.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently, not all PPPM styles support the *ad* option. Support\n > for those PPPM variants will be added later. \n > \n\n----------\n\nThe *disp/auto* option controls whether the pppm/disp is allowed to\ngenerate PPPM parameters automatically. If set to *no*, parameters have\nto be specified using the *gewald/disp*, *mesh/disp*,\n*force/disp/real* or *force/disp/kspace* keywords, or\nthe code will stop with an error message. When this option is set to\n*yes*, the error message will not appear and the simulation will start.\nFor a typical application, using the automatic parameter generation\nwill provide simulations that are either inaccurate or slow. Using this\noption is thus not recommended. For guidelines on how to obtain good\nparameters, see the [long-range dispersion howto ](https://docs.lammps.org/Howto_dispersion.html)\ndiscussion.\n\n----------\n\nThe *fftbench* keyword applies only to PPPM. It is off by default. If\nthis option is turned on, LAMMPS will perform a short FFT benchmark\ncomputation and report its timings, and will thus finish some seconds\nlater than it would if this option were off.\n\n----------\n\nThe *force/disp/real* and *force/disp/kspace* keywords set the force\naccuracy for the real and reciprocal space computations for the dispersion\npart of pppm/disp. As shown in **Isele-Holder1**,\noptimal performance and accuracy in the results is obtained when these\nvalues are different.\n\n----------\n\nThe *force* keyword overrides the relative accuracy parameter set by\nthe [kspace_style ](https://docs.lammps.org/kspace_style.html) command with an absolute\naccuracy. The accuracy determines the RMS error in per-atom forces\ncalculated by the long-range solver and is thus specified in force\nunits. A negative value for the accuracy setting means to use the\nrelative accuracy parameter. The accuracy setting is used in\nconjunction with the pairwise cutoff to determine the number of\nK-space vectors for style *ewald*, the FFT grid size for style\n*pppm*, or the real space grid size for style *msm* .\n\n----------\n\nThe *gewald* keyword sets the value of the Ewald or PPPM G-ewald\nparameter for charge as *rinv* in reciprocal distance units. Without\nthis setting, LAMMPS chooses the parameter automatically as a function\nof cutoff, precision, grid spacing, etc. This means it can vary from\none simulation to the next which may not be desirable for matching a\nKSpace solver to a pre-tabulated pairwise potential. This setting can\nalso be useful if Ewald or PPPM fails to choose a good grid spacing\nand G-ewald parameter automatically. If the value is set to 0.0,\nLAMMPS will choose the G-ewald parameter automatically. MSM does not\nuse the *gewald* parameter.\n\n----------\n\nThe *gewald/disp* keyword sets the value of the Ewald or PPPM G-ewald\nparameter for dispersion as *rinv* in reciprocal distance units. It\nhas the same meaning as the *gewald* setting for Coulombics.\n\n----------\n\nThe *kmax/ewald* keyword sets the number of kspace vectors in each\ndimension for kspace style *ewald* . The three values must be positive\nintegers, or else (0,0,0), which unsets the option. When this option\nis not set, the Ewald sum scheme chooses its own kspace vectors,\nconsistent with the user-specified accuracy and pairwise cutoff. In\nany case, if kspace style *ewald* is invoked, the values used are\nprinted to the screen and the log file at the start of the run.\n\n----------\n\nThe *mesh* keyword sets the grid size for kspace style *pppm* or\n*msm* . In the case of PPPM, this is the FFT mesh, and each dimension\nmust be factorizable into powers of 2, 3, and 5. In the case of MSM,\nthis is the finest scale real-space mesh, and each dimension must be\nfactorizable into powers of 2. When this option is not set, the PPPM\nor MSM solver chooses its own grid size, consistent with the\nuser-specified accuracy and pairwise cutoff. Values for x,y,z of\n0,0,0 unset the option.\n\n----------\n\nThe *mesh/disp* keyword sets the grid size for kspace style\n*pppm/disp* . This is the FFT mesh for long-range dispersion and ach\ndimension must be factorizable into powers of 2, 3, and 5. When this\noption is not set, the PPPM solver chooses its own grid size,\nconsistent with the user-specified accuracy and pairwise cutoff.\nValues for x,y,z of 0,0,0 unset the option.\n\n----------\n\nThe *minorder* keyword allows LAMMPS to reduce the *order* setting if\nnecessary to keep the communication of ghost grid point limited to\nexchanges between nearest-neighbor processors. See the discussion of\nthe *overlap* keyword for details. If the *overlap* keyword is set to\n*yes*, which is the default, this is never needed. If it set to *no*\nand overlap occurs, then LAMMPS will reduce the order setting, one\nstep at a time, until the ghost grid overlap only extends to nearest\nneighbor processors. The *minorder* keyword limits how small the\n*order* setting can become. The minimum allowed value for PPPM is 2,\nwhich is the default. If *minorder* is set to the same value as\n*order* then no reduction is allowed, and LAMMPS will generate an\nerror if the grid communication is non-nearest-neighbor and *overlap*\nis set to *no* . The *minorder* keyword is not currently supported in\nMSM.\n\n----------\n\nThe *mix/disp* keyword selects the mixing rule for the dispersion\ncoefficients. With *pair*, the dispersion coefficients of unlike\ntypes are computed as indicated with [pair_modify ](https://docs.lammps.org/pair_modify.html).\nWith *geom*, geometric mixing is enforced on the dispersion\ncoefficients in the kspace coefficients. When using the arithmetic\nmixing rule, this will speed-up the simulations but introduces some\nerror in the force computations, as shown in **Wennberg**.\nWith *none*, it is assumed that no mixing rule is\napplicable. Splitting of the dispersion coefficients will be performed\nas described in **Isele-Holder1**.\n\nThis splitting can be influenced with the *splittol* keywords. Only\nthe eigenvalues that are larger than tol compared to the largest\neigenvalues are included. Using this keywords the original matrix of\ndispersion coefficients is approximated. This leads to faster\ncomputations, but the accuracy in the reciprocal space computations of\nthe dispersion part is decreased.\n\n----------\n\nThe *order* keyword determines how many grid spacings an atom's charge\nextends when it is mapped to the grid in kspace style *pppm* or *msm* .\nThe default for this parameter is 5 for PPPM and 8 for MSM, which\nmeans each charge spans 5 or 8 grid cells in each dimension,\nrespectively. For the LAMMPS implementation of MSM, the order can\nrange from 4 to 10 and must be even. For PPPM, the minimum allowed\nsetting is 2 and the maximum allowed setting is 7. The larger the\nvalue of this parameter, the smaller that LAMMPS will set the grid\nsize, to achieve the requested accuracy. Conversely, the smaller the\norder value, the larger the grid size will be. Note that there is an\ninherent trade-off involved: a small grid will lower the cost of FFTs\nor MSM direct sum, but a larger order parameter will increase the cost\nof interpolating charge/fields to/from the grid.\n\nThe PPPM order parameter may be reset by LAMMPS when it sets up the\nFFT grid if the implied grid stencil extends beyond the grid cells\nowned by neighboring processors. Typically this will only occur when\nsmall problems are run on large numbers of processors. A warning will\nbe generated indicating the order parameter is being reduced to allow\nLAMMPS to run the problem. Automatic adjustment of the order parameter\nis not supported in MSM.\n\n----------\n\nThe *order/disp* keyword determines how many grid spacings an atom's\ndispersion term extends when it is mapped to the grid in kspace style\n*pppm/disp* . It has the same meaning as the *order* setting for\nCoulombics.\n\n----------\n\nThe *overlap* keyword can be used in conjunction with the *minorder*\nkeyword with the PPPM styles to adjust the amount of communication\nthat occurs when values on the FFT grid are exchanged between\nprocessors. This communication is distinct from the communication\ninherent in the parallel FFTs themselves, and is required because\nprocessors interpolate charge and field values using grid point values\nowned by neighboring processors (i.e. ghost point communication). If\nthe *overlap* keyword is set to *yes* then this communication is\nallowed to extend beyond nearest-neighbor processors, e.g. when using\nlots of processors on a small problem. If it is set to *no* then the\ncommunication will be limited to nearest-neighbor processors and the\n*order* setting will be reduced if necessary, as explained by the\n*minorder* keyword discussion. The *overlap* keyword is always set to\n*yes* in MSM.\n\n----------\n\nThe *pressure/scalar* keyword applies only to MSM. If this option is\nturned on, only the scalar pressure (i.e. (Pxx + Pyy + Pzz)/3.0) will\nbe computed, which can be used, for example, to run an isotropic barostat.\nComputing the full pressure tensor with MSM is expensive, and this option\nprovides a faster alternative. The scalar pressure is computed using a\nrelationship between the Coulombic energy and pressure **Hummer**\ninstead of using the virial equation. This option cannot be used to access\nindividual components of the pressure tensor, to compute per-atom virial,\nor with suffix kspace/pair styles of MSM, like OMP or GPU.\n\n----------\n\nThe *scafacos* keyword is used for settings that are passed to the\nScaFaCoS library when using [kspace_style scafacos ](https://docs.lammps.org/kspace_style.html).\n\nThe *tolerance* option affects how the *accuracy* specified with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command is interpreted by ScaFaCoS.\nThe following values may be used:\n\n* energy = absolute accuracy in total Coulombic energy\n* energy_rel = relative accuracy in total Coulombic energy\n* potential = absolute accuracy in total Coulombic potential\n* potential_rel = relative accuracy in total Coulombic potential\n* field = absolute accuracy in electric field\n* field_rel = relative accuracy in electric field\n\nThe values with suffix _rel indicate the tolerance is a relative\ntolerance; the other values impose an absolute tolerance on the given\nquantity. Absolute tolerance in this case means, that for a given\nquantity q and a given absolute tolerance of t_a the result should\nbe between q-t_a and q+t_a. For a relative tolerance t_r the relative\nerror should not be greater than t_r, i.e. abs(1 - (result/q)) < t_r.\nAs a consequence of this, the tolerance type should be checked, when\nperforming computations with a high absolute field / energy. E.g.\nif the total energy in the system is 1000000.0 an absolute tolerance\nof 1e-3 would mean that the result has to be between 999999.999 and\n1000000.001, which would be equivalent to a relative tolerance of\n1e-9.\n\nThe energy and energy_rel values, set a tolerance based on the total\nCoulombic energy of the system. The potential and potential_rel set a\ntolerance based on the per-atom Coulombic energy. The field and\nfield_rel tolerance types set a tolerance based on the electric field\nvalues computed by ScaFaCoS. Since per-atom forces are derived from\nthe per-atom electric field, this effectively sets a tolerance on the\nforces, similar to other LAMMPS KSpace styles, as explained on the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) doc page.\n\nNote that not all ScaFaCoS solvers support all tolerance types.\nThese are the allowed values for each method:\n\n* fmm = energy and energy_rel\n* p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic)\n* p3m = field\n* ewald = field\n* direct = has no tolerance tuning\n\nIf the tolerance type is not changed, the default values for the\ntolerance type are the first values in the above list, e.g. energy\nis the default tolerance type for the fmm solver.\n\nThe *fmm_tuning* option is only relevant when using the FMM method.\nIt activates (value=1) or deactivates (value=0) an internal tuning\nmechanism for the FMM solver. The tuning operation runs sequentially\nand can be very time-consuming. Usually it is not needed for systems\nwith a homogeneous charge distribution. The default for this option is\ntherefore *0* . The FMM internal tuning is performed once, when the\nsolver is set up.\n\n----------\n\nThe *slab* keyword allows an Ewald or PPPM solver to be used for a\nsystems that are periodic in x,y but non-periodic in z - a\n[boundary ](https://docs.lammps.org/boundary.html) setting of \"boundary p p f\". This is done\nby treating the system as if it were periodic in z, but inserting\nempty volume between atom slabs and removing dipole inter-slab\ninteractions so that slab-slab interactions are effectively turned\noff. The volfactor value sets the ratio of the extended dimension in\nz divided by the actual dimension in z. It must be a value >= 1.0. A\nvalue of 1.0 (the default) means the slab approximation is not used.\n\nThe recommended value for volfactor is 3.0. A larger value is\ninefficient; a smaller value introduces unwanted slab-slab\ninteractions. The use of fixed boundaries in z means that the user\nmust prevent particle migration beyond the initial z-bounds, typically\nby providing a wall-style fix. The methodology behind the *slab*\noption is explained in the paper by **Yeh**. The *slab*\noption is also extended to non-neutral systems **Ballenegger**.\n\nAn alternative slab option can be invoked with the *nozforce* keyword\nin lieu of the volfactor. This turns off all kspace forces in the z\ndirection. The *nozforce* option is not supported by MSM. For MSM,\nany combination of periodic, non-periodic, or shrink-wrapped\nboundaries can be set using [boundary ](https://docs.lammps.org/boundary.html) (the slab\napproximation in not needed). The *slab* keyword is not currently\nsupported by Ewald or PPPM when using a triclinic simulation cell. The\nslab correction has also been extended to point dipole interactions\n**Klapp** in [kspace_style ](https://docs.lammps.org/kspace_style.html)\n*ewald/disp*, *ewald/dipole*, and *pppm/dipole* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish to apply an electric field in the Z-direction, in\n > conjunction with the *slab* keyword, you should do it by adding\n > explicit charged particles to the +/- Z surfaces. If you do it via\n > the [fix efield ](https://docs.lammps.org/fix_efield.html) command, it will not give the correct\n > dielectric constant due to the Yeh/Berkowitz **Yeh** correction\n > not being compatible with how [fix efield ](https://docs.lammps.org/fix_efield.html) works. \n > \n\n----------\n\nThe *force/disp/real* and *force/disp/kspace* keywords set the force\naccuracy for the real and reciprocal space computations for the dispersion\npart of pppm/disp. As shown in **Isele-Holder1**,\noptimal performance and accuracy in the results is obtained when these\nvalues are different.\n\nThe *disp/auto* option controls whether the pppm/disp is allowed to\ngenerate PPPM parameters automatically. If set to *no*, parameters\nhave to be specified using the *gewald/disp*, *mesh/disp*,\n*force/disp/real* or *force/disp/kspace* keywords, or the code will\nstop with an error message. When this option is set to *yes*, the\nerror message will not appear and the simulation will start. For a\ntypical application, using the automatic parameter generation will\nprovide simulations that are either inaccurate or slow. Using this\noption is thus not recommended. For guidelines on how to obtain good\nparameters, see the [Howto dispersion ](https://docs.lammps.org/Howto_dispersion.html) doc page.\n\n----------\n\n**(Hardy1)** David Hardy thesis: Multilevel Summation for the Fast\nEvaluation of Forces for the Simulation of Biomolecules, University of\nIllinois at Urbana-Champaign, (2006). \n \n**(Hockney1)** Hockney and Eastwood, Computer Simulation Using Particles,\nAdam Hilger, NY (1989). \n \n**(Isele-Holder1)** Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J\nChem Theory Comput, 9, 5412 (2013). \n \n**(Wennberg)** Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput,\n9, 3527 (2013). \n \n**(Hummer)** Hummer, Gronbech-Jensen, Neumann, J Chem Phys, 109, 2791 (1998) \n \n**(Yeh)** Yeh and Berkowitz, J Chem Phys, 111, 3155 (1999). \n \n**(Ballenegger)** Ballenegger, Arnold, Cerda, J Chem Phys, 131, 094107\n(2009). \n \n**(Klapp)** Klapp, Schoen, J Chem Phys, 117, 8050 (2002). \n ", + "restrictions": "none\n", + "related": "[kspace_style ](https://docs.lammps.org/kspace_style.html), [boundary ](https://docs.lammps.org/boundary.html)\n" }, { "command": [ - "fix_modify AtC output contour_integral" + "fix ave/grid" ], "syntax": [ - "fix_modify output contour_integral faceset [axis [x|y|z]]" + "fix ID group-ID ave/grid Nevery Nrepeat Nfreq Nx Ny Nz value1 value2 ... keyword args ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "contour_integral", + "arg": "ave/grid", "type": 1, "choices": [] }, { - "arg": "", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "faceset", - "type": 1, + "arg": "Nrepeat", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "[axis", - "type": 1, + "arg": "Nx", + "type": 2, "choices": [] }, { - "arg": "[x|y|z]]", + "arg": "Ny", + "type": 2, + "choices": [] + }, + { + "arg": "Nz", + "type": 2, + "choices": [] + }, + { + "arg": "value1", + "type": 2, + "choices": [] + }, + { + "arg": "value2", + "type": 2, + "choices": [] + }, + { + "arg": "cdof", "type": 3, "choices": [ - "x", - "y", - "z" + "discard", + "norm", + "ave", + "bias", + "adof", + "cdof" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output contour_integral = name of the AtC sub-command\n* fieldname = name of hardy field\n* faceset = required keyword\n* name = name of faceset\n* *axis x* or *axis y* or *axis z* = (optional) \n", - "examples": "\n```lmps\nfix_modify AtC output contour_integral stress faceset loop1\n```\n", - "html_filename": "atc_output_contour_integral.html", - "short_description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file", - "description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file.\n", - "restrictions": "Must be used with the hardy/field type of [fix atc ](https://docs.lammps.org/fix_atc.html)\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/grid = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* Nx, Ny, Nz = grid size in each dimension\n* one or more per-atom or per-grid input values can be listed\n* per-atom value = vx, vy, vz, fx, fy, fz, density/mass, density/number, mass, temp, c_ID, c_ID[I], f_ID, f_ID[I], v_name \n *        vx,vy,vz,fx,fy,fz,mass = atom attribute (velocity, force component, mass) \n *        density/number, density/mass = number or mass density (per volume) \n *        temp = temperature \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* per-grid value = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n *        gname = name of grid defined by compute or fix \n *        dname = name of data field defined by compute or fix \n *        c_ID = per-grid vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-grid array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-grid vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-grid array calculated by a fix with ID, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = discard or norm or ave or bias or adof or cdof \n *        discard arg = yes or no \n         yes = discard an atom outside grid in a non-periodic dimension \n         no = remap an atom outside grid in a non-periodic dimension to first or last grid cell \n *        norm arg = all or sample or none = how output on Nfreq steps is normalized \n         all = output is sum of atoms across all Nrepeat samples, divided by atom count \n         sample = output is sum of Nrepeat sample averages, divided by Nrepeat \n         none = output is sum of Nrepeat sample sums, divided by Nrepeat \n *        ave args = one or running or *window M* \n         one = output new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        bias arg = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias for temperature calculation \n *        adof value = dof_per_atom \n         dof_per_atom = define this many degrees-of-freedom per atom for temperature calculation \n *        cdof value = dof_per_grid_cell \n         dof_per_grid_cell = add this many degrees-of-freedom per grid_cell for temperature calculation \n", + "examples": "\n```lmps\nfix 1 all ave/grid 10000 1 10000 10 10 10 fx fy fz c_myMSD[*]\nfix 1 flow ave/grid 100 10 1000 20 20 30 f_TTM:grid:data\n```\n", + "html_filename": "fix_ave_grid.html", + "short_description": "Overlay the 2d or 3d simulation box with a uniformly spaced 2d or 3d\ngrid and use it to either (a) time-average per-atom quantities for the\natoms in each grid cell, or to (b) time-average per-grid quantities\nproduced by other computes or fixes", + "description": "Overlay the 2d or 3d simulation box with a uniformly spaced 2d or 3d\ngrid and use it to either (a) time-average per-atom quantities for the\natoms in each grid cell, or to (b) time-average per-grid quantities\nproduced by other computes or fixes. This fix operates in either\n\"per-atom mode\" (all input values are per-atom) or in \"per-grid mode\"\n(all input values are per-grid). You cannot use both per-atom and\nper-grid inputs in the same command.\n\nThe grid created by this command is distributed; each processor owns\nthe grid points that are within its subdomain. This is similar to\nthe [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command when it uses chunks\nfrom the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command which\nare 2d or 3d regular bins. However, the per-bin outputs in that case\nare global; each processor stores a copy of the entire set of bin\ndata. Thus it more efficient to use the fix ave/grid command when the\ngrid is large and a simulation is run on many processors.\n\nFor per-atom mode, only atoms in the specified group contribute to the\nsumming and averaging calculations. For per-grid mode, the specified\ngroup is ignored.\n\n----------\n\nThe *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what\ntimesteps the input values will be accessed and contribute to the\naverage. The final averaged quantities are generated on timesteps\nthat are a multiples of *Nfreq* . The average is over *Nrepeat*\nquantities, computed in the preceding portion of the simulation every\n*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and\n*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps\ncontributing to the average value cannot overlap, i.e. Nrepeat\\*Nevery\ncan not exceed Nfreq.\n\nFor example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on\ntimesteps 90,92,94,96,98,100 will be used to compute the final average\non timestep 100. Similarly for timesteps 190,192,194,196,198,200 on\ntimestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time\naveraging is done; values are simply generated on timesteps\n100,200,etc.\n\nIn per-atom mode, each input value can also be averaged over the atoms\nin each grid cell. The way the averaging is done across the *Nrepeat*\ntimesteps to produce output on the *Nfreq* timesteps, and across\nmultiple *Nfreq* outputs, is determined by the *norm* and *ave*\nkeyword settings, as discussed below.\n\n----------\n\nThe *Nx*, *Ny*, and *Nz* arguments specify the size of the grid that\noverlays the simulation box. For 2d simulations, *Nz* must be 1. The\n*Nx*, *Ny*, *Nz* values can be any positive integer. The grid can be\nvery coarse compared to the particle count, or very fine. If one or\nmore of the values = 1, then bins are 2d planes or 1d slices of the\nsimulation domain. Note that if the total number of grid cells is\nsmall, it may be more efficient to use the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) command which can treat a grid defined by the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command as a global\ngrid where each processor owns a copy of all the grid cells. If *Nx*\n= *Ny* = *Nz* = 1 is used, the same calculation would be more\nefficiently performed by the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\ncommand.\n\nIf the simulation box size or shape changes during a simulation, the\ngrid always conforms to the size/shape of the current simulation box.\nIf one more dimensions have non-periodic shrink-wrapped boundary\nconditions, as defined by the [boundary ](https://docs.lammps.org/boundary.html) command, then\nthe grid will extend over the (dynamic) shrink-wrapped extent in each\ndimension. If the box shape is triclinic, as explained in [Howtotriclinic ](https://docs.lammps.org/Howto_triclinic.html), then the grid is also triclinic; each\ngrid cell is a small triclinic cell with the same shape as the\nsimulation box.\n\n----------\n\nIn both per-atom and per-grid mode, input values from a compute or fix\nthat produces an array of values (multiple values per atom or per grid\npoint), the bracketed index I can be specified using a wildcard\nasterisk with the index to effectively specify multiple values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the number of\ncolumns in the array (for *mode* = vector), then an asterisk with no\nnumeric values means all indices from 1 to N. A leading asterisk\nmeans all indices from 1 to n (inclusive). A trailing asterisk means\nall indices from n to N (inclusive). A middle asterisk means all\nindices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. E.g. if there were a compute fft/grid\ncommand which produced 3 values for each grid point, these two fix\nave/grid commands would be equivalent:\n\n```lmps\ncompute myFFT all fft/grid 10 10 10 ...\nfix 1 all ave/grid 100 1 100 10 10 10 c_myFFT:grid:data[*]\nfix 2 all ave/grid 100 1 100 10 10 10 c_myFFT:grid:data[*][1] c_myFFT:grid:data[*][2] c_myFFT:grid:data[3]\n```\n----------\n\n*Per-atom mode*:\n\nEach specified per-atom value can be an atom attribute (velocity,\nforce component), a number or mass density, a mass or temperature, or\nthe result of a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the\nevaluation of an atom-style [variable ](https://docs.lammps.org/variable.html). In the latter\ncases, the compute, fix, or variable must produce a per-atom quantity,\nnot a global quantity. Note that the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command provides access to any attribute\ndefined and stored by atoms.\n\nThe per-atom values of each input vector are summed and averaged\nindependently of the per-atom values in other input vectors.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom quantities are those\nwhich have the word *atom* in their style name. See the doc pages for\nindividual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce per-atom\nquantities. [Variables ](https://docs.lammps.org/variable.html) of style *atom* are the only\nones that can be used with this fix since all other styles of variable\nproduce global quantities.\n\n----------\n\nThe atom attribute values (vx,vy,vz,fx,fy,fz,mass) are\nself-explanatory. As noted above, any other atom attributes can be\nused as input values to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nThe *density/number* value means the number density is computed for\neach grid cell, i.e. number/volume. The *density/mass* value means\nthe mass density is computed for each grid/cell,\ni.e. total-mass/volume. The output values are in units of 1/volume or\ndensity (mass/volume). See the [units ](https://docs.lammps.org/units.html) command page for\nthe definition of density for each choice of units, e.g. gram/cm\\^3.\n\nThe *temp* value computes the temperature for each grid cell, by the\nformula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE = total kinetic energy of the atoms in the grid cell (\n\\(\\frac{1}{2} m v^2\\)), DOF = the total number of degrees of\nfreedom for all atoms in the grid cell, \\(k_B\\) = Boltzmann\nconstant, and \\(T\\) = temperature.\n\nThe DOF is calculated as N\\*adof + cdof, where N = number of atoms in\nthe grid cell, adof = degrees of freedom per atom, and cdof = degrees\nof freedom per grid cell. By default adof = 2 or 3 = dimensionality\nof system, as set via the [dimension ](https://docs.lammps.org/dimension.html) command, and\ncdof = 0.0. This gives the usual formula for temperature.\n\nNote that currently this temperature only includes translational\ndegrees of freedom for each atom. No rotational degrees of freedom\nare included for finite-size particles. Also no degrees of freedom\nare subtracted for any velocity bias or constraints that are applied,\nsuch as [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html), or\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause those degrees of freedom (e.g. a constrained bond) could apply\nto sets of atoms that are both inside and outside a specific grid\ncell, and hence the concept is somewhat ill-defined. In some cases,\nyou can use the *adof* and *cdof* keywords to adjust the calculated\ndegrees of freedom appropriately, as explained below.\n\nAlso note that a bias can be subtracted from atom velocities before\nthey are used in the above formula for KE, by using the *bias*\nkeyword. This allows, for example, a thermal temperature to be\ncomputed after removal of a flow velocity profile.\n\nNote that the per-grid-cell temperature calculated by this fix and the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command (using bins)\ncan be different. The compute calculates the temperature for each\nchunk for a single snapshot. This fix can do that but can also time\naverage those values over many snapshots, or it can compute a\ntemperature as if the atoms in the grid cell on different timesteps\nwere collected together as one set of atoms to calculate their\ntemperature. The compute allows the center-of-mass velocity of each\nchunk to be subtracted before calculating the temperature; this fix\ndoes not.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See\nthe discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain timesteps, which must be compatible with\n*Nevery*, else an error results. Users can also write code for their\nown fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. Variables of style\n*atom* can reference thermodynamic keywords and various per-atom\nattributes, or invoke other computes, fixes, or variables when they\nare evaluated, so this is a very general means of generating per-atom\nquantities to average within grid cells.\n\n----------\n\n*Per-grid mode*:\n\nThe attributes that begin with *c_ID* and *f_ID* both take\ncolon-separated fields *gname* and *dname*. These refer to a grid\nname and data field name which is defined by the compute or fix. Note\nthat a compute or fix can define one or more grids (of different\nsizes) and one or more data fields for each of those grids. The sizes\nof all grids used as values for one instance of this fix must be the\nsame.\n\nThe *c_ID:gname:dname* and *c_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [compute ](https://docs.lammps.org/compute.html) to\nbe accessed. The ID in the attribute should be replaced by the actual\nID of the compute that has been defined previously in the input\nscript.\n\nIf *c_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the compute is accessed. If *c_ID:gname:dname[I]* is\nused, then I must be in the range from 1-M, which will access the Ith\ncolumn of the per-grid array with M columns calculated by the compute.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *f_ID:gname:dname* and *f_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [fix ](https://docs.lammps.org/fix.html) to be\noutput. The ID in the attribute should be replaced by the actual ID\nof the fix that has been defined previously in the input script.\n\nIf *f_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the fix is printed. If *f_ID:gname:dname[I]* is used,\nthen I must be in the range from 1-M, which will print the Ith column\nof the per-grid with M columns calculated by the fix. See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix and\nits outputs. Some are only applicable to per-atom mode. Some are\napplicable to both per-atom and per-grid mode.\n\nThe *discard* keyword is only applicable to per-atom mode. If a\ndimension of the system is non-periodic, then grid cells will only\nspan the box dimension (fixed or shrink-wrap boundaries as set by the\n[boundary` command). An atom may thus be slightly outside therange of grid cells on a particular timestep. If *discard* is set to*yes* (the default), then the atom will be assigned to the closestgrid cell (lowest or highest) in that dimension. If *discard* is setto *no* the atom will be ignored.----------The *norm* keyword is only applicable to per-atom mode. In per-gridmode, the *norm* keyword setting is ignored. The output grid value onan *Nfreq* timestep is the sum of the grid values in each of the*Nrepeat* samples, divided by *Nrepeat*.In per-atom mode, the *norm\" keywod affects how averaging is done forthe per-grid values that are output on an *Nfreq* timestep. *Nrepeat*samples contribute to the output. The *norm* keyword has 3 possiblesettings: *all* or *sample* or *none*. *All* is the default.In the formulas that follow, SumI is the sum of a per-atom propertyover the CountI atoms in a grid cell for a single sample I, where Ivaries from 1 to N, and N = Nrepeat. These formulas are used for anyper-atom input value listed above, except *density/number*,*density/mass*, and *temp*. Those input values are discussed below.In per-atom mode, for *norm all* the output grid value on the *Nfreq*timestep is an average over atoms across the entire *Nfreq* timescale:Output = (Sum1 + Sum2 + ... + SumN) / (Count1 + Count2 + ... + CountN)In per-atom mode, for *norm sample* the output grid value on the*Nfreq* timestep is an average of an average:Output = (Sum1/Count1 + Sum2/Count2 + ... + SumN/CountN) / NrepeatIn per-atom mode, for *norm none* the output grid value on the*Nfreq* timestep is not normalized by the atom counts:Output = (Sum1 + Sum2 + ... SumN) / NrepeatFor *density/number* and *density/mass*, the output value is the sameas in the formulas above for *norm all* and *norm sample*, except thatthe result is also divided by the grid cell volume. For *norm all*,this will be the volume at the final *Nfreq* timestep. For *normsample*, the divide-by-volume is done for each sample, using the gridcell volume at the sample timestep. For *norm none*, the output isthe same as for *norm all*.For *temp*, the output temperature uses the formula for kinetic energyKE listed above, and is normalized similarly to the formulas above for*norm all* and *norm sample*, except for the way the degrees offreedom (DOF) are calculated. For *norm none*, the output is the sameas for *norm all*.For *norm all*, the DOF = *Nrepeat* times *cdof* plus *Count* times*adof*, where *Count* = (Count1 + Count2 + ... + CountN). The *cdof*and *adof* keywords are discussed below. The output temperature iscomputed with all atoms across all samples contributing.For *norm sample*, the DOF for a single sample = *cdof* plus *Count*times *adof*, where *Count* = CountI for a single sample. The outputtemperature is the average of *Nsample* temperatures calculated foreach sample.Finally, for all 3 *norm* settings the output count of atoms per gridcell is:Output count = (Count1 + Count2 + ... CountN) / NrepeatThis count is the same for all per-atom input values, including*density/number*, *density/mass*, and *temp*.----------The *ave* keyword is applied to both per-atom and per-grid mode. Itdetermines how the per-grid values produced once every *Nfreq* stepsare averaged with values produced on previous steps that weremultiples of *Nfreq*, before they are accessed by another outputcommand.If the *ave* setting is *one*, which is the default, then the gridvalues produced on *Nfreq* timesteps are independent of each other;they are output as-is without further averaging.If the *ave* setting is *running*, then the grid values produced on*Nfreq* timesteps are summed and averaged in a cumulative sense beforebeing output. Each output grid value is thus the average of the gridvalue produced on that timestep with all preceding values for the samegrid value. This running average begins when the fix is defined; itcan only be restarted by deleting the fix via the :doc:`unfix ](https://docs.lammps.org/unfix.html)\ncommand, or re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the grid values produced on\n*Nfreq* timesteps are summed and averaged within a moving \"window\" of\ntime, so that the last M values for the same grid are used to produce\nthe output. E.g. if M = 3 and Nfreq = 1000, then the grid value\noutput on step 10000 will be the average of the grid values on steps\n8000,9000,10000. Outputs on early steps will average over less than M\nvalues if they are not available.\n\n----------\n\nThe *bias*, *adof*, and *cdof* keywords are only applicable to\nper-atom mode.\n\nThe *bias* keyword specifies the ID of a temperature compute that\nremoves a \"bias\" velocity from each atom, specified as *bias-ID* .\nIt is only used when the *temp* value is calculated, to compute the\nthermal temperature of each grid cell after the translational kinetic\nenergy components have been altered in a prescribed way, e.g. to\nremove a flow velocity profile. See the doc pages for individual\ncomputes that calculate a temperature to see which ones implement a\nbias.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formula described above for temperature calculation for\neach grid cell. They are only used when the *temp* value is\ncalculated. They can be used to calculate a more appropriate\ntemperature in some cases. Here are 3 examples:\n\nIf grid cells contain some number of water molecules and [fixshake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then you could\ncalculate a temperature with 6 degrees of freedom (DOF) (3\ntranslational, 3 rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the x component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nUsing *cdof* = -2 or -3 (for 2d or 3d simulations) will subtract out 2\nor 3 degrees of freedom for each grid cell, similar to how the\n[compute temp ](https://docs.lammps.org/compute_temp.html) command subtracts out 3 DOF for the\nentire system.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix calculates a per-grid array which has one column for each of\nthe specified input values. The units for each column with be in the\n[units ](https://docs.lammps.org/units.html) for the per-atom or per-grid quantity for the\ncorresponding input value. If the fix is used in per-atom mode, it\nalso calculates a per-grid vector with the count of atoms in each grid\ncell. The number of rows in the per-grid array and number of values\nin the per-grid vector (distributed across all processors) is Nx *\nNy * Nz.\n\nFor access by other commands, the name of the single grid produced by\nthis fix is \"grid\". The names of its two per-grid datums are \"data\"\nfor the per-grid array and \"count\" for the per-grid vector (if using\nper-atom values). Both datums can be accessed by various [outputcommands ](https://docs.lammps.org/Howto_output.html).\n\nIn per-atom mode, the per-grid array values calculated by this fix are\ntreated as \"intensive\", since they are typically already normalized by\nthe count of atoms in each grid cell.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "none\n", + "related": "[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n" }, { "command": [ - "fix_modify AtC kernel" + "compute gyration" ], "syntax": [ - "fix_modify kernel " + "compute ID group-ID gyration" ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "kernel", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "step", - "cell", - "cubic_bar" - ] - }, - { - "arg": "", - "type": 2, + "arg": "gyration", + "type": 1, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* kernel = name of the AtC sub-command\n* type = step or cell or cubic_bar or cubic_cylinder or\n cubic_sphere or quartic_bar or quartic_cylinder or\n quartic_sphere\n* the following parameter(s) are required for each kernel:\n\n - step : \n - cell : or \n - cubic_bar : \n - cubic_cylinder : \n - cubic_sphere : \n - quartic_bar : \n - quartic_cylinder : \n - quartic_sphere : \n", - "examples": "\n```lmps\nfix_modify AtC kernel cell 1.0 1.0 1.0\nfix_modify AtC kernel quartic_sphere 10.0\n```\n", - "html_filename": "atc_hardy_kernel.html", - "short_description": "Sets the localization kernel type and parameters for [fix atc hardy ](https://docs.lammps.org/fix_atc.html)", - "description": "Sets the localization kernel type and parameters for [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). For bar kernel types,\nhalf-width oriented along x-direction. For cylinder kernel types,\ncylindrical axis is assumed to be in z-direction.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n- [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 molecule gyration\n```\n", + "html_filename": "compute_gyration.html", + "short_description": "Define a computation that calculates the radius of gyration \\(R_g\\) of the\ngroup of atoms, including all effects due to atoms passing through\nperiodic boundaries", + "description": "Define a computation that calculates the radius of gyration \\(R_g\\) of the\ngroup of atoms, including all effects due to atoms passing through\nperiodic boundaries.\n\n\\(R_g\\) is a measure of the size of the group of atoms, and is computed as\nthe square root of the \\(R_g^2\\) value in this formula\n\\[\n R_g^2 = \\frac{1}{M} \\sum_i m_i (r_i - r_{\\text{cm}})^2\\]\nwhere \\(M\\) is the total mass of the group, \\(r_{\\text{cm}}\\) is the\ncenter-of-mass position of the group, and the sum is over all atoms in\nthe group.\n\nA \\(R_g^2\\) tensor, stored as a 6-element vector, is also calculated\nby this compute. The formula for the components of the tensor is the\nsame as the above formula, except that \\((r_i - r_{\\text{cm}})^2\\) is\nreplaced by\n\\((r_{i,x} - r_{\\text{cm},x}) \\cdot (r_{i,y} - r_{\\text{cm},y})\\) for the\n\\(xy\\) component, and so on. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\nNote that unlike the scalar \\(R_g\\), each of the six values of the tensor\nis effectively a \"squared\" value, since the cross-terms may be negative\nand taking a square root would be invalid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to \\(R_g\\) in \"unwrapped\" form,\n > by using the image flags associated with each atom. See the\n > [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates.\n > See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You can\n > reset the image flags (e.g., to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global scalar (\\(R_g\\)) and a global vector of\nlength 6 (\\(R_g^2\\) tensor), which can be accessed by indices 1--6. These\nvalues can be used by any command that uses a global scalar value or\nvector values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar and vector values calculated by this compute are\n\"intensive\". The scalar and vector values will be in distance and\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html), respectively.\n", + "restrictions": " none\n", + "related": "[compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html),\n[compute gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html)\n" }, { "command": [ - "angle_style fourier", - "angle_style fourier/omp" + "pair_style smatb" ], "syntax": [ - "angle_style fourier" + "pair_style style args" ], "args": [ [ { - "arg": "angle_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "fourier", + "arg": "smatb/single", "type": 3, "choices": [ - "fourier", - "fourier/omp" + "smatb", + "smatb/single" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style fourier\nangle_coeff 75.0 1.0 1.0 1.0\n```\n", - "html_filename": "angle_fourier.html", - "short_description": "The *fourier* angle style uses the potential\n\\[\n E = K [C_0 + C_1 \\cos ( \\theta) + C_2 \\cos( 2 \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(C_0\\) (real)\n* \\(C_1\\) (real)\n* \\(C_2\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", - "description": "The *fourier* angle style uses the potential\n\\[\n E = K [C_0 + C_1 \\cos ( \\theta) + C_2 \\cos( 2 \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(C_0\\) (real)\n* \\(C_1\\) (real)\n* \\(C_2\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* style = smatb or smatb/single\n* args = none \n", + "examples": "\n```lmps\npair_style smatb\npair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666\n\npair_style smatb/single\npair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666\n```\n", + "html_filename": "pair_smatb.html", + "short_description": "\nThe *smatb* and *smatb/single* styles compute the Second Moment\nApproximation to the Tight Binding **Cyrot**,\n**Gupta**, **Rosato**, given by\n\\[ E_{i} = \\sum_{j,R_{ij}\\leq R_{c}} \\alpha(R_{ij}) - \\sqrt{\\sum_{j,R_{ij}\\leq R_{c}}\\Xi^2(R_{ij})}\\]\n\\(R_{ij}\\) is the distance between the atom \\(i\\) and \\(j\\)", + "description": "\nThe *smatb* and *smatb/single* styles compute the Second Moment\nApproximation to the Tight Binding **Cyrot**,\n**Gupta**, **Rosato**, given by\n\\[ E_{i} = \\sum_{j,R_{ij}\\leq R_{c}} \\alpha(R_{ij}) - \\sqrt{\\sum_{j,R_{ij}\\leq R_{c}}\\Xi^2(R_{ij})}\\]\n\\(R_{ij}\\) is the distance between the atom \\(i\\) and \\(j\\).\nAnd the two functions \\(\\alpha\\left(r\\right)\\) and \\(\\Xi\\left(r\\right)\\) are:\n\\[\\begin{align*} \\alpha\\left(r\\right)=\\left\\lbrace\\begin{array}{ll}\n A e^{-p \\left(\\frac{r}{R_{0}}-1\\right)} & r < R_{sc}\\\\\n a_3\\left(r-R_{c}\\right)^3+a_4\\left(r-R_{c}\\right)^4\n +a_5\\left(r-R_{c}\\right)^5& R_{sc} < r < R_{c}\n \\end{array}\n \\right. \\end{align*} \\]\n\\[\\begin{align*} \\Xi\\left(r\\right)=\\left\\lbrace\\begin{array}{ll}\n \\xi e^{-q \\left(\\frac{r}{R_{0}}-1\\right)} & r < R_{sc}\\\\\n x_3\\left(r-R_{c}\\right)^3+x_4\\left(r-R_{c}\\right)^4\n +x_5\\left(r-R_{c}\\right)^5& R_{sc} < r < R_{c}\n \\end{array}\n \\right. \\end{align*} \\]\nThe polynomial coefficients \\(a_3\\), \\(a_4\\), \\(a_5\\),\n\\(x_3\\), \\(x_4\\), \\(x_5\\) are computed by LAMMPS: the two\nexponential terms and their first and second derivatives are smoothly\nreduced to zero, from the inner cutoff \\(R_{sc}\\) to the outer\ncutoff \\(R_{c}\\).\n\nThe *smatb/single* style is an optimization when using only a single atom type.\n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(R_{0}\\) (distance units)\n* \\(p\\) (dimensionless)\n* \\(q\\) (dimensionless)\n* \\(A\\) (energy units)\n* \\(\\xi\\) (energy units)\n* \\(R_{cs}\\) (distance units)\n* \\(R_{c}\\) (distance units)\n\n\nNote that: \\(R_{0}\\) is the nearest neighbor distance, usually coincides\nwith the diameter of the atoms\n\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n #### Mixing info\n\nFor atom type pairs I,J and I != J the coefficients are not automatically mixed.\n\n----------\n\n**(Cyrot)** Cyrot-Lackmann and Ducastelle, Phys Rev. B, 4, 2406-2412 (1971). \n \n**(Gupta)** Gupta ,Phys Rev. B, 23, 6265-6270 (1981). \n \n**(Rosato)** Rosato and Guillope and Legrand, Philosophical Magazine A, 59.2, 321-336 (1989). \n ", + "restrictions": "These pair styles are part of the SMTBQ package and are only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\" for pair interactions.\n", + "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "bond_style fene/expand", - "bond_style fene/expand/omp" + "bond_style morse", + "bond_style morse/omp" ], "syntax": [ - "bond_style fene/expand" + "bond_style morse" ], "args": [ [ @@ -10668,34 +9814,34 @@ export const command_docs = [ "choices": [] }, { - "arg": "fene/expand", + "arg": "morse", "type": 3, "choices": [ - "fene/expand", - "fene/expand/omp" + "morse", + "morse/omp" ] } ] ], "parameters": "", - "examples": "\n```lmps\nbond_style fene/expand\nbond_coeff 1 30.0 1.5 1.0 1.0 0.5\n```\n", - "html_filename": "bond_fene_expand.html", - "short_description": "The *fene/expand* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[1 -\\left( \\frac{\\left(r - \\Delta\\right)}{R_0}\\right)^2 \\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^{12} - \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**feneexpand-Kremer**, used for bead-spring polymer models", - "description": "The *fene/expand* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[1 -\\left( \\frac{\\left(r - \\Delta\\right)}{R_0}\\right)^2 \\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^{12} - \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**feneexpand-Kremer**, used for bead-spring polymer models. The first\nterm is attractive, the second Lennard-Jones term is repulsive.\n\nThe *fene/expand* bond style is similar to *fene* except that an extra\nshift factor of \\(\\Delta\\) (positive or negative) is added to \\(r\\) to\neffectively change the bead size of the bonded atoms. The first term\nnow extends to \\(R_0 + \\Delta\\) and the second term is cutoff at \\(2^\\frac{1}{6} \\sigma + \\Delta\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n* \\(\\Delta\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(feneexpand-Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nYou typically should specify [special_bonds fene ](https://docs.lammps.org/special_bonds.html)\nor [special_bonds lj/coul 0 1 1 ](https://docs.lammps.org/special_bonds.html) to use this bond\nstyle. LAMMPS will issue a warning it that's not the case.\n", + "examples": "\n```lmps\nbond_style morse\nbond_coeff 5 1.0 2.0 1.2\n```\n", + "html_filename": "bond_morse.html", + "short_description": "The *morse* bond style uses the potential\n\\[\n E = D \\left[ 1 - e^{-\\alpha (r - r_0)} \\right]^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance, \\(\\alpha\\) is a stiffness\nparameter, and \\(D\\) determines the depth of the potential well", + "description": "The *morse* bond style uses the potential\n\\[\n E = D \\left[ 1 - e^{-\\alpha (r - r_0)} \\right]^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance, \\(\\alpha\\) is a stiffness\nparameter, and \\(D\\) determines the depth of the potential well.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(D\\) (energy)\n* \\(\\alpha\\) (inverse distance)\n* \\(r_0\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "compute smd/tlsph/defgrad" + "dump h5md" ], "syntax": [ - "compute ID group-ID smd/tlsph/defgrad" + "dump ID group-ID h5md N file.h5 args" ], "args": [ [ { - "arg": "compute", + "arg": "dump", "type": 1, "choices": [] }, @@ -10710,53 +9856,67 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/tlsph/defgrad", + "arg": "h5md", "type": 1, "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "file.h5", + "type": 2, + "choices": [] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/defgrad = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/defgrad\n```\n", - "html_filename": "compute_smd_tlsph_defgrad.html", - "short_description": "Define a computation that calculates the deformation gradient", - "description": "Define a computation that calculates the deformation gradient. It is\nonly meaningful for particles which interact according to the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute outputs a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-particle vector values will be given dimensionless. See\n[units ](https://docs.lammps.org/units.html). The per-particle vector has 10 entries. The first\nnine entries correspond to the xx, xy, xz, yx, yy, yz, zx, zy, zz\ncomponents of the asymmetric deformation gradient tensor. The tenth\nentry is the determinant of the deformation gradient.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. TThis compute can\nonly be used for particles which interact via the total Lagrangian SPH\npair style.\n", - "related": "[smd/hourglass/error ](https://docs.lammps.org/compute_smd_hourglass_error.html)\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* h5md = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file.h5 = name of file to write to\n* args = position options or image or velocity options or force options or species options or file_from ID or box value or create_group value or author value = list of data elements to dump, with their dump \"sub-intervals\" \n *      position options \n *      image \n *      velocity options \n *      force options \n *      species options \n *      file_from ID = do not open a new file, re-use the already opened file from dump ID \n *      box value = yes or no \n *      create_group value = yes or no \n *      author value = quoted string \nNote that at least one element must be specified and that image may only be\npresent if position is specified first.\n\nFor the elements position, velocity, force and species, a\nsub-interval may be specified to write the data only every N_element\niterations of the dump (i.e. every N\\*N_element time steps). This is\nspecified by this option directly following the element declaration: \n *          options = every N_element \n", + "examples": "\n```lmps\ndump h5md1 all h5md 100 dump_h5md.h5 position image\ndump h5md1 all h5md 100 dump_h5md.h5 position velocity every 10\ndump h5md1 all h5md 100 dump_h5md.h5 velocity author \"John Doe\"\n```\n", + "html_filename": "dump_h5md.html", + "short_description": "Dump a snapshot of atom coordinates every N timesteps in the\n[HDF5 ](https://www.hdfgroup.org/solutions/hdf5/) based [H5MD ](https://nongnu.org/h5md/) file format **h5md_cpc**", + "description": "Dump a snapshot of atom coordinates every N timesteps in the\n[HDF5 ](https://www.hdfgroup.org/solutions/hdf5/) based [H5MD ](https://nongnu.org/h5md/) file format **h5md_cpc**.\nHDF5 files are binary, portable and self-describing. This dump style\nwill write only one file, on the root node.\n\nSeveral dumps may write to the same file, by using file_from and\nreferring to a previously defined dump. Several groups may also be\nstored within the same file by defining several dumps. A dump that\nrefers (via *file_from*) to an already open dump ID and that concerns\nanother particle group must specify *create_group yes*.\n\nEach data element is written every N\\*N_element steps. For *image*, no\nsub-interval is needed as it must be present at the same interval as\n*position* . *image* must be given after *position* in any case. The\nbox information (edges in each dimension) is stored at the same\ninterval than the *position* element, if present. Else it is stored\nevery N steps.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > written to a dump file may be slightly outside the simulation box. \n > \n\n**Use from write_dump:**\n\nIt is possible to use this dump style with the\n[write_dump ](https://docs.lammps.org/write_dump.html) command. In this case, the sub-intervals\nmust not be set at all. The write_dump command can be used either to\ncreate a new file or to add current data to an existing dump file by\nusing the *file_from* keyword.\n\nTypically, the *species* data is fixed. The following two commands\nstore the position data every 100 timesteps, with the image data, and\nstore once the species data in the same file.\n\n```lmps\ndump h5md1 all h5md 100 dump.h5 position image\nwrite_dump all h5md dump.h5 file_from h5md1 species\n```\n----------\n\n**(h5md_cpc)** de Buyl, Colberg and Hofling, H5MD: A structured,\nefficient, and portable file format for molecular data,\nComp. Phys. Comm. 185(6), 1546-1553 (2014) -\n[[arXiv:1308.6382]](https://arxiv.org/abs/1308.6382/). \n ", + "restrictions": "The number of atoms per snapshot cannot change with the h5md style.\nThe position data is stored wrapped (box boundaries not enforced, see\nnote above). Only orthogonal domains are currently supported. This is\na limitation of the present dump h5md command and not of H5MD itself.\n\nThe *h5md* dump style is part of the H5MD package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. It also requires\n(i) building the ch5md library provided with LAMMPS (See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.) and (ii) having\nthe [HDF5 ](https://www.hdfgroup.org/solutions/hdf5/) library installed (C bindings are sufficient) on\nyour system. The library ch5md is compiled with the h5cc wrapper\nprovided by the HDF5 library.\n\n----------\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n\n----------\n\n.. _h5md_cpc:\n\n**(de Buyl)** de Buyl, Colberg and Hofling, H5MD: A structured,\nefficient, and portable file format for molecular data,\nComp. Phys. Comm. 185(6), 1546-1553 (2014) -\n[[arXiv:1308.6382]](https://arxiv.org/abs/1308.6382/).\n" }, { "command": [ - "fix nph/asphere", - "fix nph/asphere/omp" + "third_order" ], "syntax": [ - "fix ID group-ID nph/asphere args keyword value ..." + "third_order group-ID style delta args keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "third_order", "type": 1, "choices": [] }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, { "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "nph/asphere", + "arg": "eskm", "type": 3, "choices": [ - "nph/asphere", - "nph/asphere/omp" + "regular", + "eskm" ] }, + { + "arg": "delta", + "type": 2, + "choices": [] + }, { "arg": "args", "type": 2, @@ -10774,25 +9934,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/asphere = style name of this fix command\n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nph/asphere iso 0.0 0.0 1000.0\nfix 2 all nph/asphere x 5.0 5.0 1000.0\nfix 2 all nph/asphere x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/asphere aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_nph_asphere.html", - "short_description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover pressure\nbarostat", - "description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover pressure\nbarostat. P is pressure; H is enthalpy. This creates a system\ntrajectory consistent with the isenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/asphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/asphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* group-ID = ID of group of atoms to displace\n* style = regular or eskm\n* delta = finite different displacement length (distance units)\n* one or more keyword/arg pairs may be appended \n *        keyword = file or binary \n         file name = name of output file for the third order tensor \n         binary arg = yes or no or gzip \n", + "examples": "\n```lmps\nthird_order 1 regular 0.000001\nthird_order 1 eskm 0.000001\nthird_order 3 regular 0.00004 file third_order.dat\nthird_order 5 eskm 0.00000001 file third_order.dat binary yes\n```\n", + "html_filename": "third_order.html", + "short_description": "Calculate the third order force constant tensor by finite difference of the selected group,\n\\[\n \\Phi^{\\alpha\\beta\\gamma}_{ijk} = \\frac{\\partial^3 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta} \\partial x_{k, \\gamma}}\\]\nwhere Phi is the third order force constant tensor", + "description": "Calculate the third order force constant tensor by finite difference of the selected group,\n\\[\n \\Phi^{\\alpha\\beta\\gamma}_{ijk} = \\frac{\\partial^3 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta} \\partial x_{k, \\gamma}}\\]\nwhere Phi is the third order force constant tensor.\n\nThe output of the command is the tensor, three elements at a time. The\nthree elements correspond to the three gamma elements for a specific i/alpha/j/beta/k.\nThe initial five numbers are i, alpha, j, beta, and k respectively.\n\nIf the style eskm is selected, the tensor will be using energy units of 10 J/mol.\nThese units conform to eskm style from the dynamical_matrix command, which\nwill simplify operations using dynamical matrices with third order tensors.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "The command collects a 9 times the number of atoms in the group on every single MPI rank,\nso the memory requirements can be very significant for large systems.\n\nThis command is part of the PHONON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix phonon ](https://docs.lammps.org/fix_phonon.html) [dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html)\n" }, { "command": [ - "dump cfg/uef" + "fix mdi/qmmm" ], "syntax": [ - "dump ID group-ID cfg/uef N file mass type xs ys zs args" + "fix ID group-ID mdi/qmmm mode keyword value(s) keyword value(s) ..." ], "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -10807,71 +9967,71 @@ export const command_docs = [ "choices": [] }, { - "arg": "cfg/uef", + "arg": "mdi/qmmm", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "file", - "type": 2, - "choices": [] - }, - { - "arg": "mass", - "type": 2, - "choices": [] - }, - { - "arg": "type", - "type": 2, - "choices": [] + "arg": "potential", + "type": 3, + "choices": [ + "direct", + "potential" + ] }, { - "arg": "xs", - "type": 2, - "choices": [] + "arg": "elements", + "type": 3, + "choices": [ + "virial", + "add", + "every", + "connect", + "elements" + ] }, { - "arg": "ys", + "arg": "value(s)", "type": 2, "choices": [] }, { - "arg": "zs", - "type": 2, - "choices": [] + "arg": "elements", + "type": 3, + "choices": [ + "virial", + "add", + "every", + "connect", + "elements" + ] }, { - "arg": "args", + "arg": "value(s)", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be dumped\n* N = dump every this many timesteps\n* file = name of file to write dump info to \n *      args = same as args for [dump custom ](https://docs.lammps.org/dump.html) \n", - "examples": "\n```lmps\ndump 1 all cfg/uef 10 dump.*.cfg mass type xs ys zs\ndump 2 all cfg/uef 100 dump.*.cfg mass type xs ys zs id c_stress\n```\n", - "html_filename": "dump_cfg_uef.html", - "short_description": "This command is used to dump atomic coordinates in the\nreference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used", - "description": "This command is used to dump atomic coordinates in the\nreference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used.\nOnly the atomic coordinates and frame-invariant scalar quantities\nwill be in the flow frame. If velocities are selected\nas output, for example, they will not be in the same\nreference frame as the atomic positions.\n", - "restrictions": "This fix is part of the UEF package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis command can only be used when [fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\nor [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is active.\n", - "related": "[dump ](https://docs.lammps.org/dump.html),\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mdi/qmmm = style name of this fix command\n* mode = direct or potential\n* zero or more keyword/value pairs may be appended\n* keyword = virial or add or every or connect or elements \n *        virial args = yes or no \n         yes = request virial tensor from server code \n         no = do not request virial tensor from server code \n *        connect args = yes or no \n         yes = perform a one-time connection to the MDI engine code \n         no = do not perform the connection operation \n *        elements args = N_1 N_2 ... N_ntypes \n         N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n", + "examples": "\n```lmps\nfix 1 all mdi/qmmm direct\nfix 1 all mdi/qmmm potential virial yes\nfix 1 all mdi/qmmm potential virial yes elements 13 29\n```\n", + "html_filename": "fix_mdi_qmmm.html", + "short_description": "\nThis command enables LAMMPS to act as a client with another server code\nto perform a coupled QM/MM (quantum-mechanics/molecular-mechanics)\nsimulation", + "description": "\nThis command enables LAMMPS to act as a client with another server code\nto perform a coupled QM/MM (quantum-mechanics/molecular-mechanics)\nsimulation. LAMMPS will perform classical MD (molecular mechanics\nor MM) for the (typically larger) MM portion of the system. A quantum\nmechanics code will calculate quantum energy and forces for the QM\nportion of the system. The two codes work together to calculate the\nenergy and forces due to the cross interactions between QM and MM atoms.\nThe QM server code must support use of the [MDI Library](https://molssi-mdi.github.io/MDI_Library/html/index.html) as\nexplained below.\n\nThe partitioning of the system between QM and MM atoms is as follows.\nAtoms in the specified group are QM atoms; the remaining atoms are MM\natoms. The input script should thus define this partitioning.\nSee additional information below about other requirements for an input\nscript to use this fix and perform a QM/MM simulation.\n\nThe code coupling performed by this command is done via the `MDI\nLibrary `_.\nLAMMPS runs as an MDI driver (client), and sends MDI commands to an\nexternal MDI engine code (server), in this case a QM code which has\nsupport for MDI. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html) page for more\ninformation about how LAMMPS can operate as either an MDI driver or\nengine.\n\nThe ``examples/QUANTUM`` directory has sub-directories with example\ninput scripts using this fix in tandem with different QM codes. The\nREADME files in the sub-directories explain how to download and build\nthe various QM codes. They also explain how to launch LAMMPS and the QM\ncode so that they communicate via the MDI library using either MPI or\nsockets. Any QM code that supports MDI could be used in addition to\nthose discussed in the sub-directories. See the [Howto mdi](https://docs.lammps.org/Howto_mdi.html) page for a current list (March 2022) of such QM codes.\n\nNote that an engine code can support MDI in either or both of two modes.\nIt can be used as a stand-alone code, launched at the same time as\nLAMMPS. Or it can be used as a plugin library, which LAMMPS loads. See\nthe [mdi plugin ](https://docs.lammps.org/mdi.html) command for how to trigger LAMMPS to load a\nplugin library. The ``examples/QUANTUM`` sub-directory README files\nexplains how to launch the two codes in either mode.\n\n----------\n\nThe *mode* setting determines which QM/MM coupling algorithm is used.\nLAMMPS currently supports *direct* and *potential* algorithms, based\non the *mode* setting. Both algorithms should give reasonably\naccurate results, but some QM codes support only one of the two modes.\nE.g. in the ``examples/QUANTUM`` directory, PySCF supports only *direct*,\nNWChem supports only *potential*, and LATTE currently supports\nneither, so it cannot be used for QM/MM simulations using this fix.\n\nThe *direct* option passes the coordinates and charges of each MM atom\nto the quantum code, in addition to the coordinates of each QM atom.\nThe quantum code returns forces on each QM atom as well as forces on\neach MM atom. The latter is effectively the force on MM atoms due to\nthe QM atoms.\n\nThe input script for performing a *direct* mode QM/MM simulation should\ndo the following:\n\n* delete all bonds (angles, dihedrals, etc) between QM atoms\n* set the charge on each QM atom to zero\n* define no bonds (angles, dihedrals, etc) which involve both QM and MM atoms\n* define a force field (pair, bonds, angles, optional kspace) for the entire system\n\nThe first two bullet can be performed using the [delete_bonds](https://docs.lammps.org/delete_bonds.html) and [set ](https://docs.lammps.org/set.html) commands.\n\nThe third bullet is required to have a consistent model, but is not\nchecked by LAMMPS.\n\nThe fourth bullet implies that non-bonded non-Coulombic interactions\n(e.g. van der Waals) between QM/QM and QM/MM pairs of atoms are\ncomputed by LAMMPS.\n\nSee the ``examples/QUANTUM/PySCF/in.*`` files for examples of input\nscripts for QM/MM simulations using the *direct* mode.\n\nThe *potential* option passes the coordinates of each QM atom and a\nCoulomb potential for each QM atom to the quantum code. The latter is\ncalculated by performing a Coulombics-only calculation for the entire\nsystem, subtracting all QM/QM pairwise Coulombic terms, and dividing\nthe Coulomb energy on each QM atom by the charge of the QM atom. The\npotential value represents the Coulombic influence of all the MM atoms\non each QM atom.\n\nThe quantum code returns forces and charge on each QM atom. The new\ncharges on the QM atom are used to re-calculate the MM force field,\nresulting in altered forces on the MM atoms.\n\nThe input script for performing a *potential* mode QM/MM simulation\nshould do the following:\n\n* delete all bonds (angles, dihedrals, etc) between QM atoms\n* define a hybrid pair style which includes a Coulomb-only pair sub-style\n* define no bonds (angles, dihedrals, etc) which involve both QM and MM atoms\n* define a force field (pair, bonds, angles, optional kspace) for the entire system\n\nThe first operation can be performed using the [delete_bonds](https://docs.lammps.org/delete_bonds.html) command. See the ``examples/QUANTUM/NWChem/in.*`` files\nfor examples of how to do this.\n\nThe second operation is necessary so that this fix can calculate the\nCoulomb potential for the QM atoms.\n\nThe third bullet is required to have a consistent model, but is not\nchecked by LAMMPS.\n\nThe fourth bullet implies that non-bonded non-Coulombic interactions\n(e.g. van der Waals) between QM/QM and QM/MM pairs of atoms are computed\nby LAMMPS. However, some QM codes do not want the MM code (LAMMPS) to\ncompute QM/QM van der Waals interactions. NWChem is an example. In\nthis case, the coefficients for those interactions need to be turned\noff, which typically requires the atom types for the QM atoms be\ndifferent than those for the MM atoms.\n\nSee the ``examples/QUANTUM/NWChem/in.*`` files for examples of input\nscripts for QM/MM simulations using the *potential* mode. Those scripts\nalso illustrate how to turn off QM/QM van der Waals interactions.\n\n----------\n\nThe *virial* keyword setting of yes or no determines whether LAMMPS\nwill request the QM code to also compute and return the QM\ncontribution to a stress tensor for the system which LAMMPS will\nconvert to a 6-element symmetric virial tensor.\n\nThe *connect* keyword determines whether this fix performs a one-time\nconnection to the QM code. The default is *yes*. The only time a\n*no* is needed is if this command is used multiple times in an input\nscript. E.g. if it used inside a loop which also uses the [clear](https://docs.lammps.org/clear.html) command to destroy the system (including this fix). As\nexample would be a script which loop over a series of independent QM/MM\nsimulations, e.g. each with their own data file. In this use case\n*connect no* could be used along with the [mdi connect and exit](https://docs.lammps.org/mdi.html) command to one-time initiate/terminate the connection outside\nthe loop.\n\nThe *elements* keyword allows specification of what element each\nLAMMPS atom type corresponds to. This is specified by the chemical\nsymbol of the element, e.g. C or Al or Si. A symbol must be specified\nfor each of the ntypes LAMMPS atom types. Multiple LAMMPS types can\nrepresent the same element. Ntypes is typically specified via the\n[create_box ](https://docs.lammps.org/create_box.html) command or in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nIf this keyword is specified, then this fix will send the MDI\n\">ELEMENTS\" command to the engine, to insure the two codes are\nconsistent in their definition of atomic species. If this keyword is\nnot specified, then this fix will send the MDI >TYPES command to the\nengine. This is fine if both the LAMMPS driver and the MDI engine are\ninitialized so that the atom type values are consistent in both codes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy computed by the QM code to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the QM code to the global\npressure of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyvirial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\nreturned by the QM code. The scalar value calculated by this fix is\n\"extensive\".\n\nThis fix also computes a global vector with of length 6 which contains\nthe symmetric virial tensor values returned by the QM code. It can\nlikewise be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe ordering of values in the symmetric virial tensor is as follows:\nvxx, vyy, vzz, vxy, vxz, vyz. The values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nThis fix also computes a peratom array with 3 columns which contains\nthe peratom forces returned by the QM code. It can likewise be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Note that\nfor *direct* mode this will be quantum forces on both QM and MM atoms.\nFor *potential* mode it will only be quantum forces on QM atoms; the\nforces for MM atoms will be zero.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces computed by the QM code are used during an energy\nminimization, invoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the potential energy associated with the QM forces to\n > be included in the total potential energy of the system (the\n > quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", + "restrictions": "This command is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS as an MDI driver in conjunction with other MDI-enabled\ncodes (MD or QM codes), the [units ](https://docs.lammps.org/units.html) command should be used\nto specify *real* or *metal* units. This will ensure the correct unit\nconversions between LAMMPS and MDI units. The other code will also\nperform similar unit conversions into its preferred units.\n\nIf this fix is used in conjunction with a QM code that does not support\nperiodic boundary conditions (more specifically, a QM code that does not\nsupport the ``>CELL`` MDI command), the LAMMPS system must be fully\nnon-periodic. I.e. no dimension of the system can be periodic.\n", + "related": "[mdi plugin ](https://docs.lammps.org/mdi.html),\n[mdi engine ](https://docs.lammps.org/mdi.html),\n[fix mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html)\n" }, { "command": [ - "compute bond/local" + "fix wall/gran/region" ], "syntax": [ - "compute ID group-ID bond/local value1 value2 ... keyword args ..." + "fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -10886,75 +10046,105 @@ export const command_docs = [ "choices": [] }, { - "arg": "bond/local", + "arg": "wall/gran/region", "type": 1, "choices": [] }, { - "arg": "value1", + "arg": "fstyle", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "fstyle_params", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "wallstyle", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "regionID", + "type": 2, + "choices": [] + }, + { + "arg": "temperature", + "type": 3, + "choices": [ + "contacts", + "temperature" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* bond/local = style name of this compute command\n* one or more values may be appended\n* value = dist or dx or dy or dz or engpot or force or fx or fy or fz or engvib or engrot or engtrans or omega or velvib or v_name or bN \n *      dist = bond distance \n *      engpot = bond potential energy \n *      force = bond force \n *      dx, dy, dz = components of pairwise distance \n *      fx, fy, fz = components of bond force \n *      engvib = bond kinetic energy of vibration \n *      engrot = bond kinetic energy of rotation \n *      engtrans = bond kinetic energy of translation \n *      omega = magnitude of bond angular velocity \n *      velvib = vibrational velocity along the bond length \n *      v_name = equal-style variable with name (see below) \n *      bN = bond style specific quantities for allowed N values \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *      set args = dist name \n       dist = only currently allowed arg \n       name = name of variable to set with distance (dist) \n", - "examples": "\n```lmps\ncompute 1 all bond/local engpot\ncompute 1 all bond/local dist engpot force\n\ncompute 1 all bond/local dist fx fy fz b1 b2\n\ncompute 1 all bond/local dist v_distsq set dist d\n```\n", - "html_filename": "compute_bond_local.html", - "short_description": "Define a computation that calculates properties of individual bond\ninteractions", - "description": "Define a computation that calculates properties of individual bond\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of bonds in the system, modified by the\ngroup parameter as explained below.\n\nAll these properties are computed for the pair of atoms in a bond,\nwhether the two atoms represent a simple diatomic molecule, or are part\nof some larger molecule.\n\nThe value *dist* is the current length of the bond.\nThe values *dx*, *dy*, and *dz* are the xyz components of the\n*distance* between the pair of atoms. This value is always the\ndistance from the atom of lower to the one with the higher id.\n\nThe value *engpot* is the potential energy for the bond,\nbased on the current separation of the pair of atoms in the bond.\n\nThe value *force* is the magnitude of the force acting between the\npair of atoms in the bond.\n\nThe values *fx*, *fy*, and *fz* are the xyz components of\n*force* between the pair of atoms in the bond. For bond styles that apply\nnon-central forces, such as [bond_style bpm/rotational](https://docs.lammps.org/bond_bpm_rotational.html), these values only include the \\((x,y,z)\\)\ncomponents of the normal force component.\n\nThe remaining properties are all computed for motion of the two atoms\nrelative to the center of mass (COM) velocity of the two atoms in the\nbond.\n\nThe value *engvib* is the vibrational kinetic energy of the two atoms\nin the bond, which is simply \\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2,\\)\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocity of the two\natoms along the bond direction, after the COM velocity has been subtracted from\neach.\n\nThe value *engrot* is the rotational kinetic energy of the two atoms\nin the bond, which is simply \\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2,\\)\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocity of the two\natoms perpendicular to the bond direction, after the COM velocity has been\nsubtracted from each.\n\nThe value *engtrans* is the translational kinetic energy associated\nwith the motion of the COM of the system itself, namely \\(\\frac12(m_1+m_2)\nV_{\\mathrm{cm}}^2\\), where `Vcm` = magnitude of the velocity of the COM.\n\nNote that these three kinetic energy terms are simply a partitioning of\nthe summed kinetic energy of the two atoms themselves. That is, the total\nkinetic energy is\n\\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2\\) = engvib + engrot + engtrans,\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocities of the\ntwo atoms, without any adjustment for the COM velocity.\n\nThe value *omega* is the magnitude of the angular velocity of the\ntwo atoms around their COM position.\n\nThe value *velvib* is the magnitude of the relative velocity of the\ntwo atoms in the bond towards each other. A negative value means the\ntwo atoms are moving toward each other; a positive value means they are\nmoving apart.\n\nThe value *v_name* can be used together with the *set* keyword to\ncompute a user-specified function of the bond distance. The *name*\nspecified for the *v_name* value is the name of an [equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on a\nvariable which will store the bond distance. This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with theta.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the length\\ \\(^2\\) of every bond in the system and\noutput the statistics in various ways:\n\n```lmps\nvariable d internal 0.0\nvariable dsq equal v_d*v_d\n\ncompute 1 all property/local batom1 batom2 btype\ncompute 2 all bond/local engpot dist v_dsq set dist d\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the energy, length,\nand length\\ \\(^2\\) for every bond in the system. The\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the average of\nthose quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwith thermo output, and the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the length\\ \\(^2\\) values and write them to a file.\n\nA bond style may define additional bond quantities which can be\naccessed as *b1* to *bN*, where N is defined by the bond style. Most\nbond styles do not define any additional quantities, so N = 0. An\nexample of ones that do are the [BPM bond styles ](https://docs.lammps.org/Howto_bpm.html)\nwhich store the reference state between two particles. See\nindividual bond styles for details.\n\nWhen using *bN* with bond style *hybrid*, the output will be the Nth\nquantity from the sub-style that computes the bonded interaction\n(based on bond type). If that sub-style does not define a *bN*,\nthe output will be 0.0. The maximum allowed N is the maximum number\nof quantities provided by any sub-style.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their bonds. A bond will only be\nincluded if both atoms in the bond are in the specified compute group.\nAny bonds that have been broken (see the [bond_style ](https://docs.lammps.org/bond_style.html)\ncommand) by setting their bond type to 0 are not included. Bonds that\nhave been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by setting their bond type\nnegative are written into the file, but their energy will be 0.0.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, bond output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local btype batom1 batom2\ncompute 2 all bond/local dist engpot\ndump 1 all local 1000 tmp.dump index c_1[*] c_2[*]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of bonds. If a single value is specified, a local\nvector is produced. If two or more values are specified, a local\narray is produced where the number of columns = the number of values.\nThe vector or array can be accessed by any command that uses local\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *dist* will be in distance [units ](https://docs.lammps.org/units.html). The\noutput for *velvib* will be in velocity [units ](https://docs.lammps.org/units.html). The output\nfor *omega* will be in velocity/distance [units ](https://docs.lammps.org/units.html). The\noutput for *engtrans*, *engvib*, *engrot*, and *engpot* will be in\nenergy [units ](https://docs.lammps.org/units.html). The output for *force* will be in force\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/region = style name of this fix command\n* fstyle = style of force interactions between particles and wall \n *        possible choices: hooke, hooke/history, hertz/history, granular \n* fstyle_params = parameters associated with force interaction style \n *        For *hooke*, *hooke/history*, and *hertz/history*, fstyle_params are: \n         Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) \n         Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) \n         gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) \n         gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) \n         xmu = static yield criterion (unitless value between 0.0 and 1.0e4) \n         dampflag = 0 or 1 if tangential damping force is excluded or included \n *        For *granular*, fstyle_params are set using the same syntax as for the pair_coeff command of [pair_style granular ](https://docs.lammps.org/pair_granular.html) \n* wallstyle = region (see [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) for options for other kinds of walls)\n* region-ID = region whose boundary will act as wall\n* keyword = contacts or temperature \n *       contacts value = none \n        generate contact information for each particle \n *       temperature value = temperature \n        specify temperature of wall \n", + "examples": "\n```lmps\nfix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone\nfix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox\nfix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone\nfix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone\nfix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone contacts\n```\n", + "html_filename": "fix_wall_gran_region.html", + "short_description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding frictional wall which interacts with nearby finite-size\ngranular particles when they are close enough to touch the wall", + "description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding frictional wall which interacts with nearby finite-size\ngranular particles when they are close enough to touch the wall. See\nthe [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) and [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) commands for related kinds of walls for\nnon-granular particles and simpler wall geometries, respectively.\n\nHere are snapshots of example models using this command. Corresponding\ninput scripts can be found in examples/granregion. Movies of these\nsimulations are [here on the Movies page](https://www.lammps.org/movies.html#granregion)\nof the LAMMPS website.\n \n | | | \n |---|---| \n | ![Image](img/gran_funnel.png) | ![Image](img/gran_mixer.png) | \n\n\n----------\n\nThe distance between a particle and the region boundary is the\ndistance to the nearest point on the region surface. The force the\nwall exerts on the particle is along the direction between that point\nand the particle center, which is the direction normal to the surface\nat that point. Note that if the region surface is comprised of\nmultiple \"faces\", then each face can exert a force on the particle if\nit is close enough. E.g. for [region_style block ](https://docs.lammps.org/region.html), a\nparticle in the interior, near a corner of the block, could feel wall\nforces from 1, 2, or 3 faces of the block.\n\nRegions are defined using the [region ](https://docs.lammps.org/region.html) command. Note that\nthe region volume can be interior or exterior to the bounding surface,\nwhich will determine in which direction the surface interacts with\nparticles, i.e. the direction of the surface normal. The exception to\nthis is if one or more *open* options are specified for the region\ncommand, in which case particles interact with both the interior and\nexterior surfaces of regions.\n\nRegions can either be primitive shapes (block, sphere, cylinder, etc)\nor combinations of primitive shapes specified via the *union* or\n*intersect* region styles. These latter styles can be used to\nconstruct particle containers with complex shapes.\n\nRegions can also move dynamically via the [region ](https://docs.lammps.org/region.html) command\nkeywords (move) and *rotate*, or change their shape by use of variables\nas inputs to the [region ](https://docs.lammps.org/region.html) command. If such a region is used\nwith this fix, then the region surface will move in time in the\ncorresponding manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [region ](https://docs.lammps.org/region.html) command doc page,\n > regions in LAMMPS do not get wrapped across periodic boundaries. It\n > is up to you to ensure that the region location with respect to\n > periodic or non-periodic boundaries is specified appropriately via the\n > [region ](https://docs.lammps.org/region.html) and [boundary ](https://docs.lammps.org/boundary.html) commands when using\n > a region as a wall that bounds particle motion. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For primitive regions with sharp corners and/or edges (e.g. a\n > block or cylinder), wall/particle forces are computed accurately for\n > both interior and exterior regions. For *union* and *intersect*\n > regions, additional sharp corners and edges may be present due to the\n > intersection of the surfaces of 2 or more primitive volumes. These\n > corners and edges can be of two types: concave or convex. Concave\n > points/edges are like the corners of a cube as seen by particles in\n > the interior of a cube. Wall/particle forces around these features\n > are computed correctly. Convex points/edges are like the corners of a\n > cube as seen by particles exterior to the cube, i.e. the points jut\n > into the volume where particles are present. LAMMPS does NOT compute\n > the location of these convex points directly, and hence wall/particle\n > forces in the cutoff volume around these points suffer from\n > inaccuracies. The basic problem is that the outward normal of the\n > surface is not continuous at these points. This can cause particles\n > to feel no force (they don't \"see\" the wall) when in one location,\n > then move a distance epsilon, and suddenly feel a large force because\n > they now \"see\" the wall. In a worst-case scenario, this can blow\n > particles out of the simulation box. Thus, as a general rule you\n > should not use the fix wall/gran/region command with *union* or\n > *interesect* regions that have convex points or edges resulting from\n > the union/intersection (convex points/edges in the union/intersection\n > due to a single sub-region are still OK). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Similarly, you should not define *union* or *intersert* regions\n > for use with this command that share an overlapping common face that\n > is part of the overall outer boundary (interior boundary is OK), even\n > if the face is smooth. E.g. two regions of style block in a *union*\n > region, where the two blocks overlap on one or more of their faces.\n > This is because LAMMPS discards points that are part of multiple\n > sub-regions when calculating wall/particle interactions, to avoid\n > double-counting the interaction. Having two coincident faces could\n > cause the face to become invisible to the particles. The solution is\n > to make the two faces differ by epsilon in their position. \n > \n\nThe nature of the wall/particle interactions are determined by the\n*fstyle* setting. It can be any of the styles defined by the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) or the more general\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) commands. Currently the\noptions are *hooke*, *hooke/history*, or *hertz/history* for the\nformer, and *granular* with all the possible options of the associated\n*pair_coeff* command for the latter. The equation for the force\nbetween the wall and particles touching it is the same as the\ncorresponding equation on the [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) and\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) doc pages, but the effective\nradius is calculated using the radius of the particle and the radius of\ncurvature of the wall at the contact point.\n\nSpecifically, delta = radius - r = overlap of particle with wall,\nm_eff = mass of particle, and RiRj/Ri+Rj is the effective radius, with\nRj replaced by the radius of curvature of the wall at the contact\npoint. The radius of curvature can be negative for a concave wall\nsection, e.g. the interior of cylinder. For a flat wall, delta =\nradius - r = overlap of particle with wall, m_eff = mass of particle,\nand the effective radius of contact is just the radius of the\nparticle.\n\nThe parameters *Kn*, *Kt*, *gamma_n*, *gamma_t*, *xmu*, *dampflag*,\nand the optional keyword *limit_damping*\nhave the same meaning and units as those specified with the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) commands. This means a NULL can be\nused for either *Kt* or *gamma_t* as described on that page. If a\nNULL is used for *Kt*, then a default value is used where *Kt* = 2/7\n*Kn* . If a NULL is used for *gamma_t*, then a default value is used\nwhere *gamma_t* = 1/2 *gamma_n*.\n\nAll the model choices for cohesion, tangential friction, rolling\nfriction and twisting friction supported by the [pair_style granular ](https://docs.lammps.org/pair_granular.html) through its *pair_coeff* command are also\nsupported for walls. These are discussed in greater detail on the doc\npage for [pair_style granular ](https://docs.lammps.org/pair_granular.html).\n\nNote that you can choose a different force styles and/or different\nvalues for the 6 wall/particle coefficients than for particle/particle\ninteractions. E.g. if you wish to model the wall as a different\nmaterial.\n\nThe *temperature* keyword is used to assign a temperature to the wall.\nThe following value can either be a numeric value or an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to determine\nthe temperature. This option must be used in conjunction with a heat\nconduction model defined in [pair_style granular ](https://docs.lammps.org/pair_granular.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) to store temperature and a\nheat flow, and [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) to integrate heat\nflow.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nSimilar to [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) command, this fix writes\nthe shear friction state of atoms interacting with the wall to [binary restart files ](https://docs.lammps.org/restart.html), so that a simulation can continue\ncorrectly if granular potentials with shear \"history\" effects are\nbeing used. This fix also includes info about a moving region in the\nrestart file. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Information about region definitions is NOT included in restart\n > files, as discussed on the [read_restart ](https://docs.lammps.org/read_restart.html) doc page.\n > So you must re-define your region and if it is a moving region, define\n > its motion attributes in a way that is consistent with the simulation\n > that wrote the restart file. In particular, if you want to change the\n > region motion attributes (e.g. its velocity), then you should ensure\n > the position/orientation of the region at the initial restart timestep\n > is the same as it was on the timestep the restart file was written.\n > If this is not possible, you may need to ignore info in the restart\n > file by defining a new fix wall/gran/region command in your restart\n > script, e.g. with a different fix ID. Or if you want to keep the\n > shear history info but discard the region motion information, you can\n > use the same fix ID for fix wall/gran/region, but assign it a region\n > with a different region ID. \n > \n\nIf the :code:`contacts` option is used, this fix generates a per-atom array\nwith 8 columns as output, containing the contact information for owned\nparticles (nlocal on each processor). All columns in this per-atom array will\nbe zero if no contact has occurred. The values of these columns are listed in\nthe following table:\n\n| | | | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|---|---|\n| Index | Value | Units |\n+=======+====================================================+================+\n| 1 | 1.0 if particle is in contact with wall, | |\n| | 0.0 otherwise | |\n| 2 | Force \\(f_x\\) exerted by the wall | force units |\n| 3 | Force \\(f_y\\) exerted by the wall | force units |\n| 4 | Force \\(f_z\\) exerted by the wall | force units |\n| 5 | \\(x\\)-coordinate of contact point on wall | distance units |\n| 6 | \\(y\\)-coordinate of contact point on wall | distance units |\n| 7 | \\(z\\)-coordinate of contact point on wall | distance units |\n| 8 | Radius \\(r\\) of atom | distance units |\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo parameter of this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix_move ](https://docs.lammps.org/fix_move.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html),\n[fix wall/region ](https://docs.lammps.org/fix_wall_region.html),\n[pair_style granular ](https://docs.lammps.org/pair_gran.html),\n[region ](https://docs.lammps.org/region.html)\n" }, { "command": [ - "improper_style inversion/harmonic" + "fix_modify AtC filter scale" ], "syntax": [ - "improper_style inversion/harmonic" + "fix_modify filter scale " ], "args": [ [ { - "arg": "improper_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "inversion/harmonic", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "filter", + "type": 1, + "choices": [] + }, + { + "arg": "scale", "type": 1, "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style inversion/harmonic\nimproper_coeff 1 18.776340 0.000000\n```\n", - "html_filename": "improper_inversion_harmonic.html", - "short_description": "The *inversion/harmonic* improper style follows the Wilson-Decius\nout-of-plane angle definition and uses an harmonic potential:\n\\[\n E = K \\left(\\omega - \\omega_0\\right)^2\\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle\nevaluated for all three axis-plane combinations centered around the atom I", - "description": "The *inversion/harmonic* improper style follows the Wilson-Decius\nout-of-plane angle definition and uses an harmonic potential:\n\\[\n E = K \\left(\\omega - \\omega_0\\right)^2\\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle\nevaluated for all three axis-plane combinations centered around the atom I.\nFor the IL axis and the IJK plane \\(\\omega\\) looks as follows:\n\n ![Image](JPG/umbrella.jpg) \n\nNote that the *inversion/harmonic* angle term evaluation differs to\nthe [improper_umbrella ](https://docs.lammps.org/improper_umbrella.html) due to the cyclic\nevaluation of all possible angles \\(\\omega\\).\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\omega_0\\) (degrees)\n\nIf \\(\\omega_0 = 0\\) the potential term has a single minimum for\nthe planar structure. Otherwise it has two minima at +/- \\(\\omega_0\\),\nwith a barrier in between.\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter scale = name of the AtC sub-command\n* scale = characteristic times scale of the filter \n", + "examples": "\n```lmps\nfix_modify AtC filter scale 10.0\n```\n", + "html_filename": "atc_filter_scale.html", + "short_description": "Sets the time scale for MD dynamics filter to construct a more\nappropriate continuous field", + "description": "Sets the time scale for MD dynamics filter to construct a more\nappropriate continuous field.\n", + "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter type ](https://docs.lammps.org/atc_filter_type.html)\n" }, { "command": [ - "fix vector" + "fix momentum", + "fix momentum/kk", + "fix momentum/chunk" ], "syntax": [ - "fix ID group-ID vector Nevery value1 value2 ... keyword args ..." + "fix ID group-ID momentum N keyword values ..." ], "args": [ [ @@ -10974,83 +10164,83 @@ export const command_docs = [ "choices": [] }, { - "arg": "vector", - "type": 1, - "choices": [] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "value1", - "type": 2, - "choices": [] + "arg": "momentum", + "type": 3, + "choices": [ + "momentum", + "momentum/kk" + ] }, { - "arg": "value2", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "rescale", + "type": 3, + "choices": [ + "linear", + "angular", + "rescale" + ] }, { - "arg": "args", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* vector = style name of this fix command\n* Nevery = use input values every this many timesteps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID \n *        v_name = value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of vector-style variable with name \n* zero or more keyword/args pairs may be appended\n* keyword = nmax \n *        nmax length = set maximal length of vector to \n", - "examples": "\n```lmps\nfix 1 all vector 100 c_myTemp\nfix 1 all vector 5 c_myTemp v_integral\nfix 1 all vector 50 c_myTemp nmax 200\n```\n", - "html_filename": "fix_vector.html", - "short_description": "Use one or more global values as inputs every few timesteps, and simply\nstore them as a sequence", - "description": "Use one or more global values as inputs every few timesteps, and simply\nstore them as a sequence. For a single specified value, the values are\nstored as a global vector of growing length. For multiple specified\nvalues, they are stored as rows in a global array, whose number of rows\nis growing. The resulting vector or array can be used by other\n[output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe optional *nmax* keyword can be used to restrict the length of the\nvector to the given *length* value. Once the restricted vector is\nfilled, the oldest entry will be discarded when a entry is added.\n\nOne way to to use this command is to accumulate a vector that is\nnumerically integrated using the [variable trap() ](https://docs.lammps.org/variable.html)\nfunction. For example, the velocity auto-correlation function (VACF)\ncan be integrated, to yield a diffusion coefficient, as follows:\n\n```lmps\ncompute 2 all vacf\nfix 5 all vector 1 c_2[4]\nvariable diff equal dt*trap(f_5)\nthermo_style custom step v_diff\n```\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity. And\nthe global quantity must be a scalar, not a vector or array.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce global quantities are those which\ndo not have the word *atom* in their style name. Only a few\n[fixes ](https://docs.lammps.org/fix.html) produce global quantities. See the doc pages for\nindividual fixes for info on which ones produce such values.\n[Variables ](https://docs.lammps.org/variable.html) of style *equal* or *vector* are the only\nones that can be used with this fix. Variables of style *atom* cannot\nbe used, since they produce per-atom values.\n\nThe *Nevery* argument specifies on what timesteps the input values\nwill be used in order to be stored. Only timesteps that are a\nmultiple of *Nevery*, including timestep 0, will contribute values.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >:class: warning\n >\n > If *Nevery* is a small number and the simulation runs for many\n > steps, the accumulated vector or array can become very large and\n > thus consume a lot of memory. The implementation limit is about\n > 2 billion entries. Using the *nmax* keyword mentioned above can\n > avoid that by limiting the size of the vector. \n > \n\nNote that if you perform multiple runs, using the \"pre no\" option of\nthe [run ](https://docs.lammps.org/run.html) command to avoid initialization on subsequent runs,\nthen you need to use the *stop* keyword with the first [run ](https://docs.lammps.org/run.html)\ncommand with a timestep value that encompasses all the runs. This is\nso that the vector or array stored by this fix can be allocated to a\nsufficient size.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the compute is used. If a\nbracketed term is appended, the Ith element of the global vector\ncalculated by the compute is used.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwhich can sum per-atom quantities into a global scalar or vector which\ncan thus be accessed by fix vector. Or it can be a compute defined not\nin your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for these commands which give\nthe IDs of these computes. Users can also write code for their own\ncompute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the fix is used. If a\nbracketed term is appended, the Ith element of the global vector\ncalculated by the fix is used.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with *Nevery*, else an error will result.\nUsers can also write code for their own fix styles and [add them toLAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. An equal-style or\nvector-style variable can be referenced; the latter requires a\nbracketed term to specify the Ith element of the vector calculated by\nthe variable. See the [variable ](https://docs.lammps.org/variable.html) command for details.\nNote that variables of style *equal* and *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to be stored by fix vector.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a global vector or global array which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The values\ncan only be accessed on timesteps that are multiples of *Nevery* .\n\nA vector is produced if only a single input value is specified.\nAn array is produced if multiple input values are specified.\nThe length of the vector or the number of rows in the array grows\nby 1 every *Nevery* timesteps.\n\nIf the fix produces a vector, then the entire vector will be either\n\"intensive\" or \"extensive\", depending on whether the values stored in\nthe vector are \"intensive\" or \"extensive\". If the fix produces an\narray, then all elements in the array must be the same, either\n\"intensive\" or \"extensive\". If a compute or fix provides the value\nstored, then the compute or fix determines whether the value is\nintensive or extensive; see the page for that compute or fix for further\ninfo. Values produced by a variable are treated as intensive.\n\nThis fix can allocate storage for stored values accumulated over\nmultiple runs, using the *start* and *stop* keywords of the [run](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of how to\ndo this. If using the [run pre no ](https://docs.lammps.org/run.html) command option, this is\nrequired to allow the fix to allocate sufficient storage for stored\nvalues.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [variable ](https://docs.lammps.org/variable.html)\n\n #### Defaults\n\nThe default value of *nmax* is deduced from the number of steps\nin a run (or multiple runs when using the *start* and *stop*\nkeywords of the [run command ](https://docs.lammps.org/run.html)) divided by the choice\nof *Nevery* plus 1.\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* momentum = style name of this fix command\n* N = adjust the momentum every this many timesteps\n one or more keyword/value pairs may be appended \n *    fix ID group-ID momentum/chunk N chunkID keyword values ... \n* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* momentum/chunk = style name of this fix command\n* N = adjust the momentum per chunk every this many timesteps\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n\n one or more keyword/value settings may be appended to each of the fix commands:\n* keyword = linear or angular or rescale \n *        linear values = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension \n *        angular values = none \n *        rescale values = none \n", + "examples": "\n```lmps\nfix 1 all momentum 1 linear 1 1 0\nfix 1 all momentum 1 linear 1 1 1 rescale\nfix 1 all momentum 100 linear 1 1 1 angular\nfix 1 all momentum/chunk 100 molchunk linear 1 1 1 angular\n```\n", + "html_filename": "fix_momentum.html", + "short_description": "Fix momentum zeroes the linear and/or angular momentum of the group of\natoms every N timesteps by adjusting the velocities of the atoms", + "description": "Fix momentum zeroes the linear and/or angular momentum of the group of\natoms every N timesteps by adjusting the velocities of the atoms.\nFix momentum/chunk works equivalently, but operates on a per-chunk basis.\n\nOne (or both) of the *linear* or *angular* keywords **must** be specified.\n\nIf the *linear* keyword is used, the linear momentum is zeroed by\nsubtracting the center-of-mass velocity of the group or chunk from each\natom. This does not change the relative velocity of any pair of atoms.\nOne or more dimensions can be excluded from this operation by setting\nthe corresponding flag to 0.\n\nIf the *angular* keyword is used, the angular momentum is zeroed by\nsubtracting a rotational component from each atom.\n\nThis command can be used to ensure the entire collection of atoms (or\na subset of them) does not drift or rotate during the simulation due\nto random perturbations (e.g. [fix langevin ](https://docs.lammps.org/fix_langevin.html)\nthermostatting).\n\nThe *rescale* keyword enables conserving the kinetic energy of the group\nor chunk of atoms by rescaling the velocities after the momentum was removed.\n\nNote that the [velocity ](https://docs.lammps.org/velocity.html) command can be used to create\ninitial velocities with zero aggregate linear and/or angular momentum.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "Fix momentum/chunk is part of the EXTRA-FIX package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix recenter ](https://docs.lammps.org/fix_recenter.html), [velocity ](https://docs.lammps.org/velocity.html)\n" }, { "command": [ - "compute cluster/atom", - "compute fragment/atom" + "dihedral_style cosine/shift/exp", + "dihedral_style cosine/shift/exp/omp" ], "syntax": [ - "compute ID group-ID cluster/atom cutoff", - "compute ID group-ID fragment/atom keyword value ...", - "compute ID group-ID aggregate/atom cutoff" + "dihedral_style cosine/shift/exp" ], "args": [ [ { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "cluster/atom", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] + "arg": "cosine/shift/exp", + "type": 3, + "choices": [ + "cosine/shift/exp", + "cosine/shift/exp/omp" + ] } - ], + ] + ], + "parameters": "", + "examples": "\n```lmps\ndihedral_style cosine/shift/exp\ndihedral_coeff 1 10.0 45.0 2.0\n```\n", + "html_filename": "dihedral_cosine_shift_exp.html", + "short_description": "The *cosine/shift/exp* dihedral style uses the potential\n\\[\n E = -U_{min}\\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad\\mbox{with}\\quad U(\\theta,\\theta_0)=-0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{min}\\), \\(\\theta\\), and \\(a\\) are defined for\neach dihedral type", + "description": "The *cosine/shift/exp* dihedral style uses the potential\n\\[\n E = -U_{min}\\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad\\mbox{with}\\quad U(\\theta,\\theta_0)=-0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{min}\\), \\(\\theta\\), and \\(a\\) are defined for\neach dihedral type.\n\nThe potential is bounded between \\(\\left[-U_{min}:0\\right]\\) and the minimum is located\nat the angle \\(\\theta_0\\). The a parameter can be both positive or negative\nand is used to control the spring constant at the equilibrium.\n\nThe spring constant is given by \\(k=a e^a \\frac{U_{min}}{2 \\left(e^a-1\\right)}\\).\nFor \\(a>3\\) and \\(\\frac{k}{U_{min}} = \\frac{a}{2}\\) to better than 5% relative error. For negative\nvalues of the a parameter, the spring constant is essentially zero,\nand anharmonic terms takes over. The potential is furthermore well\nbehaved in the limit \\(a \\rightarrow 0\\), where it has been implemented to linear\norder in \\(a\\) for \\(a < 0.001\\).\n\nThe following coefficients must be defined for each dihedral type via\nthe [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(U_{min}\\) (energy)\n* \\(\\theta\\) (angle)\n* \\(a\\) (real number)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html),\n[angle_style cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html)\n" +}, +{ + "command": [ + "compute nbond/atom" + ], + "syntax": [ + "compute ID group-ID nbond/atom" + ], + "args": [ [ { "arg": "compute", @@ -11068,40 +10258,37 @@ export const command_docs = [ "choices": [] }, { - "arg": "fragment/atom", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, + "arg": "nbond/atom", + "type": 1, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* nbond/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all nbond/atom\n```\n", + "html_filename": "compute_nbond_atom.html", + "short_description": "\nDefine a computation that computes the number of bonds each atom is\npart of", + "description": "\nDefine a computation that computes the number of bonds each atom is\npart of. Bonds which are broken are not counted in the tally. See\nthe [Howto broken bonds ](https://docs.lammps.org/Howto_bpm.html) page for more information.\nThe number of bonds will be zero for atoms not in the specified\ncompute group. This compute does not depend on Newton bond settings.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) doc page for an overview of\nLAMMPS output options.\n", + "restrictions": "This compute is part of the BPM package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", + "related": "none" +}, +{ + "command": [ + "pair_style spin/magelec" + ], + "syntax": [ + "pair_style spin/magelec cutoff" + ], + "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "aggregate/atom", - "type": 2, + "arg": "spin/magelec", + "type": 1, "choices": [] }, { @@ -11111,265 +10298,263 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cluster/atom or fragment/atom or aggregate/atom = style name of this compute command\n* cutoff = distance within which to label atoms as part of same cluster (distance units)\n* zero or more keyword/value pairs may be appended to fragment/atom\n* keyword = single \n *        single value = yes or no to treat single atoms (no bonds) as fragments \n", - "examples": "\n```lmps\ncompute 1 all cluster/atom 3.5\ncompute 1 all fragment/atom\ncompute 1 all fragment/atom single no\ncompute 1 all aggregate/atom 3.5\n```\n", - "html_filename": "compute_cluster_atom.html", - "short_description": "Define a computation that assigns each atom a cluster, fragment, or\naggregate ID", - "description": "Define a computation that assigns each atom a cluster, fragment, or\naggregate ID. Only atoms in the compute group are clustered and\nassigned cluster IDs. Atoms not in the compute group are assigned an\nID = 0.\n\nA cluster is defined as a set of atoms, each of which is within the\ncutoff distance from one or more other atoms in the cluster. If an\natom has no neighbors within the cutoff distance, then it is a 1-atom\ncluster.\n\nA fragment is similarly defined as a set of atoms, each of which has a\nbond to another atom in the fragment. Bonds can be defined initially\nvia the [data file ](https://docs.lammps.org/read_data.html) or [create_bonds](https://docs.lammps.org/create_bonds.html) commands, or dynamically by fixes which create or\nbreak bonds like [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fixbond/create ](https://docs.lammps.org/fix_bond_create.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\nor [fix bond/break ](https://docs.lammps.org/fix_bond_break.html). The cluster ID or fragment\nID of every atom in the cluster will be set to the smallest atom ID of\nany atom in the cluster or fragment, respectively.\n\nFor the *fragment/atom* style, the *single* keyword determines whether\nsingle atoms (not bonded to another atom) are treated as one-atom\nfragments or not, based on the *yes* or *no* setting. If the setting\nis *no* (the default), their fragment IDs are set to 0.\n\nAn aggregate is defined by combining the rules for clusters and\nfragments (i.e., a set of atoms, where each of them is within the cutoff\ndistance from one or more atoms within a fragment that is part of\nthe same cluster). This measure can be used to track molecular assemblies\nlike micelles.\n\nFor computes *cluster/atom* and *aggregate/atom* a neighbor list\nneeded to compute cluster IDs is constructed each time the compute is\ninvoked. Thus it can be inefficient to compute/dump this quantity too\nfrequently or to have multiple *cluster/atom* or *aggregate/atom*\nstyle computes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included when computing the clusters. This\n > does not apply when using long-range coulomb (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g., \\(1.0 \\times 10^{-50}\\)). Another workaround is to write a\n > dump file and use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the clusters\n > for snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the compute fragment/atom style, each fragment is identified\n > using the current bond topology. This will not account for bonds\n > broken by the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command\n > because it does not perform a full update of the bond topology data\n > structures within LAMMPS. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be an ID \\(> 0\\), as explained above.\n", - "restrictions": "none\n", - "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n" + "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", + "examples": "\n```lmps\npair_style spin/magelec 4.5\npair_coeff * * magelec 4.5 0.00109 1.0 1.0 1.0\n```\n", + "html_filename": "pair_spin_magelec.html", + "short_description": "Style *spin/me* computes a magneto-electric interaction between\npairs of magnetic spins", + "description": "Style *spin/me* computes a magneto-electric interaction between\npairs of magnetic spins. According to the derivation reported in\n**Katsura1**, this interaction is defined as:\n\\[\\begin{align*} \n \\vec{\\omega}_i & = -\\frac{1}{\\hbar} \\sum_{j}^{Neighb} \\vec{s}_{j}\\times\\vec{D}(r_{ij}) \\\\\n \\vec{F}_i & = -\\sum_{j}^{Neighb} \\frac{\\partial D(r_{ij})}{\\partial r_{ij}} \\left(\\vec{s}_{i}\\times \\vec{s}_{j} \\right) \\cdot \\vec{r}_{ij} \\end{align*} \\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are neighboring magnetic\nspins of two particles.\n\nFrom this magneto-electric interaction, each spin i will be submitted\nto a magnetic torque omega, and its associated atom can be submitted to a\nforce F for spin-lattice calculations (see [fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)),\nsuch as:\n\\[\\begin{align*} \n \\vec{F}^{i} & = -\\sum_{j}^{Neighbor} \\left( \\vec{s}_{i}\\times \\vec{s}_{j} \\right) \\times \\vec{E} \\\\\n \\vec{\\omega}^{i} = -\\frac{1}{\\hbar} \\sum_{j}^{Neighbor} \\vec{s}_j \\times \\left(\\vec{E}\\times r_{ij} \\right) \\end{align*} \\]\nwith h the Planck constant (in metal units) and \\(\\vec{E}\\) an\nelectric polarization vector. The norm and direction of E are giving\nthe intensity and the direction of a screened dielectric atomic\npolarization (in eV).\n\nMore details about the derivation of these torques/forces are reported in\n**Tranchida4**.\n\n----------\n\n**(Katsura1)** H. Katsura, N. Nagaosa, A.V. Balatsky. Phys. Rev. Lett., 95(5), 057205. (2005) \n \n**(Tranchida4)** Tranchida, Plimpton, Thibaudeau, and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", + "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html), [pair_eam ](https://docs.lammps.org/pair_eam.html),\n" }, { "command": [ - "reset_atoms" + "compute entropy/atom" ], "syntax": [ - "reset_atoms property arguments ..." + "compute ID group-ID entropy/atom sigma cutoff keyword value ..." ], "args": [ [ { - "arg": "reset_atoms", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "mol", - "type": 3, - "choices": [ - "id", - "image", - "mol" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "arguments", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* property = id or image or mol\n* additional arguments depend on the property \n    reset_atoms id keyword value ... \n *   * zero or more keyword/value pairs can be appended \n *   * keyword = sort \n    sort value = yes or no \n    reset_atoms image group-ID \n *   * group-ID = ID of group of atoms whose image flags will be reset \n    reset_atoms mol group-ID keyword value ... \n *   * group-ID = ID of group of atoms whose molecule IDs will be reset \n *   * zero or more keyword/value pairs can be appended \n *   * keyword = compress or offset or single \n    compress value = yes or no \n    offset value = Noffset >= -1 \n    single value = yes or no to treat single atoms (no bonds) as molecules \n", - "examples": "\n```lmps\nreset_atoms id\nreset_atoms id sort yes\nreset_atoms image all\nreset_atoms image mobile\nreset_atoms mol all\nreset_atoms mol all offset 10 single yes\nreset_atoms mol solvent compress yes offset 100\nreset_atoms mol solvent compress no\n```\n", - "html_filename": "reset_atoms.html", - "short_description": "\nThe *reset_atoms* command resets the values of a specified atom\nproperty", - "description": "\nThe *reset_atoms* command resets the values of a specified atom\nproperty. In contrast to the *set* command, it does this in a\ncollective manner which resets the values for many atoms in a\nself-consistent way. This command is often useful when the simulated\nsystem has undergone significant modifications like adding or removing\natoms or molecules, joining data files, changing bonds, or large-scale\ndiffusion.\n\nThe new values can be thought of as a *reset*, similar to values atoms\nwould have if a new data file were being read or a new simulation\nperformed. Note that the *set* command also resets atom properties to\nnew values, but it treats each atom independently.\n\nThe *property* setting can be *id* or *image* or *mol*. For *id*, the\nIDs of all the atoms are reset to contiguous values. For *image*, the\nimage flags of atoms in the specified *group-ID* are reset so that at\nleast one atom in each molecule is in the simulation box (image flag =\n0). For *mol*, the molecule IDs of all atoms are reset to contiguous\nvalues.\n\nMore details on these operations and their arguments or optional\nkeyword/value settings are given below.\n\n----------\n\nProperty: *id*\n\nReset atom IDs for the entire system, including all the global IDs\nstored for bond, angle, dihedral, improper topology data. This will\ncreate a set of IDs that are numbered contiguously from 1 to N for a N\natoms system.\n\nThis can be useful to do after performing a \"delete_atoms\" command for\na molecular system. The delete_atoms compress yes option will not\nperform this operation due to the existence of bond topology. It can\nalso be useful to do after any simulation which has lost atoms,\ne.g. due to atoms moving outside a simulation box with fixed\nboundaries (see the \"boundary command\"), or due to evaporation (see\nthe \"fix evaporate\" command).\n\nIf the *sort* keyword is used with a setting of *yes*, then the\nassignment of new atom IDs will be the same no matter how many\nprocessors LAMMPS is running on. This is done by first doing a\nspatial sort of all the atoms into bins and sorting them within each\nbin. Because the set of bins is independent of the number of\nprocessors, this enables a consistent assignment of new IDs to each\natom.\n\nThis can be useful to do after using the \"create_atoms\" command and/or\n\"replicate\" command. In general those commands do not guarantee\nassignment of the same atom ID to the same physical atom when LAMMPS\nis run on different numbers of processors. Enforcing consistent IDs\ncan be useful for debugging or comparing output from two different\nruns.\n\nNote that the spatial sort requires communication of atom IDs and\ncoordinates between processors in an all-to-all manner. This is done\nefficiently in LAMMPS, but it is more expensive than how atom IDs are\nreset without sorting.\n\nNote that whether sorting or not, the resetting of IDs is not a\ncompression, where gaps in atom IDs are removed by decrementing atom\nIDs that are larger. Instead the IDs for all atoms are erased, and\nnew IDs are assigned so that the atoms owned by an individual\nprocessor have consecutive IDs, as the [create_atoms](https://docs.lammps.org/create_atoms.html) command explains.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If this command is used before a [pair style ](https://docs.lammps.org/pair_style.html) is\n > defined, an error about bond topology atom IDs not being found may\n > result. This is because the cutoff distance for ghost atom\n > communication was not sufficient to find atoms in bonds, angles, etc\n > that are owned by other processors. The [comm_modify cutoff > ](https://docs.lammps.org/comm_modify.html) command can be used to correct this issue. Or you can\n > define a pair style before using this command. If you do the former,\n > you should unset the *comm_modify cutoff* after using *reset\n > atoms id* so that subsequent communication is not inefficient. \n > \n\n----------\n\nProperty: *image*\n\nReset the image flags of atoms so that at least one atom in each\nmolecule has an image flag of 0. Molecular topology is respected so\nthat if the molecule straddles a periodic simulation box boundary, the\nimages flags of all atoms in the molecule will be consistent. This\navoids inconsistent image flags that could result from resetting all\nimage flags to zero with the [set ](https://docs.lammps.org/set.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system has no bonds, there is no reason to use this command,\n > since image flags for different atoms do not need to be\n > consistent. Use the [set ](https://docs.lammps.org/set.html) command with its *image*\n > keyword instead. \n > \n\nOnly image flags for atoms in the specified *group-ID* are reset; all\nothers remain unchanged. No check is made for whether the group\ncovers complete molecule fragments and thus whether the command will\nresult in inconsistent image flags.\n\nMolecular fragments are identified by the algorithm used by the\n[compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html) command. For each\nfragment the average of the largest and the smallest image flag in\neach direction across all atoms in the fragment is computed and\nsubtracted from the current image flag in the same direction.\n\nThis can be a useful operation to perform after running longer\nequilibration runs of mobile systems where molecules would pass\nthrough the system multiple times and thus produce non-zero image\nflags.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Same as explained for the [compute fragment/atom > ](https://docs.lammps.org/compute_cluster_atom.html) command, molecules are identified using the\n > current bond topology. This will **not** account for bonds broken by\n > the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command, because this\n > bond style does not perform a full update of the bond topology data\n > structures within LAMMPS. In that case, using the [delete_bonds > all bond 0 remove ](https://docs.lammps.org/delete_bonds.html) will permanently delete such\n > broken bonds and should thus be used first. \n > \n\n----------\n\nProperty: *mol*\n\nReset molecule IDs for a specified group of atoms based on current\nbond connectivity. This will typically create a new set of molecule\nIDs for atoms in the group. Only molecule IDs for atoms in the\nspecified *group-ID* are reset; molecule IDs for atoms not in the\ngroup are not changed.\n\nFor purposes of this operation, molecules are identified by the current\nbond connectivity in the system, which may or may not be consistent with\nthe current molecule IDs. A molecule in this context is a set of atoms\nconnected to each other with explicit bonds. The specific algorithm\nused is the one of [compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html).\nOnce the molecules are identified and a new molecule ID computed for\neach, this command will update the current molecule ID for all atoms in\nthe group with the new molecule ID. Note that if the group excludes\natoms within molecules, one (physical) molecule may become two or more\n(logical) molecules. For example if the group excludes atoms in the\nmiddle of a linear chain, then each end of the chain is considered an\nindependent molecule and will be assigned a different molecule ID.\n\nThis can be a useful operation to perform after running reactive\nmolecular dynamics run with [fix bond/react ](https://docs.lammps.org/fix_bond_react.html),\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html), or [fix bond/break](https://docs.lammps.org/fix_bond_break.html), all of which can change molecule topologies. It can\nalso be useful after molecules have been deleted with the\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html) command or after a simulation which\nhas lost molecules, e.g. via the [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)\ncommand.\n\nThe *compress* keyword determines how new molecule IDs are computed. If\nthe setting is *yes* (the default) and there are N molecules in the\ngroup, the new molecule IDs will be a set of N contiguous values. See\nthe *offset* keyword for details on selecting the range of these values.\nIf the setting is *no*, the molecule ID of every atom in the molecule\nwill be set to the smallest atom ID of any atom in the molecule.\n\nThe *single* keyword determines whether single atoms (not bonded to\nanother atom) are treated as one-atom molecules or not, based on the\n*yes* or *no* setting. If the setting is *no* (the default), their\nmolecule IDs are set to 0. This setting can be important if the new\nmolecule IDs will be used as input to other commands such as\n[compute chunk/atom molecule ](https://docs.lammps.org/compute_chunk_atom.html) or [fixrigid molecule ](https://docs.lammps.org/fix_rigid.html).\n\nThe *offset* keyword is only used if the *compress* setting is *yes*.\nIts default value is *Noffset* = -1. In that case, if the specified\ngroup is *all*, then the new compressed molecule IDs will range from 1\nto N. If the specified group is not *all* and the largest molecule ID\nof atoms outside that group is M, then the new compressed molecule IDs will\nrange from M+1 to M+N, to avoid collision with existing molecule\nIDs. If an *Noffset* >= 0 is specified, then the new compressed\nmolecule IDs will range from *Noffset* +1 to *Noffset* +N. If the group\nis not *all* there may be collisions with the molecule IDs of other atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Same as explained for the [compute fragment/atom > ](https://docs.lammps.org/compute_cluster_atom.html) command, molecules are identified using the\n > current bond topology. This will **not** account for bonds broken by\n > the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command, because this\n > bond style does not perform a full update of the bond topology data\n > structures within LAMMPS. In that case, using the [delete_bonds > all bond 0 remove ](https://docs.lammps.org/delete_bonds.html) will permanently delete such broken\n > bonds and should thus be used first. \n > \n\n", - "restrictions": "The *image* property can only be used when the atom style supports bonds.\n", - "related": "[compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html),\n[fix bond/react ](https://docs.lammps.org/fix_bond_react.html),\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html),\n[fix bond/break ](https://docs.lammps.org/fix_bond_break.html),\n[fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html),\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n\n #### Defaults\n\nFor property *id*, the default keyword setting is sort = no.\n\nFor property *mol*, the default keyword settings are compress = yes,\nsingle = no, and offset = -1.\n" -}, -{ - "command": [ - "jump" - ], - "syntax": [ - "jump file label" - ], - "args": [ - [ + }, { - "arg": "jump", + "arg": "entropy/atom", "type": 1, "choices": [] }, { - "arg": "file", + "arg": "sigma", "type": 2, "choices": [] }, { - "arg": "label", + "arg": "cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* file = filename of new input script to switch to\n* label = optional label within file to jump to \n", - "examples": "\n```lmps\njump newfile\njump in.run2 runloop\njump SELF runloop\n```\n", - "html_filename": "jump.html", - "short_description": "This command closes the current input script file, opens the file with\nthe specified name, and begins reading LAMMPS commands from that file", - "description": "This command closes the current input script file, opens the file with\nthe specified name, and begins reading LAMMPS commands from that file.\nUnlike the [include ](https://docs.lammps.org/include.html) command, the original file is not\nreturned to, although by using multiple jump commands it is possible\nto chain from file to file or back to the original file.\n\nIf the word \"SELF\" is used for the filename, then the current input\nscript is re-opened and read again.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The SELF option is not guaranteed to work when the current input\n > script is being read through stdin (standard input), e.g. \n > \n\n\n```bash\nlmp_g++ < in.script\n```\nsince the SELF option invokes the C-library rewind() call, which may\nnot be supported for stdin on some systems or by some MPI\nimplementations. This can be worked around by using the [-in command-line switch ](https://docs.lammps.org/Run_options.html), e.g.\n\n```bash\nlmp_g++ -in in.script\n```\nor by using the [-var command-line switch ](https://docs.lammps.org/Run_options.html) to pass\nthe script name as a variable to the input script. In the latter\ncase, a [variable ](https://docs.lammps.org/variable.html) called \"fname\" could be used in place\nof SELF, e.g.\n\n```bash\nlmp_g++ -var fname in.script < in.script\n```\nThe second argument to the jump command is optional. If specified, it is\ntreated as a label and the new file is scanned (without executing\ncommands) until the label is found, and commands are executed from\nthat point forward. This can be used to loop over a portion of the\ninput script, as in this example. These commands perform 10 runs,\neach of 10000 steps, and create 10 dump files named file.1, file.2,\netc. The [next ](https://docs.lammps.org/next.html) command is used to exit the loop after 10\niterations. When the \"a\" variable has been incremented for the tenth\ntime, it will cause the next jump command to be skipped.\n\n```lmps\nvariable a loop 10\nlabel loop\ndump 1 all atom 100 file.$a\nrun 10000\nundump 1\nnext a\njump in.lj loop\n```\nIf the jump *file* argument is a variable, the jump command can be\nused to cause different processor partitions to run different input\nscripts. In this example, LAMMPS is run on 40 processors, with 4\npartitions of 10 procs each. An in.file containing the example\nvariable and jump command will cause each partition to run a different\nsimulation.\n\n```lmps\nmpirun -np 40 lmp_ibm -partition 4x10 -in in.file\n\nvariable f world script.1 script.2 script.3 script.4\njump $f\n```\nHere is an example of a loop which checks every 1000 steps if the\nsystem temperature has reached a certain value, and if so, breaks out\nof the loop to finish the run. Note that any variable could be\nchecked, so long as it is current on the timestep when the run\ncompletes. As explained on the [variable ](https://docs.lammps.org/variable.html) doc page,\nthis can be ensured by including the variable in thermodynamic output.\n\n```lmps\nvariable myTemp equal temp\nlabel loop\nvariable a loop 1000\nrun 1000\nif \"${myTemp} < 300.0\" then \"jump SELF break\"\nnext a\njump SELF loop\nlabel break\nprint \"ALL DONE\"\n```\nHere is an example of a double loop which uses the if and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif \"$b > 2\" then \"jump SELF break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\nnext a\njump SELF loopa\n```\n", - "restrictions": "If you jump to a file and it does not contain the specified label,\nLAMMPS will come to the end of the file and exit.\n", - "related": "[variable ](https://docs.lammps.org/variable.html), [include ](https://docs.lammps.org/include.html), [label ](https://docs.lammps.org/label.html),\n[next ](https://docs.lammps.org/next.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* entropy/atom = style name of this compute command\n* sigma = width of Gaussians used in the \\(g(r)\\) smoothing\n* cutoff = cutoff for the \\(g(r)\\) calculation\n* one or more keyword/value pairs may be appended \n *    keyword = avg or local \n     avg args = neigh cutoff2 \n     neigh value = yes or no = whether to average the pair entropy over neighbors \n     cutoff2 = cutoff for the averaging over neighbors \n     local arg = yes or no = use the local density around each atom to normalize the g(r) \n", + "examples": "\n```lmps\ncompute 1 all entropy/atom 0.25 5.\ncompute 1 all entropy/atom 0.25 5. avg yes 5.\ncompute 1 all entropy/atom 0.125 7.3 avg yes 5.1 local yes\n```\n", + "html_filename": "compute_entropy_atom.html", + "short_description": "Define a computation that calculates the pair entropy fingerprint for\neach atom in the group", + "description": "Define a computation that calculates the pair entropy fingerprint for\neach atom in the group. The fingerprint is useful to distinguish between\nordered and disordered environments, for instance liquid and solid-like\nenvironments, or glassy and crystalline-like environments. Some\napplications could be the identification of grain boundaries, a\nmelt-solid interface, or a solid cluster emerging from the melt.\nThe advantage of this parameter over others is that no a priori\ninformation about the solid structure is required.\n\nThis parameter for atom i is computed using the following formula from\n**Piaggi** and **Nettleton** ,\n\\[\n s_S^i=-2\\pi\\rho k_B \\int\\limits_0^{r_m} \\left [ g(r) \\ln g(r) - g(r) + 1 \\right ] r^2 dr\\]\nwhere \\(r\\) is a distance, \\(g(r)\\) is the radial distribution function\nof atom \\(i\\), and \\(\\rho\\) is the density of the system.\nThe \\(g(r)\\) computed for each atom \\(i\\) can be noisy and therefore it\nis smoothed using\n\\[\n g_m^i(r) = \\frac{1}{4 \\pi \\rho r^2} \\sum\\limits_{j} \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} e^{-(r-r_{ij})^2/(2\\sigma^2)}\\]\nwhere the sum over \\(j\\) goes through the neighbors of atom \\(i\\) and\n\\(\\sigma\\) is a parameter to control the smoothing.\n\nThe input parameters are *sigma* the smoothing parameter \\(\\sigma\\),\nand the *cutoff* for the calculation of \\(g(r)\\).\n\nIf the keyword *avg* has the setting *yes*, then this compute also\naverages the parameter over the neighbors of atom \\(i\\) according to\n\\[\n \\left< s_S^i \\right> = \\frac{\\sum_j s_S^j + s_S^i}{N + 1},\\]\nwhere the sum over \\(j\\) goes over the neighbors of atom \\(i\\) and\n\\(N\\) is the number of neighbors. This procedure provides a sharper\ndistinction between order and disorder environments. In this case the input\nparameter *cutoff2* is the cutoff for the averaging over the neighbors and\nmust also be specified.\n\nIf the *avg yes* option is used, the effective cutoff of the neighbor\nlist should be *cutoff* +\\ *cutoff2* and therefore it might be necessary\nto increase the skin of the neighbor list with:\n\n```\nneighbor bin\n```\nSee [neighbor ](https://docs.lammps.org/neighbor.html) for details.\n\nIf the *local yes* option is used, the \\(g(r)\\) is normalized by the\nlocal density around each atom, that is to say the density around each\natom is the number of neighbors within the neighbor list cutoff divided\nby the corresponding volume. This option can be useful when dealing with\ninhomogeneous systems such as those that have surfaces.\n\nHere are typical input parameters for fcc aluminum (lattice\nconstant \\(4.05~\\mathring{\\textrm{A}}\\)),\n\n```\ncompute 1 all entropy/atom 0.25 5.7 avg yes 3.7\n```\nand for bcc sodium (lattice constant \\(4.23~\\mathring{\\textrm{A}}\\)),\n\n```\ncompute 1 all entropy/atom 0.25 7.3 avg yes 5.1\n```\n #### Output info\n\nBy default, this compute calculates the pair entropy value for each\natom as a per-atom vector, which can be accessed by any command that\nuses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe pair entropy values have units of the Boltzmann constant. They are\nalways negative, and lower values (lower entropy) correspond to more\nordered environments.\n\n**(Piaggi)** Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017). \n \n**(Nettleton)** Nettleton and Green, J Chem Phys, 29, 6 (1958). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" }, { "command": [ - "pair_style zbl", - "pair_style zbl/gpu", - "pair_style zbl/kk", - "pair_style zbl/omp" + "fix_modify AtC equilibrium_start" ], "syntax": [ - "pair_style zbl inner outer" + "fix_modify equilibrium_start " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "zbl", - "type": 3, - "choices": [ - "zbl", - "zbl/gpu", - "zbl/kk", - "zbl/omp" - ] - }, - { - "arg": "inner", + "arg": "", "type": 2, "choices": [] }, { - "arg": "outer", - "type": 2, + "arg": "equilibrium_start", + "type": 1, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } ] ], - "parameters": "* inner = distance where switching function begins\n* outer = global cutoff for ZBL interaction \n", - "examples": "\n```lmps\npair_style zbl 3.0 4.0\npair_coeff * * 73.0 73.0\npair_coeff 1 1 14.0 14.0\n```\n", - "html_filename": "pair_zbl.html", - "short_description": "Style *zbl* computes the Ziegler-Biersack-Littmark (ZBL) screened nuclear\nrepulsion for describing high-energy collisions between atoms", - "description": "Style *zbl* computes the Ziegler-Biersack-Littmark (ZBL) screened nuclear\nrepulsion for describing high-energy collisions between atoms.\n**Ziegler**. It includes an additional switching function\nthat ramps the energy, force, and curvature smoothly to zero\nbetween an inner and outer cutoff. The potential\nenergy due to a pair of atoms at a distance r_ij is given by:\n\\[\\begin{align*} \n E^{ZBL}_{ij} & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_i Z_j \\,e^2}{r_{ij}} \\phi(r_{ij}/a)+ S(r_{ij})\\\\\n a & = \\frac{0.46850}{Z_{i}^{0.23} + Z_{j}^{0.23}}\\\\\n \\phi(x) & = 0.18175e^{-3.19980x} + 0.50986e^{-0.94229x} + 0.28022e^{-0.40290x} + 0.02817e^{-0.20162x}\\\\ \\end{align*} \\]\nwhere *e* is the electron charge, \\(\\epsilon_0\\) is the electrical\npermittivity of vacuum, and \\(Z_i\\) and \\(Z_j\\) are the nuclear\ncharges of the\ntwo atoms. The switching function \\(S(r)\\) is identical to that used by\n[pair_style lj/gromacs ](https://docs.lammps.org/pair_gromacs.html). Here, the inner and outer\ncutoff are the same for all pairs of atom types.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the LAMMPS data file.\n\n* \\(Z_i\\) (atomic number for first atom type, e.g. 13.0 for aluminum)\n\n* \\(Z_j\\) (ditto for second atom type)\n\nThe values of \\(Z_i\\) and \\(Z_j\\) are normally equal to the atomic\nnumbers of the two atom types. Thus, the user may optionally\nspecify only the coefficients for each \\(i==i\\) pair, and rely\non the obvious mixing rule for cross interactions (see below).\nNote that when \\(i==i\\) it is required that \\(Z_i == Z_j\\).\nWhen used with [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) and pairs are\nassigned\nto more than one sub-style, the mixing rule is not used and\neach pair of types interacting with the ZBL sub-style must\nbe included in a pair_coeff command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The numerical values of the exponential decay constants in the\n > screening function depend on the unit of distance. In the above\n > equation they are given for units of Angstroms. LAMMPS will\n > automatically convert these values to the distance unit of the\n > specified LAMMPS [units ](https://docs.lammps.org/units.html) setting. The values of Z should\n > always be given as multiples of a proton's charge, e.g. 29.0 for\n > copper. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs *i,j* and \\(i \\neq i\\), the \\(Z_i\\) and\n\\(Z_j\\) coefficients\ncan be mixed by taking \\(Z_i\\) and \\(Z_j\\) from the values\nspecified for\n\\(i == i\\) and \\(j == j\\) cases. When used\nwith [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) and pairs are assigned\nto more than one sub-style, the mixing rule is not used and\neach pair of types interacting with the ZBL sub-style\nmust be included in a pair_coeff command.\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix option has no effect on\nthe mixing behavior\n\nThe ZBL pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the ZBL interaction is already smoothed to 0.0 at\nthe cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since there are no corrections for a potential that goes to\n0.0 at the cutoff.\n\nThis pair style does not write information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands must be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ziegler)** J.F. Ziegler, J. P. Biersack and U. Littmark, \"The\nStopping and Range of Ions in Matter\", Volume 1, Pergamon, 1985. \n ", - "restrictions": " none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* equilibrium_start = name of the AtC sub-command\n* exponential or step or no_filter = select type of filter \n", + "examples": "\n```lmps\nfix_modify AtC equilibrium_start on\n```\n", + "html_filename": "atc_equilibrium_start.html", + "short_description": "Starts filtered calculations assuming they start in equilibrium,\ni.e", + "description": "Starts filtered calculations assuming they start in equilibrium,\ni.e. perfect finite element force balance.\n", + "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n" }, { "command": [ - "pair_style dpd/coul/slater/long", - "pair_style dpd/coul/slater/long/gpu" + "fix bond/swap" ], "syntax": [ - "pair_style dpd/coul/slater/long T cutoff_DPD seed lambda cutoff_coul" + "fix ID group-ID bond/swap Nevery fraction cutoff seed" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "dpd/coul/slater/long", - "type": 3, - "choices": [ - "dpd/coul/slater/long", - "dpd/coul/slater/long/gpu" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "T", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cutoff_DPD", + "arg": "bond/swap", + "type": 1, + "choices": [] + }, + { + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "fraction", "type": 2, "choices": [] }, { - "arg": "lambda", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "cutoff_coul", + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* T = temperature (temperature units)\n* cutoff_DPD = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer)\n* lambda = decay length of the charge (distance units)\n* cutoff_coul = global cutoff for Coulombic interactions (distance units) \n", - "examples": "\n```lmps\npair_style dpd/coul/slater/long 1.0 2.5 34387 0.25 3.0\n\npair_coeff 1 1 78.0 4.5 # not charged by default\npair_coeff 2 2 78.0 4.5 yes\n```\n", - "html_filename": "pair_dpd_coul_slater_long.html", - "short_description": "\nStyle *dpd/coul/slater/long* computes a force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot5**", - "description": "\nStyle *dpd/coul/slater/long* computes a force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot5**. It also allows for the use of charged particles in the\nmodel by adding a long-range Coulombic term to the DPD interactions.\nThe short-range portion of the Coulombics is calculated by this pair\nstyle. The long-range Coulombics are computed by use of the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command, e.g. using the Ewald or\nPPPM styles.\n\nCoulombic forces in mesoscopic models such as DPD employ potentials\nwithout explicit excluded-volume interactions. The goal is to prevent\nartificial ionic pair formation by including a charge distribution in\nthe Coulomb potential, following the formulation in **Melchor1**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This pair style is effectively the combination of the\n > [pair_style dpd ](https://docs.lammps.org/pair_dpd.html) and [pair_style > coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) commands, but should be more\n > efficient (especially on GPUs) than using [pair_style > hybrid/overlay dpd coul/slater/long ](https://docs.lammps.org/pair_hybrid.html). That is\n > particularly true for the GPU package version of the pair style since\n > this version is compatible with computing neighbor lists on the GPU\n > instead of the CPU as is required for hybrid styles. \n > \n\nIn the charged DPD model, the force on bead I due to bead J is given\nas a sum of 4 terms:\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R + F^E) \\hat{r_{ij}} \\\\\n F^C = & A w(r) \\qquad \\qquad \\qquad \\qquad \\qquad r < r_{DPD} \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\qquad \\qquad r < r_{DPD} \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\qquad \\qquad \\qquad r < r_{DPD} \\\\\n w(r) = & 1 - \\frac{r}{r_{DPD}} \\\\\n F^E = & \\frac{C q_iq_j}{\\epsilon r^2} \\left( 1- exp\\left( \\frac{2r_{ij}}{\\lambda} \\right) \\left( 1 + \\frac{2r_{ij}}{\\lambda} \\left( 1 + \\frac{r_{ij}}{\\lambda} \\right)\\right) \\right) \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a\ndissipative force, \\(F^R\\) is a random force, and \\(F^E\\) is\nan electrostatic force. \\(\\hat{r_{ij}}\\) is a unit vector in the\ndirection \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is the vector\ndifference in velocities of the two atoms \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1.\n\n\\(\\sigma\\) is set equal to \\(\\sqrt{2 k_B T \\gamma}\\), where\n\\(k_B\\) is the Boltzmann constant and *T* is the temperature\nparameter in the pair_style command.\n\n\\(r_{DPD}\\) is the pairwise cutoff for the first 3 DPD terms in\nthe formula as specified by *cutoff_DPD*. For the \\(F^E\\) term,\npairwise interactions within the specified *cutoff_coul* distance are\ncomputed directly; interactions beyond that distance are computed in\nreciprocal space. *C* is the same Coulomb conversion factor used in\nthe Coulombic formulas described on the [pair_coul ](https://docs.lammps.org/pair_coul.html)\ndoc page.\n\nThe following parameters must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* is_charged (optional boolean, default = no)\n\nThe *is_charged* parameter is optional and can be specified as *yes* or\n*no*. *Yes* should be used for interactions between two types of\ncharged particles. *No* is the default and should be used for\ninteractions between two types of particles when one or both are\nuncharged.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file. Note that the\nuser-specified random number seed is stored in the restart file, so\nwhen a simulation is restarted, each processor will re-initialize its\nrandom number generator the same way it did initially. This means the\nrandom forces will be random, but will not be the same as they would\nhave been if the original simulation had continued past the restart\ntime.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Groot5)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Melchor1)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \n ", - "restrictions": "This style is part of the DPD-BASIC package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent since particles move rapidly and can overlap by large\namounts. If this setting yields a non-zero number of \"dangerous\"\nreneighborings (printed at the end of a simulation), you should\nexperiment with forcing reneighboring more often and see if system\nenergies/trajectories change.\n\nThis pair style requires use of the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThis pair style also requires use of a long-range solvers from the\nKSPACE package.\n\nThis pair style will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", - "related": "[pair_style dpd ](https://docs.lammps.org/pair_dpd.html), [pair_style coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html),\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bond/swap = style name of this fix command\n* Nevery = attempt bond swapping every this many steps\n* fraction = fraction of group atoms to consider for swapping\n* cutoff = distance at which swapping will be considered (distance units)\n* seed = random # seed (positive integer) \n", + "examples": "\n```lmps\nfix 1 all bond/swap 50 0.5 1.3 598934\n```\n", + "html_filename": "fix_bond_swap.html", + "short_description": "In a simulation of polymer chains this command attempts to swap a pair\nof bonds, as illustrated below", + "description": "In a simulation of polymer chains this command attempts to swap a pair\nof bonds, as illustrated below. This is done via Monte Carlo rules\nusing the Boltzmann acceptance criterion, typically with the goal of\nequilibrating the polymer system more quickly. This fix is designed\nfor use with idealized bead-spring polymer chains where each polymer\nis a linear chain of monomers, but LAMMPS does not check that is the\ncase for your system.\n\nHere are two use cases for this fix.\n\nThe first use case is for swapping bonds on two different chains,\neffectively grafting the end of one chain onto the other chain and\nvice versa. The purpose is to equilibrate the polymer chain\nconformations more rapidly than dynamics alone would do it, by\nenabling instantaneous large conformational changes in a dense polymer\nmelt. The polymer chains should thus more rapidly converge to the\nproper end-to-end distances and radii of gyration.\n\nA schematic of the kinds of bond swaps that can occur in this use case\nis shown here:\n\n ![Image](JPG/bondswap.jpg) \n\nOn the left, the red and blue chains have two monomers A1 and B1 close\nto each other, which are currently bonded to monomers A2 and B2\nrespectively within their own chains. The bond swap operation will\nattempt to delete the A1-A2 and B1-B2 bonds and replace them with\nA1-B2 and B1-A2 bonds. If the swap is energetically favorable, the\ntwo chains on the right are the result and each polymer chain has\nundergone a dramatic conformational change. This reference,\n**Sides** provides more details on the algorithm's\neffectiveness for this use case.\n\nThe second use case is a collection of polymer chains with some\nfraction of their sites identified as \"sticker\" sites. Initially each\npolymer chain is isolated from the others in a topological sense, and\nthere is an intra-chain bond between every pair of sticker sites on\nthe same chain. Over time, bonds swap so that inter-molecular sticker\nbonds are created. This models a vitrification-style process whereby\nthe polymer chains all become interconnected. For this use case, if\nangles are defined they should not include bonds between sticker\nsites.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the sticker site model, you should set the newton flag for\n > bonds to \"off\", via the [newton on off](https://docs.lammps.org/newton.html) command (\"on\"\n > is the default for the 2nd argument). This is to ensure\n > appropriate randomness in bond selection because the I,J bond will\n > be stored by both atom I and atom J. LAMMPS cannot check for this,\n > because it is not aware that a sticker site model is being used. \n > \n\n----------\n\nThe bond swapping operation is invoked once every *Nevery* timesteps.\nIf any bond in the entire system is swapped, a re-build of the\nneighbor lists is triggered, since a swap alters the list of which\nneighbors are considered for pairwise interaction. At each\ninvocation, each processor considers a random specified *fraction* of\nits atoms as potential swapping monomers for this timestep. Choosing\na small *fraction* value can reduce the likelihood of a reverse swap\noccurring soon after an initial swap.\n\nFor each monomer A1, its neighbors are looped over as B1 monomers.\nFor each A1,B1 an additional double loop of bond partners A2 of A1,\nand bond partners B2 of B1 a is performed. For each pair of A1-A2 and\nB1-B2 bonds to be eligible for swapping, the following 4 criteria must\nbe met:\n\n1. All 4 monomers must be in the fix group.\n\n2. All 4 monomers must be owned by the processor (not ghost atoms).\n This ensures that another processor does not attempt to swap bonds\n involving the same atoms on the same timestep. Note that this also\n means that bond pairs which straddle processor boundaries are not\n eligible for swapping on this step.\n\n3. The distances between 4 pairs of atoms -- (A1,A2), (B1,B2), (A1,B2),\n (B1,A2) -- must all be less than the specified *cutoff*.\n\n4. The molecule IDs of A1 and B1 must be the same (see below).\n\nIf an eligible B1 partner is found, the energy change due to swapping\nthe 2 bonds is computed. This includes changes in pairwise, bond, and\nangle energies due to the altered connectivity of the 2 chains.\nDihedral and improper interactions are not allowed to be defined when\nthis fix is used.\n\nIf the energy decreases due to the swap operation, the bond swap is\naccepted. If the energy increases it is accepted with probability\nexp(-delta/kT) where delta is the increase in energy, k is the\nBoltzmann constant, and T is the current temperature of the system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Whether the swap is accepted or rejected, no other swaps are\n > attempted by this processor on this timestep. No other eligible\n > 4-tuples of atoms are considered. This means that each processor\n > will perform either a single swap or none on timesteps this fix is\n > invoked. \n > \n\n----------\n\nThe criterion for matching molecule IDs is how the first use case\ndescribed above can be simulated while conserving chain lengths. This\nis done by setting up the molecule IDs for the polymer chains in a\nspecific way, typically in the data file, read by the [read_data](https://docs.lammps.org/read_data.html) command.\n\nConsider a system of 6-mer chains. You have 2 choices. If the\nmolecule IDs for monomers on each chain are set to 1,2,3,4,5,6 then\nswaps will conserve chain length. For a particular monomer there will\nbe only one other monomer on another chain which is a potential swap\npartner. If the molecule IDs for monomers on each chain are set to\n1,2,3,3,2,1 then swaps will conserve chain length but swaps will be\nable to occur at either end of a chain. Thus for a particular monomer\nthere will be 2 possible swap partners on another chain. In this\nscenario, swaps can also occur within a single chain, i.e. the two\nends of a chain swap with each other.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your simulation uses molecule IDs in the usual way, where all\n > monomers on a single chain are assigned the same ID (different for\n > each chain), then swaps will only occur within the same chain. If you\n > assign the same molecule ID to all monomers in all chains then\n > inter-chain swaps will occur, but they will not conserve chain length.\n > Neither of these scenarios is probably what you want for this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a bond swap occurs the image flags of monomers in the new\n > polymer chains can become inconsistent. See the [dump ](https://docs.lammps.org/dump.html)\n > command for a discussion of image flags. This is not an issue for\n > running dynamics, but can affect calculation of some diagnostic\n > quantities or the printing of unwrapped coordinates to a dump file. \n > \n\nFor the second use case described above, the molecule IDs for all\nsticker sites should be the same.\n\n----------\n\nThis fix computes a temperature each time it is invoked for use by the\nBoltzmann criterion. To do this, the fix creates its own compute of\nstyle *temp*, as if this command had been issued:\n\n```lmps\ncompute fix-ID_temp all temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID with underscore + \"temp\"\nappended and the group for the new compute is \"all\", so that the\ntemperature of the entire system is used.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix, where the simulation continues on the same as if no restart\nhad taken place. However, in a statistical sense, a restarted\nsimulation should produce the same behavior. Also note that each\nprocessor generates possible swaps independently of other processors.\nThus if you repeat the same simulation on a different number of\nprocessors, the specific swaps performed will be different.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used to compute the temperature for\nthe Boltzmann criterion.\n\nThis fix computes two statistical quantities as a global 2-vector of\noutput, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first component of the vector is the cumulative\nnumber of swaps performed by all processors. The second component of\nthe vector is the cumulative number of swaps attempted (whether\naccepted or rejected). Note that a swap \"attempt\" only occurs when\nswap partners meeting the criteria described above are found on a\nparticular timestep. The vector values calculated by this fix are\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Sides)** Sides, Grest, Stevens, Plimpton, J Polymer Science B, 42,\n199-208 (2004). \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe settings of the \"special_bond\" command must be 0,1,1 in order to\nuse this fix, which is typical of bead-spring chains with FENE or\nharmonic bonds. This means that pairwise interactions between bonded\natoms are turned off, but are turned on between atoms two or three\nhops away along the chain backbone.\n\nCurrently, energy changes in dihedral and improper interactions due to\na bond swap are not considered. Thus a simulation that uses this fix\ncannot use a dihedral or improper potential.\n", + "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)\n" }, { "command": [ - "pair_style granular" + "compute plasticity/atom" ], "syntax": [ - "pair_style granular cutoff" + "compute ID group-ID plasticity/atom" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "granular", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "plasticity/atom", + "type": 1, + "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (optional). See discussion below. \n", - "examples": "\n```lmps\npair_style granular\npair_coeff * * hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping mass_velocity\n\npair_style granular\npair_coeff * * hooke 1000.0 50.0 tangential linear_history 500.0 1.0 0.4 damping mass_velocity\n\npair_style granular\npair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 limit_damping\n\npair_style granular\npair_coeff * * hertz/material 1e8 0.3 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji\n\npair_style granular\npair_coeff 1 * jkr 1000.0 500.0 0.3 10 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall\npair_coeff 2 2 hertz 200.0 100.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall\n\npair_style granular\npair_coeff 1 1 dmt 1000.0 50.0 0.3 0.0 tangential mindlin NULL 0.5 0.5 rolling sds 500.0 200.0 0.5 twisting marshall\npair_coeff 2 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin NULL 0.5 0.1 rolling sds 500.0 200.0 0.1 twisting marshall\n\npair_style granular\npair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 heat area 0.1\n```\n", - "html_filename": "pair_granular.html", - "short_description": "The *granular* styles support a variety of options for the normal,\ntangential, rolling and twisting forces resulting from contact between\ntwo granular particles", - "description": "The *granular* styles support a variety of options for the normal,\ntangential, rolling and twisting forces resulting from contact between\ntwo granular particles. This expands on the options offered by the\n[pair gran/\\* ](https://docs.lammps.org/pair_gran.html) pair styles. The total computed forces\nand torques are the sum of various models selected for the normal,\ntangential, rolling and twisting modes of motion.\n\nAll model choices and parameters are entered in the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, as described below. Unlike\ne.g. [pair gran/hooke ](https://docs.lammps.org/pair_gran.html), coefficient values are not\nglobal, but can be set to different values for different combinations\nof particle types, as determined by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand. If the contact model choice is the same for two particle\ntypes, the mixing for the cross-coefficients can be carried out\nautomatically. This is shown in the last example, where model\nchoices are the same for type 1 - type 1 as for type 2 - type2\ninteractions, but coefficients are different. In this case, the\nmixed coefficients for type 1 - type 2 interactions can be determined from\nmixing rules discussed below. For additional flexibility,\ncoefficients as well as model forms can vary between particle types,\nas shown in the fourth example: type 1 - type 1 interactions are based\non a Johnson-Kendall-Roberts normal contact model and 2-2 interactions\nare based on a DMT cohesive model (see below). In that example, 1-1\nand 2-2 interactions have different model forms, in which case mixing of\ncoefficients cannot be determined, so 1-2 interactions must be\nexplicitly defined via the *pair_coeff 1 \\** command, otherwise an\nerror would result.\n\n----------\n\nThe first required keyword for the *pair_coeff* command is the normal\ncontact model. Currently supported options for normal contact models\nand their required arguments are:\n\n1. *hooke* : \\(k_n\\), \\(\\eta_{n0}\\) (or \\(e\\))\n2. *hertz* : \\(k_n\\), \\(\\eta_{n0}\\) (or \\(e\\))\n3. *hertz/material* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\)\n4. *dmt* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\), \\(\\gamma\\)\n5. *jkr* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\), \\(\\gamma\\)\n\nHere, \\(k_n\\) is spring stiffness (with units that depend on model\nchoice, see below); \\(\\eta_{n0}\\) is a damping prefactor (or, in its\nplace a coefficient of restitution \\(e\\), depending on the choice of\ndamping mode, see below); E is Young's modulus in units of\n*force* /\\ *length* \\^2, i.e. *pressure* ; \\(\\nu\\) is Poisson's ratio and\n\\(\\gamma\\) is a surface energy density, in units of\n*energy* /\\ *length* \\^2.\n\nFor the *hooke* model, the normal, elastic component of force acting\non particle *i* due to contact with particle *j* is given by:\n\\[\n \\mathbf{F}_{ne, Hooke} = k_n \\delta_{ij} \\mathbf{n}\\]\nWhere \\(\\delta_{ij} = R_i + R_j - \\|\\mathbf{r}_{ij}\\|\\) is the particle\noverlap, \\(R_i, R_j\\) are the particle radii, \\(\\mathbf{r}_{ij} = \\mathbf{r}_i - \\mathbf{r}_j\\) is the vector separating the two\nparticle centers (note the i-j ordering so that \\(\\mathbf{F}_{ne}\\) is\npositive for repulsion), and \\(\\mathbf{n} = \\frac{\\mathbf{r}_{ij}}{\\|\\mathbf{r}_{ij}\\|}\\). Therefore,\nfor *hooke*, the units of the spring constant \\(k_n\\) are\n*force* /\\ *distance*, or equivalently *mass* /*time\\^2*.\n\nFor the *hertz* model, the normal component of force is given by:\n\\[\n \\mathbf{F}_{ne, Hertz} = k_n R_{eff}^{1/2}\\delta_{ij}^{3/2} \\mathbf{n}\\]\nHere, \\(R_{eff} = R = \\frac{R_i R_j}{R_i + R_j}\\) is the effective\nradius, denoted for simplicity as *R* from here on. For *hertz*, the\nunits of the spring constant \\(k_n\\) are *force* /\\ *length* \\^2, or\nequivalently *pressure* .\n\nFor the *hertz/material* model, the force is given by:\n\\[\n \\mathbf{F}_{ne, Hertz/material} = \\frac{4}{3} E_{eff} R^{1/2}\\delta_{ij}^{3/2} \\mathbf{n}\\]\nHere, \\(E_{eff} = E = \\left(\\frac{1-\\nu_i^2}{E_i} + \\frac{1-\\nu_j^2}{E_j}\\right)^{-1}\\)\nis the effective Young's modulus, with \\(\\nu_i, \\nu_j\\) the Poisson ratios\nof the particles of types *i* and *j*. \\(E_{eff}\\) is denoted as *E* from here on.\nNote that if the elastic modulus and the shear modulus of the two particles are the\nsame, the *hertz/material* model is equivalent to the *hertz* model with\n\\(k_n = 4/3 E\\)\n\nThe *dmt* model corresponds to the\n**DMT1975** cohesive model, where the force\nis simply Hertz with an additional attractive cohesion term:\n\\[\n \\mathbf{F}_{ne, dmt} = \\left(\\frac{4}{3} E R^{1/2}\\delta_{ij}^{3/2} - 4\\pi\\gamma R\\right)\\mathbf{n}\\]\nThe *jkr* model is the **JKR1971** model,\nwhere the force is computed as:\n\\[\n \\mathbf{F}_{ne, jkr} = \\left(\\frac{4Ea^3}{3R} - 2\\pi a^2\\sqrt{\\frac{4\\gamma E}{\\pi a}}\\right)\\mathbf{n}\\]\nHere, \\(a\\) is the radius of the contact zone, related to the overlap\n\\(\\delta\\) according to:\n\\[\n \\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\]\nLAMMPS internally inverts the equation above to solve for *a* in terms\nof \\(\\delta\\), then solves for the force in the previous\nequation. Additionally, note that the JKR model allows for a tensile\nforce beyond contact (i.e. for \\(\\delta < 0\\)), up to a maximum of\n\\(3\\pi\\gamma R\\) (also known as the 'pull-off' force). Note that this\nis a hysteretic effect, where particles that are not contacting\ninitially will not experience force until they come into contact\n\\(\\delta \\geq 0\\); as they move apart and (\\(\\delta < 0\\)), they\nexperience a tensile force up to \\(3\\pi\\gamma R\\), at which point they\nlose contact.\n\n----------\n\nIn addition, the normal force is augmented by a damping term of the\nfollowing general form:\n\\[\n \\mathbf{F}_{n,damp} = -\\eta_n \\mathbf{v}_{n,rel}\\]\nHere, \\(\\mathbf{v}_{n,rel} = (\\mathbf{v}_j - \\mathbf{v}_i) \\cdot \\mathbf{n}\\ \\mathbf{n}\\) is the component of relative velocity along\n\\(\\mathbf{n}\\).\n\nThe optional *damping* keyword to the *pair_coeff* command followed by\na keyword determines the model form of the damping factor \\(\\eta_n\\),\nand the interpretation of the \\(\\eta_{n0}\\) or \\(e\\) coefficients\nspecified as part of the normal contact model settings. The *damping*\nkeyword and corresponding model form selection may be appended\nanywhere in the *pair coeff* command. Note that the choice of damping\nmodel affects both the normal and tangential damping (and depending on\nother settings, potentially also the twisting damping). The options\nfor the damping model currently supported are:\n\n1. *velocity*\n2. *mass_velocity*\n3. *viscoelastic*\n4. *tsuji*\n5. *coeff_restitution*\n\nIf the *damping* keyword is not specified, the *viscoelastic* model is\nused by default.\n\nFor *damping velocity*, the normal damping is simply equal to the\nuser-specified damping coefficient in the *normal* model:\n\\[\n \\eta_n = \\eta_{n0}\\]\nHere, \\(\\eta_{n0}\\) is the damping coefficient specified for the normal\ncontact model, in units of *mass* /\\ *time* .\n\nFor *damping mass_velocity*, the normal damping is given by:\n\\[\n \\eta_n = \\eta_{n0} m_{eff}\\]\nHere, \\(\\eta_{n0}\\) is the damping coefficient specified for the normal\ncontact model, in units of 1/\\ *time* and\n\\(m_{eff} = m_i m_j/(m_i + m_j)\\) is the effective mass.\nUse *damping mass_velocity* to reproduce the damping behavior of\n*pair gran/hooke/\\**.\n\nThe *damping viscoelastic* model is based on the viscoelastic\ntreatment of **Brill1996**, where the normal\ndamping is given by:\n\\[\n \\eta_n = \\eta_{n0}\\ a m_{eff}\\]\nHere, *a* is the contact radius, given by \\(a =\\sqrt{R\\delta}\\)\nfor all models except *jkr*, for which it is given implicitly according\nto \\(\\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\). For *damping viscoelastic*,\n\\(\\eta_{n0}\\) is in units of 1/(\\ *time* \\*\\ *distance* ).\n\nThe *tsuji* model is based on the work of **Tsuji1992**.\nHere, the damping coefficient specified as part of the normal model is interpreted\nas a restitution coefficient \\(e\\). The damping constant \\(\\eta_n\\) is\ngiven by:\n\\[\n \\eta_n = \\alpha (m_{eff}k_n)^{1/2}\\]\nFor normal contact models based on material parameters, \\(k_n = 4/3Ea\\). This\ndamping model is not compatible with cohesive normal models such as *JKR* or *DMT*.\nThe parameter \\(\\alpha\\) is related to the restitution coefficient *e*\naccording to:\n\\[\n \\alpha = 1.2728-4.2783e+11.087e^2-22.348e^3+27.467e^4-18.022e^5+4.8218e^6\\]\nThe dimensionless coefficient of restitution \\(e\\) specified as part\nof the normal contact model parameters should be between 0 and 1, but\nno error check is performed on this.\n\nThe *coeff_restitution* model is useful when a specific normal coefficient of\nrestitution \\(e\\) is required. In these models, the normal coefficient of\nrestitution \\(e\\) is specified as an input. Following the approach of\n**Brill1996**, when using the *hooke* normal model,\n*coeff_restitution* calculates the damping coefficient as:\n\\[\n \\eta_n = \\sqrt{\\frac{4m_{eff}k_n}{1+\\left( \\frac{\\pi}{\\log(e)}\\right)^2}} ,\\]\nFor any other normal model, e.g. the *hertz* and *hertz/material* models, the damping\ncoefficient is:\n\\[\n \\eta_n = -2\\sqrt{\\frac{5}{6}}\\frac{\\log(e)}{\\sqrt{\\pi^2+(\\log(e))^2}}(R_{eff} \\delta_{ij})^{\\frac{1}{4}}\\sqrt{\\frac{3}{2}k_n m_{eff}} ,\\]\nwhere \\(k_n = \\frac{4}{3} E_{eff}\\) for the *hertz/material* model. Since\n*coeff_restitution* accounts for the effective mass, effective radius, and\npairwise overlaps (except when used with the *hooke* normal model) when calculating\nthe damping coefficient, it accurately reproduces the specified coefficient of\nrestitution for both monodisperse and polydisperse particle pairs. This damping\nmodel is not compatible with cohesive normal models such as *JKR* or *DMT*.\n\nThe total normal force is computed as the sum of the elastic and\ndamping components:\n\\[\n \\mathbf{F}_n = \\mathbf{F}_{ne} + \\mathbf{F}_{n,damp}\\]\n----------\n\nThe *pair_coeff* command also requires specification of the tangential\ncontact model. The required keyword *tangential* is expected, followed\nby the model choice and associated parameters. Currently supported\ntangential model choices and their expected parameters are as follows:\n\n1. *linear_nohistory* : \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n2. *linear_history* : \\(k_t\\), \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n3. *mindlin* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n4. *mindlin/force* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n5. *mindlin_rescale* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n6. *mindlin_rescale/force* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n\nHere, \\(x_{\\gamma,t}\\) is a dimensionless multiplier for the normal\ndamping \\(\\eta_n\\) that determines the magnitude of the tangential\ndamping, \\(\\mu_t\\) is the tangential (or sliding) friction\ncoefficient, and \\(k_t\\) is the tangential stiffness coefficient.\n\nFor *tangential linear_nohistory*, a simple velocity-dependent Coulomb\nfriction criterion is used, which mimics the behavior of the *pair\ngran/hooke* style. The tangential force \\(\\mathbf{F}_t\\) is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|\\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nThe tangential damping force \\(\\mathbf{F}_\\mathrm{t,damp}\\) is given by:\n\\[\n \\mathbf{F}_\\mathrm{t,damp} = -\\eta_t \\mathbf{v}_{t,rel}\\]\nThe tangential damping prefactor \\(\\eta_t\\) is calculated by scaling\nthe normal damping \\(\\eta_n\\) (see above):\n\\[\n \\eta_t = -x_{\\gamma,t} \\eta_n\\]\nThe normal damping prefactor \\(\\eta_n\\) is determined by the choice\nof the *damping* keyword, as discussed above. Thus, the *damping*\nkeyword also affects the tangential damping. The parameter\n\\(x_{\\gamma,t}\\) is a scaling coefficient. Several works in the\nliterature use \\(x_{\\gamma,t} = 1\\) (**Marshall2009**,\n**Tsuji1992**, **Silbert2001**). The relative\ntangential velocity at the point of contact is given by\n\\(\\mathbf{v}_{t, rel} = \\mathbf{v}_{t} - (R_i\\boldsymbol{\\Omega}_i + R_j\\boldsymbol{\\Omega}_j) \\times \\mathbf{n}\\), where \\(\\mathbf{v}_{t} = \\mathbf{v}_r - \\mathbf{v}_r\\cdot\\mathbf{n}\\ \\mathbf{n}\\),\n\\(\\mathbf{v}_r = \\mathbf{v}_j - \\mathbf{v}_i\\) .\nThe direction of the applied force is \\(\\mathbf{t} = \\mathbf{v_{t,rel}}/\\|\\mathbf{v_{t,rel}}\\|\\) .\n\nThe normal force value \\(F_{n0}\\) used to compute the critical force\ndepends on the form of the contact model. For non-cohesive models\n(\\ *hertz*, *hertz/material*, *hooke* ), it is given by the magnitude of\nthe normal force:\n\\[\n F_{n0} = \\|\\mathbf{F}_n\\|\\]\nFor cohesive models such as *jkr* and *dmt*, the critical force is\nadjusted so that the critical tangential force approaches \\(\\mu_t F_{pulloff}\\), see **Marshall2009**, equation 43, and\n**Thornton1991**. For both models, \\(F_{n0}\\) takes the\nform:\n\\[\n F_{n0} = \\|\\mathbf{F}_{ne} + 2 F_{pulloff}\\|\\]\nWhere \\(F_{pulloff} = 3\\pi \\gamma R\\) for *jkr*, and\n\\(F_{pulloff} = 4\\pi \\gamma R\\) for *dmt* .\n\nThe remaining tangential options all use accumulated tangential\ndisplacement (i.e. contact history), except for the options\n*mindlin/force* and *mindlin_rescale/force*, that use accumulated\ntangential force instead, and are discussed further below.\nThe accumulated tangential displacement is discussed in details below\nin the context of the *linear_history* option. The same treatment of\nthe accumulated displacement applies to the other options as well.\n\nFor *tangential linear_history*, the tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|-k_t\\mathbf{\\xi} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nHere, \\(\\mathbf{\\xi}\\) is the tangential displacement accumulated\nduring the entire duration of the contact:\n\\[\n \\mathbf{\\xi} = \\int_{t0}^t \\mathbf{v}_{t,rel}(\\tau) \\mathrm{d}\\tau\\]\nThis accumulated tangential displacement must be adjusted to account\nfor changes in the frame of reference of the contacting pair of\nparticles during contact. This occurs due to the overall motion of the\ncontacting particles in a rigid-body-like fashion during the duration\nof the contact. There are two modes of motion that are relevant: the\n'tumbling' rotation of the contacting pair, which changes the\norientation of the plane in which tangential displacement occurs; and\n'spinning' rotation of the contacting pair about the vector connecting\ntheir centers of mass (\\(\\mathbf{n}\\)). Corrections due to the\nformer mode of motion are made by rotating the accumulated\ndisplacement into the plane that is tangential to the contact vector\nat each step, or equivalently removing any component of the tangential\ndisplacement that lies along \\(\\mathbf{n}\\), and rescaling to\npreserve the magnitude. This follows the discussion in\n**Luding2008**, see equation 17 and relevant discussion in that\nwork:\n\\[\n \\mathbf{\\xi} = \\left(\\mathbf{\\xi'} - (\\mathbf{n} \\cdot \\mathbf{\\xi'})\\mathbf{n}\\right) \\frac{\\|\\mathbf{\\xi'}\\|}{\\|\\mathbf{\\xi'} - (\\mathbf{n}\\cdot\\mathbf{\\xi'})\\mathbf{n}\\|}\\]\nHere, \\(\\mathbf{\\xi'}\\) is the accumulated displacement prior to the\ncurrent time step and \\(\\mathbf{\\xi}\\) is the corrected\ndisplacement. Corrections to the displacement due to the second mode\nof motion described above (rotations about \\(\\mathbf{n}\\)) are not\ncurrently implemented, but are expected to be minor for most\nsimulations.\n\nFurthermore, when the tangential force exceeds the critical force, the\ntangential displacement is re-scaled to match the value for the\ncritical force (see **Luding2008**, equation 20 and related\ndiscussion):\n\\[\n \\mathbf{\\xi} = -\\frac{1}{k_t}\\left(\\mu_t F_{n0}\\mathbf{t} - \\mathbf{F}_{t,damp}\\right)\\]\nThe tangential force is added to the total normal force (elastic plus\ndamping) to produce the total force on the particle. The tangential\nforce also acts at the contact point (defined as the center of the\noverlap region) to induce a torque on each particle according to:\n\\[\n \\mathbf{\\tau}_i = -(R_i - 0.5 \\delta) \\mathbf{n} \\times \\mathbf{F}_t\\]\n\\[\n \\mathbf{\\tau}_j = -(R_j - 0.5 \\delta) \\mathbf{n} \\times \\mathbf{F}_t\\]\nFor *tangential mindlin*, the **Mindlin1949** no-slip solution\nis used which differs from the *linear_history* option by an additional factor\nof \\(a\\), the radius of the contact region. The tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|-k_t a \\mathbf{\\xi} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nHere, \\(a\\) is the radius of the contact region, given by \\(a =\\sqrt{R\\delta}\\)\nfor all normal contact models, except for *jkr*, where it is given\nimplicitly by \\(\\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\), see\ndiscussion above. To match the Mindlin solution, one should set\n\\(k_t = 8G_{eff}\\), where \\(G_{eff}\\) is the effective shear modulus given by:\n\\[\n G_{eff} = \\left(\\frac{2-\\nu_i}{G_i} + \\frac{2-\\nu_j}{G_j}\\right)^{-1}\\]\nwhere \\(G_i\\) is the shear modulus of a particle of type \\(i\\), related to Young's\nmodulus \\(E_i\\) and Poisson's ratio \\(\\nu_i\\) by \\(G_i = E_i/(2(1+\\nu_i))\\).\nThis can also be achieved by specifying *NULL* for \\(k_t\\), in which case a\nnormal contact model that specifies material parameters \\(E_i\\) and\n\\(\\nu_i\\) is required (e.g. *hertz/material*, *dmt* or *jkr* ). In this\ncase, mixing of the shear modulus for different particle types *i* and\n*j* is done according to the formula above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The radius of the contact region \\(a\\) depends on the normal overlap.\n > As a result, the tangential force for *mindlin* can change due to\n > a variation in normal overlap, even with no change in tangential displacement. \n > \n\nFor *tangential mindlin/force*, the accumulated elastic tangential force\ncharacterizes the contact history, instead of the accumulated tangential\ndisplacement. This prevents the dependence of the tangential force on the\nnormal overlap as noted above. The tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|\\mathbf{F}_{te} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nThe increment of the elastic component of the tangential force\n\\(\\mathbf{F}_{te}\\) is given by:\n\\[\n \\mathrm{d}\\mathbf{F}_{te} = -k_t a \\mathbf{v}_{t,rel} \\mathrm{d}\\tau\\]\nThe changes in frame of reference of the contacting pair of particles during\ncontact are accounted for by the same formula as above, replacing the\naccumulated tangential displacement \\(\\xi\\), by the accumulated tangential\nelastic force \\(F_{te}\\). When the tangential force exceeds the critical\nforce, the tangential force is directly re-scaled to match the value for\nthe critical force:\n\\[\n \\mathbf{F}_{te} = - \\mu_t F_{n0}\\mathbf{t} + \\mathbf{F}_{t,damp}\\]\nThe same rules as those described for *mindlin* apply regarding the tangential\nstiffness and mixing of the shear modulus for different particle types.\n\nThe *mindlin_rescale* option uses the same form as *mindlin*, but the\nmagnitude of the tangential displacement is re-scaled as the contact\nunloads, i.e. if \\(a < a_{t_{n-1}}\\):\n\\[\n \\mathbf{\\xi} = \\mathbf{\\xi_{t_{n-1}}} \\frac{a}{a_{t_{n-1}}}\\]\nHere, \\(t_{n-1}\\) indicates the value at the previous time\nstep. This rescaling accounts for the fact that a decrease in the\ncontact area upon unloading leads to the contact being unable to\nsupport the previous tangential loading, and spurious energy is\ncreated without the rescaling above (**WaltonPC** ).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For *mindlin*, a decrease in the tangential force already occurs as the\n > contact unloads, due to the dependence of the tangential force on the normal\n > force described above. By re-scaling \\(\\xi\\), *mindlin_rescale*\n > effectively re-scales the tangential force twice, i.e., proportionally to\n > \\(a^2\\). This peculiar behavior results from use of the accumulated\n > tangential displacement to characterize the contact history. Although\n > *mindlin_rescale* remains available for historic reasons and backward\n > compatibility purposes, it should be avoided in favor of *mindlin_rescale/force*. \n > \n\nThe *mindlin_rescale/force* option uses the same form as *mindlin/force*,\nbut the magnitude of the tangential elastic force is re-scaled as the contact\nunloads, i.e. if \\(a < a_{t_{n-1}}\\):\n\\[\n \\mathbf{F}_{te} = \\mathbf{F}_{te, t_{n-1}} \\frac{a}{a_{t_{n-1}}}\\]\nThis approach provides a better approximation of the **Mindlin1953**\nlaws and is more consistent than *mindlin_rescale*. See discussions in\n**Thornton2013**, particularly equation 18(b) of that\nwork and associated discussion, and **AgnolinRoux2007**,\nparticularly Appendix A.\n\n----------\n\nThe optional *rolling* keyword enables rolling friction, which resists\npure rolling motion of particles. The options currently supported are:\n\n1. *none*\n2. *sds* : \\(k_{roll}\\), \\(\\gamma_{roll}\\), \\(\\mu_{roll}\\)\n\nIf the *rolling* keyword is not specified, the model defaults to *none* .\n\nFor *rolling sds*, rolling friction is computed via a\nspring-dashpot-slider, using a 'pseudo-force' formulation, as detailed\nby **Luding2008**. Unlike the formulation in\n**Marshall2009**, this allows for the required adjustment of\nrolling displacement due to changes in the frame of reference of the\ncontacting pair. The rolling pseudo-force is computed analogously to\nthe tangential force:\n\\[\n \\mathbf{F}_{roll,0} = k_{roll} \\mathbf{\\xi}_{roll} - \\gamma_{roll} \\mathbf{v}_{roll}\\]\nHere, \\(\\mathbf{v}_{roll} = -R(\\boldsymbol{\\Omega}_i - \\boldsymbol{\\Omega}_j) \\times \\mathbf{n}\\) is the relative rolling\nvelocity, as given in **Wang2015** and\n**Luding2008**. This differs from the expressions given by **Kuhn2004** and used in **Marshall2009**; see **Wang2015** for details. The rolling displacement is given by:\n\\[\n \\mathbf{\\xi}_{roll} = \\int_{t_0}^t \\mathbf{v}_{roll} (\\tau) \\mathrm{d} \\tau\\]\nA Coulomb friction criterion truncates the rolling pseudo-force if it\nexceeds a critical value:\n\\[\n \\mathbf{F}_{roll} = \\min(\\mu_{roll} F_{n,0}, \\|\\mathbf{F}_{roll,0}\\|)\\mathbf{k}\\]\nHere, \\(\\mathbf{k} = \\mathbf{v}_{roll}/\\|\\mathbf{v}_{roll}\\|\\) is the direction of\nthe pseudo-force. As with tangential displacement, the rolling\ndisplacement is rescaled when the critical force is exceeded, so that\nthe spring length corresponds the critical force. Additionally, the\ndisplacement is adjusted to account for rotations of the frame of\nreference of the two contacting particles in a manner analogous to the\ntangential displacement.\n\nThe rolling pseudo-force does not contribute to the total force on\neither particle (hence 'pseudo'), but acts only to induce an equal and\nopposite torque on each particle, according to:\n\\[\n \\tau_{roll,i} = R \\mathbf{n} \\times \\mathbf{F}_{roll}\\]\n\\[\n \\tau_{roll,j} = -\\tau_{roll,i}\\]\n----------\n\nThe optional *twisting* keyword enables twisting friction, which\nresists rotation of two contacting particles about the vector\n\\(\\mathbf{n}\\) that connects their centers. The options currently\nsupported are:\n\n1. *none*\n2. *sds* : \\(k_{twist}\\), \\(\\gamma_{twist}\\), \\(\\mu_{twist}\\)\n3. *marshall*\n\nIf the *twisting* keyword is not specified, the model defaults to *none* .\n\nFor both *twisting sds* and *twisting marshall*, a history-dependent\nspring-dashpot-slider is used to compute the twisting torque. Because\ntwisting displacement is a scalar, there is no need to adjust for\nchanges in the frame of reference due to rotations of the particle\npair. The formulation in **Marshall2009** therefore provides\nthe most straightforward treatment:\n\\[\n \\tau_{twist,0} = -k_{twist}\\xi_{twist} - \\gamma_{twist}\\Omega_{twist}\\]\nHere \\(\\xi_{twist} = \\int_{t_0}^t \\Omega_{twist} (\\tau) \\mathrm{d}\\tau\\) is the twisting angular displacement, and\n\\(\\Omega_{twist} = (\\mathbf{\\Omega}_i - \\mathbf{\\Omega}_j) \\cdot \\mathbf{n}\\) is the relative twisting angular velocity. The torque\nis then truncated according to:\n\\[\n \\tau_{twist} = \\min(\\mu_{twist} F_{n,0}, \\tau_{twist,0})\\]\nSimilar to the sliding and rolling displacement, the angular\ndisplacement is rescaled so that it corresponds to the critical value\nif the twisting torque exceeds this critical value:\n\\[\n \\xi_{twist} = \\frac{1}{k_{twist}} (\\mu_{twist} F_{n,0}sgn(\\Omega_{twist}) - \\gamma_{twist}\\Omega_{twist})\\]\nFor *twisting sds*, the coefficients \\(k_{twist}, \\gamma_{twist}\\)\nand \\(\\mu_{twist}\\) are simply the user input parameters that follow\nthe *twisting sds* keywords in the *pair_coeff* command.\n\nFor *twisting_marshall*, the coefficients are expressed in terms of\nsliding friction coefficients, as discussed in\n**Marshall2009** (see equations 32 and 33 of that work):\n\\[\n k_{twist} = 0.5k_ta^2\\]\n\\[\n \\eta_{twist} = 0.5\\eta_ta^2\\]\n\\[\n \\mu_{twist} = \\frac{2}{3}a\\mu_t\\]\nFinally, the twisting torque on each particle is given by:\n\\[\n \\mathbf{\\tau}_{twist,i} = \\tau_{twist}\\mathbf{n}\\]\n\\[\n \\mathbf{\\tau}_{twist,j} = -\\mathbf{\\tau}_{twist,i}\\]\n----------\n\nIf two particles are moving away from each other while in contact, there\nis a possibility that the particles could experience an effective attractive\nforce due to damping. If the optional *limit_damping* keyword is used, this option\nwill zero out the normal component of the force if there is an effective\nattractive force. This keyword cannot be used with the JKR or DMT models.\n\n----------\n\nThe optional *heat* keyword enables heat conduction. The options currently\nsupported are:\n\n1. *none*\n2. *radius* : \\(k_{s}\\)\n3. *area* : \\(h_{s}\\)\n\nIf the *heat* keyword is not specified, the model defaults to *none*.\n\nFor *heat* *radius*, the heat\n\\(Q\\) conducted between two particles is given by\n\\[\n Q = 2 k_{s} a \\Delta T\\]\nwhere \\(\\Delta T\\) is the difference in the two particles' temperature,\n\\(k_{s}\\) is a non-negative numeric value for the conductivity (in units\nof power/(length*temperature)), and \\(a\\) is the radius of the contact and\ndepends on the normal force model. This is the model proposed by\n**VargasMcCarthy2001**.\n\nFor *heat* *area*, the heat\n\\(Q\\) conducted between two particles is given by\n\\[\n Q = h_{s} A \\Delta T\\]\nwhere \\(\\Delta T\\) is the difference in the two particles' temperature,\n\\(h_{s}\\) is a non-negative numeric value for the heat transfer\ncoefficient (in units of power/(area*temperature)), and \\(A=\\pi a^2\\) is\nthe area of the contact and depends on the normal force model.\n\nNote that the option *none* must either be used in all or none of of the\n*pair_coeff* calls. See [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) and\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) for more information on this\noption.\n\n----------\n\nThe *granular* pair style can reproduce the behavior of the\n*pair gran/\\** styles with the appropriate settings (some very\nminor differences can be expected due to corrections in\ndisplacement history frame-of-reference, and the application\nof the torque at the center of the contact rather than\nat each particle). The first example above\nis equivalent to *pair gran/hooke 1000.0 NULL 50.0 50.0 0.4 1*\\ .\nThe second example is equivalent to\n*pair gran/hooke/history 1000.0 500.0 50.0 50.0 0.4 1*\\ .\nThe third example is equivalent to\n*pair gran/hertz/history 1000.0 500.0 50.0 50.0 0.4 1 limit_damping*\\ .\n\n----------\n\nLAMMPS automatically sets pairwise cutoff values for *pair_style\ngranular* based on particle radii (and in the case of *jkr* pull-off\ndistances). In the vast majority of situations, this is adequate.\nHowever, a cutoff value can optionally be appended to the *pair_style\ngranular* command to specify a global cutoff (i.e. a cutoff for all\natom types). Additionally, the optional *cutoff* keyword can be passed\nto the *pair_coeff* command, followed by a cutoff value. This will\nset a pairwise cutoff for the atom types in the *pair_coeff* command.\nThese options may be useful in some rare cases where the automatic\ncutoff determination is not sufficient, e.g. if particle diameters\nare being modified via the *fix adapt* command. In that case, the\nglobal cutoff specified as part of the *pair_style granular* command\nis applied to all atom types, unless it is overridden for a given atom\ntype combination by the *cutoff* value specified in the *pair coeff*\ncommand. If *cutoff* is only specified in the *pair coeff* command\nand no global cutoff is appended to the *pair_style granular* command,\nthen LAMMPS will use that cutoff for the specified atom type\ncombination, and automatically set pairwise cutoffs for the remaining\natom types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for granular pair styles.\n\nMixing of coefficients is carried out using geometric averaging for\nmost quantities, e.g. if friction coefficient for type 1-type 1\ninteractions is set to \\(\\mu_1\\), and friction coefficient for type\n2-type 2 interactions is set to \\(\\mu_2\\), the friction coefficient\nfor type1-type2 interactions is computed as \\(\\sqrt{\\mu_1\\mu_2}\\)\n(unless explicitly specified to a different value by a *pair_coeff 1 2\n...* command). The exception to this is elastic modulus, only\napplicable to *hertz/material*, *dmt* and *jkr* normal contact\nmodels. In that case, the effective elastic modulus is computed as:\n\\[\n E_{eff,ij} = \\left(\\frac{1-\\nu_i^2}{E_i} + \\frac{1-\\nu_j^2}{E_j}\\right)^{-1}\\]\nIf the *i-j* coefficients \\(E_{ij}\\) and \\(\\nu_{ij}\\) are\nexplicitly specified, the effective modulus is computed as:\n\\[\n E_{eff,ij} = \\left(\\frac{1-\\nu_{ij}^2}{E_{ij}} + \\frac{1-\\nu_{ij}^2}{E_{ij}}\\right)^{-1}\\]\nor\n\\[\n E_{eff,ij} = \\frac{E_{ij}}{2(1-\\nu_{ij}^2)}\\]\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of these pair styles returns 0.0 for the energy\nof a pairwise interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe pairwise interaction force. However, the single() function also\ncalculates 13 extra pairwise quantities. The first 3 are the\ncomponents of the tangential force between particles I and J, acting\non particle I. The fourth is the magnitude of this tangential force.\nThe next 3 (5-7) are the components of the rolling torque acting on\nparticle I. The next entry (8) is the magnitude of the rolling torque.\nThe next entry (9) is the magnitude of the twisting torque acting\nabout the vector connecting the two particle centers.\nThe next 3 (10-12) are the components of the vector connecting\nthe centers of the two particles (x_I - x_J). The last quantity (13)\nis the heat flow between the two particles, set to 0 if no heat model\nis active.\n\nThese extra quantities can be accessed by the [compute pair/local ](https://docs.lammps.org/compute_pair_local.html) command, as *p1*, *p2*, ...,\n*p12* .\n\n----------\n\n**Derjaguin et al, 1975)** Derjaguin, B. V., Muller, V. M., & Toporov,\nY. P. (1975). Effect of contact deformations on the adhesion of\nparticles. Journal of Colloid and interface science, 53(2), 314-326. \n \n**(JKR1971)** Johnson, K. L., Kendall, K., & Roberts,\nA. D. (1971). Surface energy and the contact of elastic\nsolids. Proc. R. Soc. Lond. A, 324(1558), 301-313. \n \n**(Brill1996)** Brilliantov, N. V., Spahn, F., Hertzsch,\nJ. M., & Poschel, T. (1996). Model for collisions in granular\ngases. Physical review E, 53(5), 5382. \n \n**(Tsuji1992)** Tsuji, Y., Tanaka, T., & Ishida,\nT. (1992). Lagrangian numerical simulation of plug flow of\ncohesionless particles in a horizontal pipe. Powder technology, 71(3),\n239-250. \n \n**(Marshall2009)** Marshall, J. S. (2009). Discrete-element modeling\nof particulate aerosol flows. Journal of Computational Physics,\n228(5), 1541-1561. \n \n**(Tsuji1992)** Tsuji, Y., Tanaka, T., & Ishida,\nT. (1992). Lagrangian numerical simulation of plug flow of\ncohesionless particles in a horizontal pipe. Powder technology, 71(3),\n239-250. \n \n**(Silbert2001)** Silbert, L. E., Ertas, D., Grest, G. S., Halsey,\nT. C., Levine, D., & Plimpton, S. J. (2001). Granular flow down an\ninclined plane: Bagnold scaling and rheology. Physical Review E,\n64(5), 051302. \n \n**(Thornton1991)** Thornton, C. (1991). Interparticle sliding in the\npresence of adhesion. J. Phys. D: Appl. Phys. 24 1942 \n \n**(Luding2008)** Luding, S. (2008). Cohesive, frictional powders:\ncontact models for tension. Granular matter, 10(4), 235. \n \n**(Mindlin1949)** Mindlin, R. D. (1949). Compliance of elastic bodies\nin contact. J. Appl. Mech., ASME 16, 259-268. \n \n**(WaltonPC)** Walton, O.R., Personal Communication \n \n**(Mindlin1953)** Mindlin, R.D., & Deresiewicz, H (1953).\nElastic Spheres in Contact under Varying Oblique Force.\nJ. Appl. Mech., ASME 20, 327-344. \n \n**(Thornton2013)** Thornton, C., Cummins, S. J., & Cleary,\nP. W. (2013). An investigation of the comparative behavior of\nalternative contact force models during inelastic collisions. Powder\nTechnology, 233, 30-46. \n \n**(AgnolinRoux2007)** Agnolin, I. & Roux, J-N. (2007).\nInternal states of model isotropic granular packings.\nI. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. \n \n**(Wang2015)** Wang, Y., Alonso-Marroquin, F., & Guo,\nW. W. (2015). Rolling and sliding in 3-D discrete element\nmodels. Particuology, 23, 49-55. \n \n**(Kuhn2004)** Kuhn, M. R., & Bagi, K. (2004). Contact\nrolling and deformation in granular media. International journal of\nsolids and structures, 41(21), 5793-5820. \n \n**(VargasMcCarthy2001)** Vargas, W.L. and McCarthy, J.J. (2001).\nHeat conduction in granular materials.\nAIChE Journal, 47(5), 1052-1059. \n ", - "restrictions": "This pair style is part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires that atoms store per-particle radius,\ntorque, and angular velocity (omega) as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html).\n\nThis pair style requires you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html)\ncommand so that velocities are stored by ghost atoms.\n\nThis pair style will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though it should provide\nstatistically similar results. This is because the forces it\ncomputes depend on atom velocities and the atom velocities have\nbeen propagated half a timestep between the force computation and\nwhen the restart is written, due to using Velocity Verlet time\nintegration. See the [read_restart ](https://docs.lammps.org/read_restart.html) command\nfor more details.\n\nAccumulated values for individual contacts are saved to restart\nfiles but are not saved to data files. Therefore, forces may\ndiffer significantly when a system is reloaded using the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair gran/\\* ](https://docs.lammps.org/pair_gran.html)\n" + "parameters": "* ID, group-ID are documented in compute command\n* plasticity/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all plasticity/atom\n```\n", + "html_filename": "compute_plasticity_atom.html", + "short_description": "Define a computation that calculates the per-atom plasticity for each\natom in a group", + "description": "Define a computation that calculates the per-atom plasticity for each\natom in a group. This is a quantity relevant for\n[Peridynamics models ](https://docs.lammps.org/pair_peri.html).\nSee [this document ](https://docs.lammps.org/PDF/PDLammps_overview.pdf)\nfor an overview of LAMMPS commands for Peridynamics modeling.\n\nThe plasticity for a Peridynamic particle is the so-called consistency\nparameter (\\(\\lambda\\)). For elastic deformation, \\(\\lambda = 0\\),\notherwise \\(\\lambda > 0\\) for plastic deformation. For details, see\n:ref:[(Mitchell) ](https://docs.lammps.org/Mitchell>` and the PDF doc included in the LAMMPSdistribution in `doc/PDF/PDLammps_EPS.pdf ` is declared, an error will be issued.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/defgrad = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/defgrad\n```\n", + "html_filename": "compute_smd_tlsph_defgrad.html", + "short_description": "Define a computation that calculates the deformation gradient", + "description": "Define a computation that calculates the deformation gradient. It is\nonly meaningful for particles which interact according to the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute outputs a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-particle vector values will be given dimensionless. See\n[units ](https://docs.lammps.org/units.html). The per-particle vector has 10 entries. The first\nnine entries correspond to the xx, xy, xz, yx, yy, yz, zx, zy, zz\ncomponents of the asymmetric deformation gradient tensor. The tenth\nentry is the determinant of the deformation gradient.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. TThis compute can\nonly be used for particles which interact via the total Lagrangian SPH\npair style.\n", + "related": "[smd/hourglass/error ](https://docs.lammps.org/compute_smd_hourglass_error.html)\n" }, { "command": [ - "fix plumed" + "compute pressure/uef" ], "syntax": [ - "fix ID group-ID plumed keyword value ..." + "compute ID group-ID pressure/uef temp-ID keyword ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -11384,89 +10569,83 @@ export const command_docs = [ "choices": [] }, { - "arg": "plumed", + "arg": "pressure/uef", "type": 1, "choices": [] }, { - "arg": "outfile", + "arg": "temp-ID", + "type": 2, + "choices": [] + }, + { + "arg": "virial", "type": 3, "choices": [ - "plumedfile", - "outfile" + "ke", + "pair", + "bond", + "angle", + "dihedral", + "improper", + "kspace", + "fix", + "virial" ] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* plumed = style name of this fix command\n* keyword = plumedfile or outfile \n *        plumedfile arg = name of PLUMED input file to use (default: NULL) \n *        outfile arg = name of file on which to write the PLUMED log (default: NULL) \n", - "examples": "\n```lmps\nfix pl all plumed plumedfile plumed.dat outfile p.log\n```\n", - "html_filename": "fix_plumed.html", - "short_description": "This fix instructs LAMMPS to call the [PLUMED ](https://www.plumed.org/) library, which\nallows one to perform various forms of trajectory analysis on the fly\nand to also use methods such as umbrella sampling and metadynamics to\nenhance the sampling of phase space", - "description": "This fix instructs LAMMPS to call the [PLUMED ](https://www.plumed.org/) library, which\nallows one to perform various forms of trajectory analysis on the fly\nand to also use methods such as umbrella sampling and metadynamics to\nenhance the sampling of phase space.\n\nThe documentation included here only describes the fix plumed command\nitself. This command is LAMMPS specific, whereas most of the\nfunctionality implemented in PLUMED will work with a range of MD codes,\nand when PLUMED is used as a stand alone code for analysis. The full\n[documentation for PLUMED ](https://www.plumed.org/doc.html) is available online and included\nin the PLUMED source code. The PLUMED library development is hosted at\n[https://github.com/plumed/plumed2](https://github.com/plumed/plumed2)\nA detailed discussion of the code can be found in **Tribello**.\n\nThere is an example input for using this package with LAMMPS in the\nexamples/PACKAGES/plumed directory.\n\n----------\n\nThe command to make LAMMPS call PLUMED during a run requires two keyword\nvalue pairs pointing to the PLUMED input file and an output file for the\nPLUMED log. The user must specify these arguments every time PLUMED is\nto be used. Furthermore, the fix plumed command should appear in the\nLAMMPS input file **after** relevant input parameters (e.g. the timestep)\nhave been set.\n\nThe *group-ID* entry is ignored. LAMMPS will always pass all the atoms\nto PLUMED and there can only be one instance of the plumed fix at a\ntime. The way the plumed fix is implemented ensures that the minimum\namount of information required is communicated. Furthermore, PLUMED\nsupports multiple, completely independent collective variables, multiple\nindependent biases and multiple independent forms of analysis. There is\nthus really no restriction in functionality by only allowing only one\nplumed fix in the LAMMPS input.\n\nThe *plumedfile* keyword allows the user to specify the name of the\nPLUMED input file. Instructions as to what should be included in a\nplumed input file can be found in the [documentation for PLUMED](plumeddocs_)\n\nThe *outfile* keyword allows the user to specify the name of a file in\nwhich to output the PLUMED log. This log file normally just repeats the\ninformation that is contained in the input file to confirm it was\ncorrectly read and parsed. The names of the files in which the results\nare stored from the various analysis options performed by PLUMED will\nbe specified by the user in the PLUMED input file.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nWhen performing a restart of a calculation that involves PLUMED you\nmust include a RESTART command in the PLUMED input file as detailed in\nthe [PLUMED documentation ](https://www.plumed.org/doc.html). When the restart command\nis found in the PLUMED input PLUMED will append to the files that were\ngenerated in the run that was performed previously. No part of the\nPLUMED restart data is included in the LAMMPS restart files.\nFurthermore, any history dependent bias potentials that were\naccumulated in previous calculations will be read in when the RESTART\ncommand is included in the PLUMED input.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy change from the biasing force added by\nPLUMED to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution from the biasing force to the global\npressure of the system via the [compute pressure](https://docs.lammps.org/compute_pressure.html) command. This can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the PLUMED\nenergy mentioned above. The scalar value calculated by this fix is\n\"extensive\".\n\nNote that other quantities of interest can be output by commands that\nare native to PLUMED.\n\n**(Tribello)** G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014) \n ", - "restrictions": "This fix is part of the PLUMED package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be one fix plumed command active at a time.\n", - "related": "[fix smd ](https://docs.lammps.org/fix_smd.html)\n[fix colvars ](https://docs.lammps.org/fix_colvars.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure/uef = style name of this compute command\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial \n", + "examples": "\n```lmps\ncompute 1 all pressure/uef my_temp_uef\ncompute 2 all pressure/uef my_temp_uef virial\n```\n", + "html_filename": "compute_pressure_uef.html", + "short_description": "This command is used to compute the pressure tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used", + "description": "This command is used to compute the pressure tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used.\nIt is not necessary to use this command to compute the scalar\nvalue of the pressure. A [compute pressure ](https://docs.lammps.org/compute_pressure.html)\nmay be used for that purpose.\n\nThe keywords and output information are documented in\n[compute_pressure ](https://docs.lammps.org/compute_pressure.html).\n", + "restrictions": "This fix is part of the UEF package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\nThis command can only be used when [fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\nor [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is active.\n\nThe kinetic contribution to the pressure tensor\nwill be accurate only when the compute specified by *temp-ID* is a\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html).\n", + "related": "[compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html),\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html)\n" }, { "command": [ - "comm_modify" + "jump" ], "syntax": [ - "comm_modify keyword value ..." + "jump file label" ], "args": [ [ { - "arg": "comm_modify", + "arg": "jump", "type": 1, "choices": [] }, { - "arg": "vel", - "type": 3, - "choices": [ - "mode", - "cutoff", - "cutoff/multi", - "group", - "reduce/multi", - "vel" - ] + "arg": "file", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "label", "type": 2, "choices": [] } ] ], - "parameters": "* one or more keyword/value pairs may be appended\n* keyword = mode or cutoff or cutoff/multi or group or reduce/multi or vel \n *        mode value = *single*, *multi*, or multi/old = communicate atoms within a single or multiple distances \n *        cutoff value = Rcut (distance units) = communicate atoms from this far away \n *        cutoff/multi collection value \n         collection = atom collection or collection range (supports asterisk notation) \n         value = Rcut (distance units) = communicate atoms for selected types from this far away \n *        reduce/multi arg = none = reduce number of communicated ghost atoms for multi style \n *        *cutoff/multi/old* type value \n         type = atom type or type range (supports asterisk notation) \n         value = Rcut (distance units) = communicate atoms for selected types from this far away \n *        group value = group-ID = only communicate atoms in the group \n *        vel value = yes or no = do or do not communicate velocity info with ghost atoms \n", - "examples": "\n```lmps\ncomm_modify mode multi reduce/multi\ncomm_modify mode multi group solvent\ncomm_modify mode multi cutoff/multi 1 10.0 cutoff/multi 2*4 15.0\ncomm_modify vel yes\ncomm_modify mode single cutoff 5.0 vel yes\ncomm_modify cutoff/multi * 0.0\n```\n", - "html_filename": "comm_modify.html", - "short_description": "This command sets parameters that affect the inter-processor\ncommunication of atom information that occurs each timestep as\ncoordinates and other properties are exchanged between neighboring\nprocessors and stored as properties of ghost atoms", - "description": "This command sets parameters that affect the inter-processor\ncommunication of atom information that occurs each timestep as\ncoordinates and other properties are exchanged between neighboring\nprocessors and stored as properties of ghost atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These options apply to the currently defined comm style. When\n > you specify a [comm_style ](https://docs.lammps.org/comm_style.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) command, all communication settings\n > are restored to their default or stored values, including those\n > previously reset by a comm_modify command. Thus if your input script\n > specifies a comm_style or read_restart command, you should use the\n > comm_modify command after it. \n > \n\nThe *mode* keyword determines whether a single or multiple cutoff\ndistances are used to determine which atoms to communicate.\n\nThe default mode is *single* which means each processor acquires\ninformation for ghost atoms that are within a single distance from its\nsubdomain. The distance is by default the maximum of the neighbor\ncutoff across all atom type pairs.\n\nFor many systems this is an efficient algorithm, but for systems with\nwidely varying cutoffs for different type pairs, the *multi* or *multi/old* mode can\nbe faster. In *multi*, each atom is assigned to a collection which should\ncorrespond to a set of atoms with similar interaction cutoffs.\nSee the [neighbor ](https://docs.lammps.org/neighbor.html) command for a detailed description of collections.\nIn this case, each atom collection is assigned its own distance\ncutoff for communication purposes, and fewer atoms will be\ncommunicated. in *multi/old*, a similar technique is used but atoms\nare grouped by atom type. See the [neighbor multi ](https://docs.lammps.org/neighbor.html) and\n[neighbor multi/old ](https://docs.lammps.org/neighbor.html) commands for\nneighbor list construction options that may also be beneficial for\nsimulations of this kind. The *multi* communication mode is only compatible\nwith the *multi* neighbor style. The *multi/old* communication mode is comparable\nwith both the *multi* and *multi/old* neighbor styles.\n\nThe *cutoff* keyword allows you to extend the ghost cutoff distance\nfor communication mode *single*, which is the distance from the borders\nof a processor's subdomain at which ghost atoms are acquired from other\nprocessors. By default the ghost cutoff = neighbor cutoff = pairwise\nforce cutoff + neighbor skin. See the [neighbor ](https://docs.lammps.org/neighbor.html) command\nfor more information about the skin distance. If the specified Rcut is\ngreater than the neighbor cutoff, then extra ghost atoms will be acquired.\nIf the provided cutoff is smaller, the provided value will be ignored,\nthe ghost cutoff is set to the neighbor cutoff and a warning will be\nprinted. Specifying a cutoff value of 0.0 will reset any previous value\nto the default. If bonded interactions exist and equilibrium bond length\ninformation is available, then also a heuristic based on that bond length\nis computed. It is used as communication cutoff, if there is no pair\nstyle present and no *comm_modify cutoff* command used. Otherwise a\nwarning is printed, if this bond based estimate is larger than the\ncommunication cutoff used.\n\nThe *cutoff/multi* option is equivalent to *cutoff*, but applies to\ncommunication mode *multi* instead. Since the communication cutoffs are\ndetermined per atom collections, a collection specifier is needed and\ncutoff for one or multiple collections can be extended. Also ranges of\ncollections using the usual asterisk notation can be given. Collections\nare indexed from 1 to N where N is the total number of collections.\nNote that the arguments for *cutoff/multi* are parsed right before each\nsimulation to account for potential changes in the number of\ncollections. Custom cutoffs are preserved between runs but if\ncollections are redefined, one may want to re-specify the communication\ncutoffs. For granular pair styles,the default cutoff is set to the sum\nof the current maximum atomic radii for each collection. The\n*cutoff/multi/old* option is similar to *cutoff/multi* except it\noperates on atom types as opposed to collections.\n\nThe *reduce/multi* option applies to *multi* and sets the communication\ncutoff for a particle equal to the maximum interaction distance between particles\nin the same collection. This reduces the number of\nghost atoms that need to be communicated. This method is only compatible with the\n*multi* neighbor style and requires a half neighbor list and Newton on.\nSee the [neighbor multi ](https://docs.lammps.org/neighbor.html) command for more information.\n\nThese are simulation scenarios in which it may be useful or even\nnecessary to set a ghost cutoff > neighbor cutoff:\n\n* a single polymer chain with bond interactions, but no pairwise interactions\n* bonded interactions (e.g. dihedrals) extend further than the pairwise cutoff\n* ghost atoms beyond the pairwise cutoff are needed for some computation\n\nIn the first scenario, a pairwise potential is not defined. Thus the\npairwise neighbor cutoff will be 0.0. But ghost atoms are still\nneeded for computing bond, angle, etc interactions between atoms on\ndifferent processors, or when the interaction straddles a periodic\nboundary.\n\nThe appropriate ghost cutoff depends on the [newton bond ](https://docs.lammps.org/newton.html)\nsetting. For newton bond *off*, the distance needs to be the furthest\ndistance between any two atoms in the bond, angle, etc. E.g. the\ndistance between 1-4 atoms in a dihedral. For newton bond *on*, the\ndistance between the central atom in the bond, angle, etc and any\nother atom is sufficient. E.g. the distance between 2-4 atoms in a\ndihedral.\n\nIn the second scenario, a pairwise potential is defined, but its\nneighbor cutoff is not sufficiently long enough to enable bond, angle,\netc terms to be computed. As in the previous scenario, an appropriate\nghost cutoff should be set.\n\nIn the last scenario, a [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html) or\n[pairwise potential ](https://docs.lammps.org/pair_style.html) needs to calculate with ghost\natoms beyond the normal pairwise cutoff for some computation it\nperforms (e.g. locate neighbors of ghost atoms in a manybody pair\npotential). Setting the ghost cutoff appropriately can ensure it will\nfind the needed atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In these scenarios, if you do not set the ghost cutoff long\n > enough, and if there is only one processor in a periodic dimension\n > (e.g. you are running in serial), then LAMMPS may \"find\" the atom it\n > is looking for (e.g. the partner atom in a bond), that is on the far\n > side of the simulation box, across a periodic boundary. This will\n > typically lead to bad dynamics (i.e. the bond length is now the\n > simulation box length). To detect if this is happening, see the\n > [neigh_modify cluster ](https://docs.lammps.org/neigh_modify.html) command. \n > \n\nThe *group* keyword will limit communication to atoms in the specified\ngroup. This can be useful for models where no ghost atoms are needed\nfor some kinds of particles. All atoms (not just those in the\nspecified group) will still migrate to new processors as they move.\nThe group specified with this option must also be specified via the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html) command.\n\nThe *vel* keyword enables velocity information to be communicated with\nghost particles. Depending on the [atom_style ](https://docs.lammps.org/atom_style.html),\nvelocity info includes the translational velocity, angular velocity,\nand angular momentum of a particle. If the *vel* option is set to\n*yes*, then ghost atoms store these quantities; if *no* then they do\nnot. The *yes* setting is needed by some pair styles which require\nthe velocity state of both the I and J particles to compute a pairwise\nI,J interaction, as well as by some compute and fix commands.\n\nNote that if the [fix deform ](https://docs.lammps.org/fix_deform.html) command is being used\nwith its \"remap v\" option enabled, then the velocities for ghost atoms\n(in the fix deform group) mirrored across a periodic boundary will\nalso include components due to any velocity shift that occurs across\nthat boundary (e.g. due to dilation or shear).\n", - "restrictions": "Communication mode *multi* is currently only available for\n[comm_style ](https://docs.lammps.org/comm_style.html) *brick* .\n", - "related": "[comm_style ](https://docs.lammps.org/comm_style.html), [neighbor ](https://docs.lammps.org/neighbor.html)\n" + "parameters": "* file = filename of new input script to switch to\n* label = optional label within file to jump to \n", + "examples": "\n```lmps\njump newfile\njump in.run2 runloop\njump SELF runloop\n```\n", + "html_filename": "jump.html", + "short_description": "This command closes the current input script file, opens the file with\nthe specified name, and begins reading LAMMPS commands from that file", + "description": "This command closes the current input script file, opens the file with\nthe specified name, and begins reading LAMMPS commands from that file.\nUnlike the [include ](https://docs.lammps.org/include.html) command, the original file is not\nreturned to, although by using multiple jump commands it is possible\nto chain from file to file or back to the original file.\n\nIf the word \"SELF\" is used for the filename, then the current input\nscript is re-opened and read again.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The SELF option is not guaranteed to work when the current input\n > script is being read through stdin (standard input), e.g. \n > \n\n\n```bash\nlmp_g++ < in.script\n```\nsince the SELF option invokes the C-library rewind() call, which may\nnot be supported for stdin on some systems or by some MPI\nimplementations. This can be worked around by using the [-in command-line switch ](https://docs.lammps.org/Run_options.html), e.g.\n\n```bash\nlmp_g++ -in in.script\n```\nor by using the [-var command-line switch ](https://docs.lammps.org/Run_options.html) to pass\nthe script name as a variable to the input script. In the latter\ncase, a [variable ](https://docs.lammps.org/variable.html) called \"fname\" could be used in place\nof SELF, e.g.\n\n```bash\nlmp_g++ -var fname in.script < in.script\n```\nThe second argument to the jump command is optional. If specified, it is\ntreated as a label and the new file is scanned (without executing\ncommands) until the label is found, and commands are executed from\nthat point forward. This can be used to loop over a portion of the\ninput script, as in this example. These commands perform 10 runs,\neach of 10000 steps, and create 10 dump files named file.1, file.2,\netc. The [next ](https://docs.lammps.org/next.html) command is used to exit the loop after 10\niterations. When the \"a\" variable has been incremented for the tenth\ntime, it will cause the next jump command to be skipped.\n\n```lmps\nvariable a loop 10\nlabel loop\ndump 1 all atom 100 file.$a\nrun 10000\nundump 1\nnext a\njump in.lj loop\n```\nIf the jump *file* argument is a variable, the jump command can be\nused to cause different processor partitions to run different input\nscripts. In this example, LAMMPS is run on 40 processors, with 4\npartitions of 10 procs each. An in.file containing the example\nvariable and jump command will cause each partition to run a different\nsimulation.\n\n```lmps\nmpirun -np 40 lmp_ibm -partition 4x10 -in in.file\n\nvariable f world script.1 script.2 script.3 script.4\njump $f\n```\nHere is an example of a loop which checks every 1000 steps if the\nsystem temperature has reached a certain value, and if so, breaks out\nof the loop to finish the run. Note that any variable could be\nchecked, so long as it is current on the timestep when the run\ncompletes. As explained on the [variable ](https://docs.lammps.org/variable.html) doc page,\nthis can be ensured by including the variable in thermodynamic output.\n\n```lmps\nvariable myTemp equal temp\nlabel loop\nvariable a loop 1000\nrun 1000\nif \"${myTemp} < 300.0\" then \"jump SELF break\"\nnext a\njump SELF loop\nlabel break\nprint \"ALL DONE\"\n```\nHere is an example of a double loop which uses the if and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif \"$b > 2\" then \"jump SELF break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\nnext a\njump SELF loopa\n```\n", + "restrictions": "If you jump to a file and it does not contain the specified label,\nLAMMPS will come to the end of the file and exit.\n", + "related": "[variable ](https://docs.lammps.org/variable.html), [include ](https://docs.lammps.org/include.html), [label ](https://docs.lammps.org/label.html),\n[next ](https://docs.lammps.org/next.html)\n" }, { "command": [ - "pair_style lj/spica", - "pair_style lj/spica/gpu", - "pair_style lj/spica/kk", - "pair_style lj/spica/omp", - "pair_style lj/spica/coul/long", - "pair_style lj/spica/coul/long/gpu", - "pair_style lj/spica/coul/long/omp", - "pair_style lj/spica/coul/long/kk", - "pair_style lj/spica/coul/msm", - "pair_style lj/spica/coul/msm/omp" + "pair_style amoeba", + "pair_style amoeba/gpu", + "pair_style hippo", + "pair_style hippo/gpu" ], "syntax": [ - "pair_style style args" + "pair_style style" ], "args": [ [ @@ -11476,204 +10655,216 @@ export const command_docs = [ "choices": [] }, { - "arg": "lj/spica/coul/long/kk", + "arg": "hippo/gpu", "type": 3, "choices": [ - "lj/spica", - "lj/spica/coul/long", - "lj/spica/gpu", - "lj/spica/kk", - "lj/spica/omp", - "lj/spica/coul/long/gpu", - "lj/spica/coul/long/omp", - "lj/spica/coul/long/kk" + "amoeba", + "hippo", + "amoeba/gpu", + "hippo/gpu" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* style = lj/spica or lj/spica/coul/long\n* args = list of arguments for a particular style \n *      lj/spica args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n *      lj/spica/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style lj/spica 2.5\npair_coeff 1 1 lj12_6 1 1.1 2.8\n\npair_style lj/spica/coul/long 10.0\npair_style lj/spica/coul/long 10.0 12.0\npair_coeff 1 1 lj9_6 100.0 3.5 12.0\n\npair_style lj/spica/coul/msm 10.0\npair_style lj/spica/coul/msm 10.0 12.0\npair_coeff 1 1 lj9_6 100.0 3.5 12.0\n```\n", - "html_filename": "pair_spica.html", - "short_description": "The *lj/spica* styles compute a 9/6, 12/4, 12/5, or 12/6 Lennard-Jones potential,\ngiven by\n\\[\\begin{align*} \n E = & \\frac{27}{4} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{3\\sqrt{3}}{2} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^4 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{12}{7}\\left(\\frac{12}{5}\\right)^{\\left(\\frac{5}{7}\\right)} \\epsilon\n \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^5 \\right]\n \\qquad r < r_c \\\\\n E = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\end{align*} \\]\nas required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in\n**Shinoda3**, **DeVane**, **Seo**, and **Miyazaki**", - "description": "The *lj/spica* styles compute a 9/6, 12/4, 12/5, or 12/6 Lennard-Jones potential,\ngiven by\n\\[\\begin{align*} \n E = & \\frac{27}{4} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{3\\sqrt{3}}{2} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^4 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{12}{7}\\left(\\frac{12}{5}\\right)^{\\left(\\frac{5}{7}\\right)} \\epsilon\n \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^5 \\right]\n \\qquad r < r_c \\\\\n E = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\end{align*} \\]\nas required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in\n**Shinoda3**, **DeVane**, **Seo**, and **Miyazaki**.\n\\(r_c\\) is the cutoff.\nSummary information on these force fields can be found at https://www.spica-ff.org\n\nStyle *lj/spica/coul/long* computes the adds Coulombic interactions\nwith an additional damping factor applied so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and\nits *ewald* or *pppm* or *pppm/cg* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within\nthis distance are computed directly; interactions outside that\ndistance are computed in reciprocal space.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cg_type (lj9_6, lj12_4, lj12_5, or lj12_6)\n* epsilon (energy units)\n* sigma (distance units)\n* cutoff1 (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum. The prefactors\nare chosen so that the potential minimum is at -epsilon.\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nFor *lj/spica/coul/long* and *lj/spica/coul/msm* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an\nindividual I,J type pair. All type pairs use the same global\nCoulombic cutoff specified in the pair_style command.\n\nThe original implementation of the above styles are\nstyle *lj/sdk*, *lj/sdk/coul/long*, and *lj/sdk/coul/msm*,\nand available for backward compatibility.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/spica pair styles *cannot* be mixed,\nsince different pairs may have different exponents. So all parameters\nfor all pairs have to be specified explicitly through the \"pair_coeff\"\ncommand. Defining then in a data file is also not supported, due to\nlimitations of that file format.\n\nAll of the lj/spica pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/spica/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the lj/spica pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe lj/spica and lj/cut/coul/long pair styles do not support\nthe use of the *inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command.\n\n----------\n\n**(Shinoda3)** Shinoda, DeVane, Klein, Mol Sim, 33, 27-36 (2007). \n \n**(DeVane)** Shinoda, DeVane, Klein, Soft Matter, 4, 2453-2462 (2008). \n \n**(Seo)** Seo, Shinoda, J Chem Theory Comput, 15, 762-774 (2019). \n \n**(Miyazaki)** Miyazaki, Okazaki, Shinoda, J Chem Theory Comput, 16, 782-793 (2020). \n ", - "restrictions": "All of the lj/spica pair styles are part of the CG-SPICA package. The\n*lj/spica/coul/long* style also requires the KSPACE package to be built\n(which is enabled by default). They are only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [angle_style spica ](https://docs.lammps.org/angle_spica.html)\n" + "parameters": "* style = amoeba or hippo \n", + "examples": "\n```lmps\npair_style amoeba\npair_coeff * * protein.prm.amoeba protein.key.amoeba\n```\n\n```lmps\npair_style hippo\npair_coeff * * water.prm.hippo water.key.hippo\n```\n #### Additional info\n\n* [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html)\n* examples/amoeba\n* tools/amoeba\n* potentials/\\*.amoeba\n* potentials/\\*.hippo\n", + "html_filename": "pair_amoeba.html", + "short_description": "The *amoeba* style computes the AMOEBA polarizable field formulated\nby Jay Ponder's group at the U Washington at St Louis **amoeba-Ren**, **amoeba-Shi**", + "description": "The *amoeba* style computes the AMOEBA polarizable field formulated\nby Jay Ponder's group at the U Washington at St Louis **amoeba-Ren**, **amoeba-Shi**. The *hippo* style computes\nthe HIPPO polarizable force field, an extension to AMOEBA, formulated\nby Josh Rackers and collaborators in the Ponder group **amoeba-Rackers**.\n\nThese force fields can be used when polarization effects are desired\nin simulations of water, organic molecules, and biomolecules including\nproteins, provided that parameterizations (Tinker PRM force field\nfiles) are available for the systems you are interested in. Files in\nthe LAMMPS potentials directory with a \"amoeba\" or \"hippo\" suffix can\nbe used. The Tinker distribution and website have additional force\nfield files as well.\n\nAs discussed on the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page, the\nintermolecular (non-bonded) portion of the AMOEBA force field contains\nthese terms:\n\\[\n U_{amoeba} = U_{multipole} + U_{polar} + U_{hal}\\]\nwhile the HIPPO force field contains these terms:\n\\[\n U_{hippo} = U_{multipole} + U_{polar} + U_{qxfer} + U_{repulsion} + U_{dispersion}\\]\nConceptually, these terms compute the following interactions:\n\n* \\(U_{hal}\\) = buffered 14-7 van der Waals with offsets applied to hydrogen atoms\n* \\(U_{repulsion}\\) = Pauli repulsion due to rearrangement of electron density\n* \\(U_{dispersion}\\) = dispersion between correlated, instantaneous induced dipole moments\n* \\(U_{multipole}\\) = electrostatics between permanent point charges, dipoles, and quadrupoles\n* \\(U_{polar}\\) = electronic polarization between induced point dipoles\n* \\(U_{qxfer}\\) = charge transfer effects\n\nNote that the AMOEBA versus HIPPO force fields typically compute the\nsame term differently using their own formulas. The references on\nthis doc page give full details for both force fields.\n\nThe formulas for the AMOEBA energy terms are:\n\\[\\begin{align*} \n U_{hal} = & \\epsilon_{ij} \\left( \\frac{1.07}{\\rho_{ij} + 0.07} \\right)^7 \\left( \\frac{1.12}{\\rho_{ij}^7 + 0.12} - 2 \\right) \\\\\n U_{multipole} = & \\vec{M}_i\\boldsymbol{T_{ij}}\\vec{M}_j, \\quad \\mbox{with} \\quad\n \\vec{M} = \\left(q, \\vec{\\mu}_{perm}, \\boldsymbol{\\Theta} \\right) \\\\\n U_{polar} = & \\frac{1}{2}\\vec{\\mu}_i^{ind} \\vec{E}_i^{perm} \\end{align*} \\]\nThe formulas for the HIPPO energy terms are:\n\\[\\begin{align*} \n U_{multipole} = & Z_i \\frac{1}{r_{ij}} Z_j + Z_i T_{ij}^{damp} \\vec{M}_j + Z_j T_{ji}^{damp} \\vec{M}_i + \\vec{M}_i T_{ij}^{damp} \\vec{M}_j, \\quad \\mbox{with} \\quad\n \\vec{M} = \\left(q, \\vec{\\mu}_{perm}, \\boldsymbol{\\Theta} \\right) \\\\\n U_{polar} = & \\frac{1}{2}\\vec{\\mu}_i^{ind} \\vec{E}_i^{perm} \\\\\n U_{qxfer} = & \\epsilon_i e^{-\\eta_j r_{ij}} + \\epsilon_j e^{-\\eta_i r_{ij}} \\\\\n U_{repulsion} = & \\frac{K_i K_j}{r_{ij}} S^2\n S^2 = \\left( \\int{\\phi_i \\phi_j} dv \\right)^2 = \\vec{M}_i\\boldsymbol{T_{ij}^{repulsion}}\\vec{M}_j \\\\\n U_{dispersion} = & -\\frac{C_6^iC_6^j}{r_{ij}^6} \\left( f_{damp}^{dispersion} \\right)_{ij}^2 \\end{align*} \\]\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The AMOEBA and HIPPO force fields compute long-range charge, dipole,\n > and quadrupole interactions as well as long-range dispersion\n > effects. However, unlike other models with long-range interactions\n > in LAMMPS, this does not require use of a KSpace style via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. That is because for\n > AMOEBA and HIPPO the long-range computations are intertwined with\n > the pairwise computations. So these pair style include both short-\n > and long-range computations. This means the energy and virial\n > computed by the pair style as well as the \"Pair\" timing reported by\n > LAMMPS will include the long-range calculations. \n > \n\nThe implementation of the AMOEBA and HIPPO force fields in LAMMPS was\ndone using F90 code provided by the Ponder group from their `Tinker MD\ncode `_.\n\nThe current implementation (July 2022) of AMOEBA in LAMMPS matches the\nversion discussed in **amoeba-Ponder**, **amoeba-Ren**, and **amoeba-Shi**. Likewise the current\nimplementation of HIPPO in LAMMPS matches the version discussed in\n**amoeba-Rackers**.\n\nAccelerator support via the GPU package is available.\n\n----------\n\nOnly a single pair_coeff command is used with either the *amoeba* and\n*hippo* styles which specifies two Tinker files, a PRM and KEY file.\n\n```lmps\npair_coeff * * ../potentials/protein.prm.amoeba ../potentials/protein.key.amoeba\npair_coeff * * ../potentials/water.prm.hippo ../potentials/water.key.hippo\n```\nExamples of the PRM files are in the potentials directory with an\n\\*.amoeba or \\*.hippo suffix. The examples/amoeba directory has\nexamples of both PRM and KEY files.\n\nA Tinker PRM file is composed of sections, each of which has multiple\nlines. A Tinker KEY file is composed of lines, each of which has a\nkeyword followed by zero or more parameters.\n\nThe list of PRM sections and KEY keywords which LAMMPS recognizes are\nlisted on the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page. If not\nrecognized, the section or keyword is skipped.\n\nNote that if the KEY file is specified as NULL, then no file is\nrequired; default values for various AMOEBA/HIPPO settings are used.\nThe [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page also gives the default\nsettings.\n\n----------\n\nThe *amoeba* and *hippo* pair styles support extraction of two per-atom\nquantities by the [fix pair ](https://docs.lammps.org/fix_pair.html) command. This allows the\nquantities to be output to files by the [dump ](https://docs.lammps.org/dump.html) or otherwise\nprocessed by other LAMMPS commands.\n\nThe names of the two quantities are \"uind\" and \"uinp\" for the induced\ndipole moments for each atom. Neither quantity needs to be triggered by\nthe [fix pair ](https://docs.lammps.org/fix_pair.html) command in order for these pair styles to\ncalculate it.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThese pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner* , *middle* , *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using the GPU accelerated pair styles 'amoeba/gpu' or 'hippo/gpu'\n > when compiling the GPU package for OpenCL has a few known issues\n > when running on integrated GPUs and the calculation may crash.\n >\n > The GPU accelerated pair styles are also not (yet) compatible\n > with single precision FFTs. \n > \n\n----------\n\n**(amoeba-Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003). \n \n**(amoeba-Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013. \n \n**(amoeba-Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). \n \n**(amoeba-Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010). \n \n**(amoeba-Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021). \n ", + "restrictions": "These pair styles are part of the AMOEBA package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n\nThe AMOEBA and HIPPO potential (PRM) and KEY files provided with\nLAMMPS in the potentials and examples/amoeba directories are Tinker\nfiles parameterized for Tinker units. Their numeric parameters are\nconverted by LAMMPS to its real units [units ](https://docs.lammps.org/units.html). Thus you\ncan only use these pair styles with real units.\n\nThese potentials do not yet calculate per-atom energy or virial\ncontributions.\n\nAs explained on the [AMOEBA and HIPPO howto ](https://docs.lammps.org/Howto_amoeba.html) page,\nuse of these pair styles to run a simulation with the AMOEBA or HIPPO\nforce fields requires several things.\n\nThe first is a data file generated by the tools/tinker/tinker2lmp.py\nconversion script which uses Tinker file force field file input to\ncreate a data file compatible with LAMMPS.\n\nThe second is use of these commands:\n\n* [atom_style amoeba ](https://docs.lammps.org/atom_style.html)\n* [fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n* [special_bonds one/five ](https://docs.lammps.org/special_bonds.html)\n\nAnd third, depending on the model being simulated, these\ncommands for intramolecular interactions may also be required:\n\n* [bond_style class2 ](https://docs.lammps.org/bond_class2.html)\n* [angle_style amoeba ](https://docs.lammps.org/angle_amoeba.html)\n* [dihedral_style fourier ](https://docs.lammps.org/dihedral_fourier.html)\n* [improper_style amoeba ](https://docs.lammps.org/improper_amoeba.html)\n* [fix amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html)\n* [fix amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html)\n\n----------\n", + "related": "[atom_style amoeba ](https://docs.lammps.org/atom_style.html),\n[bond_style class2 ](https://docs.lammps.org/bond_class2.html),\n[angle_style amoeba ](https://docs.lammps.org/angle_amoeba.html),\n[dihedral_style fourier ](https://docs.lammps.org/dihedral_fourier.html),\n[improper_style amoeba ](https://docs.lammps.org/improper_amoeba.html),\n[fix amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html),\n[fix amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html),\n[special_bonds one/five ](https://docs.lammps.org/special_bonds.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" }, { "command": [ - "fix nvt/asphere", - "fix nvt/asphere/omp" + "pair_style buck", + "pair_style buck/gpu", + "pair_style buck/intel", + "pair_style buck/kk", + "pair_style buck/omp", + "pair_style buck/coul/cut", + "pair_style buck/coul/cut/gpu", + "pair_style buck/coul/cut/intel", + "pair_style buck/coul/cut/kk", + "pair_style buck/coul/cut/omp", + "pair_style buck/coul/long", + "pair_style buck/coul/long/gpu", + "pair_style buck/coul/long/intel", + "pair_style buck/coul/long/kk", + "pair_style buck/coul/long/omp", + "pair_style buck/coul/msm", + "pair_style buck/coul/msm/omp" ], "syntax": [ - "fix ID group-ID nvt/asphere keyword value ..." + "pair_style style args" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "nvt/asphere", + "arg": "buck/coul/msm/omp", "type": 3, "choices": [ - "nvt/asphere", - "nvt/asphere/omp" - ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", + "buck", + "buck/coul/cut", + "buck/coul/long", + "buck/coul/msm", + "buck/gpu", + "buck/intel", + "buck/kk", + "buck/omp", + "buck/coul/cut/gpu", + "buck/coul/cut/intel", + "buck/coul/cut/kk", + "buck/coul/cut/omp", + "buck/coul/long/gpu", + "buck/coul/long/intel", + "buck/coul/long/kk", + "buck/coul/long/omp", + "buck/coul/msm/omp" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/asphere = style name of this fix command\n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nvt/asphere temp 300.0 300.0 100.0\nfix 1 all nvt/asphere temp 300.0 300.0 100.0 drag 0.2\n```\n", - "html_filename": "fix_nvt_asphere.html", - "short_description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat", - "description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the aspherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/asphere\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/asphere\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* style = buck or buck/coul/cut or buck/coul/long or buck/coul/msm\n* args = list of arguments for a particular style \n *      buck args = cutoff \n       cutoff = global cutoff for Buckingham interactions (distance units) \n *      buck/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/msm args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style buck 2.5\npair_coeff * * 100.0 1.5 200.0\npair_coeff * * 100.0 1.5 200.0 3.0\n\npair_style buck/coul/cut 10.0\npair_style buck/coul/cut 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\npair_coeff 1 1 100.0 1.5 200.0 9.0 8.0\n\npair_style buck/coul/long 10.0\npair_style buck/coul/long 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n\npair_style buck/coul/msm 10.0\npair_style buck/coul/msm 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n```\n", + "html_filename": "pair_buck.html", + "short_description": "The *buck* style computes a Buckingham potential (exp/6 instead of\nLennard-Jones 12/6) given by\n\\[\n E = A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c\\]\nwhere \\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff on both terms", + "description": "The *buck* style computes a Buckingham potential (exp/6 instead of\nLennard-Jones 12/6) given by\n\\[\n E = A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c\\]\nwhere \\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff on both terms.\n\nThe styles with *coul/cut* or *coul/long* or *coul/msm* add a\nCoulombic term as described for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles.\nFor *buck/coul/long* and *buc/coul/msm*, an additional damping factor\nis applied to the Coulombic term so it can be used in conjunction with\nthe [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\nor *msm* option. The Coulombic cutoff specified for this style means\nthat pairwise interactions within this distance are computed directly;\ninteractions outside that distance are computed in reciprocal space.\n\nIf one cutoff is specified for the *born/coul/cut* and\n*born/coul/long* and *born/coul/msm* styles, it is used for both the\nA,C and Coulombic terms. If two cutoffs are specified, the first is\nused as the cutoff for the A,C terms, and the second is the cutoff for\nthe Coulombic term.\n\nNote that these potentials are related to the [Born-Mayer-Huggins potential ](https://docs.lammps.org/pair_born.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For all these pair styles, the terms with A and C are always\n > cutoff. The additional Coulombic term can be cutoff or long-range (no\n > cutoff) depending on whether the style name includes coul/cut or\n > coul/long or coul/msm. If you wish the C/r\\^6 term to be long-range\n > (no cutoff), then see the [pair_style buck/long/coul/long ](https://docs.lammps.org/pair_buck_long.html) command. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* \\(\\rho\\) (distance units)\n* C (energy-distance\\^6 units)\n* cutoff (distance units)\n* cutoff2 (distance units)\n\nThe second coefficient, \\(\\rho\\), must be greater than zero.\nThe coefficients A, \\(\\rho\\), and C can be written as analytical expressions\nof \\(\\epsilon\\) and \\(\\sigma\\), in analogy to the Lennard-Jones potential\n**Khrapak**.\n\nThe latter 2 coefficients are optional. If not specified, the global\nA,C and Coulombic cutoffs are used. If only one cutoff is specified,\nit is used as the cutoff for both A,C and Coulombic interactions for\nthis type pair. If both coefficients are specified, they are used as\nthe A,C and Coulombic cutoffs for this type pair. You cannot specify\n2 cutoffs for style *buck*, since it has no Coulombic terms.\nFor *buck/coul/long* only the LJ cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp() and 1/r\\^6 portion of the pair interaction.\n\nThe *buck/coul/long* pair style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option to tabulate the\nshort-range portion of the long-range Coulombic interaction.\n\nThese styles support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure for the A,C terms in the\npair interaction.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n**(Khrapak)** Khrapak, Chaudhuri, and Morfill, J Chem Phys, 134, 054120 (2011). \n ", + "restrictions": "The *buck/coul/long* style is part of the KSPACE package. They are\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html)\n" }, { "command": [ - "minimize" + "fix wall/reflect", + "fix wall/reflect/kk" ], "syntax": [ - "minimize etol ftol maxiter maxeval" + "fix ID group-ID wall/reflect face arg ... keyword value ..." ], "args": [ [ { - "arg": "minimize", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "etol", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "ftol", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "maxiter", + "arg": "wall/reflect", + "type": 3, + "choices": [ + "wall/reflect", + "wall/reflect/kk" + ] + }, + { + "arg": "zhi", + "type": 3, + "choices": [ + "xlo", + "xhi", + "ylo", + "yhi", + "zlo", + "zhi" + ] + }, + { + "arg": "arg", "type": 2, "choices": [] }, { - "arg": "maxeval", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* etol = stopping tolerance for energy (unitless)\n* ftol = stopping tolerance for force (force units)\n* maxiter = max iterations of minimizer\n* maxeval = max number of force/energy evaluations \n", - "examples": "\n```lmps\nminimize 1.0e-4 1.0e-6 100 1000\nminimize 0.0 1.0e-8 1000 100000\n```\n", - "html_filename": "minimize.html", - "short_description": "Perform an energy minimization of the system, by iteratively adjusting\natom coordinates", - "description": "Perform an energy minimization of the system, by iteratively adjusting\natom coordinates. Iterations are terminated when one of the stopping\ncriteria is satisfied. At that point the configuration will hopefully\nbe in a local potential energy minimum. More precisely, the\nconfiguration should approximate a critical point for the objective\nfunction (see below), which may or may not be a local minimum.\n\nThe minimization algorithm used is set by the [min_style](https://docs.lammps.org/min_style.html) command. Other options are set by the [min_modify](https://docs.lammps.org/min_modify.html) command. Minimize commands can be interspersed with\n[run ](https://docs.lammps.org/run.html) commands to alternate between relaxation and dynamics.\nThe minimizers bound the distance atoms may move in one iteration, so\nthat you can relax systems with highly overlapped atoms (large energies\nand forces) by pushing the atoms off of each other.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Neighbor list update settings \n >The distance that atoms can move during individual minimization steps\n > can be quite large, especially at the beginning of a minimization.\n > Thus [neighbor list settings ](https://docs.lammps.org/neigh_modify.html) of *every = 1* and\n > *delay = 0* are **required**. This may be combined with either\n > *check = no* (always update the neighbor list) or *check = yes* (only\n > update the neighbor list if at least one atom has moved more than\n > half the [neighbor list skin ](https://docs.lammps.org/neighbor.html) distance since the last\n > reneighboring). Using *check = yes* is recommended since it avoids\n > unneeded reneighboring steps when the system is closer to the minimum\n > and thus atoms move only small distances. Using *check = no* may be\n > required for debugging or when coupling LAMMPS with external codes\n > that require a predictable sequence of neighbor list updates.\n >\n > If the settings are **not** *every = 1* and *delay = 0*, LAMMPS will\n > temporarily apply a [neigh_modify every 1 delay 0 check yes > ](https://docs.lammps.org/neigh_modify.html) setting during the minimization and restore the\n > original setting at the end of the minimization. A corresponding\n > message will be printed to the screen and log file, if this happens. \n > \n\nAlternate means of relaxing a system are to run dynamics with a small or\n[limited timestep ](https://docs.lammps.org/fix_nve_limit.html). Or dynamics can be run using\n[fix viscous ](https://docs.lammps.org/fix_viscous.html) to impose a damping force that slowly\ndrains all kinetic energy from the system. The [pair_style soft](https://docs.lammps.org/pair_soft.html) potential can be used to un-overlap atoms while running\ndynamics.\n\nNote that you can minimize some atoms in the system while holding the\ncoordinates of other atoms fixed by applying [fix setforce 0.0 0.00.0 ](https://docs.lammps.org/fix_setforce.html) to the other atoms. See a more detailed discussion\nof **fix_minimize**.\n\nThe [minimization styles ](https://docs.lammps.org/min_style.html) *cg*, *sd*, and *hftn*\ninvolves an outer iteration loop which sets the search direction along\nwhich atom coordinates are changed. An inner iteration is then\nperformed using a line search algorithm. The line search typically\nevaluates forces and energies several times to set new coordinates.\nCurrently, a backtracking algorithm is used which may not be optimal\nin terms of the number of force evaluations performed, but appears to\nbe more robust than previous line searches we have tried. The\nbacktracking method is described in Nocedal and Wright's Numerical\nOptimization (Procedure 3.1 on p 41).\n\nThe [minimization styles ](https://docs.lammps.org/min_style.html) *quickmin*, *fire* and\n*fire/old* perform damped dynamics using an Euler integration step. Thus\nthey require a [timestep ](https://docs.lammps.org/timestep.html) be defined.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damped dynamic minimizer algorithms will use the timestep you\n > have defined via the [timestep ](https://docs.lammps.org/timestep.html) command or its\n > default value. Often they will converge more quickly if you use a\n > timestep about 10x larger than you would normally use for regular\n > molecular dynamics simulations. \n > \n\n----------\n\nIn all cases, the objective function being minimized is the total\npotential energy of the system as a function of the N atom\ncoordinates:\n\\[\\begin{align*} E(r_1,r_2, \\ldots ,r_N) = & \\sum_{i,j} E_{\\it pair}(r_i,r_j) +\n \\sum_{ij} E_{\\it bond}(r_i,r_j) +\n \\sum_{ijk} E_{\\it angle}(r_i,r_j,r_k) + \\\\\n & \\sum_{ijkl} E_{\\it dihedral}(r_i,r_j,r_k,r_l) +\n \\sum_{ijkl} E_{\\it improper}(r_i,r_j,r_k,r_l) +\n \\sum_i E_{\\it fix}(r_i) \\end{align*} \\]\nwhere the first term is the sum of all non-bonded [pairwiseinteractions ](https://docs.lammps.org/pair_style.html) including [long-range Coulombicinteractions ](https://docs.lammps.org/kspace_style.html), the second through fifth terms are [bond](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html), [dihedral](https://docs.lammps.org/dihedral_style.html), and [improper ](https://docs.lammps.org/improper_style.html) interactions\nrespectively, and the last term is energy due to [fixes ](https://docs.lammps.org/fix.html)\nwhich can act as constraints or apply force to atoms, such as through\ninteraction with a wall. See the discussion below about how fix\ncommands affect minimization.\n\nThe starting point for the minimization is the current configuration\nof the atoms.\n\n----------\n\nThe minimization procedure stops if any of several criteria are met:\n\n* the change in energy between outer iterations is less than *etol*\n* the 2-norm (length) of the global force vector is less than the *ftol*\n* the line search fails because the step distance backtracks to 0.0\n* the number of outer iterations or timesteps exceeds *maxiter*\n* the number of total force evaluations exceeds *maxeval*\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the [minimization style ](https://docs.lammps.org/min_style.html) *spin*,\n > *spin/cg*, and *spin/lbfgs* replace\n > the force tolerance *ftol* by a torque tolerance.\n > The minimization procedure stops if the 2-norm (length) of the torque vector on atom\n > (defined as the cross product between the\n > atomic spin and its precession vectors omega) is less than *ftol*,\n > or if any of the other criteria are met. Torque have the same units as the energy. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can also use the [fix halt ](https://docs.lammps.org/fix_halt.html) command to specify\n > a general criterion for exiting a minimization, that is a\n > calculation performed on the state of the current system, as\n > defined by an [equal-style variable ](https://docs.lammps.org/variable.html). \n > \n\nFor the first criterion, the specified energy tolerance *etol* is\nunitless; it is met when the energy change between successive\niterations divided by the energy magnitude is less than or equal to\nthe tolerance. For example, a setting of 1.0e-4 for *etol* means an\nenergy tolerance of one part in 10\\^4. For the damped dynamics\nminimizers this check is not performed for a few steps after\nvelocities are reset to 0, otherwise the minimizer would prematurely\nconverge.\n\nFor the second criterion, the specified force tolerance *ftol* is in\nforce units, since it is the length of the global force vector for all\natoms, e.g. a vector of size 3N for N atoms. Since many of the\ncomponents will be near zero after minimization, you can think of\n*ftol* as an upper bound on the final force on any component of any\natom. For example, a setting of 1.0e-4 for *ftol* means no x, y, or z\ncomponent of force on any atom will be larger than 1.0e-4 (in force\nunits) after minimization.\n\nEither or both of the *etol* and *ftol* values can be set to 0.0, in\nwhich case some other criterion will terminate the minimization.\n\nDuring a minimization, the outer iteration count is treated as a\ntimestep. Output is triggered by this timestep, e.g. thermodynamic\noutput or dump and restart files.\n\nUsing the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command with the\n*fmax* or *fnorm* keywords can be useful for monitoring the progress\nof the minimization. Note that these outputs will be calculated only\nfrom forces on the atoms, and will not include any extra degrees of\nfreedom, such as from the [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command.\n\nFollowing minimization, a statistical summary is printed that lists\nwhich convergence criterion caused the minimizer to stop, as well as\ninformation about the energy, force, final line search, and iteration\ncounts. An example is as follows:\n\n```\nMinimization stats:\nStopping criterion = max iterations\nEnergy initial, next-to-last, final =\n-0.626828169302 -2.82642039062 -2.82643549739\nForce two-norm initial, final = 2052.1 91.9642\nForce max component initial, final = 346.048 9.78056\nFinal line search alpha, max atom move = 2.23899e-06 2.18986e-05\nIterations, force evaluations = 2000 12724\n```\nThe 3 energy values are for before and after the minimization and on\nthe next-to-last iteration. This is what the *etol* parameter checks.\n\nThe two-norm force values are the length of the global force vector\nbefore and after minimization. This is what the *ftol* parameter\nchecks.\n\nThe max-component force values are the absolute value of the largest\ncomponent (x,y,z) in the global force vector, i.e. the infinity-norm\nof the force vector.\n\nThe alpha parameter for the line-search, when multiplied by the max\nforce component (on the last iteration), gives the max distance any\natom moved during the last iteration. Alpha will be 0.0 if the line\nsearch could not reduce the energy. Even if alpha is non-zero, if the\n\"max atom move\" distance is tiny compared to typical atom coordinates,\nthen it is possible the last iteration effectively caused no atom\nmovement and thus the evaluated energy did not change and the\nminimizer terminated. Said another way, even with non-zero forces,\nit's possible the effect of those forces is to move atoms a distance\nless than machine precision, so that the energy cannot be further\nreduced.\n\nThe iterations and force evaluation values are what is checked by the\n*maxiter* and *maxeval* parameters.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are several force fields in LAMMPS which have discontinuities\n > or other approximations which may prevent you from performing an\n > energy minimization to tight tolerances. For example, you should use\n > a [pair style ](https://docs.lammps.org/pair_style.html) that goes to 0.0 at the cutoff\n > distance when performing minimization (even if you later change it\n > when running dynamics). If you do not do this, the total energy of\n > the system will have discontinuities when the relative distance\n > between any pair of atoms changes from cutoff *plus* epsilon to\n > cutoff *minus* epsilon and the minimizer may thus behave poorly.\n > Some of the many-body potentials use splines and other internal\n > cutoffs that inherently have this problem. The [long-range > Coulombic styles ](https://docs.lammps.org/kspace_style.html) (PPPM, Ewald) are approximate to\n > within the user-specified tolerance, which means their energy and\n > forces may not agree to a higher precision than the Kspace-specified\n > tolerance. This agreement is further reduced when using tabulation\n > to speed up the computation of the real-space part of the Coulomb\n > interactions, which is enabled by default. In all these cases, the\n > minimizer may give up and stop before finding a minimum to the\n > specified energy or force tolerance. \n > \n\nNote that a cutoff Lennard-Jones potential (and others) can be shifted\nso that its energy is 0.0 at the cutoff via the [pair_modify](https://docs.lammps.org/pair_modify.html) command. See the doc pages for individual [pairstyles ](https://docs.lammps.org/pair_style.html) for details. Note that most Coulombic potentials\nhave a cutoff, unless versions with a long-range component are used\n(e.g. [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)) or some\nother damping/smoothing schemes are used. The CHARMM potentials go to\n0.0 at the cutoff (e.g. [pair_style lj/charmm/coul/charmm](https://docs.lammps.org/pair_charmm.html)), as do the GROMACS potentials (e.g. [pair_stylelj/gromacs ](https://docs.lammps.org/pair_gromacs.html)).\n\nIf a soft potential ([pair_style soft ](https://docs.lammps.org/pair_soft.html)) is used the\nAstop value is used for the prefactor (no time dependence).\n\n.. _fix_minimize:\n\nThe [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command can be used to apply an\nexternal pressure to the simulation box and allow it to shrink/expand\nduring the minimization.\n\nOnly a few other fixes (typically those that add forces) are invoked\nduring minimization. See the doc pages for individual [fix ](https://docs.lammps.org/fix.html)\ncommands to see which ones are relevant. Current examples of fixes\nthat can be used include:\n\n* [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n* [fix addtorque ](https://docs.lammps.org/fix_addtorque.html)\n* [fix efield ](https://docs.lammps.org/fix_efield.html)\n* [fix enforce2d ](https://docs.lammps.org/fix_enforce2d.html)\n* [fix indent ](https://docs.lammps.org/fix_indent.html)\n* [fix lineforce ](https://docs.lammps.org/fix_lineforce.html)\n* [fix planeforce ](https://docs.lammps.org/fix_planeforce.html)\n* [fix setforce ](https://docs.lammps.org/fix_setforce.html)\n* [fix spring ](https://docs.lammps.org/fix_spring.html)\n* [fix spring/self ](https://docs.lammps.org/fix_spring_self.html)\n* [fix viscous ](https://docs.lammps.org/fix_viscous.html)\n* [fix wall ](https://docs.lammps.org/fix_wall.html)\n* [fix wall/region ](https://docs.lammps.org/fix_wall_region.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Some fixes which are invoked during minimization have an\n > associated potential energy. For that energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > that fix. The doc pages for individual [fix ](https://docs.lammps.org/fix.html) commands\n > specify if this should be done. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The minimizers in LAMMPS do not allow for bonds (or angles, etc)\n > to be held fixed while atom coordinates are being relaxed, e.g. via\n > [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). See more\n > info in the Restrictions section below. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\nThe :doc:`fix box/relax ` command can be used to apply an\nexternal pressure to the simulation box and allow it to shrink/expand\nduring the minimization. \n ", - "restrictions": "Features that are not yet implemented are listed here, in case someone\nknows how they could be coded:\n\nIt is an error to use [fix shake ](https://docs.lammps.org/fix_shake.html) with minimization\nbecause it turns off bonds that should be included in the potential\nenergy of the system. The effect of a fix shake can be approximated\nduring a minimization by using stiff spring constants for the bonds\nand/or angles that would normally be constrained by the SHAKE\nalgorithm.\n\n[Fix rigid ](https://docs.lammps.org/fix_rigid.html) is also not supported by minimization. It\nis not an error to have it defined, but the energy minimization will\nnot keep the defined body(s) rigid during the minimization. Note that\nif bonds, angles, etc internal to a rigid body have been turned off\n(e.g. via [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html)), they will not\ncontribute to the potential energy which is probably not what is\ndesired.\n\nPair potentials that produce torque on a particle (e.g. [granular potentials ](https://docs.lammps.org/pair_gran.html) or the [GayBerne potential ](https://docs.lammps.org/pair_gayberne.html) for ellipsoidal particles) are not\nrelaxed by a minimization. More specifically, radial relaxations are\ninduced, but no rotations are induced by a minimization, so such a\nsystem will not fully relax.\n", - "related": "[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/reflect = style name of this fix command\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        arg = EDGE or constant or variable \n         EDGE = current lo edge of simulation box \n         constant = number like 0.0 or 30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", + "examples": "\n```lmps\nfix xwalls all wall/reflect xlo EDGE xhi EDGE\nfix walls all wall/reflect xlo 0.0 ylo 10.0 units box\nfix top all wall/reflect zhi v_pressdown\n```\n", + "html_filename": "fix_wall_reflect.html", + "short_description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them", + "description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them.\n\nReflection means that if an atom moves outside the wall on a timestep\nby a distance delta (e.g. due to [fix nve ](https://docs.lammps.org/fix_nve.html)), then it is\nput back inside the face by the same delta, and the sign of the\ncorresponding component of its velocity is flipped.\n\nWhen used in conjunction with [fix nve ](https://docs.lammps.org/fix_nve.html) and\n[run_style verlet ](https://docs.lammps.org/run_style.html), the resultant time-integration\nalgorithm is equivalent to the primitive splitting algorithm (PSA)\ndescribed by **Bond1**. Because each reflection event\ndivides the corresponding timestep asymmetrically, energy conservation\nis only satisfied to O(dt), rather than to O(dt\\^2) as it would be for\nvelocity-Verlet integration without reflective walls.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face reflects particles\nthat move to a coordinate less than the wall position, back in the\n*hi* direction. A *hi* face reflects particles that move to a\ncoordinate higher than the wall position, back in the *lo* direction.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant or\nvariable is used. It is not relevant when EDGE is used to specify a\nface position. In the variable case, the variable is assumed to\nproduce a value compatible with the *units* setting you specify.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html).\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall/reflect xlo v_ramp\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall/reflect xlo v_linear\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall/reflect xlo v_wiggle\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall/reflect xlo v_wiggle\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo* to\n*hi* over the course of a run. The *vdisplace(c0,velocity)* function does\nsomething similar using the equation *position = c0 + velocity\\*delta*,\nwhere *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Bond1)** Bond and Leimkuhler, SIAM J Sci Comput, 30, p 134 (2007). \n ", + "restrictions": "Any dimension (xyz) that has a reflecting wall must be non-periodic.\n\nA reflecting wall should not be used with rigid bodies such as those\ndefined by a \"fix rigid\" command. This is because the wall/reflect\ndisplaces atoms directly rather than exerts a force on them. For\nrigid bodies, use a soft wall instead, such as [fix wall/lj93](https://docs.lammps.org/fix_wall.html). LAMMPS will flag the use of a rigid fix with fix\nwall/reflect with a warning, but will not generate an error.\n", + "related": "[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html), [fix oneway ](https://docs.lammps.org/fix_oneway.html)\n" }, { "command": [ - "dihedral_style fourier", - "dihedral_style fourier/intel", - "dihedral_style fourier/omp" + "replicate" ], "syntax": [ - "dihedral_style fourier" + "replicate nx ny nz keyword ..." ], "args": [ [ { - "arg": "dihedral_style", + "arg": "replicate", "type": 1, "choices": [] }, { - "arg": "fourier", - "type": 3, - "choices": [ - "fourier", - "fourier/intel", - "fourier/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style fourier\ndihedral_coeff 1 3 -0.846200 3 0.0 7.578800 1 0 0.138000 2 -180.0\n```\n", - "html_filename": "dihedral_fourier.html", - "short_description": "The *fourier* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,m} K_i [ 1.0 + \\cos ( n_i \\phi - d_i ) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(m\\) (integer >=1)\n* \\(K_1\\) (energy)\n* \\(n_1\\) (integer >= 0)\n* \\(d_1\\) (degrees)\n* [...]\n* \\(K_m\\) (energy)\n* \\(n_m\\) (integer >= 0)\n* \\(d_m\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", - "description": "The *fourier* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,m} K_i [ 1.0 + \\cos ( n_i \\phi - d_i ) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(m\\) (integer >=1)\n* \\(K_1\\) (energy)\n* \\(n_1\\) (integer >= 0)\n* \\(d_1\\) (degrees)\n* [...]\n* \\(K_m\\) (energy)\n* \\(n_m\\) (integer >= 0)\n* \\(d_m\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" -}, -{ - "command": [ - "pair_style gw" - ], - "syntax": [ - "pair_style style" - ], - "args": [ - [ + "arg": "nx", + "type": 2, + "choices": [] + }, { - "arg": "pair_style", - "type": 1, + "arg": "ny", + "type": 2, "choices": [] }, { - "arg": "gw/zbl", + "arg": "nz", + "type": 2, + "choices": [] + }, + { + "arg": "bond/periodic", "type": 3, "choices": [ - "gw", - "gw/zbl" + "bbox", + "bond/periodic" ] } ] ], - "parameters": "* style = gw or gw/zbl \n", - "examples": "\n```lmps\npair_style gw\npair_coeff * * SiC.gw Si C C\n\npair_style gw/zbl\npair_coeff * * SiC.gw.zbl C Si\n```\n", - "html_filename": "pair_gw.html", - "short_description": "The *gw* style computes a 3-body **Gao** potential;\nsimilarly *gw/zbl* combines this potential with a modified\nrepulsive ZBL core function in a similar fashion as implemented\nin the [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) pair style", - "description": "The *gw* style computes a 3-body **Gao** potential;\nsimilarly *gw/zbl* combines this potential with a modified\nrepulsive ZBL core function in a similar fashion as implemented\nin the [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) pair style.\n\nUnfortunately the author of this contributed code has not been\nable to submit a suitable documentation explaining the details\nof the potentials. The LAMMPS developers thus have finally decided\nto release the code anyway with only the technical explanations.\nFor details of the model and the parameters, please refer to the\nlinked publication.\n\nOnly a single pair_coeff command is used with the *gw* and *gw/zbl*\nstyles which specifies a Gao-Weber potential file with parameters\nfor all needed elements. These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of GW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.gw has Gao-Weber values for Si and C.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Si, and the fourth to be C, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * SiC.gw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the GW file. The final C argument maps LAMMPS atom type 4\nto the C element in the GW file. If a mapping value is specified as\nNULL, the mapping is not performed. This can be used when a *gw*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nGao-Weber files in the *potentials* directory of the LAMMPS\ndistribution have a \".gw\" suffix. Gao-Weber with ZBL files\nhave a \".gz.zbl\" suffix. The structure of the potential files\nis similar to other many-body potentials supported by LAMMPS.\nYou have to refer to the comments in the files and the literature\nto learn more details.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Gao)** Gao and Weber, Nuclear Instruments and Methods in Physics\nResearch B 191 (2012) 504. \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Gao-Weber potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the GW potential with any LAMMPS units, but you would need\nto create your own GW potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "nx,ny,nz = replication factors in each dimension\n\n* zero or more keywords may be appended\n* keyword = bbox or bond/periodic \n *        bbox = use a bounding-box algorithm which is faster for large proc counts \n *        bond/periodic = use an algorithm that correctly replicates periodic bond loops \n", + "examples": "For examples of replicating simple linear polymer chains (periodic or\nnon-periodic) or periodic carbon nanotubes, see examples/replicate.\n\n```lmps\nreplicate 2 3 2\nreplicate 2 3 2 bbox\nreplicate 2 3 2 bond/periodic\n```\n", + "html_filename": "replicate.html", + "short_description": "Replicate the current system one or more times in each dimension", + "description": "Replicate the current system one or more times in each dimension. For\nexample, replication factors of 2,2,2 will create a simulation with 8x\nas many atoms by doubling the size of the simulation box in each\ndimension. A replication factor of 1 leaves the simulation domain\nunchanged in that dimension.\n\nWhen the new simulation box is created it is partitioned into a\nregular 3d grid of rectangular bricks, one per processor, based on the\nnumber of processors being used and the settings of the\n[processors ](https://docs.lammps.org/processors.html) command. The partitioning can be\nchanged by subsequent [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nAll properties of each atom are replicated (except per-atom fix data,\nsee the Restrictions section below). This includes their velocities,\nwhich may or may not be desirable. New atom IDs are assigned to new\natoms, as are new molecule IDs. Bonds and other topology interactions\nare created between pairs of new atoms as well as between old and new\natoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The bond discussion which follows only refers to models with\n > permanent covalent bonds typically defined in LAMMPS via a data\n > file. It is not relevant to systems modeled with many-body\n > potentials which can define bonds on-the-fly, based on the current\n > positions of nearby atoms, e.g. models using the [AIREBO > ](https://docs.lammps.org/pair_airebo.html) or [ReaxFF ](https://docs.lammps.org/pair_reaxff.html) potentials. \n > \n\nIf the *bond/periodic* keyword is not specified, bond replication is\ndone by using the image flag for each atom to \"unwrap\" it out of the\nperiodic box before replicating it. After replication is performed,\natoms outside the new periodic box are wrapped back into it. This\nassigns correct images flags to all atoms in the system. For this to\nwork, all original atoms in the original simulation box must have\nconsistent image flags. This means that if two atoms have a bond\nbetween them which crosses a periodic boundary, their respective image\nflags will differ by 1 in that dimension.\n\nImage flag consistency is not possible if a system has a periodic bond\nloop, meaning there is a chain of bonds which crosses an entire\ndimension and re-connects to itself across a periodic boundary. In\nthis case you MUST use the *bond/periodic* keyword to correctly\nreplicate the system. This option zeroes the image flags for all\natoms and uses a different algorithm to find new (nearby) bond\nneighbors in the replicated system. In the final replicated system\nall image flags are zero (in each dimension).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check for image flag consistency before performing\n > the replication (it does issue a warning about this before a\n > simulation is run). If the original image flags are inconsistent,\n > the replicated system will also have inconsistent image flags, but\n > will otherwise be correctly replicated. This is NOT the case if\n > there is a periodic bond loop. See the next note. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check for periodic bond loops. If you use the\n > *bond/periodic* keyword for a system without periodic bond loops,\n > the system will be correctly replicated, but image flag information\n > will be lost (which may or may not be important to your model). If\n > you do not use the *bond/periodic* keyword for a system with\n > periodic bond loops, the replicated system will have invalid bonds\n > (typically very long), resulting in bad dynamics. \n > \n\nIf possible, the *bbox* keyword should be used when running on a large\nnumber of processors, as it can result in a substantial speed-up for\nthe replication operation. It uses a bounding box to only check atoms\nin replicas that overlap with each processor's new subdomain when\nassigning atoms to processors. It also preserves image flag\ninformation. The only drawback to the *bbox* option is that it\nrequires a temporary use of more memory. Each processor must be able\nto store all atoms (and their per-atom data) in the original system,\nbefore it is replicated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The algorithm used by the *bond/periodic* keyword builds on the\n > algorithm used by the *bbox* keyword and thus has the same memory\n > requirements. If you specify only the *bond/peridoic* keyword it\n > will internally set the *bbox* keyword as well. \n > \n\n----------\n", + "restrictions": "A 2d simulation cannot be replicated in the z dimension.\n\nIf a simulation is non-periodic in a dimension, care should be used\nwhen replicating it in that dimension, as it may generate atoms nearly\non top of each other.\n\nIf the current simulation was read in from a restart file (before a\nrun is performed), there must not be any fix information stored in the\nfile for individual atoms. Similarly, no fixes can be defined at the\ntime the replicate command is used that require vectors of atom\ninformation to be stored. This is because the replicate command does\nnot know how to replicate that information for new atoms it creates.\n\nTo work around this restriction two options are possible. (1) Fixes\nwhich use the stored data in the restart file can be defined before\nreplication and then deleted via the [unfix ](https://docs.lammps.org/unfix.html) command and\nre-defined after it. Or (2) the restart file can be converted to a\ndata file (which deletes the stored fix information) and fixes defined\nafter the replicate command. In both these scenarios, the per-atom\nfix information in the restart file is lost.\n", + "related": "none\n" }, { "command": [ - "fix hyper/local" + "fix tfmc" ], "syntax": [ - "fix ID group-ID hyper/local cutbond qfactor Vmax Tequil Dcut alpha Btarget" + "fix ID group-ID tfmc Delta Temp seed keyword value" ], "args": [ [ @@ -11693,159 +10884,135 @@ export const command_docs = [ "choices": [] }, { - "arg": "hyper/local", + "arg": "tfmc", "type": 1, "choices": [] }, { - "arg": "cutbond", - "type": 2, - "choices": [] - }, - { - "arg": "qfactor", - "type": 2, - "choices": [] - }, - { - "arg": "Vmax", + "arg": "Delta", "type": 2, "choices": [] }, { - "arg": "Tequil", + "arg": "Temp", "type": 2, "choices": [] }, { - "arg": "Dcut", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "alpha", - "type": 2, - "choices": [] + "arg": "rot", + "type": 3, + "choices": [ + "com", + "rot" + ] }, { - "arg": "Btarget", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* hyper/local = style name of this fix command\n* cutbond = max distance at which a pair of atoms is considered bonded (distance units)\n* qfactor = max strain at which bias potential goes to 0.0 (unitless)\n* Vmax = estimated height of bias potential (energy units)\n* Tequil = equilibration temperature (temperature units)\n* Dcut = minimum distance between boosted bonds (distance units)\n* alpha = boostostat relaxation time (time units)\n* Btarget = desired time boost factor (unitless)\n* zero or more keyword/value pairs may be appended\n* keyword = bound or reset or check/ghost or check/bias \n *        bound value = Bfrac \n         Bfrac = -1 or a value >= 0.0 \n *        reset value = Rfreq \n         Rfreq = -1 or 0 or timestep value > 0 \n *        check/ghost values = none \n *        check/bias values = Nevery error/warn/ignore \n", - "examples": "\n```lmps\nfix 1 all hyper/local 1.0 0.3 0.8 300.0\nfix 1 all hyper/local 1.0 0.3 0.8 300.0 bound 0.1 reset 0\n```\n", - "html_filename": "fix_hyper_local.html", - "short_description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost local hyperdynamics (LHD) simulation", - "description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost local hyperdynamics (LHD) simulation. The role\nof this fix is to a select multiple pairs of atoms in the system at\neach timestep to add a local bias potential to, which will alter the\ndynamics of the system in a manner that effectively accelerates time.\nThis is in contrast to the [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\ncommand, which can be user to perform a global hyperdynamics (GHD)\nsimulation, by adding a global bias potential to a single pair of\natoms at each timestep. GHD can time accelerate a small simulation\nwith up to a few 100 atoms. For larger systems, LHD is needed to\nachieve good time acceleration.\n\nFor a system that undergoes rare transition events, where one or more\natoms move over an energy barrier to a new potential energy basin, the\neffect of the bias potential is to induce more rapid transitions.\nThis can lead to a dramatic speed-up in the rate at which events\noccurs, without altering their relative frequencies, thus leading to\nan overall increase in the elapsed real time of the simulation as\ncompared to running for the same number of timesteps with normal MD.\nSee the [hyper ](https://docs.lammps.org/hyper.html) page for a more general discussion of\nhyperdynamics and citations that explain both GHD and LHD.\n\nThe equations and logic used by this fix and described here to perform\nLHD follow the description given in **Voter2013lhd**. The\nbond-boost form of a bias potential for HD is due to Miron and\nFichthorn as described in **Mironlhd**.\n\nTo understand this description, you should first read the description\nof the GHD algorithm on the [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\ndoc page. This description of LHD builds on the GHD description.\n\nThe definition of bonds and \\(E_{ij}\\) are the same for GHD and LHD.\nThe formulas for \\(V^{max}_{ij}\\) and \\(F^{max}_{ij}\\) are also\nthe same except for a prefactor \\(C_{ij}\\), explained below.\n\nThe bias energy \\(V_{ij}\\) applied to a bond *ij* with maximum strain is\n\\[\n 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}\\]\nThe derivative of \\(V^{max}_{ij}\\) with respect to the position of\neach atom in the *ij* bond gives a bias force \\(F^{max}_{ij}\\) acting\non the bond as\n\\[\n 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}\\]\nwhich can be decomposed into an equal and opposite force acting on\nonly the two atoms *i* and *j* in the *ij* bond.\n\nThe key difference is that in GHD a bias energy and force is added (on\na particular timestep) to only one bond (pair of atoms) in the system,\nwhich is the bond with maximum strain \\(E^{max}\\).\n\nIn LHD, a bias energy and force can be added to multiple bonds\nseparated by the specified *Dcut* distance or more. A bond *ij* is\nbiased if it is the maximum strain bond within its local\n\"neighborhood\", which is defined as the bond *ij* plus any neighbor\nbonds within a distance *Dcut* from *ij*. The \"distance\" between bond\n*ij* and bond *kl* is the minimum distance between any of the *ik*, *il*,\n*jk*, and *jl* pairs of atoms.\n\nFor a large system, multiple bonds will typically meet this\nrequirement, and thus a bias potential \\(V^{max}_{ij}\\) will be\napplied to many bonds on the same timestep.\n\nIn LHD, all bonds store a \\(C_{ij}\\) prefactor which appears in\nthe \\(V^{max}_{ij}\\) and :math:`F^{max}_{ij}equations above. Note\nthat the \\(C_{ij}\\) factor scales the strength of the bias energy\nand forces whenever bond *ij* is the maximum strain bond in its neighborhood.\n\n\\(C_{ij}\\) is initialized to 1.0 when a bond between the *ij* atoms\nis first defined. The specified *Btarget* factor is then used to adjust the\n\\(C_{ij}\\) prefactors for each bond every timestep in the following manner.\n\nAn instantaneous boost factor \\(B_{ij}\\) is computed each timestep\nfor each bond, as\n\\[\n B_{ij} = e^{\\beta V^{max}_{kl}}\\]\nwhere \\(V^{max}_{kl}\\) is the bias energy of the maxstrain bond *kl*\nwithin bond *ij* 's neighborhood, \\(\\beta = \\frac{1}{kT_{equil}}\\),\nand \\(T_{equil}\\) is the temperature of the system and an argument\nto this fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To run an LHD simulation, the input script must also use the\n > [fix langevin ](https://docs.lammps.org/fix_langevin.html) command to thermostat the atoms at\n > the same \\(T_{equil}\\) as specified by this fix, so that the\n > system is running constant-temperature (NVT) dynamics. LAMMPS does\n > not check that this is done. \n > \n\nNote that if *ij* == *kl*, then bond *ij* is a biased bond on that\ntimestep, otherwise it is not. But regardless, the boost factor\n\\(B_{ij}\\) can be thought of an estimate of time boost currently\nbeing applied within a local region centered on bond *ij*. For LHD,\nwe want this to be the specified *Btarget* value everywhere in the\nsimulation domain.\n\nTo accomplish this, if \\(B_{ij} < B_{target}\\), the \\(C_{ij}\\)\nprefactor for bond *ij* is incremented on the current timestep by an\namount proportional to the inverse of the specified \\(\\alpha\\) and\nthe difference (\\(B_{ij} - B_{target}\\)). Conversely if\n\\(B_{ij} > B_{target}\\), \\(C_{ij}\\) is decremented by the same\namount. This procedure is termed \"boostostatting\" in **Voter2013lhd**. It drives all of the individual \\(C_{ij}\\) to\nvalues such that when \\(V^{max}_{ij}\\) is applied as a bias to bond\n*ij*, the resulting boost factor \\(B_{ij}\\) will be close to\n\\(B_{target}\\) on average. Thus the LHD time acceleration factor\nfor the overall system is effectively *Btarget* .\n\nNote that in LHD, the boost factor \\(B_{target}\\) is specified by the user.\nThis is in contrast to global hyperdynamics (GHD) where the boost\nfactor varies each timestep and is computed as a function of \\(V_{max}\\),\n\\(E_{max}\\), and \\(T_{equil}\\); see the\n[fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html) page for details.\n\n----------\n\nHere is additional information on the input parameters for LHD.\n\nNote that the *cutbond*, *qfactor*, and *Tequil* arguments have the\nsame meaning as for GHD. The *Vmax* argument is slightly different.\nThe *Dcut*, *alpha*, and *Btarget* parameters are unique to LHD.\n\nThe *cutbond* argument is the cutoff distance for defining bonds\nbetween pairs of nearby atoms. A pair of I,J atoms in their\nequilibrium, minimum-energy configuration, which are separated by a\ndistance \\(R_{ij} < cutbond\\), are flagged as a bonded pair. Setting\n*cubond* to be ~25% larger than the nearest-neighbor distance in a\ncrystalline lattice is a typical choice for solids, so that bonds\nexist only between nearest neighbor pairs.\n\nThe *qfactor* argument is the limiting strain at which the bias\npotential goes to 0.0. It is dimensionless, so a value of 0.3 means a\nbond distance can be up to 30% larger or 30% smaller than the\nequilibrium (quenched) \\(R^0_{ij}\\) distance and the two atoms in the bond\ncould still experience a non-zero bias force.\n\nIf *qfactor* is set too large, then transitions from one energy basin\nto another are affected because the bias potential is non-zero at the\ntransition state (e.g. saddle point). If *qfactor* is set too small\nthan little boost can be achieved because the \\(E_{ij}\\) strain of\nsome bond in\nthe system will (nearly) always exceed *qfactor* . A value of 0.3 for\n*qfactor* is typically a reasonable value.\n\nThe *Vmax* argument is a fixed prefactor on the bias potential. There\nis a also a dynamic prefactor \\(C_{ij}\\), driven by the choice of\n*Btarget* as discussed above. The product of these should be a value less than\nthe smallest barrier height for an event to occur. Otherwise the\napplied bias potential may be large enough (when added to the\ninteratomic potential) to produce a local energy basin with a maxima\nin the center. This can produce artificial energy minima in the same\nbasin that trap an atom. Or if \\(C_{ij} \\cdot V^{max}\\) is even\nlarger, it may\ninduce an atom(s) to rapidly transition to another energy basin. Both\ncases are \"bad dynamics\" which violate the assumptions of LHD that\nguarantee an accelerated time-accurate trajectory of the system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It may seem that \\(V^{max}\\) can be set to any value, and\n > \\(C_{ij}\\) will compensate to reduce the overall prefactor\n > if necessary. However the \\(C_{ij}\\) are initialized to 1.0\n > and the boostostatting procedure typically operates slowly enough\n > that there can be a time period of bad dynamics if \\(V^{max}\\)\n > is set too large. A better strategy is to set \\(V^{max}\\) to the\n > slightly smaller than the lowest barrier height for an event (the same\n > as for GHD), so that the \\(C_{ij}\\) remain near unity. \n > \n\nThe *Tequil* argument is the temperature at which the system is\nsimulated; see the comment above about the [fix langevin](https://docs.lammps.org/fix_langevin.html) thermostatting. It is also part of the beta term in the\nexponential factor that determines how much boost is achieved as a\nfunction of the bias potential. See the discussion of the *Btarget*\nargument below.\n\nAs discussed above, the *Dcut* argument is the distance required\nbetween two locally maxstrain bonds for them to both be selected as\nbiased bonds on the same timestep. Computationally, the larger *Dcut*\nis, the more work (computation and communication) must be done each\ntimestep within the LHD algorithm. And the fewer bonds can be\nsimultaneously biased, which may mean the specified *Btarget* time\nacceleration cannot be achieved.\n\nPhysically *Dcut* should be a long enough distance that biasing two\npairs of atoms that close together will not influence the dynamics of\neach pair. E.g. something like 2x the cutoff of the interatomic\npotential. In practice a *Dcut* value of ~10 Angstroms seems to work\nwell for many solid-state systems.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should ensure that ghost atom communication is performed for\n > a distance of at least *Dcut* + *cutevent* = the distance one or more\n > atoms move (between quenched states) to be considered an \"event\". It\n > is an argument to the \"compute event/displace\" command used to detect\n > events. By default the ghost communication distance is set by the\n > pair_style cutoff, which will typically be < *Dcut* . The [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command should be used to override the ghost\n > cutoff explicitly, e.g. \n > \n\n\n```lmps\ncomm_modify cutoff 12.0\n```\nNote that this fix does not know the *cutevent* parameter, but uses\nhalf the *cutbond* parameter as an estimate to warn if the ghost\ncutoff is not long enough.\n\nAs described above the *alpha* argument is a prefactor in the\nboostostat update equation for each bond's \\(C_{ij}\\) prefactor.\n*Alpha* is specified in time units, similar to other thermostat or barostat\ndamping parameters. It is roughly the physical time it will take the\nboostostat to adjust a \\(C_{ij}\\) value from a too high (or too low)\nvalue to a correct one. An *alpha* setting of a few ps is typically good for\nsolid-state systems. Note that the *alpha* argument here is the\ninverse of the alpha parameter discussed in\n**Voter2013lhd**.\n\nThe *Btarget* argument is the desired time boost factor (a value > 1)\nthat all the atoms in the system will experience. The elapsed time\nt_hyper for an LHD simulation running for *N* timesteps is simply\n\\[\n t_{hyper} = B_{target} \\cdot N \\cdot dt\\]\nwhere *dt* is the timestep size defined by the [timestep ](https://docs.lammps.org/timestep.html)\ncommand. The effective time acceleration due to LHD is thus\n\\(\\frac{t_{hyper}}{N\\cdot dt} = B_{target}\\), where \\(N\\cdot dt\\)\nis the elapsed time for a normal MD run of N timesteps.\n\nYou cannot choose an arbitrarily large setting for *Btarget* . The\nmaximum value you should choose is\n\\[\n B_{target} = e^{\\beta V_{small}}\\]\nwhere \\(V_{small}\\) is the smallest event barrier height in your\nsystem, \\(\\beta = \\frac{1}{kT_{equil}}\\), and \\(T_{equil}\\)\nis the specified temperature of the system\n(both by this fix and the Langevin thermostat).\n\nNote that if *Btarget* is set smaller than this, the LHD simulation\nwill run correctly. There will just be fewer events because the hyper\ntime (t_hyper equation above) will be shorter.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have no physical intuition as to the smallest barrier\n > height in your system, a reasonable strategy to determine the largest\n > *Btarget* you can use for an LHD model, is to run a sequence of\n > simulations with smaller and smaller *Btarget* values, until the event\n > rate does not change (as a function of hyper time). \n > \n\n----------\n\nHere is additional information on the optional keywords for this fix.\n\nThe *bound* keyword turns on min/max bounds for bias coefficients\n\\(C_{ij}\\) for all bonds. \\(C_{ij}\\) is a prefactor for each bond on\nthe bias potential of maximum strength \\(V^{max}\\). Depending on the\nchoice of *alpha* and *Btarget* and *Vmax*, the boostostatting can cause\nindividual \\(C_{ij}\\) values to fluctuate. If the fluctuations are too\nlarge \\(C_{ij} \\cdot V^{max}\\) can exceed low barrier heights and induce\nbad event dynamics. Bounding the \\(C_{ij}\\) values is a way to prevent\nthis. If *Bfrac* is set to -1 or any negative value (the default) then no\nbounds are enforced on \\(C_{ij}\\) values (except they must always\nbe >= 0.0). A *Bfrac* setting >= 0.0\nsets a lower bound of 1.0 - Bfrac and upper bound of 1.0 + Bfrac on each\n\\(C_{ij}\\) value. Note that all \\(C_{ij}\\) values are initialized\nto 1.0 when a bond is created for the first time. Thus *Bfrac* limits the\nbias potential height to *Vmax* +/- *Bfrac* \\*\\ *Vmax* .\n\nThe *reset* keyword allow *Vmax* to be adjusted dynamically depending on the\naverage value of all \\(C_{ij}\\) prefactors. This can be useful if you\nare unsure what value of *Vmax* will match the *Btarget* boost for the\nsystem. The \\(C_{ij}\\) values will then adjust in aggregate (up or down)\nso that \\(C_{ij} \\cdot V^{max}\\) produces a boost of *Btarget*, but this\nmay conflict with the *bound* keyword settings. By using *bound* and *reset*\ntogether, \\(V^{max}\\) itself can be reset, and desired bounds still applied\nto the \\(C_{ij}\\) values.\n\nA setting for *Rfreq* of -1 (the default) means *Vmax* never changes.\nA setting of 0 means \\(V^{max}\\) is adjusted every time an event occurs and\nbond pairs are recalculated. A setting of N > 0 timesteps means\n\\(V^{max}\\) is adjusted on the first time an event occurs on a timestep >=\nN steps after the previous adjustment. The adjustment to \\(V^{max}\\) is\ncomputed as follows. The current average of all \\(C_{ij} \\cdot V^{max}\\)\nvalues is computed and the \\(V^{max}\\) is reset to that value. All\n\\(C_{ij}\\) values are changed to new prefactors such the new\n\\(C_{ij} \\cdot V^{max}\\) is the same as it was previously. If the\n*bound* keyword was used, those bounds are enforced on the new \\(C_{ij}\\)\nvalues. Henceforth, new bonds are assigned a \\(C_{ij} = 1.0\\), which\nmeans their bias potential magnitude is the new \\(V^{max}\\).\n\nThe *check/ghost* keyword turns on extra computation each timestep to\ncompute statistics about ghost atoms used to determine which bonds to\nbias. The output of these stats are the vector values 14 and 15,\ndescribed below. If this keyword is not enabled, the output\nof the stats will be zero.\n\nThe *check/bias* keyword turns on extra computation and communication\nto check if any biased bonds are closer than *Dcut* to each other,\nwhich should not be the case if LHD is operating correctly. Thus it\nis a debugging check. The *Nevery* setting determines how often the\ncheck is made. The *error*, *warn*, or *ignore* setting determines\nwhat is done if the count of too-close bonds is not zero. Either the\ncode will exit, or issue a warning, or silently tally the count. The\ncount can be output as vector value 17, as described below. If this\nkeyword is not enabled, the output of that statistic will be 0.\n\nNote that both of these computations are costly, hence they are only\nenabled by these keywords.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of the bias potential to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and global vector of length 28,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the magnitude of the bias potential\n(energy units) applied on the current timestep, summed over all biased\nbonds. The vector stores the following quantities:\n\n #. average boost for all bonds on this step (unitless)\n #. # of biased bonds on this step\n #. max strain \\(E_{ij}\\) of any bond on this step (absolute value, unitless)\n #. value of \\(V^{max}\\) on this step (energy units)\n #. average bias coeff for all bonds on this step (unitless)\n #. min bias coeff for all bonds on this step (unitless)\n #. max bias coeff for all bonds on this step (unitless)\n #. average # of bonds/atom on this step\n #. average neighbor bonds/bond on this step within *Dcut*\n\n #. average boost for all bonds during this run (unitless)\n #. average # of biased bonds/step during this run\n #. fraction of biased bonds with no bias during this run\n #. fraction of biased bonds with negative strain during this run\n #. max bond length during this run (distance units)\n #. average bias coeff for all bonds during this run (unitless)\n #. min bias coeff for any bond during this run (unitless)\n #. max bias coeff for any bond during this run (unitless)\n\n #. max drift distance of any bond atom during this run (distance units)\n #. max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)\n #. max distance outside my box of any ghost atom with any maxstrain during this run (distance units)\n #. count of ghost atoms that could not be found on reneighbor steps during this run\n #. count of bias overlaps (< *Dcut*) found during this run\n\n #. cumulative hyper time since fix created (time units)\n #. cumulative count of event timesteps since fix created\n #. cumulative count of atoms in events since fix created\n #. cumulative # of new bonds formed since fix created\n\n #. average boost for biased bonds on this step (unitless)\n #. # of bonds with absolute strain >= q on this step\n\nQuantities 1-9 are for the current timestep. Quantities 10-22\nare for the current hyper run. They are reset each time a new\nhyper run is performed. Quantities 23-26 are cumulative across\nmultiple runs (since the point in the input script the fix was\ndefined).\n\nFor value 10, each bond instantaneous boost factor is given by the\nequation for \\(B_{ij}\\) above. The total system boost (average across all\nbonds) fluctuates, but should average to a value close to the\nspecified \\(B_{target}\\).\n\nFor value 12, the numerator is a count of all biased bonds on each\ntimestep whose bias energy = 0.0 due to \\(E_{ij} >= qfactor\\). The\ndenominator is the count of all biased bonds on all timesteps.\n\nFor value 13, the numerator is a count of all biased bonds on each\ntimestep with negative strain. The denominator is the count of all\nbiased bonds on all timesteps.\n\nValues 18-22 are mostly useful for debugging and diagnostic purposes.\n\nFor value 18, drift is the distance an atom moves between two quenched\nstates when the second quench determines an event has occurred. Atoms\ninvolved in an event will typically move the greatest distance since\nothers typically remain near their original quenched position.\n\nFor values 19-21, neighbor atoms in the full neighbor list with cutoff\n*Dcut* may be ghost atoms outside a processor's sub-box. Before the\nnext event occurs they may move further than *Dcut* away from the\nsub-box boundary. Value 19 is the furthest (from the sub-box) any\nghost atom in the neighbor list with maxstrain < *qfactor* was\naccessed during the run. Value 20 is the same except that the ghost\natom's maxstrain may be >= *qfactor*, which may mean it is about to\nparticipate in an event. Value 21 is a count of how many ghost atoms\ncould not be found on reneighbor steps, presumably because they moved\ntoo far away due to their participation in an event (which will likely\nbe detected at the next quench).\n\nTypical values for 19 and 20 should be slightly larger than *Dcut*,\nwhich accounts for ghost atoms initially at a *Dcut* distance moving\nthermally before the next event takes place.\n\nNote that for values 19 and 20 to be computed, the optional keyword\n*check/ghost* must be specified. Otherwise these values will be zero.\nThis is because computing them incurs overhead, so the values are only\ncomputed if requested.\n\nValue 21 should be zero or small. As explained above a small count\nlikely means some ghost atoms were participating in their own events\nand moved a longer distance. If the value is large, it likely means\nthe communication cutoff for ghosts is too close to *Dcut* leading to\nmany not-found ghost atoms before the next event. This may lead to a\nreduced number of bonds being selected for biasing, since the code\nassumes those atoms are part of highly strained bonds. As explained\nabove, the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command can be used\nto set a longer cutoff.\n\nFor value 22, no two bonds should be biased if they are within a\n*Dcut* distance of each other. This value should be zero, indicating\nthat no pair of biased bonds are closer than *Dcut* from each other.\n\nNote that for value 22 to be computed, the optional keyword\n*check/bias* must be specified and it determines how often this check\nis performed. This is because performing the check incurs overhead,\nso if only computed as often as requested.\n\nThe result at the end of the run is the cumulative total from every\ntimestep the check was made. Note that the value is a count of atoms\nin bonds which found other atoms in bonds too close, so it is almost\nalways an over-count of the number of too-close bonds.\n\nValue 23 is simply the specified *boost* factor times the number of\ntimesteps times the timestep size.\n\nFor value 24, events are checked for by the [hyper ](https://docs.lammps.org/hyper.html) command\nonce every *Nevent* timesteps. This value is the count of those\ntimesteps on which one (or more) events was detected. It is NOT the\nnumber of distinct events, since more than one event may occur in the\nsame *Nevent* time window.\n\nFor value 25, each time the [hyper ](https://docs.lammps.org/hyper.html) command checks for an\nevent, it invokes a compute to flag zero or more atoms as\nparticipating in one or more events. E.g. atoms that have displaced\nmore than some distance from the previous quench state. Value 25 is\nthe cumulative count of the number of atoms participating in any of\nthe events that were found.\n\nValue 26 tallies the number of new bonds created by the bond reset\noperation. Bonds between a specific I,J pair of atoms may persist for\nthe entire hyperdynamics simulation if neither I or J are involved in\nan event.\n\nValue 27 computes the average boost for biased bonds only on this step.\n\nValue 28 is the count of bonds with an absolute value of strain >= q\non this step.\n\nThe scalar value and vector values are all \"intensive\".\n\nThis fix also computes a local vector of length the number of bonds\ncurrently in the system. The value for each bond is its \\(C_{ij}\\)\nprefactor (bias coefficient). These values can be can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). A particularly useful one is the\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command which can be used to\nhistogram the Cij values to see if they are distributed reasonably\nclose to 1.0, which indicates a good choice of \\(V^{max}\\).\n\nThe local values calculated by this fix are unitless.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Voter2013lhd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Mironlhd)** R. A. Miron and K. A. Fichthorn, J Chem Phys, 119, 6210 (2003). \n \n**(Voter2013lhd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n ", - "restrictions": "This fix is part of the REPLICA package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[hyper ](https://docs.lammps.org/hyper.html), [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tfmc = style name of this fix command\n* Delta = maximal displacement length (distance units)\n* Temp = imposed temperature of the system\n* seed = random number seed (positive integer)\n* zero or more keyword/arg pairs may be appended\n* keyword = com or rot \n *        com args = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension \n *        rot args = none \n", + "examples": "\n```lmps\nfix 1 all tfmc 0.1 1000.0 159345\nfix 1 all tfmc 0.05 600.0 658943 com 1 1 0\nfix 1 all tfmc 0.1 750.0 387068 com 1 1 1 rot\n```\n", + "html_filename": "fix_tfmc.html", + "short_description": "Perform uniform-acceptance force-bias Monte Carlo (fbMC) simulations,\nusing the time-stamped force-bias Monte Carlo (tfMC) algorithm\ndescribed in **Mees** and **Bal**", + "description": "Perform uniform-acceptance force-bias Monte Carlo (fbMC) simulations,\nusing the time-stamped force-bias Monte Carlo (tfMC) algorithm\ndescribed in **Mees** and **Bal**.\n\nOne successful use case of force-bias Monte Carlo methods is that they\ncan be used to extend the time scale of atomistic simulations, in\nparticular when long time scale relaxation effects must be considered;\nsome interesting examples are given in the review by **Neyts**.\nAn example of a typical use case would be the modelling of chemical\nvapor deposition (CVD) processes on a surface, in which impacts by\ngas-phase species can be performed using MD, but subsequent relaxation\nof the surface is too slow to be done using MD only. Using tfMC can\nallow for a much faster relaxation of the surface, so that higher\nfluxes can be used, effectively extending the time scale of the\nsimulation. (Such an alternating simulation approach could be set up\nusing a [loop ](https://docs.lammps.org/jump.html).)\n\nThe initial version of tfMC algorithm in **Mees** contained an\nestimation of the effective time scale of such a simulation, but it\nwas later shown that the speed-up one can gain from a tfMC simulation\nis system- and process-dependent, ranging from none to several orders\nof magnitude. In general, solid-state processes such as\n(re)crystallization or growth can be accelerated by up to two or three\norders of magnitude, whereas diffusion in the liquid phase is not\naccelerated at all. The observed pseudodynamics when using the tfMC\nmethod is not the actual dynamics one would obtain using MD, but the\nrelative importance of processes can match the actual relative\ndynamics of the system quite well, provided *Delta* is chosen with\ncare. Thus, the system's equilibrium is reached faster than in MD,\nalong a path that is generally roughly similar to a typical MD\nsimulation (but not necessarily so). See **Bal** for details.\n\nEach step, all atoms in the selected group are displaced using the\nstochastic tfMC algorithm, which is designed to sample the canonical\n(NVT) ensemble at the temperature *Temp* . Although tfMC is a Monte\nCarlo algorithm and thus strictly speaking does not perform time\nintegration, it is similar in the sense that it uses the forces on all\natoms in order to update their positions. Therefore, it is implemented\nas a time integration fix, and no other fixes of this type (such as\n[fix nve ](https://docs.lammps.org/fix_nve.html)) should be used at the same time. Because\nvelocities do not play a role in this kind of Monte Carlo simulations,\ninstantaneous temperatures as calculated by [temperature computes ](https://docs.lammps.org/compute_temp.html) or [thermodynamic output ](https://docs.lammps.org/thermo_style.html) have no meaning: the only relevant\ntemperature is the sampling temperature *Temp* . Similarly, performing\ntfMC simulations does not require setting a [timestep ](https://docs.lammps.org/timestep.html)\nand the [simulated time ](https://docs.lammps.org/thermo_style.html) as calculated by LAMMPS is\nmeaningless.\n\nThe critical parameter determining the success of a tfMC simulation is\n*Delta*, the maximal displacement length of the lightest element in\nthe system: the larger it is, the longer the effective time scale of\nthe simulation will be (there is an approximately quadratic\ndependence). However, *Delta* must also be chosen sufficiently small\nin order to comply with detailed balance; in general values between 5\nand 10 % of the nearest neighbor distance are found to be a good\nchoice. For a more extensive discussion with specific examples, please\nrefer to **Bal**, which also describes how the code calculates\nelement-specific maximal displacements from *Delta*, based on the\nfourth root of their mass.\n\nBecause of the uncorrelated movements of the atoms, the center-of-mass\nof the fix group will not necessarily be stationary, just like its\norientation. When the *com* keyword is used, all atom positions will\nbe shifted (after every tfMC iteration) in order to fix the position\nof the center-of-mass along the included directions, by setting the\ncorresponding flag to 1. The *rot* keyword does the same for the\nrotational component of the tfMC displacements after every iteration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the *com* and *rot* keywords should not be used if an external\n > force is acting on the specified fix group, along the included\n > directions. This can be either a true external force (e.g. through\n > [fix wall ](https://docs.lammps.org/fix_wall.html)) or forces due to the interaction with atoms\n > not included in the fix group. This is because in such cases,\n > translations or rotations of the fix group could be induced by these\n > external forces, and removing them will lead to a violation of\n > detailed balance. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Mees)** M. J. Mees, G. Pourtois, E. C. Neyts, B. J. Thijsse, and\nA. Stesmans, Phys. Rev. B 85, 134301 (2012). \n \n**(Bal)** K. M Bal and E. C. Neyts, J. Chem. Phys. 141, 204104 (2014). \n \n**(Neyts)** E. C. Neyts and A. Bogaerts, Theor. Chem. Acc. 132, 1320\n(2013). \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix is not compatible with [fix shake ](https://docs.lammps.org/fix_shake.html).\n", + "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html), [fix nvt ](https://docs.lammps.org/fix_nh.html)\n" }, { "command": [ - "fix evaporate" + "improper_style cossq", + "improper_style cossq/omp" ], "syntax": [ - "fix ID group-ID evaporate N M region-ID seed" + "improper_style cossq" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "evaporate", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "M", - "type": 2, - "choices": [] - }, - { - "arg": "region-ID", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] + "arg": "cossq", + "type": 3, + "choices": [ + "cossq", + "cossq/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* evaporate = style name of this fix command\n* N = delete atoms every this many timesteps\n* M = number of atoms to delete each time\n* region-ID = ID of region within which to perform deletions\n* seed = random number seed to use for choosing atoms to delete\n* zero or more keyword/value pairs may be appended \n *      keyword = molecule \n       molecule value = no or yes \n", - "examples": "\n```lmps\nfix 1 solvent evaporate 1000 10 surface 49892\nfix 1 solvent evaporate 1000 10 surface 38277 molecule yes\n```\n", - "html_filename": "fix_evaporate.html", - "short_description": "Remove M atoms from the simulation every N steps", - "description": "Remove M atoms from the simulation every N steps. This can be used,\nfor example, to model evaporation of solvent particles or molecules\n(i.e. drying) of a system. Every N steps, the number of atoms in the\nfix group and within the specified region are counted. M of these are\nchosen at random and deleted. If there are less than M eligible\nparticles, then all of them are deleted.\n\nIf the setting for the *molecule* keyword is *no*, then only single\natoms are deleted. In this case, you should ensure you do not delete\nonly a portion of a molecule (only some of its atoms), or LAMMPS will\nsoon generate an error when it tries to find those atoms. LAMMPS will\nwarn you if any of the atoms eligible for deletion have a non-zero\nmolecule ID, but does not check for this at the time of deletion.\n\nIf the setting for the *molecule* keyword is *yes*, then when an atom\nis chosen for deletion, the entire molecule it is part of is deleted.\nThe count of deleted atoms is incremented by the number of atoms in\nthe molecule, which may make it exceed *M* . If the molecule ID of the\nchosen atom is 0, then it is assumed to not be part of a molecule, and\njust the single atom is deleted.\n\nAs an example, if you wish to delete 10 water molecules every *N*\nsteps, you should set *M* to 30. If only the water's oxygen atoms\nwere in the fix group, then two hydrogen atoms would be deleted when\nan oxygen atom is selected for deletion, whether the hydrogen atoms\nare inside the evaporation region or not.\n\nNote that neighbor lists are re-built on timesteps that atoms are\nremoved. Thus you should not remove atoms too frequently or you will\nincur overhead due to the cost of building neighbor lists.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the atom\n > count is changing due to evaporation, you typically should use the\n > [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command for the\n > temperature compute you are using. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes a global scalar, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nnumber of deleted atoms. The scalar value calculated by this fix is\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "None\n", - "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style cossq\nimproper_coeff 1 4.0 0.0\n```\n", + "html_filename": "improper_cossq.html", + "short_description": "The *cossq* improper style uses the potential\n\\[\n E = \\frac{1}{2} K \\cos^2{\\left(\\chi - \\chi_0\\right)}\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its\nequilibrium value, and \\(K\\) is a prefactor", + "description": "The *cossq* improper style uses the potential\n\\[\n E = \\frac{1}{2} K \\cos^2{\\left(\\chi - \\chi_0\\right)}\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its\nequilibrium value, and \\(K\\) is a prefactor.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\n\\(\\chi\\) is the angle between the plane of I,J,K and the plane of J,K,L.\nAlternatively, you can think of atoms J,K,L as being in a plane, and\natom I above the plane, and \\(\\chi\\) as a measure of how far\nout-of-plane I is with respect to the other 3 atoms.\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "compute temp/uef" + "fix_modify AtC kernel" ], "syntax": [ - "compute ID group-ID temp/uef" + "fix_modify kernel " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "kernel", + "type": 1, "choices": [] }, { - "arg": "temp/uef", - "type": 1, + "arg": "", + "type": 3, + "choices": [ + "step", + "cell", + "cubic_bar" + ] + }, + { + "arg": "", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/uef = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all temp/uef\ncompute 2 sel temp/uef\n```\n", - "html_filename": "compute_temp_uef.html", - "short_description": "This command is used to compute the kinetic energy tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used", - "description": "This command is used to compute the kinetic energy tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used.\nIt is not necessary to use this command to compute the scalar\nvalue of the temperature. A [compute temp ](https://docs.lammps.org/compute_temp.html)\nmay be used for that purpose.\n\nOutput information for this command can be found in the\ndocumentation for [compute temp ](https://docs.lammps.org/compute_temp.html).\n", - "restrictions": "This fix is part of the UEF package. It is only enabled if LAMMPS was built\nwith that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThis command can only be used when [fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\nor [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is active.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html),\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* kernel = name of the AtC sub-command\n* type = step or cell or cubic_bar or cubic_cylinder or\n cubic_sphere or quartic_bar or quartic_cylinder or\n quartic_sphere\n* the following parameter(s) are required for each kernel:\n\n - step : \n - cell : or \n - cubic_bar : \n - cubic_cylinder : \n - cubic_sphere : \n - quartic_bar : \n - quartic_cylinder : \n - quartic_sphere : \n", + "examples": "\n```lmps\nfix_modify AtC kernel cell 1.0 1.0 1.0\nfix_modify AtC kernel quartic_sphere 10.0\n```\n", + "html_filename": "atc_hardy_kernel.html", + "short_description": "Sets the localization kernel type and parameters for [fix atc hardy ](https://docs.lammps.org/fix_atc.html)", + "description": "Sets the localization kernel type and parameters for [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). For bar kernel types,\nhalf-width oriented along x-direction. For cylinder kernel types,\ncylindrical axis is assumed to be in z-direction.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n- [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n" }, { "command": [ - "compute vcm/chunk" + "compute com/chunk" ], "syntax": [ - "compute ID group-ID vcm/chunk chunkID" + "compute ID group-ID com/chunk chunkID" ], "args": [ [ @@ -11865,7 +11032,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "vcm/chunk", + "arg": "com/chunk", "type": 1, "choices": [] }, @@ -11876,93 +11043,75 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* vcm/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid vcm/chunk molchunk\n```\n", - "html_filename": "compute_vcm_chunk.html", - "short_description": "Define a computation that calculates the center-of-mass velocity for\nmultiple chunks of atoms", - "description": "Define a computation that calculates the center-of-mass velocity for\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule or atoms\nin a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages for details of how chunks can be\ndefined and examples of how they can be used to measure properties of a system.\n\nThis compute calculates the \\((x,y,z)\\) components of the center-of-mass\nvelocity for each chunk. This is done by summing mass\\*velocity for\neach atom in the chunk and dividing the sum by the total mass of the\nchunk.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nThe simplest way to output the results of the compute vcm/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all vcm/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of\ncolumns is 3 for the \\((x,y,z)\\) center-of-mass velocity coordinates of\neach chunk. These values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nvelocity [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "none\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* com/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid com/chunk molchunk\n```\n", + "html_filename": "compute_com_chunk.html", + "short_description": "Define a computation that calculates the center-of-mass for multiple\nchunks of atoms", + "description": "Define a computation that calculates the center-of-mass for multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the \\((x,y,z)\\) coordinates of the center of mass\nfor each chunk, which includes all effects due to atoms passing through\nperiodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's\n > center-of-mass in \"unwrapped\" form, by using the image flags\n > associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section of\n > the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute com/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all com/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is\n3 for the \\((x,y,z)\\) center-of-mass coordinates of each chunk. These\nvalues can be accessed by any command that uses global array values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndistance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute com ](https://docs.lammps.org/compute_com.html)\n" }, { "command": [ - "angle_style amoeba" + "fix box/relax" ], "syntax": [ - "angle_style amoeba" + "fix ID group-ID box/relax keyword value ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "amoeba", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nangle_style amoeba\nangle_coeff * 75.0 -25.0 1.0 0.3 0.02 0.003\nangle_coeff * ba 3.6551 24.895 1.0119 1.5228\nangle_coeff * ub -7.6 1.5537\n```\n", - "html_filename": "angle_amoeba.html", - "short_description": "The *amoeba* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{ba} + E_{ub} \\\\\n E_a & = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6 \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\\\\n E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2 \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{ba}\\) is a bond-angle\nterm, \\(E_{UB}\\) is a Urey-Bradley bond term, \\(\\theta_0\\) is\nthe equilibrium angle, \\(r_1\\) and \\(r_2\\) are the equilibrium\nbond lengths, and \\(r_{ub}\\) is the equilibrium Urey-Bradley bond\nlength", - "description": "The *amoeba* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{ba} + E_{ub} \\\\\n E_a & = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6 \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\\\\n E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2 \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{ba}\\) is a bond-angle\nterm, \\(E_{UB}\\) is a Urey-Bradley bond term, \\(\\theta_0\\) is\nthe equilibrium angle, \\(r_1\\) and \\(r_2\\) are the equilibrium\nbond lengths, and \\(r_{ub}\\) is the equilibrium Urey-Bradley bond\nlength.\n\nThese formulas match how the Tinker MD code performs its angle\ncalculations for the AMOEBA and HIPPO force fields. See the\n[Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) page for more information about\nthe implementation of AMOEBA and HIPPO in LAMMPS.\n\nNote that the \\(E_a\\) and \\(E_{ba}\\) formulas are identical to\nthose used for the [angle_style class2/p6 ](https://docs.lammps.org/angle_class2.html)\ncommand, however there is no bond-bond cross term formula for\n\\(E_{bb}\\). Additionally, there is a \\(E_{UB}\\) term for a\nUrey-Bradley bond. It is effectively a harmonic bond between the I\nand K atoms of angle IJK, even though that bond is not enumerated in\nthe \"Bonds\" section of the data file.\n\nThere are also two ways that Tinker computes the angle \\(\\theta\\)\nin the \\(E_a\\) formula. The first is the standard way of treating\nIJK as an \"in-plane\" angle. The second is an \"out-of-plane\" method\nwhich Tinker may use if the center atom J in the angle is bonded to\none additional atom in addition to I and K. In this case, all 4 atoms\nare used to compute the \\(E_a\\) formula, resulting in forces on\nall 4 atoms. In the Tinker PRM file, these 2 options are denoted by\n*angle* versus *anglep* entries in the \"Angle Bending Parameters\"\nsection of the PRM force field file. The *pflag* coefficient\ndescribed below selects between the 2 options.\n\n----------\n\n\nCoefficients for the \\(E_a\\), \\(E_{bb}\\), and \\(E_{ub}\\)\nformulas must be defined for each angle type via the [angle_coeff](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 8 coefficients for the \\(E_a\\) formula:\n\n* pflag = 0 or 1\n* ubflag = 0 or 1\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n* \\(K_5\\) (energy)\n* \\(K_6\\) (energy)\n\nA pflag value of 0 vs 1 selects between the \"in-plane\" and\n\"out-of-plane\" options described above. Ubflag is 1 if there is a\nUrey-Bradley term associated with this angle type, else it is 0.\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) values are effectively\nenergy per radian\\^2 or radian\\^3 or radian\\^4 or radian\\^5 or\nradian\\^6.\n\nFor the \\(E_{ba}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 5 coefficients, the\nfirst of which is \"ba\" to indicate they are BondAngle coefficients.\nIn a data file, these coefficients should be listed under a \"BondAngle\nCoeffs\" heading and you must leave out the \"ba\", i.e. only list 4\ncoefficients after the angle type.\n\n* ba\n* \\(N_1\\) (energy/distance\\^2)\n* \\(N_2\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nThe \\(\\theta_0\\) value in the \\(E_{ba}\\) formula is not specified,\nsince it is the same value from the \\(E_a\\) formula.\n\nFor the \\(E_{ub}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 3 coefficients, the\nfirst of which is \"ub\" to indicate they are UreyBradley coefficients.\nIn a data file, these coefficients should be listed under a\n\"UreyBradley Coeffs\" heading and you must leave out the \"ub\",\ni.e. only list 2 coefficients after the angle type.\n\n* ub\n* \\(K_{ub}\\) (energy/distance\\^2)\n* \\(r_{ub}\\) (distance)\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the AMOEBA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page for\nmore info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" -}, -{ - "command": [ - "compute smd/ulsph/strain" - ], - "syntax": [ - "compute ID group-ID smd/ulsph/strain" - ], - "args": [ - [ + }, { - "arg": "compute", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "box/relax", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "smd/ulsph/strain", - "type": 1, + "arg": "value", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/strain = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/ulsph/strain\n```\n", - "html_filename": "compute_smd_ulsph_strain.html", - "short_description": "Define a computation that outputs the logarithmic strain tensor", - "description": "Define a computation that outputs the logarithmic strain tensor. for\nparticles interacting via the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle tensor, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n\nThe per-particle tensor values will be given dimensionless, see\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", - "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* box/relax = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or tri or x or y or z or xy or yz or xz or couple or nreset or vmax or dilate or scaleyz or scalexz or scalexy or fixedpoint \n       iso or aniso or tri value = Ptarget = desired pressure (pressure units) \n       x or y or z or xy or yz or xz value = Ptarget = desired pressure (pressure units) \n       couple = none or xyz or xy or yz or xz \n       nreset value = reset reference cell every this many minimizer iterations \n       vmax value = fraction = max allowed volume change in one iteration \n       dilate value = all or partial \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       scalexy value = yes or no = scale xy with ly \n       fixedpoint values = x y z \n       x,y,z = perform relaxation dilation/contraction around this point (distance units) \n", + "examples": "\n```lmps\nfix 1 all box/relax iso 0.0 vmax 0.001\nfix 2 water box/relax aniso 0.0 dilate partial\nfix 2 ice box/relax tri 0.0 couple xy nreset 100\n```\n", + "html_filename": "fix_box_relax.html", + "short_description": "Apply an external pressure or stress tensor to the simulation box\nduring an [energy minimization ](https://docs.lammps.org/minimize.html)", + "description": "Apply an external pressure or stress tensor to the simulation box\nduring an [energy minimization ](https://docs.lammps.org/minimize.html). This allows the box\nsize and shape to vary during the iterations of the minimizer so that\nthe final configuration will be both an energy minimum for the\npotential energy of the atoms, and the system pressure tensor will be\nclose to the specified external tensor. Conceptually, specifying a\npositive pressure is like squeezing on the simulation box; a negative\npressure typically allows the box to expand.\n\n----------\n\nThe external pressure tensor is specified using one or more of the\n*iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*, *xz*, *yz*, and *couple*\nkeywords. These keywords give you the ability to specify all 6\ncomponents of an external stress tensor, and to couple various of\nthese components together so that the dimensions they represent are\nvaried together during the minimization.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures *Ptarget* for each of the 6 components of the\nstress tensor can be specified independently via the *x*, *y*, *z*,\n*xy*, *xz*, *yz* keywords, which correspond to the 6 simulation box\ndimensions. For example, if the *y* keyword is used, the y-box length\nwill change during the minimization. If the *xy* keyword is used, the\nxy tilt factor will change. A box dimension will not change if that\ncomponent is not specified.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nWhen the size of the simulation box changes, all atoms are re-scaled\nto new positions, unless the keyword *dilate* is specified with a\nvalue of *partial*, in which case only the atoms in the fix group are\nre-scaled. This can be useful for leaving the coordinates of atoms in\na solid substrate unchanged and controlling the pressure of a\nsurrounding fluid.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when relaxing triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *fixedpoint* keyword specifies the fixed point for cell relaxation.\nBy default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle positions at each iteration are\nunaffected by the chosen value, except that all particles are\ndisplaced by the same amount, different on each iteration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Applying an external pressure to tilt dimensions *xy*, *xz*, *yz*\n > can sometimes result in arbitrarily large values of the tilt factors,\n > i.e. a dramatically deformed simulation box. This typically indicates\n > that there is something badly wrong with how the simulation was\n > constructed. The two most common sources of this error are applying a\n > shear stress to a liquid system or specifying an external shear stress\n > tensor that exceeds the yield stress of the solid. In either case the\n > minimization may converge to a bogus conformation or not converge at\n > all. Also note that if the box shape tilts to an extreme shape,\n > LAMMPS will run less efficiently, due to the large volume of\n > communication needed to acquire ghost atoms around a processor's\n > irregular-shaped subdomain. For extreme values of tilt, LAMMPS may\n > also lose atoms and generate an error. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Performing a minimization with this fix is not a mathematically\n > well-defined minimization problem. This is because the objective\n > function being minimized changes if the box size/shape changes. In\n > practice this means the minimizer can get \"stuck\" before you have\n > reached the desired tolerance. The solution to this is to restart the\n > minimizer from the new adjusted box size/shape, since that creates a\n > new objective function valid for the new box size/shape. Repeat as\n > necessary until the box size/shape has reached its new equilibrium. \n > \n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Ptarget* values for any coupled dimensions must be identical.\n*Couple xyz* can be used for a 2d simulation; the *z* dimension is\nsimply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Ptarget\" is the same as specifying\nthese 4 keywords:\n\n```\nx Ptarget\ny Ptarget\nz Ptarget\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Ptarget\" is the same as specifying these 4\nkeywords:\n\n```\nx Ptarget\ny Ptarget\nz Ptarget\ncouple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Ptarget\" is the same as specifying\nthese 7 keywords:\n\n```\nx Ptarget\ny Ptarget\nz Ptarget\nxy 0.0\nyz 0.0\nxz 0.0\ncouple none\n```\n----------\n\nThe *vmax* keyword can be used to limit the fractional change in the\nvolume of the simulation box that can occur in one iteration of the\nminimizer. If the pressure is not settling down during the\nminimization this can be because the volume is fluctuating too much.\nThe specified fraction must be greater than 0.0 and should be << 1.0.\nA value of 0.001 means the volume cannot change by more than 1/10 of a\npercent in one iteration when *couple xyz* has been specified. For\nany other case it means no linear dimension of the simulation box can\nchange by more than 1/10 of a percent.\n\n----------\n\nWith this fix, the potential energy used by the minimizer is augmented\nby an additional energy provided by the fix. The overall objective\nfunction then is:\n\\[\n E = U + P_t \\left(V-V_0 \\right) + E_{strain}\\]\nwhere *U* is the system potential energy, \\(P_t\\) is the desired\nhydrostatic pressure, \\(V\\) and \\(V_0\\) are the system and reference\nvolumes, respectively. \\(E_{strain}\\) is the strain energy expression\nproposed by Parrinello and Rahman **Parrinello1981**.\nTaking derivatives of *E* w.r.t. the box dimensions, and setting these\nto zero, we find that at the minimum of the objective function, the\nglobal system stress tensor **P** will satisfy the relation:\n\\[\n \\mathbf P = P_t \\mathbf I + {\\mathbf S_t} \\left( \\mathbf h_0^{-1} \\right)^t \\mathbf h_{0d}\\]\nwhere **I** is the identity matrix, \\(\\mathbf{h_0}\\) is the box\ndimension tensor of the reference cell, and :\\(\\mathbf{h_{0d}}\\)\nis the diagonal part of \\(\\mathbf{h_0}\\). \\(\\mathbf{S_t}\\)\nis a symmetric stress tensor that is chosen by LAMMPS\nso that the upper-triangular components of **P** equal the stress tensor\nspecified by the user.\n\nThis equation only applies when the box dimensions are equal to those\nof the reference dimensions. If this is not the case, then the\nconverged stress tensor will not equal that specified by the user. We\ncan resolve this problem by periodically resetting the reference\ndimensions. The keyword *nreset* controls how often this is done. If\nthis keyword is not used, or is given a value of zero, then the\nreference dimensions are set to those of the initial simulation domain\nand are never changed. A value of *nstep* means that every *nstep*\nminimization steps, the reference dimensions are set to those of the\ncurrent simulation domain. Note that resetting the reference\ndimensions changes the objective function and gradients, which\nsometimes causes the minimization to fail. This can be resolved by\nchanging the value of *nreset*, or simply continuing the minimization\nfrom a restart file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As normally computed, pressure includes a kinetic- energy or\n > temperature-dependent component; see the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command. However, atom velocities are\n > ignored during a minimization, and the applied pressure(s) specified\n > with this command are assumed to only be the virial component of the\n > pressure (the non-kinetic portion). Thus if atoms have a non-zero\n > temperature and you print the usual thermodynamic pressure, it may not\n > appear the system is converging to your specified pressure. The\n > solution for this is to either (a) zero the velocities of all atoms\n > before performing the minimization, or (b) make sure you are\n > monitoring the pressure without its kinetic component. The latter can\n > be done by outputting the pressure from the pressure compute this\n > command creates (see below) or a pressure compute you define yourself. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because pressure is often a very sensitive function of volume,\n > it can be difficult for the minimizer to equilibrate the system the\n > desired pressure with high precision, particularly for solids. Some\n > techniques that seem to help are (a) use the \"min_modify line\n > quadratic\" option when minimizing with box relaxations, (b) minimize\n > several times in succession if need be, to drive the pressure closer\n > to the target pressure, (c) relax the atom positions before relaxing\n > the box, and (d) relax the box to the target hydrostatic pressure\n > before relaxing to a target shear stress state. Also note that some\n > systems (e.g. liquids) will not sustain a non-hydrostatic applied\n > pressure, which means the minimizer will not converge. \n > \n\n----------\n\nThis fix computes a temperature and pressure each timestep. The\ntemperature is used to compute the kinetic contribution to the\npressure, even though this is subsequently ignored by default. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp virial\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group. Also note that the pressure compute does not\ninclude a kinetic component.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its temperature and pressure calculation, as described above. Note\nthat as described above, if you assign a pressure compute to this fix\nthat includes a kinetic energy component it will affect the\nminimization, most likely in an undesirable way.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order in\n > which the keywords are specified is important. Note that a [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own temperature compute as\n > an argument when it is specified. The *temp* keyword will override\n > this (for the pressure compute being used by fix box/relax), but only if the\n > *temp* keyword comes after the *press* keyword. If the *temp* keyword\n > comes before the *press* keyword, then the new pressure compute\n > specified by the *press* keyword will be unaffected by the *temp*\n > setting. \n > \n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the pressure-volume\nenergy, plus the strain energy, if it exists, as described above. The\nenergy values reported at the end of a minimization run under\n\"Minimization stats\" include this energy, and so differ from what\nLAMMPS normally reports as potential energy. This fix does not support\nthe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option, because that would\nresult in double-counting of the fix energy in the minimization\nenergy. Instead, the fix energy can be explicitly added to the\npotential energy using one of these two variants:\n\n```lmps\nvariable emin equal pe+f_1\n\nvariable emin equal pe+f_1/atoms\n```\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html), but\nnot for the purpose of adding a contribution to the energy or forces\nbeing minimized. Instead it alters the simulation box geometry as\ndescribed above.\n\n**(Parrinello1981)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n ", + "restrictions": "Only dimensions that are available can be adjusted by this fix.\nNon-periodic dimensions are not available. *z*, *xz*, and *yz*, are\nnot available for 2D simulations. *xy*, *xz*, and *yz* are only\navailable if the simulation domain is non-orthogonal. The\n[create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands specify whether the\nsimulation box is orthogonal or non-orthogonal (triclinic) and explain\nthe meaning of the xy,xz,yz tilt factors.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n", + "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [minimize ](https://docs.lammps.org/minimize.html)\n" }, { "command": [ - "fix tmd" + "dump image", + "dump movie" ], "syntax": [ - "fix ID group-ID tmd rho_final file1 N file2" + "dump ID group-ID style N file color diameter keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "dump", "type": 1, "choices": [] }, @@ -11977,285 +11126,288 @@ export const command_docs = [ "choices": [] }, { - "arg": "tmd", - "type": 1, + "arg": "local", + "type": 3, + "choices": [ + "image", + "cfg", + "dcd", + "xtc", + "xyz", + "local" + ] + }, + { + "arg": "N", + "type": 2, "choices": [] }, { - "arg": "rho_final", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "file1", + "arg": "color", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "diameter", "type": 2, "choices": [] }, { - "arg": "file2", + "arg": "gmap", + "type": 3, + "choices": [ + "acolor", + "adiam", + "amap", + "gmap", + "backcolor", + "bcolor", + "bdiam", + "bitrate", + "boxcolor", + "color", + "framerate", + "gmap" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tmd = style name of this fix command\n* rho_final = desired value of rho at the end of the run (distance units)\n* file1 = filename to read target structure from\n* N = dump TMD statistics every this many timesteps, 0 = no dump\n* file2 = filename to write TMD statistics to (only needed if N > 0) \n", - "examples": "\n```lmps\nfix 1 all nve\nfix 2 tmdatoms tmd 1.0 target_file 100 tmd_dump_file\n```\n", - "html_filename": "fix_tmd.html", - "short_description": "Perform targeted molecular dynamics (TMD) on a group of atoms", - "description": "Perform targeted molecular dynamics (TMD) on a group of atoms. A\nholonomic constraint is used to force the atoms to move towards (or away\nfrom) the target configuration. The parameter \"rho\" is monotonically\ndecreased (or increased) from its initial value to rho_final at the end\nof the run.\n\nRho has distance units and is a measure of the root-mean-squared\ndistance (RMSD) between the current configuration of the atoms in the\ngroup and the target coordinates listed in file1. Thus a value of\nrho_final = 0.0 means move the atoms all the way to the final\nstructure during the course of the run.\n\nThe target file1 can be ASCII text or a gzipped text file (detected by\na .gz suffix). The format of the target file1 is as follows:\n\n```\n0.0 25.0 xlo xhi\n0.0 25.0 ylo yhi\n0.0 25.0 zlo zhi\n125 24.97311 1.69005 23.46956 0 0 -1\n126 1.94691 2.79640 1.92799 1 0 0\n127 0.15906 3.46099 0.79121 1 0 0\n...\n```\nThe first 3 lines may or may not be needed, depending on the format of\nthe atoms to follow. If image flags are included with the atoms, the\nfirst 3 lo/hi lines **must** appear in the file. If image flags are not\nincluded, the first 3 lines **must not** appear. The 3 lines contain the\nsimulation box dimensions for the atom coordinates, in the same format\nas in a LAMMPS data file (see the [read_data ](https://docs.lammps.org/read_data.html) command).\n\nThe remaining lines each contain an atom ID and its target x,y,z\ncoordinates. The atom lines (all or none of them) can optionally be\nfollowed by 3 integer values: nx,ny,nz.For periodic dimensions, they\nspecify which image of the box the atom is considered to be in, i.e. a\nvalue of N (positive or negative) means add N times the box length to\nthe coordinate to get the true value. Those 3 integers either must\nbe given for all atoms or none.\n\nThe atom lines can be listed in any order, but every atom in the group\nmust be listed in the file. Atoms not in the fix group may also be\nlisted; they will be ignored.\n\nComments starting with '#' and empty lines may be included as well.\n\nTMD statistics are written to file2 every N timesteps, unless N is\nspecified as 0, which means no statistics.\n\nThe atoms in the fix tmd group should be integrated (via a fix nve,\nnvt, npt) along with other atoms in the system.\n\nRestarts can be used with a fix tmd command. For example, imagine a\n10000 timestep run with a rho_initial = 11 and a rho_final = 1. If a\nrestart file was written after 2000 time steps, then the configuration\nin the file would have a rho value of 9. A new 8000 time step run\ncould be performed with the same rho_final = 1 to complete the\nconformational change at the same transition rate. Note that for\nrestarted runs, the name of the TMD statistics file should be changed\nto prevent it being overwritten.\n\nFor more information about TMD, see **Schlitter1** and\n**Schlitter2**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its rho parameter over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schlitter1)** Schlitter, Swegat, Mulders, \"Distance-type reaction\ncoordinates for modelling activated processes\", J Molecular Modeling,\n7, 171-177 (2001). \n \n**(Schlitter2)** Schlitter and Klahn, \"The free energy of a reaction\ncoordinate at multiple constraints: a concise formulation\", Molecular\nPhysics, 101, 3439-3443 (2003). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll TMD fixes must be listed in the input script after all integrator\nfixes (nve, nvt, npt) are applied. This ensures that atoms are moved\nbefore their positions are corrected to comply with the constraint.\n\nAtoms that have a TMD fix applied should not be part of a group to\nwhich a SHAKE fix is applied. This is because LAMMPS assumes there\nare not multiple competing holonomic constraints applied to the same\natoms.\n\nTo read gzipped target files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n", - "related": "none\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* style = image or movie = style of dump command (other styles such as atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write image to\n* color = atom attribute that determines color of each atom\n* diameter = atom attribute that determines size of each atom\n* zero or more keyword/value pairs may be appended\n* keyword = atom or adiam or bond or grid or line or tri or body or fix or size or view or center or up or zoom or box or axes or subbox or shiny or fsaa or ssao \n *        atom = yes or no = do or do not draw atoms \n *        adiam size = numeric value for atom diameter (distance units) \n *        bond values = color width = color and width of bonds \n         color = atom or type or none \n         width = number or atom or type or none \n         number = numeric value for bond width (distance units) \n *        grid = per-grid value to use when coloring each grid cell \n         per-grid value = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n         gname = name of grid defined by compute or fix \n         dname = name of data field defined by compute or fix \n         c_ID = per-grid vector calculated by a compute with ID \n         c_ID[I] = Ith column of per-grid array calculated by a compute with ID \n         f_ID = per-grid vector calculated by a fix with ID \n         f_ID[I] = Ith column of per-grid array calculated by a fix with ID \n *        line = color width \n         color = type \n         width = numeric value for line width (distance units) \n *        tri = color tflag width \n         color = type \n         tflag = 1 for just triangle, 2 for just tri edges, 3 for both \n         width = numeric value for tringle edge width (distance units) \n *        body = color bflag1 bflag2 \n         color = type \n         bflag1,bflag2 = 2 numeric flags to affect how bodies are drawn \n *        fix = fixID color fflag1 fflag2 \n         fixID = ID of fix that generates objects to draw \n         color = type \n         fflag1,fflag2 = 2 numeric flags to affect how fix objects are drawn \n *        size values = width height = size of images \n         width = width of image in # of pixels \n         height = height of image in # of pixels \n *        view values = theta phi = view of simulation box \n         theta = view angle from +z axis (degrees) \n         phi = azimuthal view angle (degrees) \n         theta or phi can be a variable (see below) \n *        center values = flag Cx Cy Cz = center point of image \n         flag = s for static, d for dynamic \n         Cx,Cy,Cz = center point of image as fraction of box dimension (0.5 = center of box) \n         Cx,Cy,Cz can be variables (see below) \n *        up values = Ux Uy Uz = direction that is \"up\" in image \n         Ux,Uy,Uz = components of up vector \n         Ux,Uy,Uz can be variables (see below) \n *        zoom value = zfactor = size that simulation box appears in image \n         zfactor = scale image size by factor > 1 to enlarge, factor < 1 to shrink \n         zfactor can be a variable (see below) \n *        box values = yes/no diam = draw outline of simulation box \n         yes/no = do or do not draw simulation box lines \n         diam = diameter of box lines as fraction of shortest box length \n *        axes values = axes length diam = draw xyz axes \n         axes = yes or no = do or do not draw xyz axes lines next to simulation box \n         length = length of axes lines as fraction of respective box lengths \n         diam = diameter of axes lines as fraction of shortest box length \n *        subbox values = lines diam = draw outline of processor subdomains \n         lines = yes or no = do or do not draw subdomain lines \n         diam = diameter of subdomain lines as fraction of shortest box length \n *        shiny value = sfactor = shinyness of spheres and cylinders \n         sfactor = shinyness of spheres and cylinders from 0.0 to 1.0 \n *        fsaa arg = yes/no \n         yes/no = do or do not apply anti-aliasing \n *        ssao value = shading seed dfactor = SSAO depth shading \n         shading = yes or no = turn depth shading on/off \n         seed = random # seed (positive integer) \n         dfactor = strength of shading from 0.0 to 1.0 \n.. _dump_modify_image:\n\n #### dump_modify options for dump image/movie\n *    dump_modify dump-ID keyword values ... \n* these keywords apply only to the image and movie styles and are documented on this page\n* keyword = acolor or adiam or amap or gmap or backcolor or bcolor or bdiam or bitrate or boxcolor or color or framerate or gmap\n* see the [dump modify ](https://docs.lammps.org/dump_modify.html) doc page for more general keywords \n *        acolor args = type color \n         type = atom type or range of types (see below) \n         color = name of color or color1/color2/... \n *        adiam args = type diam \n         type = atom type or range of types (see below) \n         diam = diameter of atoms of that type (distance units) \n *        amap args = lo hi style delta N entry1 entry2 ... entryN \n         lo = number or min = lower bound of range of color map \n         hi = number or max = upper bound of range of color map \n         style = 2 letters = c or d or s plus a or f \n         c for continuous \n         d for discrete \n         s for sequential \n         a for absolute \n         f for fractional \n         delta = binsize (only used for style s, otherwise ignored) \n         binsize = range is divided into bins of this width \n         N = # of subsequent entries \n         entry = value color (for continuous style) \n         value = number or min or max = single value within range \n         color = name of color used for that value \n         entry = lo hi color (for discrete style) \n         lo/hi = number or min or max = lower/upper bound of subset of range \n         color = name of color used for that subset of values \n         entry = color (for sequential style) \n         color = name of color used for a bin of values \n *        backcolor arg = color \n         color = name of color for background \n *        bcolor args = type color \n         type = bond type or range of types (see below) \n         color = name of color or color1/color2/... \n *        bdiam args = type diam \n         type = bond type or range of types (see below) \n         diam = diameter of bonds of that type (distance units) \n *        bitrate arg = rate \n         rate = target bitrate for movie in kbps \n *        boxcolor arg = color \n         color = name of color for simulation box lines and processor subdomain lines \n *        color args = name R G B \n         name = name of color \n         R,G,B = red/green/blue numeric values from 0.0 to 1.0 \n *        framerate arg = fps \n         fps = frames per second for movie \n *        gmap args = identical to amap args \n", + "examples": "\n```lmps\ndump d0 all image 100 dump.*.jpg type type\ndump d1 mobile image 500 snap.*.png element element ssao yes 4539 0.6\ndump d2 all image 200 img-*.ppm type type zoom 2.5 adiam 1.5 size 1280 720\ndump m0 all movie 1000 movie.mpg type type size 640 480\ndump m1 all movie 1000 movie.avi type type size 640 480\ndump m2 all movie 100 movie.m4v type type zoom 1.8 adiam v_value size 1280 720\n\ndump_modify 1 amap min max cf 0.0 3 min green 0.5 yellow max blue boxcolor red\n```\n", + "html_filename": "dump_image.html", + "short_description": "Dump a high-quality rendered image of the atom configuration every \\(N\\)\ntimesteps and save the images either as a sequence of JPEG or PNG or\nPPM files, or as a single movie file", + "description": "Dump a high-quality rendered image of the atom configuration every \\(N\\)\ntimesteps and save the images either as a sequence of JPEG or PNG or\nPPM files, or as a single movie file. The options for this command as\nwell as the [dump_modify ](https://docs.lammps.org/dump_modify.html) command control what is\nincluded in the image or movie and how it appears. A series of such\nimages can easily be manually converted into an animated movie of your\nsimulation or the process can be automated without writing the\nintermediate files using the dump movie style; see further details\nbelow. Other dump styles store snapshots of numerical data associated\nwith atoms in various formats, as discussed on the [dump ](https://docs.lammps.org/dump.html)\ndoc page.\n\nNote that a set of images or a movie can be made after a simulation\nhas been run, using the [rerun ](https://docs.lammps.org/rerun.html) command to read snapshots\nfrom an existing dump file, and using these dump commands in the rerun\nscript to generate the images/movie.\n\nHere are two sample images, rendered as \\(1024\\times 1024\\) JPEG files.\n \n | | | \n |---|---| \n | ![Image](img/dump1.jpg) | ![Image](img/dump2.jpg) | \n\n\nOnly atoms in the specified group are rendered in the image. The\n[dump_modify region and thresh ](https://docs.lammps.org/dump_modify.html) commands can also\nalter what atoms are included in the image.\nThe filename suffix determines whether a JPEG, PNG, or PPM file is\ncreated with the *image* dump style. If the suffix is \".jpg\" or\n\".jpeg\", then a [JPEG format ](https://jpeg.org/jpeg/) file is created, if the\nsuffix is \".png\", then a [PNG format](png_format_) is created, else\na [PPM (aka NETPBM) format ](https://en.wikipedia.org/wiki/Netpbm) file is created.\nThe JPEG and PNG files are binary; PPM has a text mode header followed\nby binary data. JPEG images have lossy compression, PNG has lossless\ncompression, and PPM files are uncompressed but can be compressed with\ngzip, if LAMMPS has been compiled with -DLAMMPS_GZIP and a \".gz\" suffix\nis used.\n.. _png_format: https://en.wikipedia.org/wiki/Portable_Network_Graphics\nSimilarly, the format of the resulting movie is chosen with the *movie*\ndump style. This is handled by the underlying FFmpeg converter and thus\ndetails have to be looked up in the [FFmpeg documentation](https://ffmpeg.org/). Typical examples are: .avi, .mpg, .m4v, .mp4,\n.mkv, .flv, .mov, .gif Additional settings of the movie compression like\n*bitrate* and *framerate* can be set using the dump_modify command as\ndescribed below.\n\nTo write out JPEG and PNG format files, you must build LAMMPS with\nsupport for the corresponding JPEG or PNG library. To convert images\ninto movies, LAMMPS has to be compiled with the -DLAMMPS_FFMPEG\nflag. See the [Build settings ](https://docs.lammps.org/Build_settings.html) page for\ndetails.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > in the image may be slightly outside the simulation box. \n > \n\n----------\n\nDumps are performed on timesteps that are a multiple of \\(N\\) (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of \\(N\\). This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which\ncan be useful if the dump command is invoked after a minimization\nended on an arbitrary timestep. \\(N\\) can be changed between runs by\nusing the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\n\nDump *image* filenames must contain a wildcard character \"\\*\" so that\none image file per snapshot is written. The \"\\*\" character is replaced\nwith the timestep value. For example, tmp.dump.\\*.jpg becomes\ntmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note\nthat the [dump_modify pad ](https://docs.lammps.org/dump_modify.html) command can be used to\nensure all timestep numbers are the same length (e.g., 00010), which\ncan make it easier to convert a series of images into a movie in the\ncorrect ordering.\n\nDump *movie* filenames on the other hand, must not have any wildcard\ncharacter since only one file combining all images into a single\nmovie will be written by the movie encoder.\n\n----------\n\nThe *color* and *diameter* settings determine the color and size of\natoms rendered in the image. They can be any atom attribute defined\nfor the [dump custom ](https://docs.lammps.org/dump.html) command, including *type* and\n*element* . This includes per-atom quantities calculated by a\n[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or [variable ](https://docs.lammps.org/variable.html),\nwhich are prefixed by \"c\\_\", \"f\\_\", or \"v\\_\", respectively. Note that the\n*diameter* setting can be overridden with a numeric value applied to\nall atoms by the optional *adiam* keyword.\n\nIf *type* is specified for the *color* setting, then the color of each\natom is determined by its atom type. By default the mapping of types\nto colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types \\(> 6\\). This mapping can be changed by the\n\"dump_modify acolor\" command, as described below.\n\nIf *type* is specified for the *diameter* setting then the diameter of\neach atom is determined by its atom type. By default all types have\ndiameter 1.0. This mapping can be changed by the \"dump_modify adiam\"\ncommand, as described below.\n\nIf *element* is specified for the *color* and/or *diameter* setting,\nthen the color and/or diameter of each atom is determined by which\nelement it is, which in turn is specified by the element-to-type\nmapping specified by the \"dump_modify element\" command, as described\nbelow. By default every atom type is C (carbon). Every element has a\ncolor and diameter associated with it, which is the same as the colors\nand sizes used by the [AtomEye ](http://li.mit.edu/Archive/Graphics/A/) visualization package.\n\nIf other atom attributes are used for the *color* or *diameter*\nsettings, they are interpreted in the following way.\n\nIf \"vx\", for example, is used as the *color* setting, then the color\nof the atom will depend on the x-component of its velocity. The\nassociation of a per-atom value with a specific color is determined by\na \"color map\", which can be specified via the dump_modify amap\ncommand, as described below. The basic idea is that the\natom-attribute will be within a range of values, and every value\nwithin the range is mapped to a specific color. Depending on how the\ncolor map is defined, that mapping can take place via interpolation so\nthat a value of -3.2 is halfway between \"red\" and \"blue\", or\ndiscretely so that the value of -3.2 is \"orange\".\n\nIf \"vx\", for example, is used as the *diameter* setting, then the atom\nwill be rendered using the x-component of its velocity as the\ndiameter. If the per-atom value <= 0.0, them the atom will not be\ndrawn. Note that finite-size spherical particles, as defined by\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) define a per-particle radius or\ndiameter, which can be used as the *diameter* setting.\n\n----------\n\nThe various keywords listed above control how the image is rendered.\nAs listed below, all of the keywords have defaults, most of which you\nwill likely not need to change. As described below, the dump modify\ncommand also has options specific to the dump image style,\nparticularly for assigning colors to atoms, bonds, and other image\nfeatures.\n\n----------\n\nThe *atom* keyword allow you to turn off the drawing of all atoms, if\nthe specified value is *no* . Note that this will not turn off the\ndrawing of particles that are represented as lines, triangles, or\nbodies, as discussed below. These particles can be drawn separately\nif the *line*, *tri*, or *body* keywords are used.\n\nThe *adiam* keyword allows you to override the *diameter* setting to\nset a single numeric *size* . All atoms will be drawn with that\ndiameter, e.g. 1.5, which is in whatever distance [units ](https://docs.lammps.org/units.html)\nthe input script defines, e.g. Angstroms.\n\n----------\n\nThe *bond* keyword allows to you to alter how bonds are drawn. A bond\nis only drawn if both atoms in the bond are being drawn due to being\nin the specified group and due to other selection criteria\n(e.g. region, threshold settings of the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) command). By default, bonds are drawn\nif they are defined in the input data file as read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. Using *none* for both the bond\n*color* and *width* value will turn off the drawing of all bonds.\n\nIf *atom* is specified for the bond *color* value, then each bond is\ndrawn in 2 halves, with the color of each half being the color of the\natom at that end of the bond.\n\nIf *type* is specified for the *color* value, then the color of each\nbond is determined by its bond type. By default the mapping of bond\ntypes to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for bond types > 6. This mapping can be changed by\nthe \"dump_modify bcolor\" command, as described below.\n\nThe bond *width* value can be a numeric value or *atom* or *type* (or\n*none* as indicated above).\n\nIf a numeric value is specified, then all bonds will be drawn as\ncylinders with that diameter, e.g. 1.0, which is in whatever distance\n[units ](https://docs.lammps.org/units.html) the input script defines, e.g. Angstroms.\n\nIf *atom* is specified for the *width* value, then each bond\nwill be drawn with a width corresponding to the minimum diameter\nof the 2 atoms in the bond.\n\nIf *type* is specified for the *width* value then the diameter of each\nbond is determined by its bond type. By default all types have\ndiameter 0.5. This mapping can be changed by the \"dump_modify bdiam\" command,\nas described below.\n\n----------\n\nThe *line* keyword can be used when [atom_style line ](https://docs.lammps.org/atom_style.html)\nis used to define particles as line segments, and will draw them as\nlines. If this keyword is not used, such particles will be drawn as\nspheres, the same as if they were regular atoms. The only setting\ncurrently allowed for the *color* value is *type*, which will color\nthe lines according to the atom type of the particle. By default the\nmapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\nThe line *width* can only be a numeric value, which specifies that all\nlines will be drawn as cylinders with that diameter, e.g. 1.0, which\nis in whatever distance [units ](https://docs.lammps.org/units.html) the input script defines,\ne.g. Angstroms.\n\n----------\n\nThe *tri* keyword can be used when [atom_style tri ](https://docs.lammps.org/atom_style.html) is\nused to define particles as triangles, and will draw them as triangles\nor edges (3 lines) or both, depending on the setting for *tflag* . If\nedges are drawn, the *width* setting determines the diameters of the\nline segments. If this keyword is not used, triangle particles will\nbe drawn as spheres, the same as if they were regular atoms. The only\nsetting currently allowed for the *color* value is *type*, which will\ncolor the triangles according to the atom type of the particle. By\ndefault the mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *body* keyword can be used when [atom_style body ](https://docs.lammps.org/atom_style.html)\nis used to define body particles with internal state\n(e.g. sub-particles), and will drawn them in a manner specific to the\nbody style. If this keyword is not used, such particles will be drawn\nas spheres, the same as if they were regular atoms.\n\nThe [Howto body ](https://docs.lammps.org/Howto_body.html) page describes the body styles\nLAMMPS currently supports, and provides more details as to the kind of\nbody particles they represent and how they are drawn by this dump\nimage command. For all the body styles, individual atoms can be\neither a body particle or a usual point (non-body) particle. Non-body\nparticles will be drawn the same way they would be as a regular atom.\nThe *bflag1* and *bflag2* settings are numerical values which are\npassed to the body style to affect how the drawing of a body particle\nis done. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a\ndescription of what these parameters mean for each body style.\n\nThe only setting currently allowed for the *color* value is *type*,\nwhich will color the body particles according to the atom type of the\nparticle. By default the mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *fix* keyword can be used with a [fix ](https://docs.lammps.org/fix.html) that produces\nobjects to be drawn.\n\nThe *fflag1* and *fflag2* settings are numerical values which are\npassed to the fix to affect how the drawing of its objects is done.\nSee the individual fix page for a description of what these\nparameters mean for a particular fix.\n\nThe only setting currently allowed for the *color* value is *type*,\nwhich will color the fix objects according to their type. By default\nthe mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *size* keyword sets the width and height of the created images,\ni.e. the number of pixels in each direction.\n\n----------\n\nThe *view*, *center*, *up*, and *zoom* values determine how\n3d simulation space is mapped to the 2d plane of the image. Basically\nthey control how the simulation box appears in the image.\n\nAll of the *view*, *center*, *up*, and *zoom* values can be\nspecified as numeric quantities, whose meaning is explained below.\nAny of them can also be specified as an [equal-style variable ](https://docs.lammps.org/variable.html),\nby using v_name as the value, where \"name\" is\nthe variable name. In this case the variable will be evaluated on the\ntimestep each image is created to create a new value. If the\nequal-style variable is time-dependent, this is a means of changing\nthe way the simulation box appears from image to image, effectively\ndoing a pan or fly-by view of your simulation.\n\nThe *view* keyword determines the viewpoint from which the simulation\nbox is viewed, looking towards the *center* point. The *theta* value\nis the vertical angle from the +z axis, and must be an angle from 0 to\n180 degrees. The *phi* value is an azimuthal angle around the z axis\nand can be positive or negative. A value of 0.0 is a view along the\n+x axis, towards the *center* point. If *theta* or *phi* are\nspecified via variables, then the variable values should be in\ndegrees.\n\nThe *center* keyword determines the point in simulation space that\nwill be at the center of the image. *Cx*, *Cy*, and *Cz* are\nspecified as fractions of the box dimensions, so that (0.5,0.5,0.5) is\nthe center of the simulation box. These values do not have to be\nbetween 0.0 and 1.0, if you want the simulation box to be offset from\nthe center of the image. Note, however, that if you choose strange\nvalues for *Cx*, *Cy*, or *Cz* you may get a blank image. Internally,\n*Cx*, *Cy*, and *Cz* are converted into a point in simulation space.\nIf *flag* is set to \"s\" for static, then this conversion is done once,\nat the time the dump command is issued. If *flag* is set to \"d\" for\ndynamic then the conversion is performed every time a new image is\ncreated. If the box size or shape is changing, this will adjust the\ncenter point in simulation space.\n\nThe *up* keyword determines what direction in simulation space will be\n\"up\" in the image. Internally it is stored as a vector that is in the\nplane perpendicular to the view vector implied by the *theta* and\n*pni* values, and which is also in the plane defined by the view\nvector and user-specified up vector. Thus this internal vector is\ncomputed from the user-specified *up* vector as\n\n```\nup_internal = view cross (up cross view)\n```\nThis means the only restriction on the specified *up* vector is that\nit cannot be parallel to the *view* vector, implied by the *theta* and\n*phi* values.\n\nThe *zoom* keyword scales the size of the simulation box as it appears\nin the image. The default *zfactor* value of 1 should display an\nimage mostly filled by the atoms in the simulation box. A *zfactor* >\n1 will make the simulation box larger; a *zfactor* < 1 will make it\nsmaller. *Zfactor* must be a value > 0.0.\n\n----------\n\nThe *box* keyword determines if and how the simulation box boundaries\nare rendered as thin cylinders in the image. If *no* is set, then the\nbox boundaries are not drawn and the *diam* setting is ignored. If\n*yes* is set, the 12 edges of the box are drawn, with a diameter that\nis a fraction of the shortest box length in x,y,z (for 3d) or x,y (for\n2d). The color of the box boundaries can be set with the \"dump_modify\nboxcolor\" command.\n\nThe *axes* keyword determines if and how the coordinate axes are\nrendered as thin cylinders in the image. If *no* is set, then the\naxes are not drawn and the *length* and *diam* settings are ignored.\nIf *yes* is set, 3 thin cylinders are drawn to represent the x,y,z\naxes in colors red,green,blue. The origin of these cylinders will be\noffset from the lower left corner of the box by 10%. The *length*\nsetting determines how long the cylinders will be as a fraction of the\nrespective box lengths. The *diam* setting determines their thickness\nas a fraction of the shortest box length in x,y,z (for 3d) or x,y (for\n2d).\n\nThe *subbox* keyword determines if and how processor subdomain\nboundaries are rendered as thin cylinders in the image. If *no* is\nset (default), then the subdomain boundaries are not drawn and the\n*diam* setting is ignored. If *yes* is set, the 12 edges of each\nprocessor subdomain are drawn, with a diameter that is a fraction of\nthe shortest box length in x,y,z (for 3d) or x,y (for 2d). The color\nof the subdomain boundaries can be set with the \"dump_modify\nboxcolor\" command.\n\n----------\n\nThe *shiny* keyword determines how shiny the objects rendered in the\nimage will appear. The *sfactor* value must be a value 0.0 <=\n*sfactor* <= 1.0, where *sfactor* = 1 is a highly reflective surface\nand *sfactor* = 0 is a rough non-shiny surface.\n\nThe *fsaa* keyword can be used with the dump image command to improve\nthe image quality by enabling full scene anti-aliasing. Internally the\nimage is rendered at twice the width and height and then scaled down by\ncomputing the average of each 2x2 block of pixels to produce a single\npixel in the final image at the original size. This produces images with\nsmoother, less ragged edges. The application of this algorithm can\nincrease the cost of computing the image by about 3x or more.\n\nThe *ssao* keyword turns on/off a screen space ambient occlusion (SSAO)\nmodel for depth shading. If *yes* is set, then atoms further away from\nthe viewer are darkened via a randomized process, which is perceived as\ndepth. The strength of the effect can be scaled by the *dfactor*\nparameter. If *no* is set, no depth shading is performed. The\ncalculation of this effect can increase the cost of computing the image\nsubstantially by 5x or more, especially with larger images. When used\nin combination with the *fsaa* keyword the computational cost of depth\nshading is particularly large.\n\n----------\n\n #### Image Quality Settings\n\nThe two keywords *fsaa* and *ssao* can be used to improve the image\nquality at the expense of additional computational cost to render the\nimages. The images below show from left to right the same render with\ndefault settings, with *fsaa* added, with *ssao* added, and with both\nkeywords added.\n \n | | | | | \n |---|---|---|---| \n | ![Image](JPG/image.default.png) | ![Image](JPG/image.fsaa.png) | ![Image](JPG/image.ssao.png) | ![Image](JPG/image.both.png) | \n\n\n----------\n\nA series of JPEG, PNG, or PPM images can be converted into a movie\nfile and then played as a movie using commonly available tools. Using\ndump style *movie* automates this step and avoids the intermediate\nstep of writing (many) image snapshot file. But LAMMPS has to be\ncompiled with -DLAMMPS_FFMPEG and an FFmpeg executable have to be\ninstalled.\n\nTo manually convert JPEG, PNG or PPM files into an animated GIF or\nMPEG or other movie file you can use:\n\n* a) Use the ImageMagick convert program.\n\n```bash\nconvert *.jpg foo.gif\nconvert -loop 1 *.ppm foo.mpg\n\nAnimated GIF files from ImageMagick are not optimized. You can use\na program like gifsicle to optimize and thus massively shrink them.\nMPEG files created by ImageMagick are in MPEG-1 format with a rather\ninefficient compression and low quality compared to more modern\ncompression styles like MPEG-4, H.264, VP8, VP9, H.265 and so on.\n```\n* b) Use QuickTime.\n\n Select \"Open Image Sequence\" under the File menu Load the images into\n QuickTime to animate them Select \"Export\" under the File menu Save the\n movie as a QuickTime movie (\\*.mov) or in another format. QuickTime\n can generate very high quality and efficiently compressed movie\n files. Some of the supported formats require to buy a license and some\n are not readable on all platforms until specific runtime libraries are\n installed.\n\n* c) Use FFmpeg\n\n FFmpeg is a command line tool that is available on many platforms and\n allows extremely flexible encoding and decoding of movies.\n\n```bash\ncat snap.*.jpg | ffmpeg -y -f image2pipe -c:v mjpeg -i - -b:v 2000k movie.m4v\ncat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi\n\nFront ends for FFmpeg exist for multiple platforms. For more\ninformation see the [FFmpeg homepage](https://ffmpeg.org/)\n```\n----------\n\nPlay the movie:\n\n* a) Use your browser to view an animated GIF movie.\n\n Select \"Open File\" under the File menu\n Load the animated GIF file\n\n* b) Use the freely available mplayer or ffplay tool to view a\n movie. Both are available for multiple OSes and support a large\n variety of file formats and decoders.\n\n```bash\nmplayer foo.mpg\nffplay bar.avi\n```\n* c) Use the [Pizza.py](https://lammps.github.io/pizza)\n [animate tool](https://lammps.github.io/pizza/doc/animate.html),\n which works directly on a series of image files.\n\n```python\na = animate(\"foo*.jpg\")\n```\n* d) QuickTime and other Windows- or macOS-based media players can\n obviously play movie files directly. Similarly for corresponding tools\n bundled with Linux desktop environments. However, due to licensing\n issues with some file formats, the formats may require installing\n additional libraries, purchasing a license, or may not be\n supported.\n\n----------\n\n #### Dump_modify keywords for dump image and dump movie\n\nThe following dump_modify keywords apply only to the dump image and\ndump movie styles. Any keyword that works with dump image also works\nwith dump movie, since the movie is simply a collection of images.\nSome of the keywords only affect the dump movie style. The\ndescriptions give details.\n\n----------\n\nThe *acolor* keyword can be used with the dump image command, when its\natom color setting is *type*, to set the color that atoms of each type\nwill be drawn in the image.\n\nThe specified *type* should be an integer from 1 to Ntypes = the\nnumber of atom types. A wildcard asterisk can be used in place of or\nin conjunction with the *type* argument to specify a range of atom\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N =\nthe number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to N. A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from n to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe specified *color* can be a single color which is any of the 140\npre-defined colors (see below) or a color name defined by the\n\"dump_modify color\" command, as described below. Or it can be two or\nmore colors separated by a \"/\" character, e.g. red/green/blue. In the\nformer case, that color is assigned to all the specified atom types.\nIn the latter case, the list of colors are assigned in a round-robin\nfashion to each of the specified atom types.\n\n----------\n\nThe *adiam* keyword can be used with the dump image command, when its\natom diameter setting is *type*, to set the size that atoms of each\ntype will be drawn in the image. The specified *type* should be an\ninteger from 1 to Ntypes. As with the *acolor* keyword, a wildcard\nasterisk can be used as part of the *type* argument to specify a range\nof atom types. The specified *diam* is the size in whatever distance\n[units ](https://docs.lammps.org/units.html) the input script is using, e.g. Angstroms.\n\n----------\n\nThe *amap* keyword can be used with the dump image command, with its\n*atom* keyword, when its atom setting is an atom-attribute, to setup a\ncolor map. The color map is used to assign a specific RGB\n(red/green/blue) color value to an individual atom when it is drawn,\nbased on the atom's attribute, which is a numeric value, e.g. its\nx-component of velocity if the atom-attribute \"vx\" was specified.\n\nThe basic idea of a color map is that the atom-attribute will be\nwithin a range of values, and that range is associated with a series\nof colors (e.g. red, blue, green). An atom's specific value (vx =\n-3.2) can then mapped to the series of colors (e.g. halfway between\nred and blue), and a specific color is determined via an interpolation\nprocedure.\n\nThere are many possible options for the color map, enabled by the\n*amap* keyword. Here are the details.\n\nThe *lo* and *hi* settings determine the range of values allowed for\nthe atom attribute. If numeric values are used for *lo* and/or *hi*,\nthen values that are lower/higher than that value are set to the\nvalue. I.e. the range is static. If *lo* is specified as *min* or\n*hi* as *max* then the range is dynamic, and the lower and/or\nupper bound will be calculated each time an image is drawn, based\non the set of atoms being visualized.\n\nThe *style* setting is two letters, such as \"ca\". The first letter is\neither \"c\" for continuous, \"d\" for discrete, or \"s\" for sequential.\nThe second letter is either \"a\" for absolute, or \"f\" for fractional.\n\nA continuous color map is one in which the color changes continuously\nfrom value to value within the range. A discrete color map is one in\nwhich discrete colors are assigned to sub-ranges of values within the\nrange. A sequential color map is one in which discrete colors are\nassigned to a sequence of sub-ranges of values covering the entire\nrange.\n\nAn absolute color map is one in which the values to which colors are\nassigned are specified explicitly as values within the range. A\nfractional color map is one in which the values to which colors are\nassigned are specified as a fractional portion of the range. For\nexample if the range is from -10.0 to 10.0, and the color red is to be\nassigned to atoms with a value of 5.0, then for an absolute color map\nthe number 5.0 would be used. But for a fractional map, the number\n0.75 would be used since 5.0 is 3/4 of the way from -10.0 to 10.0.\n\nThe *delta* setting must be specified for all styles, but is only used\nfor the sequential style; otherwise the value is ignored. It\nspecifies the bin size to use within the range for assigning\nconsecutive colors to. For example, if the range is from \\(-10.0\\) to\n\\(10.0\\) and a *delta* of \\(1.0\\) is used, then 20 colors will be\nassigned to the range. The first will be from\n\\(-10.0 \\le \\text{color1} < -9.0\\), then second from\n\\(-9.0 \\le color2 < -8.0\\), etc.\n\nThe *N* setting is how many entries follow. The format of the entries\ndepends on whether the color map style is continuous, discrete or\nsequential. In all cases the *color* setting can be any of the 140\npre-defined colors (see below) or a color name defined by the\ndump_modify color option.\n\nFor continuous color maps, each entry has a *value* and a *color* .\nThe *value* is either a number within the range of values or *min* or\n*max* . The *value* of the first entry must be *min* and the *value*\nof the last entry must be *max* . Any entries in between must have\nincreasing values. Note that numeric values can be specified either\nas absolute numbers or as fractions (0.0 to 1.0) of the range,\ndepending on the \"a\" or \"f\" in the style setting for the color map.\n\nHere is how the entries are used to determine the color of an individual\natom, given the value \\(X\\) of its atom attribute. \\(X\\) will\nfall between 2 of the entry values. The color of the atom is linearly\ninterpolated (in each of the RGB values) between the 2 colors associated\nwith those entries. For example, if \\(X = -5.0\\) and the two\nsurrounding entries are \"red\" at \\(-10.0\\) and \"blue\" at\n\\(0.0\\), then the atom's color will be halfway between \"red\" and\n\"blue\", which happens to be \"purple\".\n\nFor discrete color maps, each entry has a *lo* and *hi* value and a\n*color* . The *lo* and *hi* settings are either numbers within the\nrange of values or *lo* can be *min* or *hi* can be *max* . The *lo*\nand *hi* settings of the last entry must be *min* and *max* . Other\nentries can have any *lo* and *hi* values and the sub-ranges of\ndifferent values can overlap. Note that numeric *lo* and *hi* values\ncan be specified either as absolute numbers or as fractions (0.0 to 1.0)\nof the range, depending on the \"a\" or \"f\" in the style setting for the\ncolor map.\n\nHere is how the entries are used to determine the color of an individual\natom, given the value X of its atom attribute. The entries are scanned\nfrom first to last. The first time that *lo* <= X <= *hi*, X is\nassigned the color associated with that entry. You can think of the\nlast entry as assigning a default color (since it will always be matched\nby X), and the earlier entries as colors that override the default.\nAlso note that no interpolation of a color RGB is done. All atoms will\nbe drawn with one of the colors in the list of entries.\n\nFor sequential color maps, each entry has only a *color* . Here is how\nthe entries are used to determine the color of an individual atom,\ngiven the value X of its atom attribute. The range is partitioned\ninto N bins of width *binsize* . Thus X will fall in a specific bin\nfrom 1 to N, say the Mth bin. If it falls on a boundary between 2\nbins, it is considered to be in the higher of the 2 bins. Each bin is\nassigned a color from the E entries. If E < N, then the colors are\nrepeated. For example if 2 entries with colors red and green are\nspecified, then the odd numbered bins will be red and the even bins\ngreen. The color of the atom is the color of its bin. Note that the\nsequential color map is really a shorthand way of defining a discrete\ncolor map without having to specify where all the bin boundaries are.\n\nHere is an example of using a sequential color map to color all the\natoms in individual molecules with a different color. See the\nexamples/pour/in.pour.2d.molecule input script for an example of how\nthis is used.\n\n```lmps\nvariable colors string &\n\"red green blue yellow white &\npurple pink orange lime gray\"\nvariable mol atom mol%10\ndump 1 all image 250 image.*.jpg v_mol type &\nzoom 1.6 adiam 1.5\ndump_modify 1 pad 5 amap 0 10 sa 1 10 ${colors}\n```\nIn this case, 10 colors are defined, and molecule IDs are\nmapped to one of the colors, even if there are 1000s of molecules.\n\n----------\n\nThe *backcolor* sets the background color of the images. The color\nname can be any of the 140 pre-defined colors (see below) or a color\nname defined by the dump_modify color option.\n\n----------\n\nThe *bcolor* keyword can be used with the dump image command, with its\n*bond* keyword, when its color setting is *type*, to set the color\nthat bonds of each type will be drawn in the image.\n\nThe specified *type* should be an integer from 1 to \\(N\\), where \\(N\\)\nis the number of bond types. A wildcard asterisk can be used in place of or\nin conjunction with the *type* argument to specify a range of bond\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\)\nis the number of bond types, then an asterisk with no numerical values\nmeans all types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe specified *color* can be a single color which is any of the 140\npre-defined colors (see below) or a color name defined by the\ndump_modify color option. Or it can be two or more colors separated\nby a \"/\" character (e.g., red/green/blue). In the former case, that\ncolor is assigned to all the specified bond types. In the latter\ncase, the list of colors are assigned in a round-robin fashion to each\nof the specified bond types.\n\n----------\n\nThe *bdiam* keyword can be used with the dump image command, with its\n*bond* keyword, when its *diam* setting is *type*, to set the diameter\nthat bonds of each type will be drawn in the image. The specified\n*type* should be an integer from 1 to Nbondtypes. As with the\n*bcolor* keyword, a wildcard asterisk can be used as part of the\n*type* argument to specify a range of bond types. The specified\n*diam* is the size in whatever distance [units ](https://docs.lammps.org/units.html) you are\nusing (e.g., Angstroms).\n\n----------\n\nThe *bitrate* keyword can be used with the [dump movie](https://docs.lammps.org/dump_image.html) command to define the size of the resulting movie file\nand its quality via setting how many kbits per second are to be used\nfor the movie file. Higher bitrates require less compression and will\nresult in higher quality movies. The quality is also determined by\nthe compression format and encoder. The default setting is 2000\nkbit/s, which will result in average quality with older compression\nformats.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all movie file formats supported by dump movie allow the\n > bitrate to be set. If not, the setting is silently ignored. \n > \n\n----------\n\nThe *boxcolor* keyword sets the color of the simulation box drawn\naround the atoms in each image as well as the color of processor\nsubdomain boundaries. See the \"dump image box\" command for how to\nspecify that a box be drawn via the *box* keyword, and the subdomain\nboundaries via the *subbox* keyword. The color name can be any of the\n140 pre-defined colors (see below) or a color name defined by the\ndump_modify color option.\n\n----------\n\nThe *color* keyword allows definition of a new color name, in addition\nto the 140-predefined colors (see below), and associates three\nred/green/blue RGB values with that color name. The color name can\nthen be used with any other dump_modify keyword that takes a color\nname as a value. The RGB values should each be floating point values\nbetween 0.0 and 1.0 inclusive.\n\nWhen a color name is converted to RGB values, the user-defined color\nnames are searched first, then the 140 pre-defined color names. This\nmeans you can also use the *color* keyword to overwrite one of the\npre-defined color names with new RBG values.\n\n----------\n\nThe *framerate* keyword can be used with the [dump movie](https://docs.lammps.org/dump_image.html) command to define the duration of the resulting movie\nfile. Movie files written by the dump *movie* command have a default\nframe rate of 24 frames per second and the images generated will be\nconverted at that rate. Thus a sequence of 1000 dump images will\nresult in a movie of about 42 seconds. To make a movie run longer you\ncan either generate images more frequently or lower the frame rate.\nTo speed a movie up, you can do the inverse. Using a frame rate\nhigher than 24 is not recommended, as it will result in simply\ndropping the rendered images. It is more efficient to dump images less\nfrequently.\n\n----------\n\nThe *gmap* keyword can be used with the dump image command, with its\n*grid* keyword, to setup a color map. The color map is used to assign\na specific RGB (red/green/blue) color value to an individual grid cell\nwhen it is drawn, based on the grid cell value, which is a numeric\nquantity specified with the *grid* keyword.\n\nThe arguments for the *gmap* keyword are identical to those for the\n*amap* keyword (for atom coloring) described above.\n\n----------\n", + "restrictions": "To write JPEG images, you must use the -DLAMMPS_JPEG switch when\nbuilding LAMMPS and link with a JPEG library. To write PNG images, you\nmust use the -DLAMMPS_PNG switch when building LAMMPS and link with a\nPNG library.\n\nTo write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when\nbuilding LAMMPS and have the FFmpeg executable available on the\nmachine where LAMMPS is being run. Typically its name is lowercase\n(i.e., \"ffmpeg\").\n\nSee the [Build settings ](https://docs.lammps.org/Build_settings.html) page for details.\n\nNote that since FFmpeg is run as an external program via a pipe,\nLAMMPS has limited control over its execution and no knowledge about\nerrors and warnings printed by it. Those warnings and error messages\nwill be printed to the screen only. Due to the way image data are\ncommunicated to FFmpeg, it will often print the message\n\n```\npipe:: Input/output error\n```\nwhich can be safely ignored. Other warnings\nand errors have to be addressed according to the FFmpeg documentation.\nOne known issue is that certain movie file formats (e.g., MPEG level 1\nand 2 format streams) have video bandwidth limits that can be crossed\nwhen rendering too large of image sizes. Typical warnings look like\nthis:\n\n```\n[mpeg @ 0x98b5e0] packet too large, ignoring buffer limits to mux it\n[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018\n[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018\n```\nIn this case it is recommended either to reduce the size of the image\nor to encode in a different format that is also supported by your copy of\nFFmpeg and which does not have this limitation (e.g., .avi, .mkv, mp4).\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" }, { "command": [ - "angle_style mm3" + "bond_style nonlinear", + "bond_style nonlinear/omp" ], "syntax": [ - "angle_style mm3" + "bond_style nonlinear" ], "args": [ [ { - "arg": "angle_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "mm3", - "type": 1, - "choices": [] + "arg": "nonlinear", + "type": 3, + "choices": [ + "nonlinear", + "nonlinear/omp" + ] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style mm3\nangle_coeff 1 100.0 107.0\n```\n", - "html_filename": "angle_mm3.html", - "short_description": "The *mm3* angle style uses the potential that is anharmonic in the angle\nas defined in :ref:`(Allinger) `\n\\[\n E = K (\\theta - \\theta_0)^2 \\left[ 1 - 0.014(\\theta - \\theta_0) + 5.6(10)^{-5} (\\theta - \\theta_0)^2 - 7.0(10)^{-7} (\\theta - \\theta_0)^3 + 9(10)^{-10} (\\theta - \\theta_0)^4 \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and\n\\(K\\) is a prefactor", - "description": "The *mm3* angle style uses the potential that is anharmonic in the angle\nas defined in :ref:`(Allinger) `\n\\[\n E = K (\\theta - \\theta_0)^2 \\left[ 1 - 0.014(\\theta - \\theta_0) + 5.6(10)^{-5} (\\theta - \\theta_0)^2 - 7.0(10)^{-7} (\\theta - \\theta_0)^3 + 9(10)^{-10} (\\theta - \\theta_0)^4 \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and\n\\(K\\) is a prefactor. The anharmonic prefactors have units\n\\(\\deg^{-n}\\), for example \\(-0.014 \\deg^{-1}\\), \\(5.6\n\\cdot 10^{-5} \\deg^{-2}\\), ...\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "examples": "\n```lmps\nbond_style nonlinear\nbond_coeff 2 100.0 1.1 1.4\n```\n", + "html_filename": "bond_nonlinear.html", + "short_description": "The *nonlinear* bond style uses the potential\n\\[\n E = \\frac{\\epsilon (r - r_0)^2}{ [ \\lambda^2 - (r - r_0)^2 ]}\\]\nto define an anharmonic spring **Rector** of equilibrium\nlength \\(r_0\\) and maximum extension lamda", + "description": "The *nonlinear* bond style uses the potential\n\\[\n E = \\frac{\\epsilon (r - r_0)^2}{ [ \\lambda^2 - (r - r_0)^2 ]}\\]\nto define an anharmonic spring **Rector** of equilibrium\nlength \\(r_0\\) and maximum extension lamda.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(\\epsilon\\) (energy)\n* \\(r_0\\) (distance)\n* \\(\\lambda\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Rector)** Rector, Van Swol, Henderson, Molecular Physics, 82, 1009 (1994). \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the EXTRA-MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "compute hexorder/atom" + "pair_style dpd/fdt", + "pair_style dpd/fdt/energy", + "pair_style dpd/fdt/energy/kk" ], "syntax": [ - "compute ID group-ID hexorder/atom keyword values ..." + "pair_style style args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "dpd/fdt/energy/kk", + "type": 3, + "choices": [ + "dpd/fdt", + "dpd/fdt/energy", + "dpd/fdt/energy/kk" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = dpd/fdt or dpd/fdt/energy\n* args = list of arguments for a particular style \n *      dpd/fdt args = T cutoff seed \n       T = temperature (temperature units) \n       cutoff = global cutoff for DPD interactions (distance units) \n       seed = random # seed (positive integer) \n *      dpd/fdt/energy args = cutoff seed \n       cutoff = global cutoff for DPD interactions (distance units) \n       seed = random # seed (positive integer) \n", + "examples": "\n```lmps\npair_style dpd/fdt 300.0 2.5 34387\npair_coeff * * 3.0 1.0 2.5\n\npair_style dpd/fdt/energy 2.5 34387\npair_coeff * * 3.0 1.0 0.1 2.5\n```\n", + "html_filename": "pair_dpd_fdt.html", + "short_description": "Styles *dpd/fdt* and *dpd/fdt/energy* compute the force for dissipative\nparticle dynamics (DPD) simulations", + "description": "Styles *dpd/fdt* and *dpd/fdt/energy* compute the force for dissipative\nparticle dynamics (DPD) simulations. The *dpd/fdt* style is used to\nperform DPD simulations under isothermal and isobaric conditions,\nwhile the *dpd/fdt/energy* style is used to perform DPD simulations\nunder isoenergetic and isoenthalpic conditions (see **Lisal3**).\nFor DPD simulations in general, the force on atom I due to atom J is\ngiven as a sum of 3 terms\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R) \\hat{r_{ij}} \\qquad \\qquad r < r_c \\\\\n F^C = & A w(r) \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\\\\n w(r) = & 1 - \\frac{r}{r_c} \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a dissipative\nforce, and \\(F^R\\) is a random force. \\(\\hat{r_{ij}}\\) is a\nunit vector in the direction \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is\nthe vector difference in velocities of the two atoms, \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1, \\(r_c\\) is the\npairwise cutoff. Note that alternative definitions of the weighting\nfunction exist, but would have to be implemented as a separate pair\nstyle command.\n\nFor style *dpd/fdt*, the fluctuation-dissipation theorem defines\n\\(\\gamma\\) to be set equal to \\(\\sigma^2/(2 T)\\), where *T* is the\nset point temperature specified as a pair style parameter in the above\nexamples. The following coefficients must be defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\sigma\\) (force\\*time\\^(1/2) units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used.\n\nStyle *dpd/fdt/energy* is used to perform DPD simulations under\nisoenergetic and isoenthalpic conditions. The fluctuation-dissipation\ntheorem defines \\(\\gamma\\) to be set equal to \\(\\sigma^2/(2\n\\theta)\\), where \\(\\theta\\) is the average internal temperature for\nthe pair. The particle internal temperature is related to the particle\ninternal energy through a mesoparticle equation of state (see [fixeos ](https://docs.lammps.org/fix.html)). The differential internal conductive and mechanical\nenergies are computed within style *dpd/fdt/energy* as:\n\\[\\begin{align*} \n du_{i}^{cond} = & \\kappa_{ij}(\\frac{1}{\\theta_{i}}-\\frac{1}{\\theta_{j}})\\omega_{ij}^{2} + \\alpha_{ij}\\omega_{ij}\\zeta_{ij}^{q}(\\Delta{t})^{-1/2} \\\\\n du_{i}^{mech} = & -\\frac{1}{2}\\gamma_{ij}\\omega_{ij}^{2}(\\frac{\\vec{r}_{ij}}{r_{ij}}\\bullet\\vec{v}_{ij})^{2} -\n \\frac{\\sigma^{2}_{ij}}{4}(\\frac{1}{m_{i}}+\\frac{1}{m_{j}})\\omega_{ij}^{2} -\n \\frac{1}{2}\\sigma_{ij}\\omega_{ij}(\\frac{\\vec{r}_{ij}}{r_{ij}}\\bullet\\vec{v}_{ij})\\zeta_{ij}(\\Delta{t})^{-1/2} \\end{align*} \\]\nwhere\n\\[\\begin{align*} \n \\alpha_{ij}^{2} = & 2k_{B}\\kappa_{ij} \\\\\n \\sigma^{2}_{ij} = & 2\\gamma_{ij}k_{B}\\Theta_{ij} \\\\\n \\Theta_{ij}^{-1} = & \\frac{1}{2}(\\frac{1}{\\theta_{i}}+\\frac{1}{\\theta_{j}}) \\end{align*} \\]\n\\(\\zeta_ij^q\\) is a second Gaussian random number with zero mean and\nunit variance that is used to compute the internal conductive\nenergy. The fluctuation-dissipation theorem defines \\(alpha^2\\) to\nbe set equal to \\(2k_B\\kappa\\), where \\(\\kappa\\) is the\nmesoparticle thermal conductivity parameter. The following coefficients\nmust be defined for each pair of atoms types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* A (force units)\n* \\(\\sigma\\) (force\\*time\\^(1/2) units)\n* \\(\\kappa\\) (energy\\*temperature/time units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used.\n\nThe pairwise energy associated with styles *dpd/fdt* and\n*dpd/fdt/energy* is only due to the conservative force term \\(F^C\\),\nand is shifted to be zero at the cutoff distance \\(r_c\\). The\npairwise virial is calculated using only the conservative term.\n\nThe forces computed through the *dpd/fdt* and *dpd/fdt/energy* styles\ncan be integrated with the velocity-Verlet integration scheme or the\nShardlow splitting integration scheme described by **Lisal3**. In the cases when these pair styles are combined with the\n[fix shardlow ](https://docs.lammps.org/fix_shardlow.html), these pair styles differ from the\nother dpd styles in that the dissipative and random forces are split\nfrom the force calculation and are not computed within the pair style.\nThus, only the conservative force is computed by the pair style, while\nthe stochastic integration of the dissipative and random forces are\nhandled through the Shardlow splitting algorithm approach. The Shardlow\nsplitting algorithm is advantageous, especially when performing DPD\nunder isoenergetic conditions, as it allows significantly larger\ntimesteps to be taken.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Lisal3)** M. Lisal, J.K. Brennan, J. Bonet Avalos, \"Dissipative\nparticle dynamics at isothermal, isobaric, isoenergetic, and\nisoenthalpic conditions using Shardlow-like splitting algorithms.\",\nJ. Chem. Phys., 135, 204105 (2011). \n \n**(Lisal3)** M. Lisal, J.K. Brennan, J. Bonet Avalos, \"Dissipative\nparticle dynamics at isothermal, isobaric, isoenergetic, and\nisoenthalpic conditions using Shardlow-like splitting algorithms.\",\nJ. Chem. Phys., 135, 204105 (2011). \n ", + "restrictions": "These commands are part of the DPD-REACT package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nPair styles *dpd/fdt* and *dpd/fdt/energy* require use of the\n[comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) option so that velocities are\nstored by ghost atoms.\n\nPair style *dpd/fdt/energy* requires [atom_style dpd ](https://docs.lammps.org/atom_style.html)\nto be used in order to properly account for the particle internal\nenergies and temperatures.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix shardlow ](https://docs.lammps.org/fix_shardlow.html)\n" +}, +{ + "command": [ + "dynamical_matrix" + ], + "syntax": [ + "dynamical_matrix group-ID style gamma args keyword value ..." + ], + "args": [ + [ { - "arg": "hexorder/atom", + "arg": "dynamical_matrix", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "values", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* hexorder/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = degree or nnn or cutoff \n       cutoff value = distance cutoff \n       nnn value = number of nearest neighbors \n       degree value = degree n of order parameter \n", - "examples": "\n```lmps\ncompute 1 all hexorder/atom\ncompute 1 all hexorder/atom degree 4 nnn 4 cutoff 1.2\n```\n", - "html_filename": "compute_hexorder_atom.html", - "short_description": "Define a computation that calculates \\(q_n\\) the bond-orientational\norder parameter for each atom in a group", - "description": "Define a computation that calculates \\(q_n\\) the bond-orientational\norder parameter for each atom in a group. The hexatic (\\ *n* = 6) order\nparameter was introduced by **Nelson** as a way to detect\nhexagonal symmetry in two-dimensional systems. For each atom, \\(q_n\\)\nis a complex number (stored as two real numbers) defined as follows:\n\\[\n q_n = \\frac{1}{nnn}\\sum_{j = 1}^{nnn} e^{n i \\theta({\\bf r}_{ij})}\\]\nwhere the sum is over the *nnn* nearest neighbors\nof the central atom. The angle \\(\\theta\\)\nis formed by the bond vector \\(r_{ij}\\) and the *x* axis.\n\\(\\theta\\) is calculated only using the *x* and *y* components,\nwhereas the distance from the\ncentral atom is calculated using all three\n*x*, *y*, and *z* components of the bond vector.\nNeighbor atoms not in the group\nare included in the order parameter of atoms in the group.\n\nThe optional keyword *cutoff* defines the distance cutoff\nused when searching for neighbors. The default value, also\nthe maximum allowable value, is the cutoff specified\nby the pair style.\n\nThe optional keyword *nnn* defines the number of nearest\nneighbors used to calculate \\(q_n\\). The default value is 6.\nIf the value is NULL, then all neighbors up to the\ndistance cutoff are used.\n\nThe optional keyword *degree* sets the degree *n* of the order parameter.\nThe default value is 6. For a perfect hexagonal lattice with\n*nnn* = 6,\n\\(q_6 = e^{6 i \\phi}\\) for all atoms, where the constant \\(0 < \\phi < \\frac{\\pi}{3}\\)\ndepends only on the orientation of the lattice relative to the *x* axis.\nIn an isotropic liquid, local neighborhoods may still exhibit\nweak hexagonal symmetry, but because the orientational correlation\ndecays quickly with distance, the value of \\(\\phi\\) will be different for\ndifferent atoms, and so when \\(q_6\\) is averaged over all the atoms\nin the system, \\(| \\left< q_6 \\right> | << 1\\).\n\nThe value of \\(q_n\\) is set to zero for atoms not in the\nspecified compute group, as well as for atoms that have less than\n*nnn* neighbors within the distance cutoff.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the order parameter. This\n > difficulty can be circumvented by writing a dump file, and using the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the order parameter for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n #### Output info\n\nThis compute calculates a per-atom array with 2 columns, giving the\nreal and imaginary parts \\(q_n\\), a complex number restricted to the\nunit disk of the complex plane (i.e., \\(\\Re(q_n)^2 + \\Im(q_n)^2 \\le 1\\)).\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Nelson)** Nelson, Halperin, Phys Rev B, 19, 2457 (1979). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html), [compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html), [compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" -}, -{ - "command": [ - "compute spin" - ], - "syntax": [ - "compute ID group-ID spin" - ], - "args": [ - [ + "arg": "eskm", + "type": 3, + "choices": [ + "regular", + "eskm" + ] + }, { - "arg": "compute", - "type": 1, + "arg": "gamma", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "spin", - "type": 1, + "arg": "value", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* spin = style name of this compute command \n", - "examples": "\n```lmps\ncompute out_mag all spin\n```\n", - "html_filename": "compute_spin.html", - "short_description": "Define a computation that calculates magnetic quantities for a system\nof atoms having spins", - "description": "Define a computation that calculates magnetic quantities for a system\nof atoms having spins.\n\nThis compute calculates the following 6 magnetic quantities:\n\n* the three first quantities are the x,y and z coordinates of the total\n magnetization,\n* the fourth quantity is the norm of the total magnetization,\n* The fifth quantity is the magnetic energy (in eV),\n* The sixth one is referred to as the spin temperature, according\n to the work of **Nurdin1**.\n\nThe simplest way to output the results of the compute spin calculation\nis to define some of the quantities as variables, and to use the thermo and\nthermo_style commands, for example:\n\n```lmps\ncompute out_mag all spin\n\nvariable mag_z equal c_out_mag[3]\nvariable mag_norm equal c_out_mag[4]\nvariable temp_mag equal c_out_mag[6]\n\nthermo 10\nthermo_style custom step v_mag_z v_mag_norm v_temp_mag\n```\nThis series of commands evaluates the total magnetization along z, the norm of\nthe total magnetization, and the magnetic temperature. Three variables are\nassigned to those quantities. The thermo and thermo_style commands print them\nevery 10 timesteps.\n\n #### Output info\n\nThe array values are \"intensive\". The array values will be in\nmetal units ([units ](https://docs.lammps.org/units.html)).\n\n**(Nurdin1)** Nurdin and Schotte Phys Rev E, 61(4), 3579 (2000) \n ", - "restrictions": "The *spin* compute is part of the SPIN package. This compute is only\nenabled if LAMMPS was built with this package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The atom_style\nhas to be \"spin\" for this compute to be valid.\n\n**Related commands:**\n\nnone\n", - "related": "none" + "parameters": "* group-ID = ID of group of atoms to displace\n* style = regular or eskm\n* gamma = finite different displacement length (distance units)\n* one or more keyword/arg pairs may be appended \n *        keyword = file or binary \n         file name = name of output file for the dynamical matrix \n         binary arg = yes or no or gzip \n", + "examples": "\n```lmps\ndynamical_matrix 1 regular 0.000001\ndynamical_matrix 1 eskm 0.000001\ndynamical_matrix 3 regular 0.00004 file dynmat.dat\ndynamical_matrix 5 eskm 0.00000001 file dynamical.dat binary yes\n```\n", + "html_filename": "dynamical_matrix.html", + "short_description": "Calculate the dynamical matrix by finite difference of the selected group,\n\\[\n D = \\frac{\\Phi_{ij}^{\\alpha\\beta}}{\\sqrt{M_i M_j}}\\]\nwhere D is the dynamical matrix and \\(\\Phi\\) is the force constant\nmatrix defined by\n\\[\n \\Phi_{ij}^{\\alpha\\beta} = \\frac{\\partial^2 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta}}\\]\nThe output for the dynamical matrix is printed three elements at a time", + "description": "Calculate the dynamical matrix by finite difference of the selected group,\n\\[\n D = \\frac{\\Phi_{ij}^{\\alpha\\beta}}{\\sqrt{M_i M_j}}\\]\nwhere D is the dynamical matrix and \\(\\Phi\\) is the force constant\nmatrix defined by\n\\[\n \\Phi_{ij}^{\\alpha\\beta} = \\frac{\\partial^2 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta}}\\]\nThe output for the dynamical matrix is printed three elements at a time.\nThe three elements are the three \\(\\beta\\) elements for a respective\ni/\\(\\alpha\\)/j combination. Each line is printed in order of j\nincreasing first, \\(\\alpha\\) second, and i last.\n\nIf the style eskm is selected, the dynamical matrix will be in units of\ninverse squared femtoseconds. These units will then conveniently leave\nfrequencies in THz.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "The command collects an array of nine times the number of atoms in a group\non every single MPI rank, so the memory requirements can be very significant\nfor large systems.\n\nThis command is part of the PHONON package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix phonon ](https://docs.lammps.org/fix_phonon.html), [fix numdiff ](https://docs.lammps.org/fix_numdiff.html),\n\n[compute hma ](https://docs.lammps.org/compute_hma.html) uses an analytic formulation of the\nHessian provided by a pair_style's Pair::single_hessian() function,\nif implemented.\n" }, { "command": [ - "fix_modify AtC output" + "fix ttm", + "fix ttm/grid" ], "syntax": [ - "fix_modify output [text|full_text|binary|vector_components|tensor_components]", - "fix_modify output index [step|time]" + "fix ID group-ID ttm seed C_e rho_e kappa_e gamma_p gamma_s v_0 Nx Ny Nz keyword value ...", + "fix ID group-ID ttm/mod seed init_file Nx Ny Nz keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 2, + "arg": "ttm", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "[text|full_text|binary|vector_components|tensor_components]", - "type": 3, - "choices": [ - "text", - "full_text", - "binary", - "vector_components", - "tensor_components" - ] - } - ], - [ - { - "arg": "fix_modify", - "type": 1, + "arg": "C_e", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "rho_e", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "kappa_e", + "type": 2, "choices": [] }, { - "arg": "index", - "type": 1, + "arg": "gamma_p", + "type": 2, "choices": [] }, { - "arg": "[step|time]", - "type": 3, - "choices": [ - "step", - "time" - ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output or *output index* = name of the AtC sub-command\n* filename_prefix = prefix for data files (for output)\n* frequency = frequency of output in timesteps (for output)\n* optional keywords for output:\n\n - text = creates text output of index, step and nodal variable values for unique nodes\n - full_text = creates text output index, nodal id, step, nodal coordinates and nodal variable values for unique and image nodes\n - binary = creates binary EnSight output\n - vector_components = outputs vectors as scalar components\n - tensor_components = outputs tensor as scalar components (for use with ParaView)\n\n* step or time = index output by step or by time (for *output index*) \n", - "examples": "\n```lmps\nfix_modify AtC output heatFE 100\nfix_modify AtC output hardyFE 1 text tensor_components\nfix_modify AtC output hardyFE 10 text binary tensor_components\nfix_modify AtC output index step\n```\n", - "html_filename": "atc_output.html", - "short_description": "Creates text and/or binary (EnSight, \"gold\" format) output of nodal/mesh\ndata which is transfer/physics specific", - "description": "Creates text and/or binary (EnSight, \"gold\" format) output of nodal/mesh\ndata which is transfer/physics specific. Output indexing by step or time\nis possible.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" -}, -{ - "command": [ - "compute group/group" - ], - "syntax": [ - "compute ID group-ID group/group group2-ID keyword value ..." - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, + "arg": "gamma_s", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "v_0", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Nx", "type": 2, "choices": [] }, { - "arg": "group/group", - "type": 1, + "arg": "Ny", + "type": 2, "choices": [] }, { - "arg": "group2-ID", + "arg": "Nz", "type": 2, "choices": [] }, { - "arg": "molecule", + "arg": "outfile", "type": 3, "choices": [ - "pair", - "kspace", - "boundary", - "molecule" + "set", + "infile", + "outfile" ] }, { @@ -12263,246 +11415,147 @@ export const command_docs = [ "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* group/group = style name of this compute command\n* group2-ID = group ID of second (or same) group\n* zero or more keyword/value pairs may be appended\n* keyword = pair or kspace or boundary or molecule \n *        pair value = yes or no \n *        kspace value = yes or no \n *        boundary value = yes or no \n *        molecule value = off or inter or intra \n", - "examples": "\n```lmps\ncompute 1 lower group/group upper\ncompute 1 lower group/group upper kspace yes\ncompute mine fluid group/group wall\n```\n", - "html_filename": "compute_group_group.html", - "short_description": "Define a computation that calculates the total energy and force\ninteraction between two groups of atoms: the compute group and the\nspecified group2", - "description": "Define a computation that calculates the total energy and force\ninteraction between two groups of atoms: the compute group and the\nspecified group2. The two groups can be the same.\n\nIf the *pair* keyword is set to *yes*, which is the default, then the\nthe interaction energy will include a pair component which is defined\nas the pairwise energy between all pairs of atoms where one atom in\nthe pair is in the first group and the other is in the second group.\nLikewise, the interaction force calculated by this compute will\ninclude the force on the compute group atoms due to pairwise\ninteractions with atoms in the specified group2.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The energies computed by the *pair* keyword do not include tail\n > corrections, even if they are enabled via the\n > [pair_modify ](https://docs.lammps.org/pair_modify.html) command. \n > \n\nIf the *molecule* keyword is set to *inter* or *intra* than an\nadditional check is made based on the molecule IDs of the two atoms in\neach pair before including their pairwise interaction energy and\nforce. For the *inter* setting, the two atoms must be in different\nmolecules. For the *intra* setting, the two atoms must be in the same\nmolecule.\n\nIf the *kspace* keyword is set to *yes*, which is not the default, and\nif a [kspace_style ](https://docs.lammps.org/kspace_style.html) is defined, then the interaction\nenergy will include a Kspace component which is the long-range\nCoulombic energy between all the atoms in the first group and all the\natoms in the second group. Likewise, the interaction force calculated by\nthis compute will include the force on the compute group atoms due to\nlong-range Coulombic interactions with atoms in the specified group2.\n\nNormally the long-range Coulombic energy converges only when the net\ncharge of the unit cell is zero. However, one can assume the net\ncharge of the system is neutralized by a uniform background plasma,\nand a correction to the system energy can be applied to reduce\nartifacts. For more information see :ref:[(Bogusz) ](https://docs.lammps.org/Bogusz>`. If the*boundary* keyword is set to *yes*, which is the default, and *kspace*contributions are included, then this energy correction term will beadded to the total group-group energy. This correction term does notaffect the force calculation and will be zero if one or both of thegroups are charge neutral. This energy correction term is the same asthat included in the regular Ewald and PPPM routines.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The *molecule* setting only affects the group/group > contributions calculated by the *pair* keyword. It does not affect > the group/group contributions calculated by the *kspace* keyword. > This compute does not calculate any bond or angle or dihedral orimproper interactions between atoms in the two groups.----------The pairwise contributions to the group-group interactions arecalculated by looping over a neighbor list. The Kspace contributionto the group-group interactions require essentially the same amount ofwork (FFTs, Ewald summation) as computing long-range forces for theentire system. Thus it can be costly to invoke this compute toofrequently.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >If you have a bonded system, then the settings of > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise > interactions between atoms in the same bond, angle, or dihedral. This is > the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, > and means those pairwise interactions do not appear in the neighbor list. > Because this compute uses a neighbor list, it also means those pairs will > not be included in the group/group interaction. This does not apply when > using long-range Coulomb interactions > (\\ *coul/long*, *coul/msm*, *coul/wolf* or similar). One way to get > around this would be to set *special_bond* scaling factors to very tiny > numbers that are not exactly zero (e.g., \\(1.0 \\times 10^{-50}\\)). > Another workaround would be to write a dump file and use the > [rerun ](https://docs.lammps.org/rerun.html) command to compute the group/group interactions for > snapshots in the dump file. The rerun script can use a > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in the > neighbor list. > If you desire a breakdown of the interactions into a pairwise andKspace component, simply invoke the compute twice with the appropriateyes/no settings for the *pair* and *kspace* keywords. This is no morecostly than using a single compute with both keywords set to *yes* .The individual contributions can be summed in a[variable ](https://docs.lammps.org/variable.html) if desired.This `document ` for further info. If support for\nlibcurl is not included, using *geturl* will trigger an error.\n", - "related": "[shell ](https://docs.lammps.org/shell.html)\n" -}, -{ - "command": [ - "pair_style lj/smooth", - "pair_style lj/smooth/gpu", - "pair_style lj/smooth/omp" - ], - "syntax": [ - "pair_style lj/smooth Rin Rc" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "init_file", + "type": 2, "choices": [] }, { - "arg": "lj/smooth", - "type": 3, - "choices": [ - "lj/smooth", - "lj/smooth/gpu", - "lj/smooth/omp" - ] + "arg": "Nx", + "type": 2, + "choices": [] }, { - "arg": "Rin", + "arg": "Ny", "type": 2, "choices": [] }, { - "arg": "Rc", + "arg": "Nz", "type": 2, "choices": [] - } - ] - ], - "parameters": "* Rin = inner cutoff beyond which force smoothing will be applied (distance units)\n* Rc = outer cutoff for lj/smooth interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/smooth 8.0 10.0\npair_coeff * * 10.0 1.5\npair_coeff 1 1 20.0 1.3 7.0 9.0\n```\n", - "html_filename": "pair_lj_smooth.html", - "short_description": "Style *lj/smooth* computes a LJ interaction with a force smoothing\napplied between the inner and outer cutoff", - "description": "Style *lj/smooth* computes a LJ interaction with a force smoothing\napplied between the inner and outer cutoff.\n\\[\\begin{align*} \n E & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_{in} \\\\\n F & = C_1 + C_2 (r - r_{in}) + C_3 (r - r_{in})^2 + C_4 (r - r_{in})^3\n \\qquad r_{in} < r < r_c \\end{align*} \\]\nThe polynomial coefficients C1, C2, C3, C4 are computed by LAMMPS to\ncause the force to vary smoothly from the inner cutoff \\(r_{in}\\) to the\nouter cutoff \\(r_c\\).\n\nAt the inner cutoff the force and its first derivative\nwill match the non-smoothed LJ formula. At the outer cutoff the force\nand its first derivative will be 0.0. The inner cutoff cannot be 0.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >this force smoothing causes the energy to be discontinuous both\n > in its values and first derivative. This can lead to poor energy\n > conservation and may require the use of a thermostat. Plot the energy\n > and force resulting from this formula via the\n > [pair_write ](https://docs.lammps.org/pair_write.html) command to see the effect. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(r_{in}\\) (distance units)\n* \\(r_c\\) (distance units)\n\nThe last 2 coefficients are optional inner and outer cutoffs. If not\nspecified, the global values for \\(r_{in}\\) and \\(r_c\\) are used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, Rin\ncoefficients and the cutoff distance for this pair style can be mixed.\nRin is a cutoff value and is mixed like the cutoff. The other\ncoefficients are mixed according to the pair_modify mix option. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html)\n" -}, -{ - "command": [ - "next" - ], - "syntax": [ - "next variables" - ], - "args": [ - [ + }, { - "arg": "next", - "type": 1, - "choices": [] + "arg": "outfile", + "type": 3, + "choices": [ + "set", + "infile", + "outfile" + ] }, { - "arg": "variables", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* variables = one or more variable names \n", - "examples": "\n```lmps\nnext x\nnext a t x myTemp\n```\n", - "html_filename": "next.html", - "short_description": "This command is used with variables defined by the\n[variable ](https://docs.lammps.org/variable.html) command", - "description": "This command is used with variables defined by the\n[variable ](https://docs.lammps.org/variable.html) command. It assigns the next value to the\nvariable from the list of values defined for that variable by the\n[variable ](https://docs.lammps.org/variable.html) command. Thus when that variable is\nsubsequently substituted for in an input script command, the new value\nis used.\n\nSee the [variable ](https://docs.lammps.org/variable.html) command for info on how to define and\nuse different kinds of variables in LAMMPS input scripts. If a\nvariable name is a single lower-case character from \"a\" to \"z\", it can\nbe used in an input script command as $a or $z. If it is multiple\nletters, it can be used as ${myTemp}.\n\nIf multiple variables are used as arguments to the *next* command,\nthen all must be of the same variable style: *index*, *loop*, *file*,\n*universe*, or *uloop* . An exception is that *universe* - and\n*uloop* -style variables can be mixed in the same *next* command.\n\nAll the variables specified with the next command are incremented by\none value from their respective list of values. A *file* -style\nvariable reads the next line from its associated file. An\n*atomfile* -style variable reads the next set of lines (one per atom)\nfrom its associated file. *String-* or *atom* - or *equal* - or\n*world* -style variables cannot be used with the next command,\nsince they only store a single value.\n\nWhen any of the variables in the next command has no more values, a\nflag is set that causes the input script to skip the next\n[jump ](https://docs.lammps.org/jump.html) command encountered. This enables a loop containing\na next command to exit. As explained in the [variable ](https://docs.lammps.org/variable.html)\ncommand, the variable that has exhausted its values is also deleted.\nThis allows it to be used and re-defined later in the input script.\n*File* -style and *atomfile* -style variables are exhausted when the\nend-of-file is reached.\n\nWhen the next command is used with *index* - or *loop* -style variables,\nthe next value is assigned to the variable for all processors. When\nthe next command is used with *file* -style variables, the next line is\nread from its file and the string assigned to the variable. When the\nnext command is used with *atomfile* -style variables, the next set of\nper-atom values is read from its file and assigned to the variable.\n\nWhen the next command is used with *universe* - or *uloop* -style\nvariables, all *universe* - or *uloop* -style variables must be listed\nin the next command. This is because of the manner in which the\nincrementing is done, using a single lock file for all variables. The\nnext value (for each variable) is assigned to whichever processor\npartition executes the command first. All processors in the partition\nare assigned the same value(s). Running LAMMPS on multiple partitions\nof processors via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). *Universe* - and *uloop* -style variables are\nincremented using the files \"tmp.lammps.variable\" and\n\"tmp.lammps.variable.lock\" which you will see in your directory during\nand after such a LAMMPS run.\n\nHere is an example of running a series of simulations using the next\ncommand with an *index* -style variable. If this input script is named\nin.polymer, 8 simulations would be run using data files from\ndirectories run1 through run8.\n\n```lmps\nvariable d index run1 run2 run3 run4 run5 run6 run7 run8\nshell cd $d\nread_data data.polymer\nrun 10000\nshell cd ..\nclear\nnext d\njump in.polymer\n```\nIf the variable \"d\" were of style *universe*, and the same in.polymer\ninput script were run on 3 partitions of processors, then the first 3\nsimulations would begin, one on each set of processors. Whichever\npartition finished first, it would assign variable \"d\" the fourth value\nand run another simulation, and so forth until all 8 simulations were\nfinished.\n\nJump and next commands can also be nested to enable multi-level loops.\nFor example, this script will run 15 simulations in a double loop.\n\n```lmps\nvariable i loop 3\nvariable j loop 5\nclear\n...\nread_data data.polymer.$i$j\nprint Running simulation $i.$j\nrun 10000\nnext j\njump in.script\nnext i\njump in.script\n```\nHere is an example of a double loop which uses the [if ](https://docs.lammps.org/if.html) and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif $b > 2 then \"jump in.script break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\n\nnext a\njump in.script loopa\n```\n", - "restrictions": "As described above.\n", - "related": "[jump ](https://docs.lammps.org/jump.html), [include ](https://docs.lammps.org/include.html), [shell ](https://docs.lammps.org/shell.html),\n[variable ](https://docs.lammps.org/variable.html),\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = ttm or ttm/grid or ttm/mod\n* seed = random number seed to use for white noise (positive integer)\n* remaining arguments for fix ttm or fix ttm/grid \n *        C_e = electronic specific heat (energy/(electron\\*temperature) units) \n *        rho_e = electronic density (electrons/volume units) \n *        kappa_e = electronic thermal conductivity (energy/(time\\*distance\\*temperature) units) \n *        gamma_p = friction coefficient due to electron-ion interactions (mass/time units) \n *        gamma_s = friction coefficient due to electronic stopping (mass/time units) \n *        v_0 = electronic stopping critical velocity (velocity units) \n *        Nx = number of thermal solve grid points in the x-direction (positive integer) \n *        Ny = number of thermal solve grid points in the y-direction (positive integer) \n *        Nz = number of thermal solve grid points in the z-direction (positive integer) \n* remaining arguments for fix ttm/mod: \n *        init_file = file with the parameters to TTM \n *        Nx = number of thermal solve grid points in the x-direction (positive integer) \n *        Ny = number of thermal solve grid points in the y-direction (positive integer) \n *        Nz = number of thermal solve grid points in the z-direction (positive integer) \n* zero or more keyword/value(s) pairs may be appended\n* keyword = set or infile or outfile \n *        set value = Tinit \n         Tinit = initial electronic temperature at all grid points (temperature units) \n *        infile value = file.in with grid values for electronic temperatures \n *        outfile values = Nout file.out \n         Nout = dump grid temperatures every this many timesteps \n         file.out = filename to write grid temperatures to \n", + "examples": "\n```lmps\nfix 2 all ttm 699489 1.0 1.0 10 0.1 0.0 2.0 1 12 1 infile initial outfile 1000 T.out\nfix 3 all ttm/grid 123456 1.0 1.0 1.0 1.0 1.0 5.0 5 5 5 infile Te.in\nfix 4 all ttm/mod 34277 parameters.txt 5 5 5 infile T_init outfile 10 T_out\n```\nExample input scripts using these commands can be found in examples/ttm.\n", + "html_filename": "fix_ttm.html", + "short_description": "Use a two-temperature model (TTM) to represent heat transfer through\nand between electronic and atomic subsystems", + "description": "Use a two-temperature model (TTM) to represent heat transfer through\nand between electronic and atomic subsystems. LAMMPS models the\natomic subsystem as usual with a molecular dynamics model and the\nclassical force field specified by the user. The electronic subsystem\nis modeled as a continuum, or a background \"gas\", on a regular grid\nwhich overlays the simulation domain. Energy can be transferred\nspatially within the grid representing the electrons. Energy can also\nbe transferred between the electronic and atomic subsystems. The\nalgorithm underlying this fix was derived by D. M. Duffy\nand A. M. Rutherford and is discussed in two J Physics: Condensed\nMatter papers: **Duffy** and **Rutherford**. They used this algorithm in cascade simulations where\na primary knock-on atom (PKA) was initialized with a high velocity to\nsimulate a radiation event.\n\nThe description in this subsection applies to all 3 fix styles:\n*ttm*, *ttm/grid*, and *ttm/mod*.\n\nFix *ttm/grid* distributes the regular grid across processors consistent\nwith the subdomains of atoms owned by each processor, but is otherwise\nidentical to fix ttm. Note that fix *ttm* stores a copy of the grid on\neach processor, which is acceptable when the overall grid is reasonably\nsmall. For larger grids you should use fix *ttm/grid* instead.\n\nFix *ttm/mod* adds options to account for external heat sources (e.g. at\na surface) and for specifying parameters that allow the electronic heat\ncapacity to depend strongly on electronic temperature. It is more\nexpensive computationally than fix *ttm* because it treats the thermal\ndiffusion equation as non-linear. More details on fix *ttm/mod* are\ngiven below.\n\nHeat transfer between the electronic and atomic subsystems is carried\nout via an inhomogeneous Langevin thermostat. Only atoms in the fix\ngroup contribute to and are affected by this heat transfer.\n\nThis thermostatting differs from the regular Langevin thermostat\n([fix langevin ](https://docs.lammps.org/fix_langevin.html)) in three important ways. First,\nthe Langevin thermostat is applied uniformly to all atoms in the\nuser-specified group for a single target temperature, whereas the TTM\nfixes apply Langevin thermostatting locally to atoms within the\nvolumes represented by the user-specified grid points with a target\ntemperature specific to that grid point. Second, the Langevin\nthermostat couples the temperature of the atoms to an infinite heat\nreservoir, whereas the heat reservoir for the TTM fixes is finite and\nrepresents the local electrons. Third, the TTM fixes allow users to\nspecify not just one friction coefficient, but rather two independent\nfriction coefficients: one for the electron-ion interactions\n(*gamma_p*), and one for electron stopping (*gamma_s*).\n\nWhen the friction coefficient due to electron stopping, *gamma_s*, is\nnon-zero, electron stopping effects are included for atoms moving\nfaster than the electron stopping critical velocity, *v_0*. For\nfurther details about this algorithm, see **Duffy** and\n**Rutherford**.\n\nEnergy transport within the electronic subsystem is solved according\nto the heat diffusion equation with added source terms for heat\ntransfer between the subsystems:\n\\[\n C_e \\rho_e \\frac{\\partial T_e}{\\partial t} =\n \\bigtriangledown (\\kappa_e \\bigtriangledown T_e) -\n g_p (T_e - T_a) + g_s T_a'\\]\nwhere \\(C_e\\) is the specific heat, \\(\\rho_e\\) is the density,\n\\(\\kappa_e\\) is the thermal conductivity, *T* is temperature, the\n\"e\" and \"a\" subscripts represent electronic and atomic subsystems\nrespectively, \\(g_p\\) is the coupling constant for the electron-ion\ninteraction, and \\(g_s\\) is the electron stopping coupling\nparameter. \\(C_e\\), \\(\\rho_e\\), and \\(\\kappa_e\\) are\nspecified as parameters to the fix *ttm* or *ttm/grid*. The other\nquantities are derived. The form of the heat diffusion equation used\nhere is almost the same as that in equation 6 of **Duffy**,\nwith the exception that the electronic density is explicitly\nrepresented, rather than being part of the specific heat parameter.\n\nCurrently, the TTM fixes assume that none of the user-supplied\nparameters will vary with temperature. Note that **Duffy**\nused a tanh() functional form for the temperature dependence of the\nelectronic specific heat, but ignored temperature dependencies of any of\nthe other parameters. See more discussion below for fix *ttm/mod*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes do not perform time integration of the atoms in the fix\n > group, they only rescale their velocities. Thus a time integration\n > fix such as [fix nve ](https://docs.lammps.org/fix_nve.html) should be used in conjunction\n > with these fixes. These fixes should not normally be used on atoms\n > that have their temperature controlled by another thermostatting\n > fix, e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin > ](https://docs.lammps.org/fix_langevin.html). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes require use of an orthogonal 3d simulation box with\n > periodic boundary conditions in all dimensions. They also require\n > that the size and shape of the simulation box do not vary\n > dynamically, e.g. due to use of the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n > Likewise, the size/shape of processor subdomains cannot vary due to\n > dynamic load-balancing via use of the [fix balance > ](https://docs.lammps.org/fix_balance.html) command. It is possible however to load balance\n > before the simulation starts using the [balance ](https://docs.lammps.org/balance.html)\n > command, so that each processor has a different size subdomain. \n > \n\nPeriodic boundary conditions are also used in the heat equation solve\nfor the electronic subsystem. This varies from the approach of\n**Rutherford** where the atomic subsystem was\nembedded within a larger continuum representation of the electronic\nsubsystem.\n\nThe *set* keyword specifies a *Tinit* temperature value to initialize\nthe value stored on all grid points. By default the temperatures\nare all zero when the grid is created.\n\nThe *infile* keyword specifies an input file of electronic temperatures\nfor each grid point to be read in to initialize the grid, as an alternative\nto using the *set* keyword.\n\nThe input file is a text file which may have comments starting with\nthe '#' character. Each line contains four numeric columns:\nix,iy,iz,Temperature. Empty or comment-only lines will be\nignored. The number of lines must be equal to the number of\nuser-specified grid points (Nx by Ny by Nz). The ix,iy,iz are grid\npoint indices ranging from 1 to Nxyz inclusive in each dimension. The\nlines can appear in any order. For example, the initial electronic\ntemperatures on a 1 by 2 by 3 grid could be specified in the file as\nfollows:\n\n```\n# UNITS: metal COMMENT: initial electron temperature\n1 1 1 1.0\n1 1 2 1.0\n1 1 3 1.0\n1 2 1 2.0\n1 2 2 2.0\n1 2 3 2.0\n```\nwhere the electronic temperatures along the y=0 plane have been set to\n1.0, and the electronic temperatures along the y=1 plane have been set\nto 2.0. If all the grid point values are not specified, LAMMPS will\ngenerate an error. LAMMPS will check if a \"UNITS:\" tag is in the first\nline and stop with an error, if there is a mismatch with the current\nunits used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The electronic temperature at each grid point must be a non-zero\n > positive value, both initially, and as the temperature evolves over\n > time. Thus you must use either the *set* or *infile* keyword or be\n > restarting a simulation that used this fix previously. \n > \n\nThe *outfile* keyword has 2 values. The first value *Nout* triggers\noutput of the electronic temperatures for each grid point every Nout\ntimesteps. The second value is the filename for output, which will be\nsuffixed by the timestep. The format of each output file is exactly\nthe same as the input temperature file. It will contain a comment in\nthe first line reporting the date the file was created, the LAMMPS\nunits setting in use, grid size and the current timestep.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix ttm/grid command does not support the *outfile* keyword.\n > Instead you can use the [dump grid ](https://docs.lammps.org/dump.html) command to output\n > the electronic temperature on the distributed grid to a dump file or\n > the [restart ](https://docs.lammps.org/restart.html) command which creates a file specific\n > to this fix which the [read restart ](https://docs.lammps.org/read_restart.html) command\n > reads. The file has the same format as the file the *infile* option\n > reads. \n > \n\nFor the fix ttm and fix ttm/mod commands, the corresponding atomic\ntemperature for atoms in each grid cell can be computed and output by\nthe [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command using the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command to create a 3d\narray of chunks consistent with the grid used by this fix.\n\nFor the fix ttm/grid command the same thing can be done using the\n[fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command and its per-grid values can\nbe output via the [dump grid ](https://docs.lammps.org/dump.html) command.\n\n----------\n\n**Additional details for fix ttm/mod**\n\nFix *ttm/mod* uses the heat diffusion equation with possible external\nheat sources (e.g. laser heating in ablation simulations):\n\\[\n C_e \\rho_e \\frac{\\partial T_e}{\\partial t} =\n \\bigtriangledown (\\kappa_e \\bigtriangledown T_e) -\n g_p (T_e - T_a) + g_s T_a' + \\theta (x-x_{surface})I_0 \\exp(-x/l_{skin})\\]\nwhere \\(\\theta\\) is the Heaviside step function, \\(I_0\\) is the\n(absorbed) laser pulse intensity for ablation simulations,\n\\(l_{skin}\\) is the depth of the skin-layer, and all other\ndesignations have the same meaning as in the former equation. The\nduration of the pulse is set by the parameter *tau* in the *init_file*.\n\nFix *ttm/mod* also allows users to specify the dependencies of\n\\(C_e\\) and \\(\\kappa_e\\) on the electronic temperature. The\nspecific heat is expressed as\n\\[\n C_e = C_0 + (a_0 + a_1 X + a_2 X^2 + a_3 X^3 + a_4 X^4) \\exp (-(AX)^2)\\]\nwhere \\(X = \\frac{T_e}{1000}\\), and the thermal conductivity is\ndefined as \\(\\kappa_e = D_e \\cdot rho_e \\cdot C_e\\), where\n\\(D_e\\) is the thermal diffusion coefficient.\n\nElectronic pressure effects are included in the TTM model to account for\nthe blast force acting on ions because of electronic pressure gradient\n(see **Chen**, **Norman**). The total force\nacting on an ion is:\n\\[\n {\\vec F}_i = - \\partial U / \\partial {\\vec r}_i + {\\vec\n F}_{langevin} - \\nabla P_e/n_{ion}\\]\nwhere \\(F_{langevin}\\) is a force from Langevin thermostat\nsimulating electron-phonon coupling, and \\(\\nabla P_e/n_{ion}\\) is\nthe electron blast force.\n\nThe electronic pressure is taken to be \\(P_e = B \\cdot rho_e \\cdot\nC_e \\cdot T_e\\)\n\nThe current fix *ttm/mod* implementation allows TTM simulations with a\nvacuum. The vacuum region is defined as the grid cells with zero\nelectronic temperature. The numerical scheme does not allow energy\nexchange with such cells. Since the material can expand to previously\nunoccupied region in some simulations, the vacuum border can be allowed\nto move. It is controlled by the *surface_movement* parameter in the\n*init_file*. If it is set to 1, then \"vacuum\" cells can be changed to\n\"electron-filled\" cells with the temperature *T_e_min* if atoms move\ninto them (currently only implemented for the case of 1-dimensional\nmotion of a flat surface normal to the X axis). The initial locations of\nthe interfaces of the electron density to the vacuum can be set in the\n*init_file* via *lsurface* and *rsurface* parameters. In this case,\nelectronic pressure gradient is calculated as\n\\[\n \\nabla_x P_e = \\left[\\frac{C_e{}T_e(x)\\lambda}{(x+\\lambda)^2} +\n \\frac{x}{x+\\lambda}\\frac{(C_e{}T_e)_{x+\\Delta\n x}-(C_e{}T_e)_{x}}{\\Delta x} \\right]\\]\nwhere \\(\\lambda\\) is the electron mean free path (see **Norman**, **Pisarev**)\n\nThe fix *ttm/mod* parameter file *init_file* has the following syntax.\nEvery line with an odd number is considered as a comment and\nignored. The lines with the even numbers are treated as follows:\n\n```\na_0, energy/(temperature\\*electron) units\na_1, energy/(temperature\\^2\\*electron) units\na_2, energy/(temperature\\^3\\*electron) units\na_3, energy/(temperature\\^4\\*electron) units\na_4, energy/(temperature\\^5\\*electron) units\nC_0, energy/(temperature\\*electron) units\nA, 1/temperature units\nrho_e, electrons/volume units\nD_e, length\\^2/time units\ngamma_p, mass/time units\ngamma_s, mass/time units\nv_0, length/time units\nI_0, energy/(time\\*length\\^2) units\nlsurface, electron grid units (positive integer)\nrsurface, electron grid units (positive integer)\nl_skin, length units\ntau, time units\nB, dimensionless\nlambda, length units\nn_ion, ions/volume units\nsurface_movement: 0 to disable tracking of surface motion, 1 to enable\nT_e_min, temperature units\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix ttm and fix ttm/mod commands write the state of the electronic\nsubsystem and the energy exchange between the subsystems to\n[binary restart files ](https://docs.lammps.org/restart.html). The fix ttm/grid command does\nnot yet support writing of its distributed grid to a restart file.\n\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion. Note\nthat the restart script must define the same size grid as the original\nscript.\n\nThe fix ttm/grid command also outputs an auxiliary file each time a\nrestart file is written, with the electron temperatures for each grid\ncell. The format of this file is the same as that read by the\n*infile* option explained above. The filename is the same as the\nrestart filename with \".ttm\" appended. This auxiliary file can be\nread in for a restarted run by using the *infile* option for the fix\nttm/grid command, following the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthese fixes.\n\nThese fixes compute 2 output quantities stored in a vector of length\n2, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first quantity is the total energy of the\nelectronic subsystem. The second quantity is the energy transferred\nfrom the electronic to the atomic subsystem on that timestep. Note\nthat the velocity verlet integrator applies the fix ttm forces to the\natomic subsystem as two half-step velocity updates: one on the current\ntimestep and one on the subsequent timestep. Consequently, the change\nin the atomic subsystem energy is lagged by half a timestep relative\nto the change in the electronic subsystem energy. As a result of this,\nusers may notice slight fluctuations in the sum of the atomic and\nelectronic subsystem energies reported at the end of the timestep.\n\nThe vector values calculated are \"extensive\".\n\nThe fix ttm/grid command also outputs a per-grid vector which stores\nthe electron temperature for each grid cell in temperature [units](https://docs.lammps.org/units.html). which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The length of the vector (distributed across all\nprocessors) is Nx * Ny * Nz. For access by other commands, the name\nof the single grid produced by fix ttm/grid is \"grid\". The name of\nits per-grid data is \"data\".\n\nNo parameter of the fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. The fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Duffy)** D M Duffy and A M Rutherford, J. Phys.: Condens. Matter, 19,\n016207-016218 (2007). \n \n**(Rutherford)** A M Rutherford and D M Duffy, J. Phys.:\nCondens. Matter, 19, 496201-496210 (2007). \n \n**(Rutherford)** A M Rutherford and D M Duffy, J. Phys.:\nCondens. Matter, 19, 496201-496210 (2007). \n \n**(Chen)** J Chen, D Tzou and J Beraun, Int. J. Heat\nMass Transfer, 49, 307-316 (2006). \n \n**(Norman)** G E Norman, S V Starikov, V V Stegailov et al., Contrib.\nPlasma Phys., 53, 129-139 (2013). \n \n**(Norman)** G E Norman, S V Starikov, V V Stegailov et al., Contrib.\nPlasma Phys., 53, 129-139 (2013). \n \n**(Pisarev)** V V Pisarev and S V Starikov, J. Phys.: Condens. Matter, 26,\n475401 (2014). \n ", + "restrictions": "All these fixes are part of the EXTRA-FIX package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAs mentioned above, these fixes require 3d simulations and orthogonal\nsimulation boxes periodic in all 3 dimensions.\n\nThese fixes used a random number generator to Langevin thermostat the\nelectron temperature. This means you will not get identical answers\nwhen running on different numbers of processors or when restarting a\nsimulation (even on the same number of processors). However, in a\nstatistical sense, simulations on different processor counts and\nrestarted simulation should produce results which are statistically\nthe same.\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\n" }, { "command": [ - "fix_modify AtC fields" + "fix temp/rescale/eff" ], "syntax": [ - "fix_modify fields ", - "fix_modify fields " + "fix ID group-ID temp/rescale/eff N Tstart Tstop window fraction" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "fields", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "all", - "none" - ] - } - ], - [ - { - "arg": "fix_modify", + "arg": "temp/rescale/eff", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "fields", - "type": 1, + "arg": "Tstart", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "add", - "delete" - ] + "arg": "Tstop", + "type": 2, + "choices": [] }, { - "arg": "", + "arg": "window", + "type": 2, + "choices": [] + }, + { + "arg": "fraction", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fields = name of the AtC sub-command\n* all or none = output all or no fields\n* add or delete = add or delete the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by :ref:`(Eshelby) `\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", - "examples": "\n```lmps\nfix_modify AtC fields add velocity temperature\n```\n", - "html_filename": "atc_hardy_fields.html", - "short_description": "Allows modification of the fields calculated and output by the AtC\ntransfer class", - "description": "Allows modification of the fields calculated and output by the AtC\ntransfer class. The commands are cumulative, e.g.:\n\n```lmps\nfix_modify AtC fields none\nfix_modify AtC fields add velocity temperature\n```\nwill only output the velocity and temperature fields.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). Currently, the stress\nand heat flux formulas are only correct for central force potentials,\ne.g. Lennard-Jones and EAM but not Stillinger-Weber.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n- [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/rescale/eff = style name of this fix command\n* N = perform rescaling every N steps\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* window = only rescale if temperature is outside this window (temperature units)\n* fraction = rescale to target temperature by this fraction \n", + "examples": "\n```lmps\nfix 3 flow temp/rescale/eff 10 1.0 100.0 0.02 1.0\n```\n", + "html_filename": "fix_temp_rescale_eff.html", + "short_description": "Reset the temperature of a group of nuclei and electrons in the\n[electron force field ](https://docs.lammps.org/pair_eff.html) model by explicitly rescaling\ntheir velocities", + "description": "Reset the temperature of a group of nuclei and electrons in the\n[electron force field ](https://docs.lammps.org/pair_eff.html) model by explicitly rescaling\ntheir velocities.\n\nThe operation of this fix is exactly like that described by the [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) command, except that the rescaling\nis also applied to the radial electron velocity for electron\nparticles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[fix temp rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n" }, { "command": [ - "fix damping/cundall" + "fix spring/chunk" ], "syntax": [ - "fix ID group-ID damping/cundall gamma_l gamma_a keyword values ..." + "fix ID group-ID spring/chunk K chunkID comID" ], "args": [ [ @@ -12522,126 +11575,108 @@ export const command_docs = [ "choices": [] }, { - "arg": "damping/cundall", + "arg": "spring/chunk", "type": 1, "choices": [] }, { - "arg": "gamma_l", - "type": 2, - "choices": [] - }, - { - "arg": "gamma_a", + "arg": "K", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "chunkID", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "comID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* damping/cundall = style name of this fix command\n* gamma_l = linear damping coefficient (dimensionless)\n* gamma_a = angular damping coefficient (dimensionless)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale \n       scale values = *type ratio* or v_name \n       type = atom type (1-N) \n       ratio = factor to scale the damping coefficients by \n       v_name = reference to atom style variable name \n", - "examples": "\n```lmps\nfix 1 all damping/cundall 0.8 0.8\nfix 1 all damping/cundall 0.8 0.5 scale 3 2.5\nfix a all damping/cundall 0.8 0.5 scale v_radscale\n```\n", - "html_filename": "fix_damping_cundall.html", - "short_description": "Add damping force and torque to finite-size spherical particles in the group\nfollowing the model of **Cundall1987**, as implemented in other\ngranular physics code (e.g., **YadeDEM**, **PFC**)", - "description": "Add damping force and torque to finite-size spherical particles in the group\nfollowing the model of **Cundall1987**, as implemented in other\ngranular physics code (e.g., **YadeDEM**, **PFC**).\n\nThe damping is constructed to always have negative mechanical power with respect\nto the current velocity/angular velocity to ensure dissipation of kinetic energy.\nIf used without additional thermostatting (to add kinetic energy to the system),\nit has the effect of slowly (or rapidly) freezing the system; hence it can also\nbe used as a simple energy minimization technique.\n\nThe magnitude of the damping force/torque \\(F_d\\)/\\(T_d\\) is a fraction\n\\(\\gamma \\in [0;1]\\) of the current force/torque \\(F\\)/\\(T\\) on the\nparticle. Damping is applied component-by-component in each direction\n\\(k\\in\\{x, y, z\\}\\):\n\\[\n {F_d}_k = - \\gamma_l \\, F_k \\, \\mathrm{sign}(F_k v_k)\\]\n\\[\n {T_d}_k = - \\gamma_a \\, T_k \\, \\mathrm{sign}(T_k \\omega_k)\\]\nThe larger the coefficients, the faster the kinetic energy is reduced.\n\nIf the optional keyword *scale* is used, \\(\\gamma_l\\) and \\(\\gamma_a\\)\ncan be scaled up or down by the specified factor for atoms. This factor can be\nset for different atom types and thus the *scale* keyword used multiple times\nfollowed by the atom type and the associated scale factor. Alternately the\nscaling factor can be computed for each atom (e.g. based on its radius) by\nusing an [atom-style variable ](https://docs.lammps.org/variable.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damping force/torque is computed based on the force/torque at the moment\n > this fix is invoked. Any force/torque added after this fix, e.g., by\n > [fix addforce ](https://docs.lammps.org/fix_addforce.html) or [fix addtorque ](https://docs.lammps.org/fix_addtorque.html)\n > will not be damped. When performing simulations with gravity, invoking\n > [fix gravity ](https://docs.lammps.org/fix_gravity.html) after this fix will maintain the specified\n > gravitational acceleration. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This scheme is dependent on the coordinates system and does not correspond to\n > realistic physical processes. It is constructed for numerical convenience and\n > efficacy. \n > \n\nThis non-viscous damping presents the following advantages:\n\n#. damping is independent of velocity, equally damping regions with\n distinct natural frequencies,\n#. damping affects acceleration and vanishes for steady uniform motion\n of the particles,\n#. damping parameter \\(\\gamma\\) is dimensionless and does not\n require scaling.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the [run](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying forces/torques. Default is the outermost\nlevel.\n\nThe forces/torques due to this fix are imposed during an energy\nminimization, invoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This\nfix should only be used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n\n**(Cundall1987)** Cundall, P. A. Distinct Element Models of Rock and Soil\nStructure, in Analytical and Computational Methods in Engineering Rock\nMechanics, Ch. 4, pp. 129-163. E. T. Brown, ed. London: Allen & Unwin., 1987. \n \n**(YadeDEM)** V. Smilauer et al. (2021), Yade Documentation 3rd ed.\nThe Yade Project. DOI:10.5281/zenodo.5705394 (https://yade-dem.org/doc/) \n \n**(PFC)** PFC Particle Flow Code 6.0 Documentation. Itasca Consulting Group. \n ", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/chunk = style name of this fix command\n* K = spring constant for each chunk (force/distance units)\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* comID = ID of [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) command \n", + "examples": "\n```lmps\nfix restrain all spring/chunk 100 chunkID comID\n```\n", + "html_filename": "fix_spring_chunk.html", + "short_description": "Apply a spring force to the center-of-mass (COM) of chunks of atoms as\ndefined by the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command", + "description": "Apply a spring force to the center-of-mass (COM) of chunks of atoms as\ndefined by the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nChunks can be molecules or spatial bins or other groupings of atoms.\nThis is a way of tethering each chunk to its initial COM coordinates.\n\nThe *chunkID* is the ID of a compute chunk/atom command defined in the\ninput script. It is used to define the chunks. The *comID* is the ID\nof a compute com/chunk command defined in the input script. It is\nused to compute the COMs of each chunk.\n\nAt the beginning of the first [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) command after this fix is defined, the\ninitial COM of each chunk is calculated and stored as R0m, where M is\nthe chunk number. Thereafter, at every timestep (or minimization\niteration), the current COM of each chunk is calculated as Rm. A\nrestoring force of magnitude K (Rm - R0m) Mi / Mm is applied to each\natom in each chunk where *K* is the specified spring constant, Mi is\nthe mass of the atom, and Mm is the total mass of all atoms in the\nchunk. Note that *K* thus represents the spring constant for the\ntotal force on each chunk of atoms, not for a spring applied to each\natom.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the locations of the initial per-chunk center of mass\ncoordinates to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe fix continues in an uninterrupted fashion. Since this fix depends\non an instance of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\nit will check when reading the restart if the chunk still exists and\nwill define the same number of chunks. The restart data is only applied\nwhen the number of chunks matches. Otherwise the center of mass\ncoordinates are recomputed.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in all the springs to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy of all\nthe springs, i.e. 0.5 \\* K \\* r\\^2 per-spring.\n\nThe scalar value calculated by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the spring energies to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this\n > fix. \n > \n\n", + "restrictions": " none\n", + "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html)\n" }, { "command": [ - "molecule" + "pair_style airebo", + "pair_style airebo/intel", + "pair_style airebo/omp", + "pair_style airebo/morse", + "pair_style airebo/morse/intel", + "pair_style airebo/morse/omp", + "pair_style rebo", + "pair_style rebo/intel", + "pair_style rebo/omp" ], "syntax": [ - "molecule ID file1 keyword values ... file2 keyword values ... fileN ..." + "pair_style style cutoff LJ_flag TORSION_flag cutoff_min" ], "args": [ [ { - "arg": "molecule", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "file1", - "type": 2, - "choices": [] - }, - { - "arg": "scale", + "arg": "rebo/omp", "type": 3, "choices": [ - "offset", - "toff", - "boff", - "aoff", - "doff", - "ioff", - "scale" + "airebo", + "airebo/morse", + "rebo", + "airebo/intel", + "airebo/omp", + "airebo/morse/intel", + "airebo/morse/omp", + "rebo/intel", + "rebo/omp" ] }, { - "arg": "values", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "file2", + "arg": "LJ_flag", "type": 2, "choices": [] }, { - "arg": "scale", - "type": 3, - "choices": [ - "offset", - "toff", - "boff", - "aoff", - "doff", - "ioff", - "scale" - ] - }, - { - "arg": "values", + "arg": "TORSION_flag", "type": 2, "choices": [] }, { - "arg": "fileN", + "arg": "cutoff_min", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the molecule template\n* file1,file2,... = names of files containing molecule descriptions\n* zero or more keyword/value pairs may be appended after each file\n* keyword = offset or toff or boff or aoff or doff or ioff or scale \n *        offset values = Toff Boff Aoff Doff Ioff \n         Toff = offset to add to atom types \n         Boff = offset to add to bond types \n         Aoff = offset to add to angle types \n         Doff = offset to add to dihedral types \n         Ioff = offset to add to improper types \n *        toff value = Toff \n         Toff = offset to add to atom types \n *        boff value = Boff \n         Boff = offset to add to bond types \n *        aoff value = Aoff \n         Aoff = offset to add to angle types \n *        doff value = Doff \n         Doff = offset to add to dihedral types \n *        ioff value = Ioff \n         Ioff = offset to add to improper types \n *        scale value = sfactor \n         sfactor = scale factor to apply to the size and mass of the molecule \n", - "examples": "\n```lmps\nmolecule 1 mymol.txt\nmolecule 1 co2.txt h2o.txt\nmolecule CO2 co2.txt boff 3 aoff 2\nmolecule 1 mymol.txt offset 6 9 18 23 14\nmolecule objects file.1 scale 1.5 file.1 scale 2.0 file.2 scale 1.3\n```\n", - "html_filename": "molecule.html", - "short_description": "Define a molecule template that can be used as part of other LAMMPS\ncommands, typically to define a collection of particles as a bonded\nmolecule or a rigid body", - "description": "Define a molecule template that can be used as part of other LAMMPS\ncommands, typically to define a collection of particles as a bonded\nmolecule or a rigid body. Commands that currently use molecule\ntemplates include:\n\n* [fix deposit ](https://docs.lammps.org/fix_deposit.html)\n* [fix pour ](https://docs.lammps.org/fix_pour.html)\n* [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)\n* [fix shake ](https://docs.lammps.org/fix_shake.html)\n* [fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n* [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n* [create_atoms ](https://docs.lammps.org/create_atoms.html)\n* [atom_style template ](https://docs.lammps.org/atom_style.html)\n\nThe ID of a molecule template can only contain alphanumeric characters\nand underscores.\n\nA single template can contain multiple molecules, listed one per file.\nSome of the commands listed above currently use only the first\nmolecule in the template, and will issue a warning if the template\ncontains multiple molecules. The [atom_style template](https://docs.lammps.org/atom_style.html) command allows multiple-molecule templates to define a\nsystem with more than one templated molecule.\n\nEach filename can be followed by optional keywords which are applied\nonly to the molecule in the file as used in this template. This is to\nmake it easy to use the same molecule file in different molecule\ntemplates or in different simulations. You can specify the same file\nmultiple times with different optional keywords.\n\nThe *offset*, *toff*, *boff*, *aoff*, *doff*, *ioff* keywords\nadd the specified offset values to the atom types, bond types, angle\ntypes, dihedral types, and/or improper types as they are read from the\nmolecule file. E.g. if *toff* = 2, and the file uses atom types\n1,2,3, then each created molecule will have atom types 3,4,5. For the\n*offset* keyword, all five offset values must be specified, but\nindividual values will be ignored if the molecule template does not\nuse that attribute (e.g. no bonds).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Offsets are **ignored** on lines using type labels, as the type\n > labels will determine the actual types directly depending on the\n > current [labelmap ](https://docs.lammps.org/labelmap.html) settings. \n > \n\nThe *scale* keyword scales the size of the molecule. This can be\nuseful for modeling polydisperse granular rigid bodies. The scale\nfactor is applied to each of these properties in the molecule file, if\nthey are defined: the individual particle coordinates (Coords\nsection), the individual mass of each particle (Masses section), the\nindividual diameters of each particle (Diameters section), the total\nmass of the molecule (header keyword = mass), the center-of-mass of\nthe molecule (header keyword = com), and the moments of inertia of the\nmolecule (header keyword = inertia).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The molecule command can be used to define molecules with bonds,\n > angles, dihedrals, impropers, or special bond lists of neighbors\n > within a molecular topology, so that you can later add the molecules\n > to your simulation, via one or more of the commands listed above.\n > Since this topology-related information requires that suitable storage\n > is reserved when LAMMPS creates the simulation box (e.g. when using\n > the [create_box ](https://docs.lammps.org/create_box.html) command or the\n > [read_data ](https://docs.lammps.org/read_data.html) command) suitable space has to be reserved\n > so you do not overflow those pre-allocated data structures when adding\n > molecules later. Both the [create_box ](https://docs.lammps.org/create_box.html) command and\n > the [read_data ](https://docs.lammps.org/read_data.html) command have \"extra\" options which\n > ensure space is allocated for storing topology info for molecules that\n > are added later. \n > \n\n----------\n\n #### Format of a molecule file\n\nThe format of an individual molecule file looks similar but is\ndifferent than that of a data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommands. Here is a simple example for a TIP3P water molecule:\n\n```\n# Water molecule. TIP3P geometry\n# header section:\n3 atoms\n2 bonds\n1 angles\n\n# body section:\nCoords\n\n1 0.00000 -0.06556 0.00000\n2 0.75695 0.52032 0.00000\n3 -0.75695 0.52032 0.00000\n\nTypes\n\n1 1 # O\n2 2 # H\n3 2 # H\n\nCharges\n\n1 -0.834\n2 0.417\n3 0.417\n\nBonds\n\n1 1 1 2\n2 1 1 3\n\nAngles\n\n1 1 2 1 3\n```\nA molecule file has a header and a body. The header appears first. The\nfirst line of the header and thus of the molecule file is *always*\nskipped; it typically contains a description of the file or a comment\nfrom the software that created the file.\n\nThen lines are read one line at a time. Lines can have a trailing\ncomment starting with '#' that is ignored. There *must* be at least one\nblank between any valid content and the comment. If the line is blank\n(i.e. contains only white-space after comments are deleted), it is\nskipped. If the line contains a header keyword, the corresponding\nvalue(s) is/are read from the line. A line that is *not* blank and does\n*not* contains a header keyword begins the body of the file.\n\nThe body of the file contains zero or more sections. The first line\nof a section has only a keyword. The next line is skipped. The\nremaining lines of the section contain values. The number of lines\ndepends on the section keyword as described below. Zero or more blank\nlines can be used between sections. Sections can appear in any order,\nwith a few exceptions as noted below.\n\nThese are the recognized header keywords. Header lines can come in\nany order. The numeric value(s) are read from the beginning of the\nline. The keyword should appear at the end of the line. All these\nsettings have default values, as explained below. A line need only\nappear if the value(s) are different than the default, except when\ndefining a *body* particle, which requires setting the number of\n*atoms* to 1, and setting the *inertia* in a specific section (see below).\n\n | | | | | \n |---|---|---|---|\n Number(s) | Keyword | Meaning | Default Value|\n N | atoms | # of atoms N in molecule | 0|\n Nb | bonds | # of bonds Nb in molecule | 0|\n Na | angles | # of angles Na in molecule | 0|\n Nd | dihedrals | # of dihedrals Nd in molecule | 0|\n Ni | impropers | # of impropers Ni in molecule | 0|\n Nf | fragments | # of fragments Nf in molecule | 0|\n Ninteger Ndouble | body | # of integer and floating-point values in body particle | 0|\n Mtotal | mass | total mass of molecule | computed|\n Xc Yc Zc | com | coordinates of center-of-mass of molecule | computed|\n \nFor *mass*, *com*, and *inertia*, the default is for LAMMPS to calculate\nthis quantity itself if needed, assuming the molecules consist of a set\nof point particles or finite-size particles (with a non-zero diameter)\nthat do **not** overlap. If finite-size particles in the molecule\n**do** overlap, LAMMPS will not account for the overlap effects when\ncalculating any of these 3 quantities, so you should pre-compute them\nyourself and list the values in the file.\n\nThe mass and center-of-mass coordinates (Xc,Yc,Zc) are\nself-explanatory. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)\nshould be the values consistent with the current orientation of the\nrigid body around its center of mass. The values are with respect to\nthe simulation box XYZ axes, not with respect to the principal axes of\nthe rigid body itself. LAMMPS performs the latter calculation\ninternally.\n\nThese are the allowed section keywords for the body of the file.\n\n* *Coords, Types, Molecules, Fragments, Charges, Diameters, Dipoles, Masses* = atom-property sections\n* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections\n* *Special Bond Counts, Special Bonds* = special neighbor info\n* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info\n* *Body Integers, Body Doubles* = body-property sections\n\nFor the Types, Bonds, Angles, Dihedrals, and Impropers sections, each\natom/bond/angle/etc type can be specified either as a number (numeric\ntype) or as an alphanumeric type label. The latter is only allowed if\ntype labels have been defined, either by the [labelmap](https://docs.lammps.org/labelmap.html) command or in data files read by the [read_data](https://docs.lammps.org/read_data.html) command which have sections for Atom Type Labels, Bond\nType Labels, Angle Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\nWhen using type labels, any values specified as *offset* are ignored.\n\nIf a Bonds section is specified then the Special Bond Counts and\nSpecial Bonds sections can also be used, if desired, to explicitly\nlist the 1-2, 1-3, 1-4 neighbors within the molecule topology (see\ndetails below). This is optional since if these sections are not\nincluded, LAMMPS will auto-generate this information. Note that\nLAMMPS uses this info to properly exclude or weight bonded pairwise\ninteractions between bonded atoms. See the [special_bonds](https://docs.lammps.org/special_bonds.html) command for more details. One reason to list the\nspecial bond info explicitly is for the [thermalized Drudeoscillator model ](https://docs.lammps.org/Howto_drude.html) which treats the bonds between nuclear\ncores and Drude electrons in a different manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Whether a section is required depends on how the molecule template\n > is used by other LAMMPS commands. For example, to add a molecule\n > via the [fix deposit ](https://docs.lammps.org/fix_deposit.html) command, the Coords and\n > Types sections are required. To add a rigid body via the [fix > pour ](https://docs.lammps.org/fix_pour.html) command, the Bonds (Angles, etc) sections are not\n > required, since the molecule will be treated as a rigid body. Some\n > sections are optional. For example, the [fix pour ](https://docs.lammps.org/fix_pour.html)\n > command can be used to add \"molecules\" which are clusters of\n > finite-size granular particles. If the Diameters section is not\n > specified, each particle in the molecule will have a default\n > diameter of 1.0. See the doc pages for LAMMPS commands that use\n > molecule templates for more details. \n > \n\nEach section is listed below in alphabetic order. The format of each\nsection is described including the number of lines it must contain and\nrules (if any) for whether it can appear in the data file. For per-\natom sections, entries should be numbered from 1 to Natoms (where\nNatoms is the number of atoms in the template), indicating which atom\n(or bond, etc) the entry applies to. Per-atom sections need to\ninclude a setting for every atom, but the atoms can be listed in any\norder.\n\n----------\n\n*Coords* section:\n\n* one line per atom\n* line syntax: ID x y z\n* x,y,z = coordinate of atom\n\n----------\n\n*Types* section:\n\n* one line per atom\n* line syntax: ID type\n* type = atom type of atom (1-Natomtype, or type label)\n\n----------\n\n*Molecules* section:\n\n* one line per atom\n* line syntax: ID molecule-ID\n* molecule-ID = molecule ID of atom\n\n----------\n\n*Fragments* section:\n\n* one line per fragment\n* line syntax: ID a b c d ...\n* a,b,c,d,... = IDs of atoms in fragment\n\nThe ID of a fragment can only contain alphanumeric characters and\nunderscores. The atom IDs should be values from 1 to Natoms, where\nNatoms = # of atoms in the molecule.\n\n----------\n\n*Charges* section:\n\n* one line per atom\n* line syntax: ID q\n* q = charge on atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport charge. If this section is not included, the default charge\non each atom in the molecule is 0.0.\n\n----------\n\n*Diameters* section:\n\n* one line per atom\n* line syntax: ID diam\n* diam = diameter of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport finite-size spherical particles, e.g. atom_style sphere. If\nnot listed, the default diameter of each atom in the molecule is 1.0.\n\n----------\n\n*Dipoles* section:\n\n* one line per atom\n* line syntax: ID mux muy muz\n* mux,muy,muz = x-, y-, and z-component of point dipole vector of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport particles with point dipoles, e.g. atom_style dipole. If not\nlisted, the default dipole component of each atom in the molecule is set\nto 0.0.\n\n----------\n\n*Masses* section:\n\n* one line per atom\n* line syntax: ID mass\n* mass = mass of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport per-atom mass, as opposed to per-type mass. See the\n[mass ](https://docs.lammps.org/mass.html) command for details. If this section is not\nincluded, the default mass for each atom is derived from its volume\n(see Diameters section) and a default density of 1.0, in\n[units ](https://docs.lammps.org/units.html) of mass/volume.\n\n----------\n\n*Bonds* section:\n\n* one line per bond\n* line syntax: ID type atom1 atom2\n* type = bond type (1-Nbondtype, or type label)\n* atom1,atom2 = IDs of atoms in bond\n\nThe IDs for the two atoms in each bond should be values\nfrom 1 to Natoms, where Natoms = # of atoms in the molecule.\n\n----------\n\n*Angles* section:\n\n* one line per angle\n* line syntax: ID type atom1 atom2 atom3\n* type = angle type (1-Nangletype, or type label)\n* atom1,atom2,atom3 = IDs of atoms in angle\n\nThe IDs for the three atoms in each angle should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The three atoms are\nordered linearly within the angle. Thus the central atom (around\nwhich the angle is computed) is the atom2 in the list.\n\n----------\n\n*Dihedrals* section:\n\n* one line per dihedral\n* line syntax: ID type atom1 atom2 atom3 atom4\n* type = dihedral type (1-Ndihedraltype, or type label)\n* atom1,atom2,atom3,atom4 = IDs of atoms in dihedral\n\nThe IDs for the four atoms in each dihedral should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The 4 atoms are\nordered linearly within the dihedral.\n\n----------\n\n*Impropers* section:\n\n* one line per improper\n* line syntax: ID type atom1 atom2 atom3 atom4\n* type = improper type (1-Nimpropertype, or type label)\n* atom1,atom2,atom3,atom4 = IDs of atoms in improper\n\nThe IDs for the four atoms in each improper should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The ordering of\nthe 4 atoms determines the definition of the improper angle used in\nthe formula for the defined [improper style ](https://docs.lammps.org/improper_style.html). See\nthe doc pages for individual styles for details.\n\n----------\n\n*Special Bond Counts* section:\n\n* one line per atom\n* line syntax: ID N1 N2 N3\n* N1 = # of 1-2 bonds\n* N2 = # of 1-3 bonds\n* N3 = # of 1-4 bonds\n\nN1, N2, N3 are the number of 1-2, 1-3, 1-4 neighbors respectively of\nthis atom within the topology of the molecule. See the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) page for more discussion of\n1-2, 1-3, 1-4 neighbors. If this section appears, the Special Bonds\nsection must also appear.\n\nAs explained above, LAMMPS will auto-generate this information if this\nsection is not specified. If specified, this section will\noverride what would be auto-generated.\n\n----------\n\n*Special Bonds* section:\n\n* one line per atom\n* line syntax: ID a b c d ...\n* a,b,c,d,... = IDs of atoms in N1+N2+N3 special bonds\n\nA, b, c, d, etc are the IDs of the n1+n2+n3 atoms that are 1-2, 1-3,\n1-4 neighbors of this atom. The IDs should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The first N1\nvalues should be the 1-2 neighbors, the next N2 should be the 1-3\nneighbors, the last N3 should be the 1-4 neighbors. No atom ID should\nappear more than once. See the [special_bonds ](https://docs.lammps.org/special_bonds.html) doc\npage for more discussion of 1-2, 1-3, 1-4 neighbors. If this section\nappears, the Special Bond Counts section must also appear.\n\nAs explained above, LAMMPS will auto-generate this information if this\nsection is not specified. If specified, this section will override\nwhat would be auto-generated.\n\n----------\n\n*Shake Flags* section:\n\n* one line per atom\n* line syntax: ID flag\n* flag = 0,1,2,3,4\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file, following this one.\n\nThe meaning of the flag for each atom is as follows. See the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description of SHAKE\nclusters.\n\n* 0 = not part of a SHAKE cluster\n* 1 = part of a SHAKE angle cluster (two bonds and the angle they form)\n* 2 = part of a 2-atom SHAKE cluster with a single bond\n* 3 = part of a 3-atom SHAKE cluster with two bonds\n* 4 = part of a 4-atom SHAKE cluster with three bonds\n\n----------\n\n*Shake Atoms* section:\n\n* one line per atom\n* line syntax: ID a b c d\n* a,b,c,d = IDs of atoms in cluster\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file.\n\nThe a,b,c,d values are atom IDs (from 1 to Natoms) for all the atoms\nin the SHAKE cluster that this atom belongs to. The number of values\nthat must appear is determined by the shake flag for the atom (see the\nShake Flags section above). All atoms in a particular cluster should\nlist their a,b,c,d values identically.\n\nIf flag = 0, no a,b,c,d values are listed on the line, just the\n(ignored) ID.\n\nIf flag = 1, a,b,c are listed, where a = ID of central atom in the\nangle, and b,c the other two atoms in the angle.\n\nIf flag = 2, a,b are listed, where a = ID of atom in bond with the\nlowest ID, and b = ID of atom in bond with the highest ID.\n\nIf flag = 3, a,b,c are listed, where a = ID of central atom,\nand b,c = IDs of other two atoms bonded to the central atom.\n\nIf flag = 4, a,b,c,d are listed, where a = ID of central atom,\nand b,c,d = IDs of other three atoms bonded to the central atom.\n\nSee the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description\nof SHAKE clusters.\n\n----------\n\n*Shake Bond Types* section:\n\n* one line per atom\n* line syntax: ID a b c\n* a,b,c = bond types (or angle type) of bonds (or angle) in cluster\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file.\n\nThe a,b,c values are bond types for all bonds in the SHAKE cluster that\nthis atom belongs to. Bond types may be either numbers (from 1 to Nbondtypes)\nor bond type labels as defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command\nor a \"Bond Type Labels\" section of a data file.\n\n\nThe number of values that must appear is determined by the shake flag\nfor the atom (see the Shake Flags section above). All atoms in a\nparticular cluster should list their a,b,c values identically.\n\nIf flag = 0, no a,b,c values are listed on the line, just the\n(ignored) ID.\n\nIf flag = 1, a,b,c are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), b = bondtype of the bond between the central atom and\nthe second non-central atom (value c in the Shake Atoms section), and c\n= the angle type (1 to Nangletypes, or angle type label) of the angle\nbetween the three atoms.\n\nIf flag = 2, only a is listed, where a = bondtype of the bond between\nthe two atoms in the cluster.\n\nIf flag = 3, a,b are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), and b = bondtype of the bond between the central atom\nand the second non-central atom (value c in the Shake Atoms section).\n\nIf flag = 4, a,b,c are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), b = bondtype of the bond between the central atom and\nthe second non-central atom (value c in the Shake Atoms section), and c\n= bondtype of the bond between the central atom and the third\nnon-central atom (value d in the Shake Atoms section).\n\nSee the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description\nof SHAKE clusters.\n\n----------\n\n*Body Integers* section:\n\n* one line\n* line syntax: N E F\n* N = number of sub-particles or number or vertices\n* E,F = number of edges and faces\n\nThis section is only needed when the molecule is a body particle. the other\nBody section must also appear in the file.\n\nThe total number of values that must appear is determined by the body style, and\nmust be equal to the Ninteger value given in the *body* header.\n\nFor *nparticle* and *rounded/polygon*, only the number of sub-particles or\nvertices N is required, and Ninteger should have a value of 1.\n\nFor *rounded/polyhedron*, the number of edges E and faces F is required, and\nNinteger should have a value of 3.\n\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a further description of\nthe file format.\n\n----------\n\n*Body Doubles* section:\n\n* first line\n* line syntax: Ixx Iyy Izz Ixy Ixz Iyz\n* Ixx Iyy Izz Ixy Ixz Iyz = 6 components of inertia tensor of body particle\n* one line per sub-particle or vertex\n* line syntax: x y z\n* x, y, z = coordinates of sub-particle or vertex\n* one line per edge\n* line syntax: N1 N2\n* N1, N2 = vertex indices\n* one line per face\n* line syntax: N1 N2 N3 N4\n* N1, N2, N3, N4 = vertex indices\n* last line\n* line syntax: diam\n* diam = rounded diameter that surrounds each vertex\n\nThis section is only needed when the molecule is a body particle. the other\nBody section must also appear in the file.\n\nThe total number of values that must appear is determined by the body style, and\nmust be equal to the Ndouble value given in the *body* header. The 6 moments of\ninertia and the 3N coordinates of the sub-particles or vertices are required\nfor all body styles.\n\nFor *rounded/polygon*, the E = 6 + 3*N + 1 edges are automatically determined\nfrom the vertices.\n\nFor *rounded/polyhedron*, the 2E vertex indices for the end points of the edges\nand 4F vertex indices defining the faces are required.\n\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a further description of\nthe file format.\n\n----------\n", - "restrictions": "None\n", - "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix pour ](https://docs.lammps.org/fix_pour.html),\n[fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n" + "parameters": "* style = airebo or airebo/morse or rebo\n* cutoff = LJ or Morse cutoff (\\(\\sigma\\) scale factor) (AIREBO and AIREBO-M only)\n* LJ_flag = 0/1 to turn off/on the LJ or Morse term (AIREBO and AIREBO-M only, optional)\n* TORSION_flag = 0/1 to turn off/on the torsion term (AIREBO and AIREBO-M only, optional)\n* cutoff_min = Start of the transition region of cutoff (\\(\\sigma\\) scale factor) (AIREBO and AIREBO-M only, optional) \n", + "examples": "\n```lmps\npair_style airebo 3.0\npair_style airebo 2.5 1 0\npair_coeff * * ../potentials/CH.airebo H C\n\npair_style airebo/morse 3.0\npair_coeff * * ../potentials/CH.airebo-m H C\n\npair_style rebo\npair_coeff * * ../potentials/CH.rebo H C\n```\n", + "html_filename": "pair_airebo.html", + "short_description": "The *airebo* pair style computes the Adaptive Intermolecular Reactive\nEmpirical Bond Order (AIREBO) Potential of **Stuart** for a\nsystem of carbon and/or hydrogen atoms", + "description": "The *airebo* pair style computes the Adaptive Intermolecular Reactive\nEmpirical Bond Order (AIREBO) Potential of **Stuart** for a\nsystem of carbon and/or hydrogen atoms. Note that this is the initial\nformulation of AIREBO from 2000, not the later formulation.\n\nThe *airebo/morse* pair style computes the AIREBO-M potential, which\nis equivalent to AIREBO, but replaces the LJ term with a Morse potential.\nThe Morse potentials are parameterized by high-quality quantum chemistry\n(MP2) calculations and do not diverge as quickly as particle density\nincreases. This allows AIREBO-M to retain accuracy to much higher pressures\nthan AIREBO (up to 40 GPa for Polyethylene). Details for this potential\nand its parameterization are given in **OConnor**.\n\nThe *rebo* pair style computes the Reactive Empirical Bond Order (REBO)\nPotential of **Brenner**. Note that this is the so-called\nsecond generation REBO from 2002, not the original REBO from 1990.\nAs discussed below, second generation REBO is closely related to the\ninitial AIREBO; it is just a subset of the potential energy terms\nwith a few slightly different parameters\n\nThe AIREBO potential consists of three terms:\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i}\n \\left[ E^{\\text{REBO}}_{ij} + E^{\\text{LJ}}_{ij} +\n \\sum_{k \\neq i,j} \\sum_{l \\neq i,j,k} E^{\\text{TORSION}}_{kijl} \\right] \\\\ \\end{align*} \\]\nBy default, all three terms are included. For the *airebo* style, if\nthe first two optional flag arguments to the pair_style command are\nincluded, the LJ and torsional terms can be turned off. Note that\nboth or neither of the flags must be included. If both of the LJ an\ntorsional terms are turned off, it becomes the second-generation REBO\npotential, with a small caveat on the spline fitting procedure\nmentioned below. This can be specified directly as pair_style *rebo*\nwith no additional arguments.\n\nThe detailed formulas for this potential are given in\n**Stuart**; here we provide only a brief description.\n\nThe \\(E^{\\text{REBO}}\\) term has the same functional form as the hydrocarbon REBO\npotential developed in **Brenner**. The coefficients for\n\\(E^{\\text{REBO}}\\) in AIREBO are essentially the same as Brenner's potential, but\na few fitted spline values are slightly different. For most cases the\n\\(E^{\\text{REBO}}\\) term in AIREBO will produce the same energies, forces and\nstatistical averages as the original REBO potential from which it was\nderived. The \\(E^{\\text{REBO}}\\) term in the AIREBO potential gives the model its\nreactive capabilities and only describes short-ranged C-C, C-H and H-H\ninteractions (\\(r < 2 \\mathring{\\textrm{A}}\\)). These interactions have strong\ncoordination-dependence through a bond order parameter, which adjusts\nthe attraction between the I,J atoms based on the position of other\nnearby atoms and thus has 3- and 4-body dependence.\n\nThe \\(E^{\\text{LJ}}\\) term adds longer-ranged interactions (\\(2 < r < \\text{cutoff}\\)) using a\nform similar to the standard [Lennard Jones potential ](https://docs.lammps.org/pair_lj.html).\nThe \\(E^{\\text{LJ}}\\) term in AIREBO contains a series of switching functions so\nthat the short-ranged LJ repulsion (\\(1/r^{12}\\)) does not interfere with\nthe energetics captured by the \\(E^{\\text{REBO}}\\) term. The extent of the \\(E^{\\text{LJ}}\\)\ninteractions is determined by the *cutoff* argument to the pair_style\ncommand which is a scale factor. For each type pair (C-C, C-H, H-H)\nthe cutoff is obtained by multiplying the scale factor by the sigma\nvalue defined in the potential file for that type pair. In the\nstandard AIREBO potential, \\(\\sigma_{CC} = 3.4 \\mathring{\\textrm{A}}\\), so with a scale\nfactor of 3.0 (the argument in pair_style), the resulting \\(E^{\\text{LJ}}\\) cutoff\nwould be \\(10.2 \\mathring{\\textrm{A}}\\).\n\nBy default, the longer-ranged interaction is smoothly switched off\nbetween 2.16 and 3.0 \\(\\sigma\\). By specifying *cutoff_min* in addition\nto *cutoff*, the switching can be configured to take place between\n*cutoff_min* and *cutoff* . *cutoff_min* can only be specified if all\noptional arguments are given.\n\nThe \\(E^{\\text{TORSION}}\\) term is an explicit 4-body potential that describes\nvarious dihedral angle preferences in hydrocarbon configurations.\n\n----------\n\nOnly a single pair_coeff command is used with the *airebo*, *airebo*\nor *rebo* style which specifies an AIREBO, REBO, or AIREBO-M potential\nfile with parameters for C and H. Note that as of LAMMPS version\n15 May 2019 the *rebo* style in LAMMPS uses its own potential\nfile (CH.rebo). These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of AIREBO elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has 4 atom types and you want\nthe first 3 to be C, and the fourth to be H, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * CH.airebo C C C H\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three C arguments map LAMMPS atom types 1,2,3 to the C\nelement in the AIREBO file. The final H argument maps LAMMPS atom\ntype 4 to the H element in the AIREBO file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen a *airebo* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nThe parameters/coefficients for the AIREBO potentials are listed in\nthe CH.airebo file to agree with the original **Stuart**\npaper. Thus the parameters are specific to this potential and the way\nit was fit, so modifying the file should be done cautiously.\n\nSimilarly the parameters/coefficients for the AIREBO-M potentials are\nlisted in the CH.airebo-m file to agree with the **OConnor**\npaper. Thus the parameters are specific to this potential and the way\nit was fit, so modifying the file should be done cautiously. The\nAIREBO-M Morse potentials were parameterized using a cutoff of\n3.0 (\\(\\sigma\\)). Modifying this cutoff may impact simulation accuracy.\n\nThis pair style tallies a breakdown of the total AIREBO potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 3.\nThe 3 values correspond to the following sub-categories:\n\n1. \\(E_{\\text{REBO}}\\) = REBO energy\n2. \\(E_{\\text{LJ}}\\) = Lennard-Jones energy\n3. \\(E_{\\text{TORSION}}\\) = Torsion energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair airebo\nvariable REBO equal c_0[1]\nvariable LJ equal c_0[2]\nvariable TORSION equal c_0[3]\nthermo_style custom step temp epair v_REBO v_LJ v_TORSION\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThese pair styles do not write their information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stuart)** Stuart, Tutein, Harrison, J Chem Phys, 112, 6472-6486\n(2000). \n \n**(OConnor)** O'Connor et al., J. Chem. Phys. 142, 024903 (2015). \n \n**(Brenner)** Brenner, Shenderova, Harrison, Stuart, Ni, Sinnott, J\nPhysics: Condensed Matter, 14, 783-802 (2002). \n \n**(OConnor)** O'Connor et al., J. Chem. Phys. 142, 024903 (2015). \n ", + "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe CH.airebo and CH.airebo-m potential files provided with LAMMPS (see\nthe potentials directory) are parameterized for metal [units](https://docs.lammps.org/units.html). You can use the pair styles with *any* LAMMPS units, but you\nwould need to create your own AIREBO or AIREBO-M potential file with\ncoefficients listed in the appropriate units, if your simulation does\nnot use \"metal\" units.\n\nThe pair styles provided here **only** support potential files parameterized\nfor the elements carbon and hydrogen (designated with \"C\" and \"H\" in the\n*pair_coeff* command. Using potential files for other elements will trigger\nan error.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix store/state" + "fix meso/move" ], "syntax": [ - "fix ID group-ID store/state N input1 input2 ... keyword value ..." + "fix ID group-ID meso/move style args keyword values ..." ], "args": [ [ @@ -12661,22 +11696,22 @@ export const command_docs = [ "choices": [] }, { - "arg": "store/state", + "arg": "meso/move", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "input1", - "type": 2, - "choices": [] + "arg": "variable", + "type": 3, + "choices": [ + "linear", + "wiggle", + "rotate", + "variable" + ] }, { - "arg": "input2", + "arg": "args", "type": 2, "choices": [] }, @@ -12686,140 +11721,131 @@ export const command_docs = [ "choices": [] }, { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* store/state = style name of this fix command\n* N = store atom attributes every N steps, N = 0 for initial store only\n* input = one or more atom attributes \n *        possible attributes = id, mol, type, mass, \n         x, y, z, xs, ys, zs, xu, yu, zu, xsu, ysu, zsu, ix, iy, iz, \n         vx, vy, vz, fx, fy, fz, \n         q, mux, muy, muz, mu, \n         radius, diameter, omegax, omegay, omegaz, \n         angmomx, angmomy, angmomz, tqx, tqy, tqz, \n         c_ID, c_ID[I], f_ID, f_ID[I], v_name, \n         d_name, i_name, i2_name[I], d2_name[I], \n         id = atom ID \n         mol = molecule ID \n         type = atom type \n         mass = atom mass \n         x,y,z = unscaled atom coordinates \n         xs,ys,zs = scaled atom coordinates \n         xu,yu,zu = unwrapped atom coordinates \n         xsu,ysu,zsu = scaled unwrapped atom coordinates \n         ix,iy,iz = box image that the atom is in \n         vx,vy,vz = atom velocities \n         fx,fy,fz = forces on atoms \n         q = atom charge \n         mux,muy,muz = orientation of dipolar atom \n         mu = magnitued of dipole moment of atom \n         radius,diameter = radius.diameter of spherical particle \n         omegax,omegay,omegaz = angular velocity of spherical particle \n         angmomx,angmomy,angmomz = angular momentum of aspherical particle \n         tqx,tqy,tqz = torque on finite-size particles \n         c_ID = per-atom vector calculated by a compute with ID \n         c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n         f_ID = per-atom vector calculated by a fix with ID \n         f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n         v_name = per-atom vector calculated by an atom-style variable with name \n         i_name = custom integer vector with name \n         d_name = custom floating point vector with name \n         i2_name[I] = Ith column of custom integer array with name \n         d2_name[I] = Ith column of custom floating-point array with name \n* zero or more keyword/value pairs may be appended\n* keyword = com \n *        com value = yes or no \n", - "examples": "\n```lmps\nfix 1 all store/state 0 x y z\nfix 1 all store/state 0 xu yu zu com yes\nfix 2 all store/state 1000 vx vy vz\n```\n", - "html_filename": "fix_store_state.html", - "short_description": "Define a fix that stores attributes for each atom in the group at the\ntime the fix is defined", - "description": "Define a fix that stores attributes for each atom in the group at the\ntime the fix is defined. If *N* is 0, then the values are never\nupdated, so this is a way of archiving an atom attribute at a given\ntime for future use in a calculation or output. See the discussion of\n[output commands ](https://docs.lammps.org/Howto_output.html) that take fixes as inputs.\n\nIf *N* is not zero, then the attributes will be updated every *N*\nsteps.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Actually, only atom attributes specified by keywords like *xu*\n > or *vy* or *radius* are initially stored immediately at the point in\n > your input script when the fix is defined. Attributes specified by a\n > compute, fix, or variable are not initially stored until the first run\n > following the fix definition begins. This is because calculating\n > those attributes may require quantities that are not defined in\n > between runs. \n > \n\nThe list of possible attributes is the same as that used by the\n[dump custom ](https://docs.lammps.org/dump.html) command, which describes their meaning.\n\nIf the *com* keyword is set to *yes* then the *xu*, *yu*, and *zu*\ninputs store the position of each atom relative to the center-of-mass\nof the group of atoms, instead of storing the absolute position.\n\nThe requested values are stored in a per-atom vector or array as\ndiscussed below. Zeroes are stored for atoms not in the specified\ngroup.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the per-atom values it stores to [binary restartfiles ](https://docs.lammps.org/restart.html), so that the values can be restored when a simulation\nis restarted. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >When reading data from a restart file, this fix command has to be specified\n > **exactly** the same way as before. LAMMPS will only check whether a\n > fix is of the same style and has the same fix ID and in case of a match\n > will then try to initialize the fix with the data stored in the binary\n > restart file. If the fix store/state command does not match exactly,\n > data can be corrupted or LAMMPS may crash. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nIf a single input is specified, this fix produces a per-atom vector.\nIf multiple inputs are specified, a per-atom array is produced where\nthe number of columns for each atom is the number of inputs. These\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nper-atom values be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute property/atom ](https://docs.lammps.org/compute_property_atom.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html), [variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* meso/move = style name of this fix command\n* style = linear or wiggle or rotate or variable \n *        linear args = Vx Vy Vz \n         Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *        wiggle args = Ax Ay Az period \n         Ax,Ay,Az = components of amplitude vector (distance units), any component can be specified as NULL \n         period = period of oscillation (time units) \n *        rotate args = Px Py Pz Rx Ry Rz period \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        variable args = v_dx v_dy v_dz v_vx v_vy v_vz \n         v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL \n         v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = box or lattice \n", + "examples": "\n```lmps\nfix 1 boundary meso/move wiggle 3.0 0.0 0.0 1.0 units box\nfix 2 boundary meso/move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0\nfix 2 boundary meso/move variable v_myx v_myy NULL v_VX v_VY NULL\n```\n", + "html_filename": "fix_meso_move.html", + "short_description": "Perform updates of position, velocity, internal energy and local\ndensity for mesoscopic particles in the group each timestep using the\nspecified settings or formulas, without regard to forces on the\nparticles", + "description": "Perform updates of position, velocity, internal energy and local\ndensity for mesoscopic particles in the group each timestep using the\nspecified settings or formulas, without regard to forces on the\nparticles. This can be useful for boundary, solid bodies or other\nparticles, whose movement can influence nearby particles.\n\nThe operation of this fix is exactly like that described by the\n[fix move ](https://docs.lammps.org/fix_move.html) command, except that particles' density,\ninternal energy and extrapolated velocity are also updated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The particles affected by this fix should not be time integrated by\n > other fixes (e.g. [fix sph ](https://docs.lammps.org/fix_sph.html), [fix > sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)), since that will change their\n > positions and velocities twice. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As particles move due to this fix, they will pass through periodic\n > boundaries and be remapped to the other side of the simulation box,\n > just as they would during normal time integration (e.g. via the\n > [fix sph ](https://docs.lammps.org/fix_sph.html) command). It is up to you to decide\n > whether periodic boundaries are appropriate with the kind of\n > particle motion you are prescribing with this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed below, particles are moved relative to their initial\n > position at the time the fix is specified. These initial coordinates\n > are stored by the fix in \"unwrapped\" form, by using the image flags\n > associated with each particle. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section of\n > the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each particle. You can reset the image flags\n > (e.g. to 0) before invoking this fix by using the [set image ](https://docs.lammps.org/set.html)\n > command. \n > \n\n----------\n\nThe *linear* style moves particles at a constant velocity, so that their\nposition *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + V \\* delta\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *V* is the specified velocity vector with components\n(Vx,Vy,Vz), and *delta* is the time elapsed since the fix was\nspecified. This style also sets the velocity of each particle to V =\n(Vx,Vy,Vz). If any of the velocity components is specified as NULL,\nthen the position and velocity of that component is time integrated\nthe same as the [fix sph ](https://docs.lammps.org/fix_sph.html) command would perform, using\nthe corresponding force component on the particle.\n\nNote that the *linear* style is identical to using the *variable*\nstyle with an [equal-style variable ](https://docs.lammps.org/variable.html) that uses the\nvdisplace() function. E.g.\n\n```lmps\nvariable V equal 10.0\nvariable x equal vdisplace(0.0,$V)\nfix 1 boundary move variable v_x NULL NULL v_V NULL NULL\n```\nThe *wiggle* style moves particles in an oscillatory fashion, so that\ntheir position *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + A sin(omega\\*delta)\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *A* is the specified amplitude vector with components\n(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. This style also sets the\nvelocity of each particle to the time derivative of this expression.\nIf any of the amplitude components is specified as NULL, then the\nposition and velocity of that component is time integrated the same as\nthe [fix sph ](https://docs.lammps.org/fix_sph.html) command would perform, using the\ncorresponding force component on the particle.\n\nNote that the *wiggle* style is identical to using the *variable*\nstyle with [equal-style variables ](https://docs.lammps.org/variable.html) that use the\nswiggle() and cwiggle() functions. E.g.\n\n```lmps\nvariable A equal 10.0\nvariable T equal 5.0\nvariable omega equal 2.0*PI/$T\nvariable x equal swiggle(0.0,$A,$T)\nvariable v equal v_omega*($A-cwiggle(0.0,$A,$T))\nfix 1 boundary move variable v_x NULL NULL v_v NULL NULL\n```\nThe *rotate* style rotates particles around a rotation axis *R* =\n(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The *period* of\nthe rotation is also specified. The direction of rotation for the\nparticles around the rotation axis is consistent with the right-hand\nrule: if your right-hand thumb points along *R*, then your fingers wrap\naround the axis in the direction of rotation.\n\nThis style also sets the velocity of each particle to (omega cross\nRperp) where omega is its angular velocity around the rotation axis and\nRperp is a perpendicular vector from the rotation axis to the particle.\n\nThe *variable* style allows the position and velocity components of\neach particle to be set by formulas specified via the\n[variable ](https://docs.lammps.org/variable.html) command. Each of the 6 variables is\nspecified as an argument to the fix as v_name, where name is the\nvariable name that is defined elsewhere in the input script.\n\nEach variable must be of either the *equal* or *atom* style.\n*Equal* -style variables compute a single numeric quantity, that can be\na function of the timestep as well as of other simulation values.\n*Atom* -style variables compute a numeric quantity for each particle, that\ncan be a function per-atom quantities, such as the particle's position, as\nwell as of the timestep and other simulation values. Note that this\nfix stores the original coordinates of each particle (see note below) so\nthat per-atom quantity can be used in an atom-style variable formula.\nSee the [variable ](https://docs.lammps.org/variable.html) command for details.\n\nThe first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*\nstyle are used to calculate a displacement from the particle's original\nposition at the time the fix was specified. The second 3 variables\n(v_vx,v_vy,v_vz) specified are used to compute a velocity for each\nparticle.\n\nAny of the 6 variables can be specified as NULL. If both the\ndisplacement and velocity variables for a particular x,y,z component\nare specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix sph ](https://docs.lammps.org/fix_sph.html)\ncommand would perform, using the corresponding force component on the\nparticle. If only the velocity variable for a component is specified\nas NULL, then the displacement variable will be used to set the\nposition of the particle, and its velocity component will not be\nchanged. If only the displacement variable for a component is\nspecified as NULL, then the velocity variable will be used to set the\nvelocity of the particle, and the position of the particle will be\ntime integrated using that velocity.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the *linear* velocity and *wiggle* amplitude and *rotate*\norigin. This setting is ignored for the *variable* style. A *box*\nvalue selects standard units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand, e.g. velocity in Angstroms/fs and amplitude and position\nin Angstroms for units = real. A *lattice* value means the velocity\nunits are in lattice spacings per time and the amplitude and position\nare in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Each of these 3\nquantities may be dependent on the x,y,z dimension, since the lattice\nspacings can be different in x,y,z.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of moving particles to [binary restart files ](https://docs.lammps.org/restart.html), as well as the initial timestep, so that\nthe motion can be continuous in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the move positions are a function of the current\n > timestep and the initial timestep, you cannot reset the timestep to a\n > different value after reading a restart file, if you expect a fix move\n > command to work in an uninterrupted fashion. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the original unwrapped x,y,z coords\nof each particle. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the DPD-SMOOTH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store density and internal energy as\ndefined by the [atom_style sph ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be mesoscopic SPH/SDPD particles.\n", + "related": "[fix move ](https://docs.lammps.org/fix_move.html), [fix sph ](https://docs.lammps.org/fix_sph.html),\n[displace_atoms ](https://docs.lammps.org/displace_atoms.html)\n" }, { "command": [ - "dump_modify" + "fix property/atom", + "fix property/atom/kk" ], "syntax": [ - "dump_modify dump-ID keyword values ..." + "fix ID group-ID property/atom name1 name2 ... keyword value ..." ], "args": [ [ { - "arg": "dump_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "dump-ID", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "framerate", + "arg": "group-ID", "type": 2, + "choices": [] + }, + { + "arg": "property/atom", + "type": 3, "choices": [ - "acolor", - "adiam", - "amap", - "backcolor", - "bcolor", - "bdiam", - "boxcolor", - "color", - "bitrate", - "framerate" + "property/atom", + "property/atom/kk" ] }, { - "arg": "values", + "arg": "d2_name", + "type": 3, + "choices": [ + "mol", + "q", + "rmass", + "i_name", + "d_name", + "i2_name", + "d2_name" + ] + }, + { + "arg": "d2_name", + "type": 3, + "choices": [ + "mol", + "q", + "rmass", + "i_name", + "d_name", + "i2_name", + "d2_name" + ] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* dump-ID = ID of dump to modify\n* one or more keyword/value pairs may be appended\n\n* these keywords apply to various dump styles\n* keyword = append or at or balance or buffer or colname or delay or element or every or every/time or fileper or first or flush or format or header or image or label or maxfiles or nfile or pad or pbc or precision or region or refresh or scale or sfactor or skip or sort or tfactor or thermo or thresh or time or triclinic/general or types or units or unwrap \n *        append arg = yes or no \n *        at arg = N \n         N = index of frame written upon first dump \n *        balance arg = yes or no \n *        buffer arg = yes or no \n *        colname values = ID string, or default \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a custom dump keyword or reference to compute, fix, property or variable. \n *        delay arg = Dstep \n         Dstep = delay output until this timestep \n *        element args = E1 E2 ... EN, where N = # of atom types \n         E1,...,EN = element name (e.g., C or Fe or Ga) \n *        every arg = N \n         N = dump on timesteps which are a multiple of N \n         N can be a variable (see below) \n *        every/time arg = Delta \n         Delta = dump once every Delta interval of simulation time (time units) \n         Delta can be a variable (see below) \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        first arg = yes or no \n *        flush arg = yes or no \n *        format args = line string, int string, float string, ID string, or none \n         string = C-style format string \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a custom dump keyword or reference to compute, fix, property or variable. \n *        header arg = yes or no \n         yes to write the header \n         no to not write the header \n *        image arg = yes or no \n *        label arg = string \n         string = character string (e.g., BONDS) to use in header of dump local file \n *        maxfiles arg = Fmax \n         Fmax = keep only the most recent Fmax snapshots (one snapshot per file) \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n *        pad arg = Nchar = # of characters to convert timestep to \n *        pbc arg = yes or no = remap atoms via periodic boundary conditions \n *        precision arg = power-of-10 value from 10 to 1000000 \n *        region arg = region-ID or \"none\" \n *        refresh arg = c_ID = compute ID that supports a refresh operation \n *        scale arg = yes or no \n *        sfactor arg = coordinate scaling factor (> 0.0) \n *        skip arg = v_name \n         v_name = variable with name which evaluates to non-zero (skip) or 0 \n *        sort arg = off or id or N or -N \n         off = no sorting of per-atom lines within a snapshot \n         id = sort per-atom lines by atom ID \n         N = sort per-atom lines in ascending order by the Nth column \n         -N = sort per-atom lines in descending order by the Nth column \n *        tfactor arg = time scaling factor (> 0.0) \n *        thermo arg = yes or no \n *        thresh args = attribute operator value \n         attribute = same attributes (x,fy,etotal,sxx,etc) used by dump custom style \n         operator = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" or \"\\|\\^\" \n         value = numeric value to compare to, or LAST \n         these 3 args can be replaced by the word \"none\" to turn off thresholding \n *        time arg = yes or no \n *        triclinic/general arg = yes or no \n *        types value = numeric or labels \n *        units arg = yes or no \n *        unwrap arg = yes or no \n* these keywords apply only to the image and movie [styles ](https://docs.lammps.org/dump_image.html)\n* keyword = acolor or adiam or amap or backcolor or bcolor or bdiam or boxcolor or color or bitrate or framerate \n *        see the [dump image ](https://docs.lammps.org/dump_image.html) doc page for details \n* these keywords apply only to the /gz and /zstd dump styles\n* keyword = compression_level \n *        compression_level args = level \n         level = integer specifying the compression level that should be used (see below for supported levels) \n* these keywords apply only to the /zstd dump styles\n* keyword = checksum \n *        checksum args = yes or no (add checksum at end of zst file) \n* these keywords apply only to the vtk* dump style\n* keyword = binary \n *        binary args = yes or no (select between binary and text mode VTK files) \n", - "examples": "\n```lmps\ndump_modify 1 format line \"%d %d %20.15g %g %g\" scale yes\ndump_modify 1 format float %20.15g scale yes\ndump_modify myDump image yes scale no flush yes\ndump_modify 1 region mySphere thresh x < 0.0 thresh fx >= 3.2\ndump_modify xtcdump precision 10000 sfactor 0.1\ndump_modify 1 every 1000 nfile 20\ndump_modify 1 every v_myVar\n```\n", - "html_filename": "dump_modify.html", - "short_description": "Modify the parameters of a previously defined dump command", - "description": "Modify the parameters of a previously defined dump command. Not all\nparameters are relevant to all dump styles.\n\nUnless otherwise noted, the following keywords apply to all the\nvarious dump styles, including the [dump image ](https://docs.lammps.org/dump_image.html) and\n[dump movie ](https://docs.lammps.org/dump_image.html) styles.\n\n----------\n\nThe *append* keyword applies to all dump styles except *cfg* and *xtc*\nand *dcd* . It also applies only to text output files, not to binary\nor gzipped or image/movie files. If specified as *yes*, then dump\nsnapshots are appended to the end of an existing dump file. If\nspecified as *no*, then a new dump file will be created which will\noverwrite an existing file with the same name.\n\n----------\n\nThe *at* keyword only applies to the *netcdf* dump style. It can only\nbe used if the *append yes* keyword is also used. The *N* argument is\nthe index of which frame to append to. A negative value can be\nspecified for *N*, which means a frame counted from the end of the\nfile. The *at* keyword can only be used if the dump_modify command is\nbefore the first command that causes dump snapshots to be output\n(e.g., a [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command). Once the\ndump file has been opened, this keyword has no further effect.\n\n----------\n\nThe *buffer* keyword applies only to dump styles *atom*, *cfg*,\n*custom*, *local*, and *xyz* . It also applies only to text output\nfiles, not to binary or gzipped files. If specified as *yes*, which\nis the default, then each processor writes its output into an internal\ntext buffer, which is then sent to the processor(s) which perform file\nwrites, and written by those processors(s) as one large chunk of text.\nIf specified as *no*, each processor sends its per-atom data in binary\nformat to the processor(s) which perform file wirtes, and those\nprocessor(s) format and write it line by line into the output file.\n\nThe buffering mode is typically faster since each processor does the\nrelatively expensive task of formatting the output for its own atoms.\nHowever it requires about twice the memory (per processor) for the\nextra buffering.\n\n----------\n\nThe *colname* keyword can be used to change the default header keyword\nfor dump styles: *atom*, *custom*, *cfg*, and *local* and their\ncompressed, ADIOS variants. The setting for *ID string* replaces the\ndefault text with the provided string. *ID* can be a positive integer\nwhen it represents the column number counting from the left, a negative\ninteger when it represents the column number from the right (i.e. -1 is\nthe last column/keyword), or a custom dump keyword (or compute, fix,\nproperty, or variable reference) and then it replaces the string for\nthat specific keyword. For *atom* dump styles only the keywords \"id\",\n\"type\", \"x\", \"y\", \"z\", \"ix\", \"iy\", \"iz\" can be accessed via string\nregardless of whether scaled or unwrapped coordinates were enabled or\ndisabled, and it always assumes 8 columns for indexing regardless of\nwhether image flags are enabled or not. For dump style *cfg* only\nchanges to the \"auxiliary\" keywords (6th or later keyword) will become\nvisible.\n\nThe *colname* keyword can be used multiple times. If multiple *colname*\nsettings refer to the same keyword, the last setting has precedence. A\nsetting of *default* clears all previous settings, reverting all values\nto their default names. Using the *scale* or *image* keyword will also\nreset all header keywords to their default values.\n\n----------\n\nThe *delay* keyword applies to all dump styles. No snapshots will be\noutput until the specified *Dstep* timestep or later. Specifying\n*Dstep* < 0 is the same as turning off the delay setting. This is a\nway to turn off unwanted output early in a simulation, for example,\nduring an equilibration phase.\n\n----------\n\nThe *element* keyword applies only to the dump *cfg*, *xyz*, and\n*image* styles. It associates element names (e.g., H, C, Fe) with\nLAMMPS atom types. See the list of element names at the bottom of\nthis page.\n\nIn the case of dump *cfg*, this allows the [AtomEye ](http://li.mit.edu/Archive/Graphics/A/)\nvisualization package to read the dump file and render atoms with the\nappropriate size and color.\n\nIn the case of dump *image*, the output images will follow the same\n[AtomEye ](http://li.mit.edu/Archive/Graphics/A/) convention. An element name is specified for each\natom type (1 to Ntype) in the simulation. The same element name can\nbe given to multiple atom types.\n\nIn the case of *xyz* format dumps, there are no restrictions to what\nlabel can be used as an element name. Any white-space separated text\nwill be accepted.\n\n----------\n\nThe *every* keyword can be used with any dump style except the *dcd*\nand *xtc* styles. It specifies that the output of dump snapshots will\nnow be performed on timesteps which are a multiple of a new \\(N\\)\nvalue, This overrides the dump frequency originally specified by the\n[dump ](https://docs.lammps.org/dump.html) command.\n\nThe *every* keyword can be specified in one of two ways. It can be a\nnumeric value in which case it must be > 0. Or it can be an\n[equal-style variable ](https://docs.lammps.org/variable.html), which should be specified as\nv_name, where name is the variable name.\n\nIn this case, the variable is evaluated at the beginning of a run to\ndetermine the next timestep at which a dump snapshot will be written\nout. On that timestep the variable will be evaluated again to\ndetermine the next timestep, etc. Thus the variable should return\ntimestep values. See the stagger() and logfreq() and stride() math\nfunctions for [equal-style variables ](https://docs.lammps.org/variable.html), as examples of\nuseful functions to use in this context. Other similar math functions\ncould easily be added as options for [equal-style variables](https://docs.lammps.org/variable.html). Also see the next() function, which allows use of a\nfile-style variable which reads successive values from a file, each\ntime the variable is evaluated. Used with the *every* keyword, if the\nfile contains a list of ascending timesteps, you can output snapshots\nwhenever you wish.\n\nNote that when using the variable option with the *every* keyword, you\nneed to use the *first* option if you want an initial snapshot written\nto the dump file. The *every* keyword cannot be used with the dump\n*dcd* style.\n\nFor example, the following commands will\nwrite snapshots at timesteps 0,10,20,30,100,200,300,1000,2000,etc:\n\n```lmps\nvariable s equal logfreq(10,3,10)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every v_s first yes\n```\nThe following commands would write snapshots at the timesteps listed\nin file tmp.times:\n\n```lmps\nvariable f file tmp.times\nvariable s equal next(f)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every v_s\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using a file-style variable with the *every* keyword, the\n > file of timesteps must list a first timestep that is beyond the\n > current timestep (e.g., it cannot be 0). And it must list one or more\n > timesteps beyond the length of the run you perform. This is because\n > the dump command will generate an error if the next timestep it reads\n > from the file is not a value greater than the current timestep. Thus\n > if you wanted output on steps 0,15,100 of a 100-timestep run, the file\n > should contain the values 15,100,101 and you should also use the\n > dump_modify first command. Any final value > 100 could be used in\n > place of 101. \n > \n\n----------\n\nThe *every/time* keyword can be used with any dump style except the\n*dcd* and *xtc* styles. It changes the frequency of dump snapshots\nfrom being based on the current timestep to being determined by\nelapsed simulation time, i.e. in time units of the [units](https://docs.lammps.org/units.html) command, and specifies *Delta* for the interval between\nsnapshots. This can be useful when the timestep size varies during a\nsimulation run, e.g. by use of the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\ncommand. The default is to perform output on timesteps which a\nmultiples of specified timestep value \\(N\\); see the *every*\nkeyword.\n\nThe *every/time* keyword can be used with any dump style except the\n*dcd* and *xtc* styles. It does two things. It specifies that the\ninterval between dump snapshots will be set in simulation time\n(i.e. in time units of the [units ](https://docs.lammps.org/units.html) command). This can be\nuseful when the timestep size varies during a simulation run (e.g., by\nuse of the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) command). The default is\nto specify the interval in timesteps; see the *every* keyword. The\n*every/time* command also sets the interval value.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish dump styles *atom*, *custom*, *local*, or *xyz* to\n > include the simulation time as a field in the header portion of\n > each snapshot, you also need to use the dump_modify *time* keyword\n > with a setting of *yes*. See its documentation below. \n > \n\nNote that since snapshots are output on simulation steps, each\nsnapshot will be written on the first timestep whose associated\nsimulation time is >= the exact snapshot time value.\n\nAs with the *every* option, the *Delta* value can be specified in one\nof two ways. It can be a numeric value in which case it must be >\n0.0. Or it can be an [equal-style variable ](https://docs.lammps.org/variable.html), which\nshould be specified as v_name, where name is the variable name.\n\nIn this case, the variable is evaluated at the beginning of a run to\ndetermine the next simulation time at which a dump snapshot will be\nwritten out. On that timestep the variable will be evaluated again to\ndetermine the next simulation time, etc. Thus the variable should\nreturn values in time units. Note the current timestep or simulation\ntime can be used in an [equal-style variables ](https://docs.lammps.org/variable.html) since\nthey are both thermodynamic keywords. Also see the next() function,\nwhich allows use of a file-style variable which reads successive\nvalues from a file, each time the variable is evaluated. Used with\nthe *every/time* keyword, if the file contains a list of ascending\nsimulation times, you can output snapshots whenever you wish.\n\nNote that when using the variable option with the *every/time*\nkeyword, you need to use the *first* option if you want an initial\nsnapshot written to the dump file. The *every/time* keyword cannot be\nused with the dump *dcd* style.\n\nFor example, the following commands will write snapshots at successive\nsimulation times which grow by a factor of 1.5 with each interval.\nThe dt value used in the variable is to avoid a zero result when the\ninitial simulation time is 0.0.\n\n```lmps\nvariable increase equal 1.5*(time+dt)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every/time v_increase first yes\n```\nThe following commands would write snapshots at the times listed in\nfile tmp.times:\n\n```lmps\nvariable f file tmp.times\nvariable s equal next(f)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every/time v_s\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using a file-style variable with the *every/time* keyword, the\n > file of timesteps must list a first time that is beyond the time\n > associated with the current timestep (e.g., it cannot be 0.0). And\n > it must list one or more times beyond the length of the run you\n > perform. This is because the dump command will generate an error\n > if the next time it reads from the file is not a value greater than\n > the current time. Thus if you wanted output at times 0,15,100 of a\n > run of length 100 in simulation time, the file should contain the\n > values 15,100,101 and you should also use the dump_modify first\n > command. Any final value > 100 could be used in place of 101. \n > \n\n----------\n\nThe *first* keyword determines whether a dump snapshot is written on\nthe very first timestep after the dump command is invoked. This will\nalways occur if the current timestep is a multiple of $N$, the\nfrequency specified in the [dump ](https://docs.lammps.org/dump.html) command or\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, including timestep 0.\nIt will also always occur if the current simulation time is a multiple\nof *Delta*, the time interval specified in the [dump_modifyevery/time ](https://docs.lammps.org/dump_modify.html) command.\n\nBut if this is not the case, a dump snapshot will only be written if\nthe setting of this keyword is *yes* . If it is *no*, which is the\ndefault, then it will not be written.\n\nNote that if the argument to the [dump_modify every](https://docs.lammps.org/dump_modify.html) [dump_modify every/time ](https://docs.lammps.org/dump_modify.html) commands is\na variable and not a numeric value, then specifying *first yes* is the\nonly way to write a dump snapshot on the first timestep after the dump\ncommand is invoked.\n\n----------\n\nThe *flush* keyword determines whether a flush operation is invoked\nafter a dump snapshot is written to the dump file. A flush ensures\nthe output in that file is current (no buffering by the OS), even if\nLAMMPS halts before the simulation completes. Flushes cannot be\nperformed with dump style *xtc* .\n\n----------\n\nThe *format* keyword can be used to change the default numeric format\noutput by the text-based dump styles: *atom*, *local*, *custom*, *cfg*,\nand *xyz* styles. Only the *line* or *none* options can be used with the\n*atom* and *xyz* styles.\n\nAll the specified format strings are C-style formats, such as used by\nthe C/C++ printf() command. The *line* keyword takes a single\nargument which is the format string for an entire line of output for\neach atom (do not include a trailing \"\\n\"), with \\(N\\) fields, which you\nmust enclose in quotes if there is more than one field. The *int* and\n*float* keywords take a single format argument and are applied to all\ninteger or floating-point quantities output. The setting for *M string*\nalso takes a single format argument which is used for the \\(M\\)\\ th\nvalue output in each line (e.g., the fifth column is output in high\nprecision by \"format 5 %20.15g\").\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *line* keyword for the *cfg* style, the first two\n > fields (atom ID and type) are not actually written into the CFG file,\n > however you must include formats for them in the format string. \n > \n\nThe *format* keyword can be used multiple times. The precedence is\nthat for each value in a line of output, the *M* format (if specified)\nis used, else the *int* or *float* setting (if specified) is used,\nelse the *line* setting (if specified) for that value is used, else\nthe default setting is used. A setting of *none* clears all previous\nsettings, reverting all values to their default format.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atom and molecule IDs are stored internally as 4-byte or 8-byte\n > signed integers, depending on how LAMMPS was compiled. When\n > specifying the *format int* option you can use a \"%d\"-style format\n > identifier in the format string and LAMMPS will convert this to the\n > corresponding 8-byte form if it is needed when outputting those\n > values. However, when specifying the *line* option or *format M\n > string* option for those values, you should specify a format string\n > appropriate for an 8-byte signed integer (e.g., one with \"%ld\") if\n > LAMMPS was compiled with the -DLAMMPS_BIGBIG option for 8-byte IDs. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Any value written to a text-based dump file that is a per-atom\n > quantity calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) is\n > stored internally as a floating-point value. If the value is actually\n > an integer and you wish it to appear in the text dump file as a\n > (large) integer, then you need to use an appropriate format. For\n > example, these commands: \n > \n\n\n```lmps\ncompute 1 all property/local batom1 batom2\ndump 1 all local 100 tmp.bonds index c_1[1] c_1[2]\ndump_modify 1 format line \"%d %0.0f %0.0f\"\n```\nwill output the two atom IDs for atoms in each bond as integers. If\nthe dump_modify command were omitted, they would appear as\nfloating-point values, assuming they were large integers (more than six\ndigits). The \"index\" keyword should use the \"%d\" format since it is\nnot generated by a compute or fix, and is stored internally as an\ninteger.\n\n----------\n\nThe *fileper* keyword is documented below with the *nfile* keyword.\n\n----------\n\nThe *header* keyword toggles whether the dump file will include a\nheader. Excluding a header will reduce the size of the dump file for\ndata produced by [pair tracker ](https://docs.lammps.org/pair_tracker.html) or\n[bpm bond styles ](https://docs.lammps.org/Howto_bpm.html) which may not require the\ninformation typically written to the header.\n\n----------\n\nThe *image* keyword applies only to the dump *atom* style. If the\nimage value is *yes*, three flags are appended to each atom's coords which\nare the absolute box image of the atom in each dimension. For\nexample, an \\(x\\) image flag of \\(-2\\) with a normalized coord of 0.5\nmeans the atom is in the center of the box, but has passed through the box\nboundary twice and is really two box lengths to the left of its\ncurrent coordinate. Note that for dump style *custom* these various\nvalues can be printed in the dump file by using the appropriate atom\nattributes in the dump command itself.\nUsing this keyword will reset all custom header names set with\n*dump_modify colname* to their respective default values.\n\n----------\n\nThe *label* keyword applies only to the dump *local* style.\nWhen it writes local information, such as bond or angle topology\nto a dump file, it will use the specified *label* to format the header.\nBy default this includes two lines:\n\n```\nITEM: NUMBER OF ENTRIES\nITEM: ENTRIES ...\n```\nThe word \"ENTRIES\" will be replaced with the string specified\n(e.g., BONDS or ANGLES).\n\n----------\n\nThe *maxfiles* keyword can only be used when a '\\*' wildcard is\nincluded in the dump file name (i.e., when writing a new file(s) for\neach snapshot). The specified *Fmax* is how many snapshots will be\nkept. Once this number is reached, the file(s) containing the oldest\nsnapshot is deleted before a new dump file is written. If the\nspecified \\(\\text{Fmax} \\le 0\\), then all files are retained.\n\nThis can be useful for debugging, especially if you do not know on what\ntimestep something bad will happen (e.g., when LAMMPS will exit with an\nerror). You can dump every time step and limit the number of dump\nfiles produced, even if you run for thousands of steps.\n\n----------\n\nThe *nfile* or *fileper* keywords can be used in conjunction with the\n\"%\" wildcard character in the specified dump file name, for all dump\nstyles except the *dcd*, *image*, *movie*, *xtc*, and *xyz* styles\n(for which \"%\" is not allowed). As explained on the [dump ](https://docs.lammps.org/dump.html)\ncommand doc page, the \"%\" character causes the dump file to be written\nin pieces, one piece for each of \\(P\\) processors. By default, \\(P\\)\nis the number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set \\(P\\) to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets \\(P\\) to the specified \\(N_f\\) value.\nFor example, if \\(N_f = 4\\), and the simulation is running on 100\nprocessors, four files will be written by processors 0, 25, 50, and 75.\nEach will collect information from itself and the next 24 processors and write\nit to a dump file.\n\nFor the *fileper* keyword, the specified value of \\(N_p\\) means write one\nfile for every \\(N_p\\) processors. For example, if \\(N_p = 4\\),\nevery fourth processor (0, 4, 8, 12, etc.) will collect information from itself\nand the next three processors and write it to a dump file.\n\n----------\n\nThe *pad* keyword only applies when the dump filename is specified\nwith a wildcard \"\\*\" character which becomes the timestep. If *pad* is\n0, which is the default, the timestep is converted into a string of\nunpadded length (e.g., 100 or 12000 or 2000000). When *pad* is\nspecified with *Nchar* \\(>\\) 0, the string is padded with leading zeroes\nso they are all the same length = *Nchar* . For example, pad 7 would\nyield 0000100, 0012000, 2000000. This can be useful so that\npost-processing programs can easily read the files in ascending\ntimestep order.\n\n----------\n\nThe *pbc* keyword applies to all the dump styles. As explained on the\n[dump ](https://docs.lammps.org/dump.html) doc page, atom coordinates in a dump file may be\nslightly outside the simulation box. This is because periodic\nboundary conditions are enforced only on timesteps when neighbor lists\nare rebuilt, which will not typically coincide with the timesteps dump\nsnapshots are written. If the setting of this keyword is set to\n*yes*, then all atoms will be remapped to the periodic box before the\nsnapshot is written, then restored to their original position. If it\nis set to *no* they will not be. The *no* setting is the default\nbecause it requires no extra computation.\n\n----------\n\nThe *precision* keyword only applies to the dump *xtc* style. A\nspecified value of \\(N\\) means that coordinates are stored to \\(1/N\\)\nnanometer accuracy (e.g., for \\(N = 1000\\), the coordinates are written to\n\\(1/1000\\) nanometer accuracy).\n\n----------\n\nThe *refresh* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. It allows an \"incremental\" dump file to\nbe written, by refreshing a compute that is used as a threshold for\ndetermining which atoms are included in a dump snapshot. The\nspecified *c_ID* gives the ID of the compute. It is prefixed by \"c\\_\"\nto indicate a compute, which is the only current option. At some\npoint, other options may be added (e.g., fixes or variables).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This keyword can only be specified once for a dump. Refreshes\n > of multiple computes cannot yet be performed. \n > \n\nThe definition and motivation of an incremental dump file is as\nfollows. Instead of outputting all atoms at each snapshot (with some\nassociated values), you may only wish to output the subset of atoms\nwith a value that has changed in some way compared to the value the\nlast time that atom was output. In some scenarios this can result in\na dramatically smaller dump file. If desired, by post-processing the\nsequence of snapshots, the values for all atoms at all timesteps can\nbe inferred.\n\nA concrete example is a simulation of atom diffusion in a solid,\nrepresented as atoms on a lattice. Diffusive hops are rare. Imagine\nthat when a hop occurs an atom moves more than a distance *Dhop* . For\nany snapshot we only want to output atoms that have hopped since the\nlast snapshot. This can be accomplished with something the following\ncommands:\n\n```lmps\nvariable Dhop equal 0.6\nvariable check atom \"c_dsp[4] > v_Dhop\"\ncompute dsp all displace/atom refresh check\ndump 1 all custom 20 tmp.dump id type x y z\ndump_modify 1 append yes thresh c_dsp[4] > ${Dhop} refresh c_dsp\n```\nThe [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html) command\ncalculates the displacement of each atom from its reference position.\nThe \"4\" index is the scalar displacement; 1, 2, and 3 are the \\(xyz\\)\ncomponents of the displacement. The [dump_modify thresh ](https://docs.lammps.org/dump_modify.html)\ncommand will cause only atoms that have displaced more than\n\\(0.6~\\mathring{\\textrm{A}}\\) to be output on a given snapshot (assuming\nmetal units). However, note that when an atom is output, we also need to\nupdate the reference position for that atom to its new coordinates. So that it\nwill not be output in every snapshot thereafter. That reference position is\nstored by [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html). So the\ndump_modify *refresh* option triggers a call to compute displace/atom at the\nend of every dump to perform that update. The *refresh check* option\nshown as part of the [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html)\ncommand enables the compute to respond to the call from the dump command, and\nupdate the appropriate reference positions. This is done be defining an\n[atom-style variable ](https://docs.lammps.org/variable.html), *check* in this example, which\ncalculates a Boolean value (0 or 1) for each atom, based on the same\ncriterion used by dump_modify thresh.\n\nSee the [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html) command for\nmore details, including an example of how to produce output that\nincludes an initial snapshot with the reference position of all atoms.\n\nNote that only computes with a *refresh* option will work with\ndump_modify refresh. See individual compute doc pages for details.\nCurrently, only compute displace/atom supports this option. Others\nmay be added at some point. If you use a compute that does not support\nrefresh operations, LAMMPS will not complain; dump_modify refresh will\nsimply do nothing.\n\n----------\n\nThe *region* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. If specified, only atoms in the region\nwill be written to the dump file or included in the image/movie. Only\none region can be applied as a filter (the last one specified). See\nthe [region ](https://docs.lammps.org/region.html) command for more details. Note that a region\ncan be defined as the \"inside\" or \"outside\" of a geometric shape, and\nit can be the \"union\" or \"intersection\" of a series of simpler\nregions.\n\n----------\n\nThe *scale* keyword applies only to the dump *atom* style. A scale\nvalue of *yes* means atom coords are written in normalized units from\n0.0 to 1.0 in each box dimension. If the simulation box is triclinic\n(tilted), then all atom coords will still be between 0.0 and 1.0. A\nvalue of *no* means they are written in absolute distance units\n(e.g., \\(\\mathring{\\textrm{A}}\\) or \\(\\sigma\\)).\nUsing this keyword will reset all custom header names set with\n*dump_modify colname* to their respective default values.\n\n----------\n\nThe *sfactor* and *tfactor* keywords only apply to the dump *xtc*\nstyle. They allow customization of the unit conversion factors used\nwhen writing to XTC files. By default, they are initialized for\nwhatever [units ](https://docs.lammps.org/units.html) style is being used, to write out\ncoordinates in nanometers and time in picoseconds. For example, for *real*\nunits, LAMMPS defines *sfactor* = 0.1 and *tfactor* = 0.001, since the\n\\(\\mathring{\\textrm{A}}\\) and fs used by *real* units are 0.1 nm and\n0.001 ps, respectively. If you are using a units system with distance and time\nunits far from nm and ps, you may wish to write XTC files with\ndifferent units, since the compression algorithm used in XTC files is\nmost effective when the typical magnitude of position data is between\n10.0 and 0.1.\n\n----------\n\nThe *skip* keyword can be used with all dump styles. It allows a dump\nsnapshot to be skipped (not written to the dump file), if a condition\nis met. The condition is computed by an [equal-style variable](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is the\nvariable name. If the variable evaluation returns a non-zero value,\nthen the dump snapshot is skipped. If it returns zero, the dump\nproceeds as usual. Note that [equal-style variable ](https://docs.lammps.org/variable.html)\ncan contain Boolean operators which effectively evaluate as a true\n(non-zero) or false (zero) result.\n\nThe *skip* keyword can be useful for debugging purposes, e.g. to dump\nonly on a particular timestep. Or to limit output to conditions of\ninterest, e.g. only when the force on some atom exceeds a threshold\nvalue.\n\n----------\n\nThe *sort* keyword determines whether lines of per-atom output in a\nsnapshot are sorted or not. A sort value of *off* means they will\ntypically be written in indeterminate order, either in serial or\nparallel. This is the case even in serial if the [atom_modify sort](https://docs.lammps.org/atom_modify.html) option is turned on, which it is by default, to improve\nperformance. A sort value of *id* means sort the output by atom ID. A\nsort value of \\(N\\) or \\(-N\\) means sort the output by the value\nin the \\(N\\)\\ th column of per-atom info in either ascending or\ndescending order.\n\nThe dump *local* style cannot be sorted by atom ID, since there are\ntypically multiple lines of output per atom. Some dump styles, such\nas *dcd* and *xtc*, require sorting by atom ID to format the output\nfile correctly. If multiple processors are writing the dump file, via\nthe \"%\" wildcard in the dump filename and the *nfile* or *fileper*\nkeywords are set to non-default values (i.e., the number of dump file\npieces is not equal to the number of procs), then sorting cannot be\nperformed.\n\nIn a parallel run, the per-processor dump file pieces can have\nsignificant imbalance in number of lines of per-atom info. The *balance*\nkeyword determines whether the number of lines in each processor\nsnapshot are balanced to be nearly the same. A balance value of *no*\nmeans no balancing will be done, while *yes* means balancing will be\nperformed. This balancing preserves dump sorting order. For a serial\nrun, this option is ignored since the output is already balanced.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unless it is required by the dump style, sorting dump file\n > output requires extra overhead in terms of CPU and communication cost,\n > as well as memory, versus unsorted output. \n > \n\n----------\n\nThe *thermo* keyword only applies the dump styles *netcdf* and *yaml*.\nIt triggers writing of [thermo ](https://docs.lammps.org/thermo.html) information to the dump\nfile alongside per-atom data. The values included in the dump file are\ncached values from the last thermo output and include the exact same the\nvalues as specified by the [thermo_style ](https://docs.lammps.org/thermo_style.html) command.\nBecause these are cached values, they are only up-to-date when dump\noutput is on a timestep that also has thermo output. Dump style *yaml*\nwill skip thermo output on incompatible steps.\n\n----------\n\nThe *thresh* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. Multiple thresholds can be specified.\nSpecifying *none* turns off all threshold criteria. If thresholds are\nspecified, only atoms whose attributes meet all the threshold criteria\nare written to the dump file or included in the image. The possible\nattributes that can be tested for are the same as those that can be\nspecified in the [dump custom ](https://docs.lammps.org/dump.html) command, with the exception\nof the *element* attribute, since it is not a numeric value. Note\nthat a different attributes can be used than those output by the\n[dump custom ](https://docs.lammps.org/dump.html) command. For example, you can output the\ncoordinates and stress of atoms whose energy is above some threshold.\n\nIf an atom-style variable is used as the attribute, then it can\nproduce continuous numeric values or effective Boolean 0/1 values,\nwhich may be useful for the comparison operator. Boolean values can\nbe generated by variable formulas that use comparison or Boolean math\noperators or special functions like gmask() and rmask() and grmask().\nSee the [variable ](https://docs.lammps.org/variable.html) command page for details.\n\nThe specified value must be a simple numeric value or the word LAST.\nIf LAST is used, it refers to the value of the attribute the last time\nthe dump command was invoked to produce a snapshot. This is a way to\nonly dump atoms whose attribute has changed (or not changed).\nThree examples follow.\n\n```lmps\ndump_modify ... thresh ix != LAST\n```\nThis will dump atoms which have crossed the periodic \\(x\\) boundary of the\nsimulation box since the last dump. (Note that atoms that crossed\nonce and then crossed back between the two dump timesteps would not be\nincluded.)\n\n```lmps\nregion foo sphere 10 20 10 15\nvariable inregion atom rmask(foo)\ndump_modify ... thresh v_inregion |^ LAST\n```\nThis will dump atoms which crossed the boundary of the spherical\nregion since the last dump.\n\n```lmps\nvariable charge atom \"(q > 0.5) || (q < -0.5)\"\ndump_modify ... thresh v_charge |^ LAST\n```\nThis will dump atoms whose charge has changed from an absolute value\nless than \\(\\frac12\\) to greater than \\(\\frac12\\) (or vice\nversa) since the last dump (e.g., due to reactions and subsequent\ncharge equilibration in a reactive force field).\n\nThe choice of operators listed above are the usual comparison\noperators. The XOR operation (exclusive or) is also included as \"\\|\\^\".\nIn this context, XOR means that if either the attribute or value is\n0.0 and the other is non-zero, then the result is \"true\" and the\nthreshold criterion is met. Otherwise it is not met.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *custom*, the *triclinic/general* keyword can alter dump\n > output for general triclinic simulation boxes and their atoms. See\n > the [dump ](https://docs.lammps.org/dump.html) command for details of how this changes the\n > format of dump file snapshots. The thresh keyword may access\n > per-atom attributes either directly or indirectly through a compute\n > or variable. If the attribute is an atom coordinate or a per-atom\n > vector (such as velocity, force, or dipole moment), its value will\n > *NOT* be a general triclinic (rotated) value. Rather it will be a\n > restricted triclinic value. \n > \n\n----------\n\nThe *time* keyword only applies to the dump *atom*, *custom*, *local*,\nand *xyz* styles (and their COMPRESS package versions *atom/gz*,\n*custom/gz* and *local/gz* ). For the first three styles, if set to\n*yes*, each frame will will contain two extra lines before the \"ITEM:\nTIMESTEP\" entry:\n\n```\nITEM: TIME\n\\\n```\nFor the *xyz* style, the simulation time is included on the same line\nas the timestep value.\n\nThis will output the current elapsed simulation time in current\ntime units equivalent to the [thermo keyword ](https://docs.lammps.org/thermo_style.html) *time* .\nThis is to simplify post-processing of trajectories using a variable time\nstep (e.g., when using [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)).\nThe default setting is *no* .\n\n----------\n\nThe *types* keyword applies only to the dump xyz style. If this keyword is\nused with a value of *numeric*, then numeric atom types are printed in the\nxyz file (default). If the value *labels* is specified, then\n[type labels ](https://docs.lammps.org/Howto_type_labels.html) are printed for atom types.\n\n----------\n\nThe *triclinic/general* keyword only applies to the dump *atom* and\n*custom* styles. It can only be used with a value of *yes* if the\nsimulation box was created as a general triclinic box. See the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed\nexplanation of orthogonal, restricted triclinic, and general triclinic\nsimulation boxes.\n\nIf this keyword is used with a value of *yes*, the box information at\nthe beginning of each snapshot will include information about the 3\narbitrary edge vectors **A**, **B**, **C** that define the general\ntriclinic box as well as their origin. The format is described on the\n[dump ](https://docs.lammps.org/dump.html) doc page.\n\nThe coordinates of each atom will likewise be output as values in (or\nnear) the general triclinic box. Likewise, per-atom vector quantities\nsuch as velocity, omega, dipole moment, etc will have orientations\nconsistent with the general triclinic box, meaning they will be\nrotated relative to the standard xyz coordinate axes. See the\n[dump ](https://docs.lammps.org/dump.html) doc page for a full list of which dump attributes\nthis affects.\n\n----------\n\nThe *units* keyword only applies to the dump *atom*, *custom*, and\n*local* styles (and their COMPRESS package versions *atom/gz*,\n*custom/gz* and *local/gz* ). If set to *yes*, each individual dump\nfile will contain two extra lines at the very beginning with:\n\n```\nITEM: UNITS\n\\\n```\nThis will output the current selected [units ](https://docs.lammps.org/units.html) style\nto the dump file and thus allows visualization and post-processing\ntools to determine the choice of units of the data in the dump file.\nThe default setting is *no* .\n\n----------\n\nThe *unwrap* keyword only applies to the dump *dcd* and *xtc* styles.\nIf set to *yes*, coordinates will be written \"unwrapped\" by the image\nflags for each atom. Unwrapped means that if the atom has passed through\na periodic boundary one or more times, the value is printed for what\nthe coordinate would be if it had not been wrapped back into the\nperiodic box. Note that these coordinates may thus be far outside the\nbox size stored with the snapshot.\n\n----------\n\nThe :ref:`COMPRESS package ` offers both GZ and Zstd\ncompression variants of styles atom, custom, local, cfg, and xyz. When\nusing these styles the compression level can be controlled by the\n:code:`compression_level` keyword. File names with these styles have to\nend in either :code:`.gz` or :code:`.zst`.\n\nGZ supports compression levels from \\(-1\\) (default), 0 (no compression),\nand 1 to 9, 9 being the best compression. The COMPRESS :code:`/gz` styles use 9\nas default compression level.\n\nZstd offers a wider range of compression levels, including negative\nlevels that sacrifice compression for performance. 0 is the default,\npositive levels are 1 to 22, with 22 being the most expensive\ncompression. Zstd promises higher compression/decompression speeds for\nsimilar compression ratios. For more details see\n`https://facebook.github.io/zstd/`.\n\nIn addition, Zstd compressed files can include a checksum of the\nentire contents. The Zstd enabled dump styles enable this feature by\ndefault and it can be disabled with the :code:`checksum` keyword.\n\n----------\n\nThe :ref:`VTK package ` offers writing dump files in `VTK file\nformats `_ that can be read by a variety of\nvisualization tools based on the VTK library. These VTK files follow\nnaming conventions that collide with the LAMMPS convention to append\n\".bin\" to a file name in order to switch to a binary output. Thus for\n[vtk style dumps ](https://docs.lammps.org/dump_vtk.html) the dump_modify command supports the\nkeyword *binary* which selects between generating text mode and binary\nstyle VTK files.\n\n----------\n", - "restrictions": "Not all *dump_modify* options can be applied to all dump styles.\nDetails are in the discussions of the individual options.\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html), [undump ](https://docs.lammps.org/undump.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* property/atom = style name of this fix command\n* name1,name2,... = mol or q or rmass or i_name or d_name or i2_name or d2_name \n *        mol = molecule IDs \n *        q = charge \n *        rmass = per-atom mass \n *        *temperature* = internal temperature of atom \n *        *heatflow* = internal heat flow of atom \n *        i_name = new integer vector referenced by name \n *        d_name = new floating-point vector referenced by name \n *        i2_name = new integer array referenced by name \n         i2_name arg = N = number of columns in the array \n *        d2_name = new floating-point array referenced by name \n         d2_name arg = N = number of columns in the array \n* zero of more keyword/value pairs may be appended\n* keyword = ghost \n *        ghost value = no or yes for whether ghost atom info in communicated \n", + "examples": "\n```lmps\nfix 1 all property/atom mol\nfix 1 all property/atom i_myflag1 i_myflag2\nfix 1 all property/atom d2_sxyz 3 ghost yes\n```\n", + "html_filename": "fix_property_atom.html", + "short_description": "Create one or more additional per-atom vectors or arrays to store\ninformation about atoms and to use during a simulation", + "description": "Create one or more additional per-atom vectors or arrays to store\ninformation about atoms and to use during a simulation. The specified\n*group-ID* is ignored by this fix.\n\nThe atom style used for a simulation defines a set of per-atom\nproperties, as explained on the [atom_style ](https://docs.lammps.org/atom_style.html) and\n[read_data ](https://docs.lammps.org/read_data.html) doc pages. The latter command defines\nthese properties for each atom in the system when a data file is read.\nThis fix augments the set of per-atom properties with new custom\nones. This can be useful in several scenarios.\n\nIf the atom style does not define molecule IDs, per-atom charge,\nper-atom mass, internal temperature, or internal heat flow, they can\nbe added using the *mol* , *q*, *rmass*, *temperature*, or *heatflow*\nkeywords. This could be useful to define \"molecules\" to use as rigid\nbodies with the [fix rigid ](https://docs.lammps.org/fix_rigid.html) command, or to carry\naround an extra flag with atoms (stored as a molecule ID) that can be\nused by various commands like [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) to group atoms without having to use the group\ncommand (which is limited to a total of 32 groups including *all* ).\nFor finite-size particles, an internal temperature and heat flow can\nbe used to model heat conduction as in the\n[GRANULAR package ](https://docs.lammps.org/Howto_granular.html).\n\nAnother application is to use the *rmass* flag in order to have\nper-atom masses instead of per-type masses. This could be used to\nstudy isotope effects with partial isotope substitution. :ref:`See\nbelow ` for an example of simulating a mixture of light and\nheavy water with the TIP4P water potential.\n\nAn alternative to using fix *property/atom* for these examples is to\nuse an atom style that does define molecule IDs or charge or per-atom\nmass (indirectly via diameter and density) or to use a hybrid atom\nstyle that combines two or more atom styles to provide the union of\nall their atom properties. However, this has two practical drawbacks:\nfirst, it typically necessitates changing the format of the Atoms\nsection in the data file and second, it may define additional\nproperties that are not needed such as bond lists, which incurs some\noverhead when there are no bonds.\n\nIn the future, we may add additional existing per-atom properties to\nfix property/atom, similar to *mol* , *q*, *rmass* , *temperature* ,\nor *heatflow* which \"turn-on\" specific properties defined by some atom\nstyles, so they can be easily used by atom styles that do not define\nthem.\n\nMore generally, the *i_name* and *d_name* options allow one or more\nnew custom per-atom vectors to be defined. Likewise the *i2_name* and\n*d2_name* options allow one or more custom per-atom arrays to be\ndefined. The *i2_name* and *d2_name* options take an argument *N*\nwhich specifies the number of columns in the per-atom array, i.e. the\nnumber of attributes associated with each atom. *N* >= 1 is required.\n\nEach name must be unique and can use alphanumeric or underscore\ncharacters. These vectors and arrays can store whatever values you\ndecide are useful in your simulation. As explained below there are\nseveral ways to initialize, access, and output these values, via input\nscript commands, data files, and in new code you add to LAMMPS.\n\nThis is effectively a simple way to add per-atom properties to a model\nwithout needing to write code for a new [atom style ](https://docs.lammps.org/atom_style.html)\nthat defines the properties. Note however that implementing a new\natom style allows new atom properties to be more tightly and\nseamlessly integrated with the rest of the code.\n\nThe new atom properties encode values that migrate with atoms to new\nprocessors and are written to restart files. If you want the new\nproperties to also be defined for ghost atoms, then use the *ghost*\nkeyword with a value of *yes* . This will invoke extra communication\nwhen ghost atoms are created (at every re-neighboring) to ensure the\nnew properties are also defined for the ghost atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Properties on ghost atoms \n >If you use the *mol* , *q* or *rmass* names, you most likely want\n > to set *ghost* yes, since these properties are stored with ghost\n > atoms if you use an [atom_style ](https://docs.lammps.org/atom_style.html) that defines\n > them. Many LAMMPS operations that use molecule IDs or charge, such\n > as neighbor lists and pair styles, will expect ghost atoms to have\n > these values. LAMMPS will issue a warning it you define those\n > vectors but do not set *ghost* yes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Limitations on ghost atom properties \n >The specified properties for ghost atoms are not updated every\n > timestep, but only once every few steps when neighbor lists are\n > re-built. Thus the *ghost* keyword is suitable for static\n > properties, like molecule IDs, but not for dynamic properties that\n > change every step. For the latter, the code you add to LAMMPS to\n > change the properties will also need to communicate their new\n > values to/from ghost atoms, an operation that can be invoked from\n > within a [pair style ](https://docs.lammps.org/pair_style.html) or [fix ](https://docs.lammps.org/fix.html) or\n > [compute ](https://docs.lammps.org/compute.html) that you write. \n > \n\n----------\n\nThis fix is one of a small number that can be defined in an input\nscript before the simulation box is created or atoms are defined.\nThis is so it can be used with the [read_data ](https://docs.lammps.org/read_data.html)\ncommand as described next.\n\nPer-atom properties that are defined by the [atom style](https://docs.lammps.org/atom_style.html) are initialized when atoms are created, e.g. by the\n[read_data ](https://docs.lammps.org/read_data.html) or [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommands. The per-atom properties defined by this fix are not. So\nyou need to initialize them explicitly. One way to do this is\n[read_data ](https://docs.lammps.org/read_data.html) command, using its *fix* keyword and\npassing it the fix-ID of this fix.\n\nThus these commands:\n\n```lmps\nfix prop all property/atom mol d_flag\nread_data data.txt fix prop NULL Molecules\n```\nwould allow a data file to have a section like this:\n\n```\nMolecules\n\n1 4 1.5\n2 4 3.0\n3 10 1.0\n4 10 1.0\n5 10 1.0\n...\nN 763 4.5\n```\nwhere N is the number of atoms, the first field on each line is the\natom-ID, the next two are a molecule-ID and a floating point value\nthat will be stored in a new property called \"flag\". If a per-atom\narray was specified in the fix property/atom command then the *N*\nvalues for that array must be specified consecutively for that\nproperty on each line. Note that the order of values on each line\ncorresponds to the order of custom names in the fix property/atom\ncommand.\n\nNote that the the lines of per-atom properties can be listed in any\norder. Also note that all the per-atom properties specified by the\nfix ID (prop in this case) must be included on each line in the\nspecified data file section (Molecules in this case).\n\nAnother way of initializing the new properties is via the [set](https://docs.lammps.org/set.html) command. For example, if you wanted molecules defined for\nevery set of 10 atoms, based on their atom-IDs, these commands could\nbe used:\n\n```lmps\nfix prop all property/atom mol\nvariable cluster atom ((id-1)/10)+1\nset atom * mol v_cluster\n```\nThe [atom-style variable ](https://docs.lammps.org/variable.html) will create values for atoms\nwith IDs 31,32,33,...40 that are 4.0,4.1,4.2,...,4.9. When the\n[set ](https://docs.lammps.org/set.html) commands assigns them to the molecule ID for each\natom, they will be truncated to an integer value, so atoms 31-40 will\nall be assigned a molecule ID of 4.\n\nNote that [atomfile-style variables ](https://docs.lammps.org/variable.html) can also be used\nin place of atom-style variables, which means in this case that the\nmolecule IDs could be read-in from a separate file and assigned by the\n[set ](https://docs.lammps.org/set.html) command. This allows you to initialize new per-atom\nproperties in a completely general fashion.\n\n----------\n\nFor new atom properties specified as *i_name*, *d_name*, *i2_name*, or\n*d2_name*, the [dump custom ](https://docs.lammps.org/dump.html) and [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) commands can access their\nvalues. This means that the values can be used accessed by fixes like\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), accessed by other computes like\n[compute reduce ](https://docs.lammps.org/compute_reduce.html), or used in [atom-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, these commands will output both the instantaneous and\ntime-averaged values of two new properties to a custom dump file:\n\n```lmps\nfix myprops all property/atom i_flag1 d_flag2\ncompute 1 all property/atom i_flag1 d_flag2\nfix 1 all ave/atom 10 10 100 c_1[1] c_1[2]\ndump 1 all custom 100 tmp.dump id x y z i_flag1 d_flag2 f_1[1] f_1[2]\n```\n----------\n\nIf you wish to add new [pair styles ](https://docs.lammps.org/pair_style.html), [fixes](https://docs.lammps.org/fix.html), or [computes ](https://docs.lammps.org/compute.html) that use the per-atom properties\ndefined by this fix, see the [Modify atom ](https://docs.lammps.org/Modify_atom.html) doc page\nwhich has details on how the custom properties of this fix can be\naccessed from added classes.\n\n----------\n\n.. _isotopes:\n\nHere is an example of using per-atom masses with TIP4P water to study\nisotope effects. When setting up simulations with the [TIP4P pairstyles ](https://docs.lammps.org/Howto_tip4p.html) for water, you have to provide exactly one atom\ntype each to identify the water oxygen and hydrogen atoms. Since the\natom mass is normally tied to the atom type, this makes it impossible\nto study multiple isotopes in the same simulation. With *fix\nproperty/atom rmass* however, the per-type masses are replaced by\nper-atom masses. Asumming you have a working input deck for regular\nTIP4P water, where water oxygen is atom type 1 and water hydrogen is\natom type 2, the following lines of input script convert this to using\nper-atom masses:\n\n```lmps\nfix Isotopes all property/atom rmass ghost yes\nset type 1 mass 15.9994\nset type 2 mass 1.008\n```\nWhen writing out the system data with the [write_data](https://docs.lammps.org/write_data.html) command, there will be a new section named with the\nfix-ID (i.e. *Isotopes* in this case). Alternatively, you can take an\nexisting data file and just add this *Isotopes* section with one line\nper atom containing atom-ID and mass. Either way, the extended data\nfile can be read back with:\n\n```lmps\nfix Isotopes all property/atom rmass ghost yes\nread_data tip4p-isotopes.data fix Isotopes NULL Isotopes\n```\nPlease note that the first *Isotopes* refers to the fix-ID and the\nsecond to the name of the section. The following input script code\nwill now change the first 100 water molecules in this example to heavy\nwater:\n\n```lmps\ngroup hwat id 2:300:3\ngroup hwat id 3:300:3\nset group hwat mass 2.0141018\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the per-atom values it stores to [binary restartfiles ](https://docs.lammps.org/restart.html), so that the values can be restored when a simulation\nis restarted. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >When reading data from a restart file, this fix command has to be\n > specified **after** the *read_restart* command and **exactly** the\n > same was in the input script that created the restart file. LAMMPS\n > will only check whether a fix is of the same style and has the same\n > fix ID and in case of a match will then try to initialize the fix\n > with the data stored in the binary restart file. If the names and\n > associated date types in the new fix property/atom command do not\n > match the old one exactly, data can be corrupted or LAMMPS may crash.\n > If the fix is specified **before** the *read_restart* command its\n > data will not be restored. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [set ](https://docs.lammps.org/set.html),\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html)\n" }, { "command": [ - "pair_style lj/cut/coul/cut", - "pair_style lj/cut/coul/cut/gpu", - "pair_style lj/cut/coul/cut/kk", - "pair_style lj/cut/coul/cut/omp", - "pair_style lj/cut/coul/debye", - "pair_style lj/cut/coul/debye/gpu", - "pair_style lj/cut/coul/debye/kk", - "pair_style lj/cut/coul/debye/omp", - "pair_style lj/cut/coul/dsf", - "pair_style lj/cut/coul/dsf/gpu", - "pair_style lj/cut/coul/dsf/kk", - "pair_style lj/cut/coul/dsf/omp", - "pair_style lj/cut/coul/long", - "pair_style lj/cut/coul/long/gpu", - "pair_style lj/cut/coul/long/kk", - "pair_style lj/cut/coul/long/intel", - "pair_style lj/cut/coul/long/opt", - "pair_style lj/cut/coul/long/omp", - "pair_style lj/cut/coul/msm", - "pair_style lj/cut/coul/msm/gpu", - "pair_style lj/cut/coul/msm/omp", - "pair_style lj/cut/coul/wolf", - "pair_style lj/cut/coul/wolf/omp" + "angle_style cosine/shift", + "angle_style cosine/shift/omp" ], "syntax": [ - "pair_style style args" + "angle_style cosine/shift" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "lj/cut/coul/wolf/omp", + "arg": "cosine/shift", "type": 3, "choices": [ - "lj/cut/coul/cut", - "lj/cut/coul/debye", - "lj/cut/coul/dsf", - "lj/cut/coul/wolf", - "lj/cut/coul/cut/gpu", - "lj/cut/coul/cut/kk", - "lj/cut/coul/cut/omp", - "lj/cut/coul/debye/gpu", - "lj/cut/coul/debye/kk", - "lj/cut/coul/debye/omp", - "lj/cut/coul/dsf/gpu", - "lj/cut/coul/dsf/kk", - "lj/cut/coul/dsf/omp", - "lj/cut/coul/wolf/omp" + "cosine/shift", + "cosine/shift/omp" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* style = lj/cut/coul/cut or lj/cut/coul/debye or lj/cut/coul/dsf or lj/cut/coul/long *lj/cut/coul/msm* or lj/cut/coul/wolf\n* args = list of arguments for a particular style \n *      lj/cut/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/debye args = kappa cutoff (cutoff2) \n       kappa = inverse of the Debye length (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/dsf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n *      lj/cut/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *lj/cut/coul/msm* args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/wolf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 2 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style lj/cut/coul/cut 10.0\npair_style lj/cut/coul/cut 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\npair_coeff 1 1 100.0 3.5 9.0 9.0\n\npair_style lj/cut/coul/debye 1.5 3.0\npair_style lj/cut/coul/debye 1.5 2.5 5.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\npair_coeff 1 1 1.0 1.5 2.5 5.0\n\npair_style lj/cut/coul/dsf 0.05 2.5 10.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.0 2.5\n\npair_style lj/cut/coul/long 10.0\npair_style lj/cut/coul/long 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/msm 10.0\npair_style lj/cut/coul/msm 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/wolf 0.2 5. 10.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.0 2.5\n```\n", - "html_filename": "pair_lj_cut_coul.html", - "short_description": "The *lj/cut/coul* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "The *lj/cut/coul* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nStyle *lj/cut/coul/cut* adds a Coulombic pairwise interaction given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the two atoms, and \\(\\epsilon\\) is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nStyle *lj/cut/coul/debye* adds an additional exp() damping factor\nto the Coulombic term, given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\exp(- \\kappa r) \\qquad r < r_c\\]\nwhere \\(\\kappa\\) is the inverse of the Debye length. This potential\nis another way to mimic the screening effect of a polar solvent.\n\nStyle *lj/cut/coul/dsf* computes the Coulombic term via the damped\nshifted force model described in **Fennell2**, given by:\n\\[\n E =\n q_iq_j \\left[ \\frac{\\mbox{erfc} (\\alpha r)}{r} - \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c} +\n \\left( \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c^2} + \\frac{2\\alpha}{\\sqrt{\\pi}}\\frac{\\exp (-\\alpha^2 r^2_c)}{r_c} \\right)(r-r_c) \\right] \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter and erfc() is the complementary\nerror-function. This potential is essentially a short-range,\nspherically-truncated, charge-neutralized, shifted, pairwise *1/r*\nsummation. The potential is based on Wolf summation, proposed as an\nalternative to Ewald summation for condensed phase systems where\ncharge screening causes electrostatic interactions to become\neffectively short-ranged. In order for the electrostatic sum to be\nabsolutely convergent, charge neutralization within the cutoff radius\nis enforced by shifting the potential through placement of image\ncharges on the cutoff sphere. Convergence can often be improved by\nsetting \\(\\alpha\\) to a small non-zero value.\n\nStyles *lj/cut/coul/long* and *lj/cut/coul/msm* compute the same\nCoulombic interactions as style *lj/cut/coul/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\nStyle *lj/cut/coul/wolf* adds a Coulombic pairwise interaction via the Wolf\nsummation method, described in **Wolf3**, given by:\n\\[\n E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and erfc() is the\ncomplementary error-function terms. This potential is essentially a\nshort-range, spherically-truncated, charge-neutralized, shifted,\npairwise *1/r* summation. With a manipulation of adding and subtracting\na self term (for i = j) to the first and second term on the\nright-hand-side, respectively, and a small enough \\(\\alpha\\) damping\nparameter, the second term shrinks and the potential becomes a\nrapidly-converging real-space summation. With a long enough cutoff and\nsmall enough \\(\\alpha\\) parameter, the energy and forces calculated by the\nWolf summation method approach those of the Ewald sum. So it is a means\nof getting effective long-range interactions with a short-range\npotential.\n\n #### Coefficients\n\nFor all of the *lj/cut/coul* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{\\frac{1}{6}} \\sigma\\).\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nFor *lj/cut/coul/long* and *lj/cut/coul/msm* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff specified in\nthe pair_style command.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/coul/soft* and\n*lj/cut/coul/long/soft*, suitable for use in free energy calculations, is\npart of the FEP package and is documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/cut/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Fennell2)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,\n234104 (2006). \n \n**(Wolf3)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n ", - "restrictions": "The *lj/cut/coul/long* and *lj/cut/coul/msm* styles are part of the KSPACE package.\n\nThe *lj/cut/coul/debye*, *lj/cut/coul/dsf*, and *lj/cut/coul/wolf* styles are part\nof the EXTRA-PAIR package.\n\nThese styles are only enabled if LAMMPS was built with those respective\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/shift\nangle_coeff * 10.0 45.0\n```\n", + "html_filename": "angle_cosine_shift.html", + "short_description": "The *cosine/shift* angle style uses the potential\n\\[\n E = -\\frac{U_{\\text{min}}}{2} \\left[ 1 + \\cos(\\theta-\\theta_0) \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium angle", + "description": "The *cosine/shift* angle style uses the potential\n\\[\n E = -\\frac{U_{\\text{min}}}{2} \\left[ 1 + \\cos(\\theta-\\theta_0) \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium angle. The potential is bounded\nbetween \\(-U_{\\text{min}}\\) and zero. In the neighborhood of the minimum\n\\(E = - U_{\\text{min}} + U_{\\text{min}}/4(\\theta - \\theta_0)^2\\) hence\nthe spring constant is \\(\\frac{U_{\\text{min}}}{2}\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n* \\(\\theta\\) (angle)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[angle_style cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html)\n" }, { "command": [ @@ -12875,15 +11901,17 @@ export const command_docs = [ }, { "command": [ - "compute ti" + "fix shake", + "fix shake/kk", + "fix rattle" ], "syntax": [ - "compute ID group ti keyword args ..." + "fix ID group-ID style tol iter N constraint values ... keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -12893,49 +11921,79 @@ export const command_docs = [ "choices": [] }, { - "arg": "group", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "ti", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "kspace", + "arg": "tol", + "type": 2, + "choices": [] + }, + { + "arg": "iter", + "type": 2, + "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "m", "type": 3, "choices": [ - "tail", - "kspace" + "b", + "a", + "t", + "m" ] }, { - "arg": "args", + "arg": "values", + "type": 2, + "choices": [] + }, + { + "arg": "kbond", + "type": 3, + "choices": [ + "mol", + "kbond" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ti = style name of this compute command\n* one or more attribute/arg pairs may be appended\n* keyword = pair style (lj/cut, gauss, born, etc.) or tail or kspace \n *        pair style args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is energy scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n *        tail args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is energy tail correction scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n *        kspace args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is K-Space scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n", - "examples": "\n```lmps\ncompute 1 all ti lj/cut 1 v_lj v_dlj coul/long 2 v_c v_dc kspace 1 v_ks v_dks\ncompute 1 all ti lj/cut 1*3 v_lj v_dlj coul/long * v_c v_dc kspace * v_ks v_dks\n```\n", - "html_filename": "compute_ti.html", - "short_description": "Define a computation that calculates the derivative of the interaction\npotential with respect to *lambda*, the coupling parameter used in a\nthermodynamic integration", - "description": "Define a computation that calculates the derivative of the interaction\npotential with respect to *lambda*, the coupling parameter used in a\nthermodynamic integration. This derivative can be used to infer a\nfree energy difference resulting from an alchemical simulation, as\ndescribed in **Eike**.\n\nTypically this compute will be used in conjunction with the\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command which can perform alchemical\ntransformations by adjusting the strength of an interaction potential\nas a simulation runs, as defined by one or more\n[pair_style ](https://docs.lammps.org/pair_style.html) or [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommands. This scaling is done via a prefactor on the energy, forces,\nvirial calculated by the pair or \\(k\\)-space style. The prefactor is\noften a function of a *lambda* parameter which may be adjusted from 0 to 1\n(or vice versa) over the course of a [run ](https://docs.lammps.org/run.html).\nThe time-dependent adjustment is what the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand does.\n\nAssume that the unscaled energy of a pair_style or kspace_style is\ngiven by \\(U\\). Then the scaled energy is\n\\[\n U_s = f(\\lambda) U\\]\nwhere \\(f\\) is some function of \\(\\lambda\\). What this compute\ncalculates is\n\\[\n \\frac{dU_s}{d\\lambda} = U \\frac{df(\\lambda)}{d\\lambda}\n = \\frac{U_s}{f(\\lambda)} \\frac{df(\\lambda)}{d\\lambda},\\]\nwhich is the derivative of the system's scaled potential energy \\(U_s\\)\nwith respect to \\(\\lambda\\).\n\nTo perform this calculation, you provide one or more atom types as\n*atype* . The variable *atype* can be specified in one of two ways.\nAn explicit numeric value can be used, as in the first example above, or a\nwildcard asterisk can be used in place of or in conjunction with the\n*atype* argument to select multiple atom types. This takes the form\n\"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types,\nthen an asterisk with no numeric values means all types from 1 to \\(N\\).\nA leading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from m to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive).\n\nYou also specify two functions, as [equal-style variables ](https://docs.lammps.org/variable.html).\nThe first is specified as *v_name1*, where *name1* is the name of the\nvariable, and is \\(f(\\lambda)\\) in the notation above. The second is\nspecified as *v_name2*, where *name2* is the name of the variable, and is\n\\(df(\\lambda)/d\\lambda\\) in the notation above (i.e., it is the analytic\nderivative of \\(f\\) with respect to \\(\\lambda\\)).\nNote that the *name1* variable is also typically given as an\nargument to the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command.\n\nAn alchemical simulation may use several pair potentials together,\ninvoked via the [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand. The total \\(dU_s/d\\lambda\\) for the overall system is calculated\nas the sum of each contributing term as listed by the keywords in the\n[compute ti ](https://docs.lammps.org/compute_ti.html) command. Individual pair potentials can be\nlisted, which will be sub-styles in the hybrid case. You can also include a\n\\(k\\)-space term via the *kspace* keyword. You can also include a pairwise\nlong-range tail correction to the energy via the *tail* keyword.\n\nFor each term, you can specify a different (or the same) scale factor\nby the two variables that you list. Again, these will typically\ncorrespond toe the scale factors applied to these various potentials\nand the \\(k\\)-space contribution via the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand.\n\nMore details about the exact functional forms for the computation of\n\\(du/dl\\) can be found in the paper by **Eike**.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar, namely \\(dU_s/d\\lambda\\). This\nvalue can be used by any command that uses a global scalar value from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\".\n\nThe scalar value will be in energy [units ](https://docs.lammps.org/units.html).\n\n**(Eike)** Eike and Maginn, Journal of Chemical Physics, 124, 164503 (2006). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = shake or rattle = style name of this fix command\n* tol = accuracy tolerance of SHAKE solution\n* iter = max # of iterations in each SHAKE solution\n* N = print SHAKE statistics every this many timesteps (0 = never)\n* one or more constraint/value pairs are appended\n* constraint = b or a or t or m \n *        b values = one or more bond types \n *        a values = one or more angle types \n *        t values = one or more atom types \n *        m value = one or more mass values \n* zero or more keyword/value pairs may be appended\n* keyword = mol or kbond \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        kbond value = force constant \n         force constant = force constant used to apply a restraint force when used during minimization \n", + "examples": "\n```lmps\nfix 1 sub shake 0.0001 20 10 b 4 19 a 3 5 2\nfix 1 sub shake 0.0001 20 10 t 5 6 m 1.0 a 31\nfix 1 sub shake 0.0001 20 10 t 5 6 m 1.0 a 31 mol myMol\nfix 1 sub rattle 0.0001 20 10 t 5 6 m 1.0 a 31\nfix 1 sub rattle 0.0001 20 10 t 5 6 m 1.0 a 31 mol myMol\n```\n", + "html_filename": "fix_shake.html", + "short_description": "Apply bond and angle constraints to specified bonds and angles in the\nsimulation by either the SHAKE or RATTLE algorithms", + "description": "Apply bond and angle constraints to specified bonds and angles in the\nsimulation by either the SHAKE or RATTLE algorithms. This typically\nenables a longer timestep. The SHAKE or RATTLE constraint algorithms,\nhowever, can *only* be applied during molecular dynamics runs.\n\nThese fixes may now also be used during minimization. In that case the\nconstraints are *approximated* by strong harmonic restraints.\n\n**SHAKE vs RATTLE:**\n\nThe SHAKE algorithm was invented for schemes such as standard Verlet\ntimestepping, where only the coordinates are integrated and the\nvelocities are approximated as finite differences to the trajectories\n(**Ryckaert**). If the velocities are\nintegrated explicitly, as with velocity Verlet which is what LAMMPS\nuses as an integration method, a second set of constraining forces is\nrequired in order to eliminate velocity components along the bonds\n(**Andersen3**).\n\nIn order to formulate individual constraints for SHAKE and RATTLE,\nfocus on a single molecule whose bonds are constrained. Let Ri and Vi\nbe the position and velocity of atom *i* at time *n*, for\n*i* =1,...,\\ *N*, where *N* is the number of sites of our reference\nmolecule. The distance vector between sites *i* and *j* is given by\n\\[\n \\mathbf r^{n+1}_{ij} = \\mathbf r^n_j - \\mathbf r^n_i\\]\nThe constraints can then be formulated as\n\\[\\begin{align*} \n \\mathbf r^{n+1}_{ij} \\cdot \\mathbf r^{n+1}_{ij} &= d^2_{ij} \\quad \\text{and} \\\\\n \\mathbf v^{n+1}_{ij} \\cdot \\mathbf r^{n+1}_{ij} &= 0 \\end{align*} \\]\nThe SHAKE algorithm satisfies the first condition, i.e. the sites at\ntime *n+1* will have the desired separations Dij immediately after the\ncoordinates are integrated. If we also enforce the second condition,\nthe velocity components along the bonds will vanish. RATTLE satisfies\nboth conditions. As implemented in LAMMPS, *fix rattle* uses fix shake\nfor satisfying the coordinate constraints. Therefore the settings and\noptional keywords are the same for both fixes, and all the information\nbelow about SHAKE is also relevant for RATTLE.\n\n**SHAKE:**\n\nEach timestep the specified bonds and angles are reset to their\nequilibrium lengths and angular values via the SHAKE algorithm\n(**Ryckaert**). This is done by applying an\nadditional constraint force so that the new positions preserve the\ndesired atom separations. The equations for the additional force are\nsolved via an iterative method that typically converges to an accurate\nsolution in a few iterations. The desired tolerance (e.g. 1.0e-4 = 1\npart in 10000) and maximum # of iterations are specified as arguments.\nSetting the N argument will print statistics to the screen and log\nfile about regarding the lengths of bonds and angles that are being\nconstrained. Small delta values mean SHAKE is doing a good job.\n\nIn LAMMPS, only small clusters of atoms can be constrained. This is\nso the constraint calculation for a cluster can be performed by a\nsingle processor, to enable good parallel performance. A cluster is\ndefined as a central atom connected to others in the cluster by\nconstrained bonds. LAMMPS allows for the following kinds of clusters\nto be constrained: one central atom bonded to 1 or 2 or 3 atoms, or\none central atom bonded to 2 others and the angle between the 3 atoms\nalso constrained. This means water molecules or CH2 or CH3 groups may\nbe constrained, but not all the C-C backbone bonds of a long polymer\nchain.\n\nThe *b* constraint lists bond types that will be constrained. The *t*\nconstraint lists atom types. All bonds connected to an atom of the\nspecified type will be constrained. The *m* constraint lists atom\nmasses. All bonds connected to atoms of the specified masses will be\nconstrained (within a fudge factor of MASSDELTA specified in\n``src/RIGID/fix_shake.cpp``). The *a* constraint lists angle types. If\nboth bonds in the angle are constrained then the angle will also be\nconstrained if its type is in the list.\n\nFor all constraints, a particular bond is only constrained if both\natoms in the bond are in the group specified with the SHAKE fix.\n\nThe degrees-of-freedom removed by SHAKE bonds and angles are accounted\nfor in temperature and pressure computations. Similarly, the SHAKE\ncontribution to the pressure of the system (virial) is also accounted\nfor.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command works by using the current forces on atoms to calculate\n > an additional constraint force which when added will leave the atoms\n > in positions that satisfy the SHAKE constraints (e.g. bond length)\n > after the next time integration step. If you define fixes\n > (e.g. [fix efield ](https://docs.lammps.org/fix_efield.html)) that add additional force to\n > the atoms after *fix shake* operates, then this fix will not take them\n > into account and the time integration will typically not satisfy the\n > SHAKE constraints. The solution for this is to make sure that fix\n > shake is defined in your input script after any other fixes which add\n > or change forces (to atoms that *fix shake* operates on). \n > \n\n----------\n\nThe *mol* keyword should be used when other commands, such as [fixdeposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html), add molecules\non-the-fly during a simulation, and you wish to constrain the new\nmolecules via SHAKE. You specify a *template-ID* previously defined\nusing the [molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that\ndefines the molecule. You must use the same *template-ID* that the\ncommand adding molecules uses. The coordinates, atom types, special\nbond restrictions, and SHAKE info can be specified in the molecule file.\nSee the [molecule ](https://docs.lammps.org/molecule.html) command for details. The only\nsettings required to be in this file (by this command) are the SHAKE\ninfo of atoms in the molecule.\n\nThe *kbond* keyword sets the restraint force constant when *fix shake*\nor fix rattle are used during minimization. In that case the constraint\nalgorithms are *not* applied and restraint forces are used instead to\nmaintain the geometries similar to the constraints. How well the\ngeometries are maintained and how quickly a minimization converges,\ndepends largely on the force constant *kbond*: larger values will reduce\nthe deviation from the desired geometry, but can also lead to slower\nconvergence of the minimization or lead to instabilities depending on\nthe minimization algorithm requiring to reduce the value of\n[timestep ](https://docs.lammps.org/timestep.html). Even though the restraints will not\npreserve the bond lengths and angles as closely as the constraints\nduring the MD, they are generally close enough so that the constraints\nwill be fulfilled to the desired accuracy within a few MD steps\nfollowing the minimization. The default value for *kbond* depends on the\n[units ](https://docs.lammps.org/units.html) setting and is 1.0e6*k_B.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**RATTLE:**\n\nThe velocity constraints lead to a linear system of equations which\ncan be solved analytically. The implementation of the algorithm in\nLAMMPS closely follows (**Andersen3**).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *fix rattle* command modifies forces and velocities and thus\n > should be defined after all other integration fixes in your input\n > script. If you define other fixes that modify velocities or forces\n > after *fix rattle* operates, then *fix rattle* will not take them\n > into account and the overall time integration will typically not\n > satisfy the RATTLE constraints. You can check whether the\n > constraints work correctly by setting the value of RATTLE_DEBUG in\n > ``src/RIGID/fix_rattle.cpp`` to 1 and recompiling LAMMPS. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restartfiles ](https://docs.lammps.org/restart.html).\n\nBoth fix *shake* and fix *rattle* behave differently during a minimization\nin comparison to a molecular dynamics run:\n\n- When used during a minimization, the SHAKE or RATTLE constraint\n algorithms themselves are **not** applied. Instead the constraints\n are replaced by harmonic restraint forces. The energy and virial\n contributions due to the restraint forces are tallied into global and\n per-atom accumulators. The total restraint energy is also accessible\n as a global scalar property of the fix.\n\n- During molecular dynamics runs, however, the fixes do apply the\n requested SHAKE or RATTLE constraint algorithms.\n\n The [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\n these fixes to add the contribution due to the added constraint forces\n on atoms to both the global pressure and per-atom stress of the system\n via the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\n accessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html).\n\n The default setting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html). No global or per-atom quantities are stored by these\n fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html) during\n an MD run. No parameter of these fixes can be used with the\n *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\n\n**(Ryckaert)** J.-P. Ryckaert, G. Ciccotti and H. J. C. Berendsen,\nJ of Comp Phys, 23, 327-341 (1977). \n \n**(Andersen3)** H. Andersen, J of Comp Phys, 52, 24-34 (1983). \n ", + "restrictions": "These fixes are part of the RIGID package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor computational efficiency, there can only be one shake or rattle\nfix defined in a simulation.\n\nIf you use a tolerance that is too large or a max-iteration count that\nis too small, the constraints will not be enforced very strongly,\nwhich can lead to poor energy conservation. You can test for this in\nyour system by running a constant NVE simulation with a particular set\nof SHAKE parameters and monitoring the energy versus time.\n\nSHAKE or RATTLE should not be used to constrain an angle at 180 degrees\n(e.g. a linear CO2 molecule). This causes a divergence when solving the\nconstraint equations numerically. You can use [fix rigid or fixrigid/small ](https://docs.lammps.org/fix_rigid.html) instead to make a linear molecule rigid.\n\nWhen used during minimization choosing a too large value of the *kbond*\ncan make minimization very inefficient and also cause stability problems\nwith some minimization algorithms. Sometimes those can be avoided by\nreducing the [timestep ](https://docs.lammps.org/timestep.html).\n", + "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix ehex ](https://docs.lammps.org/fix_ehex.html),\n[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n" }, { "command": [ - "compute temp/asphere" + "fix numdiff" ], "syntax": [ - "compute ID group-ID temp/asphere keyword value ..." + "fix ID group-ID numdiff Nevery delta" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -12950,74 +12008,83 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/asphere", + "arg": "numdiff", "type": 1, "choices": [] }, { - "arg": "dof", - "type": 3, - "choices": [ - "bias", - "dof" - ] + "arg": "Nevery", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "delta", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/asphere = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", - "examples": "\n```lmps\ncompute 1 all temp/asphere\ncompute myTemp mobile temp/asphere bias tempCOM\ncompute myTemp mobile temp/asphere dof rotate\n```\n", - "html_filename": "compute_temp_asphere.html", - "short_description": "Define a computation that calculates the temperature of a group of\naspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy", - "description": "Define a computation that calculates the temperature of a group of\naspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nOnly finite-size particles (aspherical or spherical) can be included in\nthe group. For 3d finite-size particles, each has six degrees of\nfreedom (three translational, three rotational). For 2d finite-size\nparticles, each has three degrees of freedom (two translational, one\nrotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all finite-size\n > aspherical or spherical particles in your model will freely rotate,\n > sampling all their rotational DOF. It is possible to use a\n > combination of interaction potentials and fixes that induce no torque\n > or otherwise constrain some of all of your particles so that this is\n > not the case. Then there are fewer DOF and you should use the\n > [compute_modify extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust\n > the DOF accordingly. \n > \n\nFor example, an aspherical particle with all three of its shape\nparameters the same is a sphere. If it does not rotate, then it should\nhave 3 DOF instead of 6 in 3d (or two instead of three in 2d). A\nuniaxial aspherical particle has two of its three shape parameters the\nsame. If it does not rotate around the axis perpendicular to its\ncircular cross section, then it should have 5 DOF instead of 6 in 3d.\nThe latter is the case for uniaxial ellipsoids in a [GayBerne model](https://docs.lammps.org/pair_gayberne.html) since there is no induced torque around the optical\naxis. It will also be the case for biaxial ellipsoids when exactly two\nof the semiaxes have the same length and the corresponding relative well\ndepths are equal.\n\nThe translational kinetic energy is computed the same as is described by\nthe [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational kinetic\nenergy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is the\ninertia tensor for the aspherical particle and \\(\\omega\\) is its\nangular velocity, which is computed from its angular momentum.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > ellipsoids, not ellipses, meaning their moments of inertia will be\n > the same as in 3d. \n > \n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute. The formula for the components of the\ntensor is the same as the above formula, except that \\(v^2\\) and\n\\(\\omega^2\\) are replaced by \\(v_x v_y\\) and \\(\\omega_x\n\\omega_y\\) for the \\(xy\\) component, and the appropriate elements of\nthe moment of inertia tensor are used. The six components of the vector\nare ordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for the\ncomponents of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) and \\(\\omega^2\\) are replaced by \\(v_x v_y\\)\nand \\(\\omega_x \\omega_y\\) for the \\(xy\\) component, and so on.\nAnd the appropriate elements of the moment of inertia tensor are used.\nNote that because it lacks the 1/2 factor, these tensor components are\ntwice those of the traditional kinetic energy tensor. The six\ncomponents of the vector are ordered \\(xx\\), \\(yy\\), \\(zz\\),\n\\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic/dof* option of\nthe [compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the\ncase.\n\nThis compute subtracts out translational degrees-of-freedom due to fixes\nthat constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups\nof atoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra/dof* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom.\nA setting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by indices\n1--6. These values can be used by any command that uses global scalar\nor vector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The vector\nvalues are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store angular momentum and a quaternion\nas defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* numdiff = style name of this fix command\n* Nevery = calculate force by finite difference every this many timesteps\n* delta = size of atom displacements (distance units) \n", + "examples": "\n```lmps\nfix 1 all numdiff 10 1e-6\nfix 1 movegroup numdiff 100 0.01\n```\n", + "html_filename": "fix_numdiff.html", + "short_description": "Calculate forces through finite difference calculations of energy\nversus position", + "description": "Calculate forces through finite difference calculations of energy\nversus position. These forces can be compared to analytic forces\ncomputed by pair styles, bond styles, etc. This can be useful for\ndebugging or other purposes.\n\nThe group specified with the command means only atoms within the group\nhave their averages computed. Results are set to 0.0 for atoms not in\nthe group.\n\nThis fix performs a loop over all atoms in the group. For each atom\nand each component of force it adds *delta* to the position, and\ncomputes the new energy of the entire system. It then subtracts\n*delta* from the original position and again computes the new energy\nof the system. It then restores the original position. That\ncomponent of force is calculated as the difference in energy divided\nby two times *delta*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > atom displacements that are used to generate finite difference\n > approximations to the exact forces. For typical systems, a value in\n > the range of 1 part in 1e4 to 1e5 of the typical separation distance\n > between atoms in the liquid or solid state will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output forces will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output forces will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical force values should be largely\n > independent of delta. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cost of each energy evaluation is essentially the cost of an MD\n > timestep. Thus invoking this fix once for a 3d system has a cost\n > of 6N timesteps, where N is the total number of atoms in the system.\n > So this fix can be very expensive to use for large systems.\n > One expedient alternative is to define the fix for a group containing\n > only a few atoms. \n > \n\n----------\n\nThe *Nevery* argument specifies on what timesteps the force will\nbe used calculated by finite difference.\n\nThe *delta* argument specifies the size of the displacement each\natom will undergo.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html), which stores the components of\nthe force on each atom as calculated by finite difference. The\nper-atom values can only be accessed on timesteps that are multiples\nof *Nevery* since that is when the finite difference forces are\ncalculated. See the examples in *examples/numdiff* directory\nto see how this fix can be used to directly compare with\nthe analytic forces computed by LAMMPS.\n\nThe array values calculated by this compute\nwill be in force [units ](https://docs.lammps.org/units.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html), [fix numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html),\n" }, { "command": [ - "pair_style local/density" + "fix_modify AtC gradients" ], "syntax": [ - "pair_style style arg" + "fix_modify gradients " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "", "type": 2, "choices": [] }, { - "arg": "arg", + "arg": "gradients", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "add", + "delete" + ] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* style = local/density\n* arg = name of file containing tabulated values of local density and the potential \n", - "examples": "\n```lmps\npair_style local/density benzene_water.localdensity.table\n\npair_style hybrid/overlay table spline 500 local/density\npair_coeff * * local/density benzene_water.localdensity.table\n```\n", - "html_filename": "pair_local_density.html", - "short_description": "The local density (LD) potential is a mean-field manybody potential,\nand, in some way, a generalization of embedded atom models (EAM)", - "description": "The local density (LD) potential is a mean-field manybody potential,\nand, in some way, a generalization of embedded atom models (EAM). The\nname \"local density potential\" arises from the fact that it assigns an\nenergy to an atom depending on the number of neighboring atoms of a\ngiven type around it within a predefined spherical volume (i.e., within\nthe cutoff). The bottom-up coarse-graining (CG) literature suggests\nthat such potentials can be widely useful in capturing effective\nmultibody forces in a computationally efficient manner and thus improve\nthe quality of CG models of implicit solvation **Sanyal1** and phase-segregation in liquid mixtures **Sanyal2**, and provide guidelines to determine the extent of manybody\ncorrelations present in a CG model **Rosenberger**.\nThe LD potential in LAMMPS is primarily intended to be used as a\ncorrective potential over traditional pair potentials in bottom-up CG\nmodels via [hybrid/overlay pair style ](https://docs.lammps.org/pair_hybrid.html) with other\nexplicit pair interaction terms (e.g., tabulated, Lennard-Jones, Morse\netc.). Because the LD potential is not a pair potential per se, it is\nimplemented simply as a single auxiliary file with all specifications\nthat will be read upon initialization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Thus when used as the only interaction in the system, there is no\n > corresponding pair_coeff command and when used with other pair styles using the\n > hybrid/overlay option, the corresponding pair_coeff command must be supplied\n > \\* \\* as placeholders for the atom types. \n > \n\n----------\n\n**System with a single CG atom type:**\n\nA system of a single atom type (e.g., LJ argon) with a single local density (LD)\npotential would have an energy given by:\n\\[\n U_{LD} = \\sum_i F(\\rho_i)\\]\nwhere \\(\\rho_i\\) is the LD at atom *i* and \\(F(\\rho)\\) is\nsimilar in spirit to the embedding function used in EAM potentials. The\nLD at atom *i* is given by the sum\n\\[\n \\rho_i = \\sum_{j \\neq i} \\varphi(r_{ij})\\]\nwhere \\(\\varphi\\) is an indicator function that is one at r=0 and\nzero beyond a cutoff distance R2. The choice of the functional form of\n\\(\\varphi\\) is somewhat arbitrary, but the following piecewise cubic\nfunction has proven sufficiently general: **Sanyal1**,\n**Sanyal2** **Rosenberger**\n\\[\\begin{align*} \n \\varphi(r) =\n \\begin{cases}\n 1 & r \\le R_1 \\\\\n c_0 + c_2r^2 + c_4r^4 + c_6r^6 & r \\in (R_1, R_2) \\\\\n 0 & r \\ge R_2\n \\end{cases} \\end{align*} \\]\nThe constants *c* are chosen so that the indicator function smoothly\ninterpolates between 1 and 0 between the distances R1 and R2, which are\ncalled the inner and outer cutoffs, respectively. Thus phi satisfies\nphi(R1) = 1, phi(R2) = dphi/dr @ (r=R1) = dphi/dr @ (r=R2) = 0. The embedding\nfunction F(rho) may or may not have a closed-form expression. To maintain\ngenerality, it is practically represented with a spline-interpolated table\nover a predetermined range of rho. Outside of that range it simply adopts zero\nvalues at the endpoints.\n\nIt can be shown that the total force between two atoms due to the LD potential\ntakes the form of a pair force, which motivates its designation as a LAMMPS\npair style. Please see **Sanyal1** for details of the derivation.\n\n----------\n\n**Systems with arbitrary numbers of atom types:**\n\nThe potential is easily generalized to systems involving multiple atom types:\n\\[\n U_{LD} = \\sum_i a_\\alpha F(\\rho_i)\\]\nwith the LD expressed as\n\\[\n \\rho_i = \\sum_{j \\neq i} b_\\beta \\varphi(r_{ij})\\]\nwhere \\(\\alpha\\) gives the type of atom *i*, \\(\\beta\\) the\ntype of atom *j*, and the coefficients *a* and *b* filter for atom\ntypes as specified by the user. *a* is called the central atom filter as\nit determines to which atoms the potential applies; \\(a_{\\alpha} =\n1\\) if the LD potential applies to atom type \\(\\alpha\\) else zero. On the\nother hand, *b* is called the neighbor atom filter because it specifies\nwhich atom types to use in the calculation of the LD; \\(b_{\\beta} =\n1\\) if atom type \\(\\beta\\) contributes to the LD and zero otherwise.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that the potentials need not be symmetric with respect to atom\n > types, which is the reason for two distinct sets of coefficients *a*\n > and *b* . An atom type may contribute to the LD but not the\n > potential, or to the potential but not the LD. Such decisions are\n > made by the user and should (ideally) be motivated on physical\n > grounds for the problem at hand. \n > \n\n----------\n\n**General form for implementation in LAMMPS:**\n\nOf course, a system with many atom types may have many different possible LD\npotentials, each with their own atom type filters, cutoffs, and embedding\nfunctions. The most general form of this potential as implemented in the\npair_style local/density is:\n\\[\n U_{LD} = \\sum_k U_{LD}^{(k)} = \\sum_i \\left[ \\sum_k a_\\alpha^{(k)} F^{(k)} \\left(\\rho_i^{(k)}\\right) \\right]\\]\nwhere, *k* is an index that spans the (arbitrary) number of applied LD\npotentials N_LD. Each LD is calculated as before with:\n\\[\n \\rho_i^{(k)} = \\sum_j b_\\beta^{(k)} \\varphi^{(k)} (r_{ij})\\]\nThe superscript on the indicator function phi simply indicates that it is\nassociated with specific values of the cutoff distances R1(k) and R2(k). In\nsummary, there may be N_LD distinct LD potentials. With each potential type (k),\none must specify:\n\n* the inner and outer cutoffs as R1 and R2\n* the central type filter a(k), where k = 1,2,...N_LD\n* the neighbor type filter b(k), where k = 1,2,...N_LD\n* the LD potential function F(k)(rho), typically as a table that is later spline-interpolated\n\n----------\n\n**Tabulated input file format:**\n\n```\nLine 1: comment or blank (ignored)\nLine 2: comment or blank (ignored)\nLine 3: N_LD N_rho (# of LD potentials and # of tabulated values, single space separated)\nLine 4: blank (ignored)\nLine 5: R1(k) R2(k) (lower and upper cutoffs, single space separated)\nLine 6: central-types (central atom types, single space separated)\nLine 7: neighbor-types (neighbor atom types single space separated)\nLine 8: rho_min rho_max drho (min, max and diff. in tabulated rho values, single space separated)\nLine 9: F(k)(rho_min + 0.drho)\nLine 10: F(k)(rho_min + 1.drho)\nLine 11: F(k)(rho_min + 2.drho)\n...\nLine 9+N_rho: F(k)(rho_min + N_rho . drho)\nLine 10+N_rho: blank (ignored)\n\nBlock 2\n\nBlock 3\n\nBlock N_LD\n```\nLines 5 to 9+N_rho constitute the first block. Thus the input file is separated\n(by blank lines) into N_LD blocks each representing a separate LD potential and\neach specifying its own upper and lower cutoffs, central and neighbor atoms,\nand potential. In general, blank lines anywhere are ignored.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\nThis pair style does not support automatic mixing. For atom type pairs\n\\(\\alpha\\), \\(\\beta\\) and \\(\\alpha\\) != \\(\\beta\\), even\nif LD potentials of type (\\(\\alpha\\), \\(\\alpha\\)) and\n(\\(\\beta\\), \\(\\beta\\)) are provided, you will need to explicitly\nprovide LD potential types (\\(\\alpha\\), \\(\\beta\\)) and\n(\\(\\beta\\), \\(\\alpha\\)) if need be (Here, the notation\n(\\(\\alpha\\), \\(\\beta\\)) means that \\(\\alpha\\) is the central\natom to which the LD potential is applied and \\(\\beta\\) is the\nneighbor atom which contributes to the LD potential on \\(\\alpha\\)).\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe local/density pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\n----------\n\n \n \n**(Sanyal2)** Sanyal and Shell, Journal of Chemical Physics, 2016, 145 (3), 034109. \n \n**(Rosenberger)** Rosenberger, Sanyal, Shell and van der Vegt, Journal of Chemical Physics, 2019, 151 (4), 044111. \n \n \n \n**(Sanyal2)** Sanyal and Shell, Journal of Chemical Physics, 2016, 145 (3), 034109. \n ", - "restrictions": "The local/density pair style is a part of the MANYBODY package. It is\nonly enabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* gradients = name of the AtC sub-command\n* add or delete = select whether to add or delete calculation of gradients for the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by [Eshelby]_\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", + "examples": "\n```lmps\nfix_modify AtC gradients add temperature velocity stress\nfix_modify AtC gradients delete velocity\n```\n", + "html_filename": "atc_hardy_gradients.html", + "short_description": "Requests calculation and output of gradients of the fields from the AtC\ntransfer class", + "description": "Requests calculation and output of gradients of the fields from the AtC\ntransfer class. These gradients will be with regard to spatial or\nmaterial coordinate for Eulerian or Lagrangian analysis, respectively,\nas specified by [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n" }, { "command": [ - "fix deform", - "fix deform/kk" + "fix deform" ], "syntax": [ - "fix ID group-ID deform N parameter style args ... keyword value ..." + "fix ID group-ID fix_style N parameter style args ... keyword value ..." ], "args": [ [ @@ -13037,11 +12104,11 @@ export const command_docs = [ "choices": [] }, { - "arg": "deform", + "arg": "deform/pressure", "type": 3, "choices": [ "deform", - "deform/kk" + "deform/pressure" ] }, { @@ -13084,21 +12151,21 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* N = perform box deformation every this many timesteps\n* one or more parameter/args sequences may be appended \n *      parameter = x or y or z or xy or xz or yz \n       x, y, z args = style value(s) \n       style = final or delta or scale or vel or erate or trate or volume or wiggle or variable or pressure or pressure/mean \n       final values = lo hi \n       lo hi = box boundaries at end of run (distance units) \n       delta values = dlo dhi \n       dlo dhi = change in box boundaries at end of run (distance units) \n       scale values = factor \n       factor = multiplicative factor for change in box length at end of run \n       vel value = V \n       V = change box length at this velocity (distance/time units), \n       effectively an engineering strain rate \n       erate value = R \n       R = engineering strain rate (1/time units) \n       trate value = R \n       R = true strain rate (1/time units) \n       volume value = none = adjust this dim to preserve volume of system \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for box length change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n       xy, xz, yz args = style value \n       style = final or delta or vel or erate or trate or wiggle or variable \n       final value = tilt \n       tilt = tilt factor at end of run (distance units) \n       delta value = dtilt \n       dtilt = change in tilt factor at end of run (distance units) \n       vel value = V \n       V = change tilt factor at this velocity (distance/time units), \n       effectively an engineering shear strain rate \n       erate value = R \n       R = engineering shear strain rate (1/time units) \n       trate value = R \n       R = true shear strain rate (1/time units) \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for tilt change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n* zero or more keyword/value pairs may be appended\n* keyword = remap or flip or units or couple or vol/balance/p or max/rate or normalize/pressure \n *        remap value = x or v or none \n         x = remap coords of atoms in group into deforming box \n         v = remap velocities of atoms in group when they cross periodic boundaries \n         none = no remapping of x or v \n *        flip value = yes or no \n         allow or disallow box flips when it becomes highly skewed \n *        units value = lattice or box \n         lattice = distances are defined in lattice units \n         box = distances are defined in simulation box units \n", - "examples": "\n```lmps\nfix 1 all deform 1 x final 0.0 9.0 z final 0.0 5.0 units box\nfix 1 all deform 1 x trate 0.1 y volume z volume\nfix 1 all deform 1 xy erate 0.001 remap v\nfix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0\n```\n", + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* fix_style = deform or deform/pressure\n* N = perform box deformation every this many timesteps\n* one or more parameter/style/args sequences of arguments may be appended \n *      parameter = x or y or z or xy or xz or yz \n       x, y, z args = style value(s) \n       style = final or delta or scale or vel or erate or trate or volume or wiggle or variable or pressure or pressure/mean \n       final values = lo hi \n       lo hi = box boundaries at end of run (distance units) \n       delta values = dlo dhi \n       dlo dhi = change in box boundaries at end of run (distance units) \n       scale values = factor \n       factor = multiplicative factor for change in box length at end of run \n       vel value = V \n       V = change box length at this velocity (distance/time units), \n       effectively an engineering strain rate \n       erate value = R \n       R = engineering strain rate (1/time units) \n       trate value = R \n       R = true strain rate (1/time units) \n       volume value = none = adjust this dim to preserve volume of system \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for box length change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n       pressure values = target gain (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       pressure/mean values = target gain (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       xy, xz, yz args = style value \n       style = final or delta or vel or erate or trate or wiggle or variable \n       final value = tilt \n       tilt = tilt factor at end of run (distance units) \n       delta value = dtilt \n       dtilt = change in tilt factor at end of run (distance units) \n       vel value = V \n       V = change tilt factor at this velocity (distance/time units), \n       effectively an engineering shear strain rate \n       erate value = R \n       R = engineering shear strain rate (1/time units) \n       erate/rescale value = R (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n       R = engineering shear strain rate (1/time units) \n       trate value = R \n       R = true shear strain rate (1/time units) \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for tilt change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n       pressure values = target gain (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n* zero or more keyword/value pairs may be appended\n* keyword = remap or flip or units or couple or vol/balance/p or max/rate or normalize/pressure \n *        remap value = x or v or none \n         x = remap coords of atoms in group into deforming box \n         v = remap velocities of atoms in group when they cross periodic boundaries \n         none = no remapping of x or v \n *        flip value = yes or no \n         allow or disallow box flips when it becomes highly skewed \n *        units value = lattice or box \n         lattice = distances are defined in lattice units \n         box = distances are defined in simulation box units \n *        couple value = none or xyz or xy or yz or xz (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n         couple pressure values of various dimensions \n *        vol/balance/p value = yes or no (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n         Modifies the behavior of the volume option to try and balance pressures \n *        max/rate value = rate (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n         rate = maximum strain rate for pressure control \n *        normalize/pressure value = yes or no (ONLY available in [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command) \n         Modifies pressure controls such that the deviation in pressure is normalized by the target pressure \n", + "examples": "\n```lmps\nfix 1 all deform 1 x final 0.0 9.0 z final 0.0 5.0 units box\nfix 1 all deform 1 x trate 0.1 y volume z volume\nfix 1 all deform 1 xy erate 0.001 remap v\nfix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0\n```\nSee examples for [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) on its doc page\n", "html_filename": "fix_deform.html", "short_description": "Change the volume and/or shape of the simulation box during a dynamics\nrun", - "description": "Change the volume and/or shape of the simulation box during a dynamics\nrun. Orthogonal simulation boxes have 3 adjustable parameters\n(x,y,z). Triclinic (non-orthogonal) simulation boxes have 6\nadjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be\nadjusted independently and simultaneously.\n\nThe [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command extends\nthis command with additional keywords and arguments. The rest of this\npage explains the options common to both commands. The [fixdeform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) page explains the options\navailable ONLY with the fix deform/pressure command. Note that a\nsimulation can define only a single deformation command: fix deform or\nfix deform/pressure.\n\nBoth these fixes can be used to perform non-equilibrium MD (NEMD)\nsimulations of a continuously strained system. See the [fixnvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) and [compute temp/deform](https://docs.lammps.org/compute_temp_deform.html) commands for more details. Note that\nsimulation of a continuously extended system (extensional flow) can be\nmodeled using the :ref:`UEF package ` and its [fixcommands ](https://docs.lammps.org/fix_nh_uef.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Inconsistent trajectories due to image flags \n >:class: warning\n >\n > When running long simulations while shearing the box or using a high\n > shearing rate, it is possible that the image flags used for storing\n > unwrapped atom positions will \"wrap around\". When LAMMPS is compiled\n > with the default settings, case image flags are limited to a range of\n > \\(-512 \\le i \\le 511\\), which will overflow when atoms starting\n > at zero image flag value have passed through a periodic box dimension\n > more than 512 times.\n >\n > Changing the :ref:`size of LAMMPS integer types ` to the\n > \"bigbig\" setting can make this overflow much less likely, since it\n > increases the image flag value range to \\(- 1,048,576 \\le i \\le\n > 1\\,048\\,575\\) \n > \n\n----------\n\nFor the *x*, *y*, *z* parameters, the associated dimension cannot be\nshrink-wrapped. For the *xy*, *yz*, *xz* parameters, the associated\nsecond dimension cannot be shrink-wrapped. Dimensions not varied by\nthis command can be periodic or non-periodic. Dimensions\ncorresponding to unspecified parameters can also be controlled by a\n[fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThe size and shape of the simulation box at the beginning of the\nsimulation run were either specified by the [create_box](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or [read_restart](https://docs.lammps.org/read_restart.html) command used to setup the simulation initially if it\nis the first run, or they are the values from the end of the previous\nrun. The [create_box ](https://docs.lammps.org/create_box.html), [read data](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands specify\nwhether the simulation box is orthogonal or non-orthogonal (triclinic)\nand explain the meaning of the xy,xz,yz tilt factors. If fix deform\nchanges the xy,xz,yz tilt factors, then the simulation box must be\ntriclinic, even if its initial tilt factors are 0.0.\n\nAs described below, the desired simulation box size and shape at the\nend of the run are determined by the parameters of the fix deform\ncommand. Every Nth timestep during the run, the simulation box is\nexpanded, contracted, or tilted to ramped values between the initial\nand final values.\n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of their\nstyles and values.\n\nThe *final*, *delta*, *scale*, *vel*, and *erate* styles all change\nthe specified dimension of the box via \"constant displacement\" which\nis effectively a \"constant engineering strain rate\". This means the\nbox dimension changes linearly with time from its initial to final\nvalue.\n\nFor style *final*, the final lo and hi box boundaries of a dimension\nare specified. The values can be in lattice or box distance units.\nSee the discussion of the units keyword below.\n\nFor style *delta*, plus or minus changes in the lo/hi box boundaries\nof a dimension are specified. The values can be in lattice or box\ndistance units. See the discussion of the units keyword below.\n\nFor style *scale*, a multiplicative factor to apply to the box length\nof a dimension is specified. For example, if the initial box length\nis 10, and the factor is 1.1, then the final box length will be 11. A\nfactor less than 1.0 means compression.\n\nFor style *vel*, a velocity at which the box length changes is\nspecified in units of distance/time. This is effectively a \"constant\nengineering strain rate\", where rate = V/L0 and L0 is the initial box\nlength. The distance can be in lattice or box distance units. See\nthe discussion of the units keyword below. For example, if the\ninitial box length is 100 Angstroms, and V is 10 Angstroms/ps, then\nafter 10 ps, the box length will have doubled. After 20 ps, it\nwill have tripled.\n\nThe *erate* style changes a dimension of the box at a \"constant\nengineering strain rate\". The units of the specified strain rate are\n1/time. See the [units ](https://docs.lammps.org/units.html) command for the time units\nassociated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Tensile strain is unitless and\nis defined as delta/L0, where L0 is the original box length and delta\nis the change relative to the original length. The box length L as a\nfunction of time will change as\n\n```\nL(t) = L0 (1 + erate\\*dt)\n```\nwhere dt is the elapsed time (in time units). Thus if *erate* R is\nspecified as 0.1 and time units are picoseconds, this means the box\nlength will increase by 10% of its original length every picosecond.\nI.e. strain after 1 ps = 0.1, strain after 2 ps = 0.2, etc. R =\n-0.01 means the box length will shrink by 1% of its original length\nevery picosecond. Note that for an \"engineering\" rate the change is\nbased on the original box length, so running with R = 1 for 10\npicoseconds expands the box length by a factor of 11 (strain of 10),\nwhich is different that what the *trate* style would induce.\n\nThe *trate* style changes a dimension of the box at a \"constant true\nstrain rate\". Note that this is not an \"engineering strain rate\", as\nthe other styles are. Rather, for a \"true\" rate, the rate of change\nis constant, which means the box dimension changes non-linearly with\ntime from its initial to final value. The units of the specified\nstrain rate are 1/time. See the [units ](https://docs.lammps.org/units.html) command for the\ntime units associated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Tensile strain is unitless and\nis defined as delta/L0, where L0 is the original box length and delta\nis the change relative to the original length.\n\nThe box length L as a function of time will change as\n\n```\nL(t) = L0 exp(trate\\*dt)\n```\nwhere dt is the elapsed time (in time units). Thus if *trate* R is\nspecified as ln(1.1) and time units are picoseconds, this means the\nbox length will increase by 10% of its current (not original) length\nevery picosecond. I.e. strain after 1 ps = 0.1, strain after 2 ps\n= 0.21, etc. R = ln(2) or ln(3) means the box length will double or\ntriple every picosecond. R = ln(0.99) means the box length will\nshrink by 1% of its current length every picosecond. Note that for a\n\"true\" rate the change is continuous and based on the current length,\nso running with R = ln(2) for 10 picoseconds does not expand the box\nlength by a factor of 11 as it would with *erate*, but by a factor of\n1024 since the box length will double every picosecond.\n\nNote that to change the volume (or cross-sectional area) of the\nsimulation box at a constant rate, you can change multiple dimensions\nvia *erate* or *trate* . E.g. to double the box volume in a picosecond\npicosecond, you could set \"x erate M\", \"y erate M\", \"z erate M\", with\nM = pow(2,1/3) - 1 = 0.26, since if each box dimension grows by 26%,\nthe box volume doubles. Or you could set \"x trate M\", \"y trate M\", \"z\ntrate M\", with M = ln(1.26) = 0.231, and the box volume would double\nevery picosecond.\n\nThe *volume* style changes the specified dimension in such a way that\nthe box volume remains constant while other box dimensions are changed\nexplicitly via the styles discussed above. For example, \"x scale 1.1\ny scale 1.1 z volume\" will shrink the z box length as the x,y box\nlengths increase, to keep the volume constant (product of x,y,z\nlengths). If \"x scale 1.1 z volume\" is specified and parameter *y* is\nunspecified, then the z box length will shrink as x increases to keep\nthe product of x,z lengths constant. If \"x scale 1.1 y volume z\nvolume\" is specified, then both the y,z box lengths will shrink as x\nincreases to keep the volume constant (product of x,y,z lengths). In\nthis case, the y,z box lengths shrink so as to keep their relative\naspect ratio constant.\n\nFor solids or liquids, note that when one dimension of the box is\nexpanded via fix deform (i.e. tensile strain), it may be physically\nundesirable to hold the other 2 box lengths constant (unspecified by\nfix deform) since that implies a density change. Using the *volume*\nstyle for those 2 dimensions to keep the box volume constant may make\nmore physical sense, but may also not be correct for materials and\npotentials whose Poisson ratio is not 0.5. An alternative is to use\n[fix npt aniso ](https://docs.lammps.org/fix_nh.html) with zero applied pressure on those 2\ndimensions, so that they respond to the tensile strain dynamically.\n\nThe *wiggle* style oscillates the specified box length dimension\nsinusoidally with the specified amplitude and period. I.e. the box\nlength L as a function of time is given by\n\n```\nL(t) = L0 + A sin(2\\*pi t/Tp)\n```\nwhere L0 is its initial length. If the amplitude A is a positive\nnumber the box initially expands, then contracts, etc. If A is\nnegative then the box initially contracts, then expands, etc. The\namplitude can be in lattice or box distance units. See the discussion\nof the units keyword below.\n\nThe *variable* style changes the specified box length dimension by\nevaluating a variable, which presumably is a function of time. The\nvariable with *name1* must be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate a change in box length in units of\ndistance. Note that this distance is in box units, not lattice units;\nsee the discussion of the *units* keyword below. The formula\nassociated with variable *name1* can reference the current timestep.\nNote that it should return the \"change\" in box length, not the\nabsolute box length. This means it should evaluate to 0.0 when\ninvoked on the initial timestep of the run following the definition of\nfix deform. It should evaluate to a value > 0.0 to dilate the box at\nfuture times, or a value < 0.0 to compress the box.\n\nThe variable *name2* must also be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate the rate of box length change, in\nunits of distance/time, i.e. the time-derivative of the *name1*\nvariable. This quantity is used internally by LAMMPS to reset atom\nvelocities when they cross periodic boundaries. It is computed\ninternally for the other styles, but you must provide it when using an\narbitrary variable.\n\nHere is an example of using the *variable* style to perform the same\nbox deformation as the *wiggle* style formula listed above, where we\nassume that the current timestep = 0.\n\n```lmps\nvariable A equal 5.0\nvariable Tp equal 10.0\nvariable displace equal \"v_A * sin(2*PI * step*dt/v_Tp)\"\nvariable rate equal \"2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)\"\nfix 2 all deform 1 x variable v_displace v_rate remap v\n```\nFor the *scale*, *vel*, *erate*, *trate*, *volume*, *wiggle*, and\n*variable* styles, the box length is expanded or compressed around its\nmid point.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of their\nstyles and values. Note that changing the tilt factors of a triclinic\nbox does not change its volume.\n\nThe *final*, *delta*, *vel*, and *erate* styles all change the shear\nstrain at a \"constant engineering shear strain rate\". This means the\ntilt factor changes linearly with time from its initial to final\nvalue.\n\nFor style *final*, the final tilt factor is specified. The value\ncan be in lattice or box distance units. See the discussion of the\nunits keyword below.\n\nFor style *delta*, a plus or minus change in the tilt factor is\nspecified. The value can be in lattice or box distance units. See\nthe discussion of the units keyword below.\n\nFor style *vel*, a velocity at which the tilt factor changes is\nspecified in units of distance/time. This is effectively an\n\"engineering shear strain rate\", where rate = V/L0 and L0 is the\ninitial box length perpendicular to the direction of shear. The\ndistance can be in lattice or box distance units. See the discussion\nof the units keyword below. For example, if the initial tilt factor\nis 5 Angstroms, and the V is 10 Angstroms/ps, then after 1 ps, the\ntilt factor will be 15 Angstroms. After 2 ps, it will be 25\nAngstroms.\n\nThe *erate* style changes a tilt factor at a \"constant engineering\nshear strain rate\". The units of the specified shear strain rate are\n1/time. See the [units ](https://docs.lammps.org/units.html) command for the time units\nassociated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Shear strain is unitless and is\ndefined as offset/length, where length is the box length perpendicular\nto the shear direction (e.g. y box length for xy deformation) and\noffset is the displacement distance in the shear direction (e.g. x\ndirection for xy deformation) from the unstrained orientation.\n\nThe tilt factor T as a function of time will change as\n\n```\nT(t) = T0 + L0\\*erate\\*dt\n```\nwhere T0 is the initial tilt factor, L0 is the original length of the\nbox perpendicular to the shear direction (e.g. y box length for xy\ndeformation), and dt is the elapsed time (in time units). Thus if\n*erate* R is specified as 0.1 and time units are picoseconds, this\nmeans the shear strain will increase by 0.1 every picosecond. I.e. if\nthe xy shear strain was initially 0.0, then strain after 1 ps = 0.1,\nstrain after 2 ps = 0.2, etc. Thus the tilt factor would be 0.0 at\ntime 0, 0.1\\*ybox at 1 ps, 0.2\\*ybox at 2 ps, etc, where ybox is the\noriginal y box length. R = 1 or 2 means the tilt factor will increase\nby 1 or 2 every picosecond. R = -0.01 means a decrease in shear\nstrain by 0.01 every picosecond.\n\nThe *trate* style changes a tilt factor at a \"constant true shear\nstrain rate\". Note that this is not an \"engineering shear strain\nrate\", as the other styles are. Rather, for a \"true\" rate, the rate\nof change is constant, which means the tilt factor changes\nnon-linearly with time from its initial to final value. The units of\nthe specified shear strain rate are 1/time. See the\n[units ](https://docs.lammps.org/units.html) command for the time units associated with\ndifferent choices of simulation units, e.g. picoseconds for \"metal\"\nunits). Shear strain is unitless and is defined as offset/length,\nwhere length is the box length perpendicular to the shear direction\n(e.g. y box length for xy deformation) and offset is the displacement\ndistance in the shear direction (e.g. x direction for xy deformation)\nfrom the unstrained orientation.\n\nThe tilt factor T as a function of time will change as\n\n```\nT(t) = T0 exp(trate\\*dt)\n```\nwhere T0 is the initial tilt factor and dt is the elapsed time (in\ntime units). Thus if *trate* R is specified as ln(1.1) and time units\nare picoseconds, this means the shear strain or tilt factor will\nincrease by 10% every picosecond. I.e. if the xy shear strain was\ninitially 0.1, then strain after 1 ps = 0.11, strain after 2 ps =\n0.121, etc. R = ln(2) or ln(3) means the tilt factor will double or\ntriple every picosecond. R = ln(0.99) means the tilt factor will\nshrink by 1% every picosecond. Note that the change is continuous, so\nrunning with R = ln(2) for 10 picoseconds does not change the tilt\nfactor by a factor of 10, but by a factor of 1024 since it doubles\nevery picosecond. Note that the initial tilt factor must be non-zero\nto use the *trate* option.\n\nNote that shear strain is defined as the tilt factor divided by the\nperpendicular box length. The *erate* and *trate* styles control the\ntilt factor, but assume the perpendicular box length remains constant.\nIf this is not the case (e.g. it changes due to another fix deform\nparameter), then this effect on the shear strain is ignored.\n\nThe *wiggle* style oscillates the specified tilt factor sinusoidally\nwith the specified amplitude and period. I.e. the tilt factor T as a\nfunction of time is given by\n\n```\nT(t) = T0 + A sin(2\\*pi t/Tp)\n```\nwhere T0 is its initial value. If the amplitude A is a positive\nnumber the tilt factor initially becomes more positive, then more\nnegative, etc. If A is negative then the tilt factor initially\nbecomes more negative, then more positive, etc. The amplitude can be\nin lattice or box distance units. See the discussion of the units\nkeyword below.\n\nThe *variable* style changes the specified tilt factor by evaluating a\nvariable, which presumably is a function of time. The variable with\n*name1* must be an [equal-style variable ](https://docs.lammps.org/variable.html) and should\ncalculate a change in tilt in units of distance. Note that this\ndistance is in box units, not lattice units; see the discussion of the\n*units* keyword below. The formula associated with variable *name1*\ncan reference the current timestep. Note that it should return the\n\"change\" in tilt factor, not the absolute tilt factor. This means it\nshould evaluate to 0.0 when invoked on the initial timestep of the run\nfollowing the definition of fix deform.\n\nThe variable *name2* must also be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate the rate of tilt change, in units of\ndistance/time, i.e. the time-derivative of the *name1* variable. This\nquantity is used internally by LAMMPS to reset atom velocities when\nthey cross periodic boundaries. It is computed internally for the\nother styles, but you must provide it when using an arbitrary\nvariable.\n\nHere is an example of using the *variable* style to perform the same\nbox deformation as the *wiggle* style formula listed above, where we\nassume that the current timestep = 0.\n\n```lmps\nvariable A equal 5.0\nvariable Tp equal 10.0\nvariable displace equal \"v_A * sin(2*PI * step*dt/v_Tp)\"\nvariable rate equal \"2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)\"\nfix 2 all deform 1 xy variable v_displace v_rate remap v\n```\n----------\n\nAll of the tilt styles change the xy, xz, yz tilt factors during a\nsimulation. In LAMMPS, tilt factors (xy,xz,yz) for triclinic boxes\nare normally bounded by half the distance of the parallel box length.\nSee the discussion of the *flip* keyword below, to allow this bound to\nbe exceeded, if desired.\n\nFor example, if xlo = 2 and xhi = 12, then the x box length is 10 and\nthe xy tilt factor must be between -5 and 5. Similarly, both xz and\nyz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is\nnot a limitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt = ..., -15, -5, 5, 15, 25,\n... are all equivalent.\n\nTo obey this constraint and allow for large shear deformations to be\napplied via the *xy*, *xz*, or *yz* parameters, the following\nalgorithm is used. If *prd* is the associated parallel box length (10\nin the example above), then if the tilt factor exceeds the accepted\nrange of -5 to 5 during the simulation, then the box is flipped to the\nother limit (an equivalent box) and the simulation continues. Thus\nfor this example, if the initial xy tilt factor was 0.0 and \"xy final\n100.0\" was specified, then during the simulation the xy tilt factor\nwould increase from 0.0 to 5.0, the box would be flipped so that the\ntilt factor becomes -5.0, the tilt factor would increase from -5.0 to\n5.0, the box would be flipped again, etc. The flip occurs 10 times\nand the final tilt factor at the end of the simulation would be 0.0.\nDuring each flip event, atoms are remapped into the new box in the\nappropriate manner.\n\nThe one exception to this rule is if the first dimension in the tilt\nfactor (x for xy) is non-periodic. In that case, the limits on the\ntilt factor are not enforced, since flipping the box in that dimension\ndoes not change the atom positions due to non-periodicity. In this\nmode, if you tilt the system to extreme angles, the simulation will\nsimply become inefficient due to the highly skewed simulation box.\n\n----------\n\nEach time the box size or shape is changed, the *remap* keyword\ndetermines whether atom positions are remapped to the new box. If\n*remap* is set to *x* (the default), atoms in the fix group are\nremapped; otherwise they are not. Note that their velocities are not\nchanged, just their positions are altered. If *remap* is set to *v*,\nthen any atom in the fix group that crosses a periodic boundary will\nhave a delta added to its velocity equal to the difference in\nvelocities between the lo and hi boundaries. Note that this velocity\ndifference can include tilt components, e.g. a delta in the x velocity\nwhen an atom crosses the y periodic boundary. If *remap* is set to\n*none*, then neither of these remappings take place.\n\nConceptually, setting *remap* to *x* forces the atoms to deform via an\naffine transformation that exactly matches the box deformation. This\nsetting is typically appropriate for solids. Note that though the\natoms are effectively \"moving\" with the box over time, it is not due\nto their having a velocity that tracks the box change, but only due to\nthe remapping. By contrast, setting *remap* to *v* is typically\nappropriate for fluids, where you want the atoms to respond to the\nchange in box size/shape on their own and acquire a velocity that\nmatches the box change, so that their motion will naturally track the\nbox without explicit remapping of their coordinates.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When non-equilibrium MD (NEMD) simulations are performed using\n > this fix, the option \"remap v\" should normally be used. This is\n > because [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) adjusts the atom positions\n > and velocities to induce a velocity profile that matches the changing\n > box size/shape. Thus atom coordinates should NOT be remapped by fix\n > deform, but velocities SHOULD be when atoms cross periodic boundaries,\n > since that is consistent with maintaining the velocity profile already\n > created by fix nvt/sllod. LAMMPS will warn you if the *remap* setting\n > is not consistent with fix nvt/sllod. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For non-equilibrium MD (NEMD) simulations using \"remap v\" it is\n > usually desirable that the fluid (or flowing material,\n > e.g. granular particles) stream with a velocity profile consistent\n > with the deforming box. As mentioned above, using a thermostat\n > such as [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) or [fix lavgevin > ](https://docs.lammps.org/fix_langevin.html) (with a bias provided by [compute temp/deform > ](https://docs.lammps.org/compute_temp_deform.html)), will typically accomplish that. If you do\n > not use a thermostat, then there is no driving force pushing the\n > atoms to flow in a manner consistent with the deforming box.\n > E.g. for a shearing system the box deformation velocity may vary\n > from 0 at the bottom to 10 at the top of the box. But the stream\n > velocity profile of the atoms may vary from -5 at the bottom to +5\n > at the top. You can monitor these effects using the [fix > ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [compute temp/deform > ](https://docs.lammps.org/compute_temp_deform.html), and [compute temp/profile > ](https://docs.lammps.org/compute_temp_profile.html) commands. One way to induce atoms to\n > stream consistent with the box deformation is to give them an\n > initial velocity profile, via the [velocity ramp ](https://docs.lammps.org/velocity.html)\n > command, that matches the box deformation rate. This also\n > typically helps the system come to equilibrium more quickly, even\n > if a thermostat is used. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a [fix rigid ](https://docs.lammps.org/fix_rigid.html) is defined for rigid bodies, and\n > *remap* is set to *x*, then the center-of-mass coordinates of rigid\n > bodies will be remapped to the changing simulation box. This will\n > be done regardless of whether atoms in the rigid bodies are in the\n > fix deform group or not. The velocity of the centers of mass are\n > not remapped even if *remap* is set to *v*, since [fix > nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) does not currently do anything special\n > for rigid particles. If you wish to perform a NEMD simulation of\n > rigid particles, you can either thermostat them independently or\n > include a background fluid and thermostat the fluid via [fix > nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html). \n > \n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nabove. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\nyou apply large deformations, this means the box shape can tilt\ndramatically LAMMPS will run less efficiently, due to the large volume\nof communication needed to acquire ghost atoms around a processor's\nirregular-shaped subdomain. For extreme values of tilt, LAMMPS may\nalso lose atoms and generate an error.\n\nThe *units* keyword determines the meaning of the distance units used\nto define various arguments. A *box* value selects standard distance\nunits as defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for\nunits = real or metal. A *lattice* value means the distance units are\nin lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Note that the\nunits choice also affects the *vel* style parameters since it is\ndefined in terms of distance/time. Also note that the units keyword\ndoes not affect the *variable* style. You should use the *xlat*,\n*ylat*, *zlat* keywords of the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand if you want to include lattice spacings in a variable formula.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix will restore the initial box settings from [binaryrestart files ](https://docs.lammps.org/restart.html), which allows the fix to be properly continue\ndeformation, when using the start/stop options of the [run ](https://docs.lammps.org/run.html)\ncommand. None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can perform deformation over multiple runs, using the *start*\nand *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "description": "Change the volume and/or shape of the simulation box during a dynamics\nrun. Orthogonal simulation boxes have 3 adjustable parameters\n(x,y,z). Triclinic (non-orthogonal) simulation boxes have 6\nadjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be\nadjusted independently and simultaneously.\n\nThe fix deform command allows use of all the arguments listed above,\nexcept those flagged as available ONLY for the [fixdeform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) command, which are\npressure-based controls. The fix deform/pressure command allows use\nof all the arguments listed above.\n\nThe rest of this doc page explains the options common to both\ncommands. The [fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) doc\npage explains the options available ONLY with the fix deform/pressure\ncommand. Note that a simulation can define only a single deformation\ncommand: fix deform or fix deform/pressure.\n\nBoth these fixes can be used to perform non-equilibrium MD (NEMD)\nsimulations of a continuously strained system. See the [fixnvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) and [compute temp/deform](https://docs.lammps.org/compute_temp_deform.html) commands for more details. Note that\nsimulation of a continuously extended system (extensional flow) can be\nmodeled using the :ref:`UEF package ` and its [fixcommands ](https://docs.lammps.org/fix_nh_uef.html).\n\nFor the *x*, *y*, *z* parameters, the associated dimension cannot be\nshrink-wrapped. For the *xy*, *yz*, *xz* parameters, the associated\nsecond dimension cannot be shrink-wrapped. Dimensions not varied by\nthis command can be periodic or non-periodic. Dimensions\ncorresponding to unspecified parameters can also be controlled by a\n[fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThe size and shape of the simulation box at the beginning of the\nsimulation run were either specified by the [create_box](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or [read_restart](https://docs.lammps.org/read_restart.html) command used to setup the simulation initially if it\nis the first run, or they are the values from the end of the previous\nrun. The [create_box ](https://docs.lammps.org/create_box.html), [read data](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands specify\nwhether the simulation box is orthogonal or non-orthogonal (triclinic)\nand explain the meaning of the xy,xz,yz tilt factors. If fix deform\nchanges the xy,xz,yz tilt factors, then the simulation box must be\ntriclinic, even if its initial tilt factors are 0.0.\n\nAs described below, the desired simulation box size and shape at the\nend of the run are determined by the parameters of the fix deform\ncommand. Every Nth timestep during the run, the simulation box is\nexpanded, contracted, or tilted to ramped values between the initial\nand final values.\n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of their\nstyles and values.\n\nThe *final*, *delta*, *scale*, *vel*, and *erate* styles all change\nthe specified dimension of the box via \"constant displacement\" which\nis effectively a \"constant engineering strain rate\". This means the\nbox dimension changes linearly with time from its initial to final\nvalue.\n\nFor style *final*, the final lo and hi box boundaries of a dimension\nare specified. The values can be in lattice or box distance units.\nSee the discussion of the units keyword below.\n\nFor style *delta*, plus or minus changes in the lo/hi box boundaries\nof a dimension are specified. The values can be in lattice or box\ndistance units. See the discussion of the units keyword below.\n\nFor style *scale*, a multiplicative factor to apply to the box length\nof a dimension is specified. For example, if the initial box length\nis 10, and the factor is 1.1, then the final box length will be 11. A\nfactor less than 1.0 means compression.\n\nFor style *vel*, a velocity at which the box length changes is\nspecified in units of distance/time. This is effectively a \"constant\nengineering strain rate\", where rate = V/L0 and L0 is the initial box\nlength. The distance can be in lattice or box distance units. See\nthe discussion of the units keyword below. For example, if the\ninitial box length is 100 Angstroms, and V is 10 Angstroms/ps, then\nafter 10 ps, the box length will have doubled. After 20 ps, it\nwill have tripled.\n\nThe *erate* style changes a dimension of the box at a \"constant\nengineering strain rate\". The units of the specified strain rate are\n1/time. See the [units ](https://docs.lammps.org/units.html) command for the time units\nassociated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Tensile strain is unitless and\nis defined as delta/L0, where L0 is the original box length and delta\nis the change relative to the original length. The box length L as a\nfunction of time will change as\n\n```\nL(t) = L0 (1 + erate\\*dt)\n```\nwhere dt is the elapsed time (in time units). Thus if *erate* R is\nspecified as 0.1 and time units are picoseconds, this means the box\nlength will increase by 10% of its original length every picosecond.\nI.e. strain after 1 ps = 0.1, strain after 2 ps = 0.2, etc. R =\n-0.01 means the box length will shrink by 1% of its original length\nevery picosecond. Note that for an \"engineering\" rate the change is\nbased on the original box length, so running with R = 1 for 10\npicoseconds expands the box length by a factor of 11 (strain of 10),\nwhich is different that what the *trate* style would induce.\n\nThe *trate* style changes a dimension of the box at a \"constant true\nstrain rate\". Note that this is not an \"engineering strain rate\", as\nthe other styles are. Rather, for a \"true\" rate, the rate of change\nis constant, which means the box dimension changes non-linearly with\ntime from its initial to final value. The units of the specified\nstrain rate are 1/time. See the [units ](https://docs.lammps.org/units.html) command for the\ntime units associated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Tensile strain is unitless and\nis defined as delta/L0, where L0 is the original box length and delta\nis the change relative to the original length.\n\nThe box length L as a function of time will change as\n\n```\nL(t) = L0 exp(trate\\*dt)\n```\nwhere dt is the elapsed time (in time units). Thus if *trate* R is\nspecified as ln(1.1) and time units are picoseconds, this means the\nbox length will increase by 10% of its current (not original) length\nevery picosecond. I.e. strain after 1 ps = 0.1, strain after 2 ps\n= 0.21, etc. R = ln(2) or ln(3) means the box length will double or\ntriple every picosecond. R = ln(0.99) means the box length will\nshrink by 1% of its current length every picosecond. Note that for a\n\"true\" rate the change is continuous and based on the current length,\nso running with R = ln(2) for 10 picoseconds does not expand the box\nlength by a factor of 11 as it would with *erate*, but by a factor of\n1024 since the box length will double every picosecond.\n\nNote that to change the volume (or cross-sectional area) of the\nsimulation box at a constant rate, you can change multiple dimensions\nvia *erate* or *trate* . E.g. to double the box volume in a picosecond\npicosecond, you could set \"x erate M\", \"y erate M\", \"z erate M\", with\nM = pow(2,1/3) - 1 = 0.26, since if each box dimension grows by 26%,\nthe box volume doubles. Or you could set \"x trate M\", \"y trate M\", \"z\ntrate M\", with M = ln(1.26) = 0.231, and the box volume would double\nevery picosecond.\n\nThe *volume* style changes the specified dimension in such a way that\nthe box volume remains constant while other box dimensions are changed\nexplicitly via the styles discussed above. For example, \"x scale 1.1\ny scale 1.1 z volume\" will shrink the z box length as the x,y box\nlengths increase, to keep the volume constant (product of x,y,z\nlengths). If \"x scale 1.1 z volume\" is specified and parameter *y* is\nunspecified, then the z box length will shrink as x increases to keep\nthe product of x,z lengths constant. If \"x scale 1.1 y volume z\nvolume\" is specified, then both the y,z box lengths will shrink as x\nincreases to keep the volume constant (product of x,y,z lengths). In\nthis case, the y,z box lengths shrink so as to keep their relative\naspect ratio constant.\n\nFor solids or liquids, note that when one dimension of the box is\nexpanded via fix deform (i.e. tensile strain), it may be physically\nundesirable to hold the other 2 box lengths constant (unspecified by\nfix deform) since that implies a density change. Using the *volume*\nstyle for those 2 dimensions to keep the box volume constant may make\nmore physical sense, but may also not be correct for materials and\npotentials whose Poisson ratio is not 0.5. An alternative is to use\n[fix npt aniso ](https://docs.lammps.org/fix_nh.html) with zero applied pressure on those 2\ndimensions, so that they respond to the tensile strain dynamically.\n\nThe *wiggle* style oscillates the specified box length dimension\nsinusoidally with the specified amplitude and period. I.e. the box\nlength L as a function of time is given by\n\n```\nL(t) = L0 + A sin(2\\*pi t/Tp)\n```\nwhere L0 is its initial length. If the amplitude A is a positive\nnumber the box initially expands, then contracts, etc. If A is\nnegative then the box initially contracts, then expands, etc. The\namplitude can be in lattice or box distance units. See the discussion\nof the units keyword below.\n\nThe *variable* style changes the specified box length dimension by\nevaluating a variable, which presumably is a function of time. The\nvariable with *name1* must be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate a change in box length in units of\ndistance. Note that this distance is in box units, not lattice units;\nsee the discussion of the *units* keyword below. The formula\nassociated with variable *name1* can reference the current timestep.\nNote that it should return the \"change\" in box length, not the\nabsolute box length. This means it should evaluate to 0.0 when\ninvoked on the initial timestep of the run following the definition of\nfix deform. It should evaluate to a value > 0.0 to dilate the box at\nfuture times, or a value < 0.0 to compress the box.\n\nThe variable *name2* must also be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate the rate of box length change, in\nunits of distance/time, i.e. the time-derivative of the *name1*\nvariable. This quantity is used internally by LAMMPS to reset atom\nvelocities when they cross periodic boundaries. It is computed\ninternally for the other styles, but you must provide it when using an\narbitrary variable.\n\nHere is an example of using the *variable* style to perform the same\nbox deformation as the *wiggle* style formula listed above, where we\nassume that the current timestep = 0.\n\n```lmps\nvariable A equal 5.0\nvariable Tp equal 10.0\nvariable displace equal \"v_A * sin(2*PI * step*dt/v_Tp)\"\nvariable rate equal \"2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)\"\nfix 2 all deform 1 x variable v_displace v_rate remap v\n```\nFor the *scale*, *vel*, *erate*, *trate*, *volume*, *wiggle*, and\n*variable* styles, the box length is expanded or compressed around its\nmid point.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of their\nstyles and values. Note that changing the tilt factors of a triclinic\nbox does not change its volume.\n\nThe *final*, *delta*, *vel*, and *erate* styles all change the shear\nstrain at a \"constant engineering shear strain rate\". This means the\ntilt factor changes linearly with time from its initial to final\nvalue.\n\nFor style *final*, the final tilt factor is specified. The value\ncan be in lattice or box distance units. See the discussion of the\nunits keyword below.\n\nFor style *delta*, a plus or minus change in the tilt factor is\nspecified. The value can be in lattice or box distance units. See\nthe discussion of the units keyword below.\n\nFor style *vel*, a velocity at which the tilt factor changes is\nspecified in units of distance/time. This is effectively an\n\"engineering shear strain rate\", where rate = V/L0 and L0 is the\ninitial box length perpendicular to the direction of shear. The\ndistance can be in lattice or box distance units. See the discussion\nof the units keyword below. For example, if the initial tilt factor\nis 5 Angstroms, and the V is 10 Angstroms/ps, then after 1 ps, the\ntilt factor will be 15 Angstroms. After 2 ps, it will be 25\nAngstroms.\n\nThe *erate* style changes a tilt factor at a \"constant engineering\nshear strain rate\". The units of the specified shear strain rate are\n1/time. See the [units ](https://docs.lammps.org/units.html) command for the time units\nassociated with different choices of simulation units,\ne.g. picoseconds for \"metal\" units). Shear strain is unitless and is\ndefined as offset/length, where length is the box length perpendicular\nto the shear direction (e.g. y box length for xy deformation) and\noffset is the displacement distance in the shear direction (e.g. x\ndirection for xy deformation) from the unstrained orientation.\n\nThe tilt factor T as a function of time will change as\n\n```\nT(t) = T0 + L0\\*erate\\*dt\n```\nwhere T0 is the initial tilt factor, L0 is the original length of the\nbox perpendicular to the shear direction (e.g. y box length for xy\ndeformation), and dt is the elapsed time (in time units). Thus if\n*erate* R is specified as 0.1 and time units are picoseconds, this\nmeans the shear strain will increase by 0.1 every picosecond. I.e. if\nthe xy shear strain was initially 0.0, then strain after 1 ps = 0.1,\nstrain after 2 ps = 0.2, etc. Thus the tilt factor would be 0.0 at\ntime 0, 0.1\\*ybox at 1 ps, 0.2\\*ybox at 2 ps, etc, where ybox is the\noriginal y box length. R = 1 or 2 means the tilt factor will increase\nby 1 or 2 every picosecond. R = -0.01 means a decrease in shear\nstrain by 0.01 every picosecond.\n\nThe *trate* style changes a tilt factor at a \"constant true shear\nstrain rate\". Note that this is not an \"engineering shear strain\nrate\", as the other styles are. Rather, for a \"true\" rate, the rate\nof change is constant, which means the tilt factor changes\nnon-linearly with time from its initial to final value. The units of\nthe specified shear strain rate are 1/time. See the\n[units ](https://docs.lammps.org/units.html) command for the time units associated with\ndifferent choices of simulation units, e.g. picoseconds for \"metal\"\nunits). Shear strain is unitless and is defined as offset/length,\nwhere length is the box length perpendicular to the shear direction\n(e.g. y box length for xy deformation) and offset is the displacement\ndistance in the shear direction (e.g. x direction for xy deformation)\nfrom the unstrained orientation.\n\nThe tilt factor T as a function of time will change as\n\n```\nT(t) = T0 exp(trate\\*dt)\n```\nwhere T0 is the initial tilt factor and dt is the elapsed time (in\ntime units). Thus if *trate* R is specified as ln(1.1) and time units\nare picoseconds, this means the shear strain or tilt factor will\nincrease by 10% every picosecond. I.e. if the xy shear strain was\ninitially 0.1, then strain after 1 ps = 0.11, strain after 2 ps =\n0.121, etc. R = ln(2) or ln(3) means the tilt factor will double or\ntriple every picosecond. R = ln(0.99) means the tilt factor will\nshrink by 1% every picosecond. Note that the change is continuous, so\nrunning with R = ln(2) for 10 picoseconds does not change the tilt\nfactor by a factor of 10, but by a factor of 1024 since it doubles\nevery picosecond. Note that the initial tilt factor must be non-zero\nto use the *trate* option.\n\nNote that shear strain is defined as the tilt factor divided by the\nperpendicular box length. The *erate* and *trate* styles control the\ntilt factor, but assume the perpendicular box length remains constant.\nIf this is not the case (e.g. it changes due to another fix deform\nparameter), then this effect on the shear strain is ignored.\n\nThe *wiggle* style oscillates the specified tilt factor sinusoidally\nwith the specified amplitude and period. I.e. the tilt factor T as a\nfunction of time is given by\n\n```\nT(t) = T0 + A sin(2\\*pi t/Tp)\n```\nwhere T0 is its initial value. If the amplitude A is a positive\nnumber the tilt factor initially becomes more positive, then more\nnegative, etc. If A is negative then the tilt factor initially\nbecomes more negative, then more positive, etc. The amplitude can be\nin lattice or box distance units. See the discussion of the units\nkeyword below.\n\nThe *variable* style changes the specified tilt factor by evaluating a\nvariable, which presumably is a function of time. The variable with\n*name1* must be an [equal-style variable ](https://docs.lammps.org/variable.html) and should\ncalculate a change in tilt in units of distance. Note that this\ndistance is in box units, not lattice units; see the discussion of the\n*units* keyword below. The formula associated with variable *name1*\ncan reference the current timestep. Note that it should return the\n\"change\" in tilt factor, not the absolute tilt factor. This means it\nshould evaluate to 0.0 when invoked on the initial timestep of the run\nfollowing the definition of fix deform.\n\nThe variable *name2* must also be an [equal-style variable](https://docs.lammps.org/variable.html) and should calculate the rate of tilt change, in units of\ndistance/time, i.e. the time-derivative of the *name1* variable. This\nquantity is used internally by LAMMPS to reset atom velocities when\nthey cross periodic boundaries. It is computed internally for the\nother styles, but you must provide it when using an arbitrary\nvariable.\n\nHere is an example of using the *variable* style to perform the same\nbox deformation as the *wiggle* style formula listed above, where we\nassume that the current timestep = 0.\n\n```lmps\nvariable A equal 5.0\nvariable Tp equal 10.0\nvariable displace equal \"v_A * sin(2*PI * step*dt/v_Tp)\"\nvariable rate equal \"2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)\"\nfix 2 all deform 1 xy variable v_displace v_rate remap v\n```\n----------\n\nAll of the tilt styles change the xy, xz, yz tilt factors during a\nsimulation. In LAMMPS, tilt factors (xy,xz,yz) for triclinic boxes\nare normally bounded by half the distance of the parallel box length.\nSee the discussion of the *flip* keyword below, to allow this bound to\nbe exceeded, if desired.\n\nFor example, if xlo = 2 and xhi = 12, then the x box length is 10 and\nthe xy tilt factor must be between -5 and 5. Similarly, both xz and\nyz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is\nnot a limitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt = ..., -15, -5, 5, 15, 25,\n... are all equivalent.\n\nTo obey this constraint and allow for large shear deformations to be\napplied via the *xy*, *xz*, or *yz* parameters, the following\nalgorithm is used. If *prd* is the associated parallel box length (10\nin the example above), then if the tilt factor exceeds the accepted\nrange of -5 to 5 during the simulation, then the box is flipped to the\nother limit (an equivalent box) and the simulation continues. Thus\nfor this example, if the initial xy tilt factor was 0.0 and \"xy final\n100.0\" was specified, then during the simulation the xy tilt factor\nwould increase from 0.0 to 5.0, the box would be flipped so that the\ntilt factor becomes -5.0, the tilt factor would increase from -5.0 to\n5.0, the box would be flipped again, etc. The flip occurs 10 times\nand the final tilt factor at the end of the simulation would be 0.0.\nDuring each flip event, atoms are remapped into the new box in the\nappropriate manner.\n\nThe one exception to this rule is if the first dimension in the tilt\nfactor (x for xy) is non-periodic. In that case, the limits on the\ntilt factor are not enforced, since flipping the box in that dimension\ndoes not change the atom positions due to non-periodicity. In this\nmode, if you tilt the system to extreme angles, the simulation will\nsimply become inefficient due to the highly skewed simulation box.\n\n----------\n\nEach time the box size or shape is changed, the *remap* keyword\ndetermines whether atom positions are remapped to the new box. If\n*remap* is set to *x* (the default), atoms in the fix group are\nremapped; otherwise they are not. Note that their velocities are not\nchanged, just their positions are altered. If *remap* is set to *v*,\nthen any atom in the fix group that crosses a periodic boundary will\nhave a delta added to its velocity equal to the difference in\nvelocities between the lo and hi boundaries. Note that this velocity\ndifference can include tilt components, e.g. a delta in the x velocity\nwhen an atom crosses the y periodic boundary. If *remap* is set to\n*none*, then neither of these remappings take place.\n\nConceptually, setting *remap* to *x* forces the atoms to deform via an\naffine transformation that exactly matches the box deformation. This\nsetting is typically appropriate for solids. Note that though the\natoms are effectively \"moving\" with the box over time, it is not due\nto their having a velocity that tracks the box change, but only due to\nthe remapping. By contrast, setting *remap* to *v* is typically\nappropriate for fluids, where you want the atoms to respond to the\nchange in box size/shape on their own and acquire a velocity that\nmatches the box change, so that their motion will naturally track the\nbox without explicit remapping of their coordinates.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When non-equilibrium MD (NEMD) simulations are performed using\n > this fix, the option \"remap v\" should normally be used. This is\n > because [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) adjusts the atom positions\n > and velocities to induce a velocity profile that matches the changing\n > box size/shape. Thus atom coordinates should NOT be remapped by fix\n > deform, but velocities SHOULD be when atoms cross periodic boundaries,\n > since that is consistent with maintaining the velocity profile already\n > created by fix nvt/sllod. LAMMPS will warn you if the *remap* setting\n > is not consistent with fix nvt/sllod. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For non-equilibrium MD (NEMD) simulations using \"remap v\" it is\n > usually desirable that the fluid (or flowing material,\n > e.g. granular particles) stream with a velocity profile consistent\n > with the deforming box. As mentioned above, using a thermostat\n > such as [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) or [fix lavgevin > ](https://docs.lammps.org/fix_langevin.html) (with a bias provided by [compute temp/deform > ](https://docs.lammps.org/compute_temp_deform.html)), will typically accomplish that. If you do\n > not use a thermostat, then there is no driving force pushing the\n > atoms to flow in a manner consistent with the deforming box.\n > E.g. for a shearing system the box deformation velocity may vary\n > from 0 at the bottom to 10 at the top of the box. But the stream\n > velocity profile of the atoms may vary from -5 at the bottom to +5\n > at the top. You can monitor these effects using the [fix > ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [compute temp/deform > ](https://docs.lammps.org/compute_temp_deform.html), and [compute temp/profile > ](https://docs.lammps.org/compute_temp_profile.html) commands. One way to induce atoms to\n > stream consistent with the box deformation is to give them an\n > initial velocity profile, via the [velocity ramp ](https://docs.lammps.org/velocity.html)\n > command, that matches the box deformation rate. This also\n > typically helps the system come to equilibrium more quickly, even\n > if a thermostat is used. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a [fix rigid ](https://docs.lammps.org/fix_rigid.html) is defined for rigid bodies, and\n > *remap* is set to *x*, then the center-of-mass coordinates of rigid\n > bodies will be remapped to the changing simulation box. This will\n > be done regardless of whether atoms in the rigid bodies are in the\n > fix deform group or not. The velocity of the centers of mass are\n > not remapped even if *remap* is set to *v*, since [fix > nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) does not currently do anything special\n > for rigid particles. If you wish to perform a NEMD simulation of\n > rigid particles, you can either thermostat them independently or\n > include a background fluid and thermostat the fluid via [fix > nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html). \n > \n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nabove. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\nyou apply large deformations, this means the box shape can tilt\ndramatically LAMMPS will run less efficiently, due to the large volume\nof communication needed to acquire ghost atoms around a processor's\nirregular-shaped subdomain. For extreme values of tilt, LAMMPS may\nalso lose atoms and generate an error.\n\nThe *units* keyword determines the meaning of the distance units used\nto define various arguments. A *box* value selects standard distance\nunits as defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for\nunits = real or metal. A *lattice* value means the distance units are\nin lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Note that the\nunits choice also affects the *vel* style parameters since it is\ndefined in terms of distance/time. Also note that the units keyword\ndoes not affect the *variable* style. You should use the *xlat*,\n*ylat*, *zlat* keywords of the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand if you want to include lattice spacings in a variable formula.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix will restore the initial box settings from [binaryrestart files ](https://docs.lammps.org/restart.html), which allows the fix to be properly continue\ndeformation, when using the start/stop options of the [run ](https://docs.lammps.org/run.html)\ncommand. None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can perform deformation over multiple runs, using the *start*\nand *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", "restrictions": "You cannot apply x, y, or z deformations to a dimension that is\nshrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html) command.\n\nYou cannot apply xy, yz, or xz deformations to a second dimension (y\nin xy) that is shrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html)\ncommand.\n", "related": "[fix deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html),\n[change_box ](https://docs.lammps.org/change_box.html)\n" }, { "command": [ - "pair_style lj/mdf", - "pair_style buck/mdf" + "pair_style sph/heatconduction", + "pair_style sph/heatconduction/gpu" ], "syntax": [ - "pair_style style args" + "pair_style sph/heatconduction" ], "args": [ [ @@ -13108,40 +12175,63 @@ export const command_docs = [ "choices": [] }, { - "arg": "lennard/mdf", + "arg": "sph/heatconduction", "type": 3, "choices": [ - "lj/mdf", - "buck/mdf", - "lennard/mdf" + "sph/heatconduction", + "sph/heatconduction/gpu" ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\npair_style sph/heatconduction\npair_coeff * * 1.0 2.4\n```\n", + "html_filename": "pair_sph_heatconduction.html", + "short_description": "The sph/heatconduction style computes heat transport between SPH particles", + "description": "The sph/heatconduction style computes heat transport between SPH particles.\nThe transport model is the diffusion equation for the internal energy.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* D diffusion coefficient (length\\^2/time units)\n* h kernel function cutoff (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n", + "restrictions": "This pair style is part of the SPH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), pair_sph/rhosum\n" +}, +{ + "command": [ + "label" + ], + "syntax": [ + "label ID" + ], + "args": [ + [ + { + "arg": "label", + "type": 1, + "choices": [] }, { - "arg": "args", + "arg": "ID", "type": 2, "choices": [] } ] ], - "parameters": "* style = lj/mdf or buck/mdf or lennard/mdf\n* args = list of arguments for a particular style \n *        lj/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n *        buck/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n *        lennard/mdf args = cutoff1 cutoff2 \n         cutoff1 = inner cutoff for the start of the tapering function \n         cutoff1 = out cutoff for the end of the tapering function \n", - "examples": "\n```lmps\npair_style lj/mdf 2.5 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.1 2.8 3.0 3.2\n\npair_style buck/mdf 2.5 3.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff * * 100.0 1.5 200.0 3.0 3.5\n\npair_style lennard/mdf 2.5 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1021760.3664 2120.317338 3.0 3.2\n```\n", - "html_filename": "pair_mdf.html", - "short_description": "The *lj/mdf*, *buck/mdf* and *lennard/mdf* compute the standard 12-6\nLennard-Jones and Buckingham potential with the addition of a taper\nfunction that ramps the energy and force smoothly to zero between an\ninner and outer cutoff", - "description": "The *lj/mdf*, *buck/mdf* and *lennard/mdf* compute the standard 12-6\nLennard-Jones and Buckingham potential with the addition of a taper\nfunction that ramps the energy and force smoothly to zero between an\ninner and outer cutoff.\n\\[\n E_{smooth}(r) = E(r)*f(r)\\]\nThe tapering, *f(r)*, is done by using the Mei, Davenport, Fernando\nfunction **Mei**.\n\\[\\begin{align*} \n f(r) & = 1.0 \\qquad \\qquad \\mathrm{for} \\qquad r < r_m \\\\\n f(r) & = (1 - x)^3*(1+3x+6x^2) \\quad \\mathrm{for} \\qquad r_m < r < r_{cut} \\\\\n f(r) & = 0.0 \\qquad \\qquad \\mathrm{for} \\qquad r >= r_{cut} \\\\ \\end{align*} \\]\nwhere\n\\[\n x = \\frac{(r-r_m)}{(r_{cut}-r_m)}\\]\nHere \\(r_m\\) is the inner cutoff radius and \\(r_{cut}\\) is the\nouter cutoff radius.\n\n----------\n\nFor the *lj/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard 12-6 Lennard-Jones written in the epsilon/sigma form:\n\\[\n E(r) = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\\]\nEither the first two or all of the following coefficients must be\ndefined for each pair of atoms types via the pair_coeff command as in\nthe examples above, or in the data file read by the [read_data](https://docs.lammps.org/read_data.html). The two cutoffs default to the global values and\n\\(\\epsilon\\) and \\(\\sigma\\) can also be determined by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\nFor the *buck/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard Buckingham potential with three required coefficients.\nThe two cutoffs can be omitted and default to the corresponding\nglobal values:\n\\[\n E(r) = A e^{(-r/\\rho)} -\\frac{C}{r^6}\\]\n* *A* (energy units)\n* \\(\\rho\\) (distance units)\n* *C* (energy-distance\\^6 units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\nFor the *lennard/mdf* pair_style, the potential energy, *E(r)*, is the\nstandard 12-6 Lennard-Jones written in the A/B form:\n\\[\n E(r) = \\frac{A}{r^{12}} - \\frac{B}{r^{6}}\\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the pair_coeff command as in the examples above, or in the\ndata file read by the read_data commands, or by mixing as described below.\nThe two cutoffs default to their global values and must be either both\ngiven or both left out:\n\n* *A* (energy-distance\\^12 units)\n* *B* (energy-distance\\^6 units)\n* \\(r_m\\) (distance units)\n* \\(r_{cut}\\) (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the \\(\\epsilon\\) and\n\\(\\sigma\\) coefficients and cutoff distances for the lj/mdf pair\nstyle can be mixed. The default mix value is *geometric* . See the\n\"pair_modify\" command for details. The other two pair styles buck/mdf\nand lennard/mdf do not support mixing, so all I,J pairs of coefficients\nmust be specified explicitly.\n\nNone of the lj/mdf, buck/mdf, or lennard/mdf pair styles supports\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option or long-range\ntail corrections to pressure and energy.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n----------\n\n**(Mei)** Mei, Davenport, Fernando, Phys Rev B, 43 4653 (1991) \n ", - "restrictions": "These pair styles can only be used if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID = string used as label name \n", + "examples": "\n```lmps\nlabel xyz\nlabel loop\n```\n", + "html_filename": "label.html", + "short_description": "Label this line of the input script with the chosen ID", + "description": "Label this line of the input script with the chosen ID. Unless a jump\ncommand was used previously, this does nothing. But if a\n[jump ](https://docs.lammps.org/jump.html) command was used with a label argument to begin\ninvoking this script file, then all command lines in the script prior\nto this line will be ignored. I.e. execution of the script will begin\nat this line. This is useful for looping over a section of the input\nscript as discussed in the [jump ](https://docs.lammps.org/jump.html) command.\n", + "restrictions": " none\n", + "related": "[jump ](https://docs.lammps.org/jump.html), [next ](https://docs.lammps.org/next.html)\n" }, { "command": [ - "fix hyper/global" + "compute efield/atom" ], "syntax": [ - "fix ID group-ID hyper/global cutbond qfactor Vmax Tequil" + "compute ID group-ID efield/atom keyword val" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -13156,46 +12246,88 @@ export const command_docs = [ "choices": [] }, { - "arg": "hyper/global", + "arg": "efield/atom", "type": 1, "choices": [] }, { - "arg": "cutbond", + "arg": "kspace", + "type": 3, + "choices": [ + "pair", + "kspace" + ] + }, + { + "arg": "val", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* efield/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = pair or kspace \n *      pair args = yes or no \n *      kspace args = yes or no \n", + "examples": "\n```lmps\ncompute 1 all efield/atom\ncompute 1 all efield/atom pair yes kspace no\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", + "html_filename": "compute_efield_atom.html", + "short_description": "Define a computation that calculates the electric field at each atom in a group", + "description": "Define a computation that calculates the electric field at each atom in a group.\nThe compute should only enabled with pair and kspace styles that are provided\nby the DIELECTRIC package because only these styles compute the per-atom\nelectric field at every time step.\n\nThe electric field is a 3-component vector. The value of the electric field\ncomponents will be 0.0 for atoms not in the specified compute group.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *pair* and *kspace* keywords, the real-space and reciprocal-space\ncontributions to the electric field can be turned off and on.\n\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in electric field [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the DIELECTRIC package. It is only enabled if\nLAMMPS was built with that package.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" +}, +{ + "command": [ + "fix press/langevin" + ], + "syntax": [ + "fix ID group-ID press/langevin keyword value ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] + }, + { + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "qfactor", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "Vmax", + "arg": "press/langevin", + "type": 1, + "choices": [] + }, + { + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "Tequil", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* hyper/global = style name of this fix command\n* cutbond = max distance at which a pair of atoms is considered bonded (distance units)\n* qfactor = max strain at which bias potential goes to 0.0 (unitless)\n* Vmax = height of bias potential (energy units)\n* Tequil = equilibration temperature (temperature units) \n", - "examples": "\n```lmps\nfix 1 all hyper/global 1.0 0.3 0.8 300.0\n```\n", - "html_filename": "fix_hyper_global.html", - "short_description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost global hyperdynamics (GHD) simulation", - "description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost global hyperdynamics (GHD) simulation. The role\nof this fix is to a select a single pair of atoms in the system at\neach timestep to add a global bias potential to, which will alter the\ndynamics of the system in a manner that effectively accelerates time.\nThis is in contrast to the [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html)\ncommand, which can be user to perform a local hyperdynamics (LHD)\nsimulation, by adding a local bias potential to multiple pairs of\natoms at each timestep. GHD can time accelerate a small simulation\nwith up to a few 100 atoms. For larger systems, LHD is needed to\nachieve good time acceleration.\n\nFor a system that undergoes rare transition events, where one or more\natoms move over an energy barrier to a new potential energy basin, the\neffect of the bias potential is to induce more rapid transitions.\nThis can lead to a dramatic speed-up in the rate at which events\noccurs, without altering their relative frequencies, thus leading to\nan overall increase in the elapsed real time of the simulation as\ncompared to running for the same number of timesteps with normal MD.\nSee the [hyper ](https://docs.lammps.org/hyper.html) page for a more general discussion of\nhyperdynamics and citations that explain both GHD and LHD.\n\nThe equations and logic used by this fix and described here to perform\nGHD follow the description given in **Voter2013ghd**. The\nbond-boost form of a bias potential for HD is due to Miron and\nFichthorn as described in **Mironghd**. In LAMMPS we use a\nsimplified version of bond-boost GHD where a single bond in the system\nis biased at any one timestep.\n\nBonds are defined between each pair of atoms *ij*, whose \\(R^0_{ij}\\)\ndistance is less than *cutbond*, when the system is in a quenched state\n(minimum) energy. Note that these are not \"bonds\" in a covalent\nsense. A bond is simply any pair of atoms that meet the distance\ncriterion. *Cutbond* is an argument to this fix; it is discussed\nbelow. A bond is only formed if one or both of the *ij* atoms are in\nthe specified group.\n\nThe current strain of bond *ij* (when running dynamics) is defined as\n\\[\n E_{ij} = \\frac{R_{ij} - R^0_{ij}}{R^0_{ij}}\\]\nwhere \\(R_{ij}\\) is the current distance between atoms *i* and *j*,\nand \\(R^0_{ij}\\) is the equilibrium distance in the quenched state.\n\nThe bias energy \\(V_{ij}\\) of any bond between atoms *i* and *j*\nis defined as\n\\[\n V_{ij} = 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}\\]\nwhere the prefactor \\(V^{max}\\) and the cutoff *qfactor* are arguments to\nthis fix; they are discussed below. This functional form is an\ninverse parabola centered at 0.0 with height \\(V^{max}\\) and\nwhich goes to 0.0 at +/- qfactor.\n\nLet \\(E^{max}\\) be the maximum of \\(\\left| E_{ij} \\right|\\)\nfor all *ij* bonds in the system on a\ngiven timestep. On that step, \\(V_{ij}\\) is added as a bias potential\nto only the single bond with strain \\(E^{max}\\), call it\n\\(V^{max}_{ij}\\). Note that \\(V^{max}_{ij}\\) will be 0.0\nif \\(E^{max} >= \\textrm{qfactor}\\) on that timestep. Also note\nthat \\(V^{max}_{ij}\\) is added to the normal interatomic potential\nthat is computed between all atoms in the system at every step.\n\nThe derivative of \\(V^{max}_{ij}\\) with respect to the position of\neach atom in the \\(E^{max}\\) bond gives a bias force\n\\(F^{max}_{ij}\\) acting on the bond as\n\\[\n F^{max}_{ij} = - \\frac{dV^{max}_{ij}}{dE_{ij}} = \\frac{2 V^{max} E-{ij}}{\\textrm{qfactor}^2} \\textrm{ for } \\left|E_{ij}\\right| < \\textrm{qfactor} \\textrm{ or } 0 \\textrm{ otherwise}\\]\nwhich can be decomposed into an equal and opposite force acting on\nonly the two *ij* atoms in the \\(E^{max}\\) bond.\n\nThe time boost factor for the system is given each timestep I by\n\\[\n B_i = e^{\\beta V^{max}_{ij}}\\]\nwhere \\(\\beta = \\frac{1}{kT_{equil}}\\), and \\(T_{equil}\\) is the\ntemperature of the system and an argument to this fix. Note that\n\\(B_i >= 1\\) at every step.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To run a GHD simulation, the input script must also use the [fix > langevin ](https://docs.lammps.org/fix_langevin.html) command to thermostat the atoms at the same\n > \\(T_{equil}\\) as specified by this fix, so that the system is\n > running constant-temperature (NVT) dynamics. LAMMPS does not check\n > that this is done. \n > \n\nThe elapsed time \\(t_{hyper}\\) for a GHD simulation running for *N*\ntimesteps is simply\n\\[\n t_{hyper} = \\sum_{i=1,N} B-i \\cdot dt\\]\nwhere *dt* is the timestep size defined by the [timestep ](https://docs.lammps.org/timestep.html)\ncommand. The effective time acceleration due to GHD is thus t_hyper /\nN\\*dt, where N\\*dt is elapsed time for a normal MD run of N timesteps.\n\nNote that in GHD, the boost factor varies from timestep to timestep.\nLikewise, which bond has \\(E^{max}\\) strain and thus which pair of\natoms the bias potential is added to, will also vary from timestep to timestep.\nThis is in contrast to local hyperdynamics (LHD) where the boost\nfactor is an input parameter; see the [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html) page for details.\n\n----------\n\nHere is additional information on the input parameters for GHD.\n\nThe *cutbond* argument is the cutoff distance for defining bonds between\npairs of nearby atoms. A pair of *ij* atoms in their equilibrium,\nminimum-energy configuration, which are separated by a distance\n\\(R_{ij} < cutbond\\), are flagged as a bonded pair. Setting\n*cubond* to be ~25% larger than the nearest-neighbor distance in a\ncrystalline lattice is a typical choice for solids, so that bonds exist\nonly between nearest neighbor pairs.\n\nThe *qfactor* argument is the limiting strain at which the bias\npotential goes to 0.0. It is dimensionless, so a value of 0.3 means a\nbond distance can be up to 30% larger or 30% smaller than the\nequilibrium (quenched) \\(R^0_{ij}\\) distance and the two atoms in\nthe bond could still experience a non-zero bias force.\n\nIf *qfactor* is set too large, then transitions from one energy basin\nto another are affected because the bias potential is non-zero at the\ntransition state (e.g. saddle point). If *qfactor* is set too small\nthan little boost is achieved because the \\(E_{ij}\\) strain of some bond in\nthe system will (nearly) always exceed *qfactor* . A value of 0.3 for\n*qfactor* is typically reasonable.\n\nThe *Vmax* argument is the prefactor on the bias potential. Ideally,\ntt should be set to a value slightly less than the smallest barrier\nheight for an event to occur. Otherwise the applied bias potential\nmay be large enough (when added to the interatomic potential) to\nproduce a local energy basin with a maxima in the center. This can\nproduce artificial energy minima in the same basin that trap an atom.\nOr if *Vmax* is even larger, it may induce an atom(s) to rapidly\ntransition to another energy basin. Both cases are \"bad dynamics\"\nwhich violate the assumptions of GHD that guarantee an accelerated\ntime-accurate trajectory of the system.\n\nNote that if *Vmax* is set too small, the GHD simulation will run\ncorrectly. There will just be fewer events because the hyper time\n(t_hyper equation above) will be shorter.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have no physical intuition as to the smallest barrier\n > height in your system, a reasonable strategy to determine the largest\n > *Vmax* you can use for a GHD model, is to run a sequence of\n > simulations with smaller and smaller *Vmax* values, until the event\n > rate does not change (as a function of hyper time). \n > \n\nThe *Tequil* argument is the temperature at which the system is\nsimulated; see the comment above about the [fix langevin](https://docs.lammps.org/fix_langevin.html) thermostatting. It is also part of the beta term in the\nexponential factor that determines how much boost is achieved as a\nfunction of the bias potential.\n\nIn general, the lower the value of *Tequil* and the higher the value\nof *Vmax*, the more time boost will be achievable by the GHD\nalgorithm.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of the bias potential to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and global vector of length 12,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the magnitude of the bias potential\n(energy units) applied on the current timestep. The vector stores the\nfollowing quantities:\n\n #. boost factor on this step (unitless)\n #. max strain \\(E_{ij}\\) of any bond on this step (absolute value, unitless)\n #. ID of first atom in the max-strain bond\n #. ID of second atom in the max-strain bond\n #. average # of bonds/atom on this step\n\n #. fraction of timesteps where the biased bond has bias = 0.0 during this run\n #. fraction of timesteps where the biased bond has negative strain during this run\n #. max drift distance of any atom during this run (distance units)\n #. max bond length during this run (distance units)\n\n #. cumulative hyper time since fix was defined (time units)\n #. cumulative count of event timesteps since fix was defined\n #. cumulative count of atoms in events since fix was defined\n\nThe first 5 quantities are for the current timestep. Quantities 6-9\nare for the current hyper run. They are reset each time a new hyper\nrun is performed. Quantities 19-12 are cumulative across multiple\nruns (since the point in the input script the fix was defined).\n\nFor value 8, drift is the distance an atom moves between two quenched\nstates when the second quench determines an event has occurred. Atoms\ninvolved in an event will typically move the greatest distance since\nothers typically remain near their original quenched position.\n\nFor value 11, events are checked for by the [hyper ](https://docs.lammps.org/hyper.html) command\nonce every *Nevent* timesteps. This value is the count of those\ntimesteps on which one (or more) events was detected. It is NOT the\nnumber of distinct events, since more than one event may occur in the\nsame *Nevent* time window.\n\nFor value 12, each time the [hyper ](https://docs.lammps.org/hyper.html) command checks for an\nevent, it invokes a compute to flag zero or more atoms as\nparticipating in one or more events. E.g. atoms that have displaced\nmore than some distance from the previous quench state. Value 11 is\nthe cumulative count of the number of atoms participating in any of\nthe events that were found.\n\nThe scalar and vector values calculated by this fix are all\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Voter2013ghd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Mironghd)** R. A. Miron and K. A. Fichthorn, J Chem Phys, 119, 6210 (2003). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[hyper ](https://docs.lammps.org/hyper.html), [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* press/langevin = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or tri or x or y or z or xy or xz or yz or couple or dilate or modulus or temp or flip \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or xz or yz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = pressure damping parameter \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       couple = none or xyz or xy or yz or xz \n       friction value = Friction coefficient for the barostat (time units) \n       temp values = Tstart, Tstop, seed \n       Tstart, Tstop = target temperature used for the barostat at start/end of run \n       seed = seed of the random number generator \n       dilate value = all or partial \n", + "examples": "\n```lmps\nfix 1 all press/langevin iso 0.0 0.0 1000.0 temp 300 300 487374\nfix 2 all press/langevin aniso 0.0 0.0 1000.0 temp 100 300 238 dilate partial\n```\n", + "html_filename": "fix_press_langevin.html", + "short_description": "Adjust the pressure of the system by using a Langevin stochastic barostat\n**Gronbech**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep", + "description": "Adjust the pressure of the system by using a Langevin stochastic barostat\n**Gronbech**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep.\n\nThe Langevin barostat couple each direction *L* with a pseudo-particle that obeys\nthe Langevin equation such as:\n\\[\\begin{align*} \n f_P = & \\frac{N k_B T_{target}}{V} + \\frac{1}{V d}\\sum_{i=1}^{N} \\vec r_i \\cdot \\vec f_i - P_{target} \\\\\n Q\\ddot{L} + \\alpha{}\\dot{L} = & f_P + \\beta(t)\\\\\n L^{n+1} = & L^{n} + bdt\\dot{L}^{n} \\frac{bdt^{2}}{2Q} \\\\\n \\dot{L}^{n+1} = & \\alpha\\dot{L}^{n} + \\frac{dt}{2Q}\\left(a f^{n}_{P} + f^{n+1}_{P}\\right) + \\frac{b}{Q}\\beta^{n+1} \\\\\n a = & \\frac{1-\\frac{\\alpha{}dt}{2Q}}{1+\\frac{\\alpha{}dt}{2Q}} \\\\\n b = & \\frac{1}{1+\\frac{\\alpha{}dt}{2Q}} \\\\\n \\left< \\beta(t)\\beta(t') \\right> = & 2\\alpha k_B Tdt \\end{align*} \\]\nWhere \\(dt\\) is the timestep \\(\\dot{L}\\) and \\(\\ddot{L}\\) the first\nand second derivatives of the coupled direction with regard to time,\n\\(\\alpha\\) is a friction coefficient, \\(\\beta\\) is a random gaussian\nvariable and \\(Q\\) the effective mass of the coupled pseudoparticle. The\ntwo first terms on the right-hand side of the first equation are the virial\nexpression of the canonical pressure. It is to be noted that the temperature\nused to compute the pressure is not based on the atom velocities but rather on\nthe canonical\ntarget temperature directly. This temperature is specified using the *temp*\nkeyword parameter and should be close to the expected target temperature of the\nsystem.\n\nRegardless of what atoms are in the fix group, a global pressure is\ncomputed for all atoms. Similarly, when the size of the simulation\nbox is changed, all atoms are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the atoms in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of atoms in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands which\n > perform Nose-Hoover barostatting AND time integration, this fix does NOT\n > perform time integration of the atoms but only of the barostat coupled\n > coordinate. It then only modifies the box size and atom coordinates to\n > effect barostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) to actually update\n > the positions and velocities of atoms. This fix can be used in conjunction\n > with thermostatting fixes to control the temperature, such as [fix nvt > ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) or [fix temp/berendsen > ](https://docs.lammps.org/fix_temp_berendsen.html). \n > \n\nSee the [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) page for a\ndiscussion of different ways to perform barostatting.\n\n----------\n\nThe barostat is specified using one or more of the *iso*, *aniso*, *tri* *x*,\n*y*, *z*, *xy*, *xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify the 3 diagonal components of an external stress tensor, and\nto couple various of these components together so that the dimensions they\nrepresent are varied together during a constant-pressure simulation.\n\nThe target pressures for each of the 6 diagonal components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, keywords, which\ncorrespond to the 3 simulation box dimensions, and the *xy*, *xz* and *yz*\nkeywords which corresponds to the 3 simulation box tilt factors. For each\ncomponent, the external pressure or tensor component at each timestep is a\nramped value during the run from *Pstart* to *Pstop* . If a target pressure is\nspecified for a component, then the corresponding box dimension will change\nduring a simulation. For example, if the *y* keyword is used, the y-box length\nwill change. A box dimension will not change if that component is not\nspecified, although you have the option to change that dimension via the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nThe *Pdamp* parameter can be seen in the same way as a Nose-Hoover parameter as\nit is used to compute the mass of the fictitious particle. Without friction,\nthe barostat can be compared to a single particle Nose-Hoover barostat and\nshould follow a similar decay in time. The mass of the barostat is\nlinked to *Pdamp* by the relation\n\\(Q=(N_{at}+1)\\cdot{}k_BT_{target}\\cdot{}P_{damp}^2\\). Note that *Pdamp*\nshould be expressed in time units.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As for Berendsen barostat, a Langevin barostat will not work well for\n > arbitrary values of *Pdamp* . If *Pdamp* is too small, the pressure and\n > volume can fluctuate wildly; if it is too large, the pressure will take a\n > very long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in time\n > units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\n----------\n\nThe *temp* keyword sets the temperature to use in the equation of motion of the\nbarostat. This value is used to compute the value of the force \\(f_P\\) in\nthe equation of motion. It is important to note that this value is not the\ninstantaneous temperature but a target temperature that ramps from *Tstart* to\n*Tstop*. Also the required argument *seed* sets the seed for the random\nnumber generator used in the generation of the random forces.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso* and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* is the same as *aniso* but also adds the control on the\nshear pressure coupled with the tilt factors.\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy Pstart Pstop Pdamp\nxz Pstart Pstop Pdamp\nyz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\n----------\n\nThe *friction* keyword sets the friction parameter \\(\\alpha\\) in the\nequations of motion of the barostat. For each barostat direction, the value of\n\\(\\alpha\\) depends on both *Pdamp* and *friction*. The value given as a\nparameter is the Langevin characteristic time\n\\(\\tau_{L}=\\frac{Q}{\\alpha}\\) in time units. The langevin time can be understood as a\ndecorrelation time for the pressure. A long Langevin time value will make the\nbarostat act as an underdamped oscillator while a short value will make it\nact as an overdamped oscillator. The ideal configuration would be to find\nthe critical parameter of the barostat. Empirically this is observed to\noccur for \\(\\tau_{L}\\approx{}P_{damp}\\). For this reason, if the *friction*\nkeyword is not used, the default value *Pdamp* is used for each barostat direction.\n\n----------\n\nThis fix computes pressure each timestep. To do\nthis, the fix creates its own computes of style \"pressure\",\nas if this command had been issued:\n\n```lmps\ncompute fix-ID_press group-ID pressure NULL virial\n```\nThe kinetic contribution to the pressure is taken as the ensemble value\n\\(\\frac{Nk_bT}{V}\\) and computed by the fix itself.\n\nSee the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command for details. Note\nthat the IDs of the new compute is the fix-ID + underscore + \"press\" and the\ngroup for the new computes is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_press*. This\nmeans you can change the attributes of this fix's pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature or\npressure during thermodynamic output via the [thermo_style custom](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID. It also means that\nchanging attributes of *thermo_temp* or *thermo_press* will have no effect on\nthis fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *press* option is\nsupported by this fix. You can use it to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its pressure calculations.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target pressure and temperature over multiple runs, using\nthe *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this. It is recommended that\nthe ramped temperature is the same as the effective temperature of the\nthermostatted system. That is, if the system's temperature is ramped by other\ncommands, it is recommended to do the same with this pressure control.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Gronbech)** Gronbech-Jensen, Farago, J Chem Phys, 141, 194108 (2014). \n ", + "restrictions": "Any dimension being adjusted by this fix must be periodic.\n", + "related": "[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html),\n[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "compute body/local" + "compute temp/partial" ], "syntax": [ - "compute ID group-ID body/local input1 input2 ..." + "compute ID group-ID temp/partial xflag yflag zflag" ], "args": [ [ @@ -13215,65 +12347,78 @@ export const command_docs = [ "choices": [] }, { - "arg": "body/local", + "arg": "temp/partial", "type": 1, "choices": [] }, { - "arg": "input1", + "arg": "xflag", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "yflag", + "type": 2, + "choices": [] + }, + { + "arg": "zflag", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* body/local = style name of this compute command\n* one or more keywords may be appended\n* keyword = id or type or integer \n *        id = atom ID of the body particle \n *        type = atom type of the body particle \n *        integer = 1,2,3,etc = index of fields defined by body style \n", - "examples": "\n```lmps\ncompute 1 all body/local type 1 2 3\ncompute 1 all body/local 3 6\n```\n", - "html_filename": "compute_body_local.html", - "short_description": "Define a computation that calculates properties of individual body\nsub-particles", - "description": "Define a computation that calculates properties of individual body\nsub-particles. The number of data generated, aggregated across all\nprocessors, equals the number of body sub-particles plus the number of\nnon-body particles in the system, modified by the group parameter as\nexplained below. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for\nmore details on using body particles.\n\nThe local data stored by this command is generated by looping over all\nthe atoms. An atom will only be included if it is in the group. If\nthe atom is a body particle, then its \\(N\\) sub-particles will be looped\nover, and it will contribute \\(N\\) data to the count of data. If it\nis not a body particle, it will contribute 1 datum.\n\nFor both body particles and non-body particles, the *id* keyword\nwill store the ID of the particle.\n\nFor both body particles and non-body particles, the *type* keyword\nwill store the type of the particle.\n\nThe *integer* keywords mean different things for body and non-body\nparticles. If the atom is not a body particle, only its *x*, *y*, *z*\ncoordinates can be referenced, using the *integer* keywords 1,2,3.\nNote that this means that if you want to access more fields than this\nfor body particles, then you cannot include non-body particles in the\ngroup.\n\nFor a body particle, the *integer* keywords refer to fields calculated\nby the body style for each sub-particle. The body style, as specified\nby the [atom_style body ](https://docs.lammps.org/atom_style.html), determines how many fields\nexist and what they are. See the [Howto_body ](https://docs.lammps.org/Howto_body.html) doc\npage for details of the different styles.\n\nHere is an example of how to output body information using the [dump local ](https://docs.lammps.org/dump.html) command with this compute. If fields 1, 2, and 3 for the\nbody sub-particles are (*x*, *y*, *z*) coordinates, then the dump file will be\nformatted similar to the output of a [dump atom or custom ](https://docs.lammps.org/dump.html)\ncommand.\n\n```lmps\ncompute 1 all body/local type 1 2 3\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of data as described above. If a single keyword\nis specified, a local vector is produced. If two or more keywords are\nspecified, a local array is produced where the number of columns = the\nnumber of keywords. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe [units ](https://docs.lammps.org/units.html) for output values depend on the body style.\n", + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/partial = style name of this compute command\n* xflag,yflag,zflag = 0/1 for whether to exclude/include this dimension \n", + "examples": "\n```lmps\ncompute newT flow temp/partial 1 1 0\n```\n", + "html_filename": "compute_temp_partial.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms, after excluding one or more velocity components", + "description": "Define a computation that calculates the temperature of a group of\natoms, after excluding one or more velocity components. A compute of\nthis style can be used by any command that computes a temperature\n(e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) = temperature. The calculation of KE excludes the\n\\(x\\), \\(y\\), or \\(z\\) dimensions if *xflag*, *yflag*, or *zflag*\nis 0. The dim parameter is adjusted to give the correct number of\ndegrees of freedom.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the calculation of a pressure\ntensor. The formula for the components of the tensor is the same as\nthe above formula, except that \\(v^2\\) is replaced by \\(v_x v_y\\) for\nthe \\(xy\\) component, and so on. The six components of the vector are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of velocity components by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html)\n" + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "angle_style cosine/buck6d" + "bond_style none" ], "syntax": [ - "angle_style cosine/buck6d" + "bond_style none" ], "args": [ [ { - "arg": "angle_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "cosine/buck6d", + "arg": "none", "type": 1, "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style cosine/buck6d\nangle_coeff 1 cosine/buck6d 1.978350 4 180.000000\n```\n", - "html_filename": "angle_cosine_buck6d.html", - "short_description": "The *cosine/buck6d* angle style uses the potential\n\\[\n E = K \\left[ 1 + \\cos(n\\theta - \\theta_0)\\right]\\]\nwhere \\(K\\) is the energy constant, \\(n\\) is the periodic multiplicity and\n\\(\\theta_0\\) is the equilibrium angle", - "description": "The *cosine/buck6d* angle style uses the potential\n\\[\n E = K \\left[ 1 + \\cos(n\\theta - \\theta_0)\\right]\\]\nwhere \\(K\\) is the energy constant, \\(n\\) is the periodic multiplicity and\n\\(\\theta_0\\) is the equilibrium angle.\n\nThe coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands in the following order:\n\n* \\(K\\) (energy)\n* \\(n\\)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\nAdditional to the cosine term the *cosine/buck6d* angle style computes\nthe short range (vdW) interaction belonging to the\n[pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) between the end atoms of the\nangle. For this reason this angle style only works in combination\nwith the [pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) styles and needs\nthe [special_bonds ](https://docs.lammps.org/special_bonds.html) 1-3 interactions to be weighted\n0.0 to prevent double counting.\n\n----------\n", - "restrictions": "*cosine/buck6d* can only be used in combination with the\n[pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) style and with a\n[special_bonds ](https://docs.lammps.org/special_bonds.html) 0.0 weighting of 1-3 interactions.\n\nThis angle style can only be used if LAMMPS was built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "examples": "\n```lmps\nbond_style none\n```\n", + "html_filename": "bond_none.html", + "short_description": "Using a bond style of none means bond forces and energies are not\ncomputed, even if pairs of bonded atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command", + "description": "Using a bond style of none means bond forces and energies are not\ncomputed, even if pairs of bonded atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [bond_style zero ](https://docs.lammps.org/bond_zero.html) command for a way to\ncalculate bond statistics, but compute no bond interactions.\n", + "restrictions": " none\n", + "related": "none\n\n\n[bond_style zero ](https://docs.lammps.org/bond_zero.html)\n" }, { "command": [ - "pair_style sph/rhosum" + "pair_style lj/spica", + "pair_style lj/spica/gpu", + "pair_style lj/spica/kk", + "pair_style lj/spica/omp", + "pair_style lj/spica/coul/long", + "pair_style lj/spica/coul/long/gpu", + "pair_style lj/spica/coul/long/omp", + "pair_style lj/spica/coul/msm", + "pair_style lj/spica/coul/msm/omp" ], "syntax": [ - "pair_style sph/rhosum Nstep" + "pair_style style args" ], "args": [ [ @@ -13283,201 +12428,175 @@ export const command_docs = [ "choices": [] }, { - "arg": "sph/rhosum", - "type": 1, - "choices": [] + "arg": "lj/spica/coul/long/omp", + "type": 3, + "choices": [ + "lj/spica", + "lj/spica/coul/long", + "lj/spica/gpu", + "lj/spica/kk", + "lj/spica/omp", + "lj/spica/coul/long/gpu", + "lj/spica/coul/long/omp" + ] }, { - "arg": "Nstep", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* Nstep = timestep interval \n", - "examples": "\n```lmps\npair_style sph/rhosum 10\npair_coeff * * 2.4\n```\n", - "html_filename": "pair_sph_rhosum.html", - "short_description": "The sph/rhosum style computes the local particle mass density rho for\nSPH particles by kernel function interpolation, every Nstep timesteps", - "description": "The sph/rhosum style computes the local particle mass density rho for\nSPH particles by kernel function interpolation, every Nstep timesteps.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* h (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n", - "restrictions": "This pair style is part of the SPH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), pair_sph/taitwater\n" + "parameters": "* style = lj/spica or lj/spica/coul/long\n* args = list of arguments for a particular style \n *      lj/spica args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n *      lj/spica/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style lj/spica 2.5\npair_coeff 1 1 lj12_6 1 1.1 2.8\n\npair_style lj/spica/coul/long 10.0\npair_style lj/spica/coul/long 10.0 12.0\npair_coeff 1 1 lj9_6 100.0 3.5 12.0\n\npair_style lj/spica/coul/msm 10.0\npair_style lj/spica/coul/msm 10.0 12.0\npair_coeff 1 1 lj9_6 100.0 3.5 12.0\n```\n", + "html_filename": "pair_spica.html", + "short_description": "The *lj/spica* styles compute a 9/6, 12/4, 12/5, or 12/6 Lennard-Jones potential,\ngiven by\n\\[\\begin{align*} \n E = & \\frac{27}{4} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{3\\sqrt{3}}{2} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^4 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{12}{7}\\left(\\frac{12}{5}\\right)^{\\left(\\frac{5}{7}\\right)} \\epsilon\n \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^5 \\right]\n \\qquad r < r_c \\\\\n E = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\end{align*} \\]\nas required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in\n**Shinoda3**, **DeVane**, **Seo**, and **Miyazaki**", + "description": "The *lj/spica* styles compute a 9/6, 12/4, 12/5, or 12/6 Lennard-Jones potential,\ngiven by\n\\[\\begin{align*} \n E = & \\frac{27}{4} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{3\\sqrt{3}}{2} \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^4 \\right]\n \\qquad r < r_c \\\\\n E = & \\frac{12}{7}\\left(\\frac{12}{5}\\right)^{\\left(\\frac{5}{7}\\right)} \\epsilon\n \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^5 \\right]\n \\qquad r < r_c \\\\\n E = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\end{align*} \\]\nas required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in\n**Shinoda3**, **DeVane**, **Seo**, and **Miyazaki**.\n\\(r_c\\) is the cutoff.\nSummary information on these force fields can be found at https://www.spica-ff.org\n\nStyle *lj/spica/coul/long* computes the adds Coulombic interactions\nwith an additional damping factor applied so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and\nits *ewald* or *pppm* or *pppm/cg* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within\nthis distance are computed directly; interactions outside that\ndistance are computed in reciprocal space.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cg_type (lj9_6, lj12_4, lj12_5, or lj12_6)\n* epsilon (energy units)\n* sigma (distance units)\n* cutoff1 (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum. The prefactors\nare chosen so that the potential minimum is at -epsilon.\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nFor *lj/spica/coul/long* and *lj/spica/coul/msm* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an\nindividual I,J type pair. All type pairs use the same global\nCoulombic cutoff specified in the pair_style command.\n\nThe original implementation of the above styles are\nstyle *lj/sdk*, *lj/sdk/coul/long*, and *lj/sdk/coul/msm*,\nand available for backward compatibility.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/spica pair styles *cannot* be mixed,\nsince different pairs may have different exponents. So all parameters\nfor all pairs have to be specified explicitly through the \"pair_coeff\"\ncommand. Defining then in a data file is also not supported, due to\nlimitations of that file format.\n\nAll of the lj/spica pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/spica/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the lj/spica pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe lj/spica and lj/cut/coul/long pair styles do not support\nthe use of the *inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command.\n\n----------\n\n**(Shinoda3)** Shinoda, DeVane, Klein, Mol Sim, 33, 27-36 (2007). \n \n**(DeVane)** Shinoda, DeVane, Klein, Soft Matter, 4, 2453-2462 (2008). \n \n**(Seo)** Seo, Shinoda, J Chem Theory Comput, 15, 762-774 (2019). \n \n**(Miyazaki)** Miyazaki, Okazaki, Shinoda, J Chem Theory Comput, 16, 782-793 (2020). \n ", + "restrictions": "All of the lj/spica pair styles are part of the CG-SPICA package. The\n*lj/spica/coul/long* style also requires the KSPACE package to be built\n(which is enabled by default). They are only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [angle_style spica ](https://docs.lammps.org/angle_spica.html)\n" }, { "command": [ - "pair_style lj/cut/soft", - "pair_style lj/cut/soft/omp", - "pair_style lj/cut/coul/cut/soft", - "pair_style lj/cut/coul/cut/soft/gpu", - "pair_style lj/cut/coul/cut/soft/omp", - "pair_style lj/cut/coul/long/soft", - "pair_style lj/cut/coul/long/soft/gpu", - "pair_style lj/cut/coul/long/soft/omp", - "pair_style lj/cut/tip4p/long/soft", - "pair_style lj/cut/tip4p/long/soft/omp", - "pair_style lj/charmm/coul/long/soft", - "pair_style lj/charmm/coul/long/soft/omp", - "pair_style lj/class2/soft", - "pair_style lj/class2/coul/cut/soft", - "pair_style lj/class2/coul/long/soft", - "pair_style coul/cut/soft", - "pair_style coul/cut/soft/omp", - "pair_style coul/long/soft", - "pair_style coul/long/soft/omp", - "pair_style tip4p/long/soft", - "pair_style tip4p/long/soft/omp", - "pair_style morse/soft" + "fix_modify" ], "syntax": [ - "pair_style style args" + "fix_modify fix-ID keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "tip4p/long/soft/omp", + "arg": "fix-ID", + "type": 2, + "choices": [] + }, + { + "arg": "virial", "type": 3, "choices": [ - "lj/cut/soft", - "lj/cut/coul/cut/soft", - "lj/cut/coul/long/soft", - "lj/cut/tip4p/long/soft", - "lj/charmm/coul/long/soft", - "lj/class2/soft", - "lj/class2/coul/cut/soft", - "lj/class2/coul/long/soft", - "coul/cut/soft", - "coul/long/soft", - "tip4p/long/soft", - "morse/soft", - "lj/cut/soft/omp", - "lj/cut/coul/cut/soft/gpu", - "lj/cut/coul/cut/soft/omp", - "lj/cut/coul/long/soft/gpu", - "lj/cut/coul/long/soft/omp", - "lj/cut/tip4p/long/soft/omp", - "lj/charmm/coul/long/soft/omp", - "coul/cut/soft/omp", - "coul/long/soft/omp", - "tip4p/long/soft/omp" + "bodyforces", + "colname", + "dynamic/dof", + "energy", + "press", + "respa", + "temp", + "virial" ] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* style = lj/cut/soft or lj/cut/coul/cut/soft or lj/cut/coul/long/soft or lj/cut/tip4p/long/soft or lj/charmm/coul/long/soft or lj/class2/soft or lj/class2/coul/cut/soft or lj/class2/coul/long/soft or coul/cut/soft or coul/long/soft or tip4p/long/soft or morse/soft\n* args = list of arguments for a particular style \n *      lj/cut/soft args = n alpha_lj cutoff \n       n, alpha_LJ = parameters of soft-core potential \n       cutoff = global cutoff for Lennard-Jones interactions (distance units) \n *      lj/cut/coul/cut/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/long/soft args = n alpha_LJ alpha_C cutoff \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/tip4p/long/soft args = otype htype btype atype qdist n alpha_LJ alpha_C cutoff (cutoff2) \n       otype,htype = atom types (numeric or type label) for TIP4P O and H \n       btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/charmm/coul/long/soft args = n alpha_LJ alpha_C inner outer (cutoff) \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 5 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 5 args) \n *      lj/class2/soft args = n alpha_lj cutoff \n       n, alpha_LJ = parameters of soft-core potential \n       cutoff = global cutoff for Lennard-Jones interactions (distance units) \n *      lj/class2/coul/cut/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      coul/cut/soft args = n alpha_C cutoff \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      coul/long/soft args = n alpha_C cutoff \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      tip4p/long/soft args = otype htype btype atype qdist n alpha_C cutoff \n       otype,htype = atom types (numeric or type label) for TIP4P O and H \n       btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      morse/soft args = n lf cutoff \n       n = soft-core parameter \n       lf = transformation range is lf < lambda < 1 \n       cutoff = global cutoff for Morse interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/cut/soft 2.0 0.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 1.0 9.5\n\npair_style lj/cut/coul/cut/soft 2.0 0.5 10.0 9.5\npair_style lj/cut/coul/cut/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.5 10.0\npair_coeff 1 1 0.28 3.1 0.5 10.0 9.5\n\npair_style lj/cut/coul/long/soft 2.0 0.5 10.0 9.5\npair_style lj/cut/coul/long/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.0 10.0\npair_coeff 1 1 0.28 3.1 0.0 10.0 9.5\n\npair_style lj/cut/tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8\npair_style lj/cut/tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8 9.5\npair_coeff * * 0.155 3.1536 1.0\npair_coeff 1 1 0.155 3.1536 1.0 9.5\n\npair_style lj/cut/tip4p/long/soft OW HW HW-OW HW-OW-HW 0.15 2.0 0.5 10.0 9.8\nlabelmap atom 1 OW 2 HW\nlabelmap bond 1 HW-OW\nlabelmap angle 1 HW-OW-HW\npair_coeff * * 0.155 3.1536 1.0\npair_coeff OW OW 0.155 3.1536 1.0 9.5\n\npair_style lj/charmm/coul/long 2.0 0.5 10.0 8.0 10.0\npair_style lj/charmm/coul/long 2.0 0.5 10.0 8.0 10.0 9.0\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 1.0 0.14 3.1\n\npair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5\npair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.0 10.0\npair_coeff 1 1 0.28 3.1 0.0 10.0 9.5\n\npair_style coul/long/soft 1.0 10.0 9.5\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n\npair_style tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n\npair_style morse/soft 4 0.9 10.0\npair_coeff * * 100.0 2.0 1.5 1.0\npair_coeff 1 1 100.0 2.0 1.5 1.0 3.0\n```\nExample input scripts available: examples/PACKAGES/fep\n", - "html_filename": "pair_fep_soft.html", - "short_description": "These pair styles have a soft repulsive core, tunable by a parameter lambda,\nin order to avoid singularities during free energy calculations when sites are\ncreated or annihilated **Beutler**", - "description": "These pair styles have a soft repulsive core, tunable by a parameter lambda,\nin order to avoid singularities during free energy calculations when sites are\ncreated or annihilated **Beutler**. When lambda tends to 0 the pair\ninteraction vanishes with a soft repulsive core. When lambda tends to 1, the pair\ninteraction approaches the normal, non-soft potential. These pair styles\nare suited for \"alchemical\" free energy calculations using the [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) and [compute fep ](https://docs.lammps.org/compute_fep.html) commands.\n\nThe *lj/cut/soft* style and related sub-styles compute the 12-6 Lennard-Jones\nand Coulomb potentials modified by a soft core, with the functional form\n\\[\n E = \\lambda^n 4 \\epsilon \\left\\{\n \\frac{1}{ \\left[ \\alpha_{\\mathrm{LJ}} (1-\\lambda)^2 +\n \\left( \\displaystyle\\frac{r}{\\sigma} \\right)^6 \\right]^2 } -\n \\frac{1}{ \\alpha_{\\mathrm{LJ}} (1-\\lambda)^2 +\n \\left( \\displaystyle\\frac{r}{\\sigma} \\right)^6 }\n \\right\\} \\qquad r < r_c\\]\nThe *lj/class2/soft* style is a 9-6 potential with the exponent of the\ndenominator of the first term in brackets taking the value 1.5 instead of 2\n(other details differ, see the form of the potential in\n[pair_style lj/class2 ](https://docs.lammps.org/pair_class2.html)).\n\nCoulomb interactions can also be damped with a soft core at short distance,\n\\[\n E = \\lambda^n \\frac{ C q_i q_j}{\\epsilon \\left[ \\alpha_{\\mathrm{C}}\n (1-\\lambda)^2 + r^2 \\right]^{1/2}} \\qquad r < r_c\\]\nIn the Coulomb part \\(C\\) is an energy-conversion constant, \\(q_i\\) and\n\\(q_j\\) are the charges on the two atoms, and epsilon is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\n\nThe coefficient lambda is an activation parameter. When \\(\\lambda = 1\\) the\npair potential is identical to a Lennard-Jones term or a Coulomb term or a\ncombination of both. When \\(\\lambda = 0\\) the interactions are\ndeactivated. The transition between these two extrema is smoothed by a soft\nrepulsive core in order to avoid singularities in potential energy and forces\nwhen sites are created or annihilated and can overlap **Beutler**.\n\nThe parameters \\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and\n\\(\\alpha_\\mathrm{C}\\) are set in the [pair_style ](https://docs.lammps.org/pair_style.html) command,\nbefore the cutoffs. Usual choices for the exponent are \\(n = 2\\) or\n\\(n = 1\\). For the remaining coefficients \\(\\alpha_\\mathrm{LJ} = 0.5\\)\nand \\(\\alpha_\\mathrm{C} = 10~\\text{A}^2\\) are appropriate choices. Plots of\nthe 12-6 LJ and Coulomb terms are shown below, for lambda ranging from 1 to 0\nevery 0.1.\n\n ![Image](JPG/lj_soft.jpg) \n\nFor the *lj/cut/coul/cut/soft* or *lj/cut/coul/long/soft* pair styles, as well\nas for the equivalent *class2* versions, the following coefficients must be\ndefined for each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand as in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands,\nor by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\lambda\\) (activation parameter, between 0 and 1)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter two coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair. You cannot specify 2 cutoffs for style *lj/cut/soft*,\nsince it has no Coulombic terms. For the *coul/cut/soft* and\n*coul/long/soft* only lambda and the optional cutoff2 are to be\nspecified.\n\nStyle *lj/cut/tip4p/long/soft* implements a soft-core version of the TIP4P water\nmodel. The usage of the TIP4P pair style is documented in the [pair_lj](https://docs.lammps.org/pair_lj.html) styles. In the soft version the parameters \\(n\\),\n\\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm {C}\\) are set in the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, after the specific parameters of the\nTIP4P water model and before the cutoffs. The activation parameter lambda is\nsupplied as an argument of the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, after\nepsilon and sigma and before the optional cutoffs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nStyle *lj/charmm/coul/long/soft* implements a soft-core version of the modified\n12-6 LJ potential used in CHARMM and documented in the [pair_stylelj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html) style. In the soft version the parameters\n\\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm{C}\\) are set in\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command, before the global cutoffs. The\nactivation parameter lambda is introduced as an argument of the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command, after \\(\\epsilon\\) and \\(\\sigma\\) and before the\noptional eps14 and sigma14.\n\nStyle *lj/class2/soft* implements a soft-core version of the 9-6 potential in\n[pair_style lj/class2 ](https://docs.lammps.org/pair_class2.html). In the soft version the parameters\n\\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm{C}\\) are set in the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, before the global cutoffs. The\nactivation parameter lambda is introduced as an argument of the the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, after \\(\\epsilon\\) and\n\\(\\sigma\\) and before the optional cutoffs.\n\nThe *coul/cut/soft*, *coul/long/soft* and *tip4p/long/soft* sub-styles are\ndesigned to be combined with other pair potentials via the [pair_stylehybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. This is because they have no repulsive\ncore. Hence, if used by themselves, there will be no repulsion to keep two\noppositely charged particles from overlapping each other. In this case, if\n\\(\\lambda = 1\\), a singularity may occur. These sub-styles are suitable to\nrepresent charges embedded in the Lennard-Jones radius of another site (for\nexample hydrogen atoms in several water models). The \\(\\lambda\\) must\nbe defined for each pair, and *coul/cut/soft* can accept an optional cutoff as\nthe second coefficient.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the soft-core Coulomb potentials with long-range solvers (\\\n > *coul/long/soft*, *lj/cut/coul/long/soft*, etc.) in a free energy\n > calculation in which sites holding electrostatic charges are being created or\n > annihilated (using [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) and [compute fep > ](https://docs.lammps.org/compute_fep.html)) it is important to adapt both the \\(\\lambda\\) activation\n > parameter (from 0 to 1, or the reverse) and the value of the charge (from 0\n > to its final value, or the reverse). This ensures that long-range\n > electrostatic terms (kspace) are correct. It is not necessary to use\n > soft-core Coulomb potentials if the van der Waals site is present during the\n > free-energy route, thus avoiding overlap of the charges. Examples are\n > provided in the LAMMPS source directory tree, under examples/PACKAGES/fep. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To avoid division by zero do not set \\(\\sigma = 0\\) in the *lj/cut/soft*\n > and related styles; use the lambda parameter instead to activate/deactivate\n > interactions, or use \\(\\epsilon = 0\\) and \\(\\sigma = 1\\).\n > Alternatively, when sites do not interact though the Lennard-Jones term\n > the *coul/long/soft* or similar sub-style can be used via the\n > [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. \n > \n\n----------\n\nThe *morse/soft* variant modifies the [pair_morse ](https://docs.lammps.org/pair_morse.html) style at\nshort range to have a soft core. The functional form differs from that of the\n*lj/soft* styles, and is instead given by:\n\\[\\begin{align*} \n \\begin{split}\n s(\\lambda) =& (1 - \\lambda) / (1 - \\lambda_f), \\qquad B = -2D e^{-2 \\alpha\n r_0} (e^{\\alpha r_0} - 1) / 3 \\\\\n E =& D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right] +\n s(\\lambda) B e^{-3\\alpha(r-r_0)}, \\qquad \\hspace{2.85em}\\lambda \\geq\n \\lambda_f,\\quad r < r_c \\\\\n E =& \\left( D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right] + B e^{-3\\alpha(r-r_0)} \\right)(\\lambda/\\lambda_f)^n, \\qquad \\lambda\n < \\lambda_f,\\quad r < r_c\n \\end{split} \\end{align*} \\]\nThe *morse/soft* style requires the following pair coefficients:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(\\lambda\\) (unitless, between 0.0 and 1.0)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global morse cutoff is\nused.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe different versions of the *lj/cut/soft* pair styles support mixing. For\natom type pairs I,J and I != J, the \\(\\epsilon\\) and \\(\\sigma\\)\ncoefficients and cutoff distance for these pair styles can be mixed. The default\nmix value is *geometric* for 12-6 styles.\n\nThe mixing rule for epsilon and sigma for *lj/class2/soft* 9-6 potentials is to\nuse the *sixthpower* formulas. The [pair_modify mix ](https://docs.lammps.org/pair_modify.html) setting\nis thus ignored for class2 potentials for \\(\\epsilon\\) and\n\\(\\sigma\\). However it is still followed for mixing the cutoff distance. See\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) command for details.\n\nThe *morse/soft* pair style does not support mixing. Thus, coefficients for all\nLJ pairs must be specified explicitly.\n\nAll of the pair styles with soft core support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Lennard-Jones portion of the pair\ninteraction.\n\nThe different versions of the *lj/cut/soft* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail\ncorrection to the energy and pressure for the Lennard-Jones portion of the pair\ninteraction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The analytical form of the tail corrections for energy and pressure used in\n > the *lj/cut/soft* potentials are approximate, being identical to that of the\n > corresponding non-soft potentials scaled by a factor \\(\\lambda^n\\). The\n > errors due to this approximation should be negligible. For example, for a\n > cutoff of \\(2.5\\sigma\\) this approximation leads to maximum relative\n > errors in tail corrections of the order of 1e-4 for energy and virial\n > (\\(\\alpha_\\mathrm{LJ} = 0.5, n = 2\\)). The error vanishes when lambda\n > approaches 0 or 1. Note that these are the errors affecting the long-range\n > tail (itself a correction to the interaction energy) which includes other\n > approximations, namely that the system is homogeneous (local density equal\n > the average density) beyond the cutoff. \n > \n\nThe *morse/soft* pair style does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to energy and\npressure.\n\nAll of these pair styles write information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file.\n\n----------\n\n**(Beutler)** Beutler, Mark, van Schaik, Gerber, van Gunsteren, Chem\nPhys Lett, 222, 529 (1994). \n \n**(Beutler)** Beutler, Mark, van Schaik, Gerber, van Gunsteren, Chem\nPhys Lett, 222, 529 (1994). \n ", - "restrictions": "The pair styles with soft core are only enabled if LAMMPS was built with the\nFEP package. The *long* versions also require the KSPACE package to be\ninstalled. The soft *tip4p* versions also require the MOLECULE package to be\ninstalled. These styles are only enabled if LAMMPS was built with those\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html),\n[fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html), [compute fep ](https://docs.lammps.org/compute_fep.html)\n" + "parameters": "* fix-ID = ID of the fix to modify\n* one or more keyword/value pairs may be appended\n* keyword = bodyforces or colname or dynamic/dof or energy or press or respa or temp or virial \n *        bodyforces value = early or late \n         early/late = compute rigid-body forces/torques early or late in the timestep \n *        colname values = ID string \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a fix output property keyword or reference to compute, fix, property or variable. \n *        dynamic/dof value = yes or no \n         yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature \n *        energy value = yes or no \n *        press value = compute ID that calculates a pressure \n *        respa value = 1 to *max respa level* or 0 (for outermost level) \n *        temp value = compute ID that calculates a temperature \n *        virial value = yes or no \n", + "examples": "\n```lmps\nfix_modify 3 temp myTemp press myPress\nfix_modify 1 energy yes\nfix_modify tether respa 2\nfix_modify ave colname c_thermo_press Pressure colname 1 Temperature\n```\n", + "html_filename": "fix_modify.html", + "short_description": "Modify one or more parameters of a previously defined fix", + "description": "Modify one or more parameters of a previously defined fix. Only\nspecific fix styles support specific parameters. See the doc pages\nfor individual fix commands for info on which ones support which\nfix_modify parameters.\n\nThe *temp* keyword is used to determine how a fix computes\ntemperature. The specified compute ID must have been previously\ndefined by the user via the [compute ](https://docs.lammps.org/compute.html) command and it must\nbe a style of compute that calculates a temperature. All fixes that\ncompute temperatures define their own compute by default, as described\nin their documentation. Thus this option allows the user to override\nthe default method for computing T.\n\nThe *press* keyword is used to determine how a fix computes pressure.\nThe specified compute ID must have been previously defined by the user\nvia the [compute ](https://docs.lammps.org/compute.html) command and it must be a style of\ncompute that calculates a pressure. All fixes that compute pressures\ndefine their own compute by default, as described in their\ndocumentation. Thus this option allows the user to override the\ndefault method for computing P.\n\nThe *energy* keyword can be used with fixes that support it, which is\nexplained at the bottom of their doc page. *Energy yes* will add a\ncontribution to the potential energy of the system. More\nspecifically, the fix's global or per-atom energy is included in the\ncalculation performed by the [compute pe ](https://docs.lammps.org/compute_pe.html) or\n[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) commands. The former is what\nis used the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for output of\nany quantity that includes the global potential energy of the system.\nNote that the [compute pe ](https://docs.lammps.org/compute_pe.html) and [compute pe/atom](https://docs.lammps.org/compute_pe_atom.html) commands also have an option to include or exclude\nthe contribution from fixes. For fixes that tally a global energy, it\ncan also be printed with thermodynamic output by using the keyword\nf_ID in the thermo_style custom command, where ID is the fix-ID of the\nappropriate fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are performing an [energy minimization ](https://docs.lammps.org/minimize.html) with\n > one of these fixes and want the energy and forces it produces to be\n > part of the optimization criteria, you must specify the *energy\n > yes* setting. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For most fixes that support the *energy* keyword, the default\n > setting is *no*. For a few it is *yes*, when a user would expect\n > that to be the case. The page of each fix gives the default. \n > \n\nThe *virial* keyword can be used with fixes that support it, which is\nexplained at the bottom of their doc page. *Virial yes* will add a\ncontribution to the virial of the system. More specifically, the\nfix's global or per-atom virial is included in the calculation\nperformed by the [compute pressure ](https://docs.lammps.org/compute_pressure.html) or\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former\nis what is used the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for\noutput of any quantity that includes the global pressure of the\nsystem. Note that the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands also have an\noption to include or exclude the contribution from fixes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are performing an [energy minimization ](https://docs.lammps.org/minimize.html) with\n > [box relaxation ](https://docs.lammps.org/fix_box_relax.html) and one of these fixes and\n > want the virial contribution of the fix to be part of the\n > optimization criteria, you must specify the *virial yes* setting. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For most fixes that support the *virial* keyword, the default\n > setting is *no*. For a few it is *yes*, when a user would expect\n > that to be the case. The page of each fix gives the default. \n > \n\nFor fixes that set or modify forces, it may be possible to select at\nwhich [r-RESPA ](https://docs.lammps.org/run_style.html) level the fix operates via the *respa*\nkeyword. The RESPA level at which the fix is active can be selected.\nThis is a number ranging from 1 to the number of levels. If the RESPA\nlevel is larger than the current maximum, the outermost level will be\nused, which is also the default setting. This default can be restored\nusing a value of *0* for the RESPA level. The affected fix has to be\nenabled to support this feature; if not, *fix_modify* will report an\nerror. Active fixes with a custom RESPA level setting are reported\nwith their specified level at the beginning of a r-RESPA run.\n\nThe *dynamic/dof* keyword determines whether the number of atoms N in\nthe fix group and their associated degrees of freedom are re-computed\neach time a temperature is computed. Only fix styles that calculate\ntheir own internal temperature use this option. Currently this is only\nthe [fix rigid/nvt/small ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/npt/small](https://docs.lammps.org/fix_rigid.html) commands for the purpose of thermostatting rigid body\ntranslation and rotation. By default, N and their DOF are assumed to be\nconstant. If you are adding atoms or molecules to the system (see the\n[fix pour ](https://docs.lammps.org/fix_pour.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html), and\n[fix gcmc ](https://docs.lammps.org/fix_gcmc.html) commands) or expect atoms or molecules to be\nlost (e.g. due to exiting the simulation box or via [fix evaporate](https://docs.lammps.org/fix_evaporate.html)), then this option should be used to ensure the\ntemperature is correctly normalized.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Other thermostatting fixes, such as [fix nvt ](https://docs.lammps.org/fix_nh.html), do not\n > use the *dynamic/dof* keyword because they use a temperature compute\n > to calculate temperature. See the [compute_modify dynamic/dof > ](https://docs.lammps.org/compute_modify.html) command for a similar way to ensure correct\n > temperature normalization for those thermostats. \n > \n\nThe *bodyforces* keyword determines whether the forces and torques\nacting on rigid bodies are computed *early* at the post-force stage of\neach timestep (right after per-atom forces have been computed and\ncommunicated among processors), or *late* at the final-integrate stage\nof each timestep (after any other fixes have finished their post-force\ntasks). Only the rigid-body integration fixes use this option, which\nincludes [fix rigid ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/small](https://docs.lammps.org/fix_rigid.html), and their variants, and also [fix poems ](https://docs.lammps.org/fix_poems.html).\n\nThe default is *late* . If there are other fixes that add forces to\nindividual atoms, then the rigid-body constraints will include these\nforces when time-integrating the rigid bodies. If *early* is\nspecified, then new fixes can be written that use or modify the\nper-body force and torque, before time-integration of the rigid bodies\noccurs. Note however this has the side effect, that fixes such as\n[fix addforce ](https://docs.lammps.org/fix_addforce.html), [fix setforce ](https://docs.lammps.org/fix_setforce.html),\n[fix spring ](https://docs.lammps.org/fix_spring.html), which add forces to individual atoms\nwill have no effect on the motion of the rigid bodies if they are\nspecified in the input script after the fix rigid command. LAMMPS\nwill give a warning if that is the case.\n\n\nThe *colname* keyword can be used to change the default header keywords\nin output files of fix styles that support it: currently only [fixave/time ](https://docs.lammps.org/fix_ave_time.html) is supported. The setting for *ID string*\nreplaces the default text with the provided string. *ID* can be a\npositive integer when it represents the column number counting from the\nleft, a negative integer when it represents the column number from the\nright (i.e. -1 is the last column/keyword), or a custom fix output\nkeyword (or compute, fix, property, or variable reference) and then it\nreplaces the string for that specific keyword. The *colname* keyword can\nbe used multiple times. If multiple *colname* settings refer to the same\nkeyword, the last setting has precedence.\n", + "restrictions": "none\n", + "related": "[fix ](https://docs.lammps.org/fix.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html), [thermo_style ](https://docs.lammps.org/thermo_style.html)\n" }, { "command": [ - "pair_style yukawa", - "pair_style yukawa/gpu", - "pair_style yukawa/omp", - "pair_style yukawa/kk" + "fix_modify AtC unfix" ], "syntax": [ - "pair_style yukawa kappa cutoff" + "fix_modify unfix " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "yukawa", - "type": 3, - "choices": [ - "yukawa", - "yukawa/gpu", - "yukawa/omp", - "yukawa/kk" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "kappa", + "arg": "unfix", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* kappa = screening length (inverse distance units)\n* cutoff = global cutoff for Yukawa interactions (distance units) \n", - "examples": "\n```lmps\npair_style yukawa 2.0 2.5\npair_coeff 1 1 100.0 2.3\npair_coeff * * 100.0\n```\n", - "html_filename": "pair_yukawa.html", - "short_description": "Style *yukawa* computes pairwise interactions with the formula\n\\[\n E = A \\frac{e^{- \\kappa r}}{r} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "Style *yukawa* computes pairwise interactions with the formula\n\\[\n E = A \\frac{e^{- \\kappa r}}{r} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy\\*distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global yukawa\ncutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is an energy value mixed\nlike a LJ epsilon. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": " none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* unfix = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply boundary condition \n", + "examples": "\n```lmps\nfix_modify AtC unfix temperature groupNAME\n```\n", + "html_filename": "atc_unfix.html", + "short_description": "Removes constraint on field values for specified nodes", + "description": "Removes constraint on field values for specified nodes.\n", + "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fix ](https://docs.lammps.org/atc_fix.html)\n" }, { "command": [ - "compute gyration/shape" + "dihedral_write" ], "syntax": [ - "compute ID group-ID gyration/shape compute-ID" + "dihedral_write dtype N file keyword" ], "args": [ [ { - "arg": "compute", + "arg": "dihedral_write", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dtype", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "gyration/shape", - "type": 1, + "arg": "file", + "type": 2, "choices": [] }, { - "arg": "compute-ID", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/shape = style name of this compute command\n* compute-ID = ID of [compute gyration ](https://docs.lammps.org/compute_gyration.html) command \n", - "examples": "\n```lmps\ncompute 1 molecule gyration/shape pe\n```\n", - "html_filename": "compute_gyration_shape.html", - "short_description": "Define a computation that calculates the eigenvalues of the gyration tensor of a\ngroup of atoms and three shape parameters", - "description": "Define a computation that calculates the eigenvalues of the gyration tensor of a\ngroup of atoms and three shape parameters. The computation includes all effects\ndue to atoms passing through periodic boundaries.\n\nThe three computed shape parameters are the asphericity, \\(b\\),\nthe acylindricity, \\(c\\), and the relative shape anisotropy, \\(k\\),\nviz.,\n\\[.. math::\\]\n b &= l_z - \\frac12(l_y+l_x) \\\\\n c &= l_y - l_x \\\\\n k &= \\frac{3}{2} \\frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \\frac{1}{2}\n\nwhere \\(l_x \\le l_y \\le l_z\\) are the three eigenvalues of the gyration\ntensor. A general description of these parameters is provided in\n**Mattice1** while an application to polymer systems\ncan be found in **Theodorou1**.\nThe asphericity is always non-negative and zero only when the three principal\nmoments are equal. This zero condition is met when the distribution of\nparticles is spherically symmetric (hence the name asphericity) but also\nwhenever the particle distribution is symmetric with respect to the three\ncoordinate axes (e.g., when the particles are distributed uniformly on a cube,\ntetrahedron or other Platonic solid). The acylindricity is always non-negative\nand zero only when the two principal moments are equal. This zero condition is\nmet when the distribution of particles is cylindrically symmetric (hence the\nname, acylindricity), but also whenever the particle distribution is symmetric\nwith respect to the two coordinate axes (e.g., when the\nparticles are distributed uniformly on a regular prism).\nThe relative shape anisotropy is bounded between zero (if all points are\nspherically symmetric) and one (if all points lie on a line).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the gyration tensor in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html)\n > command for a discussion of image flags and how they are set for each\n > atom. You can reset the image flags (e.g., to 0) before invoking this\n > compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 6, which can be accessed by\nindices 1--6. The first three values are the eigenvalues of the gyration tensor\nfollowed by the asphericity, the acylindricity and the relative shape\nanisotropy. The computed values can be used by any command that uses global\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values calculated by this compute are\n\"intensive\". The first five vector values will be in\ndistance\\ \\(2\\) [units ](https://docs.lammps.org/units.html) while the sixth one is dimensionless.\n\n**(Mattice1)** Mattice, Suter, Conformational Theory of Large Molecules, Wiley, New York, 1994. \n \n**(Theodorou1)** Theodorou, Suter, Macromolecules, 18, 1206 (1985). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute gyration ](https://docs.lammps.org/compute_gyration.html)\n" + "parameters": "* dtype = dihedral type\n* N = # of values\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values \n", + "examples": "\n```lmps\ndihedral_write 1 500 table.txt Harmonic_1\ndihedral_write 3 1000 table.txt Harmonic_3\n```\n", + "html_filename": "dihedral_write.html", + "short_description": "\nWrite energy and force values to a file as a function of the dihedral\nangle for the currently defined dihedral potential", + "description": "\nWrite energy and force values to a file as a function of the dihedral\nangle for the currently defined dihedral potential. Force in this\ncontext means the force with respect to the dihedral angle, not the\nforce on individual atoms. This is useful for plotting the potential\nfunction or otherwise debugging its values. The resulting file can also\nbe used as input for use with [dihedral style table](https://docs.lammps.org/dihedral_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed for dihedrals ranging from 0\ndegrees to 360 degrees for 4 interacting atoms forming an dihedral type\ndtype, using the appropriate [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncoefficients. N evenly spaced dihedrals are used. Since 0 and 360\ndegrees are the same dihedral angle, the latter entry is skipped.\n\nFor example, for N = 6, values would be computed at\n\\(\\phi = 0, 60, 120, 180, 240, 300\\).\n\nThe file is written in the format used as input for the\n[dihedral_style table ](https://docs.lammps.org/dihedral_table.html) option with *keyword* as\nthe section name. Each line written to the file lists an index number\n(1-N), an dihedral angle (in degrees), an energy (in energy units), and\na force (in force units per radians^2). In case a new file is created,\nthe first line will be a comment with a \"DATE:\" and \"UNITS:\" tag with\nthe current date and [units ](https://docs.lammps.org/units.html) settings. For subsequent\ninvocations of the *dihedral_write* command for the same file, data will\nbe appended and the current units settings will be compared to the data\nfrom the header, if present. The *dihedral_write* will refuse to add a\ntable to an existing file if the units are not the same.\n", + "restrictions": "All force field coefficients for dihedrals and other kinds of interactions\nmust be set before this command can be invoked.\n\nThe table of the dihedral energy and force data data is created by using a\nseparate, internally created, new LAMMPS instance with a dummy system of\n4 atoms for which the dihedral potential energy is computed after\ntransferring the dihedral style and coefficients and arranging the 4 atoms\ninto the corresponding geometries. The dihedral force is then determined\nfrom the potential energies through numerical differentiation. As a\nconsequence of this approach, not all dihedral styles are compatible. The\nfollowing conditions must be met:\n\n- The dihedral style must be able to write its coefficients to a data file.\n This condition excludes for example [dihedral style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) and\n [dihedral style table ](https://docs.lammps.org/dihedral_table.html).\n- The potential function must not have any terms that depend on geometry\n properties other than the dihedral. This condition excludes for\n example [dihedral style class2 ](https://docs.lammps.org/dihedral_class2.html). Please note\n that the *write_dihedral* command has no way of checking for this\n condition. It will check the style name against an internal list of\n known to be incompatible styles. The resulting tables may be bogus\n for unlisted dihedral styles if the requirement is not met. It is\n thus recommended to make careful tests for any created tables.\n", + "related": "[dihedral_style table ](https://docs.lammps.org/dihedral_table.html), [bond_write ](https://docs.lammps.org/bond_write.html),\n[angle_write ](https://docs.lammps.org/angle_write.html), [dihedral_style ](https://docs.lammps.org/dihedral_style.html),\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "pair_style coul/diel", - "pair_style coul/diel/omp" + "pair_style lebedeva/z" ], "syntax": [ - "pair_style coul/diel cutoff" + "pair_style [hybrid/overlay ...] lebedeva/z cutoff" ], "args": [ [ @@ -13487,12 +12606,19 @@ export const command_docs = [ "choices": [] }, { - "arg": "coul/diel", - "type": 3, - "choices": [ - "coul/diel", - "coul/diel/omp" - ] + "arg": "[hybrid/overlay", + "type": 2, + "choices": [] + }, + { + "arg": "...]", + "type": 2, + "choices": [] + }, + { + "arg": "lebedeva/z", + "type": 1, + "choices": [] }, { "arg": "cutoff", @@ -13501,116 +12627,137 @@ export const command_docs = [ } ] ], - "parameters": "cutoff = global cutoff (distance units) \n", - "examples": "\n```lmps\npair_style coul/diel 3.5\npair_coeff 1 4 78. 1.375 0.112\n```\n", - "html_filename": "pair_coul_diel.html", - "short_description": "Style *coul/diel* computes a Coulomb correction for implicit solvent\nion interactions in which the dielectric permittivity is distance dependent", - "description": "Style *coul/diel* computes a Coulomb correction for implicit solvent\nion interactions in which the dielectric permittivity is distance dependent.\nThe dielectric permittivity \\(\\epsilon_D(r)\\) connects to limiting regimes:\nOne limit is defined by a small dielectric permittivity (close to vacuum)\nat or close to contact separation between the ions. At larger separations\nthe dielectric permittivity reaches a bulk value used in the regular Coulomb\ninteraction coul/long or coul/cut.\nThe transition is modeled by a hyperbolic function which is incorporated\nin the Coulomb correction term for small ion separations as follows\n\\[\\begin{align*} \n E = & \\frac{Cq_iq_j}{\\epsilon r} \\left( \\frac{\\epsilon}{\\epsilon_D(r)}-1\\right) \\qquad r < r_c \\\\\n \\epsilon_D(r) = & \\frac{5.2+\\epsilon}{2} + \\frac{\\epsilon-5.2}{2}\\tanh\\left(\\frac{r-r_{me}}{\\sigma_e}\\right) \\end{align*} \\]\nwhere \\(r_{me}\\) is the inflection point of \\(\\epsilon_D(r)\\) and \\(\\sigma_e\\) is a slope\ndefining length scale. C is the same Coulomb conversion factor as in the\npair_styles coul/cut, coul/long, and coul/debye. In this way the Coulomb\ninteraction between ions is corrected at small distances r. The lower\nlimit of \\(\\epsilon_D(r \\to 0) = 5.2\\) due to dielectric saturation **Stiles**\nwhile the Coulomb interaction reaches its bulk limit by setting\n\\(\\epsilon_D(r \\to \\infty) = \\epsilon\\), the bulk value of the solvent which is 78\nfor water at 298K.\n\nExamples of the use of this type of Coulomb interaction include implicit\nsolvent simulations of salt ions\n**Lenart1** and of ionic surfactants **Jusufi1**.\nNote that this potential is only reasonable for implicit solvent simulations\nand in combination with coul/cut or coul/long. It is also usually combined\nwith gauss/cut, see **Lenart1** or **Jusufi1**.\n\nThe following coefficients must be defined for each pair of atom\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (no units)\n* \\(r_{me}\\) (distance units)\n* \\(\\sigma_e\\) (distance units)\n\nThe global cutoff (\\(r_c\\)) specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support parameter mixing. Coefficients must\nbe given explicitly for each type of particle pairs.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Gauss-potential portion of the pair\ninteraction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stiles)** Stiles, Hubbard, and Kayser, J Chem Phys, 77,\n6189 (1982). \n \n**(Lenart1)** Lenart, Jusufi, and Panagiotopoulos, J Chem Phys, 126,\n044509 (2007). \n \n**(Jusufi1)** Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,\n13783 (2008). \n ", - "restrictions": "This style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair_style gauss/cut ](https://docs.lammps.org/pair_gauss.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style hybrid/overlay lebedeva/z 20.0\npair_coeff * * none\npair_coeff 1 2 lebedeva/z CC.Lebedeva C C\n\npair_style hybrid/overlay rebo lebedeva/z 14.0\npair_coeff * * rebo CH.rebo C C\npair_coeff 1 2 lebedeva/z CC.Lebedeva C C\n```\n", + "html_filename": "pair_lebedeva_z.html", + "short_description": "The *lebedeva/z* pair style computes the Lebedeva interaction potential\nas described in **Leb01** and **Leb02**", + "description": "The *lebedeva/z* pair style computes the Lebedeva interaction potential\nas described in **Leb01** and **Leb02**. An important simplification is made, which is to take all\nnormals along the z-axis.\n\nThe Lebedeva potential is intended for the description of the interlayer\ninteraction between graphene layers. To perform a realistic simulation,\nthis potential must be used in combination with an intralayer potential\nsuch as [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\nfacilitated by using pair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). To\nkeep the intralayer properties unaffected, the interlayer interaction\nwithin the same layers should be avoided. This can be achieved by\nassigning different atom types to atoms of different layers (e.g. 1 and\n2 in the examples above).\n\nOther interactions can be set to zero using pair_style *none* .\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij}\\\\\n V_{ij} = & B e^{-\\alpha(r_{ij} - z_0)} \\\\\n & + C(1 + D_1\\rho^2_{ij} + D_2\\rho^4_{ij}) e^{-\\lambda_1\\rho^2_{ij}} e^{-\\lambda_2 (z^2_{ij} - z^2_0)} \\\\\n & - A \\left(\\frac{z_0}{r_ij}\\right)^6 + A \\left( \\frac{z_0}{r_c} \\right)^6 \\\\\n \\rho^2_{ij} = & x^2_{ij} + y^2_{ij} \\qquad (\\mathbf{n_i} \\equiv \\mathbf{\\hat{z}}) \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth forces.\nEnergies are shifted so that they go continuously to zero at the cutoff assuming\nthat the exponential part of \\(V_{ij}\\) (first term) decays sufficiently fast.\nThis shift is achieved by the last term in the equation for \\(V_{ij}\\) above.\n\nThe provided parameter file (CC.Lebedeva) contains two sets of parameters.\n\n- The first set (element name \"C\") is suitable for normal conditions and\n is taken from **Popov**\n- The second set (element name \"C1\") is suitable for high-pressure\n conditions and is taken from **Koziol**\n\nBoth sets contain an additional parameter, *S*, that can be used to\nfacilitate scaling of energies and is set to 1.0 by default.\n\n**(Leb01)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Phys. Rev. B, 84, 245437 (2011) \n \n**(Leb02)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Physica E: 44, 949-954 (2012) \n \n**(Popov)** A.M. Popov, I. V. Lebedeva, A. A. Knizhnik, Y. E. Lozovik and B. V. Potapkin, Chem. Phys. Lett. 536, 82-86 (2012). \n \n**(Koziol)** Z. Koziol, G. Gawlik and J. Jagielski, Chinese Phys. B 28, 096101 (2019). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp/graphene/hbd ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html).\n" }, { "command": [ - "pair_style comb", - "pair_style comb/omp", - "pair_style comb3" + "compute angmom/chunk" ], "syntax": [ - "pair_style comb", - "pair_style comb3 keyword" + "compute ID group-ID angmom/chunk chunkID" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "comb", - "type": 3, - "choices": [ - "comb", - "comb/omp" - ] - } - ], - [ - { - "arg": "pair_style", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "comb3", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "angmom/chunk", + "type": 1, + "choices": [] + }, + { + "arg": "chunkID", "type": 2, "choices": [] } ] ], - "parameters": " *    keyword = polar \n     polar value = polar_on or polar_off = whether or not to include atomic polarization \n", - "examples": "\n```lmps\npair_style comb\npair_coeff * * ../potentials/ffield.comb Si\npair_coeff * * ../potentials/ffield.comb Hf Si O\n\npair_style comb3 polar_off\npair_coeff * * ../potentials/ffield.comb3 O Cu N C O\n```\n", - "html_filename": "pair_comb.html", - "short_description": "Style *comb* computes the second generation variable charge COMB\n(Charge-Optimized Many-Body) potential", - "description": "Style *comb* computes the second generation variable charge COMB\n(Charge-Optimized Many-Body) potential. Style *comb3* computes the\nthird-generation COMB potential. These COMB potentials are described\nin **COMB** and **COMB3**. Briefly, the\ntotal energy \\(E_T\\) of a system of atoms is given by\n\\[\\begin{align*} \n E_T = & \\sum_i [ E_i^{self} (q_i) + \\sum_{j>i} [E_{ij}^{short} (r_{ij}, q_i, q_j) + E_{ij}^{Coul} (r_{ij}, q_i, q_j)] + \\\\\n & E^{polar} (q_i, r_{ij}) + E^{vdW} (r_{ij}) + E^{barr} (q_i) + E^{corr} (r_{ij}, \\theta_{jik})] \\end{align*} \\]\nwhere \\(E_i^{self}\\) is the self-energy of atom *i* (including\natomic ionization energies and electron affinities),\n\\(E_{ij}^{short}\\) is the bond-order potential between atoms *i* and\n*j*, \\(E_{ij}^{Coul}\\) is the Coulomb interactions,\n\\(E^{polar}\\) is the polarization term for organic systems (style\n*comb3* only), \\(E^{vdW}\\) is the van der Waals energy (style\n*comb3* only), \\(E^{barr}\\) is a charge barrier function, and\n\\(E^{corr}\\) are angular correction terms.\n\nThe COMB potentials (styles *comb* and *comb3* ) are variable charge\npotentials. The equilibrium charge on each atom is calculated by the\nelectronegativity equalization (QEq) method. See **Rick2** for\nfurther details. This is implemented by the [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command, which should normally be\nspecified in the input script when running a model with the COMB\npotential. The [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command has options\nthat determine how often charge equilibration is performed, its\nconvergence criterion, and which atoms are included in the\ncalculation.\n\nOnly a single pair_coeff command is used with the *comb* and *comb3*\nstyles which specifies the COMB potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the potential file in the pair_coeff\ncommand, where N is the number of LAMMPS atom types.\n\nFor example, if your LAMMPS simulation of a Si/SiO2/\nHfO2 interface has 4 atom types, and you want the first and\nlast to be Si, the second to be Hf, and the third to be O, and you would\nuse the following pair_coeff command:\n\n```lmps\npair_coeff * * ../potentials/ffield.comb Si Hf O Si\n```\nThe first two arguments must be \\* \\* so as to span all LAMMPS atom\ntypes. The first and last Si arguments map LAMMPS atom types 1 and 4\nto the Si element in the *ffield.comb* file. The second Hf argument\nmaps LAMMPS atom type 2 to the Hf element, and the third O argument\nmaps LAMMPS atom type 3 to the O element in the potential file. If a\nmapping value is specified as NULL, the mapping is not performed.\nThis can be used when a *comb* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\nFor style *comb*, the provided potential file *ffield.comb* contains\nall currently-available second generation COMB parameterizations: for Si,\nCu, Hf, Ti, O, their oxides and Zr, Zn and U metals. For style\n*comb3*, the potential file *ffield.comb3* contains all\ncurrently-available third generation COMB parameterizations: O, Cu, N, C,\nH, Ti, Zn and Zr. The status of the optimization of the compounds, for\nexample Cu2O, TiN and hydrocarbons, are given in the\nfollowing table:\n\n| | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|\n| | O | Cu | N | C | H | Ti | Zn | Zr |\n| O | F | F | F | F | F | F | F | F |\n| Cu | F | F | P | F | F | P | F | P |\n| N | F | P | F | M | F | P | P | P |\n| C | F | F | M | F | F | M | M | M |\n| H | F | F | F | F | F | M | M | F |\n| Ti | F | P | P | M | M | F | P | P |\n| Zn | F | F | P | M | M | P | F | P |\n| Zr | F | P | P | M | F | P | P | F |\n\n* F = Fully optimized\n* M = Only optimized for dimer molecule\n* P = in progress, but have it from mixing rule\n\nFor style *comb3*, in addition to ffield.comb3, a special parameter\nfile, *lib.comb3*, that is exclusively used for C/O/H systems, will be\nautomatically loaded if carbon atom is detected in LAMMPS input\nstructure. This file must be in your working directory or in the\ndirectories listed in the environment variable ``LAMMPS_POTENTIALS``, as\ndescribed on the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command doc page.\n\nThe keyword *polar* indicates whether the force field includes\nthe atomic polarization. Since the equilibration of the polarization\nhas not yet been implemented, it can only set polar_off at present.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can not use potential file *ffield.comb* with style *comb3*,\n > nor file *ffield.comb3* with style *comb* . \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThese pair styles does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThese pair styles do not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style, pair_coeff, and [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) commands in an input script that reads a\nrestart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(COMB)** T.-R. Shan, B. D. Devine, T. W. Kemper, S. B. Sinnott, and\nS. R. Phillpot, Phys. Rev. B 81, 125328 (2010) \n \n**(COMB3)** T. Liang, T.-R. Shan, Y.-T. Cheng, B. D. Devine, M. Noordhoek,\nY. Li, Z. Lu, S. R. Phillpot, and S. B. Sinnott, Mat. Sci. & Eng: R 74,\n255-279 (2013). \n \n**(Rick2)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994). \n ", - "restrictions": "These pair styles are part of the MANYBODY package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe COMB potentials in the *ffield.comb* and *ffield.comb3* files provided\nwith LAMMPS (see the potentials directory) are parameterized for metal\n[units ](https://docs.lammps.org/units.html). You can use the COMB potential with any LAMMPS\nunits, but you would need to create your own COMB potential file with\ncoefficients listed in the appropriate units if your simulation\ndoes not use \"metal\" units.\n", - "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angmom/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid angmom/chunk molchunk\n```\n", + "html_filename": "compute_angmom_chunk.html", + "short_description": "Define a computation that calculates the angular momentum of multiple\nchunks of atoms", + "description": "Define a computation that calculates the angular momentum of multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the 3 components of the angular momentum\nvector for each chunk, due to the velocity/momentum of the individual\natoms in the chunk around the center-of-mass of the chunk. The\ncalculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's angular\n > momentum in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g. to 0) before invoking this compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute angmom/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all angmom/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns = 3 for the three\n(*x*, *y*, *z*) components of the angular momentum for each chunk.\nThese values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe array values are \"intensive\". The array values will be in\nmass-velocity-distance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[variable angmom() function ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "compute smd/ulsph/strain/rate" + "pair_style smd/ulsph" ], "syntax": [ - "compute ID group-ID smd/ulsph/strain/rate" + "pair_style smd/ulsph args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "smd/ulsph", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* these keywords must be given \n *    keyword = \\*DENSITY_SUMMATION or \\*DENSITY_CONTINUITY and \\*VELOCITY_GRADIENT or \\*NO_VELOCITY_GRADIENT and \\*GRADIENT_CORRECTION or \\*NO_GRADIENT_CORRECTION \n", + "examples": "\n```lmps\npair_style smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION\n```\n", + "html_filename": "pair_smd_ulsph.html", + "short_description": "The *smd/ulsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and an updated Lagrangian\nSmooth-Particle Hydrodynamics algorithm", + "description": "The *smd/ulsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and an updated Lagrangian\nSmooth-Particle Hydrodynamics algorithm.\n\nThis pair style is invoked similar to the following command:\n\n[``lmpspair_style smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTIONpair_coeff i j *COMMON rho0 c0 Q1 Cp hg &*END```Here, *i* and *j* denote the *LAMMPS* particle types for which thispair style is defined. Note that *i* and *j* can be different, i.e.,*ulsph* cross interactions between different particle types areallowed. However, *i* --\\ *i* respectively *j* --\\ *j* pair_coeff lines haveto precede a cross interaction. In contrast to the usual *LAMMPS**pair coeff* definitions, which are given solely a number of floatsand integers, the *ulsph* *pair coeff* definition is organized usingkeywords. These keywords mark the beginning of different sets ofparameters for particle properties, material constitutive models, anddamage models. The *pair coeff* line must be terminated with the*\\*END* keyword. The use the line continuation operator *&* isrecommended. A typical invocation of the *ulsph* for a solid bodywould consist of an equation of state for computing the pressure (thediagonal components of the stress tensor), and a material model tocompute shear stresses (the off-diagonal components of the stresstensor).Note that the use of \\*GRADIENT_CORRECTION can lead to severe numericalinstabilities. For a general fluid simulation, \\*NO_GRADIENT_CORRECTIONis recommended.Please see the `SMD user guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) for a\ncomplete listing of the possible keywords and material models.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "angle_style fourier", + "angle_style fourier/omp" + ], + "syntax": [ + "angle_style fourier" + ], + "args": [ + [ { - "arg": "smd/ulsph/strain/rate", + "arg": "angle_style", "type": 1, "choices": [] + }, + { + "arg": "fourier", + "type": 3, + "choices": [ + "fourier", + "fourier/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/strain/rate = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/ulsph/strain/rate\n```\n", - "html_filename": "compute_smd_ulsph_strain_rate.html", - "short_description": "Define a computation that outputs the rate of the logarithmic strain\ntensor for particles interacting via the updated Lagrangian SPH pair\nstyle", - "description": "Define a computation that outputs the rate of the logarithmic strain\ntensor for particles interacting via the updated Lagrangian SPH pair\nstyle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute can only be used for particles which interact with the\nupdated Lagrangian SPH pair style.\n", - "related": "[compute smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style fourier\nangle_coeff 75.0 1.0 1.0 1.0\n```\n", + "html_filename": "angle_fourier.html", + "short_description": "The *fourier* angle style uses the potential\n\\[\n E = K [C_0 + C_1 \\cos ( \\theta) + C_2 \\cos( 2 \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(C_0\\) (real)\n* \\(C_1\\) (real)\n* \\(C_2\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", + "description": "The *fourier* angle style uses the potential\n\\[\n E = K [C_0 + C_1 \\cos ( \\theta) + C_2 \\cos( 2 \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(C_0\\) (real)\n* \\(C_1\\) (real)\n* \\(C_2\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute born/matrix" + "fix npt/sphere", + "fix npt/sphere/omp" ], "syntax": [ - "compute ID group-ID born/matrix keyword value ..." + "fix ID group-ID npt/sphere keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -13625,9 +12772,12 @@ export const command_docs = [ "choices": [] }, { - "arg": "born/matrix", - "type": 1, - "choices": [] + "arg": "npt/sphere", + "type": 3, + "choices": [ + "npt/sphere", + "npt/sphere/omp" + ] }, { "arg": "keyword", @@ -13641,20 +12791,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* born/matrix = style name of this compute command\n* zero or more keywords or keyword/value pairs may be appended \n *      keyword = numdiff or pair or bond or angle or dihedral or improper \n       numdiff values = delta virial-ID \n       delta = magnitude of strain (dimensionless) \n       virial-ID = ID of pressure compute for virial (string) \n       (numdiff cannot be used with any other keyword) \n       pair = compute pair-wise contributions \n       bond = compute bonding contributions \n       angle = compute angle contributions \n       dihedral = compute dihedral contributions \n       improper = compute improper contributions \n", - "examples": "\n```lmps\ncompute 1 all born/matrix\ncompute 1 all born/matrix bond angle\ncompute 1 all born/matrix numdiff 1.0e-4 myvirial\n```\n", - "html_filename": "compute_born_matrix.html", - "short_description": "\nDefine a compute that calculates\n\\(\\frac{\\partial{}^2U}{\\partial\\varepsilon_{i}\\partial\\varepsilon_{j}},\\) the\nsecond derivatives of the potential energy \\(U\\) with respect to the strain\ntensor \\(\\varepsilon\\) elements", - "description": "\nDefine a compute that calculates\n\\(\\frac{\\partial{}^2U}{\\partial\\varepsilon_{i}\\partial\\varepsilon_{j}},\\) the\nsecond derivatives of the potential energy \\(U\\) with respect to the strain\ntensor \\(\\varepsilon\\) elements. These values are related to:\n\\[\n C^{B}_{i,j}=\\frac{1}{V}\\frac{\\partial{}^2U}{\\partial{}\\varepsilon_{i}\\partial\\varepsilon_{j}}\\]\nalso called the Born term of elastic constants in the stress-stress fluctuation\nformalism. This quantity can be used to compute the elastic constant tensor.\nUsing the symmetric Voigt notation, the elastic constant tensor can be written\nas a 6x6 symmetric matrix:\n\\[\n C_{i,j} = \\langle{}C^{B}_{i,j}\\rangle\n + \\frac{V}{k_{B}T}\\left(\\langle\\sigma_{i}\\sigma_{j}\\rangle\\right.\n \\left.- \\langle\\sigma_{i}\\rangle\\langle\\sigma_{j}\\rangle\\right)\n + \\frac{Nk_{B}T}{V}\n \\left(\\delta_{i,j}+(\\delta_{1,i}+\\delta_{2,i}+\\delta_{3,i})\\right.\n \\left.*(\\delta_{1,j}+\\delta_{2,j}+\\delta_{3,j})\\right)\\]\nIn the above expression, \\(\\sigma\\) stands for the virial stress\ntensor, \\(\\delta\\) is the Kronecker delta and the usual notation apply for\nthe number of particle, the temperature and volume respectively \\(N\\),\n\\(T\\) and \\(V\\). \\(k_{B}\\) is the Boltzmann constant.\n\nThe Born term is a symmetric 6x6 matrix, as is the matrix of second derivatives\nof potential energy w.r.t strain,\nwhose 21 independent elements are output in this order:\n\\[\\begin{align*} \n \\begin{bmatrix}\n C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\\\\n C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\\\\n \\vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\\\\n \\vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\\\\n \\vdots & \\vdots & \\vdots & C_{19} & C_{5} & C_{21} \\\\\n \\vdots & \\vdots & \\vdots & \\vdots & C_{21} & C_{6}\n \\end{bmatrix} \\end{align*} \\]\nin this matrix the indices of \\(C_{k}\\) value are the corresponding element\n\\(k\\) in the global vector output by this compute. Each term comes from the sum\nof the derivatives of every contribution to the potential energy\nin the system as explained in **VanWorkum**.\n\nThe output can be accessed using usual Lammps routines:\n\n```lmps\ncompute 1 all born/matrix\ncompute 2 all pressure NULL virial\nvariable S1 equal -c_2[1]\nvariable S2 equal -c_2[2]\nvariable S3 equal -c_2[3]\nvariable S4 equal -c_2[4]\nvariable S5 equal -c_2[5]\nvariable S6 equal -c_2[6]\nfix 1 all ave/time 1 1 1 v_S1 v_S2 v_S3 v_S4 v_S5 v_S6 c_1[*] file born.out\n```\nIn this example, the file *born.out* will contain the information needed to\ncompute the first and second terms of the elastic constant matrix in a post\nprocessing procedure. The other required quantities can be accessed using any\nother *LAMMPS* usual method. Several examples of this method are\nprovided in the examples/ELASTIC_T/BORN_MATRIX directory\ndescribed on the [Examples ](https://docs.lammps.org/Examples.html) doc page.\n\nNOTE: In the above \\(C_{i,j}\\) computation, the fluctuation\nterm involving the virial stress tensor \\(\\sigma\\) is the\ncovariance between each elements. In a\nsolid the stress fluctuations can vary rapidly, while average\nfluctuations can be slow to converge.\nA detailed analysis of the convergence rate of all the terms in\nthe elastic tensor\nis provided in the paper by Clavier et al. **Clavier2**.\n\nTwo different computation methods for the Born matrix are implemented in this\ncompute and are mutually exclusive.\n\nThe first one is a direct computation from the analytical formula from the\ndifferent terms of the potential used for the simulations **VanWorkum**. However, the implementation of such derivations must be done\nfor every potential form. This has not been done yet and can be very\ncomplicated for complex potentials. At the moment a warning message is\ndisplayed for every term that is not supporting the compute at the moment.\nThis method is the default for now.\n\nThe second method uses finite differences of energy to numerically approximate\nthe second derivatives **Zhen**. This is useful when using\ninteraction styles for which the analytical second derivatives have not been\nimplemented. In this cases, the compute applies linear strain fields of\nmagnitude *delta* to all the atoms relative to a point at the center of the\nbox. The strain fields are in six different directions, corresponding to the\nsix Cartesian components of the stress tensor defined by LAMMPS. For each\ndirection it applies the strain field in both the positive and negative senses,\nand the new stress virial tensor of the entire system is calculated after each.\nThe difference in these two virials divided by two times *delta*, approximates\nthe corresponding components of the second derivative, after applying a\nsuitable unit conversion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > strains that are used to generate finite difference\n > approximations to the exact virial stress. For typical systems, a value in\n > the range of 1 part in 1e5 to 1e6 will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output values will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output values will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical virial values should be largely\n > independent of delta. \n > \n\nThe keyword requires the additional arguments *delta* and *virial-ID*.\n*delta* gives the size of the applied strains. *virial-ID* gives\nthe ID string of the pressure compute that provides the virial stress tensor,\nrequiring that it use the virial keyword e.g.\n\n```lmps\ncompute myvirial all pressure NULL virial\ncompute 1 all born/matrix numdiff 1.0e-4 myvirial\n```\n**Output info:**\n\nThis compute calculates a global vector with 21 values that are\nthe second derivatives of the potential energy with respect to strain.\nThe values are in energy units.\nThe values are ordered as explained above. These values can be used\nby any command that uses global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) doc page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"extensive\".\n\n**(VanWorkum)** K. Van Workum et al., J. Chem. Phys. 125 144506 (2006) \n \n**(Clavier2)** G. Clavier, N. Desbiens, E. Bourasseau, V. Lachet, N. Brusselle-Dupend and B. Rousseau, Mol Sim, 43, 1413 (2017). \n \n**(Zhen)** Y. Zhen, C. Chu, Computer Physics Communications 183(2012)261-265 \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info. LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe Born term can be decomposed as a product of two terms. The first one is a\ngeneral term which depends on the configuration. The second one is specific to\nevery interaction composing your force field (non-bonded, bonds, angle, ...).\nCurrently not all LAMMPS interaction styles implement the *born_matrix* method\ngiving first and second order derivatives and LAMMPS will exit with an error if\nthis compute is used with such interactions unless the *numdiff* option is\nalso used. The *numdiff* option cannot be used with any other keyword. In this\nsituation, LAMMPS will also exit with an error.\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n npt/sphere = style name of this fix command\n zero or more keyword/value pairs may be appended\n* keyword = disc \n *      disc value = none = treat particles as 2d discs, not spheres \n* NOTE: additional thermostat and barostat and dipole related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all npt/sphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 disc\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 update dipole\nfix 2 water npt/sphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_npt_sphere.html", + "short_description": "Perform constant NPT integration to update position, velocity, and\nangular velocity each timestep for finite-sizex spherical particles in\nthe group using a Nose/Hoover temperature thermostat and Nose/Hoover\npressure barostat", + "description": "Perform constant NPT integration to update position, velocity, and\nangular velocity each timestep for finite-sizex spherical particles in\nthe group using a Nose/Hoover temperature thermostat and Nose/Hoover\npressure barostat. P is pressure; T is temperature. This creates a\nsystem trajectory consistent with the isothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the spherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*, *iso*,\n*aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/sphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/sphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note\nthat the IDs of the new computes are the fix-ID + underscore + \"temp\"\nor fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp* and *thermo_press*. This means you can change the\nattributes of this fix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the\nappropriate compute-ID. It also means that changing attributes of\n*thermo_temp* or *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure. If you do this, note that\nthe kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", + "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n [fix nvt_sphere ](https://docs.lammps.org/fix_nvt_sphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "compute property/local" + "compute msd" ], "syntax": [ - "compute ID group-ID property/local attribute1 attribute2 ... keyword args ..." + "compute ID group-ID msd keyword values ..." ], "args": [ [ @@ -13674,51 +12824,44 @@ export const command_docs = [ "choices": [] }, { - "arg": "property/local", + "arg": "msd", "type": 1, "choices": [] }, { - "arg": "attribute1", - "type": 2, - "choices": [] - }, - { - "arg": "attribute2", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "average", + "type": 3, + "choices": [ + "com", + "average" + ] }, { - "arg": "args", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/local = style name of this compute command\n* one or more attributes of the same type (neighbor, pair, bond, angle,\n dihedral, or improper) may be appended \n    possible attributes = natom1, natom2, ntype1, ntype2, \n    patom1, patom2, ptype1, ptype2, \n    batom1, batom2, btype, \n    aatom1, aatom2, aatom3, atype, \n    datom1, datom2, datom3, datom4, dtype, \n    iatom1, iatom2, iatom3, iatom4, itype \n *   * Neighbor attributes \n    natom1, natom2 = store IDs of two atoms in each pair (within neighbor cutoff) \n    ntype1, ntype2 = store types of two atoms in each pair (within neighbor cutoff) \n *   * Pair attributes \n    patom1, patom2 = store IDs of two atoms in each pair (within force cutoff) \n    ptype1, ptype2 = store types of two atoms in each pair (within force cutoff) \n *   * Bond attributes \n    batom1, batom2 = store IDs of two atoms in each bond \n    btype = store bond type of each bond \n *   * Angle attributes \n    aatom1, aatom2, aatom3 = store IDs of three atoms in each angle \n    atype = store angle type of each angle \n *   * Dihedral attributes \n    datom1, datom2, datom3, datom4 = store IDs of 4 atoms in each dihedral \n    dtype = store dihedral type of each dihedral \n *   * Improper attributes \n    iatom1, iatom2, iatom3, iatom4 = store IDs of 4 atoms in each improper \n    itype = store improper type of each improper \n* zero or more keyword/arg pairs may be appended\n* keyword = cutoff \n *        cutoff arg = type or radius \n", - "examples": "\n```lmps\ncompute 1 all property/local btype batom1 batom2\ncompute 1 all property/local atype aatom2\n```\n", - "html_filename": "compute_property_local.html", - "short_description": "Define a computation that stores the specified attributes as local\ndata so it can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html)", - "description": "Define a computation that stores the specified attributes as local\ndata so it can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html). If the input attributes refer to bond information,\nthen the number of datums generated, aggregated across all processors,\nequals the number of bonds in the system. Ditto for pairs, angles,\netc.\n\nIf multiple attributes are specified then they must all generate the\nsame amount of information, so that the resulting local array has the\nsame number of rows for each column. This means that only bond\nattributes can be specified together, or angle attributes, etc. Bond\nand angle attributes cannot be mixed in the same compute\nproperty/local command.\n\nIf the inputs are pair attributes, the local data is generated by\nlooping over the pairwise neighbor list. Info about an individual\npairwise interaction will only be included if both atoms in the pair\nare in the specified compute group. For *natom1* and *natom2*, all\natom pairs in the neighbor list are considered (out to the neighbor\ncutoff = force cutoff + [neighbor skin ](https://docs.lammps.org/neighbor.html)). For *patom1*\nand *patom2*, the distance between the atoms must be less than the\nforce cutoff distance for that pair to be included, as defined by the\n[pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands.\n\nThe optional *cutoff* keyword determines how the force cutoff distance\nfor an interaction is determined for the *patom1* and *patom2*\nattributes. For the default setting of *type*, the pairwise cutoff\ndefined by the [pair_style ](https://docs.lammps.org/pair_style.html) command for the types of\nthe two atoms is used. For the *radius* setting, the sum of the radii\nof the two particles is used as a cutoff. For example, this is\nappropriate for granular particles which only interact when they are\noverlapping, as computed by [granular pair styles ](https://docs.lammps.org/pair_gran.html).\nNote that if a granular model defines atom types such that all\nparticles of a specific type are monodisperse (same diameter), then\nthe two settings are effectively identical.\n\nIf the inputs are bond, angle, etc attributes, the local data is\ngenerated by looping over all the atoms owned on a processor and\nextracting bond, angle, etc info. For bonds, info about an individual\nbond will only be included if both atoms in the bond are in the\nspecified compute group. Likewise for angles, dihedrals, etc.\n\nFor bonds and angles, a bonds/angles that have been broken by setting\ntheir bond/angle type to 0 will not be included. Bonds/angles that\nhave been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by setting their\nbond/angle type negative are written into the file. This is\nconsistent with the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html) and\n[compute angle/local ](https://docs.lammps.org/compute_angle_local.html) commands\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, output from the [compute bond/local](https://docs.lammps.org/compute_bond_local.html) command can be combined with bond atom indices\nfrom this command and output by the [dump local ](https://docs.lammps.org/dump.html) command\nin a consistent way.\n\nThe *natom1* and *natom2* or *patom1* and *patom2* attributes refer\nto the atom IDs of the two atoms in each pairwise interaction computed\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command. The *ntype1* and\n*ntype2* or *ptype1* and *ptype2* attributes refer to the atom types\nof the two atoms in each pairwise interaction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pairs, if two atoms \\(I,J\\) are involved in 1--2, 1--3, 1--4\n > interactions within the molecular topology, their pairwise interaction\n > may be turned off, and thus they may not appear in the neighbor list,\n > and will not be part of the local data created by this command. More\n > specifically, this may be true of \\(I,J\\) pairs with a weighting factor\n > of 0.0; pairs with a non-zero weighting factor are included. The\n > weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\nThe *batom1* and *batom2* attributes refer to the atom IDs of the 2\natoms in each [bond ](https://docs.lammps.org/bond_style.html). The *btype* attribute refers to\nthe type of the bond, from 1 to Nbtypes = # of bond types. The number\nof bond types is defined in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nThe attributes that start with \"a\", \"d\", and \"i\" refer to similar values\nfor [angles ](https://docs.lammps.org/angle_style.html), [dihedrals ](https://docs.lammps.org/dihedral_style.html), and\n[impropers ](https://docs.lammps.org/improper_style.html).\n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of input values. The length of the vector or number of rows in\nthe array is the number of bonds, angles, etc. If a single input is\nspecified, a local vector is produced. If two or more inputs are\nspecified, a local array is produced where the number of columns = the\nnumber of inputs. The vector or array can be accessed by any command\nthat uses local values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector or array values will be integers that correspond to the\nspecified attribute.\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = com or average \n *        com value = yes or no \n *        average value = yes or no \n", + "examples": "\n```lmps\ncompute 1 all msd\ncompute 1 upper msd com yes average yes\n```\n", + "html_filename": "compute_msd.html", + "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) of the group of atoms, including all effects due to atoms\npassing through periodic boundaries", + "description": "Define a computation that calculates the mean-squared displacement\n(MSD) of the group of atoms, including all effects due to atoms\npassing through periodic boundaries. For computation of the non-Gaussian\nparameter of mean-squared displacement, see the\n[compute msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html) command.\n\nA vector of four quantities is calculated by this compute. The first three\nelements of the vector are the squared *dx*, *dy*, and *dz* displacements,\nsummed and averaged over atoms in the group. The fourth element is the total\nsquared displacement (i.e., \\(dx^2 + dy^2 + dz^2\\)), summed and\naveraged over atoms in the group.\n\nThe slope of the mean-squared displacement (MSD) versus time is\nproportional to the diffusion coefficient of the diffusing atoms.\n\nThe displacement of an atom is from its reference position. This is\nnormally the original position at the time\nthe compute command was issued, unless the *average* keyword is set to *yes* .\nThe value of the displacement will be\n0.0 for atoms not in the specified compute group.\n\nIf the *com* option is set to *yes* then the effect of any drift in\nthe center-of-mass of the group of atoms is subtracted out before the\ndisplacement of each atom is calculated.\n\nIf the *average* option is set to *yes* then the reference position of\nan atom is based on the average position of that atom, corrected for\ncenter-of-mass motion if requested. The average position is a running\naverage over all previous calls to the compute, including the current\ncall. So on the first call it is current position, on the second call\nit is the arithmetic average of the current position and the position\non the first call, and so on. Note that when using this option, the\nprecise value of the mean square displacement will depend on the\nnumber of times the compute is called. So, for example, changing the\nfrequency of thermo output may change the computed displacement. Also,\nthe precise values will be changed if a single simulation is broken up\ninto two parts, using either multiple run commands or a restart\nfile. It only makes sense to use this option if the atoms are not\ndiffusing, so that their average positions relative to the center of\nmass of the system are stationary. The most common case is crystalline\nsolids undergoing thermal motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Initial coordinates are stored in \"unwrapped\" form, by using the\n > image flags associated with each atom. See the [dump custom > ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates. See the\n > Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You\n > can reset the image flags (e.g. to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with atom reference positions from the restart file. When\n > *average* is set to yes, then the atom reference positions are\n > restored correctly, but not the number of samples used obtain them. As\n > a result, the reference positions from the restart file are combined\n > with subsequent positions as if they were from a single sample,\n > instead of many, which will change the values of msd somewhat. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 4, which can be\naccessed by indices 1--4 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "Compute *msd* cannot be used with a dynamic group.\n", + "related": "[compute msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html), [compute displace_atom ](https://docs.lammps.org/compute_displace_atom.html), [fix store/state ](https://docs.lammps.org/fix_store_state.html), [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html)\n" }, { "command": [ - "compute tdpd/cc/atom" + "fix restrain" ], "syntax": [ - "compute ID group-ID tdpd/cc/atom index" + "fix ID group-ID restrain keyword args ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -13733,75 +12876,102 @@ export const command_docs = [ "choices": [] }, { - "arg": "tdpd/cc/atom", + "arg": "restrain", "type": 1, "choices": [] }, { - "arg": "index", + "arg": "dihedral", + "type": 3, + "choices": [ + "bond", + "lbound", + "angle", + "dihedral" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* tdpd/cc/atom = style name of this compute command\n* index = index of chemical species (1 to Nspecies) \n", - "examples": "\n```lmps\ncompute 1 all tdpd/cc/atom 2\n```\n", - "html_filename": "compute_tdpd_cc_atom.html", - "short_description": "Define a computation that calculates the per-atom chemical\nconcentration of a specified species for each tDPD particle in a\ngroup", - "description": "Define a computation that calculates the per-atom chemical\nconcentration of a specified species for each tDPD particle in a\ngroup.\n\nThe chemical concentration of each species is defined as the number of\nmolecules carried by a tDPD particle for dilute solution. For more\ndetails see **Li2015a**.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in the units of chemical species\nper unit mass.\n\n**(Li2015a)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143:\n014101 (2015). DOI: 10.1063/1.4923254 \n ", - "restrictions": "This compute is part of the DPD-MESO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* restrain = style name of this fix command\n* one or more keyword/arg pairs may be appended\n* keyword = bond or lbound or angle or dihedral \n *        bond args = atom1 atom2 Kstart Kstop r0start (r0stop) \n         atom1,atom2 = IDs of 2 atoms in bond \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         r0start = equilibrium bond distance at start of run (distance units) \n         r0stop = equilibrium bond distance at end of run (optional) (distance units). If not \n         specified it is assumed to be equal to r0start \n *        lbound args = atom1 atom2 Kstart Kstop r0start (r0stop) \n         atom1,atom2 = IDs of 2 atoms in bond \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         r0start = equilibrium bond distance at start of run (distance units) \n         r0stop = equilibrium bond distance at end of run (optional) (distance units). If not \n         specified it is assumed to be equal to r0start \n *        angle args = atom1 atom2 atom3 Kstart Kstop theta0 \n         atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         theta0 = equilibrium angle theta (degrees) \n *        dihedral args = atom1 atom2 atom3 atom4 Kstart Kstop phi0 keyword/value \n         atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         phi0 = equilibrium dihedral angle phi (degrees) \n         keyword/value = optional keyword value pairs. supported keyword/value pairs: \n         mult n = dihedral multiplicity n (integer >= 0, default = 1) \n", + "examples": "\n```lmps\nfix holdem all restrain bond 45 48 2000.0 2000.0 2.75\nfix holdem all restrain lbound 45 48 2000.0 2000.0 2.75\nfix holdem all restrain dihedral 1 2 3 4 2000.0 2000.0 120.0\nfix holdem all restrain bond 45 48 2000.0 2000.0 2.75 dihedral 1 2 3 4 2000.0 2000.0 120.0\nfix texas_holdem all restrain dihedral 1 2 3 4 0.0 2000.0 120.0 dihedral 1 2 3 5 0.0 2000.0 -120.0 dihedral 1 2 3 6 0.0 2000.0 0.0\n```\n", + "html_filename": "fix_restrain.html", + "short_description": "Restrain the motion of the specified sets of atoms by making them part\nof a bond or angle or dihedral interaction whose strength can vary\nover time during a simulation", + "description": "Restrain the motion of the specified sets of atoms by making them part\nof a bond or angle or dihedral interaction whose strength can vary\nover time during a simulation. This is functionally similar to\ncreating a bond or angle or dihedral for the same atoms in a data\nfile, as specified by the [read_data ](https://docs.lammps.org/read_data.html) command, albeit\nwith a time-varying prefactor coefficient, and except for exclusion\nrules, as explained below.\n\nFor the purpose of force field parameter-fitting or mapping a molecular\npotential energy surface, this fix reduces the hassle and risk\nassociated with modifying data files. In other words, use this fix to\ntemporarily force a molecule to adopt a particular conformation. To\ncreate a permanent bond or angle or dihedral, you should modify the\ndata file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Adding a bond/angle/dihedral with this command does not apply\n > the exclusion rules and weighting factors specified by the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command to atoms in the restraint\n > that are now bonded (1-2,1-3,1-4 neighbors) as a result. If they are\n > close enough to interact in a [pair_style ](https://docs.lammps.org/pair_style.html) sense\n > (non-bonded interaction), then the bond/angle/dihedral restraint\n > interaction will simply be superposed on top of that interaction. \n > \n\nThe group-ID specified by this fix is ignored.\n\nThe second example above applies a restraint to hold the dihedral\nangle formed by atoms 1, 2, 3, and 4 near 120 degrees using a constant\nrestraint coefficient. The fourth example applies similar restraints\nto multiple dihedral angles using a restraint coefficient that\nincreases from 0.0 to 2000.0 over the course of the run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Adding a force to atoms implies a change in their potential\n > energy as they move due to the applied force field. For dynamics via\n > the [run ](https://docs.lammps.org/run.html) command, this energy can be added to the system's\n > potential energy for thermodynamic output (see below). For energy\n > minimization via the [minimize ](https://docs.lammps.org/minimize.html) command, this energy\n > must be added to the system's potential energy to formulate a\n > self-consistent minimization problem (see below). \n > \n\nIn order for a restraint to be effective, the restraint force must\ntypically be significantly larger than the forces associated with\nconventional force field terms. If the restraint is applied during a\ndynamics run (as opposed to during an energy minimization), a large\nrestraint coefficient can significantly reduce the stable timestep\nsize, especially if the atoms are initially far from the preferred\nconformation. You may need to experiment to determine what value of \\(K\\)\nworks best for a given application.\n\nFor the case of finding a minimum energy structure for a single\nmolecule with particular restraints (e.g. for fitting force field\nparameters or constructing a potential energy surface), commands such\nas the following may be useful:\n\n```lmps\n# minimize molecule energy with restraints\nvelocity all create 600.0 8675309 mom yes rot yes dist gaussian\nfix NVE all nve\nfix TFIX all langevin 600.0 0.0 100 24601\nfix REST all restrain dihedral 2 1 3 8 0.0 5000.0 ${angle1} dihedral 3 1 2 9 0.0 5000.0 ${angle2}\nfix_modify REST energy yes\nrun 10000\nfix TFIX all langevin 0.0 0.0 100 24601\nfix REST all restrain dihedral 2 1 3 8 5000.0 5000.0 ${angle1} dihedral 3 1 2 9 5000.0 5000.0 ${angle2}\nfix_modify REST energy yes\nrun 10000\n# sanity check for convergence\nminimize 1e-6 1e-9 1000 100000\n# report unrestrained energies\nunfix REST\nrun 0\n```\n----------\n\nThe *bond* keyword applies a bond restraint to the specified atoms\nusing the same functional form used by the [bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html) command. The potential associated with\nthe restraint is\n\\[\n E = K (r - r_0)^2\\]\nwith the following coefficients:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n\\(K\\) and \\(r_0\\) are specified with the fix. Note that the usual 1/2 factor\nis included in \\(K\\).\n\n----------\n\nThe *lbound* keyword applies a lower bound bond restraint to the specified atoms\nusing the same functional form used by the [bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html) command if the distance between\nthe atoms is smaller than the equilibrium bond distance and 0 otherwise. The potential associated with\nthe restraint is\n\\[\n E = K (r - r_0)^2 ,if\\;r < r_0\\]\n\\[\n E = 0 \\qquad\\quad\\quad ,if\\;r \\ge r_0\\]\nwith the following coefficients:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n\\(K\\) and \\(r_0\\) are specified with the fix. Note that the usual 1/2 factor\nis included in \\(K\\).\n\n----------\n\nThe *angle* keyword applies an angle restraint to the specified atoms\nusing the same functional form used by the [angle_style harmonic ](https://docs.lammps.org/angle_harmonic.html) command. The potential associated with\nthe restraint is\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwith the following coefficients:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(K\\) and \\(\\theta_0\\) are specified with the fix.\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2. Note that the usual 1/2 factor is included in \\(K\\).\n\n----------\n\nThe *dihedral* keyword applies a dihedral restraint to the specified\natoms using a simplified form of the function used by the\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) command. The potential\nassociated with the restraint is\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nwith the following coefficients:\n\n* \\(K\\) (energy)\n* \\(n\\) (multiplicity, >= 0)\n* \\(d\\) (degrees) = \\(\\phi_0 + 180\\)\n\n\\(K\\) and \\(\\phi_0\\) are specified with the fix. Note that the value of the\ndihedral multiplicity \\(n\\) is set by default to 1. You can use the\noptional *mult* keyword to set it to a different positive integer.\nAlso note that the energy will be a minimum when the\ncurrent dihedral angle \\(\\phi\\) is equal to \\(\\phi_0\\).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy associated with this fix to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html) The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\nThis fix computes a global scalar and a global vector of length 3,\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe scalar is the total potential energy for *all* the restraints as\ndiscussed above. The vector values are the sum of contributions to the\nfollowing individual categories:\n\n* 1 = bond energy\n* 2 = angle energy\n* 3 = dihedral energy\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", + "restrictions": " none\n", + "related": "none\n" }, { "command": [ - "compute sph/e/atom" + "pair_style sw", + "pair_style sw/gpu", + "pair_style sw/intel", + "pair_style sw/kk", + "pair_style sw/omp", + "pair_style sw/mod", + "pair_style sw/mod/omp" ], "syntax": [ - "compute ID group-ID sph/e/atom" + "pair_style style keyword values" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "sw/mod/omp", + "type": 3, + "choices": [ + "sw", + "sw/mod", + "sw/gpu", + "sw/intel", + "sw/kk", + "sw/omp", + "sw/mod/omp" + ] }, { - "arg": "group-ID", - "type": 2, - "choices": [] + "arg": "threebody", + "type": 3, + "choices": [ + "maxdelcs", + "threebody" + ] }, { - "arg": "sph/e/atom", - "type": 1, + "arg": "values", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/e/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all sph/e/atom\n```\n", - "html_filename": "compute_sph_e_atom.html", - "short_description": "Define a computation that calculates the per-atom internal energy\nfor each atom in a group", - "description": "Define a computation that calculates the per-atom internal energy\nfor each atom in a group.\n\nThe internal energy is the energy associated with the internal degrees\nof freedom of an SPH particle, i.e. a Smooth-Particle Hydrodynamics\nparticle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the internal energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" + "parameters": "* style = sw or sw/mod\n* keyword = maxdelcs or threebody \n *        maxdelcs value = delta1 delta2 (optional, sw/mod only) \n         delta1 = The minimum thershold for the variation of cosine of three-body angle \n         delta2 = The maximum threshold for the variation of cosine of three-body angle \n *        threebody value = on or off (optional, sw only) \n         on (default) = Compute both the three-body and two-body terms of the potential \n         off = Compute only the two-body term of the potential \n", + "examples": "\n```lmps\npair_style sw\npair_coeff * * si.sw Si\npair_coeff * * GaN.sw Ga N Ga\n\npair_style sw/mod maxdelcs 0.25 0.35\npair_coeff * * tmd.sw.mod Mo S S\n\npair_style hybrid sw threebody on sw threebody off\npair_coeff * * sw 1 mW_xL.sw mW NULL\npair_coeff 1 2 sw 2 mW_xL.sw mW xL\npair_coeff 2 2 sw 2 mW_xL.sw mW xL\n```\n", + "html_filename": "pair_sw.html", + "short_description": "The *sw* style computes a 3-body **Stillinger2**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = \\lambda_{ijk} \\epsilon_{ijk} \\left[ \\cos \\theta_{ijk} -\n \\cos \\theta_{0ijk} \\right]^2\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term", + "description": "The *sw* style computes a 3-body **Stillinger2**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = \\lambda_{ijk} \\epsilon_{ijk} \\left[ \\cos \\theta_{ijk} -\n \\cos \\theta_{0ijk} \\right]^2\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance \\(a \\)\\sigma`.\n\nThe *sw/mod* style is designed for simulations of materials when\ndistinguishing three-body angles are necessary, such as borophene and\ntransition metal dichalcogenides, which cannot be described by the\noriginal code for the Stillinger-Weber potential. For instance, there\nare several types of angles around each Mo atom in `MoS_2`, and some\nunnecessary angle types should be excluded in the three-body\ninteraction. Such exclusion may be realized by selecting proper angle\ntypes directly. The exclusion of unnecessary angles is achieved here by\nthe cut-off function (`f_C(\\delta)`), which induces only minimum\nmodifications for LAMMPS.\n\nValidation, benchmark tests, and applications of the *sw/mod* style\ncan be found in **Jiang2** and **Jiang3**.\n\nThe *sw/mod* style computes the energy E of a system of atoms, whose\npotential function is mostly the same as the Stillinger-Weber\npotential. The only modification is in the three-body term, where the\nvalue of \\(\\delta = \\cos \\theta_{ijk} - \\cos \\theta_{0ijk}\\) used in\nthe original energy and force expression is scaled by a switching factor\n\\(f_C(\\delta)\\):\n\\[\\begin{align*} \n f_C(\\delta) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & \\left| \\delta \\right| < \\delta_1 \\\\\n \\frac{1}{2} + \\frac{1}{2} \\cos \\left( \\pi \\frac{\\left| \\delta \\right| - \\delta_1}{\\delta_2 - \\delta_1} \\right) &\n \\delta_1 < \\left| \\delta \\right| < \\delta_2 \\\\\n 0 & \\left| \\delta \\right| > \\delta_2\n \\end{array} \\right. \\\\ \\end{align*} \\]\nThis cut-off function decreases smoothly from 1 to 0 over the range\n\\([\\delta_1, \\delta_2]\\). This smoothly turns off the energy and\nforce contributions for \\(\\left| \\delta \\right| > \\delta_2\\). It is\nsuggested that \\(\\delta 1\\) and \\(\\delta_2\\) to be the value\naround \\(0.5 \\left| \\cos \\theta_1 - \\cos \\theta_2 \\right|\\), with\n\\(\\theta_1\\) and \\(\\theta_2\\) as the different types of angles\naround an atom. For borophene and transition metal dichalcogenides,\n\\(\\delta_1 = 0.25\\) and \\(\\delta_2 = 0.35\\). This value enables\nthe cut-off function to exclude unnecessary angles in the three-body SW\nterms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cut-off function is just to be used as a technique to exclude\n > some unnecessary angles, and it has no physical meaning. It should be\n > noted that the force and potential are inconsistent with each other\n > in the decaying range of the cut-off function, as the angle\n > dependence for the cut-off function is not implemented in the force\n > (first derivation of potential). However, the angle variation is\n > much smaller than the given threshold value for actual simulations,\n > so the inconsistency between potential and force can be neglected in\n > actual simulations. \n > \n\n\nThe *threebody* keyword is optional and determines whether or not the\nthree-body term of the potential is calculated. The default value is\n\"on\" and it is only available for the plain *sw* pair style variants,\nbut not available for the *sw/mod* and [sw/angle/table](https://docs.lammps.org/pair_sw_angle_table.html) pair style variants. To turn off the threebody\ncontributions all \\(\\lambda_{ijk}\\) parameters from the potential\nfile are forcibly set to 0. In addition the pair style implementation\nmay employ code optimizations for the *threebody off* setting that can\nresult in significant speedups versus the default. These code optimizations\nare currently only available for the MANYBODY and OPENMP packages.\n\nOnly a single pair_coeff command is used with the *sw* and *sw/mod*\nstyles which specifies a Stillinger-Weber potential file with parameters\nfor all needed elements, except for when the *threebody off* setting is\nused (see note below). These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.sw has Stillinger-Weber values for\nSi and C. If your LAMMPS simulation has 4 atoms types and you want\nthe first 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_style sw\npair_coeff * * SiC.sw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1, 2, and 3 to the Si\nelement in the SW file. The final C argument maps LAMMPS atom type 4 to\nthe C element in the SW file. If an argument value is specified as\nNULL, the mapping is not performed. This can be used when an *sw*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other potentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *threebody off* keyword is used, multiple pair_coeff\n > commands may be used to specific the pairs of atoms which don't\n > require three-body term. In these cases, the first 2 arguments are\n > not required to be \\* \\*, the potential parameter file is only read\n > by the first [pair_coeff command ](https://docs.lammps.org/pair_coeff.html) and the element\n > to atom type mappings must be consistent across all *pair_coeff*\n > statements. If not LAMMPS will abort with an error. \n > \n\nStillinger-Weber files in the *potentials* directory of the LAMMPS\ndistribution have a \".sw\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* a\n* \\(\\lambda\\)\n* \\(\\gamma\\)\n* \\(\\cos\\theta_0\\)\n* A\n* B\n* p\n* q\n* tol\n\nThe A, B, p, and q parameters are used only for two-body interactions.\nThe \\(\\lambda\\) and \\(\\cos\\theta_0\\) parameters are used only\nfor three-body interactions. The \\(\\epsilon\\), \\(\\sigma\\) and\n*a* parameters are used for both two-body and three-body\ninteractions. \\(\\gamma\\) is used only in the three-body\ninteractions, but is defined for pairs of atoms. The non-annotated\nparameters are unitless.\n\nLAMMPS introduces an additional performance-optimization parameter tol\nthat is used for both two-body and three-body interactions. In the\nStillinger-Weber potential, the interaction energies become negligibly\nsmall at atomic separations substantially less than the theoretical\ncutoff distances. LAMMPS therefore defines a virtual cutoff distance\nbased on a user defined tolerance tol. The use of the virtual cutoff\ndistance in constructing atom neighbor lists can significantly reduce\nthe neighbor list sizes and therefore the computational cost. LAMMPS\nprovides a *tol* value for each of the three-body entries so that they\ncan be separately controlled. If tol = 0.0, then the standard\nStillinger-Weber cutoff is used.\n\nThe Stillinger-Weber potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify SW parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction. Thus an entry for SiCC means a Si atom\nwith 2 C atoms as neighbors. The parameter values used for the\ntwo-body interaction come from the entry where the second and third\nelements are the same. Thus the two-body parameters for Si\ninteracting with C, comes from the SiCC entry. The three-body\nparameters can in principle be specific to the three elements of the\nconfiguration. In the literature, however, the three-body parameters\nare usually defined by simple formulas involving two sets of pairwise\nparameters, corresponding to the ij and ik pairs, where i is the\ncenter atom. The user must ensure that the correct combining rule is\nused to calculate the values of the three-body parameters for\nalloys. Note also that the function \\(\\phi_3\\) contains two exponential\nscreening factors with parameter values from the ij pair and ik\npairs. So \\(\\phi_3\\) for a C atom bonded to a Si atom and a second C atom\nwill depend on the three-body parameters for the CSiC entry, and also\non the two-body parameters for the CCC and CSiSi entries. Since the\norder of the two neighbors is arbitrary, the three-body parameters for\nentries CSiC and CCSi should be the same. Similarly, the two-body\nparameters for entries SiCC and CSiSi should also be the same. The\nparameters used only for two-body interactions (A, B, p, and q) in\nentries whose second and third element are different (e.g. SiCSi) are not\nused for anything and can be set to 0.0 if desired.\nThis is also true for the parameters in \\(\\phi_3\\) that are\ntaken from the ij and ik pairs (\\(\\sigma\\), *a*, \\(\\gamma\\))\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the INTEL package with this style, there is an additional\n > 5 to 10 percent performance improvement when the Stillinger-Weber\n > parameters p and q are set to 4 and 0 respectively. These\n > parameters are common for modeling silicon and water. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of the *sw* pair style is only enabled and\nsupported for the case of the *threebody off* setting.\n\n----------\n\n**(Stillinger2)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985). \n \n**(Jiang2)** J.-W. Jiang, Nanotechnology 26, 315706 (2015). \n \n**(Jiang3)** J.-W. Jiang, Acta Mech. Solida. Sin 32, 17 (2019). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Stillinger-Weber potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the sw or sw/mod pair styles with any LAMMPS units, but you\nwould need to create your own SW potential file with coefficients listed\nin the appropriate units if your simulation does not use \"metal\" units.\nIf the potential file contains a 'UNITS:' metadata tag in the first line\nof the potential file, then LAMMPS can convert it transparently between\n\"metal\" and \"real\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix atom/swap" + "compute cna/atom" ], "syntax": [ - "fix ID group-ID atom/swap N X seed T keyword values ..." + "compute ID group-ID cna/atom cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -13816,211 +12986,263 @@ export const command_docs = [ "choices": [] }, { - "arg": "atom/swap", + "arg": "cna/atom", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "cutoff", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cna/atom = style name of this compute command\n* cutoff = cutoff distance for nearest neighbors (distance units) \n", + "examples": "\n```lmps\ncompute 1 all cna/atom 3.08\n```\n", + "html_filename": "compute_cna_atom.html", + "short_description": "Define a computation that calculates the CNA (Common Neighbor\nAnalysis) pattern for each atom in the group", + "description": "Define a computation that calculates the CNA (Common Neighbor\nAnalysis) pattern for each atom in the group. In solid-state systems\nthe CNA pattern is a useful measure of the local crystal structure\naround an atom. The CNA methodology is described in **Faken**\nand **Tsuzuki1**.\n\nCurrently, there are five kinds of CNA patterns LAMMPS recognizes:\n\n* fcc = 1\n* hcp = 2\n* bcc = 3\n* icosahedral = 4\n* unknown = 5\n\nThe value of the CNA pattern will be 0 for atoms not in the specified\ncompute group. Note that normally a CNA calculation should only be\nperformed on mono-component systems.\n\nThe CNA calculation can be sensitive to the specified cutoff value.\nYou should ensure the appropriate nearest neighbors of an atom are\nfound within the cutoff distance for the presumed crystal structure\n(e.g., 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest\nneighbors for perfect BCC crystals). These formulas can be used to\nobtain a good cutoff distance:\n\\[\\begin{align*} \n r_{c}^{\\mathrm{fcc}} = & \\frac{1}{2} \\left(\\frac{\\sqrt{2}}{2} + 1\\right) a\n \\approx 0.8536 a \\\\\n r_{c}^{\\mathrm{bcc}} = & \\frac{1}{2}(\\sqrt{2} + 1) a\n \\approx 1.207 a \\\\\n r_{c}^{\\mathrm{hcp}} = & \\frac{1}{2}\\left(1+\\sqrt{\\frac{4+2x^{2}}{3}}\\right) a \\end{align*} \\]\nwhere \\(a\\) is the lattice constant for the crystal structure concerned\nand in the HCP case, \\(x = (c/a) / 1.633\\), where 1.633 is the ideal\n\\(c/a\\) for HCP crystals.\n\nAlso note that since the CNA calculation in LAMMPS uses the neighbors\nof an owned atom to find the nearest neighbors of a ghost atom, the\nfollowing relation should also be satisfied:\n\\[\n r_c + r_s > 2*{\\rm cutoff}\\]\nwhere \\(r_c\\) is the cutoff distance of the potential, \\(r_s\\)\nis the skin\ndistance as specified by the [neighbor ](https://docs.lammps.org/neighbor.html) command, and\ncutoff is the argument used with the compute cna/atom command. LAMMPS\nwill issue a warning if this is not the case.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*cna/atom* style.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be a number from 0 to 5, as explained\nabove.\n\n**(Faken)** Faken, Jonsson, Comput Mater Sci, 2, 279 (1994). \n \n**(Tsuzuki1)** Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007). \n ", + "restrictions": " none\n", + "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" +}, +{ + "command": [ + "fix electrode/conp", + "fix electrode/conq", + "fix electrode/thermo" + ], + "syntax": [ + "fix ID group-ID style args keyword value ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] }, { - "arg": "X", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "T", + "arg": "electrode/thermo", + "type": 3, + "choices": [ + "electrode/conp", + "electrode/conq", + "electrode/thermo" + ] + }, + { + "arg": "args", "type": 2, "choices": [] }, { - "arg": "region", + "arg": "eta", "type": 3, "choices": [ - "types", - "mu", - "ke", - "semi-grand", - "region" + "algo", + "symm", + "couple", + "etypes", + "ffield", + "write_mat", + "write_inv", + "read_mat", + "read_inv", + "qtotal", + "eta" ] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* atom/swap = style name of this fix command\n* N = invoke this fix every N steps\n* X = number of swaps to attempt every N steps\n* seed = random # seed (positive integer)\n* T = scaling temperature of the MC swaps (temperature units)\n* one or more keyword/value pairs may be appended to args\n* keyword = types or mu or ke or semi-grand or region \n *        types values = two or more atom types (1-Ntypes or type label) \n *        mu values = chemical potential of swap types (energy units) \n *        ke value = no or yes \n         no = no conservation of kinetic energy after atom swaps \n         yes = kinetic energy is conserved after atom swaps \n *        semi-grand value = no or yes \n         no = particle type counts and fractions conserved \n         yes = semi-grand canonical ensemble, particle fractions not conserved \n *        region value = region-ID \n         region-ID = ID of region to use as an exchange/move volume \n", - "examples": "\n```lmps\nfix 2 all atom/swap 1 1 29494 300.0 ke no types 1 2\nfix myFix all atom/swap 100 1 12345 298.0 region my_swap_region types 5 6\nfix SGMC all atom/swap 1 100 345 1.0 semi-grand yes types 1 2 3 mu 0.0 4.3 -5.0\n```\n", - "html_filename": "fix_atom_swap.html", - "short_description": "This fix performs Monte Carlo swaps of atoms of one given atom type with\natoms of the other given atom types", - "description": "This fix performs Monte Carlo swaps of atoms of one given atom type with\natoms of the other given atom types. The specified scaling temperature\n*T* is used in the Metropolis criterion dictating swap probabilities.\n\nPerform *X* swaps of atoms of one type with atoms of another type\naccording to a Monte Carlo probability. Swap candidates must be in the\nfix group, must be in the region (if specified), and must be of one of\nthe listed types. Swaps are attempted between candidates that are chosen\nrandomly with equal probability among the candidate atoms. Swaps are not\nattempted between atoms of the same type since nothing would happen.\n\nAll atoms in the simulation domain can be moved using regular time\nintegration displacements (e.g., via [fix nvt ](https://docs.lammps.org/fix_nh.html)), resulting\nin a hybrid MC+MD simulation. A smaller-than-usual timestep size may be\nneeded when running such a hybrid simulation, especially if the swapped\natoms are not well equilibrated.\n\nThe *types* keyword is required. At least two atom types must be\nspecified. If not using *semi-grand*, exactly two atom types are\nrequired.\n\nThe *ke* keyword can be set to *no* to turn off kinetic energy\nconservation for swaps. The default is *yes*, which means that swapped\natoms have their velocities scaled by the ratio of the masses of the\nswapped atom types. This ensures that the kinetic energy of each atom is\nthe same after the swap as it was before the swap, even though the atom\nmasses have changed.\n\nThe *semi-grand* keyword can be set to *yes* to switch to the semi-grand\ncanonical ensemble as discussed in **Sadigh**. This means\nthat the total number of each particle type does not need to be\nconserved. The default is *no*, which means that the only kind of swap\nallowed exchanges an atom of one type with an atom of a different given\ntype. In other words, the relative mole fractions of the swapped atoms\nremains constant. Whereas in the semi-grand canonical ensemble, the\ncomposition of the system can change. Note that when using *semi-grand*,\natoms in the fix group whose type is not listed in the *types* keyword\nare ineligible for attempted conversion. An attempt is made to switch\nthe selected atom (if eligible) to one of the other listed types with\nequal probability. Acceptance of each attempt depends upon the\nMetropolis criterion.\n\nThe *mu* keyword allows users to specify chemical potentials. This is\nrequired and allowed only when using *semi-grand* . All chemical\npotentials are absolute, so there is one for each swap type listed\nfollowing the *types* keyword. In semi-grand canonical ensemble\nsimulations the chemical composition of the system is controlled by the\ndifference in these values. So shifting all values by a constant amount\nwill have no effect on the simulation.\n\nThis command may optionally use the *region* keyword to define swap\nvolume. The specified region must have been previously defined with a\n[region ](https://docs.lammps.org/region.html) command. It must be defined with side = *in* .\nSwap attempts occur only between atoms that are both within the\nspecified region. Swaps are not otherwise attempted.\n\nYou should ensure you do not swap atoms belonging to a molecule, or\nLAMMPS will eventually generate an error when it tries to find those\natoms. LAMMPS will warn you if any of the atoms eligible for swapping\nhave a non-zero molecule ID, but does not check for this at the time of\nswapping.\n\nIf not using *semi-grand* this fix checks to ensure all atoms of the\ngiven types have the same atomic charge. LAMMPS does not enforce this in\ngeneral, but it is needed for this fix to simplify the swapping\nprocedure. Successful swaps will swap the atom type and charge of the\nswapped atoms. Conversely, when using *semi-grand*, it is assumed that\nall the atom types involved in switches have the same charge. Otherwise,\ncharge would not be conserved. As a consequence, no checks on atomic\ncharges are performed, and successful switches update the atom type but\nnot the atom charge. While it is possible to use *semi-grand* with\ngroups of atoms that have different charges, these charges will not be\nchanged when the atom types change.\n\nSince this fix computes total potential energies before and after\nproposed swaps, so even complicated potential energy calculations are\nOK, including the following:\n\n* long-range electrostatics (\\(k\\)-space)\n* many body pair styles\n* hybrid pair styles\n* eam pair styles\n* triclinic systems\n* need to include potential energy contributions from other fixes\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [langevin ](https://docs.lammps.org/fix_langevin.html),\n[restrain ](https://docs.lammps.org/fix_restrain.html), [temp/berendsen](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when\nperforming GCMC moves), you **must** enable the [fix_modify](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The doc pages for\nindividual [fix ](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number generator\nseed, the next timestep for MC exchanges, the number of exchange\nattempts and successes, etc. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep > ](https://docs.lammps.org/reset_timestep.html). The fix will try to detect it and stop with an\n > error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 2, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n #. swap attempts\n #. swap accepts\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Sadigh)** B Sadigh, P Erhart, A Stukowski, A Caro, E Martinez, and\nL Zepeda-Ruiz, Phys. Rev. B, 85, 184203 (2012). \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix cannot be used with systems that do not have per-type masses\n(e.g. atom style sphere) since the implemented algorithm pre-computes\nvelocity rescaling factors from per-type masses and ignores any per-atom\nmasses, if present. In case both, per-type and per-atom masses are\npresent, a warning is printed.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), [fix gcmc ](https://docs.lammps.org/fix_gcmc.html),\n[fix mol/swap ](https://docs.lammps.org/fix_mol_swap.html), [fix sgcmc ](https://docs.lammps.org/fix_sgcmc.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = electrode/conp or electrode/conq or electrode/thermo\n* args = arguments used by a particular style \n *        electrode/conp args = potential eta \n *        electrode/conq args = charge eta \n *        electrode/thermo args = potential eta temp values \n         potential = electrode potential \n         charge = electrode charge \n         eta = reciprocal width of electrode charge smearing \n         temp values = T_v tau_v rng_v \n         T_v = temperature of thermo-potentiostat \n         tau_v = time constant of thermo-potentiostat \n         rng_v = integer used to initialize random number generator \n* zero or more keyword/value pairs may be appended\n* keyword = algo or symm or couple or etypes or ffield or write_mat or write_inv or read_mat or read_inv or qtotal or eta \n *     algo values = mat_inv or mat_cg tol or cg tol \n      specify the algorithm used to compute the electrode charges \n *     symm value = on or off \n      turn on/off charge neutrality constraint for the electrodes \n *     couple values = group-ID val \n      group-ID = group of atoms treated as additional electrode \n      val = electric potential or charge on this electrode \n *     etypes value = on or off \n      turn on/off type-based optimized neighbor lists (electrode and electrolyte types may not overlap) \n *     ffield value = on or off \n      turn on/off finite-field implementation \n *     write_mat value = filename \n      filename = file to which to write elastance matrix \n *     write_inv value = filename \n      filename = file to which to write inverted matrix \n *     read_mat value = filename \n      filename = file from which to read elastance matrix \n *     read_inv value = filename \n      filename = file from which to read inverted matrix \n *     qtotal value = number or v equal-style variable \n      add overall potential so that all electrode charges add up to qtotal \n *     eta value = d_propname \n      d_propname = a custom double vector defined via fix property/atom \n", + "examples": "\n```lmps\nfix fxconp bot electrode/conp -1.0 1.805 couple top 1.0 couple ref 0.0 write_inv inv.csv symm on\nfix fxconp electrodes electrode/conq 0.0 1.805 algo cg 1e-5\nfix fxconp bot electrode/thermo -1.0 1.805 temp 298 100 couple top 1.0\n```\n", + "html_filename": "fix_electrode.html", + "short_description": "The *electrode* fixes implement the constant potential method (CPM)\n(**Siepmann**, **Reed3**), and modern variants,\nto accurately model electrified, conductive electrodes", + "description": "The *electrode* fixes implement the constant potential method (CPM)\n(**Siepmann**, **Reed3**), and modern variants,\nto accurately model electrified, conductive electrodes. This is\nprimarily useful for studying electrode-electrolyte interfaces,\nespecially at high potential differences or ionicities, with non-planar\nelectrodes such as nanostructures or nanopores, and to study dynamic\nphenomena such as charging or discharging time scales or conductivity or\nionic diffusivities.\n\nEach *electrode* fix allows users to set additional electrostatic\nrelationships between the specified groups which model useful\nelectrostatic configurations:\n\n* *electrode/conp* sets potentials or potential differences between electrodes\n\n * (resulting in changing electrode total charges)\n\n* *electrode/conq* sets the total charge on each electrode\n\n * (resulting in changing electrode potentials)\n\n* *electrode/thermo* sets a thermopotentiostat\n **Deissenbeck** between two electrodes\n\n * (resulting in changing charges and potentials with appropriate\n average potential difference and thermal variance)\n\nThe first group-ID provided to each fix specifies the first electrode\ngroup, and more group(s) are added using the *couple* keyword for each\nadditional group. While *electrode/thermo* only accepts two groups,\n*electrode/conp* and *electrode/conq* accept any number of groups, up to\nLAMMPS's internal restrictions (see Restrictions below). Electrode\ngroups must not overlap, i.e. the fix will issue an error if any\nparticle is detected to belong to at least two electrode groups.\n\nCPM involves updating charges on groups of electrode particles, per time\nstep, so that the system's total energy is minimized with respect to\nthose charges. From basic electrostatics, this is equivalent to making\neach group conductive, or imposing an equal electrostatic potential on\nevery particle in the same group (hence the name CPM). The charges are\nusually modelled as a Gaussian distribution to make the charge-charge\ninteraction matrix invertible (**Gingrich**). The keyword\n*eta* specifies the distribution's width in units of inverse length.\n\nThree algorithms are available to minimize the energy, varying in how\nmatrices are pre-calculated before a run to provide computational\nspeedup. These algorithms can be selected using the keyword *algo*:\n\n* *algo mat_inv* pre-calculates the capacitance matrix and obtains the\n charge configuration in one matrix-vector calculation per time step\n\n* *algo mat_cg* pre-calculates the elastance matrix (inverse of\n capacitance matrix) and obtains the charge configuration using a\n conjugate gradient solver in multiple matrix-vector calculations per\n time step\n\n* *algo cg* does not perform any pre-calculation and obtains the charge\n configuration using a conjugate gradient solver and multiple\n calculations of the electric potential per time step.\n\nFor both *cg* methods, the command must specify the conjugate gradient\ntolerance. *fix electrode/thermo* currently only supports the *mat_inv*\nalgorithm.\n\nThe keyword *symm* can be set *on* (or *off*) to turn on (or turn off)\nthe capacitance matrix constraint that sets total electrode charge to be\nzero. This has slightly different effects for each *fix electrode*\nvariant. For *fix electrode/conp*, with *symm off*, the potentials\nspecified are absolute potentials, but the charge configurations\nsatisfying them may add up to an overall non-zero, varying charge for\nthe electrodes (and thus the simulation box). With *symm on*, the total\ncharge over all electrode groups is constrained to zero, and potential\ndifferences rather than absolute potentials are the physically relevant\nquantities.\n\nFor *fix electrode/conq*, with *symm off*, overall neutrality is\nexplicitly obeyed or violated by the user input (which is not\nchecked!). With *symm on*, overall neutrality is ensured by ignoring the\nuser-input charge for the last listed electrode (instead, its charge\nwill always be minus the total sum of all other electrode charges). For\n*fix electrode/thermo*, overall neutrality is always automatically\nimposed for any setting of *symm*, but *symm on* allows finite-field\nmode (*ffield on*, described below) for faster simulations.\n\nFor all three fixes, any potential (or charge for *conq*) can be\nspecified as an equal-style variable prefixed with \"v\\_\". For example,\nthe following code will ramp the potential difference between electrodes\nfrom 0.0V to 2.0V over the course of the simulation:\n\n```lmps\nfix fxconp bot electrode/conp 0.0 1.805 couple top v_v symm on\nvariable v equal ramp(0.0, 2.0)\n```\nNote that these fixes only parse their supplied variable name when\nstarting a run, and so these fixes will accept equal-style variables\ndefined *after* the fix definition, including variables dependent on the\nfix's own output. This is useful, for example, in the fix's internal\nfinite-field commands (see below). For an advanced example of this see\nthe in.conq2 input file in the directory\n``examples/PACKAGES/electrode/graph-il``.\n\nThis fix necessitates the use of a long range solver that calculates and\nprovides the matrix of electrode-electrode interactions and a vector of\nelectrode-electrolyte interactions. The Kspace styles\n*ewald/electrode*, *pppm/electrode* and *pppm/electrode/intel* are\ncreated specifically for this task **Ahrens-Iwers**.\n\nFor systems with non-periodic boundaries in one or two directions dipole\ncorrections are available with the [kspace_modify ](https://docs.lammps.org/kspace_modify.html).\nFor ewald/electrode a two-dimensional Ewald summation **Hu**\ncan be used by setting \"slab ew2d\":\n\n```lmps\nkspace_modify slab \nkspace_modify wire \nkspace_modify slab ew2d\n```\nTwo implementations for the calculation of the elastance matrix are\navailable with pppm and can be selected using the *amat onestep/twostep*\nkeyword. *onestep* is the default; *twostep* can be faster for large\nelectrodes and a moderate mesh size but requires more memory.\n\n```lmps\nkspace_modify amat onestep/twostep\n```\nFor all versions of the fix, the keyword-value *ffield on* enables the\nfinite-field mode (**Dufils**, **Tee**), which uses\nan electric field across a periodic cell instead of non-periodic\nboundary conditions to impose a potential difference between the two\nelectrodes bounding the cell. The fix (with name *fix-ID*) detects which\nof the two electrodes is \"on top\" (has the larger maximum *z*-coordinate\namong all particles). Assuming the first electrode group is on top, it\nthen issues the following commands internally:\n\n```lmps\nvariable fix-ID_ffield_zfield equal (f_fix-ID[2]-f_fix-ID[1])/lz\nefield fix-ID_efield all efield 0.0 0.0 v_fix-ID_ffield_zfield\n```\nwhich implements the required electric field as the potential difference\ndivided by cell length. The internal commands use variable so that the\nelectric field will correctly vary with changing potentials in the\ncorrect way (for example with equal-style potential difference or with\n*fix electrode/conq*). This keyword requires two electrodes and will\nissue an error with any other number of electrodes. This keyword\nrequires electroneutrality to be imposed (*symm on*) and will issue an\nerror otherwise.\n\nFor all versions of the fix, the keyword-value *etypes on* enables\ntype-based optimized neighbor lists. With this feature enabled, LAMMPS\nprovides the fix with an occasional neighbor list restricted to\nelectrode-electrode interactions for calculating the electrode matrix,\nand a perpetual neighbor list restricted to electrode-electrolyte\ninteractions for calculating the electrode potentials, using particle\ntypes to list only desired interactions, and typically resulting in\n5--10\\% less computational time. Without this feature the fix will\nsimply use the active pair style's neighbor list. This feature cannot\nbe enabled if any electrode particle has the same type as any\nelectrolyte particle (which would be unusual in a typical simulation)\nand the fix will issue an error in that case.\n\nThe keyword *qtotal* causes *fix electrode/conp* and *fix\nelectrode/thermo* to add an overall potential to all electrodes so that\nthe total charge on the electrodes is a specified amount (which may be\nan equal-style variable). For example, if a user wanted to simulate a\nsolution of excess cations such that the total electrolyte charge is +2,\nsetting *qtotal -2* would cause the total electrode charge to be -2, so\nthat the simulation box remains overall electroneutral. Since *fix\nelectrode/conq* constrains the total charges of individual electrodes,\nand since *symm on* constrains the total charge of all electrodes to be\nzero, either option is incompatible with the *qtotal* keyword (even if\n*qtotal* is set to zero).\n\nThe keyword *eta* takes the name of a custom double vector defined via\nfix property/atom. The values will be used instead of the standard eta\nvalue. The property/atom fix must be for vector of double values and\nuse the *ghost on* option.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix currently does not write any information to restart files.\n\nThe *fix_modify tf* option enables the Thomas-Fermi metallicity model\n(**Scalfi**) and allows parameters to be set for each atom type.\n\n```lmps\nfix_modify ID tf type length voronoi\n```\nIf this option is used parameters must be set for all atom types of the\nelectrode.\n\nThe *fix_modify timer* option turns on (off) additional timer outputs in the log\nfile, for code developers to track optimization.\n\n```lmps\nfix_modify ID timer on/off\n```\n----------\n\nThese fixes compute a global (extensive) scalar, a global (intensive)\nvector, and a global array, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe global scalar outputs the energy added to the system by this fix,\nwhich is the negative of the total charge on each electrode multiplied\nby that electrode's potential.\n\nThe global vector outputs the potential on each electrode (and thus has\n*N* entries if the fix manages *N* electrode groups), in [units](https://docs.lammps.org/units.html) of electric field multiplied by distance (thus volts for *real*\nand *metal* units). The electrode groups' ordering follows the order in\nwhich they were input in the fix command using *couple*. The global\nvector output is useful for *fix electrode/conq* and *fix\nelectrode/thermo*, where potential is dynamically updated based on\nelectrolyte configuration instead of being directly set.\n\nThe global array has *N* rows and *2N+1* columns, where the fix manages\n*N* electrode groups managed by the fix. For the *I*-th row of the\narray, the elements are:\n\n* array[I][1] = total charge that group *I* would have had *if it were\n at 0 V applied potential* * array[I][2 to *N* + 1] = the *N* entries\n of the *I*-th row of the electrode capacitance matrix (definition\n follows) * array[I][*N* + 2 to *2N* + 1] = the *N* entries of the\n *I*-th row of the electrode elastance matrix (the inverse of the\n electrode capacitance matrix)\n\nThe \\(N \\times N\\) electrode capacitance matrix, denoted \\(\\mathbf{C}\\)\nin the following equation, summarizes how the total charge induced on each\nelectrode (\\(\\mathbf{Q}\\) as an *N*-vector) is related to the potential on\neach electrode, \\(\\mathbf{V}\\), and the charge-at-0V \\(\\mathbf{Q}_{0V}\\)\n(which is influenced by the local electrolyte structure):\n\\[\n \\mathbf{Q} = \\mathbf{Q}_{0V} + \\mathbf{C} \\cdot \\mathbf{V}\\]\nThe charge-at-0V, electrode capacitance and elastance matrices are internally\nused to calculate the potentials required to induce the specified total\nelectrode charges in *fix electrode/conq* and *fix electrode/thermo*. With the\n*symm on* option, the electrode capacitance matrix would be singular, and thus\nits last row is replaced with *N* copies of its top-left entry\n(\\(\\mathbf{C}_{11}\\)) for invertibility.\n\nThe global array output is mainly useful for quickly determining the 'vacuum\ncapacitance' of the system (capacitance with only electrodes, no electrolyte),\nand can also be used for advanced simulations setting the potential as some\nfunction of the charge-at-0V (such as the ``in.conq2`` example mentioned above).\n\nPlease cite **Ahrens-Iwers2** in any publication that\nuses this implementation. Please cite also the publication on the combination\nof the CPM with PPPM if you use *pppm/electrode* **Ahrens-Iwers**.\n\n----------\n\n**(Siepmann)** Siepmann and Sprik, J. Chem. Phys. 102, 511 (1995). \n \n**(Reed3)** Reed *et al.*, J. Chem. Phys. 126, 084704 (2007). \n \n**(Deissenbeck)** Deissenbeck *et al.*, Phys. Rev. Letters 126, 136803 (2021). \n \n**(Gingrich)** Gingrich, `MSc thesis` ` (2010). \n \n**(Ahrens-Iwers)** Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021). \n \n**(Hu)** Hu, J. Chem. Theory Comput. 10, 5254 (2014). \n \n**(Dufils)** Dufils *et al.*, Phys. Rev. Letters 123, 195501 (2019). \n \n**(Tee)** Tee and Searles, J. Chem. Phys. 156, 184101 (2022). \n \n**(Scalfi)** Scalfi *et al.*, J. Chem. Phys., 153, 174704 (2020). \n \n**(Ahrens-Iwers2)** Ahrens-Iwers *et al.*, J. Chem. Phys. 157, 084801 (2022). \n \n**(Ahrens-Iwers)** Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021). \n ", + "restrictions": "For algorithms that use a matrix for the electrode-electrode\ninteractions, positions of electrode particles have to be immobilized at\nall times.\n\nWith *ffield off* (i.e. the default), the box geometry is expected to be\n*z*-non-periodic (i.e. *boundary p p f*), and this fix will issue an\nerror if the box is *z*-periodic. With *ffield on*, the box geometry is\nexpected to be *z*-periodic, and this fix will issue an error if the box\nis *z*-non-periodic.\n\nThe parallelization for the fix works best if electrode atoms are evenly\ndistributed across processors. For a system with two electrodes at the bottom\nand top of the cell this can be achieved with *processors * * 2*, or with the\nline\n\n```lmps\nif \"$(extract_setting(world_size) % 2) == 0\" then \"processors * * 2\"\n```\nwhich avoids an error if the script is run on an odd number of\nprocessors (such as on just one processor for testing).\n\nThe fix creates an additional group named *[fix-ID]_group* which is the\nunion of all electrode groups supplied to LAMMPS. This additional group\ncounts towards LAMMPS's limitation on the total number of groups\n(currently 32), which may not allow scripts that use that many groups to\nrun with this fix.\n\nThe matrix-based algorithms (*algo mat_inv* and *algo mat_cg*) currently\nstore an interaction matrix (either elastance or capacitance) of *N* by\n*N* doubles for each MPI process. This memory requirement may be\nprohibitive for large electrode groups. The fix will issue a warning if\nit expects to use more than 0.5 GiB of memory.\n", + "related": "none" }, { "command": [ - "bond_style oxdna/fene", - "bond_style oxdna2/fene" + "pair_style sph/lj", + "pair_style sph/lj/gpu" ], "syntax": [ - "bond_style oxdna/fene", - "bond_style oxdna2/fene", - "bond_style oxrna2/fene" + "pair_style sph/lj" ], "args": [ [ { - "arg": "bond_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "oxdna/fene", - "type": 1, - "choices": [] - } - ], - [ - { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "oxdna2/fene", - "type": 2, - "choices": [] - } - ], - [ - { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "oxrna2/fene", - "type": 2, - "choices": [] + "arg": "sph/lj", + "type": 3, + "choices": [ + "sph/lj", + "sph/lj/gpu" + ] } ] ], "parameters": "", - "examples": "\n```lmps\n# LJ units\nbond_style oxdna/fene\nbond_coeff * 2.0 0.25 0.7525\n\nbond_style oxdna2/fene\nbond_coeff * 2.0 0.25 0.7564\n\nbond_style oxrna2/fene\nbond_coeff * 2.0 0.25 0.76107\n\nbond_style oxdna/fene\nbond_coeff * oxdna_lj.cgdna\n\n# Real units\nbond_style oxdna/fene\nbond_coeff * 11.92337812042065 2.1295 6.409795\n\nbond_style oxdna2/fene\nbond_coeff * 11.92337812042065 2.1295 6.4430152\n\nbond_style oxrna2/fene\nbond_coeff * 11.92337812042065 2.1295 6.482800913\n\nbond_style oxrna2/fene\nbond_coeff * oxrna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples have to be kept fixed and\n > cannot be changed without reparameterizing the entire model. They are\n > provided in forms compatible with both *units lj* and *units real*\n > (see documentation of [units ](https://docs.lammps.org/units.html)). These can also be read\n > from a potential file with correct unit style by specifying the name\n > of the file. Several potential files for each unit style are included\n > in the ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", - "html_filename": "bond_oxdna.html", - "short_description": "The *oxdna/fene*, *oxdna2/fene*, and *oxrna2/fene* bond styles use the potential\n\\[\n E = - \\frac{\\epsilon}{2} \\ln \\left[ 1 - \\left(\\frac{r-r_0}{\\Delta}\\right)^2\\right]\\]\nto define a modified finite extensible nonlinear elastic (FENE)\npotential :ref:[(Ouldridge) ](https://docs.lammps.org/Ouldridge0>` to model the connectivity ofthe phosphate backbone in the oxDNA/oxRNA force field for coarse-grainedmodelling of DNA/RNA.The following coefficients must be defined for the bond type via the[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as given in the above example, orin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:* \\(\\epsilon\\) (energy)* \\(\\Delta\\) (distance)* \\(r_0\\) (distance)> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The oxDNA bond style has to be used together with the corresponding > oxDNA pair styles for excluded volume interaction *oxdna/excv* , > stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and coaxial > stacking interaction *oxdna/coaxstk* as well as hydrogen-bonding > interaction *oxdna/hbond* (see also documentation of [pair_style > oxdna/excv ](https://docs.lammps.org/pair_oxdna.html))", - "description": "The *oxdna/fene*, *oxdna2/fene*, and *oxrna2/fene* bond styles use the potential\n\\[\n E = - \\frac{\\epsilon}{2} \\ln \\left[ 1 - \\left(\\frac{r-r_0}{\\Delta}\\right)^2\\right]\\]\nto define a modified finite extensible nonlinear elastic (FENE)\npotential :ref:[(Ouldridge) ](https://docs.lammps.org/Ouldridge0>` to model the connectivity ofthe phosphate backbone in the oxDNA/oxRNA force field for coarse-grainedmodelling of DNA/RNA.The following coefficients must be defined for the bond type via the[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as given in the above example, orin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:* \\(\\epsilon\\) (energy)* \\(\\Delta\\) (distance)* \\(r_0\\) (distance)> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The oxDNA bond style has to be used together with the corresponding > oxDNA pair styles for excluded volume interaction *oxdna/excv* , > stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and coaxial > stacking interaction *oxdna/coaxstk* as well as hydrogen-bonding > interaction *oxdna/hbond* (see also documentation of [pair_style > oxdna/excv ](https://docs.lammps.org/pair_oxdna.html)). For the oxDNA2 **Snodin0** > bond style the analogous pair styles *oxdna2/excv* , *oxdna2/stk* , > *oxdna2/xstk* , *oxdna2/coaxstk* , *oxdna2/hbond* and an additional > Debye-Hueckel pair style *oxdna2/dh* have to be defined. The same > applies to the oxRNA2 **Sulc01** styles. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >This bond style has to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > > ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: >If data files are produced with [write_data ](https://docs.lammps.org/write_data.html), then > the [newton ](https://docs.lammps.org/newton.html) command should be set to *newton on* or > *newton off on*. Otherwise the data files will not have the same > 3'-to-5' polarity as the initial data file. This limitation does not > apply to binary restart files produced with [write_restart > ](https://docs.lammps.org/write_restart.html). > Example input and data files for DNA and RNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`, `.../oxDNA2/`` and``.../oxRNA2/``. A simple python setup tool which creates singlestraight or helical DNA strands, DNA/RNA duplexes or arrays of DNA/RNAduplexes can be found in ``examples/PACKAGES/cgdna/util/``.Please cite **Henrich0** in any publication that usesthis implementation. An updated documentation that contains general informationon the model, its implementation and performance as well as the structure ofthe data and input file can be found `here `", + "description": "The sph/lj style computes pressure forces between particles according\nto the Lennard-Jones equation of state, which is computed according to\nRee's 1980 polynomial fit :ref:[(Ree) ](https://docs.lammps.org/Ree>`. The Lennard-Jones parametersepsilon and sigma are set to unity. This pair style also computesMonaghan's artificial viscosity to prevent particles frominterpenetrating **Monoghan**.See `this PDF guide r_c \\end{align*} \\]\nThe location of the inflection point \\(r_s\\) is defined\nby the LJ diameter, \\(r_s/\\sigma = (26/7)^{1/6}\\). The cutoff distance\nis defined by \\(r_c/r_s = 67/48\\) or \\(r_c/\\sigma = 1.737...\\)\nThe analytic expression for the\nthe cubic coefficient\n\\(A_3 r_{min}^3/\\epsilon = 27.93...\\) is given in the paper by\nHolian and Ravelo **Holian**.\n\nThis potential is commonly used to study the shock mechanics of FCC\nsolids, as in Ravelo et al. **Ravelo2**.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the\nzero-crossing distance for the potential, not as the energy minimum,\nwhich is located at \\(r_{min} = 2^{\\frac{1}{6}} \\sigma\\). In the\nabove example, \\(\\sigma = 0.8908987\\), so \\(r_{min} = 1.0\\).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThe lj/cubic pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option,\nsince pair interaction is already smoothed to 0.0 at the\ncutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThe lj/cubic pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since there are no corrections for\na potential that goes to 0.0 at the cutoff.\n\nThe lj/cubic pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe lj/cubic pair style can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n \n \n**(Ravelo2)** Holian and Ravelo, Phys Rev B, 51, 11275 (1995). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* N = # of timesteps to run\n* Nevent = check for events every this many steps\n* fix-ID = ID of a fix that applies a global or local bias potential, can be NULL\n* compute-ID = ID of a compute that identifies when an event has occurred\n* zero or more keyword/value pairs may be appended\n* keyword = min or dump or rebond \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy, used in quenching \n         ftol = stopping tolerance for force, used in quenching \n         maxiter = max iterations of minimize, used in quenching \n         maxeval = max number of force/energy evaluations, used in quenching \n *        dump value = dump-ID \n         dump-ID = ID of dump to trigger whenever an event takes place \n *        rebond value = Nrebond \n         Nrebond = frequency at which to reset bonds, even if no event has occurred \n", + "examples": "\n```lmps\ncompute event all event/displace 1.0\nfix HG mobile hyper/global 3.0 0.3 0.4 800.0\nhyper 5000 100 HG event min 1.0e-6 1.0e-6 100 100 dump 1 dump 5\n```\n", + "html_filename": "hyper.html", + "short_description": "Run a bond-boost hyperdynamics (HD) simulation where time is\naccelerated by application of a bias potential to one or more pairs of\nnearby atoms in the system", + "description": "Run a bond-boost hyperdynamics (HD) simulation where time is\naccelerated by application of a bias potential to one or more pairs of\nnearby atoms in the system. This command can be used to run both\nglobal and local hyperdynamics. In global HD a single bond within the\nsystem is biased on each timestep. In local HD multiple bonds\n(separated by a sufficient distance) can be biased simultaneously at\neach timestep. In the bond-boost hyperdynamics context, a \"bond\" is\nnot a covalent bond between a pair of atoms in a molecule. Rather it\nis simply a pair of nearby atoms as discussed below.\n\nBoth global and local HD are described in **Voter2013** by Art Voter and collaborators. Similar to parallel\nreplica dynamics (PRD), global and local HD are methods for performing\naccelerated dynamics that are suitable for infrequent-event systems\nthat obey first-order kinetics. A good overview of accelerated\ndynamics methods (AMD) for such systems in given in **Voter2002hd** from the same group. To quote from the review paper:\n\"The dynamical evolution is characterized by vibrational excursions\nwithin a potential basin, punctuated by occasional transitions between\nbasins. The transition probability is characterized by p(t) =\nk\\*exp(-kt) where k is the rate constant.\"\n\nBoth HD and PRD produce a time-accurate trajectory that effectively\nextends the timescale over which a system can be simulated, but they\ndo it differently. HD uses a single replica of the system and\naccelerates time by biasing the interaction potential in a manner such\nthat each timestep is effectively longer. PRD creates Nr replicas of\nthe system and runs dynamics on each independently with a normal\nunbiased potential until an event occurs in one of the replicas. The\ntime between events is reduced by a factor of Nr replicas. For both\nmethods, per CPU second, more physical time elapses and more events\noccur. See the [prd ](https://docs.lammps.org/prd.html) page for more info about PRD.\n\nAn HD run has several stages, which are repeated each time an event\noccurs, as explained below. The logic for an HD run is as follows:\n\n```\nquench\ncreate initial list of bonds\n\nwhile (time remains):\nrun dynamics for Nevent steps\nquench\ncheck for an event\nif event occurred: reset list of bonds\nrestore pre-quench state\n```\nThe list of bonds is the list of atom pairs of atoms that are within a\nshort cutoff distance of each other after the system energy is\nminimized (quenched). This list is created and reset by a [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html) or [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html) command specified as *fix-ID* . At\nevery dynamics timestep, the same fix selects one of more bonds to\napply a bias potential to.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The style of fix associated with the specified *fix-ID*\n > determines whether you are running the global versus local\n > hyperdynamics algorithm. \n > \n\nDynamics (with the bias potential) is run continuously, stopping every\n*Nevent* steps to check if a transition event has occurred. The\nspecified *N* for total steps must be a multiple of *Nevent* . check\nis performed by quenching the system and comparing the resulting atom\ncoordinates to the coordinates from the previous basin.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command.\nMinimization parameters may be set via the\n[min_modify ](https://docs.lammps.org/min_modify.html) command and by the *min* keyword of the\nhyper command. The latter are the settings that would be used with\nthe [minimize ](https://docs.lammps.org/minimize.html) command. Note that typically, you do not\nneed to perform a highly-converged minimization to detect a transition\nevent, though you may need to in order to prevent a set of atoms in\nthe system from relaxing to a saddle point.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nhyper command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an event has occurred.\n\nIf this happens, the list of bonds is reset, since some bond pairs\nare likely now too far apart, and new pairs are likely close enough\nto be considered a bond. The pre-quenched state of the\nsystem (coordinates and velocities) is restored, and dynamics continue.\n\nAt the end of the hyper run, a variety of statistics are output to the\nscreen and logfile. These include info relevant to both global and\nlocal hyperdynamics, such as the number of events and the elapsed\nhyper time (accelerated time), And it includes info specific to one or\nthe other, depending on which style of fix was specified by *fix-ID* .\n\n----------\n\nThe optional keywords operate as follows.\n\nAs explained above, the *min* keyword can be used to specify\nparameters for the quench. Their meaning is the same\nas for the [minimize ](https://docs.lammps.org/minimize.html) command\n\nThe *dump* keyword can be used to trigger a specific dump command with\nthe specified *dump-ID* to output a snapshot each time an event is\ndetected. It can be specified multiple times with different *dump-ID*\nvalues, as in the example above. These snapshots will be for the\nquenched state of the system on a timestep that is a multiple of\n*Nevent*, i.e. a timestep after the event has occurred. Note that any\ndump command in the input script will also output snapshots at\nwhatever timestep interval it defines via its *N* argument; see the\n[dump ](https://docs.lammps.org/dump.html) command for details. This means if you only want a\nparticular dump to output snapshots when events are detected, you\nshould specify its *N* as a value larger than the length of the\nhyperdynamics run.\n\nAs in the code logic above, the bond list is normally only reset when\nan event occurs. The *rebond* keyword will force a reset of the bond\nlist every *Nrebond* steps, even if an event has not occurred.\n*Nrebond* must be a multiple of *Nevent* . This can be useful to check\nif more frequent resets alter event statistics, perhaps because the\nparameters chosen for defining what is a bond and what is an event are\nproducing bad dynamics in the presence of the bias potential.\n\n----------\n\n**(Voter2013)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Voter2002hd)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html), [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html), [compute event/displace ](https://docs.lammps.org/compute_event_displace.html), [prd ](https://docs.lammps.org/prd.html)\n" }, { "command": [ - "pair_style lj/relres", - "pair_style lj/relres/omp" + "fix drag" ], "syntax": [ - "pair_style lj/relres Rsi Rso Rci Rco" + "fix ID group-ID drag x y z fmag delta" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "lj/relres", - "type": 3, - "choices": [ - "lj/relres", - "lj/relres/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "Rsi", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "Rso", + "arg": "drag", + "type": 1, + "choices": [] + }, + { + "arg": "x", "type": 2, "choices": [] }, { - "arg": "Rci", + "arg": "y", "type": 2, "choices": [] }, { - "arg": "Rco", + "arg": "z", + "type": 2, + "choices": [] + }, + { + "arg": "fmag", + "type": 2, + "choices": [] + }, + { + "arg": "delta", "type": 2, "choices": [] } ] ], - "parameters": "* Rsi = inner switching cutoff between the fine-grained and coarse-grained potentials (distance units)\n* Rso = outer switching cutoff between the fine-grained and coarse-grained potentials (distance units)\n* Rci = inner cutoff beyond which the force smoothing for all interactions is applied (distance units)\n* Rco = outer cutoff for all interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/relres 4.0 5.0 8.0 10.0\npair_coeff 1 1 0.5 1.0 1.5 1.1\npair_coeff 2 2 0.5 1.0 0.0 0.0 3.0 3.5 6.0 7.0\n```\n", - "html_filename": "pair_lj_relres.html", - "short_description": "Pair style *lj/relres* computes a LJ interaction using the Relative\nResolution (RelRes) framework which applies a fine-grained (FG)\npotential between near neighbors and a coarse-grained (CG) potential\nbetween far neighbors **Chaimovich1**", - "description": "Pair style *lj/relres* computes a LJ interaction using the Relative\nResolution (RelRes) framework which applies a fine-grained (FG)\npotential between near neighbors and a coarse-grained (CG) potential\nbetween far neighbors **Chaimovich1**. This approach\ncan improve the computational efficiency by almost an order of\nmagnitude, while maintaining the correct static and dynamic behavior of\na reference system **Chaimovich2**.\n\\[\\begin{align*} \n E = \\left\\{\\begin{array}{lr}\n 4 \\epsilon^{\\scriptscriptstyle FG} \\left[ \\left(\\frac{\\sigma^{FG}}{r}\\right)^{12} - \\left(\\frac{\\sigma^{FG}}{r}\\right)^6 \\right]-\\Gamma_{si}, & \\quad\\mathrm{if}\\quad r< r_{si}, \\\\\n \\sum_{m=0}^{4} \\gamma_{sm}\\left(r-r_{si}\\right)^m-\\Gamma_{so} , & \\quad\\mathrm{if}\\quad r_{si}\\leq r< r_{so}, \\\\\n 4 \\epsilon^{\\scriptscriptstyle CG} \\left[ \\left(\\frac{\\sigma^{CG}}{r}\\right)^{12} - \\left(\\frac{\\sigma^{CG}}{r}\\right)^6 \\right]-\\Gamma_c, & \\quad\\mathrm{if}\\quad r_{so}\\leq r ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Energy and force resulting from this methodology can be plotted via the\n > [pair_write ](https://docs.lammps.org/pair_write.html) command. \n > \n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by\nmixing as will be described below:\n\n* \\(\\epsilon^{FG}\\) (energy units)\n* \\(\\sigma^{FG}\\) (distance units)\n* \\(\\epsilon^{CG}\\) (energy units)\n* \\(\\sigma^{CG}\\) (distance units)\n\nAdditional parameters can be defined to specify different\n\\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\), \\(r_{co}\\) for\na particular set of atom types:\n\n* \\(r_{si}\\) (distance units)\n* \\(r_{so}\\) (distance units)\n* \\(r_{ci}\\) (distance units)\n* \\(r_{co}\\) (distance units)\n\nThese parameters are optional, and they are used to override the global\ncutoffs as defined in the pair_style command. If not specified, the\nglobal values for \\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\), and\n\\(r_{co}\\) are used. If this override option is employed, all four\narguments must be specified.\n\n----------\n\nHere are some guidelines for using the pair_style *lj/relres* command.\n\nIn general, RelRes focuses on the speedup of pairwise interactions between\nall LJ sites. Importantly, it works with any settings and flags (e.g.,\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings and [newton ](https://docs.lammps.org/newton.html)\nflags) that can be used in a molecular simulation with the\nconventional LJ potential. In particular, all intramolecular topology\nwith its energetics (i.e., bonds, angles, etc.) remains unaltered.\n\nAt the most basic level in the RelRes framework, all sites are mapped into\nclusters. Each cluster is just a collection of sites bonded together (the\nbonds themselves are not part of the cluster). In general, a molecule may\nbe comprised of several clusters, and preferably, no two sites in a cluster\nare separated by more than two bonds. There are two categories of sites in\nRelRes: \"hybrid\" sites embody both FG and CG models, while \"ordinary\" sites\nembody just FG characteristics with no CG features. A given cluster has\na single hybrid site (typically its central site) and several ordinary sites\n(typically its peripheral sites). Notice that while clusters are necessary\nfor the RelRes parameterization (discussed below), they are not actually\ndefined in LAMMPS. Besides, the total number of sites in the cluster are\ncalled the \"mapping ratio\", and this substantially impacts the computational\nefficiency of RelRes: For a mapping ratio of 3, the efficiency factor is\naround 4, and for a mapping ratio of 5, the efficiency factor is around 5\n**Chaimovich2**.\n\nThe flexibility of LAMMPS allows placing any values for the LJ\nparameters in the input script. However, here are the optimal\nrecommendations for the RelRes parameters, which yield the correct\nstructural and thermal behavior in a system of interest\n**Chaimovich1**. One must first assign a complete set of\nparameters for the FG interactions that are applicable to all atom types.\nRegarding the parameters for the CG interactions, the rules rely on the\nsite category (if it is a hybrid or an ordinary site). For atom types of\nordinary sites, \\(\\epsilon^{CG}\\) must be set to 0 (zero) while the\nspecific value of \\(\\sigma^{CG}\\) is irrelevant. For atom types of\nhybrid sites, the CG parameters should be generally calculated using the\nfollowing equations:\n\\[\n \\sigma_I^{CG}=\\frac{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^{12}}\\right)^{1/2}}{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^6}\\right)^{1/3}}\n \\quad\\mathrm{and}\\quad\n \\epsilon_I^{CG}=\\frac{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^6}\\right)^4}{\\left((\\sum_{\\alpha\\in A}\\sqrt{\\epsilon_\\alpha^{FG}\\left(\\sigma_\\alpha^{FG}\\right)^{12}}\\right)^2}\\]\nwhere \\(I\\) is an atom type of a hybrid site of a particular cluster\n\\(A\\), and corresponding with this cluster, the summation proceeds over\nall of its sites \\(\\alpha\\). These equations are derived from the\nmonopole term in the underlying Taylor series, and they are indeed relevant\nonly if geometric mixing is applicable for the FG model; if this is not the\ncase, Ref. **Chaimovich2** discusses the alternative\nformula, and in such a situation, the pair_coeff command should be explicitly\nused for all combinations of atom types \\(I\\;!=J\\).\n\nThe switching distance (the midpoint between inner and outer switching\ncutoffs) is another crucial factor in RelRes: decreasing it improves the\ncomputational efficiency, yet if it is too small, the molecular simulations\nmay not capture the system behavior correctly. As a rule of thumb,\nthe switching distance should be approximately \\(\\,\\sim\\! 1.5\\sigma\\)\n**Chaimovich1**; recommendations can be found in\nRef. **Chaimovich2**.\nRegarding the switching smoothing zone, \\(\\,\\sim\\!0.1\\sigma\\) is\nrecommended; if desired, smoothing can be eliminated by setting\nthe inner switching cutoff, \\(r_{si}\\), equal to the outer\nswitching cutoff, \\(r_{so}\\) (the same is true for the other cutoffs\n\\(r_{ci}\\) and \\(r_{co}\\)).\n\n----------\n\nAs an example, imagine that in your system, a molecule is comprised just\nof one cluster such that one atom type (#1) is associated with\nits hybrid site, and another atom type (#2) is associated with its ordinary\nsites (in total, there are 2 atom types). If geometric mixing is applicable,\nthe following commands should be used:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0\npair_modify shift yes\n```\nIn a more complex situation, there may be two distinct clusters in a system\n(these two clusters may be on same molecule or on different molecules),\neach with its own switching cutoffs. If there are still two atom types\nin each cluster as in the earlier example, the commands should be:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3\npair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0\npair_modify shift yes\n```\nIn this example, the switching cutoffs for the first cluster (atom types 1\nand 2) is defined explicitly in the pair_coeff command which overrides the\nglobal values, while the second cluster (atom types 3 and 4) uses the global\ndefinition from the pair_style command. The emphasis here is that the atom\ntypes that belong to a specific cluster should have the same switching/cutoff\narguments.\n\nIn the case that geometric mixing is not applicable, for simulating the\nsystem from the previous example, we recommend using the following commands:\n\n```lmps\npair_style lj/relres Rsi Rso Rci Rco\npair_coeff 1 1 epsilon_FG1 sigma_FG1 epsilon_CG1 sigma_CG1 Rsi1 Rso1 Rci Rco\npair_coeff 1 2 epsilon_FG12 sigma_FG12 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 1 3 epsilon_FG13 sigma_FG13 epsilon_CG13 sigma_CG13 Rsi13 Rso13 Rci Rco\npair_coeff 1 4 epsilon_FG14 sigma_FG14 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 2 2 epsilon_FG2 sigma_FG2 0.0 0.0 Rsi1 Rso1 Rci Rco\npair_coeff 2 3 epsilon_FG23 sigma_FG23 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 2 4 epsilon_FG24 sigma_FG24 0.0 0.0 Rsi13 Rso13 Rci Rco\npair_coeff 3 3 epsilon_FG3 sigma_FG3 epsilon_CG3 sigma_CG3\npair_coeff 3 4 epsilon_FG34 sigma_FG34 0.0 0.0\npair_coeff 4 4 epsilon_FG4 sigma_FG4 0.0 0.0\npair_modify shift yes\n```\nNotice that the CG parameters are mixed only for interactions between atom\ntypes associated with hybrid sites, and that the cutoffs are\nmixed on the cluster basis.\n\nMore examples can be found in the *examples/relres* folder.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs \\(I,\\:J\\) with \\(I\\;!=J\\), the\n\\(\\epsilon^{FG}\\), \\(\\sigma^{FG}\\), \\(\\epsilon^{CG}\\),\n\\(\\sigma^{CG}\\), \\(r_{si}\\), \\(r_{so}\\), \\(r_{ci}\\),\nand \\(r_{co}\\) parameters for this pair style can be mixed, if\nnot defined explicitly. All parameters are mixed according to the\npair_modify mix option. The default mix value is *geometric*,\nand it is recommended to use with this *lj/relres* style. See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction. It is recommended to set\nthis option to *yes* . Otherwise, the offset \\(\\Gamma_{c}\\)\nis set to zero. Constants \\(\\Gamma_{si}\\) and \\(\\Gamma_{so}\\) are\nnot impacted by this option.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Chaimovich1)** A. Chaimovich, C. Peter and K. Kremer, J. Chem. Phys. 143,\n243107 (2015). \n \n**(Chaimovich2)** M. Chaimovich and A. Chaimovich, J. Chem. Theory Comput. 17,\n1045-1059 (2021). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* drag = style name of this fix command\n* x,y,z = coord to drag atoms towards\n* fmag = magnitude of force to apply to each atom (force units)\n* delta = cutoff distance inside of which force is not applied (distance units) \n", + "examples": "\n```lmps\nfix center small-molecule drag 0.0 10.0 0.0 5.0 2.0\n```\n", + "html_filename": "fix_drag.html", + "short_description": "Apply a force to each atom in a group to drag it towards the point\n(x,y,z)", + "description": "Apply a force to each atom in a group to drag it towards the point\n(x,y,z). The magnitude of the force is specified by fmag. If an atom\nis closer than a distance delta to the point, then the force is not\napplied.\n\nAny of the x,y,z values can be specified as NULL which means do not\ninclude that dimension in the distance calculation or force\napplication.\n\nThis command can be used to steer one or more atoms to a new location\nin the simulation.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms by the drag force. The vector values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" }, { "command": [ - "fix accelerate/cos" + "compute vacf" ], "syntax": [ - "fix ID group-ID accelerate value" + "compute ID group-ID vacf" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -14035,75 +13257,77 @@ export const command_docs = [ "choices": [] }, { - "arg": "accelerate", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, + "arg": "vacf", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* accelerate/cos = style name of this fix command\n* value = amplitude of acceleration (in unit of velocity/time) \n", - "examples": "\n```lmps\nfix 1 all accelerate/cos 2.0e-7\n```\n", - "html_filename": "fix_accelerate_cos.html", - "short_description": "Give each atom a acceleration in x-direction based on its z coordinate", - "description": "Give each atom a acceleration in x-direction based on its z coordinate.\nThe acceleration is a periodic function along the z-direction:\n\\[\n a_{x}(z) = A \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nwhere \\(A\\) is the acceleration amplitude, \\(l_z\\) is the\n\\(z\\)-length of the simulation box.\nAt steady state, the acceleration generates a velocity profile:\n\\[\n v_{x}(z) = V \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nThe generated velocity amplitude \\(V\\) is related to the\nshear viscosity \\(\\eta\\) by:\n\\[\n V = \\frac{A \\rho}{\\eta}\\left(\\frac{l_{z}}{2 \\pi}\\right)^{2}\\]\nand it can be obtained from ensemble average of the velocity profile:\n\\[\n V = \\frac{\\sum\\limits_i 2 m_{i} v_{i, x} \\cos \\left(\\frac{2 \\pi z_i}{l_{z}}\\right)}{\\sum\\limits_i m_{i}},\\]\nwhere \\(m_i\\), \\(v_{i,x}\\), and \\(z_i\\) are the mass,\n\\(x\\)-component velocity, and \\(z\\)-coordinate of a particle,\nrespectively.\n\nThe velocity amplitude \\(V\\) can be calculated with [computeviscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html), which enables viscosity\ncalculation with periodic perturbation method, as described by\n**Hess2**. Because the applied acceleration drives the system\naway from equilibration, the calculated shear viscosity is lower than\nthe intrinsic viscosity due to the shear-thinning effect. Extrapolation\nto zero acceleration should generally be performed to predict the\nzero-shear viscosity. As the shear stress decreases, the\nsignal-to-noise ratio decreases rapidly, and the simulation time must be\nextended accordingly to get converged results.\n\nIn order to get meaningful results, the group ID of this fix should be all.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to binary restart files.\nNone of the fix_modify options are relevant to this fix.\nNo global or per-atom quantities are stored by this fix for access by various\noutput commands. No parameter of this fix can be used with the start/stop\nkeywords of the run command.\n\nThis fix is not invoked during energy minimization.\n\n**(Hess2)** Hess, B. Journal of Chemical Physics 2002, 116 (1), 209--217. \n ", - "restrictions": "This fix is part of the MISC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nSince this fix depends on the \\(z\\)-coordinate of atoms, it cannot be used\nin 2d simulations.\n", - "related": "[compute viscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* vacf = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all vacf\ncompute 1 upper vacf\n```\n", + "html_filename": "compute_vacf.html", + "short_description": "Define a computation that calculates the velocity auto-correlation\nfunction (VACF), averaged over a group of atoms", + "description": "Define a computation that calculates the velocity auto-correlation\nfunction (VACF), averaged over a group of atoms. Each atom's\ncontribution to the VACF is its current velocity vector dotted into\nits initial velocity vector at the time the compute was specified.\n\nA vector of four quantities is calculated by this compute. The first three\nelements of the vector are \\(v_x v_{x,0}\\) (and similar for the\n\\(y\\) and \\(z\\) components), summed and averaged over atoms in the\ngroup, where \\(v_x\\) is the current \\(x\\)-component of the velocity of\nthe atom and \\(v_{x,0}\\) is the initial \\(x\\)-component of the velocity\nof the atom. The fourth element of the vector is the total VACF\n(i.e., \\((v_x v_{x,0} + v_y v_{y,0} + v_z v_{z,0})\\)),\nsummed and averaged over atoms in the group.\n\nThe integral of the VACF versus time is proportional to the diffusion\ncoefficient of the diffusing atoms. This can be computed in the\nfollowing manner, using the [variable trap() ](https://docs.lammps.org/variable.html) function:\n\n```lmps\ncompute 2 all vacf\nfix 5 all vector 1 c_2[4]\nvariable diff equal dt*trap(f_5)\nthermo_style custom step v_diff\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with time=0 atom velocities from the restart file. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 4, which can be\naccessed by indices 1--4 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\nvelocity\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" }, { "command": [ - "pair_style peri/pmb", - "pair_style peri/pmb/omp", - "pair_style peri/lps", - "pair_style peri/lps/omp", - "pair_style peri/ves" + "fix_modify AtC atom_weight" ], "syntax": [ - "pair_style style" + "fix_modify atom_weight " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "peri/lps/omp", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "atom_weight", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 3, "choices": [ - "peri/pmb", - "peri/lps", - "peri/ves", - "peri/eps", - "peri/pmb/omp", - "peri/lps/omp" + "constant", + "lattice", + "element", + "region", + "group", + "read_in" ] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = peri/pmb or peri/lps or peri/ves or peri/eps \n", - "examples": "\n```lmps\npair_style peri/pmb\npair_coeff * * 1.6863e22 0.0015001 0.0005 0.25\n\npair_style peri/lps\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25\n\npair_style peri/ves\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25 0.5 0.001\n\npair_style peri/eps\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25 118.43\n```\n", - "html_filename": "pair_peri.html", - "short_description": "The peridynamic pair styles implement material models that can be used\nat the mesoscopic and macroscopic scales", - "description": "The peridynamic pair styles implement material models that can be used\nat the mesoscopic and macroscopic scales. See [this document](https://docs.lammps.org/PDF/PDLammps_overview.pdf) for an overview of LAMMPS commands for\nPeridynamics modeling.\n\nStyle *peri/pmb* implements the Peridynamic bond-based prototype\nmicroelastic brittle (PMB) model.\n\nStyle *peri/lps* implements the Peridynamic state-based linear\nperidynamic solid (LPS) model.\n\nStyle *peri/ves* implements the Peridynamic state-based linear\nperidynamic viscoelastic solid (VES) model.\n\nStyle *peri/eps* implements the Peridynamic state-based elastic-plastic\nsolid (EPS) model.\n\nThe canonical papers on Peridynamics are :ref:[(Silling 2000)](https://docs.lammps.org/Silling2000>` and **Silling2007**. Theimplementation of Peridynamics in LAMMPS is described in :ref:`(Parks)`. Also see the [Peridynamics Howto ](https://docs.lammps.org/Howto_peri.html) for moredetails about its implementation.The peridynamic VES and EPS models in PDLAMMPS were implemented byR. Rahman and J. T. Foster at University of Texas at San Antonio. Theoriginal VES formulation is described in \"(Mitchell2011)\" and theoriginal EPS formulation is in \"(Mitchell2011a)\". Additional PDF docsthat describe the VES and EPS implementations are include in the LAMMPSdistribution in `doc/PDF/PDLammps_VES.pdf : atoms in specified group are assigned the constant value given\n - lattice : volume per atom for specified lattice type (e.g. fcc) and parameter\n - element : element volume divided among atoms within element\n - region : volume per atom determined based on the atom count in the MD regions and their volumes. Note: meaningful only if atoms completely fill all the regions.\n - group : volume per atom determined based on the atom count in a group and its volume\n - *node* : (undocumented)\n - *node_element* : (undocumented)\n - read_in : list of values for atoms are read-in from specified file \n", + "examples": "\n```lmps\nfix_modify AtC atom_weight constant myatoms 11.8\nfix_modify AtC atom_weight lattice\nfix_modify AtC atom_weight read-in atm_wt_file.txt\n```\n", + "html_filename": "atc_atom_weight.html", + "short_description": "Command for assigning the value of atomic weights used for atomic\nintegration in atom-continuum coupled simulations", + "description": "Command for assigning the value of atomic weights used for atomic\nintegration in atom-continuum coupled simulations.\n", + "restrictions": "The use of the lattice option requires a lattice type and parameter is already specified.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style oxrna2/excv", - "pair_style oxrna2/stk", - "pair_style oxrna2/hbond", - "pair_style oxrna2/xstk", - "pair_style oxrna2/coaxstk" + "pair_style body/rounded/polyhedron" ], "syntax": [ - "pair_style style1" + "pair_style body/rounded/polyhedron c_n c_t mu delta_ua cutoff" ], "args": [ [ @@ -14113,227 +13337,213 @@ export const command_docs = [ "choices": [] }, { - "arg": "style1", + "arg": "body/rounded/polyhedron", + "type": 1, + "choices": [] + }, + { + "arg": "c_n", + "type": 2, + "choices": [] + }, + { + "arg": "c_t", + "type": 2, + "choices": [] + }, + { + "arg": "mu", + "type": 2, + "choices": [] + }, + { + "arg": "delta_ua", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* style1 = *hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh*\n\n* style2 = oxrna2/excv or oxrna2/stk or oxrna2/hbond or oxrna2/xstk or oxrna2/coaxstk or oxrna2/dh\n* args = list of arguments for these particular styles \n *      oxrna2/stk args = seq T xi kappa 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.40206 (LJ units) or 8.35864576375849 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.77 (LJ units) or 0.005504556 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxrna2/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 0.870439 (LJ units) or 5.18928666388042 (real units), average hydrogen bonding strength between A-U and C-G Watson-Crick and G-U wobble base pairs, 0 between all other pairs \n *      oxrna2/dh args = T rhos qeff \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       rhos = salt concentration (mole per litre) \n       qeff = 1.02455 (effective charge in elementary charges) \n", - "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65\npair_coeff * * oxrna2/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 3 4 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxrna2/xstk 59.9626 0.5 0.6 0.42 0.58 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68\npair_coeff * * oxrna2/coaxstk 80 0.5 0.6 0.42 0.58 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65\npair_coeff * * oxrna2/dh 0.1 0.5 1.02455\n\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv oxrna2_lj.cgdna\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff * * oxrna2/xstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/dh 0.1 0.5 oxrna2_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65\npair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68\npair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65\npair_coeff * * oxrna2/dh 300.0 0.5 1.02455\n\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv oxrna2_real.cgdna\npair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2_real.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff * * oxrna2/xstk oxrna2_real.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_real.cgdna\npair_coeff * * oxrna2/dh 300.0 0.5 oxrna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", - "html_filename": "pair_oxrna2.html", - "short_description": "The *oxrna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of RNA", - "description": "The *oxrna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of RNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxrna2/excv*, the stacking *oxrna2/stk*,\ncross-stacking *oxrna2/xstk* and coaxial stacking interaction\n*oxrna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxrna2/dh* as\nwell as the hydrogen-bonding interaction *oxrna2/hbond* between\ncomplementary pairs of nucleotides on opposite strands. Average sequence\nor sequence-dependent stacking and base-pairing strengths are supported\n:ref:[(Sulc2) ](https://docs.lammps.org/Sulc32>`. Quasi-unique base-pairing between nucleotidescan be achieved by using more complementary pairs of atom types like 5-8and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents thehybridization of in principle complementary bases within Ntypes/4 basesup and down along the backbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to **Sulc31** andthe original oxDNA publications :ref:`(Ouldridge-DPhil)` and **Ouldridge3** for a detaileddescription of the oxRNA2 force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA2 > bond style *oxrna2/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxrna2/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 and > corresponding *real unit* equivalents in the above examples), the > first coefficient after *oxrna2/hbond* (seq=seqdep in the above > example) and the three coefficients after *oxrna2/dh* (T=0.1, > rhos=0.5, qeff=1.02455 in the above example). When using a Langevin > thermostat e.g. through [fix langevin ](https://docs.lammps.org/fix_langevin.html) or > [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature > coefficients have to be matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. A simple pythonsetup tool which creates single straight or helical DNA strands, DNAduplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich3** in any publication that usesthis implementation. The article contains general information on themodel, its implementation and performance as well as the structure ofthe data and input file. The preprint version of the article can befound `here \n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff * * oxrna2/xstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/dh 0.1 0.5 1.02455\n```\nwill read the excluded volume and Debye-Hueckel effective charge *qeff*\nparameters from the manual specification and all others from the\npotential file *oxrna2_lj.cgdna*.\n\nThere are sample potential files for each unit style in the\n``potentials`` directory of the LAMMPS distribution. The potential file\nunit system must align with the units defined via the [units](https://docs.lammps.org/units.html) command. For conversion between different *LJ* and *real* unit\nsystems for oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool\nassumes similar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc32)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Sulc31)** P. Sulc, F. Romano, T. E. Ouldridge, et al., J. Chem. Phys. 140, 235102 (2014). \n \n**(Ouldridge3)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich3)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n ", - "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html),\n[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" + "parameters": " *    c_n = normal damping coefficient \n *    c_t = tangential damping coefficient \n *    mu = normal friction coefficient during gross sliding \n *    delta_ua = multiple contact scaling factor \n *    cutoff = global separation cutoff for interactions (distance units), see below for definition \n", + "examples": "\n```lmps\npair_style body/rounded/polyhedron 20.0 5.0 0.0 1.0 0.5\npair_coeff * * 100.0 1.0\npair_coeff 1 1 100.0 1.0\n```\n", + "html_filename": "pair_body_rounded_polyhedron.html", + "short_description": "Style *body/rounded/polygon* is for use with 3d models of body\nparticles of style *rounded/polyhedron* ", + "description": "Style *body/rounded/polygon* is for use with 3d models of body\nparticles of style *rounded/polyhedron* . It calculates pairwise\nbody/body interactions which can include body particles modeled as\n1-vertex spheres with a specified diameter. See the\n[Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nrounded/polyhedron particles.\n\nThis pairwise interaction between the rounded polyhedra is described\nin **pair-Wang**, where a polyhedron does not have sharp corners\nand edges, but is rounded at its vertices and edges by spheres\ncentered on each vertex with a specified diameter. The edges of the\npolyhedron are defined between pairs of adjacent vertices. Its faces\nare defined by a loop of edges. The sphere diameter for each polygon\nis specified in the data file read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand. This is a discrete element model (DEM) which allows for\nmultiple contact points.\n\nNote that when two particles interact, the effective surface of each\npolyhedron particle is displaced outward from each of its vertices,\nedges, and faces by half its sphere diameter. The interaction forces\nand energies between two particles are defined with respect to the\nseparation of their respective rounded surfaces, not by the separation\nof the vertices, edges, and faces themselves.\n\nThis means that the specified cutoff in the pair_style command is the\ncutoff distance, \\(r_c\\), for the surface separation, \\(\\delta_n\\) (see figure\nbelow). This is the distance at which two particles no longer\ninteract. If \\(r_c\\) is specified as 0.0, then it is a contact-only\ninteraction. I.e. the two particles must overlap in order to exert a\nrepulsive force on each other. If \\(r_c > 0.0\\), then the force between\ntwo particles will be attractive for surface separations from 0 to\n\\(r_c\\), and repulsive once the particles overlap.\n\nNote that unlike for other pair styles, the specified cutoff is not\nthe distance between the centers of two particles at which they stop\ninteracting. This center-to-center distance depends on the shape and\nsize of the two particles and their relative orientation. LAMMPS\ntakes that into account when computing the surface separation distance\nand applying the \\(r_c\\) cutoff.\n\nThe forces between vertex-vertex, vertex-edge, vertex-face, edge-edge,\nand edge-face overlaps are given by:\n\\[.. math::\\]\n F_n &= \\begin{cases}\n k_n \\delta_n - c_n v_n, & \\delta_n \\le 0 \\\\\n -k_{na} \\delta_n - c_n v_n & 0 < \\delta_n \\le r_c \\\\\n 0 & \\delta_n > r_c \\\\\n \\end{cases} \\\\\n F_t &= \\begin{cases}\n \\mu k_n \\delta_n - c_t v_t & \\delta_n \\le 0 \\\\\n 0 & \\delta_n > 0\n \\end{cases}\n\n ![Image](JPG/pair_body_rounded.jpg) \n\nIn **pair-Wang**, the tangential friction force between two\nparticles that are in contact is modeled differently prior to gross\nsliding (i.e. static friction) and during gross-sliding (kinetic\nfriction). The latter takes place when the tangential deformation\nexceeds the Coulomb frictional limit. In the current implementation,\nhowever, we do not take into account frictional history, i.e. we do\nnot keep track of how many time steps the two particles have been in\ncontact nor calculate the tangential deformation. Instead, we assume\nthat gross sliding takes place as soon as two particles are in\ncontact.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file read by the [read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(k_n\\) (energy/distance\\^2 units)\n* \\(k_{na}\\) (energy/distance\\^2 units)\n\nEffectively, \\(k_n\\) and \\(k_{na}\\) are the slopes of the red lines in the plot\nabove for force versus surface separation, for \\(\\delta_n\\) < 0 and\n\\(0 < \\delta_n < r_c\\) respectively.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\nThus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(pair-Wang)** J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular\nMatter, 13, 1 (2011). \n ", + "restrictions": "These pair styles are part of the BODY package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "echo" + "pair_style sph/taitwater", + "pair_style sph/taitwater/gpu" ], "syntax": [ - "echo style" + "pair_style sph/taitwater" ], "args": [ [ { - "arg": "echo", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "both", + "arg": "sph/taitwater", "type": 3, "choices": [ - "none", - "screen", - "log", - "both" + "sph/taitwater", + "sph/taitwater/gpu" ] } ] ], - "parameters": "* style = none or screen or log or both \n", - "examples": "\n```lmps\necho both\necho log\n```\n", - "html_filename": "echo.html", - "short_description": "This command determines whether LAMMPS echoes each input script\ncommand to the screen and/or log file as it is read and processed", - "description": "This command determines whether LAMMPS echoes each input script\ncommand to the screen and/or log file as it is read and processed. If\nan input script has errors, it can be useful to look at echoed output\nto see the last command processed.\n\nThe [command-line switch ](https://docs.lammps.org/Run_options.html) -echo can be used in place\nof this command.\n", - "restrictions": " none\n", - "related": "none\n" + "parameters": "", + "examples": "\n```lmps\npair_style sph/taitwater\npair_coeff * * 1000.0 1430.0 1.0 2.4\n```\n", + "html_filename": "pair_sph_taitwater.html", + "short_description": "The sph/taitwater style computes pressure forces between SPH particles\naccording to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound", + "description": "The sph/taitwater style computes pressure forces between SPH particles\naccording to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThis pair style also computes Monaghan's artificial viscosity to\nprevent particles from interpenetrating :ref:[(Monaghan) ](https://docs.lammps.org/Monaghan>`.See `this PDF guide =1)\n* \\(A_1\\) (> 0, distance)\n* \\(w_1\\) (> 0, distance)\n* \\(r_1\\) (>= 0, distance)\n* ..", - "description": "The *gaussian* bond style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(r-r_{i})^2}{w_i^2}\\right)\\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano0**\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(T\\) temperature at which the potential was derived\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (> 0, distance)\n* \\(w_1\\) (> 0, distance)\n* \\(r_1\\) (>= 0, distance)\n* ...\n* \\(A_n\\) (> 0, distance)\n* \\(w_n\\) (> 0, distance)\n* \\(r_n\\) (>= 0, distance)\n\n**(Milano0)** G. Milano, S. Goudeau, F. Mueller-Plathe, J. Polym. Sci. B Polym. Phys. 43, 871 (2005). \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html)\n" + "parameters": "* ID, group-ID are documented in compute command\n* dilatation/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all dilatation/atom\n```\n", + "html_filename": "compute_dilatation_atom.html", + "short_description": "Define a computation that calculates the per-atom dilatation for each\natom in a group", + "description": "Define a computation that calculates the per-atom dilatation for each\natom in a group. This is a quantity relevant for [Peridynamicsmodels ](https://docs.lammps.org/pair_peri.html). See [this document ](https://docs.lammps.org/PDF/PDLammps_overview.pdf)\nfor an overview of LAMMPS commands for Peridynamics modeling.\n\nFor small deformation, dilatation of is the measure of the volumetric\nstrain.\n\nThe dilatation \\(\\theta\\) for each peridynamic particle \\(i\\) is\ncalculated as a sum over its neighbors with unbroken bonds, where the\ncontribution of the \\(ij\\) pair is a function of the change in bond\nlength (versus the initial length in the reference state), the volume\nfraction of the particles and an influence function. See the\n[Peridynamics Howto ](https://docs.lammps.org/Howto_peri.html) for a formal definition of\ndilatation.\n\nThis command can only be used with a subset of the Peridynamic\n[pair styles ](https://docs.lammps.org/pair_peri.html): *peri/lps*, *peri/ves*, and *peri/eps*.\n\nThe dilatation value will be 0.0 for atoms not in the specified\ncompute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values are unitless numbers \\((\\theta \\ge 0.0)\\).\n", + "restrictions": "This compute is part of the PERI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute damage/atom ](https://docs.lammps.org/compute_damage_atom.html),\n[compute plasticity/atom ](https://docs.lammps.org/compute_plasticity_atom.html)\n" }, { "command": [ - "pair_style coul/cut", - "pair_style coul/cut/gpu", - "pair_style coul/cut/kk", - "pair_style coul/cut/omp", - "pair_style coul/cut/global", - "pair_style coul/cut/omp/global", - "pair_style coul/debye", - "pair_style coul/debye/gpu", - "pair_style coul/debye/kk", - "pair_style coul/debye/omp", - "pair_style coul/dsf", - "pair_style coul/dsf/gpu", - "pair_style coul/dsf/kk", - "pair_style coul/dsf/omp", - "pair_style coul/exclude", - "pair_style coul/long", - "pair_style coul/long/omp", - "pair_style coul/long/kk", - "pair_style coul/long/gpu", - "pair_style coul/msm", - "pair_style coul/msm/omp", - "pair_style coul/streitz", - "pair_style coul/wolf", - "pair_style coul/wolf/kk", - "pair_style coul/wolf/omp", - "pair_style tip4p/cut", - "pair_style tip4p/cut/omp", - "pair_style tip4p/long", - "pair_style tip4p/long/omp" + "fix_modify AtC mesh nodeset_to_elementset" ], "syntax": [ - "pair_style coul/cut cutoff", - "pair_style coul/cut/global cutoff", - "pair_style coul/debye kappa cutoff", - "pair_style coul/dsf alpha cutoff", - "pair_style coul/exclude cutoff", - "pair_style coul/long cutoff", - "pair_style coul/wolf alpha cutoff", - "pair_style coul/streitz cutoff keyword alpha" + "fix_modify mesh nodeset_to_elementset " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "coul/cut", - "type": 3, - "choices": [ - "coul/cut", - "coul/cut/gpu", - "coul/cut/kk", - "coul/cut/omp", - "coul/cut/omp" - ] - }, - { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] - } - ], - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "coul/cut/global", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] - } - ], - [ - { - "arg": "pair_style", + "arg": "nodeset_to_elementset", "type": 1, "choices": [] }, { - "arg": "coul/debye", + "arg": "", "type": 2, "choices": [] }, { - "arg": "kappa", + "arg": "", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh nodeset_to_elementset = name of the AtC sub-command\n* nodeset_id = id of desired nodeset from which to create the elementset\n* elementset_id = id to assign to the collection of FE elements\n* = flag to choose either the maximal or minimal elementset \n", + "examples": "\n```lmps\nfix_modify AtC mesh nodeset_to_elementset myNodeset myElementset min\n```\n", + "html_filename": "atc_mesh_nodeset_to_elementset.html", + "short_description": "Command to create an elementset from an existing nodeset", + "description": "Command to create an elementset from an existing nodeset. Either the\nminimal element set of elements with all nodes in the set, or maximal\nelement set with all elements with at least one node in the set, can be\ncreated.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n- [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n" +}, +{ + "command": [ + "pair_style lj/expand/sphere" + ], + "syntax": [ + "pair_style style args" + ], + "args": [ [ { "arg": "pair_style", @@ -14341,119 +13551,90 @@ export const command_docs = [ "choices": [] }, { - "arg": "coul/dsf", - "type": 2, - "choices": [] - }, - { - "arg": "alpha", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* style = lj/expand/sphere\n* args = list of arguments for a particular style \n *      lj/expand/sphere args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/expand/sphere 2.5\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.1 0.4 2.8\n```\n", + "html_filename": "pair_lj_expand_sphere.html", + "short_description": "\nThe *lj/expand/sphere* style compute a 12/6 Lennard-Jones potential with\na distance shifted by \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\), the\naverage diameter of both atoms", + "description": "\nThe *lj/expand/sphere* style compute a 12/6 Lennard-Jones potential with\na distance shifted by \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\), the\naverage diameter of both atoms. This can be used to model particles of\ndifferent sizes but same interactions, which is different from using\ndifferent sigma values as in [pair style lj/cut/sphere](https://docs.lammps.org/pair_lj_cut_sphere.html).\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the distance \\(\\Delta\\).\nI.e. the actual force cutoff is the sum \\(r_c + \\Delta\\).\n\nThis is the same potential function used by the [lj/expand](https://docs.lammps.org/pair_lj.html) pair style, but the \\(\\Delta\\) parameter is not\nset as a per-type parameter via the [pair_coeff command](https://docs.lammps.org/pair_coeff.html). Instead it is calculated individually for each pair\nusing the per-atom diameter attribute of [atom_style sphere](https://docs.lammps.org/atom_style.html) for the two atoms as the average diameter, \\(\\Delta = \\frac{1}{2} (d_i + d_j)\\)\n\nNote that \\(\\sigma\\) is defined in the LJ formula above as the\nzero-crossing distance for the potential, *not* as the energy minimum which\nis at \\(2^{\\frac{1}{6}} \\sigma\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on cutoffs, neighbor lists, and efficiency \n >If your system is mildly polydisperse, meaning the ratio of the\n > diameter of the largest particle to the smallest is less than 2.0,\n > then the neighbor lists built by the code should be reasonably\n > efficient. Which means they will not contain too many particle\n > pairs that do not interact. However, if your system is highly\n > polydisperse (ratio > 2.0), the neighbor list build and force\n > computations may be inefficient. There are two ways to try and\n > speed up the simulations.\n >\n > The first is to assign atoms to different atom types so that atoms of\n > each type are similar in size. E.g. if particle diameters range from\n > 1 to 5 use 4 atom types, ensuring atoms of type 1 have diameters from\n > 1.0-2.0, type 2 from 2.0-3.0, etc. This will reduce the number of\n > non-interacting pairs in the neighbor lists and thus reduce the time\n > spent on computing pairwise interactions.\n >\n > The second is to use the [neighbor multi ](https://docs.lammps.org/neighbor.html) command\n > which enabled a different algorithm for building neighbor lists. This\n > will also require that you assign multiple atom types according to\n > diameters, but will in addition use a more efficient size-dependent\n > strategy to construct the neighbor lists and thus reduce the time\n > spent on building neighbor lists.\n >\n > Here are example input script commands using the first option for a\n > highly polydisperse system:\n >\n > >\n > units lj\n > atom_style sphere\n > lattice fcc 0.8442\n > region box block 0 10 0 10 0 10\n > create_box 2 box\n > create_atoms 1 box\n >\n > # create atoms with random diameters from bimodal distribution\n > variable switch atom random(0.0,1.0,345634)\n > variable diam atom (v_switch<0.75)*normal(0.2,0.04,325)+(v_switch>=0.7)*normal(0.6,0.2,453)\n > set group all diameter v_diam\n >\n > # assign type 2 to atoms with diameter > 0.35\n > variable large atom (2.0*radius)>0.35\n > group large variable large\n > set group large type 2\n >\n > pair_style lj/expand/sphere 2.0\n > pair_coeff * * 1.0 0.5\n >\n > neighbor 0.3 bin\n >\n > Using multiple atom types speeds up the calculation for this example\n > by more than 30 percent, but using the multi-style neighbor list does\n > not provide a speedup. \n > \n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units) (optional)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff specified in the [pair_style command ](https://docs.lammps.org/pair_style.html) is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, and cutoff\ncoefficients for the *lj/expand/sphere* pair style can be mixed. The\ndefault mixing style is *geometric*. See the [pair_modify command](https://docs.lammps.org/pair_modify.html) for details.\n\nThe *lj/expand/sphere* pair style supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for the energy of the Lennard-Jones portion of the pair interaction.\n\nThe *lj/expand/sphere* pair style does *not* support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail corrections to\nthe energy and pressure.\n\nThe *lj/expand/sphere* pair style writes its information to [binaryrestart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not\nneed to be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does *not* support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "The *lj/expand/sphere* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\n----------\n", + "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n* [pair_style lj/cut/sphere ](https://docs.lammps.org/pair_lj_cut_sphere.html)\n" +}, +{ + "command": [ + "fix eos/table" + ], + "syntax": [ + "fix ID group-ID eos/table style file N keyword" + ], + "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "coul/exclude", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "pair_style", + "arg": "eos/table", "type": 1, "choices": [] }, { - "arg": "coul/long", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "file", "type": 2, "choices": [] - } - ], - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "coul/wolf", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "alpha", - "type": 2, - "choices": [] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] - } - ], - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "coul/streitz", - "type": 2, - "choices": [] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "alpha", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": " *    pair_style tip4p/cut otype htype btype atype qdist cutoff \n *    pair_style tip4p/long otype htype btype atype qdist cutoff \n *    * otype,htype = atom types (numeric or type label) for TIP4P O and H \n *    * btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n *    * qdist = distance from O atom to massless charge (distance units) \n", - "examples": "\n```lmps\npair_style coul/cut 2.5\npair_coeff * *\npair_coeff 2 2 3.5\n\npair_style coul/debye 1.4 3.0\npair_coeff * *\npair_coeff 2 2 3.5\n\npair_style coul/dsf 0.05 10.0\npair_coeff * *\n\npair_style hybrid/overlay coul/exclude 10.0 ...\npair_coeff * * coul/exclude\n\npair_style coul/long 10.0\npair_coeff * *\n\npair_style coul/msm 10.0\npair_coeff * *\n\npair_style coul/wolf 0.2 9.0\npair_coeff * *\n\npair_style coul/streitz 12.0 ewald\npair_style coul/streitz 12.0 wolf 0.30\npair_coeff * * AlO.streitz Al O\n\npair_style tip4p/cut 1 2 7 8 0.15 12.0\npair_coeff * *\n\npair_style tip4p/long 1 2 7 8 0.15 10.0\npair_coeff * *\n\npair_style tip4p/cut OW HW HW-OW HW-OW-HW 0.15 12.0\nlabelmap atom 1 OW 2 HW\nlabelmap bond 1 HW-OW\nlabelmap angle 1 HW-OW-HW\npair_coeff * *\n```\n", - "html_filename": "pair_coul.html", - "short_description": "The *coul/cut* style computes the standard Coulombic interaction\npotential given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, Qi and Qj are the charges on\nthe two atoms, and \\(\\epsilon\\) is the dielectric constant which can be set\nby the [dielectric ](https://docs.lammps.org/dielectric.html) command", - "description": "The *coul/cut* style computes the standard Coulombic interaction\npotential given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, Qi and Qj are the charges on\nthe two atoms, and \\(\\epsilon\\) is the dielectric constant which can be set\nby the [dielectric ](https://docs.lammps.org/dielectric.html) command. The cutoff \\(r_c\\) truncates\nthe interaction distance.\n\nPair style *coul/cut/global* computes the same Coulombic interactions\nas style *coul/cut* except that it allows only a single global cutoff\nand thus makes it compatible for use in combination with long-range\ncoulomb styles in [hybrid pair styles ](https://docs.lammps.org/pair_hybrid.html).\n\n----------\n\nStyle *coul/debye* adds an additional exp() damping factor to the\nCoulombic term, given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\exp(- \\kappa r) \\qquad r < r_c\\]\nwhere \\(\\kappa\\) is the Debye length. This potential is another way to\nmimic the screening effect of a polar solvent.\n\n----------\n\nStyle *coul/dsf* computes Coulombic interactions via the damped\nshifted force model described in **Fennell1**, given by:\n\\[\n E = q_iq_j \\left[ \\frac{\\mbox{erfc} (\\alpha r)}{r} - \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c} +\n \\left( \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c^2} + \\frac{2\\alpha}{\\sqrt{\\pi}}\\frac{\\exp (-\\alpha^2 r^2_c)}{r_c} \\right)(r-r_c) \\right] \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter and *erfc()* is the\ncomplementary error-function. The potential corrects issues in the Wolf\nmodel (described below) to provide consistent forces and energies (the\nWolf potential is not differentiable at the cutoff) and smooth decay to\nzero.\n\n----------\n\nStyle *coul/wolf* computes Coulombic interactions via the Wolf\nsummation method, described in **Wolf1**, given by:\n\\[\n E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and *erf()* and *erfc()*\nare error-function and complementary error-function terms. This\npotential is essentially a short-range, spherically-truncated,\ncharge-neutralized, shifted, pairwise *1/r* summation. With a\nmanipulation of adding and subtracting a self term (for i = j) to the\nfirst and second term on the right-hand-side, respectively, and a small\nenough \\(\\alpha\\) damping parameter, the second term shrinks and the\npotential becomes a rapidly-converging real-space summation. With a\nlong enough cutoff and small enough \\(\\alpha\\) parameter, the energy\nand forces calculated by the Wolf summation method approach those of the\nEwald sum. So it is a means of getting effective long-range\ninteractions with a short-range potential.\n\n----------\n\nStyle *coul/streitz* is the Coulomb pair interaction defined as part of\nthe Streitz-Mintmire potential, as described in **Streitz2**, in which charge distribution about an atom is modeled as a\nSlater 1\\ *s* orbital. More details can be found in the referenced\npaper. To fully reproduce the published Streitz-Mintmire potential,\nwhich is a variable charge potential, style *coul/streitz* must be used\nwith [pair_style eam/alloy ](https://docs.lammps.org/pair_eam.html) (or some other short-range\npotential that has been parameterized appropriately) via the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. Likewise,\ncharge equilibration must be performed via the [fix qeq/slater](https://docs.lammps.org/fix_qeq.html) command. For example:\n\n```lmps\npair_style hybrid/overlay coul/streitz 12.0 wolf 0.31 eam/alloy\npair_coeff * * coul/streitz AlO.streitz Al O\npair_coeff * * eam/alloy AlO.eam.alloy Al O\nfix 1 all qeq/slater 1 12.0 1.0e-6 100 coul/streitz\n```\nThe keyword *wolf* in the coul/streitz command denotes computing\nCoulombic interactions via Wolf summation. An additional damping\nparameter is required for the Wolf summation, as described for the\ncoul/wolf potential above. Alternatively, Coulombic interactions can\nbe computed via an Ewald summation. For example:\n\n```lmps\npair_style hybrid/overlay coul/streitz 12.0 ewald eam/alloy\nkspace_style ewald 1e-6\n```\nKeyword *ewald* does not need a damping parameter, but a\n[kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined, which can be style\n*ewald* or *pppm* . The Ewald method was used in Streitz and\nMintmire's original paper, but a Wolf summation offers a speed-up in\nsome cases.\n\nFor the fix qeq/slater command, the *qfile* can be a filename that\ncontains QEq parameters as discussed on the [fix qeq ](https://docs.lammps.org/fix_qeq.html)\ncommand doc page. Alternatively *qfile* can be replaced by\n\"coul/streitz\", in which case the fix will extract QEq parameters from\nthe coul/streitz pair style itself.\n\nSee the examples/strietz directory for an example input script that\nuses the Streitz-Mintmire potential. The potentials directory has the\nAlO.eam.alloy and AlO.streitz potential files used by the example.\n\nNote that the Streiz-Mintmire potential is generally used for oxides,\nbut there is no conceptual problem with extending it to nitrides and\ncarbides (such as SiC, TiN). Pair coul/strietz used by itself or with\nany other pair style such as EAM, MEAM, Tersoff, or LJ in\nhybrid/overlay mode. To do this, you would need to provide a\nStreitz-Mintmire parameterization for the material being modeled.\n\n----------\n\nPair style *coul/exclude* computes Coulombic interactions like *coul/cut*\nbut **only** applies them to excluded pairs using a scaling factor\nof \\(\\gamma - 1.0\\) with \\(\\gamma\\) being the factor assigned\nto that excluded pair via the [special_bonds coul ](https://docs.lammps.org/special_bonds.html)\nsetting. With this it is possible to treat Coulomb interactions for\nmolecular systems with [kspace style scafacos ](https://docs.lammps.org/kspace_style.html),\nwhich always computes the *full* Coulomb interactions without exclusions.\nPair style *coul/exclude* will then *subtract* the excluded interactions\naccordingly. So to achieve the same forces as with ``pair_style lj/cut/coul/long 12.0``\nwith ``kspace_style pppm 1.0e-6``, one would use\n``pair_style hybrid/overlay lj/cut 12.0 coul/exclude 12.0`` with\n``kspace_style scafacos p3m 1.0e-6``.\n\nStyles *coul/long* and *coul/msm* compute the same Coulombic\ninteractions as style *coul/cut* except that an additional damping\nfactor is applied so it can be used in conjunction with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\noption. The Coulombic cutoff specified for this style means that\npairwise interactions within this distance are computed directly;\ninteractions outside that distance are computed in reciprocal space.\n\nStyles *tip4p/cut* and *tip4p/long* implement the Coulomb part of\nthe TIP4P water model of **Jorgensen3**, which introduces\na massless site located a short distance away from the oxygen atom\nalong the bisector of the HOH angle. The atomic types of the oxygen and\nhydrogen atoms, the bond and angle types for OH and HOH interactions,\nand the distance to the massless charge site are specified as\npair_style arguments. Style *tip4p/cut* uses a global cutoff for\nCoulomb interactions; style *tip4p/long* is for use with a long-range\nCoulombic solver (Ewald or PPPM).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more information\non how to use the TIP4P pair styles and lists of parameters to set.\nNote that the neighbor list cutoff for Coulomb interactions is\neffectively extended by a distance 2\\*qdist when using the TIP4P pair\nstyle, to account for the offset distance of the fictitious charges on\nO atoms in water molecules. Thus it is typically best in an\nefficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\\*qdist, to\nshrink the size of the neighbor list. This leads to slightly larger\ncost for the long-range calculation, so you can test the trade-off for\nyour model.\n\n----------\n\nNote that these potentials are designed to be combined with other pair\npotentials via the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand. This is because they have no repulsive core. Hence if they\nare used by themselves, there will be no repulsion to keep two\noppositely charged particles from moving arbitrarily close to each\nother.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *coul/cut* and *coul/debye* the cutoff coefficient is optional.\nIf it is not used (as in some of the examples above), the default\nglobal value specified in the pair_style command is used.\n\nFor *coul/cut/global*, *coul/long* and *coul/msm* no cutoff can be\nspecified for an individual I,J type pair via the pair_coeff command.\nAll type pairs use the same global Coulomb cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*coul/cut* style can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is not relevant\nfor these pair styles.\n\nThe *coul/long* style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntable option for tabulation of the short-range portion of the\nlong-range Coulombic interaction.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Fennell1)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,\n234104 (2006). \n \n**(Wolf1)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n \n**(Streitz2)** F. H. Streitz, J. W. Mintmire, Phys Rev B, 50, 11996-12003\n(1994). \n \n**(Jorgensen3)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", - "restrictions": "The *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles are\npart of the KSPACE package. The *coul/cut/global*, *coul/exclude* styles are\npart of the EXTRA-PAIR package. The *tip4p/cut* style is part of the MOLECULE\npackage. A pair style is only enabled if LAMMPS was built with its\ncorresponding package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style, hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* eos/table = style name of this fix command\n* style = linear = method of interpolation\n* file = filename containing the tabulated equation of state\n* N = use N values in linear tables\n* keyword = name of table keyword corresponding to table file \n", + "examples": "\n```lmps\nfix 1 all eos/table linear eos.table 100000 KEYWORD\n```\n", + "html_filename": "fix_eos_table.html", + "short_description": "Fix *eos/table* applies a tabulated mesoparticle equation of state to\nrelate the particle internal energy (u_i) to the particle internal\ntemperature (dpdTheta_i)", + "description": "Fix *eos/table* applies a tabulated mesoparticle equation of state to\nrelate the particle internal energy (u_i) to the particle internal\ntemperature (dpdTheta_i).\n\nFix *eos/table* creates interpolation tables of length *N* from\ninternal energy values listed in a file as a function of internal\ntemperature.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy values at each of *N* internal\ntemperatures, and vice versa. During a simulation, these tables are\nused to interpolate internal energy or temperature values as needed.\nThe interpolation is done with the *linear* style.\n\nFor the *linear* style, the internal temperature is used to find 2\nsurrounding table values from which an internal energy is computed by\nlinear interpolation, and vice versa.\n\nThe filename specifies a file containing tabulated internal\ntemperature and internal energy values. The keyword specifies a\nsection of the file. The format of this file is described below.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# EOS TABLE (one or more comment or blank lines)\n\nKEYWORD (keyword is first text on line)\nN 500 (N parameter)\n(blank)\n1 1.00 0.000 (index, internal temperature, internal energy)\n2 1.02 0.001\n...\n500 10.0 0.500\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the fix command.\n\nThe next line lists the number of table entries. The parameter \"N\" is\nrequired and its value is the number of table entries that follow.\nNote that this may be different than the *N* specified in the [fix eos/table ](https://docs.lammps.org/fix_eos_table.html) command. Let Ntable = *N* in the fix\ncommand, and Nfile = \"N\" in the tabulated file. What LAMMPS does is a\npreliminary interpolation by creating splines using the Nfile\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and temperature values at Ntable different\npoints. The resulting tables of length Ntable are then used as\ndescribed above, when computing energy and temperature relationships.\nThis means that if you want the interpolation tables of length Ntable\nto match exactly what is in the tabulated file (with effectively no\npreliminary interpolation), you should set Ntable = Nfile.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe internal temperature (in temperature units), the third value is the\ninternal energy (in energy units).\n\nNote that the internal temperature and internal energy values must\nincrease from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThe equation of state must be a monotonically increasing function.\n\nAn error will occur if the internal temperature or internal energies\nare not within the table cutoffs.\n", + "related": "[fix shardlow ](https://docs.lammps.org/fix_shardlow.html), [pair dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html)\n" }, { "command": [ - "compute edpd/temp/atom" + "compute mliap" ], "syntax": [ - "compute ID group-ID edpd/temp/atom" + "compute ID group-ID mliap ... keyword values ..." ], "args": [ [ @@ -14473,215 +13654,316 @@ export const command_docs = [ "choices": [] }, { - "arg": "edpd/temp/atom", + "arg": "mliap", "type": 1, "choices": [] + }, + { + "arg": "gradgradflag", + "type": 3, + "choices": [ + "model", + "descriptor", + "gradgradflag" + ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* edpd/temp/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all edpd/temp/atom\n```\n", - "html_filename": "compute_edpd_temp_atom.html", - "short_description": "Define a computation that calculates the per-atom temperature\nfor each eDPD particle in a group", - "description": "Define a computation that calculates the per-atom temperature\nfor each eDPD particle in a group.\n\nThe temperature is a local temperature derived from the internal energy\nof each eDPD particle based on the local equilibrium hypothesis.\nFor more details please see **Espanol1997** and\n**Li2014a**.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in temperature [units ](https://docs.lammps.org/units.html).\n\n**(Espanol1997)** Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:\n10.1209/epl/i1997-00515-8 \n \n**(Li2014a)** Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265:\n113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003. \n ", - "restrictions": "This compute is part of the DPD-MESO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* mliap = style name of this compute command\n* two or more keyword/value pairs must be appended\n* keyword = model or descriptor or gradgradflag \n *        model values = style \n         style = linear or quadratic or mliappy \n *        descriptor values = style filename \n         style = sna or ace \n         filename = name of file containing descriptor definitions \n *        gradgradflag value = 0/1 \n         toggle gradgrad method for force gradient \n", + "examples": "\n```lmps\ncompute mliap model linear descriptor sna Ta06A.mliap.descriptor\ncompute mliap model linear descriptor ace H_N_O_ccs.yace gradgradflag 1\n```\n", + "html_filename": "compute_mliap.html", + "short_description": "Compute style *mliap* provides a general interface to the gradient\nof machine-learning interatomic potentials with respect to model parameters", + "description": "Compute style *mliap* provides a general interface to the gradient\nof machine-learning interatomic potentials with respect to model parameters.\nIt is used primarily for calculating the gradient of energy, force, and\nstress components with respect to model parameters, which is useful when\ntraining [mliap pair_style ](https://docs.lammps.org/pair_mliap.html) models to match target data.\nIt provides separate definitions of the interatomic potential functional\nform (*model*) and the geometric quantities that characterize the atomic\npositions (*descriptor*). By defining *model* and *descriptor* separately,\nit is possible to use many different models with a given descriptor,\nor many different descriptors with a given model. Currently, the compute\nsupports *linear* and *quadratic* SNAP descriptor computes used in\n[pair_style snap ](https://docs.lammps.org/pair_snap.html), *linear* SO3 descriptor computes, and\n*linear* ACE descriptor computes used in [pair_style pace ](https://docs.lammps.org/pair_pace.html),\nand it is straightforward to add new descriptor styles.\n\nThe compute *mliap* command must be followed by two keywords\n*model* and *descriptor* in either order.\n\nThe *model* keyword is followed by the model style (*linear*,\n*quadratic* or *mliappy*). The *mliappy* model is only available if\nLAMMPS is built with the *mliappy* Python module. There are\n:ref:`specific installation instructions ` for that module.\nFor the *mliap* compute, specifying a *linear* model will compute the\nspecified descriptors and gradients with respect to linear model parameters\nwhereas *quadratic* will do the same, but for the quadratic products of\ndescriptors.\n\nThe *descriptor* keyword is followed by a descriptor style, and\nadditional arguments. The compute currently supports three descriptor\nstyles: *sna*, *so3*, and *ace*, but it is is straightforward to add\nadditional descriptor styles. The SNAP descriptor style *sna* is the\nsame as that used by [pair_style snap ](https://docs.lammps.org/pair_snap.html), including the\nlinear, quadratic, and chem variants. A single additional argument\nspecifies the descriptor filename containing the parameters and setting used\nby the SNAP descriptor. The descriptor filename usually ends in the\n*.mliap.descriptor* extension. The format of this file is identical to\nthe descriptor file in the [pair_style mliap ](https://docs.lammps.org/pair_mliap.html), and is\ndescribed in detail there.\n\nThe ACE descriptor style *ace* is the same as [pair_style pace ](https://docs.lammps.org/pair_pace.html).\nA single additional argument specifies the *ace* descriptor filename\nthat contains parameters and settings for the ACE descriptors. This file\nformat differs from the SNAP or SO3 descriptor files, and has a *.yace* or\n*.ace* extension. However, as with other mliap descriptor styles, this file\nis identical to the ace descriptor file in [pair_style mliap ](https://docs.lammps.org/pair_mliap.html),\nwhere it is described in further detail.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The number of LAMMPS atom types (and the value of *nelems* in the model)\n > must match the value of *nelems* in the descriptor file. \n > \n\nCompute *mliap* calculates a global array containing gradient information.\nThe number of columns in the array is *nelems* \\(\\times\\) *nparams* + 1.\nThe first row of the array contain the derivative of potential energy with\nrespect to. to each parameter and each element. The last six rows\nof the array contain the corresponding derivatives of the\nvirial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,\n*pyz*, *pxz*, and *pxy*. In between the energy and stress rows are\nthe \\(3N\\) rows containing the derivatives of the force components.\nSee section below on output for a detailed description of how\nrows and columns are ordered.\n\nThe element in the last column of each row contains\nthe potential energy, force, or stress, according to the row.\nThese quantities correspond to the user-specified reference potential\nthat must be subtracted from the target data when training a model.\nThe potential energy calculation uses the built in compute *thermo_pe*.\nThe stress calculation uses a compute called *mliap_press* that is\nautomatically created behind the scenes, according to the following\ncommand:\n\n```lmps\ncompute mliap_press all pressure NULL virial\n```\nSee section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe optional keyword *gradgradflag* controls how the force\ngradient is calculated. A value of 1 requires that the model provide\nthe matrix of double gradients of energy with respect to both parameters\nand descriptors. For the linear and quadratic models this matrix is\nsparse and so is easily calculated and stored. For other models, this\nmatrix may be prohibitively expensive to calculate and store.\nA value of 0 requires that the descriptor provide the derivative\nof the descriptors with respect to the position of every neighbor atom.\nThis is not optimal for linear and quadratic models, but may be\na better choice for more complex models.\n\nAtoms not in the group do not contribute to this compute.\nNeighbor atoms not in the group do not contribute to this compute.\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the user-specified reference potentials includes bonded and\n > non-bonded pairwise interactions, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the calculation. The [rerun ](https://docs.lammps.org/rerun.html)\n > command is not an option here, since the reference potential is required\n > for the last column of the global array. A work-around is to prevent\n > pairwise interactions from being removed by explicitly adding a\n > *tiny* positive value for every pairwise interaction that would otherwise be\n > set to zero in the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\n----------\n\n #### Output info\n\nCompute *mliap* evaluates a global array. The columns are arranged into\n*nelems* blocks, listed in order of element *I* . Each block\ncontains one column for each of the *nparams* model parameters.\nA final column contains the corresponding energy, force component\non an atom, or virial stress component. The rows of the array appear\nin the following order:\n\n* 1 row: Derivatives of potential energy with respect to each parameter of each element.\n* \\(3N\\) rows: Derivatives of force components; the *x*, *y*, and *z*\n components of the force on atom *i* appear in consecutive rows. The atoms are\n sorted based on atom ID.\n* 6 rows: Derivatives of the virial stress tensor with respect to each\n parameter of each element. The ordering of the rows follows Voigt notation:\n *pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.\n\nThese values can be accessed by any command that uses a global array\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options. To see how this command\ncan be used within a Python workflow to train machine-learning interatomic\npotentials, see the examples in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n", + "restrictions": "This compute is part of the ML-IAP package. It is only enabled if\nLAMMPS was built with that package. In addition, building LAMMPS with\nthe ML-IAP package requires building LAMMPS with the ML-SNAP package.\nThe *mliappy* model also requires building LAMMPS with the PYTHON\npackage. The *ace* descriptor also requires building LAMMPS with the\nML-PACE package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info. Note that `kk` (KOKKOS) accelerated variants of SNAP and\nACE descriptors are not compatible with `mliap descriptor`.\n", + "related": "[pair_style mliap ](https://docs.lammps.org/pair_mliap.html)\n" }, { "command": [ - "if" + "fix addtorque" ], "syntax": [ - "if boolean then t1 t2 ... elif boolean f1 f2 ... elif boolean f1 f2 ... else e1 e2 ..." + "fix ID group-ID addtorque Tx Ty Tz" ], "args": [ [ { - "arg": "if", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "boolean", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "then", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "t1", - "type": 2, + "arg": "addtorque", + "type": 1, "choices": [] }, { - "arg": "t2", + "arg": "Tx", "type": 2, "choices": [] }, { - "arg": "elif", + "arg": "Ty", "type": 2, "choices": [] }, { - "arg": "boolean", + "arg": "Tz", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* addtorque = style name of this fix command\n* Tx,Ty,Tz = torque component values (torque units)\n* any of Tx,Ty,Tz can be a variable (see below) \n", + "examples": "\n```lmps\nfix kick bead addtorque 2.0 3.0 5.0\nfix kick bead addtorque 0.0 0.0 v_oscillate\n```\n", + "html_filename": "fix_addtorque.html", + "short_description": "Add a set of forces to each atom in\nthe group such that:\n\n* the components of the total torque applied on the group (around its\n center of mass) are \\(T_x\\), \\(T_y\\), and \\(T_z\\)\n* the group would move as a rigid body in the absence of other\n forces", + "description": "Add a set of forces to each atom in\nthe group such that:\n\n* the components of the total torque applied on the group (around its\n center of mass) are \\(T_x\\), \\(T_y\\), and \\(T_z\\)\n* the group would move as a rigid body in the absence of other\n forces.\n\nThis command can be used to drive a group of atoms into rotation.\n\nAny of the three quantities defining the torque components can be specified\nas an equal-style [variable ](https://docs.lammps.org/variable.html), namely *Tx*,\n*Ty*, *Tz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\ntorque component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent torque.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential \"energy\" inferred by the added torques\nto the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nis a fictitious quantity but is needed so that the [minimize](https://docs.lammps.org/minimize.html) command can include the forces added by this fix in a\nconsistent manner (i.e., there is a decrease in potential energy when\natoms move in the direction of the added forces).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its torque. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nis the potential energy discussed above. The vector is the total\ntorque on the group of atoms before the forces on individual atoms are\nchanged by the fix. The scalar and vector values calculated by this\nfix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not specify force components with a variable that has\n > time-dependence for use with a minimizer, since the minimizer\n > increments the timestep as the iteration count during the\n > minimization.\n >\n > \n > \n\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", + "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" +}, +{ + "command": [ + "fix ave/atom" + ], + "syntax": [ + "fix ID group-ID ave/atom Nevery Nrepeat Nfreq value1 value2 ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] }, { - "arg": "f1", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "f2", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "elif", - "type": 2, + "arg": "ave/atom", + "type": 1, "choices": [] }, { - "arg": "boolean", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "f1", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "f2", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "else", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "e1", + "arg": "value2", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/atom = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* one or more input values can be listed\n* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[i], f_ID, f_ID[i], v_name \n *        x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component) \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n", + "examples": "\n```lmps\nfix 1 all ave/atom 1 100 100 vx vy vz\nfix 1 all ave/atom 10 20 1000 c_my_stress[1]\nfix 1 all ave/atom 10 20 1000 c_my_stress[*]\n```\n", + "html_filename": "fix_ave_atom.html", + "short_description": "Use one or more per-atom vectors as inputs every few timesteps, and\naverage them atom by atom over longer timescales", + "description": "Use one or more per-atom vectors as inputs every few timesteps, and\naverage them atom by atom over longer timescales. The resulting\nper-atom averages can be used by other [output commands ](https://docs.lammps.org/Howto_output.html)\nsuch as the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) or [dump custom ](https://docs.lammps.org/dump.html)\ncommands.\n\nThe group specified with the command means only atoms within the group\nhave their averages computed. Results are set to 0.0 for atoms not in\nthe group.\n\nEach input value can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an atom-style\n[variable ](https://docs.lammps.org/variable.html). In the latter cases, the compute, fix, or\nvariable must produce a per-atom vector, not a global quantity or\nlocal quantity. If you wish to time-average global quantities from a\ncompute, fix, or variable, then see the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand.\n\nEach per-atom value of each input vector is averaged independently.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom vectors or arrays are\nthose which have the word *atom* in their style name. See the doc\npages for individual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce\nper-atom vectors or arrays. [Variables ](https://docs.lammps.org/variable.html) of style *atom*\nare the only ones that can be used with this fix since they produce\nper-atom vectors.\n\nNote that for values from a compute or fix, the bracketed index I can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two fix ave/atom commands are\nequivalent, since the [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\ncommand creates a per-atom array with six columns:\n\n```lmps\ncompute my_stress all stress/atom NULL\nfix 1 all ave/atom 10 20 1000 c_my_stress[*]\nfix 1 all ave/atom 10 20 1000 c_my_stress[1] c_my_stress[2] &\nc_my_stress[3] c_my_stress[4] &\nc_my_stress[5] c_my_stress[6]\n```\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what timesteps the input values will be used in order to\ncontribute to the average. The final averaged quantities are generated on\ntimesteps that are a multiple of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) timesteps. \\(N_\\text{freq}\\) must\nbe a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat}\\) is 1. Also, the timesteps\ncontributing to the average value cannot overlap; that is,\n\\(N_\\text{repeat} N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on timesteps 90, 92, 94, 96, 98, and 100\nwill be used to compute the final average on time step 100. Similarly for\ntimesteps 190, 192, 194, 196, 198, and 200 on time step 200, etc.\n\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and\n*fz*) are self-explanatory. Note that other atom attributes can be used as\ninputs to this fix by using the\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html) command and then\nspecifying an input value from that compute.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *x* , *y* , and *z* attributes are values that are re-wrapped inside\n > the periodic box whenever an atom crosses a periodic boundary. Thus, if\n > you time-average an atom that spends half of its time on either side of\n > the periodic box, you will get a value in the middle of the box. If\n > this is not what you want, consider averaging unwrapped coordinates,\n > which can be provided by the\n > [compute property/atom ](https://docs.lammps.org/compute_property_atom.html)\n > command via its *xu*, *yu*, and *zu* attributes. \n > \n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed term containing an index \\(I\\) is appended, the\n\\(I^\\text{th}\\) column of the per-atom array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been previously\ndefined in the input script. If no bracketed term is appended, the per-atom\nvector calculated by the fix is used. If a bracketed term containing an index\n\\(I\\) is appended, the \\(I^\\text{th}\\) column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce their values\non certain timesteps, which must be compatible with \\(N_\\text{every}\\),\nelse an error will result. Users can also write code for their own fix styles\nand [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script as an\n[atom-style variable ](https://docs.lammps.org/variable.html). Variables of style *atom* can reference\nthermodynamic keywords or invoke other computes, fixes, or variables\nwhen they are evaluated, so this is a very general means of generating\nper-atom quantities to time average.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo global scalar or vector quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix produces a per-atom vector or array which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). A vector is produced if\nonly a single quantity is averaged by this fix. If two or more\nquantities are averaged, then an array of values is produced. The\nper-atom values can only be accessed on timesteps that are multiples\nof \\(N_\\text{freq}\\) since that is when averaging is performed.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html),\n" +}, +{ + "command": [ + "bond_style" + ], + "syntax": [ + "bond_style style args" + ], + "args": [ + [ + { + "arg": "bond_style", + "type": 1, + "choices": [] }, { - "arg": "e2", + "arg": "table", + "type": 3, + "choices": [ + "none", + "zero", + "hybrid", + "bpm/rotational", + "bpm/spring", + "class2", + "fene", + "fene/expand", + "fene/nm", + "gaussian", + "gromos", + "harmonic", + "harmonic/shift/cut", + "lepton", + "morse", + "nonlinear", + "oxdna/fene", + "oxdena2/fene", + "oxrna2/fene", + "quartic", + "special", + "table" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* boolean = a Boolean expression evaluated as TRUE or FALSE (see below)\n* then = required word\n* t1,t2,...,tN = one or more LAMMPS commands to execute if condition is met, each enclosed in quotes\n* elif = optional word, can appear multiple times\n* f1,f2,...,fN = one or more LAMMPS commands to execute if elif condition is met, each enclosed in quotes (optional arguments)\n* else = optional argument\n* e1,e2,...,eN = one or more LAMMPS commands to execute if no condition is met, each enclosed in quotes (optional arguments) \n", - "examples": "\n```lmps\nif \"${steps} > 1000\" then quit\nif \"${myString} == a10\" then quit\nif \"$x <= $y\" then \"print 'X is smaller = $x'\" else \"print 'Y is smaller = $y'\"\nif \"(${eng} > 0.0) || ($n < 1000)\" then &\n\"timestep 0.005\" &\nelif $n<10000 &\n\"timestep 0.01\" &\nelse &\n\"timestep 0.02\" &\n\"print 'Max step reached'\"\nif \"${eng} > ${eng_previous}\" then \"jump file1\" else \"jump file2\"\n```\n", - "html_filename": "if.html", - "short_description": "This command provides an if-then-else capability within an input\nscript", - "description": "This command provides an if-then-else capability within an input\nscript. A Boolean expression is evaluated and the result is TRUE or\nFALSE. Note that as in the examples above, the expression can contain\nvariables, as defined by the [variable ](https://docs.lammps.org/variable.html) command, which\nwill be evaluated as part of the expression. Thus a user-defined\nformula that reflects the current state of the simulation can be used\nto issue one or more new commands.\n\nIf the result of the Boolean expression is TRUE, then one or more\ncommands (t1, t2, ..., tN) are executed. If it is FALSE, then Boolean\nexpressions associated with successive elif keywords are evaluated\nuntil one is found to be true, in which case its commands (f1, f2,\n..., fN) are executed. If no Boolean expression is TRUE, then the\ncommands associated with the else keyword, namely (e1, e2, ..., eN),\nare executed. The elif and else keywords and their associated\ncommands are optional. If they are not specified and the initial\nBoolean expression is FALSE, then no commands are executed.\n\nThe syntax for Boolean expressions is described below.\n\nEach command (t1, f1, e1, etc.) can be any valid LAMMPS input script\ncommand. If the command is more than one word, it must enclosed in\nquotes, so it will be treated as a single argument, as in the examples\nabove.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a command itself requires a quoted argument (e.g., a\n > [print ](https://docs.lammps.org/print.html) command), then double and single quotes can be used\n > and nested in the usual manner, as in the examples above and below.\n > The [Commands parse ](https://docs.lammps.org/Commands_parse.html) page has more details on\n > using quotes in arguments. Only one of level of nesting is allowed,\n > but that should be sufficient for most use cases. \n > \n\nNote that by using the line continuation character \"&\", the if command\ncan be spread across many lines, though it is still a single command:\n\n```lmps\nif \"$a < $b\" then &\n\"print 'Minimum value = $a'\" &\n\"run 1000\" &\nelse &\n'print \"Minimum value = $b\"' &\n\"minimize 0.001 0.001 1000 10000\"\n```\nNote that if one of the commands to execute is [quit ](https://docs.lammps.org/quit.html), as in\nthe first example above, then executing the command will cause LAMMPS\nto halt.\n\nNote that by jumping to a label in the same input script, the if\ncommand can be used to break out of a loop. See the [variable delete ](https://docs.lammps.org/variable.html) command for info on how to delete the associated\nloop variable, so that it can be re-used later in the input script.\n\nHere is an example of a loop which checks every 1000 steps if the\nsystem temperature has reached a certain value, and if so, breaks out\nof the loop to finish the run. Note that any variable could be\nchecked, so long as it is current on the timestep when the run\ncompletes. As explained on the [variable ](https://docs.lammps.org/variable.html) doc page,\nthis can be ensured by including the variable in thermodynamic output.\n\n```lmps\nvariable myTemp equal temp\nlabel loop\nvariable a loop 1000\nrun 1000\nif \"${myTemp} < 300.0\" then \"jump SELF break\"\nnext a\njump SELF loop\nlabel break\nprint \"ALL DONE\"\n```\nHere is an example of a double loop which uses the if and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif \"$b > 2\" then \"jump SELF break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\nnext a\njump SELF loopa\n```\n----------\n\nThe Boolean expressions for the if and elif keywords have a C-like\nsyntax. Note that each expression is a single argument within the if\ncommand. Thus if you want to include spaces in the expression for\nclarity, you must enclose the entire expression in quotes.\n\nAn expression is built out of numbers (which start with a digit or\nperiod or minus sign) or strings (which start with a letter and can\ncontain alphanumeric characters, underscores, or forward slashes):\n\n```\n0.2, 100, 1.0e20, -15.4, ...\nInP, myString, a123, ab_23_cd, lj/cut, ...\n```\nand Boolean operators:\n\n```\nA == B, A != B, A < B, A <= B, A > B, A >= B, A && B, A \\|\\| B, A \\|\\^ B, !A\n```\nEach A and B is a number or string or a variable reference like ``$a`` or\n``${abc}``, or A or B can be another Boolean expression.\n\nNote that all variables used will be substituted for before the\nBoolean expression in evaluated. A variable can produce a number,\nlike an [equal-style variable ](https://docs.lammps.org/variable.html), or it can produce a\nstring, like an [index-style variable ](https://docs.lammps.org/variable.html).\n\nThe Boolean operators ``==`` and ``!=`` can operate on a pair or strings\nor numbers. They cannot compare a number to a string. All the other\nBoolean operations can only operate on numbers.\n\nExpressions are evaluated left to right and have the usual C-style\nprecedence: the unary logical NOT operator ``!`` has the highest\nprecedence, the 4 relational operators ``<``, ``<=``, ``>``, and ``>=`` are\nnext; the two remaining relational operators ``==`` and ``!=`` are next;\nthen the logical AND operator ``&&``; and finally the logical OR\noperator ``||`` and logical XOR (exclusive or) operator ``|^`` have\nthe lowest precedence. Parenthesis can be used to group one or more\nportions of an expression and/or enforce a different order of\nevaluation than what would occur with the default precedence.\n\nWhen the six relational operators (first six in list above) compare two\nnumbers, they return either a 1.0 or 0.0 depending on whether the\nrelationship between A and B is TRUE or FALSE.\n\nWhen the three logical operators (last three in list above) compare two numbers,\nthey also return either a 1.0 or 0.0 depending on whether the\nrelationship between A and B is TRUE or FALSE (or just A). The\nlogical AND operator will return 1.0 if both its arguments are\nnon-zero, else it returns 0.0. The logical OR operator will return\n1.0 if either of its arguments is non-zero, else it returns 0.0. The\nlogical XOR operator will return 1.0 if one of its arguments is zero\nand the other non-zero, else it returns 0.0. The logical NOT operator\nreturns 1.0 if its argument is 0.0, else it returns 0.0. The 3\nlogical operators can only be used to operate on numbers, not on\nstrings.\n\nThe overall Boolean expression produces a TRUE result if the numeric\nresult is non-zero. If the result is zero, the expression result is\nFALSE.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the Boolean expression is a single numeric value with no Boolean\n > operators, it will be FALSE if the value = 0.0, otherwise TRUE. If\n > the Boolean expression is a single string, an error message will be\n > issued. \n > \n\n----------\n", - "restrictions": "none\n", - "related": "[variable ](https://docs.lammps.org/variable.html), [print ](https://docs.lammps.org/print.html)\n" + "parameters": "* style = none or zero or hybrid or bpm/rotational or bpm/spring or class2 or fene or fene/expand or fene/nm or gaussian or gromos or harmonic or harmonic/restrain *harmonic/shift* or harmonic/shift/cut or lepton or morse or nonlinear or oxdna/fene or oxdena2/fene or oxrna2/fene or quartic or special or table\n\n* args = none for any style except hybrid\n\n * hybrid args = list of one or more styles \n", + "examples": "\n```lmps\nbond_style harmonic\nbond_style fene\nbond_style hybrid harmonic fene\n```\n", + "html_filename": "bond_style.html", + "short_description": "Set the formula(s) LAMMPS uses to compute bond interactions between\npairs of atoms", + "description": "Set the formula(s) LAMMPS uses to compute bond interactions between\npairs of atoms. In LAMMPS, a bond differs from a pairwise\ninteraction, which are set via the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand. Bonds are defined between specified pairs of atoms and\nremain in force for the duration of the simulation (unless new bonds\nare created or existing bonds break, which is possible in some fixes\nand bond potentials). The list of bonded atoms is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand from a data or restart file. By contrast, pair potentials are\ntypically defined between all pairs of atoms within a cutoff distance\nand the set of active interactions changes over time.\n\nHybrid models where bonds are computed using different bond potentials\ncan be setup using the *hybrid* bond style.\n\nThe coefficients associated with a bond style can be specified in a\ndata or restart file or via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nAll bond potentials store their coefficient data in binary restart\nfiles which means bond_style and [bond_coeff ](https://docs.lammps.org/bond_coeff.html) commands\ndo not need to be re-specified in an input script that restarts a\nsimulation. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ndetails on how to do this. The one exception is that bond_style\n*hybrid* only stores the list of sub-styles in the restart file; bond\ncoefficients need to be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both a bond and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between 2 bonded atoms. \n > \n\nIn the formulas listed for each bond style, *r* is the distance\nbetween the 2 atoms in the bond.\n\n----------\n\nHere is an alphabetic list of bond styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the bond_style command, and coefficients\nspecified by the associated [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands bond ](https://docs.lammps.org/Commands_bond.html)\ndoc page are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [none ](https://docs.lammps.org/bond_none.html) - turn off bonded interactions\n* [zero ](https://docs.lammps.org/bond_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/bond_hybrid.html) - define multiple styles of bond interactions\n\n* [bpm/rotational ](https://docs.lammps.org/bond_bpm_rotational.html) - breakable bond with forces and torques based on deviation from reference state\n* [bpm/spring ](https://docs.lammps.org/bond_bpm_spring.html) - breakable bond with forces based on deviation from reference length\n* [class2 ](https://docs.lammps.org/bond_class2.html) - COMPASS (class 2) bond\n* [fene ](https://docs.lammps.org/bond_fene.html) - FENE (finite-extensible non-linear elastic) bond\n* [fene/expand ](https://docs.lammps.org/bond_fene_expand.html) - FENE bonds with variable size particles\n* [fene/nm ](https://docs.lammps.org/bond_fene.html) - FENE bonds with a generalized Lennard-Jones potential\n* [gaussian ](https://docs.lammps.org/bond_gaussian.html) - multicentered Gaussian-based bond potential\n* [gromos ](https://docs.lammps.org/bond_gromos.html) - GROMOS force field bond\n* [harmonic ](https://docs.lammps.org/bond_harmonic.html) - harmonic bond\n* [harmonic/restrain ](https://docs.lammps.org/bond_harmonic_restrain.html) - harmonic bond to restrain to original bond distance\n* [harmonic/shift ](https://docs.lammps.org/bond_harmonic_shift.html) - shifted harmonic bond\n* [harmonic/shift/cut ](https://docs.lammps.org/bond_harmonic_shift_cut.html) - shifted harmonic bond with a cutoff\n* [lepton ](https://docs.lammps.org/bond_lepton.html) - bond potential from evaluating a string\n* [mesocnt ](https://docs.lammps.org/bond_mesocnt.html) - Harmonic bond wrapper with parameterization presets for nanotubes\n* [mm3 ](https://docs.lammps.org/bond_mm3.html) - MM3 anharmonic bond\n* [morse ](https://docs.lammps.org/bond_morse.html) - Morse bond\n* [nonlinear ](https://docs.lammps.org/bond_nonlinear.html) - nonlinear bond\n* [oxdna/fene ](https://docs.lammps.org/bond_oxdna.html) - modified FENE bond suitable for DNA modeling\n* [oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html) - same as oxdna but used with different pair styles\n* [oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html) - modified FENE bond suitable for RNA modeling\n* [quartic ](https://docs.lammps.org/bond_quartic.html) - breakable quartic bond\n* [special ](https://docs.lammps.org/bond_special.html) - enable special bond exclusions for 1-5 pairs and beyond\n* [table ](https://docs.lammps.org/bond_table.html) - tabulated by bond length\n\n----------\n", + "restrictions": "Bond styles can only be set for atom styles that allow bonds to be\ndefined.\n\nMost bond styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual bond potentials tell if it is part of a package.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "compute temp/ramp" + "min_modify" ], "syntax": [ - "compute ID group-ID temp/ramp vdim vlo vhi dim clo chi keyword value ..." + "min_modify keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "min_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "values", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* one or more keyword/value pairs may be listed \n *      keyword = dmax or line or norm or alpha_damp or discrete_factor or integrator or abcfire or tmax \n       dmax value = max \n       max = maximum distance for line search to move (distance units) \n       line value = backtrack or quadratic or forcezero or spin_cubic or spin_none \n       backtrack,quadratic,forcezero,spin_cubic,spin_none = style of linesearch to use \n       norm value = two or inf or max \n       two = Euclidean two-norm (length of 3N vector) \n       inf = max force component across all 3-vectors \n       max = max force norm across all 3-vectors \n       alpha_damp value = damping \n       damping = fictitious magnetic damping for spin minimization (adim) \n       discrete_factor value = factor \n       factor = discretization factor for adaptive spin timestep (adim) \n       integrator value = eulerimplicit or verlet or leapfrog or eulerexplicit \n       time integration scheme for fire minimization \n       abcfire value = yes or no (default no) \n       yes = use ABC-FIRE variant of fire minimization style \n       no = use default FIRE variant of fire minimization style \n       tmax value = factor \n       factor = maximum adaptive timestep for fire minimization (adim) \n", + "examples": "\n```lmps\nmin_modify dmax 0.2\nmin_modify integrator verlet tmax 4\n```\n", + "html_filename": "min_modify.html", + "short_description": "This command sets parameters that affect the energy minimization\nalgorithms selected by the [min_style ](https://docs.lammps.org/min_style.html) command", + "description": "This command sets parameters that affect the energy minimization\nalgorithms selected by the [min_style ](https://docs.lammps.org/min_style.html) command. The\nvarious settings may affect the convergence rate and overall number of\nforce evaluations required by a minimization, so users can experiment\nwith these parameters to tune their minimizations.\n\nThe *cg* and *sd* minimization styles have an outer iteration and an\ninner iteration which is steps along a one-dimensional line search in\na particular search direction. The *dmax* parameter is how far any\natom can move in a single line search in any dimension (x, y, or z).\nFor the *quickmin* and *fire* minimization styles, the *dmax* setting\nis how far any atom can move in a single iteration (timestep). Thus a\nvalue of 0.1 in real [units ](https://docs.lammps.org/units.html) means no atom will move\nfurther than 0.1 Angstroms in a single outer iteration. This prevents\nhighly overlapped atoms from being moved long distances (e.g. through\nanother atom) due to large forces.\n\nThe choice of line search algorithm for the *cg* and *sd* minimization\nstyles can be selected via the *line* keyword. The default\n*quadratic* line search algorithm starts out using the robust\nbacktracking method described below. However, once the system gets\nclose to a local minimum and the linesearch steps get small, so that\nthe energy is approximately quadratic in the step length, it uses the\nestimated location of zero gradient as the linesearch step, provided\nthe energy change is downhill. This becomes more efficient than\nbacktracking for highly-converged relaxations. The *forcezero* line\nsearch algorithm is similar to *quadratic* . It may be more\nefficient than *quadratic* on some systems.\n\nThe backtracking search is robust and should always find a local\nenergy minimum. However, it will \"converge\" when it can no longer\nreduce the energy of the system. Individual atom forces may still be\nlarger than desired at this point, because the energy change is\nmeasured as the difference of two large values (energy before and\nenergy after) and that difference may be smaller than machine epsilon\neven if atoms could move in the gradient direction to reduce forces\nfurther.\n\nThe choice of a norm can be modified for the min styles *cg*, *sd*\n, *quickmin*, *fire*, *fire/old*, *spin*, *spin/cg* and\n*spin/lbfgs* using the *norm* keyword. The default *two* norm computes\nthe 2-norm (Euclidean length) of the global force vector:\n\\[ || \\vec{F} ||_{2} = \\sqrt{\\vec{F}_1^2+ \\cdots + \\vec{F}_N^2}\\]\nThe *max* norm computes the length of the 3-vector force\nfor each atom (2-norm), and takes the maximum value of those across\nall atoms\n\\[\n || \\vec{F} ||_{max} = {\\rm max}\\left(||\\vec{F}_1||, \\cdots, ||\\vec{F}_N||\\right)\\]\nThe *inf* norm takes the maximum component across the forces of\nall atoms in the system:\n\\[\n || \\vec{F} ||_{inf} = {\\rm max}\\left(|F_1^1|, |F_1^2|, |F_1^3| \\cdots, |F_N^1|, |F_N^2|, |F_N^3|\\right)\\]\nFor the min styles *spin*, *spin/cg* and *spin/lbfgs*, the force\nnorm is replaced by the spin-torque norm.\n\nKeywords *alpha_damp* and *discrete_factor* only make sense when\na [min_spin ](https://docs.lammps.org/min_spin.html) command is declared.\nKeyword *alpha_damp* defines an analog of a magnetic damping.\nIt defines a relaxation rate toward an equilibrium for a given\nmagnetic system.\nKeyword *discrete_factor* defines a discretization factor for the\nadaptive timestep used in the *spin* minimization.\nSee [min_spin ](https://docs.lammps.org/min_spin.html) for more information about those\nquantities.\n\nThe choice of a line search algorithm for the *spin/cg* and\n*spin/lbfgs* styles can be specified via the *line* keyword. The\n*spin_cubic* and *spin_none* keywords only make sense when one of those two\nminimization styles is declared. The *spin_cubic* performs the line\nsearch based on a cubic interpolation of the energy along the search\ndirection. The *spin_none* keyword deactivates the line search\nprocedure. The *spin_none* is a default value for *line* keyword for\nboth *spin/lbfgs* and *spin/cg* . Convergence of *spin/lbfgs* can be\nmore robust if *spin_cubic* line search is used.\n\nThe Newton *integrator* used for *fire* minimization can be selected to\nbe either the symplectic Euler (\\ *eulerimplicit* ), velocity Verlet (\\\n*verlet* ), Leapfrog (\\ *leapfrog* ) or non-symplectic forward Euler\n(\\ *eulerexplicit* \\). The keyword *tmax* defines the maximum value for\nthe adaptive timestep during a *fire* minimization. It is a\nmultiplication factor applied to the current [timestep ](https://docs.lammps.org/timestep.html)\n(not in time unit). For example, *tmax* = 4.0 with a [timestep](https://docs.lammps.org/timestep.html) of 2fs, means that the maximum value the timestep can reach\nduring a *fire* minimization is 4fs. Note that parameter defaults has\nbeen chosen to be reliable in most cases, but one should consider\nadjusting [timestep ](https://docs.lammps.org/timestep.html) and *tmax* to optimize the\nminimization for large or complex systems. Other parameters of the\n*fire* minimization can be tuned (\\ *tmin*, *delaystep*, *dtgrow*,\n*dtshrink*, *alpha0*, and *alphashrink* ). Please refer to the\nreferences describing the [min_style ](https://docs.lammps.org/min_style.html) *fire*. An\nadditional stopping criteria *vdfmax* is used by *fire* in order to\navoid unnecessary looping when it is reasonable to think the system will\nnot be relaxed further. Note that in this case the system will NOT have\nreached your minimization criteria. This could happen when the system\ncomes to be stuck in a local basin of the phase space. *vdfmax* is the\nmaximum number of consecutive iterations with P(t) < 0.\n\nThe *abcfire* keyword allows to activate the ABC-FIRE variant of the\n*fire* minimization algorithm. ABC-FIRE introduces an additional factor\nthat modifies the bias and scaling of the velocities of the atoms during\nthe mixing step **EcheverriRestrepo**. This\ncan lead to faster convergence of the minimizer.\n\nThe [min_style ](https://docs.lammps.org/min_style.html) *fire* is an optimized implementation of\n[min_style ](https://docs.lammps.org/min_style.html) *fire/old*. It can however behave similarly\nto the *fire/old* style by using the following set of parameters:\n\n```lmps\nmin_modify integrator eulerexplicit tmax 10.0 tmin 0.0 delaystep 5 &\ndtgrow 1.1 dtshrink 0.5 alpha0 0.1 alphashrink 0.99 &\nvdfmax 100000 halfstepback no initialdelay no\n```\n\n**(EcheverriRestrepo)** Echeverri Restrepo, Andric, Comput Mater Sci, 218, 111978 (2023). \n ", + "restrictions": "For magnetic GNEB calculations, only *spin_none* value for *line*\nkeyword can be used when minimization styles *spin/cg* and *spin/lbfgs* are\nemployed. See [neb/spin ](https://docs.lammps.org/neb_spin.html) for more explanation.\n", + "related": "[min_style ](https://docs.lammps.org/min_style.html), [minimize ](https://docs.lammps.org/minimize.html)\n" +}, +{ + "command": [ + "pair_style lubricateU" + ], + "syntax": [ + "pair_style style mu flaglog cutinner cutoff gdot flagHI flagVF" + ], + "args": [ + [ { - "arg": "temp/ramp", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "vz", + "arg": "lubricateU/poly", "type": 3, "choices": [ - "vx", - "vy", - "vz" + "lubricateU", + "lubricateU/poly" ] }, { - "arg": "vlo", + "arg": "mu", "type": 2, "choices": [] }, { - "arg": "vhi", + "arg": "flaglog", "type": 2, "choices": [] }, { - "arg": "z", - "type": 3, - "choices": [ - "x", - "y", - "z" - ] + "arg": "cutinner", + "type": 2, + "choices": [] }, { - "arg": "clo", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "chi", + "arg": "gdot", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "flagHI", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "flagVF", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/ramp = style name of this compute command\n* vdim = vx or vy or vz\n* vlo,vhi = subtract velocities between vlo and vhi (velocity units)\n* dim = x or y or z\n* clo,chi = lower and upper bound of domain to subtract from (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = units \n *      units value = lattice or box \n", - "examples": "\n```lmps\ncompute 2nd middle temp/ramp vx 0 8 y 2 12 units lattice\n```\n", - "html_filename": "compute_temp_ramp.html", - "short_description": "Define a computation that calculates the temperature of a group of atoms,\nafter subtracting out an ramped velocity profile before computing the kinetic\nenergy", - "description": "Define a computation that calculates the temperature of a group of atoms,\nafter subtracting out an ramped velocity profile before computing the kinetic\nenergy. A compute of this style can be used by any command that computes a\ntemperature (e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe meaning of the arguments for this command which define the\nvelocity ramp are the same as for the [velocity ramp ](https://docs.lammps.org/velocity.html)\ncommand which was presumably used to impose the velocity.\n\nAfter the ramp velocity has been subtracted from the specified\ndimension for each atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nThe *units* keyword determines the meaning of the distance units used\nfor coordinates (*clo*, *chi*) and velocities (*vlo*, *vhi*). A *box* value\nselects standard distance units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand (e.g., \\(\\mathring{\\textrm{A}}\\) for units = real or metal). A\n*lattice* value means the distance units are in lattice spacings (i.e.,\nvelocity in lattice spacings per unit time). The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be constant\nfor the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the ramped velocity component by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html),\n[compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* style = lubricateU or lubricateU/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 to exclude/include log terms in the lubrication approximation\n* cutinner = inner cut off distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* gdot = shear rate (1/time units)\n* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms \n", + "examples": "(all assume radius = 1)\n\n```lmps\npair_style lubricateU 1.5 1 2.01 2.5 0.01 1 1\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n```\n", + "html_filename": "pair_lubricateU.html", + "short_description": "Styles *lubricateU* and *lubricateU/poly* compute velocities and\nangular velocities for finite-size spherical particles such that the\nhydrodynamic interaction balances the force and torque due to all\nother types of interactions", + "description": "Styles *lubricateU* and *lubricateU/poly* compute velocities and\nangular velocities for finite-size spherical particles such that the\nhydrodynamic interaction balances the force and torque due to all\nother types of interactions.\n\nThe interactions have 2 components. The first is\nBall-Melrose lubrication terms via the formulas in **Ball2**\n\\[\\begin{align*} \n W & = - a_{sq} | (v_1 - v_2) \\bullet \\mathbf{nn} |^2 -\n a_{sh} | (\\omega_1 + \\omega_2) \\bullet\n (\\mathbf{I} - \\mathbf{nn}) - 2 \\Omega_N |^2 - \\\\\n & a_{pu} | (\\omega_1 - \\omega_2) \\bullet (\\mathbf{I} - \\mathbf{nn}) |^2 -\n a_{tw} | (\\omega_1 - \\omega_2) \\bullet \\mathbf{nn} |^2 \\qquad r < r_c \\\\\n & \\\\\n \\Omega_N & = \\mathbf{n} \\times (v_1 - v_2) / r \\end{align*} \\]\nwhich represents the dissipation W between two nearby particles due to\ntheir relative velocities in the presence of a background solvent with\nviscosity *mu* . Note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity.\n\nThe Asq (squeeze) term is the strongest and is included as long as\n*flagHI* is set to 1 (default). It scales as 1/gap where gap is the\nseparation between the surfaces of the 2 particles. The Ash (shear)\nand Apu (pump) terms are only included if *flaglog* is set to 1. They\nare the next strongest interactions, and the only other singular\ninteraction, and scale as log(gap). Note that *flaglog* = 1 and\n*flagHI* = 0 is invalid, and will result in a warning message, after\nwhich *flagHI* will be set to 1. The Atw (twist) term is currently not\nincluded. It is typically a very small contribution to the lubrication\nforces.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n*Cutinner* sets the minimum center-to-center separation that will be\nused in calculations irrespective of the actual separation. *Cutoff*\nis the maximum center-to-center separation at which an interaction is\ncomputed. Using a *cutoff* less than 3 radii is recommended if\n*flaglog* is set to 1.\n\nThe other component is due to the Fast Lubrication Dynamics (FLD)\napproximation, described in **Kumar2**. The equation being\nsolved to balance the forces and torques is\n\\[\n -R_{FU}(U-U^{\\infty}) = -R_{FE}E^{\\infty} - F^{rest}\\]\nwhere U represents the velocities and angular velocities of the\nparticles, \\(U^{\\infty}\\) represents the velocities and the angular\nvelocities of the undisturbed fluid, and \\(E^{\\infty}\\) represents\nthe rate of strain tensor of the undisturbed fluid flow with viscosity\n*mu* . Again, note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity. Volume fraction\ncorrections to R_FU are included if *flagVF* is set to 1 (default).\n\nF\\ *rest* represents the forces and torques due to all other types of\ninteractions, e.g. Brownian, electrostatic etc. Note that this\nalgorithm neglects the inertial terms, thereby removing the\nrestriction of resolving the small interial time scale, which may not\nbe of interest for colloidal particles. This pair style solves for\nthe velocity such that the hydrodynamic force balances all other types\nof forces, thereby resulting in a net zero force (zero inertia limit).\nWhen defining this pair style, it must be defined last so that when\nthis style is invoked all other types of forces have already been\ncomputed. For the same reason, it won't work if additional non-pair\nstyles are defined (such as bond or Kspace forces) as they are\ncalculated in LAMMPS after the pairwise interactions have been\ncomputed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using these styles, the these pair styles are designed to\n > be used with implicit time integration and a correspondingly larger\n > timestep. Thus either [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html) should\n > be used for spherical particles defined via [atom_style sphere ](https://docs.lammps.org/atom_style.html) or [fix nve/asphere/noforce ](https://docs.lammps.org/fix_nve_asphere_noforce.html) should be used for\n > spherical particles defined via [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html). This is because the velocity and angular\n > momentum of each particle is set by the pair style, and should not be\n > reset by the time integration fix. \n > \n\nStyle *lubricateU* requires monodisperse spherical particles; style\n*lubricateU/poly* allows for polydisperse spherical particles.\n\nIf the suspension is sheared via the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand then the pair style uses the shear rate to adjust the\nhydrodynamic interactions accordingly. Volume changes due to fix\ndeform are accounted for when computing the volume fraction\ncorrections to R_FU.\n\nWhen computing the volume fraction corrections to R_FU, the presence\nof walls (whether moving or stationary) will affect the volume\nfraction available to colloidal particles. This is currently accounted\nfor with the following types of walls: [wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[wall/lj126 ](https://docs.lammps.org/fix_wall.html), [wall/colloid ](https://docs.lammps.org/fix_wall.html), and\n[wall/harmonic ](https://docs.lammps.org/fix_wall.html). For these wall styles, the correct\nvolume fraction will be used when walls do not coincide with the box\nboundary, as well as when walls move and thereby cause a change in the\nvolume fraction. To use these wall styles with pair_style *lubricateU*\nor *lubricateU/poly*, the *fld yes* option must be specified in the\nfix wall command.\n\nSince lubrication forces are dissipative, it is usually desirable to\nthermostat the system at a constant temperature. If Brownian motion\n(at a constant temperature) is desired, it can be set using the\n[pair_style brownian ](https://docs.lammps.org/pair_brownian.html) command. These pair styles\nand the brownian style should use consistent parameters for *mu*,\n*flaglog*, *flagfld*, *cutinner*, *cutoff*, *flagHI* and *flagVF* .\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for this\npair style can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ball2)** Ball and Melrose, Physica A, 247, 444-472 (1997). \n \n**(Kumar2)** Kumar and Higdon, Phys Rev E, 82, 051401 (2010). \n ", + "restrictions": "These styles are part of the COLLOID package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCurrently, these pair styles assume that all other types of\nforces/torques on the particles have been already been computed when\nit is invoked. This requires this style to be defined as the last of\nthe pair styles, and that no fixes apply additional constraint forces.\nOne exception is the [fix wall/colloid ](https://docs.lammps.org/fix_wall.html) commands, which\nhas an \"fld\" option to apply their wall forces correctly.\n\nOnly spherical monodisperse particles are allowed for pair_style\nlubricateU.\n\nOnly spherical particles are allowed for pair_style lubricateU/poly.\n\nFor sheared suspensions, it is assumed that the shearing is done in\nthe xy plane, with x being the velocity direction and y being the\nvelocity-gradient direction. In this case, one must use [fix deform ](https://docs.lammps.org/fix_deform.html) with the same rate of shear (erate).\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html)\n" }, { "command": [ - "fix qeq/point", - "fix qeq/shielded", - "fix qeq/slater", - "fix qeq/dynamic" + "fix spring/self" ], "syntax": [ - "fix ID group-ID style Nevery cutoff tolerance maxiter qfile keyword ..." + "fix ID group-ID spring/self K dir" ], "args": [ [ @@ -14701,70 +13983,36 @@ export const command_docs = [ "choices": [] }, { - "arg": "qeq/fire", - "type": 3, - "choices": [ - "qeq/point", - "qeq/shielded", - "qeq/slater", - "qeq/dynamic", - "qeq/fire" - ] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "cutoff", - "type": 2, + "arg": "spring/self", + "type": 1, "choices": [] }, { - "arg": "tolerance", + "arg": "K", "type": 2, "choices": [] }, { - "arg": "maxiter", + "arg": "dir", "type": 2, "choices": [] - }, - { - "arg": "reaxff", - "type": 3, - "choices": [ - "coul/streitz", - "reaxff" - ] - }, - { - "arg": "warn", - "type": 3, - "choices": [ - "alpha", - "qdamp", - "qstep", - "warn" - ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = qeq/point or qeq/shielded or qeq/slater or qeq/dynamic or qeq/fire\n* Nevery = perform charge equilibration every this many steps\n* cutoff = global cutoff for charge-charge interactions (distance unit)\n* tolerance = precision to which charges will be equilibrated\n* maxiter = maximum iterations to perform charge equilibration\n* qfile = a filename with QEq parameters or coul/streitz or reaxff\n* zero or more keyword/value pairs may be appended\n* keyword = alpha or qdamp or qstep or warn \n *        alpha value = Slater type orbital exponent (qeq/slater only) \n *        qdamp value = damping factor for damped dynamics charge solver (qeq/dynamic and qeq/fire only) \n *        qstep value = time step size for damped dynamics charge solver (qeq/dynamic and qeq/fire only) \n *        warn value = do (=yes) or do not (=no) print a warning when the maximum number of iterations is reached \n", - "examples": "\n```lmps\nfix 1 all qeq/point 1 10 1.0e-6 200 param.qeq1\nfix 1 qeq qeq/shielded 1 8 1.0e-6 100 param.qeq2\nfix 1 all qeq/slater 5 10 1.0e-6 100 params alpha 0.2\nfix 1 qeq qeq/dynamic 1 12 1.0e-3 100 my_qeq\nfix 1 all qeq/fire 1 10 1.0e-3 100 my_qeq qdamp 0.2 qstep 0.1\n```\n", - "html_filename": "fix_qeq.html", - "short_description": "Perform the charge equilibration (QEq) method as described in\n**Rappe1** and formulated in **Nakano1** (also known as the matrix inversion method) and in\n**Rick1** (also known as the extended Lagrangian\nmethod) based on the electronegativity equilization principle", - "description": "Perform the charge equilibration (QEq) method as described in\n**Rappe1** and formulated in **Nakano1** (also known as the matrix inversion method) and in\n**Rick1** (also known as the extended Lagrangian\nmethod) based on the electronegativity equilization principle.\n\nThese fixes can be used with any [pair style ](https://docs.lammps.org/pair_style.html) in\nLAMMPS, so long as per-atom charges are defined. The most typical\nuse-case is in conjunction with a [pair style ](https://docs.lammps.org/pair_style.html) that\nperforms charge equilibration periodically (e.g. every timestep), such\nas the ReaxFF or Streitz-Mintmire potential. But these fixes can also\nbe used with potentials that normally assume per-atom charges are fixed,\ne.g. a [Buckingham ](https://docs.lammps.org/pair_buck.html) or [LJ/Coulombic ](https://docs.lammps.org/pair_lj.html)\npotential.\n\nBecause the charge equilibration calculation is effectively independent\nof the pair style, these fixes can also be used to perform a one-time\nassignment of charges to atoms. For example, you could define the QEq\nfix, perform a zero-timestep run via the [run ](https://docs.lammps.org/run.html) command\nwithout any pair style defined which would set per-atom charges (based\non the current atom configuration), then remove the fix via the\n[unfix ](https://docs.lammps.org/unfix.html) command before performing further dynamics.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Computing and using charge values different from published\n > values defined for a fixed-charge potential like Buckingham or CHARMM\n > or AMBER, can have a strong effect on energies and forces, and\n > produces a different model than the published versions. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command must still be used to\n > perform charge equilibration with the [COMB potential > ](https://docs.lammps.org/pair_comb.html). The [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) command can be\n > used to perform charge equilibration with the [ReaxFF force > field ](https://docs.lammps.org/pair_reaxff.html), although fix qeq/shielded yields the same\n > results as fix qeq/reaxff if *Nevery*, *cutoff*, and *tolerance*\n > are the same. Eventually the fix qeq/reaxff command will be\n > deprecated. \n > \n\nThe QEq method minimizes the electrostatic energy of the system (or\nequalizes the derivative of energy with respect to charge of all the\natoms) by adjusting the partial charge on individual atoms based on\ninteractions with their neighbors within *cutoff* . It requires a few\nparameters in the appropriate units for each atom type which are read\nfrom a file specified by *qfile* . The file has the following format\n\n```\n1 chi eta gamma zeta qcore\n2 chi eta gamma zeta qcore\n...\nNtype chi eta gamma zeta qcore\n```\nThere have to be parameters given for every atom type. Wildcard entries\nare possible using the same type range syntax as for \"coeff\" commands\n(i.e., n\\*m, n\\*, \\*m, \\*). Later entries will overwrite previous ones.\nEmpty lines or any text following the pound sign (#) are ignored.\nEach line starts with the atom type followed by five parameters.\nOnly a subset of the parameters is used by each QEq style as described\nbelow, thus the others can be set to 0.0 if desired, but all five\nentries per line are required.\n\n* *chi* = electronegativity in energy units\n* *eta* = self-Coulomb potential in energy units\n* *gamma* = shielded Coulomb constant defined by **vanDuin** in distance units\n* *zeta* = Slater type orbital exponent defined by the **Streitz1** potential in reverse distance units\n* *qcore* = charge of the nucleus defined by the **Streitz1** potential in charge units\n\nThe fix qeq styles will print a warning if the charges are not\nequilibrated within *tolerance* by *maxiter* steps, unless the\n*warn* keyword is used with \"no\" as argument. This latter option\nmay be useful for testing and benchmarking purposes, as it allows\nto use a fixed number of QEq iterations when *tolerance* is set\nto a small enough value to always reach the *maxiter* limit. Turning\noff warnings will avoid the excessive output in that case.\n\nThe *qeq/point* style describes partial charges on atoms as point\ncharges. Interaction between a pair of charged particles is 1/r,\nwhich is the simplest description of the interaction between charges.\nOnly the *chi* and *eta* parameters from the *qfile* file are used.\nNote that Coulomb catastrophe can occur if repulsion between the pair\nof charged particles is too weak. This style solves partial charges\non atoms via the matrix inversion method. A tolerance of 1.0e-6 is\nusually a good number.\n\nThe *qeq/shielded* style describes partial charges on atoms also as\npoint charges, but uses a shielded Coulomb potential to describe the\ninteraction between a pair of charged particles. Interaction through\nthe shielded Coulomb is given by equation (13) of the :ref:`ReaxFF force\nfield ` paper. The shielding accounts for charge overlap\nbetween charged particles at small separation. This style is the same\nas [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html), and can be used with\n[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html). Only the *chi*, *eta*, and\n*gamma* parameters from the *qfile* file are used. When using the string\n*reaxff* as filename, these parameters are extracted directly from an\nactive *reaxff* pair style. This style solves partial charges on atoms\nvia the matrix inversion method. A tolerance of 1.0e-6 is usually a\ngood number.\n\nThe *qeq/slater* style describes partial charges on atoms as spherical\ncharge densities centered around atoms via the Slater 1\\ *s* orbital, so\nthat the interaction between a pair of charged particles is the product\nof two Slater 1\\ *s* orbitals. The expression for the Slater 1\\ *s*\norbital is given under equation (6) of the **Streitz1** paper. Only the *chi*, *eta*, *zeta*, and *qcore*\nparameters from the *qfile* file are used. When using the string\n*coul/streitz* as filename, these parameters are extracted directly from\nan active *coul/streitz* pair style. This style solves partial charges\non atoms via the matrix inversion method. A tolerance of 1.0e-6 is\nusually a good number. Keyword *alpha* can be used to change the Slater\ntype orbital exponent.\n\nThe *qeq/dynamic* style describes partial charges on atoms as point\ncharges that interact through 1/r, but the extended Lagrangian method is\nused to solve partial charges on atoms. Only the *chi* and *eta*\nparameters from the *qfile* file are used. Note that Coulomb\ncatastrophe can occur if repulsion between the pair of charged particles\nis too weak. A tolerance of 1.0e-3 is usually a good number. Keyword\n*qdamp* can be used to change the damping factor, while keyword *qstep*\ncan be used to change the time step size.\n\nThe **Shan** style describes the same charge model\nand charge solver as the *qeq/dynamic* style, but employs a FIRE\nminimization algorithm to solve for equilibrium charges. Keyword\n*qdamp* can be used to change the damping factor, while keyword *qstep*\ncan be used to change the time step size.\n\nNote that *qeq/point*, *qeq/shielded*, and *qeq/slater* describe\ndifferent charge models, whereas the matrix inversion method and the\nextended Lagrangian method (\\ *qeq/dynamic* and *qeq/fire* ) are\ndifferent solvers.\n\nNote that *qeq/point*, *qeq/dynamic* and *qeq/fire* styles all\ndescribe charges as point charges that interact through 1/r\nrelationship, but solve partial charges on atoms using different\nsolvers. These three styles should yield comparable results if the QEq\nparameters and *Nevery*, *cutoff*, and *tolerance* are the same.\nStyle *qeq/point* is typically faster, *qeq/dynamic* scales better on\nlarger sizes, and *qeq/fire* is faster than *qeq/dynamic* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is\n > non-trivial. Charges on atoms are not guaranteed to equilibrate with\n > arbitrary choices of these parameters. We do not develop these QEq\n > parameters. See the examples/qeq directory for some examples. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restartfiles ](https://docs.lammps.org/restart.html). No global scalar or vector or per-atom quantities are\nstored by these fixes for access by various [output commands](https://docs.lammps.org/Howto_output.html). No parameter of these fixes can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\n\nThexe fixes are invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Rappe1)** A. K. Rappe and W. A. Goddard III, J Physical\nChemistry, 95, 3358-3363 (1991). \n \n**(Nakano1)** A. Nakano, Computer Physics Communications, 104, 59-69 (1997). \n \n**(Rick1)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chemical Physics\n101, 16141 (1994). \n \n**(vanDuin)** A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J\nPhysical Chemistry, 105, 9396-9049 (2001) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Shan)** T.-R. Shan, A. P. Thompson, S. J. Plimpton, in preparation \n ", - "restrictions": "These fixes are part of the QEQ package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese qeq fixes will ignore electric field contributions from\n[fix efield ](https://docs.lammps.org/fix_efield.html).\n", - "related": "[fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html), [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/self = style name of this fix command\n* K = spring constant (force/distance units)\n* dir = xyz, xy, xz, yz, x, y, or z (optional, default: xyz) \n", + "examples": "\n```lmps\nfix tether boundary-atoms spring/self 10.0\nfix zrest move spring/self 10.0 z\n```\n", + "html_filename": "fix_spring_self.html", + "short_description": "Apply a spring force independently to each atom in the group to tether\nit to its initial position", + "description": "Apply a spring force independently to each atom in the group to tether\nit to its initial position. The initial position for each atom is its\nlocation at the time the fix command was issued. At each timestep,\nthe magnitude of the force on each atom is -Kr, where r is the\ndisplacement of the atom from its current position to its initial\nposition. The distance r correctly takes into account any crossings\nof periodic boundary by the atom since it was in its initial\nposition.\n\nWith the (optional) dir flag, one can select in which direction the\nspring force is applied. By default, the restraint is applied in all\ndirections, but it can be limited to the xy-, xz-, yz-plane and the\nx-, y-, or z-direction, thus restraining the atoms to a line or a\nplane, respectively.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of tethered atoms to\n[binary restart files ](https://docs.lammps.org/restart.html), so that the spring effect will\nbe the same in a restarted simulation. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the per-atom springs to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is an energy which is\nthe sum of the spring energy for each atom, where the per-atom energy\nis 0.5 \\* K \\* r\\^2. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the per-atom spring energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": " none\n", + "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix smd ](https://docs.lammps.org/fix_smd.html), [fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html)\n" }, { "command": [ - "fix_modify AtC remove_species" + "fix_modify AtC source" ], "syntax": [ - "fix_modify remove_species " + "fix_modify source " ], "args": [ [ @@ -14779,183 +14027,153 @@ export const command_docs = [ "choices": [] }, { - "arg": "remove_species", + "arg": "source", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "value", + "function" + ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_species = name of the AtC sub-command\n* tag = tag for tracking a species \n", - "examples": "\n```lmps\nfix_modify AtC remove_species gold\n```\n", - "html_filename": "atc_remove_species.html", - "short_description": "Removes tag designated for tracking a specified species", - "description": "Removes tag designated for tracking a specified species.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n- [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* source = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* element_set = name of set of elements\n* value or function = value or name of function followed by its parameters \n", + "examples": "\n```lmps\nfix_modify AtC source temperature middle temporal_ramp 10.0 0.0\n```\n", + "html_filename": "atc_source.html", + "short_description": "Add domain sources to the mesh", + "description": "Add domain sources to the mesh. The units are consistent with LAMMPS's\nunits for mass, length and time and are defined by the PDE being solved,\ne.g. for thermal transfer the balance equation is for energy and source\nis energy per time.\n", + "restrictions": "The keyword *all* is reserved and thus not available as element_set name.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC remove_source ](https://docs.lammps.org/atc_remove_source.html)\n" }, { "command": [ - "fix spring/rg" + "angle_style cosine/squared/restricted", + "angle_style cosine/squared/restricted/omp" ], "syntax": [ - "fix ID group-ID spring/rg K RG0" + "angle_style cosine/squared/restricted" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "spring/rg", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "K", - "type": 2, - "choices": [] - }, - { - "arg": "RG0", - "type": 2, - "choices": [] + "arg": "cosine/squared/restricted", + "type": 3, + "choices": [ + "cosine/squared/restricted", + "cosine/squared/restricted/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/rg = style name of this fix command\n* K = harmonic force constant (force/distance units)\n* RG0 = target radius of gyration to constrain to (distance units) \n *      if RG0 = NULL, use the current RG as the target value \n", - "examples": "\n```lmps\nfix 1 protein spring/rg 5.0 10.0\nfix 2 micelle spring/rg 5.0 NULL\n```\n", - "html_filename": "fix_spring_rg.html", - "short_description": "Apply a harmonic restraining force to atoms in the group to affect\ntheir central moment about the center of mass (radius of gyration)", - "description": "Apply a harmonic restraining force to atoms in the group to affect\ntheir central moment about the center of mass (radius of gyration).\nThis fix is useful to encourage a protein or polymer to fold/unfold\nand also when sampling along the radius of gyration as a reaction\ncoordinate (i.e. for protein folding).\n\nThe radius of gyration is defined as RG in the first formula. The\nenergy of the constraint and associated force on each atom is given by\nthe second and third formulas, when the group is at a different RG\nthan the target value RG0.\n\\[\\begin{align*} \n {R_G}^2 & = \\frac{1}{M}\\sum_{i}^{N}{m_{i}\\left( x_{i} -\n \\frac{1}{M}\\sum_{j}^{N}{m_{j}x_{j}} \\right)^{2}} \\\\\n E & = K\\left( R_G - R_{G0} \\right)^{2} \\\\\n F_{i} & = 2K\\frac{m_{i}}{M}\\left( 1-\\frac{R_{G0}}{R_G}\n \\right)\\left( x_{i} - \\frac{1}{M}\\sum_{j}^{N}{m_{j}x_{j}} \\right) \\end{align*} \\]\nThe (\\(x_i\\) - center-of-mass) term is computed taking into account\nperiodic boundary conditions, \\(m_i\\) is the mass of the atom, and\n*M* is the mass of the entire group. Note that K is thus a force constant\nfor the aggregate force on the group of atoms, not a per-atom force.\n\nIf \\(R_{G0}\\) is specified as NULL, then the RG of the group is computed at\nthe time the fix is specified, and that value is used as the target.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the currently used reference RG (\\(R_{G0}\\)) to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an input\nscript that reads a restart file, so that the fix continues in an\nuninterrupted fashion.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the reference\nradius of gyration \\(R_{G0}\\) used by the fix. energy change due to\nthis fix. The scalar value calculated by this fix is \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html)\n[fix drag ](https://docs.lammps.org/fix_drag.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/squared/restricted\nangle_coeff 2*4 75.0 100.0\n```\n", + "html_filename": "angle_cosine_squared_restricted.html", + "short_description": "\nThe *cosine/squared/restricted* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2 / \\sin^2(\\theta)\\]\n, which is commonly used in the MARTINI force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor", + "description": "\nThe *cosine/squared/restricted* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2 / \\sin^2(\\theta)\\]\n, which is commonly used in the MARTINI force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nSee **restricted-Bulacu** for a description of the restricted angle for the MARTINI force field.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(restricted-Bulacu)** Bulacu, Goga, Zhao, Rossi, Monticelli, Periole, Tieleman, Marrink, J Chem Theory Comput, 9, 3282-3292\n(2013). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix nve/manifold/rattle" + "fix_modify AtC extrinsic exchange" ], "syntax": [ - "fix ID group-ID nve/manifold/rattle tol maxit manifold manifold-args keyword value ..." + "fix_modify extrinsic exchange " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "nve/manifold/rattle", + "arg": "extrinsic", "type": 1, "choices": [] }, { - "arg": "tol", - "type": 2, - "choices": [] - }, - { - "arg": "maxit", - "type": 2, - "choices": [] - }, - { - "arg": "manifold", - "type": 2, - "choices": [] - }, - { - "arg": "manifold-args", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, + "arg": "exchange", + "type": 1, "choices": [] }, { - "arg": "value", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/manifold/rattle = style name of this fix command\n* tol = tolerance to which Newton iteration must converge\n* maxit = maximum number of iterations to perform\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold\n* one or more keyword/value pairs may be appended \n *      keyword = every \n       every values = N \n       N = print info about iteration every N steps. N = 0 means no output \n", - "examples": "\n```lmps\nfix 1 all nve/manifold/rattle 1e-4 10 sphere 5.0\nfix step all nve/manifold/rattle 1e-8 100 ellipsoid 2.5 2.5 5.0 every 25\n```\n", - "html_filename": "fix_nve_manifold_rattle.html", - "short_description": "Perform constant NVE integration to update position and velocity for\natoms constrained to a curved surface (manifold) in the group each\ntimestep", - "description": "Perform constant NVE integration to update position and velocity for\natoms constrained to a curved surface (manifold) in the group each\ntimestep. The constraint is handled by RATTLE **Andersen1**\nwritten out for the special case of single-particle constraints as\nexplained in **Paquay2**. V is volume; E is energy. This way,\nthe dynamics of particles constrained to curved surfaces can be\nstudied. If combined with [fix langevin ](https://docs.lammps.org/fix_langevin.html), this\ngenerates Brownian motion of particles constrained to a curved\nsurface. For a list of currently supported manifolds and their\nparameters, see the [Howto manifold ](https://docs.lammps.org/Howto_manifold.html) doc page.\n\nNote that the particles must initially be close to the manifold in\nquestion. If not, RATTLE will not be able to iterate until the\nconstraint is satisfied, and an error is generated. For simple\nmanifolds this can be achieved with *region* and *create_atoms*\ncommands, but for more complex surfaces it might be more useful to\nwrite a script.\n\nThe manifold args may be equal-style variables, like so:\n\n```lmps\nvariable R equal \"ramp(5.0,3.0)\"\nfix shrink_sphere all nve/manifold/rattle 1e-4 10 sphere v_R\n```\nIn this case, the manifold parameter will change in time according to\nthe variable. This is not a problem for the time integrator as long\nas the change of the manifold is slow with respect to the dynamics of\nthe particles. Note that if the manifold has to exert work on the\nparticles because of these changes, the total energy might not be\nconserved.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Andersen1)** Andersen, J. Comp. Phys. 52, 24, (1983). \n \n**(Paquay2)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/). \n ", - "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", - "related": "[fix nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html), [fix manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* extrinsic exchange = name of the AtC sub-command\n* on or off = set state of energy exchange \n", + "examples": "\n```lmps\nfix_modify AtC extrinsic exchange on\n```\n", + "html_filename": "atc_extrinsic_exchange.html", + "short_description": "Switches energy exchange between the MD system and the electron system\non or off\n", + "description": "Switches energy exchange between the MD system and the electron system\non or off\n", + "restrictions": "For use only with the two_temperature type of the AtC fix (see\n[fix atc ](https://docs.lammps.org/fix_atc.html) command)\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "bond_style zero" + "timestep" ], "syntax": [ - "bond_style zero keyword" + "timestep dt" ], "args": [ [ { - "arg": "bond_style", - "type": 1, - "choices": [] - }, - { - "arg": "zero", + "arg": "timestep", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "dt", "type": 2, "choices": [] } ] ], - "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", - "examples": "\n```lmps\nbond_style zero\nbond_style zero nocoeff\nbond_coeff *\nbond_coeff * 2.14\n```\n", - "html_filename": "bond_zero.html", - "short_description": "Using an bond style of zero means bond forces and energies are not\ncomputed, but the geometry of bond pairs is still accessible to other\ncommands", - "description": "Using an bond style of zero means bond forces and energies are not\ncomputed, but the geometry of bond pairs is still accessible to other\ncommands.\n\nAs an example, the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html)\ncommand can be used to compute distances for the list of pairs of bond\natoms listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no bond style is defined, this command cannot be used.\n\nThe optional *nocoeff* flag allows to read data files with a BondCoeff\nsection for any bond style. Similarly, any bond_coeff commands\nwill only be checked for the bond type number and the rest ignored.\n\nNote that the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command must be used for\nall bond types. If specified, there can be only one value, which is\ngoing to be used to assign an equilibrium distance, e.g. for use with\n[fix shake ](https://docs.lammps.org/fix_shake.html).\n", + "parameters": "* dt = timestep size (time units) \n", + "examples": "\n```lmps\ntimestep 2.0\ntimestep 0.003\n```\n", + "html_filename": "timestep.html", + "short_description": "Set the timestep size for subsequent molecular dynamics simulations", + "description": "Set the timestep size for subsequent molecular dynamics simulations.\nSee the [units ](https://docs.lammps.org/units.html) command for the time units associated with\neach choice of units that LAMMPS supports.\n\nThe default value for the timestep size also depends on the choice of\nunits for the simulation; see the default values below.\n\nWhen the [run style ](https://docs.lammps.org/run_style.html) is *respa*, dt is the timestep for\nthe outer loop (largest) timestep.\n", "restrictions": " none\n", - "related": "[bond_style none ](https://docs.lammps.org/bond_none.html)\n" + "related": "[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html), [run ](https://docs.lammps.org/run.html),\n[run_style ](https://docs.lammps.org/run_style.html) respa, [units ](https://docs.lammps.org/units.html)\n" }, { "command": [ - "fix nph/body" + "fix nve/dot" ], "syntax": [ - "fix ID group-ID nph/body args keyword value ..." + "fix ID group-ID nve/dot" ], "args": [ [ @@ -14975,46 +14193,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "nph/body", + "arg": "nve/dot", "type": 1, "choices": [] - }, - { - "arg": "args", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/body = style name of this fix command\n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nph/body iso 0.0 0.0 1000.0\nfix 2 all nph/body x 5.0 5.0 1000.0\nfix 2 all nph/body x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/body aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_nph_body.html", - "short_description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover pressure\nbarostat", - "description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover pressure\nbarostat. P is pressure; H is enthalpy. This creates a system\ntrajectory consistent with the isenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/body\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/body\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", - "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix nvt_body ](https://docs.lammps.org/fix_nvt_body.html), [fix npt_body ](https://docs.lammps.org/fix_npt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/dot = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/dot\n```\n", + "html_filename": "fix_nve_dot.html", + "short_description": "Apply a rigid-body integrator as described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack4>`to a group of atoms, but without Langevin dynamics.This command performs Molecular dynamics (MD)via a velocity-Verlet algorithm and an evolution operator that rotatesthe quaternion degrees of freedom, similar to the scheme outlined in **Miller4**.This command is the equivalent of the [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)without damping and noise and can be used to determine the stability rangein a NVE ensemble prior to using the Langevin-type DOTC-integrator(see also [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)).The command is equivalent to the [fix nve ](https://docs.lammps.org/fix_nve.html).The particles are always considered to have a finite size.An example input file can be found in /examples/PACKAGES/cgdna/examples/duplex1/.Further details of the implementation and stability of the integrator are contained in **Henrich4**.The preprint version of the article can be found `here `to a group of atoms, but without Langevin dynamics.This command performs Molecular dynamics (MD)via a velocity-Verlet algorithm and an evolution operator that rotatesthe quaternion degrees of freedom, similar to the scheme outlined in **Miller4**.This command is the equivalent of the [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)without damping and noise and can be used to determine the stability rangein a NVE ensemble prior to using the Langevin-type DOTC-integrator(see also [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)).The command is equivalent to the [fix nve ](https://docs.lammps.org/fix_nve.html).The particles are always considered to have a finite size.An example input file can be found in /examples/PACKAGES/cgdna/examples/duplex1/.Further details of the implementation and stability of the integrator are contained in **Henrich4**.The preprint version of the article can be found `here ` package and the MOLECULE and ASPHERE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html), [fix nve ](https://docs.lammps.org/fix_nve.html)\n" }, { "command": [ - "temper" + "run" ], "syntax": [ - "temper N M temp fix-ID seed1 seed2 index" + "run N keyword values ..." ], "args": [ [ { - "arg": "temper", + "arg": "run", "type": 1, "choices": [] }, @@ -15024,157 +14227,247 @@ export const command_docs = [ "choices": [] }, { - "arg": "M", - "type": 2, - "choices": [] + "arg": "every", + "type": 3, + "choices": [ + "upto", + "start", + "stop", + "pre", + "post", + "every" + ] }, { - "arg": "temp", + "arg": "values", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* N = # of timesteps\n* zero or more keyword/value pairs may be appended\n* keyword = upto or start or stop or pre or post or every \n *        upto value = none \n *        start value = N1 \n         N1 = timestep at which 1st run started \n *        stop value = N2 \n         N2 = timestep at which last run will end \n *        pre value = no or yes \n *        post value = no or yes \n *        every values = M c1 c2 ... \n         M = break the run into M-timestep segments and invoke one or more commands between each segment \n         c1,c2,...,cN = one or more LAMMPS commands, each enclosed in quotes \n         c1 = NULL means no command will be invoked \n", + "examples": "\n```lmps\nrun 10000\nrun 1000000 upto\nrun 100 start 0 stop 1000\nrun 1000 pre no post yes\nrun 100000 start 0 stop 1000000 every 1000 \"print 'Protein Rg = $r'\"\nrun 100000 every 1000 NULL\n```\n", + "html_filename": "run.html", + "short_description": "Run or continue dynamics for a specified number of timesteps", + "description": "Run or continue dynamics for a specified number of timesteps.\n\nWhen the [run style ](https://docs.lammps.org/run_style.html) is *respa*, N refers to outer\nloop (largest) timesteps.\n\nA value of N = 0 is acceptable; only the thermodynamics of the system\nare computed and printed without taking a timestep.\n\nThe *upto* keyword means to perform a run starting at the current\ntimestep up to the specified timestep. E.g. if the current timestep\nis 10,000 and \"run 100000 upto\" is used, then an additional 90,000\ntimesteps will be run. This can be useful for very long runs on a\nmachine that allocates chunks of time and terminate your job when time\nis exceeded. If you need to restart your script multiple times\n(reading in the last restart file), you can keep restarting your\nscript with the same run command until the simulation finally\ncompletes.\n\nThe *start* or *stop* keywords can be used if multiple runs are being\nperformed and you want a [fix ](https://docs.lammps.org/fix.html) command that changes some\nvalue over time (e.g. temperature) to make the change across the\nentire set of runs and not just a single run. See the page for\nindividual fixes to see which ones can be used with the *start/stop*\nkeywords.\n\nFor example, consider this fix followed by 10 run commands:\n\n```lmps\nfix 1 all nvt 200.0 300.0 1.0\nrun 1000 start 0 stop 10000\nrun 1000 start 0 stop 10000\n...\nrun 1000 start 0 stop 10000\n```\nThe NVT fix ramps the target temperature from 200.0 to 300.0 during a\nrun. If the run commands did not have the start/stop keywords (just\n\"run 1000\"), then the temperature would ramp from 200.0 to 300.0\nduring the 1000 steps of each run. With the start/stop keywords, the\nramping takes place over the 10000 steps of all runs together.\n\nThe *pre* and *post* keywords can be used to streamline the setup,\nclean-up, and associated output to the screen that happens before and\nafter a run. This can be useful if you wish to do many short runs in\nsuccession (e.g. LAMMPS is being called as a library which is doing\nother computations between successive short LAMMPS runs).\n\nBy default (pre and post = yes), LAMMPS creates neighbor lists,\ncomputes forces, and imposes fix constraints before every run. And\nafter every run it gathers and prints timings statistics. If a run is\njust a continuation of a previous run (i.e. no settings are changed),\nthe initial computation is not necessary; the old neighbor list is\nstill valid as are the forces. So if *pre* is specified as \"no\" then\nthe initial setup is skipped, except for printing thermodynamic info.\nNote that if *pre* is set to \"no\" for the very first run LAMMPS\nperforms, then it is overridden, since the initial setup computations\nmust be done.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your input script changes the system between 2 runs, then the\n > initial setup must be performed to ensure the change is recognized by\n > all parts of the code that are affected. Examples are adding a\n > [fix ](https://docs.lammps.org/fix.html) or [dump ](https://docs.lammps.org/dump.html) or [compute ](https://docs.lammps.org/compute.html), changing\n > a [neighbor ](https://docs.lammps.org/neigh_modify.html) list parameter, or writing restart file\n > which can migrate atoms between processors. LAMMPS has no easy way to\n > check if this has happened, but it is an error to use the *pre no*\n > option in this case. \n > \n\nIf *post* is specified as \"no\", the full timing summary is skipped;\nonly a one-line summary timing is printed.\n\nThe *every* keyword provides a means of breaking a LAMMPS run into a\nseries of shorter runs. Optionally, one or more LAMMPS commands (c1,\nc2, ..., cN) will be executed in between the short runs. If used, the\n*every* keyword must be the last keyword, since it has a variable\nnumber of arguments. Each of the trailing arguments is a single\nLAMMPS command, and each command should be enclosed in quotes, so that\nthe entire command will be treated as a single argument. This will\nalso prevent any variables in the command from being evaluated until\nit is executed multiple times during the run. Note that if a command\nitself needs one of its arguments quoted (e.g. the [print ](https://docs.lammps.org/print.html)\ncommand), then you can use a combination of single and double quotes,\nas in the example above or below.\n\nThe *every* keyword is a means to avoid listing a long series of runs\nand interleaving commands in your input script. For example, a\n[print ](https://docs.lammps.org/print.html) command could be invoked or a [fix ](https://docs.lammps.org/fix.html) could\nbe redefined, e.g. to reset a thermostat temperature. Or this could\nbe useful for invoking a command you have added to LAMMPS that wraps\nsome other code (e.g. as a library) to perform a computation\nperiodically during a long LAMMPS run. See the [Modify ](https://docs.lammps.org/Modify.html)\ndoc page for info about how to add new commands to LAMMPS. See the\n[Howto couple ](https://docs.lammps.org/Howto_couple.html) page for ideas about how to\ncouple LAMMPS to other codes.\n\nWith the *every* option, N total steps are simulated, in shorter runs\nof M steps each. After each M-length run, the specified commands are\ninvoked. If only a single command is specified as NULL, then no\ncommand is invoked. Thus these lines:\n\n```lmps\nvariable q equal x[100]\nrun 6000 every 2000 \"print 'Coord = $q'\"\n```\nare the equivalent of:\n\n```lmps\nvariable q equal x[100]\nrun 2000\nprint \"Coord = $q\"\nrun 2000\nprint \"Coord = $q\"\nrun 2000\nprint \"Coord = $q\"\n```\nwhich does 3 runs of 2000 steps and prints the x-coordinate of a\nparticular atom between runs. Note that the variable \"$q\" will\nbe evaluated afresh each time the print command is executed.\n\nNote that by using the line continuation character \"&\", the run every\ncommand can be spread across many lines, though it is still a single\ncommand:\n\n```lmps\nrun 100000 every 1000 &\n\"print 'Minimum value = $a'\" &\n\"print 'Maximum value = $b'\" &\n\"print 'Temp = $c'\" &\n\"print 'Press = $d'\"\n```\nIf the *pre* and *post* options are set to \"no\" when used with the\n*every* keyword, then the first run will do the full setup and the last\nrun will print the full timing summary, but these operations will be\nskipped for intermediate runs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You might wish to specify a command that exits the run by\n > jumping out of the loop, e.g. \n > \n\n\n```lmps\nvariable t equal temp\nrun 10000 every 100 \"if '$t < 300.0' then 'jump SELF afterrun'\"\n```\nHowever, this will not work. The run command simply executes each\ncommand one at a time each time it pauses, then continues the run.\n\nInstead, you should use the [fix halt ](https://docs.lammps.org/fix_halt.html) command, which\nhas additional options for how to exit the run.\n", + "restrictions": "When not using the *upto* keyword, the number of specified timesteps N\nmust fit in a signed 32-bit integer, so you are limited to slightly\nmore than 2 billion steps (2\\^31) in a single run. When using *upto*,\nN can be larger than a signed 32-bit integer, however the difference\nbetween N and the current timestep must still be no larger than\n2\\^31 steps.\n\nHowever, with or without the *upto* keyword, you can perform\nsuccessive runs to run a simulation for any number of steps (ok, up to\n2\\^63 total steps). I.e. the timestep counter within LAMMPS is a\n64-bit signed integer.\n", + "related": "[minimize ](https://docs.lammps.org/minimize.html), [run_style ](https://docs.lammps.org/run_style.html),\n[temper ](https://docs.lammps.org/temper.html), [fix halt ](https://docs.lammps.org/fix_halt.html)\n" +}, +{ + "command": [ + "pair_style oxdna2/excv", + "pair_style oxdna2/stk", + "pair_style oxdna2/hbond", + "pair_style oxdna2/xstk", + "pair_style oxdna2/coaxstk" + ], + "syntax": [ + "pair_style style1" + ], + "args": [ + [ { - "arg": "fix-ID", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "seed1", + "arg": "style1", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style1 = *hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh*\n\n* style2 = oxdna2/excv or oxdna2/stk or oxdna2/hbond or oxdna2/xstk or oxdna2/coaxstk or oxdna2/dh\n* args = list of arguments for these particular styles \n *      oxdna2/stk args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.3523 (LJ units) or 8.06199211612242 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.6717 (LJ units) or 0.005309213 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxdna2/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 1.0678 (LJ units) or 6.36589157849259 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs \n *      oxdna2/dh args = T rhos qeff \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       rhos = salt concentration (mole per litre) \n       qeff = 0.815 (effective charge in elementary charges) \n", + "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna2/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxdna2/hbond seqdep 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxdna2/hbond seqdep 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxdna2/xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna2/coaxstk 58.5 0.4 0.6 0.22 0.58 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793\npair_coeff * * oxdna2/dh 0.1 0.5 0.815\n\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv oxdna2_lj.cgdna\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff * * oxdna2/xstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/dh 0.1 0.5 oxdna2_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 40.0 3.116592653589793\npair_coeff * * oxdna2/dh 300.0 0.5 0.815\n\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv oxdna2_real.cgdna\npair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 oxdna2_real.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff * * oxdna2/xstk oxdna2_real.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_real.cgdna\npair_coeff * * oxdna2/dh 300.0 0.5 oxdna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", + "html_filename": "pair_oxdna2.html", + "short_description": "The *oxdna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of DNA", + "description": "The *oxdna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of DNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxdna2/excv*, the stacking *oxdna2/stk*,\ncross-stacking *oxdna2/xstk* and coaxial stacking interaction\n*oxdna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxdna2/dh* as\nwell as the hydrogen-bonding interaction *oxdna2/hbond* between\ncomplementary pairs of nucleotides on opposite strands. Average sequence\nor sequence-dependent stacking and base-pairing strengths are supported\n:ref:[(Sulc) ](https://docs.lammps.org/Sulc2>`. Quasi-unique base-pairing between nucleotides canbe achieved by using more complementary pairs of atom types like 5-8 and6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents thehybridization of in principle complementary bases within Ntypes/4 basesup and down along the backbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to **Snodin2**and the original oxDNA publications :ref:`(Ouldridge-DPhil)` and **Ouldridge2** for a detaileddescription of the oxDNA2 force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA2 > bond style *oxdna2/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxdna2/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 and > corresponding *real unit* equivalents in the above examples). the > first coefficient after *oxdna2/hbond* (seq=seqdep in the above > example) and the three coefficients after *oxdna2/dh* (T=0.1, > rhos=0.5, qeff=0.815 in the above example). When using a Langevin > thermostat e.g. through [fix langevin ](https://docs.lammps.org/fix_langevin.html) or > [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature > coefficients have to be matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. Asimple python setup tool which creates single straight or helical DNAstrands, DNA duplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich2** in any publication that usesthis implementation. An updated documentation that contains generalinformation on the model, its implementation and performance as well asthe structure of the data and input file can be found `here\n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff * * oxdna2/xstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/dh 0.1 0.5 0.815\n```\nwill read the excluded volume and Debye-Hueckel effective charge *qeff*\nparameters from the manual specification and all others from the\npotential file *oxdna2_lj.cgdna*.\n\nThere are sample potential files for each unit style in the ``potentials``\ndirectory of the LAMMPS distribution. The potential file unit system\nmust align with the units defined via the [units ](https://docs.lammps.org/units.html)\ncommand. For conversion between different *LJ* and *real* unit systems\nfor oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool assumes\nsimilar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc2)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Snodin2)** B.E. Snodin, F. Randisi, M. Mosayebi, et al., J. Chem. Phys. 142, 234901 (2015). \n \n**(Ouldridge2)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich2)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n ", + "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html),\n[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" +}, +{ + "command": [ + "dihedral_style spherical" + ], + "syntax": [ + "dihedral_style spherical" + ], + "args": [ + [ { - "arg": "seed2", - "type": 2, + "arg": "dihedral_style", + "type": 1, "choices": [] }, { - "arg": "index", - "type": 2, + "arg": "spherical", + "type": 1, "choices": [] } ] ], - "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* temp = initial temperature for this ensemble\n* fix-ID = ID of the fix that will control temperature during the run\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* index = which temperature (0 to N-1) I am simulating (optional) \n", - "examples": "\n```lmps\ntemper 100000 100 $t tempfix 0 58728\ntemper 40000 100 $t tempfix 0 32285 $w\n```\n", - "html_filename": "temper.html", - "short_description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system", - "description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system. Two or more replicas must be used.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI installed, you\ncan run a multi-replica simulation with more replicas (partitions)\nthan you have physical processors, e.g you can run a 10-replica\nsimulation on one or two processors. You will simply not get the\nperformance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\nEach replica's temperature is controlled at a different value by a fix\nwith *fix-ID* that controls temperature. Most thermostat fix styles\n(with and without included time integration) are supported. The command\nwill print an error message and abort, if the chosen fix is unsupported.\nThe desired temperature is specified by *temp*, which is typically a\nvariable previously set in the input script, so that each partition is\nassigned a different temperature. See the [variable ](https://docs.lammps.org/variable.html)\ncommand for more details. For example:\n\n```lmps\nvariable t world 300.0 310.0 320.0 330.0\nfix myfix all nvt temp $t $t 100.0\ntemper 100000 100 $t myfix 3847 58382\n```\nwould define 4 temperatures, and assign one of them to the thermostat\nused by each replica, and to the temper command.\n\nAs the tempering simulation runs for *N* timesteps, a temperature swap\nbetween adjacent ensembles will be attempted every *M* timesteps. If\n*seed1* is 0, then the swap attempts will alternate between odd and\neven pairings. If *seed1* is non-zero then it is used as a seed in a\nrandom number generator to randomly choose an odd or even pairing each\ntime. Each attempted swap of temperatures is either accepted or\nrejected based on a Boltzmann-weighted Metropolis criterion which uses\n*seed2* in the random number generator.\n\nAs a tempering run proceeds, multiple log files and screen output\nfiles are created, one per replica. By default these files are named\nlog.lammps.M and screen.M where M is the replica number from 0 to N-1,\nwith N = # of replicas. See the [-log and -screen command-line swiches ](https://docs.lammps.org/Run_options.html) for info on how to change these names.\n\nThe main screen and log file (log.lammps) will list information about\nwhich temperature is assigned to each replica at each thermodynamic\noutput timestep. E.g. for a simulation with 16 replicas:\n\n```\nRunning on 16 partitions of processors\nStep T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15\n0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n500 1 0 3 2 5 4 6 7 8 9 10 11 12 13 14 15\n1000 2 0 4 1 5 3 6 7 8 9 10 11 12 14 13 15\n1500 2 1 4 0 5 3 6 7 9 8 10 11 12 14 13 15\n2000 2 1 3 0 6 4 5 7 10 8 9 11 12 14 13 15\n2500 2 1 3 0 6 4 5 7 11 8 9 10 12 14 13 15\n...\n```\nThe column headings T0 to TN-1 mean which temperature is currently\nassigned to the replica 0 to N-1. Thus the columns represent replicas\nand the value in each column is its temperature (also numbered 0 to\nN-1). For example, a 0 in the fourth column (column T3, step 2500) means\nthat the fourth replica is assigned temperature 0, i.e. the lowest\ntemperature. You can verify this time sequence of temperature\nassignments for the Nth replica by comparing the Nth column of screen\noutput to the thermodynamic data in the corresponding log.lammps.N or\nscreen.N files as time proceeds.\n\nYou can have each replica create its own dump file in the following\nmanner:\n\n```lmps\nvariable rep world 0 1 2 3 4 5 6 7\ndump 1 all atom 1000 dump.temper.${rep}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each replica's dump file will contain a continuous trajectory\n > for its atoms where the temperature varies over time as swaps take\n > place involving that replica. If you want a series of dump files,\n > each with snapshots (from all replicas) that are all at a single\n > temperature, then you will need to post-process the dump files using\n > the information from the log.lammps file. E.g. you could produce one\n > dump file with snapshots at 300K (from all replicas), another with\n > snapshots at 310K, etc. Note that these new dump files will not\n > contain \"continuous trajectories\" for individual atoms, because two\n > successive snapshots (in time) may be from different replicas. The\n > reorder_remd_traj python script can do the reordering for you\n > (and additionally also calculated configurational log-weights of\n > trajectory snapshots in the canonical ensemble). The script can be found\n > in the tools/replica directory while instructions on how to use it is\n > available in doc/Tools (in brief) and as a README file in tools/replica\n > (in detail). \n > \n\nThe last argument *index* in the temper command is optional and is\nused when restarting a tempering run from a set of restart files (one\nfor each replica) which had previously swapped to new temperatures.\nThe *index* value (from 0 to N-1, where N is the # of replicas)\nidentifies which temperature the replica was simulating on the\ntimestep the restart files were written. Obviously, this argument\nmust be a variable so that each partition has the correct value. Set\nthe variable to the *N* values listed in the log file for the previous\nrun for the replica temperatures at that timestep. For example if the\nlog file listed the following for a simulation with 5 replicas:\n\n```\n500000 2 4 0 1 3\n```\nthen a setting of\n\n```lmps\nvariable w world 2 4 0 1 3\n```\nwould be used to restart the run with a tempering command like the\nexample above with $w as the last argument.\n\n----------\n", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[variable ](https://docs.lammps.org/variable.html), [prd ](https://docs.lammps.org/prd.html), [neb ](https://docs.lammps.org/neb.html)\n" + "parameters": "", + "examples": "\n```lmps\ndihedral_coeff 1 1 286.1 1 124 1 1 90.0 0 1 90.0 0\ndihedral_coeff 1 3 69.3 1 93.9 1 1 90 0 1 90 0 &\n49.1 0 0.00 0 1 74.4 1 0 0.00 0 &\n25.2 0 0.00 0 0 0.00 0 1 48.1 1\n```\n", + "html_filename": "dihedral_spherical.html", + "short_description": "The *spherical* dihedral style uses the potential:\n\n ![Image](JPG/dihedral_spherical_angles.jpg) \n\n\\[\\begin{align*} \n E(\\phi,\\theta_1,\\theta_2) & = \\sum_{i=1}^N\\nolimits\\ C_i\\ \\Phi_i(\\phi)\\ \\Theta_{1i}(\\theta_1)\\ \\Theta_{2i}(\\theta_2) \\\\\n \\Phi_{i}(\\phi) & = u_i - \\mathrm{cos}((\\phi - a_i)K_i) \\\\\n \\Theta_{1i}(\\theta_1) & = v_i - \\mathrm{cos}((\\theta_1-b_i)L_i) \\\\\n \\Theta_{2i}(\\theta_2) & = w_i - \\mathrm{cos}((\\theta_2-c_i)M_i) \\end{align*} \\]\nFor this dihedral style, the energy can be any function that combines the\n4-body dihedral-angle (\\(\\phi\\)) and the two 3-body bond-angles\n(\\(\\theta_1\\), \\(\\theta_2\\))", + "description": "The *spherical* dihedral style uses the potential:\n\n ![Image](JPG/dihedral_spherical_angles.jpg) \n\n\\[\\begin{align*} \n E(\\phi,\\theta_1,\\theta_2) & = \\sum_{i=1}^N\\nolimits\\ C_i\\ \\Phi_i(\\phi)\\ \\Theta_{1i}(\\theta_1)\\ \\Theta_{2i}(\\theta_2) \\\\\n \\Phi_{i}(\\phi) & = u_i - \\mathrm{cos}((\\phi - a_i)K_i) \\\\\n \\Theta_{1i}(\\theta_1) & = v_i - \\mathrm{cos}((\\theta_1-b_i)L_i) \\\\\n \\Theta_{2i}(\\theta_2) & = w_i - \\mathrm{cos}((\\theta_2-c_i)M_i) \\end{align*} \\]\nFor this dihedral style, the energy can be any function that combines the\n4-body dihedral-angle (\\(\\phi\\)) and the two 3-body bond-angles\n(\\(\\theta_1\\), \\(\\theta_2\\)).\nFor this reason, there is usually no need to define 3-body \"angle\" forces\nseparately for the atoms participating in these interactions.\nIt is probably more efficient to incorporate 3-body angle forces into\nthe dihedral interaction even if it requires adding additional terms to\nthe expansion (as was done in the second example). A careful choice of\nparameters can prevent singularities that occur with traditional\nforce-fields whenever theta1 or theta2 approach 0 or 180 degrees.\n\nThe last example above corresponds to an interaction with a single energy\nminima located near \\(\\phi=93.9\\), \\(\\theta_1=74.4\\),\n\\(\\theta_2=48.1\\) degrees, and it remains numerically stable at all\nangles (\\(\\phi\\), \\(\\theta_1\\), \\(\\theta_2\\)). In this example,\nthe coefficients 49.1, and 25.2 can be physically interpreted as the\nharmonic spring constants for theta1 and theta2 around their minima.\nThe coefficient 69.3 is the harmonic spring constant for phi after\ndivision by sin(74.4)\\*sin(48.1) (the minima positions for theta1 and theta2).\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe Dihedral Coeffs section of a data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(n\\) (integer >= 1)\n* \\(C_1\\) (energy)\n* \\(K_1\\) (typically an integer)\n* \\(a_1\\) (degrees)\n* \\(u_1\\) (typically 0.0 or 1.0)\n* \\(L_1\\) (typically an integer)\n* \\(b_1\\) (degrees, typically 0.0 or 90.0)\n* \\(v_1\\) (typically 0.0 or 1.0)\n* \\(M_1\\) (typically an integer)\n* \\(c_1\\) (degrees, typically 0.0 or 90.0)\n* \\(w_1\\) (typically 0.0 or 1.0)\n* [...]\n* \\(C_n\\) (energy)\n* \\(K_n\\) (typically an integer)\n* \\(a_n\\) (degrees)\n* \\(u_n\\) (typically 0.0 or 1.0)\n* \\(L_n\\) (typically an integer)\n* \\(b_n\\) (degrees, typically 0.0 or 90.0)\n* \\(v_n\\) (typically 0.0 or 1.0)\n* \\(M_n\\) (typically an integer)\n* \\(c_n\\) (degrees, typically 0.0 or 90.0)\n* \\(w_n\\) (typically 0.0 or 1.0)\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "fix_modify AtC output volume_integral" + "fix hyper/global" ], "syntax": [ - "fix_modify output volume_integral " + "fix ID group-ID hyper/global cutbond qfactor Vmax Tequil" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "volume_integral", + "arg": "hyper/global", "type": 1, "choices": [] }, { - "arg": "", + "arg": "cutbond", "type": 2, "choices": [] }, { - "arg": "", + "arg": "qfactor", + "type": 2, + "choices": [] + }, + { + "arg": "Vmax", + "type": 2, + "choices": [] + }, + { + "arg": "Tequil", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output volume_integral = name of the AtC sub-command\n* elementset_name= name of elementset to be integrated over\n* fieldname = name of field to integrate \n", - "examples": "\n```lmps\nfix_modify AtC output volume_integral eset1 mass_density\n```\n", - "html_filename": "atc_output_volume_integral.html", - "short_description": "Performs volume integration of specified field over elementset and\noutputs resulting variable values to GLOBALS file", - "description": "Performs volume integration of specified field over elementset and\noutputs resulting variable values to GLOBALS file.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* hyper/global = style name of this fix command\n* cutbond = max distance at which a pair of atoms is considered bonded (distance units)\n* qfactor = max strain at which bias potential goes to 0.0 (unitless)\n* Vmax = height of bias potential (energy units)\n* Tequil = equilibration temperature (temperature units) \n", + "examples": "\n```lmps\nfix 1 all hyper/global 1.0 0.3 0.8 300.0\n```\n", + "html_filename": "fix_hyper_global.html", + "short_description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost global hyperdynamics (GHD) simulation", + "description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost global hyperdynamics (GHD) simulation. The role\nof this fix is to a select a single pair of atoms in the system at\neach timestep to add a global bias potential to, which will alter the\ndynamics of the system in a manner that effectively accelerates time.\nThis is in contrast to the [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html)\ncommand, which can be user to perform a local hyperdynamics (LHD)\nsimulation, by adding a local bias potential to multiple pairs of\natoms at each timestep. GHD can time accelerate a small simulation\nwith up to a few 100 atoms. For larger systems, LHD is needed to\nachieve good time acceleration.\n\nFor a system that undergoes rare transition events, where one or more\natoms move over an energy barrier to a new potential energy basin, the\neffect of the bias potential is to induce more rapid transitions.\nThis can lead to a dramatic speed-up in the rate at which events\noccurs, without altering their relative frequencies, thus leading to\nan overall increase in the elapsed real time of the simulation as\ncompared to running for the same number of timesteps with normal MD.\nSee the [hyper ](https://docs.lammps.org/hyper.html) page for a more general discussion of\nhyperdynamics and citations that explain both GHD and LHD.\n\nThe equations and logic used by this fix and described here to perform\nGHD follow the description given in **Voter2013ghd**. The\nbond-boost form of a bias potential for HD is due to Miron and\nFichthorn as described in **Mironghd**. In LAMMPS we use a\nsimplified version of bond-boost GHD where a single bond in the system\nis biased at any one timestep.\n\nBonds are defined between each pair of atoms *ij*, whose \\(R^0_{ij}\\)\ndistance is less than *cutbond*, when the system is in a quenched state\n(minimum) energy. Note that these are not \"bonds\" in a covalent\nsense. A bond is simply any pair of atoms that meet the distance\ncriterion. *Cutbond* is an argument to this fix; it is discussed\nbelow. A bond is only formed if one or both of the *ij* atoms are in\nthe specified group.\n\nThe current strain of bond *ij* (when running dynamics) is defined as\n\\[\n E_{ij} = \\frac{R_{ij} - R^0_{ij}}{R^0_{ij}}\\]\nwhere \\(R_{ij}\\) is the current distance between atoms *i* and *j*,\nand \\(R^0_{ij}\\) is the equilibrium distance in the quenched state.\n\nThe bias energy \\(V_{ij}\\) of any bond between atoms *i* and *j*\nis defined as\n\\[\n V_{ij} = 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}\\]\nwhere the prefactor \\(V^{max}\\) and the cutoff *qfactor* are arguments to\nthis fix; they are discussed below. This functional form is an\ninverse parabola centered at 0.0 with height \\(V^{max}\\) and\nwhich goes to 0.0 at +/- qfactor.\n\nLet \\(E^{max}\\) be the maximum of \\(\\left| E_{ij} \\right|\\)\nfor all *ij* bonds in the system on a\ngiven timestep. On that step, \\(V_{ij}\\) is added as a bias potential\nto only the single bond with strain \\(E^{max}\\), call it\n\\(V^{max}_{ij}\\). Note that \\(V^{max}_{ij}\\) will be 0.0\nif \\(E^{max} >= \\textrm{qfactor}\\) on that timestep. Also note\nthat \\(V^{max}_{ij}\\) is added to the normal interatomic potential\nthat is computed between all atoms in the system at every step.\n\nThe derivative of \\(V^{max}_{ij}\\) with respect to the position of\neach atom in the \\(E^{max}\\) bond gives a bias force\n\\(F^{max}_{ij}\\) acting on the bond as\n\\[\n F^{max}_{ij} = - \\frac{dV^{max}_{ij}}{dE_{ij}} = \\frac{2 V^{max} E-{ij}}{\\textrm{qfactor}^2} \\textrm{ for } \\left|E_{ij}\\right| < \\textrm{qfactor} \\textrm{ or } 0 \\textrm{ otherwise}\\]\nwhich can be decomposed into an equal and opposite force acting on\nonly the two *ij* atoms in the \\(E^{max}\\) bond.\n\nThe time boost factor for the system is given each timestep I by\n\\[\n B_i = e^{\\beta V^{max}_{ij}}\\]\nwhere \\(\\beta = \\frac{1}{kT_{equil}}\\), and \\(T_{equil}\\) is the temperature of the system\nand an argument to this fix. Note that \\(B_i >= 1\\) at every step.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To run a GHD simulation, the input script must also use the [fix langevin ](https://docs.lammps.org/fix_langevin.html) command to thermostat the atoms at the\n > same *Tequil* as specified by this fix, so that the system is running\n > constant-temperature (NVT) dynamics. LAMMPS does not check that this\n > is done. \n > \n\nThe elapsed time \\(t_{hyper}\\) for a GHD simulation running for *N*\ntimesteps is simply\n\\[\n t_{hyper} = \\sum_{i=1,N} B-i \\cdot dt\\]\nwhere *dt* is the timestep size defined by the [timestep ](https://docs.lammps.org/timestep.html)\ncommand. The effective time acceleration due to GHD is thus t_hyper /\nN\\*dt, where N\\*dt is elapsed time for a normal MD run of N timesteps.\n\nNote that in GHD, the boost factor varies from timestep to timestep.\nLikewise, which bond has \\(E^{max}\\) strain and thus which pair of\natoms the bias potential is added to, will also vary from timestep to timestep.\nThis is in contrast to local hyperdynamics (LHD) where the boost\nfactor is an input parameter; see the [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html) page for details.\n\n----------\n\nHere is additional information on the input parameters for GHD.\n\nThe *cutbond* argument is the cutoff distance for defining bonds\nbetween pairs of nearby atoms. A pair of *ij* atoms in their\nequilibrium, minimum-energy configuration, which are separated by a\ndistance \\(R_{ij} < cutbond\\), are flagged as a bonded pair. Setting\n*cubond* to be ~25% larger than the nearest-neighbor distance in a\ncrystalline lattice is a typical choice for solids, so that bonds\nexist only between nearest neighbor pairs.\n\nThe *qfactor* argument is the limiting strain at which the bias\npotential goes to 0.0. It is dimensionless, so a value of 0.3 means a\nbond distance can be up to 30% larger or 30% smaller than the\nequilibrium (quenched) R0ij distance and the two atoms in the bond\ncould still experience a non-zero bias force.\n\nIf *qfactor* is set too large, then transitions from one energy basin\nto another are affected because the bias potential is non-zero at the\ntransition state (e.g. saddle point). If *qfactor* is set too small\nthan little boost is achieved because the \\(E_{ij}\\) strain of some bond in\nthe system will (nearly) always exceed *qfactor* . A value of 0.3 for\n*qfactor* is typically reasonable.\n\nThe *Vmax* argument is the prefactor on the bias potential. Ideally,\ntt should be set to a value slightly less than the smallest barrier\nheight for an event to occur. Otherwise the applied bias potential\nmay be large enough (when added to the interatomic potential) to\nproduce a local energy basin with a maxima in the center. This can\nproduce artificial energy minima in the same basin that trap an atom.\nOr if *Vmax* is even larger, it may induce an atom(s) to rapidly\ntransition to another energy basin. Both cases are \"bad dynamics\"\nwhich violate the assumptions of GHD that guarantee an accelerated\ntime-accurate trajectory of the system.\n\nNote that if *Vmax* is set too small, the GHD simulation will run\ncorrectly. There will just be fewer events because the hyper time\n(t_hyper equation above) will be shorter.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have no physical intuition as to the smallest barrier\n > height in your system, a reasonable strategy to determine the largest\n > *Vmax* you can use for a GHD model, is to run a sequence of\n > simulations with smaller and smaller *Vmax* values, until the event\n > rate does not change (as a function of hyper time). \n > \n\nThe *Tequil* argument is the temperature at which the system is\nsimulated; see the comment above about the [fix langevin ](https://docs.lammps.org/fix_langevin.html) thermostatting. It is also part of the\nbeta term in the exponential factor that determines how much boost is\nachieved as a function of the bias potential.\n\nIn general, the lower the value of *Tequil* and the higher the value\nof *Vmax*, the more time boost will be achievable by the GHD\nalgorithm.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of the bias potential to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and global vector of length 12,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the magnitude of the bias potential\n(energy units) applied on the current timestep. The vector stores the\nfollowing quantities:\n\n* 1 = boost factor on this step (unitless)\n* 2 = max strain \\(E_{ij}\\) of any bond on this step (absolute value, unitless)\n* 3 = ID of first atom in the max-strain bond\n* 4 = ID of second atom in the max-strain bond\n* 5 = average # of bonds/atom on this step\n\n* 6 = fraction of timesteps where the biased bond has bias = 0.0 during this run\n* 7 = fraction of timesteps where the biased bond has negative strain during this run\n* 8 = max drift distance of any atom during this run (distance units)\n* 9 = max bond length during this run (distance units)\n\n* 10 = cumulative hyper time since fix was defined (time units)\n* 11 = cumulative count of event timesteps since fix was defined\n* 12 = cumulative count of atoms in events since fix was defined\n\nThe first 5 quantities are for the current timestep. Quantities 6-9\nare for the current hyper run. They are reset each time a new hyper\nrun is performed. Quantities 19-12 are cumulative across multiple\nruns (since the point in the input script the fix was defined).\n\nFor value 8, drift is the distance an atom moves between two quenched\nstates when the second quench determines an event has occurred. Atoms\ninvolved in an event will typically move the greatest distance since\nothers typically remain near their original quenched position.\n\nFor value 11, events are checked for by the [hyper ](https://docs.lammps.org/hyper.html) command\nonce every *Nevent* timesteps. This value is the count of those\ntimesteps on which one (or more) events was detected. It is NOT the\nnumber of distinct events, since more than one event may occur in the\nsame *Nevent* time window.\n\nFor value 12, each time the [hyper ](https://docs.lammps.org/hyper.html) command checks for an\nevent, it invokes a compute to flag zero or more atoms as\nparticipating in one or more events. E.g. atoms that have displaced\nmore than some distance from the previous quench state. Value 11 is\nthe cumulative count of the number of atoms participating in any of\nthe events that were found.\n\nThe scalar and vector values calculated by this fix are all\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Voter2013ghd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Mironghd)** R. A. Miron and K. A. Fichthorn, J Chem Phys, 119, 6210 (2003). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[hyper ](https://docs.lammps.org/hyper.html), [fix hyper/local ](https://docs.lammps.org/fix_hyper_local.html)\n" }, { "command": [ - "fix_modify AtC fix" + "pair_style lj96/cut", + "pair_style lj96/cut/gpu", + "pair_style lj96/cut/omp" ], "syntax": [ - "fix_modify fix " + "pair_style lj96/cut cutoff" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "lj96/cut", + "type": 3, + "choices": [ + "lj96/cut", + "lj96/cut/gpu", + "lj96/cut/omp" + ] + }, + { + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* cutoff = global cutoff for lj96/cut interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj96/cut 2.5\npair_coeff * * 1.0 1.0 4.0\npair_coeff 1 1 1.0 1.0\n```\n", + "html_filename": "pair_lj96.html", + "short_description": "The *lj96/cut* style compute a 9/6 Lennard-Jones potential, instead\nof the standard 12/6 potential, given by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "The *lj96/cut* style compute a 9/6 Lennard-Jones potential, instead\nof the standard 12/6 potential, given by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff specified in the pair_style command is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "compute erotate/asphere" + ], + "syntax": [ + "compute ID group-ID erotate/asphere" + ], + "args": [ + [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "constant", - "function" - ] + "arg": "erotate/asphere", + "type": 1, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fix = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply boundary condition\n* constant or function = value or name of function followed by its parameters \n", - "examples": "\n```lmps\nfix_modify AtC fix temperature groupNAME 10.\nfix_modify AtC fix temperature groupNAME 0 0 0 10.0 0 0 1.0\n```\n", - "html_filename": "atc_fix.html", - "short_description": "Creates a constraint on the values of the specified field at specified nodes", - "description": "Creates a constraint on the values of the specified field at specified nodes.\n", - "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC unfix ](https://docs.lammps.org/atc_unfix.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/asphere = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all erotate/asphere\n```\n", + "html_filename": "compute_erotate_asphere.html", + "short_description": "Define a computation that calculates the rotational kinetic energy of\na group of aspherical particles", + "description": "Define a computation that calculates the rotational kinetic energy of\na group of aspherical particles. The aspherical particles can be\nellipsoids, or line segments, or triangles. See the\n[atom_style ](https://docs.lammps.org/atom_style.html) and [read_data ](https://docs.lammps.org/read_data.html) commands\nfor descriptions of these options.\n\nFor all 3 types of particles, the rotational kinetic energy is\ncomputed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is the inertia tensor\nfor the aspherical particle and \\(\\omega\\) is its angular velocity, which\nis computed from its angular momentum if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), ellipsoidal particles are\n > treated as ellipsoids, not ellipses, meaning their moments of inertia\n > will be the same as in 3d. \n > \n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute requires that ellipsoidal particles atoms store a shape\nand quaternion orientation and angular momentum as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n\nThis compute requires that line segment particles atoms store a length\nand orientation and angular velocity as defined by the [atom_style line ](https://docs.lammps.org/atom_style.html) command.\n\nThis compute requires that triangular particles atoms store a size and\nshape and quaternion orientation and angular momentum as defined by\nthe [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be of finite size. They cannot be point\nparticles.\n", + "related": "none\n\n\n[compute erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html)\n" }, { "command": [ - "fix external" + "compute force/tally", + "compute heat/flux/tally", + "compute heat/flux/virial/tally", + "compute pe/tally", + "compute pe/mol/tally" ], "syntax": [ - "fix ID group-ID external mode args" + "compute ID group-ID style group2-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -15189,44 +14482,85 @@ export const command_docs = [ "choices": [] }, { - "arg": "external", + "arg": "stress/tally", + "type": 3, + "choices": [ + "force/tally", + "heat/flux/tally", + "heat/flux/virial/tally", + "pe/tally", + "pe/mol/tally", + "stress/tally" + ] + }, + { + "arg": "group2-ID", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = force/tally or heat/flux/tally or heat/flux/virial/tally or pe/tally or pe/mol/tally or stress/tally\n* group2-ID = group ID of second (or same) group \n", + "examples": "\n```lmps\ncompute 1 lower force/tally upper\ncompute 1 left pe/tally right\ncompute 1 lower stress/tally lower\ncompute 1 subregion heat/flux/tally all\ncompute 1 liquid heat/flux/virial/tally solid\n```\n", + "html_filename": "compute_tally.html", + "short_description": "Define a computation that calculates properties between two groups of\natoms by accumulating them from pairwise non-bonded computations", + "description": "Define a computation that calculates properties between two groups of\natoms by accumulating them from pairwise non-bonded computations.\nExcept for *heat/flux/virial/tally*, the two groups can be the same.\nThis is similar to [compute group/group ](https://docs.lammps.org/compute_group_group.html)\nonly that the data is\naccumulated directly during the non-bonded force computation. The\ncomputes *force/tally*, *pe/tally*, *stress/tally*, and\n*heat/flux/tally* are primarily provided as example how to program\nadditional, more sophisticated computes using the tally callback\nmechanism. Compute *pe/mol/tally* is one such style, that can---through using\nthis mechanism---separately tally intermolecular\nand intramolecular energies. Something that would otherwise be\nimpossible without integrating this as a core functionality into\nthe base classes of LAMMPS.\n\n----------\n\nCompute *heat/flux/tally* obtains the heat flux\n(strictly speaking, heat flow) inside the first group,\nwhich is the sum of the convective contribution\ndue to atoms in the first group and the virial contribution\ndue to interaction between the first and second groups:\n\\[\n \\mathbf{Q}= \\sum_{i \\in \\text{group 1}} e_i \\mathbf{v}_i + \\frac{1}{2} \\sum_{i \\in \\text{group 1}} \\sum_{\\substack{j \\in \\text{group 2} \\\\ j \\neq i } } \\left( \\mathbf{F}_{ij} \\cdot \\mathbf{v}_j \\right) \\mathbf{r}_{ij}\\]\nWhen the second group in *heat/flux/tally* is set to \"all\",\nthe resulting values will be identical\nto that obtained by [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html),\nprovided only pairwise interactions exist.\n\nCompute *heat/flux/virial/tally* obtains the total virial heat flux\n(strictly speaking, heat flow) into the first group due to interaction\nwith the second group, and is defined as:\n\\[\n Q = \\frac{1}{2} \\sum_{i \\in \\text{group 1}} \\sum_{j \\in \\text{group 2}} \\mathbf{F}_{ij} \\cdot \\left(\\mathbf{v}_i + \\mathbf{v}_j \\right)\\]\nAlthough, the *heat/flux/virial/tally* compute\ndoes not include the convective term,\nit can be used to obtain the total heat flux over control surfaces,\nwhen there are no particles crossing over,\nsuch as is often in solid--solid and solid--liquid interfaces.\nThis would be identical to the method of planes method.\nNote that the *heat/flux/virial/tally* compute is distinctly different\nfrom the *heat/flux* and *heat/flux/tally* computes,\nthat are essentially volume averaging methods.\nThe following example demonstrates the difference:\n\n```lmps\n# System with only pairwise interactions.\n# Non-periodic boundaries in the x direction.\n# Has LeftLiquid and RightWall groups along x direction.\n\n# Heat flux over the solid-liquid interface\ncompute hflow_hfvt RightWall heat/flux/virial/tally LeftLiquid\nvariable hflux_hfvt equal c_hflow_hfvt/(ly*lz)\n\n# x component of approximate heat flux vector inside the liquid region,\n# two approaches.\n#\ncompute myKE all ke/atom\ncompute myPE all pe/atom\ncompute myStress all stress/atom NULL virial\ncompute hflow_hf LeftLiquid heat/flux myKE myPE myStress\nvariable hflux_hf equal c_hflow_hf[1]/${volLiq}\n#\ncompute hflow_hft LeftLiquid heat/flux/tally all\nvariable hflux_hft equal c_hflow_hft[1]/${volLiq}\n\n# Pressure over the solid-liquid interface, three approaches.\n#\ncompute force_gg RightWall group/group LeftLiquid\nvariable press_gg equal c_force_gg[1]/(ly*lz)\n#\ncompute force_ft RightWall force/tally LeftLiquid\ncompute rforce_ft RightWall reduce sum c_force_ft[1]\nvariable press_ft equal c_rforce_ft/(ly*lz)\n#\ncompute rforce_hfvt all reduce sum c_hflow_hfvt[1]\nvariable press_hfvt equal c_rforce_hfvt/(ly*lz)\n```\n----------\n\nThe pairwise contributions are computing via a callback that the\ncompute registers with the non-bonded pairwise force computation.\nThis limits the use to systems that have no bonds, no Kspace, and no\nmany-body interactions. On the other hand, the computation does not\nhave to compute forces or energies a second time and thus can be much\nmore efficient. The callback mechanism allows to write more complex\npairwise property computations.\n\n----------\n\n #### Output info\n\n- Compute *pe/tally* calculates a global scalar (the energy) and a per\n atom scalar (the contributions of the single atom to the global\n scalar).\n\n- Compute *pe/mol/tally* calculates a global four-element vector containing\n (in this order): *evdwl* and *ecoul* for intramolecular pairs and\n *evdwl* and *ecoul* for intermolecular pairs. Since molecules are\n identified by their molecule IDs, the partitioning does not have to be\n related to molecules, but the energies are tallied into the respective\n slots depending on whether the molecule IDs of a pair are the same or\n different.\n\n- Compute *force/tally* calculates a global scalar (the force magnitude)\n and a per atom 3-element vector (force contribution from each atom).\n\n- Compute *stress/tally* calculates a global scalar\n (average of the diagonal elements of the stress tensor) and a per atom\n vector (the six elements of stress tensor contributions from the\n individual atom).\n\n- As in [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html),\n compute *heat/flux/tally* calculates a global vector of length 6,\n where the first three components are the \\(x\\), \\(y\\), \\(z\\)\n components of the full heat flow vector,\n and the next three components are the corresponding components\n of just the convective portion of the flow (i.e., the\n first term in the equation for \\(\\mathbf{Q}\\)).\n\n- Compute *heat/flux/virial/tally* calculates a global scalar (heat flow)\n and a per atom three-element vector\n (contribution to the force acting over atoms in the first group\n from individual atoms in both groups).\n\nBoth the scalar and vector values calculated by this compute are\n\"extensive\".\n", + "restrictions": "This compute is part of the TALLY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNot all pair styles can be evaluated in a pairwise mode as required by\nthis compute. For example, 3-body and other many-body potentials, such\nas [Tersoff ](https://docs.lammps.org/pair_tersoff.html) and [Stillinger-Weber ](https://docs.lammps.org/pair_sw.html)\ncannot be used. [EAM ](https://docs.lammps.org/pair_eam.html) potentials only include the pair\npotential portion of the EAM interaction when used by this compute, not\nthe embedding term. Also bonded or Kspace interactions do not\ncontribute to this compute.\n\nThese computes are not compatible with accelerated pair styles from the\nGPU, INTEL, KOKKOS, or OPENMP packages. They will either create an error\nor print a warning when required data was not tallied in the required way\nand thus the data acquisition functions from these computes not called.\n\nWhen used with dynamic groups, a [run 0 ](https://docs.lammps.org/run.html) command needs to\nbe inserted in order to initialize the dynamic groups before accessing\nthe computes.\n", + "related": "* [compute group/group ](https://docs.lammps.org/compute_group_group.html)\n* [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html)\n" +}, +{ + "command": [ + "pair_style soft", + "pair_style soft/gpu", + "pair_style soft/kk", + "pair_style soft/omp" + ], + "syntax": [ + "pair_style soft cutoff" + ], + "args": [ + [ + { + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "pf/array", + "arg": "soft", "type": 3, "choices": [ - "pf/callback", - "pf/array" + "soft", + "soft/gpu", + "soft/kk", + "soft/omp" ] }, { - "arg": "args", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* external = style name of this fix command\n* mode = pf/callback or pf/array \n *        pf/callback args = Ncall Napply \n         Ncall = make callback every Ncall steps \n         Napply = apply callback forces every Napply steps \n *        pf/array args = Napply \n         Napply = apply array forces every Napply steps \n", - "examples": "\n```lmps\nfix 1 all external pf/callback 1 1\nfix 1 all external pf/callback 100 1\nfix 1 all external pf/array 10\n```\n", - "html_filename": "fix_external.html", - "short_description": "This fix allows external programs that are running LAMMPS through its\n[library interface ](https://docs.lammps.org/Howto_library.html) to modify certain LAMMPS\nproperties on specific timesteps, similar to the way other fixes do", - "description": "This fix allows external programs that are running LAMMPS through its\n[library interface ](https://docs.lammps.org/Howto_library.html) to modify certain LAMMPS\nproperties on specific timesteps, similar to the way other fixes do.\nThe external driver can be a [C/C++ or Fortran program ](https://docs.lammps.org/Howto_library.html) or a [Python script ](https://docs.lammps.org/Python_head.html).\n\n----------\n\nIf mode is *pf/callback* then the fix will make a callback every\n*Ncall* timesteps or minimization iterations to the external program.\nThe external program computes forces on atoms by setting values in an\narray owned by the fix. The fix then adds these forces to each atom\nin the group, once every *Napply* steps, similar to the way the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command works. Note that if *Ncall* >\n*Napply*, the force values produced by one callback will persist, and\nbe used multiple times to update atom forces.\n\nThe callback function \"foo\" is invoked by the fix as:\n\n```\nfoo(void *ptr, bigint timestep, int nlocal, tagint *ids, double **x, double **fexternal);\n```\nThe arguments are as follows:\n\n* *ptr* = pointer provided by and simply passed back to external driver\n* *timestep* = current LAMMPS timestep\n* *nlocal* = # of atoms on this processor\n* *ids* = list of atom IDs on this processor\n* *x* = coordinates of atoms on this processor\n* *fexternal* = forces to add to atoms on this processor\n\nNote that *timestep* is a \"bigint\" which is defined in src/lmptype.h,\ntypically as a 64-bit integer. And *ids* is a pointer to type \"tagint\"\nwhich is typically a 32-bit integer unless LAMMPS is compiled with\n-DLAMMPS_BIGBIG. For more info please see the :ref:`build settings\n` section of the manual. Finally, *fexternal* are the forces\nreturned by the driver program.\n\nThe fix has a set_callback() method which the external driver can call\nto pass a pointer to its foo() function. See the\ncouple/lammps_quest/lmpqst.cpp file in the LAMMPS distribution for an\nexample of how this is done. This sample application performs\nclassical MD using quantum forces computed by a density functional\ncode [Quest ](https://dft.sandia.gov/Quest).\n\n----------\n\nIf mode is *pf/array* then the fix simply stores force values in an\narray. The fix adds these forces to each atom in the group, once\nevery *Napply* steps, similar to the way the [fix addforce](https://docs.lammps.org/fix_addforce.html) command works.\n\nThe name of the public force array provided by the FixExternal\nclass is\n\n```\ndouble **fexternal;\n```\nIt is allocated by the FixExternal class as an (N,3) array where N is\nthe number of atoms owned by a processor. The 3 corresponds to the\nfx, fy, fz components of force.\n\nIt is up to the external program to set the values in this array to\nthe desired quantities, as often as desired. For example, the driver\nprogram might perform an MD run in stages of 1000 timesteps each. In\nbetween calls to the LAMMPS [run ](https://docs.lammps.org/run.html) command, it could retrieve\natom coordinates from LAMMPS, compute forces, set values in fexternal,\netc.\n\n----------\n\nTo use this fix during energy minimization, the energy corresponding\nto the added forces must also be set so as to be consistent with the\nadded forces. Otherwise the minimization will not converge correctly.\nCorrespondingly, the global virial needs to be updated to be use this\nfix with variable cell calculations (e.g. [fix box/relax ](https://docs.lammps.org/fix_box_relax.html)\nor [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThis can be done from the external driver by calling these public\nmethods of the FixExternal class:\n\n```\nvoid set_energy_global(double eng);\nvoid set_virial_global(double *virial);\n```\nwhere *eng* is the potential energy, and *virial* an array of the 6\nstress tensor components. Eng is an extensive quantity,\nmeaning it should be the sum over per-atom energies of all affected\natoms. It should also be provided in [energy units ](https://docs.lammps.org/units.html)\nconsistent with the simulation. See the details below for how to\nensure this energy setting is used appropriately in a minimization.\n\nAdditional public methods that the caller can use to update system\nproperties are:\n\n```\nvoid set_energy_peratom(double *eng);\nvoid set_virial_peratom(double **virial);\nvoid set_vector_length(int n);\nvoid set_vector(int idx, double val);\n```\nThese allow to set per-atom energy contributions, per-atom stress\ncontributions, the length and individual values of a global vector\nof properties that the caller code may want to communicate to LAMMPS\n(e.g. for use in [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) or in\n[equal-style variables ](https://docs.lammps.org/variable.html) or for\n[custom thermo output ](https://docs.lammps.org/thermo_style.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy set by the external driver to\nboth the global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or output\nby the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The default\nsetting for this fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\nNote that this energy may be a fictitious quantity but it is needed so\nthat the [minimize ](https://docs.lammps.org/minimize.html) command can include the forces\nadded by this fix in a consistent manner. I.e. there is a decrease in\npotential energy when atoms move in the direction of the added force.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the external program to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar stored by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", + "parameters": "* cutoff = global cutoff for soft interactions (distance units) \n", + "examples": "\n```lmps\npair_style soft 1.0\npair_coeff * * 10.0\npair_coeff 1 1 10.0 3.0\n\npair_style soft 1.0\npair_coeff * * 0.0\nvariable prefactor equal ramp(0,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n", + "html_filename": "pair_soft.html", + "short_description": "Style *soft* computes pairwise interactions with the formula\n\\[\n E = A \\left[ 1 + \\cos\\left(\\frac{\\pi r}{r_c}\\right) \\right]\n \\qquad r < r_c\\]\nIt is useful for pushing apart overlapping atoms, since it does not\nblow up as r goes to 0", + "description": "Style *soft* computes pairwise interactions with the formula\n\\[\n E = A \\left[ 1 + \\cos\\left(\\frac{\\pi r}{r_c}\\right) \\right]\n \\qquad r < r_c\\]\nIt is useful for pushing apart overlapping atoms, since it does not\nblow up as r goes to 0. A is a prefactor that can be made to vary in\ntime from the start to the end of the run (see discussion below),\ne.g. to start with a very soft potential and slowly harden the\ninteractions over time. \\(r_c\\) is the cutoff.\nSee the [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html) command for another way\nto push apart overlapping atoms.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global soft\ncutoff is used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The syntax for [pair_coeff ](https://docs.lammps.org/pair_coeff.html) with a single A\n > coeff is different in the current version of LAMMPS than in older\n > versions which took two values, Astart and Astop, to ramp between\n > them. This functionality is now available in a more general form\n > through the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command, as explained below.\n > Note that if you use an old input script and specify Astart and Astop\n > without a cutoff, then LAMMPS will interpret that as A and a cutoff,\n > which is probably not what you want. \n > \n\nThe [fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to vary A for one\nor more pair types over the course of a simulation, in which case\npair_coeff settings for A must still be specified, but will be\noverridden. For example these commands will vary the prefactor A for\nall pairwise interactions from 0.0 at the beginning to 30.0 at the end\nof a run:\n\n```lmps\nvariable prefactor equal ramp(0,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\nNote that a formula defined by an [equal-style variable ](https://docs.lammps.org/variable.html)\ncan use the current timestep, elapsed time in the current run, elapsed\ntime since the beginning of a series of runs, as well as access other\nvariables.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is always mixed via a\n*geometric* rule. The cutoff is mixed according to the pair_modify\nmix value. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the pair interaction goes to 0.0 at the cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", "restrictions": " none\n", - "related": "none\n" + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" }, { "command": [ - "fix msst" + "compute momentum" ], "syntax": [ - "fix ID group-ID msst dir shockvel keyword value ..." + "compute ID group-ID momentum" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -15241,92 +14575,117 @@ export const command_docs = [ "choices": [] }, { - "arg": "msst", + "arg": "momentum", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* momentum = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all momentum\n```\n", + "html_filename": "compute_momentum.html", + "short_description": "Define a computation that calculates the translational momentum *p*\nof a group of particles", + "description": "Define a computation that calculates the translational momentum *p*\nof a group of particles. It is computed as the sum\n\\(\\vec{p} = \\sum_i m_i \\cdot \\vec{v}_i\\)\nover all particles in the compute group, where *m* and *v* are\nthe mass and velocity vector of the particle, respectively.\n\n #### Output info\n\nThis compute calculates a global vector (the summed momentum) of\nlength 3. This value can be used by any command that uses a global\nvector value from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector value calculated by this compute is \"extensive\". The vector\nvalue will be in mass\\*velocity [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none" +}, +{ + "command": [ + "fix_modify AtC atomic_charge" + ], + "syntax": [ + "fix_modify atomic_charge" + ], + "args": [ + [ { - "arg": "z", - "type": 3, - "choices": [ - "x", - "y", - "z" - ] + "arg": "fix_modify", + "type": 1, + "choices": [] }, { - "arg": "shockvel", + "arg": "", "type": 2, "choices": [] }, { - "arg": "dftb", + "arg": "", "type": 3, "choices": [ - "q", - "mu", - "p0", - "v0", - "e0", - "tscale", - "beta", - "dftb" + "include", + "omit" ] }, { - "arg": "value", - "type": 2, + "arg": "atomic_charge", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* msst = style name of this fix\n* dir = x or y or z\n* shockvel = shock velocity (strictly positive, distance/time units)\n* zero or more keyword value pairs may be appended\n* keyword = q or mu or p0 or v0 or e0 or tscale or beta or dftb \n *        q value = cell mass-like parameter (mass\\^2/distance\\^4 units) \n *        mu value = artificial viscosity (mass/length/time units) \n *        p0 value = initial pressure in the shock equations (pressure units) \n *        v0 value = initial simulation cell volume in the shock equations (distance\\^3 units) \n *        e0 value = initial total energy (energy units) \n *        tscale value = reduction in initial temperature (unitless fraction between 0.0 and 1.0) \n *        dftb value = yes or no for whether using MSST in conjunction with DFTB+ \n *        beta value = scale factor for improved energy conservation \n", - "examples": "\n```lmps\nfix 1 all msst y 100.0 q 1.0e5 mu 1.0e5\nfix 2 all msst z 50.0 q 1.0e4 mu 1.0e4 v0 4.3419e+03 p0 3.7797e+03 e0 -9.72360e+02 tscale 0.01\nfix 1 all msst y 100.0 q 1.0e5 mu 1.0e5 dftb yes beta 0.5\n```\n", - "html_filename": "fix_msst.html", - "short_description": "This command performs the Multi-Scale Shock Technique (MSST)\nintegration to update positions and velocities each timestep to mimic\na compressive shock wave passing over the system", - "description": "This command performs the Multi-Scale Shock Technique (MSST)\nintegration to update positions and velocities each timestep to mimic\na compressive shock wave passing over the system. See **Reed**\nfor a detailed description of this method. The MSST varies the cell\nvolume and temperature in such a way as to restrain the system to the\nshock Hugoniot and the Rayleigh line. These restraints correspond to\nthe macroscopic conservation laws dictated by a shock\nfront. *shockvel* determines the steady shock velocity that will be\nsimulated.\n\nTo perform a simulation, choose a value of *q* that provides volume\ncompression on the timescale of 100 fs to 1 ps. If the volume is not\ncompressing, either the shock speed is chosen to be below the material\nsound speed or *p0* has been chosen inaccurately. Volume compression\nat the start can be sped up by using a non-zero value of *tscale* . Use\nthe smallest value of *tscale* that results in compression.\n\nUnder some special high-symmetry conditions, the pressure (volume)\nand/or temperature of the system may oscillate for many cycles even\nwith an appropriate choice of mass-like parameter *q* . Such\noscillations have physical significance in some cases. The optional\n*mu* keyword adds an artificial viscosity that helps break the system\nsymmetry to equilibrate to the shock Hugoniot and Rayleigh line more\nrapidly in such cases.\n\nThe keyword *tscale* is a factor between 0 and 1 that determines what\nfraction of thermal kinetic energy is converted to compressive strain\nkinetic energy at the start of the simulation. Setting this parameter\nto a non-zero value may assist in compression at the start of\nsimulations where it is slow to occur.\n\nIf keywords *e0*, *p0*,or *v0* are not supplied, these quantities will\nbe calculated on the first step, after the energy specified by\n*tscale* is removed. The value of *e0* is not used in the dynamical\nequations, but is used in calculating the deviation from the Hugoniot.\n\nThe keyword *beta* is a scaling term that can be added to the MSST\nionic equations of motion to account for drift in the conserved\nquantity during long timescale simulations, similar to a Berendsen\nthermostat. See **Reed** and **Goldman2** for more\ndetails. The value of *beta* must be between 0.0 and 1.0 inclusive.\nA value of 0.0 means no contribution, a value of 1.0 means a full\ncontribution.\n\nValues of shockvel less than a critical value determined by the\nmaterial response will not have compressive solutions. This will be\nreflected in lack of significant change of the volume in the MSST.\n\nFor all pressure styles, the simulation box stays orthogonal in shape.\nParrinello-Rahman boundary conditions (tilted box) are supported by\nLAMMPS, but are not implemented for MSST.\n\nThis fix computes a temperature and pressure and potential energy each\ntimestep. To do this, the fix creates its own computes of style \"temp\"\n\"pressure\", and \"pe\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_MSST_temp all temp\ncompute fix-ID_MSST_press all pressure fix-ID_MSST_temp\n\ncompute fix-ID_MSST_pe all pe\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the IDs of the\nnew computes are the fix-ID + \"_MSST_temp\" or \"MSST_press\" or\n\"_MSST_pe\". The group for the new computes is \"all\".\n\n----------\n\nThe *dftb* keyword is to allow this fix to be used when LAMMPS is\nbeing driven by DFTB+, a density-functional tight-binding code. If the\nkeyword *dftb* is used with a value of *yes*, then the MSST equations\nare altered to account for the electron entropy contribution to the\nHugonio relations and total energy. See **Reed2** and\n**Goldman2** for details on this contribution. In this case,\nyou must define a [fix external ](https://docs.lammps.org/fix_external.html) command in your\ninput script, which is used to callback to DFTB+ during the LAMMPS\ntimestepping. DFTB+ will communicate its info to LAMMPS via that fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of all internal variables to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThe progress of the MSST can be monitored by printing the global\nscalar and global vector quantities computed by the fix.\n\nAs mentioned above, the scalar is the cumulative energy change due to\nthe fix. By monitoring the thermodynamic *econserve* output, this can\nbe used to test if the MD timestep is sufficiently small for accurate\nintegration of the dynamic equations.\n\nThe global vector contains four values in the following order. The\nvector values output by this fix are \"intensive\".\n\n[\\ *dhugoniot*, *drayleigh*, *lagrangian_speed*,\n*lagrangian_position*]\n\n1. *dhugoniot* is the departure from the Hugoniot (temperature units).\n2. *drayleigh* is the departure from the Rayleigh line (pressure units).\n3. *lagrangian_speed* is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).\n4. *lagrangian_position* is the computational cell position in the reference frame moving at the shock speed. This is usually a good estimate of distance of the computational cell behind the shock front.\n\nTo print these quantities to the log file with descriptive column\nheaders, the following LAMMPS commands are suggested:\n\n```lmps\nfix msst all msst z\nvariable dhug equal f_msst[1]\nvariable dray equal f_msst[2]\nvariable lgr_vel equal f_msst[3]\nvariable lgr_pos equal f_msst[4]\nthermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst\n```\n\n**(Reed)** Reed, Fried, and Joannopoulos, Phys. Rev. Lett., 90, 235503\n(2003). \n \n**(Goldman2)** Goldman, Srinivasan, Hamel, Fried, Gaus, and Elstner,\nJ. Phys. Chem. C, 117, 7885 (2013). \n \n**(Reed2)** Reed, J. Phys. Chem. C, 116, 2205 (2012). \n ", - "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll cell dimensions must be periodic. This fix can not be used with a\ntriclinic cell. The MSST fix has been tested only for the group-ID\nall.\n", - "related": "[fix nphug ](https://docs.lammps.org/fix_nphug.html), [fix deform ](https://docs.lammps.org/fix_deform.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* include or omit = switch to activate/deactivate inclusion of intrinsic atomic charge in ATC\n* atomic_charge = name of the AtC sub-command \n", + "examples": "\n```lmps\nfix_modify AtC include atomic_charge\n```\n", + "html_filename": "atc_atomic_charge.html", + "short_description": "Determines whether AtC tracks the total charge as a finite element\nfield", + "description": "Determines whether AtC tracks the total charge as a finite element\nfield.\n", + "restrictions": "Required for: *electrostatics*\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "dihedral_style quadratic", - "dihedral_style quadratic/omp" + "fix heat" ], "syntax": [ - "dihedral_style quadratic" + "fix ID group-ID heat N eflux" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "quadratic", - "type": 3, - "choices": [ - "quadratic", - "quadratic/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "heat", + "type": 1, + "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "eflux", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style quadratic\ndihedral_coeff 100.0 80.0\n```\n", - "html_filename": "dihedral_quadratic.html", - "short_description": "The *quadratic* dihedral style uses the potential:\n\\[\n E = K (\\phi - \\phi_0)^2\\]\nThis dihedral potential can be used to keep a dihedral in a predefined\nvalue (cis=zero, right-hand convention is used)", - "description": "The *quadratic* dihedral style uses the potential:\n\\[\n E = K (\\phi - \\phi_0)^2\\]\nThis dihedral potential can be used to keep a dihedral in a predefined\nvalue (cis=zero, right-hand convention is used).\n\nThe following coefficients must be defined for each dihedral type via\nthe [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\phi_0\\) (degrees)\n\n\\(\\phi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* heat = style name of this fix command\n* N = add/subtract heat every this many timesteps\n* eflux = rate of heat addition or subtraction (energy/time units)\n* eflux can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", + "examples": "\n```lmps\nfix 3 qin heat 1 1.0\nfix 3 qin heat 10 v_flux\nfix 4 qout heat 1 -1.0 region top\n```\n", + "html_filename": "fix_heat.html", + "short_description": "Add non-translational kinetic energy (heat) to a group of atoms in a\nmanner that conserves their aggregate momentum", + "description": "Add non-translational kinetic energy (heat) to a group of atoms in a\nmanner that conserves their aggregate momentum. Two of these fixes\ncan be used to establish a temperature gradient across a simulation\ndomain by adding heat (energy) to one group of atoms (hot reservoir)\nand subtracting heat from another (cold reservoir). E.g. a simulation\nsampling from the McDLT ensemble.\n\nIf the *region* keyword is used, the atom must be in both the group\nand the specified geometric [region ](https://docs.lammps.org/region.html) in order to have\nenergy added or subtracted to it. If not specified, then the atoms in\nthe group are affected wherever they may move to.\n\nHeat addition/subtraction is performed every N timesteps.\n\nThe *eflux* parameter can be specified as a numeric constant or as an\nequal- or atom-style [variable ](https://docs.lammps.org/variable.html). If the value is a\nvariable, it should be specified as v_name, where *name* is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits current value(s) used to determine the flux.\n\nIf *eflux* is a numeric constant or equal-style variable which evaluates\nto a scalar value, then *eflux* determines the change in aggregate energy\nof the entire group of atoms per unit time, e.g. in eV/ps for\n[metal units ](https://docs.lammps.org/units.html). In this case it is an \"extensive\" quantity,\nmeaning its magnitude should be scaled with the number of atoms in the\ngroup. Note that since *eflux* also has per-time units (i.e. it is a\nflux), this means that a larger value of N will add/subtract a larger\namount of energy each time the fix is invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The heat-exchange (HEX) algorithm implemented by this fix is\n > known to exhibit a pronounced energy drift. An improved algorithm\n > (eHEX) is available as a [fix ehex ](https://docs.lammps.org/fix_ehex.html) command and might be\n > preferable if energy conservation is important. \n > \n\nIf *eflux* is specified as an atom-style variable (see below), then\nthe variable computes one value per atom. In this case, each value is\nthe energy flux for a single atom, again in units of energy per unit\ntime. In this case, each value is an \"intensive\" quantity, which need\nnot be scaled with the number of atoms in the group.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent flux.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent flux\nwith optional time-dependence as well.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If heat is subtracted from the system too aggressively so that\n > the group's kinetic energy would go to zero, or any individual atom's\n > kinetic energy would go to zero for the case where *eflux* is an\n > atom-style variable, then LAMMPS will halt with an error message. \n > \n\nFix heat is different from a thermostat such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) in that energy is\nadded/subtracted continually. Thus if there is not another mechanism\nin place to counterbalance this effect, the entire system will heat or\ncool continuously. You can use multiple heat fixes so that the net\nenergy change is 0.0 or use [fix viscous ](https://docs.lammps.org/fix_viscous.html) to drain\nenergy from the system.\n\nThis fix does not change the coordinates of its atoms; it only scales\ntheir velocities. Thus you must still use an integration fix\n(e.g. [fix nve ](https://docs.lammps.org/fix_nve.html)) on the affected atoms. This fix should\nnot normally be used on atoms that have their temperature controlled\nby another fix - e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). This scalar is the most recent\nvalue by which velocities were scaled. The scalar value calculated by\nthis fix is \"intensive\". If *eflux* is specified as an atom-style\nvariable, this fix computes the average value by which the velocities\nwere scaled for all of the atoms that had their velocities scaled.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix ehex ](https://docs.lammps.org/fix_ehex.html), [compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html)\n" }, { "command": [ - "fix eos/table" + "fix langevin/drude" ], "syntax": [ - "fix ID group-ID eos/table style file N keyword" + "fix ID group-ID langevin/drude Tcom damp_com seed_com Tdrude damp_drude seed_drude keyword values ..." ], "args": [ [ @@ -15346,22 +14705,37 @@ export const command_docs = [ "choices": [] }, { - "arg": "eos/table", + "arg": "langevin/drude", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "Tcom", "type": 2, "choices": [] }, { - "arg": "file", + "arg": "damp_com", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "seed_com", + "type": 2, + "choices": [] + }, + { + "arg": "Tdrude", + "type": 2, + "choices": [] + }, + { + "arg": "damp_drude", + "type": 2, + "choices": [] + }, + { + "arg": "seed_drude", "type": 2, "choices": [] }, @@ -15369,28 +14743,33 @@ export const command_docs = [ "arg": "keyword", "type": 2, "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* eos/table = style name of this fix command\n* style = linear = method of interpolation\n* file = filename containing the tabulated equation of state\n* N = use N values in linear tables\n* keyword = name of table keyword corresponding to table file \n", - "examples": "\n```lmps\nfix 1 all eos/table linear eos.table 100000 KEYWORD\n```\n", - "html_filename": "fix_eos_table.html", - "short_description": "Fix *eos/table* applies a tabulated mesoparticle equation of state to\nrelate the particle internal energy (u_i) to the particle internal\ntemperature (dpdTheta_i)", - "description": "Fix *eos/table* applies a tabulated mesoparticle equation of state to\nrelate the particle internal energy (u_i) to the particle internal\ntemperature (dpdTheta_i).\n\nFix *eos/table* creates interpolation tables of length *N* from\ninternal energy values listed in a file as a function of internal\ntemperature.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy values at each of *N* internal\ntemperatures, and vice versa. During a simulation, these tables are\nused to interpolate internal energy or temperature values as needed.\nThe interpolation is done with the *linear* style.\n\nFor the *linear* style, the internal temperature is used to find 2\nsurrounding table values from which an internal energy is computed by\nlinear interpolation, and vice versa.\n\nThe filename specifies a file containing tabulated internal\ntemperature and internal energy values. The keyword specifies a\nsection of the file. The format of this file is described below.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# EOS TABLE (one or more comment or blank lines)\n\nKEYWORD (keyword is first text on line)\nN 500 (N parameter)\n(blank)\n1 1.00 0.000 (index, internal temperature, internal energy)\n2 1.02 0.001\n...\n500 10.0 0.500\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the fix command.\n\nThe next line lists the number of table entries. The parameter \"N\" is\nrequired and its value is the number of table entries that follow.\nNote that this may be different than the *N* specified in the [fix eos/table ](https://docs.lammps.org/fix_eos_table.html) command. Let Ntable = *N* in the fix\ncommand, and Nfile = \"N\" in the tabulated file. What LAMMPS does is a\npreliminary interpolation by creating splines using the Nfile\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and temperature values at Ntable different\npoints. The resulting tables of length Ntable are then used as\ndescribed above, when computing energy and temperature relationships.\nThis means that if you want the interpolation tables of length Ntable\nto match exactly what is in the tabulated file (with effectively no\npreliminary interpolation), you should set Ntable = Nfile.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe internal temperature (in temperature units), the third value is the\ninternal energy (in energy units).\n\nNote that the internal temperature and internal energy values must\nincrease from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThe equation of state must be a monotonically increasing function.\n\nAn error will occur if the internal temperature or internal energies\nare not within the table cutoffs.\n", - "related": "[fix shardlow ](https://docs.lammps.org/fix_shardlow.html), [pair dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/drude = style name of this fix command\n* Tcom = desired temperature of the centers of mass (temperature units)\n* damp_com = damping parameter for the thermostat on centers of mass (time units)\n* seed_com = random number seed to use for white noise of the thermostat on centers of mass (positive integer)\n* Tdrude = desired temperature of the Drude oscillators (temperature units)\n* damp_drude = damping parameter for the thermostat on Drude oscillators (time units)\n* seed_drude = random number seed to use for white noise of the thermostat on Drude oscillators (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = zero \n *        zero value = no or yes \n         no = do not set total random force on centers of mass to zero \n         yes = set total random force on centers of mass to zero \n", + "examples": "\n```lmps\nfix 3 all langevin/drude 300.0 100.0 19377 1.0 20.0 83451\nfix 1 all langevin/drude 298.15 100.0 19377 5.0 10.0 83451 zero yes\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "fix_langevin_drude.html", + "short_description": "Apply two Langevin thermostats as described in **Jiang1** for\nthermalizing the reduced degrees of freedom of Drude oscillators", + "description": "Apply two Langevin thermostats as described in **Jiang1** for\nthermalizing the reduced degrees of freedom of Drude oscillators.\nThis link describes how to use the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html) in LAMMPS and polarizable models in LAMMPS\nare discussed on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc\npage.\n\nDrude oscillators are a way to simulate polarizables atoms, by\nsplitting them into a core and a Drude particle bound by a harmonic\nbond. The thermalization works by transforming the particles degrees\nof freedom by these equations. In these equations upper case denotes\natomic or center of mass values and lower case denotes Drude particle\nor dipole values. Primes denote the transformed (reduced) values,\nwhile bare letters denote the original values.\n\nVelocities:\n\\[\n V' = \\frac {M\\, V + m\\, v} {M'}\\]\n\\[\n v' = v - V\\]\nMasses:\n\\[\n M' = M + m\\]\n\\[\n m' = \\frac {M\\, m } {M'}\\]\nThe Langevin forces are computed as\n\\[\n F' = - \\frac {M'} {\\mathtt{damp_com}}\\, V' + F_r'\\]\n\\[\n f' = - \\frac {m'} {\\mathtt{damp_drude}}\\, v' + f_r'\\]\n\\(F_r'\\) is a random force proportional to\n\\(\\sqrt { \\frac {2\\, k_B \\mathtt{Tcom}\\, m'} {\\mathrm dt\\, \\mathtt{damp_com} } }\\).\n\\(f_r'\\) is a random force proportional to\n\\(\\sqrt { \\frac {2\\, k_B \\mathtt{Tdrude}\\, m'} {\\mathrm dt\\, \\mathtt{damp_drude} } }\\).\nThen the real forces acting on the particles are computed from the inverse\ntransform:\n\\[\n F = \\frac M {M'}\\, F' - f'\\]\n\\[\n f = \\frac m {M'}\\, F' + f'\\]\nThis fix also thermostats non-polarizable atoms in the group at\ntemperature *Tcom*, as if they had a massless Drude partner. The\nDrude particles themselves need not be in the group. The center of\nmass and the dipole are thermostatted iff the core atom is in the\ngroup.\n\nNote that the thermostat effect of this fix is applied to only the\ntranslational degrees of freedom of the particles, which is an\nimportant consideration if finite-size particles, which have\nrotational degrees of freedom, are being thermostatted. The\ntranslational degrees of freedom can also have a bias velocity removed\nfrom them before thermostatting takes place; see the description below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Like the [fix langevin ](https://docs.lammps.org/fix_langevin.html) command, this fix does\n > NOT perform time integration. It only modifies forces to effect\n > thermostatting. Thus you must use a separate time integration fix, like\n > [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) to actually update the\n > velocities and positions of atoms using the modified forces.\n > Likewise, this fix should not normally be used on atoms that also have\n > their temperature controlled by another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThis fix requires each atom know whether it is a Drude particle or\nnot. You must therefore use the [fix drude ](https://docs.lammps.org/fix_drude.html) command to\nspecify the Drude status of each atom type.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >only the Drude core atoms need to be in the group specified for\n > this fix. A Drude electron will be transformed together with its cores\n > even if it is not itself in the group. It is safe to include Drude\n > electrons or non-polarizable atoms in the group. The non-polarizable\n > atoms will simply be thermostatted as if they had a massless Drude\n > partner (electron). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Ghost atoms need to know their velocity for this fix to act\n > correctly. You must use the [comm_modify ](https://docs.lammps.org/comm_modify.html) command to\n > enable this, e.g. \n > \n\n\n```lmps\ncomm_modify vel yes\n```\n----------\n\n*Tcom* is the target temperature of the centers of mass, which would\nbe used to thermostat the non-polarizable atoms. *Tdrude* is the\n(normally low) target temperature of the core-Drude particle pairs\n(dipoles). *Tcom* and *Tdrude* can be specified as an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case,\nthe variable will be evaluated each timestep, and its value used to\ndetermine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nNote: The temperature thermostatting the core-Drude particle pairs\nshould be chosen low enough, so as to mimic as closely as possible the\nself-consistent minimization. It must however be high enough, so that\nthe dipoles can follow the local electric field exerted by the\nneighboring atoms. The optimal value probably depends on the\ntemperature of the centers of mass and on the mass of the Drude\nparticles.\n\n*damp_com* is the characteristic time for reaching thermal equilibrium\nof the centers of mass. For example, a value of 100.0 means to relax\nthe temperature of the centers of mass in a timespan of (roughly) 100\ntime units (tau or fs or ps - see the [units ](https://docs.lammps.org/units.html)\ncommand). *damp_drude* is the characteristic time for reaching\nthermal equilibrium of the dipoles. It is typically a few timesteps.\n\nThe number *seed_com* and *seed_drude* are positive integers. They set\nthe seeds of the Marsaglia random number generators used for\ngenerating the random forces on centers of mass and on the\ndipoles. Each processor uses the input seed to generate its own unique\nseed and its own stream of random numbers. Thus the dynamics of the\nsystem will not be identical on two runs on different numbers of\nprocessors.\n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat on centers of mass. Because the random forces on different\ncenters of mass are independent, they do not sum exactly to zero. As\na result, this fix applies a small random force to the entire system,\nand the momentum of the total center of mass of the system undergoes a\nslow random walk. If the keyword *zero* is set to *yes*, the total\nrandom force on the centers of mass is set exactly to zero by\nsubtracting off an equal part of it from each center of mass in the\ngroup. As a result, the total center of mass of a system with zero\ninitial momentum will not drift over time.\n\nThe actual temperatures of cores and Drude particles, in\ncenter-of-mass and relative coordinates, respectively, can be\ncalculated using the [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\ncommand.\n\n----------\n\nUsage example for rigid bodies in the NPT ensemble:\n\n```lmps\ncomm_modify vel yes\nfix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes\nfix NPH ATOMS rigid/nph/small molecule iso 1. 1. 500.\nfix NVE DRUDES nve\ncompute TDRUDE all temp/drude\nthermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]\n```\nComments:\n\n* Drude particles should not be in the rigid group, otherwise the Drude\n oscillators will be frozen and the system will lose its\n polarizability.\n* *zero yes* avoids a drift of the center of mass of\n the system, but is a bit slower.\n* Use two different random seeds to avoid unphysical correlations.\n* Temperature is controlled by the fix *langevin/drude*, so the\n time-integration fixes do not thermostat. Don't forget to\n time-integrate both cores and Drude particles.\n* Pressure is time-integrated only once by using *nve* for Drude\n particles and *nph* for atoms/cores (or vice versa). Do not use *nph*\n for both.\n* The temperatures of cores and Drude particles are calculated by\n [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n* Contrary to the alternative thermostatting using Nose-Hoover thermostat\n fix *npt* and [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), the\n *fix_modify* command is not required here, because the fix *nph*\n computes the global pressure even if its group is *ATOMS* . This is\n what we want. If we thermostatted *ATOMS* using *npt*, the pressure\n should be the global one, but the temperature should be only that of\n the cores. That's why the command *fix_modify* should be called in\n that case.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by the\ncompute should include the group of this fix and the Drude particles.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Jiang1)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux, J\nPhys Chem Lett, 2, 87-92 (2011). \n ", + "restrictions": " none\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix drude ](https://docs.lammps.org/fix_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" }, { "command": [ - "compute temp/cs" + "fix heat/flow" ], "syntax": [ - "compute ID group-ID temp/cs group1 group2" + "fix ID group-ID heat/flow style values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -15405,132 +14784,167 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/cs", + "arg": "heat/flow", "type": 1, "choices": [] }, { - "arg": "group1", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "group2", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/cs = style name of this compute command\n* group1 = group-ID of either cores or shells\n* group2 = group-ID of either shells or cores \n", - "examples": "\n```lmps\ncompute oxygen_c-s all temp/cs O_core O_shell\ncompute core_shells all temp/cs cores shells\n```\n", - "html_filename": "compute_temp_cs.html", - "short_description": "Define a computation that calculates the temperature of a system based\non the center-of-mass velocity of atom pairs that are bonded to each\nother", - "description": "Define a computation that calculates the temperature of a system based\non the center-of-mass velocity of atom pairs that are bonded to each\nother. This compute is designed to be used with the adiabatic\ncore/shell model of **MitchellFincham1**.\nSee the [Howto coreshell ](https://docs.lammps.org/Howto_coreshell.html) page for an overview of\nthe model as implemented in LAMMPS. Specifically, this compute enables\ncorrect temperature calculation and thermostatting of core/shell pairs\nwhere it is desirable for the internal degrees of freedom of the\ncore/shell pairs to not be influenced by a thermostat. A compute of\nthis style can be used by any command that computes a temperature via\n[fix_modify ](https://docs.lammps.org/fix_modify.html) (e.g., [fix temp/rescale](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nNote that this compute does not require all ions to be polarized, hence\ndefined as core/shell pairs. One can mix core/shell pairs and ions\nwithout a satellite particle if desired. The compute will consider the\nnon-polarized ions according to the physical system.\n\nFor this compute, core and shell particles are specified by two\nrespective group IDs, which can be defined using the [group](https://docs.lammps.org/group.html) command. The number of atoms in the two groups must be the\nsame and there should be one bond defined between a pair of atoms in the\ntwo groups. Non-polarized ions which might also be included in the\ntreated system should not be included into either of these groups, they\nare taken into account by the *group-ID* (second argument) of the\ncompute.\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the\nsimulation, \\(N\\) is the number of atoms in the group, \\(k_B\\)\nis the Boltzmann constant, and \\(T\\) is the absolute temperature.\nNote that the velocity of each core or shell atom used in the KE\ncalculation is the velocity of the center-of-mass (COM) of the\ncore/shell pair the atom is part of.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for the\ncomponents of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe change this fix makes to core/shell atom velocities is essentially\ncomputing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. This \"bias\" is the velocity of the atom relative\nto the center-of-mass velocity of the core/shell pair. If this compute\nis used with a fix command that performs thermostatting then this bias\nwill be subtracted from each atom, thermostatting of the remaining\ncenter-of-mass velocity will be performed, and the bias will be added\nback in. This means the thermostatting will effectively be performed on\nthe core/shell pairs, instead of on the individual core and shell atoms.\nThermostatting fixes that work in this way include [fix nvt](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fixtemp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and [fix langevin](https://docs.lammps.org/fix_langevin.html).\n\nThe internal energy of core/shell pairs can be calculated by the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command, if chunks are\ndefined as core/shell pairs. See the [Howto coreshell](https://docs.lammps.org/Howto_coreshell.html) doc page for more discussion on how to do this.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by indices\n1--6. These values can be used by any command that uses global scalar\nor vector values from a compute as input.\n\nThe scalar value calculated by this compute is \"intensive\". The vector\nvalues are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n\n**(MitchellFincham1)** Mitchell, Fincham, J Phys Condensed Matter,\n5, 1031-1038 (1993). \n ", - "restrictions": "The number of core/shell pairs contributing to the temperature is\nassumed to be constant for the duration of the run. No fixes should\nbe used which generate new molecules or atoms during a simulation.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* heat/flow = style name of this fix command\n* one style with corresponding value(s) needs to be listed \n *      style = constant or type \n       constant = cp \n       cp = value of specifc heat (energy/(mass * temperature) units) \n       type = cp1 ... cpN \n       cpN = value of specifc heat for type N (energy/(mass * temperature) units) \n* \n", + "examples": "\n```lmps\nfix 1 all heat/flow constant 1.0\nfix 1 all heat/flow type 1.0 0.5\n```\n", + "html_filename": "fix_heat_flow.html", + "short_description": "Perform plain time integration to update temperature for atoms in the\ngroup each timestep", + "description": "Perform plain time integration to update temperature for atoms in the\ngroup each timestep. The specific heat of atoms can be defined using either\nthe *constant* or *type* keywords. For style *constant*, the specific heat\nis a constant value *cp* for all atoms. For style *type*, *N* different values\nof the specific heat are defined, one for each of the *N* types of atoms.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo global or per-atom quantities are stored by this fix for access by various\n[output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is\nnot invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix requires that atoms store temperature and heat flow\nas defined by the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\n", + "related": "[pair granular ](https://docs.lammps.org/pair_granular.html), [fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" }, { "command": [ - "fix_modify AtC mass_matrix" + "compute born/matrix" ], "syntax": [ - "fix_modify mass_matrix " + "compute ID group-ID born/matrix keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mass_matrix", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "born/matrix", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "fe", - "md_fe" - ] + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mass_matrix = name of the AtC sub-command\n* fe or md_fe = activate/deactivate using the FE mass matrix in the MD region \n", - "examples": "\n```lmps\nfix_modify AtC mass_matrix fe\n```\n", - "html_filename": "atc_mass_matrix.html", - "short_description": "Determines whether AtC uses the FE mass matrix based on Gaussian\nquadrature or based on atomic quadrature in the MD region", - "description": "Determines whether AtC uses the FE mass matrix based on Gaussian\nquadrature or based on atomic quadrature in the MD region. This is\nuseful for fully overlapping simulations to improve efficiency.\n", - "restrictions": "Should not be used unless the FE region is contained within the MD\nregion, otherwise the method will be unstable and inaccurate.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* born/matrix = style name of this compute command\n* zero or more keywords or keyword/value pairs may be appended \n *      keyword = numdiff or pair or bond or angle or dihedral or improper \n       numdiff values = delta virial-ID \n       delta = magnitude of strain (dimensionless) \n       virial-ID = ID of pressure compute for virial (string) \n       (numdiff cannot be used with any other keyword) \n       pair = compute pair-wise contributions \n       bond = compute bonding contributions \n       angle = compute angle contributions \n       dihedral = compute dihedral contributions \n       improper = compute improper contributions \n", + "examples": "\n```lmps\ncompute 1 all born/matrix\ncompute 1 all born/matrix bond angle\ncompute 1 all born/matrix numdiff 1.0e-4 myvirial\n```\n", + "html_filename": "compute_born_matrix.html", + "short_description": "\nDefine a compute that calculates\n\\(\\frac{\\partial{}^2U}{\\partial\\varepsilon_{i}\\partial\\varepsilon_{j}},\\) the\nsecond derivatives of the potential energy \\(U\\) with respect to the strain\ntensor \\(\\varepsilon\\) elements", + "description": "\nDefine a compute that calculates\n\\(\\frac{\\partial{}^2U}{\\partial\\varepsilon_{i}\\partial\\varepsilon_{j}},\\) the\nsecond derivatives of the potential energy \\(U\\) with respect to the strain\ntensor \\(\\varepsilon\\) elements. These values are related to:\n\\[\n C^{B}_{i,j}=\\frac{1}{V}\\frac{\\partial{}^2U}{\\partial{}\\varepsilon_{i}\\partial\\varepsilon_{j}}\\]\nalso called the Born term of elastic constants in the stress-stress fluctuation\nformalism. This quantity can be used to compute the elastic constant tensor.\nUsing the symmetric Voigt notation, the elastic constant tensor can be written\nas a 6x6 symmetric matrix:\n\\[\n C_{i,j} = \\langle{}C^{B}_{i,j}\\rangle\n + \\frac{V}{k_{B}T}\\left(\\langle\\sigma_{i}\\sigma_{j}\\rangle\\right.\n \\left.- \\langle\\sigma_{i}\\rangle\\langle\\sigma_{j}\\rangle\\right)\n + \\frac{Nk_{B}T}{V}\n \\left(\\delta_{i,j}+(\\delta_{1,i}+\\delta_{2,i}+\\delta_{3,i})\\right.\n \\left.*(\\delta_{1,j}+\\delta_{2,j}+\\delta_{3,j})\\right)\\]\nIn the above expression, \\(\\sigma\\) stands for the virial stress\ntensor, \\(\\delta\\) is the Kronecker delta and the usual notation apply for\nthe number of particle, the temperature and volume respectively \\(N\\),\n\\(T\\) and \\(V\\). \\(k_{B}\\) is the Boltzmann constant.\n\nThe Born term is a symmetric 6x6 matrix, as is the matrix of second derivatives\nof potential energy w.r.t strain,\nwhose 21 independent elements are output in this order:\n\\[\\begin{align*} \n \\begin{bmatrix}\n C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\\\\n C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\\\\n \\vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\\\\n \\vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\\\\n \\vdots & \\vdots & \\vdots & C_{19} & C_{5} & C_{21} \\\\\n \\vdots & \\vdots & \\vdots & \\vdots & C_{21} & C_{6}\n \\end{bmatrix} \\end{align*} \\]\nin this matrix the indices of \\(C_{k}\\) value are the corresponding element\n\\(k\\) in the global vector output by this compute. Each term comes from the sum\nof the derivatives of every contribution to the potential energy\nin the system as explained in **VanWorkum**.\n\nThe output can be accessed using usual Lammps routines:\n\n```lmps\ncompute 1 all born/matrix\ncompute 2 all pressure NULL virial\nvariable S1 equal -c_2[1]\nvariable S2 equal -c_2[2]\nvariable S3 equal -c_2[3]\nvariable S4 equal -c_2[4]\nvariable S5 equal -c_2[5]\nvariable S6 equal -c_2[6]\nfix 1 all ave/time 1 1 1 v_S1 v_S2 v_S3 v_S4 v_S5 v_S6 c_1[*] file born.out\n```\nIn this example, the file *born.out* will contain the information needed to\ncompute the first and second terms of the elastic constant matrix in a post\nprocessing procedure. The other required quantities can be accessed using any\nother *LAMMPS* usual method. Several examples of this method are\nprovided in the examples/ELASTIC_T/BORN_MATRIX directory\ndescribed on the [Examples ](https://docs.lammps.org/Examples.html) doc page.\n\nNOTE: In the above \\(C_{i,j}\\) computation, the fluctuation\nterm involving the virial stress tensor \\(\\sigma\\) is the\ncovariance between each elements. In a\nsolid the stress fluctuations can vary rapidly, while average\nfluctuations can be slow to converge.\nA detailed analysis of the convergence rate of all the terms in\nthe elastic tensor\nis provided in the paper by Clavier et al. **Clavier2**.\n\nTwo different computation methods for the Born matrix are implemented in this\ncompute and are mutually exclusive.\n\nThe first one is a direct computation from the analytical formula from the\ndifferent terms of the potential used for the simulations **VanWorkum**. However, the implementation of such derivations must be done\nfor every potential form. This has not been done yet and can be very\ncomplicated for complex potentials. At the moment a warning message is\ndisplayed for every term that is not supporting the compute at the moment.\nThis method is the default for now.\n\nThe second method uses finite differences of energy to numerically approximate\nthe second derivatives **Zhen**. This is useful when using\ninteraction styles for which the analytical second derivatives have not been\nimplemented. In this cases, the compute applies linear strain fields of\nmagnitude *delta* to all the atoms relative to a point at the center of the\nbox. The strain fields are in six different directions, corresponding to the\nsix Cartesian components of the stress tensor defined by LAMMPS. For each\ndirection it applies the strain field in both the positive and negative senses,\nand the new stress virial tensor of the entire system is calculated after each.\nThe difference in these two virials divided by two times *delta*, approximates\nthe corresponding components of the second derivative, after applying a\nsuitable unit conversion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > strains that are used to generate finite difference\n > approximations to the exact virial stress. For typical systems, a value in\n > the range of 1 part in 1e5 to 1e6 will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output values will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output values will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical virial values should be largely\n > independent of delta. \n > \n\nThe keyword requires the additional arguments *delta* and *virial-ID*.\n*delta* gives the size of the applied strains. *virial-ID* gives\nthe ID string of the pressure compute that provides the virial stress tensor,\nrequiring that it use the virial keyword e.g.\n\n```lmps\ncompute myvirial all pressure NULL virial\ncompute 1 all born/matrix numdiff 1.0e-4 myvirial\n```\n**Output info:**\n\nThis compute calculates a global vector with 21 values that are\nthe second derivatives of the potential energy with respect to strain.\nThe values are in energy units.\nThe values are ordered as explained above. These values can be used\nby any command that uses global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) doc page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"extensive\".\n\n**(VanWorkum)** K. Van Workum et al., J. Chem. Phys. 125 144506 (2006) \n \n**(Clavier2)** G. Clavier, N. Desbiens, E. Bourasseau, V. Lachet, N. Brusselle-Dupend and B. Rousseau, Mol Sim, 43, 1413 (2017). \n \n**(Zhen)** Y. Zhen, C. Chu, Computer Physics Communications 183(2012)261-265 \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info. LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe Born term can be decomposed as a product of two terms. The first one is a\ngeneral term which depends on the configuration. The second one is specific to\nevery interaction composing your force field (non-bonded, bonds, angle, ...).\nCurrently not all LAMMPS interaction styles implement the *born_matrix* method\ngiving first and second order derivatives and LAMMPS will exit with an error if\nthis compute is used with such interactions unless the *numdiff* option is\nalso used. The *numdiff* option cannot be used with any other keyword. In this\nsituation, LAMMPS will also exit with an error.\n", + "related": "none" }, { "command": [ - "fix_modify AtC output nodeset" + "angle_style table", + "angle_style table/omp" ], "syntax": [ - "fix_modify output nodeset " + "angle_style table style N" ], "args": [ [ { - "arg": "fix_modify", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "table", + "type": 3, + "choices": [ + "table", + "table/omp" + ] + }, + { + "arg": "style", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "N", + "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = linear or spline = method of interpolation\n* N = use N values in table \n", + "examples": "\n```lmps\nangle_style table linear 1000\nangle_coeff 3 file.table ENTRY1\n```\n", + "html_filename": "angle_table.html", + "short_description": "Style *table* creates interpolation tables of length *N* from angle\npotential and derivative values listed in a file(s) as a function of\nangle The files are read by the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand", + "description": "Style *table* creates interpolation tables of length *N* from angle\npotential and derivative values listed in a file(s) as a function of\nangle The files are read by the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and derivative values at each of\n*N* angles. During a simulation, these tables are used to interpolate\nenergy and force values on individual atoms as needed. The\ninterpolation is done in one of 2 styles: *linear* or *spline* .\n\nFor the *linear* style, the angle is used to find 2 surrounding table\nvalues from which an energy or its derivative is computed by linear\ninterpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The angle is used to\nfind the appropriate set of coefficients which are used to evaluate a\ncubic polynomial which computes the energy or derivative.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and\nderivative values. The keyword specifies a section of the file. The\nformat of this file is described below.\n\n----------\n\nSuitable tables for use with this angle style can be created by LAMMPS\nitself from existing angle styles using the [angle_write](https://docs.lammps.org/angle_write.html) command. This can be useful to have a template file for\ntesting the angle style settings and to build a compatible custom file.\nAnother option to generate tables is the Python code in the\n``tools/tabulate`` folder of the LAMMPS source code distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Angle potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 181 FP 0 0 EQ 90.0 (N, FP, EQ parameters)\n(blank line)\n1 0.0 200.5 2.5 (index, angle, energy, derivative)\n2 1.0 198.0 2.5\n...\n181 180.0 0.0 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command. The next line lists (in any\norder) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [angle_style table ](https://docs.lammps.org/angle_style.html) command. Let\nNtable = *N* in the angle_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and derivative\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual angles and their atoms. This means that if you\nwant the interpolation tables of length Ntable to match exactly what\nis in the tabulated file (with effectively no preliminary\ninterpolation), you should set Ntable = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the second derivatives at the innermost and\noutermost angle settings. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they\nare estimated (less accurately) by the first two and last two\nderivative values in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium angle value, which is used, for example, by the [fix shake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium angle is\nset to 180.0.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe angle value (in degrees), the third value is the energy (in energy\nunits), and the fourth is -dE/d(theta) (also in energy units). The third\nterm is the energy of the 3-atom configuration for the specified\nangle. The last term is the derivative of the energy with respect to\nthe angle (in degrees, not radians). Thus the units of the last term\nare still energy, not force. The angle values must increase from one\nline to the next. The angle values must also begin with 0.0 and end\nwith 180.0, i.e. span the full range of possible angles.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis angle style writes the settings for the \"angle_style table\"\ncommand to [binary restart files ](https://docs.lammps.org/restart.html), so a angle_style\ncommand does not need to specified in an input script that reads a\nrestart file. However, the coefficient information is not stored in\nthe restart file, since it is tabulated in the potential files. Thus,\nangle_coeff commands do need to be specified in the restart input\nscript.\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_write ](https://docs.lammps.org/angle_write.html)\n" +}, +{ + "command": [ + "improper_style zero" + ], + "syntax": [ + "improper_style zero [nocoeff]" + ], + "args": [ + [ { - "arg": "nodeset", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, + "arg": "zero", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "[nocoeff]", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output nodeset = name of the AtC sub-command\n* nodeset_name= name of nodeset to be operated on\n* operation = sum\n\n * sum = creates nodal sum over nodes in specified nodeset \n", - "examples": "\n```lmps\nfix_modify AtC output nodeset nset1 sum\n```\n", - "html_filename": "atc_output_nodeset.html", - "short_description": "Performs operation over the nodes belonging to specified nodeset and\noutputs resulting variable values to GLOBALS file", - "description": "Performs operation over the nodes belonging to specified nodeset and\noutputs resulting variable values to GLOBALS file.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style zero\nimproper_style zero nocoeff\nimproper_coeff *\n```\n", + "html_filename": "improper_zero.html", + "short_description": "Using an improper style of zero means improper forces and energies are\nnot computed, but the geometry of improper quadruplets is still\naccessible to other commands", + "description": "Using an improper style of zero means improper forces and energies are\nnot computed, but the geometry of improper quadruplets is still\naccessible to other commands.\n\nAs an example, the [compute improper/local ](https://docs.lammps.org/compute_improper_local.html) command can be used to\ncompute the chi values for the list of quadruplets of improper atoms\nlisted in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no improper style is defined, this command cannot be\nused.\n\nThe optional *nocoeff* flag allows to read data files with a ImproperCoeff\nsection for any improper style. Similarly, any improper_coeff commands\nwill only be checked for the improper type number and the rest ignored.\n\nNote that the [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command must be\nused for all improper types, though no additional values are\nspecified.\n", + "restrictions": " none\n", + "related": "none\n\n\n[improper_style none ](https://docs.lammps.org/improper_none.html)\n" }, { "command": [ - "fix nve/body" + "compute smd/internal/energy" ], "syntax": [ - "fix ID group-ID nve/body" + "compute ID group-ID smd/internal/energy" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -15545,26 +14959,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/body", + "arg": "smd/internal/energy", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/body = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/body\n```\n", - "html_filename": "fix_nve_body.html", - "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for body particles in the group each\ntimestep", - "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for body particles in the group each\ntimestep. V is volume; E is energy. This creates a system trajectory\nconsistent with the microcanonical ensemble. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nparticles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be body particles. They cannot be\npoint particles.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/smd/internal/energy = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/internal/energy\n```\n", + "html_filename": "compute_smd_internal_energy.html", + "short_description": "Define a computation which outputs the per-particle enthalpy, i.e.,\nthe sum of potential energy and heat", + "description": "Define a computation which outputs the per-particle enthalpy, i.e.,\nthe sum of potential energy and heat.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output Info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will be given in [units ](https://docs.lammps.org/units.html) of energy.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", + "related": "none\n" }, { "command": [ - "pair_style lj/cut/sphere" + "pair_style rann" ], "syntax": [ - "pair_style style args" + "pair_style rann" ], "args": [ [ @@ -15574,36 +14988,66 @@ export const command_docs = [ "choices": [] }, { - "arg": "style", - "type": 2, + "arg": "rann", + "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "", + "examples": "\n```lmps\npair_style rann\npair_coeff * * Mg.rann Mg\npair_coeff * * MgAlalloy.rann Mg Mg Al Mg\n```\n", + "html_filename": "pair_rann.html", + "short_description": "Pair style *rann* computes pairwise interactions for a variety of\nmaterials using rapid atomistic neural network (RANN) potentials\n(**Dickel** , **Nitol**)", + "description": "Pair style *rann* computes pairwise interactions for a variety of\nmaterials using rapid atomistic neural network (RANN) potentials\n(**Dickel** , **Nitol**). Neural network\npotentials work by first generating a series of symmetry functions\ni.e. structural fingerprints from the neighbor list and then using these\nvalues as the input layer of a neural network. There is a single output\nneuron in the final layer which is the energy. Atomic forces are found\nby analytical derivatives computed via back-propagation. For alloy\nsystems, each element has a unique network.\n\n #### Potential file syntax\n\nThe RANN potential is defined by a single text file which contains all\nthe fitting parameters for the alloy system. The potential file also\ndefines the active fingerprints, network architecture, activation\nfunctions, etc. The potential file is divided into several sections\nwhich are identified by one of the following keywords:\n\n* atomtypes\n* mass\n* fingerprintsperelement\n* fingerprints\n* fingerprintconstants\n* screening (optional)\n* networklayers\n* layersize\n* weight\n* bias\n* activationfunctions\n* calibrationparameters (ignored)\n\nThe '#' character is treated as a comment marker, similar to LAMMPS\ninput scripts. Sections are not required to follow a rigid ordering,\nbut do require previous definition of prerequisite information. E.g.,\nfingerprintconstants for a particular fingerprint must follow the\nfingerprints definition; layersize for a particular layer must follow\nthe declaration of network layers.\n\n*atomtypes* are defined as follows using element keywords separated by spaces.\n\n```\natomtypes:\nFe Mg Al etc.\n```\n*mass* must be specified for each element keyword as follows:\n\n```\nmass:Mg:\n24.305\nmass:Fe:\n55.847\nmass:Al:\n26.982\n```\n*fingerprintsperelement* specifies how many fingerprints are active for\ncomputing the energy of a given atom. This number must be specified for\neach element keyword. Active elements for each fingerprint depend upon\nthe type of the central atom and the neighboring atoms. Pairwise\nfingerprints may be defined for a Mg atom based exclusively on its Al\nneighbors, for example. Bond fingerprints may use two neighbor lists of\ndifferent element types. In computing fingerprintsperelement from all\ndefined fingerprints, only the fingerprints defined for atoms of a\nparticular element should be considered, regardless of the elements used\nin its neighbor list. In the following code, for example, some\nfingerprints may compute pairwise fingerprints summing contributions\nabout Fe atoms based on a neighbor list of exclusively Al atoms, but if\nthere are no fingerprints summing contributions of all neighbors about a\ncentral Al atom, then fingerprintsperelement of Al is zero:\n\n```\nfingerprintsperelement:Mg:\n5\nfingerprintsperelement:Fe:\n2\nfingerprintsperelement:Al:\n0\n```\n*fingerprints* specifies the active fingerprints for a certain element\ncombination. Pair fingerprints are specified for two elements, while\nbond fingerprints are specified for three elements. Only one\nfingerprints header should be used for an individual combination of\nelements. The ordering of the fingerprints in the network input layer\nis determined by the order of element combinations specified by\nsubsequent *fingerprints* lines, and the order of the fingerprints\ndefined for each element combination. Multiple fingerprints of the same\nstyle or different ones may be specified. If the same style and element\ncombination is used for multiple fingerprints, they should have\ndifferent id numbers. The first element specifies the atoms for which\nthis fingerprint is computed while the other(s) specify which atoms to\nuse in the neighbor lists for the computation. Switching the second and\nthird element type in bond fingerprints has no effect on the\ncomputation:\n\n```\nfingerprints:Mg_Mg:\nradial_0 radialscreened_0 radial_1\nfingerprints:Mg_Al_Fe:\nbond_0 bondspin_0\nfingerprints:Mg_Al:\nradial_0 radialscreened_0\n```\nThe following fingerprint styles are currently defined. See the\n**fingerprints** below for their definitions:\n\n* radial\n* radialscreened\n* radialspin\n* radialscreenedspin\n* bond\n* bondscreened\n* bondspin\n* bondscreenedspin\n\n*fingerprintconstants* specifies the meta-parameters for a defined fingerprint. For all radial styles, re, rc,\nalpha, dr, o, and n must be specified. re should usually be the stable interatomic distance, rc is the cutoff\nradius, dr is the cutoff smoothing distance, o is the lowest radial power term (which may be negative), and n\nis the highest power term. The total length of the fingerprint vector is (n-o+1). alpha is a list of decay parameters\nused for exponential decay of radial contributions. It may be set proportionally to the bulk modulus similarly\nto MEAM potentials, but other values may provided better fitting in special cases. Bond style fingerprints require\nspecification of re, rc, alphak, dr, k, and m. Here m is the power of the bond cosines and k is the number of\ndecay parameters. Cosine powers go from 0 to m-1 and are each computed for all values of alphak. Thus the total\nlength of the fingerprint vector is m*k.\n\n```\nfingerprintconstants:Mg_Mg:radialscreened_0:re:\n3.193592\nfingerprintconstants:Mg_Mg:radialscreened_0:rc:\n6.000000\nfingerprintconstants:Mg_Mg:radialscreened_0:alpha:\n5.520000 5.520000 5.520000 5.520000 5.520000\nfingerprintconstants:Mg_Mg:radialscreened_0:dr:\n2.806408\nfingerprintconstants:Mg_Mg:radialscreened_0:o:\n-1\nfingerprintconstants:Mg_Mg:radialscreened_0:n:\n3\n```\n*screening* specifies the Cmax and Cmin values used in the screening\nfingerprints. Contributions form neighbors to the fingerprint are\nomitted if they are blocked by a closer neighbor, and reduced if they\nare partially blocked. Larger values of Cmin correspond to neighbors\nbeing blocked more easily. Cmax cannot be greater than 3, and Cmin\ncannot be greater than Cmax or less than zero. Screening may be omitted\nin which case the default values Cmax = 2.8, Cmin = 0.8 are used. Since\nscreening is a bond computation, it is specified separately for each\ncombination of three elements in which the latter two may be\ninterchanged with no effect.\n\n```\nscreening:Mg_Mg_Mg:Cmax:\n2.700000\nscreening:Mg_Mg_Mg:Cmin:\n0.400000\n```\n*networklayers* species the size of the neural network for each atom.\nIt counts both the input and output layer and so is 2 + \\.\n\n```\nnetworklayers:Mg:\n3\n```\n*layersize* specifies the length of each layer, including the input\nlayer and output layer. The input layer is layer 0. The size of the\ninput layer size must match the summed length of all the fingerprints\nfor that element, and the output layer size must be 1:\n\n```\nlayersize:Mg:0:\n14\nlayersize:Mg:1:\n20\nlayersize:Mg:2:\n1\n```\n*weight* specifies the weight for a given element and layer. Weight\ncannot be specified for the output layer. The weight of layer i is a\n*m* x *n* matrix where *m* is the layer size of *i* and *n* is the layer size of\n*i* +1:\n\n```\nweight:Mg:0:\nw11 w12 w13 ...\nw21 w22 w23 ...\n...\n```\n*bias* specifies the bias for a given element and layer. Bias cannot be\nspecified for the output layer. The bias of layer i is a nx1 vector\nwhere n is the layer size of i+1:\n\n```\nbias:Mg:0:\nb1\nb2\nb3\n...\n```\n*activationfunctions* specifies the activation function for a given\nelement and layer. Activation functions cannot be specified for the\noutput layer:\n\n```\nactivationfunctions:Mg:0:\nsigI\nactivationfunctions:Mg:1:\nlinear\n```\nThe following activation styles are currently specified. See the\n**activations** below for their definitions.\n\n* sigI\n\n* linear\n\n*calibrationparameters* specifies a number of parameters used to calibrate the potential. These are ignored\nby LAMMPS.\n\n #### Formulation\n\nIn the RANN formulation, the total energy of a system of atoms\nis given by:\n\\[\n E = \\sum_{\\alpha} E^{\\alpha}\\\\\\\\\n E^{\\alpha} = {}^{N}\\!A^{\\alpha}\\\\\\\\\n {}^{n+1}\\!A_i^{\\alpha} = {}^{n}\\!F\\left({}^{n}\\!W_{ij}{\\;}^{n}\\!A_j^{\\alpha}+{}^{n}\\!B_i\\right)\\\\\\\\\n {}^{0}\\!A_i^{\\alpha} = \\left[\\begin{array}{c} {}^1\\!S\\!f^\\alpha\\\\ {}^2\\!S\\!f^\\alpha \\\\...\\\\\\end{array}\\right]\\]\nHere \\(E^\\alpha\\) is the energy of atom \\(\\alpha\\),\n\\({}^n\\!F()\\), \\({}^n\\!W_{ij}\\) and \\({}^n\\!B_i\\) are the\nactivation function, weight matrix and bias vector of the n-th layer\nrespectively. The inputs to the first layer are a collection of\nstructural fingerprints which are collected and reshaped into a single\nlong vector. The individual fingerprints may be defined in any order\nand have various shapes and sizes. Multiple fingerprints of the same\ntype and varying parameters may also be defined in the input layer.\n\nEight types of structural fingerprints are currently defined. In the\nfollowing, \\(\\beta\\) and \\(\\gamma\\) span the full neighbor list\nof atom \\(\\alpha\\). \\(\\delta_i\\) are decay meta-parameters, and\n\\(r_e\\) is a meta-parameter roughly proportional to the first\nneighbor distance. \\(r_c\\) and \\(dr\\) are the neighbor cutoff\ndistance and cutoff smoothing distance respectively.\n\\(S^{\\alpha\\beta}\\) is the MEAM screening function **Baskes97**, \\(s_i^\\alpha\\) and \\(s_i^\\beta\\) are the atom spin\nvectors **Tranchida7**. \\(r^{\\alpha\\beta}\\) is the\ndistance from atom \\(\\alpha\\) to atom \\(\\beta\\), and\n\\(\\theta^{\\alpha\\beta\\gamma}\\) is the bond angle:\n\\[\n cos\\left(\\theta^{\\alpha\\beta\\gamma}\\right)=\\frac{\\mathbf{r}^{\\alpha\\beta} \\cdot \\mathbf{r}^{\\alpha\\gamma}}{r^{\\alpha\\beta}r^{\\alpha\\gamma}}\\]\n\\(S^{\\alpha\\beta}\\) is defined as **Baskes97**:\n\\[\n X^{\\gamma\\beta} = \\left(\\frac{r^{\\gamma\\beta}}{r^{\\alpha\\beta}}\\right)^2\\\\\n \\\\\n X^{\\alpha\\gamma} = \\left(\\frac{r^{\\alpha\\gamma}}{r^{\\alpha\\beta}}\\right)^2\\\\\n \\\\\n C = \\frac{2\\left(X^{\\alpha\\gamma}+X^{\\gamma\\beta}\\right)-\\left(X^{\\alpha\\gamma}-X^{\\gamma\\beta}\\right)^2-1}{1-\\left(X^{\\alpha\\gamma}-X^{\\gamma\\beta}\\right)^2}\\\\\n \\\\\n f_c(x) = \\left[\\begin{array}{l} 1 \\; \\: x \\geq 1\\\\ \\left(1-\\left(1-x\\right)^4\\right)^2 \\; \\: 0 ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on cutoffs, neighbor lists, and efficiency \n >If your system is mildly polydisperse, meaning the ratio of the\n > diameter of the largest particle to the smallest is less than 2.0,\n > then the neighbor lists built by the code should be reasonably\n > efficient. Which means they will not contain too many particle\n > pairs that do not interact. However, if your system is highly\n > polydisperse (ratio > 2.0), the neighbor list build and force\n > computations may be inefficient. There are two ways to try and\n > speed up the simulations.\n >\n > The first is to assign atoms to different atom types so that atoms of\n > each type are similar in size. E.g. if particle diameters range from\n > 1 to 5 use 4 atom types, ensuring atoms of type 1 have diameters from\n > 1.0-2.0, type 2 from 2.0-3.0, etc. This will reduce the number of\n > non-interacting pairs in the neighbor lists and thus reduce the time\n > spent on computing pairwise interactions.\n >\n > The second is to use the [neighbor multi ](https://docs.lammps.org/neighbor.html) command\n > which enabled a different algorithm for building neighbor lists. This\n > will also require that you assign multiple atom types according to\n > diameters, but will in addition use a more efficient size-dependent\n > strategy to construct the neighbor lists and thus reduce the time\n > spent on building neighbor lists.\n >\n > Here are example input script commands using both ideas for a\n > highly polydisperse system:\n >\n > >\n > units lj\n > atom_style sphere\n > lattice fcc 0.8442\n > region box block 0 10 0 10 0 10\n > create_box 2 box\n > create_atoms 1 box\n >\n > # create atoms with random diameters from bimodal distribution\n > variable switch atom random(0.0,1.0,345634)\n > variable diam atom (v_switch<0.75)*normal(0.4,0.075,325)+(v_switch>=0.7)*normal(1.2,0.2,453)\n > set group all diameter v_diam\n >\n > # assign type 2 to atoms with diameter > 0.6\n > variable large atom (2.0*radius)>0.6\n > group large variable large\n > set group large type 2\n >\n > pair_style lj/cut/sphere 2.5\n > pair_coeff * * 1.0\n >\n > neighbor 0.3 multi\n >\n > Using multiple atom types speeds up the calculation for this example\n > by more than a factor of 2, and using the multi-style neighbor list\n > build causes an additional speedup of about 20 percent. \n > \n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* LJ cutoff ratio (unitless) (optional)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff ratio specified in the [pair_style command ](https://docs.lammps.org/pair_style.html) is\nused.\n\nIf a repulsive only LJ interaction is desired, the coefficient for the cutoff\nratio should be set to the minimum of the LJ potential using ``$(2.0^(1.0/6.0))``\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon coefficients and cutoff\nratio for the *lj/cut/sphere* pair style can be mixed. The default mixing\nstyle is *geometric*. See the [pair_modify command ](https://docs.lammps.org/pair_modify.html)\nfor details.\n\nThe *lj/cut/sphere* pair style supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for the energy of the Lennard-Jones portion of the pair interaction.\n\nThe *lj/cut/sphere* pair style does *not* support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail corrections to\nthe energy and pressure.\n\nThe *lj/cut/sphere* pair style writes its information to [binaryrestart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not\nneed to be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does *not* support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "The *lj/cut/sphere* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\nThe *lj/cut/sphere* pair style does not support the *sixthpower* mixing rule.\n\n----------\n", - "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n* [pair_style lj/expnd/sphere ](https://docs.lammps.org/pair_lj_expand_sphere.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine\nangle_coeff * 75.0\n```\n", + "html_filename": "angle_cosine.html", + "short_description": "The *cosine* angle style uses the potential\n\\[\n E = K [1 + \\cos(\\theta)]\\]\nwhere \\(K\\) is defined for each angle type", + "description": "The *cosine* angle style uses the potential\n\\[\n E = K [1 + \\cos(\\theta)]\\]\nwhere \\(K\\) is defined for each angle type.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix tune/kspace" + "compute spin" ], "syntax": [ - "fix ID group-ID tune/kspace N" + "compute ID group-ID spin" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -15618,185 +15062,133 @@ export const command_docs = [ "choices": [] }, { - "arg": "tune/kspace", + "arg": "spin", "type": 1, "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tune/kspace = style name of this fix command\n* N = invoke this fix every N steps \n", - "examples": "\n```lmps\nfix 2 all tune/kspace 100\n```\n", - "html_filename": "fix_tune_kspace.html", - "short_description": "This fix tests each kspace style (Ewald, PPPM, and MSM), and\nautomatically selects the fastest style to use for the remainder\nof the run", - "description": "This fix tests each kspace style (Ewald, PPPM, and MSM), and\nautomatically selects the fastest style to use for the remainder\nof the run. If the fastest style is Ewald or PPPM, the fix also\nadjusts the Coulombic cutoff towards optimal speed. Future versions\nof this fix will automatically select other kspace parameters\nto use for maximum simulation speed. The kspace parameters may\ninclude the style, cutoff, grid points in each direction, order,\nEwald parameter, MSM parallelization cut-point, MPI tasks to use, etc.\n\nThe rationale for this fix is to provide the user with\nas-fast-as-possible simulations that include long-range electrostatics\n(kspace) while meeting the user-prescribed accuracy requirement. A\nsimple heuristic could never capture the optimal combination of\nparameters for every possible run-time scenario. But by performing\nshort tests of various kspace parameter sets, this fix allows\nparameters to be tailored specifically to the user's machine, MPI\nranks, use of threading or accelerators, the simulated system, and the\nsimulation details. In addition, it is possible that parameters could\nbe evolved with the simulation on-the-fly, which is useful for systems\nthat are dynamically evolving (e.g. changes in box size/shape or\nnumber of particles).\n\nWhen this fix is invoked, LAMMPS will perform short timed tests of\nvarious parameter sets to determine the optimal parameters. Tests are\nperformed on-the-fly, with a new test initialized every N steps. N should\nbe chosen large enough so that adequate CPU time lapses between tests,\nthereby providing statistically significant timings. But N should not be\nchosen to be so large that an unfortunate parameter set test takes an\ninordinate amount of wall time to complete. An N of 100 for most problems\nseems reasonable. Once an optimal parameter set is found, that set is\nused for the remainder of the run.\n\nThis fix uses heuristics to guide it's selection of parameter sets to test,\nbut the actual timed results will be used to decide which set to use in the\nsimulation.\n\nIt is not necessary to discard trajectories produced using sub-optimal\nparameter sets, or a mix of various parameter sets, since the user-prescribed\naccuracy will have been maintained throughout. However, some users may prefer\nto use this fix only to discover the optimal parameter set for a given setup\nthat can then be used on subsequent production runs.\n\nThis fix starts with kspace parameters that are set by the user with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) and [kspace_modify ](https://docs.lammps.org/kspace_modify.html)\ncommands. The prescribed accuracy will be maintained by this fix throughout\nthe simulation.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the KSPACE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is required.\n\nThis fix is not compatible with a hybrid pair style, long-range dispersion,\nTIP4P water support, or long-range point dipole support.\n", - "related": "[kspace_style ](https://docs.lammps.org/kspace_style.html), [boundary ](https://docs.lammps.org/boundary.html)\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html), [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html), [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html), [pair_style lj/long ](https://docs.lammps.org/pair_lj_long.html), [pair_style lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html),\n[pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* spin = style name of this compute command \n", + "examples": "\n```lmps\ncompute out_mag all spin\n```\n", + "html_filename": "compute_spin.html", + "short_description": "Define a computation that calculates magnetic quantities for a system\nof atoms having spins", + "description": "Define a computation that calculates magnetic quantities for a system\nof atoms having spins.\n\nThis compute calculates the following 6 magnetic quantities:\n\n* the three first quantities are the x,y and z coordinates of the total\n magnetization,\n* the fourth quantity is the norm of the total magnetization,\n* The fifth quantity is the magnetic energy (in eV),\n* The sixth one is referred to as the spin temperature, according\n to the work of **Nurdin1**.\n\nThe simplest way to output the results of the compute spin calculation\nis to define some of the quantities as variables, and to use the thermo and\nthermo_style commands, for example:\n\n```lmps\ncompute out_mag all spin\n\nvariable mag_z equal c_out_mag[3]\nvariable mag_norm equal c_out_mag[4]\nvariable temp_mag equal c_out_mag[6]\n\nthermo 10\nthermo_style custom step v_mag_z v_mag_norm v_temp_mag\n```\nThis series of commands evaluates the total magnetization along z, the norm of\nthe total magnetization, and the magnetic temperature. Three variables are\nassigned to those quantities. The thermo and thermo_style commands print them\nevery 10 timesteps.\n\n #### Output info\n\nThe array values are \"intensive\". The array values will be in\nmetal units ([units ](https://docs.lammps.org/units.html)).\n\n**(Nurdin1)** Nurdin and Schotte Phys Rev E, 61(4), 3579 (2000) \n ", + "restrictions": "The *spin* compute is part of the SPIN package. This compute is only\nenabled if LAMMPS was built with this package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The atom_style\nhas to be \"spin\" for this compute to be valid.\n\n**Related commands:**\n\nnone\n", + "related": "none" }, { "command": [ - "fix adapt" + "pair_style dpd/coul/slater/long", + "pair_style dpd/coul/slater/long/gpu" ], "syntax": [ - "fix ID group-ID adapt N attribute args ... keyword value ..." + "pair_style dpd/coul/slater/long T cutoff_DPD seed lambda cutoff_coul" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "dpd/coul/slater/long", + "type": 3, + "choices": [ + "dpd/coul/slater/long", + "dpd/coul/slater/long/gpu" + ] }, { - "arg": "group-ID", + "arg": "T", "type": 2, "choices": [] }, { - "arg": "adapt", - "type": 1, + "arg": "cutoff_DPD", + "type": 2, "choices": [] }, { - "arg": "N", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "atom", - "type": 3, - "choices": [ - "pair", - "bond", - "angle", - "kspace", - "atom" - ] - }, - { - "arg": "args", + "arg": "lambda", "type": 2, "choices": [] }, { - "arg": "mass", - "type": 3, - "choices": [ - "scale", - "reset", - "mass" - ] - }, - { - "arg": "value", + "arg": "cutoff_coul", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* adapt = style name of this fix command\n* N = adapt simulation settings every this many timesteps\n* one or more attribute/arg pairs may be appended\n* attribute = pair or bond or angle or kspace or atom \n *        pair args = pstyle pparam I J v_name \n         pstyle = pair style name (e.g., lj/cut) \n         pparam = parameter to adapt over time \n         I,J = type pair(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of pparam \n *        bond args = bstyle bparam I v_name \n         bstyle = bond style name (e.g., harmonic) \n         bparam = parameter to adapt over time \n         I = type bond to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of bparam \n *        angle args = astyle aparam I v_name \n         astyle = angle style name (e.g., harmonic) \n         aparam = parameter to adapt over time \n         I = type angle to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of aparam \n *        kspace arg = v_name \n         v_name = variable with name that calculates scale factor on \\(k\\)-space terms \n *        atom args = atomparam v_name \n         atomparam = charge or diameter or diameter/disc = parameter to adapt over time \n         v_name = variable with name that calculates value of atomparam \n* zero or more keyword/value pairs may be appended\n* keyword = scale or reset or mass \n *      scale value = no or yes \n       no = the variable value is the new setting \n       yes = the variable value multiplies the original setting \n *      reset value = no or yes \n       no = values will remain altered at the end of a run \n       yes = reset altered values to their original values at the end of a run \n *      mass value = no or yes \n       no = mass is not altered by changes in diameter \n       yes = mass is altered by changes in diameter \n", - "examples": "\n```lmps\nfix 1 all adapt 1 pair soft a 1 1 v_prefactor\nfix 1 all adapt 1 pair soft a 2* 3 v_prefactor\nfix 1 all adapt 1 pair lj/cut epsilon * * v_scale1 pair coul/cut scale 3 3 v_scale2 scale yes reset yes\nfix 1 all adapt 10 atom diameter v_size\n\nvariable ramp_up equal \"ramp(0.01,0.5)\"\nfix stretch all adapt 1 bond harmonic r0 1 v_ramp_up\n\nlabelmap atom 1 c1\nfix 1 all adapt 1 pair soft a c1 c1 v_prefactor\n```\n", - "html_filename": "fix_adapt.html", - "short_description": "Change or adapt one or more specific simulation attributes or settings over\ntime as a simulation runs", - "description": "Change or adapt one or more specific simulation attributes or settings over\ntime as a simulation runs. Pair potential and \\(k\\)-space and atom\nattributes which can be varied by this fix are discussed below. Many other\nfixes can also be used to time-vary simulation parameters (e.g., the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command will change the simulation box\nsize/shape and the [fix move ](https://docs.lammps.org/fix_move.html) command will change atom\npositions and velocities in a prescribed manner). Also note that many commands\nallow variables as arguments for specific parameters, if described in that\nmanner on their doc pages. An equal-style variable can calculate a\ntime-dependent quantity, so this is another way to vary a simulation parameter\nover time.\n\nIf \\(N\\) is specified as 0, the specified attributes are only changed\nonce, before the simulation begins. This is all that is needed if the\nassociated variables are not time-dependent. If \\(N > 0\\), then changes\nare made every \\(N\\) steps during the simulation, presumably with a\nvariable that is time-dependent.\n\nDepending on the value of the *reset* keyword, attributes changed by\nthis fix will or will not be reset back to their original values at\nthe end of a simulation. Even if *reset* is specified as *yes*, a\nrestart file written during a simulation will contain the modified\nsettings.\n\nIf the *scale* keyword is set to *no*, which is the default, then\nthe value of the altered parameter will be whatever the variable\ngenerates. If the *scale* keyword is set to *yes*, then the value\nof the altered parameter will be the initial value of that parameter\nmultiplied by whatever the variable generates (i.e., the variable is\nnow a \"scale factor\" applied in (presumably) a time-varying fashion to\nthe parameter).\n\nNote that whether scale is *no* or *yes*, internally, the parameters\nthemselves are actually altered by this fix. Make sure you use the\n*reset yes* option if you want the parameters to be restored to their\ninitial values after the run.\n\n----------\n\nThe *pair* keyword enables various parameters of potentials defined by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command to be changed, if the pair\nstyle supports it. Note that the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands must be used in the usual manner\nto specify these parameters initially; the fix adapt command simply\noverrides the parameters.\n\nThe *pstyle* argument is the name of the pair style. If\n[pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used,\n*pstyle* should be a sub-style name. If there are multiple\nsub-styles using the same pair style, then *pstyle* should be specified\nas \"style:N\", where *N* is which instance of the pair style you wish to\nadapt (e.g., the first or second). For example, *pstyle* could be\nspecified as \"soft\" or \"lubricate\" or \"lj/cut:1\" or \"lj/cut:2\". The\n*pparam* argument is the name of the parameter to change. This is the\ncurrent list of pair styles and parameters that can be varied by this\nfix. See the doc pages for individual pair styles and their energy\nformulas for the meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [born/coul/long, born/coul/msm ](https://docs.lammps.org/pair_born.html) | coulombic_cutoff | type global |\n| [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) | biga0,biga1,r0 | type pairs |\n| [buck, buck/coul/cut ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c,coulombic_cutoff | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut, coul/cut/global ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/debye ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/dsf ](https://docs.lammps.org/pair_coul.html) | coulombic_cutoff | type global |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | coulombic_cutoff, scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda, coulombic_cutoff | type pairs |\n| [coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) | scale | type pairs |\n| [coul/streitz ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [eam, eam/alloy, eam/fs ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) | k, cutoff | type pairs |\n| [kim ](https://docs.lammps.org/pair_kim.html) | scale | type global |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | A,B | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda,coulombic_cutoff | type pairs |\n| [lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html) | cutoff | type global |\n| [lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma,coulombic_cutoff | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [lubricate ](https://docs.lammps.org/pair_lubricate.html) | mu | global |\n| [meam ](https://docs.lammps.org/pair_meam.html) | scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamma_repulsive,gamma_attractive | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | D0,R0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | D0,R0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | E0,R0,m,n | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | E0,R0,m,n,coulombic_cutoff | type pairs |\n| [pace, pace/extrapolation ](https://docs.lammps.org/pair_pace.html) | scale | type pairs |\n| [quip ](https://docs.lammps.org/pair_quip.html) | scale | type global |\n| [snap ](https://docs.lammps.org/pair_snap.html) | scale | type pairs |\n| [spin/dmi ](https://docs.lammps.org/pair_spin_dmi.html) | coulombic_cutoff | type global |\n| [spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html) | coulombic_cutoff | type global |\n| [spin/magelec ](https://docs.lammps.org/pair_spin_magelec.html) | coulombic_cutoff | type global |\n| [spin/neel ](https://docs.lammps.org/pair_spin_neel.html) | coulombic_cutoff | type global |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n| [table ](https://docs.lammps.org/pair_table.html) | table_cutoff | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) | epsilon,sigma,nu,mu | type pairs |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is easy to add new pairwise potentials and their parameters\n > to this list. All it typically takes is adding an extract() method to\n > the pair\\_\\*.cpp file associated with the potential. \n > \n\nSome parameters are global settings for the pair style (e.g., the\nviscosity setting \"mu\" for [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html)).\nOther parameters apply to atom type pairs within the pair style (e.g., the\nprefactor \\(a\\) for [pair_style soft ](https://docs.lammps.org/pair_soft.html)).\n\nNote that for many of the potentials, the parameter that can be varied\nis effectively a prefactor on the entire energy expression for the\npotential (e.g., the lj/cut epsilon). The parameters listed as \"scale\"\nare exactly that, since the energy expression for the\n[coul/cut ](https://docs.lammps.org/pair_coul.html) potential (for example) has no labeled\nprefactor in its formula. To apply an effective prefactor to some\npotentials, multiple parameters need to be altered. For example, the\n[Buckingham potential ](https://docs.lammps.org/pair_buck.html) needs both the \\(A\\) and\n\\(C\\) terms altered together. To scale the Buckingham potential, you\nshould thus list the pair style twice, once for \\(A\\) and once for\n\\(C\\).\n\nIf a type pair parameter is specified, the \\(I\\) and \\(J\\) settings\nshould be specified to indicate which type pairs to apply it to. If a global\nparameter is specified, the \\(I\\) and \\(J\\) settings still need to be\nspecified, but are ignored.\n\nSimilar to the [pair_coeff command ](https://docs.lammps.org/pair_coeff.html), \\(I\\) and\n\\(J\\) can be specified in one of several ways. Explicit numeric values\ncan be used for each, as in the first example above. Or, one or both of\nthe types in the I,J pair can be a [type label ](https://docs.lammps.org/Howto_type_labels.html).\nLAMMPS sets the coefficients for the symmetric \\(J,I\\) interaction to\nthe same values.\n\nA wild-card asterisk can be used in place of or in conjunction with\nthe \\(I,J\\) arguments to set the coefficients for multiple pairs of atom\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\)\nis the number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). For the asterisk syntax, note that only type pairs with\n\\(I \\le J\\) are considered; if asterisks imply type pairs where\n\\(J < I\\), they are ignored.\n\nIMPORTANT NOTE: If [pair_style hybrid or hybrid/overlay](https://docs.lammps.org/pair_hybrid.html) is being used, then the *pstyle* will be a sub-style\nname. You must specify \\(I,J\\) arguments that correspond to type pair\nvalues defined (via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for\nthat sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. Equal-style\nvariables can specify formulas with various mathematical functions, and\ninclude [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify parameters that change as a function of time or span\nconsecutive runs in a continuous fashion. For the latter, see the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command and the\n*elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for\ndetails.\n\nFor example, these commands would change the prefactor coefficient of\nthe [pair_style soft ](https://docs.lammps.org/pair_soft.html) potential from 10.0 to 30.0 in a\nlinear fashion over the course of a simulation:\n\n```lmps\nvariable prefactor equal ramp(10,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n----------\n\nThe *bond* keyword uses the specified variable to change the value of\na bond coefficient over time, very similar to how the *pair* keyword\noperates. The only difference is that now a bond coefficient for a\ngiven bond type is adapted.\n\nA wild-card asterisk can be used in place of or in conjunction with the\nbond type argument to set the coefficients for multiple bond types.\nThis takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of bond types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nCurrently *bond* does not support bond_style hybrid nor bond_style\nhybrid/overlay as bond styles. The bond styles that currently work\nwith fix_adapt are\n\n| | | |\n|---|---|---|\n| [class2 ](https://docs.lammps.org/bond_class2.html) | r0 | type bonds |\n| [fene ](https://docs.lammps.org/bond_fene.html) | k,r0 | type bonds |\n| [fene/nm ](https://docs.lammps.org/bond_fene.html) | k,r0 | type bonds |\n| [gromos ](https://docs.lammps.org/bond_gromos.html) | k,r0 | type bonds |\n| [harmonic ](https://docs.lammps.org/bond_harmonic.html) | k,r0 | type bonds |\n| [morse ](https://docs.lammps.org/bond_morse.html) | r0 | type bonds |\n| [nonlinear ](https://docs.lammps.org/bond_nonlinear.html) | epsilon,r0 | type bonds |\n\n----------\n\nThe *angle* keyword uses the specified variable to change the value of\nan angle coefficient over time, very similar to how the *pair* keyword\noperates. The only difference is that now an angle coefficient for a\ngiven angle type is adapted.\n\nA wild-card asterisk can be used in place of or in conjunction with the\nangle type argument to set the coefficients for multiple angle types.\nThis takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of angle types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nCurrently *angle* does not support angle_style hybrid nor angle_style\nhybrid/overlay as angle styles. The angle styles that currently work\nwith fix_adapt are\n\n| | | |\n|---|---|---|\n| [harmonic ](https://docs.lammps.org/angle_harmonic.html) | k,theta0 | type angles |\n| [cosine ](https://docs.lammps.org/angle_cosine.html) | k | type angles |\n\nNote that internally, theta0 is stored in radians, so the variable\nthis fix uses to reset theta0 needs to generate values in radians.\n\n----------\n\nThe *kspace* keyword used the specified variable as a scale factor on\nthe energy, forces, virial calculated by whatever \\(k\\)-space solver is\ndefined by the [kspace_style ](https://docs.lammps.org/kspace_style.html) command. If the\nvariable has a value of 1.0, then the solver is unaltered.\n\nThe *kspace* keyword works this way whether the *scale* keyword\nis set to *no* or *yes* .\n\n----------\n\nThe *atom* keyword enables various atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be varied by this fix:\n\n* charge = charge on particle\n* diameter or diameter/disc = diameter of particle\n\nThe *v_name* argument of the *atom* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each\ntime this fix is invoked to set, or scale the parameter to a new\nvalue. It should be specified as v_name, where name is the variable\nname. See the discussion above describing the formulas associated\nwith equal-style variables. The new value is assigned to the\ncorresponding attribute for all atoms in the fix group.\n\nIf the atom parameter is *diameter* and per-atom density and per-atom\nmass are defined for particles (e.g., [atom_style granular](https://docs.lammps.org/atom_style.html)), then the mass of each particle is, by default, also\nchanged when the diameter changes. The mass is set from the particle\nvolume for 3d systems (density is assumed to stay constant). For 2d,\nthe default is for LAMMPS to model particles with a radius attribute\nas spheres. However, if the atom parameter is *diameter/disc*, then the\nmass is set from the particle area (the density is assumed to be in\nmass/distance\\ \\(^2\\) units). The mass of the particle may also be kept\nconstant if the *mass* keyword is set to *no*. This can be useful to account\nfor diameter changes that do not involve mass changes (e.g., thermal\nexpansion).\n\nFor example, these commands would shrink the diameter of all granular\nparticles in the \"center\" group from 1.0 to 0.1 in a linear fashion\nover the course of a 1000-step simulation:\n\n```lmps\nvariable size equal ramp(1.0,0.1)\nfix 1 center adapt 10 atom diameter v_size\n```\n----------\n\nThis fix can be used in long simulations which are restarted one or\nmore times to continuously adapt simulation parameters, but it must be\ndone carefully. There are two issues to consider. The first is how\nto adapt the parameters in a continuous manner from one simulation to\nthe next. The second is how, if desired, to reset the parameters to\ntheir original values at the end of the last restarted run.\n\nNote that all the parameters changed by this fix are written into a\nrestart file in their current changed state. A new restarted\nsimulation does not know the original time=0 values, unless the\ninput script explicitly resets the parameters (after the restart file\nis read) to the original values.\n\nAlso note that the time-dependent variable(s) used in the restart\nscript should typically be written as a function of time elapsed since\nthe original simulation began.\n\nWith this in mind, if the *scale* keyword is set to *no* (the default)\nin a restarted simulation, original parameters are not needed. The\nadapted parameters should seamlessly continue their variation relative\nto the preceding simulation.\n\nIf the *scale* keyword is set to *yes*, then the input script should\ntypically reset the parameters being adapted to their original values,\nso that the scaling formula specified by the variable will operate\ncorrectly. An exception is if the *atom* keyword is being used with\n*scale yes*. In this case, information is added to the restart file\nso that per-atom properties in the new run will automatically be\nscaled relative to their original values. This will only work if the\nfix adapt command specified in the restart script has the same ID as\nthe one used in the original script.\n\nIn a restarted run, if the *reset* keyword is set to *yes*, and the\nrun ends in this script (as opposed to just writing more restart\nfiles), parameters will be restored to the values they were at the\nbeginning of the run command in the restart script, which as\nexplained above, may or may not be the original values of the\nparameters. Again, an exception is if the *atom* keyword is being\nused with *reset yes* (in all the runs). In that case, the original\nper-atom parameters are stored in the restart file, and will be\nrestored when the restarted run finally completes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nIf the *atom* keyword is used and the *scale* or *reset* keyword is\nset to *yes*, then this fix writes information to a restart file so\nthat in a restarted run scaling can continue in a seamless manner\nand/or the per-atom values can be restored, as explained above.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix changes\nparameters on the outermost rRESPA level.\n", - "restrictions": " none\n", - "related": "[compute ti ](https://docs.lammps.org/compute_ti.html), [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html)\n" + "parameters": "* T = temperature (temperature units)\n* cutoff_DPD = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer)\n* lambda = decay length of the charge (distance units)\n* cutoff_coul = global cutoff for Coulombic interactions (distance units) \n", + "examples": "\n```lmps\npair_style dpd/coul/slater/long 1.0 2.5 34387 0.25 3.0\n\npair_coeff 1 1 78.0 4.5 # not charged by default\npair_coeff 2 2 78.0 4.5 yes\n```\n", + "html_filename": "pair_dpd_coul_slater_long.html", + "short_description": "\nStyle *dpd/coul/slater/long* computes a force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot5**", + "description": "\nStyle *dpd/coul/slater/long* computes a force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot5**. It also allows for the use of charged particles in the\nmodel by adding a long-range Coulombic term to the DPD interactions.\nThe short-range portion of the Coulombics is calculated by this pair\nstyle. The long-range Coulombics are computed by use of the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command, e.g. using the Ewald or\nPPPM styles.\n\nCoulombic forces in mesoscopic models such as DPD employ potentials\nwithout explicit excluded-volume interactions. The goal is to prevent\nartificial ionic pair formation by including a charge distribution in\nthe Coulomb potential, following the formulation in **Melchor1**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This pair style is effectively the combination of the\n > [pair_style dpd ](https://docs.lammps.org/pair_dpd.html) and [pair_style > coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) commands, but should be more\n > efficient (especially on GPUs) than using [pair_style > hybrid/overlay dpd coul/slater/long ](https://docs.lammps.org/pair_hybrid.html). That is\n > particularly true for the GPU package version of the pair style since\n > this version is compatible with computing neighbor lists on the GPU\n > instead of the CPU as is required for hybrid styles. \n > \n\nIn the charged DPD model, the force on bead I due to bead J is given\nas a sum of 4 terms:\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R + F^E) \\hat{r_{ij}} \\\\\n F^C = & A w(r) \\qquad \\qquad \\qquad \\qquad \\qquad r < r_{DPD} \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\qquad \\qquad r < r_{DPD} \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\qquad \\qquad \\qquad r < r_{DPD} \\\\\n w(r) = & 1 - \\frac{r}{r_{DPD}} \\\\\n F^E = & \\frac{C q_iq_j}{\\epsilon r^2} \\left( 1- exp\\left( \\frac{2r_{ij}}{\\lambda} \\right) \\left( 1 + \\frac{2r_{ij}}{\\lambda} \\left( 1 + \\frac{r_{ij}}{\\lambda} \\right)\\right) \\right) \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a\ndissipative force, \\(F^R\\) is a random force, and \\(F^E\\) is\nan electrostatic force. \\(\\hat{r_{ij}}\\) is a unit vector in the\ndirection \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is the vector\ndifference in velocities of the two atoms \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1.\n\n\\(\\sigma\\) is set equal to \\(\\sqrt{2 k_B T \\gamma}\\), where\n\\(k_B\\) is the Boltzmann constant and *T* is the temperature\nparameter in the pair_style command.\n\n\\(r_{DPD}\\) is the pairwise cutoff for the first 3 DPD terms in\nthe formula as specified by *cutoff_DPD*. For the \\(F^E\\) term,\npairwise interactions within the specified *cutoff_coul* distance are\ncomputed directly; interactions beyond that distance are computed in\nreciprocal space. *C* is the same Coulomb conversion factor used in\nthe Coulombic formulas described on the [pair_coul ](https://docs.lammps.org/pair_coul.html)\ndoc page.\n\nThe following parameters must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* is_charged (optional boolean, default = no)\n\nThe *is_charged* parameter is optional and can be specified as *yes* or\n*no*. *Yes* should be used for interactions between two types of\ncharged particles. *No* is the default and should be used for\ninteractions between two types of particles when one or both are\nuncharged.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file. Note that the\nuser-specified random number seed is stored in the restart file, so\nwhen a simulation is restarted, each processor will re-initialize its\nrandom number generator the same way it did initially. This means the\nrandom forces will be random, but will not be the same as they would\nhave been if the original simulation had continued past the restart\ntime.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Groot5)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Melchor1)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \n ", + "restrictions": "This style is part of the DPD-BASIC package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent since particles move rapidly and can overlap by large\namounts. If this setting yields a non-zero number of \"dangerous\"\nreneighborings (printed at the end of a simulation), you should\nexperiment with forcing reneighboring more often and see if system\nenergies/trajectories change.\n\nThis pair style requires use of the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThis pair style also requires use of a long-range solvers from the\nKSPACE package.\n\nThis pair style will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", + "related": "[pair_style dpd ](https://docs.lammps.org/pair_dpd.html), [pair_style coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html),\n" }, { "command": [ - "fix_modify AtC source_integration" + "fix accelerate/cos" ], "syntax": [ - "fix_modify source_integration " + "fix ID group-ID accelerate value" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "source_integration", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "fe", - "atom" - ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* source_integration = name of the AtC sub-command\n* fe or atom = (undocumented) \n", - "examples": "\n```lmps\nfix_modify AtC source_integration atom\n```\n", - "html_filename": "atc_source_integration.html", - "short_description": "(undocumented)\n", - "description": "(undocumented)\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "angle_style cosine/shift/exp", - "angle_style cosine/shift/exp/omp" - ], - "syntax": [ - "angle_style cosine/shift/exp" - ], - "args": [ - [ - { - "arg": "angle_style", - "type": 1, + "arg": "accelerate", + "type": 2, "choices": [] }, { - "arg": "cosine/shift/exp", - "type": 3, - "choices": [ - "cosine/shift/exp", - "cosine/shift/exp/omp" - ] + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine/shift/exp\nangle_coeff * 10.0 45.0 2.0\n```\n", - "html_filename": "angle_cosine_shift_exp.html", - "short_description": "The *cosine/shift/exp* angle style uses the potential\n\\[\n E = -U_{\\text{min}} \\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad \\text{with} \\quad U(\\theta,\\theta_0) = -0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{\\text{min}}\\), \\(\\theta\\), and \\(a\\) are defined for each angle type", - "description": "The *cosine/shift/exp* angle style uses the potential\n\\[\n E = -U_{\\text{min}} \\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad \\text{with} \\quad U(\\theta,\\theta_0) = -0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{\\text{min}}\\), \\(\\theta\\), and \\(a\\) are defined for each angle type.\n\nThe potential is bounded between \\([-U_{\\text{min}}, 0]\\) and the minimum is\nlocated at the angle \\(\\theta_0\\). The a parameter can be both positive or\nnegative and is used to control the spring constant at the\nequilibrium.\n\nThe spring constant is given by \\(k = A \\exp(A) U_{\\text{min}} / [2 (\\exp(a)-1)]\\).\nFor \\(a > 3\\), \\(\\frac{k}{U_{\\text{min}}} = \\frac{a}{2}\\) to better than 5% relative error. For negative\nvalues of the \\(a\\) parameter, the spring constant is essentially zero,\nand anharmonic terms takes over. The potential is furthermore well\nbehaved in the limit \\(a \\rightarrow 0\\), where it has been implemented to linear\norder in \\(a\\) for \\(a < 0.001\\). In this limit the potential reduces to the\ncosineshifted potential.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_min\\) (energy)\n* \\(\\theta\\) (angle)\n* \\(A\\) (real number)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[angle_style cosine/shift ](https://docs.lammps.org/angle_cosine_shift.html),\n[dihedral_style cosine/shift/exp ](https://docs.lammps.org/dihedral_cosine_shift_exp.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* accelerate/cos = style name of this fix command\n* value = amplitude of acceleration (in unit of velocity/time) \n", + "examples": "\n```lmps\nfix 1 all accelerate/cos 0.02e-5\n```\n", + "html_filename": "fix_accelerate_cos.html", + "short_description": "Give each atom a acceleration in x-direction based on its z coordinate", + "description": "Give each atom a acceleration in x-direction based on its z coordinate.\nThe acceleration is a periodic function along the z-direction:\n\\[\n a_{x}(z) = A \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nwhere \\(A\\) is the acceleration amplitude, \\(l_z\\) is the\n\\(z\\)-length of the simulation box.\nAt steady state, the acceleration generates a velocity profile:\n\\[\n v_{x}(z) = V \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nThe generated velocity amplitude \\(V\\) is related to the\nshear viscosity \\(\\eta\\) by:\n\\[\n V = \\frac{A \\rho}{\\eta}\\left(\\frac{l_{z}}{2 \\pi}\\right)^{2}\\]\nand it can be obtained from ensemble average of the velocity profile:\n\\[\n V = \\frac{\\sum\\limits_i 2 m_{i} v_{i, x} \\cos \\left(\\frac{2 \\pi z_i}{l_{z}}\\right)}{\\sum\\limits_i m_{i}},\\]\nwhere \\(m_i\\), \\(v_{i,x}\\), and \\(z_i\\) are the mass,\n\\(x\\)-component velocity, and \\(z\\)-coordinate of a particle,\nrespectively.\n\nThe velocity amplitude \\(V\\) can be calculated with\n[compute viscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html),\nwhich enables viscosity calculation with periodic perturbation method,\nas described by **Hess2**.\nBecause the applied acceleration drives the system away from equilibration,\nthe calculated shear viscosity is lower than the intrinsic viscosity\ndue to the shear-thinning effect.\nExtrapolation to zero acceleration should generally be performed to\npredict the zero-shear viscosity.\nAs the shear stress decreases, the signal-noise ratio decreases rapidly,\nthe simulation time must be extended accordingly to get converged result.\n\nIn order to get meaningful result, the group ID of this fix should be all.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to binary restart files.\nNone of the fix_modify options are relevant to this fix.\nNo global or per-atom quantities are stored by this fix for access by various\noutput commands. No parameter of this fix can be used with the start/stop\nkeywords of the run command.\nThis fix is not invoked during energy minimization.\n\n**(Hess2)** Hess, B. Journal of Chemical Physics 2002, 116 (1), 209--217. \n ", + "restrictions": "This command is only available when LAMMPS was built with the MISC package.\nSince this fix depends on the \\(z\\)-coordinate of atoms, it cannot be used\nin 2d simulations.\n", + "related": "[compute viscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html)\n" }, { "command": [ - "compute centro/atom" + "fix langevin/spin" ], "syntax": [ - "compute ID group-ID centro/atom lattice keyword value ..." + "fix ID group-ID langevin/spin T Tdamp seed" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -15811,98 +15203,100 @@ export const command_docs = [ "choices": [] }, { - "arg": "centro/atom", + "arg": "langevin/spin", "type": 1, "choices": [] }, { - "arg": "bcc", - "type": 3, - "choices": [ - "fcc", - "bcc" - ] + "arg": "T", + "type": 2, + "choices": [] }, { - "arg": "keyword", + "arg": "Tdamp", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* centro/atom = style name of this compute command\n* lattice = fcc or bcc or N = # of neighbors per atom to include\n* zero or more keyword/value pairs may be appended\n* keyword = axes \n *      axes value = no or yes \n       no = do not calculate 3 symmetry axes \n       yes = calculate 3 symmetry axes \n", - "examples": "\n```lmps\ncompute 1 all centro/atom fcc\n\ncompute 1 all centro/atom 8\n```\n", - "html_filename": "compute_centro_atom.html", - "short_description": "Define a computation that calculates the centro-symmetry parameter for\neach atom in the group, for either FCC or BCC lattices, depending on\nthe choice of the *lattice* argument", - "description": "Define a computation that calculates the centro-symmetry parameter for\neach atom in the group, for either FCC or BCC lattices, depending on\nthe choice of the *lattice* argument. In solid-state systems the\ncentro-symmetry parameter is a useful measure of the local lattice\ndisorder around an atom and can be used to characterize whether the\natom is part of a perfect lattice, a local defect (e.g. a dislocation\nor stacking fault), or at a surface.\n\nThe value of the centro-symmetry parameter will be 0.0 for atoms not\nin the specified compute group.\n\nThis parameter is computed using the following formula from\n**Kelchner**\n\\[\n CS = \\sum_{i = 1}^{N/2} | \\vec{R}_i + \\vec{R}_{i+N/2} |^2\\]\nwhere the \\(N\\) nearest neighbors of each atom are identified and\n\\(\\vec{R}_i\\) and \\(\\vec{R}_{i+N/2}\\) are vectors from the\ncentral atom to a particular pair of nearest neighbors. There are\n\\(N (N-1)/2\\) possible neighbor pairs that can contribute to this\nformula. The quantity in the sum is computed for each, and the\n\\(N/2\\) smallest are used. This will typically be for pairs of\natoms in symmetrically opposite positions with respect to the central\natom; hence the \\(i+N/2\\) notation.\n\n\\(N\\) is an input parameter, which should be set to correspond to\nthe number of nearest neighbors in the underlying lattice of atoms.\nIf the keyword *fcc* or *bcc* is used, *N* is set to 12 and 8\nrespectively. More generally, *N* can be set to a positive, even\ninteger.\n\nFor an atom on a lattice site, surrounded by atoms on a perfect\nlattice, the centro-symmetry parameter will be 0. It will be near 0\nfor small thermal perturbations of a perfect lattice. If a point\ndefect exists, the symmetry is broken, and the parameter will be a\nlarger positive value. An atom at a surface will have a large\npositive parameter. If the atom does not have \\(N\\) neighbors\n(within the potential cutoff), then its centro-symmetry parameter is\nset to 0.0.\n\nIf the keyword *axes* has the setting *yes*, then this compute also\nestimates three symmetry axes for each atom's local neighborhood. The\nfirst two of these are the vectors joining the two pairs of neighbor\natoms with smallest contributions to the centrosymmetry parameter,\ni.e. the two most symmetric pairs of atoms. The third vector is\nnormal to the first two by the right-hand rule. All three vectors are\nnormalized to unit length. For FCC crystals, the first two vectors\nwill lie along a \\(\\langle110\\rangle\\) direction, while the third vector\nwill lie along either a \\(\\langle100\\rangle\\) or \\(\\langle111\\rangle\\)\ndirection. For HCP crystals, the first two vectors will lie along\n\\(\\langle1000\\rangle\\) directions, while the third vector\nwill lie along \\(\\langle0001\\rangle\\). This provides a simple way to\nmeasure local orientation in HCP structures. In general, the *axes* keyword\ncan be used to estimate the orientation of symmetry axes in the neighborhood\nof any atom.\n\nOnly atoms within the cutoff of the pairwise neighbor list are\nconsidered as possible neighbors. Atoms not in the compute group are\nincluded in the \\(N\\) neighbors used in this calculation.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*centro/atom* style.\n\n #### Output info\n\nBy default, this compute calculates the centrosymmetry value for each\natom as a per-atom vector, which can be accessed by any command that\nuses per-atom values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nIf the *axes* keyword setting is *yes*, then a per-atom array is\ncalculated. The first column is the centrosymmetry parameter. The\nnext three columns are the *x*, *y*, and *z* components of the first\nsymmetry axis, followed by the second, and third symmetry axes in\ncolumns 5--7 and 8--10.\n\nThe centrosymmetry values are unitless values \\(\\ge 0.0\\). Their magnitude\ndepends on the lattice style due to the number of contributing neighbor\npairs in the summation in the formula above. And it depends on the\nlocal defects surrounding the central atom, as described above. For\nthe *axes yes* case, the vector components are also unitless, since\nthey represent spatial directions.\n\nHere are typical centro-symmetry values, from a nanoindentation\nsimulation into gold (FCC). These were provided by Jon Zimmerman\n(Sandia):\n\n```\nBulk lattice = 0\nDislocation core ~ 1.0 (0.5 to 1.25)\nStacking faults ~ 5.0 (4.0 to 6.0)\nFree surface ~ 23.0\n```\nThese values are **not** normalized by the square of the lattice\nparameter. If they were, normalized values would be:\n\n```\nBulk lattice = 0\nDislocation core ~ 0.06 (0.03 to 0.075)\nStacking faults ~ 0.3 (0.24 to 0.36)\nFree surface ~ 1.38\n```\nFor BCC materials, the values for dislocation cores and free surfaces\nwould be somewhat different, due to their being only 8 neighbors instead\nof 12.\n\n**(Kelchner)** Kelchner, Plimpton, Hamilton, Phys Rev B, 58, 11085 (1998). \n ", - "restrictions": " none\n", - "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/spin = style name of this fix command\n* T = desired temperature of the bath (temperature units, K in metal units)\n* Tdamp = transverse magnetic damping parameter (adim)\n* seed = random number seed to use for white noise (positive integer) \n", + "examples": "\n```lmps\nfix 2 all langevin/spin 300.0 0.01 21\n```\n", + "html_filename": "fix_langevin_spin.html", + "short_description": "Apply a Langevin thermostat as described in **Mayergoyz1** to the\nmagnetic spins associated to the atoms", + "description": "Apply a Langevin thermostat as described in **Mayergoyz1** to the\nmagnetic spins associated to the atoms.\nUsed with [fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html), this command performs\nBrownian dynamics (BD).\nA random torque and a transverse dissipation are applied to each spin i according to\nthe following stochastic differential equation:\n\\[\n \\frac{d \\vec{s}_{i}}{dt} = \\frac{1}{\\left(1+\\lambda^2 \\right)} \\left( \\left(\n \\vec{\\omega}_{i} +\\vec{\\eta} \\right) \\times \\vec{s}_{i} + \\lambda\\, \\vec{s}_{i}\n \\times\\left( \\vec{\\omega}_{i} \\times\\vec{s}_{i} \\right) \\right)\\]\nwith \\(\\lambda\\) the transverse damping, and \\(\\eta\\) a random vector.\nThis equation is referred to as the stochastic Landau-Lifshitz (sLL)\nequation.\n\nThe components of \\(\\eta\\) are drawn from a Gaussian probability\nlaw. Their amplitude is defined as a proportion of the temperature of\nthe external thermostat T (in K in metal units).\n\nMore details about this implementation are reported in **Tranchida2**.\n\nNote: due to the form of the sLL equation, this fix has to be defined just\nbefore the nve/spin fix (and after all other magnetic fixes).\nAs an example:\n\n```lmps\nfix 1 all precession/spin zeeman 0.01 0.0 0.0 1.0\nfix 2 all langevin/spin 300.0 0.01 21\nfix 3 all nve/spin lattice moving\n```\nis correct, but defining a force/spin command after the langevin/spin command\nwould give an error message.\n\nNote: The random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Mayergoyz1)** I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) \n \n**(Tranchida2)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", + "restrictions": "The *langevin/spin* fix is part of the SPIN package. This style is\nonly enabled if LAMMPS was built with this package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe numerical integration has to be performed with *fix nve/spin*\nwhen *fix langevin/spin* is enabled.\n\nThis fix has to be the last defined magnetic fix before the time\nintegration fix (e.g. *fix nve/spin*\\ ).\n", + "related": "[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html), [fix precession/spin ](https://docs.lammps.org/fix_precession_spin.html)\n" }, { "command": [ - "fix_modify AtC output boundary_integral" + "fix sgcmc" ], "syntax": [ - "fix_modify output boundary_integral faceset [name]" + "fix ID group-ID sgcmc every_nsteps swap_fraction temperature deltamu ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "output", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "boundary_integral", + "arg": "sgcmc", "type": 1, "choices": [] }, { - "arg": "", + "arg": "every_nsteps", "type": 2, "choices": [] }, { - "arg": "faceset", - "type": 1, + "arg": "swap_fraction", + "type": 2, "choices": [] }, { - "arg": "[name]", + "arg": "temperature", + "type": 2, + "choices": [] + }, + { + "arg": "deltamu", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output boundary_integral = name of the AtC sub-command\n* fieldname = name of hardy field\n* faceset = required keyword\n* name= name of faceset \n", - "examples": "\n```lmps\nfix_modify AtC output boundary_integral stress faceset loop1\n```\n", - "html_filename": "atc_output_boundary_integral.html", - "short_description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file", - "description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file.\n", - "restrictions": "Must be used with the hardy/field type of [fix atc ](https://docs.lammps.org/fix_atc.html)\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sgcmc = style name of this fix command\n* every_nsteps = number of MD steps between MC cycles\n* swap_fraction = fraction of a full MC cycle carried out at each call (a value of 1.0 will perform as many trial moves as there are atoms)\n* temperature = temperature that enters Boltzmann factor in Metropolis criterion (usually the same as MD temperature)\n* deltamu = `N-1` chemical potential differences \\(\\mu_1-\\mu_2, \\ldots, \\mu_1-\\mu_N\\) (`N` is the number of atom types)\n* Zero or more keyword/value pairs may be appended to fix definition line: \n *      keyword = variance or randseed or window_moves or window_size \n       variance kappa conc1 [conc2] ... [concN] \n       kappa = variance constraint parameter \n       `c_2`, `c_3`,..., `c_N` = `N-1` target concentration fractions \n       randseed N \n       N = seed for pseudo random number generator \n       window_moves N \n       N = number of times sampling window is moved during one MC cycle \n       window_size frac \n       frac = size of sampling window (must be between 0.5 and 1.0) \n", + "examples": "\n```lmps\nfix mc all sgcmc 50 0.1 400.0 -0.55\nfix vc all sgcmc 20 0.2 700.0 -0.7 randseed 324234 variance 2000.0 0.05\nfix 2 all sgcmc 20 0.1 700.0 -0.7 window_moves 20\n```\n", + "html_filename": "fix_sgcmc.html", + "short_description": "\nThis command allows to carry out parallel hybrid molecular\ndynamics/Monte Carlo (MD/MC) simulations using the algorithms described\nin **Sadigh1**", + "description": "\nThis command allows to carry out parallel hybrid molecular\ndynamics/Monte Carlo (MD/MC) simulations using the algorithms described\nin **Sadigh1**. Simulations can be carried out in either\nthe semi-grand canonical (SGC) or variance constrained semi-grand\ncanonical (VC-SGC) ensemble **Sadigh2**. Only atom type\nswaps are performed by the SGCMC fix. Relaxations are accounted for by\nthe molecular dynamics integration steps.\n\nThis fix can be used with standard multi-element EAM potentials\n([pair styles eam/alloy or eam/fs ](https://docs.lammps.org/pair_eam.html))\n\nThe SGCMC fix can handle Finnis/Sinclair type EAM potentials where\n\\(\\rho(r)\\) is atom-type specific, such that different elements can\ncontribute differently to the total electron density at an atomic site\ndepending on the identity of the element at that atomic site.\n\n------------\n\nIf this fix is applied, the regular MD simulation will be interrupted in\ndefined intervals to carry out a fraction of a Monte Carlo (MC)\ncycle. The interval is set using the parameter *every_nsteps* which\ndetermines how many MD integrator steps are taken between subsequent\ncalls to the MC routine.\n\nIt is possible to carry out pure lattice MC simulations by setting\n*every_nsteps* to 1 and not defining an integration fix such as NVE,\nNPT etc. In that case, the particles will not move and only the MC\nroutine will be called to perform atom type swaps.\n\nThe parameter *swap_fraction* determines how many MC trial steps are carried\nout every time the MC routine is entered. It is measured in units of full MC\ncycles where one full cycle, *swap_fraction=1*, corresponds to as many MC\ntrial steps as there are atoms.\n\n------------\n\nThe parameter *temperature* specifies the temperature that is used\nto evaluate the Metropolis acceptance criterion. While it usually\nshould be set to the same value as the MD temperature there are cases\nwhen it can be useful to use two different values for at least part of\nthe simulation, e.g., to speed up equilibration at low temperatures.\n\n------------\n\nThe parameter *deltamu* is used to set the chemical potential differences\nin the SGC MC algorithm (see Eq. 16 in **Sadigh1**).\nThe `N-1` differences are defined as \\(\\mu_1-\\mu_2, \\ldots, \\mu_1-\\mu_N\\),\nwhere `N` is the number of atom types.\n\n------------\n\nThe variance-constrained SGC MC algorithm is activated if the keyword\n*variance* is used. In that case the fix parameter *deltamu* determines\nthe effective average constraint in the parallel VC-SGC MC algorithm\n(parameter \\(\\delta\\mu_0\\) in Eq. (20) of **Sadigh1**). The parameter *kappa* specifies the variance constraint\n(see Eqs. (20-21) in **Sadigh1**).\nThe parameter *conc* sets the `N-1` target atomic concentration\nfractions (parameter \\(c_0\\) in Eqs. (20-21) of **Sadigh1**)\n\\(0 \\le c_2, \\ldots, c_N \\le 1\\), with\n\\(c_1 = 1 - \\Sigma_{i=2}^N c_i\\).\nWhen the simulation includes `N` atom types (elements),\n`N-1` concentration values must be specified.\n\n------------\n\nThere are several technical parameters that can be set via optional flags.\n\n*randseed* is expected to be a positive integer number and is used\nto initialize the random number generator on each processor.\n\n*window_size* controls the size of the sampling window in a parallel MC\nsimulation. The size has to lie between 0.5 and 1.0. Normally, this\nparameter should be left unspecified which instructs the code to choose\nthe optimal window size automatically (see Sect. III.B and Figure 6 in\n**Sadigh1** for details).\n\nThe number of times the window is moved during a MC cycle is set using\nthe parameter *window_moves* (see Sect. III.B in **Sadigh1** for details).\n\n------------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to restart files.\n\nThe MC routine keeps track of the global concentration(s) as well as the\nnumber of accepted and rejected trial swaps during each MC step. These\nvalues are provided by the sgcmc fix in the form of a global vector that\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html)\ncomponents of the vector represent the following quantities:\n\n* 1 = The absolute number of accepted trial swaps during the last MC step\n* 2 = The absolute number of rejected trial swaps during the last MC step\n* 3 = Current global concentration `c_1` (= number of atoms of type 1 / total number of atoms)\n* 4 = Current global concentration `c_2` (= number of atoms of type 2 / total number of atoms)\n* ...\n* N+2: Current global concentration `c_N` (= number of atoms of type *N* / total number of atoms)\n\nThe vector values calculated by this fix are \"intensive\".\n\n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n \n**(Sadigh2)** B. Sadigh and P. Erhart, Phys. Rev. B **86**, 134204 (2012) \n \n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n \n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n ", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nAt present the fix provides optimized subroutines for EAM type\npotentials (see above) that calculate potential energy changes due to\n*local* atom type swaps very efficiently. Other potentials are\nsupported by using the generic potential functions. This, however, will\nlead to exceedingly slow simulations since it implies that the\nenergy of the *entire* system is recomputed at each MC trial step. If\nother potentials are to be used it is strongly recommended to modify and\noptimize the existing generic potential functions for this purpose.\nAlso, the generic energy calculation can not be used for parallel\nexecution i.e. it only works with a single MPI process.\n\n------------\n", + "related": "none" }, { "command": [ - "fix sph" + "fix spring" ], "syntax": [ - "fix ID group-ID sph" + "fix ID group-ID spring keyword values" ], "args": [ [ @@ -15922,270 +15316,206 @@ export const command_docs = [ "choices": [] }, { - "arg": "sph", + "arg": "spring", "type": 1, "choices": [] + }, + { + "arg": "couple", + "type": 3, + "choices": [ + "tether", + "couple" + ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sph = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all sph\n```\n", - "html_filename": "fix_sph.html", - "short_description": "Perform time integration to update position, velocity, internal energy\nand local density for atoms in the group each timestep", - "description": "Perform time integration to update position, velocity, internal energy\nand local density for atoms in the group each timestep. This fix is\nneeded to time-integrate SPH systems where particles carry internal\nvariables such as internal energy. SPH stands for Smoothed Particle\nHydrodynamics.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring = style name of this fix command\n* keyword = tether or couple \n *        tether values = K x y z R0 \n         K = spring constant (force/distance units) \n         x,y,z = point to which spring is tethered \n         R0 = equilibrium distance from tether point (distance units) \n *        couple values = group-ID2 K x y z R0 \n         group-ID2 = 2nd group to couple to fix group with a spring \n         K = spring constant (force/distance units) \n         x,y,z = direction of spring \n         R0 = equilibrium distance of spring (distance units) \n", + "examples": "\n```lmps\nfix pull ligand spring tether 50.0 0.0 0.0 0.0 0.0\nfix pull ligand spring tether 50.0 0.0 0.0 0.0 5.0\nfix pull ligand spring tether 50.0 NULL NULL 2.0 3.0\nfix 5 bilayer1 spring couple bilayer2 100.0 NULL NULL 10.0 0.0\nfix longitudinal pore spring couple ion 100.0 NULL NULL -20.0 0.0\nfix radial pore spring couple ion 100.0 0.0 0.0 NULL 5.0\n```\n", + "html_filename": "fix_spring.html", + "short_description": "Apply a spring force to a group of atoms or between two groups of\natoms", + "description": "Apply a spring force to a group of atoms or between two groups of\natoms. This is useful for applying an umbrella force to a small\nmolecule or lightly tethering a large group of atoms (e.g. all the\nsolvent or a large molecule) to the center of the simulation box so\nthat it does not wander away over the course of a long simulation. It\ncan also be used to hold the centers of mass of two groups of atoms at\na given distance or orientation with respect to each other.\n\nThe *tether* style attaches a spring between a fixed point *x,y,z* and\nthe center of mass of the fix group of atoms. The equilibrium\nposition of the spring is R0. At each timestep the distance R from\nthe center of mass of the group of atoms to the tethering point is\ncomputed, taking account of wrap-around in a periodic simulation box.\nA restoring force of magnitude K (R - R0) Mi / M is applied to each\natom in the group where *K* is the spring constant, Mi is the mass of\nthe atom, and M is the total mass of all atoms in the group. Note\nthat *K* thus represents the spring constant for the total force on\nthe group of atoms, not for a spring applied to each atom.\n\nThe *couple* style links two groups of atoms together. The first\ngroup is the fix group; the second is specified by group-ID2. The\ngroups are coupled together by a spring that is at equilibrium when\nthe two groups are displaced by a vector *x,y,z* with respect to each\nother and at a distance R0 from that displacement. Note that *x,y,z*\nis the equilibrium displacement of group-ID2 relative to the fix\ngroup. Thus (1,1,0) is a different spring than (-1,-1,0). When the\nrelative positions and distance between the two groups are not in\nequilibrium, the same spring force described above is applied to atoms\nin each of the two groups.\n\nFor both the *tether* and *couple* styles, any of the x,y,z values can\nbe specified as NULL which means do not include that dimension in the\ndistance calculation or force application.\n\nThe first example above pulls the ligand towards the point (0,0,0).\nThe second example holds the ligand near the surface of a sphere of\nradius 5 around the point (0,0,0). The third example holds the ligand\na distance 3 away from the z=2 plane (on either side).\n\nThe fourth example holds 2 bilayers a distance 10 apart in z. For the\nlast two examples, imagine a pore (a slab of atoms with a cylindrical\nhole cut out) oriented with the pore axis along z, and an ion moving\nwithin the pore. The fifth example holds the ion a distance of -20\nbelow the z = 0 center plane of the pore (umbrella sampling). The\nlast example holds the ion a distance 5 away from the pore axis\n(assuming the center-of-mass of the pore in x,y is the pore axis).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The center of mass of a group of atoms is calculated in\n > \"unwrapped\" coordinates using atom image flags, which means that the\n > group can straddle a periodic boundary. See the [dump ](https://docs.lammps.org/dump.html) doc\n > page for a discussion of unwrapped coordinates. It also means that a\n > spring connecting two groups or a group and the tether point can cross\n > a periodic boundary and its length be calculated correctly. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the spring to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the spring energy\n= 0.5 \\* K \\* r\\^2.\n\nThis fix also computes global 4-vector which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The first 3 quantities\nin the vector are xyz components of the total force added to the group\nof atoms by the spring. In the case of the *couple* style, it is the\nforce on the fix group (group-ID) or the negative of the force on the\nsecond group (group-ID2). The fourth quantity in the vector is the\nmagnitude of the force added by the spring, as a positive value if\n(r-R0) > 0 and a negative value if (r-R0) < 0. This sign convention\ncan be useful when using the spring force to compute a potential of\nmean force (PMF).\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the spring energy to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this\n > fix. \n > \n\n", + "restrictions": " none\n", + "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" }, { "command": [ - "compute_modify" + "dihedral_coeff" ], "syntax": [ - "compute_modify compute-ID keyword value ..." + "dihedral_coeff N args" ], "args": [ [ { - "arg": "compute_modify", + "arg": "dihedral_coeff", "type": 1, "choices": [] }, { - "arg": "compute-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "dynamic/dof", - "type": 3, - "choices": [ - "extra/dof", - "dynamic/dof" - ] - }, - { - "arg": "value", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* compute-ID = ID of the compute to modify\n* one or more keyword/value pairs may be listed\n* keyword = extra/dof or dynamic/dof \n *        extra/dof value = N \n         N = # of extra degrees of freedom to subtract \n *        dynamic/dof value = yes or no \n         yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature \n", - "examples": "\n```lmps\ncompute_modify myTemp extra/dof 0\ncompute_modify newtemp dynamic/dof yes extra/dof 600\n```\n", - "html_filename": "compute_modify.html", - "short_description": "Modify one or more parameters of a previously defined compute", - "description": "Modify one or more parameters of a previously defined compute. Not\nall compute styles support all parameters.\n\nThe *extra/dof* keyword refers to how many degrees of freedom are\nsubtracted (typically from \\(3N\\)) as a normalizing factor in a\ntemperature computation. Only computes that compute a temperature use\nthis option. The default is 2 or 3 for [2d or 3d systems](https://docs.lammps.org/dimension.html) which is a correction factor for an ensemble of velocities\nwith zero total linear momentum. For compute temp/partial, if one or\nmore velocity components are excluded, the value used for *extra/dof* is\nscaled accordingly. You can use a negative number for the *extra/dof*\nparameter if you need to add degrees-of-freedom. See the [computetemp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) command for an example.\n\nThe *dynamic/dof* keyword determines whether the number\nof atoms \\(N\\) in the compute group and their associated degrees\nof freedom (DOF) are re-computed each time a temperature is computed.\nOnly compute styles that calculate a temperature use this option. By\ndefault, \\(N\\) and their DOF are assumed to be constant. If you\nare adding atoms or molecules to the system (see the [fix pour](https://docs.lammps.org/fix_pour.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html), and [fix gcmc](https://docs.lammps.org/fix_gcmc.html) commands) or expect atoms or molecules to be lost\n(e.g. due to exiting the simulation box or via [fix evaporate](https://docs.lammps.org/fix_evaporate.html)), then this option should be used to ensure the\ntemperature is correctly normalized.\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html)\n" + "parameters": "* N = numeric dihedral type (see asterisk form below) or alphanumeric type label\n* args = coefficients for one or more dihedral types \n", + "examples": "\n```lmps\ndihedral_coeff 1 80.0 1 3\ndihedral_coeff * 80.0 1 3 0.5\ndihedral_coeff 2* 80.0 1 3 0.5\n\nlabelmap dihedral 1 backbone\ndihedral_coeff backbone 80.0 1 3\n```\n", + "html_filename": "dihedral_coeff.html", + "short_description": "Specify the dihedral force field coefficients for one or more dihedral\ntypes", + "description": "Specify the dihedral force field coefficients for one or more dihedral\ntypes. The number and meaning of the coefficients depends on the\ndihedral style. Dihedral coefficients can also be set in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be\nan alphanumeric type label, which is a string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a corresponding section of a\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple dihedral types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of dihedral types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using a dihedral_coeff command can override a previous setting\nfor the same dihedral type. For example, these commands set the coeffs\nfor all dihedral types, then overwrite the coeffs for just dihedral type\n2:\n\n```lmps\ndihedral_coeff * 80.0 1 3\ndihedral_coeff 2 200.0 1 3\n```\nA line in a data file that specifies dihedral coefficients uses the exact\nsame format as the arguments of the dihedral_coeff command in an input\nscript, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For example,\nunder the \"Dihedral Coeffs\" section of a data file, the line that\ncorresponds to the first example above would be listed as\n\n```\n1 80.0 1 3\n```\nThe [dihedral_style class2 ](https://docs.lammps.org/dihedral_class2.html) is an exception to\nthis rule, in that an additional argument is used in the input script\nto allow specification of the cross-term coefficients. See its doc\npage for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When comparing the formulas and coefficients for various LAMMPS\n > dihedral styles with dihedral equations defined by other force fields,\n > note that some force field implementations divide/multiply the energy\n > prefactor *K* by the multiple number of torsions that contain the\n > *J* --\\ *K* bond in an *I* -\\ *J* -\\ *K* -\\ *L* torsion. LAMMPS does\n > not do this (i.e., the listed dihedral equation applies to each individual\n > dihedral). Thus, you need to define *K* appropriately to account for this\n > difference, if necessary. \n > \n\n----------\n\nThe list of all dihedral styles defined in LAMMPS is given on the\n[dihedral_style ](https://docs.lammps.org/dihedral_style.html) doc page. They are also listed\nin more compact form on the :ref:`Commands dihedral ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\ndihedral_coeff command.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nA dihedral style must be defined before any dihedral coefficients are\nset, either in the input script or in a data file.\n", + "related": "[dihedral_style ](https://docs.lammps.org/dihedral_style.html)\n" }, { "command": [ - "fix_modify AtC mesh create_nodeset" + "fix addforce" ], "syntax": [ - "fix_modify mesh create_nodeset " + "fix ID group-ID addforce fx fy fz keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "create_nodeset", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, + "arg": "addforce", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "fx", "type": 2, "choices": [] }, { - "arg": "", + "arg": "fy", "type": 2, "choices": [] }, { - "arg": "", + "arg": "fz", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] + "arg": "energy", + "type": 3, + "choices": [ + "every", + "region", + "energy" + ] }, { - "arg": "", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_nodeset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains only the desired nodes \n", - "examples": "\n```lmps\nfix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -12 12 -12 12\n```\n", - "html_filename": "atc_mesh_create_nodeset.html", - "short_description": "Command to assign an id to a set of FE nodes to be used subsequently in\ndefining boundary conditions", - "description": "Command to assign an id to a set of FE nodes to be used subsequently in\ndefining boundary conditions.\n", - "restrictions": "None\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh add_to_nodeset ](https://docs.lammps.org/atc_mesh_add_to_nodeset.html)\n" -}, -{ - "command": [ - "unfix" - ], - "syntax": [ - "unfix fix-ID" - ], - "args": [ - [ - { - "arg": "unfix", - "type": 1, - "choices": [] - }, - { - "arg": "fix-ID", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* fix-ID = ID of a previously defined fix \n", - "examples": "\n```lmps\nunfix 2\nunfix lower-boundary\n```\n", - "html_filename": "unfix.html", - "short_description": "Delete a fix that was previously defined with a [fix ](https://docs.lammps.org/fix.html)\ncommand", - "description": "Delete a fix that was previously defined with a [fix ](https://docs.lammps.org/fix.html)\ncommand. This also wipes out any additional changes made to the fix\nvia the [fix_modify ](https://docs.lammps.org/fix_modify.html) command.\n", + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* addforce = style name of this fix command\n* fx,fy,fz = force component values (force units) \n *        any of fx,fy,fz can be a variable (see below) \n* zero or more keyword/value pairs may be appended to args\n* keyword = every or region or energy \n *        every value = Nevery \n         Nevery = add force every this many time steps \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n *        energy value = v_name \n         v_name = variable with name that calculates the potential energy of each atom in the added force field \n", + "examples": "\n```lmps\nfix kick flow addforce 1.0 0.0 0.0\nfix kick flow addforce 1.0 0.0 v_oscillate\nfix ff boundary addforce 0.0 0.0 v_push energy v_espace\n```\n", + "html_filename": "fix_addforce.html", + "short_description": "Add \\((f_x,f_y,f_z)\\) to the corresponding component of the force for each\natom in the group", + "description": "Add \\((f_x,f_y,f_z)\\) to the corresponding component of the force for each\natom in the group. This command can be used to give an additional push to\natoms in a simulation, such as for a simulation of Poiseuille flow in\na channel.\n\nAny of the three quantities defining the force components, namely \\(f_x\\),\n\\(f_y\\), and \\(f_z\\), can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be specified\nas v_name, where name is the variable name. In this case, the variable\nwill be evaluated each time step, and its value(s) will be used to determine\nthe force component(s).\n\nEqual-style variables can specify formulas with various mathematical\nfunctions and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters, time step, and elapsed time.\nThus, it is easy to specify a time-dependent force field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus, it is easy to specify a spatially-dependent force\nfield with optional time-dependence as well.\n\nIf the *every* keyword is used, the *Nevery* setting determines how\noften the forces are applied. The default value is 1, for every\ntime step.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nAdding a force to atoms implies a change in their potential energy as\nthey move due to the applied force field. For dynamics via the \"run\"\ncommand, this energy can be optionally added to the system's potential\nenergy for thermodynamic output (see below). For energy minimization\nvia the \"minimize\" command, this energy must be added to the system's\npotential energy to formulate a self-consistent minimization problem\n(see below).\n\nThe *energy* keyword is not allowed if the added force is a constant\nvector \\(\\vec F = (f_x,f_y,f_z)\\), with all components defined as numeric\nconstants and not as variables. This is because LAMMPS can compute\nthe energy for each atom directly as\n\\[ E = -\\vec x \\cdot \\vec F = -(x f_x + y f_y + z f_z),\\]\nso that \\(-\\vec\\nabla E = \\vec F\\).\n\nThe *energy* keyword is optional if the added force is defined with\none or more variables, and if you are performing dynamics via the\n[run ](https://docs.lammps.org/run.html) command. If the keyword is not used, LAMMPS will set\nthe energy to 0.0, which is typically fine for dynamics.\n\nThe *energy* keyword is required if the added force is defined with\none or more variables, and you are performing energy minimization via\nthe \"minimize\" command. The keyword specifies the name of an\natom-style [variable ](https://docs.lammps.org/variable.html) which is used to compute the\nenergy of each atom as function of its position. Like variables used\nfor \\(f_x\\), \\(f_y\\), \\(f_z\\), the energy variable is specified as\nv_name, where name is the variable name.\n\nNote that when the *energy* keyword is used during an energy\nminimization, you must ensure that the formula defined for the\natom-style [variable ](https://docs.lammps.org/variable.html) is consistent with the force\nvariable formulas (i.e., that \\(-\\vec\\nabla E = \\vec F\\)).\nFor example, if the force were a spring-like, \\(\\vec F = -k\\vec x\\), then\nthe energy formula should be \\(E = \\frac12 kx^2\\). If you do not do this\ncorrectly, the minimization will not converge properly.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy inferred by the added force to\nthe global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nenergy is a fictitious quantity but is needed so that the\n[minimize ](https://docs.lammps.org/minimize.html) command can include the forces added by\nthis fix in a consistent manner (i.e., there is a decrease in\npotential energy when atoms move in the direction of the added force).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces on atoms to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar and a global three-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the potential energy discussed above.\nThe vector is the total force on the group of atoms before the forces\non individual atoms are changed by the fix. The scalar and vector\nvalues calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the time step as\nthe iteration count during the minimization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", "restrictions": " none\n", - "related": "[fix ](https://docs.lammps.org/fix.html)\n" + "related": "[fix setforce ](https://docs.lammps.org/fix_setforce.html), [fix aveforce ](https://docs.lammps.org/fix_aveforce.html)\n" }, { "command": [ - "compute cnp/atom" + "group2ndx" ], "syntax": [ - "compute ID group-ID cnp/atom cutoff" + "group2ndx file args" ], "args": [ [ { - "arg": "compute", + "arg": "group2ndx", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "cnp/atom", - "type": 1, - "choices": [] - }, - { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cnp/atom = style name of this compute command\n* cutoff = cutoff distance for nearest neighbors (distance units) \n", - "examples": "\n```lmps\ncompute 1 all cnp/atom 3.08\n```\n", - "html_filename": "compute_cnp_atom.html", - "short_description": "Define a computation that calculates the Common Neighborhood\nParameter (CNP) for each atom in the group", - "description": "Define a computation that calculates the Common Neighborhood\nParameter (CNP) for each atom in the group. In solid-state systems\nthe CNP is a useful measure of the local crystal structure\naround an atom and can be used to characterize whether the\natom is part of a perfect lattice, a local defect (e.g., a dislocation\nor stacking fault), or at a surface.\n\nThe value of the CNP parameter will be 0.0 for atoms not in the\nspecified compute group. Note that normally a CNP calculation should\nonly be performed on single component systems.\n\nThis parameter is computed using the following formula from\n**Tsuzuki2**\n\\[\n Q_{i} = \\frac{1}{n_i}\\sum_{j = 1}^{n_i} \\left\\lVert \\sum_{k = 1}^{n_{ij}} \\vec{R}_{ik} + \\vec{R}_{jk} \\right\\rVert^{2}\\]\nwhere the index *j* goes over the \\(n_i\\) nearest neighbors of atom\n*i*, and the index *k* goes over the \\(n_{ij}\\) common nearest neighbors\nbetween atom *i* and atom *j* . \\(\\vec{R}_{ik}\\) and\n\\(\\vec{R}_{jk}\\) are the vectors connecting atom *k* to atoms *i*\nand *j* . The quantity in the double sum is computed\nfor each atom.\n\nThe CNP calculation is sensitive to the specified cutoff value.\nYou should ensure that the appropriate nearest neighbors of an atom are\nfound within the cutoff distance for the presumed crystal structure.\nE.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest\nneighbors for perfect BCC crystals. These formulas can be used to\nobtain a good cutoff distance:\n\\[\\begin{align*} \n r_{c}^{\\mathrm{fcc}} = & \\frac{1}{2} \\left(\\frac{\\sqrt{2}}{2} + 1\\right) a\n \\approx 0.8536 a \\\\\n r_{c}^{\\mathrm{bcc}} = & \\frac{1}{2}(\\sqrt{2} + 1) a\n \\approx 1.207 a \\\\\n r_{c}^{\\mathrm{hcp}} = & \\frac{1}{2}\\left(1+\\sqrt{\\frac{4+2x^{2}}{3}}\\right) a \\end{align*} \\]\nwhere \\(a\\) is the lattice constant for the crystal structure concerned\nand in the HCP case, \\(x = (c/a) / 1.633\\), where 1.633 is the ideal\n\\(c/a\\) for HCP crystals.\n\nAlso note that since the CNP calculation in LAMMPS uses the neighbors\nof an owned atom to find the nearest neighbors of a ghost atom, the\nfollowing relation should also be satisfied:\n\\[\n r_c + r_s > 2*{\\rm cutoff}\\]\nwhere \\(r_c\\) is the cutoff distance of the potential, \\(r_s\\) is\nthe skin\ndistance as specified by the [neighbor ](https://docs.lammps.org/neighbor.html) command, and\ncutoff is the argument used with the compute cnp/atom command. LAMMPS\nwill issue a warning if this is not the case.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*cnp/atom* style.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be real positive numbers. Some typical CNP\nvalues:\n\n```\nFCC lattice = 0.0\nBCC lattice = 0.0\nHCP lattice = 4.4\n\nFCC (111) surface = 13.0\nFCC (100) surface = 26.5\nFCC dislocation core = 11\n```\n\n**(Tsuzuki2)** Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" + "parameters": "* file = name of index file to write out or read in\n* args = zero or more group IDs may be appended \n", + "examples": "\n```lmps\ngroup2ndx allindex.ndx\ngroup2ndx someindex.ndx upper lower mobile\nndx2group someindex.ndx\nndx2group someindex.ndx mobile\n```\n", + "html_filename": "group2ndx.html", + "short_description": "Write or read a Gromacs style index file in text format that associates\natom IDs with the corresponding group definitions", + "description": "Write or read a Gromacs style index file in text format that associates\natom IDs with the corresponding group definitions. This index file can be\nused with in combination with Gromacs analysis tools or to import group\ndefinitions into the [fix colvars ](https://docs.lammps.org/fix_colvars.html) input file.\n\nIt can also be used to save and restore group definitions for static groups\nusing the individual atom IDs. This may be important if the original\ngroup definition depends on a region or otherwise on the geometry and thus\ncannot be easily recreated.\n\nAnother application would be to import atom groups defined for Gromacs\nsimulation into LAMMPS. When translating Gromacs topology and geometry\ndata to LAMMPS.\n\nThe *group2ndx* command will write group definitions to an index file.\nWithout specifying any group IDs, all groups will be written to the\nindex file. When specifying group IDs, only those groups will be\nwritten to the index file. In order to follow the Gromacs conventions,\nthe group *all* will be renamed to *System* in the index file.\n\nThe *ndx2group* command will create of update group definitions from\nthose stored in an index file. Without specifying any group IDs, all\ngroups except *System* will be read from the index file and the\ncorresponding groups recreated. If a group of the same name already\nexists, it will be completely reset. When specifying group IDs, those\ngroups, if present, will be read from the index file and restored.\n\n #### File Format\n\nThe file format is equivalent and compatible with what is produced by\nthe [Gromacs make_ndx command](https://manual.gromacs.org/current/onlinehelp/gmx-make_ndx.html).\nand follows the [Gromacs definition of an ndx file](https://manual.gromacs.org/current/reference-manual/file-formats.html#ndx)\n\nEach group definition begins with the group name in square brackets with\nblanks, e.g. \\[ water \\] and is then followed by the list of atom\nindices, which may be spread over multiple lines. Here is a small\nexample file:\n\n```ini\n[ Oxygen ]\n1 4 7\n[ Hydrogen ]\n2 3 5 6\n8 9\n[ Water ]\n1 2 3 4 5 6 7 8 9\n```\nThe index file defines 3 groups: Oxygen, Hydrogen, and Water and the\nlatter happens to be the union of the first two.\n\n----------\n", + "restrictions": "These commands require that atoms have atom IDs, since this is the\ninformation that is written to the index file.\n\nThese commands are part of the EXTRA-COMMAND package. They are only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[group ](https://docs.lammps.org/group.html), [dump ](https://docs.lammps.org/dump.html), [fix colvars ](https://docs.lammps.org/fix_colvars.html)\n" }, { "command": [ - "fix restrain" + "angle_style none" ], "syntax": [ - "fix ID group-ID restrain keyword args ..." + "angle_style none" ], "args": [ [ { - "arg": "fix", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "restrain", + "arg": "none", "type": 1, "choices": [] - }, - { - "arg": "dihedral", - "type": 3, - "choices": [ - "bond", - "lbound", - "angle", - "dihedral" - ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* restrain = style name of this fix command\n* one or more keyword/arg pairs may be appended\n* keyword = bond or lbound or angle or dihedral \n *        bond args = atom1 atom2 Kstart Kstop r0start (r0stop) \n         atom1,atom2 = IDs of two atoms in bond \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         r0start = equilibrium bond distance at start of run (distance units) \n         r0stop = equilibrium bond distance at end of run (optional) (distance units). If not \n         specified it is assumed to be equal to r0start \n *        lbound args = atom1 atom2 Kstart Kstop r0start (r0stop) \n         atom1,atom2 = IDs of two atoms in bond \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         r0start = equilibrium bond distance at start of run (distance units) \n         r0stop = equilibrium bond distance at end of run (optional) (distance units). If not \n         specified it is assumed to be equal to r0start \n *        angle args = atom1 atom2 atom3 Kstart Kstop theta0 \n         atom1,atom2,atom3 = IDs of three atoms in angle, atom2 = middle atom \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         theta0 = equilibrium angle theta (degrees) \n *        dihedral args = atom1 atom2 atom3 atom4 Kstart Kstop phi0 keyword/value \n         atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order \n         Kstart,Kstop = restraint coefficients at start/end of run (energy units) \n         phi0 = equilibrium dihedral angle phi (degrees) \n         keyword/value = optional keyword value pairs. supported keyword/value pairs: \n         mult n = dihedral multiplicity n (integer >= 0, default = 1) \n", - "examples": "\n```lmps\nfix holdem all restrain bond 45 48 2000.0 2000.0 2.75\nfix holdem all restrain lbound 45 48 2000.0 2000.0 2.75\nfix holdem all restrain dihedral 1 2 3 4 2000.0 2000.0 120.0\nfix holdem all restrain bond 45 48 2000.0 2000.0 2.75 dihedral 1 2 3 4 2000.0 2000.0 120.0\nfix texas_holdem all restrain dihedral 1 2 3 4 0.0 2000.0 120.0 dihedral 1 2 3 5 0.0 2000.0 -120.0 dihedral 1 2 3 6 0.0 2000.0 0.0\n```\n", - "html_filename": "fix_restrain.html", - "short_description": "Restrain the motion of the specified sets of atoms by making them part\nof a bond or angle or dihedral interaction whose strength can vary\nover time during a simulation", - "description": "Restrain the motion of the specified sets of atoms by making them part\nof a bond or angle or dihedral interaction whose strength can vary\nover time during a simulation. This is functionally similar to\ncreating a bond or angle or dihedral for the same atoms in a data\nfile, as specified by the [read_data ](https://docs.lammps.org/read_data.html) command, albeit\nwith a time-varying prefactor coefficient, and except for exclusion\nrules, as explained below.\n\nFor the purpose of force field parameter-fitting or mapping a molecular\npotential energy surface, this fix reduces the hassle and risk\nassociated with modifying data files. In other words, use this fix to\ntemporarily force a molecule to adopt a particular conformation. To\ncreate a permanent bond or angle or dihedral, you should modify the\ndata file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Adding a bond/angle/dihedral with this command does not apply\n > the exclusion rules and weighting factors specified by the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command to atoms in the restraint\n > that are now bonded (1-2,1-3,1-4 neighbors) as a result. If they are\n > close enough to interact in a [pair_style ](https://docs.lammps.org/pair_style.html) sense\n > (non-bonded interaction), then the bond/angle/dihedral restraint\n > interaction will simply be superposed on top of that interaction. \n > \n\nThe group-ID specified by this fix is ignored.\n\nThe second example above applies a restraint to hold the dihedral\nangle formed by atoms 1, 2, 3, and 4 near 120 degrees using a constant\nrestraint coefficient. The fourth example applies similar restraints\nto multiple dihedral angles using a restraint coefficient that\nincreases from 0.0 to 2000.0 over the course of the run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Adding a force to atoms implies a change in their potential\n > energy as they move due to the applied force field. For dynamics via\n > the [run ](https://docs.lammps.org/run.html) command, this energy can be added to the system's\n > potential energy for thermodynamic output (see below). For energy\n > minimization via the [minimize ](https://docs.lammps.org/minimize.html) command, this energy\n > must be added to the system's potential energy to formulate a\n > self-consistent minimization problem (see below). \n > \n\nIn order for a restraint to be effective, the restraint force must\ntypically be significantly larger than the forces associated with\nconventional force field terms. If the restraint is applied during a\ndynamics run (as opposed to during an energy minimization), a large\nrestraint coefficient can significantly reduce the stable timestep\nsize, especially if the atoms are initially far from the preferred\nconformation. You may need to experiment to determine what value of \\(K\\)\nworks best for a given application.\n\nFor the case of finding a minimum energy structure for a single\nmolecule with particular restraints (e.g. for fitting force field\nparameters or constructing a potential energy surface), commands such\nas the following may be useful:\n\n```lmps\n# minimize molecule energy with restraints\nvelocity all create 600.0 8675309 mom yes rot yes dist gaussian\nfix NVE all nve\nfix TFIX all langevin 600.0 0.0 100 24601\nfix REST all restrain dihedral 2 1 3 8 0.0 5000.0 ${angle1} dihedral 3 1 2 9 0.0 5000.0 ${angle2}\nfix_modify REST energy yes\nrun 10000\nfix TFIX all langevin 0.0 0.0 100 24601\nfix REST all restrain dihedral 2 1 3 8 5000.0 5000.0 ${angle1} dihedral 3 1 2 9 5000.0 5000.0 ${angle2}\nfix_modify REST energy yes\nrun 10000\n# sanity check for convergence\nminimize 1e-6 1e-9 1000 100000\n# report unrestrained energies\nunfix REST\nrun 0\n```\n----------\n\nThe *bond* keyword applies a bond restraint to the specified atoms\nusing the same functional form used by the [bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html) command. The potential associated with\nthe restraint is\n\\[\n E = K (r - r_0)^2\\]\nwith the following coefficients:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n\\(K\\) and \\(r_0\\) are specified with the fix. Note that the usual 1/2 factor\nis included in \\(K\\).\n\n----------\n\nThe *lbound* keyword applies a lower bound bond restraint to the specified atoms\nusing the same functional form used by the [bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html) command if the distance between\nthe atoms is smaller than the equilibrium bond distance and 0 otherwise. The potential associated with\nthe restraint is\n\\[\n E = K (r - r_0)^2 ,if\\;r < r_0\\]\n\\[\n E = 0 \\qquad\\quad\\quad ,if\\;r \\ge r_0\\]\nwith the following coefficients:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n\\(K\\) and \\(r_0\\) are specified with the fix. Note that the usual 1/2 factor\nis included in \\(K\\).\n\n----------\n\nThe *angle* keyword applies an angle restraint to the specified atoms\nusing the same functional form used by the [angle_style harmonic ](https://docs.lammps.org/angle_harmonic.html) command. The potential associated with\nthe restraint is\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwith the following coefficients:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(K\\) and \\(\\theta_0\\) are specified with the fix.\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2. Note that the usual 1/2 factor is included in \\(K\\).\n\n----------\n\nThe *dihedral* keyword applies a dihedral restraint to the specified\natoms using a simplified form of the function used by the\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) command. The potential\nassociated with the restraint is\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nwith the following coefficients:\n\n* \\(K\\) (energy)\n* \\(n\\) (multiplicity, >= 0)\n* \\(d\\) (degrees) = \\(\\phi_0 + 180\\)\n\n\\(K\\) and \\(\\phi_0\\) are specified with the fix. Note that the value of the\ndihedral multiplicity \\(n\\) is set by default to 1. You can use the\noptional *mult* keyword to set it to a different positive integer.\nAlso note that the energy will be a minimum when the\ncurrent dihedral angle \\(\\phi\\) is equal to \\(\\phi_0\\).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy associated with this fix to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html) The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\nThis fix computes a global scalar and a global vector of length 3,\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe scalar is the total potential energy for *all* the restraints as\ndiscussed above. The vector values are the sum of contributions to the\nfollowing individual categories:\n\n #. bond energy\n #. angle energy\n #. dihedral energy\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", - "restrictions": " none\n", - "related": "none\n" + "parameters": "", + "examples": "\n```lmps\nangle_style none\n```\n", + "html_filename": "angle_none.html", + "short_description": "Using an angle style of none means angle forces and energies are not\ncomputed, even if triplets of angle atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command", + "description": "Using an angle style of none means angle forces and energies are not\ncomputed, even if triplets of angle atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [angle_style zero ](https://docs.lammps.org/angle_zero.html) command for a way to\ncalculate angle statistics, but compute no angle interactions.\n", + "restrictions": "none\n", + "related": "[angle_style zero ](https://docs.lammps.org/angle_zero.html)\n" }, { "command": [ - "pair_style rebomos", - "pair_style rebomos/omp" + "pair_style colloid", + "pair_style colloid/gpu", + "pair_style colloid/omp" ], "syntax": [ - "pair_style rebomos" + "pair_style colloid cutoff" ], "args": [ [ @@ -16195,22 +15525,28 @@ export const command_docs = [ "choices": [] }, { - "arg": "rebomos", + "arg": "colloid", "type": 3, "choices": [ - "rebomos", - "rebomos/omp" + "colloid", + "colloid/gpu", + "colloid/omp" ] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] } ] ], - "parameters": "* rebomos = name of this pair style \n", - "examples": "\n```lmps\npair_style rebomos\npair_coeff * * ../potentials/MoS.rebomos Mo S\n```\nExample input scripts available: examples/threebody/\n", - "html_filename": "pair_rebomos.html", - "short_description": "\nThe *rebomos* pair style computes the interactions between molybdenum\nand sulfur atoms **Stewart** utilizing an adaptive\ninteratomic reactive empirical bond order potential that is similar in\nform to the AIREBO potential **Stuart2**", - "description": "\nThe *rebomos* pair style computes the interactions between molybdenum\nand sulfur atoms **Stewart** utilizing an adaptive\ninteratomic reactive empirical bond order potential that is similar in\nform to the AIREBO potential **Stuart2**. The potential\nis based on an earlier parameterizations for \\(\\text{MoS}_2\\)\ndeveloped by **Liang**.\n\nThe REBOMoS potential consists of two terms:\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i}\n \\left[ E^{\\text{REBO}}_{ij} + E^{\\text{LJ}}_{ij} \\right] \\\\ \\end{align*} \\]\nThe \\(E^{\\text{REBO}}\\) term describes the covalently bonded\ninteractions between Mo and S atoms while the \\(E^{\\text{LJ}}\\) term\ndescribes longer range dispersion forces between layers. A cubic spline\nfunction is applied to smoothly switch between covalent bonding at short\ndistances to dispersion interactions at longer distances. This allows\nthe model to capture bond formation and breaking events which may occur\nbetween adjacent MoS2 layers, edges, defects, and more.\n\n----------\n\nOnly a single pair_coeff command is used with the *rebomos* pair style\nwhich specifies an REBOMoS potential file with parameters for Mo and S.\nThese are mapped to LAMMPS atom types by specifying N additional\narguments after the filename in the pair_coeff command, where N is the\nnumber of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of REBOMoS elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has three atom types and you want\nthe first two to be Mo, and the third to be S, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * MoS.rebomos Mo Mo S\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first two Mo arguments map LAMMPS atom types 1 and 2 to the Mo\nelement in the REBOMoS file. The final S argument maps LAMMPS atom type\n3 to the S element in the REBOMoS file. If a mapping value is specified\nas NULL, the mapping is not performed. This can be used when a\n*rebomos* potential is used as part of the *hybrid* pair style. The\nNULL values are placeholders for atom types that will be used with other\npotentials.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write their information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stewart)** Stewart, Spearot, Modelling Simul. Mater. Sci. Eng. 21, 045003, (2013). \n \n**(Stuart2)** Stuart, Tutein, Harrison, J Chem Phys, 112, 6472-6486, (2000). \n \n**(Liang)** Liang, Phillpot, Sinnott Phys. Rev. B79 245110, (2009), Erratum: Phys. Rev. B85 199903(E), (2012) \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe MoS.rebomos potential file provided with LAMMPS (see the potentials\ndirectory) is parameterized for metal [units ](https://docs.lammps.org/units.html). You can use\nthe *rebomos* pair style with any LAMMPS units setting, but you would\nneed to create your own REBOMoS potential file with coefficients listed\nin the appropriate units.\n\nThe pair style provided here **only** supports potential files parameterized\nfor the elements molybdenum and sulfur (designated with \"Mo\" and \"S\" in the\n*pair_coeff* command. Using potential files for other elements will trigger\nan error.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair style rebo ](https://docs.lammps.org/pair_airebo.html)\n" + "parameters": "* cutoff = global cutoff for colloidal interactions (distance units) \n", + "examples": "\n```lmps\npair_style colloid 10.0\npair_coeff * * 25 1.0 10.0 10.0\npair_coeff 1 1 144 1.0 0.0 0.0 3.0\npair_coeff 1 2 75.398 1.0 0.0 10.0 9.0\npair_coeff 2 2 39.478 1.0 10.0 10.0 25.0\n```\n", + "html_filename": "pair_colloid.html", + "short_description": "Style *colloid* computes pairwise interactions between large colloidal\nparticles and small solvent particles using 3 formulas", + "description": "Style *colloid* computes pairwise interactions between large colloidal\nparticles and small solvent particles using 3 formulas. A colloidal\nparticle has a size > sigma; a solvent particle is the usual\nLennard-Jones particle of size sigma.\n\nThe colloid-colloid interaction energy is given by\n\\[\\begin{align*} \n U_A = & - \\frac{A_{cc}}{6} \\left[\n \\frac{2 a_1 a_2}{r^2-\\left(a_1+a_2\\right)^2}\n + \\frac{2 a_1 a_2}{r^2 - \\left(a_1 - a_2\\right)^2}\n + \\mathrm{ln}\n \\left(\n \\frac{r^2-\\left(a_1+a_2\\right)^2}{r^2-\\left(a_1-a_2\\right)^2}\n \\right)\n \\right] \\\\\n & \\\\\n U_R = & \\frac{A_{cc}}{37800} \\frac{\\sigma^6}{r}\n \\biggl[ \\frac{r^2-7r\\left(a_1+a_2\\right)+6\\left(a_1^2+7a_1a_2+a_2^2\\right)}\n {\\left(r-a_1-a_2\\right)^7} \\\\\n &\\qquad +\\frac{r^2+7r\\left(a_1+a_2\\right)+6\\left(a_1^2+7a_1a_2+a_2^2\\right)}\n {\\left(r+a_1+a_2\\right)^7} \\\\\n &\\qquad -\\frac{r^2+7r\\left(a_1-a_2\\right)+6\\left(a_1^2-7a_1a_2+a_2^2\\right)}\n {\\left(r+a_1-a_2\\right)^7} \\\\\n &\\qquad \\left. -\\frac{r^2-7r\\left(a_1-a_2\\right)+6\\left(a_1^2-7a_1a_2+a_2^2\\right)}\n {\\left(r-a_1+a_2\\right)^7}\n \\right] \\\\\n & \\\\\n U = & U_A + U_R, \\qquad r < r_c \\end{align*} \\]\nwhere \\(A_{cc}\\) is the Hamaker constant, \\(a_1\\) and \\(a_2\\) are the\nradii of the two colloidal particles, and \\(r_c\\) is the cutoff. This\nequation results from describing each colloidal particle as an\nintegrated collection of Lennard-Jones particles of size sigma and is\nderived in **Everaers1**.\n\nThe colloid-solvent interaction energy is given by\n\\[\n U = \\frac{2 ~ a^3 ~ \\sigma^3 ~ A_{cs}}{9 \\left( a^2 - r^2 \\right)^3}\n \\left[ 1 - \\frac{\\left(5 ~ a^6+45~a^4~r^2+63~a^2~r^4+15~r^6\\right) \\sigma^6}\n {15 \\left(a-r\\right)^6 \\left( a+r \\right)^6} \\right], \\quad r < r_c\\]\nwhere \\(A_{cs}\\) is the Hamaker constant, *a* is the radius of the colloidal\nparticle, and \\(r_c\\) is the cutoff. This formula is derived from the\ncolloid-colloid interaction, letting one of the particle sizes go to\nzero.\n\nThe solvent-solvent interaction energy is given by the usual\nLennard-Jones formula\n\\[\n U = \\frac{A_{ss}}{36} \\left[ \\left( \\frac{\\sigma}{r}\n \\right)^{12} - \\left( \\frac{ \\sigma}{r} \\right)^6 \\right], \\quad\n r < r_c\\]\nwith \\(A_{ss}\\) set appropriately, which results from letting both\nparticle sizes go to zero.\n\nWhen used in combination with [pair_style yukawa/colloid](https://docs.lammps.org/pair_yukawa_colloid.html), the two terms become the so-called DLVO potential,\nwhich combines electrostatic repulsion and van der Waals attraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* \\(\\sigma\\) (distance units)\n* d1 (distance units)\n* d2 (distance units)\n* cutoff (distance units)\n\nA is the Hamaker energy prefactor and should typically be set as\nfollows:\n\n* \\(A_{cc}\\) = colloid/colloid = \\(4 \\pi^2 = 39.5\\)\n* \\(A_{cs}\\) = colloid/solvent = \\(\\sqrt{A_{cc} A_{ss}}\\)\n* \\(A_{ss}\\) = solvent/solvent = 144 (assuming epsilon = 1, so that 144/36 = 4)\n\n\\(\\sigma\\) is the size of the solvent particle or the constituent\nparticles integrated over in the colloidal particle and should typically\nbe set as follows:\n\n* \\(\\sigma_{cc}\\) = colloid/colloid = 1.0\n* \\(\\sigma_{cs}\\) = colloid/solvent = arithmetic mixing between colloid \\(\\sigma\\) and solvent \\(\\sigma\\)\n* \\(\\sigma_{ss}\\) = solvent/solvent = 1.0 or whatever size the solvent particle is\n\nThus typically \\(\\sigma_{cs} = 1.0\\), unless the solvent particle's size !=\n1.0.\n\nD1 and d2 are particle diameters, so that d1 = 2\\*a1 and d2 = 2\\*a2 in\nthe formulas above. Both d1 and d2 must be values >= 0. If d1 > 0\nand d2 > 0, then the pair interacts via the colloid-colloid formula\nabove. If d1 = 0 and d2 = 0, then the pair interacts via the\nsolvent-solvent formula. I.e. a d value of 0 is a Lennard-Jones\nparticle of size \\(\\sigma\\). If either d1 = 0 or d2 = 0 and the other is\nlarger, then the pair interacts via the colloid-solvent formula.\n\nNote that the diameter of a particular particle type may appear in\nmultiple pair_coeff commands, as it interacts with other particle\ntypes. You should ensure the particle diameter is specified\nconsistently each time it appears.\n\nThe last coefficient is optional. If not specified, the global cutoff\nspecified in the pair_style command is used. However, you typically\nwant different cutoffs for interactions between different particle\nsizes. E.g. if colloidal particles of diameter 10 are used with\nsolvent particles of diameter 1, then a solvent-solvent cutoff of 2.5\nwould correspond to a colloid-colloid cutoff of 25. A good\nrule-of-thumb is to use a colloid-solvent cutoff that is half the big\ndiameter + 4 times the small diameter. I.e. 9 = 5 + 4 for the\ncolloid-solvent cutoff in this case.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using pair_style colloid for a mixture with 2 (or more)\n > widely different particles sizes (e.g. sigma=10 colloids in a\n > background sigma=1 LJ fluid), you will likely want to use these\n > commands for efficiency: [neighbor multi ](https://docs.lammps.org/neighbor.html) and\n > [comm_modify multi ](https://docs.lammps.org/comm_modify.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A, sigma, d1, and d2\ncoefficients and cutoff distance for this pair style can be mixed. A\nis an energy value mixed like a LJ epsilon. D1 and d2 are distance\nvalues and are mixed like sigma. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Everaers1)** Everaers, Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", + "restrictions": "This style is part of the COLLOID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nNormally, this pair style should be used with finite-size particles\nwhich have a diameter, e.g. see the [atom_style sphere ](https://docs.lammps.org/atom_style.html) command. However, this is not a requirement,\nsince the only definition of particle size is via the pair_coeff\nparameters for each type. In other words, the physical radius of the\nparticle is ignored. Thus you should ensure that the d1,d2 parameters\nyou specify are consistent with the physical size of the particles of\nthat type.\n\nPer-particle polydispersity is not yet supported by this pair style;\nonly per-type polydispersity is enabled via the pair_coeff parameters.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ @@ -16253,49 +15589,44 @@ export const command_docs = [ }, { "command": [ - "log" + "pair_style none" ], "syntax": [ - "log file keyword" + "pair_style none" ], "args": [ [ { - "arg": "log", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "file", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, + "arg": "none", + "type": 1, "choices": [] } ] ], - "parameters": "* file = name of new logfile\n* keyword = append if output should be appended to logfile (optional) \n", - "examples": "\n```lmps\nlog log.equil\nlog log.equil append\n```\n", - "html_filename": "log.html", - "short_description": "This command closes the current LAMMPS log file, opens a new file with\nthe specified name, and begins logging information to it", - "description": "This command closes the current LAMMPS log file, opens a new file with\nthe specified name, and begins logging information to it. If the\nspecified file name is *none*, then no new log file is opened. If the\noptional keyword *append* is specified, then output will be appended\nto an existing log file, instead of overwriting it.\n\nIf multiple processor partitions are being used, the file name should\nbe a variable, so that different processors do not attempt to write to\nthe same log file.\n\nThe file \"log.lammps\" is the default log file for a LAMMPS run. The\nname of the initial log file can also be set by the [-log command-line switch ](https://docs.lammps.org/Run_options.html).\n", - "restrictions": "none\n", - "related": "none\n" + "parameters": "", + "examples": "\n```lmps\npair_style none\n```\n", + "html_filename": "pair_none.html", + "short_description": "Using a pair style of *none* means that any previous pair style setting\nwill be deleted and pairwise forces and energies are not computed", + "description": "Using a pair style of *none* means that any previous pair style setting\nwill be deleted and pairwise forces and energies are not computed.\n\nAs a consequence there will be a pairwise force cutoff of 0.0, which has\nimplications for the default setting of the neighbor list and the\ncommunication cutoff. Those are the sum of the largest pairwise cutoff\nand the neighbor skin distance (see the documentation of the\n[neighbor ](https://docs.lammps.org/neighbor.html) command and the [comm_modify](https://docs.lammps.org/comm_modify.html) command). When you have bonds, angles, dihedrals, or\nimpropers defined at the same time, you must set the communication\ncutoff so that communication cutoff distance is large enough to acquire\nand communicate sufficient ghost atoms from neighboring subdomains as\nneeded for computing bonds, angles, etc.\n\nA pair style of *none* will also not request a pairwise neighbor list.\nHowever if the [neighbor ](https://docs.lammps.org/neighbor.html) style is *bin*, data\nstructures for binning are still allocated. If the neighbor list cutoff\nis small, then these data structures can consume a large amount of\nmemory. So you should either set the neighbor style to *nsq* or set the\nskin distance to a larger value.\n\nSee the [pair_style zero ](https://docs.lammps.org/pair_zero.html) for a way to set a pairwise\ncutoff and thus trigger the building of a neighbor lists and setting\na corresponding communication cutoff, but compute no pairwise interactions.\n", + "restrictions": "You must not use a [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command with this pair\nstyle. Since there is no interaction computed, you cannot set any\ncoefficients for it.\n", + "related": "[pair_style zero ](https://docs.lammps.org/pair_zero.html)\n" }, { "command": [ - "compute cna/atom" + "fix precession/spin" ], "syntax": [ - "compute ID group-ID cna/atom cutoff" + "fix ID group precession/spin style args" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -16305,41 +15636,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "group-ID", + "arg": "group", "type": 2, "choices": [] }, { - "arg": "cna/atom", + "arg": "precession/spin", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "stt", + "type": 3, + "choices": [ + "zeeman", + "anisotropy", + "cubic", + "stt" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cna/atom = style name of this compute command\n* cutoff = cutoff distance for nearest neighbors (distance units) \n", - "examples": "\n```lmps\ncompute 1 all cna/atom 3.08\n```\n", - "html_filename": "compute_cna_atom.html", - "short_description": "Define a computation that calculates the CNA (Common Neighbor\nAnalysis) pattern for each atom in the group", - "description": "Define a computation that calculates the CNA (Common Neighbor\nAnalysis) pattern for each atom in the group. In solid-state systems\nthe CNA pattern is a useful measure of the local crystal structure\naround an atom. The CNA methodology is described in **Faken**\nand **Tsuzuki1**.\n\nCurrently, there are five kinds of CNA patterns LAMMPS recognizes:\n\n* fcc = 1\n* hcp = 2\n* bcc = 3\n* icosahedral = 4\n* unknown = 5\n\nThe value of the CNA pattern will be 0 for atoms not in the specified\ncompute group. Note that normally a CNA calculation should only be\nperformed on mono-component systems.\n\nThe CNA calculation can be sensitive to the specified cutoff value.\nYou should ensure the appropriate nearest neighbors of an atom are\nfound within the cutoff distance for the presumed crystal structure\n(e.g., 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest\nneighbors for perfect BCC crystals). These formulas can be used to\nobtain a good cutoff distance:\n\\[\\begin{align*} \n r_{c}^{\\mathrm{fcc}} = & \\frac{1}{2} \\left(\\frac{\\sqrt{2}}{2} + 1\\right) a\n \\approx 0.8536 a \\\\\n r_{c}^{\\mathrm{bcc}} = & \\frac{1}{2}(\\sqrt{2} + 1) a\n \\approx 1.207 a \\\\\n r_{c}^{\\mathrm{hcp}} = & \\frac{1}{2}\\left(1+\\sqrt{\\frac{4+2x^{2}}{3}}\\right) a \\end{align*} \\]\nwhere \\(a\\) is the lattice constant for the crystal structure concerned\nand in the HCP case, \\(x = (c/a) / 1.633\\), where 1.633 is the ideal\n\\(c/a\\) for HCP crystals.\n\nAlso note that since the CNA calculation in LAMMPS uses the neighbors\nof an owned atom to find the nearest neighbors of a ghost atom, the\nfollowing relation should also be satisfied:\n\\[\n r_c + r_s > 2*{\\rm cutoff}\\]\nwhere \\(r_c\\) is the cutoff distance of the potential, \\(r_s\\)\nis the skin\ndistance as specified by the [neighbor ](https://docs.lammps.org/neighbor.html) command, and\ncutoff is the argument used with the compute cna/atom command. LAMMPS\nwill issue a warning if this is not the case.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*cna/atom* style.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be a number from 0 to 5, as explained\nabove.\n\n**(Faken)** Faken, Jonsson, Comput Mater Sci, 2, 279 (1994). \n \n**(Tsuzuki1)** Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007). \n ", - "restrictions": " none\n", - "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" + "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* precession/spin = style name of this fix command\n* style = zeeman or anisotropy or cubic or stt \n *        zeeman args = H x y z \n         H = intensity of the magnetic field (in Tesla) \n         x y z = vector direction of the field \n *        anisotropy args = K x y z \n         K = intensity of the magnetic anisotropy (in eV) \n         x y z = vector direction of the anisotropy \n *        cubic args = K1 K2c n1x n1y n1x n2x n2y n2z n3x n3y n3z \n         K1 and K2c = intensity of the magnetic anisotropy (in eV) \n         n1x to n3z = three direction vectors of the cubic anisotropy \n *        stt args = J x y z \n         J = intensity of the spin-transfer torque field \n         x y z = vector direction of the field \n", + "examples": "\n```lmps\nfix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0\nfix 1 3 precession/spin anisotropy 0.001 0.0 0.0 1.0\nfix 1 iron precession/spin cubic 0.001 0.0005 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0\nfix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0\n```\n", + "html_filename": "fix_precession_spin.html", + "short_description": "This fix applies a precession torque to each magnetic spin in the\ngroup", + "description": "This fix applies a precession torque to each magnetic spin in the\ngroup.\n\nStyle *zeeman* is used for the simulation of the interaction between\nthe magnetic spins in the defined group and an external magnetic\nfield:\n\\[\n H_{Zeeman} = -g \\sum_{i=0}^{N}\\mu_{i}\\, \\vec{s}_{i} \\cdot\\vec{B}_{ext}\\]\nwith:\n\n* \\(\\vec{B}_{ext}\\) the external magnetic field (in T)\n* \\(g\\) the Lande factor (hard-coded as \\(g=2.0\\))\n* \\(\\vec{s}_i\\) the unitary vector describing the orientation of spin \\(i\\)\n* \\(\\mu_i\\) the atomic moment of spin \\(i\\) given as a multiple of the\n Bohr magneton \\(\\mu_B\\) (for example, \\(\\mu_i \\approx 2.2\\) in bulk iron).\n\nThe field value in Tesla is multiplied by the gyromagnetic\nratio, \\(g \\cdot \\mu_B/\\hbar\\), converting it into a precession frequency in\nrad.THz (in metal units and with \\(\\mu_B = 5.788\\cdot 10^{-5}\\)\neV/T).\n\nAs a comparison, the figure below displays the simulation of a single\nspin (of norm \\(\\mu_i = 1.0\\)) submitted to an external magnetic\nfield of \\(\\vert B_{ext}\\vert = 10.0\\; \\mathrm{Tesla}\\) (and\noriented along the z axis). The upper plot shows the average\nmagnetization along the external magnetic field axis and the lower\nplot the Zeeman energy, both as a function of temperature. The\nreference result is provided by the plot of the Langevin function for\nthe same parameters.\n\n ![Image](JPG/zeeman_langevin.jpg) \n\nThe temperature effects are accounted for by connecting the spin\n\\(i\\) to a thermal bath using a Langevin thermostat (see\n[fix langevin/spin ](https://docs.lammps.org/fix_langevin_spin.html) for the definition of\nthis thermostat).\n\nStyle *anisotropy* is used to simulate an easy axis or an easy plane\nfor the magnetic spins in the defined group:\n\\[\n H_{aniso} = -\\sum_{{ i}=1}^{N} K_{an}(\\mathbf{r}_{i})\\, \\left(\n \\vec{s}_{i} \\cdot \\vec{n}_{i} \\right)^2\\]\nwith \\(n\\) defining the direction of the anisotropy, and \\(K\\)\n(in eV) its intensity. If \\(K > 0\\), an easy axis is defined, and\nif \\(K < 0\\), an easy plane is defined.\n\nStyle *cubic* is used to simulate a cubic anisotropy, with three\npossible easy axis for the magnetic spins in the defined group:\n\\[\n H_{cubic} = -\\sum_{{ i}=1}^{N} K_{1}\n \\Big[\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2 +\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2 +\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2 \\Big]\n +K_{2}^{(c)} \\left(\\vec{s}_{i} \\cdot \\vec{n}_1 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_2 \\right)^2\n \\left(\\vec{s}_{i} \\cdot \\vec{n}_3 \\right)^2\\]\nwith \\(K_1\\) and \\(K_{2c}\\) (in eV) the intensity coefficients\nand \\(\\vec{n}_1\\), \\(\\vec{n}_2\\) and \\(\\vec{n}_3\\)\ndefining the three anisotropic directions defined by the command (from\n*n1x* to *n3z*). For \\(\\vec{n}_1 = (1 0 0)\\), \\(\\vec{n}_2 =\n(0 1 0)\\), and \\(\\vec{n}_3 = (0 0 1)\\), \\(K_1 < 0\\) defines an\niron type anisotropy (easy axis along the \\((0 0 1)\\)-type cube\nedges), and \\(K_1 > 0\\) defines a nickel type anisotropy (easy\naxis along the \\((1 1 1)\\)-type cube diagonals). \\(K_2^c >\n0\\) also defines easy axis along the \\((1 1 1)\\)-type cube\ndiagonals. See chapter 2 of **Skomski1** for more\ndetails on cubic anisotropies.\n\nStyle *stt* is used to simulate the interaction between the spins and\na spin-transfer torque.\nSee equation (7) of **Chirac1** for more details about the\nimplemented spin-transfer torque term.\n\nIn all cases, the choice of \\((x y z)\\) only imposes the vector\ndirections for the forces. Only the direction of the vector is\nimportant; its length is ignored (the entered vectors are\nnormalized).\n\nThose styles can be combined within one single command line.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The norm of all vectors defined with the precession/spin command\n > have to be non-zero. For example, defining\n > \"fix 1 all precession/spin zeeman 0.1 0.0 0.0 0.0\" would result\n > in an error message.\n > Since those vector components are used to compute the inverse of the\n > field (or anisotropy) vector norm, setting a zero-vector would result\n > in a division by zero. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy associated with the spin precession\ntorque to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy (in energy units) discussed in the previous paragraph. The\nscalar value is an \"extensive\" quantity.\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\n**(Skomski1)** Skomski, R. (2008). Simple models of magnetism.\nOxford University Press. \n \n**(Chirac1)** Chirac, Theophile, et al. Ultrafast antiferromagnetic\nswitching in NiO induced by spin transfer torques.\nPhysical Review B 102.13 (2020): 134415. \n ", + "restrictions": "The *precession/spin* style is part of the SPIN package. This style\nis only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html)\n" }, { "command": [ - "fix pimd/langevin" + "compute contact/atom" ], "syntax": [ - "fix ID group-ID style keyword value ..." + "compute ID group-ID contact/atom group2-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -16354,69 +15695,87 @@ export const command_docs = [ "choices": [] }, { - "arg": "style", + "arg": "contact/atom", + "type": 1, + "choices": [] + }, + { + "arg": "group2-ID", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* contact/atom = style name of this compute command\n* group2-ID = optional argument to restrict which atoms to consider for contacts (see below) \n", + "examples": "\n```lmps\ncompute 1 all contact/atom\ncompute 1 all contact/atom mygroup\n```\n", + "html_filename": "compute_contact_atom.html", + "short_description": "Define a computation that calculates the number of contacts\nfor each atom in a group", + "description": "Define a computation that calculates the number of contacts\nfor each atom in a group.\n\nThe contact number is defined for finite-size spherical particles as\nthe number of neighbor atoms which overlap the central particle,\nmeaning that their distance of separation is less than or equal to the\nsum of the radii of the two particles.\n\nThe value of the contact number will be 0.0 for atoms not in the\nspecified compute group.\n\nThe optional *group2-ID* argument allows to specify from which group atoms\ncontribute to the coordination number. Default setting is group 'all'.\n\n #### Output info\n\nThis compute calculates a per-atom vector, whose values can be\naccessed by any command that uses per-atom values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-atom vector values will be a number \\(\\ge 0.0\\), as explained\nabove.\n", + "restrictions": "This compute is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n" +}, +{ + "command": [ + "compute dpd" + ], + "syntax": [ + "compute ID group-ID dpd" + ], + "args": [ + [ + { + "arg": "compute", + "type": 1, + "choices": [] }, { - "arg": "keyword", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "dpd", + "type": 1, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = pimd/langevin or pimd/nvt = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keywords for style pimd/nvt \n *        *keywords* = method or fmass or sp or temp or nhc \n *        method value = pimd or nmpimd or cmd \n *        fmass value = scaling factor on mass \n *        sp value = scaling factor on Planck constant \n *        temp value = temperature (temperature units) \n *        nhc value = Nc = number of chains in Nose-Hoover thermostat \n* keywords for style pimd/langevin \n *        *keywords* = method or integrator or ensemble or fmmode or fmass or scale or temp or thermostat or tau or iso or aniso or barostat or taup or fixcom or lj \n *        method value = nmpimd (default) or pimd \n *        integrator value = obabo or baoab \n *        fmmode value = physical or normal \n *        fmass value = scaling factor on mass \n *        temp value = temperature (temperature unit) \n         temperature = target temperature of the thermostat \n *        thermostat values = style seed \n         style value = PILE_L \n         seed = random number generator seed \n *        tau value = thermostat damping parameter (time unit) \n *        scale value = scaling factor of the damping times of non-centroid modes of PILE_L thermostat \n *        iso or aniso values = pressure (pressure unit) \n         pressure = scalar external pressure of the barostat \n *        barostat value = BZP or MTTK \n *        taup value = barostat damping parameter (time unit) \n *        fixcom value = yes or no \n *        lj values = epsilon sigma mass planck mvv2e \n         epsilon = energy scale for reduced units (energy units) \n         sigma = length scale for reduced units (length units) \n         mass = mass scale for reduced units (mass units) \n         planck = Planck's constant for other unit style \n         mvv2e = mass * velocity^2 to energy conversion factor for other unit style \n", - "examples": "\n```lmps\nfix 1 all pimd/nvt method nmpimd fmass 1.0 sp 2.0 temp 300.0 nhc 4\nfix 1 all pimd/langevin ensemble npt integrator obabo temp 113.15 thermostat PILE_L 1234 tau 1.0 iso 1.0 barostat BZP taup 1.0\n```\n", - "html_filename": "fix_pimd.html", - "short_description": "\nFix pimd was renamed to fix *pimd/nvt* and fix *pimd/langevin* was added", - "description": "\nFix pimd was renamed to fix *pimd/nvt* and fix *pimd/langevin* was added.\n\nThese fix commands perform quantum molecular dynamics simulations based\non the Feynman path-integral to include effects of tunneling and\nzero-point motion. In this formalism, the isomorphism of a quantum\npartition function for the original system to a classical partition\nfunction for a ring-polymer system is exploited, to efficiently sample\nconfigurations from the canonical ensemble **Feynman**.\n\nThe classical partition function and its components are given\nby the following equations:\n\\[\\begin{align*} \n Z = & \\int d{\\bf q} d{\\bf p} \\cdot \\textrm{exp} [ -\\beta H_{eff} ] \\\\\n H_{eff} = & \\bigg(\\sum_{i=1}^P \\frac{p_i^2}{2M_i}\\bigg) + V_{eff} \\\\\n V_{eff} = & \\sum_{i=1}^P \\bigg[ \\frac{mP}{2\\beta^2 \\hbar^2} (q_i - q_{i+1})^2 + \\frac{1}{P} V(q_i)\\bigg] \\end{align*} \\]\n\\(M_i\\) is the fictitious mass of the \\(i\\)-th mode, and m is the actual mass of the atoms.\n\nThe interested user is referred to any of the numerous references on\nthis methodology, but briefly, each quantum particle in a path integral\nsimulation is represented by a ring-polymer of P quasi-beads, labeled\nfrom 1 to P. During the simulation, each quasi-bead interacts with\nbeads on the other ring-polymers with the same imaginary time index (the\nsecond term in the effective potential above). The quasi-beads also\ninteract with the two neighboring quasi-beads through the spring\npotential in imaginary-time space (first term in effective potential).\nTo sample the canonical ensemble, any thermostat can be applied.\n\nFix *pimd/nvt* applies a Nose-Hoover massive chain thermostat\n**pimd-Tuckerman**. With the massive chain\nalgorithm, a chain of NH thermostats is coupled to each degree of\nfreedom for each quasi-bead. The keyword *temp* sets the target\ntemperature for the system and the keyword *nhc* sets the number *Nc* of\nthermostats in each chain. For example, for a simulation of N particles\nwith P beads in each ring-polymer, the total number of NH thermostats\nwould be 3 x N x P x Nc.\n\nFix *pimd/langevin* implements a Langevin thermostat in the normal mode\nrepresentation, and also provides a barostat to sample the NPH/NPT ensembles.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Both these *fix* styles implement a complete velocity-verlet integrator\n > combined with a thermostat, so no other time integration fix should be used. \n > \n\nThe *method* keyword determines what style of PIMD is performed. A\nvalue of *pimd* is standard PIMD. A value of *nmpimd* is for\nnormal-mode PIMD. A value of *cmd* is for centroid molecular dynamics\n(CMD). The difference between the styles is as follows.\n\n In standard PIMD, the value used for a bead's fictitious mass is\n arbitrary. A common choice is to use \\(M_i = m/P\\), which results in the\n mass of the entire ring-polymer being equal to the real quantum\n particle. But it can be difficult to efficiently integrate the\n equations of motion for the stiff harmonic interactions in the ring\n polymers.\n\n A useful way to resolve this issue is to integrate the equations of\n motion in a normal mode representation, using Normal Mode\n Path-Integral Molecular Dynamics (NMPIMD) **Cao1**. In\n NMPIMD, the NH chains are attached to each normal mode of the\n ring-polymer and the fictitious mass of each mode is chosen as Mk =\n the eigenvalue of the Kth normal mode for k > 0. The k = 0 mode,\n referred to as the zero-frequency mode or centroid, corresponds to\n overall translation of the ring-polymer and is assigned the mass of\n the real particle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Motion of the centroid can be effectively uncoupled from the other\n > normal modes by scaling the fictitious masses to achieve a partial\n > adiabatic separation. This is called a Centroid Molecular Dynamics\n > (CMD) approximation **Cao2**. The time-evolution (and\n > resulting dynamics) of the quantum particles can be used to obtain\n > centroid time correlation functions, which can be further used to\n > obtain the true quantum correlation function for the original system.\n > The CMD method also uses normal modes to evolve the system, except\n > only the k > 0 modes are thermostatted, not the centroid degrees of\n > freedom. \n > \n\n\n **New in version 21Nov2023** \n\n Mode *pimd* added to fix pimd/langevin.\nFix pimd/langevin supports the *method* values *nmpimd* and *pimd*. The default value is *nmpimd*.\nIf *method* is *nmpimd*, the normal mode representation is used to integrate the equations of motion.\nThe exact solution of harmonic oscillator is used to propagate the free ring polymer part of the Hamiltonian.\nIf *method* is *pimd*, the Cartesian representation is used to integrate the equations of motion.\nThe harmonic force is added to the total force of the system, and the numerical integrator is used to propagate the Hamiltonian.\n\nThe keyword *integrator* specifies the Trotter splitting method used by *fix pimd/langevin*.\nSee :ref:`(Liu) ` for a discussion on the OBABO and BAOAB splitting schemes. Typically\neither of the two should work fine.\n\nThe keyword *fmass* sets a further scaling factor for the fictitious\nmasses of beads, which can be used for the Partial Adiabatic CMD\n**Hone**, or to be set as P, which results in the fictitious\nmasses to be equal to the real particle masses.\n\nThe keyword *fmmode* of *fix pimd/langevin* determines the mode of fictitious\nmass preconditioning. There are two options: *physical* and *normal*. If *fmmode* is\n*physical*, then the physical mass of the particles are used (and then multiplied by\n*fmass*). If *fmmode* is *normal*, then the physical mass is first multiplied by the\neigenvalue of each normal mode, and then multiplied by *fmass*. More precisely, the\nfictitious mass of *fix pimd/langevin* is determined by two factors: *fmmode* and *fmass*.\nIf *fmmode* is *physical*, then the fictitious mass is\n\\[\n M_i = \\mathrm{fmass} \\times m\\]\nIf *fmmode* is *normal*, then the fictitious mass is\n\\[\n M_i = \\mathrm{fmass} \\times \\lambda_i \\times m\\]\nwhere \\(\\lambda_i\\) is the eigenvalue of the \\(i\\)-th normal mode.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Fictitious mass is only used in the momentum of the equation of motion\n > (\\(\\mathbf{p}_i=M_i\\mathbf{v}_i\\)), and not used in the spring elastic energy\n > (\\(\\sum_{i=1}^P \\frac{1}{2}m\\omega_P^2(q_i - q_{i+1})^2\\), \\(m\\) is always the\n > actual mass of the particles). \n > \n\nThe keyword *sp* is a scaling factor on Planck's constant, which can\nbe useful for debugging or other purposes. The default value of 1.0\nis appropriate for most situations.\n\nThe keyword *ensemble* for fix style *pimd/langevin* determines which ensemble is it\ngoing to sample. The value can be *nve* (microcanonical), *nvt* (canonical), *nph* (isoenthalpic),\nand *npt* (isothermal-isobaric).\n\nThe keyword *temp* specifies temperature parameter for fix styles *pimd/nvt* and *pimd/langevin*. It should read\na positive floating-point number.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pimd simulations, a temperature values should be specified even for nve ensemble. Temperature will make a difference\n > for nve pimd, since the spring elastic frequency between the beads will be affected by the temperature. \n > \n\nThe keyword *thermostat* reads *style* and *seed* of thermostat for fix style *pimd/langevin*. *style* can only\nbe *PILE_L* (path integral Langevin equation local thermostat, as described in :ref:`Ceriotti `), and *seed* should a positive integer number, which serves as the seed of the pseudo random number generator.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix style *pimd/langevin* uses the stochastic PILE_L thermostat to control temperature. This thermostat works on the normal modes\n > of the ring polymer. The *tau* parameter controls the centroid mode, and the *scale* parameter controls the non-centroid modes. \n > \n\nThe keyword *tau* specifies the thermostat damping time parameter for fix style *pimd/langevin*. It is in time unit. It only works on the centroid mode.\n\nThe keyword *scale* specifies a scaling parameter for the damping times of the non-centroid modes for fix style *pimd/langevin*. The default\ndamping time of the non-centroid mode \\(i\\) is \\(\\frac{P}{\\beta\\hbar}\\sqrt{\\lambda_i\\times\\mathrm{fmass}}\\) (*fmmode* is *physical*) or \\(\\frac{P}{\\beta\\hbar}\\sqrt{\\mathrm{fmass}}\\) (*fmmode* is *normal*). The damping times of all non-centroid modes are the default values divided by *scale*.\n\nThe barostat parameters for fix style *pimd/langevin* with *npt* or *nph* ensemble is specified using one of *iso* and *aniso*\nkeywords. A *pressure* value should be given with pressure unit. The keyword *iso* means couple all 3 diagonal components together when pressure is computed (hydrostatic pressure), and dilate/contract the dimensions together. The keyword *aniso* means x, y, and z dimensions are controlled independently using the Pxx, Pyy, and Pzz components of the stress tensor as the driving forces, and the specified scalar external pressure.\n\nThe keyword *barostat* reads *style* of barostat for fix style *pimd/langevin*. *style* can\nbe *BZP* (Bussi-Zykova-Parrinello, as described in **Bussi**) or *MTTK* (Martyna-Tuckerman-Tobias-Klein, as described in **Martyna3** and **Martyna4**).\n\nThe keyword *taup* specifies the barostat damping time parameter for fix style *pimd/langevin*. It is in time unit.\n\nThe keyword *fixcom* specifies whether the center-of-mass of the extended ring-polymer system is fixed during the pimd simulation.\nOnce *fixcom* is set to be *yes*, the center-of-mass velocity will be distracted from the centroid-mode velocities in each step.\n\nThe keyword *lj* should be used if [lj units ](https://docs.lammps.org/units.html) is used for *fix pimd/langevin*. Typically one may want to use\nreduced units to run the simulation, and then convert the results into some physical units (for example, [metal units ](https://docs.lammps.org/units.html)). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, you can omit the keyword *lj* and these five values will be set to 1.\n\nThe PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme\nas described in **Calhoun**. In LAMMPS this is done by using\n[multi-replica feature ](https://docs.lammps.org/Howto_replica.html) in LAMMPS, where each\nquasi-particle system is stored and simulated on a separate partition\nof processors. The following diagram illustrates this approach. The\noriginal system with 2 ring polymers is shown in red. Since each ring\nhas 4 quasi-beads (imaginary time slices), there are 4 replicas of the\nsystem, each running on one of the 4 partitions of processors. Each\nreplica (shown in green) owns one quasi-bead in each ring.\n\n ![Image](JPG/pimd.jpg) \n\nTo run a PIMD simulation with M quasi-beads in each ring polymer using\nN MPI tasks for each partition's domain-decomposition, you would use P\n= MxN processors (cores) and run the simulation as follows:\n\n```bash\nmpirun -np P lmp_mpi -partition MxN -in script\n```\nNote that in the LAMMPS input script for a multi-partition simulation,\nit is often very useful to define a [uloop-style variable ](https://docs.lammps.org/variable.html) such as\n\n```lmps\nvariable ibead uloop M pad\n```\nwhere M is the number of quasi-beads (partitions) used in the\ncalculation. The uloop variable can then be used to manage I/O\nrelated tasks for each of the partitions, e.g.\n\n```lmps\ndump dcd all dcd 10 system_${ibead}.dcd\ndump 1 all custom 100 ${ibead}.xyz id type x y z vx vy vz ix iy iz fx fy fz\nrestart 1000 system_${ibead}.restart1 system_${ibead}.restart2\nread_restart system_${ibead}.restart2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Fix *pimd/langevin* dumps the Cartesian coordinates, but dumps the velocities and\n > forces in the normal mode representation. If the Cartesian velocities and forces are\n > needed, it is easy to perform the transformation when doing post-processing.\n >\n > It is recommended to dump the image flags (*ix iy iz*) for fix *pimd/langevin*. It\n > will be useful if you want to calculate some estimators during post-processing. \n > \n\nMajor differences of *fix pimd/nvt* and *fix pimd/langevin* are:\n\n #. *Fix pimd/nvt* includes Cartesian pimd, normal mode pimd, and centroid md. *Fix pimd/langevin* only intends to support normal mode pimd, as it is commonly enough for thermodynamic sampling.\n #. *Fix pimd/nvt* uses Nose-Hoover chain thermostat. *Fix pimd/langevin* uses Langevin thermostat.\n #. *Fix pimd/langevin* provides barostat, so the npt ensemble can be sampled. *Fix pimd/nvt* only support nvt ensemble.\n #. *Fix pimd/langevin* provides several quantum estimators in output.\n #. *Fix pimd/langevin* allows multiple processes for each bead. For *fix pimd/nvt*, there is a large chance that multi-process tasks for each bead may fail.\n #. The dump of *fix pimd/nvt* are all Cartesian. *Fix pimd/langevin* dumps normal-mode velocities and forces, and Cartesian coordinates.\n\nInitially, the inter-replica communication and normal mode transformation parts of *fix pimd/langevin* are written based on\nthose of *fix pimd/nvt*, but are significantly revised.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nFix *pimd/nvt* writes the state of the Nose/Hoover thermostat over all\nquasi-beads to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nFix *pimd/langevin* writes the state of the barostat overall beads to\n[binary restart files ](https://docs.lammps.org/restart.html). Since it uses a stochastic thermostat,\nthe state of the thermostat is not written. However, the state of the system\ncan be restored by reading the restart file, except that it will re-initialize\nthe random number generator.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to fix pimd/nvt.\n\nFix *pimd/nvt* computes a global 3-vector, which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The three quantities in\nthe global vector are:\n\n #. the total spring energy of the quasi-beads,\n #. the current temperature of the classical system of ring polymers,\n #. the current value of the scalar virial estimator for the kinetic\n energy of the quantum system **Herman**.\n\nThe vector values calculated by fix *pimd/nvt* are \"extensive\", except for the\ntemperature, which is \"intensive\".\n\nFix *pimd/langevin* computes a global vector of quantities, which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Note that\nit outputs multiple log files, and different log files contain information\nabout different beads or modes (see detailed explanations below). If *ensemble*\nis *nve* or *nvt*, the vector has 10 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n\nThe first 3 are different for different log files, and the others are the same for different log files.\n\nIf *ensemble* is *nph* or *npt*, the vector stores internal variables of the barostat. If *iso* is used,\nthe vector has 15 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n #. barostat velocity\n #. barostat kinetic energy\n #. barostat potential energy\n #. barostat cell Jacobian\n #. enthalpy of the extended system (sum of 4, 12, 13, and 14; conserved if *ensemble* is *nph*)\n\nIf *aniso* or *x* or *y* or *z* is used for the barostat, the vector has 17 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n #. x component of barostat velocity\n #. y component of barostat velocity\n #. z component of barostat velocity\n #. barostat kinetic energy\n #. barostat potential energy\n #. barostat cell Jacobian\n #. enthalpy of the extended system (sum of 4, 14, 15, and 16; conserved if *ensemble* is *nph*)\n\nNo parameter of fix *pimd/nvt* or *pimd/langevin* can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. Fix *pimd/nvt* or *pimd/langevin* is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Feynman)** R. Feynman and A. Hibbs, Chapter 7, Quantum Mechanics and\nPath Integrals, McGraw-Hill, New York (1965). \n \n**(pimd-Tuckerman)** M. Tuckerman and B. Berne, J Chem Phys, 99, 2796 (1993). \n \n**(Cao1)** J. Cao and B. Berne, J Chem Phys, 99, 2902 (1993). \n \n**(Cao2)** J. Cao and G. Voth, J Chem Phys, 100, 5093 (1994). \n \n**(Hone)** T. Hone, P. Rossky, G. Voth, J Chem Phys, 124,\n154103 (2006). \n \n**(Bussi)** G. Bussi, T. Zykova-Timan, M. Parrinello, J Chem Phys, 130, 074101 (2009). \n \n**(Martyna3)** G. Martyna, D. Tobias, M. Klein, J. Chem. Phys. 101, 4177 (1994). \n \n**(Martyna4)** G. Martyna, A. Hughes, M. Tuckerman, J. Chem. Phys. 110, 3275 (1999). \n \n**(Calhoun)** A. Calhoun, M. Pavese, G. Voth, Chem Phys Letters, 262,\n415 (1996). \n \n**(Herman)** M. F. Herman, E. J. Bruskin, B. J. Berne, J Chem Phys, 76, 5150 (1982). \n ", - "restrictions": "These fixes are part of the REPLICA package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix *pimd/nvt* cannot be used with [lj units ](https://docs.lammps.org/units.html).\nFix *pimd/langevin* can be used with [lj units ](https://docs.lammps.org/units.html). See the above part for how to use it.\n\nA PIMD simulation can be initialized with a single data file read via\nthe [read_data ](https://docs.lammps.org/read_data.html) command. However, this means all\nquasi-beads in a ring polymer will have identical positions and\nvelocities, resulting in identical trajectories for all quasi-beads. To\navoid this, users can simply initialize velocities with different random\nnumber seeds assigned to each partition, as defined by the uloop\nvariable, e.g.\n\n```lmps\nvelocity all create 300.0 1234${ibead} rot yes dist gaussian\n```\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dpd = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all dpd\n```\n", + "html_filename": "compute_dpd.html", + "short_description": "Define a computation that accumulates the total internal conductive\nenergy (\\(U^{\\text{cond}}\\)), the total internal mechanical energy\n(\\(U^{\\text{mech}}\\)), the total chemical energy (\\(U^\\text{chem}\\))\nand the *harmonic* average of the internal temperature (\\(\\theta_\\text{avg}\\))\nfor the entire system of particles", + "description": "Define a computation that accumulates the total internal conductive\nenergy (\\(U^{\\text{cond}}\\)), the total internal mechanical energy\n(\\(U^{\\text{mech}}\\)), the total chemical energy (\\(U^\\text{chem}\\))\nand the *harmonic* average of the internal temperature (\\(\\theta_\\text{avg}\\))\nfor the entire system of particles. See the\n[compute dpd/atom ](https://docs.lammps.org/compute_dpd_atom.html) command if you want\nper-particle internal energies and internal temperatures.\n\nThe system internal properties are computed according to the following\nrelations:\n\\[\\begin{align*} \n U^\\text{cond} = & \\sum_{i=1}^{N} u_{i}^\\text{cond} \\\\\n U^\\text{mech} = & \\sum_{i=1}^{N} u_{i}^\\text{mech} \\\\\n U^\\text{chem} = & \\sum_{i=1}^{N} u_{i}^\\text{chem} \\\\\n U = & \\sum_{i=1}^{N} (u_{i}^\\text{cond}\n + u_{i}^\\text{mech} + u_{i}^\\text{chem}) \\\\\n \\theta_{avg} = & \\biggl(\\frac{1}{N}\\sum_{i=1}^{N}\n \\frac{1}{\\theta_{i}}\\biggr)^{-1} \\\\ \\end{align*} \\]\nwhere \\(N\\) is the number of particles in the system.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 5 (\\(U^\\text{cond}\\),\n\\(U^\\text{mech}\\), \\(U^\\text{chem}\\), \\(\\theta_\\text{avg}\\),\n\\(N\\)), which can be accessed by indices 1 through 5.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe vector values will be in energy and temperature [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[compute dpd/atom ](https://docs.lammps.org/compute_dpd_atom.html),\n[thermo_style ](https://docs.lammps.org/thermo_style.html)\n" }, { "command": [ - "read_data" + "pair_style thole", + "pair_style lj/cut/thole/long", + "pair_style lj/cut/thole/long/omp" ], "syntax": [ - "read_data file keyword args ..." + "pair_style style args" ], "args": [ [ { - "arg": "read_data", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "file", - "type": 2, - "choices": [] - }, - { - "arg": "fix", + "arg": "lj/cut/thole/long/omp", "type": 3, "choices": [ - "add", - "offset", - "shift", - "extra/atom/types", - "extra/bond/types", - "extra/angle/types", - "extra/dihedral/types", - "extra/improper/types", - "extra/bond/per/atom", - "extra/angle/per/atom", - "extra/dihedral/per/atom", - "extra/improper/per/atom", - "extra/special/per/atom", - "group", - "nocoeff", - "fix" + "thole", + "lj/cut/thole/long", + "lj/cut/thole/long/omp" ] }, { @@ -16426,252 +15785,252 @@ export const command_docs = [ } ] ], - "parameters": "* file = name of data file to read in\n* zero or more keyword/arg pairs may be appended\n* keyword = add or offset or shift or extra/atom/types or extra/bond/types or extra/angle/types or extra/dihedral/types or extra/improper/types or extra/bond/per/atom or extra/angle/per/atom or extra/dihedral/per/atom or extra/improper/per/atom or extra/special/per/atom or group or nocoeff or fix \n *        add arg = append or IDoffset or *IDoffset MOLoffset* or merge \n         append = add new atoms with atom IDs appended to current IDs \n         IDoffset = add new atoms with atom IDs having IDoffset added \n         MOLoffset = add new atoms with molecule IDs having MOLoffset added (only when molecule IDs are enabled) \n         merge = add new atoms with their atom IDs (and molecule IDs) unchanged \n *        offset args = toff boff aoff doff ioff \n         toff = offset to add to atom types \n         boff = offset to add to bond types \n         aoff = offset to add to angle types \n         doff = offset to add to dihedral types \n         ioff = offset to add to improper types \n *        shift args = Sx Sy Sz \n         Sx,Sy,Sz = distance to shift atoms when adding to system (distance units) \n *        extra/atom/types arg = # of extra atom types \n *        extra/bond/types arg = # of extra bond types \n *        extra/angle/types arg = # of extra angle types \n *        extra/dihedral/types arg = # of extra dihedral types \n *        extra/improper/types arg = # of extra improper types \n *        extra/bond/per/atom arg = leave space for this many new bonds per atom \n *        extra/angle/per/atom arg = leave space for this many new angles per atom \n *        extra/dihedral/per/atom arg = leave space for this many new dihedrals per atom \n *        extra/improper/per/atom arg = leave space for this many new impropers per atom \n *        extra/special/per/atom arg = leave space for extra 1-2,1-3,1-4 interactions per atom \n *        group args = groupID \n         groupID = add atoms in data file to this group \n *        nocoeff = ignore force field parameters \n *        fix args = fix-ID header-string section-string \n         fix-ID = ID of fix to process header lines and sections of data file \n         header-string = header lines containing this string will be passed to fix \n         section-string = section names with this string will be passed to fix \n", - "examples": "\n```lmps\nread_data data.lj\nread_data ../run7/data.polymer.gz\nread_data data.protein fix mycmap crossterm CMAP\nread_data data.water add append offset 3 1 1 1 1 shift 0.0 0.0 50.0\nread_data data.water add merge group solvent\n```\n", - "html_filename": "read_data.html", - "short_description": "Read in a data file containing information LAMMPS needs to run a\nsimulation", - "description": "Read in a data file containing information LAMMPS needs to run a\nsimulation. The file can be ASCII text or a gzipped text file\n(detected by a .gz suffix).\n\nThis is one of 3 ways to specify the simulation box: see the\n[create_box ](https://docs.lammps.org/create_box.html) and [read_restart ](https://docs.lammps.org/read_restart.html)\nand commands for alternative methods. It is also one of 3 ways to\nspecify initial atom coordinates: see the [create_atoms](https://docs.lammps.org/create_atoms.html) and [read_restart ](https://docs.lammps.org/read_restart.html) and commands\nfor alternative methods. Also see the explanation of the\n[-restart command-line switch ](https://docs.lammps.org/Run_options.html) which can convert a\nrestart file to a data file.\n\nThis command can be used multiple times to add new atoms and their\nproperties to an existing system by using the *add*, *offset*, and\n*shift* keywords. However, it is important to understand that several\nsystem parameters, like the number of types of different kinds and per\natom settings are **locked in** after the first *read_data* command,\nwhich means that no type ID (including its offset) may have a larger\nvalue when processing additional data files than what is set by the\nfirst data file and the corresponding *read_data* command options. See\nmore details on this situation below, which includes the use case for\nthe *extra* keywords.\n\nThe *group* keyword adds all the atoms in the data file to the\nspecified group-ID. The group will be created if it does not already\nexist. This is useful if you are reading multiple data files and wish\nto put sets of atoms into different groups so they can be operated on\nlater. E.g. a group of added atoms can be moved to new positions via\nthe [displace_atoms ](https://docs.lammps.org/displace_atoms.html) command. Note that atoms\nread from the data file are also always added to the \"all\" group. The\n[group ](https://docs.lammps.org/group.html) command discusses atom groups, as used in LAMMPS.\n\nThe *nocoeff* keyword tells read_data to ignore force field parameters.\nThe various Coeff sections are still read and have to have the correct\nnumber of lines, but they are not applied. This also allows to read a\ndata file without having any pair, bond, angle, dihedral or improper\nstyles defined, or to read a data file for a different force field.\n\nThe use of the *fix* keyword is discussed below.\n\n----------\n\n #### Reading multiple data files\n\nThe read_data command can be used multiple times with the same or\ndifferent data files to build up a complex system from components\ncontained in individual data files. For example one data file could\ncontain fluid in a confined domain; a second could contain wall atoms,\nand the second file could be read a third time to create a wall on the\nother side of the fluid. The third set of atoms could be rotated to\nan opposing direction using the [displace_atoms ](https://docs.lammps.org/displace_atoms.html)\ncommand, after the third read_data command is used.\n\nThe *add*, *offset*, *shift*, *extra*, and *group* keywords are\nuseful in this context.\n\nIf a simulation box does not yet exist, the *add* keyword cannot be\nused; the read_data command is being used for the first time. If a\nsimulation box does exist, due to using the [create_box](https://docs.lammps.org/create_box.html) command, or a previous read_data command, then the *add*\nkeyword must be used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the first read_data command defined an orthogonal or restricted\n > triclinic or general triclinic simulation box (see the sub-section\n > below on header keywords), then subsequent data files must define\n > the same kind of simulation box. For orthogonal boxes, the new box\n > can be a different size; see the next Note. For a restricted\n > triclinic box, the 3 new tilt factors (\"xy xz yz\" keyword) must\n > have the same values as in the original data file. For a general\n > triclinic box, the new avec, bvec, cvec, and \"abc origin\" keywords\n > must have the same values in the original data file. files. Also\n > the *shift* keyword cannot be used in subsequent read_data commands\n > for a general triclinic box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For orthogonal boxes, the simulation box size in the new data file\n > will be merged with the existing simulation box to create a large\n > enough box in each dimension to contain both the existing and new\n > atoms. Each box dimension never shrinks due to this merge\n > operation, it only stays the same or grows. Care must be used if\n > you are growing the existing simulation box in a periodic\n > dimension. If there are existing atoms with bonds that straddle\n > that periodic boundary, then the atoms may become far apart if the\n > box size grows. This will separate the atoms in the bond, which\n > can lead to \"lost\" bond atoms or bad dynamics. \n > \n\nThe three choices for the *add* argument affect how the atom IDs and\nmolecule IDs of atoms in the data file are treated.\n\nIf *append* is specified, atoms in the data file are added to the\ncurrent system, with their atom IDs reset so that an atom-ID = M in\nthe data file becomes atom-ID = N+M, where N is the largest atom ID in\nthe current system. This rule is applied to all occurrences of atom\nIDs in the data file, e.g. in the Velocity or Bonds section. This is\nalso done for molecule IDs, if the atom style does support molecule\nIDs or they are enabled via fix property/atom.\n\nIf *IDoffset* is specified, then *IDoffset* is a numeric value is\ngiven, e.g. 1000, so that an atom-ID = M in the data file becomes\natom-ID = 1000+M. For systems with enabled molecule IDs, another\nnumerical argument *MOLoffset* is required representing the equivalent\noffset for molecule IDs.\n\nIf *merge* is specified, the data file atoms are added to the current\nsystem without changing their IDs. They are assumed to merge (without\nduplication) with the currently defined atoms. It is up to you to\nensure there are no multiply defined atom IDs, as LAMMPS only performs\nan incomplete check that this is the case by ensuring the resulting\nmax atom-ID >= the number of atoms. For molecule IDs, there is no\ncheck done at all.\n\nThe *offset* and *shift* keywords can only be used if the *add*\nkeyword is also specified.\n\nThe *offset* keyword adds the specified offset values to the atom\ntypes, bond types, angle types, dihedral types, and improper types as\nthey are read from the data file. E.g. if *toff* = 2, and the file\nuses atom types 1,2,3, then the added atoms will have atom types\n3,4,5. These offsets apply to all occurrences of types in the data\nfile, e.g. for the Atoms or Masses or Pair Coeffs or Bond Coeffs\nsections. This makes it easy to use atoms and molecules and their\nattributes from a data file in different simulations, where you want\ntheir types (atom, bond, angle, etc) to be different depending on what\nother types already exist. All five offset values must be specified,\nbut individual values will be ignored if the data file does not use\nthat attribute (e.g. no bonds).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Offsets are **ignored** on lines using type labels, as the type\n > labels will determine the actual types directly depending on the\n > current [labelmap ](https://docs.lammps.org/labelmap.html) settings. \n > \n\nThe *shift* keyword can be used to specify an (Sx, Sy, Sz)\ndisplacement applied to the coordinates of each atom. Sz must be 0.0\nfor a 2d simulation. This is a mechanism for adding structured\ncollections of atoms at different locations within the simulation box,\nto build up a complex geometry. It is up to you to ensure atoms do\nnot end up overlapping unphysically which would lead to bad dynamics.\nNote that the [displace_atoms ](https://docs.lammps.org/displace_atoms.html) command can be used\nto move a subset of atoms after they have been read from a data file.\nLikewise, the [delete_atoms ](https://docs.lammps.org/delete_atoms.html) command can be used to\nremove overlapping atoms. Note that the shift values (Sx, Sy, Sz) are\nalso added to the simulation box information (xlo, xhi, ylo, yhi, zlo,\nzhi) in the data file to shift its boundaries. E.g. xlo_new = xlo +\nSx, xhi_new = xhi + Sx.\n\nThe *extra* keywords can only be used the first time the read_data\ncommand is used. They are useful if you intend to add new atom, bond,\nangle, etc types later with additional read_data commands. This is\nbecause the maximum number of allowed atom, bond, angle, etc types is\nset by LAMMPS when the system is first initialized. If you do not use\nthe *extra* keywords, then the number of these types will be limited\nto what appears in the first data file you read. For example, if the\nfirst data file is a solid substrate of Si, it will likely specify a\nsingle atom type. If you read a second data file with a different\nmaterial (water molecules) that sit on top of the substrate, you will\nwant to use different atom types for those atoms. You can only do\nthis if you set the *extra/atom/types* keyword to a sufficiently large\nvalue when reading the substrate data file. Note that use of the\n*extra* keywords also allows each data file to contain sections like\nMasses or Pair Coeffs or Bond Coeffs which are sized appropriately for\nthe number of types in that data file. If the *offset* keyword is\nused appropriately when each data file is read, the values in those\nsections will be stored correctly in the larger data structures\nallocated by the use of the *extra* keywords. E.g. the substrate file\ncan list mass and pair coefficients for type 1 silicon atoms. The\nwater file can list mass and pair coefficients for type 1 and type 2\nhydrogen and oxygen atoms. Use of the *extra* and *offset* keywords\nwill store those mass and pair coefficient values appropriately in\ndata structures that allow for 3 atom types (Si, H, O). Of course,\nyou would still need to specify coefficients for H/Si and O/Si\ninteractions in your input script to have a complete pairwise\ninteraction model.\n\nAn alternative to using the *extra* keywords with the read_data\ncommand, is to use the [create_box ](https://docs.lammps.org/create_box.html) command to\ninitialize the simulation box and all the various type limits you need\nvia its *extra* keywords. Then use the read_data command one or more\ntimes to populate the system with atoms, bonds, angles, etc, using the\n*offset* keyword if desired to alter types used in the various data\nfiles you read.\n\n----------\n\n #### Format of a data file\n\nThe structure of the data file is important, though many settings and\nsections are optional or can come in any order. See the examples\ndirectory for sample data files for different problems.\n\nThe file will be read line by line, but there is a limit of 254\ncharacters per line and characters beyond that limit will be ignored.\n\nA data file has a header and a body. The header appears first. The\nfirst line of the header and thus of the data file is *always* skipped;\nit typically contains a description of the file or a comment from the\nsoftware that created the file.\n\nThen lines are read one line at a time. Lines can have a trailing\ncomment starting with '#' that is ignored. There *must* be at least one\nblank between any valid content and the comment. If a line is blank\n(i.e. contains only white-space after comments are deleted), it is\nskipped. If the line contains a header keyword, the corresponding\nvalue(s) is/are read from the line. A line that is *not* blank and does\n*not* contain a header keyword begins the body of the file.\n\nThe body of the file contains zero or more sections. The first line of\na section has only a keyword. This line can have a trailing comment\nstarting with '#' that is either ignored or can be used to check for a\nstyle match, as described below. There must be a blank between the\nkeyword and any comment. The *next* line is *always* skipped. The\nremaining lines of the section contain values. The number of lines\ndepends on the section keyword as described below. Zero or more blank\nlines can be used *between* sections. Sections can appear in any order,\nwith a few exceptions as noted below.\n\nThe keyword *fix* can be used one or more times. Each usage specifies\na fix that will be used to process a specific portion of the data\nfile. Any header line containing *header-string* and any section that\nis an exact match to *section-string* will be passed to the specified\nfix. See the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command for\nan example of a fix that operates in this manner. The doc page for\nthe fix defines the syntax of the header line(s) and section that it\nreads from the data file. Note that the *header-string* can be\nspecified as NULL, in which case no header lines are passed to the\nfix. This means the fix can infer the length of its Section from\nstandard header settings, such as the number of atoms. Also the\n*section-string* may be specified as NULL, and in that case the fix\nID is used as section name.\n\nThe formatting of individual lines in the data file (indentation,\nspacing between words and numbers) is not important except that header\nand section keywords (e.g. atoms, xlo xhi, Masses, Bond Coeffs) must\nbe capitalized as shown and cannot have extra white-space between\ntheir words - e.g. two spaces or a tab between the 2 words in \"xlo\nxhi\" or the 2 words in \"Bond Coeffs\", is not valid.\n\n----------\n\n #### Format of the header of a data file\n\nThese are the recognized header keywords. Header lines can come in\nany order. Each keyword takes a single value unless noted in this\nlist. The value(s) are read from the beginning of the line.\nThus the keyword *atoms* should be in a line like \"1000 atoms\"; the\nkeyword *ylo yhi* should be in a line like \"-10.0 10.0 ylo yhi\"; the\nkeyword *xy xz yz* should be in a line like \"0.0 5.0 6.0 xy xz yz\".\n\nAll these settings have a default value of 0, except for the\nsimulation box size settings; their defaults are explained below. A\nkeyword line need only appear if its value is different than the\ndefault.\n\n* *atoms* = # of atoms in system\n* *bonds* = # of bonds in system\n* *angles* = # of angles in system\n* *dihedrals* = # of dihedrals in system\n* *impropers* = # of impropers in system\n* *atom types* = # of atom types in system\n* *bond types* = # of bond types in system\n* *angle types* = # of angle types in system\n* *dihedral types* = # of dihedral types in system\n* *improper types* = # of improper types in system\n* *extra bond per atom* = leave space for this many new bonds per atom (deprecated, use extra/bond/per/atom keyword)\n* *extra angle per atom* = leave space for this many new angles per atom (deprecated, use extra/angle/per/atom keyword)\n* *extra dihedral per atom* = leave space for this many new dihedrals per atom (deprecated, use extra/dihedral/per/atom keyword)\n* *extra improper per atom* = leave space for this many new impropers per atom (deprecated, use extra/improper/per/atom keyword)\n* *extra special per atom* = leave space for this many new special bonds per atom (deprecated, use extra/special/per/atom keyword)\n* *ellipsoids* = # of ellipsoids in system\n* *lines* = # of line segments in system\n* *triangles* = # of triangles in system\n* *bodies* = # of bodies in system\n* *xlo xhi* = simulation box boundaries in x dimension (2 values)\n* *ylo yhi* = simulation box boundaries in y dimension (2 values)\n* *zlo zhi* = simulation box boundaries in z dimension (2 values)\n* *xy xz yz* = simulation box tilt factors for triclinic system (3 values)\n* *avec* = first edge vector of a general triclinic simulation box (3 values)\n* *bvec* = second edge vector of a general triclinic simulation box (3 values)\n* *cvec* = third edge vector of a general triclinic simulation box (3 values)\n* *abc origin* = origin of a general triclinic simulation box (3 values)\n\n----------\n\n #### Header specification of the simulation box size and shape\n\nThe last 8 keywords in the list of header keywords are for simulation\nboxes of 3 kinds which LAMMPS supports:\n\n* orthogonal box = faces are perpendicular to the xyz coordinate axes\n* restricted triclinic box = a parallelepiped defined by 3 edge vectors oriented in a constrained manner\n* general triclinic box = a parallelepiped defined by 3 arbitrary edge vectors\n\nFor restricted and general triclinic boxes, see the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a fuller\ndescription than is given here.\n\nThe units of the values for all 8 keywords in in distance units; see\nthe [units ](https://docs.lammps.org/units.html) command for details.\n\nFor all 3 kinds of simulation boxes, the system may be periodic or\nnon-periodic in any dimension; see the [boundary ](https://docs.lammps.org/boundary.html)\ncommand for details.\n\nWhen the simulation box is created by the read_data command, it is\nalso partitioned into a regular 3d grid of subdomains, one per\nprocessor, based on the number of processors being used and the\nsettings of the [processors ](https://docs.lammps.org/processors.html) command. For each kind\nof simulation box the subdomains have the same shape as the simulation\nbox, i.e. smaller orthogonal bricks for orthogonal boxes, smaller\nparallelepipeds for triclinic boxes. The partitioning can later be\nchanged by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nFor an orthogonal box, only the *xlo xhi*, *ylo yhi*, *zlo zhi*\nkeywords are used. They define the extent of the simulation box in\neach dimension so that the resulting edge vectors of an orthogonal box\nare:\n\n* **A** = (xhi-xlo,0,0)\n* **B** = (0,yhi-ylo,0)\n* **C** = (0,0,zhi-zlo)\n\nThe origin (lower left corner) of the orthogonal box is at\n(xlo,ylo,zlo). The default values for these 3 keywords are -0.5 and\n0.5 for each lo/hi pair. For a 2d simulation, the zlo and zhi values\nmust straddle zero. The default zlo/zhi values do this, so that\nkeyword is not needed in 2d.\n\nFor a restricted triclinic box, the *xy xz yz* keyword is used in\naddition to the *xlo xhi*, *ylo yhi*, *zlo zhi* keywords. The three\n*xy,xz,yz* values can be 0.0 or positive or negative, and are called\n\"tilt factors\" because they are the amount of displacement applied to\nedges of faces of an orthogonal box to transform it into a restricted\ntriclinic parallelepiped.\n\nThe [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page discusses the\ntilt factors in detail and explains that the resulting edge vectors of\na restricted triclinic box are:\n\n* **A** = (xhi-xlo,0,0)\n* **B** = (xy,yhi-ylo,0)\n* **C** = (xz,yz,zhi-zlo)\n\nThis restricted form of edge vectors requires that **A** be in the\ndirection of the x-axis, **B** be in the xy plane with its y-component\nin the +y direction, and **C** have its z-component in the +z\ndirection. The origin (lower left corner) of the restricted triclinic\nbox is at (xlo,ylo,zlo).\n\nFor a 2d simulation, the zlo and zhi values must straddle zero. The\ndefault zlo/zhi values do this, so that keyword is not needed in 2d.\nThe xz and yz values must also be zero in 2d. The shape of the 2d\nrestricted triclinic simulation box is effectively a parallelogram.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a restricted triclinic box is used, the simulation domain\n > should normally be periodic in any dimensions that tilt is applied\n > to, which is given by the second dimension of the tilt factor\n > (e.g. y for xy tilt). This is so that pairs of atoms interacting\n > across that boundary will have one of them shifted by the tilt\n > factor. Periodicity is set by the [boundary ](https://docs.lammps.org/boundary.html)\n > command which also describes the shifting by the tilt factor. For\n > example, if the xy tilt factor is non-zero, then the y dimension\n > should be periodic. Similarly, the z dimension should be periodic\n > if xz or yz is non-zero. LAMMPS does not require this periodicity,\n > but you may lose atoms if this is not the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, the specified tilt factors (xy,xz,yz) should not skew the\n > simulation box by more than half the distance of the corresponding\n > parallel box length for computational efficiency. For example, if\n > \\(x_\\text{lo} = 2\\) and \\(x_\\text{hi} = 12\\), then the\n > \\(x\\) box length is 10 and the \\(xy\\) tilt factor should be\n > between \\(-5\\) and \\(5\\). LAMMPS will issue a warning if\n > this is not the case. See the last sub-section of the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more details. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a simulation box is initially orthogonal, but will tilt during a\n > simulation, e.g. via the [fix deform ](https://docs.lammps.org/fix_deform.html) command,\n > then the box should be defined as restricted triclinic with all 3\n > tilt factors = 0.0. Alternatively, the [change box > ](https://docs.lammps.org/change_box.html) command can be used to convert an orthogonal box to a\n > restricted triclinic box. \n > \n\nFor a general triclinic box, the *avec*, *bvec*, *cvec*, and *abc\norigin* keywords are used. The *xlo xhi*, *ylo yhi*, *zlo zhi*, and\n*xy xz yz* keywords are NOT used. The first 3 keywords define the 3\nedge vectors **A**, **B**, **C** of the general triclinic box. They\ncan be arbitrary vectors so long as they are distinct, non-zero, and\nnot co-planar. They must also define a right-handed system such that\n(**A** x **B**) points in the direction of **C**. Note that a\nleft-handed system can be converted to a right-handed system by simply\nswapping the order of any pair of the **A**, **B**, **C** vectors.\nThe origin of the box (origin of the 3 edge vectors) is set by the\n*abc origin* keyword.\n\nThe default values for these 4 keywords are as follows:\n\n* avec = (1,0,0)\n* bvec = (0,1,0)\n* cvec = (0,0,1)\n* abc origin = (0,0,0) for 3d, (0,0,-0.5) for 2d\n\nFor 2d simulations, *cvec* = (0,0,1) is required, and the 3rd value of\n*abc origin* must be -0.5. These are the default values, so the\n*cvec* keyword is not needed in 2d.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box and per-atom information (e.g. coordinates, velocities) in\n > the data file are converted (rotated) from general to restricted\n > triclinic form when the file is read. Other sections of the data\n > file must also list their per-atom data appropriately if vector\n > quantities are specified. This requirement is explained below for\n > the relevant sections. The [Howto_triclinic > ](https://docs.lammps.org/Howto_triclinic.html) doc page also discusses other LAMMPS commands\n > which can input/output general triclinic representations of the\n > simulation box and per-atom data. \n > \n\nThe following explanations apply to all 3 kinds of simulation boxes:\northogonal, restricted triclinic, and general triclinic.\n\nIf the system is periodic (in a dimension), then atom coordinates can\nbe outside the bounds (in that dimension); they will be remapped (in a\nperiodic sense) back inside the box. For triclinic boxes, periodicity\nin x,y,z refers to the faces of the parallelepiped defined by the\n**A**,**B**,**C** edge vectors of the simulation box. See the\n[boundary ](https://docs.lammps.org/boundary.html) command doc page for a fuller discussion.\n\nNote that if the *add* option is being used to add atoms to a\nsimulation box that already exists, this periodic remapping will be\nperformed using simulation box bounds that are the union of the\nexisting box and the box boundaries in the new data file.\n\nIf the system is non-periodic (in a dimension), then an image flag for\nthat direction has no meaning, since there cannot be periodic images\nwithout periodicity and the data file is therefore - technically speaking\n- invalid. This situation would happen when a data file was written\nwith periodic boundaries and then read back for non-periodic boundaries.\nAccepting a non-zero image flag can lead to unexpected results for any\noperations and computations in LAMMPS that internally use unwrapped\ncoordinates (for example computing the center of mass of a group of\natoms). Thus all non-zero image flags for non-periodic dimensions will\nbe be reset to zero on reading the data file and LAMMPS will print a\nwarning message, if that happens. This is equivalent to wrapping atoms\nindividually back into the principal unit cell in that direction. This\noperation is equivalent to the behavior of the [change_box command](https://docs.lammps.org/change_box.html) when used to change periodicity.\n\nIf those atoms with non-zero image flags are involved in bonded\ninteractions, this reset can lead to undesired changes, when the image\nflag values differ between the atoms, i.e. the bonded interaction\nstraddles domain boundaries. For example a bond can become stretched\nacross the unit cell if one of its atoms is wrapped to one side of the\ncell and the second atom to the other. In those cases the data file\nneeds to be pre-processed externally to become valid again. This can be\ndone by first unwrapping coordinates and then wrapping entire molecules\ninstead of individual atoms back into the principal simulation cell and\nfinally expanding the cell dimensions in the non-periodic direction as\nneeded, so that the image flag would be zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is non-periodic (in a dimension), then all atoms in\n > the data file must have coordinates (in that dimension) that are\n > \"greater than or equal to\" the lo value and \"less than or equal to\"\n > the hi value. If the non-periodic dimension is of style \"fixed\"\n > (see the [boundary ](https://docs.lammps.org/boundary.html) command), then the atom coords\n > must be strictly \"less than\" the hi value, due to the way LAMMPS\n > assign atoms to processors. Note that you should not make the\n > lo/hi values radically smaller/larger than the extent of the atoms.\n > For example, if atoms extend from 0 to 50, you should not specify\n > the box bounds as -10000 and 10000 unless you also use the\n > [processors command ](https://docs.lammps.org/processors.html). This is because LAMMPS\n > uses the specified box size to layout the 3d grid of processors. A\n > huge (mostly empty) box will be sub-optimal for performance when\n > using \"fixed\" boundary conditions (see the [boundary > ](https://docs.lammps.org/boundary.html) command). When using \"shrink-wrap\" boundary conditions\n > (see the [boundary ](https://docs.lammps.org/boundary.html) command), a huge (mostly empty)\n > box may cause a parallel simulation to lose atoms when LAMMPS\n > shrink-wraps the box around the atoms. The read_data command will\n > generate an error in this case. \n > \n\n----------\n\n #### Meaning of other header keywords\n\nThe \"extra bond per atom\" setting (angle, dihedral, improper) is only\nneeded if new bonds (angles, dihedrals, impropers) will be added to\nthe system when a simulation runs, e.g. by using the [fixbond/create ](https://docs.lammps.org/fix_bond_create.html) command. Using this header flag is\ndeprecated; please use the *extra/bond/per/atom* keyword (and\ncorrespondingly for angles, dihedrals and impropers) in the read_data\ncommand instead. Either will pre-allocate space in LAMMPS data\nstructures for storing the new bonds (angles, dihedrals, impropers).\n\nThe \"extra special per atom\" setting is typically only needed if new\nbonds/angles/etc will be added to the system, e.g. by using the\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html) command. Or if entire new\nmolecules will be added to the system, e.g. by using the [fixdeposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html) commands, which\nwill have more special 1-2,1-3,1-4 neighbors than any other molecules\ndefined in the data file. Using this header flag is deprecated;\nplease use the *extra/special/per/atom* keyword instead. Using this\nsetting will pre-allocate space in the LAMMPS data structures for\nstoring these neighbors. See the [special_bonds ](https://docs.lammps.org/special_bonds.html)\nand [molecule ](https://docs.lammps.org/molecule.html) doc pages for more discussion of\n1-2,1-3,1-4 neighbors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All of the \"extra\" settings are only applied in the first data file\n > read and when no simulation box has yet been created; as soon as\n > the simulation box is created (and read_data implies that), these\n > settings are *locked* and cannot be changed anymore. Please see the\n > description of the *add* keyword above for reading multiple data\n > files. If they appear in later data files, they are ignored. \n > \n\nThe \"ellipsoids\" and \"lines\" and \"triangles\" and \"bodies\" settings are\nonly used with [atom_style ellipsoid or line or tri or body](https://docs.lammps.org/atom_style.html) and specify how many of the atoms are finite-size\nellipsoids or lines or triangles or bodies; the remainder are point\nparticles. See the discussion of ellipsoidflag and the *Ellipsoids*\nsection below. See the discussion of lineflag and the *Lines* section\nbelow. See the discussion of triangleflag and the *Triangles* section\nbelow. See the discussion of bodyflag and the *Bodies* section below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [atom_style template ](https://docs.lammps.org/atom_style.html), the molecular topology\n > (bonds,angles,etc) is contained in the molecule templates read-in\n > by the [molecule ](https://docs.lammps.org/molecule.html) command. This means you cannot\n > set the *bonds*, *angles*, etc header keywords in the data file,\n > nor can you define *Bonds*, *Angles*, etc sections as discussed\n > below. You can set the *bond types*, *angle types*, etc header\n > keywords, though it is not necessary. If specified, they must\n > match the maximum values defined in any of the template molecules. \n > \n\n----------\n\n #### Format of the body of a data file\n\nThese are the section keywords for the body of the file.\n\n* *Atoms, Velocities, Masses, Ellipsoids, Lines, Triangles, Bodies* = atom-property sections\n* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections\n* *Atom Type Labels, Bond Type Labels, Angle Type Labels, Dihedral Type Labels, Improper Type Labels* = type label maps\n* *Pair Coeffs, PairIJ Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs* = force field sections\n* *BondBond Coeffs, BondAngle Coeffs, MiddleBondTorsion Coeffs, EndBondTorsion Coeffs, AngleTorsion Coeffs, AngleAngleTorsion Coeffs, BondBond13 Coeffs, AngleAngle Coeffs* = class 2 force field sections\n\nThese keywords will check an appended comment for a match with the\ncurrently defined style:\n\n* *Atoms, Pair Coeffs, PairIJ Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs*\n\nFor example, these lines:\n\n```\nAtoms # sphere\nPair Coeffs # lj/cut\n```\nwill check if the currently-defined [atom_style ](https://docs.lammps.org/atom_style.html) is\n*sphere*, and the current [pair_style ](https://docs.lammps.org/pair_style.html) is *lj/cut* .\nIf not, LAMMPS will issue a warning to indicate that the data file\nsection likely does not contain the correct number or type of\nparameters expected for the currently-defined style.\n\nEach section is listed below in alphabetic order. The format of each\nsection is described including the number of lines it must contain and\nrules (if any) for where it can appear in the data file.\n\nAny individual line in the various sections can have a trailing\ncomment starting with \"#\" for annotation purposes. There must be at least\none blank between valid content and the comment. E.g. in the\nAtoms section:\n\n```\n10 1 17 -1.0 10.0 5.0 6.0 # salt ion\n```\n----------\n\n*Angle Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n6 70 108.5 0 0\n```\nThe number and meaning of the coefficients are specific to the defined\nangle style. See the [angle_style ](https://docs.lammps.org/angle_style.html) and\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands for details. Coefficients can\nalso be set via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command in the\ninput script.\n\n----------\n\n*Angle Type Labels* section:\n\n* one line per angle type\n* line syntax: ID label\n\n```\nID = angle type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric angle type. These\ncan be used in the Angles section in place of a numeric type, but only\nif the this section appears before the Angles section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*AngleAngle Coeffs* section:\n\n* one line per improper type\n* line syntax: ID coeffs\n\n```\nID = improper type (1-N)\ncoeffs = list of coeffs (see [improper_coeff ](https://docs.lammps.org/improper_coeff.html))\n```\n----------\n\n*AngleAngleTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Angles* section:\n\n* one line per angle\n* line syntax: ID type atom1 atom2 atom3\n\n```\nID = number of angle (1-Nangles)\ntype = angle type (1-Nangletype, or type label)\natom1,atom2,atom3 = IDs of 1st,2nd,3rd atom in angle\n```\nexample:\n\n```\n2 2 17 29 430\n```\nThe three atoms are ordered linearly within the angle. Thus the central\natom (around which the angle is computed) is the atom2 in the list.\nE.g. H,O,H for a water molecule. The *Angles* section must appear\nafter the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or an Angle Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*AngleTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Atom Type Labels* section:\n\n* one line per atom type\n* line syntax: ID label\n\n```\nID = numeric atom type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric atom type. These\ncan be used in the Atoms section in place of a numeric type, but only\nif the Atom Type Labels section appears before the Atoms section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Atoms* section:\n\n* one line per atom\n* line syntax: depends on atom style\n\nAn *Atoms* section must appear in the data file if natoms > 0 in the\nheader section. The atoms can be listed in any order. These are the\nline formats for each [atom style ](https://docs.lammps.org/atom_style.html) in LAMMPS. As\ndiscussed below, each line can optionally have 3 flags (nx,ny,nz)\nappended to it, which indicate which image of a periodic simulation\nbox the atom is in. These may be important to include for some kinds\nof analysis.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For orthogonal and restricted and general triclinic simulation\n > boxes, the atom coordinates (x,y,z) listed in this section should\n > be inside the corresponding simulation box. For restricted\n > triclinic boxes that means the parallelepiped defined by the *xlo\n > xhi*, *ylo yhi*, *zlo zhi*, and *xy xz yz*, keywords. For general\n > triclinic boxes that means the parallelepiped defined by the 3 edge\n > vectors and origin specified by the *avec*, *bvec*, *cvec*, and\n > *abc origin* header keywords. See the discussion in the header\n > section above about how atom coordinates outside the simulation box\n > are (or are not) remapped to be inside the box. \n > \n\n\n | | | \n |---|---|\n angle | atom-ID molecule-ID atom-type x y z|\n atomic | atom-ID atom-type x y z|\n body | atom-ID atom-type bodyflag mass x y z|\n bond | atom-ID molecule-ID atom-type x y z|\n bpm/sphere | atom-ID molecule-ID atom-type diameter density x y z|\n charge | atom-ID atom-type q x y z|\n dielectric | atom-ID atom-type q x y z mux muy muz area ed em epsilon curvature|\n dipole | atom-ID atom-type q x y z mux muy muz|\n dpd | atom-ID atom-type theta x y z|\n edpd | atom-ID atom-type edpd_temp edpd_cv x y z|\n electron | atom-ID atom-type q espin eradius x y z|\n ellipsoid | atom-ID atom-type ellipsoidflag density x y z|\n full | atom-ID molecule-ID atom-type q x y z|\n line | atom-ID molecule-ID atom-type lineflag density x y z|\n mdpd | atom-ID atom-type rho x y z|\n molecular | atom-ID molecule-ID atom-type x y z|\n peri | atom-ID atom-type volume density x y z|\n rheo | atom-ID atom-type status rho x y z|\n rheo/thermal | atom-ID atom-type status rho energy x y z|\n smd | atom-ID atom-type molecule volume mass kradius cradius x0 y0 z0 x y z|\n sph | atom-ID atom-type rho esph cv x y z|\n sphere | atom-ID atom-type diameter density x y z|\n spin | atom-ID atom-type x y z spx spy spz sp|\n tdpd | atom-ID atom-type x y z cc1 cc2 ... ccNspecies|\n template | atom-ID atom-type molecule-ID template-index template-atom x y z|\n tri | atom-ID molecule-ID atom-type triangleflag density x y z|\n wavepacket | atom-ID atom-type charge espin eradius etag cs_re cs_im x y z|\n \nThe per-atom values have these meanings and units, listed alphabetically:\n\n* atom-ID = integer ID of atom\n* atom-type = type of atom (1-Ntype, or type label)\n* bodyflag = 1 for body particles, 0 for point particles\n* ccN = chemical concentration for tDPD particles for each species (mole/volume units)\n* cradius = contact radius for SMD particles (distance units)\n* cs_re,cs_im = real/imaginary parts of wave packet coefficients\n* cv = heat capacity (need units) for SPH particles\n* density = density of particle (mass/distance\\^3 or mass/distance\\^2 or mass/distance units, depending on dimensionality of particle)\n* diameter = diameter of spherical atom (distance units)\n* edpd_temp = temperature for eDPD particles (temperature units)\n* edpd_cv = volumetric heat capacity for eDPD particles (energy/temperature/volume units)\n* ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles\n* eradius = electron radius (or fixed-core radius)\n* esph = energy (need units) for SPH particles\n* espin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)\n* etag = integer ID of electron that each wave packet belongs to\n* kradius = kernel radius for SMD particles (distance units)\n* lineflag = 1 for line segment particles, 0 for point or spherical particles\n* mass = mass of particle (mass units)\n* molecule-ID = integer ID of molecule the atom belongs to\n* mux,muy,muz = components of dipole moment of atom (dipole units) (see general triclinic note below)\n* q = charge on atom (charge units)\n* rho = density (need units) for SPH particles\n* sp = magnitude of magnetic spin of atom (Bohr magnetons)\n* spx,spy,spz = components of magnetic spin of atom (unit vector) (see general triclinic note below)\n* template-atom = which atom within a template molecule the atom is\n* template-index = which molecule within the molecule template the atom is part of\n* theta = internal temperature of a DPD particle\n* triangleflag = 1 for triangular particles, 0 for point or spherical particles\n* volume = volume of Peridynamic particle (distance\\^3 units)\n* x,y,z = coordinates of atom (distance units)\n* x0,y0,z0 = original (strain-free) coordinates of atom (distance\n units) (see general triclinic note below)\n\nThe units for these quantities depend on the unit style; see the\n[units ](https://docs.lammps.org/units.html) command for details.\n\nFor 2d simulations, the atom coordinate z must be specified as 0.0.\nIf the data file is created by another program, then z values for a 2d\nsimulation can be within epsilon of 0.0, and LAMMPS will force them to\nzero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the data file defines a general triclinic box, then the\n > following per-atom values in the list above are per-atom vectors\n > which imply an orientation: (mux,muy,muz) and (spx,spy,spz). This\n > means they should be specified consistent with the general\n > triclinic box and its orientation relative to the standard x,y,z\n > coordinate axes. For example a dipole moment vector which will be\n > in the +x direction once LAMMPS converts from a general to\n > restricted triclinic box, should be specified in the data file in\n > the direction of the **A** edge vector. Likewise the (x0,y0,z0)\n > per-atom strain-free coordinates should be inside the general\n > triclinic simulation box as explained in the note above. See the\n > [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more details. \n > \n\nThe atom-ID is used to identify the atom throughout the simulation and\nin dump files. Normally, it is a unique value from 1 to Natoms for\neach atom. Unique values larger than Natoms can be used, but they\nwill cause extra memory to be allocated on each processor, if an atom\nmap array is used, but not if an atom map hash is used; see the\n[atom_modify ](https://docs.lammps.org/atom_modify.html) command for details. If an atom map is\nnot used (e.g. an atomic system with no bonds), and you don't care if\nunique atom IDs appear in dump files, then the atom-IDs can all be set\nto 0.\n\nThe atom-type can be a numeric value or an alphanumeric label. The\nlatter is only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or an Atom Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nThe molecule ID is a second identifier attached to an atom. Normally, it\nis a number from 1 to N, identifying which molecule the atom belongs\nto. It can be 0 if it is a non-bonded atom or if you don't care to\nkeep track of molecule assignments.\n\nThe diameter specifies the size of a finite-size spherical particle.\nIt can be set to 0.0, which means that atom is a point particle.\n\nThe ellipsoidflag, lineflag, triangleflag, and bodyflag determine\nwhether the particle is a finite-size ellipsoid or line or triangle or\nbody of finite size, or whether the particle is a point particle.\nAdditional attributes must be defined for each ellipsoid, line,\ntriangle, or body in the corresponding *Ellipsoids*, *Lines*,\n*Triangles*, or *Bodies* section.\n\nThe *template-index* and *template-atom* are only defined used by\n[atom_style template ](https://docs.lammps.org/atom_style.html). In this case the\n[molecule ](https://docs.lammps.org/molecule.html) command is used to define a molecule template\nwhich contains one or more molecules (as separate files). If an atom\nbelongs to one of those molecules, its *template-index* and *template-atom*\nare both set to positive integers; if not the values are both 0. The\n*template-index* is which molecule (1 to Nmols) the atom belongs to.\nThe *template-atom* is which atom (1 to Natoms) within the molecule\nthe atom is.\n\nSome pair styles and fixes and computes that operate on finite-size\nparticles allow for a mixture of finite-size and point particles. See\nthe doc pages of individual commands for details.\n\nFor finite-size particles, the density is used in conjunction with the\nparticle volume to set the mass of each particle as mass = density \\*\nvolume. In this context, volume can be a 3d quantity (for spheres or\nellipsoids), a 2d quantity (for triangles), or a 1d quantity (for line\nsegments). If the volume is 0.0, meaning a point particle, then the\ndensity value is used as the mass. One exception is for the body atom\nstyle, in which case the mass of each particle (body or point\nparticle) is specified explicitly. This is because the volume of the\nbody is unknown.\n\nNote that for 2d simulations of spheres, this command will treat them\nas spheres when converting density to mass. However, they can also be\nmodeled as 2d discs (circles) if the [set density/disc ](https://docs.lammps.org/set.html)\ncommand is used to reset their mass after the read_data command is\nused. A *disc* keyword can also be used with time integration fixes,\nsuch as [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) and [fixnvt/sphere ](https://docs.lammps.org/fix_nve_sphere.html) to time integrate their motion as 2d\ndiscs (not 3d spheres), by changing their moment of inertia.\n\nFor atom\\_style hybrid, following the 5 initial values\n(ID,type,x,y,z), specific values for each sub-style must be listed.\nThe order of the sub-styles is the same as they were listed in the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. The specific values for each\nsub-style are those that are not the 5 standard ones (ID,type,x,y,z).\nFor example, for the \"charge\" sub-style, a \"q\" value would appear.\nFor the \"full\" sub-style, a \"molecule-ID\" and \"q\" would appear. These\nare listed in the same order they appear as listed above. Thus if\n\n```\natom_style hybrid charge sphere\n```\nwere used in the input script, each atom line would have these fields:\n\n```\natom-ID atom-type x y z q diameter density\n```\nNote that if a non-standard value is defined by multiple sub-styles,\nit only appears once in the atom line. E.g. the atom line for\natom_style hybrid dipole full would list \"q\" only once, with the\ndipole sub-style fields; \"q\" does not appear with the full sub-style\nfields.\n\n```\natom-ID atom-type x y z q mux muy myz molecule-ID\n```\nAtom lines specify the (x,y,z) coordinates of atoms. These can be\ninside or outside the simulation box. When the data file is read,\nLAMMPS wraps coordinates outside the box back into the box for\ndimensions that are periodic. As discussed above, if an atom is\noutside the box in a non-periodic dimension, it will be lost.\n\nLAMMPS always stores atom coordinates as values which are inside the\nsimulation box. It also stores 3 flags which indicate which image of\nthe simulation box (in each dimension) the atom would be in if its\ncoordinates were unwrapped across periodic boundaries. An image flag\nof 0 means the atom is still inside the box when unwrapped. A value\nof 2 means add 2 box lengths to get the unwrapped coordinate. A value\nof -1 means subtract 1 box length to get the unwrapped coordinate.\nLAMMPS updates these flags as atoms cross periodic boundaries during\nthe simulation. The [dump ](https://docs.lammps.org/dump.html) command can output atom\ncoordinates in wrapped or unwrapped form, as well as the 3 image\nflags.\n\nIn the data file, atom lines (all lines or none of them) can\noptionally list 3 trailing integer values (nx,ny,nz), which are used\nto initialize the atom's image flags. If nx,ny,nz values are not\nlisted in the data file, LAMMPS initializes them to 0. Note that the\nimage flags are immediately updated if an atom's coordinates need to\nwrapped back into the simulation box.\n\nIt is only important to set image flags correctly in a data file if a\nsimulation model relies on unwrapped coordinates for some calculation;\notherwise they can be left unspecified. Examples of LAMMPS commands\nthat use unwrapped coordinates internally are as follows:\n\n* Atoms in a rigid body (see [fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)) must have consistent image flags, so that\n when the atoms are unwrapped, they are near each other, i.e. as a\n single body.\n* If the [replicate ](https://docs.lammps.org/replicate.html) command is used to generate a larger\n system, image flags must be consistent for bonded atoms when the bond\n crosses a periodic boundary. I.e. the values of the image flags\n should be different by 1 (in the appropriate dimension) for the two\n atoms in such a bond.\n* If you plan to [dump ](https://docs.lammps.org/dump.html) image flags and perform post-analysis\n that will unwrap atom coordinates, it may be important that a\n continued run (restarted from a data file) begins with image flags\n that are consistent with the previous run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is an infinite periodic crystal with bonds then\n > it is impossible to have fully consistent image flags. This is because\n > some bonds will cross periodic boundaries and connect two atoms with the\n > same image flag. \n > \n\nAtom velocities and other atom quantities not defined above are set to\n0.0 when the *Atoms* section is read. Velocities can be set later by\na *Velocities* section in the data file or by a [velocity](https://docs.lammps.org/velocity.html) or [set ](https://docs.lammps.org/set.html) command in the input script.\n\n----------\n\n*Bodies* section:\n\n* one or more lines per body\n* first line syntax: atom-ID Ninteger Ndouble\n\n```\nNinteger = # of integer quantities for this particle\nNdouble = # of floating-point quantities for this particle\n```\n* 0 or more integer lines with total of Ninteger values\n* 0 or more double lines with total of Ndouble values\n* example:\n\n```\n12 3 6\n2 3 2\n1.0 2.0 3.0 1.0 2.0 4.0\n```\n* example:\n\n```\n12 0 14\n1.0 2.0 3.0 1.0 2.0 4.0 1.0\n2.0 3.0 1.0 2.0 4.0 4.0 2.0\n```\nThe *Bodies* section must appear if [atom_style body ](https://docs.lammps.org/atom_style.html)\nis used and any atoms listed in the *Atoms* section have a bodyflag =\n1. The number of bodies should be specified in the header section via\nthe \"bodies\" keyword.\n\nEach body can have a variable number of integer and/or floating-point\nvalues. The number and meaning of the values is defined by the body\nstyle, as described in the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page.\nThe body style is given as an argument to the [atom_style body](https://docs.lammps.org/atom_style.html) command.\n\nThe Ninteger and Ndouble values determine how many integer and\nfloating-point values are specified for this particle. Ninteger and\nNdouble can be as large as needed and can be different for every body.\nInteger values are then listed next on subsequent lines. Lines are\nread one at a time until Ninteger values are read. Floating-point\nvalues follow on subsequent lines, Again lines are read one at a time\nuntil Ndouble values are read. Note that if there are no values of a\nparticular type, no lines appear for that type.\n\nThe *Bodies* section must appear after the *Atoms* section.\n\n----------\n\n*Bond Coeffs* section:\n\n* one line per bond type\n* line syntax: ID coeffs\n\n```\nID = bond type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n4 250 1.49\n```\nThe number and meaning of the coefficients are specific to the defined\nbond style. See the [bond_style ](https://docs.lammps.org/bond_style.html) and\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) commands for details. Coefficients can\nalso be set via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command in the input\nscript.\n\n----------\n\n*Bond Type Labels* section:\n\n* one line per bond type\n* line syntax: ID label\n\n```\nID = bond type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric bond type. These can\nbe used in the Bonds section in place of a numeric type, but only if\nthe this section appears before the Angles section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*BondAngle Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs (see class 2 section of [angle_coeff ](https://docs.lammps.org/angle_coeff.html))\n```\n----------\n\n*BondBond Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs (see class 2 section of [angle_coeff ](https://docs.lammps.org/angle_coeff.html))\n```\n----------\n\n*BondBond13 Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Bonds* section:\n\n* one line per bond\n* line syntax: ID type atom1 atom2\n\n```\nID = bond number (1-Nbonds)\ntype = bond type (1-Nbondtype, or type label)\natom1,atom2 = IDs of 1st,2nd atom in bond\n```\n* example:\n\n```\n12 3 17 29\n```\nThe *Bonds* section must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Bond Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Dihedral Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n3 0.6 1 0 1\n```\nThe number and meaning of the coefficients are specific to the defined\ndihedral style. See the [dihedral_style ](https://docs.lammps.org/dihedral_style.html) and\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) commands for details.\nCoefficients can also be set via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script.\n\n----------\n\n*Dihedral Type Labels* section:\n\n* one line per dihedral type\n* line syntax: ID label\n\n```\nID = dihedral type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric dihedral type. These\ncan be used in the Dihedrals section in place of a numeric type, but\nonly if the this section appears before the Dihedrals section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Dihedrals* section:\n\n* one line per dihedral\n* line syntax: ID type atom1 atom2 atom3 atom4\n\n```\nID = number of dihedral (1-Ndihedrals)\ntype = dihedral type (1-Ndihedraltype, or type label)\natom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in dihedral\n```\n* example:\n\n```\n12 4 17 29 30 21\n```\nThe 4 atoms are ordered linearly within the dihedral. The *Dihedrals*\nsection must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Dihedral Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Ellipsoids* section:\n\n* one line per ellipsoid\n* line syntax: atom-ID shapex shapey shapez quatw quati quatj quatk\n\n```\natom-ID = ID of atom which is an ellipsoid\nshapex,shapey,shapez = 3 diameters of ellipsoid (distance units)\nquatw,quati,quatj,quatk = quaternion components for orientation of atom\n```\n* example:\n\n```\n12 1 2 1 1 0 0 0\n```\nThe *Ellipsoids* section must appear if [atom_style ellipsoid](https://docs.lammps.org/atom_style.html) is used and any atoms are listed in the *Atoms* section\nwith an ellipsoidflag = 1. The number of ellipsoids should be\nspecified in the header section via the \"ellipsoids\" keyword.\n\nThe 3 shape values specify the 3 diameters or aspect ratios of a\nfinite-size ellipsoidal particle, when it is oriented along the 3\ncoordinate axes. They must all be non-zero values.\n\nThe values *quatw*, *quati*, *quatj*, and *quatk* set the orientation\nof the atom as a quaternion (4-vector). Note that the shape\nattributes specify the aspect ratios of an ellipsoidal particle, which\nis oriented by default with its x-axis along the simulation box's\nx-axis, and similarly for y and z. If this body is rotated (via the\nright-hand rule) by an angle theta around a unit vector (a,b,c), then\nthe quaternion that represents its new orientation is given by\n(cos(theta/2), a\\*sin(theta/2), b\\*sin(theta/2), c\\*sin(theta/2)). These\n4 components are quatw, quati, quatj, and quatk as specified above.\nLAMMPS normalizes each atom's quaternion in case (a,b,c) is not\nspecified as a unit vector.\n\nIf the data file defines a general triclinic box, then the quaternion\nfor each ellipsoid should be specified for its orientation relative to\nthe standard x,y,z coordinate axes. When the system is converted to a\nrestricted triclinic box, the ellipsoid quaternions will be altered to\nreflect the new orientation of the ellipsoid.\n\nThe *Ellipsoids* section must appear after the *Atoms* section.\n\n----------\n\n*EndBondTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Improper Coeffs* section:\n\n* one line per improper type\n* line syntax: ID coeffs\n\n```\nID = improper type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n2 20 0.0548311\n```\nThe number and meaning of the coefficients are specific to the defined\nimproper style. See the [improper_style ](https://docs.lammps.org/improper_style.html) and\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands for details.\nCoefficients can also be set via the\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) command in the input script.\n\n----------\n\n*Improper Type Labels* section:\n\n* one line per improper type\n* line syntax: ID label\n\n```\nID = improper type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric improper type. These\ncan be used in the Impropers section in place of a numeric type, but\nonly if the this section appears before the Impropers section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Impropers* section:\n\n* one line per improper\n* line syntax: ID type atom1 atom2 atom3 atom4\n\n```\nID = number of improper (1-Nimpropers)\ntype = improper type (1-Nimpropertype, or type label)\natom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in improper\n```\n* example:\n\n```\n12 3 17 29 13 100\n```\nThe ordering of the 4 atoms determines the definition of the improper\nangle used in the formula for each [improper style](https://docs.lammps.org/improper_style.html). See the doc pages for individual styles for\ndetails.\n\nThe *Impropers* section must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Improper Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Lines* section:\n\n* one line per line segment\n* line syntax: atom-ID x1 y1 x2 y2\n\n```\natom-ID = ID of atom which is a line segment\nx1,y1 = 1st end point\nx2,y2 = 2nd end point\n```\n* example:\n\n```\n12 1.0 0.0 2.0 0.0\n```\nThe *Lines* section must appear if [atom_style line ](https://docs.lammps.org/atom_style.html)\nis used and any atoms are listed in the *Atoms* section with a\nlineflag = 1. The number of lines should be specified in the header\nsection via the \"lines\" keyword.\n\nThe 2 end points are the end points of the line segment. They should\nbe values close to the center point of the line segment specified in\nthe Atoms section of the data file, even if individual end points are\noutside the simulation box.\n\nThe ordering of the 2 points should be such that using a right-hand\nrule to cross the line segment with a unit vector in the +z direction,\ngives an \"outward\" normal vector perpendicular to the line segment.\nI.e. normal = (c2-c1) x (0,0,1). This orientation may be important\nfor defining some interactions.\n\nIf the data file defines a general triclinic box, then the x1,y1 and\nx2,y2 values for each line segment should be specified for its\norientation relative to the standard x,y,z coordinate axes. When the\nsystem is converted to a restricted triclinic box, the x1,y1,x2,y2\nvalues will be altered to reflect the new orientation of the line\nsegment.\n\nThe *Lines* section must appear after the *Atoms* section.\n\n----------\n\n*Masses* section:\n\n* one line per atom type\n* line syntax: ID mass\n\n```\nID = atom type (1-N or atom type label)\nmass = mass value\n```\n* example:\n\n```\n3 1.01\n```\nThis defines the mass of each atom type. This can also be set via the\n[mass ](https://docs.lammps.org/mass.html) command in the input script. This section cannot be\nused for atom styles that define a mass for individual atoms -\ne.g. [atom_style sphere ](https://docs.lammps.org/atom_style.html).\n\nUsing type labels instead of atom type numbers is only allowed if the\ntype label has been defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command or\na Atom Type Labels section earlier in the data file. See the\n[Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed\nsyntax of type labels and a general discussion of how type labels can be\nused.\n\n----------\n\n*MiddleBondTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Pair Coeffs* section:\n\n* one line per atom type\n* line syntax: ID coeffs\n\n```\nID = atom type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n3 0.022 2.35197 0.022 2.35197\n```\nThe number and meaning of the coefficients are specific to the defined\npair style. See the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for details. Since pair\ncoefficients for types I != J are not specified, these will be\ngenerated automatically by the pair style's mixing rule. See the\nindividual pair_style doc pages and the [pair_modify mix](https://docs.lammps.org/pair_modify.html) command for details. Pair coefficients can also be set\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command in the input script.\n\n----------\n\n*PairIJ Coeffs* section:\n\n* one line per pair of atom types for all I,J with I <= J\n* line syntax: ID1 ID2 coeffs\n\n```\nID1 = atom type I = 1-N\nID2 = atom type J = I-N, with I <= J\ncoeffs = list of coeffs\n```\n* examples:\n\n```\n3 3 0.022 2.35197 0.022 2.35197\n3 5 0.022 2.35197 0.022 2.35197\n```\nThis section must have N\\*(N+1)/2 lines where N = # of atom types.\nThe number and meaning of the coefficients are specific to the defined\npair style. See the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for details. Since pair\ncoefficients for types I != J are all specified, these values will\nturn off the default mixing rule defined by the pair style. See the\nindividual pair_style doc pages and the [pair_modify mix](https://docs.lammps.org/pair_modify.html) command for details. Pair coefficients can also be set\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command in the input script.\n\n----------\n\n*Triangles* section:\n\n* one line per triangle\n* line syntax: atom-ID x1 y1 z1 x2 y2 z2 x3 y3 z3\n\n```\natom-ID = ID of atom which is a line segment\nx1,y1,z1 = 1st corner point\nx2,y2,z2 = 2nd corner point\nx3,y3,z3 = 3rd corner point\n```\n* example:\n\n```\n12 0.0 0.0 0.0 2.0 0.0 1.0 0.0 2.0 1.0\n```\nThe *Triangles* section must appear if [atom_style tri](https://docs.lammps.org/atom_style.html) is used and any atoms are listed in the *Atoms* section\nwith a triangleflag = 1. The number of lines should be specified in\nthe header section via the \"triangles\" keyword.\n\nThe 3 corner points are the corner points of the triangle. They\nshould be values close to the center point of the triangle specified\nin the Atoms section of the data file, even if individual corner\npoints are outside the simulation box.\n\nThe ordering of the 3 points should be such that using a right-hand\nrule to go from point1 to point2 to point3 gives an \"outward\" normal\nvector to the face of the triangle. I.e. normal = (c2-c1) x (c3-c1).\nThis orientation may be important for defining some interactions.\n\nIf the data file defines a general triclinic box, then the x1,y1,z1\nand x2,y2,z2 and x3,y3,z3 values for each triangle should be specified\nfor its orientation relative to the standard x,y,z coordinate axes.\nWhen the system is converted to a restricted triclinic box, the\nx1,y1,z1,x2,y2,z2,x3,y3,z3 values will be altered to reflect the new\norientation of the triangle.\n\nThe *Triangles* section must appear after the *Atoms* section.\n\n----------\n\n*Velocities* section:\n\n* one line per atom\n* line syntax: depends on atom style\n\n| | |\n|---|---|\n| all styles except those listed | atom-ID vx vy vz |\n| electron | atom-ID vx vy vz ervel |\n| ellipsoid | atom-ID vx vy vz lx ly lz |\n| sphere | atom-ID vx vy vz wx wy wz |\n| hybrid | atom-ID vx vy vz sub-style1 sub-style2 ... |\n\nwhere the keywords have these meanings:\n\n```\nvx,vy,vz = translational velocity of atom\nlx,ly,lz = angular momentum of aspherical atom\nwx,wy,wz = angular velocity of spherical atom\nervel = electron radial velocity (0 for fixed-core)\n```\nThe velocity lines can appear in any order. This section can only be\nused after an *Atoms* section. This is because the *Atoms* section\nmust have assigned a unique atom ID to each atom so that velocities\ncan be assigned to them.\n\nVx, vy, vz, and ervel are in [units ](https://docs.lammps.org/units.html) of velocity. Lx, ly,\nlz are in units of angular momentum (distance-velocity-mass). Wx, Wy,\nWz are in units of angular velocity (radians/time).\n\nIf the data file defines a general triclinic box, then each of the 3\nvectors (translational velocity, angular momentum, angular velocity)\nshould be specified for the rotated coordinate axes of the general\ntriclinic box. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc\npage for more details.\n\nFor atom_style hybrid, following the 4 initial values (ID,vx,vy,vz),\nspecific values for each sub-style must be listed. The order of the\nsub-styles is the same as they were listed in the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. The sub-style specific values\nare those that are not the 5 standard ones (ID,vx,vy,vz). For\nexample, for the \"sphere\" sub-style, \"wx\", \"wy\", \"wz\" values would\nappear. These are listed in the same order they appear as listed\nabove. Thus if\n\n```lmps\natom_style hybrid electron sphere\n```\nwere used in the input script, each velocity line would have these\nfields:\n\n```\natom-ID vx vy vz ervel wx wy wz\n```\nTranslational velocities can also be (re)set by the [velocity](https://docs.lammps.org/velocity.html) command in the input script.\n\n----------\n", - "restrictions": "To read gzipped data files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n\nLabel maps are currently not supported when using the KOKKOS package.\n", - "related": "[read_dump ](https://docs.lammps.org/read_dump.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[create_atoms ](https://docs.lammps.org/create_atoms.html), [write_data ](https://docs.lammps.org/write_data.html),\n[labelmap ](https://docs.lammps.org/labelmap.html)\n" + "parameters": "* style = thole or lj/cut/thole/long\n* args = list of arguments for a particular style \n *      thole args = damp cutoff \n       damp = global damping parameter \n       cutoff = global cutoff (distance units) \n *      lj/cut/thole/long args = damp cutoff (cutoff2) \n       damp = global damping parameter \n       cutoff = global cutoff for LJ (and Thole if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Thole (optional) (distance units) \n", + "examples": "\n```lmps\npair_style hybrid/overlay ... thole 2.6 12.0\npair_coeff 1 1 thole 1.0\npair_coeff 1 2 thole 1.0 2.6 10.0\npair_coeff * 2 thole 1.0 2.6\n\npair_style lj/cut/thole/long 2.6 12.0\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "pair_thole.html", + "short_description": "The *thole* pair styles are meant to be used with force fields that\ninclude explicit polarization through Drude dipoles", + "description": "The *thole* pair styles are meant to be used with force fields that\ninclude explicit polarization through Drude dipoles. This link\ndescribes how to use the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html) in LAMMPS and polarizable models in LAMMPS are\ndiscussed on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nThe *thole* pair style should be used as a sub-style within in the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, in conjunction with a\nmain pair style including Coulomb interactions, i.e. any pair style\ncontaining *coul/cut* or *coul/long* in its style name.\n\nThe *lj/cut/thole/long* pair style is equivalent to, but more convenient that\nthe frequent combination *hybrid/overlay lj/cut/coul/long cutoff thole damp\ncutoff2*\\ . It is not only a shorthand for this pair_style combination, but\nit also allows for mixing pair coefficients instead of listing them all.\nThe *lj/cut/thole/long* pair style is also a bit faster because it avoids an\noverlay and can benefit from OMP acceleration. Moreover, it uses a more\nprecise approximation of the direct Coulomb interaction at short range similar\nto [coul/long/cs ](https://docs.lammps.org/pair_cs.html), which stabilizes the temperature of\nDrude particles.\n\nThe *thole* pair styles compute the Coulomb interaction damped at\nshort distances by a function\n\\[\n T_{ij}(r_{ij}) = 1 - \\left( 1 +\n \\frac{s_{ij} r_{ij} }{2} \\right)\n \\exp \\left( - s_{ij} r_{ij} \\right)\\]\nThis function results from an adaptation to point charges\n**Noskov1** of the dipole screening scheme originally proposed\nby **Thole1**. The scaling coefficient \\(s_{ij}\\) is determined\nby the polarizability of the atoms, \\(\\alpha_i\\), and by a Thole\ndamping parameter \\(a\\). This Thole damping parameter usually takes\na value of 2.6, but in certain force fields the value can depend upon\nthe atom types. The mixing rule for Thole damping parameters is the\narithmetic average, and for polarizabilities the geometric average\nbetween the atom-specific values.\n\\[\n s_{ij} = \\frac{ a_{ij} }{\n (\\alpha_{ij})^{1/3} } = \\frac{ (a_i + a_j)/2 }{\n [(\\alpha_i\\alpha_j)^{1/2}]^{1/3} }\\]\nThe damping function is only applied to the interactions between the\npoint charges representing the induced dipoles on polarizable sites,\nthat is, charges on Drude particles, \\(q_{D,i}\\), and opposite\ncharges, \\(-q_{D,i}\\), located on the respective core particles\n(to which each Drude particle is bonded). Therefore, Thole screening\nis not applied to the full charge of the core particle \\(q_i\\), but\nonly to the \\(-q_{D,i}\\) part of it.\n\nThe interactions between core charges are subject to the weighting\nfactors set by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. The\ninteractions between Drude particles and core charges or\nnon-polarizable atoms are also subject to these weighting factors. The\nDrude particles inherit the 1-2, 1-3 and 1-4 neighbor relations from\ntheir respective cores.\n\nFor pair_style *thole*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the example above.\n\n* \\(\\alpha\\) (distance units\\^3)\n* damp\n* cutoff (distance units)\n\nThe last two coefficients are optional. If not specified the global\nThole damping parameter or global cutoff specified in the pair_style\ncommand are used. In order to specify a cutoff (third argument) a damp\nparameter (second argument) must also be specified.\n\nFor pair style *lj/cut/thole/long*, the following coefficients must be\ndefined for each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (length units)\n* \\(\\alpha\\) (distance units\\^3)\n* damp\n* LJ cutoff (distance units)\n\nThe last two coefficients are optional and default to the global values from\nthe *pair_style* command line.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe *thole* pair style does not support mixing. Thus, coefficients\nfor all I,J pairs must be specified explicitly.\n\nThe *lj/cut/thole/long* pair style does support mixing. Mixed coefficients\nare defined using\n\\[\\begin{align*} \n \\alpha_{ij} = & \\sqrt{\\alpha_i\\alpha_j} \\\\\n & \\\\\n a_{ij} = & \\frac 1 2 (a_i + a_j) \\end{align*} \\]\n\n**(Noskov1)** Noskov, Lamoureux and Roux, J Phys Chem B, 109, 6705 (2005). \n \n**(Thole1)** Chem Phys, 59, 341 (1981). \n ", + "restrictions": "These pair styles are part of the DRUDE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair_style should currently not be used with the [charmm dihedral style ](https://docs.lammps.org/dihedral_charmm.html) if the latter has non-zero 1-4 weighting\nfactors. This is because the *thole* pair style does not know which\npairs are 1-4 partners of which dihedrals.\n\nThe *lj/cut/thole/long* pair style should be used with a [Kspace solver ](https://docs.lammps.org/kspace_style.html)\nlike PPPM or Ewald, which is only enabled if LAMMPS was built with the kspace\npackage.\n", + "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n[pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n" }, { "command": [ - "fix_modify AtC mesh quadrature" + "compute temp/deform", + "compute temp/deform/kk" ], "syntax": [ - "fix_modify mesh quatrature " + "compute ID group-ID temp/deform" ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "quatrature", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "temp/deform", "type": 3, "choices": [ - "nodal", - "gauss1", - "gauss2", - "gauss3", - "face" + "temp/deform", + "temp/deform/kk" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh quadrature = name of the AtC sub-command\n* quad = nodal or gauss1 or gauss2 or gauss3 or face \n", - "examples": "\n```lmps\nfix_modify AtC mesh quadrature face\n```\n", - "html_filename": "atc_mesh_quadrature.html", - "short_description": "(Re-)assigns the quadrature style for an existing mesh", - "description": "(Re-)assigns the quadrature style for an existing mesh. When a mesh is\ncreated its quadrature method defaults to gauss2. Use this call to\nchange it after the fact.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/deform = style name of this compute command \n", + "examples": "\n```lmps\ncompute myTemp all temp/deform\n```\n", + "html_filename": "compute_temp_deform.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation", + "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation. The size/shape change is\ninduced by use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command. A compute\nof this style is created by the [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html)\ncommand to compute the thermal temperature of atoms for thermostatting\npurposes. A compute of this style can also be used by any command\nthat computes a temperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe deformation fix changes the box size and/or shape over time, so\neach atom in the simulation box can be thought of as having a\n\"streaming\" velocity. For example, if the box is being sheared in *x*,\nrelative to *y*, then atoms at the bottom of the box (low *y*) have a\nsmall *x* velocity, while atoms at the top of the box (high *y*) have a\nlarge *x* velocity. This position-dependent streaming velocity is\nsubtracted from each atom's actual velocity to yield a thermal\nvelocity, which is then used to compute the temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >[Fix deform ](https://docs.lammps.org/fix_deform.html) has an option for remapping either\n > atom coordinates or velocities to the changing simulation box. When\n > using this compute in conjunction with a deforming box, fix deform\n > should NOT remap atom positions, but rather should let atoms respond\n > to the changing box by adjusting their own velocities (or let\n > [fix deform ](https://docs.lammps.org/fix_deform.html) remap the atom velocities; see its remap\n > option). If fix deform does remap atom positions, then they appear to\n > move with the box but their velocity is not changed, and thus they do\n > NOT have the streaming velocity assumed by this compute. LAMMPS will\n > warn you if fix deform is defined and its remap setting is not\n > consistent with this compute. \n > \n\nAfter the streaming velocity has been subtracted from each atom, the\ntemperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\), dim = 2 or 3 is the dimensionality of the\nsimulation, \\(N\\) is the number of atoms in the group, \\(k_B\\)\nis the Boltzmann constant, and \\(T\\) is the temperature. Note that\n\\(v\\) in the kinetic energy formula is the atom's velocity.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the computation of a pressure\ntensor. The formula for the components of the tensor is the same as\nthe above formula, except that \\(v^2\\) is replaced by \\(v_x v_y\\) for\nthe \\(xy\\) component, and so on. The six components of the vector are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the box deformation velocity component by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature calculated by this compute is only accurate if\n > the atoms are indeed moving with a stream velocity profile that\n > matches the box deformation. If not, then the compute will subtract\n > off an incorrect stream velocity, yielding a bogus thermal\n > temperature. You should **not** assume that your atoms are streaming at\n > the same rate the box is deforming. Rather, you should monitor their\n > velocity profiles (e.g., via the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n > command). You can also compare the results of this compute to\n > [compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html), which actually\n > calculates the stream profile before subtracting it. If the two computes do\n > not give roughly the same temperature, then your atoms are not streaming\n > consistent with the box deformation. See the [fix deform ](https://docs.lammps.org/fix_deform.html)\n > command for more details on ways to get atoms to stream consistently with\n > the box deformation. \n > \n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html).\nThe vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html),\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html),\n[fix deform ](https://docs.lammps.org/fix_deform.html),\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html)\n" }, { "command": [ - "fix ffl" + "pair_style hybrid", + "pair_style hybrid/kk", + "pair_style hybrid/omp", + "pair_style hybrid/molecular", + "pair_style hybrid/overlay", + "pair_style hybrid/overlay/kk", + "pair_style hybrid/overlay/omp", + "pair_style hybrid/scaled" ], "syntax": [ - "fix ID id-group ffl tau Tstart Tstop seed [flip-type]" + "pair_style hybrid style1 args style2 args ...", + "pair_style hybrid/molecular factor1 style1 args factor2 style 2 args", + "pair_style hybrid/overlay style1 args style2 args ...", + "pair_style hybrid/scaled factor1 style1 args factor2 style 2 args ..." ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "hybrid", + "type": 3, + "choices": [ + "hybrid", + "hybrid/kk", + "hybrid/omp" + ] + }, + { + "arg": "style1", "type": 2, "choices": [] }, { - "arg": "id-group", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "ffl", + "arg": "style2", + "type": 2, + "choices": [] + }, + { + "arg": "args", + "type": 2, + "choices": [] + } + ], + [ + { + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "tau", + "arg": "hybrid/molecular", "type": 2, "choices": [] }, { - "arg": "Tstart", + "arg": "factor1", "type": 2, "choices": [] }, { - "arg": "Tstop", + "arg": "style1", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "[flip-type]", + "arg": "factor2", + "type": 2, + "choices": [] + }, + { + "arg": "style", + "type": 2, + "choices": [] + }, + { + "arg": "2", + "type": 2, + "choices": [] + }, + { + "arg": "args", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ffl = style name of this fix command\n* tau = thermostat parameter (positive real)\n* Tstart, Tstop = temperature ramp during the run\n* seed = random number seed to use for generating noise (positive integer)\n* one more value may be appended \n *          flip-type = determines the flipping type, can be chosen between rescale - no_flip - hard - soft, if no flip type is given, rescale will be chosen by default \n", - "examples": "\n```lmps\nfix 3 boundary ffl 10 300 300 31415\nfix 1 all ffl 100 500 500 9265 soft\n```\n", - "html_filename": "fix_ffl.html", - "short_description": "Apply a Fast-Forward Langevin Equation (FFL) thermostat as described\nin **Hijazi**", - "description": "Apply a Fast-Forward Langevin Equation (FFL) thermostat as described\nin **Hijazi**. Contrary to\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), this fix performs both\nthermostatting and evolution of the Hamiltonian equations of motion, so it\nshould not be used together with [fix nve ](https://docs.lammps.org/fix_nve.html) -- at least not\non the same atom groups.\n\nThe time-evolution of a single particle undergoing Langevin dynamics is described\nby the equations\n\\[\n \\frac {dq}{dt} = \\frac{p}{m},\\]\n\\[\n \\frac {dp}{dt} = -\\gamma p + W + F,\\]\nwhere \\(F\\) is the physical force, \\(\\gamma\\) is the friction coefficient, and \\(W\\) is a\nGaussian random force.\n\nThe friction coefficient is the inverse of the thermostat parameter : \\(\\gamma = 1/\\tau\\), with \\(\\tau\\) the thermostat parameter *tau* .\nThe thermostat parameter is given in the time units, \\(\\gamma\\) is in inverse time units.\n\nEquilibrium sampling a temperature T is obtained by specifying the\ntarget value as the *Tstart* and *Tstop* arguments, so that the internal\nconstants depending on the temperature are computed automatically.\n\nThe random number *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\nThe flipping type *flip-type* can be chosen between 4 types described in\n**Hijazi**. The flipping operation occurs during the thermostatting\nstep and it flips the momenta of the atoms. If no_flip is chosen, no flip\nwill be executed and the integration will be the same as a standard\nLangevin thermostat **Bussi3**. The other flipping types are : rescale - hard - soft.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the\nrandom number generator is not saved in restart files, this means you\ncannot do \"exact\" restarts with this fix, where the simulation\ncontinues on the same as if no restart had taken place. However, in a\nstatistical sense, a restarted simulation should produce the same\nbehavior. Note however that you should use a different seed each time\nyou restart, otherwise the same sequence of random numbers will be\nused each time, which might lead to stochastic synchronization and\nsubtle artifacts in the sampling.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n \n \n**(Bussi3)** M. Hijazi, D. M. Wilkins, M. Ceriotti, J. Chem. Phys. 148, 184109 (2018) \n ", - "restrictions": "In order to perform constant-pressure simulations please use\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), rather than\n[fix npt ](https://docs.lammps.org/fix_nh.html), to avoid duplicate integration of the\nequations of motion.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html), [fix gld ](https://docs.lammps.org/fix_gld.html), [fix gle ](https://docs.lammps.org/fix_gle.html)\n\n----------\n\n.. _Hijazi:\n\n.. _Bussi3:\n\n**(Hijazi)** M. Hijazi, D. M. Wilkins, M. Ceriotti, J. Chem. Phys. 148, 184109 (2018)\n\n**(Bussi)** G. Bussi, M. Parrinello, Phs. Rev. E 75, 056707 (2007)\n" -}, -{ - "command": [ - "fix momentum", - "fix momentum/kk", - "fix momentum/chunk" - ], - "syntax": [ - "fix ID group-ID momentum N keyword values ..." - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "style1", "type": 2, "choices": [] }, { - "arg": "momentum", - "type": 3, - "choices": [ - "momentum", - "momentum/kk" - ] - }, - { - "arg": "N", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "rescale", - "type": 3, - "choices": [ - "linear", - "angular", - "rescale" - ] + "arg": "style2", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* momentum = style name of this fix command\n* N = adjust the momentum every this many timesteps\n one or more keyword/value pairs may be appended \n *    fix ID group-ID momentum/chunk N chunkID keyword values ... \n* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* momentum/chunk = style name of this fix command\n* N = adjust the momentum per chunk every this many timesteps\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n\n one or more keyword/value settings may be appended to each of the fix commands:\n* keyword = linear or angular or rescale \n *        linear values = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension \n *        angular values = none \n *        rescale values = none \n", - "examples": "\n```lmps\nfix 1 all momentum 1 linear 1 1 0\nfix 1 all momentum 1 linear 1 1 1 rescale\nfix 1 all momentum 100 linear 1 1 1 angular\nfix 1 all momentum/chunk 100 molchunk linear 1 1 1 angular\n```\n", - "html_filename": "fix_momentum.html", - "short_description": "Fix momentum zeroes the linear and/or angular momentum of the group of\natoms every N timesteps by adjusting the velocities of the atoms", - "description": "Fix momentum zeroes the linear and/or angular momentum of the group of\natoms every N timesteps by adjusting the velocities of the atoms.\nFix momentum/chunk works equivalently, but operates on a per-chunk basis.\n\nOne (or both) of the *linear* or *angular* keywords **must** be specified.\n\nIf the *linear* keyword is used, the linear momentum is zeroed by\nsubtracting the center-of-mass velocity of the group or chunk from each\natom. This does not change the relative velocity of any pair of atoms.\nOne or more dimensions can be excluded from this operation by setting\nthe corresponding flag to 0.\n\nIf the *angular* keyword is used, the angular momentum is zeroed by\nsubtracting a rotational component from each atom.\n\nThis command can be used to ensure the entire collection of atoms (or\na subset of them) does not drift or rotate during the simulation due\nto random perturbations (e.g. [fix langevin ](https://docs.lammps.org/fix_langevin.html)\nthermostatting).\n\nThe *rescale* keyword enables conserving the kinetic energy of the group\nor chunk of atoms by rescaling the velocities after the momentum was removed.\n\nNote that the [velocity ](https://docs.lammps.org/velocity.html) command can be used to create\ninitial velocities with zero aggregate linear and/or angular momentum.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "Fix momentum/chunk is part of the EXTRA-FIX package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix recenter ](https://docs.lammps.org/fix_recenter.html), [velocity ](https://docs.lammps.org/velocity.html)\n" -}, -{ - "command": [ - "fix qtb" - ], - "syntax": [ - "fix ID group-ID qtb keyword value ..." - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "hybrid/scaled", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "factor1", "type": 2, "choices": [] }, { - "arg": "qtb", - "type": 1, + "arg": "style1", + "type": 2, "choices": [] }, { - "arg": "N_f", - "type": 3, - "choices": [ - "temp", - "damp", - "seed", - "f_max", - "N_f" - ] + "arg": "args", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "factor2", + "type": 2, + "choices": [] + }, + { + "arg": "style", + "type": 2, + "choices": [] + }, + { + "arg": "2", + "type": 2, + "choices": [] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qtb = style name of this fix\n* zero or more keyword/value pairs may be appended\n* keyword = temp or damp or seed or f_max or N_f \n *        temp value = target quantum temperature (temperature units) \n *        damp value = damping parameter (time units) inverse of friction gamma \n *        seed value = random number seed (positive integer) \n *        f_max value = upper cutoff frequency of the vibration spectrum (1/time units) \n *        N_f value = number of frequency bins (positive integer) \n", - "examples": "\n```lmps\n# (liquid methane modeled with the REAX force field, real units)\nfix 1 all nve\nfix 1 all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 100\n# (quartz modeled with the BKS force field, metal units)\nfix 2 all nph iso 1.01325 1.01325 1\nfix 2 all qtb temp 300 damp 1 seed 47508 f_max 120.0 N_f 100\n```\n", - "html_filename": "fix_qtb.html", - "short_description": "This command performs the quantum thermal bath scheme proposed by\n**Dammak** to include self-consistent quantum nuclear effects,\nwhen used in conjunction with the [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands", - "description": "This command performs the quantum thermal bath scheme proposed by\n**Dammak** to include self-consistent quantum nuclear effects,\nwhen used in conjunction with the [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands.\n\nClassical molecular dynamics simulation does not include any quantum\nnuclear effect. Quantum treatment of the vibrational modes will\nintroduce zero point energy into the system, alter the energy power\nspectrum and bias the heat capacity from the classical limit. Missing\nall the quantum nuclear effects, classical MD cannot model systems at\ntemperatures lower than their classical limits. This effect is\nespecially important for materials with a large population of hydrogen\natoms and thus higher classical limits.\n\nThe equation of motion implemented by this command follows a Langevin\nform:\n\\[\n m_i a_i = f_i + R_i - m_i\\gamma v_i\\]\nHere \\(m_i, a_i, f_i, R_i, \\gamma, \\textrm{and} v_i\\)\nrepresent in this order mass, acceleration, force exerted by all other atoms, random\nforce, frictional coefficient (the inverse of damping parameter damp),\nand velocity. The random force \\(R_i\\) is \"colored\" so\nthat any vibrational mode with frequency \\(\\omega\\) will have a\ntemperature-sensitive energy \\(\\theta(\\omega,T)\\) which\nresembles the energy expectation for a quantum harmonic oscillator\nwith the same natural frequency:\n\\[\n \\theta(\\omega T) = \\frac{\\hbar}{2} + \\hbar\\omega \\left[\\exp(\\frac{\\hbar\\omega}{k_B T})-1 \\right]^{-1}\\]\nTo efficiently generate the random forces, we employ the method\nof **Barrat**, that circumvents the need to generate all\nrandom forces for all times before the simulation. The memory\nrequirement of this approach is less demanding and independent\nof the simulation duration. Since the total random force \\(R_{tot}\\)\ndoes not necessarily vanish for a finite number of atoms,\n\\(R_i\\) is replaced by \\(R_i - \\frac{R_{tot}}{N_{tot}}\\)\nto avoid collective motion of the system.\n\nThe *temp* parameter sets the target quantum temperature. LAMMPS will\nstill have an output temperature in its thermo style. That is the\ninstantaneous classical temperature \\(T^{cl}\\) derived from\nthe atom velocities at thermal equilibrium. A non-zero\n\\(T^{cl}\\) will be present even when the quantum\ntemperature approaches zero. This is associated with zero-point energy\nat low temperatures.\n\\[\n T^{cl} = \\sum \\frac{m_i v_i^2}{3 N k_B}\\]\nThe *damp* parameter is specified in time units, and it equals the\ninverse of the frictional coefficient \\(\\gamma\\). \\(\\gamma\\)\nshould be as small as possible but slightly larger than the timescale\nof anharmonic coupling in the system which is about 10 ps to 100\nps. When \\(\\gamma\\) is too large, it gives an energy spectrum that\ndiffers from the desired Bose-Einstein spectrum. When \\(\\gamma\\)\nis too small, the quantum thermal bath coupling to the system will be\nless significant than anharmonic effects, reducing to a classical\nlimit. We find that setting \\(\\gamma\\) between 5 THz and 1 THz\ncould be appropriate depending on the system.\n\nThe random number *seed* is a positive integer used to initiate a\nMarsaglia random number generator. Each processor uses the input seed\nto generate its own unique seed and its own stream of random\nnumbers. Thus the dynamics of the system will not be identical on two\nruns on different numbers of processors.\n\nThe *f_max* parameter truncate the noise frequency domain so that\nvibrational modes with frequencies higher than *f_max* will not be\nmodulated. If we denote \\(\\Delta t\\) as the time interval for the\nMD integration, *f_max* is always reset by the code to make\n\\(\\alpha = (int)(2\\) *f_max* \\(\\Delta t)^{-1}\\) a\npositive integer and print out relative information. An appropriate\nvalue for the cutoff frequency *f_max* would be around 2~3 \\(f_D\\),\nwhere \\(f_D\\) is the Debye frequency.\n\nThe *N_f* parameter is the frequency grid size, the number of points\nfrom 0 to *f_max* in the frequency domain that will be\nsampled. 3*2\\ *N_f* per-atom random numbers are required\nin the random force generation and there could be as many atoms as in\nthe whole simulation that can migrate into every individual\nprocessor. A larger *N_f* provides a more accurate sampling of the\nspectrum while consumes more memory. With fixed *f_max* and\n\\(\\gamma\\), *N_f* should be big enough to converge the classical\ntemperature \\(T^{cl}\\) as a function of target quantum bath\ntemperature. Memory usage per processor could be from 10 to 100\nMBytes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies forces to a colored\n > thermostat. Thus you must use a separate time integration fix, like\n > [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) to actually\n > update the velocities and positions of atoms (as shown in the\n > examples). Likewise, this fix should not normally be used with\n > other fixes or commands that also specify system temperatures ,\n > e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) and [fix temp/rescale > ](https://docs.lammps.org/fix_temp_rescale.html). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix. However, in a statistical sense, a restarted simulation\nshould produce similar behaviors of the system.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Dammak)** Dammak, Chalopin, Laroche, Hayoun, and Greffet, Phys Rev\nLett, 103, 190601 (2009). \n \n**(Barrat)** Barrat and Rodney, J. Stat. Phys, 144, 679 (2011). \n ", - "restrictions": "This fix style is part of the QTB package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html),\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix qbmsst ](https://docs.lammps.org/fix_qbmsst.html)\n\n----------\n" + "parameters": "* style1,style2 = list of one or more pair styles and their arguments\n* factor1,factor2 = scale factors for pair styles, may be a variable \n", + "examples": "\n```lmps\npair_style hybrid lj/cut/coul/cut 10.0 eam lj/cut 5.0\npair_coeff 1*2 1*2 eam niu3\npair_coeff 3 3 lj/cut/coul/cut 1.0 1.0\npair_coeff 1*2 3 lj/cut 0.5 1.2\n\npair_style hybrid/overlay lj/cut 2.5 coul/long 2.0\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * coul/long\n\npair_style hybrid/scaled 0.5 tersoff 0.5 sw\npair_coeff * * tersoff Si.tersoff Si\npair_coeff * * sw Si.sw Si\n\npair_style hybrid/molecular lj/cut 2.5 lj/cut 2.5\npair_coeff * * lj/cut 1 1.0 1.0\npair_coeff * * lj/cut 2 1.5 1.0\n\nvariable one equal ramp(1.0,0.0)\nvariable two equal 1.0-v_one\npair_style hybrid/scaled v_one lj/cut 2.5 v_two morse 2.5\npair_coeff 1 1 lj/cut 1.0 1.0 2.5\npair_coeff 1 1 morse 1.0 1.0 1.0 2.5\n```\n", + "html_filename": "pair_hybrid.html", + "short_description": "The *hybrid*, *hybrid/overlay*, *hybrid/molecular*, and *hybrid/scaled*\nstyles enable the use of multiple pair styles in one simulation", + "description": "The *hybrid*, *hybrid/overlay*, *hybrid/molecular*, and *hybrid/scaled*\nstyles enable the use of multiple pair styles in one simulation. With\nthe *hybrid* style, exactly one pair style is assigned to each pair of\natom types. With the *hybrid/overlay* and *hybrid/scaled* styles, one\nor more pair styles can be assigned to each pair of atom types. With\nthe hybrid/molecular style, pair styles are assigned to either intra-\nor inter-molecular interactions.\n\nThe assignment of pair styles to type pairs is made via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. The major difference between\nthe *hybrid/overlay* and *hybrid/scaled* styles is that the\n*hybrid/scaled* adds a scale factor for each sub-style contribution to\nforces, energies and stresses. Because of the added complexity, the\n*hybrid/scaled* style has more overhead and thus may be slower than\n*hybrid/overlay*.\n\nThe *hybrid/molecular* pair style accepts *only* two sub-styles: the\nfirst is assigned to intra-molecular interactions (i.e. both atoms\nhave the same molecule ID), the second to inter-molecular interactions\n(i.e. interacting atoms have different molecule IDs).\n\nHere are two examples of hybrid simulations. The *hybrid* style could\nbe used for a simulation of a metal droplet on a LJ surface. The metal\natoms interact with each other via an *eam* potential, the surface atoms\ninteract with each other via a *lj/cut* potential, and the metal/surface\ninteraction is also computed via a *lj/cut* potential. The\n*hybrid/overlay* style could be used as in the second example above,\nwhere multiple potentials are superimposed in an additive fashion to\ncompute the interaction between atoms. In this example, using *lj/cut*\nand *coul/long* together gives the same result as if the\n*lj/cut/coul/long* potential were used by itself. In this case, it\nwould be more efficient to use the single combined potential, but in\ngeneral any combination of pair potentials can be used together in to\nproduce an interaction that is not encoded in any single pair_style\nfile, e.g. adding Coulombic forces between granular particles. Another\nlimitation of using the *hybrid/overlay* variant, that it does not generate\n*lj/cut* parameters for mixed atom types from a mixing rule due to\nrestrictions discussed below.\n\nIf the *hybrid/scaled* style is used instead of *hybrid/overlay*,\ncontributions from sub-styles are weighted by their scale factors, which\nmay be fractional or even negative. Furthermore the scale factors may\nbe variables that may change during a simulation. This enables\nswitching smoothly between two different pair styles or two different\nparameter sets during a run in a similar fashion as could be done\nwith [fix adapt ](https://docs.lammps.org/fix_adapt.html) or [fix alchemy ](https://docs.lammps.org/fix_alchemy.html).\n\nAll pair styles that will be used are listed as \"sub-styles\" following\nthe *hybrid* or *hybrid/overlay* keyword, in any order. In case of the\n*hybrid/scaled* pair style, each sub-style is prefixed with a scale\nfactor. The scale factor is either a floating point number or an equal\nstyle (or equivalent) variable. Each sub-style's name is followed by\nits usual arguments, as illustrated in the examples above. See the doc\npages of the individual pair styles for a listing and explanation of the\nappropriate arguments for them.\n\nNote that an individual pair style can be used multiple times as a\nsub-style. For efficiency reasons this should only be done if your\nmodel requires it. E.g. if you have different regions of Si and C atoms\nand wish to use a Tersoff potential for pure Si for one set of atoms,\nand a Tersoff potential for pure C for the other set (presumably with\nsome third potential for Si-C interactions), then the sub-style\n*tersoff* could be listed twice. But if you just want to use a\nLennard-Jones or other pairwise potential for several different atom\ntype pairs in your model, then you should just list the sub-style once\nand use the pair_coeff command to assign parameters for the different\ntype pairs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There is one exception to this option to list an individual\n > pair style multiple times: GPU-enabled pair styles in the GPU package.\n > This is because the GPU package currently assumes that only one\n > instance of a pair style is being used. \n > \n\nIn the pair_coeff commands, the name of a pair style must be added\nafter the I,J type specification, with the remaining coefficients\nbeing those appropriate to that style. If the pair style is used\nmultiple times in the pair_style command, then an additional numeric\nargument must also be specified which is a number from 1 to M where M\nis the number of times the sub-style was listed in the pair style\ncommand. The extra number indicates which instance of the sub-style\nthese coefficients apply to.\n\nFor example, consider a simulation with 3 atom types: types 1 and 2\nare Ni atoms, type 3 are LJ atoms with charges. The following\ncommands would set up a hybrid simulation:\n\n```lmps\npair_style hybrid eam/alloy lj/cut/coul/cut 10.0 lj/cut 8.0\npair_coeff * * eam/alloy nialhjea Ni Ni NULL\npair_coeff 3 3 lj/cut/coul/cut 1.0 1.0\npair_coeff 1*2 3 lj/cut 0.8 1.3\n```\nAs an example of using the same pair style multiple times, consider a\nsimulation with 2 atom types. Type 1 is Si, type 2 is C. The\nfollowing commands would model the Si atoms with Tersoff, the C atoms\nwith Tersoff, and the cross-interactions with Lennard-Jones:\n\n```lmps\npair_style hybrid lj/cut 2.5 tersoff tersoff\npair_coeff * * tersoff 1 Si.tersoff Si NULL\npair_coeff * * tersoff 2 C.tersoff NULL C\npair_coeff 1 2 lj/cut 1.0 1.5\n```\nIt is not recommended to read pair coefficients for a hybrid style from a \"Pair Coeffs\"\nor \"PairIJ Coeffs\" section of a data file via the [read_data ](https://docs.lammps.org/read_data.html) command,\nsince those sections expect a fixed number of lines, either one line per atom type or\none line pair pair of atom types, respectively. When reading from a data file, the\nlines of the \"Pair Coeffs\" and \"PairIJ Coeffs\" are changed in the same way as the *pair_coeff*\ncommand, i.e. the name of the pair style to which the parameters apply must follow the\natom type (or atom types), e.g.\n\n```\nPair Coeffs\n\n1 lj/cut/coul/cut 1.0 1.0\n...\n\nPairIJ Coeffs\n\n1 1 lj/cut/coul/cut 1.0 1.0\n...\n```\nNote that the pair_coeff command for some potentials such as\n[pair_style eam/alloy ](https://docs.lammps.org/pair_eam.html) includes a mapping specification\nof elements to all atom types, which in the hybrid case, can include\natom types not assigned to the *eam/alloy* potential. The NULL\nkeyword is used by many such potentials (eam/alloy, Tersoff, AIREBO,\netc), to denote an atom type that will be assigned to a different\nsub-style.\n\nFor the *hybrid* style, each atom type pair I,J is assigned to exactly\none sub-style. Just as with a simulation using a single pair style,\nif you specify the same atom type pair in a second pair_coeff command,\nthe previous assignment will be overwritten.\n\nFor the *hybrid/overlay* and *hybrid/scaled* styles, each atom type pair\nI,J can be assigned to one or more sub-styles. If you specify the same\natom type pair in a second pair_coeff command with a new sub-style, then\nthe second sub-style is added to the list of potentials that will be\ncalculated for two interacting atoms of those types. If you specify the\nsame atom type pair in a second pair_coeff command with a sub-style that\nhas already been defined for that pair of atoms, then the new pair\ncoefficients simply override the previous ones, as in the normal usage\nof the pair_coeff command. E.g. these two sets of commands are the\nsame:\n\n```lmps\npair_style lj/cut 2.5\npair_coeff * * 1.0 1.0\npair_coeff 2 2 1.5 0.8\n\npair_style hybrid/overlay lj/cut 2.5\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 2 2 lj/cut 1.5 0.8\n```\nCoefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as described above, or in the\n\"Pair Coeffs\" or \"PairIJ Coeffs\" section of the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command, or by mixing as described below.\n\nFor all of the *hybrid*, *hybrid/overlay*, and *hybrid/scaled* styles,\nevery atom type pair I,J (where I <= J) must be assigned to at least one\nsub-style via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file read by the [read_data](https://docs.lammps.org/read_data.html), or by mixing as described below. Also all sub-styles\nmust be used at least once in a [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >With hybrid pair styles the use of mixing to generate pair\n > coefficients is significantly limited compared to the individual pair\n > styles. LAMMPS **never** performs mixing of parameters from\n > different sub-styles, **even** if they use the same type of\n > coefficients, e.g. contain a Lennard-Jones potential variant. Those\n > parameters must be provided explicitly. Also for *hybrid/overlay*\n > and *hybrid/scaled* mixing is **only** performed for pairs of atom\n > types for which only a single pair style is assigned.\n >\n > Thus it is strongly recommended to provide all mixed terms\n > explicitly. For non-hybrid styles those could be generated and\n > written out using the [write_coeff command ](https://docs.lammps.org/write_coeff.html) and\n > then edited as needed to comply with the requirements for hybrid\n > styles as explained above. \n > \n\nIf you want there to be no interactions between a particular pair of\natom types, you have 3 choices. You can assign the pair of atom types\nto some sub-style and use the [neigh_modify exclude type ](https://docs.lammps.org/neigh_modify.html)\ncommand. You can assign it to some sub-style and set the coefficients\nso that there is effectively no interaction (e.g. epsilon = 0.0 in a LJ\npotential). Or, for *hybrid*, *hybrid/overlay*, or *hybrid/scaled*\nsimulations, you can use this form of the pair_coeff command in your\ninput script or the \"PairIJ Coeffs\" section of your data file:\n\n```lmps\npair_coeff 2 3 none\n```\nor this form in the \"Pair Coeffs\" section of the data file:\n\n```\n3 none\n```\nIf an assignment to *none* is made in a simulation with the\n*hybrid/overlay* or *hybrid/scaled* pair style, it wipes out all\nprevious assignments of that pair of atom types to sub-styles.\n\nNote that you may need to use an [atom_style ](https://docs.lammps.org/atom_style.html) hybrid\ncommand in your input script, if atoms in the simulation will need\nattributes from several atom styles, due to using multiple pair\nstyles with different requirements.\n\n----------\n\nDifferent force fields (e.g. CHARMM vs. AMBER) may have different rules\nfor applying exclusions or weights that change the strength of pairwise\nnon-bonded interactions between pairs of atoms that are also 1-2, 1-3,\nand 1-4 neighbors in the molecular bond topology. This is normally a\nglobal setting defined the [special_bonds ](https://docs.lammps.org/special_bonds.html) command.\nHowever, different weights can be assigned to different hybrid\nsub-styles via the [pair_modify special ](https://docs.lammps.org/pair_modify.html) command.\nThis allows multiple force fields to be used in a model of a hybrid\nsystem, however, there is no consistent approach to determine parameters\nautomatically for the interactions **between** atoms of the two force\nfields, thus this approach this is only recommended when particles\ndescribed by the different force fields do not mix.\n\nHere is an example for combining CHARMM and AMBER: The global *amber*\nsetting sets the 1-4 interactions to non-zero scaling factors and\nthen overrides them with 0.0 only for CHARMM:\n\n```lmps\nspecial_bonds amber\npair_style hybrid lj/charmm/coul/long 8.0 10.0 lj/cut/coul/long 10.0\npair_modify pair lj/charmm/coul/long special lj/coul 0.0 0.0 0.0\n```\nThis input achieves the same effect:\n\n```lmps\nspecial_bonds 0.0 0.0 0.1\npair_style hybrid lj/charmm/coul/long 8.0 10.0 lj/cut/coul/long 10.0\npair_modify pair lj/cut/coul/long special lj 0.0 0.0 0.5\npair_modify pair lj/cut/coul/long special coul 0.0 0.0 0.83333333\npair_modify pair lj/charmm/coul/long special lj/coul 0.0 0.0 0.0\n```\nHere is an example for combining Tersoff with OPLS/AA based on\na data file that defines bonds for all atoms where - for the\nTersoff part of the system - the force constants for the bonded\ninteractions have been set to 0. Note the global settings are\neffectively *lj/coul 0.0 0.0 0.5* as required for OPLS/AA:\n\n```lmps\nspecial_bonds lj/coul 1e-20 1e-20 0.5\npair_style hybrid tersoff lj/cut/coul/long 12.0\npair_modify pair tersoff special lj/coul 1.0 1.0 1.0\n```\nFor use with the various [compute \\*/tally ](https://docs.lammps.org/compute_tally.html)\ncomputes, the [pair_modify compute/tally ](https://docs.lammps.org/pair_modify.html)\ncommand can be used to selectively turn off processing of\nthe compute tally styles, for example, if those pair styles\n(e.g. many-body styles) do not support this feature.\n\nSee the [pair_modify ](https://docs.lammps.org/pair_modify.html) page for details on\nthe specific syntax, requirements and restrictions.\n\n----------\n\nThe potential energy contribution to the overall system due to an\nindividual sub-style can be accessed and output via the [computepair ](https://docs.lammps.org/compute_pair.html) command. Note that in the case of pair style\n*hybrid/scaled* this is the **unscaled** potential energy of the\nselected sub-style.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Several of the potentials defined via the pair_style command in\n > LAMMPS are really many-body potentials, such as Tersoff, AIREBO, MEAM,\n > ReaxFF, etc. The way to think about using these potentials in a\n > hybrid setting is as follows. \n > \n\nA subset of atom types is assigned to the many-body potential with a\nsingle [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, using \"\\* \\*\" to include\nall types and the NULL keywords described above to exclude specific\ntypes not assigned to that potential. If types 1,3,4 were assigned in\nthat way (but not type 2), this means that all many-body interactions\nbetween all atoms of types 1,3,4 will be computed by that potential.\nPair_style hybrid allows interactions between type pairs 2-2, 1-2,\n2-3, 2-4 to be specified for computation by other pair styles. You\ncould even add a second interaction for 1-1 to be computed by another\npair style, assuming pair_style hybrid/overlay is used.\n\nBut you should not, as a general rule, attempt to exclude the many-body\ninteractions for some subset of the type pairs within the set of 1,3,4\ninteractions, e.g. exclude 1-1 or 1-3 interactions. That is not\nconceptually well-defined for many-body interactions, since the\npotential will typically calculate energies and foces for small groups\nof atoms, e.g. 3 or 4 atoms, using the neighbor lists of the atoms to\nfind the additional atoms in the group.\n\nHowever, you can still use the pair_coeff none setting or the\n[neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html) command to exclude certain\ntype pairs from the neighbor list that will be passed to a many-body\nsub-style. This will alter the calculations made by a many-body\npotential beyond the specific pairs, since it builds its list of 3-body,\n4-body, etc interactions from the pair lists. You will need to think\n**carefully** as to whether excluding such pairs produces a physically\nmeaningful result for your model.\n\nFor example, imagine you have two atom types in your model, type 1 for\natoms in one surface, and type 2 for atoms in the other, and you wish\nto use a Tersoff potential to compute interactions within each\nsurface, but not between the surfaces. Then either of these two command\nsequences would implement that model:\n\n```lmps\npair_style hybrid tersoff\npair_coeff * * tersoff SiC.tersoff C C\npair_coeff 1 2 none\n\npair_style tersoff\npair_coeff * * SiC.tersoff C C\nneigh_modify exclude type 1 2\n```\nEither way, only neighbor lists with 1-1 or 2-2 interactions would be\npassed to the Tersoff potential, which means it would compute no\n3-body interactions containing both type 1 and 2 atoms.\n\nHere is another example to use 2 many-body potentials together in an\noverlapping manner using hybrid/overlay. Imagine you have CNT (C atoms)\non a Si surface. You want to use Tersoff for Si/Si and Si/C\ninteractions, and AIREBO for C/C interactions. Si atoms are type 1; C\natoms are type 2. Something like this will work:\n\n```lmps\npair_style hybrid/overlay tersoff airebo 3.0\npair_coeff * * tersoff SiC.tersoff.custom Si C\npair_coeff * * airebo CH.airebo NULL C\n```\nNote that to prevent the Tersoff potential from computing C/C\ninteractions, you would need to **modify** the SiC.tersoff potential\nfile to turn off C/C interaction, i.e. by setting the appropriate\ncoefficients to 0.0.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since the *hybrid*, *hybrid/overlay*, *hybrid/scaled* styles\n > delegate computation to the individual sub-styles, the suffix\n > versions of the *hybrid* and *hybrid/overlay* styles are used to\n > propagate the corresponding suffix to all sub-styles, if those\n > versions exist. Otherwise the non-accelerated version will be used.\n > The individual accelerated sub-styles are part of the GPU, KOKKOS,\n > INTEL, OPENMP, and OPT packages, respectively. They are only\n > enabled if LAMMPS was built with those packages. See the\n > [Build package ](https://docs.lammps.org/Build_package.html) page for more info. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nAny pair potential settings made via the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) command are passed along to all\nsub-styles of the hybrid potential.\n\nFor atom type pairs I,J and I != J, if the sub-style assigned to I,I and\nJ,J is the same, and if the sub-style allows for mixing, then the\ncoefficients for I,J can be mixed. This means you do not have to\nspecify a pair_coeff command for I,J since the I,J type pair will be\nassigned automatically to the sub-style defined for both I,I and J,J and\nits coefficients generated by the mixing rule used by that sub-style.\nFor the *hybrid/overlay* and *hybrid/scaled* style, there is an\nadditional requirement that both the I,I and J,J pairs are assigned to a\nsingle sub-style. If this requirement is not met, no I,J coeffs will be\ngenerated, even if the sub-styles support mixing, and I,J pair\ncoefficients must be explicitly defined.\n\nSee the [pair_modify ](https://docs.lammps.org/pair_modify.html) command for\ndetails of mixing rules. See the See the page for the sub-style to\nsee if allows for mixing.\n\nThe hybrid pair styles supports the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options for an I,J pair interaction, if the\nassociated sub-style supports it.\n\nFor the hybrid pair styles, the list of sub-styles and their respective\nsettings are written to [binary restart files ](https://docs.lammps.org/restart.html), so a\n[pair_style ](https://docs.lammps.org/pair_style.html) command does not need to specified in an\ninput script that reads a restart file. However, the coefficient\ninformation is not stored in the restart file. Thus, pair_coeff\ncommands need to be re-specified in the restart input script. For pair\nstyle *hybrid/scaled* also the names of any variables used as scale\nfactors are restored, but not the variables themselves, so those may\nneed to be redefined when continuing from a restart.\n\nThese pair styles support the use of the *inner*, *middle*, and\n*outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, if\ntheir sub-styles do.\n", + "restrictions": "When using a long-range Coulombic solver (via the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command) with a hybrid pair_style,\none or more sub-styles will be of the \"long\" variety,\ne.g. *lj/cut/coul/long* or *buck/coul/long* . You must ensure that the\nshort-range Coulombic cutoff used by each of these long pair styles is\nthe same or else LAMMPS will generate an error.\n\nPair style *hybrid/scaled* currently only works for non-accelerated\npair styles and pair styles from the OPT package.\n\nPair style *hybrid/molecular* is not compatible with manybody potentials.\n\nWhen using pair styles from the GPU package they must not be listed\nmultiple times. LAMMPS will detect this and abort.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style smd/tri_surface" + "pair_style" ], "syntax": [ - "pair_style smd/tri_surface scale_factor" + "pair_style style args" ], "args": [ [ @@ -16681,135 +16040,142 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/tri_surface", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "scale_factor", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style smd/tri_surface 1.0\npair_coeff 1 1 \n```\n", - "html_filename": "pair_smd_triangulated_surface.html", - "short_description": "The *smd/tri_surface* style calculates contact forces between SPH\nparticles and a rigid wall boundary defined via the\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) fix", - "description": "The *smd/tri_surface* style calculates contact forces between SPH\nparticles and a rigid wall boundary defined via the\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) fix.\n\nThe contact forces are calculated using a Hertz potential, which\nevaluates the overlap between a particle (whose spatial extents are\ndefined via its contact radius) and the triangle. The effect is that\na particle cannot penetrate into the triangular surface. The\nparameter has units of pressure and should equal\nroughly one half of the Young's modulus (or bulk modulus in the case\nof fluids) of the material model associated with the SPH particle\n\nThe parameter *scale_factor* can be used to scale the particles'\ncontact radii. This can be useful to control how close particles can\napproach the triangulated surface. Usually, *scale_factor* =1.0.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically.\nCurrently, no part of MACHDYN supports restarting nor minimization.\nrRESPA does not apply to this pair style.\n\n----------\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = one of the styles from the list below\n* args = arguments used by a particular style \n", + "examples": "\n```lmps\npair_style lj/cut 2.5\npair_style eam/alloy\npair_style hybrid lj/charmm/coul/long 10.0 eam\npair_style table linear 1000\npair_style none\n```\n", + "html_filename": "pair_style.html", + "short_description": "Set the formula(s) LAMMPS uses to compute pairwise interactions", + "description": "Set the formula(s) LAMMPS uses to compute pairwise interactions. In\nLAMMPS, pair potentials are defined between pairs of atoms that are\nwithin a cutoff distance and the set of active interactions typically\nchanges over time. See the [bond_style ](https://docs.lammps.org/bond_style.html) command to\ndefine potentials between pairs of bonded atoms, which typically\nremain in place for the duration of a simulation.\n\nIn LAMMPS, pairwise force fields encompass a variety of interactions,\nsome of which include many-body effects, e.g. EAM, Stillinger-Weber,\nTersoff, REBO potentials. They are still classified as \"pairwise\"\npotentials because the set of interacting atoms changes with time\n(unlike molecular bonds) and thus a neighbor list is used to find\nnearby interacting atoms.\n\nHybrid models where specified pairs of atom types interact via\ndifferent pair potentials can be setup using the *hybrid* pair style.\n\nThe coefficients associated with a pair style are typically set for\neach pair of atom types, and are specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command or read from a file by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) command sets options for mixing of\ntype I-J interaction coefficients and adding energy offsets or tail\ncorrections to Lennard-Jones potentials. Details on these options as\nthey pertain to individual potentials are described on the doc page\nfor the potential. Likewise, info on whether the potential\ninformation is stored in a [restart file ](https://docs.lammps.org/write_restart.html) is listed\non the potential doc page.\n\nIn the formulas listed for each pair style, *E* is the energy of a\npairwise interaction between two atoms separated by a distance *r* .\nThe force between the atoms is the negative derivative of this\nexpression.\n\nIf the pair_style command has a cutoff argument, it sets global\ncutoffs for all pairs of atom types. The distance(s) can be smaller\nor larger than the dimensions of the simulation box.\n\nIn many cases, the global cutoff value can be overridden for a\nspecific pair of atom types by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\nIf a new pair_style command is specified with a new style, all\nprevious [pair_coeff ](https://docs.lammps.org/pair_coeff.html) and [pair_modify](https://docs.lammps.org/pair_modify.html) command settings are erased; those commands must be\nre-specified if necessary.\n\nIf a new pair_style command is specified with the same style, then\nonly the global settings in that command are reset. Any previous\ndoc:`pair_coeff ` and [pair_modify ](https://docs.lammps.org/pair_modify.html)\ncommand settings are preserved. The only exception is that if the\nglobal cutoff in the pair_style command is changed, it will override\nthe corresponding cutoff in any of the previous [pair_modify](https://docs.lammps.org/pair_coeff.html) commands.\n\nTwo pair styles which do not follow this rule are the pair_style\n*table* and *hybrid* commands. A new pair_style command for these\nstyles will wipe out all previously specified [pair_coeff](https://docs.lammps.org/pair_coeff.html) and [pair_modify ](https://docs.lammps.org/pair_modify.html) settings, including\nfor the sub-styles of the *hybrid* command.\n\n----------\n\nHere is an alphabetic list of pair styles defined in LAMMPS. They are\nalso listed in more compact form on the [Commands pair](https://docs.lammps.org/Commands_pair.html) doc page.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the pair_style command, and coefficients\nspecified by the associated [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands pair ](https://docs.lammps.org/Commands_pair.html)\ndoc page are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [none ](https://docs.lammps.org/pair_none.html) - turn off pairwise interactions\n* [hybrid ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of pairwise interactions\n* [hybrid/molecular ](https://docs.lammps.org/pair_hybrid.html) - different pair styles for intra- and inter-molecular interactions\n* [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of superposed pairwise interactions\n* [hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html) - multiple styles of scaled superposed pairwise interactions\n* [zero ](https://docs.lammps.org/pair_zero.html) - neighbor list but no interactions\n\n* [adp ](https://docs.lammps.org/pair_adp.html) - angular dependent potential (ADP) of Mishin\n* [agni ](https://docs.lammps.org/pair_agni.html) - AGNI machine-learning potential\n* [aip/water/2dm ](https://docs.lammps.org/pair_aip_water_2dm.html) - anisotropic interfacial potential for water in 2d geometries\n* [airebo ](https://docs.lammps.org/pair_airebo.html) - AIREBO potential of Stuart\n* [airebo/morse ](https://docs.lammps.org/pair_airebo.html) - AIREBO with Morse instead of LJ\n* [amoeba ](https://docs.lammps.org/pair_amoeba.html) -\n* [atm ](https://docs.lammps.org/pair_atm.html) - Axilrod-Teller-Muto potential\n* [awpmd/cut ](https://docs.lammps.org/pair_awpmd.html) - Antisymmetrized Wave Packet MD potential for atoms and electrons\n* [beck ](https://docs.lammps.org/pair_beck.html) - Beck potential\n* [body/nparticle ](https://docs.lammps.org/pair_body_nparticle.html) - interactions between body particles\n* [body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html) - granular-style 2d polygon potential\n* [body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html) - granular-style 3d polyhedron potential\n* [bop ](https://docs.lammps.org/pair_bop.html) - BOP potential of Pettifor\n* [born ](https://docs.lammps.org/pair_born.html) - Born-Mayer-Huggins potential\n* [born/coul/dsf ](https://docs.lammps.org/pair_born.html) - Born with damped-shifted-force model\n* [born/coul/dsf/cs ](https://docs.lammps.org/pair_cs.html) - Born with damped-shifted-force and core/shell model\n* [born/coul/long ](https://docs.lammps.org/pair_born.html) - Born with long-range Coulomb\n* [born/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - Born with long-range Coulomb and core/shell\n* [born/coul/msm ](https://docs.lammps.org/pair_born.html) - Born with long-range MSM Coulomb\n* [born/coul/wolf ](https://docs.lammps.org/pair_born.html) - Born with Wolf potential for Coulomb\n* [born/coul/wolf/cs ](https://docs.lammps.org/pair_cs.html) - Born with Wolf potential for Coulomb and core/shell model\n* [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) - Born-Mayer / Gaussian potential\n* [bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html) - repulsive harmonic force with damping\n* [brownian ](https://docs.lammps.org/pair_brownian.html) - Brownian potential for Fast Lubrication Dynamics\n* [brownian/poly ](https://docs.lammps.org/pair_brownian.html) - Brownian potential for Fast Lubrication Dynamics with polydispersity\n* [buck ](https://docs.lammps.org/pair_buck.html) - Buckingham potential\n* [buck/coul/cut ](https://docs.lammps.org/pair_buck.html) - Buckingham with cutoff Coulomb\n* [buck/coul/long ](https://docs.lammps.org/pair_buck.html) - Buckingham with long-range Coulomb\n* [buck/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - Buckingham with long-range Coulomb and core/shell\n* [buck/coul/msm ](https://docs.lammps.org/pair_buck.html) - Buckingham with long-range MSM Coulomb\n* [buck/long/coul/long ](https://docs.lammps.org/pair_buck_long.html) - long-range Buckingham with long-range Coulomb\n* [buck/mdf ](https://docs.lammps.org/pair_mdf.html) - Buckingham with a taper function\n* [buck6d/coul/gauss/dsf ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) - dispersion-damped Buckingham with damped-shift-force model\n* [buck6d/coul/gauss/long ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) - dispersion-damped Buckingham with long-range Coulomb\n* [colloid ](https://docs.lammps.org/pair_colloid.html) - integrated colloidal potential\n* [comb ](https://docs.lammps.org/pair_comb.html) - charge-optimized many-body (COMB) potential\n* [comb3 ](https://docs.lammps.org/pair_comb.html) - charge-optimized many-body (COMB3) potential\n* [cosine/squared ](https://docs.lammps.org/pair_cosine_squared.html) - Cooke-Kremer-Deserno membrane model potential\n* [coul/cut ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential\n* [coul/cut/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [coul/cut/global ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential\n* [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - Coulomb potential with a soft core\n* [coul/debye ](https://docs.lammps.org/pair_coul.html) - cutoff Coulomb potential with Debye screening\n* [coul/diel ](https://docs.lammps.org/pair_coul_diel.html) - Coulomb potential with dielectric permittivity\n* [coul/dsf ](https://docs.lammps.org/pair_coul.html) - Coulomb with damped-shifted-force model\n* [coul/exclude ](https://docs.lammps.org/pair_coul.html) - subtract Coulomb potential for excluded pairs\n* [coul/long ](https://docs.lammps.org/pair_coul.html) - long-range Coulomb potential\n* [coul/long/cs ](https://docs.lammps.org/pair_cs.html) - long-range Coulomb potential and core/shell\n* [coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - long-range Coulomb potential with a soft core\n* [coul/msm ](https://docs.lammps.org/pair_coul.html) - long-range MSM Coulomb\n* [coul/slater/cut ](https://docs.lammps.org/pair_coul.html) - smeared out Coulomb\n* [coul/slater/long ](https://docs.lammps.org/pair_coul.html) - long-range smeared out Coulomb\n* [coul/shield ](https://docs.lammps.org/pair_coul_shield.html) - Coulomb for boron nitride for use with [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html) potential\n* [coul/streitz ](https://docs.lammps.org/pair_coul.html) - Coulomb via Streitz/Mintmire Slater orbitals\n* [coul/tt ](https://docs.lammps.org/pair_coul_tt.html) - damped charge-dipole Coulomb for Drude dipoles\n* [coul/wolf ](https://docs.lammps.org/pair_coul.html) - Coulomb via Wolf potential\n* [coul/wolf/cs ](https://docs.lammps.org/pair_cs.html) - Coulomb via Wolf potential with core/shell adjustments\n* [dpd ](https://docs.lammps.org/pair_dpd.html) - dissipative particle dynamics (DPD)\n* [dpd/coul/slater/long ](https://docs.lammps.org/pair_dpd_coul_slater_long.html) - dissipative particle dynamics (DPD) with electrostatic interactions\n* [dpd/ext ](https://docs.lammps.org/pair_dpd_ext.html) - generalized force field for DPD\n* [dpd/ext/tstat ](https://docs.lammps.org/pair_dpd_ext.html) - pairwise DPD thermostatting with generalized force field\n* [dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html) - DPD for constant temperature and pressure\n* [dpd/fdt/energy ](https://docs.lammps.org/pair_dpd_fdt.html) - DPD for constant energy and enthalpy\n* [dpd/tstat ](https://docs.lammps.org/pair_dpd.html) - pairwise DPD thermostatting\n* [dsmc ](https://docs.lammps.org/pair_dsmc.html) - Direct Simulation Monte Carlo (DSMC)\n* [e3b ](https://docs.lammps.org/pair_e3b.html) - Explicit-three body (E3B) water model\n* [drip ](https://docs.lammps.org/pair_drip.html) - Dihedral-angle-corrected registry-dependent interlayer potential (DRIP)\n* [eam ](https://docs.lammps.org/pair_eam.html) - embedded atom method (EAM)\n* [eam/alloy ](https://docs.lammps.org/pair_eam.html) - alloy EAM\n* [eam/cd ](https://docs.lammps.org/pair_eam.html) - concentration-dependent EAM\n* [eam/cd/old ](https://docs.lammps.org/pair_eam.html) - older two-site model for concentration-dependent EAM\n* [eam/fs ](https://docs.lammps.org/pair_eam.html) - Finnis-Sinclair EAM\n* [eam/he ](https://docs.lammps.org/pair_eam.html) - Finnis-Sinclair EAM modified for Helium in metals\n* [edip ](https://docs.lammps.org/pair_edip.html) - three-body EDIP potential\n* [edip/multi ](https://docs.lammps.org/pair_edip.html) - multi-element EDIP potential\n* [edpd ](https://docs.lammps.org/pair_mesodpd.html) - eDPD particle interactions\n* [eff/cut ](https://docs.lammps.org/pair_eff.html) - electron force field with a cutoff\n* [eim ](https://docs.lammps.org/pair_eim.html) - embedded ion method (EIM)\n* [exp6/rx ](https://docs.lammps.org/pair_exp6_rx.html) - reactive DPD potential\n* [extep ](https://docs.lammps.org/pair_extep.html) - extended Tersoff potential\n* [gauss ](https://docs.lammps.org/pair_gauss.html) - Gaussian potential\n* [gauss/cut ](https://docs.lammps.org/pair_gauss.html) - generalized Gaussian potential\n* [gayberne ](https://docs.lammps.org/pair_gayberne.html) - Gay-Berne ellipsoidal potential\n* [granular ](https://docs.lammps.org/pair_granular.html) - Generalized granular potential\n* [gran/hertz/history ](https://docs.lammps.org/pair_gran.html) - granular potential with Hertzian interactions\n* [gran/hooke ](https://docs.lammps.org/pair_gran.html) - granular potential with history effects\n* [gran/hooke/history ](https://docs.lammps.org/pair_gran.html) - granular potential without history effects\n* [gw ](https://docs.lammps.org/pair_gw.html) - Gao-Weber potential\n* [gw/zbl ](https://docs.lammps.org/pair_gw.html) - Gao-Weber potential with a repulsive ZBL core\n* [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) - repulsive-only harmonic potential\n* [hbond/dreiding/lj ](https://docs.lammps.org/pair_hbond_dreiding.html) - DREIDING hydrogen bonding LJ potential\n* [hbond/dreiding/morse ](https://docs.lammps.org/pair_hbond_dreiding.html) - DREIDING hydrogen bonding Morse potential\n* [hdnnp ](https://docs.lammps.org/pair_hdnnp.html) - High-dimensional neural network potential\n* [hippo ](https://docs.lammps.org/pair_amoeba.html) -\n* [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html) - registry-dependent interlayer potential (ILP)\n* [ilp/tmd ](https://docs.lammps.org/pair_ilp_tmd.html) - interlayer potential (ILP) potential for transition metal dichalcogenides (TMD)\n* [kim ](https://docs.lammps.org/pair_kim.html) - interface to potentials provided by KIM project\n* [kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html) - Kolmogorov-Crespi (KC) potential with no simplifications\n* [kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html) - Kolmogorov-Crespi (KC) potential with normals along z-axis\n* [lcbop ](https://docs.lammps.org/pair_lcbop.html) - long-range bond-order potential (LCBOP)\n* [lebedeva/z ](https://docs.lammps.org/pair_lebedeva_z.html) - Lebedeva interlayer potential for graphene with normals along z-axis\n* [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) - LJ potential in A/B form with a taper function\n* [lepton ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string\n* [lepton/coul ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string with support for charges\n* [lepton/sphere ](https://docs.lammps.org/pair_lepton.html) - pair potential from evaluating a string with support for radii\n* [line/lj ](https://docs.lammps.org/pair_line_lj.html) - LJ potential between line segments\n* [list ](https://docs.lammps.org/pair_list.html) - potential between pairs of atoms explicitly listed in an input file\n* [lj/charmm/coul/charmm ](https://docs.lammps.org/pair_charmm.html) - CHARMM potential with cutoff Coulomb\n* [lj/charmm/coul/charmm/implicit ](https://docs.lammps.org/pair_charmm.html) - CHARMM for implicit solvent\n* [lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html) - CHARMM with long-range Coulomb\n* [lj/charmm/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - CHARMM with long-range Coulomb and a soft core\n* [lj/charmm/coul/msm ](https://docs.lammps.org/pair_charmm.html) - CHARMM with long-range MSM Coulomb\n* [lj/charmmfsw/coul/charmmfsh ](https://docs.lammps.org/pair_charmm.html) - CHARMM with force switching and shifting\n* [lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) - CHARMM with force switching and long-rnage Coulomb\n* [lj/class2 ](https://docs.lammps.org/pair_class2.html) - COMPASS (class 2) force field without Coulomb\n* [lj/class2/coul/cut ](https://docs.lammps.org/pair_class2.html) - COMPASS with cutoff Coulomb\n* [lj/class2/coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS with cutoff Coulomb with a soft core\n* [lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) - COMPASS with long-range Coulomb\n* [lj/class2/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - COMPASS with long-range Coulomb with core/shell adjustments\n* [lj/class2/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS with long-range Coulomb with a soft core\n* [lj/class2/soft ](https://docs.lammps.org/pair_fep_soft.html) - COMPASS (class 2) force field with no Coulomb with a soft core\n* [lj/cubic ](https://docs.lammps.org/pair_lj_cubic.html) - LJ with cubic after inflection point\n* [lj/cut ](https://docs.lammps.org/pair_lj.html) - cutoff Lennard-Jones potential without Coulomb\n* [lj/cut/coul/cut ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with cutoff Coulomb\n* [lj/cut/coul/cut/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with cutoff Coulomb with a soft core\n* [lj/cut/coul/debye ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Debye screening added to Coulomb\n* [lj/cut/coul/debye/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Coulomb via damped shifted forces\n* [lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with long-range Coulomb\n* [lj/cut/coul/long/cs ](https://docs.lammps.org/pair_cs.html) - LJ with long-range Coulomb with core/shell adjustments\n* [lj/cut/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with long-range Coulomb with a soft core\n* [lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with long-range MSM Coulomb\n* [lj/cut/coul/msm/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/cut/coul/wolf ](https://docs.lammps.org/pair_lj_cut_coul.html) - LJ with Coulomb via Wolf potential\n* [lj/cut/dipole/cut ](https://docs.lammps.org/pair_dipole.html) - point dipoles with cutoff\n* [lj/cut/dipole/long ](https://docs.lammps.org/pair_dipole.html) - point dipoles with long-range Ewald\n* [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with a soft core\n* [lj/cut/sphere ](https://docs.lammps.org/pair_lj_cut_sphere.html) - LJ where per-atom radius is used as LJ sigma\n* [lj/cut/thole/long ](https://docs.lammps.org/pair_thole.html) - LJ with Coulomb with thole damping\n* [lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html) - LJ with cutoff Coulomb for TIP4P water\n* [lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) - LJ with long-range Coulomb for TIP4P water\n* [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) - LJ with cutoff Coulomb for TIP4P water with a soft core\n* [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) - Lennard-Jones for variable size particles\n* [lj/expand/coul/long ](https://docs.lammps.org/pair_lj_expand.html) - Lennard-Jones for variable size particles with long-range Coulomb\n* [lj/expand/sphere ](https://docs.lammps.org/pair_lj_expand_sphere.html) - Variable size LJ where per-atom radius is used as delta (size)\n* [lj/gromacs ](https://docs.lammps.org/pair_gromacs.html) - GROMACS-style Lennard-Jones potential\n* [lj/gromacs/coul/gromacs ](https://docs.lammps.org/pair_gromacs.html) - GROMACS-style LJ and Coulomb potential\n* [lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html) - long-range LJ and long-range Coulomb\n* [lj/long/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html) -\n* [lj/long/dipole/long ](https://docs.lammps.org/pair_dipole.html) - long-range LJ and long-range point dipoles\n* [lj/long/tip4p/long ](https://docs.lammps.org/pair_lj_long.html) - long-range LJ and long-range Coulomb for TIP4P water\n* [lj/mdf ](https://docs.lammps.org/pair_mdf.html) - LJ potential with a taper function\n* [lj/relres ](https://docs.lammps.org/pair_lj_relres.html) - LJ using multiscale Relative Resolution (RelRes) methodology :ref:`(Chaimovich) `.\n* [lj/spica ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining\n* [lj/spica/coul/long ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining with long-range Coulomb\n* [lj/spica/coul/msm ](https://docs.lammps.org/pair_spica.html) - LJ for SPICA coarse-graining with long-range Coulomb via MSM\n* [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) - LJ with dipole interaction with shifted forces\n* [lj/smooth ](https://docs.lammps.org/pair_lj_smooth.html) - smoothed Lennard-Jones potential\n* [lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html) - linear smoothed LJ potential\n* [lj/switch3/coulgauss/long ](https://docs.lammps.org/pair_lj_switch3_coulgauss_long.html) - smoothed LJ vdW potential with Gaussian electrostatics\n* [lj96/cut ](https://docs.lammps.org/pair_lj96.html) - Lennard-Jones 9/6 potential\n* [local/density ](https://docs.lammps.org/pair_local_density.html) - Generalized basic local density potential\n* [lubricate ](https://docs.lammps.org/pair_lubricate.html) - Hydrodynamic lubrication forces\n* [lubricate/poly ](https://docs.lammps.org/pair_lubricate.html) - Hydrodynamic lubrication forces with polydispersity\n* [lubricateU ](https://docs.lammps.org/pair_lubricateU.html) - Hydrodynamic lubrication forces for Fast Lubrication Dynamics\n* [lubricateU/poly ](https://docs.lammps.org/pair_lubricateU.html) - Hydrodynamic lubrication forces for Fast Lubrication with polydispersity\n* [mdpd ](https://docs.lammps.org/pair_mesodpd.html) - mDPD particle interactions\n* [mdpd/rhosum ](https://docs.lammps.org/pair_mesodpd.html) - mDPD particle interactions for mass density\n* [meam ](https://docs.lammps.org/pair_meam.html) - Modified embedded atom method (MEAM)\n* [meam/ms ](https://docs.lammps.org/pair_meam.html) - Multi-state modified embedded atom method (MS-MEAM)\n* [meam/spline ](https://docs.lammps.org/pair_meam_spline.html) - Splined version of MEAM\n* [meam/sw/spline ](https://docs.lammps.org/pair_meam_sw_spline.html) - Splined version of MEAM with a Stillinger-Weber term\n* [mesocnt ](https://docs.lammps.org/pair_mesocnt.html) - Mesoscopic vdW potential for (carbon) nanotubes\n* [mesocnt/viscous ](https://docs.lammps.org/pair_mesocnt.html) - Mesoscopic vdW potential for (carbon) nanotubes with friction\n* [mgpt ](https://docs.lammps.org/pair_mgpt.html) - Simplified model generalized pseudopotential theory (MGPT) potential\n* [mie/cut ](https://docs.lammps.org/pair_mie.html) - Mie potential\n* [mm3/switch3/coulgauss/long ](https://docs.lammps.org/pair_lj_switch3_coulgauss_long.html) - Smoothed MM3 vdW potential with Gaussian electrostatics\n* [momb ](https://docs.lammps.org/pair_momb.html) - Many-Body Metal-Organic (MOMB) force field\n* [morse ](https://docs.lammps.org/pair_morse.html) - Morse potential\n* [morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) - Linear smoothed Morse potential\n* [morse/soft ](https://docs.lammps.org/pair_morse.html) - Morse potential with a soft core\n* [multi/lucy ](https://docs.lammps.org/pair_multi_lucy.html) - DPD potential with density-dependent force\n* [multi/lucy/rx ](https://docs.lammps.org/pair_multi_lucy_rx.html) - reactive DPD potential with density-dependent force\n* [nb3b/harmonic ](https://docs.lammps.org/pair_nb3b.html) - Non-bonded 3-body harmonic potential\n* [nb3b/screened ](https://docs.lammps.org/pair_nb3b.html) - Non-bonded 3-body screened harmonic potential\n* [nm/cut ](https://docs.lammps.org/pair_nm.html) - N-M potential\n* [nm/cut/coul/cut ](https://docs.lammps.org/pair_nm.html) - N-M potential with cutoff Coulomb\n* [nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) - N-M potential with long-range Coulomb\n* [nm/cut/split ](https://docs.lammps.org/pair_nm.html) - Split 12-6 Lennard-Jones and N-M potential\n* [oxdna/coaxstk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/excv ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/hbond ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/stk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna/xstk ](https://docs.lammps.org/pair_oxdna.html) -\n* [oxdna2/coaxstk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/dh ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/hbond ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/stk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxdna2/xstk ](https://docs.lammps.org/pair_oxdna2.html) -\n* [oxrna2/coaxstk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/dh ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/hbond ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/stk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [oxrna2/xstk ](https://docs.lammps.org/pair_oxrna2.html) -\n* [pace ](https://docs.lammps.org/pair_pace.html) - Atomic Cluster Expansion (ACE) machine-learning potential\n* [pace/extrapolation ](https://docs.lammps.org/pair_pace.html) - Atomic Cluster Expansion (ACE) machine-learning potential with extrapolation grades\n* [pedone ](https://docs.lammps.org/pair_pedone.html) - Pedone (PMMCS) potential (non-Coulomb part)\n* [pod ](https://docs.lammps.org/pair_pod.html) - Proper orthogonal decomposition (POD) machine-learning potential\n* [peri/eps ](https://docs.lammps.org/pair_peri.html) - Peridynamic EPS potential\n* [peri/lps ](https://docs.lammps.org/pair_peri.html) - Peridynamic LPS potential\n* [peri/pmb ](https://docs.lammps.org/pair_peri.html) - Peridynamic PMB potential\n* [peri/ves ](https://docs.lammps.org/pair_peri.html) - Peridynamic VES potential\n* [polymorphic ](https://docs.lammps.org/pair_polymorphic.html) - Polymorphic 3-body potential\n* [python ](https://docs.lammps.org/pair_python.html) -\n* [quip ](https://docs.lammps.org/pair_quip.html) -\n* [rann ](https://docs.lammps.org/pair_rann.html) -\n* [reaxff ](https://docs.lammps.org/pair_reaxff.html) - ReaxFF potential\n* [rebo ](https://docs.lammps.org/pair_airebo.html) - Second generation REBO potential of Brenner\n* [rebomos ](https://docs.lammps.org/pair_rebomos.html) - REBOMoS potential for MoS2\n* [resquared ](https://docs.lammps.org/pair_resquared.html) - Everaers RE-Squared ellipsoidal potential\n* [saip/metal ](https://docs.lammps.org/pair_saip_metal.html) - Interlayer potential for hetero-junctions formed with hexagonal 2D materials and metal surfaces\n* [sdpd/taitwater/isothermal ](https://docs.lammps.org/pair_sdpd_taitwater_isothermal.html) - Smoothed dissipative particle dynamics for water at isothermal conditions\n* [smatb ](https://docs.lammps.org/pair_smatb.html) - Second Moment Approximation to the Tight Binding\n* [smatb/single ](https://docs.lammps.org/pair_smatb.html) - Second Moment Approximation to the Tight Binding for single-element systems\n* [smd/hertz ](https://docs.lammps.org/pair_smd_hertz.html) -\n* [smd/tlsph ](https://docs.lammps.org/pair_smd_tlsph.html) -\n* [smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html) -\n* [smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html) -\n* [smtbq ](https://docs.lammps.org/pair_smtbq.html) -\n* [mliap ](https://docs.lammps.org/pair_mliap.html) - Multiple styles of machine-learning potential\n* [snap ](https://docs.lammps.org/pair_snap.html) - SNAP machine-learning potential\n* [soft ](https://docs.lammps.org/pair_soft.html) - Soft (cosine) potential\n* [sph/heatconduction ](https://docs.lammps.org/pair_sph_heatconduction.html) -\n* [sph/idealgas ](https://docs.lammps.org/pair_sph_idealgas.html) -\n* [sph/lj ](https://docs.lammps.org/pair_sph_lj.html) -\n* [sph/rhosum ](https://docs.lammps.org/pair_sph_rhosum.html) -\n* [sph/taitwater ](https://docs.lammps.org/pair_sph_taitwater.html) -\n* [sph/taitwater/morris ](https://docs.lammps.org/pair_sph_taitwater_morris.html) -\n* [spin/dipole/cut ](https://docs.lammps.org/pair_spin_dipole.html) -\n* [spin/dipole/long ](https://docs.lammps.org/pair_spin_dipole.html) -\n* [spin/dmi ](https://docs.lammps.org/pair_spin_dmi.html) -\n* [spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html) -\n* [spin/exchange/biquadratic ](https://docs.lammps.org/pair_spin_exchange.html) -\n* [spin/magelec ](https://docs.lammps.org/pair_spin_magelec.html) -\n* [spin/neel ](https://docs.lammps.org/pair_spin_neel.html) -\n* [srp ](https://docs.lammps.org/pair_srp.html) -\n* [srp/react ](https://docs.lammps.org/pair_srp.html) -\n* [sw ](https://docs.lammps.org/pair_sw.html) - Stillinger-Weber 3-body potential\n* [sw/angle/table ](https://docs.lammps.org/pair_sw_angle_table.html) - Stillinger-Weber potential with tabulated angular term\n* [sw/mod ](https://docs.lammps.org/pair_sw.html) - modified Stillinger-Weber 3-body potential\n* [table ](https://docs.lammps.org/pair_table.html) - tabulated pair potential\n* [table/rx ](https://docs.lammps.org/pair_table_rx.html) -\n* [tdpd ](https://docs.lammps.org/pair_mesodpd.html) - tDPD particle interactions\n* [tersoff ](https://docs.lammps.org/pair_tersoff.html) - Tersoff 3-body potential\n* [tersoff/mod ](https://docs.lammps.org/pair_tersoff_mod.html) - modified Tersoff 3-body potential\n* [tersoff/mod/c ](https://docs.lammps.org/pair_tersoff_mod.html) -\n* [tersoff/table ](https://docs.lammps.org/pair_tersoff.html) -\n* [tersoff/zbl ](https://docs.lammps.org/pair_tersoff_zbl.html) - Tersoff/ZBL 3-body potential\n* [thole ](https://docs.lammps.org/pair_thole.html) - Coulomb interactions with thole damping\n* [threebody/table ](https://docs.lammps.org/pair_threebody_table.html) - generic tabulated three-body potential\n* [tip4p/cut ](https://docs.lammps.org/pair_coul.html) - Coulomb for TIP4P water w/out LJ\n* [tip4p/long ](https://docs.lammps.org/pair_coul.html) - long-range Coulomb for TIP4P water w/out LJ\n* [tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) -\n* [tracker ](https://docs.lammps.org/pair_tracker.html) - monitor information about pairwise interactions\n* [tri/lj ](https://docs.lammps.org/pair_tri_lj.html) - LJ potential between triangles\n* [ufm ](https://docs.lammps.org/pair_ufm.html) -\n* [uf3 ](https://docs.lammps.org/pair_uf3.html) - UF3 machine-learning potential\n* [vashishta ](https://docs.lammps.org/pair_vashishta.html) - Vashishta 2-body and 3-body potential\n* [vashishta/table ](https://docs.lammps.org/pair_vashishta.html) -\n* [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) - Wang-Frenkel Potential for short-ranged interactions\n* [ylz ](https://docs.lammps.org/pair_ylz.html) - Yuan-Li-Zhang Potential for anisotropic interactions\n* [yukawa ](https://docs.lammps.org/pair_yukawa.html) - Yukawa potential\n* [yukawa/colloid ](https://docs.lammps.org/pair_yukawa_colloid.html) - screened Yukawa potential for finite-size particles\n* [zbl ](https://docs.lammps.org/pair_zbl.html) - Ziegler-Biersack-Littmark potential\n\n----------\n", + "restrictions": "This command must be used before any coefficients are set by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [read_data ](https://docs.lammps.org/read_data.html), or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nSome pair styles are part of specific packages. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual pair potentials tell if it is part of a package.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [read_data ](https://docs.lammps.org/read_data.html),\n[pair_modify ](https://docs.lammps.org/pair_modify.html), [kspace_style ](https://docs.lammps.org/kspace_style.html),\n[dielectric ](https://docs.lammps.org/dielectric.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" }, { "command": [ - "fix heat/flow" + "pair_style hbond/dreiding/lj", + "pair_style hbond/dreiding/lj/omp", + "pair_style hbond/dreiding/morse", + "pair_style hbond/dreiding/morse/omp" ], "syntax": [ - "fix ID group-ID heat/flow style values ..." + "pair_style style N inner_distance_cutoff outer_distance_cutoff angle_cutof" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "hbond/dreiding/morse/omp", + "type": 3, + "choices": [ + "hbond/dreiding/lj", + "hbond/dreiding/morse", + "hbond/dreiding/lj/omp", + "hbond/dreiding/morse/omp" + ] }, { - "arg": "group-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "heat/flow", - "type": 1, + "arg": "inner_distance_cutoff", + "type": 2, "choices": [] }, { - "arg": "style", + "arg": "outer_distance_cutoff", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "angle_cutof", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* heat/flow = style name of this fix command\n* one style with corresponding value(s) needs to be listed \n *      style = constant or type \n       constant = cp \n       cp = value of specifc heat (energy/(mass * temperature) units) \n       type = cp1 ... cpN \n       cpN = value of specifc heat for type N (energy/(mass * temperature) units) \n* \n", - "examples": "\n```lmps\nfix 1 all heat/flow constant 1.0\nfix 1 all heat/flow type 1.0 0.5\n```\n", - "html_filename": "fix_heat_flow.html", - "short_description": "Perform plain time integration to update temperature for atoms in the\ngroup each timestep", - "description": "Perform plain time integration to update temperature for atoms in the\ngroup each timestep. The specific heat of atoms can be defined using either\nthe *constant* or *type* keywords. For style *constant*, the specific heat\nis a constant value *cp* for all atoms. For style *type*, *N* different values\nof the specific heat are defined, one for each of the *N* types of atoms.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo global or per-atom quantities are stored by this fix for access by various\n[output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is\nnot invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This pair style is part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store temperature and heat flow\nas defined by the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\n", - "related": "[pair granular ](https://docs.lammps.org/pair_granular.html),\n[fix add/heat ](https://docs.lammps.org/fix_add_heat.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\n" + "parameters": "* style = hbond/dreiding/lj or hbond/dreiding/morse\n* n = cosine angle periodicity\n* inner_distance_cutoff = global inner cutoff for Donor-Acceptor interactions (distance units)\n* outer_distance_cutoff = global cutoff for Donor-Acceptor interactions (distance units)\n* angle_cutoff = global angle cutoff for Acceptor-Hydrogen-Donor\n* interactions (degrees) \n", + "examples": "\n```lmps\npair_style hybrid/overlay lj/cut 10.0 hbond/dreiding/lj 4 9.0 11.0 90\npair_coeff 1 2 hbond/dreiding/lj 3 i 9.5 2.75 4 9.0 11.0 90.0\n\npair_style hybrid/overlay lj/cut 10.0 hbond/dreiding/morse 2 9.0 11.0 90\npair_coeff 1 2 hbond/dreiding/morse 3 i 3.88 1.7241379 2.9 2 9 11 90\n```\n", + "html_filename": "pair_hbond_dreiding.html", + "short_description": "The *hbond/dreiding* styles compute the Acceptor-Hydrogen-Donor (AHD)\n3-body hydrogen bond interaction for the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html)\nforce field, given by:\n\\[\\begin{align*} \n E = & \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad \\qquad r < r_{\\rm in} \\\\\n = & S(r) * \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad r_{\\rm in} < r < r_{\\rm out} \\\\\n = & 0 \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad r > r_{\\rm out} \\\\\n LJ(r) = & AR^{-12}-BR^{-10}cos^n\\theta=\n \\epsilon\\left\\lbrace 5\\left[ \\frac{\\sigma}{r}\\right]^{12}-\n 6\\left[ \\frac{\\sigma}{r}\\right]^{10} \\right\\rbrace cos^n\\theta\\\\\n Morse(r) = & D_0\\left\\lbrace \\chi^2 - 2\\chi\\right\\rbrace cos^n\\theta=\n D_{0}\\left\\lbrace e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right\\rbrace cos^n\\theta \\\\\n S(r) = & \\frac{ \\left[r_{\\rm out}^2 - r^2\\right]^2\n \\left[r_{\\rm out}^2 + 2r^2 - 3{r_{\\rm in}^2}\\right]}\n { \\left[r_{\\rm out}^2 - {r_{\\rm in}}^2\\right]^3 } \\end{align*} \\]\nwhere \\(r_{\\rm in}\\) is the inner spline distance cutoff,\n\\(r_{\\rm out}\\) is the outer distance cutoff, \\(\\theta_c\\) is\nthe angle cutoff, and *n* is the cosine periodicity", + "description": "The *hbond/dreiding* styles compute the Acceptor-Hydrogen-Donor (AHD)\n3-body hydrogen bond interaction for the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html)\nforce field, given by:\n\\[\\begin{align*} \n E = & \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad \\qquad r < r_{\\rm in} \\\\\n = & S(r) * \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad r_{\\rm in} < r < r_{\\rm out} \\\\\n = & 0 \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad r > r_{\\rm out} \\\\\n LJ(r) = & AR^{-12}-BR^{-10}cos^n\\theta=\n \\epsilon\\left\\lbrace 5\\left[ \\frac{\\sigma}{r}\\right]^{12}-\n 6\\left[ \\frac{\\sigma}{r}\\right]^{10} \\right\\rbrace cos^n\\theta\\\\\n Morse(r) = & D_0\\left\\lbrace \\chi^2 - 2\\chi\\right\\rbrace cos^n\\theta=\n D_{0}\\left\\lbrace e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right\\rbrace cos^n\\theta \\\\\n S(r) = & \\frac{ \\left[r_{\\rm out}^2 - r^2\\right]^2\n \\left[r_{\\rm out}^2 + 2r^2 - 3{r_{\\rm in}^2}\\right]}\n { \\left[r_{\\rm out}^2 - {r_{\\rm in}}^2\\right]^3 } \\end{align*} \\]\nwhere \\(r_{\\rm in}\\) is the inner spline distance cutoff,\n\\(r_{\\rm out}\\) is the outer distance cutoff, \\(\\theta_c\\) is\nthe angle cutoff, and *n* is the cosine periodicity.\n\nHere, *r* is the radial distance between the donor (D) and acceptor\n(A) atoms and \\(\\theta\\) is the bond angle between the acceptor, the\nhydrogen (H) and the donor atoms:\n\n ![Image](JPG/dreiding_hbond.jpg) \n\nThese 3-body interactions can be defined for pairs of acceptor and\ndonor atoms, based on atom types. For each donor/acceptor atom pair,\nthe third atom in the interaction is a hydrogen permanently bonded to\nthe donor atom, e.g. in a bond list read in from a data file via the\n[read_data ](https://docs.lammps.org/read_data.html) command. The atom types of possible\nhydrogen atoms for each donor/acceptor type pair are specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command (see below).\n\nStyle *hbond/dreiding/lj* is the original DREIDING potential of\n**pair-Mayo**. It uses a LJ 12/10 functional for the Donor-Acceptor\ninteractions. To match the results in the original paper, use n = 4.\n\nStyle *hbond/dreiding/morse* is an improved version using a Morse\npotential for the Donor-Acceptor interactions. **Liu** showed\nthat the Morse form gives improved results for Dendrimer simulations,\nwhen n = 2.\n\nSee the [Howto bioFF ](https://docs.lammps.org/Howto_bioFF.html) page for more information\non the DREIDING force field.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the Dreiding hydrogen bond potential is only one portion\n > of an overall force field which typically includes other pairwise\n > interactions, it is common to use it as a sub-style in a [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, where another pair style\n > provides the repulsive core interaction between pairs of atoms, e.g. a\n > 1/r\\^12 Lennard-Jones repulsion. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the hbond/dreiding pair styles with [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), you should explicitly define pair\n > interactions between the donor atom and acceptor atoms, (as well as\n > between these atoms and ALL other atoms in your system). Whenever\n > [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used, ordinary mixing\n > rules are not applied to atoms like the donor and acceptor atoms\n > because they are typically referenced in multiple pair styles.\n > Neglecting to do this can cause difficult-to-detect physics problems. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the original Dreiding force field paper 1-4 non-bonded\n > interactions ARE allowed. If this is desired for your model, use the\n > special_bonds command (e.g. \"special_bonds lj 0.0 0.0 1.0\") to turn\n > these interactions on. \n > \n\n----------\n\nThe following coefficients must be defined for pairs of eligible\ndonor/acceptor types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as\nin the examples above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike other pair styles and their associated\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands, you do not need to specify\n > pair_coeff settings for all possible I,J type pairs. Only I,J type\n > pairs for atoms which act as joint donors/acceptors need to be\n > specified; all other type pairs are assumed to be inactive. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command can be specified multiple\n > times for the same donor/acceptor type pair. This enables multiple\n > hydrogen types to be assigned to the same donor/acceptor type pair.\n > For other pair_styles, if the pair_coeff command is re-used for the\n > same I.J type pair, the settings for that type pair are overwritten.\n > For the hydrogen bond potentials this is not the case; the settings\n > are cumulative. This means the only way to turn off a previous\n > setting, is to re-use the pair_style command and start over. \n > \n\nFor the *hbond/dreiding/lj* style the list of coefficients is as\nfollows:\n\n* K = hydrogen atom type = 1 to Ntypes\n* donor flag = *i* or *j*\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* *n* = exponent in formula above\n* distance cutoff \\(r_{\\rm in}\\) (distance units)\n* distance cutoff \\(r_{\\rm out}\\) (distance units)\n* angle cutoff (degrees)\n\nFor the *hbond/dreiding/morse* style the list of coefficients is as\nfollows:\n\n* K = hydrogen atom type = 1 to Ntypes\n* donor flag = *i* or *j*\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* *n* = exponent in formula above\n* distance cutoff \\(r_{\\rm in}\\) (distance units)\n* distance cutoff \\(r_{out}\\) (distance units)\n* angle cutoff (degrees)\n\nA single hydrogen atom type K can be specified, or a wild-card asterisk\ncan be used in place of or in conjunction with the K arguments to\nselect multiple types as hydrogen atoms. This takes the form\n\"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand page for details.\n\nIf the donor flag is *i*, then the atom of type I in the pair_coeff\ncommand is treated as the donor, and J is the acceptor. If the donor\nflag is *j*, then the atom of type J in the pair_coeff command is\ntreated as the donor and I is the donor. This option is required\nbecause the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command requires that I <= J.\n\n\\(\\epsilon\\) and \\(\\sigma\\) are settings for the hydrogen bond\npotential based on a Lennard-Jones functional form. Note that sigma is\ndefined as the zero-crossing distance for the potential, not as the\nenergy minimum at \\(2^{1/6} \\sigma\\).\n\n\\(D_0\\) and \\(\\alpha\\) and \\(r_0\\) are settings for the\nhydrogen bond potential based on a Morse functional form.\n\nThe last 3 coefficients for both styles are optional. If not\nspecified, the global n, distance cutoff, and angle cutoff specified\nin the pair_style command are used. If you wish to only override the\nsecond or third optional parameter, you must also specify the preceding\noptional parameters.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. You must explicitly identify\neach donor/acceptor type pair.\n\nThese styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the interactions.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthese pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles do not write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands need to be\nre-specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThese pair styles tally a count of how many hydrogen bonding\ninteractions they calculate each timestep and the hbond energy. These\nquantities can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html)\ncommand as a vector of values of length 2.\n\nTo print these quantities to the log file (with a descriptive column\nheading) the following commands could be included in an input script:\n\n```lmps\ncompute hb all pair hbond/dreiding/lj\nvariable n_hbond equal c_hb[1] #number hbonds\nvariable E_hbond equal c_hb[2] #hbond energy\nthermo_style custom step temp epair v_E_hbond\n```\n----------\n\n**(pair-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n \n**(Liu)** Liu, Bryantsev, Diallo, Goddard III, J. Am. Chem. Soc 131 (8)\n2798 (2009) \n ", + "restrictions": " none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "set" + "processors" ], "syntax": [ - "set style ID keyword values ..." + "processors Px Py Pz keyword args ..." ], "args": [ [ { - "arg": "set", + "arg": "processors", "type": 1, "choices": [] }, { - "arg": "region", - "type": 3, - "choices": [ - "atom", - "type", - "mol", - "group", - "region" - ] + "arg": "Px", + "type": 2, + "choices": [] }, { - "arg": "ID", + "arg": "Py", "type": 2, "choices": [] }, { - "arg": "type/subset", + "arg": "Pz", + "type": 2, + "choices": [] + }, + { + "arg": "file", "type": 3, "choices": [ - "type", - "type/fraction", - "type/ratio", - "type/subset" + "grid", + "map", + "part", + "file" ] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* style = atom or type or mol or group or region\n* ID = depends on style \n *        for style = atom, ID = a range of atom IDs \n *        for style = type, ID = a range of numeric types or a single type label \n *        for style = mol, ID = a range of molecule IDs \n *        for style = group, ID = a group ID \n *        for style = region, ID = a region ID \n* one or more keyword/value pairs may be appended\n* keyword = type or type/fraction or type/ratio or type/subset\n or mol or x or y or z or vx or vy or vz or charge or\n dipole or dipole/random or quat or spin/atom or spin/atom/random or\n spin/electron or radius/electron or\n quat or quat/random or diameter or shape or length or tri or\n theta or theta/random or angmom or omega or\n mass or density or density/disc or temperature or\n volume or image or bond or angle or dihedral or\n improper or sph/e or sph/cv or sph/rho or\n smd/contact/radius or smd/mass/density or dpd/theta or\n edpd/temp or edpd/cv or cc or epsilon or\n i_name or d_name or i2_name or d2_name \n *        type value = numeric atom type or type label \n         value can be an atom-style variable (see below) \n *        type/fraction values = type fraction seed \n         type = numeric atom type or type label \n         fraction = approximate fraction of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        type/ratio values = type fraction seed \n         type = numeric atom type or type label \n         fraction = exact fraction of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        type/subset values = type Nsubset seed \n         type = numeric atom type or type label \n         Nsubset = exact number of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        mol value = molecule ID \n *        value can be an atom-style variable (see below) \n *        x, y, z value = atom coordinate (distance units) \n         value can be an atom-style variable (see below) \n *        vx, vy, vz value = atom velocity (velocity units) \n         value can be an atom-style variable (see below) \n *        charge value = atomic charge (charge units) \n         value can be an atom-style variable (see below) \n *        dipole values = x y z \n         x,y,z = orientation of dipole moment vector \n         any of x,y,z can be an atom-style variable (see below) \n *        dipole/random value = seed Dlen \n         seed = random # seed (positive integer) for dipole moment orientations \n         Dlen = magnitude of dipole moment (dipole units) \n *        spin/atom values = g x y z \n         g = magnitude of magnetic spin vector (in Bohr magneton's unit) \n         x,y,z = orientation of magnetic spin vector \n         any of x,y,z can be an atom-style variable (see below) \n *        spin/atom/random value = seed Dlen \n         seed = random # seed (positive integer) for magnetic spin orientations \n         Dlen = magnitude of magnetic spin vector (in Bohr magneton's unit) \n *        radius/electron values = eradius \n         eradius = electron radius (or fixed-core radius) (distance units) \n *        spin/electron value = espin \n         espin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP) \n *        quat values = a b c theta \n         a,b,c = unit vector to rotate particle around via right-hand rule \n         theta = rotation angle (degrees) \n         any of a,b,c,theta can be an atom-style variable (see below) \n *        quat/random value = seed \n         seed = random # seed (positive integer) for quaternion orientations \n *        diameter value = diameter of spherical particle (distance units) \n         value can be an atom-style variable (see below) \n *        shape value = Sx Sy Sz \n         Sx,Sy,Sz = 3 diameters of ellipsoid (distance units) \n *        length value = len \n         len = length of line segment (distance units) \n         len can be an atom-style variable (see below) \n *        tri value = side \n         side = side length of equilateral triangle (distance units) \n         side can be an atom-style variable (see below) \n *        theta value = angle (degrees) \n         angle = orientation of line segment with respect to x-axis \n         angle can be an atom-style variable (see below) \n *        theta/random value = seed \n         seed = random # seed (positive integer) for line segment orienations \n *        angmom values = Lx Ly Lz \n         Lx,Ly,Lz = components of angular momentum vector (distance-mass-velocity units) \n         any of Lx,Ly,Lz can be an atom-style variable (see below) \n *        omega values = Wx Wy Wz \n         Wx,Wy,Wz = components of angular velocity vector (radians/time units) \n         any of wx,wy,wz can be an atom-style variable (see below) \n *        mass value = per-atom mass (mass units) \n         value can be an atom-style variable (see below) \n *        density value = particle density for a sphere or ellipsoid (mass/distance\\^3 units), or for a triangle (mass/distance\\^2 units) or line (mass/distance units) particle \n         value can be an atom-style variable (see below) \n *        density/disc value = particle density for a 2d disc or ellipse (mass/distance\\^2 units) \n         value can be an atom-style variable (see below) \n *        temperature value = temperature for finite-size particles (temperature units) \n         value can be an atom-style variable (see below) \n *        volume value = particle volume for Peridynamic particle (distance\\^3 units) \n         value can be an atom-style variable (see below) \n *        image nx ny nz \n         nx,ny,nz = which periodic image of the simulation box the atom is in \n         any of nx,ny,nz can be an atom-style variable (see below) \n *        bond value = numeric bond type or bond type label, for all bonds between selected atoms \n *        angle value = numeric angle type or angle type label, for all angles between selected atoms \n *        dihedral value = numeric dihedral type or dihedral type label, for all dihedrals between selected atoms \n *        improper value = numeric improper type or improper type label, for all impropers between selected atoms \n *        *rheo/rho* value = density of RHEO particles (mass/distance\\^3) \n *        *rheo/status* value = status or phase of RHEO particles (unitless) \n *        sph/e value = energy of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        sph/cv value = heat capacity of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        sph/rho value = density of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        smd/contact/radius = radius for short range interactions, i.e. contact and friction \n         value can be an atom-style variable (see below) \n *        smd/mass/density = set particle mass based on volume by providing a mass density \n         value can be an atom-style variable (see below) \n *        dpd/theta value = internal temperature of DPD particles (temperature units) \n         value can be an atom-style variable (see below) \n         value can be NULL which sets internal temp of each particle to KE temp \n *        edpd/temp value = temperature of eDPD particles (temperature units) \n         value can be an atom-style variable (see below) \n *        edpd/cv value = volumetric heat capacity of eDPD particles (energy/temperature/volume units) \n         value can be an atom-style variable (see below) \n *        cc values = index cc \n         index = index of a chemical species (1 to Nspecies) \n         cc = chemical concentration of tDPD particles for a species (mole/volume units) \n *        epsilon value = dielectric constant of the medium where the atoms reside \n *        i_name value = custom integer vector with name \n *        d_name value = custom floating-point vector with name \n *        i2_name value = column of a custom integer array with name \n         column specified as i2_name[N] where N is 1 to Ncol \n *        d2_name value = column of a custom floating-point array with name \n         column specified as d2_name[N] where N is 1 to Ncol \n", - "examples": "\n```lmps\nset group solvent type 2\nset group solvent type C\nset group solvent type/fraction 2 0.5 12393\nset group solvent type/fraction C 0.5 12393\nset group edge bond 4\nset region half charge 0.5\nset type 3 charge 0.5\nset type H charge 0.5\nset type 1*3 charge 0.5\nset atom * charge v_atomfile\nset atom 100*200 x 0.5 y 1.0\nset atom 100 vx 0.0 vy 0.0 vz -1.0\nset atom 1492 type 3\nset atom 1492 type H\nset atom * i_myVal 5\nset atom * d2_Sxyz[1] 6.4\n```\n", - "html_filename": "set.html", - "short_description": "Set one or more properties of one or more atoms", - "description": "Set one or more properties of one or more atoms. Since atom\nproperties are initially assigned by the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html) or [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommands, this command changes those assignments. This can be useful\nfor overriding the default values assigned by the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command (e.g. charge = 0.0). It can\nbe useful for altering pairwise and molecular force interactions,\nsince force-field coefficients are defined in terms of types. It can\nbe used to change the labeling of atoms by atom type or molecule ID\nwhen they are output in [dump ](https://docs.lammps.org/dump.html) files. It can also be useful\nfor debugging purposes; i.e. positioning an atom at a precise location\nto compute subsequent forces or energy.\n\nNote that the *style* and *ID* arguments determine which atoms have\ntheir properties reset. The remaining keywords specify which\nproperties to reset and what the new values are. Some strings like\n*type* or *mol* can be used as a style and/or a keyword.\n\n----------\n\nThis section describes how to select which atoms to change\nthe properties of, via the *style* and *ID* arguments.\n\n **New in version 28Mar2023** \n\n Support for type labels was added for selecting atoms by type\nThe style *atom* selects all the atoms in a range of atom IDs.\n\nThe style *type* selects all the atoms in a range of types or type\nlabels. The style *type* selects atoms in one of two ways. A range\nof numeric atom types can be specified. Or a single atom type label\ncan be specified, e.g. \"C\". The style *mol* selects all the atoms in\na range of molecule IDs.\n\nIn each of the range cases, the range can be specified as a single\nnumeric value, or a wildcard asterisk can be used to specify a range\nof values. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". For\nexample, for the style *type*, if N = the number of atom types, then\nan asterisk with no numeric values means all types from 1 to N. A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive). For all the styles except\n*mol*, the lowest value for the wildcard is 1; for *mol* it is 0.\n\nThe style *group* selects all the atoms in the specified group. The\nstyle *region* selects all the atoms in the specified geometric\nregion. See the [group ](https://docs.lammps.org/group.html) and [region ](https://docs.lammps.org/region.html) commands\nfor details of how to specify a group or region.\n\n----------\n\nThis section describes the keyword options for which properties to\nchange, for the selected atoms.\n\nNote that except where explicitly prohibited below, all of the\nkeywords allow an [atom-style or atomfile-style variable](https://docs.lammps.org/variable.html) to be used as the specified value(s). If the value is a\nvariable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated, and its\nresulting per-atom value used to determine the value assigned to each\nselected atom. Note that the per-atom value from the variable will be\nignored for atoms that are not selected via the *style* and *ID*\nsettings explained above. A simple way to use per-atom values from\nthe variable to reset a property for all atoms is to use style *atom*\nwith *ID* = \"\\*\"; this selects all atom IDs.\n\nAtom-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. They can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a time-dependent or\nspatially-dependent set of per-atom values. As explained on the\n[variable ](https://docs.lammps.org/variable.html) doc page, atomfile-style variables can be\nused in place of atom-style variables, and thus as arguments to the\nset command. Atomfile-style variables read their per-atoms values\nfrom a file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atom-style and atomfile-style variables return floating point\n > per-atom values. If the values are assigned to an integer variable,\n > such as the molecule ID, then the floating point value is truncated to\n > its integer portion, e.g. a value of 2.6 would become 2. \n > \n\n\n **New in version 28Mar2023** \n\n Support for type labels was added for setting atom, bond, angle,\n dihedral, and improper types\nKeyword *type* sets the atom type for all selected atoms. A specified\nvalue can be either a numeric atom type or an atom type label. When\nusing a numeric type, the specified value must be from 1 to ntypes,\nwhere ntypes was set by the [create_box ](https://docs.lammps.org/create_box.html) command or\nthe *atom types* field in the header of the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. When using a type label it must\nhave been defined previously. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nKeyword *type/fraction* sets the atom type for a fraction of the selected\natoms. The actual number of atoms changed is not guaranteed\nto be exactly the specified fraction (0 <= *fraction* <= 1), but\nshould be statistically close. Random numbers are used in such a way\nthat a particular atom is changed or not changed, regardless of how\nmany processors are being used. This keyword does not allow use of an\natom-style variable.\n\nKeywords *type/ratio* and *type/subset* also set the atom type for a\nfraction of the selected atoms. The actual number of atoms changed\nwill be exactly the requested number. For *type/ratio* the specified\nfraction (0 <= *fraction* <= 1) determines the number. For\n*type/subset*, the specified *Nsubset* is the number. An iterative\nalgorithm is used which ensures the correct number of atoms are\nselected, in a perfectly random fashion. Which atoms are selected\nwill change with the number of processors used. These keywords do not\nallow use of an atom-style variable.\n\nKeyword *mol* sets the molecule ID for all selected atoms. The\n[atom style ](https://docs.lammps.org/atom_style.html) being used must support the use of\nmolecule IDs.\n\nKeywords *x*, *y*, *z*, and *charge* set the coordinates or\ncharge of all selected atoms. For *charge*, the [atom style](https://docs.lammps.org/atom_style.html) being used must support the use of atomic\ncharge. Keywords *vx*, *vy*, and *vz* set the velocities of all\nselected atoms.\n\nKeyword *dipole* uses the specified x,y,z values as components of a\nvector to set as the orientation of the dipole moment vectors of the\nselected atoms. The magnitude of the dipole moment is set by the\nlength of this orientation vector.\n\nKeyword *dipole/random* randomizes the orientation of the dipole\nmoment vectors for the selected atoms and sets the magnitude of each\nto the specified *Dlen* value. For 2d systems, the z component of the\norientation is set to 0.0. Random numbers are used in such a way that\nthe orientation of a particular atom is the same, regardless of how\nmany processors are being used. This keyword does not allow use of an\natom-style variable.\n\nKeyword *spin/atom* uses the specified g value to set the magnitude of the\nmagnetic spin vectors, and the x,y,z values as components of a vector\nto set as the orientation of the magnetic spin vectors of the selected\natoms. This keyword was previously called *spin*.\n\nKeyword *spin/atom/random* randomizes the orientation of the magnetic spin\nvectors for the selected atoms and sets the magnitude of each to the\nspecified *Dlen* value. This keyword was previously called *spin/random*.\n\nKeyword *radius/electron* uses the specified value to set the radius of\nelectrons or fixed cores.\n\nKeyword *spin/electron* sets the spin of an electron (+/- 1) or indicates\nnuclei (=0), fixed-cores (=2), or pseudo-cores (= 3).\n\nKeyword *quat* uses the specified values to create a quaternion\n(4-vector) that represents the orientation of the selected atoms. The\nparticles must define a quaternion for their orientation\n(e.g. ellipsoids, triangles, body particles) as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. Note that particles defined by\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) have 3 shape parameters. The 3\nvalues must be non-zero for each particle set by this command. They\nare used to specify the aspect ratios of an ellipsoidal particle,\nwhich is oriented by default with its x-axis along the simulation\nbox's x-axis, and similarly for y and z. If this body is rotated (via\nthe right-hand rule) by an angle theta around a unit rotation vector\n(a,b,c), then the quaternion that represents its new orientation is\ngiven by (cos(theta/2), a\\*sin(theta/2), b\\*sin(theta/2),\nc\\*sin(theta/2)). The theta and a,b,c values are the arguments to the\n*quat* keyword. LAMMPS normalizes the quaternion in case (a,b,c) was\nnot specified as a unit vector. For 2d systems, the a,b,c values are\nignored, since a rotation vector of (0,0,1) is the only valid choice.\n\nKeyword *quat/random* randomizes the orientation of the quaternion for\nthe selected atoms. The particles must define a quaternion for their\norientation (e.g. ellipsoids, triangles, body particles) as defined by\nthe [atom_style ](https://docs.lammps.org/atom_style.html) command. Random numbers are used in\nsuch a way that the orientation of a particular atom is the same,\nregardless of how many processors are being used. For 2d systems,\nonly orientations in the xy plane are generated. As with keyword\n*quat*, for ellipsoidal particles, the 3 shape values must be non-zero\nfor each particle set by this command. This keyword does not allow\nuse of an atom-style variable.\n\nKeyword *diameter* sets the size of the selected atoms. The particles\nmust be finite-size spheres as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The diameter of a particle can be set to 0.0,\nwhich means they will be treated as point particles. Note that this\ncommand does not adjust the particle mass, even if it was defined with\na density, e.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *shape* sets the size and shape of the selected atoms. The\nparticles must be ellipsoids as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command. The *Sx*, *Sy*, *Sz* settings\nare the 3 diameters of the ellipsoid in each direction. All 3 can be\nset to the same value, which means the ellipsoid is effectively a\nsphere. They can also all be set to 0.0 which means the particle will\nbe treated as a point particle. Note that this command does not\nadjust the particle mass, even if it was defined with a density,\ne.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *length* sets the length of selected atoms. The particles\nmust be line segments as defined by the [atom_style line](https://docs.lammps.org/atom_style.html) command. If the specified value is non-zero the line\nsegment is (re)set to a length = the specified value, centered around\nthe particle position, with an orientation along the x-axis. If the\nspecified value is 0.0, the particle will become a point particle.\nNote that this command does not adjust the particle mass, even if it\nwas defined with a density, e.g. via the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nKeyword *tri* sets the size of selected atoms. The particles must be\ntriangles as defined by the [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\nIf the specified value is non-zero the triangle is (re)set to be an\nequilateral triangle in the xy plane with side length = the specified\nvalue, with a centroid at the particle position, with its base\nparallel to the x axis, and the y-axis running from the center of the\nbase to the top point of the triangle. If the specified value is 0.0,\nthe particle will become a point particle. Note that this command\ndoes not adjust the particle mass, even if it was defined with a\ndensity, e.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *theta* sets the orientation of selected atoms. The particles\nmust be line segments as defined by the [atom_style line](https://docs.lammps.org/atom_style.html) command. The specified value is used to set the\norientation angle of the line segments with respect to the x axis.\n\nKeyword *theta/random* randomizes the orientation of theta for the\nselected atoms. The particles must be line segments as defined by the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command. Random numbers are used in\nsuch a way that the orientation of a particular atom is the same,\nregardless of how many processors are being used. This keyword does\nnot allow use of an atom-style variable.\n\nKeyword *angmom* sets the angular momentum of selected atoms. The\nparticles must be ellipsoids as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command or triangles as defined by the\n[atom_style tri ](https://docs.lammps.org/atom_style.html) command. The angular momentum\nvector of the particles is set to the 3 specified components.\n\nKeyword *omega* sets the angular velocity of selected atoms. The\nparticles must be spheres as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The angular velocity vector of the particles is\nset to the 3 specified components.\n\nKeyword *mass* sets the mass of all selected particles. The particles\nmust have a per-atom mass attribute, as defined by the [atom_style](https://docs.lammps.org/atom_style.html) command. See the \"mass\" command for how to set mass\nvalues on a per-type basis.\n\nKeyword *density* or *density/disc* also sets the mass of all selected\nparticles, but in a different way. The particles must have a per-atom\nmass attribute, as defined by the [atom_style ](https://docs.lammps.org/atom_style.html)\ncommand. If the atom has a radius attribute (see [atom_stylesphere ](https://docs.lammps.org/atom_style.html)) and its radius is non-zero, its mass is set from\nthe density and particle volume for 3d systems (the input density is\nassumed to be in mass/distance\\^3 units). For 2d, the default is for\nLAMMPS to model particles with a radius attribute as spheres. However,\nif the *density/disc* keyword is used, then they can be modeled as 2d\ndiscs (circles). Their mass is set from the density and particle area\n(the input density is assumed to be in mass/distance\\^2 units).\n\nIf the atom has a shape attribute (see [atom_style ellipsoid](https://docs.lammps.org/atom_style.html)) and its 3 shape parameters are non-zero, then its mass is\nset from the density and particle volume (the input density is assumed\nto be in mass/distance\\^3 units). The *density/disc* keyword has no\neffect; it does not (yet) treat 3d ellipsoids as 2d ellipses.\n\nIf the atom has a length attribute (see [atom_style line](https://docs.lammps.org/atom_style.html)) and its length is non-zero, then its mass is set from the\ndensity and line segment length (the input density is assumed to be in\nmass/distance units). If the atom has an area attribute (see\n[atom_style tri ](https://docs.lammps.org/atom_style.html)) and its area is non-zero, then its\nmass is set from the density and triangle area (the input density is\nassumed to be in mass/distance\\^2 units).\n\nIf none of these cases are valid, then the mass is set to the density\nvalue directly (the input density is assumed to be in mass units).\n\nKeyword *temperature* sets the temperature of a finite-size particle.\nCurrently, only the GRANULAR package supports this attribute. The\ntemperature must be added using an instance of\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) The values for the\ntemperature must be positive.\n\nKeyword *volume* sets the volume of all selected particles. Currently,\nonly the [atom_style peri ](https://docs.lammps.org/atom_style.html) command defines particles\nwith a volume attribute. Note that this command does not adjust the\nparticle mass.\n\nKeyword *image* sets which image of the simulation box the atom is\nconsidered to be in. An image of 0 means it is inside the box as\ndefined. A value of 2 means add 2 box lengths to get the true value. A\nvalue of -1 means subtract 1 box length to get the true value. LAMMPS\nupdates these flags as atoms cross periodic boundaries during the\nsimulation. The flags can be output with atom snapshots via the\n[dump ](https://docs.lammps.org/dump.html) command. If a value of NULL is specified for any of\nnx,ny,nz, then the current image value for that dimension is unchanged.\nFor non-periodic dimensions only a value of 0 can be specified. This\ncommand can be useful after a system has been equilibrated and atoms\nhave diffused one or more box lengths in various directions. This\ncommand can then reset the image values for atoms so that they are\neffectively inside the simulation box, e.g if a diffusion coefficient is\nabout to be measured via the [compute msd ](https://docs.lammps.org/compute_msd.html) command.\nCare should be taken not to reset the image flags of two atoms in a bond\nto the same value if the bond straddles a periodic boundary (rather they\nshould be different by +/- 1). This will not affect the dynamics of a\nsimulation, but may mess up analysis of the trajectories if a LAMMPS\ndiagnostic or your own analysis relies on the image flags to unwrap a\nmolecule which straddles the periodic box.\n\nKeywords *bond*, *angle*, *dihedral*, and *improper*, set the bond\ntype (angle type, etc) of all bonds (angles, etc) of selected atoms to\nthe specified value. The value can be a numeric type from 1 to\nnbondtypes (nangletypes, etc). Or it can be a type label (bond type\nlabel, angle type label, etc). See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used. All atoms in\na particular bond (angle, etc) must be selected atoms in order for the\nchange to be made. The value of nbondtypes (nangletypes, etc) was set\nby the *bond types* (\\ *angle types*, etc) field in the header of the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command. These\nkeywords do not allow use of an atom-style variable.\n\nKeywords *rheo/rho* and *rheo/status* set the density and the status of\nrheo particles. In particular, one can only set the phase in the status\nas described by the [RHEO howto page ](https://docs.lammps.org/Howto_rheo.html).\n\nKeywords *sph/e*, *sph/cv*, and *sph/rho* set the energy, heat capacity,\nand density of smoothed particle hydrodynamics (SPH) particles. See\n[this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in LAMMPS.\n\nKeyword *smd/mass/density* sets the mass of all selected particles, but\nit is only applicable to the Smooth Mach Dynamics package MACHDYN. It\nassumes that the particle volume has already been correctly set and\ncalculates particle mass from the provided mass density value.\n\nKeyword *smd/contact/radius* only applies to simulations with the Smooth\nMach Dynamics package MACHDYN. Itsets an interaction radius for\ncomputing short-range interactions, e.g. repulsive forces to prevent\ndifferent individual physical bodies from penetrating each other. Note\nthat the SPH smoothing kernel diameter used for computing long range,\nnonlocal interactions, is set using the *diameter* keyword.\n\nKeyword *dpd/theta* sets the internal temperature of a DPD particle as\ndefined by the DPD-REACT package. If the specified value is a number it\nmust be >= 0.0. If the specified value is NULL, then the kinetic\ntemperature Tkin of each particle is computed as 3/2 k Tkin = KE = 1/2 m\nv\\^2 = 1/2 m (vx\\*vx+vy\\*vy+vz\\*vz). Each particle's internal\ntemperature is set to Tkin. If the specified value is an atom-style\nvariable, then the variable is evaluated for each particle. If a value\n>= 0.0, the internal temperature is set to that value. If it is < 0.0,\nthe computation of Tkin is performed and the internal temperature is set\nto that value.\n\nKeywords *edpd/temp* and *edpd/cv* set the temperature and volumetric\nheat capacity of an eDPD particle as defined by the DPD-MESO package.\nCurrently, only [atom_style edpd ](https://docs.lammps.org/atom_style.html) defines particles\nwith these attributes. The values for the temperature and heat capacity\nmust be positive.\n\nKeyword *cc* sets the chemical concentration of a tDPD particle for a\nspecified species as defined by the DPD-MESO package. Currently, only\n[atom_style tdpd ](https://docs.lammps.org/atom_style.html) defines particles with this\nattribute. An integer for \"index\" selects a chemical species (1 to\nNspecies) where Nspecies is set by the atom_style command. The value for\nthe chemical concentration must be >= 0.0.\n\nKeyword *epsilon* sets the dielectric constant of a particle, precisely\nof the medium where the particle resides as defined by the DIELECTRIC\npackage. Currently, only [atom_style dielectric ](https://docs.lammps.org/atom_style.html)\ndefines particles with this attribute. The value for the dielectric\nconstant must be >= 0.0. Note that the set command with this keyword\nwill rescale the particle charge accordingly so that the real charge\n(e.g., as read from a data file) stays intact. To change the real\ncharges, one needs to use the set command with the *charge*\nkeyword. Care must be taken to ensure that the real and scaled charges,\nand dielectric constants are consistent.\n\nKeywords *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom\nper-atom integer and floating-point vectors or arrays that have been\nadded via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nWhen that command is used specific names are given to each attribute\nwhich are the \"name\" portion of these keywords. For arrays *i2_name*\nand *d2_name*, the column of the array must also be included following\nthe name in brackets: e.g. d2_xyz[2], i2_mySpin[3].\n", - "restrictions": "You cannot set an atom attribute (e.g. *mol* or *q* or *volume* ) if\nthe [atom_style ](https://docs.lammps.org/atom_style.html) does not have that attribute.\n\nThis command requires inter-processor communication to coordinate the\nsetting of bond types (angle types, etc). This means that your system\nmust be ready to perform a simulation before using one of these\nkeywords (force fields set, atom mass set, etc). This is not\nnecessary for other keywords.\n\nUsing the *region* style with the bond (angle, etc) keywords can give\nunpredictable results if there are bonds (angles, etc) that straddle\nperiodic boundaries. This is because the region may only extend up to\nthe boundary and partner atoms in the bond (angle, etc) may have\ncoordinates outside the simulation box if they are ghost atoms.\n", - "related": "[create_box ](https://docs.lammps.org/create_box.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[read_data ](https://docs.lammps.org/read_data.html)\n" + "parameters": "* Px,Py,Pz = # of processors in each dimension of 3d grid overlaying the simulation domain\n* zero or more keyword/arg pairs may be appended\n* keyword = grid or map or part or file \n *        grid arg = gstyle params ... \n         gstyle = onelevel or twolevel or numa or custom \n         onelevel params = none \n         twolevel params = Nc Cx Cy Cz \n         Nc = number of cores per node \n         Cx,Cy,Cz = # of cores in each dimension of 3d sub-grid assigned to each node \n         numa params = none \n         custom params = infile \n         infile = file containing grid layout \n *        *numa_nodes* arg = Nn \n         Nn = number of numa domains per node \n *        map arg = cart or cart/reorder or xyz or xzy or yxz or yzx or zxy or zyx \n         cart = use MPI_Cart() methods to map processors to 3d grid with reorder = 0 \n         cart/reorder = use MPI_Cart() methods to map processors to 3d grid with reorder = 1 \n         xyz,xzy,yxz,yzx,zxy,zyx = map processors to 3d grid in IJK ordering \n *        part args = Psend Precv cstyle \n         Psend = partition # (1 to Np) which will send its processor layout \n         Precv = partition # (1 to Np) which will recv the processor layout \n         cstyle = multiple \n         multiple = Psend grid will be multiple of Precv grid in each dimension \n *        file arg = outfile \n         outfile = name of file to write 3d grid of processors to \n", + "examples": "\n```lmps\nprocessors * * 5\nprocessors 2 4 4\nprocessors * * 8 map xyz\nprocessors * * * grid numa\nprocessors * * * grid twolevel 4 * * 1\nprocessors 4 8 16 grid custom myfile\nprocessors * * * part 1 2 multiple\n```\n", + "html_filename": "processors.html", + "short_description": "Specify how processors are mapped as a regular 3d grid to the global\nsimulation box", + "description": "Specify how processors are mapped as a regular 3d grid to the global\nsimulation box. The mapping involves 2 steps. First if there are P\nprocessors it means choosing a factorization P = Px by Py by Pz so\nthat there are Px processors in the x dimension, and similarly for the\ny and z dimensions. Second, the P processors are mapped to the\nregular 3d grid. The arguments to this command control each of these\n2 steps.\n\nThe Px, Py, Pz parameters affect the factorization. Any of the 3\nparameters can be specified with an asterisk \"\\*\", which means LAMMPS\nwill choose the number of processors in that dimension of the grid.\nIt will do this based on the size and shape of the global simulation\nbox so as to minimize the surface-to-volume ratio of each processor's\nsubdomain.\n\nChoosing explicit values for Px or Py or Pz can be used to override\nthe default manner in which LAMMPS will create the regular 3d grid of\nprocessors, if it is known to be sub-optimal for a particular problem.\nE.g. a problem where the extent of atoms will change dramatically in a\nparticular dimension over the course of the simulation.\n\nThe product of Px, Py, Pz must equal P, the total # of processors\nLAMMPS is running on. For a [2d simulation ](https://docs.lammps.org/dimension.html), Pz must\nequal 1.\n\nNote that if you run on a prime number of processors P, then a grid\nsuch as 1 x P x 1 will be required, which may incur extra\ncommunication costs due to the high surface area of each processor's\nsubdomain.\n\nAlso note that if multiple partitions are being used then P is the\nnumber of processors in this partition; see the [-partition command-line switch ](https://docs.lammps.org/Run_options.html) page for details. Also note\nthat you can prefix the processors command with the\n[partition ](https://docs.lammps.org/partition.html) command to easily specify different\nPx,Py,Pz values for different partitions.\n\nYou can use the [partition ](https://docs.lammps.org/partition.html) command to specify\ndifferent processor grids for different partitions, e.g.\n\n```lmps\npartition yes 1 processors 4 4 4\npartition yes 2 processors 2 3 2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command only affects the initial regular 3d grid created\n > when the simulation box is first specified via a\n > [create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) command. Or if the simulation box is\n > re-created via the [replicate ](https://docs.lammps.org/replicate.html) command. The same\n > regular grid is initially created, regardless of which\n > [comm_style ](https://docs.lammps.org/comm_style.html) command is in effect. \n > \n\nIf load-balancing is never invoked via the [balance ](https://docs.lammps.org/balance.html) or\n[fix balance ](https://docs.lammps.org/fix_balance.html) commands, then the initial regular grid\nwill persist for all simulations. If balancing is performed, some of\nthe methods invoked by those commands retain the logical topology of\nthe initial 3d grid, and the mapping of processors to the grid\nspecified by the processors command. However the grid spacings in\ndifferent dimensions may change, so that processors own subdomains of\ndifferent sizes. If the [comm_style tiled ](https://docs.lammps.org/comm_style.html) command is\nused, methods invoked by the balancing commands may discard the 3d\ngrid of processors and tile the simulation domain with subdomains of\ndifferent sizes and shapes which no longer have a logical 3d\nconnectivity. If that occurs, all the information specified by the\nprocessors command is ignored.\n\n----------\n\nThe *grid* keyword affects the factorization of P into Px,Py,Pz and it\ncan also affect how the P processor IDs are mapped to the 3d grid of\nprocessors.\n\nThe *onelevel* style creates a 3d grid that is compatible with the\nPx,Py,Pz settings, and which minimizes the surface-to-volume ratio of\neach processor's subdomain, as described above. The mapping of\nprocessors to the grid is determined by the *map* keyword setting.\n\nThe *twolevel* style can be used on machines with multicore nodes to\nminimize off-node communication. It ensures that contiguous\nsubsections of the 3d grid are assigned to all the cores of a node.\nFor example if *Nc* is 4, then 2x2x1 or 2x1x2 or 1x2x2 subsections of\nthe 3d grid will correspond to the cores of each node. This affects\nboth the factorization and mapping steps.\n\nThe *Cx*, *Cy*, *Cz* settings are similar to the *Px*, *Py*, *Pz*\nsettings, only their product should equal *Nc* . Any of the 3\nparameters can be specified with an asterisk \"\\*\", which means LAMMPS\nwill choose the number of cores in that dimension of the node's\nsub-grid. As with Px,Py,Pz, it will do this based on the size and\nshape of the global simulation box so as to minimize the\nsurface-to-volume ratio of each processor's subdomain.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the *twolevel* style to work correctly, it assumes the MPI\n > ranks of processors LAMMPS is running on are ordered by core and then\n > by node. E.g. if you are running on 2 quad-core nodes, for a total of\n > 8 processors, then it assumes processors 0,1,2,3 are on node 1, and\n > processors 4,5,6,7 are on node 2. This is the default rank ordering\n > for most MPI implementations, but some MPIs provide options for this\n > ordering, e.g. via environment variable settings. \n > \n\nThe *numa* style operates similar to the *twolevel* keyword except that\nit auto-detects which cores are running on which nodes. It will also\nsubdivide the cores into numa domains. Currently, the number of numa\ndomains is not auto-detected and must be specified using the\n*numa_nodes* keyword; otherwise, the default value is used. The *numa*\nstyle uses a different algorithm than the *twolevel* keyword for doing\nthe two-level factorization of the simulation box into a 3d processor\ngrid to minimize off-node communication and communication across numa\ndomains. It does its own MPI-based mapping of nodes and cores to the\nregular 3d grid. Thus it may produce a different layout of the\nprocessors than the *twolevel* options.\n\nThe *numa* style will give an error if the number of MPI processes is\nnot divisible by the number of cores used per node, or any of the Px\nor Py or Pz values is greater than 1.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the *twolevel* style, the *numa* style does not require\n > any particular ordering of MPI ranks in order to work correctly. This\n > is because it auto-detects which processes are running on which nodes.\n > However, it assumes that the lowest ranks are in the first numa\n > domain, and so forth. MPI rank orderings that do not preserve this\n > property might result in more intra-node communication between CPUs. \n > \n\nThe *custom* style uses the file *infile* to define both the 3d\nfactorization and the mapping of processors to the grid.\n\nThe file should have the following format. Any number of initial\nblank or comment lines (starting with a \"#\" character) can be present.\nThe first non-blank, non-comment line should have\n3 values:\n\n```\nPx Py Py\n```\nThese must be compatible with the total number of processors\nand the Px, Py, Pz settings of the processors command.\n\nThis line should be immediately followed by\nP = Px\\*Py\\*Pz lines of the form:\n\n```\nID I J K\n```\nwhere ID is a processor ID (from 0 to P-1) and I,J,K are the\nprocessors location in the 3d grid. I must be a number from 1 to Px\n(inclusive) and similarly for J and K. The P lines can be listed in\nany order, but no processor ID should appear more than once.\n\n----------\n\nThe *numa_nodes* keyword is used to specify the number of numa domains\nper node. It is currently only used by the *numa* style for two-level\nfactorization to reduce the amount of MPI communications between CPUs.\nA good setting for this will typically be equal to the number of CPU\nsockets per node.\n\n----------\n\nThe *map* keyword affects how the P processor IDs (from 0 to P-1) are\nmapped to the 3d grid of processors. It is only used by the\n*onelevel* and *twolevel* grid settings.\n\nThe *cart* style uses the family of MPI Cartesian functions to perform\nthe mapping, namely MPI_Cart_create(), MPI_Cart_get(),\nMPI_Cart_shift(), and MPI_Cart_rank(). It invokes the\nMPI_Cart_create() function with its reorder flag = 0, so that MPI is\nnot free to reorder the processors.\n\nThe *cart/reorder* style does the same thing as the *cart* style\nexcept it sets the reorder flag to 1, so that MPI can reorder\nprocessors if it desires.\n\nThe *xyz*, *xzy*, *yxz*, *yzx*, *zxy*, and *zyx* styles are all\nsimilar. If the style is IJK, then it maps the P processors to the\ngrid so that the processor ID in the I direction varies fastest, the\nprocessor ID in the J direction varies next fastest, and the processor\nID in the K direction varies slowest. For example, if you select\nstyle *xyz* and you have a 2x2x2 grid of 8 processors, the assignments\nof the 8 octants of the simulation domain will be:\n\n```\nproc 0 = lo x, lo y, lo z octant\nproc 1 = hi x, lo y, lo z octant\nproc 2 = lo x, hi y, lo z octant\nproc 3 = hi x, hi y, lo z octant\nproc 4 = lo x, lo y, hi z octant\nproc 5 = hi x, lo y, hi z octant\nproc 6 = lo x, hi y, hi z octant\nproc 7 = hi x, hi y, hi z octant\n```\nNote that, in principle, an MPI implementation on a particular machine\nshould be aware of both the machine's network topology and the\nspecific subset of processors and nodes that were assigned to your\nsimulation. Thus its MPI_Cart calls can optimize the assignment of\nMPI processes to the 3d grid to minimize communication costs. In\npractice, however, few if any MPI implementations actually do this.\nSo it is likely that the *cart* and *cart/reorder* styles simply give\nthe same result as one of the IJK styles.\n\nAlso note, that for the *twolevel* grid style, the *map* setting is\nused to first map the nodes to the 3d grid, then again to the cores\nwithin each node. For the latter step, the *cart* and *cart/reorder*\nstyles are not supported, so an *xyz* style is used in their place.\n\n----------\n\nThe *part* keyword affects the factorization of P into Px,Py,Pz.\n\nIt can be useful when running in multi-partition mode, e.g. with the\n[run_style verlet/split ](https://docs.lammps.org/run_style.html) command. It specifies a\ndependency between a sending partition *Psend* and a receiving\npartition *Precv* which is enforced when each is setting up their own\nmapping of their processors to the simulation box. Each of *Psend*\nand *Precv* must be integers from 1 to Np, where Np is the number of\npartitions you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\nA \"dependency\" means that the sending partition will create its\nregular 3d grid as Px by Py by Pz and after it has done this, it will\nsend the Px,Py,Pz values to the receiving partition. The receiving\npartition will wait to receive these values before creating its own\nregular 3d grid and will use the sender's Px,Py,Pz values as a\nconstraint. The nature of the constraint is determined by the\n*cstyle* argument.\n\nFor a *cstyle* of *multiple*, each dimension of the sender's processor\ngrid is required to be an integer multiple of the corresponding\ndimension in the receiver's processor grid. This is a requirement of\nthe [run_style verlet/split ](https://docs.lammps.org/run_style.html) command.\n\nFor example, assume the sending partition creates a 4x6x10 grid = 240\nprocessor grid. If the receiving partition is running on 80\nprocessors, it could create a 4x2x10 grid, but it will not create a\n2x4x10 grid, since in the y-dimension, 6 is not an integer multiple of\n4.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the [partition ](https://docs.lammps.org/partition.html) command to invoke\n > different \"processors\" commands on different partitions, and you also\n > use the *part* keyword, then you must ensure that both the sending and\n > receiving partitions invoke the \"processors\" command that connects the\n > 2 partitions via the *part* keyword. LAMMPS cannot easily check for\n > this, but your simulation will likely hang in its setup phase if this\n > error has been made. \n > \n\n----------\n\nThe *file* keyword writes the mapping of the factorization of P\nprocessors and their mapping to the 3d grid to the specified file\n*outfile* . This is useful to check that you assigned physical\nprocessors in the manner you desired, which can be tricky to figure\nout, especially when running on multiple partitions or on, a multicore\nmachine or when the processor ranks were reordered by use of the\n[-reorder command-line switch ](https://docs.lammps.org/Run_options.html) or due to use of\nMPI-specific launch options such as a config file.\n\nIf you have multiple partitions you should ensure that each one writes\nto a different file, e.g. using a [world-style variable ](https://docs.lammps.org/variable.html)\nfor the filename. The file has a self-explanatory header, followed by\none-line per processor in this format:\n\nworld-ID universe-ID original-ID: I J K: name\n\nThe IDs are the processor's rank in this simulation (the world), the\nuniverse (of multiple simulations), and the original MPI communicator\nused to instantiate LAMMPS, respectively. The world and universe IDs\nwill only be different if you are running on more than one partition;\nsee the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). The\nuniverse and original IDs will only be different if you used the\n[-reorder command-line switch ](https://docs.lammps.org/Run_options.html) to reorder the\nprocessors differently than their rank in the original communicator\nLAMMPS was instantiated with.\n\nI,J,K are the indices of the processor in the regular 3d grid, each\nfrom 1 to Nd, where Nd is the number of processors in that dimension\nof the grid.\n\nThe *name* is what is returned by a call to MPI_Get_processor_name()\nand should represent an identifier relevant to the physical processors\nin your machine. Note that depending on the MPI implementation,\nmultiple cores can have the same *name* .\n\n----------\n", + "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\nIt can be used before a restart file is read to change the 3d\nprocessor grid from what is specified in the restart file.\n\nThe *grid numa* keyword only currently works with the *map cart*\noption.\n\nThe *part* keyword (for the receiving partition) only works with the\n*grid onelevel* or *grid twolevel* options.\n", + "related": "[partition ](https://docs.lammps.org/partition.html), [-reorder command-line switch ](https://docs.lammps.org/Run_options.html)\n" }, { "command": [ - "compute erotate/rigid" + "compute msd/chunk" ], "syntax": [ - "compute ID group-ID erotate/rigid fix-ID" + "compute ID group-ID msd/chunk chunkID" ], "args": [ [ @@ -16829,76 +16195,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "erotate/rigid", + "arg": "msd/chunk", "type": 1, "choices": [] }, { - "arg": "fix-ID", + "arg": "chunkID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/rigid = style name of this compute command\n* fix-ID = ID of rigid body fix \n", - "examples": "\n```lmps\ncompute 1 all erotate/rigid myRigid\n```\n", - "html_filename": "compute_erotate_rigid.html", - "short_description": "Define a computation that calculates the rotational kinetic energy of\na collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants", - "description": "Define a computation that calculates the rotational kinetic energy of\na collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants.\n\nThe rotational energy of each rigid body is computed as\n\\(\\frac12 I \\omega_\\text{body}^2\\),\nwhere \\(I\\) is the inertia tensor for the rigid body and\n\\(\\omega_\\text{body}\\) is its angular velocity vector.\nBoth \\(I\\) and \\(\\omega_\\text{body}\\) are in the frame of\nreference of the rigid body (i.e., \\(I\\) is diagonal).\n\nThe *fix-ID* should be the ID of one of the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommands which defines the rigid bodies. The group specified in the\ncompute command is ignored. The rotational energy of all the rigid\nbodies defined by the fix rigid command in included in the calculation.\n\n #### Output info\n\nThis compute calculates a global scalar (the summed rotational energy\nof all the rigid bodies). This value can be used by any command that\nuses a global scalar value from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute ke/rigid ](https://docs.lammps.org/compute_ke_rigid.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 all msd/chunk molchunk\n```\n", + "html_filename": "compute_msd_chunk.html", + "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) for multiple chunks of atoms", + "description": "Define a computation that calculates the mean-squared displacement\n(MSD) for multiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFour quantities are calculated by this compute for each chunk. The\nfirst 3 quantities are the squared *dx*, *dy*, and *dz* displacements of the\ncenter-of-mass. The fourth component is the total squared displacement\n(i.e., \\(dx^2 + dy^2 + dz^2\\)) of the center-of-mass. These calculations\ninclude all effects due to atoms passing through periodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nThe slope of the mean-squared displacement (MSD) versus time is\nproportional to the diffusion coefficient of the diffusing chunks.\n\nThe displacement of the center-of-mass of the chunk is from its\noriginal center-of-mass position, calculated on the timestep this\ncompute command was first invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The number of chunks *Nchunk* calculated by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command must remain constant\n > each time this compute is invoked, so that the displacement for each chunk\n > from its original position can be computed consistently. If *Nchunk*\n > does not remain constant, an error will be generated. If needed, you\n > can enforce a constant *Nchunk* by using the *nchunk once* or *ids once*\n > options when specifying the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\n > command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This compute stores the original position (of the\n > center-of-mass) of each chunk. When a displacement is calculated on a\n > later timestep, it is assumed that the same atoms are assigned to the\n > same chunk ID. However LAMMPS has no simple way to ensure this is the\n > case, though you can use the *ids once* option when specifying the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. Note that if\n > this is not the case, the MSD calculation does not have a sensible\n > meaning. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The initial coordinates of the atoms in each chunk are stored in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-chunk\n > quantities will also have the same ID, and thus be initialized\n > correctly with chunk reference positions from the restart file. \n > \n\nThe simplest way to output the results of the compute msd/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all msd/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nThe number of columns = 4 for *dx*, *dy*, *dz*, and the total displacement.\nThese values can be accessed by any command that uses global array values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" }, { "command": [ - "dihedral_write" + "pair_style lj/cut", + "pair_style lj/cut/gpu", + "pair_style lj/cut/intel", + "pair_style lj/cut/kk", + "pair_style lj/cut/opt", + "pair_style lj/cut/omp" ], "syntax": [ - "dihedral_write dtype N file keyword" + "pair_style style args" ], "args": [ [ { - "arg": "dihedral_write", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "dtype", - "type": 2, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "file", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* dtype = dihedral type\n* N = # of values\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values \n", - "examples": "\n```lmps\ndihedral_write 1 500 table.txt Harmonic_1\ndihedral_write 3 1000 table.txt Harmonic_3\n```\n", - "html_filename": "dihedral_write.html", - "short_description": "\nWrite energy and force values to a file as a function of the dihedral\nangle for the currently defined dihedral potential", - "description": "\nWrite energy and force values to a file as a function of the dihedral\nangle for the currently defined dihedral potential. Force in this\ncontext means the force with respect to the dihedral angle, not the\nforce on individual atoms. This is useful for plotting the potential\nfunction or otherwise debugging its values. The resulting file can also\nbe used as input for use with [dihedral style table](https://docs.lammps.org/dihedral_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed for dihedrals ranging from 0\ndegrees to 360 degrees for 4 interacting atoms forming an dihedral type\ndtype, using the appropriate [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncoefficients. N evenly spaced dihedrals are used. Since 0 and 360\ndegrees are the same dihedral angle, the latter entry is skipped.\n\nFor example, for N = 6, values would be computed at\n\\(\\phi = 0, 60, 120, 180, 240, 300\\).\n\nThe file is written in the format used as input for the\n[dihedral_style table ](https://docs.lammps.org/dihedral_table.html) option with *keyword* as\nthe section name. Each line written to the file lists an index number\n(1-N), an dihedral angle (in degrees), an energy (in energy units), and\na force (in force units per radians^2). In case a new file is created,\nthe first line will be a comment with a \"DATE:\" and \"UNITS:\" tag with\nthe current date and [units ](https://docs.lammps.org/units.html) settings. For subsequent\ninvocations of the *dihedral_write* command for the same file, data will\nbe appended and the current units settings will be compared to the data\nfrom the header, if present. The *dihedral_write* will refuse to add a\ntable to an existing file if the units are not the same.\n", - "restrictions": "All force field coefficients for dihedrals and other kinds of interactions\nmust be set before this command can be invoked.\n\nThe table of the dihedral energy and force data data is created by using a\nseparate, internally created, new LAMMPS instance with a dummy system of\n4 atoms for which the dihedral potential energy is computed after\ntransferring the dihedral style and coefficients and arranging the 4 atoms\ninto the corresponding geometries. The dihedral force is then determined\nfrom the potential energies through numerical differentiation. As a\nconsequence of this approach, not all dihedral styles are compatible. The\nfollowing conditions must be met:\n\n- The dihedral style must be able to write its coefficients to a data file.\n This condition excludes for example [dihedral style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) and\n [dihedral style table ](https://docs.lammps.org/dihedral_table.html).\n- The potential function must not have any terms that depend on geometry\n properties other than the dihedral. This condition excludes for\n example [dihedral style class2 ](https://docs.lammps.org/dihedral_class2.html). Please note\n that the *write_dihedral* command has no way of checking for this\n condition. It will check the style name against an internal list of\n known to be incompatible styles. The resulting tables may be bogus\n for unlisted dihedral styles if the requirement is not met. It is\n thus recommended to make careful tests for any created tables.\n", - "related": "[dihedral_style table ](https://docs.lammps.org/dihedral_table.html), [bond_write ](https://docs.lammps.org/bond_write.html),\n[angle_write ](https://docs.lammps.org/angle_write.html), [dihedral_style ](https://docs.lammps.org/dihedral_style.html),\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* style = lj/cut\n* args = list of arguments for a particular style \n *      lj/cut args = cutoff \n       cutoff = global cutoff for Lennard Jones interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/cut 2.5\npair_coeff * * 1 1\npair_coeff 1 1 1 1.1 2.8\n```\n", + "html_filename": "pair_lj.html", + "short_description": "The *lj/cut* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "The *lj/cut* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nSee the [lj/cut/coul ](https://docs.lammps.org/pair_lj_cut_coul.html) styles to add a Coulombic\npairwise interaction and the [lj/cut/tip4p ](https://docs.lammps.org/pair_lj_cut_tip4p.html) styles to\nadd the TIP4P water model.\n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the\nzero-crossing distance for the potential, *not* as the energy minimum at\n\\(r_0 = 2^{\\frac{1}{6}} \\sigma\\). The _same_ potential function becomes:\n\\[\n E = \\epsilon \\left[ \\left(\\frac{r_0}{r}\\right)^{12} -\n 2 \\left(\\frac{r_0}{r}\\right)^6 \\right] \\qquad r < r_c\\]\nWhen using the minimum as reference width. In the literature both\nformulations are used, but the describe the same potential, only the\n\\(\\sigma\\) value must be computed by \\(\\sigma = r_0 /\n2^{\\frac{1}{6}}\\) for use with LAMMPS, if this latter formulation is\nused.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable\nfor use in free energy calculations, is part of the FEP package and\nis documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\nstyles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric*. See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut* pair styles support the use of the *inner*, *middle*, and\n*outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command,\nmeaning the pairwise forces can be partitioned by distance at different\nlevels of the rRESPA hierarchy. The other styles only support the\n*pair* keyword of run_style respa. See the [run_style ](https://docs.lammps.org/run_style.html)\ncommand for details.\n\n----------\n", + "restrictions": "", + "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut/coul/cut ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/debye ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/dsf ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/coul/wolf ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/cut/tip4p/cut ](https://docs.lammps.org/pair_lj_cut_tip4p.html)\n* [pair_style lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html)\n" }, { "command": [ - "fix orient/fcc" + "fix ave/correlate/long" ], "syntax": [ - "fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1", - "fix ID group-ID orient/bcc nstats dir alat dE cutlo cuthi file0 file1" + "fix ID group-ID ave/correlate/long Nevery Nfreq value1 value2 ... keyword args ..." ], "args": [ [ @@ -16918,231 +16278,303 @@ export const command_docs = [ "choices": [] }, { - "arg": "orient/fcc", + "arg": "ave/correlate/long", "type": 1, "choices": [] }, { - "arg": "nstats", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "dir", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "alat", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "dE", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "cutlo", - "type": 2, - "choices": [] + "arg": "ncount", + "type": 3, + "choices": [ + "type", + "start", + "file", + "overwrite", + "title1", + "title2", + "ncorr", + "nlen", + "ncount" + ] }, { - "arg": "cuthi", + "arg": "args", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/correlate/long = style name of this fix command\n* Nevery = use input values every this many time steps\n* Nfreq = save state of the time correlation functions every this many time steps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name, v_name[I] \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = type or start or file or overwrite or title1 or title2 or ncorr or nlen or ncount \n *        type arg = auto or upper or lower or auto/upper or auto/lower or full \n         auto = correlate each value with itself \n         upper = correlate each value with each succeeding value \n         lower = correlate each value with each preceding value \n         auto/upper = auto + upper \n         auto/lower = auto + lower \n         full = correlate each value with every other value, including itself = auto + upper + lower \n *        start args = Nstart \n         Nstart = start accumulating correlations on this time step \n *        file arg = filename \n         filename = name of file to output correlation data to \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        ncorr arg = Ncorrelators \n         Ncorrelators = number of correlators to store \n *        nlen args = Nlen \n         Nlen = length of each correlator \n *        ncount args = Ncount \n         Ncount = number of values over which successive correlators are averaged \n", + "examples": "\n```lmps\nfix 1 all ave/correlate/long 5 1000 c_myTemp file temp.correlate\nfix 1 all ave/correlate/long 1 10000 &\nc_thermo_press[1] c_thermo_press[2] c_thermo_press[3] &\ntype upper title1 \"My correlation data\" nlen 15 ncount 3\nfix 1 all ave/correlate/long 1 10000 c_thermo_press[*]\n```\n", + "html_filename": "fix_ave_correlate_long.html", + "short_description": "This fix is similar in spirit and syntax to the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html)", + "description": "This fix is similar in spirit and syntax to the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html).\nHowever, this fix allows the efficient calculation of time correlation\nfunctions on-the-fly over extremely long time windows with little\nadditional CPU overhead, using a multiple-\\(\\tau\\) method\n**Ramirez** that decreases the resolution of the stored\ncorrelation function with time. It is not a full drop-in replacement.\n\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a compute or fix or the\nevaluation of an equal-style or vector-style variable. For\nvector-style variables, the specified indices can include a wildcard\ncharacter. See the [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) page\nfor details.\n\nThe *Nevery* and *Nfreq* arguments specify on what time steps the input\nvalues will be used to calculate correlation data and the frequency\nwith which the time correlation functions will be output to a file,\nrespectively.\nNote that there is no *Nrepeat* argument, unlike the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command.\n\nThe optional keywords *ncorr*, *nlen*, and *ncount* are unique to this\ncommand and determine the number of correlation points calculated and\nthe memory and CPU overhead used by this calculation. *Nlen* and\n*ncount* determine the amount of averaging done at longer correlation\ntimes. The default values *nlen* = 16 and *ncount* = 2 ensure that the\nsystematic error of the multiple-\\(\\tau\\) correlator is always below the\nlevel of the statistical error of a typical simulation (which depends\non the ensemble size and the simulation length).\n\nThe maximum correlation time (in time steps) that can be reached is\ngiven by the formula \\((nlen-1) ncount^{(ncorr-1)}\\). Longer correlation\ntimes are discarded and not calculated. With the default values of\nthe parameters (\\(ncorr=20\\), \\(nlen=16\\) and \\(ncount=2\\)),\nthis corresponds to 7864320 time steps. If longer correlation times are\nneeded, the value of ncorr should be increased. Using \\(nlen=16\\) and\n\\(ncount=2\\), with \\(ncorr=30\\), the maximum number of steps that can\nbe correlated is 80530636808. If \\(ncorr=40\\), correlation times in excess\nof \\(8\\times 10^{12}\\) time steps can be calculated.\n\nThe total memory needed for each correlation pair is roughly\n\\(4 \\times ncorr\\times nlen \\times 8\\) bytes.\nWith the default values of the parameters, this corresponds to about 10 KB.\n\nFor the meaning of the additional optional keywords, see the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) doc page.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nContrary to [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) this fix\ndoes **not** provide access to its internal data to various output\noptions. Since this fix in intended for the calculation of time\ncorrelation functions over very long MD simulations, the information\nabout this fix is written automatically to binary restart files, so\nthat the time correlation calculation can continue in subsequent\nsimulations. None of the fix_modify options are relevant to this fix.\n\nNo parameter of this fix can be used with the start/stop keywords of\nthe run command. This fix is not invoked during energy minimization.\n\n**(Ramirez)** J. Ramirez, S.K. Sukumaran, B. Vorselaars and\nA.E. Likhtman, J. Chem. Phys. 133, 154103 (2010). \n ", + "restrictions": "This compute is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html)\n" +}, +{ + "command": [ + "pair_style lj/cut/dipole/cut", + "pair_style lj/cut/dipole/cut/gpu", + "pair_style lj/cut/dipole/cut/kk", + "pair_style lj/cut/dipole/cut/omp", + "pair_style lj/sf/dipole/sf", + "pair_style lj/sf/dipole/sf/gpu", + "pair_style lj/sf/dipole/sf/omp", + "pair_style lj/cut/dipole/long", + "pair_style lj/cut/dipole/long/gpu", + "pair_style lj/long/dipole/long" + ], + "syntax": [ + "pair_style lj/cut/dipole/cut cutoff (cutoff2)", + "pair_style lj/sf/dipole/sf cutoff (cutoff2)", + "pair_style lj/cut/dipole/long cutoff (cutoff2)", + "pair_style lj/long/dipole/long flag_lj flag_coul cutoff (cutoff2)" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "file0", + "arg": "lj/cut/dipole/cut", + "type": 3, + "choices": [ + "lj/cut/dipole/cut", + "lj/cut/dipole/cut/gpu", + "lj/cut/dipole/cut/kk", + "lj/cut/dipole/cut/omp" + ] + }, + { + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "file1", + "arg": "(cutoff2)", "type": 2, "choices": [] } ], [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "lj/sf/dipole/sf", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "orient/bcc", + "arg": "(cutoff2)", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "nstats", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "dir", + "arg": "lj/cut/dipole/long", "type": 2, "choices": [] }, { - "arg": "alat", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "dE", + "arg": "(cutoff2)", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "cutlo", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "cuthi", + "arg": "lj/long/dipole/long", "type": 2, "choices": [] }, { - "arg": "file0", + "arg": "off", + "type": 3, + "choices": [ + "long", + "cut", + "off" + ] + }, + { + "arg": "off", + "type": 3, + "choices": [ + "long", + "off" + ] + }, + { + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "file1", + "arg": "(cutoff2)", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nstats = print stats every this many steps, 0 = never\n* dir = 0/1 for which crystal is used as reference\n* alat = fcc/bcc cubic lattice constant (distance units)\n* dE = energy added to each atom (energy units)\n* cutlo,cuthi = values between 0.0 and 1.0, cutlo < cuthi\n* file0,file1 = files that specify orientation of each grain \n", - "examples": "\n```lmps\nfix gb all orient/fcc 0 1 4.032008 0.001 0.25 0.75 xi.vec chi.vec\nfix gb all orient/bcc 0 1 2.882 0.001 0.25 0.75 ngb.left ngb.right\n```\n", - "html_filename": "fix_orient.html", - "short_description": "The fix applies an orientation-dependent force to atoms near a planar\ngrain boundary which can be used to induce grain boundary migration\n(in the direction perpendicular to the grain boundary plane)", - "description": "The fix applies an orientation-dependent force to atoms near a planar\ngrain boundary which can be used to induce grain boundary migration\n(in the direction perpendicular to the grain boundary plane). The\nmotivation and explanation of this force and its application are\ndescribed in **Janssens**. The adaptation to bcc crystals\nis described in **Wicaksono1**. The computed force is only\napplied to atoms in the fix group.\n\nThe basic idea is that atoms in one grain (on one side of the\nboundary) have a potential energy dE added to them. Atoms in the\nother grain have 0.0 potential energy added. Atoms near the boundary\n(whose neighbor environment is intermediate between the two grain\norientations) have an energy between 0.0 and dE added. This creates\nan effective driving force to reduce the potential energy of atoms\nnear the boundary by pushing them towards one of the grain\norientations. For dir = 1 and dE > 0, the boundary will thus move so\nthat the grain described by file0 grows and the grain described by\nfile1 shrinks. Thus this fix is designed for simulations of two-grain\nsystems, either with one grain boundary and free surfaces parallel to\nthe boundary, or a system with periodic boundary conditions and two\nequal and opposite grain boundaries. In either case, the entire\nsystem can displace during the simulation, and such motion should be\naccounted for in measuring the grain boundary velocity.\n\nThe potential energy added to atom I is given by these formulas\n\\[\\begin{align*} \n \\xi_{i} = & \\sum_{j=1}^{12} \\left| \\mathbf{r}_{j} - \\mathbf{r}_{j}^{\\rm I} \\right| \\qquad\\qquad\\left(1\\right) \\\\\n \\\\\n \\xi_{\\rm IJ} = & \\sum_{j=1}^{12} \\left| \\mathbf{r}_{j}^{\\rm J} - \\mathbf{r}_{j}^{\\rm I} \\right| \\qquad\\qquad\\left(2\\right)\\\\\n \\\\\n \\xi_{\\rm low} = & {\\rm cutlo} \\, \\xi_{\\rm IJ} \\qquad\\qquad\\qquad\\left(3\\right)\\\\\n \\xi_{\\rm high} = & {\\rm cuthi} \\, \\xi_{\\rm IJ} \\qquad\\qquad\\qquad\\left(4\\right) \\\\\n \\\\\n \\omega_{i} = & \\frac{\\pi}{2} \\frac{\\xi_{i} - \\xi_{\\rm low}}{\\xi_{\\rm high} - \\xi_{\\rm low}} \\qquad\\qquad\\left(5\\right)\\\\\n \\\\\n u_{i} = & 0 \\quad\\quad\\qquad\\qquad\\qquad \\textrm{ for } \\qquad \\xi_{i} < \\xi_{\\rm low}\\\\\n = & {\\rm dE}\\,\\frac{1 - \\cos(2 \\omega_{i})}{2}\n \\qquad \\mathrm{ for }\\qquad \\xi_{\\rm low} < \\xi_{i} < \\xi_{\\rm high} \\quad \\left(6\\right) \\\\\n = & {\\rm dE} \\quad\\qquad\\qquad\\qquad\\textrm{ for } \\qquad \\xi_{\\rm high} < \\xi_{i} \\end{align*} \\]\nwhich are fully explained in **Janssens**. For fcc crystals\nthis order parameter Xi for atom I in equation (1) is a sum over the\n12 nearest neighbors of atom I. For bcc crystals it is the\ncorresponding sum of the 8 nearest neighbors. Rj is the vector from\natom I to its neighbor J, and RIj is a vector in the reference\n(perfect) crystal. That is, if dir = 0/1, then RIj is a vector to an\natom coord from file 0/1. Equation (2) gives the expected value of\nthe order parameter XiIJ in the other grain. Hi and lo cutoffs are\ndefined in equations (3) and (4), using the input parameters *cutlo*\nand *cuthi* as thresholds to avoid adding grain boundary energy when\nthe deviation in the order parameter from 0 or 1 is small (e.g. due to\nthermal fluctuations in a perfect crystal). The added potential\nenergy Ui for atom I is given in equation (6) where it is interpolated\nbetween 0 and dE using the two threshold Xi values and the Wi value of\nequation (5).\n\nThe derivative of this energy expression gives the force on each atom\nwhich thus depends on the orientation of its neighbors relative to the\n2 grain orientations. Only atoms near the grain boundary feel a net\nforce which tends to drive them to one of the two grain orientations.\n\nIn equation (1), the reference vector used for each neighbor is the\nreference vector closest to the actual neighbor position. This means\nit is possible two different neighbors will use the same reference\nvector. In such cases, the atom in question is far from a perfect\norientation and will likely receive the full dE addition, so the\neffect of duplicate reference vector usage is small.\n\nThe *dir* parameter determines which grain wants to grow at the\nexpense of the other. A value of 0 means the first grain will shrink;\na value of 1 means it will grow. This assumes that *dE* is positive.\nThe reverse will be true if *dE* is negative.\n\nThe *alat* parameter is the cubic lattice constant for the fcc or bcc\nmaterial and is only used to compute a cutoff distance of 1.57 \\* alat\n/ sqrt(2) for finding the 12 or 8 nearest neighbors of each atom\n(which should be valid for an fcc or bcc crystal). A longer/shorter\ncutoff can be imposed by adjusting *alat* . If a particular atom has\nless than 12 or 8 neighbors within the cutoff, the order parameter of\nequation (1) is effectively multiplied by 12 or 8 divided by the\nactual number of neighbors within the cutoff.\n\nThe *dE* parameter is the maximum amount of additional energy added to\neach atom in the grain which wants to shrink.\n\nThe *cutlo* and *cuthi* parameters are used to reduce the force added\nto bulk atoms in each grain far away from the boundary. An atom in\nthe bulk surrounded by neighbors at the ideal grain orientation would\ncompute an order parameter of 0 or 1 and have no force added.\nHowever, thermal vibrations in the solid will cause the order\nparameters to be greater than 0 or less than 1. The cutoff parameters\nmask this effect, allowing forces to only be added to atoms with\norder-parameters between the cutoff values.\n\n*File0* and *file1* are filenames for the two grains which each\ncontain 6 vectors (6 lines with 3 values per line) which specify the\ngrain orientations. Each vector is a displacement from a central atom\n(0,0,0) to a nearest neighbor atom in an fcc lattice at the proper\norientation. The vector lengths should all be identical since an fcc\nlattice has a coordination number of 12. Only 6 are listed due to\nsymmetry, so the list must include one from each pair of\nequal-and-opposite neighbors. A pair of orientation files for a\nSigma=5 tilt boundary are shown below. A tutorial that can help for\nwriting the orientation files is given in **Wicaksono2**\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of atom interactions with the\ngrain boundary driving force to the global potential energy of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault setting for this fix is [fix_modify energy no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthese fixes. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator a fix is adding its forces. Default is the\noutermost level.\n\nThis fix calculates a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy change due to this fix. The scalar value calculated by this\nfix is \"extensive\".\n\nThis fix also calculates a per-atom array which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The array stores the\norder parameter Xi and normalized order parameter (0 to 1) for each\natom. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Janssens)** Janssens, Olmsted, Holm, Foiles, Plimpton, Derlet, Nature\nMaterials, 5, 124-127 (2006). \n \n**(Wicaksono1)** Wicaksono, Sinclair, Militzer, Computational Materials\nScience, 117, 397-405 (2016). \n \n**(Wicaksono2)** Wicaksono, figshare,\nhttps://doi.org/10.6084/m9.figshare.1488628.v1 (2015). \n ", - "restrictions": "These fixes are part of the ORIENT package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes should only be used with fcc or bcc lattices.\n", - "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* cutoff = global cutoff LJ (and Coulombic if only 1 arg) (distance units)\n* cutoff2 = global cutoff for Coulombic and dipole (optional) (distance units)\n* flag_lj = long or cut or off \n *        long = use long-range damping on dispersion 1/r\\^6 term \n *        cut = use a cutoff on dispersion 1/r\\^6 term \n *        off = omit disperion 1/r\\^6 term entirely \n* flag_coul = long or off \n *        long = use long-range damping on Coulombic 1/r and point-dipole terms \n *        off = omit Coulombic and point-dipole terms entirely \n", + "examples": "\n```lmps\npair_style lj/cut/dipole/cut 2.5 5.0\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 2.5 4.0\n\npair_style lj/sf/dipole/sf 9.0\npair_coeff * * 1.0 1.0\npair_coeff 2 3 1.0 1.0 2.5 4.0 scale 0.5\npair_coeff 2 3 0.8 1.0 2.5 4.0\n\npair_style lj/cut/dipole/long 2.5 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 3.0\n\npair_style lj/long/dipole/long long long 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0\n\npair_style lj/long/dipole/long cut long 2.5 3.5\npair_coeff * * 1.0 1.0\npair_coeff 2 3 0.8 1.0 3.0\n```\n", + "html_filename": "pair_dipole.html", + "short_description": "Style *lj/cut/dipole/cut* computes interactions between pairs of\nparticles that each have a charge and/or a point dipole moment", + "description": "Style *lj/cut/dipole/cut* computes interactions between pairs of\nparticles that each have a charge and/or a point dipole moment. In\naddition to the usual Lennard-Jones interaction between the particles\n(Elj) the charge-charge (Eqq), charge-dipole (Eqp), and dipole-dipole\n(Epp) interactions are computed by these formulas for the energy (E),\nforce (F), and torque (T) between particles I and J.\n\\[\\begin{align*} \n E_{LJ} = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E_{qq} = & \\frac{q_i q_j}{r} \\\\\n E_{qp} = & \\frac{q}{r^3} (p \\bullet \\vec{r}) \\\\\n E_{pp} = & \\frac{1}{r^3} (\\vec{p}_i \\bullet \\vec{p}_j) -\n \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{r}) (\\vec{p}_j \\bullet \\vec{r}) \\\\\n & \\\\\n F_{qq} = & \\frac{q_i q_j}{r^3} \\vec{r} \\\\\n F_{qp} = & -\\frac{q}{r^3} \\vec{p} + \\frac{3q}{r^5}\n (\\vec{p} \\bullet \\vec{r}) \\vec{r} \\\\\n F_{pp} = & \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{p}_j) \\vec{r} -\n \\frac{15}{r^7} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\bullet \\vec{r}) \\vec{r} +\n \\frac{3}{r^5} \\left[ (\\vec{p}_j \\bullet \\vec{r}) \\vec{p}_i +\n (\\vec{p}_i \\bullet \\vec{r}) \\vec{p}_j \\right] \\\\\n & \\\\\n T_{pq} = T_{ij} = & \\frac{q_j}{r^3} (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{qp} = T_{ji} = & - \\frac{q_i}{r^3} (\\vec{p}_j \\times \\vec{r}) \\\\\n T_{pp} = T_{ij} = & -\\frac{1}{r^3} (\\vec{p}_i \\times \\vec{p}_j) +\n \\frac{3}{r^5} (\\vec{p}_j \\bullet \\vec{r})\n (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{pp} = T_{ji} = & -\\frac{1}{r^3} (\\vec{p}_j \\times \\vec{p}_i) +\n \\frac{3}{r^5} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\times \\vec{r}) \\end{align*} \\]\nwhere \\(q_i\\) and \\(q_j\\) are the charges on the two\nparticles, \\(\\vec{p}_i\\) and \\(\\vec{p}_j\\) are the dipole\nmoment vectors of the two particles, r is their separation distance,\nand the vector r = Ri - Rj is the separation vector between the two\nparticles. Note that Eqq and Fqq are simply Coulombic energy and\nforce, Fij = -Fji as symmetric forces, and Tij != -Tji since the\ntorques do not act symmetrically. These formulas are discussed in\n**Allen2** and in **Toukmaji2**.\n\nAlso note, that in the code, all of these terms (except Elj) have a\n\\(C/\\epsilon\\) prefactor, the same as the Coulombic term in the\nLJ + Coulombic pair styles discussed [here ](https://docs.lammps.org/pair_lj.html). C is an\nenergy-conversion constant and epsilon is the dielectric constant\nwhich can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command. The\nsame is true of the equations that follow for other dipole pair\nstyles.\n\nStyle *lj/sf/dipole/sf* computes \"shifted-force\" interactions between\npairs of particles that each have a charge and/or a point dipole\nmoment. In general, a shifted-force potential is a (slightly) modified\npotential containing extra terms that make both the energy and its\nderivative go to zero at the cutoff distance; this removes\n(cutoff-related) problems in energy conservation and any numerical\ninstability in the equations of motion **Allen2**. Shifted-force interactions for the Lennard-Jones (E_LJ),\ncharge-charge (Eqq), charge-dipole (Eqp), dipole-charge (Epq) and\ndipole-dipole (Epp) potentials are computed by these formulas for the\nenergy (E), force (F), and torque (T) between particles I and J:\n\\[\\begin{align*} \n E_{LJ} = & 4\\epsilon \\left\\{ \\left[ \\left( \\frac{\\sigma}{r} \\right)^{\\!12} -\n \\left( \\frac{\\sigma}{r} \\right)^{\\!6} \\right] +\n \\left[ 6\\left( \\frac{\\sigma}{r_c} \\right)^{\\!12} -\n 3\\left(\\frac{\\sigma}{r_c}\\right)^{\\!6}\\right]\\left(\\frac{r}{r_c}\\right)^{\\!2}\n - 7\\left( \\frac{\\sigma}{r_c} \\right)^{\\!12} +\n 4\\left( \\frac{\\sigma}{r_c} \\right)^{\\!6}\\right\\} \\\\\n E_{qq} = & \\frac{q_i q_j}{r}\\left(1-\\frac{r}{r_c}\\right)^{\\!2} \\\\\n E_{pq} = & E_{ji} = -\\frac{q}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}\\bullet\\vec{r}) \\\\\n E_{qp} = & E_{ij} = \\frac{q}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}\\bullet\\vec{r}) \\\\\n E_{pp} = & \\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\\left[\\frac{1}{r^3}\n (\\vec{p}_i \\bullet \\vec{p}_j) - \\frac{3}{r^5}\n (\\vec{p}_i \\bullet \\vec{r}) (\\vec{p}_j \\bullet \\vec{r})\\right] \\\\\n & \\\\\n\n F_{LJ} = & \\left\\{\\left[48\\epsilon \\left(\\frac{\\sigma}{r}\\right)^{\\!12} -\n 24\\epsilon \\left(\\frac{\\sigma}{r}\\right)^{\\!6} \\right]\\frac{1}{r^2} -\n \\left[48\\epsilon \\left(\\frac{\\sigma}{r_c}\\right)^{\\!12} - 24\\epsilon\n \\left(\\frac{\\sigma}{r_c}\\right)^{\\!6} \\right]\\frac{1}{r_c^2}\\right\\}\\vec{r}\\\\\n F_{qq} = & \\frac{q_i q_j}{r}\\left(\\frac{1}{r^2} -\n \\frac{1}{r_c^2}\\right)\\vec{r} \\\\\n F_{pq} = & F_{ij } = -\\frac{3q}{r^5} \\left[ 1 -\n \\left(\\frac{r}{r_c}\\right)^{\\!2}\\right](\\vec{p}\\bullet\\vec{r})\\vec{r} +\n \\frac{q}{r^3}\\left[1-3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] \\vec{p} \\\\\n F_{qp} = & F_{ij} = \\frac{3q}{r^5} \\left[ 1 -\n \\left(\\frac{r}{r_c}\\right)^{\\!2}\\right] (\\vec{p}\\bullet\\vec{r})\\vec{r} -\n \\frac{q}{r^3}\\left[1-3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] \\vec{p} \\\\\n F_{pp} = &\\frac{3}{r^5}\\Bigg\\{\\left[1-\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\n \\left[(\\vec{p}_i\\bullet\\vec{p}_j) - \\frac{3}{r^2} (\\vec{p}_i\\bullet\\vec{r})\n (\\vec{p}_j \\bullet \\vec{r})\\right] \\vec{r} + \\\\\n & \\left[1 -\n 4\\left(\\frac{r}{r_c}\\right)^{\\!3}+3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right]\n \\left[ (\\vec{p}_j \\bullet \\vec{r}) \\vec{p}_i + (\\vec{p}_i \\bullet \\vec{r})\n \\vec{p}_j -\\frac{2}{r^2} (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\bullet \\vec{r})\\vec{r}\\right] \\Bigg\\} \\end{align*} \\]\n\\[\\begin{align*} \n T_{pq} = T_{ij} = & \\frac{q_j}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3}\\right] (\\vec{p}_i\\times\\vec{r}) \\\\\n T_{qp} = T_{ji} = & - \\frac{q_i}{r^3} \\left[ 1 -\n 3\\left(\\frac{r}{r_c}\\right)^{\\!2} +\n 2\\left(\\frac{r}{r_c}\\right)^{\\!3} \\right] (\\vec{p}_j\\times\\vec{r}) \\\\\n T_{pp} = T_{ij} = & -\\frac{1}{r^3}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n e3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_i \\times \\vec{p}_j) + \\\\\n & \\frac{3}{r^5}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_j\\bullet\\vec{r})\n (\\vec{p}_i \\times \\vec{r}) \\\\\n T_{pp} = T_{ji} = & -\\frac{1}{r^3}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right](\\vec{p}_j \\times \\vec{p}_i) + \\\\\n & \\frac{3}{r^5}\\left[1-4\\left(\\frac{r}{r_c}\\right)^{\\!3} +\n 3\\left(\\frac{r}{r_c}\\right)^{\\!4}\\right] (\\vec{p}_i \\bullet \\vec{r})\n (\\vec{p}_j \\times \\vec{r}) \\end{align*} \\]\nwhere \\(\\epsilon\\) and \\(\\sigma\\) are the standard LJ\nparameters, \\(r_c\\) is the cutoff, \\(q_i\\) and \\(q_j\\) are\nthe charges on the two particles, \\(\\vec{p}_i\\) and\n\\(\\vec{p}_j\\) are the dipole moment vectors of the two particles,\nr is their separation distance, and the vector r = Ri - Rj is the\nseparation vector between the two particles. Note that Eqq and Fqq\nare simply Coulombic energy and force, Fij = -Fji as symmetric forces,\nand Tij != -Tji since the torques do not act symmetrically. The\nshifted-force formula for the Lennard-Jones potential is reported in\n**Stoddard**. The original (non-shifted) formulas for\nthe electrostatic potentials, forces and torques can be found in\n**Price2**. The shifted-force electrostatic potentials\nhave been obtained by applying equation 5.13 of **Allen2**. The formulas for the corresponding forces and torques have\nbeen obtained by applying the 'chain rule' as in appendix C.3 of\n**Allen2**.\n\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic (q,p) terms. If two cutoffs are specified,\nthey are used as cutoffs for the LJ and Coulombic (q,p) terms\nrespectively. This pair style also supports an optional *scale*\nkeyword as part of a pair_coeff statement, where the interactions can\nbe scaled according to this factor. This scale factor is also made\navailable for use with fix adapt.\n\nStyle *lj/cut/dipole/long* computes the short-range portion of\npoint-dipole interactions as discussed in **Toukmaji2**. Dipole-dipole, dipole-charge, and charge-charge\ninteractions are all supported, along with the standard 12/6\nLennard-Jones interactions, which are computed with a cutoff. A\n[kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined to use this pair\nstyle. If only dipoles (not point charges) are included in the model,\nthe kspace style can be one of these 3 options, all of which compute\nthe long-range portion of dipole-dipole interactions. If the model\nincludes point charges (in addition to dipoles), then only the first\nof these kspace styles can be used:\n\n* [kspace_style ewald/disp ](https://docs.lammps.org/kspace_style.html)\n* [kspace_style ewald/dipole ](https://docs.lammps.org/kspace_style.html)\n* [kspace_style pppm/dipole ](https://docs.lammps.org/kspace_style.html)\n\nStyle *lj/long/dipole/long* has the same functionality as style\n*lj/cut/dipole/long*, except it also has an option to compute 12/6\nLennard-Jones interactions for use with a long-range dispersion kspace\nstyle. This is done by setting its *flag_lj* argument to *long*. For\nlong-range LJ interactions, the [kspace_style ewald/disp](https://docs.lammps.org/kspace_style.html) command must be used.\n\n----------\n\nThe following coefficients must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by\nmixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global LJ\nand Coulombic cutoffs specified in the pair_style command are used. If\nonly one cutoff is specified, it is used as the cutoff for both LJ and\nCoulombic interactions for this type pair. If both coefficients are\nspecified, they are used as the LJ and Coulombic cutoffs for this type\npair. When using a long-rang Coulomb solver, only a global Coulomb\ncutoff may be used and only the LJ cutoff may be changed with the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. When using the\n*lj/long/dipole/long* pair style with *long* *long* setting, only a\nsingle global cutoff may be provided and no cutoff for the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\n----------\n\nNote that for systems using these pair styles, typically particles\nshould be able to exert torque on each other via their dipole moments\nso that the particle and its dipole moment can rotate. This requires\nthey not be point particles, but finite-size spheres. Thus you should\nuse a command like [atom_style hybrid sphere dipole ](https://docs.lammps.org/atom_style.html)\nto use particles with both attributes.\n\nThe magnitude and orientation of the dipole moment for each particle\ncan be defined by the [set ](https://docs.lammps.org/set.html) command or in the \"Atoms\"\nsection of the data file read in by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nRotating finite-size particles have 6 degrees of freedom (DOFs),\ntranslation and rotational. You can use the [compute temp/sphere](https://docs.lammps.org/compute_temp_sphere.html) command to monitor a temperature which includes\nall these DOFs.\n\nFinite-size particles with dipole moments should be integrated using\none of these options:\n\n* [fix nve/sphere update dipole ](https://docs.lammps.org/fix_nve_sphere.html)\n* [fix nve/sphere update dipole ](https://docs.lammps.org/fix_nve_sphere.html) plus [fix langevin omega yes ](https://docs.lammps.org/fix_langevin.html)\n* [fix nvt/sphere update dipole ](https://docs.lammps.org/fix_nvt_sphere.html)\n* [fix npt/sphere update dipole ](https://docs.lammps.org/fix_npt_sphere.html)\n\nIn all cases the \"update dipole\" setting ensures the dipole moments\nare also rotated when the finite-size spheres rotate. The 2nd and 3rd\nbullets perform thermostatting; in the case of a Langevin thermostat\nthe \"omega yes\" option also thermostats the rotational degrees of\nfreedom (if desired). The 4th bullet performs thermostatting and\nbarostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distances for this pair style can be mixed. The default\nmix value is *geometric* . See the \"pair_modify\" command for details.\n\nFor atom type pairs I,J and I != J, the A, sigma, d1, and d2\ncoefficients and cutoff distance for this pair style can be mixed. A\nis an energy value mixed like a LJ epsilon. D1 and d2 are distance\nvalues and are mixed like sigma. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Lennard-Jones portion of the pair\ninteraction; such energy goes to zero at the cutoff by construction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Allen2)** Allen and Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n \n**(Toukmaji2)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n \n**(Allen2)** Allen and Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n \n**(Stoddard)** Stoddard and Ford, Phys Rev A, 8, 1504 (1973). \n \n**(Price2)** Price, Stone and Alderton, Mol Phys, 52, 987 (1984). \n \n**(Toukmaji2)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n ", + "restrictions": "The *lj/cut/dipole/cut*, *lj/cut/dipole/long*, *lj/long/dipole/long*,\nand lj/sf/dipole/sf* styles are part of the DIPOLE package. They are only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nUsing dipole pair styles with *electron* [units ](https://docs.lammps.org/units.html) is not currently supported.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [set ](https://docs.lammps.org/set.html), [read_data ](https://docs.lammps.org/read_data.html),\n[fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html)\n" }, { "command": [ - "compute global/atom" + "temper" ], "syntax": [ - "compute ID group-ID style index input1 input2 ..." + "temper N M temp fix-ID seed1 seed2 index" ], "args": [ [ { - "arg": "compute", + "arg": "temper", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "M", "type": 2, "choices": [] }, { - "arg": "style", + "arg": "temp", "type": 2, "choices": [] }, { - "arg": "index", + "arg": "fix-ID", "type": 2, "choices": [] }, { - "arg": "input1", + "arg": "seed1", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "seed2", + "type": 2, + "choices": [] + }, + { + "arg": "index", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* global/atom = style name of this compute command\n* index = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global vector calculated by a compute with ID \n *        c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global vector calculated by a fix with ID \n *        f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global vector calculated by a vector-style variable with name \n", - "examples": "\n```lmps\ncompute 1 all global/atom c_chunk c_com[1] c_com[2] c_com[3]\ncompute 1 all global/atom c_chunk c_com[*]\n```\n", - "html_filename": "compute_global_atom.html", - "short_description": "Define a calculation that assigns global values to each atom from\nvectors or arrays of global values", - "description": "Define a calculation that assigns global values to each atom from\nvectors or arrays of global values. The specified *index* parameter\nis used to determine which global value is assigned to each atom.\n\nThe *index* parameter must reference a per-atom vector or array from a\n[compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation of an\natom-style [variable ](https://docs.lammps.org/variable.html). Each *input* value must\nreference a global vector or array from a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an vector-style\n[variable ](https://docs.lammps.org/variable.html). Details are given below.\n\nThe *index* value for an atom is used as an index \\(I\\) (from 1 to\n\\(N\\), where \\(N\\) is the number of atoms) into the vector\nassociated with each of the input values. The \\(I\\)\\ th value\nfrom the input vector becomes one output value for that atom. If the\natom is not in the specified group, or the index \\(I < 1\\) or\n\\(I > M\\), where \\(M\\) is the actual length of the input vector,\nthen an output value of 0.0 is assigned to the atom.\n\nAn example of how this command is useful, is in the context of\n\"chunks\" which are static or dynamic subsets of atoms. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command assigns unique chunk IDs\nto each atom. Its output can be used as the *index* parameter for\nthis command. Various other computes with \"chunk\" in their style\nname, such as [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) or\n[compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html), calculate properties for each\nchunk. The output of these commands are global vectors or arrays,\nwith one or more values per chunk, and can be used as input values for\nthis command. This command will then assign the global chunk value to\neach atom in the chunk, producing a per-atom vector or per-atom array\nas output. The per-atom values can then be output to a dump file or\nused by any command that uses per-atom values from a compute as input,\nas discussed on the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page.\n\nAs a concrete example, these commands will calculate the displacement\nof each atom from the center-of-mass of the molecule it is in, and\ndump those values to a dump file. In this case, each molecule is a\nchunk.\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all com/chunk cc1\ncompute prop all property/atom xu yu zu\ncompute glob all global/atom c_cc1 c_myChunk[*]\nvariable dx atom c_prop[1]-c_glob[1]\nvariable dy atom c_prop[2]-c_glob[2]\nvariable dz atom c_prop[3]-c_glob[3]\nvariable dist atom sqrt(v_dx*v_dx+v_dy*v_dy+v_dz*v_dz)\ndump 1 all custom 100 tmp.dump id xu yu zu c_glob[1] c_glob[2] c_glob[3] &\nv_dx v_dy v_dz v_dist\ndump_modify 1 sort id\n```\nYou can add these commands to the bench/in.chain script to see how\nthey work.\n\n----------\n\nNote that for input values from a compute or fix, the bracketed index\nI can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or \"\\*n\"\nor \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector\n(for *mode* = scalar)\nor the number of columns in the array (for *mode* = vector), then an\nasterisk with no numeric values means all indices from 1 to \\(N\\).\nA leading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive).\nA middle asterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute global/atom\ncommands are equivalent, since the [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html)\ncommand creates a global array with three columns:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute com all com/chunk cc1\ncompute 1 all global/atom c_cc1 c_com[1] c_com[2] c_com[3]\ncompute 1 all global/atom c_cc1 c_com[*]\n```\n----------\n\nThis section explains the *index* parameter. Note that it must\nreference per-atom values, as contrasted with the *input* values, which\nmust reference global values.\n\nNote that all of these options generate floating point values. When\nthey are used as an index into the specified input vectors, they\nsimple rounded down to convert the value to integer indices. The\nfinal values should range from 1 to \\(N\\) (inclusive), since they are used\nto access values from \\(N\\)-length vectors.\n\nIf *index* begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. The compute must generate\nper-atom quantities. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the per-atom\nvector calculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the per-atom array calculated by the\ncompute is used. Users can also write code for their own compute\nstyles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf *index* begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. The Fix must generate\nper-atom quantities. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when compute global/atom\nreferences the values, else an error results. If no bracketed integer\nis appended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Users can also write code for their\nown fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf *index* begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be an\n[atom-style variable ](https://docs.lammps.org/variable.html). Atom-style variables can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to use\nas *index* .\n\n----------\n\nThis section explains the kinds of *input* values that can be used.\nNote that inputs reference global values, as contrasted with the\n*index* parameter which must reference per-atom values.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. The compute must generate a\nglobal vector or array. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the vector\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\nI can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. The fix must generate a\nglobal vector or array. See the individual [fix ](https://docs.lammps.org/fix.html) doc page\nfor details. Note that some fixes only produce their values on\ncertain timesteps, which must be compatible with when compute\nglobal/atom references the values, else an error results. If no\nbracketed integer is appended, the vector calculated by the fix is\nused. If a bracketed integer is appended, the Ith column of the array\ncalculated by the fix is used. Users can also write code for their\nown fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be a\n[vector-style variable ](https://docs.lammps.org/variable.html). Vector-style variables can\nreference thermodynamic keywords and various other attributes of\natoms, or invoke other computes, fixes, or variables when they are\nevaluated, so this is a very general means of generating a vector of\nglobal quantities which the *index* parameter will reference for\nassignment of global values to atoms.\n\n----------\n\n #### Output info\n\nIf a single input is specified this compute produces a per-atom\nvector. If multiple inputs are specified, this compute produces a\nper-atom array values, where the number of columns is equal to the\nnumber of inputs specified. These values can be used by any command\nthat uses per-atom vector or array values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector or array values will be in whatever units the\ncorresponding input values are in.\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [variable ](https://docs.lammps.org/variable.html),\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" + "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* temp = initial temperature for this ensemble\n* fix-ID = ID of the fix that will control temperature during the run\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* index = which temperature (0 to N-1) I am simulating (optional) \n", + "examples": "\n```lmps\ntemper 100000 100 $t tempfix 0 58728\ntemper 40000 100 $t tempfix 0 32285 $w\n```\n", + "html_filename": "temper.html", + "short_description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system", + "description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system. Two or more replicas must be used.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI installed, you\ncan run a multi-replica simulation with more replicas (partitions)\nthan you have physical processors, e.g you can run a 10-replica\nsimulation on one or two processors. You will simply not get the\nperformance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\nEach replica's temperature is controlled at a different value by a fix\nwith *fix-ID* that controls temperature. Most thermostat fix styles\n(with and without included time integration) are supported. The command\nwill print an error message and abort, if the chosen fix is unsupported.\nThe desired temperature is specified by *temp*, which is typically a\nvariable previously set in the input script, so that each partition is\nassigned a different temperature. See the [variable ](https://docs.lammps.org/variable.html)\ncommand for more details. For example:\n\n```lmps\nvariable t world 300.0 310.0 320.0 330.0\nfix myfix all nvt temp $t $t 100.0\ntemper 100000 100 $t myfix 3847 58382\n```\nwould define 4 temperatures, and assign one of them to the thermostat\nused by each replica, and to the temper command.\n\nAs the tempering simulation runs for *N* timesteps, a temperature swap\nbetween adjacent ensembles will be attempted every *M* timesteps. If\n*seed1* is 0, then the swap attempts will alternate between odd and\neven pairings. If *seed1* is non-zero then it is used as a seed in a\nrandom number generator to randomly choose an odd or even pairing each\ntime. Each attempted swap of temperatures is either accepted or\nrejected based on a Boltzmann-weighted Metropolis criterion which uses\n*seed2* in the random number generator.\n\nAs a tempering run proceeds, multiple log files and screen output\nfiles are created, one per replica. By default these files are named\nlog.lammps.M and screen.M where M is the replica number from 0 to N-1,\nwith N = # of replicas. See the [-log and -screen command-line swiches ](https://docs.lammps.org/Run_options.html) for info on how to change these names.\n\nThe main screen and log file (log.lammps) will list information about\nwhich temperature is assigned to each replica at each thermodynamic\noutput timestep. E.g. for a simulation with 16 replicas:\n\n```\nRunning on 16 partitions of processors\nStep T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15\n0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n500 1 0 3 2 5 4 6 7 8 9 10 11 12 13 14 15\n1000 2 0 4 1 5 3 6 7 8 9 10 11 12 14 13 15\n1500 2 1 4 0 5 3 6 7 9 8 10 11 12 14 13 15\n2000 2 1 3 0 6 4 5 7 10 8 9 11 12 14 13 15\n2500 2 1 3 0 6 4 5 7 11 8 9 10 12 14 13 15\n...\n```\nThe column headings T0 to TN-1 mean which temperature is currently\nassigned to the replica 0 to N-1. Thus the columns represent replicas\nand the value in each column is its temperature (also numbered 0 to\nN-1). For example, a 0 in the fourth column (column T3, step 2500) means\nthat the fourth replica is assigned temperature 0, i.e. the lowest\ntemperature. You can verify this time sequence of temperature\nassignments for the Nth replica by comparing the Nth column of screen\noutput to the thermodynamic data in the corresponding log.lammps.N or\nscreen.N files as time proceeds.\n\nYou can have each replica create its own dump file in the following\nmanner:\n\n```lmps\nvariable rep world 0 1 2 3 4 5 6 7\ndump 1 all atom 1000 dump.temper.${rep}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each replica's dump file will contain a continuous trajectory\n > for its atoms where the temperature varies over time as swaps take\n > place involving that replica. If you want a series of dump files,\n > each with snapshots (from all replicas) that are all at a single\n > temperature, then you will need to post-process the dump files using\n > the information from the log.lammps file. E.g. you could produce one\n > dump file with snapshots at 300K (from all replicas), another with\n > snapshots at 310K, etc. Note that these new dump files will not\n > contain \"continuous trajectories\" for individual atoms, because two\n > successive snapshots (in time) may be from different replicas. The\n > reorder_remd_traj python script can do the reordering for you\n > (and additionally also calculated configurational log-weights of\n > trajectory snapshots in the canonical ensemble). The script can be found\n > in the tools/replica directory while instructions on how to use it is\n > available in doc/Tools (in brief) and as a README file in tools/replica\n > (in detail). \n > \n\nThe last argument *index* in the temper command is optional and is\nused when restarting a tempering run from a set of restart files (one\nfor each replica) which had previously swapped to new temperatures.\nThe *index* value (from 0 to N-1, where N is the # of replicas)\nidentifies which temperature the replica was simulating on the\ntimestep the restart files were written. Obviously, this argument\nmust be a variable so that each partition has the correct value. Set\nthe variable to the *N* values listed in the log file for the previous\nrun for the replica temperatures at that timestep. For example if the\nlog file listed the following for a simulation with 5 replicas:\n\n```\n500000 2 4 0 1 3\n```\nthen a setting of\n\n```lmps\nvariable w world 2 4 0 1 3\n```\nwould be used to restart the run with a tempering command like the\nexample above with $w as the last argument.\n\n----------\n", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[variable ](https://docs.lammps.org/variable.html), [prd ](https://docs.lammps.org/prd.html), [neb ](https://docs.lammps.org/neb.html)\n" }, { "command": [ - "change_box" + "compute smd/tlsph/num/neighs" ], "syntax": [ - "change_box group-ID parameter args ... keyword args ..." + "compute ID group-ID smd/tlsph/num/neighs" ], "args": [ [ { - "arg": "change_box", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "parameter", - "type": 2, - "choices": [] - }, - { - "arg": "args", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "args", - "type": 2, + "arg": "smd/tlsph/num/neighs", + "type": 1, "choices": [] } ] ], - "parameters": "* group-ID = ID of group of atoms to (optionally) displace\n* one or more parameter/arg pairs may be appended \n *      parameter = x or y or z or xy or xz or yz or boundary or ortho or triclinic or set or remap \n       x, y, z args = style value(s) \n       style = final or delta or scale or volume \n       final values = lo hi \n       lo hi = box boundaries after displacement (distance units) \n       delta values = dlo dhi \n       dlo dhi = change in box boundaries after displacement (distance units) \n       scale values = factor \n       factor = multiplicative factor for change in box length after displacement \n       volume value = none = adjust this dim to preserve volume of system \n       xy, xz, yz args = style value \n       style = final or delta \n       final value = tilt \n       tilt = tilt factor after displacement (distance units) \n       delta value = dtilt \n       dtilt = change in tilt factor after displacement (distance units) \n       boundary args = x y z \n       x,y,z = p or s or f or m, one or two letters \n       p is periodic \n       f is non-periodic and fixed \n       s is non-periodic and shrink-wrapped \n       m is non-periodic and shrink-wrapped with a minimum value \n       ortho args = none = change box to orthogonal \n       triclinic args = none = change box to triclinic \n       set args = none = store state of current box \n       remap args = none = remap atom coords from last saved state to current box \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = distances are defined in lattice units \n         box = distances are defined in simulation box units \n", - "examples": "\n```lmps\nchange_box all xy final -2.0 z final 0.0 5.0 boundary p p f remap units box\nchange_box all x scale 1.1 y volume z volume remap\n```\n", - "html_filename": "change_box.html", - "short_description": "Change the volume and/or shape and/or boundary conditions for the\nsimulation box", - "description": "Change the volume and/or shape and/or boundary conditions for the\nsimulation box. Orthogonal simulation boxes have 3 adjustable size\nparameters (x,y,z). Triclinic (non-orthogonal) simulation boxes have\n6 adjustable size/shape parameters (x,y,z,xy,xz,yz). Any or all of\nthem can be adjusted independently by this command. Thus it can be\nused to expand or contract a box, or to apply a shear strain to a\nnon-orthogonal box. It can also be used to change the boundary\nconditions for the simulation box, similar to the\n[boundary ](https://docs.lammps.org/boundary.html) command.\n\nThe size and shape of the initial simulation box are specified by the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) command used to setup the simulation.\nThe size and shape may be altered by subsequent runs, e.g. by use of\nthe [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix deform ](https://docs.lammps.org/fix_deform.html) commands.\nThe [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands also determine whether the\nsimulation box is orthogonal or triclinic and their doc pages explain\nthe meaning of the xy,xz,yz tilt factors.\n\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a\ngeometric description of triclinic boxes, as defined by LAMMPS, and\nhow to transform these parameters to and from other commonly used\ntriclinic representations.\n\nThe keywords used in this command are applied sequentially to the\nsimulation box and the atoms in it, in the order specified.\n\nBefore the sequence of keywords are invoked, the current box\nsize/shape is stored, in case a *remap* keyword is used to map the\natom coordinates from a previously stored box size/shape to the\ncurrent one.\n\nAfter all the keywords have been processed, any shrink-wrap boundary\nconditions are invoked (see the [boundary ](https://docs.lammps.org/boundary.html) command)\nwhich may change simulation box boundaries, and atoms are migrated to\nnew owning processors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This means that you cannot use the change_box command to enlarge\n > a shrink-wrapped box, e.g. to make room to insert more atoms via the\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) command, because the simulation box\n > will be re-shrink-wrapped before the change_box command completes.\n > Instead you could do something like this, assuming the simulation box\n > is non-periodic and atoms extend from 0 to 20 in all dimensions: \n > \n\n\n```lmps\nchange_box all x final -10 20\ncreate_atoms 1 single -5 5 5 # this will fail to insert an atom\n\nchange_box all x final -10 20 boundary f s s\ncreate_atoms 1 single -5 5 5\nchange_box all boundary s s s # this will work\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the earlier \"displace_box\" version of this command, atom\n > remapping is NOT performed by default. This command allows remapping\n > to be done in a more general way, exactly when you specify it (zero or\n > more times) in the sequence of transformations. Thus if you do not\n > use the *remap* keyword, atom coordinates will not be changed even if\n > the box size/shape changes. If a uniformly strained state is desired,\n > the *remap* keyword should be specified. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is possible to lose atoms with this command. E.g. by\n > changing the box without remapping the atoms, and having atoms end up\n > outside of non-periodic boundaries. It is also possible to alter\n > bonds between atoms straddling a boundary in bad ways. E.g. by\n > converting a boundary from periodic to non-periodic. It is also\n > possible when remapping atoms to put them (nearly) on top of each\n > other. E.g. by converting a boundary from non-periodic to periodic.\n > All of these will typically lead to bad dynamics and/or generate error\n > messages. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The simulation box size/shape can be changed by arbitrarily large\n > amounts by this command. This is not a problem, except that the\n > mapping of processors to the simulation box is not changed from its\n > initial 3d configuration; see the [processors ](https://docs.lammps.org/processors.html)\n > command. Thus, if the box size/shape changes dramatically, the\n > mapping of processors to the simulation box may not end up as\n > optimal as the initial mapping attempted to be. You may wish to\n > re-balance the atoms by using the [balance ](https://docs.lammps.org/balance.html) command\n > if that is the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You cannot use this command after reading a restart file (and\n > before a run is performed) if the restart file stored per-atom\n > information from a fix and any of the specified keywords change the\n > box size or shape or boundary conditions. This is because atoms\n > may be moved to new processors and the restart info will not\n > migrate with them. LAMMPS will generate an error if this could\n > happen. Only the *ortho* and *triclinic* keywords do not trigger\n > this error. One solution is to perform a \"run 0\" command before\n > using the change_box command. This clears the per-atom restart\n > data, whether it has been re-assigned to a new fix or not. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the keywords used in this command are applied one at a time\n > to the simulation box and the atoms in it, care must be taken with\n > triclinic cells to avoid exceeding the limits on skew after each\n > transformation in the sequence. If skew is exceeded before the\n > final transformation this can be avoided by changing the order of\n > the sequence, or breaking the transformation into two or more\n > smaller transformations. For more information on the allowed\n > limits for box skew see the discussion on triclinic boxes on\n > [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page. \n > \n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of their\nstyles and values.\n\nFor style *final*, the final lo and hi box boundaries of a dimension\nare specified. The values can be in lattice or box distance units.\nSee the discussion of the units keyword below.\n\nFor style *delta*, plus or minus changes in the lo/hi box boundaries\nof a dimension are specified. The values can be in lattice or box\ndistance units. See the discussion of the units keyword below.\n\nFor style *scale*, a multiplicative factor to apply to the box length\nof a dimension is specified. For example, if the initial box length\nis 10, and the factor is 1.1, then the final box length will be 11. A\nfactor less than 1.0 means compression.\n\nThe *volume* style changes the specified dimension in such a way that\nthe overall box volume remains constant with respect to the operation\nperformed by the preceding keyword. The *volume* style can only be\nused following a keyword that changed the volume, which is any of the\n*x*, *y*, *z* keywords. If the preceding keyword \"key\" had a *volume*\nstyle, then both it and the current keyword apply to the keyword\npreceding \"key\". I.e. this sequence of keywords is allowed:\n\n```lmps\nchange_box all x scale 1.1 y volume z volume\n```\nThe *volume* style changes the associated dimension so that the\noverall box volume is unchanged relative to its value before the\npreceding keyword was invoked.\n\nIf the following command is used, then the z box length will shrink by\nthe same 1.1 factor the x box length was increased by:\n\n```lmps\nchange_box all x scale 1.1 z volume\n```\nIf the following command is used, then the y,z box lengths will each\nshrink by sqrt(1.1) to keep the volume constant. In this case, the\ny,z box lengths shrink so as to keep their relative aspect ratio\nconstant:\n\n```lmps\nchange_box all x scale 1.1 y volume z volume\n```\nIf the following command is used, then the final box will be a factor\nof 10% larger in x and y, and a factor of 21% smaller in z, so as to\nkeep the volume constant:\n\n```lmps\nchange_box all x scale 1.1 z volume y scale 1.1 z volume\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For solids or liquids, when one dimension of the box is\n > expanded, it may be physically undesirable to hold the other 2 box\n > lengths constant since that implies a density change. For solids,\n > adjusting the other dimensions via the *volume* style may make\n > physical sense (just as for a liquid), but may not be correct for\n > materials and potentials whose Poisson ratio is not 0.5. \n > \n\nFor the *scale* and *volume* styles, the box length is expanded or\ncompressed around its mid point.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of their\nstyles and values. Note that changing the tilt factors of a triclinic\nbox does not change its volume.\n\nFor style *final*, the final tilt factor is specified. The value\ncan be in lattice or box distance units. See the discussion of the\nunits keyword below.\n\nFor style *delta*, a plus or minus change in the tilt factor is\nspecified. The value can be in lattice or box distance units. See\nthe discussion of the units keyword below.\n\nAll of these styles change the xy, xz, yz tilt factors. In LAMMPS,\ntilt factors (xy,xz,yz) for triclinic boxes are required to be no more\nthan half the distance of the parallel box length. For example, if\nxlo = 2 and xhi = 12, then the x box length is 10 and the xy tilt\nfactor must be between -5 and 5. Similarly, both xz and yz must be\nbetween -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a\nlimitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt = ..., -15, -5, 5, 15, 25,\n... are all equivalent. Any tilt factor specified by this command\nmust be within these limits.\n\n----------\n\nThe *boundary* keyword takes arguments that have exactly the same\nmeaning as they do for the [boundary ](https://docs.lammps.org/boundary.html) command. In each\ndimension, a single letter assigns the same style to both the lower\nand upper face of the box. Two letters assigns the first style to the\nlower face and the second style to the upper face.\n\nThe style *p* means the box is periodic; the other styles mean\nnon-periodic. For style *f*, the position of the face is fixed. For\nstyle *s*, the position of the face is set so as to encompass the\natoms in that dimension (shrink-wrapping), no matter how far they\nmove. For style *m*, shrink-wrapping occurs, but is bounded by the\ncurrent box edge in that dimension, so that the box will become no\nsmaller. See the [boundary ](https://docs.lammps.org/boundary.html) command for more\nexplanation of these style options.\n\nNote that the \"boundary\" command itself can only be used before the\nsimulation box is defined via a [read_data ](https://docs.lammps.org/read_data.html) or\n[create_box ](https://docs.lammps.org/create_box.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand. This command allows the boundary conditions to be changed\nlater in your input script. Also note that the\n[read_restart ](https://docs.lammps.org/read_restart.html) will change boundary conditions to\nmatch what is stored in the restart file. So if you wish to change\nthem, you should use the change_box command after the read_restart\ncommand.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Changing a periodic boundary to a non-periodic one will also cause\n > the image flag for that dimension of all atoms to be reset to 0.\n > LAMMPS will print a warning message, if that happens.\n > Please note that this reset can lead to undesired changes when\n > atoms are involved in bonded interactions that straddle periodic\n > boundaries and thus the values of the image flag differs for those\n > atoms. \n > \n\n----------\n\nThe *ortho* and *triclinic* keywords convert the simulation box to be\northogonal or triclinic (non-orthogonal).\n\nThe simulation box is defined as either orthogonal or triclinic when\nit is created via the [create_box ](https://docs.lammps.org/create_box.html),\n[read_data ](https://docs.lammps.org/read_data.html), or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThese keywords allow you to toggle the existing simulation box from\northogonal to triclinic and vice versa. For example, an initial\nequilibration simulation can be run in an orthogonal box, the box can\nbe toggled to triclinic, and then a [non-equilibrium MD (NEMD) simulation ](https://docs.lammps.org/Howto_nemd.html) can be run with deformation via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nIf the simulation box is currently triclinic and has non-zero tilt in\nxy, yz, or xz, then it cannot be converted to an orthogonal box.\n\n----------\n\nThe *set* keyword saves the current box size/shape. This can be\nuseful if you wish to use the *remap* keyword more than once or if you\nwish it to be applied to an intermediate box size/shape in a sequence\nof keyword operations. Note that the box size/shape is saved before\nany of the keywords are processed, i.e. the box size/shape at the time\nthe create_box command is encountered in the input script.\n\nThe *remap* keyword remaps atom coordinates from the last saved box\nsize/shape to the current box state. For example, if you stretch the\nbox in the x dimension or tilt it in the xy plane via the *x* and *xy*\nkeywords, then the *remap* command will dilate or tilt the atoms to\nconform to the new box size/shape, as if the atoms moved with the box\nas it deformed.\n\nNote that this operation is performed without regard to periodic\nboundaries. Also, any shrink-wrapping of non-periodic boundaries (see\nthe [boundary ](https://docs.lammps.org/boundary.html) command) occurs after all keywords,\nincluding this one, have been processed.\n\nOnly atoms in the specified group are remapped.\n\n----------\n\nThe *units* keyword determines the meaning of the distance units used\nto define various arguments. A *box* value selects standard distance\nunits as defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for\nunits = real or metal. A *lattice* value means the distance units are\nin lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing.\n\n----------\n", - "restrictions": "If you use the *ortho* or *triclinic* keywords, then at the point in\nthe input script when this command is issued, no [dumps ](https://docs.lammps.org/dump.html) can\nbe active, nor can a [fix deform ](https://docs.lammps.org/fix_deform.html) be active. This is\nbecause these commands test whether the simulation box is orthogonal\nwhen they are first issued. Note that these commands can be used in\nyour script before a change_box command is issued, so long as an\n[undump ](https://docs.lammps.org/undump.html) or [unfix ](https://docs.lammps.org/unfix.html) command is also used to\nturn them off.\n", - "related": "[fix deform ](https://docs.lammps.org/fix_deform.html), [boundary ](https://docs.lammps.org/boundary.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/num/neighs = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/num/neighs\n```\n", + "html_filename": "compute_smd_tlsph_num_neighs.html", + "short_description": "Define a computation that calculates the number of particles inside of\nthe smoothing kernel radius for particles interacting via the\nTotal-Lagrangian SPH pair style", + "description": "Define a computation that calculates the number of particles inside of\nthe smoothing kernel radius for particles interacting via the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values are dimensionless. See [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian pair style.\n", + "related": "[smd/ulsph/num/neighs ](https://docs.lammps.org/compute_smd_ulsph_num_neighs.html)\n" }, { "command": [ - "compute smd/ulsph/effm" + "compute fep" ], "syntax": [ - "compute ID group-ID smd/ulsph/effm" + "compute ID group-ID fep temp attribute args ... keyword value ..." ], "args": [ [ @@ -17162,228 +16594,202 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/ulsph/effm", + "arg": "fep", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/effm = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/ulsph/effm\n```\n", - "html_filename": "compute_smd_ulsph_effm.html", - "short_description": "Define a computation that outputs the effective shear modulus for\nparticles interacting via the updated Lagrangian SPH pair style", - "description": "Define a computation that outputs the effective shear modulus for\nparticles interacting via the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector contains the current effective per atom shear\nmodulus as computed by the [pair smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html) pair\nstyle.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", - "related": "[pair smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html)\n" -}, -{ - "command": [ - "mdi" - ], - "syntax": [ - "mdi option args" - ], - "args": [ - [ + }, { - "arg": "mdi", - "type": 1, + "arg": "temp", + "type": 2, "choices": [] }, { - "arg": "exit", + "arg": "atom", "type": 3, "choices": [ - "engine", - "plugin", - "connect", - "exit" + "pair", + "atom" ] }, { "arg": "args", "type": 2, "choices": [] + }, + { + "arg": "volume", + "type": 3, + "choices": [ + "tail", + "volume" + ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* option = engine or plugin or connect or exit \n *      engine args = zero or more keyword/args pairs \n       keywords = elements \n       elements args = N_1 N_2 ... N_ntypes \n       N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n *      plugin args = name keyword value keyword value ... \n       name = name of plugin library (e.g., lammps means a liblammps.so library will be loaded) \n       keyword/value pairs in any order, some are required, some are optional \n       keywords = mdi or infile or extra or command \n       mdi value = args passed to MDI for driver to operate with plugins (required) \n       infile value = filename the engine will read at start-up (optional) \n       extra value = aditional command-line args to pass to engine library when loaded (optional) \n       command value = a LAMMPS input script command to execute (required) \n *      connect args = none \n *      exit args = none \n", - "examples": "\n```lmps\nmdi engine\nmdi engine elements Al Cu\nmdi plugin lammps mdi \"-role ENGINE -name lammps -method LINK\" &\ninfile in.aimd.engine extra \"-log log.aimd.engine.plugin\" &\ncommand \"run 5\"\nmdi connect\nmdi exit\n```\n", - "html_filename": "mdi.html", - "short_description": "This command implements operations within LAMMPS to use the `MDI\nLibrary `\nfor coupling to other codes in a client/server protocol", - "description": "This command implements operations within LAMMPS to use the `MDI\nLibrary `\nfor coupling to other codes in a client/server protocol.\n\nSee the Howto MDI doc page for a discussion of all the different ways\n2 or more codes can interact via MDI.\n\nThe examples/mdi directory has examples which use LAMMPS in 4\ndifferent modes: as a driver using an engine as either a stand-alone\ncode or as a plugin, and as an engine operating as either a\nstand-alone code or as a plugin. The README file in that directory\nshows how to launch and couple codes for all the 4 usage modes, and so\nthey communicate via the MDI library using either MPI or sockets.\n\nThe scripts in that directory illustrate the use of all the options\nfor this command.\n\nThe *engine* option enables LAMMPS to act as an MDI engine (server),\nresponding to requests from an MDI driver (client) code.\n\nThe *plugin* option enables LAMMPS to act as an MDI driver (client),\nand load the MDI engine (server) code as a library plugin. In this\ncase the MDI engine is a library plugin. An MDI engine can also be a\nstand-alone code, launched separately from LAMMPS, in which case the\nmdi plugin command is not used.\n\nThe *connect* and *exit* options are only used when LAMMPS is acting\nas an MDI driver. As explained below, these options are normally not\nneeded, except for a specific kind of use case.\n\n----------\n\nThe *mdi engine* command is used to make LAMMPS operate as an MDI\nengine. It is typically used in an input script after LAMMPS has\nsetup the system it is going to model consistent with what the driver\ncode expects. Depending on when the driver code tells the LAMMPS\nengine to exit, other commands can be executed after this command, but\ntypically it is used at the end of a LAMMPS input script.\n\nTo act as an MDI engine operating as an MD code (or surrogate QM\ncode), this is the list of standard MDI commands issued by a driver\ncode which LAMMPS currently recognizes. Using standard commands\ndefined by the MDI library means that a driver code can work\ninterchangeably with LAMMPS or other MD codes or with QM codes which\nsupport the MDI standard. See more details about these commands in\nthe [MDI library documentation](https://molssi-mdi.github.io/MDI_Library/html/mdi_standard.html)\n\nThese commands are valid at the @DEFAULT node defined by MDI.\nCommands that start with \">\" mean the driver is sending information to\nLAMMPS. Commands that start with \"<\" are requests by the driver for\nLAMMPS to send it information. Commands that start with an alphabetic\nletter perform actions. Commands that start with \"@\" are MDI \"node\"\ncommands, which are described further below.\n\n | | | \n |---|---|\n Command name | Action|\n >CELL or CELL_DISPL or CHARGES or COORDS or ELEMENTS | Send elements (atomic numbers) for each atom (N values)|\n FORCES or +FORCES | Send forces to add to each atom (3N values)|\n NSTEPS value)|\n OPTG | Perform an energy minimization to convergence (most recent >TOLERANCE values)|\n >NATOMS or NSTEPS | Send number of timesteps for next MD dynamics run via MD command|\n TOLERANCE | Send 4 tolerance parameters for next MD minimization via OPTG command|\n >TYPES or VELOCITIES or ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The compute atomic interactions for the current configuration of atoms\n > and size/shape of the simulation box. I.e. LAMMPS invokes its\n > pair, bond, angle, ..., kspace styles. If the driver is updating\n > the atom coordinates and/or box incrementally (as in an MD\n > simulation which the driver is managing), then the LAMMPS engine\n > will do the same, and only occasionally trigger neighbor list\n > builds. If the change in atom positions is large (since the\n > previous >COORDS command), then LAMMPS will do a more expensive\n > operation to migrate atoms to new processors as needed and\n > re-neighbor. If the >NATOMS or >TYPES or >ELEMENTS commands have\n > been sent (since the previous >COORDS command), then LAMMPS assumes\n > the system is new and re-initializes an entirely new simulation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The >TYPES or >ELEMENTS commands are how the MDI driver tells the\n > LAMMPS engine which LAMMPS atom type to assign to each atom. If\n > both the MDI driver and the LAMMPS engine are initialized so that\n > atom type values are consistent in both codes, then the >TYPES\n > command can be used. If not, the optional *elements* keyword can\n > be used to specify what element each LAMMPS atom type corresponds\n > to. This is specified by the chemical symbol of the element,\n > e.g. C or Al or Si. A symbol must be specified for each of the\n > ntypes LAMMPS atom types. Each LAMMPS type must map to a unique\n > element; two or more types cannot map to the same element. Ntypes\n > is typically specified via the [create_box ](https://docs.lammps.org/create_box.html)\n > command or in the data file read by the [read_data > ](https://docs.lammps.org/read_data.html) command. Once this has been done, the MDI driver can\n > send an >ELEMENTS command to the LAMMPS driver with the atomic\n > number of each atom and the LAMMPS engine will be able to map it to\n > a LAMMPS atom type. \n > \n\nThe MD and OPTG commands perform an entire MD simulation or energy\nminimization (to convergence) with no communication from the driver\nuntil the simulation is complete. By contrast, the @INIT_MD and\n@INIT_OPTG commands allow the driver to communicate with the engine at\neach timestep of a dynamics run or iteration of a minimization; see\nmore info below.\n\nThe MD command performs a simulation using the most recent >NSTEPS\nvalue. The OPTG command performs a minimization using the 4\nconvergence parameters from the most recent >TOLERANCE command. The 4\nparameters sent are those used by the [minimize ](https://docs.lammps.org/minimize.html)\ncommand in LAMMPS: etol, ftol, maxiter, and maxeval.\n\nThe mdi engine command also implements the following custom MDI\ncommands which are LAMMPS-specific. These commands are also valid at\nthe @DEFAULT node defined by MDI:\n\n * - Command name\n - Action\n * - >NBYTES\n - Send # of datums in a subsequent command (1 value)\n * - >COMMAND\n - Send a LAMMPS input script command as a string (Nbytes in length)\n * - >COMMANDS\n - Send multiple LAMMPS input script commands as a newline-separated string (Nbytes in length)\n * - >INFILE\n - Send filename of an input script to execute (filename Nbytes in length)\n * - COORDS or FORCES\nor >+FORCES or ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *command* is complete, LAMMPS will send an MDI EXIT\n > command to the plugin engine and the plugin will be removed. The\n > \"mdi plugin\" command will then exit and the next command (if any)\n > in the LAMMPS input script will be processed. A subsequent \"mdi\n > plugin\" command could then load the same or a different MDI\n > plugin if desired. \n > \n\n----------\n\nThe *mdi connect* and *mdi exit* commands are only used when LAMMPS is\noperating as an MDI driver. And when other LAMMPS command(s) which\nsend MDI commands and associated data to/from the MDI engine are not\nable to initiate and terminate the connection to the engine code.\n\nThe only current MDI driver command in LAMMPS is the [fix mdi/qm](https://docs.lammps.org/fix_mdi_qm.html) command. If it is only used once in an input script\nthen it can initiate and terminate the connection, but if it is being\nissued multiple times (e.g., in a loop that issues a [clear](https://docs.lammps.org/clear.html) command), then it cannot initiate or terminate the connection\nmultiple times. Instead, the *mdi connect* and *mdi exit* commands\nshould be used outside the loop to initiate or terminate the connection.\n\nSee the examples/mdi/in.series.driver script for an example of how\nthis is done. The LOOP in that script is reading a series of data\nfile configurations and passing them to an MDI engine (e.g., quantum\ncode) for energy and force evaluation. A *clear* command inside the\nloop wipes out the current system so a new one can be defined. This\noperation also destroys all fixes. So the [fix mdi/qm](https://docs.lammps.org/fix_mdi_qm.html) command is issued once per loop iteration. Note that it\nincludes a \"connect no\" option which disables the initiate/terminate\nlogic within that fix.\n", - "restrictions": "This command is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS in conjunction with other MDI-enabled atomistic codes,\nthe [units ](https://docs.lammps.org/units.html) command should be used to specify *real* or\n*metal* units. This will ensure the correct unit conversions between\nLAMMPS and MDI units, which the other codes will also perform in their\npreferred units.\n\nLAMMPS can also be used as an MDI engine in other unit choices it\nsupports (e.g., *lj*), but then no unit conversion is performed.\n", - "related": "[fix mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html)\n" + "parameters": "* ID, group-ID are documented in the [compute ](https://docs.lammps.org/compute.html) command\n* fep = name of this compute command\n* temp = external temperature (as specified for constant-temperature run)\n* one or more attributes with args may be appended\n* attribute = pair or atom \n *        pair args = pstyle pparam I J v_delta \n         pstyle = pair style name (e.g., *lj/cut*) \n         pparam = parameter to perturb \n         I,J = type pair(s) to set parameter for \n         v_delta = variable with perturbation to apply (in the units of the parameter) \n *        atom args = aparam I v_delta \n         aparam = charge = parameter to perturb \n         I = type to set parameter for \n         v_delta = variable with perturbation to apply (in the units of the parameter) \n* zero or more keyword/value pairs may be appended\n* keyword = tail or volume \n *        tail value = no or yes \n         no = ignore tail correction to pair energies (usually small in fep) \n         yes = include tail correction to pair energies \n *        volume value = no or yes \n         no = ignore volume changes (e.g., in NVE or NVT trajectories) \n         yes = include volume changes (e.g., in NPT trajectories) \n", + "examples": "\n```lmps\ncompute 1 all fep 298 pair lj/cut epsilon 1 * v_delta pair lj/cut sigma 1 * v_delta volume yes\ncompute 1 all fep 300 atom charge 2 v_delta\n```\nExample input scripts available: examples/PACKAGES/fep\n", + "html_filename": "compute_fep.html", + "short_description": "Apply a perturbation to parameters of the interaction potential and\nrecalculate the pair potential energy without changing the atomic\ncoordinates from those of the reference, unperturbed system", + "description": "Apply a perturbation to parameters of the interaction potential and\nrecalculate the pair potential energy without changing the atomic\ncoordinates from those of the reference, unperturbed system. This\ncompute can be used to calculate free energy differences using several\nmethods, such as free-energy perturbation (FEP), finite-difference\nthermodynamic integration (FDTI) or Bennet's acceptance ratio method\n(BAR).\n\nThe potential energy of the system is decomposed in three terms: a\nbackground term corresponding to interaction sites whose parameters\nremain constant, a reference term \\(U_0\\) corresponding to the\ninitial interactions of the atoms that will undergo perturbation, and\na term \\(U_1\\) corresponding to the final interactions of\nthese atoms:\n\\[\n U(\\lambda) = U_{\\mathrm{bg}} + U_1(\\lambda) + U_0(\\lambda)\\]\nA coupling parameter \\(\\lambda\\) varying from 0 to 1 connects the\nreference and perturbed systems:\n\\[\\begin{align*} \n \\lambda &= 0 \\quad\\Rightarrow\\quad U = U_{\\mathrm{bg}} + U_0 \\\\\n \\lambda &= 1 \\quad\\Rightarrow\\quad U = U_{\\mathrm{bg}} + U_1 \\end{align*} \\]\nIt is possible but not necessary that the coupling parameter (or a\nfunction thereof) appears as a multiplication factor of the potential\nenergy. Therefore, this compute can apply perturbations to interaction\nparameters that are not directly proportional to the potential energy\n(e.g., \\(\\sigma\\) in Lennard-Jones potentials).\n\nThis command can be combined with [fix adapt ](https://docs.lammps.org/fix_adapt.html) to\nperform multistage free-energy perturbation calculations along\nstepwise alchemical transformations during a simulation run:\n\\[\n \\Delta_0^1 A = \\sum_{i=0}^{n-1} \\Delta_{\\lambda_i}^{\\lambda_{i+1}} A = - k_B T\n \\sum_{i=0}^{n-1} \\ln \\left< \\exp \\left( - \\frac{U(\\lambda_{i+1}) -\n U(\\lambda_i)}{k_B T} \\right) \\right>_{\\lambda_i}\\]\nThis compute is suitable for the finite-difference thermodynamic\nintegration (FDTI) method **Mezei**, which is based on an\nevaluation of the numerical derivative of the free energy by a\nperturbation method using a very small \\(\\delta\\):\n\\[\n \\Delta_0^1 A = \\int_{\\lambda=0}^{\\lambda=1} \\left( \\frac{\\partial\n A(\\lambda)}{\\partial\\lambda} \\right)_\\lambda \\mathrm{d}\\lambda \\approx\n \\sum_{i=0}^{n-1} w_i \\frac{A(\\lambda_{i} + \\delta) - A(\\lambda_i)}{\\delta}\\]\nwhere \\(w_i\\) are weights of a numerical quadrature. The\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to define the stages of\n\\(\\lambda\\) at which the derivative is calculated and averaged.\n\nThe compute fep calculates the exponential Boltzmann term and also the\npotential energy difference \\(U_1 -U_0\\). By\nchoosing a very small perturbation \\(\\delta\\) the thermodynamic\nintegration method can be implemented using a numerical evaluation of\nthe derivative of the potential energy with respect to \\(\\lambda\\):\n\\[\n \\Delta_0^1 A = \\int_{\\lambda=0}^{\\lambda=1} \\left< \\frac{\\partial\n U(\\lambda)}{\\partial\\lambda} \\right>_\\lambda \\mathrm{d}\\lambda \\approx\n \\sum_{i=0}^{n-1} w_i \\left< \\frac{U(\\lambda_{i} + \\delta) -\n U(\\lambda_i)}{\\delta} \\right>_{\\lambda_i}\\]\nAnother technique to calculate free energy differences is the\nacceptance ratio method **Bennet**, which can be implemented\nby calculating the potential energy differences with \\(\\delta = 1.0\\) on\nboth the forward and reverse routes:\n\\[\n \\left< \\frac{1}{1 + \\exp\\left[\\left(U_1 - U_0 - \\Delta_0^1A \\right) /k_B T\n \\right]} \\right>_0 = \\left< \\frac{1}{1 + \\exp\\left[\\left(U_0 - U_1 +\n \\Delta_0^1A \\right) /k_B T \\right]} \\right>_1\\]\nThe value of the free energy difference is determined by numerical\nroot finding to establish the equality.\n\nConcerning the choice of how the atomic parameters are perturbed in\norder to setup an alchemical transformation route, several strategies\nare available, such as single-topology or double-topology strategies\n**Pearlman**. The latter does not require modification of\nbond lengths, angles or other internal coordinates.\n\nNOTES: This compute command does not take kinetic energy into account,\ntherefore the masses of the particles should not be modified between\nthe reference and perturbed states, or along the alchemical\ntransformation route. This compute command does not change bond\nlengths or other internal coordinates **BoreschKarplus**.\n\n----------\n\nThe *pair* attribute enables various parameters of potentials defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands to be changed, if the pair style supports it.\n\nThe *pstyle* argument is the name of the pair style. For example,\n*pstyle* could be specified as \"lj/cut\". The *pparam* argument is the\nname of the parameter to change. This is a list of\npair styles and parameters that can be used with this compute. See\nthe doc pages for individual pair styles and their energy formulas for\nthe meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [buck, buck/coul/cut, buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda | type pairs |\n| [eam ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | a,b | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/tip4p/cut, lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma | type pairs |\n| [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamR,gamA | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n\nNote that it is easy to add new potentials and their parameters to\nthis list. All it typically takes is adding an extract() method to\nthe pair\\_\\*.cpp file associated with the potential.\n\nSimilar to the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, I and J can be\nspecified in one of two ways. Explicit numeric values can be used for\neach, as in the first example above. I \\(\\le\\) J is required. LAMMPS sets\nthe coefficients for the symmetric J,I interaction to the same\nvalues. A wild-card asterisk can be used in place of or in conjunction\nwith the I,J arguments to set the coefficients for multiple pairs of\natom types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If\n\\(N\\) is the number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). Note that only type pairs with I \\(\\le\\) J are considered; if\nasterisks imply type pairs where J \\(<\\) I, they are ignored.\n\nIf [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is being\nused, then the *pstyle* will be a sub-style name. You must specify\nI,J arguments that correspond to type pair values defined (via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for that sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis compute is invoked. It should be specified as v_name, where name\nis the variable name.\n\n----------\n\nThe *atom* attribute enables atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be used with this compute:\n\n* charge = charge on particle\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis compute is invoked. It should be specified as v_name, where name\nis the variable name.\n\n----------\n\nThe *tail* keyword controls the calculation of the tail correction to\n\"van der Waals\" pair energies beyond the cutoff, if this has been\nactivated via the [pair_modify ](https://docs.lammps.org/pair_modify.html) command. If the\nperturbation is small, the tail contribution to the energy difference\nbetween the reference and perturbed systems should be negligible.\n\nIf the keyword *volume* = *yes*, then the Boltzmann term is multiplied\nby the volume so that correct ensemble averaging can be performed over\ntrajectories during which the volume fluctuates or changes **AllenTildesley**:\n\\[\n \\Delta_0^1 A = - k_B T \\sum_{i=0}^{n-1} \\ln \\frac{\\left< V \\exp \\left( -\n \\frac{U(\\lambda_{i+1}) - U(\\lambda_i)}{k_B T} \\right)\n \\right>_{\\lambda_i}}{\\left< V \\right>_{\\lambda_i}}\\]\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 3 which contains the\nenergy difference ( \\(U_1-U_0\\) ) as c_ID[1], the\nBoltzmann factor \\(\\exp(-(U_1-U_0)/k_B T)\\), or\n\\(V \\exp(-(U_1-U_0)/k_B T)\\), as c_ID[2] and the\nvolume of the simulation box \\(V\\) as c_ID[3]. \\(U_1\\) is the\npair potential energy obtained with the perturbed parameters and\n\\(U_0\\) is the pair potential energy obtained with the\nunperturbed parameters. The energies include kspace terms if these\nare used in the simulation.\n\nThese output results can be used by any command that uses a global\nscalar or vector from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions. For example, the computed values can be averaged using [fix ave/time ](https://docs.lammps.org/fix_ave_time.html).\n\nThe values calculated by this compute are \"extensive\".\n\n**(Mezei)** Mezei, J Chem Phys, 86, 7084 (1987) \n \n**(Bennet)** Bennet, J Comput Phys, 22, 245 (1976) \n \n**(Pearlman)** Pearlman, J Chem Phys, 98, 1487 (1994) \n \n**(BoreschKarplus)** Boresch and Karplus, J Phys Chem A, 103, 103 (1999) \n \n**(AllenTildesley)** Allen and Tildesley, Computer Simulation of\nLiquids, Oxford University Press (1987) \n ", + "restrictions": "This compute is distributed as the FEP package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[pair_style .../soft ](https://docs.lammps.org/pair_fep_soft.html)\n" }, { "command": [ - "pair_style tersoff", - "pair_style tersoff/gpu", - "pair_style tersoff/intel", - "pair_style tersoff/kk", - "pair_style tersoff/omp", - "pair_style tersoff/table", - "pair_style tersoff/table/omp" + "delete_atoms" ], "syntax": [ - "pair_style style keywords values" + "delete_atoms style args keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "delete_atoms", "type": 1, "choices": [] }, { - "arg": "tersoff/table/omp", + "arg": "variable", "type": 3, "choices": [ - "tersoff", - "tersoff/table", - "tersoff/gpu", - "tersoff/intel", - "tersoff/kk", - "tersoff/omp", - "tersoff/table/omp" + "group", + "region", + "overlap", + "random", + "variable" ] }, { - "arg": "keywords", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "mol", + "type": 3, + "choices": [ + "compress", + "bond", + "mol" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* style = tersoff or tersoff/table\n* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", - "examples": "\n```lmps\npair_style tersoff\npair_coeff * * Si.tersoff Si\npair_coeff * * SiC.tersoff Si C Si\n\npair_style tersoff/table\npair_coeff * * SiCGe.tersoff Si(D)\n\npair_style tersoff shift 0.05\npair_coeff * * Si.tersoff Si\n```\n", - "html_filename": "pair_tersoff.html", - "short_description": "The *tersoff* style computes a 3-body Tersoff potential\n**Tersoff_11** for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", - "description": "The *tersoff* style computes a 3-body Tersoff potential\n**Tersoff_11** for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + \\beta^n {\\zeta_{ij}}^n \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g \\left[ \\theta_{ijk}(r_{ij}, r_{ik}) \\right]\n \\exp \\left[ {\\lambda_3}^m (r_{ij} - r_{ik})^m \\right] \\\\\n g(\\theta) & = \\gamma_{ijk} \\left( 1 + \\frac{c^2}{d^2} -\n \\frac{c^2}{\\left[ d^2 + (\\cos \\theta - \\cos \\theta_0)^2\\right]} \\right) \\end{align*} \\]\nwhere \\(f_R\\) is a two-body term and \\(f_A\\) includes three-body\ninteractions. The summations in the formula are over all neighbors\nJ and K of atom I within a cutoff distance = R + D. \\(\\delta\\) is\nan optional negative shift of the equilibrium bond length, as described below.\n\nThe *tersoff/table* style uses tabulated forms for the two-body,\nenvironment and angular functions. Linear interpolation is performed\nbetween adjacent table entries. The table length is chosen to be\naccurate within 10\\^-6 with respect to the *tersoff* style energy.\nThe *tersoff/table* should give better performance in terms of speed.\n\nOnly a single pair_coeff command is used with the *tersoff* style\nwhich specifies a Tersoff potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the SiC.tersoff file has Tersoff values for Si\nand C. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.tersoff Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the Tersoff file. The final C argument maps LAMMPS atom\ntype 4 to the C element in the Tersoff file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen a *tersoff* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nTersoff files in the *potentials* directory of the LAMMPS distribution\nhave a \".tersoff\" suffix. Lines that are not blank or comments\n(starting with #) define parameters for a triplet of elements. The\nparameters in a single entry correspond to coefficients in the formula\nabove:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* m\n* \\(\\gamma\\)\n* \\(\\lambda_3\\) (1/distance units)\n* c\n* d\n* \\(\\cos\\theta_0\\) (can be a value < -1 or > 1)\n* n\n* \\(\\beta\\)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n\nThe n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A\nparameters are only used for\ntwo-body interactions. The m, \\(\\gamma\\), \\(\\lambda_3\\), c, d,\nand \\(\\cos\\theta_0\\)\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions. The\nnon-annotated parameters are unitless. The value of m must be 3 or 1.\n\nThe Tersoff potential file must contain entries for all the elements\nlisted in the pair_coeff command. It can also contain entries for\nadditional elements not being used in a particular simulation; LAMMPS\nignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify Tersoff parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction and it is bonded to the second atom and the\nbond is influenced by the third atom. Thus an entry for SiCC means Si\nbonded to a C with another C atom influencing the bond. Thus\nthree-body parameters for SiCSi and SiSiC entries will not, in\ngeneral, be the same. The parameters used for the two-body\ninteraction come from the entry where the second element is repeated.\nThus the two-body parameters for Si interacting with C, comes from the\nSiCC entry.\n\nThe parameters used for a particular\nthree-body interaction come from the entry with the corresponding\nthree elements. The parameters used only for two-body interactions\n(n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A)\nin entries whose second and third\nelement are different (e.g. SiCSi) are not used for anything and can\nbe set to 0.0 if desired.\n\nNote that the twobody parameters in entries such as SiCC and CSiSi\nare often the same, due to the common use of symmetric mixing rules,\nbut this is not always the case. For example, the beta and n parameters in\nTersoff_2 **Tersoff_21** are not symmetric.\nSimilarly, the threebody parameters in entries such as SiCSi and SiSiC\nare often the same, but this is not always the case, particularly\nthe value of R, which is sometimes typed on the\nfirst and second elements, sometimes on the first and third elements.\nHence the need to specify R and D explicitly for all element triples.\nFor example, while Tersoff's notation\nin Tersoff_2 **Tersoff_21** is ambiguous on this point,\nand properties of the zincblende lattice are the same for either choice,\nTersoff's results for rocksalt are consistent with typing on the first\nand third elements. **Albe** adopts the same convention.\nConversely, the potential for B/N/C from the Cagin group\nuses the opposite convention, typing on the first and second elements.\n\nWe chose the above form so as to enable users to define all commonly\nused variants of the Tersoff potential. In particular, our form\nreduces to the original Tersoff form when m = 3 and gamma = 1, while\nit reduces to the form of **Albe** when beta = 1 and m = 1.\nNote that in the current Tersoff implementation in LAMMPS, m must be\nspecified as either 3 or 1. Tersoff used a slightly different but\nequivalent form for alloys, which we will refer to as Tersoff_2\npotential **Tersoff_21**.\nThe *tersoff/table* style implements\nTersoff_2 parameterization only.\n\nLAMMPS parameter values for Tersoff_2 can be obtained as follows:\n\\(\\gamma_{ijk} = \\omega_{ik}\\), \\(\\lambda_3 = 0\\) and the value of\nm has no effect. The parameters for species i and j can be calculated\nusing the Tersoff_2 mixing rules:\n\\[\\begin{align*} \n \\lambda_1^{i,j} & = \\frac{1}{2}(\\lambda_1^i + \\lambda_1^j)\\\\\n \\lambda_2^{i,j} & = \\frac{1}{2}(\\lambda_2^i + \\lambda_2^j)\\\\\n A_{i,j} & = (A_{i}A_{j})^{1/2}\\\\\n B_{i,j} & = \\chi_{ij}(B_{i}B_{j})^{1/2}\\\\\n R_{i,j} & = (R_{i}R_{j})^{1/2}\\\\\n S_{i,j} & = (S_{i}S_{j})^{1/2} \\end{align*} \\]\nTersoff_2 parameters R and S must be converted to the LAMMPS\nparameters R and D (R is different in both forms), using the following\nrelations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the\nTersoff_2 parameters.\n\nIn the potentials directory, the file SiCGe.tersoff provides the\nLAMMPS parameters for Tersoff's various versions of Si, as well as his\nalloy parameters for Si, C, and Ge. This file can be used for pure Si,\n(three different versions), pure C, pure Ge, binary SiC, and binary\nSiGe. LAMMPS will generate an error if this file is used with any\ncombination involving C and Ge, since there are no entries for the GeC\ninteractions (Tersoff did not publish parameters for this\ncross-interaction.) Tersoff files are also provided for the SiC alloy\n(SiC.tersoff) and the GaN (GaN.tersoff) alloys.\n\nMany thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou\nfor helping clarify how Tersoff parameters for alloys have been\ndefined in various papers.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose\nformula is the same as the Tersoff potential. The only modification is\nthat the original equilibrium bond length ( \\(r_0\\)) of the system\nis shifted to \\(r_0-\\delta\\). The minus sign arises because each\nradial distance \\(r\\) is replaced by \\(r+\\delta\\).\n\nThe *shift* keyword is designed for simulations of closely matched van\nder Waals heterostructures. For instance, consider the case of a system\nwith few-layers graphene atop a thick hexagonal boron nitride (h-BN)\nsubstrate simulated using periodic boundary conditions. The experimental\nlattice mismatch of ~1.8% between graphene and h-BN is not well captured\nby the equilibrium lattice constants of available potentials, thus a\nsmall in-plane strain will be introduced in the system when building a\nperiodic supercell. To minimize the effect of strain on simulation\nresults, the *shift* keyword allows adjusting the equilibrium bond\nlength of one of the two materials (e.g., h-BN). Validation, benchmark\ntests, and applications of the *shift* keyword can be found in\n**Mandelli1** and **Ouyang5**.\n\nFor the specific case discussed above, the force field can be defined as\n\n```lmps\npair_style hybrid/overlay rebo tersoff shift -0.00407 ilp/graphene/hbn 16.0 coul/shield 16.0\npair_coeff * * rebo CH.rebo NULL NULL C\npair_coeff * * tersoff BNC.tersoff B N NULL\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\npair_coeff 1 1 coul/shield 0.70\npair_coeff 1 2 coul/shield 0.695\npair_coeff 2 2 coul/shield 0.69\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Tersoff_11)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(Tersoff_21)** J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248) \n \n**(Albe)** J. Nord, K. Albe, P. Erhart, and K. Nordlund, J. Phys.:\nCondens. Matter, 15, 5649(2003). \n \n**(Mandelli1)** D. Mandelli, W. Ouyang, M. Urbakh, and O. Hod, ACS Nano 13(7), 7603-7609 (2019). \n \n**(Ouyang5)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is not supported by the *tersoff/gpu*,\n*tersoff/intel*, *tersoff/kk*, *tersoff/table* or *tersoff/table/omp*\nvariants.\n\nThe *tersoff/intel* pair style is only available when compiling LAMMPS\nwith the Intel compilers.\n\nThe Tersoff potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for [\"metal\" units ](https://docs.lammps.org/units.html). In addition\nthe pair style supports converting potential parameters on-the-fly between\n\"metal\" and \"real\" units. You can use the *tersoff* pair style variants\nwith any LAMMPS units setting, but you would need to\ncreate your own Tersoff potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" or \"real\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = group or region or overlap or random or variable \n *        group args = group-ID \n *        region args = region-ID \n *        overlap args = cutoff group1-ID group2-ID \n         cutoff = delete one atom from pairs of atoms within the cutoff (distance units) \n         group1-ID = one atom in pair must be in this group \n         group2-ID = other atom in pair must be in this group \n *        random args = ranstyle value eflag group-ID region-ID seed \n         ranstyle = fraction or count \n         for fraction: \n         value = fraction (0.0 to 1.0) of eligible atoms to delete \n         eflag = no for fast approximate deletion, yes for exact deletion \n         for count: \n         value = number of atoms to delete \n         eflag = no for warning if count > eligible atoms, yes for error \n         group-ID = group within which to perform deletions \n         region-ID = region within which to perform deletions \n         or NULL to only impose the group criterion \n         seed = random number seed (positive integer) \n *        variable args = variable-name \n* zero or more keyword/value pairs may be appended\n* keyword = compress or bond or mol \n *        compress value = no or yes \n *        bond value = no or yes \n *        mol value = no or yes \n", + "examples": "\n```lmps\ndelete_atoms group edge\ndelete_atoms region sphere compress no\ndelete_atoms overlap 0.3 all all\ndelete_atoms overlap 0.5 solvent colloid\ndelete_atoms random fraction 0.1 yes all cube 482793 bond yes\ndelete_atoms random fraction 0.3 no polymer NULL 482793 bond yes\ndelete_atoms random count 500 no ions NULL 482793\ndelete_atoms variable checkers\n```\n", + "html_filename": "delete_atoms.html", + "short_description": "Delete the specified atoms", + "description": "Delete the specified atoms. This command can be used, for example, to\ncarve out voids from a block of material or to delete created atoms\nthat are too close to each other (e.g., at a grain boundary).\n\nFor style *group*, all atoms belonging to the group are deleted.\n\nFor style *region*, all atoms in the region volume are deleted.\nAdditional atoms can be deleted if they are in a molecule for which\none or more atoms were deleted within the region; see the *mol*\nkeyword discussion below.\n\nFor style *overlap* pairs of atoms whose distance of separation is\nwithin the specified cutoff distance are searched for, and one of the\n2 atoms is deleted. Only pairs where one of the two atoms is in the\nfirst group specified and the other atom is in the second group are\nconsidered. The atom that is in the first group is the one that is\ndeleted.\n\nNote that it is OK for the two group IDs to be the same (e.g., group\n*all* ), or for some atoms to be members of both groups. In these\ncases, either atom in the pair may be deleted. Also note that if\nthere are atoms which are members of both groups, the only guarantee\nis that at the end of the deletion operation, enough deletions will\nhave occurred that no atom pairs within the cutoff will remain\n(subject to the group restriction). There is no guarantee that the\nminimum number of atoms will be deleted, or that the same atoms will\nbe deleted when running on different numbers of processors.\n\nFor style *random* a subset of eligible atoms are deleted. Which\natoms to delete are chosen randomly using the specified random number\n*seed*. Which atoms are deleted may vary when running on different\nnumbers of processors.\n\nFor *ranstyle* = *fraction*, the specified fractional *value* (0.0 to\n1.0) of eligible atoms are deleted. If *eflag* is set to *no*, then\nthe number of deleted atoms will be approximate, but the operation\nwill be fast. If *eflag* is set to *yes*, then the number deleted\nwill match the requested fraction, but for large systems the selection\nof deleted atoms may take additional time to determine.\n\nFor *ranstyle* = *count*, the specified integer *value* is the number\nof eligible atoms are deleted. If *eflag* is set to *no*, then if the\nrequested number is larger then the number of eligible atoms, a\nwarning is issued and only the eligible atoms are deleted instead of\nthe requested *value*. If *eflag* is set to *yes*, an error is\ntriggered instead and LAMMPS will exit. For large systems the\nselection of atoms to delete may take additional time to determine,\nthe same as for requesting an exact fraction with *pstyle* =\n*fraction*.\n\nWhich atoms are eligible for deletion for style *random* is determined\nby the specified *group-ID* and *region-ID*. To be eligible, an atom\nmust be in both the specified group and region. If *group-ID* = all,\nthere is effectively no group criterion. If *region-ID* is specified\nas NULL, no region criterion is imposed.\n\nFor style *variable*, all atoms for which the atom-style variable with\nthe given name evaluates to non-zero will be deleted. Additional atoms\ncan be deleted if they are in a molecule for which one or more atoms\nwere deleted within the region; see the *mol* keyword discussion below.\nThis option allows complex selections of atoms not covered by the\nother options listed above.\n\n----------\n\nHere is the meaning of the optional keywords.\n\nIf the *compress* keyword is set to *yes*, then after atoms are\ndeleted, then atom IDs are re-assigned so that they run from 1 to the\nnumber of atoms in the system. Note that this is not done for\nmolecular systems (see the [atom_style ](https://docs.lammps.org/atom_style.html) command),\nregardless of the *compress* setting, since it would foul up the bond\nconnectivity that has already been assigned. However, the\n[reset_atoms id ](https://docs.lammps.org/reset_atoms.html) command can be used after this\ncommand to accomplish the same thing.\n\nNote that the re-assignment of IDs is not really a compression, where\ngaps in atom IDs are removed by decrementing atom IDs that are larger.\nInstead the IDs for all atoms are erased, and new IDs are assigned so\nthat the atoms owned by individual processors have consecutive IDs, as\nthe [create_atoms ](https://docs.lammps.org/create_atoms.html) command explains.\n\nA molecular system with fixed bonds, angles, dihedrals, or improper\ninteractions, is one where the topology of the interactions is\ntypically defined in the data file read by the [read_data](https://docs.lammps.org/read_data.html) command, and where the interactions themselves are\ndefined with the [bond_style ](https://docs.lammps.org/bond_style.html), [angle_style](https://docs.lammps.org/angle_style.html), etc. commands. If you delete atoms from such a system,\nyou must be careful not to end up with bonded interactions that are\nstored by remaining atoms but which include deleted atoms. This will\ncause LAMMPS to generate a \"missing atoms\" error when the bonded\ninteraction is computed. The *bond* and *mol* keywords offer two ways\nto do that.\n\nIt the *bond* keyword is set to *yes* then any bond or angle or\ndihedral or improper interaction that includes a deleted atom is also\nremoved from the lists of such interactions stored by non-deleted\natoms. Note that simply deleting interactions due to dangling bonds\n(e.g., at a surface) may result in a inaccurate or invalid model for\nthe remaining atoms.\n\nIt the *mol* keyword is set to *yes*, then for every atom that is\ndeleted, all other atoms in the same molecule (with the same molecule\nID) will also be deleted. This is not done for atoms with molecule ID\n= 0, since such an ID is assumed to flag isolated atoms that are not\npart of molecules.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The molecule deletion operation is invoked after all individual\n > atoms have been deleted using the rules described above for each\n > style. This means additional atoms may be deleted that are not in the\n > group or region, that are not required by the overlap cutoff\n > criterion, or that will create a higher fraction of porosity than was\n > requested. \n > \n\n", + "restrictions": "The *overlap* styles requires inter-processor communication to acquire\nghost atoms and build a neighbor list. This means that your system\nmust be ready to perform a simulation before using this command (force\nfields setup, atom masses set, etc.). Since a neighbor list is used to\nfind overlapping atom pairs, it also means that you must define a\n[pair style ](https://docs.lammps.org/pair_style.html) with the minimum force cutoff distance\nbetween any pair of atoms types (plus the [neighbor ](https://docs.lammps.org/neighbor.html)\nskin) \\(\\ge\\) the specified overlap cutoff.\n\nIf the [special_bonds ](https://docs.lammps.org/special_bonds.html) command is used with a\nsetting of 0, then a pair of bonded atoms (1--2, 1--3, or 1--4) will not\nappear in the neighbor list, and thus will not be considered for\ndeletion by the *overlap* styles. You probably do not want to\ndelete one atom in a bonded pair anyway.\n\nThe *bond yes* option cannot be used with molecular systems defined\nusing molecule template files via the [molecule ](https://docs.lammps.org/molecule.html) and\n[atom_style template ](https://docs.lammps.org/atom_style.html) commands.\n", + "related": "[create_atoms ](https://docs.lammps.org/create_atoms.html), [reset_atoms id ](https://docs.lammps.org/reset_atoms.html)\n" }, { "command": [ - "fix_modify AtC extrinsic exchange" + "compute temp", + "compute temp/kk" ], "syntax": [ - "fix_modify extrinsic exchange " + "compute ID group-ID temp" ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "extrinsic", - "type": 1, - "choices": [] - }, - { - "arg": "exchange", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "temp", "type": 3, "choices": [ - "on", - "off" + "temp", + "temp/kk" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* extrinsic exchange = name of the AtC sub-command\n* on or off = set state of energy exchange \n", - "examples": "\n```lmps\nfix_modify AtC extrinsic exchange on\n```\n", - "html_filename": "atc_extrinsic_exchange.html", - "short_description": "Switches energy exchange between the MD system and the electron system\non or off\n", - "description": "Switches energy exchange between the MD system and the electron system\non or off\n", - "restrictions": "For use only with the two_temperature type of the AtC fix (see\n[fix atc ](https://docs.lammps.org/fix_atc.html) command)\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all temp\ncompute myTemp mobile temp\n```\n", + "html_filename": "compute_temp.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms", + "description": "Define a computation that calculates the temperature of a group of\natoms. A compute of this style can be used by any command that\ncomputes a temperature, e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\netc.\n\nThe temperature is calculated by the formula\n\\[\n T = \\frac{2 E_\\mathrm{kin}}{N_\\mathrm{DOF} k_B} \\quad \\mathrm{with} \\quad\n E_\\mathrm{kin} = \\sum^{N_\\mathrm{atoms}}_{i=1} \\frac{1}{2} m_i v^2_i \\quad \\mathrm{and} \\quad\n N_\\mathrm{DOF} = n_\\mathrm{dim} N_\\mathrm{atoms} - n_\\mathrm{dim} - N_\\mathrm{fix DOFs}\\]\nwhere \\(E_\\mathrm{kin}\\) is the total kinetic energy of the group of\natoms, \\(n_\\mathrm{dim}\\) is the dimensionality of the simulation\n(i.e. either 2 or 3), \\(N_\\mathrm{atoms}\\) is the number of atoms in\nthe group, \\(N_\\mathrm{fix DOFs}\\) is the number of degrees of\nfreedom removed by fix commands (see below), \\(k_B\\) is the\nBoltzmann constant, and \\(T\\) is the resulting computed temperature.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the computation of a pressure\ntensor. The formula for the components of the tensor is the same as the\nabove expression for \\(E_\\mathrm{kin}\\), except that \\(v_i^2\\) is\nreplaced by \\(v_{i,x} v_{i,y}\\) for the \\(xy\\) component, and so on.\nThe six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\nBy default this *extra* component is initialized to\n\\(n_\\mathrm{dim}\\) (as shown in the formula above) to represent the\ndegrees of freedom removed from a system due to its translation\ninvariance due to periodic boundary conditions.\n\nA compute of this style with the ID of \"thermo_temp\" is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_temp all temp\n```\nSee the \"thermo_style\" command for more details.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length six (KE tensor), which can be accessed by indices\n1--6. These values can be used by any command that uses global scalar\nor vector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "fix add/heat" + "pair_style nm/cut", + "pair_style nm/cut/omp", + "pair_style nm/cut/split", + "pair_style nm/cut/coul/cut", + "pair_style nm/cut/coul/cut/omp", + "pair_style nm/cut/coul/long", + "pair_style nm/cut/coul/long/omp" ], "syntax": [ - "fix ID group-ID add/heat style args keyword values ..." + "pair_style style args" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "add/heat", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "quartic", + "arg": "nm/cut/coul/long/omp", "type": 3, "choices": [ - "constant", - "linear", - "quartic" + "nm/cut", + "nm/cut/split", + "nm/cut/coul/cut", + "nm/cut/coul/long", + "nm/cut/omp", + "nm/cut/coul/cut/omp", + "nm/cut/coul/long/omp" ] }, { "arg": "args", "type": 2, "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* add/heat = style name of this fix command\n* style = constant or linear or quartic \n *        constant args = rate \n         rate = rate of heat flow (energy/time units) \n *        linear args = Ttarget k \n         Ttarget = target temperature (temperature units) \n         k = prefactor (energy/(time*temperature) units) \n *        quartic args = Ttarget k \n         Ttarget = target temperature (temperature units) \n         k = prefactor (energy/(time*temperature^4) units) \n* zero or more keyword/value pairs may be appended to args\n* keyword = overwrite \n *        overwrite value = yes or no \n         yes = sets current heat flow of particle \n         no = adds to current heat flow of particle \n", - "examples": "\n```lmps\nfix 1 all add/heat constant v_heat\nfix 1 all add/heat linear 10.0 1.0 overwrite yes\n```\n", - "html_filename": "fix_add_heat.html", - "short_description": "This fix adds heat to particles with the temperature attribute every timestep\nat a given rate", - "description": "This fix adds heat to particles with the temperature attribute every timestep\nat a given rate. Note that this is an internal temperature of a particle intended\nfor use with non-atomistic models like the discrete element method.\n\nFor the *constant* style, heat is added at the specified rate. For the *linear* style,\nheat is added at a rate of \\(k (T_{target} - T)\\) where \\(k\\) is the\nspecified prefactor, \\(T_{target}\\) is the specified target temperature, and\n\\(T\\) is the temperature of the atom. This may be more representative of a\nconductive process. For the *quartic* style, heat is added at a rate of\n\\(k (T_{target}^4 - T^4)\\), akin to radiative heat transfer.\n\nThe rate or temperature can be can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each time step, and its value will be used to\ndetermine the rate of heat added.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters, time step, and elapsed time\nto specify time-dependent heating.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates to specify spatially-dependent heating.\n\nIf the *overwrite* keyword is set to *yes*, this fix will set the total\nheat flow on a particle every timestep, overwriting contributions from pair\nstyles or other fixes. If *overwrite* is *no*, this fix will add heat on\ntop of other contributions.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo global or per-atom quantities are stored by this fix for access by various\n[output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is\nnot invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This pair style is part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store temperature and heat flow\nas defined by the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command or\nincluded in certain atom styles, such as atom_style rheo/thermal.\n", - "related": "[fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html),\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html)\n" + "parameters": "* style = nm/cut or nm/cut/split or nm/cut/coul/cut or nm/cut/coul/long\n* args = list of arguments for a particular style \n *        nm/cut args = cutoff \n         cutoff = global cutoff for Pair interactions (distance units) \n *        nm/cut/split args = cutoff \n         cutoff = global cutoff for Pair interactions (distance units) \n *        nm/cut/coul/cut args = cutoff (cutoff2) \n         cutoff = global cutoff for Pair (and Coulombic if only 1 arg) (distance units) \n         cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *        nm/cut/coul/long args = cutoff (cutoff2) \n         cutoff = global cutoff for Pair (and Coulombic if only 1 arg) (distance units) \n         cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style nm/cut 12.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n\npair_style nm/cut/split 1.12246\npair_coeff 1 1 1.0 1.1246 12 6\npair_coeff * * 1.0 1.1246 11 6\n\npair_style nm/cut/coul/cut 12.0 15.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n\npair_style nm/cut/coul/long 12.0 15.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n```\n", + "html_filename": "pair_nm.html", + "short_description": "Style *nm* computes site-site interactions based on the N-M potential\nby **Clarke**, mainly used for ionic liquids", + "description": "Style *nm* computes site-site interactions based on the N-M potential\nby **Clarke**, mainly used for ionic liquids. A site can\nrepresent a single atom or a united-atom site. The energy of an\ninteraction has the following form:\n\\[\n E = \\frac{E_0}{(n-m)} \\left[ m \\left(\\frac{r_0}{r}\\right)^n - n\n \\left(\\frac{r_0}{r}\\right)^m \\right] \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff and \\(r_0\\) is the minimum of the\npotential. Please note that this differs from the convention used for\nother Lennard-Jones potentials in LAMMPS where \\(\\sigma\\) represents\nthe location where the energy is zero.\n\nStyle *nm/cut/split* applies the standard LJ (12-6) potential above\n\\(r_0 = 2^\\frac{1}{6}\\sigma\\). Style *nm/cut/split* is employed in\npolymer equilibration protocols that combine core-softening approaches\nwith topology-changing moves **Dietz**.\n\nStyle *nm/cut/coul/cut* adds a Coulombic pairwise interaction given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the 2 atoms, and epsilon is the dielectric constant which can\nbe set by the [dielectric ](https://docs.lammps.org/dielectric.html) command. If one cutoff is\nspecified in the pair_style command, it is used for both the N-M and Coulombic\nterms. If two cutoffs are specified, they are used as cutoffs for the N-M and\nCoulombic terms respectively.\n\nStyles *nm/cut/coul/long* compute the same\nCoulombic interactions as style *nm/cut/coul/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\nFor all of the *nm* pair styles, the following coefficients must\nbe defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\n* \\(E_0\\) (energy units)\n* \\(r_0\\) (distance units)\n* \\(n\\) (unitless)\n* \\(m\\) (unitless)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global\nN-M and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both N-M\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the N-M and Coulombic cutoffs for this\ntype pair. You cannot specify 2 cutoffs for style *nm*, since it\nhas no Coulombic terms.\n\nFor *nm/cut/coul/long* only the N-M cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nAll of the *nm* pair styles supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the pair\ninteraction.\n\nThe *nm/cut/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *nm* pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the energy and\npressure for the N-M portion of the pair interaction.\n\nAll of the *nm* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nAll of the *nm* pair styles can only be used via the *pair* keyword of\nthe [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n**(Clarke)** Clarke and Smith, J Chem Phys, 84, 2290 (1986). \n \n**(Dietz)** Dietz and Hoy, J. Chem Phys, 156, 014103 (2022). \n ", + "restrictions": "These pair styles are part of the EXTRA-PAIR package. They are only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair style lj/cut ](https://docs.lammps.org/pair_lj.html), [bond style fene/nm ](https://docs.lammps.org/bond_fene.html)\n" }, { "command": [ - "fix smd/integrate_tlsph" + "fix filter/corotate" ], "syntax": [ - "fix ID group-ID smd/integrate_tlsph keyword values" + "fix ID group-ID filter/corotate keyword value ..." ], "args": [ [ @@ -17403,7 +16809,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/integrate_tlsph", + "arg": "filter/corotate", "type": 1, "choices": [] }, @@ -17413,245 +16819,193 @@ export const command_docs = [ "choices": [] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/integrate_tlsph = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = limit_velocity \n *      limit_velocity value = max_vel \n       max_vel = maximum allowed velocity \n", - "examples": "\n```lmps\nfix 1 all smd/integrate_tlsph\nfix 1 all smd/integrate_tlsph limit_velocity 1000\n```\n", - "html_filename": "fix_smd_integrate_tlsph.html", - "short_description": "The fix performs explicit time integration for particles which\ninteract according with the Total-Lagrangian SPH pair style", - "description": "The fix performs explicit time integration for particles which\ninteract according with the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\nThe *limit_velocity* keyword will control the velocity, scaling the\nnorm of the velocity vector to max_vel in case it exceeds this\nvelocity limit.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is incompatible with deformation controls that remap velocity,\nfor instance the *remap v* option of [fix deform ](https://docs.lammps.org/fix_deform.html).\n", - "related": "[smd/integrate_ulsph ](https://docs.lammps.org/fix_smd_integrate_ulsph.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* one or more constraint/value pairs are appended\n* constraint = b or a or t or m \n *        b values = one or more bond types \n *        a values = one or more angle types \n *        t values = one or more atom types \n *        m value = one or more mass values \n", + "examples": "\n```lmps\ntimestep 8\nrun_style respa 3 2 8 bond 1 pair 2 kspace 3\nfix cor all filter/corotate m 1.0\n\nfix cor all filter/corotate b 4 19 a 3 5 2\n```\n", + "html_filename": "fix_filter_corotate.html", + "short_description": "This fix implements a corotational filter for a mollified impulse\nmethod", + "description": "This fix implements a corotational filter for a mollified impulse\nmethod. In biomolecular simulations, it allows the usage of larger\ntimesteps for long-range electrostatic interactions. For details, see\n**Fath2017**.\n\nWhen using [run_style respa ](https://docs.lammps.org/run_style.html) for a biomolecular\nsimulation with high-frequency covalent bonds, the outer time-step is\nrestricted to below ~ 4fs due to resonance problems. This fix filters\nthe outer stage of the respa and thus a larger (outer) time-step can\nbe used. Since in large biomolecular simulations the computation of\nthe long-range electrostatic contributions poses a major bottleneck,\nthis can significantly accelerate the simulation.\n\nThe filter computes a cluster decomposition of the molecular structure\nfollowing the criteria indicated by the options a, b, t and m. This\nprocess is similar to the approach in [fix shake ](https://docs.lammps.org/fix_shake.html),\nhowever, the clusters are not kept constrained. Instead, the position\nis slightly modified only for the computation of long-range forces. A\ngood cluster decomposition constitutes in building clusters which\ncontain the fastest covalent bonds inside clusters.\n\nIf the clusters are chosen suitably, the [run_style respa ](https://docs.lammps.org/run_style.html) is stable for outer timesteps of at least 8fs.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to these fixes. No global or per-atom quantities are\nstored by these fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of these fixes can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. These\nfixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Fath2017)** Fath, Hochbruck, Singh, J Comp Phys, 333, 180-198 (2017). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCurrently, it does not support [molecule templates ](https://docs.lammps.org/molecule.html).\n", + "related": "none" }, { "command": [ - "fix_modify AtC track_displacement" + "pair_style table/rx", + "pair_style table/rx/kk" ], "syntax": [ - "fix_modify track_displacement " + "pair_style table style N ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "table", "type": 2, "choices": [] }, { - "arg": "track_displacement", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "spline", "type": 3, "choices": [ - "on", - "off" + "lookup", + "linear", + "spline" ] + }, + { + "arg": "N", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* track_displacement = name of the AtC sub-command\n* on or off = (undocumented) \n", - "examples": "\n```lmps\nfix_modify AtC track_displacement on\n```\n", - "html_filename": "atc_track_displacement.html", - "short_description": "Determines whether displacement is tracked or not", - "description": "Determines whether displacement is tracked or not. For solids problems\nthis is a useful quantity, but for fluids it is not relevant.\n", - "restrictions": "Some constitutive models require the displacement field.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* style = lookup or linear or spline or bitmap = method of interpolation\n* N = use N values in lookup, linear, spline tables\n* weighting = fractional or molecular (optional) \n", + "examples": "\n```lmps\npair_style table/rx linear 1000\npair_style table/rx linear 1000 fractional\npair_style table/rx linear 1000 molecular\npair_coeff * * rxn.table ENTRY1 h2o h2o 10.0\npair_coeff * * rxn.table ENTRY1 1fluid 1fluid 10.0\npair_coeff * 3 rxn.table ENTRY1 h2o no2 10.0\n```\n", + "html_filename": "pair_table_rx.html", + "short_description": "Style *table/rx* is used in reaction DPD simulations,where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command", + "description": "Style *table/rx* is used in reaction DPD simulations,where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command. The species of\none CG particle can interact with a species in a neighboring CG\nparticle through a site-site interaction potential model. Style\n*table/rx* creates interpolation tables of length *N* from pair\npotential and force values listed in a file(s) as a function of\ndistance. The files are read by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and force values at each of *N*\ndistances. During a simulation, these tables are used to interpolate\nenergy and force values as needed. The interpolation is done in one\nof 4 styles: *lookup*, *linear*, *spline*, or *bitmap* .\n\nFor the *lookup* style, the distance between 2 atoms is used to find\nthe nearest table entry, which is the energy or force.\n\nFor the *linear* style, the pair distance is used to find 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The pair distance is\nused to find the appropriate set of coefficients which are used to\nevaluate a cubic polynomial which computes the energy or force.\n\nFor the *bitmap* style, the N means to create interpolation tables\nthat are 2\\^N in length. The pair distance is used to index into the\ntable via a fast bit-mapping technique **Wolff** and a linear\ninterpolation is performed between adjacent table values.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* species1\n* species2\n* cutoff (distance units)\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The cutoff is\nan optional coefficient. If not specified, the outer cutoff in the\ntable itself (see below) will be used to build an interpolation table\nthat extend to the largest tabulated distance. If specified, only\nfile values up to the cutoff are used to create the interpolation\ntable. The format of this file is described below.\n\nThe species tags define the site-site interaction potential between\ntwo species contained within two different particles. The species\ntags must either correspond to the species defined in the reaction\nkinetics files specified with the [fix rx ](https://docs.lammps.org/fix_rx.html) command or they\nmust correspond to the tag \"1fluid\", signifying interaction with a\nproduct species mixture determined through a one-fluid approximation.\nThe interaction potential is weighted by the geometric average of\neither the mole fraction concentrations or the number of molecules\nassociated with the interacting coarse-grained particles (see the\n*fractional* or *molecular* weighting pair style options). The coarse-grained potential is\nstored before and after the reaction kinetics solver is applied, where\nthe difference is defined to be the internal chemical energy (uChem).\n\n----------\n\nHere are some guidelines for using the pair_style table/rx command to\nbest effect:\n\n* Vary the number of table points; you may need to use more than you think\n to get good resolution.\n* Always use the [pair_write ](https://docs.lammps.org/pair_write.html) command to produce a plot\n of what the final interpolated potential looks like. This can show up\n interpolation \"features\" you may not like.\n* Start with the linear style; it's the style least likely to have problems.\n* Use *N* in the pair_style command equal to the \"N\" in the tabulation\n file, and use the \"RSQ\" or \"BITMAP\" parameter, so additional interpolation\n is not needed. See discussion below.\n* Make sure that your tabulated forces and tabulated energies are consistent\n (dE/dr = -F) along the entire range of r values.\n* Use as large an inner cutoff as possible. This avoids fitting splines\n to very steep parts of the potential.\n\n----------\n\nThe format of a tabulated file is a series of one or more sections,\ndefined as follows (without the parenthesized comments):\n\n```\n# Morse potential for Fe (one or more comment or blank lines)\n\nMORSE_FE (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ, BITMAP, FPRIME parameters)\n(blank)\n1 1.0 25.5 102.34 (index, r, energy, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style table/rx ](https://docs.lammps.org/pair_style.html) command. Let\nNtable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and force\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual pair distances. This means that if you want the\ninterpolation tables of length Ntable to match exactly what is in the\ntabulated file (with effectively no preliminary interpolation), you\nshould set Ntable = Nfile, and use the \"RSQ\" or \"BITMAP\" parameter.\nThe internal table abscissa is RSQ (separation distance squared).\n\nAll other parameters are optional. If \"R\" or \"RSQ\" or \"BITMAP\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *r* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo*\nand *rhi* . If specified, the distance associated with each energy and\nforce value is computed from these 2 values (at high accuracy), rather\nthan using the (low-accuracy) value listed in each line of the table.\nThe distance values in the table file are ignored in this case.\nFor \"R\", distances uniformly spaced between *rlo* and *rhi* are\ncomputed; for \"RSQ\", squared distances uniformly spaced between\n*rlo\\*rlo* and *rhi\\*rhi* are computed.\n\nIf used, the parameter \"BITMAP\" is also followed by 2 values *rlo* and\n*rhi* . These values, along with the \"N\" value determine the ordering\nof the N lines that follow and what distance is associated with each.\nThis ordering is complex, so it is not documented here, since this\nfile is typically produced by the [pair_write ](https://docs.lammps.org/pair_write.html) command\nwith its *bitmap* option. When the table is in BITMAP format, the \"N\"\nparameter in the file must be equal to 2\\^M where M is the value\nspecified in the pair_style command. Also, a cutoff parameter cannot\nbe used as an optional third argument in the pair_coeff command; the\nentire table extent as specified in the file must be used.\n\nIf used, the parameter \"FPRIME\" is followed by 2 values *fplo* and\n*fphi* which are the derivative of the force at the innermost and\noutermost distances listed in the table. These values are needed by\nthe spline construction routines. If not specified by the \"FPRIME\"\nparameter, they are estimated (less accurately) by the first 2 and\nlast 2 force values in the table. This parameter is not used by\nBITMAP tables.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in distance units), the third value is the energy (in energy units),\nand the fourth is the force (in force units). The r values must increase\nfrom one line to the next (unless the BITMAP parameter is specified).\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style table/rx\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Wolff)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n ", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute temp/rotate" + "fix_modify AtC mesh create_nodeset" ], "syntax": [ - "compute ID group-ID temp/rotate" + "fix_modify mesh create_nodeset " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "temp/rotate", + "arg": "mesh", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/rotate = style name of this compute command \n", - "examples": "\n```lmps\ncompute Tbead bead temp/rotate\n```\n", - "html_filename": "compute_temp_rotate.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity and angular velocity\nof the group", - "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity and angular velocity\nof the group. This is useful if the group is expected to have a non-zero net\nvelocity and/or global rotation motion for some reason. A compute of this\nstyle can be used by any command that computes a temperature\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nAfter the center-of-mass velocity and angular velocity has been subtracted from\neach atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the center-of-mass velocity and angular velocity by this fix is\nessentially computing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1-6. These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" -}, -{ - "command": [ - "fix wall/reflect", - "fix wall/reflect/kk" - ], - "syntax": [ - "fix ID group-ID wall/reflect face arg ... keyword value ..." - ], - "args": [ - [ + }, { - "arg": "fix", + "arg": "create_nodeset", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "wall/reflect", - "type": 3, - "choices": [ - "wall/reflect", - "wall/reflect/kk" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "zhi", - "type": 3, - "choices": [ - "xlo", - "xhi", - "ylo", - "yhi", - "zlo", - "zhi" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "arg", + "arg": "", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/reflect = style name of this fix command\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        arg = EDGE or constant or variable \n         EDGE = current lo edge of simulation box \n         constant = number like 0.0 or 30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", - "examples": "\n```lmps\nfix xwalls all wall/reflect xlo EDGE xhi EDGE\nfix walls all wall/reflect xlo 0.0 ylo 10.0 units box\nfix top all wall/reflect zhi v_pressdown\n```\n", - "html_filename": "fix_wall_reflect.html", - "short_description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them", - "description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them.\n\nReflection means that if an atom moves outside the wall on a timestep\nby a distance delta (e.g. due to [fix nve ](https://docs.lammps.org/fix_nve.html)), then it is\nput back inside the face by the same delta, and the sign of the\ncorresponding component of its velocity is flipped.\n\nWhen used in conjunction with [fix nve ](https://docs.lammps.org/fix_nve.html) and\n[run_style verlet ](https://docs.lammps.org/run_style.html), the resultant time-integration\nalgorithm is equivalent to the primitive splitting algorithm (PSA)\ndescribed by **Bond1**. Because each reflection event\ndivides the corresponding timestep asymmetrically, energy conservation\nis only satisfied to O(dt), rather than to O(dt\\^2) as it would be for\nvelocity-Verlet integration without reflective walls.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face reflects particles\nthat move to a coordinate less than the wall position, back in the\n*hi* direction. A *hi* face reflects particles that move to a\ncoordinate higher than the wall position, back in the *lo* direction.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant or\nvariable is used. It is not relevant when EDGE is used to specify a\nface position. In the variable case, the variable is assumed to\nproduce a value compatible with the *units* setting you specify.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html).\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall/reflect xlo v_ramp\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall/reflect xlo v_linear\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall/reflect xlo v_wiggle\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall/reflect xlo v_wiggle\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo* to\n*hi* over the course of a run. The *vdisplace(c0,velocity)* function does\nsomething similar using the equation *position = c0 + velocity\\*delta*,\nwhere *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Bond1)** Bond and Leimkuhler, SIAM J Sci Comput, 30, p 134 (2007). \n ", - "restrictions": "Any dimension (xyz) that has a reflecting wall must be non-periodic.\n\nA reflecting wall should not be used with rigid bodies such as those\ndefined by a \"fix rigid\" command. This is because the wall/reflect\ndisplaces atoms directly rather than exerts a force on them. For\nrigid bodies, use a soft wall instead, such as [fix wall/lj93](https://docs.lammps.org/fix_wall.html). LAMMPS will flag the use of a rigid fix with fix\nwall/reflect with a warning, but will not generate an error.\n", - "related": "[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html), [fix oneway ](https://docs.lammps.org/fix_oneway.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_nodeset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains only the desired nodes \n", + "examples": "\n```lmps\nfix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -12 12 -12 12\n```\n", + "html_filename": "atc_mesh_create_nodeset.html", + "short_description": "Command to assign an id to a set of FE nodes to be used subsequently in\ndefining boundary conditions", + "description": "Command to assign an id to a set of FE nodes to be used subsequently in\ndefining boundary conditions.\n", + "restrictions": "None\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh add_to_nodeset ](https://docs.lammps.org/atc_mesh_add_to_nodeset.html)\n" }, { "command": [ - "group2ndx" + "compute tdpd/cc/atom" ], "syntax": [ - "group2ndx file args" + "compute ID group-ID tdpd/cc/atom index" ], "args": [ [ { - "arg": "group2ndx", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "file", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* file = name of index file to write out or read in\n* args = zero or more group IDs may be appended \n", - "examples": "\n```lmps\ngroup2ndx allindex.ndx\ngroup2ndx someindex.ndx upper lower mobile\nndx2group someindex.ndx\nndx2group someindex.ndx mobile\n```\n", - "html_filename": "group2ndx.html", - "short_description": "Write or read a Gromacs style index file in text format that associates\natom IDs with the corresponding group definitions", - "description": "Write or read a Gromacs style index file in text format that associates\natom IDs with the corresponding group definitions. This index file can be\nused with in combination with Gromacs analysis tools or to import group\ndefinitions into the [fix colvars ](https://docs.lammps.org/fix_colvars.html) input file.\n\nIt can also be used to save and restore group definitions for static groups\nusing the individual atom IDs. This may be important if the original\ngroup definition depends on a region or otherwise on the geometry and thus\ncannot be easily recreated.\n\nAnother application would be to import atom groups defined for Gromacs\nsimulation into LAMMPS. When translating Gromacs topology and geometry\ndata to LAMMPS.\n\nThe *group2ndx* command will write group definitions to an index file.\nWithout specifying any group IDs, all groups will be written to the\nindex file. When specifying group IDs, only those groups will be\nwritten to the index file. In order to follow the Gromacs conventions,\nthe group *all* will be renamed to *System* in the index file.\n\nThe *ndx2group* command will create of update group definitions from\nthose stored in an index file. Without specifying any group IDs, all\ngroups except *System* will be read from the index file and the\ncorresponding groups recreated. If a group of the same name already\nexists, it will be completely reset. When specifying group IDs, those\ngroups, if present, will be read from the index file and restored.\n\n #### File Format\n\nThe file format is equivalent and compatible with what is produced by\nthe [Gromacs make_ndx command](https://manual.gromacs.org/current/onlinehelp/gmx-make_ndx.html).\nand follows the [Gromacs definition of an ndx file](https://manual.gromacs.org/current/reference-manual/file-formats.html#ndx)\n\nEach group definition begins with the group name in square brackets with\nblanks, e.g. \\[ water \\] and is then followed by the list of atom\nindices, which may be spread over multiple lines. Here is a small\nexample file:\n\n```ini\n[ Oxygen ]\n1 4 7\n[ Hydrogen ]\n2 3 5 6\n8 9\n[ Water ]\n1 2 3 4 5 6 7 8 9\n```\nThe index file defines 3 groups: Oxygen, Hydrogen, and Water and the\nlatter happens to be the union of the first two.\n\n----------\n", - "restrictions": "These commands require that atoms have atom IDs, since this is the\ninformation that is written to the index file.\n\nThese commands are part of the EXTRA-COMMAND package. They are only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[group ](https://docs.lammps.org/group.html), [dump ](https://docs.lammps.org/dump.html), [fix colvars ](https://docs.lammps.org/fix_colvars.html)\n" -}, -{ - "command": [ - "pair_style threebody/table" - ], - "syntax": [ - "pair_style style" - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "tdpd/cc/atom", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "index", "type": 2, "choices": [] } ] ], - "parameters": "* style = threebody/table \n", - "examples": "\n```lmps\npair_style threebody/table\npair_coeff * * spce2.3b type1 type2\n\npair_style hybrid/overlay table linear 1200 threebody/table\npair_coeff 1 1 table table_CG_CG.txt VOTCA\npair_coeff * * threebody/table spce.3b type\n```\nUsed in example input scripts:\n\n```\nexamples/PACKAGES/manybody_table/in.spce\nexamples/PACKAGES/manybody_table/in.spce2\n```\n", - "html_filename": "pair_threebody_table.html", - "short_description": "\nThe *threebody/table* style is a pair style for generic tabulated\nthree-body interactions", - "description": "\nThe *threebody/table* style is a pair style for generic tabulated\nthree-body interactions. It has been developed for (coarse-grained)\nsimulations (of water) with Kernel-based machine learning (ML)\npotentials (**Scherer2**). As for many other MANYBODY\npackage pair styles the energy of a system is computed as a sum over\nthree-body terms:\n\\[\n E = \\sum_i \\sum_{j \\neq i} \\sum_{k > j} \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk})\\]\nThe summations in the formula are over all neighbors J and K of atom I\nwithin a cutoff distance \\(cut\\). In contrast to the\nStillinger-Weber potential, all forces are not calculated analytically,\nbut read in from a three-body force/energy table which can be generated\nwith the csg_ml app of VOTCA as available at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca.\n\nOnly a single pair_coeff command is used with the *threebody/table*\nstyle which specifies a threebody potential (\".3b\") file with parameters\nfor all needed elements. These are then mapped to LAMMPS atom types by\nspecifying N_el additional arguments after the \".3b\" filename in the\npair_coeff command, where N_el is the number of LAMMPS atom types:\n\n* \".3b\" filename\n* N_el element names = mapping of threebody elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, imagine a file SiC.3b has three-body values for Si and C.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Si, and the fourth to be C, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * SiC.3b Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the \".3b\" file. The final C argument maps LAMMPS atom type 4\nto the C element in the threebody file. If a mapping value is specified\nas NULL, the mapping is not performed. This can be used when a\n*threebody/table* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nThe three-body files have a \".3b\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry specify to the (three-body)\ncutoff distance and the tabulated three-body interaction. A single entry\nthen contains:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* cut (distance units)\n* filename\n* keyword\n* style\n* N\n\nThe parameter \\(cut\\) is the (three-body) cutoff distance. When set\nto 0, no interaction is calculated for this element triplet. The\nparameters *filename*, *keyword*, *style*, and *N* refer to the\ntabulated three-body potential.\n\nThe tabulation is done on a three-dimensional grid of the two distances\n\\(r_{ij}\\) and \\(r_{ik}\\) as well as the angle\n\\(\\theta_{ijk}\\) which is constructed in the following way. There\nare two different cases. If element 2 and element 3 are of the same\ntype (e.g. SiCC), the distance \\(r_{ij}\\) is varied in \"N\" steps\nfrom rmin to rmax and the distance \\(r_{ik}\\) is varied from\n\\(r_{ij}\\) to rmax. This can be done, due to the symmetry of the\ntriplet. If element 2 and element 3 are not of the same type\n(e.g. SiCSi), there is no additional symmetry and the distance\n\\(r_{ik}\\) is also varied from rmin to rmax in \"N\" steps. The angle\n\\(\\theta_{ijk}\\) is always varied in \"2N\" steps from (0.0 +\n180.0/(4N)) to (180.0 - 180.0/(4N)). Therefore, the total number of\ntable entries is \"M = N * N * (N+1)\" for the symmetric (element 2 and\nelement 3 are of the same type) and \"M = 2 * N * N * N\" for the general\ncase (element 2 and element 3 are not of the same type).\n\nThe forces on all three particles I, J, and K of a triplet of this type\nof three-body interaction potential (\\(\\phi_3 (r_{ij}, r_{ik},\n\\theta_{ijk})\\)) lie within the plane defined by the three inter-particle\ndistance vectors \\({\\mathbf r}_{ij}\\), \\({\\mathbf r}_{ik}\\), and\n\\({\\mathbf r}_{jk}\\). This property is used to project the forces\nonto the inter-particle distance vectors as follows\n\\[\\begin{align*} \n \\begin{pmatrix}\n {\\mathbf f}_{i} \\\\\n {\\mathbf f}_{j} \\\\\n {\\mathbf f}_{k} \\\\\n \\end{pmatrix} =\n \\begin{pmatrix}\n f_{i1} & f_{i2} & 0 \\\\\n f_{j1} & 0 & f_{j2} \\\\\n 0 & f_{k1} & f_{k2} \\\\\n \\end{pmatrix}\n \\begin{pmatrix}\n {\\mathbf r}_{ij} \\\\\n {\\mathbf r}_{ik} \\\\\n {\\mathbf r}_{jk} \\\\\n \\end{pmatrix} \\end{align*} \\]\nand then tabulate the 6 force constants \\(f_{i1}\\), \\(f_{i2}\\),\n\\(f_{j1}\\), \\(f_{j2}\\), \\(f_{k1}\\), and \\(f_{k2}\\), as\nwell as the energy of a triplet e. Due to symmetry reasons, the\nfollowing relations hold: \\(f_{i1}=-f_{j1}\\),\n\\(f_{i2}=-f_{k1}\\), and \\(f_{j2}=-f_{k2}\\). As in this pair\nstyle the forces are read in directly, a correct MD simulation is also\nperformed in the case that the triplet energies are set to e=0.\n\nThe *filename* specifies the file containing the tabulated energy and\nderivative values of \\(\\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk})\\). The\n*keyword* then specifies a section of the file. The format of this file\nis as follows (without the parenthesized comments):\n\n```\n# Tabulated three-body potential for spce water (one or more comment or blank lines)\n\nENTRY1 (keyword is the first text on line)\nN 12 rmin 2.55 rmax 3.65 (N, rmin, rmax parameters)\n(blank line)\n1 2.55 2.55 3.75 -867.212 -611.273 867.212 21386.8 611.273 -21386.8 0.0 (index, r_ij, r_ik, theta, f_i1, f_i2, f_j1, f_j2, f_k1, f_k2, e)\n2 2.55 2.55 11.25 -621.539 -411.189 621.539 5035.95 411.189 -5035.95 0.0\n...\n1872 3.65 3.65 176.25 -0.00215132 -0.00412886 0.00215137 0.00111754 0.00412895 -0.00111757 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required. It should be the same than the parameter\n\"N\" of the \".3b\" file, otherwise its value is overwritten. \"N\"\ndetermines the number of table entries \"M\" that follow: \"M = N * N *\n(N+1)\" (symmetric triplet, e.g. SiCC) or \"M = 2 * N * N * N\" (asymmetric\ntriplet, e.g. SiCSi). Therefore \"M = 12 * 12 * 13 = 1872\" in the above\nsymmetric example. The parameters \"rmin\" and \"rmax\" are also required\nand determine the minimum and maximum of the inter-particle distances\n\\(r_{ij}\\) and \\(r_{ik}\\).\n\nFollowing a blank line, the next M lines of the angular table file list\nthe tabulated values. On each line, the first value is the index from 1\nto M, the second value is the distance \\(r_{ij}\\), the third value\nis the distance \\(r_{ik}\\), the fourth value is the angle\n\\(\\theta_{ijk})\\), the next six values are the force constants\n\\(f_{i1}\\), \\(f_{i2}\\), \\(f_{j1}\\), \\(f_{j2}\\),\n\\(f_{k1}\\), and \\(f_{k2}\\), and the last value is the energy e.\n\nNote that one three-body potential file can contain many sections, each\nwith a tabulated potential. LAMMPS reads the file section by section\nuntil it finds one that matches the specified *keyword* of appropriate\nsection of the \".3b\" file.\n\nAt the moment, only the *style* *linear* is allowed and\nimplemented. After reading in the force table, it is internally stored\nin LAMMPS as a lookup table. For each triplet configuration occurring in\nthe simulation within the cutoff distance, the next nearest tabulated\ntriplet configuration is looked up. No interpolation is done. This\nallows for a very efficient force calculation with the stored force\nconstants and energies. Due to the know table structure, the lookup can\nbe done efficiently. It has been tested (**Scherer2**)\nthat with a reasonably small bin size, the accuracy and speed is\ncomparable to that of a Stillinger-Weber potential with tabulated\nthree-body interactions ([pair_style sw/angle/table](https://docs.lammps.org/pair_sw_angle_table.html)) while the table format of this pair style allows\nfor more flexible three-body interactions.\n\nAs for the Stillinger-Weber potential, the three-body potential file\nmust contain entries for all the elements listed in the pair_coeff\ncommand. It can also contain entries for additional elements not being\nused in a particular simulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify threebody parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom in\na three-body interaction. Thus an entry for SiCC means a Si atom with 2\nC atoms as neighbors. The tabulated three-body forces can in principle\nbe specific to the three elements of the configuration. However, the\nuser must ensure that it makes physically sense. E.g., the tabulated\nthree-body forces for the entries CSiC and CCSi should be the same\nexchanging \\(r_{ij}\\) with r_{ik}, \\(f_{j1}\\) with\n\\(f_{k1}\\), and \\(f_{j2}\\) with \\(f_{k2}\\).\n\nAdditional input files and reference data can be found at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/ml\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nAs all interactions are tabulated, no mixing is performed.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Scherer2)** C. Scherer, R. Scheid, D. Andrienko, and T. Bereau, J. Chem. Theor. Comp. 16, 3194-3204 (2020). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair sw/angle/table ](https://docs.lammps.org/pair_sw_angle_table.html)\n\n\n----------\n\n.. _Scherer2:\n\n**(Scherer2)** C. Scherer, R. Scheid, D. Andrienko, and T. Bereau, J. Chem. Theor. Comp. 16, 3194-3204 (2020).\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* tdpd/cc/atom = style name of this compute command\n* index = index of chemical species (1 to Nspecies) \n", + "examples": "\n```lmps\ncompute 1 all tdpd/cc/atom 2\n```\n", + "html_filename": "compute_tdpd_cc_atom.html", + "short_description": "Define a computation that calculates the per-atom chemical\nconcentration of a specified species for each tDPD particle in a\ngroup", + "description": "Define a computation that calculates the per-atom chemical\nconcentration of a specified species for each tDPD particle in a\ngroup.\n\nThe chemical concentration of each species is defined as the number of\nmolecules carried by a tDPD particle for dilute solution. For more\ndetails see **Li2015a**.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in the units of chemical species\nper unit mass.\n\n**(Li2015a)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143:\n014101 (2015). DOI: 10.1063/1.4923254 \n ", + "restrictions": "This compute is part of the DPD-MESO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html)\n" }, { "command": [ - "fix smd/move_tri_surf" + "compute smd/tlsph/stress" ], "syntax": [ - "fix ID group-ID smd/move_tri_surf keyword" + "compute ID group-ID smd/tlsph/stress" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -17666,338 +17020,415 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/move_tri_surf", + "arg": "smd/tlsph/stress", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/stress = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/stress\n```\n", + "html_filename": "compute_smd_tlsph_stress.html", + "short_description": "Define a computation that outputs the Cauchy stress tensor for\nparticles interacting via the Total-Lagrangian SPH pair style", + "description": "Define a computation that outputs the Cauchy stress tensor for\nparticles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of pressure.\n\nThe per-particle vector has 7 entries. The first six entries\ncorrespond to the xx, yy, zz, xy, xz and yz components of the\nsymmetric Cauchy stress tensor. The seventh entry is the second\ninvariant of the stress tensor, i.e., the von Mises equivalent stress.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", + "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html), [cmopute smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html)\n" +}, +{ + "command": [ + "comm_style" + ], + "syntax": [ + "comm_style style" + ], + "args": [ + [ + { + "arg": "comm_style", "type": 1, "choices": [] }, { - "arg": "\\*ROTATE", + "arg": "tiled", "type": 3, "choices": [ - "\\*LINEAR", - "\\*WIGGLE", - "\\*ROTATE" + "brick", + "tiled" ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/move_tri_surf keyword = style name of this fix command\n* keyword = \\*LINEAR or \\*WIGGLE or \\*ROTATE \n *         \\*LINEAR args = Vx Vy Vz \n          Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *         \\*WIGGLE args = Vx Vy Vz max_travel \n          vx,vy,vz = components of velocity vector (velocity units), any component can be specified as NULL \n          max_travel = wiggle amplitude \n *         \\*ROTATE args = Px Py Pz Rx Ry Rz period \n          Px,Py,Pz = origin point of axis of rotation (distance units) \n          Rx,Ry,Rz = axis of rotation vector \n          period = period of rotation (time units) \n", - "examples": "\n```lmps\nfix 1 tool smd/move_tri_surf *LINEAR 20 20 10\nfix 2 tool smd/move_tri_surf *WIGGLE 20 20 10\nfix 2 tool smd/move_tri_surf *ROTATE 0 0 0 5 2 1\n```\n", - "html_filename": "fix_smd_move_triangulated_surface.html", - "short_description": "This fix applies only to rigid surfaces read from .STL files via fix\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) ", - "description": "This fix applies only to rigid surfaces read from .STL files via fix\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) . It updates position\nand velocity for the particles in the group each timestep without\nregard to forces on the particles. The rigid surfaces can thus be\nmoved along simple trajectories during the simulation.\n\nThe *\\*LINEAR* style moves particles with the specified constant velocity\nvector V = (Vx,Vy,Vz). This style also sets the velocity of each particle\nto V = (Vx,Vy,Vz).\n\nThe *\\*WIGGLE* style moves particles in an oscillatory fashion.\nParticles are moved along (vx, vy, vz) with constant velocity until a\ndisplacement of max_travel is reached. Then, the velocity vector is\nreversed. This process is repeated.\n\nThe *\\*ROTATE* style rotates particles around a rotation axis R =\n(Rx,Ry,Rz) that goes through a point P = (Px,Py,Pz). The period of the\nrotation is also specified. This style also sets the velocity of each\nparticle to (omega cross Rperp) where omega is its angular velocity\naround the rotation axis and Rperp is a perpendicular vector from the\nrotation axis to the particle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[smd/triangle_mesh_vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html),\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)\n" + "parameters": "* style = brick or tiled \n", + "examples": "\n```lmps\ncomm_style brick\ncomm_style tiled\n```\n", + "html_filename": "comm_style.html", + "short_description": "This command sets the style of inter-processor communication of atom\ninformation that occurs each timestep as coordinates and other\nproperties are exchanged between neighboring processors and stored as\nproperties of ghost atoms", + "description": "This command sets the style of inter-processor communication of atom\ninformation that occurs each timestep as coordinates and other\nproperties are exchanged between neighboring processors and stored as\nproperties of ghost atoms.\n\nFor the default *brick* style, the domain decomposition used by LAMMPS\nto partition the simulation box must be a regular 3d grid of bricks,\none per processor. Each processor communicates with its 6 Cartesian\nneighbors in the grid to acquire information for nearby atoms.\n\nFor the *tiled* style, a more general domain decomposition can be\nused, as triggered by the [balance ](https://docs.lammps.org/balance.html) or [fix balance ](https://docs.lammps.org/fix_balance.html) commands. The simulation box can be\npartitioned into non-overlapping rectangular-shaped \"tiles\" or varying\nsizes and shapes. Again there is one tile per processor. To acquire\ninformation for nearby atoms, communication must now be done with a\nmore complex pattern of neighboring processors.\n\nNote that this command does not actually define a partitioning of the\nsimulation box (a domain decomposition), rather it determines what\nkinds of decompositions are allowed and the pattern of communication\nused to enable the decomposition. A decomposition is created when the\nsimulation box is first created, via the [create_box ](https://docs.lammps.org/create_box.html)\nor [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands. For both the *brick* and *tiled* styles, the initial\ndecomposition will be the same, as described by\n[create_box ](https://docs.lammps.org/create_box.html) and [processors ](https://docs.lammps.org/processors.html)\ncommands. The decomposition can be changed via the\n[balance ](https://docs.lammps.org/balance.html) or [fix balance ](https://docs.lammps.org/fix_balance.html) commands.\n", + "restrictions": "None\n", + "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html), [processors ](https://docs.lammps.org/processors.html),\n[balance ](https://docs.lammps.org/balance.html), [fix balance ](https://docs.lammps.org/fix_balance.html)\n" }, { "command": [ - "compute nbond/atom" + "pair_style born/coul/dsf/cs", + "pair_style born/coul/long/cs", + "pair_style born/coul/long/cs/gpu", + "pair_style born/coul/wolf/cs", + "pair_style born/coul/wolf/cs/gpu", + "pair_style buck/coul/long/cs", + "pair_style coul/long/cs", + "pair_style coul/long/cs/gpu", + "pair_style coul/wolf/cs", + "pair_style lj/cut/coul/long/cs" ], "syntax": [ - "compute ID group-ID nbond/atom keyword value" + "pair_style style args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "coul/long/cs/gpu", + "type": 3, + "choices": [ + "born/coul/dsf/cs", + "born/coul/long/cs", + "born/coul/wolf/cs", + "buck/coul/long/cs", + "coul/long/cs", + "coul/wolf/cs", + "lj/cut/coul/long/cs", + "lj/class2/coul/long/cs", + "born/coul/long/cs/gpu", + "born/coul/wolf/cs/gpu", + "coul/long/cs/gpu" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = born/coul/dsf/cs or born/coul/long/cs or born/coul/wolf/cs or buck/coul/long/cs or coul/long/cs or coul/wolf/cs or lj/cut/coul/long/cs or lj/class2/coul/long/cs\n* args = list of arguments for a particular style \n *      born/coul/dsf/cs args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n *      born/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/wolf/cs args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *coul/long* args = cutoff \n       cutoff = global cutoff for Coulombic (distance units) \n *      *coul/wolf* args = alpha cutoff \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for Coulombic (distance units) \n *      lj/cut/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style born/coul/dsf/cs 0.1 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n\npair_style born/coul/long/cs 10.0 8.0\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/wolf/cs 0.25 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n\npair_style buck/coul/long/cs 10.0\npair_style buck/coul/long/cs 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n\npair_style coul/long/cs 10.0\npair_coeff * *\n\npair_style coul/wolf/cs 0.2 9.0\npair_coeff * *\n\npair_style lj/cut/coul/long/cs 10.0\npair_style lj/cut/coul/long/cs 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", + "html_filename": "pair_cs.html", + "short_description": "These pair styles are designed to be used with the adiabatic\ncore/shell model of **MitchellFincham3**", + "description": "These pair styles are designed to be used with the adiabatic\ncore/shell model of **MitchellFincham3**. See\nthe [Howto coreshell ](https://docs.lammps.org/Howto_coreshell.html) page for an overview of\nthe model as implemented in LAMMPS.\n\nAll the styles are identical to the corresponding pair style without\nthe \"/cs\" in the name:\n\n* [pair_style born/coul/dsf ](https://docs.lammps.org/pair_born.html)\n* [pair_style born/coul/long ](https://docs.lammps.org/pair_born.html)\n* [pair_style born/coul/wolf ](https://docs.lammps.org/pair_born.html)\n* [pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n* [pair_style coul/long ](https://docs.lammps.org/pair_coul.html)\n* [pair_style coul/wolf ](https://docs.lammps.org/pair_coul.html)\n* [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html)\n\nexcept that they correctly treat the special case where the distance\nbetween two charged core and shell atoms in the same core/shell pair\napproach r = 0.0.\n\nStyles with a \"/long\" in the name are used with a long-range solver\nfor Coulombic interactions via the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand. They require special treatment of the short-range Coulombic\ninteractions within the cor/shell model.\n\nSpecifically, the short-range Coulomb interaction between a core and\nits shell should be turned off using the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command by setting the 1-2 weight\nto 0.0, which works because the core and shell atoms are bonded to\neach other. This induces a long-range correction approximation which\nfails at small distances (~< 10e-8). Therefore, the Coulomb term which\nis used to calculate the correction factor is extended by a minimal\ndistance (r_min = 1.0-6) when the interaction between a core/shell\npair is treated, as follows\n\\[\n E = \\frac{C q_i q_j}{\\epsilon (r + r_{min})} \\qquad r \\rightarrow 0\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the core and shell, epsilon is the dielectric\nconstant and \\(r_{min}\\) is the minimal distance.\n\nFor styles that are not used with a long-range solver, i.e. those with\n\"/dsf\" or \"/wolf\" in the name, the only correction is the addition of\na minimal distance to avoid the possible r = 0.0 case for a core/shell\npair.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nSee the corresponding doc pages for pair styles without the \"cs\"\nsuffix to see how mixing, shifting, tabulation, tail correction,\nrestarting, and rRESPA are handled by theses pair styles.\n\n----------\n\n**(MitchellFincham3)** Mitchell, Fincham, J Phys Condensed Matter,\n5, 1031-1038 (1993). \n ", + "restrictions": "These pair styles are part of the CORESHELL package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html),\n[pair_style buck ](https://docs.lammps.org/pair_buck.html)\n" +}, +{ + "command": [ + "pair_style ufm", + "pair_style ufm/gpu", + "pair_style ufm/omp", + "pair_style ufm/opt" + ], + "syntax": [ + "pair_style ufm cutoff" + ], + "args": [ + [ { - "arg": "nbond/atom", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "ufm", + "type": 3, + "choices": [ + "ufm", + "ufm/gpu", + "ufm/omp", + "ufm/opt" + ] }, { - "arg": "value", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* nbond/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bond/type \n *        bond/type value = btype \n         btype = bond type included in count \n", - "examples": "\n```lmps\ncompute 1 all nbond/atom\ncompute 1 all nbond/atom bond/type 2\n```\n", - "html_filename": "compute_nbond_atom.html", - "short_description": "\nDefine a computation that computes the number of bonds each atom is\npart of", - "description": "\nDefine a computation that computes the number of bonds each atom is\npart of. Bonds which are broken are not counted in the tally. See\nthe [Howto broken bonds ](https://docs.lammps.org/Howto_bpm.html) page for more information.\nThe number of bonds will be zero for atoms not in the specified\ncompute group. This compute does not depend on Newton bond settings.\n\nIf the keyword *bond/type* is specified, only bonds of *btype* are\ncounted.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) doc page for an overview of\nLAMMPS output options.\n", - "restrictions": "This compute is part of the BPM package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", - "related": "none" + "parameters": "* cutoff = global cutoff for ufm interactions (distance units) \n", + "examples": "\n```lmps\npair_style ufm 4.0\npair_coeff 1 1 100.0 1.0 2.5\npair_coeff * * 100.0 1.0\n\npair_style ufm 4.0\npair_coeff * * 10.0 1.0\nvariable prefactor equal ramp(10,100)\nfix 1 all adapt 1 pair ufm epsilon * * v_prefactor\n```\n", + "html_filename": "pair_ufm.html", + "short_description": "Style *ufm* computes pairwise interactions using the Uhlenbeck-Ford model (UFM) potential **PL2** which is given by\n\\[\\begin{align*} \n E & = -\\varepsilon\\, \\ln{\\left[1-\\exp{\\left(-r^{2}/\\sigma^{2}\\right)}\\right]} \\qquad r < r_c \\\\\n \\varepsilon & = p\\,k_B\\,T \\end{align*} \\]\nwhere \\(r_c\\) is the cutoff, \\(\\sigma\\) is a distance-scale and\n\\(\\epsilon\\) is an energy-scale, i.e., a product of Boltzmann constant\n\\(k_B\\), temperature \\(T\\) and the Uhlenbeck-Ford p-parameter which\nis responsible\nto control the softness of the interactions **PL1**", + "description": "Style *ufm* computes pairwise interactions using the Uhlenbeck-Ford model (UFM) potential **PL2** which is given by\n\\[\\begin{align*} \n E & = -\\varepsilon\\, \\ln{\\left[1-\\exp{\\left(-r^{2}/\\sigma^{2}\\right)}\\right]} \\qquad r < r_c \\\\\n \\varepsilon & = p\\,k_B\\,T \\end{align*} \\]\nwhere \\(r_c\\) is the cutoff, \\(\\sigma\\) is a distance-scale and\n\\(\\epsilon\\) is an energy-scale, i.e., a product of Boltzmann constant\n\\(k_B\\), temperature \\(T\\) and the Uhlenbeck-Ford p-parameter which\nis responsible\nto control the softness of the interactions **PL1**.\nThis model is useful as a reference system for fluid-phase free-energy calculations **PL2**.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global *ufm*\ncutoff is used.\n\nThe [fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to vary epsilon and sigma for this pair style over the course of a simulation, in which case\npair_coeff settings for epsilon and sigma must still be specified, but will be\noverridden. For example these commands will vary the prefactor epsilon for\nall pairwise interactions from 10.0 at the beginning to 100.0 at the end\nof a run:\n\n```lmps\nvariable prefactor equal ramp(10,100)\nfix 1 all adapt 1 pair ufm epsilon * * v_prefactor\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The thermodynamic integration procedure can be performed with this\n > potential using [fix adapt ](https://docs.lammps.org/fix_adapt.html). This command will\n > rescale the force on each atom by varying a scale variable, which\n > always starts with value 1.0. The syntax is the same described above,\n > however, changing epsilon to scale. A detailed explanation of how to\n > use this command and perform nonequilibrium thermodynamic integration\n > in LAMMPS is given in the paper by **Freitas2**. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients and cutoff\ndistance for this pair style can be mixed. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail are not relevant for this\npair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to energy and pressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(PL2)** Paula Leite , Freitas, Azevedo, and de Koning, J Chem Phys, 126,\n044509 (2016). \n \n**(PL1)** Paula Leite, Santos-Florez, and de Koning, Phys Rev E, 96,\n32115 (2017). \n \n**(Freitas2)** Freitas, Asta, and de Koning, Computational Materials Science, 112, 333 (2016). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" }, { "command": [ - "displace_atoms" + "fix_modify AtC remove_molecule" ], "syntax": [ - "displace_atoms group-ID style args keyword value ..." + "fix_modify remove_molecule " ], "args": [ [ { - "arg": "displace_atoms", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "rotate", - "type": 3, - "choices": [ - "move", - "ramp", - "random", - "rotate" - ] - }, - { - "arg": "args", + "arg": "", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, + "arg": "remove_molecule", + "type": 1, "choices": [] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* group-ID = ID of group of atoms to displace\n* style = move or ramp or random or rotate \n *        move args = delx dely delz \n         delx,dely,delz = distance to displace in each dimension (distance units) \n         any of delx,dely,delz can be a variable (see below) \n *        ramp args = ddim dlo dhi dim clo chi \n         ddim = x or y or z \n         dlo,dhi = displacement distance between dlo and dhi (distance units) \n         dim = x or y or z \n         clo,chi = lower and upper bound of domain to displace (distance units) \n *        random args = dx dy dz seed \n         dx,dy,dz = random displacement magnitude in each dimension (distance units) \n         seed = random # seed (positive integer) \n *        rotate args = Px Py Pz Rx Ry Rz theta \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         theta = angle of rotation (degrees) \n* zero or more keyword/value pairs may be appended \n *        keyword = units \n         units value = box or lattice \n", - "examples": "\n```lmps\ndisplace_atoms top move 0 -5 0 units box\ndisplace_atoms flow ramp x 0.0 5.0 y 2.0 20.5\n```\n", - "html_filename": "displace_atoms.html", - "short_description": "Displace a group of atoms", - "description": "Displace a group of atoms. This can be used to move atoms a large\ndistance before beginning a simulation or to randomize atoms initially\non a lattice. For example, in a shear simulation, an initial strain\ncan be imposed on the system. Or two groups of atoms can be brought\ninto closer proximity.\n\nThe *move* style displaces the group of atoms by the specified 3d\ndisplacement vector. Any of the three quantities defining the vector\ncomponents can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case,\nthe variable will be evaluated, and its value(s) used for the\ndisplacement(s). The scale factor implied by the *units* keyword will\nalso be applied to the variable result.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Atom-style variables can specify the same formulas as\nequal-style variables but can also include per-atom values, such as\natom coordinates or per-atom values read from a file. Note that if\nthe variable references other [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html)\ncommands, those values must be up-to-date for the current timestep.\nSee the \"Variable Accuracy\" section of the [variable ](https://docs.lammps.org/variable.html)\ndoc page for more details.\n\nThe *ramp* style displaces atoms a variable amount in one dimension\ndepending on the atom's coordinate in a (possibly) different\ndimension. For example, the second example command displaces atoms in\nthe *x* -direction an amount between 0.0 and 5.0 distance units. Each\natom's displacement depends on the fractional distance its *y*\ncoordinate is between 2.0 and 20.5. Atoms with *y* -coordinates outside\nthose bounds will be moved the minimum (0.0) or maximum (5.0) amount.\n\nThe *random* style independently moves each atom in the group by a\nrandom displacement, uniformly sampled from a value between \\(-dx\\) and\n\\(+dx\\) in the *x* dimension, and similarly for *y* and *z*.\nRandom numbers are used in such a way that the displacement of a particular\natom is the same, regardless of how many processors are being used.\n\nThe *rotate* style rotates each atom in the group by the angle *theta*\naround a rotation axis \\(R = (R_x,R_y,R_z)\\) that goes through a point\n\\(P = (P_x,P_y,P_z)\\). The direction of rotation for the atoms around the\nrotation axis is consistent with the right-hand rule: if your\nright-hand thumb points along *R*, then your fingers wrap around the\naxis in the direction of positive theta.\n\nIf the defined [atom_style ](https://docs.lammps.org/atom_style.html) assigns an orientation to\neach atom ([atom styles ](https://docs.lammps.org/atom_style.html) ellipsoid, line, tri, body),\nthen that property is also updated appropriately to correspond to the\natom's rotation.\n\nDistance units for displacements and the origin point of the *rotate*\nstyle are determined by the setting of *box* or *lattice* for the\n*units* keyword. *Box* means distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\) for\n*real* or *metal* units). *Lattice* means distance units are in lattice\nspacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used\nto define the lattice spacing.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care should be taken not to move atoms on top of other atoms.\n > After the move, atoms are remapped into the periodic simulation box if\n > needed, and any shrink-wrap boundary conditions (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command) are enforced which may change the\n > box size. Other than this effect, this command does not change the\n > size or shape of the simulation box. See the\n > [change_box ](https://docs.lammps.org/change_box.html) command if that effect is desired. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atoms can be moved arbitrarily long distances by this command.\n > If the simulation box is non-periodic and shrink-wrapped (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command), this can change its size or shape.\n > This is not a problem, except that the mapping of processors to the\n > simulation box is not changed by this command from its initial 3d\n > configuration; see the [processors ](https://docs.lammps.org/processors.html) command. Thus, if\n > the box size/shape changes dramatically, the mapping of processors to\n > the simulation box may not end up as optimal as the initial mapping\n > attempted to be. \n > \n\n----------\n", - "restrictions": "For a 2d simulation, only rotations around the a vector parallel to\nthe \\(z\\)-axis are allowed.\n", - "related": "[lattice ](https://docs.lammps.org/lattice.html), [change_box ](https://docs.lammps.org/change_box.html),\n[fix move ](https://docs.lammps.org/fix_move.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_molecule = name of the AtC sub-command\n* tag = tag for tracking a molecule \n", + "examples": "\n```lmps\nfix_modify AtC remove_molecule water\n```\n", + "html_filename": "atc_remove_molecule.html", + "short_description": "Removes tag designated for tracking a specified set of molecules", + "description": "Removes tag designated for tracking a specified set of molecules.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n- [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n" }, { "command": [ - "fix widom" + "angle_style class2", + "angle_style class2/kk", + "angle_style class2/omp", + "angle_style class2/p6" ], "syntax": [ - "fix ID group-ID widom N M type seed T keyword values ..." + "angle_style class2" ], "args": [ [ { - "arg": "fix", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, + "arg": "class2", + "type": 3, + "choices": [ + "class2", + "class2/kk", + "class2/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nangle_style class2\nangle_coeff * 75.0 25.0 0.3 0.002\nangle_coeff 1 bb 10.5872 1.0119 1.5228\nangle_coeff * ba 3.6551 24.895 1.0119 1.5228\n```\n", + "html_filename": "angle_class2.html", + "short_description": "The *class2* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{bb} + E_{ba} \\\\\n E_a & = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4(\\theta - \\theta_0)^4 \\\\\n E_{bb} & = M (r_{ij} - r_1) (r_{jk} - r_2) \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{bb}\\) is a bond-bond\nterm, and \\(E_{ba}\\) is a bond-angle term", + "description": "The *class2* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{bb} + E_{ba} \\\\\n E_a & = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4(\\theta - \\theta_0)^4 \\\\\n E_{bb} & = M (r_{ij} - r_1) (r_{jk} - r_2) \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{bb}\\) is a bond-bond\nterm, and \\(E_{ba}\\) is a bond-angle term. \\(\\theta_0\\) is\nthe equilibrium angle and \\(r_1\\) and \\(r_2\\) are the\nequilibrium bond lengths.\n\nSee **angle-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_a\\), \\(E_{bb}\\), and \\(E_{ba}\\)\nformulas must be defined for each angle type via the [angle_coeff](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 4 coefficients for the \\(E_a\\) formula:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4.\n\nFor the \\(E_{bb}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 4 coefficients, the\nfirst of which is \"bb\" to indicate they are BondBond coefficients. In\na data file, these coefficients should be listed under a \"BondBond\nCoeffs\" heading and you must leave out the \"bb\", i.e. only list 3\ncoefficients after the angle type.\n\n* bb\n* \\(M\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nFor the \\(E_{ba}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 5 coefficients, the\nfirst of which is \"ba\" to indicate they are BondAngle coefficients.\nIn a data file, these coefficients should be listed under a \"BondAngle\nCoeffs\" heading and you must leave out the \"ba\", i.e. only list 4\ncoefficients after the angle type.\n\n* ba\n* \\(N_1\\) (energy/distance)\n* \\(N_2\\) (energy/distance)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nThe \\(\\theta_0\\) value in the \\(E_{ba}\\) formula is not specified,\nsince it is the same value from the \\(E_a\\) formula.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important that the order of the I,J,K atoms in each angle\n > listed in the Angles section of the data file read by the\n > [read_data ](https://docs.lammps.org/read_data.html) command be consistent with the order\n > of the \\(r_1\\) and \\(r_2\\) BondBond and BondAngle\n > coefficients. This is because the terms in the formulas for\n > \\(E_{bb}\\) and \\(E_{ba}\\) will use the I,J atoms to compute\n > \\(r_{ij}\\) and the J,K atoms to compute \\(r_{jk}\\). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\nThe *class2/p6* angle style uses the *class2* potential expanded to sixth order:\n\\[\n E_{a} = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6\\]\nIn this expanded term 6 coefficients for the \\(E_a\\) formula need to be set:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n* \\(K_5\\) (energy)\n* \\(K_6\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4 or radian\\^5 or radian\\^6.\n\nThe bond-bond and bond-angle terms remain unchanged.\n\n----------\n\n**(angle-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the CLASS2\npackage. For the *class2/p6* style LAMMPS needs to be built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" +}, +{ + "command": [ + "angle_style mesocnt" + ], + "syntax": [ + "angle_style mesocnt" + ], + "args": [ + [ { - "arg": "widom", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "M", - "type": 2, - "choices": [] - }, - { - "arg": "type", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] - }, - { - "arg": "T", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, + "arg": "mesocnt", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* widom = style name of this fix command\n* N = invoke this fix every N steps\n* M = number of Widom insertions to attempt every N steps\n* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used)\n* seed = random # seed (positive integer)\n* T = temperature of the system (temperature units)\n* zero or more keyword/value pairs may be appended to args \n *      keyword = mol, region, full_energy, charge, intra_energy \n       mol value = template-ID \n       template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n       region value = region-ID \n       region-ID = ID of region where Widom insertions are allowed \n       full_energy = compute the entire system energy when performing Widom insertions \n       charge value = charge of inserted atoms (charge units) \n       intra_energy value = intramolecular energy (energy units) \n", - "examples": "\n```lmps\nfix 2 gas widom 1 50000 1 19494 2.0\nfix 3 water widom 1000 100 0 29494 300.0 mol h2omol full_energy\n\nlabelmap atom 1 Li\nfix 2 ion widom 1 50000 Li 19494 2.0\n```\n", - "html_filename": "fix_widom.html", - "short_description": "This fix performs Widom insertions of atoms or molecules at the given\ntemperature as discussed in **Frenkel1**", - "description": "This fix performs Widom insertions of atoms or molecules at the given\ntemperature as discussed in **Frenkel1**. Specific uses\ninclude computation of Henry constants of small molecules in microporous\nmaterials or amorphous systems.\n\n\nEvery N timesteps the fix attempts M number of Widom insertions of atoms\nor molecules.\n\nIf the *mol* keyword is used, only molecule insertions are performed.\nConversely, if the *mol* keyword is not used, only atom insertions are\nperformed.\n\nThis command may optionally use the *region* keyword to define an\ninsertion volume. The specified region must have been previously\ndefined with a [region ](https://docs.lammps.org/region.html) command. It must be defined with\nside = *in* . Insertion attempts occur only within the specified\nregion. For non-rectangular regions, random trial points are generated\nwithin the rectangular bounding box until a point is found that lies\ninside the region. If no valid point is generated after 1000 trials, no\ninsertion is performed. If an attempted insertion places the atom or\nmolecule center-of-mass outside the specified region, a new attempted\ninsertion is generated. This process is repeated until the atom or\nmolecule center-of-mass is inside the specified region.\n\nNote that neighbor lists are re-built every timestep that this fix is\ninvoked, so you should not set N to be too small. See the [neighbor](https://docs.lammps.org/neighbor.html) command for details.\n\nWhen an atom or molecule is to be inserted, its coordinates are chosen\nat a random position within the current simulation cell or region.\nRelative coordinates for atoms in a molecule are taken from the\ntemplate molecule provided by the user. The center of mass of the\nmolecule is placed at the insertion point. The orientation of the\nmolecule is chosen at random by rotating about this point.\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the [molecule](https://docs.lammps.org/molecule.html) command, which reads a file that defines the molecule. The\ncoordinates, atom types, charges, etc., as well as any bonding and\nspecial neighbor information for the molecule can be specified in the\nmolecule file. See the [molecule ](https://docs.lammps.org/molecule.html) command for details.\nThe only settings required to be in this file are the coordinates and\ntypes of atoms in the molecule.\n\nNote that fix widom does not use configurational bias MC or any other\nkind of sampling of intramolecular degrees of freedom. Inserted\nmolecules can have different orientations, but they will all have the\nsame intramolecular configuration, which was specified in the molecule\ncommand input.\n\nFor atoms, inserted particles have the specified atom type. For\nmolecules, they use the same atom types as in the template molecule\nsupplied by the user.\n\nThe excess chemical potential mu_ex is defined as:\n\\[\n \\mu_{ex} = -kT \\ln(<\\exp(-(U_{N+1}-U_{N})/{k_B T})>)\\]\nwhere \\(k_B\\) is the Boltzmann constant, \\(T\\) is the\nuser-specified temperature, \\(U_N\\) and \\(U_{N+1}\\) is the\npotential energy of the system with \\(N\\) and \\(N+1\\) particles.\n\nThe *full_energy* option means that the fix calculates the total\npotential energy of the entire simulated system, instead of just the\nenergy of the part that is changed. By default, this option is off, in\nwhich case only partial energies are computed to determine the energy\ndifference due to the proposed change.\n\nThe *full_energy* option is needed for systems with complicated\npotential energy calculations, including the following:\n\n* long-range electrostatics (kspace)\n* many-body pair styles\n* hybrid pair styles\n* eam pair styles\n* tail corrections\n* need to include potential energy contributions from other fixes\n\nIn these cases, LAMMPS will automatically apply the *full_energy*\nkeyword and issue a warning message.\n\nWhen the *mol* keyword is used, the *full_energy* option also includes\nthe intramolecular energy of inserted and deleted molecules, whereas\nthis energy is not included when *full_energy* is not used. If this is\nnot desired, the *intra_energy* keyword can be used to define an amount\nof energy that is subtracted from the final energy when a molecule is\ninserted, and subtracted from the initial energy when a molecule is\ndeleted. For molecules that have a non-zero intramolecular energy, this\nwill ensure roughly the same behavior whether or not the *full_energy*\noption is used.\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [restrain ](https://docs.lammps.org/fix_restrain.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when performing\nWidom insertions), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*energy* option for that fix. The doc pages for individual [fix](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\nUse the *charge* option to insert atoms with a user-specified point\ncharge. Note that doing so will cause the system to become non-neutral.\nLAMMPS issues a warning when using long-range electrostatics (kspace)\nwith non-neutral systems. See the [compute group/group](https://docs.lammps.org/compute_group_group.html) documentation for more details about simulating\nnon-neutral systems with kspace on.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for Widom insertions etc. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep > ](https://docs.lammps.org/reset_timestep.html). The fix will try to detect it and stop with an\n > error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 3, which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n #. average excess chemical potential on each timestep\n #. average difference in potential energy on each timestep\n #. volume of the insertion region\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Frenkel1)** Frenkel and Smit, Understanding Molecular Simulation,\nAcademic Press, London, 2002. \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is **required**.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nCan be run in parallel, but some aspects of the insertion procedure\nwill not scale well in parallel. Only usable for 3D simulations.\n", - "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html),\n[neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n" + "parameters": "", + "examples": "\n```lmps\nangle_style mesocnt\nangle_coeff 1 buckling C 10 10 20.0\nangle_coeff 4 harmonic C 8 4 10.0\nangle_coeff 2 buckling custom 400.0 50.0 5.0\nangle_coeff 1 harmonic custom 300.0\n```\n", + "html_filename": "angle_mesocnt.html", + "short_description": "\nThe *mesocnt* angle style uses the potential\n\\[\n E = K_\\text{H} \\Delta \\theta^2, \\qquad |\\Delta \\theta| < \\Delta\n \\theta_\\text{B} \\\\\n E = K_\\text{H} \\Delta \\theta_\\text{B}^2 +\n K_\\text{B} (\\Delta \\theta - \\Delta \\theta_\\text{B}), \\qquad |\\Delta\n \\theta| \\geq \\Delta \\theta_\\text{B}\\]\nwhere \\(\\Delta \\theta = \\theta - \\pi\\) is the bending angle of the\nnanotube, \\(K_\\text{H}\\) and \\(K_\\text{B}\\) are prefactors for\nthe harmonic and linear regime respectively and \\(\\Delta\n\\theta_\\text{B}\\) is the buckling angle", + "description": "\nThe *mesocnt* angle style uses the potential\n\\[\n E = K_\\text{H} \\Delta \\theta^2, \\qquad |\\Delta \\theta| < \\Delta\n \\theta_\\text{B} \\\\\n E = K_\\text{H} \\Delta \\theta_\\text{B}^2 +\n K_\\text{B} (\\Delta \\theta - \\Delta \\theta_\\text{B}), \\qquad |\\Delta\n \\theta| \\geq \\Delta \\theta_\\text{B}\\]\nwhere \\(\\Delta \\theta = \\theta - \\pi\\) is the bending angle of the\nnanotube, \\(K_\\text{H}\\) and \\(K_\\text{B}\\) are prefactors for\nthe harmonic and linear regime respectively and \\(\\Delta\n\\theta_\\text{B}\\) is the buckling angle. Note that the usual 1/2 factor\nfor the harmonic potential is included in \\(K_\\text{H}\\).\n\nThe style implements parameterization presets of \\(K_\\text{H}\\),\n\\(K_\\text{B}\\) and \\(\\Delta \\theta_\\text{B}\\) for mesoscopic\nsimulations of carbon nanotubes based on the atomistic simulations of\n**Srivastava_2** and buckling considerations of\n**Zhigilei1_1**.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the examples above, or\nin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* mode = *buckling* or *harmonic*\n* preset = *C* or *custom*\n* additional parameters depending on preset\n\nIf mode *harmonic* is chosen, the potential is simply harmonic and\ndoes not switch to the linear term when the buckling angle is\nreached. In *buckling* mode, the full piecewise potential is used.\n\nPreset *C* is for carbon nanotubes, and the additional parameters are:\n\n* chiral index \\(n\\) (unitless)\n* chiral index \\(m\\) (unitless)\n* \\(r_0\\) (distance)\n\nHere, \\(r_0\\) is the equilibrium distance of the bonds included in\nthe angle, see [bond_style mesocnt ](https://docs.lammps.org/bond_mesocnt.html).\n\nIn harmonic mode with preset *custom*, the additional parameter is:\n\n* \\(K_\\text{H}\\) (energy)\n\nHence, this setting is simply a wrapper for [bond_style harmonic](https://docs.lammps.org/bond_harmonic.html) with an equilibrium angle of 180 degrees.\n\nIn harmonic mode with preset *custom*, the additional parameters are:\n\n* \\(K_\\text{H}\\) (energy)\n* \\(K_\\text{B}\\) (energy)\n* \\(\\Delta \\theta_\\text{B}\\) (degrees)\n\n\\(\\Delta \\theta_\\text{B}\\) is specified in degrees, but LAMMPS\nconverts it to radians internally; hence \\(K_\\text{H}\\) is\neffectively energy per radian\\^2 and \\(K_\\text{B}\\) is energy per\nradian.\n\n----------\n\nIn *buckling* mode, this angle style adds the *buckled* property to\nall atoms in the simulation, which is an integer flag indicating\nwhether the bending angle at a given atom has exceeded \\(\\Delta\n\\theta_\\text{B}\\). It can be accessed as an atomic variable, e.g. for\ncustom dump commands, as *i_buckled*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the initial state of the simulation contains buckled nanotubes\n > and [pair_style mesocnt ](https://docs.lammps.org/pair_mesocnt.html) is used, the\n > *i_buckled* atomic variable needs to be initialized before the\n > pair_style is defined by doing a *run 0* command straight after the\n > angle_style command. See below for an example. \n > \n\nIf CNTs are already buckled at the start of the simulation, this\nscript will correctly initialize *i_buckled*:\n\n```lmps\nangle_style mesocnt\nangle_coeff 1 buckling C 10 10 20.0\n\nrun 0\n\npair_style mesocnt 60.0\npair_coeff * * C_10_10.mesocnt 1\n```\n\n**(Srivastava_2)** Zhigilei, Wei, Srivastava, Phys. Rev. B 71, 165417\n(2005). \n \n**(Zhigilei1_1)** Volkov and Zhigilei, ACS Nano 4, 6187 (2010). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE and MESONT packages. See the [Build package](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "dump atom/adios" + "pair_style srp" ], "syntax": [ - "dump ID group-ID atom/adios N file.bp", - "dump ID group-ID custom/adios N file.bp args" + "pair_style srp cutoff btype dist keyword value ...", + "pair_style srp/react cutoff btype dist react-id keyword value ..." ], "args": [ [ { - "arg": "dump", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "srp", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "btype", "type": 2, "choices": [] }, { - "arg": "atom/adios", - "type": 1, + "arg": "dist", + "type": 2, "choices": [] }, { - "arg": "N", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "file.bp", + "arg": "value", "type": 2, "choices": [] } ], [ { - "arg": "dump", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "srp/react", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "custom/adios", + "arg": "btype", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "dist", "type": 2, "choices": [] }, { - "arg": "file.bp", + "arg": "react-id", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* adios = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file.bp = name of file/stream to write to\n* args = same options as in [dump custom ](https://docs.lammps.org/dump.html) command \n", - "examples": "\n```lmps\ndump adios1 all atom/adios 100 atoms.bp\ndump 4a all custom/adios 100 dump_adios.bp id v_p x y z\ndump 2 subgroup custom/adios 100 dump_adios.bp mass type xs ys zs vx vy vz\n```\n", - "html_filename": "dump_adios.html", - "short_description": "Dump a snapshot of atom coordinates every \\(N\\) timesteps in the [ADIOS](adios_)-based \"BP\" file format, or using different I/O solutions in\nADIOS, to a stream that can be read on-line by another program", - "description": "Dump a snapshot of atom coordinates every \\(N\\) timesteps in the [ADIOS](adios_)-based \"BP\" file format, or using different I/O solutions in\nADIOS, to a stream that can be read on-line by another program.\nADIOS-BP files are binary, portable, and self-describing.\n\n.. _adios: https://github.com/ornladios/ADIOS2\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To be able to use ADIOS, a file ``adios2_config.xml`` with specific\n > configuration settings is expected in the current working directory.\n > If the file is not present, LAMMPS will try to create a minimal\n > default file. Please refer to the ADIOS documentation for details on\n > how to adjust this file for optimal performance and desired features. \n > \n\n**Use from write_dump:**\n\nIt is possible to use these dump styles with the\n[write_dump ](https://docs.lammps.org/write_dump.html) command. In this case, the sub-intervals\nmust not be set at all. The write_dump command can be used to\ncreate a new file at each individual dump.\n\n```lmps\ndump 4 all atom/adios 100 dump.bp\nwrite_dump all atom/adios singledump.bp\n```\n----------\n", - "restrictions": "The number of atoms per snapshot **can** change with the adios style.\nWhen using the ADIOS tool 'bpls' to list the content of a .bp file,\nbpls will print *__* for the size of the output table indicating that\nits size is changing every step.\n\nThe *atom/adios* and *custom/adios* dump styles are part of the ADIOS\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" + "parameters": "* cutoff = global cutoff for SRP interactions (distance units)\n* btype = bond type to apply SRP interactions to (can be wildcard, see below)\n* distance = min or mid\n* react-id = id of either fix bond/break or fix bond/create\n* zero or more keyword/value pairs may be appended\n* keyword = exclude \n *        *bptype* value = atom type for bond particles \n *        exclude value = yes or no \n", + "examples": "\n```lmps\npair_style hybrid dpd 1.0 1.0 12345 srp 0.8 1 mid exclude yes\npair_coeff 1 1 dpd 60.0 4.5 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp 100.0 0.8\n\npair_style hybrid dpd 1.0 1.0 12345 srp 0.8 * min exclude yes\npair_coeff 1 1 dpd 60.0 50 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp 40.0\n\nfix create all bond/create 100 1 2 1.0 1 prob 0.2 19852\npair_style hybrid dpd 1.0 1.0 12345 srp/react 0.8 * min create exclude yes\npair_coeff 1 1 dpd 60.0 50 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp/react 40.0\n\npair_style hybrid srp 0.8 2 mid\npair_coeff 1 1 none\npair_coeff 1 2 none\npair_coeff 2 2 srp 100.0 0.8\n```\nDescription\n\n\nStyle *srp* computes a soft segmental repulsive potential (SRP) that\nacts between pairs of bonds. This potential is useful for preventing\nbonds from passing through one another when a soft non-bonded\npotential acts between beads in, for example, DPD polymer chains. An\nexample input script that uses this command is provided in\nexamples/PACKAGES/srp.\n\nBonds of specified type *btype* interact with one another through a\nbond-pairwise potential, such that the force on bond *i* due to bond\n*j* is as follows\n\\[\n F^{\\mathrm{SRP}}_{ij} = C(1-r/r_c)\\hat{r}_{ij} \\qquad r < r_c\\]\nwhere *r* and \\(\\hat{r}_{ij}\\) are the distance and unit vector\nbetween the two bonds. Note that *btype* can be specified as an\nasterisk \"\\*\", which case the interaction is applied to all bond types.\nThe *mid* option computes *r* and \\(\\hat{r}_{ij}\\) from the midpoint\ndistance between bonds. The *min* option computes *r* and\n\\(\\hat{r}_{ij}\\) from the minimum distance between bonds. The force\nacting on a bond is mapped onto the two bond atoms according to the\nlever rule,\n\\[\\begin{align*} \n F_{i1}^{\\mathrm{SRP}} & = F^{\\mathrm{SRP}}_{ij}(L) \\\\\n F_{i2}^{\\mathrm{SRP}} & = F^{\\mathrm{SRP}}_{ij}(1-L) \\end{align*} \\]\nwhere *L* is the normalized distance from the atom to the point of\nclosest approach of bond *i* and *j* . The *mid* option takes *L* as\n0.5 for each interaction as described in **Sirk2**.\n\nThe following coefficients must be defined via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart file read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* *C* (force units)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Pair style srp considers each bond of type *btype* to be a\n > fictitious \"particle\" of type *bptype*, where *bptype* is either the\n > largest atom type in the system, or the type set by the *bptype* flag.\n > Any actual existing particles with this atom type will be deleted at\n > the beginning of a run. This means you must specify the number of\n > types in your system accordingly; usually to be one larger than what\n > would normally be the case, e.g. via the [create_box ](https://docs.lammps.org/create_box.html)\n > or by changing the header in your [data file ](https://docs.lammps.org/read_data.html). The\n > fictitious \"bond particles\" are inserted at the beginning of the run,\n > and serve as placeholders that define the position of the bonds. This\n > allows neighbor lists to be constructed and pairwise interactions to\n > be computed in almost the same way as is done for actual particles.\n > Because bonds interact only with other bonds, [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) should be used to turn off interactions\n > between atom type *bptype* and all other types of atoms. An error\n > will be flagged if [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) is not used. \n > \n\nThe optional *exclude* keyword determines if forces are computed\nbetween first neighbor (directly connected) bonds. For a setting of\n*no*, first neighbor forces are computed; for *yes* they are not\ncomputed. A setting of *no* cannot be used with the *min* option for\ndistance calculation because the minimum distance between directly\nconnected bonds is zero.\n\nPair style *srp* turns off normalization of thermodynamic properties\nby particle number, as if the command [thermo_modify norm no ](https://docs.lammps.org/thermo_modify.html) had been issued.\n\nThe pairwise energy associated with style *srp* is shifted to be zero\nat the cutoff distance \\(r_c\\).\n\n----------\n\nPair style *srp/react* interfaces the pair style *srp* with the\nbond breaking and formation mechanisms provided by fix *bond/break*\nand fix *bond/create*, respectively. When using this pair style, whenever a\nbond breaking (or formation) reaction occurs, the corresponding fictitious\nparticle is deleted (or inserted) during the same simulation time step as\nthe reaction. This is useful in the simulation of reactive systems involving\nlarge polymeric molecules **Palkar** where the segmental repulsive\npotential is necessary to minimize topological violations, and also needs to be\nturned on and off according to the progress of the reaction.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy term is already shifted to be 0.0 at the\ncutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes global and per-atom information to [binary restart files ](https://docs.lammps.org/restart.html). Pair srp should be used with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), thus the pair_coeff commands need to be\nspecified in the input script when reading a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Sirk2)** Sirk TW, Sliozberg YR, Brennan JK, Lisal M, Andzelm JW, J\nChem Phys, 136 (13) 134903, 2012. \n \n**(Palkar)** Palkar V, Kuksenok O, J. Phys. Chem. B, 126 (1), 336-346, 2022 \n ", + "html_filename": "pair_srp.html", + "short_description": "", + "description": "", + "restrictions": "This pair style is part of the MISC package. It is only enabled\nif LAMMPS was built with that package. See the Making LAMMPS section\nfor more info.\n\nThis pair style must be used with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html).\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) command to be *on*\nfor non-bonded interactions.\n\nThis pair style is not compatible with [rigid body integrators ](https://docs.lammps.org/fix_rigid.html)\n", + "related": "[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair dpd ](https://docs.lammps.org/pair_dpd.html)\n" }, { "command": [ - "fix nve/tri" + "undump" ], "syntax": [ - "fix ID group-ID nve/tri" + "undump dump-ID" ], "args": [ [ { - "arg": "fix", + "arg": "undump", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dump-ID", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* dump-ID = ID of previously defined dump \n", + "examples": "\n```lmps\nundump mine\nundump 2\n```\n", + "html_filename": "undump.html", + "short_description": "Turn off a previously defined dump so that it is no longer active", + "description": "Turn off a previously defined dump so that it is no longer active.\nThis closes the file associated with the dump.\n", + "restrictions": " none\n", + "related": "[dump ](https://docs.lammps.org/dump.html)\n" +}, +{ + "command": [ + "pair_style harmonic/cut", + "pair_style harmonic/cut/omp" + ], + "syntax": [ + "pair_style style" + ], + "args": [ + [ { - "arg": "group-ID", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "nve/tri", - "type": 1, + "arg": "style", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/tri = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/tri\n```\n", - "html_filename": "fix_nve_tri.html", - "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular momentum for triangular particles in the\ngroup each timestep", - "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular momentum for triangular particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble. See the\n[Howto spherical ](https://docs.lammps.org/Howto_spherical.html) page for an overview of\nusing triangular particles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that particles be triangles as defined by the\n[atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" + "parameters": "* style = harmonic/cut \n", + "examples": "\n```lmps\npair_style harmonic/cut\npair_coeff * * 0.2 2.0\npair_coeff 1 1 0.5 2.5\n```\n", + "html_filename": "pair_harmonic_cut.html", + "short_description": "\nStyle *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula\n\\[\n E = k (r_c - r)^2 \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff", + "description": "\nStyle *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula\n\\[\n E = k (r_c - r)^2 \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff. Note that the usual 1/2 factor is\nincluded in \\(k\\).\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(k\\) (energy/distance^2 units)\n* \\(r_c\\) (distance units)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the \\(k\\) and \\(r_c\\)\ncoefficients can be mixed. The default mix value is *geometric*.\nSee the \"pair_modify\" command for details.\n\nSince the potential is zero at and beyond the cutoff parameter by\nconstruction, there is no need to support the [pair_modify](https://docs.lammps.org/pair_modify.html) shift or tail options for the energy and pressure of the\npair interaction.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands do not need to be specified in an input script\nthat reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "The *harmonic/cut* pair style is only enabled if LAMMPS was\nbuilt with the EXTRA-PAIR package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix ave/chunk" + "fix wall/ees" ], "syntax": [ - "fix ID group-ID ave/chunk Nevery Nrepeat Nfreq chunkID value1 value2 ... keyword args ..." + "fix ID group-ID style args" ], "args": [ [ @@ -18017,56 +17448,11 @@ export const command_docs = [ "choices": [] }, { - "arg": "ave/chunk", - "type": 1, - "choices": [] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "Nrepeat", - "type": 2, - "choices": [] - }, - { - "arg": "Nfreq", - "type": 2, - "choices": [] - }, - { - "arg": "chunkID", - "type": 2, - "choices": [] - }, - { - "arg": "value1", - "type": 2, - "choices": [] - }, - { - "arg": "value2", - "type": 2, - "choices": [] - }, - { - "arg": "title3", + "arg": "wall/region/ees", "type": 3, "choices": [ - "norm", - "ave", - "bias", - "adof", - "cdof", - "file", - "append", - "overwrite", - "format", - "title1", - "title2", - "title3" + "wall/ees", + "wall/region/ees" ] }, { @@ -18076,25 +17462,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/chunk = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* one or more input values can be listed\n* value = *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *density/mass*, *density/number*, *mass*, *temp*, c_ID, c_ID[I], f_ID, f_ID[I], v_name \n *        vx,vy,vz,fx,fy,fz,mass = atom attribute (velocity, force component, mass) \n *        density/number, density/mass = number or mass density (per volume) \n *        temp = temperature \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/arg pairs may be appended\n* keyword = norm or ave or bias or adof or cdof or file or append or overwrite or format or title1 or title2 or title3 \n *        norm arg = all or sample or none = how output on Nfreq steps is normalized \n         all = output is sum of atoms across all Nrepeat samples, divided by atom count \n         sample = output is sum of Nrepeat sample averages, divided by Nrepeat \n         none = output is sum of Nrepeat sample sums, divided by Nrepeat \n *        ave args = one or running or *window M* \n         one = output new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        bias arg = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias for temperature calculation \n *        adof value = dof_per_atom \n         dof_per_atom = define this many degrees-of-freedom per atom for temperature calculation \n *        cdof value = dof_per_chunk \n         dof_per_chunk = define this many degrees-of-freedom per chunk for temperature calculation \n *        file arg = filename \n         filename = file to write results to \n *        append arg = filename \n         filename = file to append results to \n *        overwrite arg = none = overwrite output file with only latest output \n *        format arg = string \n         string = C-style format string \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file \n", - "examples": "\n```lmps\nfix 1 all ave/chunk 10000 1 10000 binchunk c_myCentro title1 \"My output values\"\nfix 1 flow ave/chunk 100 10 1000 molchunk vx vz norm sample file vel.profile\nfix 1 flow ave/chunk 100 5 1000 binchunk density/mass ave running\nfix 1 flow ave/chunk 100 5 1000 binchunk density/mass ave running\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >\n **New in version 31May2016** \n >\n > If you are trying to replace a deprecated fix ave/spatial command\n > with the newer, more flexible fix ave/chunk and [compute > chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) commands, you simply need to split\n > the fix ave/spatial arguments across the two new commands. For\n > example, this command:\n >\n > .. code-block:: LAMMPS\n >\n > fix 1 flow ave/spatial 100 10 1000 y 0.0 1.0 vx vz norm sample file vel.profile\n >\n > could be replaced by:\n >\n > .. code-block:: LAMMPS\n >\n > compute cc1 flow chunk/atom bin/1d y 0.0 1.0\n > fix 1 flow ave/chunk 100 10 1000 cc1 vx vz norm sample file vel.profile\n >\n > \n > \n\n", - "html_filename": "fix_ave_chunk.html", - "short_description": "Use one or more per-atom vectors as inputs every few timesteps, sum\nthe values over the atoms in each chunk at each timestep, then average\nthe per-chunk values over longer timescales", - "description": "Use one or more per-atom vectors as inputs every few timesteps, sum\nthe values over the atoms in each chunk at each timestep, then average\nthe per-chunk values over longer timescales. The resulting chunk\naverages can be used by other [output commands ](https://docs.lammps.org/Howto_output.html) such\nas [thermo_style custom ](https://docs.lammps.org/thermo_style.html), and can also be written to\na file.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) page and the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\npage for details of how chunks can be defined and examples of how they\ncan be used to measure properties of a system.\n\nNote that if the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\ncommand defines spatial bins, the fix ave/chunk command performs a\nsimilar computation as the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command.\nHowever, the per-bin outputs from the fix ave/chunk command are\nglobal; each processor stores a copy of the entire set of bin data.\nBy contrast, the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command uses a\ndistributed grid where each processor owns a subset of the bins. Thus\nit is more efficient to use the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html)\ncommand when the grid is large and a simulation is run on many\nprocessors.\n\nNote that only atoms in the specified group contribute to the summing\nand averaging calculations. The [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command defines its own group as well as an\noptional region. Atoms will have a chunk ID = 0, meaning they belong\nto no chunk, if they are not in that group or region. Thus you can\nspecify the \"all\" group for this command if you simply want to use the\nchunk definitions provided by chunkID.\n\nEach specified per-atom value can be an atom attribute (position,\nvelocity, force component), a number or mass density, a mass or\ntemperature, or the result of a [compute ](https://docs.lammps.org/compute.html) or [fix](https://docs.lammps.org/fix.html) or the evaluation of an atom-style [variable ](https://docs.lammps.org/variable.html).\nIn the latter cases, the compute, fix, or variable must produce a\nper-atom quantity, not a global quantity. Note that the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command provides access to any\nattribute defined and stored by atoms. If you wish to time-average\nglobal quantities from a compute, fix, or variable, then see the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n\nThe per-atom values of each input vector are summed and averaged\nindependently of the per-atom values in other input vectors.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom quantities are those\nwhich have the word *atom* in their style name. See the doc pages for\nindividual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce per-atom\nquantities. [Variables ](https://docs.lammps.org/variable.html) of style *atom* are the only\nones that can be used with this fix since all other styles of variable\nproduce global quantities.\n\nNote that for values from a compute or fix that produces a per-atom\narray (multiple values per atom), the bracketed index I can be\nspecified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\"\nor \"m\\*n\". If \\(N\\) = the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two fix ave/chunk commands are\nequivalent, since the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command creates, in this case, a per-atom\narray with three columns:\n\n```lmps\ncompute myAng all property/atom angmomx angmomy angmomz\nfix 1 all ave/chunk 100 1 100 cc1 c_myAng[*] file tmp.angmom\nfix 2 all ave/chunk 100 1 100 cc1 c_myAng[1] c_myAng[2] c_myAng[3] file tmp.angmom\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix works by creating an array of size\n > \\(N_\\text{chunk} \\times N_\\text{values}\\) on each processor.\n > \\(N_\\text{chunk}\\) is the number of chunks, which is defined by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\n > \\(N_\\text{values}\\) is the number of input values specified.\n > Each processor loops over its atoms, tallying its values to the appropriate\n > chunk. Then the entire array is summed across all processors. This means\n > that using a large number of chunks will incur an overhead in memory and\n > computational cost (summing across processors), so be careful to\n > define a reasonable number of chunks. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be accessed and\ncontribute to the average. The final averaged quantities are generated on time\nsteps that are a multiples of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps. \\(N_\\text{freq}\\)\nmust be a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat} = 1\\)\\ . Also, the time steps\ncontributing to the average value cannot overlap (i.e.,\n\\(N_\\text{repeat} \\times N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on\ntime steps 90, 92, 94, 96, 98, 100 will be used to compute the final average\non time step 100. Similarly for time steps 190, 192, 194, 196, 198, 200 on\ntime step 200, etc. If \\(N_\\text{repeat}=1\\) and\n\\(N_\\text{freq} = 100\\), then no time averaging is done; values are simply\ngenerated on time steps 100, 200, etc.\n\nEach input value can also be averaged over the atoms in each chunk.\nThe way the averaging is done across the \\(N_\\text{repeat}\\) time steps to\nproduce output on the \\(N_\\text{freq}\\) time steps, and across multiple\n\\(N_\\text{freq}\\) outputs, is determined by the *norm* and *ave* keyword\nsettings, as discussed below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To perform per-chunk averaging within a \\(N_\\text{freq}\\) time window,\n > the number of chunks \\(N_\\text{chunk}\\) defined by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command must remain\n > constant. If the *ave* keyword is set to *running* or *window* then\n > \\(N_\\text{chunk}\\) must remain constant for the duration of the\n > simulation. This fix forces the chunk/atom compute specified by chunkID to\n > hold \\(N_\\text{chunk}\\) constant for the appropriate time windows,\n > by not allowing it to re-calculate \\(N_\\text{chunk}\\), which can also\n > affect how it assigns chunk IDs to atoms. This is particularly important to\n > understand if the chunks defined by the [compute chunk/atom > ](https://docs.lammps.org/compute_chunk_atom.html) command are spatial bins. If its *units*\n > keyword is set to *box* or *lattice*, then the number of bins\n > \\(N_\\text{chunk}\\) and size of each bin will be fixed over the\n > \\(N_\\text{freq}\\) time window, which can affect which atoms are\n > discarded if the simulation box size changes. If its *units* keyword is set\n > to *reduced*, then the number of bins \\(N_\\text{chunk}\\) will still be\n > fixed, but the size of each bin can vary at each time step if the\n > simulation box size changes (e.g., for an NPT simulation). \n > \n\n----------\n\nThe atom attribute values (*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *mass*) are\nself-explanatory. As noted above, any other atom attributes can be\nused as input values to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nThe *density/number* value means the number density is computed for\neach chunk (i.e., number/volume). The *density/mass* value means the\nmass density is computed for each chunk (i.e., total-mass/volume). The\noutput values are in units of 1/volume or mass density (mass/volume). See\nthe [units ](https://docs.lammps.org/units.html) command page for the definition of density\nfor each choice of units (e.g., g/cm\\ \\(^3\\)). If the chunks defined by\nthe [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command are spatial\nbins, the volume is the bin volume. Otherwise, it is the volume of the\nentire simulation box.\n\nThe *temp* value means the temperature is computed for each chunk,\nby the formula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE is the total kinetic energy of the chunk of atoms (sum of\n\\(\\frac{1}{2} m v^2\\)), DOF is the the total number of degrees of freedom\nfor all atoms in the chunk, \\(k_B\\) is the Boltzmann constant, and\n\\(T\\) is the absolute temperature.\n\nThe DOF is calculated as \\(N\\)\\ \\*adof + cdof, where \\(N\\) is the\nnumber of atoms in the chunk, adof is the number of degrees of freedom per\natom, and cdof is the number of degrees of freedom per chunk. By default,\nadof = 2 or 3 = dimensionality of system,\nas set via the [dimension ](https://docs.lammps.org/dimension.html) command, and cdof = 0.0.\nThis gives the usual formula for temperature.\n\nNote that currently this temperature only includes translational\ndegrees of freedom for each atom. No rotational degrees of freedom\nare included for finite-size particles. Also, no degrees of freedom\nare subtracted for any velocity bias or constraints that are applied,\nsuch as [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[fix shake ](https://docs.lammps.org/fix_shake.html), or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause those degrees of freedom (e.g., a constrained bond) could apply\nto sets of atoms that are both included and excluded from a specific\nchunk, and hence the concept is somewhat ill-defined. In some cases,\nyou can use the *adof* and *cdof* keywords to adjust the calculated\ndegrees of freedom appropriately, as explained below.\n\nAlso note that a bias can be subtracted from atom velocities before\nthey are used in the above formula for KE, by using the *bias*\nkeyword. This allows, for example, a thermal temperature to be\ncomputed after removal of a flow velocity profile.\n\nNote that the per-chunk temperature calculated by this fix and the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command can be\ndifferent. The compute calculates the temperature for each chunk for\na single snapshot. This fix can do that but can also time average\nthose values over many snapshots, or it can compute a temperature as\nif the atoms in the chunk on different time steps were collected\ntogether as one set of atoms to calculate their temperature. The\ncompute allows the center-of-mass velocity of each chunk to be\nsubtracted before calculating the temperature; this fix does not.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain time steps, which must be compatible with\n\\(N_\\text{every}\\), else an error results. Users can also write code for\ntheir own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. Variables of style\n*atom* can reference thermodynamic keywords and various per-atom\nattributes, or invoke other computes, fixes, or variables when they\nare evaluated, so this is a very general means of generating per-atom\nquantities to average within chunks.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix\nand its outputs.\n\nThe *norm* keyword affects how averaging is done for the per-chunk\nvalues that are output every \\(N_\\text{freq}\\) time steps.\n\nIt the *norm* setting is *all*, which is the default, a chunk value is summed\nover all atoms in all \\(N_\\text{repeat}\\) samples, as is the count of\natoms in the chunk. The averaged output value for the chunk on the\n\\(N_\\text{freq}\\) time steps is Total-sum / Total-count. In other words it\nis an average over atoms across the entire \\(N_\\text{freq}\\) timescale.\nFor the *density/number* and *density/mass* values, the volume (bin volume or\nsystem volume) used in the final normalization will be the volume at\nthe final \\(N_\\text{freq}\\) time step. For the *temp* values, degrees of\nfreedom and kinetic energy are summed separately across the entire\n\\(N_\\text{freq}\\) timescale, and the output value is calculated by dividing\nthose two sums.\n\nIf the *norm* setting is *sample*, the chunk value is summed over\natoms for each sample, as is the count, and an \"average sample value\"\nis computed for each sample (i.e., Sample-sum / Sample-count). The\noutput value for the chunk on the \\(N_\\text{freq}\\) time steps is the\naverage of the \\(N_\\text{repeat}\\) \"average sample values\" (i.e., the sum\nof \\(N_\\text{repeat}\\) \"average sample values\" divided by\n\\(N_\\text{repeat}\\)\\ ). In other words, it is an average of an average.\nFor the *density/number* and *density/mass* values, the volume (bin volume or\nsystem volume) used in the per-sample normalization will be the current volume\nat each sampling step.\n\nIf the *norm* setting is *none*, a similar computation as for the\n*sample* setting is done, except the individual \"average sample\nvalues\" are \"summed sample values\". A summed sample value is simply\nthe chunk value summed over atoms in the sample, without dividing by\nthe number of atoms in the sample. The output value for the chunk on\nthe \\(N_\\text{freq}\\) timesteps is the average of the\n\\(N_\\text{repeat}\\) \"summed sample values\" (i.e., the sum of\n\\(N_\\text{repeat}\\) \"summed sample values\" divided by\n\\(N_\\text{repeat}\\)\\ ).\nFor the *density/number* and *density/mass* values, the\nvolume (bin volume or system volume) used in the per-sample sum\nnormalization will be the current volume at each sampling step.\n\n----------\n\nThe *ave* keyword determines how the per-chunk values produced every\n\\(N_\\text{freq}\\) steps are averaged with values produced on previous steps\nthat were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, which is the default, then the chunk\nvalues produced on timesteps that are multiples of \\(N_\\text{freq}\\) are\nindependent of each other; they are output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the chunk values produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each output chunk value is thus\nthe average of the chunk value produced on that timestep with all\npreceding values for the same chunk. This running average begins when\nthe fix is defined; it can only be restarted by deleting the fix via\nthe [unfix ](https://docs.lammps.org/unfix.html) command, or re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the chunk values produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nwithin a moving \"window\" of time, so that the last \\(M\\) values for the\nsame chunk are used to produce the output. For example, if \\(M = 3\\) and\n\\(N_\\text{freq} = 1000\\), then the output on step 10000 will be the average\nof the individual chunk values on time steps 8000, 9000, and 10000. Outputs on\nearly steps will average over less than \\(M\\) values if they are not\navailable.\n\n----------\n\nThe *bias* keyword specifies the ID of a temperature compute that\nremoves a \"bias\" velocity from each atom, specified as *bias-ID* .\nIt is only used when the *temp* value is calculated, to compute the\nthermal temperature of each chunk after the translational kinetic\nenergy components have been altered in a prescribed way (e.g., to\nremove a flow velocity profile). See the doc pages for individual\ncomputes that calculate a temperature to see which ones implement a bias.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formula described above for temperature calculation\nfor each chunk. They are only used when the *temp* value is\ncalculated. They can be used to calculate a more appropriate\ntemperature for some kinds of chunks. Here are three examples:\n\nIf spatially binned chunks contain some number of water molecules and\n[fix shake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then\nyou could calculate a temperature with six degrees of freedom (DOF) (three\ntranslational, three rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the \\(x\\) component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nIf each chunk consists of a large molecule, with some number of its\nbonds constrained by [fix shake ](https://docs.lammps.org/fix_shake.html) or the entire molecule\nby [fix rigid/small ](https://docs.lammps.org/fix_rigid.html), *adof* = 0.0 and *cdof* could be\nset to the remaining degrees of freedom for the entire molecule\n(entire chunk in this case), that is, 6 for 3d or 3 for 2d for a rigid\nmolecule.\n\n----------\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every \\(N_\\text{freq}\\)\ntimesteps, a section of chunk info will be written to a text file in the\nfollowing format. A line with the timestep and number of chunks is\nwritten. Then one line per chunk is written, containing the chunk ID\n\\((1-N_\\text{chunk}),\\) an optional original ID value, optional\ncoordinate values for chunks that represent spatial bins, the number of\natoms in the chunk, and one or more calculated values. More explanation\nof the optional values is given below. The number of values in each\nline corresponds to the number of values specified in the fix ave/chunk\ncommand. The number of atoms and the value(s) are summed or average\nquantities, as explained above.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *format* keyword sets the numeric format of each value when it is\nprinted to a file via the *file* keyword. Note that all values are\nfloating point quantities. The default format is %g. You can specify\na higher precision if desired (e.g., %20.16g).\n\nThe *title1* and *title2* and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output\nfile, assuming the *file* keyword was used. LAMMPS uses default\nvalues for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Chunk-averaged data for fix ID and group name\n# Timestep Number-of-chunks\n# Chunk (OrigID) (Coord1) (Coord2) (Coord3) Ncount value1 value2 ...\n```\nIn the first line, ID and name are replaced with the fix-ID and group\nname. The second line describes the two values that are printed at\nthe first of each section of output. In the third line the values are\nreplaced with the appropriate value names (e.g., *fx* or c_myCompute[2]).\n\nThe words in parenthesis only appear with corresponding columns if the\nchunk style specified for the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command supports them. The OrigID column is\nonly used if the *compress* keyword was set to *yes* for the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. This means\nthat the original chunk IDs (e.g., molecule IDs) will have been\ncompressed to remove chunk IDs with no atoms assigned to them. Thus a\ncompressed chunk ID of 3 may correspond to an original chunk ID or\nmolecule ID of 415. The OrigID column will list 415 for the third chunk.\n\nThe CoordN columns only appear if a *binning* style was used in the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. For *bin/1d*,\n*bin/2d*, and *bin/3d* styles the column values are the center point\nof the bin in the corresponding dimension. Just Coord1 is used for\n*bin/1d*, Coord2 is added for *bin/2d*, Coord3 is added for *bin/3d* .\nFor *bin/sphere*, just Coord1 is used, and it is the radial\ncoordinate. For *bin/cylinder*, Coord1 and Coord2 are used. Coord1\nis the radial coordinate (away from the cylinder axis), and coord2 is\nthe coordinate along the cylinder axis.\n\nNote that if the value of the *units* keyword used in the\n[compute chunk/atom command ](https://docs.lammps.org/compute_chunk_atom.html) is *box* or\n*lattice*, the coordinate values will be in distance [units ](https://docs.lammps.org/units.html).\nIf the value of the *units* keyword is *reduced*, the\ncoordinate values will be in unitless reduced units (0--1). This is\nnot true for the Coord1 value of style *bin/sphere* or *bin/cylinder*\nwhich both represent radial dimensions. Those values are always in\ndistance [units ](https://docs.lammps.org/units.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The values can only be\naccessed on timesteps that are multiples of \\(N_\\text{freq}\\), since\nthat is when averaging is performed. The global array has # of rows =\nthe number of chunks \\(N_\\text{chunk}\\), as calculated by the\nspecified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The #\nof columns is \\(M+1+N_\\text{values}\\), where \\(M \\in\n\\{1,\\dotsc,4\\}\\), depending on whether the optional columns for OrigID\nand CoordN are used, as explained above. Following the optional\ncolumns, the next column contains the count of atoms in the chunk, and\nthe remaining columns are the Nvalue quantities. When the array is\naccessed with a row \\(I\\) that exceeds the current number of chunks,\nthan a 0.0 is returned by the fix instead of an error, since the number\nof chunks can vary as a simulation runs depending on how that value is\ncomputed by the compute chunk/atom command.\n\nThe array values calculated by this fix are treated as \"intensive\",\nsince they are typically already normalized by the count of atoms in\neach chunk.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n[fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = wall/ees or wall/region/ees \n *        args for style wall/ees : one or more *face parameters* groups may be appended \n *        face = xlo or xhi or ylo or yhi or zlo or zhi \n *        parameters = coord epsilon sigma cutoff \n         coord = position of wall = EDGE or constant or variable \n         EDGE = current lo or hi edge of simulation box \n         constant = number like 0.0 or -30.0 (distance units) \n         variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n         epsilon can be a variable (see below) \n         sigma = size factor for wall-particle interaction (distance units) \n         sigma can be a variable (see below) \n         cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n *        args for style wall/region/ees : region-ID *epsilon* sigma *cutoff* \n         region-ID = region whose boundary will act as wall \n         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n         sigma = size factor for wall-particle interaction (distance units) \n         cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n", + "examples": "\n```lmps\nfix wallhi all wall/ees xlo -1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/ees xhi EDGE 1.0 1.0 2.5\nfix wallhi all wall/ees v_wiggle 23.2 1.0 1.0 2.5\nfix zwalls all wall/ees zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858\n\nfix ees_cube all wall/region/ees myCube 1.0 1.0 2.5\n```\n", + "html_filename": "fix_wall_ees.html", + "short_description": "Fix *wall/ees* bounds the simulation domain on one or more of its\nfaces with a flat wall that interacts with the ellipsoidal atoms in\nthe group by generating a force on the atom in a direction\nperpendicular to the wall and a torque parallel with the wall", + "description": "Fix *wall/ees* bounds the simulation domain on one or more of its\nfaces with a flat wall that interacts with the ellipsoidal atoms in\nthe group by generating a force on the atom in a direction\nperpendicular to the wall and a torque parallel with the wall. The\nenergy of wall-particle interactions E is given by:\n\\[\n E = \\epsilon \\left[ \\frac{2 \\sigma_{LJ}^{12} \\left(7 r^5+14 r^3\n \\sigma_{n}^2+3 r \\sigma_{n}^4\\right) }{945\n \\left(r^2-\\sigma_{n}^2\\right)^7} -\\frac{ \\sigma_{LJ}^6 \\left(2 r\n \\sigma_{n}^3+\\sigma_{n}^2 \\left(r^2-\\sigma_{n}^2\\right)\\log{\n \\left[\\frac{r-\\sigma_{n}}{r+\\sigma_{n}}\\right]}\\right) }{12\n \\sigma_{n}^5 \\left(r^2-\\sigma_{n}^2\\right)} \\right]\\qquad \\sigma_n\n < r < r_c\\]\nIntroduced by Babadi and Ejtehadi in **BabadiEjtehadi**. Here, *r* is the distance from the particle to the\nwall at position *coord*, and Rc is the *cutoff* distance at which\nthe particle and wall no longer interact. Also, \\(\\sigma_n\\) is\nthe distance between center of ellipsoid and the nearest point of its\nsurface to the wall as shown below.\n\n ![Image](JPG/fix_wall_ees_image.jpg) \n\nDetails of using this command and specifications are the same as\nfix/wall command. You can also find an example in USER/ees/ under\nexamples/ directory.\n\nThe prefactor \\(\\epsilon\\) can be thought of as an\neffective Hamaker constant with energy units for the strength of the\nellipsoid-wall interaction. More specifically, the \\(\\epsilon\\)\nprefactor is\n\\[\n 8 \\pi^2 \\quad \\rho_{wall} \\quad \\rho_{ellipsoid} \\quad \\epsilon\n \\quad \\sigma_a \\quad \\sigma_b \\quad \\sigma_c\\]\nwhere \\(\\epsilon\\) is the LJ energy parameter for the constituent\nLJ particles and \\(\\sigma_a\\), \\(\\sigma_b\\), and\n\\(\\sigma_c\\) are the radii of the ellipsoidal\nparticles. \\(\\rho_{wall}\\) and \\(\\rho_{ellipsoid}\\) are the\nnumber density of the constituent particles, in the wall and ellipsoid\nrespectively, in units of 1/volume.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You must ensure that r is always bigger than \\(\\sigma_n\\) for\n > all particles in the group, or LAMMPS will generate an error. This\n > means you cannot start your simulation with particles touching the wall\n > position *coord* (\\(r = \\sigma_n\\)) or with particles penetrating\n > the wall (\\(0 =< r < \\sigma_n\\)) or with particles on the wrong\n > side of the wall (\\(r < 0\\)). \n > \n\nFix *wall/region/ees* treats the surface of the geometric region defined\nby the *region-ID* as a bounding wall which interacts with nearby\nellipsoidal particles according to the EES potential introduced above.\n\nOther details of this command are the same as for the [fixwall/region ](https://docs.lammps.org/fix_wall_region.html) command. One may also find an example\nof using this fix in the examples/PACKAGES/ees/ directory.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes are written to [binary restartfiles ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthese fixes to add the energy of interaction between atoms and all the\nspecified walls or region wall to the global potential energy of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault settings for these fixes are [fix_modify energy no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthese fixes. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThese fixes computes a global scalar and a global vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). See the [fix wall ](https://docs.lammps.org/fix_wall.html) command for a\ndescription of the scalar and vector.\n\nNo parameter of these fixes can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to these fixes are imposed during an energy\nminimization, invoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy*\n > option for this fix. \n > \n\n\n**(BabadiEjtehadi)** Babadi and Ejtehadi, EPL, 77 (2007) 23002. \n ", + "restrictions": "These fixes are part of the EXTRA-FIX package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes requires that atoms be ellipsoids as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[fix wall ](https://docs.lammps.org/fix_wall.html),\n[pair resquared ](https://docs.lammps.org/pair_resquared.html)\n" }, { "command": [ - "fix addtorque" + "compute gyration/chunk" ], "syntax": [ - "fix ID group-ID addtorque Tx Ty Tz" + "compute ID group-ID gyration/chunk chunkID keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -18109,47 +17495,46 @@ export const command_docs = [ "choices": [] }, { - "arg": "addtorque", + "arg": "gyration/chunk", "type": 1, "choices": [] }, { - "arg": "Tx", + "arg": "chunkID", "type": 2, "choices": [] }, { - "arg": "Ty", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "Tz", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* addtorque = style name of this fix command\n* Tx,Ty,Tz = torque component values (torque units)\n* any of Tx,Ty,Tz can be a variable (see below) \n", - "examples": "\n```lmps\nfix kick bead addtorque 2.0 3.0 5.0\nfix kick bead addtorque 0.0 0.0 v_oscillate\n```\n", - "html_filename": "fix_addtorque.html", - "short_description": "Add a set of forces to each atom in\nthe group such that:\n\n* the components of the total torque applied on the group (around its\n center of mass) are \\(T_x\\), \\(T_y\\), and \\(T_z\\)\n* the group would move as a rigid body in the absence of other\n forces", - "description": "Add a set of forces to each atom in\nthe group such that:\n\n* the components of the total torque applied on the group (around its\n center of mass) are \\(T_x\\), \\(T_y\\), and \\(T_z\\)\n* the group would move as a rigid body in the absence of other\n forces.\n\nThis command can be used to drive a group of atoms into rotation.\n\nAny of the three quantities defining the torque components can be specified\nas an equal-style [variable ](https://docs.lammps.org/variable.html), namely *Tx*,\n*Ty*, *Tz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\ntorque component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent torque.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential \"energy\" inferred by the added torques\nto the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nis a fictitious quantity but is needed so that the [minimize](https://docs.lammps.org/minimize.html) command can include the forces added by this fix in a\nconsistent manner (i.e., there is a decrease in potential energy when\natoms move in the direction of the added forces).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its torque. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nis the potential energy discussed above. The vector is the total\ntorque on the group of atoms before the forces on individual atoms are\nchanged by the fix. The scalar and vector values calculated by this\nfix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not specify force components with a variable that has\n > time-dependence for use with a minimizer, since the minimizer\n > increments the timestep as the iteration count during the\n > minimization.\n >\n > \n > \n\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", - "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* zero or more keyword/value pairs may be appended\n* keyword = tensor \n *        tensor value = none \n", + "examples": "\n```lmps\ncompute 1 molecule gyration/chunk molchunk\ncompute 2 molecule gyration/chunk molchunk tensor\n```\n", + "html_filename": "compute_gyration_chunk.html", + "short_description": "Define a computation that calculates the radius of gyration \\(R_g\\) for\nmultiple chunks of atoms", + "description": "Define a computation that calculates the radius of gyration \\(R_g\\) for\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin.\nSee the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the radius of gyration \\(R_g\\) for each chunk,\nwhich includes all effects due to atoms passing through periodic\nboundaries.\n\n\\(R_g\\) is a measure of the size of a chunk, and is computed by the\nformula\n\\[\n R_g^2 = \\frac{1}{M} \\sum_i m_i (r_i - r_{\\text{cm}})^2\\]\nwhere \\(M\\) is the total mass of the chunk, \\(r_{\\text{cm}}\\) is\nthe center-of-mass position of the chunk, and the sum is over all atoms in the\nchunk.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nIf the *tensor* keyword is specified, then the scalar \\(R_g\\) value is not\ncalculated, but an \\(R_g\\) tensor is instead calculated for each chunk.\nThe formula for the components of the tensor is the same as the above\nformula, except that \\((r_i - r_{\\text{cm}})^2\\) is replaced by\n\\((r_{i,x} - r_{\\text{cm},x}) \\cdot (r_{i,y} - r_{\\text{cm},y})\\) for the\n\\(xy\\) component, and so on. The six components of the tensor are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to \\(R_g\\) in \"unwrapped\" form,\n > by using the image flags associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html)\n > command for a discussion of \"unwrapped\" coordinates.\n > See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You can\n > reset the image flags (e.g., to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute gyration/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all gyration/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global vector if the *tensor* keyword is not\nspecified and a global array if it is. The length of the vector or\nnumber of rows in the array = the number of chunks *Nchunk* as\ncalculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\ncommand. If the *tensor* keyword is specified, the global array has six\ncolumns. The vector or array can\nbe accessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nAll the vector or array values calculated by this compute are\n\"intensive\". The vector or array values will be in distance\n[units ](https://docs.lammps.org/units.html), since they are the square root of values\nrepresented by the formula above.\n", + "restrictions": " none\n", + "related": "none\n\n\n[compute gyration ](https://docs.lammps.org/compute_gyration.html)\n" }, { "command": [ - "fix property/atom", - "fix property/atom/kk" + "dump molfile" ], "syntax": [ - "fix ID group-ID property/atom name1 name2 ... keyword value ..." + "dump ID group-ID molfile N file format path" ], "args": [ [ { - "arg": "fix", + "arg": "dump", "type": 1, "choices": [] }, @@ -18164,196 +17549,207 @@ export const command_docs = [ "choices": [] }, { - "arg": "property/atom", - "type": 3, - "choices": [ - "property/atom", - "property/atom/kk" - ] + "arg": "molfile", + "type": 1, + "choices": [] }, { - "arg": "d2_name", - "type": 3, - "choices": [ - "mol", - "q", - "rmass", - "i_name", - "d_name", - "i2_name", - "d2_name" - ] + "arg": "N", + "type": 2, + "choices": [] }, { - "arg": "d2_name", - "type": 3, - "choices": [ - "mol", - "q", - "rmass", - "i_name", - "d_name", - "i2_name", - "d2_name" - ] + "arg": "file", + "type": 2, + "choices": [] }, { - "arg": "keyword", + "arg": "format", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "path", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* property/atom = style name of this fix command\n* name1,name2,... = mol or q or rmass or i_name or d_name or i2_name or d2_name \n *        mol = molecule IDs \n *        q = charge \n *        rmass = per-atom mass \n *        *temperature* = internal temperature of atom \n *        *heatflow* = internal heat flow of atom \n *        i_name = new integer vector referenced by name \n *        d_name = new floating-point vector referenced by name \n *        i2_name = new integer array referenced by name \n         i2_name arg = N = number of columns in the array \n *        d2_name = new floating-point array referenced by name \n         d2_name arg = N = number of columns in the array \n* zero of more keyword/value pairs may be appended\n* keyword = ghost \n *        ghost value = no or yes for whether ghost atom info in communicated \n", - "examples": "\n```lmps\nfix 1 all property/atom mol\nfix 1 all property/atom i_myflag1 i_myflag2\nfix 1 all property/atom d2_sxyz 3 ghost yes\n```\n", - "html_filename": "fix_property_atom.html", - "short_description": "Create one or more additional per-atom vectors or arrays to store\ninformation about atoms and to use during a simulation", - "description": "Create one or more additional per-atom vectors or arrays to store\ninformation about atoms and to use during a simulation. The specified\n*group-ID* is ignored by this fix.\n\nThe atom style used for a simulation defines a set of per-atom\nproperties, as explained on the [atom_style ](https://docs.lammps.org/atom_style.html) and\n[read_data ](https://docs.lammps.org/read_data.html) doc pages. The latter command defines\nthese properties for each atom in the system when a data file is read.\nThis fix augments the set of per-atom properties with new custom\nones. This can be useful in several scenarios.\n\nIf the atom style does not define molecule IDs, per-atom charge,\nper-atom mass, internal temperature, or internal heat flow, they can\nbe added using the *mol* , *q*, *rmass*, *temperature*, or *heatflow*\nkeywords. This could be useful to define \"molecules\" to use as rigid\nbodies with the [fix rigid ](https://docs.lammps.org/fix_rigid.html) command, or to carry\naround an extra flag with atoms (stored as a molecule ID) that can be\nused by various commands like [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) to group atoms without having to use the group\ncommand (which is limited to a total of 32 groups including *all* ).\nFor finite-size particles, an internal temperature and heat flow can\nbe used to model heat conduction as in the\n[GRANULAR package ](https://docs.lammps.org/Howto_granular.html).\n\nAnother application is to use the *rmass* flag in order to have\nper-atom masses instead of per-type masses. This could be used to\nstudy isotope effects with partial isotope substitution. :ref:`See\nbelow ` for an example of simulating a mixture of light and\nheavy water with the TIP4P water potential.\n\nAn alternative to using fix *property/atom* for these examples is to\nuse an atom style that does define molecule IDs or charge or per-atom\nmass (indirectly via diameter and density) or to use a hybrid atom\nstyle that combines two or more atom styles to provide the union of\nall their atom properties. However, this has two practical drawbacks:\nfirst, it typically necessitates changing the format of the Atoms\nsection in the data file and second, it may define additional\nproperties that are not needed such as bond lists, which incurs some\noverhead when there are no bonds.\n\nIn the future, we may add additional existing per-atom properties to\nfix property/atom, similar to *mol* , *q*, *rmass* , *temperature* ,\nor *heatflow* which \"turn-on\" specific properties defined by some atom\nstyles, so they can be easily used by atom styles that do not define\nthem.\n\nMore generally, the *i_name* and *d_name* options allow one or more\nnew custom per-atom vectors to be defined. Likewise the *i2_name* and\n*d2_name* options allow one or more custom per-atom arrays to be\ndefined. The *i2_name* and *d2_name* options take an argument *N*\nwhich specifies the number of columns in the per-atom array, i.e. the\nnumber of attributes associated with each atom. *N* >= 1 is required.\n\nEach name must be unique and can use alphanumeric or underscore\ncharacters. These vectors and arrays can store whatever values you\ndecide are useful in your simulation. As explained below there are\nseveral ways to initialize, access, and output these values, via input\nscript commands, data files, and in new code you add to LAMMPS.\n\nThis is effectively a simple way to add per-atom properties to a model\nwithout needing to write code for a new [atom style ](https://docs.lammps.org/atom_style.html)\nthat defines the properties. Note however that implementing a new\natom style allows new atom properties to be more tightly and\nseamlessly integrated with the rest of the code.\n\nThe new atom properties encode values that migrate with atoms to new\nprocessors and are written to restart files. If you want the new\nproperties to also be defined for ghost atoms, then use the *ghost*\nkeyword with a value of *yes* . This will invoke extra communication\nwhen ghost atoms are created (at every re-neighboring) to ensure the\nnew properties are also defined for the ghost atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Properties on ghost atoms \n >If you use the *mol* , *q* or *rmass* names, you most likely want\n > to set *ghost* yes, since these properties are stored with ghost\n > atoms if you use an [atom_style ](https://docs.lammps.org/atom_style.html) that defines\n > them. Many LAMMPS operations that use molecule IDs or charge, such\n > as neighbor lists and pair styles, will expect ghost atoms to have\n > these values. LAMMPS will issue a warning it you define those\n > vectors but do not set *ghost* yes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Limitations on ghost atom properties \n >The specified properties for ghost atoms are not updated every\n > timestep, but only once every few steps when neighbor lists are\n > re-built. Thus the *ghost* keyword is suitable for static\n > properties, like molecule IDs, but not for dynamic properties that\n > change every step. For the latter, the code you add to LAMMPS to\n > change the properties will also need to communicate their new\n > values to/from ghost atoms, an operation that can be invoked from\n > within a [pair style ](https://docs.lammps.org/pair_style.html) or [fix ](https://docs.lammps.org/fix.html) or\n > [compute ](https://docs.lammps.org/compute.html) that you write. \n > \n\n----------\n\nThis fix is one of a small number that can be defined in an input\nscript before the simulation box is created or atoms are defined.\nThis is so it can be used with the [read_data ](https://docs.lammps.org/read_data.html)\ncommand as described next.\n\nPer-atom properties that are defined by the [atom style](https://docs.lammps.org/atom_style.html) are initialized when atoms are created, e.g. by the\n[read_data ](https://docs.lammps.org/read_data.html) or [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommands. The per-atom properties defined by this fix are not. So\nyou need to initialize them explicitly. One way to do this is\n[read_data ](https://docs.lammps.org/read_data.html) command, using its *fix* keyword and\npassing it the fix-ID of this fix.\n\nThus these commands:\n\n```lmps\nfix prop all property/atom mol d_flag\nread_data data.txt fix prop NULL Molecules\n```\nwould allow a data file to have a section like this:\n\n```\nMolecules\n\n1 4 1.5\n2 4 3.0\n3 10 1.0\n4 10 1.0\n5 10 1.0\n...\nN 763 4.5\n```\nwhere N is the number of atoms, the first field on each line is the\natom-ID, the next two are a molecule-ID and a floating point value\nthat will be stored in a new property called \"flag\". If a per-atom\narray was specified in the fix property/atom command then the *N*\nvalues for that array must be specified consecutively for that\nproperty on each line. Note that the order of values on each line\ncorresponds to the order of custom names in the fix property/atom\ncommand.\n\nNote that the the lines of per-atom properties can be listed in any\norder. Also note that all the per-atom properties specified by the\nfix ID (prop in this case) must be included on each line in the\nspecified data file section (Molecules in this case).\n\nAnother way of initializing the new properties is via the [set](https://docs.lammps.org/set.html) command. For example, if you wanted molecules defined for\nevery set of 10 atoms, based on their atom-IDs, these commands could\nbe used:\n\n```lmps\nfix prop all property/atom mol\nvariable cluster atom ((id-1)/10)+1\nset atom * mol v_cluster\n```\nThe [atom-style variable ](https://docs.lammps.org/variable.html) will create values for atoms\nwith IDs 31,32,33,...40 that are 4.0,4.1,4.2,...,4.9. When the\n[set ](https://docs.lammps.org/set.html) commands assigns them to the molecule ID for each\natom, they will be truncated to an integer value, so atoms 31-40 will\nall be assigned a molecule ID of 4.\n\nNote that [atomfile-style variables ](https://docs.lammps.org/variable.html) can also be used\nin place of atom-style variables, which means in this case that the\nmolecule IDs could be read-in from a separate file and assigned by the\n[set ](https://docs.lammps.org/set.html) command. This allows you to initialize new per-atom\nproperties in a completely general fashion.\n\n----------\n\nFor new atom properties specified as *i_name*, *d_name*, *i2_name*, or\n*d2_name*, the [dump custom ](https://docs.lammps.org/dump.html) and [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) commands can access their\nvalues. This means that the values can be used accessed by fixes like\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), accessed by other computes like\n[compute reduce ](https://docs.lammps.org/compute_reduce.html), or used in [atom-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, these commands will output both the instantaneous and\ntime-averaged values of two new properties to a custom dump file:\n\n```lmps\nfix myprops all property/atom i_flag1 d_flag2\ncompute 1 all property/atom i_flag1 d_flag2\nfix 1 all ave/atom 10 10 100 c_1[1] c_1[2]\ndump 1 all custom 100 tmp.dump id x y z i_flag1 d_flag2 f_1[1] f_1[2]\n```\n----------\n\nIf you wish to add new [pair styles ](https://docs.lammps.org/pair_style.html), [fixes](https://docs.lammps.org/fix.html), or [computes ](https://docs.lammps.org/compute.html) that use the per-atom properties\ndefined by this fix, see the [Modify atom ](https://docs.lammps.org/Modify_atom.html) doc page\nwhich has details on how the custom properties of this fix can be\naccessed from added classes.\n\n----------\n\n.. _isotopes:\n\nHere is an example of using per-atom masses with TIP4P water to study\nisotope effects. When setting up simulations with the [TIP4P pairstyles ](https://docs.lammps.org/Howto_tip4p.html) for water, you have to provide exactly one atom\ntype each to identify the water oxygen and hydrogen atoms. Since the\natom mass is normally tied to the atom type, this makes it impossible\nto study multiple isotopes in the same simulation. With *fix\nproperty/atom rmass* however, the per-type masses are replaced by\nper-atom masses. Asumming you have a working input deck for regular\nTIP4P water, where water oxygen is atom type 1 and water hydrogen is\natom type 2, the following lines of input script convert this to using\nper-atom masses:\n\n```lmps\nfix Isotopes all property/atom rmass ghost yes\nset type 1 mass 15.9994\nset type 2 mass 1.008\n```\nWhen writing out the system data with the [write_data](https://docs.lammps.org/write_data.html) command, there will be a new section named with the\nfix-ID (i.e. *Isotopes* in this case). Alternatively, you can take an\nexisting data file and just add this *Isotopes* section with one line\nper atom containing atom-ID and mass. Either way, the extended data\nfile can be read back with:\n\n```lmps\nfix Isotopes all property/atom rmass ghost yes\nread_data tip4p-isotopes.data fix Isotopes NULL Isotopes\n```\nPlease note that the first *Isotopes* refers to the fix-ID and the\nsecond to the name of the section. The following input script code\nwill now change the first 100 water molecules in this example to heavy\nwater:\n\n```lmps\ngroup hwat id 2:300:3\ngroup hwat id 3:300:3\nset group hwat mass 2.0141018\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the per-atom values it stores to [binary restartfiles ](https://docs.lammps.org/restart.html), so that the values can be restored when a simulation\nis restarted. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >When reading data from a restart file, this fix command has to be\n > specified **after** the *read_restart* command and **exactly** the\n > same was in the input script that created the restart file. LAMMPS\n > will only check whether a fix is of the same style and has the same\n > fix ID and in case of a match will then try to initialize the fix\n > with the data stored in the binary restart file. If the names and\n > associated date types in the new fix property/atom command do not\n > match the old one exactly, data can be corrupted or LAMMPS may crash.\n > If the fix is specified **before** the *read_restart* command its\n > data will not be restored. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [set ](https://docs.lammps.org/set.html),\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html)\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* molfile = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write to\n* format = file format to be used\n* path = file path with plugins (optional) \n", + "examples": "\n```lmps\ndump mf1 all molfile 10 melt1.xml hoomd\ndump mf2 all molfile 10 melt2-*.pdb pdb .\ndump mf3 all molfile 50 melt3.xyz xyz .:/home/akohlmey/vmd/plugins/LINUX/molfile\n```\n", + "html_filename": "dump_molfile.html", + "short_description": "Dump a snapshot of atom coordinates and selected additional quantities\nto one or more files every N timesteps in one of several formats", + "description": "Dump a snapshot of atom coordinates and selected additional quantities\nto one or more files every N timesteps in one of several formats.\nOnly information for atoms in the specified group is dumped. This\nspecific dump style uses molfile plugins that are bundled with the\n[VMD](https://www.ks.uiuc.edu/Research/vmd) molecular visualization and\nanalysis program.\n\nUnless the filename contains a \\* character, the output will be written\nto one single file with the specified format. Otherwise there will be\none file per snapshot and the \\* will be replaced by the time step number\nwhen the snapshot is written.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > written to a dump file may be slightly outside the simulation box. \n > \n\nThe molfile plugin API has a few restrictions that have to be honored\nby this dump style: the number of atoms must not change, the atoms\nmust be sorted, outside of the coordinates no change in atom properties\n(like type, mass, charge) will be recorded.\n\n----------\n\nThe *format* keyword determines what format is used to write out the\ndump. For this to work, LAMMPS must be able to find and load a\ncompatible molfile plugin that supports this format. Settings made via\nthe [dump_modify ](https://docs.lammps.org/dump_modify.html) command can alter per atom properties\nlike element names.\n\nThe *path* keyword determines which in directories. This is a \"path\"\nlike other search paths, i.e. it can contain multiple directories\nseparated by a colon (or semicolon on Windows). This keyword is\noptional and default to \".\", the current directory.\n\nThe *unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command allows\ncoordinates to be written \"unwrapped\" by the image flags for each atom.\nUnwrapped means that if the atom has passed through a periodic boundary\none or more times, the value is printed for what the coordinate would be\nif it had not been wrapped back into the periodic box. Note that these\ncoordinates may thus be far outside the box size stored with the\nsnapshot.\n\n----------\n\nDumps are performed on timesteps that are a multiple of N (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of N. This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which can\nbe useful if the dump command is invoked after a minimization ended on\nan arbitrary timestep. N can be changed between runs by using the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command. The [dump_modify every ](https://docs.lammps.org/dump_modify.html) command also allows a variable to be used to\ndetermine the sequence of timesteps on which dump files are written.\n\n----------\n", + "restrictions": "The *molfile* dump style is part of the MOLFILE package. It is\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nMolfile plugins provide a consistent programming interface to read and\nwrite file formats commonly used in molecular simulations. The\nMOLFILE package only provides the interface code, not the plugins.\nThese can be obtained from a VMD installation which has to match the\nplatform that you are using to compile LAMMPS for. By adding plugins\nto VMD, support for new file formats can be added to LAMMPS (or VMD\nor other programs that use them) without having to re-compile the\napplication itself. The plugins are installed in the directory:\n/plugins//molfile\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >while the programming interface (API) to the plugins is backward\n > compatible, the binary interface (ABI) has been changing over time, so\n > it is necessary to compile this package with the plugin header files\n > from VMD that match the binary plugins. These header files in the\n > directory: /plugins/include For convenience, the package ships\n > with a set of header files that are compatible with VMD 1.9 and 1.9.1\n > (June 2012) \n > \n\n----------\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" }, { "command": [ - "fix_modify AtC mesh read" + "bond_style class2", + "bond_style class2/omp", + "bond_style class2/kk" ], "syntax": [ - "fix_modify mesh read " + "bond_style class2" ], "args": [ [ { - "arg": "fix_modify", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "mesh", - "type": 1, - "choices": [] - }, + "arg": "class2", + "type": 3, + "choices": [ + "class2", + "class2/omp", + "class2/kk" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nbond_style class2\nbond_coeff 1 1.0 100.0 80.0 80.0\n```\n", + "html_filename": "bond_class2.html", + "short_description": "The *class2* bond style uses the potential\n\\[\n E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4\\]\nwhere \\(r_0\\) is the equilibrium bond distance", + "description": "The *class2* bond style uses the potential\n\\[\n E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4\\]\nwhere \\(r_0\\) is the equilibrium bond distance.\n\nSee **bond-Sun** for a description of the COMPASS class2 force field.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(r_0\\) (distance)\n* \\(K_2\\) (energy/distance\\^2)\n* \\(K_3\\) (energy/distance\\^3)\n* \\(K_4\\) (energy/distance\\^4)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(bond-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the CLASS2\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" +}, +{ + "command": [ + "pair_style mesocnt" + ], + "syntax": [ + "pair_style style neigh_cutoff mode neigh_mode" + ], + "args": [ + [ { - "arg": "read", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "mesocnt/viscous", "type": 3, "choices": [ - "f", - "p" + "mesocnt", + "mesocnt/viscous" ] }, { - "arg": "", + "arg": "neigh_cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "segment", "type": 3, "choices": [ - "f", - "p" + "chain", + "segment" ] }, { - "arg": "", + "arg": "topology", "type": 3, "choices": [ - "f", - "p" + "id", + "topology" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh read = name of the AtC sub-command\n* filename = name of the file containing the mesh to be read\n* f or p = periodicity flags for x-, y-, and z-direction (optional) \n", - "examples": "\n```lmps\nfix_modify AtC mesh read myComponent.mesh p p p\nfix_modify AtC mesh read myOtherComponent.exo\n```\n", - "html_filename": "atc_mesh_read.html", - "short_description": "Reads a mesh from a text or exodus file, and assigns periodic boundary\nconditions if needed", - "description": "Reads a mesh from a text or exodus file, and assigns periodic boundary\nconditions if needed.\n", - "restrictions": "None\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n- [fix_modify AtC mesh write ](https://docs.lammps.org/atc_mesh_write.html)\n" + "parameters": "* style = mesocnt or mesocnt/viscous\n* neigh_cutoff = neighbor list cutoff (distance units)\n* mode = chain or segment (optional)\n* neigh_mode = id or topology (optional) \n", + "examples": "\n```lmps\npair_style mesocnt 30.0\npair_coeff * * C_10_10.mesocnt 2\n\npair_style mesocnt/viscous 60.0 chain topology\npair_coeff * * C_10_10.mesocnt 0.001 20.0 0.2 2 4\n```\n", + "html_filename": "pair_mesocnt.html", + "short_description": "Style *mesocnt* implements a mesoscopic potential for the interaction\nof carbon nanotubes (CNTs), or other quasi-1D objects such as other\nkinds of nanotubes or nanowires", + "description": "Style *mesocnt* implements a mesoscopic potential for the interaction\nof carbon nanotubes (CNTs), or other quasi-1D objects such as other\nkinds of nanotubes or nanowires. In this potential, CNTs are modelled\nas chains of cylindrical segments in which each infinitesimal surface\nelement interacts with all other CNT surface elements with the\nLennard-Jones (LJ) term adopted from the [airebo ](https://docs.lammps.org/pair_airebo.html)\nstyle. The interaction energy is then computed by integrating over the\nsurfaces of all interacting CNTs.\n\nIn LAMMPS, cylindrical segments are represented by bonds. Each segment\nis defined by its two end points (\"nodes\") which correspond to atoms\nin LAMMPS. For the exact functional form of the potential and\nimplementation details, the reader is referred to the original papers\n**Volkov1** and **Volkov2**.\n\nThe potential supports two modes, *segment* and *chain*. By default,\n*chain* mode is enabled. In *segment* mode, interactions are\npair-wise between all neighboring segments based on a segment-segment\napproach (keyword *segment* in pair_style command). In *chain* mode,\ninteractions are calculated between each segment and infinitely or\nsemi-infinitely long CNTs as described in **Volkov1**.\nChains of segments are converted to these (semi-)infinite CNTs bases\non an approximate chain approach outlined in **Volkov2**. Hence, interactions are calculated on a segment-chain\nbasis (keyword *chain* in the pair_style command). Using *chain* mode\nallows to simplify the computation of the interactions significantly\nand reduces the computational times to the same order of magnitude as\nfor regular bead spring models where beads interact with the standard\n[pair_lj/cut ](https://docs.lammps.org/pair_lj.html) potential. However, this method is only\nvalid when the curvature of the CNTs in the system is small. When\nCNTs are buckled (see [angle_mesocnt ](https://docs.lammps.org/angle_mesocnt.html)), local\ncurvature can be very high and the pair_style automatically switches\nto *segment* mode for interactions involving buckled CNTs.\n\nThe potential further implements two different neighbor list\nconstruction modes. Mode *id* uses atom and mol IDs to construct\nneighbor lists while *topology* modes uses only the bond topology of\nthe system. While *id* mode requires bonded atoms to have consecutive\nLAMMPS atom IDs and atoms in different CNTs to have different LAMMPS\nmolecule IDs, *topology* mode has no such requirement. Using *id* mode\nis faster and is enabled by default.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Neighbor *id* mode requires all CNTs in the system to have distinct\n > LAMMPS molecule IDs and bonded atoms to have consecutive LAMMPS atom\n > IDs. If this is not possible (e.g. in simulations of CNT rings),\n > *topology* mode needs to be enabled in the pair_style command. \n > \n\n\nIn addition to the LJ interactions described above, style\n*mesocnt/viscous* explicitly models friction between neighboring\nsegments. Friction forces are a function of the relative velocity\nbetween a segment and its neighboring approximate chain (even in\n*segment* mode) and only act along the axes of the interacting segment\nand chain. In this potential, friction forces acting per unit length\nof a nanotube segment are modelled as a shifted logistic function:\n\\[\n F^{\\text{FRICTION}}(v) / L = \\frac{F^{\\text{max}}}{1 +\n \\exp(-k(v-v_0))} - \\frac{F^{\\text{max}}}{1 + \\exp(k v_0)}\\]\n----------\n\nIn the pair_style command, the modes described above can be toggled\nusing the *segment* or *chain* keywords. The neighbor list cutoff\ndefines the cutoff within which atoms are included in the neighbor\nlist for constructing neighboring CNT chains. This is different from\nthe potential cutoff, which is directly calculated from parameters\nspecified in the potential file. We recommend using a neighbor list\ncutoff of at least 3 times the maximum segment length used in the\nsimulation to ensure proper neighbor chain construction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >CNT ends are treated differently by all *mesocnt* styles. Atoms on\n > CNT ends need to be assigned different LAMMPS atom types than atoms\n > not on CNT ends. \n > \n\nStyle *mesocnt* requires tabulated data provided in a single ASCII\ntext file, as well as a list of integers corresponding to all LAMMPS\natom types representing CNT ends:\n\n* filename\n* \\(N\\) CNT end atom types\n\nFor example, if your LAMMPS simulation of (10, 10) nanotubes has 4\natom types where atom types 1 and 3 are assigned to 'inner' nodes and\natom types 2 and 4 are assigned to CNT end nodes, the pair_coeff\ncommand would be:\n\n```lmps\npair_coeff * * C_10_10.mesocnt 2 4\n```\nLikewise, style *mesocnt/viscous* also requires the same information\nas style *mesocnt*, with the addition of 3 parameters for the viscous\nfriction forces as listed above:\n\n* filename\n* \\(F^{\\text{max}}\\)\n* \\(k\\)\n* \\(v_0\\)\n* \\(N\\) CNT end atom types\n\nUsing the same example system as with style *mesocnt* with the\naddition of friction, the pair_coeff command is:\n\n```lmps\npair_coeff * * C_10_10.mesocnt 0.03 20.0 0.20 2 4\n```\nPotential files for CNTs can be readily generated using the freely\navailable code provided on\n\n```\nhttps://github.com/phankl/cntpot\n```\nUsing the same approach, it should also be possible to generate\npotential files for other 1D systems mentioned above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because of their size, *mesocnt* style potential files are not\n > bundled with LAMMPS. When compiling LAMMPS from source code, the\n > file ``C_10_10.mesocnt`` should be downloaded separately from\n > `https://download.lammps.org/potentials/C_10_10.mesocnt\n > `_\n >\n > The first line of the potential file provides a time stamp and\n > general information. The second line lists four integers giving the\n > number of data points provided in the subsequent four data\n > tables. The third line lists four floating point numbers: the CNT\n > radius R, the LJ parameter sigma and two numerical parameters\n > delta1 and delta2. These four parameters are given in\n > Angstroms. This is followed by four data tables each separated by a\n > single empty line. The first two tables have two columns and list\n > the parameters uInfParallel and Gamma respectively. The last two\n > tables have three columns giving data on a quadratic array and list\n > the parameters Phi and uSemiParallel respectively. uInfParallel\n > and uSemiParallel are given in eV/Angstrom, Phi is given in eV and\n > Gamma is unitless.\n >\n > If a simulation produces many warnings about segment-chain\n > interactions falling outside the interpolation range, we recommend\n > generating a potential file with lower values of delta1 and delta2. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles does not support mixing.\n\nThese pair styles does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) shift, table, and tail options.\n\nThese pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential\nfiles. Thus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Volkov1)** Volkov and Zhigilei, J Phys Chem C, 114, 5513 (2010). \n \n**(Volkov2)** Volkov, Simov and Zhigilei, APS Meeting Abstracts,\nQ31.013 (2008). \n \n**(Volkov2)** Volkov, Simov and Zhigilei, APS Meeting Abstracts,\nQ31.013 (2008). \n ", + "restrictions": "These styles are part of the MESONT package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThese pair styles require all 3 [special_bonds lj ](https://docs.lammps.org/special_bonds.html)\nsettings to be non-zero for proper neighbor list construction.\n\nPair style *mesocnt/viscous* requires you to use the [comm_modifyvel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style mesocnt ](https://docs.lammps.org/bond_mesocnt.html),\n[angle_style mesocnt ](https://docs.lammps.org/angle_mesocnt.html)\n" }, { "command": [ - "compute dihedral" + "neighbor" ], "syntax": [ - "compute ID group-ID dihedral" + "neighbor skin style" ], "args": [ [ { - "arg": "compute", + "arg": "neighbor", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "skin", "type": 2, "choices": [] }, { - "arg": "dihedral", - "type": 1, - "choices": [] + "arg": "multi/old", + "type": 3, + "choices": [ + "bin", + "nsq", + "multi", + "multi/old" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dihedral = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all dihedral\n```\n", - "html_filename": "compute_dihedral.html", - "short_description": "Define a computation that extracts the dihedral energy calculated by\neach of the dihedral sub-styles used in the [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) command", - "description": "Define a computation that extracts the dihedral energy calculated by\neach of the dihedral sub-styles used in the [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) command. These values are made\naccessible for output or further processing by other commands. The\ngroup specified for this command is ignored.\n\nThis compute is useful when using [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) if you want to know the portion of the\ntotal energy contributed by one or more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\)\nis the number of sub_styles defined by the\n[dihedral_style hybrid ](https://docs.lammps.org/dihedral_style.html) command, which can be accessed by\nthe indices 1 through \\(N\\). These values can be used by any command that\nuses global scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", + "parameters": "* skin = extra distance beyond force cutoff (distance units)\n* style = bin or nsq or multi or multi/old \n", + "examples": "\n```lmps\nneighbor 0.3 bin\nneighbor 2.0 nsq\n```\n", + "html_filename": "neighbor.html", + "short_description": "This command sets parameters that affect the building of pairwise\nneighbor lists", + "description": "This command sets parameters that affect the building of pairwise\nneighbor lists. All atom pairs within a neighbor cutoff distance\nequal to the their force cutoff plus the *skin* distance are stored in\nthe list. Typically, the larger the skin distance, the less often\nneighbor lists need to be built, but more pairs must be checked for\npossible force interactions every timestep. The default value for\n*skin* depends on the choice of units for the simulation; see the\ndefault values below.\n\nThe *skin* distance is also used to determine how often atoms migrate\nto new processors if the *check* option of the\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html) command is set to *yes* . Atoms are\nmigrated (communicated) to new processors on the same timestep that\nneighbor lists are re-built.\n\nThe *style* value selects what algorithm is used to build the list.\nThe *bin* style creates the list by binning which is an operation that\nscales linearly with N/P, the number of atoms per processor where N =\ntotal number of atoms and P = number of processors. It is almost\nalways faster than the *nsq* style which scales as (N/P)\\^2. For\nunsolvated small molecules in a non-periodic box, the *nsq* choice can\nsometimes be faster. Either style should give the same answers.\n\nThe *multi* style is a modified binning algorithm that is useful for\nsystems with a wide range of cutoff distances, e.g. due to different\nsize particles. For granular pair styles, cutoffs are set to the sum of\nthe maximum atomic radii for each atom type. For the *bin* style, the\nbin size is set to 1/2 of the largest cutoff distance between any pair\nof atom types and a single set of bins is defined to search over for all\natom types. This can be inefficient if one pair of types has a very\nlong cutoff, but other type pairs have a much shorter cutoff. The\n*multi* style uses different sized bins for collections of different\nsized particles, where \"size\" may mean the physical size of the particle\nor its cutoff distance for interacting with other particles. Different\nsets of bins are then used to construct the neighbor lists as as further\ndescribed by Shire, Hanley, and Stratford **multi-Shire**\nand Monti et al. **multi-Monti**. This imposes some extra\nsetup overhead, but the searches themselves may be much faster.\n\nFor instance in a dense binary system in d-dimensions with a ratio of the size\nof the largest to smallest collection bin \\(\\lambda\\), the computational\ncosts of building a default neighbor list grows as \\(\\lambda^{2d}\\) while\nthe costs for *multi* grows as \\(\\lambda^d\\), equivalent to the cost\nof force evaluations, as argued in Monti et al. **multi-Monti**.\nIn other words, the neighboring costs of *multi* are expected to scale the\nsame as force calculations, such that its relative cost is independent of\nthe particle size ratio. This is not the case for the default style which\nbecomes substantially more expensive with increasing size ratios.\n\nBy default in *multi*, each atom type defines a separate collection\nof particles. For systems where two or more atom types have the same\nsize (either physical size or cutoff distance), the definition of\ncollections can be customized, which can result in less overhead and\nfaster performance. See the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command\nfor how to define custom collections. Whether the collection definition\nis customized or not, also see the [comm_modify mode multi](https://docs.lammps.org/comm_modify.html) command for communication options that further improve\nperformance in a manner consistent with neighbor style multi.\n\nAn alternate style, *multi/old*, sets the bin size to 1/2 of the shortest\ncutoff distance and multiple sets of bins are defined to search over for\ndifferent atom types. This algorithm used to be the default *multi*\nalgorithm in LAMMPS but was found to be significantly slower than the new\napproach. For the dense binary system, computational costs still grew as\n\\(\\lambda^{2d}\\) at large enough \\(\\lambda\\). This is equivalent\nto the default style, albeit with a smaller prefactor. For now we are\nkeeping the old option in case there are use cases where multi/old\noutperforms the new multi style.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If there are multiple sub-styles in a [hybrid/overlay pair style > ](https://docs.lammps.org/pair_hybrid.html) that cover the same atom types, but have significantly\n > different cutoffs, the *multi* style does not apply. Instead, the\n > [pair_modify neigh/trim ](https://docs.lammps.org/pair_modify.html) setting applies (which is\n > *yes* by default). Please check the neighbor list summary printed at\n > the beginning of a calculation to verify that the desired set of\n > neighbor list builds is performed. \n > \n\nThe [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command has additional options\nthat control how often neighbor lists are built and which pairs are\nstored in the list.\n\nWhen a run is finished, counts of the number of neighbors stored in\nthe pairwise list and the number of times neighbor lists were built\nare printed to the screen and log file. See the [Run output ](https://docs.lammps.org/Run_output.html) page for details.\n\n**(multi-Shire)** Shire, Hanley and Stratford, Comp. Part. Mech., (2020). \n \n**(multi-Monti)** Monti, Clemmer, Srivastava, Silbert, Grest, and Lechman, Phys. Rev. E, (2022). \n ", "restrictions": " none\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" + "related": "[neigh_modify ](https://docs.lammps.org/neigh_modify.html), [units ](https://docs.lammps.org/units.html),\n[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" }, { "command": [ - "label" + "pair_style spin/dmi" ], "syntax": [ - "label ID" + "pair_style spin/dmi cutoff" ], "args": [ [ { - "arg": "label", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "spin/dmi", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID = string used as label name \n", - "examples": "\n```lmps\nlabel xyz\nlabel loop\n```\n", - "html_filename": "label.html", - "short_description": "Label this line of the input script with the chosen ID", - "description": "Label this line of the input script with the chosen ID. Unless a jump\ncommand was used previously, this does nothing. But if a\n[jump ](https://docs.lammps.org/jump.html) command was used with a label argument to begin\ninvoking this script file, then all command lines in the script prior\nto this line will be ignored. I.e. execution of the script will begin\nat this line. This is useful for looping over a section of the input\nscript as discussed in the [jump ](https://docs.lammps.org/jump.html) command.\n", - "restrictions": " none\n", - "related": "[jump ](https://docs.lammps.org/jump.html), [next ](https://docs.lammps.org/next.html)\n" + "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", + "examples": "\n```lmps\npair_style spin/dmi 4.0\npair_coeff * * dmi 2.6 0.001 1.0 0.0 0.0\npair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0\n```\n", + "html_filename": "pair_spin_dmi.html", + "short_description": "Style *spin/dmi* computes the Dzyaloshinskii-Moriya (DM) interaction\nbetween pairs of magnetic spins", + "description": "Style *spin/dmi* computes the Dzyaloshinskii-Moriya (DM) interaction\nbetween pairs of magnetic spins.\nAccording to the expression reported in **Rohart**, one has\nthe following DM energy:\n\\[\n \\mathbf{H}_{dm} = \\sum_{{ i,j}=1,i\\neq j}^{N}\n \\left( \\vec{e}_{ij} \\times \\vec{D} \\right)\n \\cdot\\left(\\vec{s}_{i}\\times \\vec{s}_{j}\\right),\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two neighboring magnetic spins of\ntwo particles, \\(\\vec{e}_ij = \\frac{r_i - r_j}{\\left| r_i - r_j \\right|}\\)\nis the unit vector between sites *i* and *j*, and \\(\\vec{D}\\) is the\nDM vector defining the intensity (in eV) and the direction of the\ninteraction.\n\nIn **Rohart**, \\(\\vec{D}\\) is defined as the direction normal to the film oriented\nfrom the high spin-orbit layer to the magnetic ultra-thin film.\n\nThe application of a spin-lattice Poisson bracket to this energy (as described\nin **Tranchida5**) allows to derive a magnetic torque omega, and a\nmechanical force F (for spin-lattice calculations only) for each magnetic\nparticle i:\n\\[\n \\vec{\\omega}_i = -\\frac{1}{\\hbar} \\sum_{j}^{Neighb} \\vec{s}_{j}\\times \\left(\\vec{e}_{ij}\\times \\vec{D} \\right)\n ~~{\\rm and}~~\n \\vec{F}_i = -\\sum_{j}^{Neighb} \\frac{1}{r_{ij}} \\vec{D} \\times \\left( \\vec{s}_{i}\\times \\vec{s}_{j} \\right)\\]\nMore details about the derivation of these torques/forces are reported in\n**Tranchida5**.\n\nFor the *spin/dmi* pair style, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, and\nset in the following order:\n\n* rc (distance units)\n* \\|D\\| (energy units)\n* Dx, Dy, Dz (direction of D)\n\nNote that rc is the radius cutoff of the considered DM interaction, \\|D\\| is\nthe norm of the DM vector (in eV), and Dx, Dy and Dz define its direction.\n\nNone of those coefficients is optional. If not specified, the *spin/dmi*\npair style cannot be used.\n\n----------\n\n \n \n**(Tranchida5)** Rohart and Thiaville,\nPhysical Review B, 88(18), 184422. (2013). \n ", + "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" }, { "command": [ - "compute sph/t/atom" + "compute efield/wolf/atom" ], "syntax": [ - "compute ID group-ID sph/t/atom" + "compute ID group-ID efield/wolf/atom alpha keyword val" ], "args": [ [ @@ -18373,375 +17769,376 @@ export const command_docs = [ "choices": [] }, { - "arg": "sph/t/atom", + "arg": "efield/wolf/atom", "type": 1, "choices": [] + }, + { + "arg": "alpha", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff", + "type": 3, + "choices": [ + "limit", + "cutoff" + ] + }, + { + "arg": "val", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/t/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all sph/t/atom\n```\n", - "html_filename": "compute_sph_t_atom.html", - "short_description": "Define a computation that calculates the per-atom internal temperature\nfor each atom in a group", - "description": "Define a computation that calculates the per-atom internal temperature\nfor each atom in a group.\n\nThe internal temperature is the ratio of internal energy over the heat\ncapacity associated with the internal degrees of freedom of an SPH\nparticles, i.e. a Smooth-Particle Hydrodynamics particle.\n\\[\n T_{int} = E_{int} / C_{V,int}\\]\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the internal energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in temperature [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* efield/atom/wolf = style name of this compute command\n* alpha = damping parameter (inverse distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = limit or cutoff \n *      limit group2-ID = limit computing the electric field contributions to a group (default: all) \n *      cutoff value = set cutoff for computing contributions to this value (default: maximum cutoff of pair style) \n", + "examples": "\n```lmps\ncompute 1 all efield/wolf/atom 0.2\ncompute 1 mols efield/wolf/atom 0.25 limit water cutoff 10.0\n```\n", + "html_filename": "compute_efield_wolf_atom.html", + "short_description": "\nDefine a computation that approximates the electric field at each atom in a group", + "description": "\nDefine a computation that approximates the electric field at each atom in a group.\n\\[\n \\vec{E}_i = \\frac{\\vec{F}coul_i}{q_i} = \\sum_{j \\neq i} \\frac{q_j}{r_{ij}^2} \\qquad r < r_c\\]\nThe electric field at the position of the atom *i* is the coulomb force\non a unit charge at that point, which is equivalent to dividing the\nCoulomb force by the charge of the individual atom.\n\nIn this compute the electric field is approximated as the derivative of\nthe potential energy using the Wolf summation method, described in\n**Wolf4**, given by:\n\\[ E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and *erf()* and *erfc()*\nare error-function and complementary error-function terms. This\npotential is essentially a short-range, spherically-truncated,\ncharge-neutralized, force-shifted, pairwise *1/r* summation. With a\nmanipulation of adding and subtracting a self term (for i = j) to the\nfirst and second term on the right-hand-side, respectively, and a small\nenough \\(\\alpha\\) damping parameter, the second term shrinks and the\npotential becomes a rapidly-converging real-space summation. With a\nlong enough cutoff and small enough \\(\\alpha\\) parameter, the\nelectric field calculated by the Wolf summation method approaches that\ncomputed using the Ewald sum.\n\nThe value of the electric field components will be 0.0 for atoms not in\nthe specified compute group.\n\nWhen the *limit* keyword is used, only contributions from atoms in the\nselected group will be considered, otherwise contributions from all\natoms within the cutoff are included.\n\nWhen the *cutoff* keyword is used, the cutoff used for the electric\nfield approximation can be set explicitly. By default it is the largest\ncutoff of any pair style force computation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Computational Efficiency \n >This compute will loop over a full neighbor list just like a pair\n > style does when computing forces, thus it can be quite time-consuming\n > and slow down a calculation significantly when its data is used in\n > every time step. The [compute efield/atom > ](https://docs.lammps.org/compute_efield_atom.html) command of the DIELECTRIC package is more\n > efficient in comparison, since the electric field data is collected\n > and stored as part of the force computation at next to no extra\n > computational cost. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe vector contains 3 values per atom which are the x-, y-, and\nz-direction electric field components in force units.\n\n**(Wolf4)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", + "related": "[pair_style coul/wolf ](https://docs.lammps.org/pair_coul.html),\n[compute efield/atom ](https://docs.lammps.org/compute_efield_atom.html)\n" }, { "command": [ - "fix nve", - "fix nve/gpu", - "fix nve/intel", - "fix nve/kk", - "fix nve/omp" + "kim" ], "syntax": [ - "fix ID group-ID nve" + "kim sub-command args" ], "args": [ [ { - "arg": "fix", + "arg": "kim", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "sub-command", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, - { - "arg": "nve", - "type": 3, - "choices": [ - "nve", - "nve/gpu", - "nve/intel", - "nve/kk", - "nve/omp" - ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve\n```\n", - "html_filename": "fix_nve.html", - "short_description": "Perform plain time integration to update position and velocity for\natoms in the group each timestep", - "description": "Perform plain time integration to update position and velocity for\natoms in the group each timestep. This creates a system trajectory\nconsistent with the microcanonical ensemble (NVE) provided there\nare (full) periodic boundary conditions and no other \"manipulations\"\nof the system (e.g. fixes that modify forces or velocities).\n\nThis fix invokes the velocity form of the\nStoermer-Verlet time integration algorithm (velocity-Verlet). Other\ntime integration options can be invoked using the [run_style ](https://docs.lammps.org/run_style.html) command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [run_style ](https://docs.lammps.org/run_style.html)\n" + "parameters": "* sub-command = :ref:`init ` or :ref:`interactions ` or\n :ref:`query ` or :ref:`param ` or :ref:`property `\n\n* args = arguments used by a particular sub-command \n", + "examples": "\n```lmps\nkim init args\nkim interactions args\nkim query args\nkim param args\nkim property args\n```\n", + "html_filename": "kim_commands.html", + "short_description": "The *kim command* includes a set of sub-commands that allow LAMMPS\nusers to use interatomic models (IM) (potentials and force fields) and\ntheir predictions for various physical properties archived in the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org) repository", + "description": "The *kim command* includes a set of sub-commands that allow LAMMPS\nusers to use interatomic models (IM) (potentials and force fields) and\ntheir predictions for various physical properties archived in the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org) repository.\n\nUsing OpenKIM provides LAMMPS users with immediate access to a large\nnumber of verified IMs and their predictions. OpenKIM IMs have\nmultiple benefits including `reliability, reproducibility and\nconvenience `_.\n\nThere are two types of IMs archived in OpenKIM: \n 1. The first type is called a *KIM Portable Model* (PM). A KIM PM is an\n independent computer implementation of an IM written in one of the languages\n supported by KIM (C, C++, Fortran) that conforms to the KIM Application\n Programming Interface ([KIM API](https://openkim.org/kim-api/)) Portable\n Model Interface (PMI) standard. A KIM PM will work seamlessly with any\n simulation code that supports the KIM API/PMI standard (including LAMMPS; see\n [complete list of supported codes](https://openkim.org/projects-using-kim/)).\n2. The second type is called a *KIM Simulator Model* (SM). A KIM SM is an IM\n that is implemented natively within a simulation code (\\ *simulator* ) that\n supports the KIM API Simulator Model Interface (SMI); in this case LAMMPS. A\n separate SM package is archived in OpenKIM for each parameterization of the\n IM, which includes all of the necessary parameter files, LAMMPS commands, and\n metadata (supported species, units, etc.) needed to run the IM in LAMMPS.\n\nWith these two IM types, OpenKIM can archive and test almost all IMs that can be\nused by LAMMPS. (It is easy to contribute new IMs to OpenKIM, see the\n[upload instructions](https://openkim.org/doc/repository/adding-content/).)\n\nOpenKIM IMs are uniquely identified by a\n[KIM ID](https://openkim.org/doc/schema/kim-ids/).\nThe extended KIM ID consists of\na human-readable prefix identifying the type of IM, authors, publication year,\nand supported species, separated by two underscores from the KIM ID itself,\nwhich begins with an IM code\n(\\ *MO* for a KIM Portable Model, and *SM* for a KIM Simulator Model)\nfollowed by a unique 12-digit code and a 3-digit version identifier.\nBy convention SM prefixes begin with *Sim_* to readily identify them.\n\n```\nSW_StillingerWeber_1985_Si__MO_405512056662_005\nSim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001\n```\nEach OpenKIM IM has a dedicated \"Model Page\" on [OpenKIM](https://openkim.org)\nproviding all the information on the IM including a title, description,\nauthorship and citation information, test and verification check results,\nvisualizations of results, a wiki with documentation and user comments, and\naccess to raw files, and other information.\nThe URL for the Model Page is constructed from the\n[extended KIM ID](https://openkim.org/doc/schema/kim-ids/) of the IM:\n\n```\nhttps://openkim.org/id/extended_KIM_ID\n```\nFor example, for the Stillinger-Weber potential listed above the Model Page is\nlocated at:\n\n```\n[https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005)\n```\nSee the\n[current list of KIM PMs and SMs archived in OpenKIM](https://openkim.org/browse/models/by-species).\nThis list is sorted by species and can be filtered to display only IMs for\ncertain species combinations.\n\nSee [Obtaining KIM Models](https://openkim.org/doc/usage/obtaining-models) to\nlearn how to install a pre-built binary of the OpenKIM Repository of Models.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is also possible to locally install IMs not archived in OpenKIM,\n > in which case their names do not have to conform to the KIM ID format. \n > \n\n #### Using OpenKIM IMs with LAMMPS (*kim init*, *kim interactions*)\n\nTwo sub-commands are employed when using OpenKIM IMs in LAMMPS, one to select\nthe IM and perform necessary initialization (\\ *kim init*\\ ), and the second to\nset up the IM for use by executing any necessary LAMMPS commands\n(\\ *kim interactions*\\ ). Both are required.\n\nSyntax\n------\n\n```lmps\nkim init model user_units unitarg\nkim interactions typeargs\n```\n.. _typeargs_options:\n\n* model = name of the KIM interatomic model (the KIM ID for models archived in\n OpenKIM)\n* user_units = the LAMMPS [units ](https://docs.lammps.org/units.html) style assumed in the LAMMPS\n input script\n* unitarg = *unit_conversion_mode* (optional)\n* typeargs = atom type to species mapping (one entry per atom type) or\n *fixed_types* for models with a preset fixed mapping\n\nExamples\n--------\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\nkim interactions Si\n\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001 real\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001 metal unit_conversion_mode\nkim interactions C H O\n\nkim init Sim_LAMMPS_IFF_PCFF_HeinzMishraLinEmami_2015Ver1v5_FccmetalsMineralsSolventsPolymers__SM_039297821658_000 real\nkim interactions fixed_types\n```\nSee the *examples/kim* directory for example input scripts that use KIM PMs\nand KIM SMs.\n\n.. _kim_init:\n\nOpenKIM IM Initialization (*kim init*)\n--------------------------------------\n\nThe *kim* command followed by *init* sub-command must be issued **before**\nthe simulation box is created (normally at the top of the file). This command\nsets the OpenKIM IM that will be used and may issue additional commands changing\nLAMMPS default settings that are required for using the selected IM (such as\n[units ](https://docs.lammps.org/units.html) or [atom_style ](https://docs.lammps.org/atom_style.html)). If needed, those\nsettings can be overridden, however, typically a script containing a *kim init*\ncommand would not include *units* and *atom_style* commands.\n\nThe required arguments of *kim init* are the *model* name of the IM to be used\nin the simulation (for an IM archived in OpenKIM this is its\n[extended KIM ID](https://openkim.org/doc/schema/kim-ids/), and the\n*user_units*, which are the LAMMPS [units style ](https://docs.lammps.org/units.html) used in the input\nscript. (Any dimensioned numerical values in the input script and values read in\nfrom files are expected to be in the *user_units* system.)\n\nThe selected IM can be either a **IM_types**. For a KIM\nSM, the *kim init* command verifies that the SM is designed to work with LAMMPS\n(and not another simulation code). In addition, the LAMMPS version used for\ndefining the SM and the LAMMPS version being currently run are printed to help\ndiagnose any incompatible changes to input script or command syntax between the\ntwo LAMMPS versions.\n\nBased on the selected model *kim init* may modify the\n[atom_style ](https://docs.lammps.org/atom_style.html). Some SMs have requirements for this setting.\nIf this is the case, then *atom_style* will be set to the required style.\nOtherwise, the value is left unchanged (which in the absence of an *atom_style*\ncommand in the input script is the\n[default atom_style value ](https://docs.lammps.org/atom_style.html)).\n\nRegarding units, the *kim init* behaves in different ways depending on whether\nor not *unit conversion mode* is activated as indicated by the optional\n*unitarg* argument.\nIf unit conversion mode is **not** active, then *user_units* must either match\nthe required units of the IM or the IM must be able to adjust its units to\nmatch. (The latter is only possible with some KIM PMs; SMs can never adjust\ntheir units.) If a match is possible, the LAMMPS [units ](https://docs.lammps.org/units.html) command is\ncalled to set the units to *user_units* . If the match fails, the simulation\nis terminated with an error. The *kim init* command also sets the\ndefault value for the [skin ](https://docs.lammps.org/neighbor.html) (extra distance beyond force\ncutoff) as 2.0 Angstroms and sets the default value for the\n[timestep ](https://docs.lammps.org/timestep.html) size as 1.0 femtosecond.\n\nHere is an example of a LAMMPS script to compute the cohesive energy of a\nface-centered cubic (fcc) lattice for the MEAM potential by Pascuet and\nFernandez (2015) for Al.\n\n```lmps\nkim init Sim_LAMMPS_MEAM_PascuetFernandez_2015_Al__SM_811588957187_000 metal\nboundary p p p\nlattice fcc 4.049\nregion simbox block 0 1 0 1 0 1 units lattice\ncreate_box 1 simbox\ncreate_atoms 1 box\nmass 1 26.981539\nkim interactions Al\nrun 0\nvariable Ec equal (pe/count(all))\nprint \"Cohesive Energy = ${Ec} eV\"\n```\nThe above script will end with an error in the *kim init* line if the IM is\nchanged to another potential for Al that does not work with *metal* units. To\naddress this, *kim init* offers the *unit_conversion_mode* as shown below.\n\nIf unit conversion mode *is* active, then *kim init* calls the LAMMPS\n[units ](https://docs.lammps.org/units.html) command to set the units to the IM's required or preferred\nunits. Conversion factors between the IM's units and the *user_units* are\ndefined for all [physical quantities ](https://docs.lammps.org/units.html) (mass, distance, etc.).\n(Note that converting to or from the \"lj\" unit style is not supported.)\nThese factors are stored as [internal style variables ](https://docs.lammps.org/variable.html) with the\nfollowing standard names:\n\n```\n_u_mass\n_u_distance\n_u_time\n_u_energy\n_u_velocity\n_u_force\n_u_torque\n_u_temperature\n_u_pressure\n_u_viscosity\n_u_charge\n_u_dipole\n_u_efield\n_u_density\n```\nIf desired, the input script can be designed to work with these conversion\nfactors so that the script will work without change with any OpenKIM IM.\n(This approach is used in the\n[OpenKIM Testing Framework](https://openkim.org/doc/evaluation/kim-tests/).)\n\nFor example, the script given above for the cohesive energy of fcc Al can be\nrewritten to work with any IM regardless of units. The following script\nconstructs an fcc lattice with a lattice parameter defined in meters, computes\nthe total energy, and prints the cohesive energy in Joules regardless of the\nunits of the IM.\n\n```lmps\nkim init Sim_LAMMPS_MEAM_PascuetFernandez_2015_Al__SM_811588957187_000 si unit_conversion_mode\nboundary p p p\nlattice fcc $(4.049e-10*v__u_distance)\nregion simbox block 0 1 0 1 0 1 units lattice\ncreate_box 1 simbox\ncreate_atoms 1 box\nmass 1 $(4.480134e-26*v__u_mass)\nkim interactions Al\nneighbor $(2e-10*v__u_distance) bin\nrun 0\nvariable Ec_in_J equal (pe/count(all))/v__u_energy\nprint \"Cohesive Energy = ${Ec_in_J} J\"\n```\nNote the multiplication by `v__u_distance` and `v__u_mass` to convert from SI\nunits (specified in the *kim init* command) to whatever units the IM uses (metal\nin this case), and the division by `v__u_energy` to convert from the IM's energy\nunits to SI units (Joule). This script will work correctly for any IM for Al\n(KIM PM or SM) selected by the *kim init* command.\n\nCare must be taken to apply unit conversion to dimensional variables read in\nfrom a file. For example, if a configuration of atoms is read in from a dump\nfile using the [read_dump ](https://docs.lammps.org/read_dump.html) command, the following can be done\nto convert the box and all atomic positions to the correct units:\n\n```lmps\nchange_box all x scale ${_u_distance} &\ny scale ${_u_distance} &\nz scale ${_u_distance} &\nxy final $(xy*v__u_distance) &\nxz final $(xz*v__u_distance) &\nyz final $(yz*v__u_distance) &\nremap\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unit conversion will only work if the conversion factors are placed in all\n > appropriate places in the input script. It is up to the user to do this\n > correctly. \n > \n\n.. _interactions:\n\nOpenKIM IM Execution (*kim interactions*)\n-----------------------------------------\n\nThe second and final step in using an OpenKIM IM is to execute the\n*kim interactions* command. This command must be preceded by a *kim init*\ncommand and a command that defines the number of atom types *N* (such as\n[create_box ](https://docs.lammps.org/create_box.html)).\nThe *kim interactions* command has one argument *typeargs* . This argument\ncontains either a list of *N* chemical species, which defines a mapping between\natom types in LAMMPS to the available species in the OpenKIM IM, or the keyword\n*fixed_types* for models that have a preset fixed mapping (i.e. the mapping\nbetween LAMMPS atom types and chemical species is defined by the model and\ncannot be changed). In the latter case, the user must consult the model\ndocumentation to see how many atom types there are and how they map to the\nchemical species.\n\nFor example, consider an OpenKIM IM that supports Si and C species. If the\nLAMMPS simulation has four atom types, where the first three are Si, and the\nfourth is C, the following *kim interactions* command would be used:\n\n```lmps\nkim interactions Si Si Si C\n```\nAlternatively, for a model with a fixed mapping the command would be:\n\n```lmps\nkim interactions fixed_types\n```\nThe *kim interactions* command performs all the necessary steps to set up the\nOpenKIM IM selected in the *kim init* command. The specific actions depend on\nwhether the IM is a KIM PM or a KIM SM. For a KIM PM, a\n[pair_style kim ](https://docs.lammps.org/pair_kim.html) command is executed followed by the appropriate\n*pair_coeff* command. For example, for the Ercolessi and Adams (1994) KIM PM\nfor Al set by the following commands:\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\n...\n... box specification lines skipped\n...\nkim interactions Al\n```\nthe *kim interactions* command executes the following LAMMPS input commands:\n\n```lmps\npair_style kim EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005\npair_coeff * * Al\n```\nFor a KIM SM, the generated input commands may be more complex and require that\nLAMMPS is built with the required packages included for the type of potential\nbeing used. The set of commands to be executed is defined in the SM\nspecification file, which is part of the SM package. For example, for the\nStrachan et al. (2003) ReaxFF SM set by the following commands:\n\n```lmps\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real\n...\n... box specification lines skipped\n...\nkim interactions C H N O\n```\nthe *kim interactions* command executes the following LAMMPS input commands:\n\n```lmps\npair_style reaxff lmp_control safezone 2.0 mincap 100\npair_coeff * * ffield.reax.rdx C H N O\nfix reaxqeq all qeq/reaxff 1 0.0 10.0 1.0e-6 param.qeq\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The files *lmp_control*, *ffield.reax.rdx* and *param.qeq* are specific to\n > the Strachan et al. (2003) ReaxFF parameterization and are archived as part\n > of the SM package in OpenKIM. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Parameters like cutoff radii and charge tolerances, which have an effect on\n > IM predictions, are also included in the SM definition ensuring\n > reproducibility. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using *kim init* and *kim interactions* to select and set up an OpenKIM\n > IM, other LAMMPS commands for the same functions (such as pair_style,\n > pair_coeff, bond_style, bond_coeff, fixes related to charge equilibration,\n > etc.) should normally not appear in the input script. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim interactions* must be called each time after the\n > [change_box ](https://docs.lammps.org/change_box.html) command to provide the correct settings (it\n > should be called with the same **typeargs_options** as the\n > first call.) The reason is that changing a periodic boundary to a\n > non-periodic one, or in general, using the *change_box* command after the\n > interactions are set via *kim interactions* or *pair_coeff* commands might\n > affect some of the settings. For example, SM models containing Coulombic\n > terms in the interactions require different settings if a periodic boundary\n > changes to a non-periodic one. In other cases, the second call to\n > *kim interactions* does not affect any other settings. \n > \n\n.. _query:\n\n #### Using OpenKIM Web Queries in LAMMPS (*kim query*)\n\nThe *kim query* command performs a web query to retrieve the predictions of an\nIM set by *kim init* for material properties archived in\n[OpenKIM](https://openkim.org).\n\nSyntax\n------\n\n```lmps\nkim query variable formatarg query_function queryargs\n```\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list, split, or index* (optional):\n\n```\n*list* = returns a single string with a list of space separated values\n(e.g. \"1.0 2.0 3.0\"), which is placed in a LAMMPS variable as\ndefined by the *variable* argument. [default]\n*split* = returns the values separately in new variables with names based\non the prefix specified in *variable* and a number appended to\nindicate which element in the list of values is in the variable\n*index* = returns a variable style index that can be incremented via the\nnext command. This enables the construction of simple loops\n```\n* query_function = name of the OpenKIM web API query function to be used\n* queryargs = a series of *keyword=value* pairs that represent the web query;\n supported keywords depend on the query function\n\nExamples\n--------\n\n```lmps\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nkim query model index get_available_models species=[Al] potential_type=[eam]\n```\nThe result of the query is stored in one or more\n[string style variables ](https://docs.lammps.org/variable.html) as determined by the optional\n*formatarg* argument. For the \"list\"\nsetting of *formatarg* (or if *formatarg* is not specified), the result is\nreturned as a space-separated list of values in *variable* . The *formatarg*\nkeyword \"split\" separates the result values into individual variables of the\nform *prefix_I*, where *prefix* is set to the *kim query* *variable* argument\nand *I* ranges from 1 to the number of returned values. The number and order of\nthe returned values is determined by the type of query performed. The\n*formatarg* keyword \"index\" returns a [variable style index ](https://docs.lammps.org/variable.html)\nthat can be incremented via the [next ](https://docs.lammps.org/next.html) command. This enables the\nconstruction of simple loops over the returned values by the type of query\nperformed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim query* only supports queries that return a single result or an array of\n > values. More complex queries that return a JSON structure are not currently\n > supported. An attempt to use *kim query* in such cases will generate an\n > error. \n > \n\nThe second required argument *query_function* is the name of the query function\nto be called (e.g. *get_lattice_constant_cubic* ). All following\n[arguments ](https://docs.lammps.org/Commands_parse.html) are parameters handed over to the web query in\nthe format *keyword=value*, where *value* is always an array of one or more\ncomma-separated items in brackets. The list of supported keywords and the type\nand format of their values depend on the query function used. The current list\nof query functions is available on the OpenKIM webpage at\n[https://openkim.org/doc/usage/kim-query](https://openkim.org/doc/usage/kim-query).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All query functions, except *get_available_models*, require the\n > *model* keyword, which identifies the IM whose predictions are being queried.\n > *kim query* automatically generates the *model* keyword based on the IM set\n > in by *kim init*, and it can be overwritten if specified as an argument to\n > the *kim query*\\ . Where *kim init* is not specified, the *model* keyword\n > must be provided as an argument to the *kim query*\\ . \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each *query_function* is associated with a default method (implemented as a\n > [KIM Test](https://openkim.org/doc/evaluation/kim-tests/)) used to compute\n > this property. In cases where there are multiple methods in OpenKIM for\n > computing a property, a *method* keyword can be provided to select the method\n > of choice. See the\n > [query documentation](https://openkim.org/doc/usage/kim-query) to see which\n > methods are available for a given *query_function* . \n > \n\n*kim query* Usage Examples and Further Clarifications\n-----------------------------------------------------\n\nThe data obtained by *kim query* commands can be used as part of the setup or\nanalysis phases of LAMMPS simulations. Some examples are given below.\n\n**Define an equilibrium fcc crystal**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\nboundary p p p\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nlattice fcc ${a0}\n...\n```\n\n```lmps\nunits metal\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom] model=[EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005]\nlattice fcc ${a0}\n...\n```\nThe *kim query* command retrieves from [OpenKIM](https://openkim.org) the\nequilibrium lattice constant predicted by the Ercolessi and Adams (1994)\npotential for the fcc structure and places it in variable *a0* . This variable\nis then used on the next line to set up the crystal. By using *kim query*, the\nuser is saved the trouble and possible error of tracking this value down, or of\nhaving to perform an energy minimization to find the equilibrium lattice\nconstant.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In *unit_conversion_mode* the results obtained from a *kim query* would need\n > to be converted to the appropriate units system. For example, in the above\n > script, the lattice command would need to be changed to:\n > \"lattice fcc $(v_a0*v__u_distance)\". \n > \n\n**Define an equilibrium hcp crystal**\n\n```lmps\nkim init EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000 metal\nboundary p p p\nkim query latconst split get_lattice_constant_hexagonal crystal=[hcp] species=[Zr] units=[angstrom]\nlattice custom ${latconst_1} a1 0.5 -0.866025 0 a2 0.5 0.866025 0 a3 0 0 $(latconst_2/latconst_1) &\nbasis 0.333333 0.666666 0.25 basis 0.666666 0.333333 0.75\n...\n```\nIn this case the *kim query* returns two arguments (since the hexagonal close\npacked (hcp) structure has two independent lattice constants). The *formatarg*\nkeyword \"split\" places the two values into the variables *latconst_1* and\n*latconst_2* . (These variables are created if they do not already exist.)\n\n**Define a crystal at finite temperature accounting for thermal expansion**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\nboundary p p p\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nkim query alpha get_linear_thermal_expansion_coefficient_cubic crystal=[fcc] species=[Al] units=[1/K] temperature=[293.15] temperature_units=[K]\nvariable DeltaT equal 300\nlattice fcc $(v_a0*v_alpha*v_DeltaT)\n...\n```\nAs in the previous example, the equilibrium lattice constant is obtained for the\nErcolessi and Adams (1994) potential. However, in this case the crystal is\nscaled to the appropriate lattice constant at room temperature (293.15 K) by\nusing the linear thermal expansion constant predicted by the potential.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When passing numerical values as arguments (as in the case of the temperature\n > in the above example) it is also possible to pass a tolerance indicating how\n > close to the value is considered a match. If no tolerance is passed a default\n > value is used. If multiple results are returned (indicating that the\n > tolerance is too large), *kim query* will return an error. See the\n > [query documentation](https://openkim.org/doc/usage/kim-query) to see which\n > numerical arguments and tolerances are available for a given\n > *query_function* . \n > \n\n**Compute defect formation energy**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\n...\n... Build fcc crystal containing some defect and compute the total energy\n... which is stored in the variable *Etot*\n...\nkim query Ec get_cohesive_energy_cubic crystal=[fcc] species=[Al] units=[eV]\nvariable Eform equal ${Etot} - count(all)*${Ec}\n...\n```\nThe defect formation energy *Eform* is computed by subtracting the ideal fcc\ncohesive energy of the atoms in the system from *Etot* . The ideal fcc\ncohesive energy of the atoms is obtained from\n[OpenKIM](https://openkim.org) for the Ercolessi and Adams (1994) potential.\n\n**Retrieve equilibrium fcc crystal of all EAM potentials that support a specific species**\n\n```lmps\nkim query model index get_available_models species=[Al] potential_type=[eam]\nlabel model_loop\nkim query latconst get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom] model=[${model}]\nprint \"FCC lattice constant (${model} potential) = ${latconst}\"\n...\n... do something with current value of latconst\n...\nnext model\njump SELF model_loop\n```\nIn this example, the *index* mode of *formatarg* is used. The first *kim query*\nreturns the list of all available EAM potentials that support the *Al* species\nand archived in [OpenKIM](https://openkim.org). The result of the query\noperation is stored in the LAMMPS variable *model* as an index *variable* .\nThis variable is used later to access the values one at a time within a loop as\nshown in the example. The second *kim query* command retrieves from\n[OpenKIM](https://openkim.org) the equilibrium lattice constant predicted by\neach potential for the fcc structure and places it in variable *latconst* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim query* commands return results archived in\n > [OpenKIM](https://openkim.org). These results are obtained using programs\n > for computing material properties (KIM Tests and KIM Test Drivers) that were\n > contributed to OpenKIM. In order to give credit to Test developers, the\n > number of times results from these programs are queried is tracked. No other\n > information about the nature of the query or its source is recorded. \n > \n\n.. _param:\n\n #### Accessing KIM Model Parameters from LAMMPS (*kim param*)\n\nAll IMs are functional forms containing a set of parameters. These parameters'\nvalues are typically selected to best reproduce a training set of quantum\nmechanical calculations or available experimental data. For example, a\nLennard-Jones potential intended to model argon might have the values of its two\nparameters, epsilon, and sigma, fit to the dimer dissociation energy or\nthermodynamic properties at a critical point of the phase diagram.\n\nNormally a user employing an IM should not modify its parameters since, as noted\nabove, these are selected to reproduce material properties. However, there are\ncases where accessing and modifying IM parameters is desired, such as for\nassessing uncertainty, fitting an IM, or working with an ensemble of IMs. As\nexplained **IM_types**, IMs archived in OpenKIM are either Portable\nModels (PMs) or Simulator Models (SMs). KIM PMs are complete independent\nimplementations of an IM, whereas KIM SMs are wrappers to an IM implemented\nwithin LAMMPS. Two different mechanisms are provided for accessing IM\nparameters in these two cases:\n\n* For a KIM PM, the *kim param* command can be used to *get* and *set* the\n values of the PM's parameters as explained below.\n* For a KIM SM, the user should consult the documentation page for the specific\n IM and follow instructions there for how to modify its parameters (if\n possible).\n\nThe *kim param get* and *kim param set* commands provide an interface to access\nand change the parameters of a KIM PM that \"publishes\" its parameters and makes\nthem publicly available (see the\n[KIM API documentation](https://kim-api.readthedocs.io/en/devel/features.html)\nfor details).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *kim param set/get* command must be preceded by a *kim interactions*\n > command (or alternatively by a *pair_style kim* and *pair_coeff* commands).\n > The *kim param set* command may be used wherever a *pair_coeff* command may\n > occur. \n > \n\nSyntax\n------\n\n```lmps\nkim param get param_name index_range variable formatarg\nkim param set param_name index_range values\n```\n.. _formatarg_options:\n\n* param_name = name of a KIM portable model parameter (which is published by the\n PM and available for access). The specific string used to identify a parameter\n is defined by the PM. For example, for the\n [Stillinger-Weber (SW) potential in OpenKIM](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\n the parameter names are *A, B, p, q, sigma, gamma, cutoff, lambda, costheta0*\n* index_range = KIM portable model parameter index range (an integer for a\n single element, or pair of integers separated by a colon for a range of\n elements)\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list, split, or explicit* (optional):\n\n```\n*list* = returns a single string with a list of space separated values\n(e.g. \"1.0 2.0 3.0\"), which is placed in a LAMMPS variable as\ndefined by the *variable* argument.\n*split* = returns the values separately in new variables with names based\non the prefix specified in *variable* and a number appended to\nindicate which element in the list of values is in the variable\n*explicit* = returns the values separately in one more more variable names\nprovided as arguments that precede *formatarg* . [default]\n* values = new value(s) to replace the current value(s) of a KIM portable model\nparameter\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The list of all the parameters that a PM exposes for access/mutation are\n > automatically written to the lammps log file when *kim init* is called. \n > \n\nEach published parameter of a KIM PM takes the form of an array of numerical\nvalues. The array can contain one element for a single-valued parameter, or a\nset of values. For example, the\n[multispecies SW potential for the Zn-Cd-Hg-S-Se-Te system](https://openkim.org/id/SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002)\nhas the same parameter names as the\n[single-species SW potential](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\nbut each parameter array contains 21 entries that correspond to the parameter\nvalues used for each pairwise combination of the model's six supported species\n(this model does not have parameters specific to individual ternary combinations\nof its supported species).\n\nThe *index_range* argument may either be an integer referring to a specific\nelement within the array associated with the parameter specified by\n*param_name*, or a pair of integers separated by a colon that refer to a slice\nof this array. In both cases, one-based indexing is used to refer to the\nentries of the array.\n\nThe result of a *get* operation for a specific *index_range* is stored in\none or more [LAMMPS string style variables ](https://docs.lammps.org/variable.html) as determined by the\noptional *formatarg* argument **formatarg_options** If\nnot specified, the default for *formatarg* is \"explicit\" for the *kim param*\ncommand.\n\nFor the case where the result is an array with multiple values (i.e.\n*index_range* contains a range), the optional \"split\" or \"explicit\" *formatarg*\nkeywords can be used to separate the results into multiple variables; see the\nexamples below. Multiple parameters can be retrieved with a single call to\n*kim param get* by repeating the argument list following *get* .\n\nFor a *set* operation, the *values* argument contains the new value(s) for the\nelement(s) of the parameter specified by *index_range* . For the case where\nmultiple values are being set, *values* contains a set of values separated by\nspaces. Multiple parameters can be set with a single call to *kim param set* by\nrepeating the argument list following *set* .\n\n*kim param* Usage Examples and Further Clarifications\n-----------------------------------------------------\n\nExamples of getting and setting KIM PM parameters with further clarifications\nare provided below.\n\n**Getting a scalar parameter**\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\n...\nkim interactions Si\nkim param get A 1 VARA\n```\nor\n\n```lmps\n...\npair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005\npair_coeff * * Si\nkim param get A 1 VARA\n```\nIn these cases, the value of the SW *A* parameter is retrieved and placed in the\nLAMMPS variable *VARA* . The variable *VARA* can be used in the remainder of\nthe input script in the same manner as any other LAMMPS variable.\n\n**Getting multiple scalar parameters with a single call**\n\n```lmps\n...\nkim interactions Si\nkim param get A 1 VARA B 1 VARB\n```\nIn this example, it is shown how to retrieve the *A* and *B* parameters of the\nSW potential and store them in the LAMMPS variables *VARA* and *VARB* .\n\n**Getting a range of values from a parameter**\n\nThere are several options when getting a range of values from a parameter\ndetermined by the *formatarg* argument.\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Te Zn Se\nkim param get lambda 7:9 LAM_TeTe LAM_TeZn LAM_TeSe\n```\nIn this case, *formatarg* is not specified and therefore the default\n\"explicit\" mode is used. (The behavior would be the same if the word\n*explicit* were added after *LAM_TeSe* .) Elements 7, 8 and 9 of parameter\nlambda retrieved by the *get* operation are placed in the LAMMPS variables\n*LAM_TeTe*, *LAM_TeZn* and *LAM_TeSe*, respectively.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the above example, elements 7-9 of the lambda parameter correspond to\n > Te-Te, Te-Zm and Te-Se interactions. This can be determined by visiting the\n > [model page for the specified potential](https://openkim.org/id/SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002)\n > and looking at its parameter file linked to at the bottom of the page (file\n > with .param ending) and consulting the README documentation provided with the\n > driver for the PM being used. A link to the driver is provided at the top of\n > the model page. \n > \n\n\n```lmps\n...\nkim interactions Te Zn Se\nkim param get lambda 15:17 LAMS list\nvariable LAM_VALUE index ${LAMS}\nlabel loop_on_lambda\n...\n... do something with the current value of lambda\n...\nnext LAM_VALUE\njump SELF loop_on_lambda\n```\nIn this case, the \"list\" mode of *formatarg* is used. The result of the *get*\noperation is stored in the LAMMPS variable *LAMS* as a string containing the\nthree retrieved values separated by spaces, e.g \"1.0 2.0 3.0\". This can be used\nin LAMMPS with an *index* variable to access the values one at a time within a\nloop as shown in the example. At each iteration of the loop *LAM_VALUE*\ncontains the current value of lambda.\n\n```lmps\n...\nkim interactions Te Zn Se\nkim param get lambda 15:17 LAM split\n```\nIn this case, the \"split\" mode of *formatarg* is used. The three values\nretrieved by the *get* operation are stored in the three LAMMPS variables\n*LAM_15*, *LAM_16* and *LAM_17* . The provided name \"LAM\" is used as prefix\nand the location in the lambda array is appended to create the variable names.\n\n**Setting a scalar parameter**\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\n...\nkim interactions Si\nkim param set gamma 1 2.6\n```\nHere, the SW potential's gamma parameter is set to 2.6. Note that the *get*\nand *set* commands work together, so that a *get* following a *set* operation\nwill return the new value that was set. For example,\n\n```lmps\n...\nkim interactions Si\nkim param get gamma 1 ORIG_GAMMA\nkim param set gamma 1 2.6\nkim param get gamma 1 NEW_GAMMA\n...\nprint \"original gamma = ${ORIG_GAMMA}, new gamma = ${NEW_GAMMA}\"\n```\nHere, *ORIG_GAMMA* will contain the original gamma value for the SW potential,\nwhile *NEW_GAMMA* will contain the value 2.6.\n\n**Setting multiple scalar parameters with a single call**\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Cd Te\nvariable VARG equal 2.6\nvariable VARS equal 2.0951\nkim param set gamma 1 ${VARG} sigma 3 ${VARS}\n```\nIn this case, the first element of the *gamma* parameter and third element of\nthe *sigma* parameter are set to 2.6 and 2.0951, respectively. This example\nalso shows how LAMMPS variables can be used when setting parameters.\n\n**Setting a range of values of a parameter**\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Cd Te Zn Se Hg S\nkim param set sigma 2:6 2.35214 2.23869 2.04516 2.43269 1.80415\n```\nIn this case, elements 2 through 6 of the parameter *sigma* are set to the\nvalues 2.35214, 2.23869, 2.04516, 2.43269 and 1.80415 in order.\n\n.. _property:\n\n #### Writing material properties in standard KIM Property Instance format (*kim property*)\n\nThe OpenKIM system includes a\ncollection of Tests (material property calculation codes), Models (interatomic\npotentials), Predictions, and Reference Data (DFT or experiments).\nSpecifically, a KIM Test is a computation that when coupled with a KIM Model\ngenerates the prediction of that model for a specific material property\nrigorously defined by a KIM Property Definition (see the\n[KIM Properties Framework](https://openkim.org/doc/schema/properties-framework/)_\nfor further details). A prediction of a material property for a given model is\na specific numerical realization of a property definition, referred to as a\n\"Property Instance.\" The objective of the *kim property* command is to make it\neasy to output material properties in a standardized, machine readable, format\nthat can be easily ingested by other programs. Additionally, it aims to make it\nas easy as possible to convert a LAMMPS script that computes a material property\ninto a KIM Test that can then be uploaded to\n[openkim.org](https://openkim.org)\n\nA developer interested in creating a KIM Test using a LAMMPS script should first\ndetermine whether a property definition that applies to their calculation\nalready exists in OpenKIM by searching the [properties page](https://openkim.org/properties). If none exists, it is possible to use a\nlocally defined property definition contained in a file until it can be\nuploaded to the official repository (see below). Once one or more applicable\nproperty definitions have been identified, the *kim property create*,\n*kim property modify*, *kim property remove*, and *kim property destroy*,\ncommands provide an interface to create, set, modify, remove, and destroy\ninstances of them within a LAMMPS script.\n\nSyntax\n------\n\n```lmps\nkim property create instance_id property_id\nkim property modify instance_id key key_name key_name_key key_name_value\nkim property remove instance_id key key_name\nkim property destroy instance_id\nkim property dump file\n```\n* instance_id = a positive integer identifying the KIM property instance;\n (note that the results file can contain multiple property instances)\n* property_id = identifier of a\n [KIM Property Definition](https://openkim.org/properties), which can be (1)\n a property short name, (2) the full unique ID of the property (including the\n contributor and date), (3) a file name corresponding to a local property\n definition file\n* key_name = one of the keys belonging to the specified KIM property definition\n* key_name_key = a key belonging to a key-value pair (standardized in the\n [KIM Properties Framework](https://openkim.org/doc/schema/properties-framework)_)\n* key_name_value = value to be associated with a key_name_key in a key-value\n pair\n* file = name of a file to write the currently defined set of KIM property\n instances to\n\nExamples of each of the three *property_id* cases are shown below,\n\n```lmps\nkim property create 1 atomic-mass\nkim property create 2 cohesive-energy-relation-cubic-crystal\n```\n\n```lmps\nkim property create 1 tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass\nkim property create 2 tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal\n```\n\n```lmps\nkim property create 1 new-property.edn\nkim property create 2 /home/mary/marys-kim-properties/dissociation-energy.edn\n```\nIn the last example, \"new-property.edn\" and\n\"/home/mary/marys-kim-properties/dissociation-energy.edn\" are the names of files\nthat contain user-defined (local) property definitions.\n\nA KIM property instance takes the form of a \"map\", i.e. a set of key-value\npairs akin to Perl's hash, Python's dictionary, or Java's Hashtable. It\nconsists of a set of property key names, each of which is referred to here by\nthe *key_name* argument, that are defined as part of the relevant KIM Property\nDefinition and include only lowercase alphanumeric characters and dashes. The\nvalue paired with each property key is itself a map whose possible keys are\ndefined as part of the [KIM Properties Framework](https://openkim.org/doc/schema/properties-framework)_; these keys are\nreferred to by the *key_name_key* argument and their associated values by the\n*key_name_value* argument. These values may either be scalars or arrays,\nas stipulated in the property definition.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each map assigned to a *key_name* must contain the *key_name_key*\n > \"source-value\" and an associated *key_name_value* of the appropriate\n > type (as defined in the relevant KIM Property Definition). For keys that\n > are defined as having physical units, the \"source-unit\" *key_name_key* must\n > also be given a string value recognized by\n > [GNU units](https://www.gnu.org/software/units/). \n > \n\nOnce a *kim property create* command has been given to instantiate a property\ninstance, maps associated with the property's keys can be edited using the\n*kim property modify* command. In using this command, the special keyword\n\"key\" should be given, followed by the property key name and the key-value pair\nin the map associated with the key that is to be set. For example, the\n[atomic-mass](https://openkim.org/properties/show/2016-05-11/brunnels@noreply.openkim.org/atomic-mass)\nproperty definition consists of two property keys named \"mass\" and \"species.\"\nAn instance of this property could be created like so:\n\n```lmps\nkim property create 1 atomic-mass\nkim property modify 1 key species source-value Al\nkim property modify 1 key mass source-value 26.98154\nkim property modify 1 key mass source-unit amu\n```\nor, equivalently,\n\n```lmps\nkim property create 1 atomic-mass\nkim property modify 1 key species source-value Al &\nkey mass source-value 26.98154 &\nsource-unit amu\n```\n*kim property* Usage Examples and Further Clarifications\n--------------------------------------------------------\n\n**Create**\n\n```lmps\nkim property create instance_id property_id\n```\nThe *kim property create* command takes as input a property instance ID and the\nproperty definition name, and creates an initial empty property instance data\nstructure. For example,\n\n```lmps\nkim property create 1 atomic-mass\nkim property create 2 cohesive-energy-relation-cubic-crystal\n```\ncreates an empty property instance of the \"atomic-mass\" property definition\nwith instance ID 1 and an empty instance of the\n\"cohesive-energy-relation-cubic-crystal\" property with ID 2. A list of\npublished property definitions in OpenKIM can be found on the [properties page](https://openkim.org/properties).\n\nOne can also provide the name of a file in the current working directory or the\npath of a file containing a valid property definition. For example,\n\n```lmps\nkim property create 1 new-property.edn\n```\nwhere \"new-property.edn\" refers to a file name containing a new property\ndefinition that does not exist in OpenKIM.\n\nIf the *property_id* given cannot be found in OpenKIM and no file of this name\ncontaining a valid property definition can be found, this command will produce\nan error with an appropriate message. Calling *kim property create* with the\nsame instance ID multiple times will also produce an error.\n\n**Modify**\n\n```lmps\nkim property modify instance_id key key_name key_name_key key_name_value\n```\nThe *kim property modify* command incrementally builds the property instance\nby receiving property definition keys along with associated arguments. Each\n*key_name* is associated with a map containing one or more key-value pairs (in\nthe form of *key_name_key*-*key_name_value* pairs). For example,\n\n```lmps\nkim property modify 1 key species source-value Al\nkim property modify 1 key mass source-value 26.98154\nkim property modify 1 key mass source-unit amu\n```\nwhere the special keyword \"key\" is followed by a *key_name* (\"species\" or\n\"mass\" in the above) and one or more key-value pairs. These key-value pairs\nmay continue until either another \"key\" keyword is given or the end of the\ncommand line is reached. Thus, the above could equivalently be written as\n\n```lmps\nkim property modify 1 key species source-value Al &\nkey mass source-value 26.98154 &\nkey mass source-unit amu\n```\nAs an example of modifying multiple key-value pairs belonging to the map of a\nsingle property key, the following command modifies the map of the\n\"cohesive-potential-energy\" property key to contain the key \"source-unit\" which\nis assigned a value of \"eV\" and the key \"digits\" which is assigned a value of\n5,\n\n```lmps\nkim property modify 2 key cohesive-potential-energy source-unit eV digits 5\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The relevant data types of the values in the map are handled automatically\n > based on the specification of the key in the KIM Property Definition. In\n > the example above, this means that the value \"eV\" will automatically be\n > interpreted as a string while the value 5 will be interpreted as an integer. \n > \n\nThe values contained in maps can either be scalars, as in all of the examples\nabove, or arrays depending on which is stipulated in the corresponding Property\nDefinition. For one-dimensional arrays, a single one-based index must be\nsupplied that indicates which element of the array is to be modified. For\nmultidimensional arrays, multiple indices must be given depending on the\ndimensionality of the array.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All array indexing used by *kim property modify* is one-based, i.e. the\n > indices are enumerated 1, 2, 3, ... \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The dimensionality of arrays are defined in the the corresponding Property\n > Definition. The extent of each dimension of an array can either be a\n > specific finite number or indefinite and determined at run time. If\n > an array has a fixed extent, attempting to modify an out-of-range index will\n > fail with an error message. \n > \n\nFor example, the \"species\" property key of the\n[cohesive-energy-relation-cubic-crystal](https://openkim.org/properties/show/2014-04-15/staff@noreply.openkim.org/cohesive-energy-relation-cubic-crystal)\nproperty is a one-dimensional array that can contain any number of entries\nbased on the number of atoms in the unit cell of a given cubic crystal. To\nassign an array containing the string \"Al\" four times to the \"source-value\" key\nof the \"species\" property key, we can do so by issuing:\n\n```lmps\nkim property modify 2 key species source-value 1 Al\nkim property modify 2 key species source-value 2 Al\nkim property modify 2 key species source-value 3 Al\nkim property modify 2 key species source-value 4 Al\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >No declaration of the number of elements in this array was given;\n > *kim property modify* will automatically handle memory management to allow\n > an arbitrary number of elements to be added to the array. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the event that *kim property modify* is used to set the value of an\n > array index without having set the values of all lesser indices, they will\n > be assigned default values based on the data type associated with the key in\n > the map:\n >\n > > :columns: 2\n >\n > * Data type\n > * Default value\n > * int\n > * 0\n > * float\n > * 0.0\n > * string\n > * \\\"\\\"\n > * file\n > * \\\"\\\"\n >\n > For example, doing the following:\n >\n > >\n > kim property create 2 cohesive-energy-relation-cubic-crystal\n > kim property modify 2 key species source-value 4 Al\n >\n > will result in the \"source-value\" key in the map for the property key\n > \"species\" being assigned the array [\"\", \"\", \"\", \"Al\"]. \n > \n\nFor convenience, the index argument provided may refer to an inclusive range of\nindices by specifying two integers separated by a colon (the first integer must\nbe less than or equal to the second integer, and no whitespace should be\nincluded). Thus, the snippet above could equivalently be written:\n\n```lmps\nkim property modify 2 key species source-value 1:4 Al Al Al Al\n```\nCalling this command with a non-positive index, e.g.\n``kim property modify 2 key species source-value 0 Al``, or an incorrect\nnumber of input arguments, e.g.\n``kim property modify 2 key species source-value 1:4 Al Al``, will result in an\nerror.\n\nAs an example of modifying multidimensional arrays, consider the \"basis-atoms\"\nkey in the [cohesive-energy-relation-cubic-crystal](https://openkim.org/properties/show/2014-04-15/staff@noreply.openkim.org/cohesive-energy-relation-cubic-crystal)\nproperty definition. This is a two-dimensional array containing the fractional\ncoordinates of atoms in the unit cell of the cubic crystal. In the case of,\ne.g. a conventional fcc unit cell, the \"source-value\" key in the map associated\nwith this key should be assigned the following value:\n\n```text\n[[0.0, 0.0, 0.0],\n[0.5, 0.5, 0.0],\n[0.5, 0.0, 0.5],\n[0.0, 0.5, 0.5]]\n```\nWhile each of the twelve components could be set individually, we can instead\nset each row at a time using colon notation:\n\n```lmps\nkim property modify 2 key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0\nkim property modify 2 key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0\nkim property modify 2 key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5\nkim property modify 2 key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5\n```\nWhere the first index given refers to a row and the second index refers to a\ncolumn. We could, instead, choose to set each column at a time like so:\n\n```lmps\nkim property modify 2 key basis-atom-coordinates source-value 1:4 1 0.0 0.5 0.5 0.0 &\nkey basis-atom-coordinates source-value 1:4 2 0.0 0.5 0.0 0.5 &\nkey basis-atom-coordinates source-value 1:4 3 0.0 0.0 0.5 0.5\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Multiple calls of *kim property modify* made for the same instance ID\n > can be combined into a single invocation, meaning the following are\n > both valid:\n >\n > >\n > kim property modify 2 key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0 &\n > key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0 &\n > key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5 &\n > key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5\n >\n > >\n > kim property modify 2 key short-name source-value 1 fcc &\n > key species source-value 1:4 Al Al Al Al &\n > key a source-value 1:5 3.9149 4.0000 4.032 4.0817 4.1602 &\n > source-unit angstrom &\n > digits 5 &\n > key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0 &\n > key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0 &\n > key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5 &\n > key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5 \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For multidimensional arrays, only one colon-separated range is allowed\n > in the index listing. Therefore,\n >\n > >\n > kim property modify 2 key basis-atom-coordinates 1 1:3 0.0 0.0 0.0\n >\n > is valid but\n >\n > >\n > kim property modify 2 key basis-atom-coordinates 1:2 1:3 0.0 0.0 0.0 0.0 0.0 0.0\n >\n > is not. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After one sets a value in a map with the *kim property modify* command,\n > additional calls will overwrite the previous value. \n > \n\n**Remove**\n\n```lmps\nkim property remove instance_id key key_name\n```\nThe *kim property remove* command can be used to remove a property key from a\nproperty instance. For example,\n\n```lmps\nkim property remove 2 key basis-atom-coordinates\n```\n**Destroy**\n\n```lmps\nkim property destroy instance_id\n```\nThe *kim property destroy* command deletes a previously created property\ninstance ID. For example,\n\n```lmps\nkim property destroy 2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If this command is called with an instance ID that does not exist, no\n > error is raised. \n > \n\n**Dump**\n\nThe *kim property dump* command can be used to write the content of all\ncurrently defined property instances to a file:\n\n```lmps\nkim property dump file\n```\nFor example,\n\n```lmps\nkim property dump results.edn\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Issuing the *kim property dump* command clears all existing property\n > instances from memory. \n > \n\n #### Citation of OpenKIM IMs\n\nWhen publishing results obtained using OpenKIM IMs researchers are\nrequested to cite the OpenKIM project **kim-mainpaper**,\nKIM API **kim-api**, and the specific IM codes used in\nthe simulations, in addition to the relevant scientific references for\nthe IM. The citation format for an IM is displayed on its page on\n[OpenKIM](https://openkim.org) along with the corresponding BibTex\nfile, and is automatically added to the LAMMPS citation reminder.\n\nCiting the IM software (KIM infrastructure and specific PM or SM codes) used in\nthe simulation gives credit to the researchers who developed them and enables\nopen source efforts like OpenKIM to function.\n\nThere are two types of IMs archived in OpenKIM: \n \n* model = name of the KIM interatomic model (the KIM ID for models archived in\n OpenKIM)\n* user_units = the LAMMPS :doc:`units ` style assumed in the LAMMPS\n input script\n* unitarg = *unit_conversion_mode* (optional)\n* typeargs = atom type to species mapping (one entry per atom type) or\n *fixed_types* for models with a preset fixed mapping \n \n* param_name = name of a KIM portable model parameter (which is published by the\n PM and available for access). The specific string used to identify a parameter\n is defined by the PM. For example, for the\n [Stillinger-Weber (SW) potential in OpenKIM](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\n the parameter names are *A, B, p, q, sigma, gamma, cutoff, lambda, costheta0*\n* index_range = KIM portable model parameter index range (an integer for a\n single element, or pair of integers separated by a colon for a range of\n elements)\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list, split, or explicit* (optional): \n \n**(kim-mainpaper)** Tadmor, Elliott, Sethna, Miller and Becker, JOM, 63, 17 (2011).\ndoi: [https://doi.org/10.1007/s11837-011-0102-6](https://doi.org/10.1007/s11837-011-0102-6) \n \n**(kim-api)** Elliott, Tadmor and Bernstein, [https://openkim.org/kim-api](https://openkim.org/kim-api) (2011)\ndoi: [https://doi.org/10.25950/FF8F563A](https://doi.org/10.25950/FF8F563A) \n ", + "restrictions": "The *kim* command is part of the KIM package. It is only enabled if\nLAMMPS is built with that package. A requirement for the KIM package,\nis the KIM API library that must be downloaded from the [OpenKIM website](https://openkim.org/kim-api/) and installed before LAMMPS is\ncompiled. When installing LAMMPS from binary, the kim-api package is a\ndependency that is automatically downloaded and installed. The *kim\nquery* command requires the *libcurl* library to be installed. The *kim\nproperty* command requires *Python* 3.6 or later and the *kim-property*\npython package to be installed. See the KIM section of the\n[Packages details ](https://docs.lammps.org/Packages_details.html) for details.\n\nFurthermore, when using *kim* command to run KIM SMs, any packages required by\nthe native potential being used or other commands or fixes that it invokes must\nbe installed.\n", + "related": "[pair_style kim ](https://docs.lammps.org/pair_kim.html)\n\n----------\n\n.. _kim-mainpaper:\n\n**(Tadmor)** Tadmor, Elliott, Sethna, Miller and Becker, JOM, 63, 17 (2011).\ndoi: [https://doi.org/10.1007/s11837-011-0102-6](https://doi.org/10.1007/s11837-011-0102-6)\n\n.. _kim-api:\n\n**(Elliott)** Elliott, Tadmor and Bernstein, [https://openkim.org/kim-api](https://openkim.org/kim-api) (2011)\ndoi: [https://doi.org/10.25950/FF8F563A](https://doi.org/10.25950/FF8F563A)\n" }, { "command": [ - "fix nvt/eff", - "fix npt/eff" + "angle_style" ], "syntax": [ - "fix ID group-ID style_name keyword value ..." + "angle_style style" ], "args": [ [ { - "arg": "fix", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "nph/eff", + "arg": "table", "type": 3, "choices": [ - "nvt/eff", - "npt/eff", - "nph/eff" + "none", + "zero", + "hybrid", + "amoeba", + "charmm", + "class2", + "class2/p6", + "cosine", + "cosine/buck6d", + "cosine/delta", + "cosine/periodic", + "cosine/shift", + "cosine/shift/exp", + "cosine/squared", + "cosine/squared/restricted", + "cross", + "dipole", + "fourier", + "fourier/simple", + "gaussian", + "harmonic", + "lepton", + "mm3", + "quartic", + "spica", + "table" ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt/eff or npt/eff or nph/eff \n *      one or more keyword value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate \n       temp values = Tstart Tstop Tdamp \n       Tstart,Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = length of thermostat chain (1 = single thermostat) \n       pchain values = length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = number of sub-cycles to perform on thermostat \n       ploop value = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = drag factor added to barostat/thermostat (0.0 = no drag) \n       dilate value = all or partial \n", - "examples": "\n```lmps\nfix 1 all nvt/eff temp 300.0 300.0 0.1\nfix 1 part npt/eff temp 300.0 300.0 0.1 iso 0.0 0.0 1.0\nfix 2 part npt/eff temp 300.0 300.0 0.1 tri 5.0 5.0 1.0\nfix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\n", - "html_filename": "fix_nh_eff.html", - "short_description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion for nuclei and electrons in the\ngroup for the [electron force field ](https://docs.lammps.org/pair_eff.html) model", - "description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion for nuclei and electrons in the\ngroup for the [electron force field ](https://docs.lammps.org/pair_eff.html) model. The fixes\nare designed to generate positions and velocities sampled from the\ncanonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph)\nensembles. This is achieved by adding some dynamic variables which\nare coupled to the particle velocities (thermostatting) and simulation\ndomain dimensions (barostatting). In addition to basic thermostatting\nand barostatting, these fixes can also create a chain of thermostats\ncoupled to the particle thermostat, and another chain of thermostats\ncoupled to the barostat variables. The barostat can be coupled to the\noverall box volume, or to individual dimensions, including the *xy*,\n*xz* and *yz* tilt dimensions. The external pressure of the barostat\ncan be specified as either a scalar pressure (isobaric ensemble) or as\ncomponents of a symmetric stress tensor (constant stress ensemble).\nWhen used correctly, the time-averaged temperature and stress tensor\nof the particles will match the target values specified by\nTstart/Tstop and Pstart/Pstop.\n\nThe operation of these fixes is exactly like that described by the\n[fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands, except that the radius\nand radial velocity of electrons are also updated. Likewise the\ntemperature and pressure calculated by the fix, using the computes it\ncreates (as discussed in the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html)\ndoc page), are performed with computes that include the eFF contribution\nto the temperature or kinetic energy from the electron radial velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >there are two different pressures that can be reported for eFF\n > when defining the pair_style (see [pair eff/cut ](https://docs.lammps.org/pair_eff.html) to\n > understand these settings), one (default) that considers electrons do\n > not contribute radial virial components (i.e. electrons treated as\n > incompressible 'rigid' spheres) and one that does. The radial\n > electronic contributions to the virials are only tallied if the\n > flexible pressure option is set, and this will affect both global and\n > per-atom quantities. In principle, the true pressure of a system is\n > somewhere in between the rigid and the flexible eFF pressures, but,\n > for most cases, the difference between these two pressures will not be\n > significant over long-term averaged runs (i.e. even though the energy\n > partitioning changes, the total energy remains similar). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >currently, there is no available option for the user to set or\n > create temperature distributions that include the radial electronic\n > degrees of freedom with the [velocity ](https://docs.lammps.org/velocity.html) command, so the\n > the user must allow for these degrees of freedom to equilibrate\n > (i.e. equi-partitioning of energy) through time integration. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nSee the page for the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands\nfor details.\n", - "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOther restriction discussed on the page for the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) commands also apply.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature for systems (regions or groups) with only\n > electrons and no nuclei is 0.0 (i.e. not defined) in the current\n > temperature calculations, a practical example would be a uniform\n > electron gas or a very hot plasma, where electrons remain delocalized\n > from the nuclei. This is because, even though electron virials are\n > included in the temperature calculation, these are averaged over the\n > nuclear degrees of freedom only. In such cases a corrective term must\n > be added to the pressure to get the correct kinetic contribution. \n > \n\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [run_style ](https://docs.lammps.org/run_style.html)\n" + "parameters": "* style = none or zero or hybrid or amoeba or charmm or class2 or class2/p6 or cosine or cosine/buck6d or cosine/delta or cosine/periodic or cosine/shift or cosine/shift/exp or cosine/squared or cosine/squared/restricted or cross or dipole or fourier or fourier/simple or gaussian or harmonic or lepton or mm3 or quartic or spica or table \n", + "examples": "\n```lmps\nangle_style harmonic\nangle_style charmm\nangle_style hybrid harmonic cosine\n```\n", + "html_filename": "angle_style.html", + "short_description": "Set the formula(s) LAMMPS uses to compute angle interactions between\ntriplets of atoms, which remain in force for the duration of the\nsimulation", + "description": "Set the formula(s) LAMMPS uses to compute angle interactions between\ntriplets of atoms, which remain in force for the duration of the\nsimulation. The list of angle triplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file.\n\nHybrid models where angles are computed using different angle\npotentials can be setup using the *hybrid* angle style.\n\nThe coefficients associated with a angle style can be specified in a\ndata or restart file or via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nAll angle potentials store their coefficient data in binary restart\nfiles which means angle_style and [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommands do not need to be re-specified in an input script that\nrestarts a simulation. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for details on how to do this. The one exception is that\nangle_style *hybrid* only stores the list of sub-styles in the restart\nfile; angle coefficients need to be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both an angle and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between 3 bonded atoms. \n > \n\nIn the formulas listed for each angle style, *theta* is the angle\nbetween the 3 atoms in the angle.\n\n----------\n\nHere is an alphabetic list of angle styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the angle_style command, and coefficients\nspecified by the associated [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands angle ` page are followed by one or more\nof (g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [none ](https://docs.lammps.org/angle_none.html) - turn off angle interactions\n* [zero ](https://docs.lammps.org/angle_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/angle_hybrid.html) - define multiple styles of angle interactions\n\n* [amoeba ](https://docs.lammps.org/angle_amoeba.html) - AMOEBA angle\n* [charmm ](https://docs.lammps.org/angle_charmm.html) - CHARMM angle\n* [class2 ](https://docs.lammps.org/angle_class2.html) - COMPASS (class 2) angle\n* [class2/p6 ](https://docs.lammps.org/angle_class2.html) - COMPASS (class 2) angle expanded to 6th order\n* [cosine ](https://docs.lammps.org/angle_cosine.html) - angle with cosine term\n* [cosine/buck6d ](https://docs.lammps.org/angle_cosine_buck6d.html) - same as cosine with Buckingham term between 1-3 atoms\n* [cosine/delta ](https://docs.lammps.org/angle_cosine_delta.html) - angle with difference of cosines\n* [cosine/periodic ](https://docs.lammps.org/angle_cosine_periodic.html) - DREIDING angle\n* [cosine/shift ](https://docs.lammps.org/angle_cosine_shift.html) - angle cosine with a shift\n* [cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html) - cosine with shift and exponential term in spring constant\n* [cosine/squared ](https://docs.lammps.org/angle_cosine_squared.html) - angle with cosine squared term\n* [cosine/squared/restricted ](https://docs.lammps.org/angle_cosine_squared_restricted.html) - angle with restricted cosine squared term\n* [cross ](https://docs.lammps.org/angle_cross.html) - cross term coupling angle and bond lengths\n* [dipole ](https://docs.lammps.org/angle_dipole.html) - angle that controls orientation of a point dipole\n* [fourier ](https://docs.lammps.org/angle_fourier.html) - angle with multiple cosine terms\n* [fourier/simple ](https://docs.lammps.org/angle_fourier_simple.html) - angle with a single cosine term\n* [gaussian ](https://docs.lammps.org/angle_gaussian.html) - multi-centered Gaussian-based angle potential\n* [harmonic ](https://docs.lammps.org/angle_harmonic.html) - harmonic angle\n* [lepton ](https://docs.lammps.org/angle_lepton.html) - angle potential from evaluating a string\n* [mesocnt ](https://docs.lammps.org/angle_mesocnt.html) - piecewise harmonic and linear angle for bending-buckling of nanotubes\n* [mm3 ](https://docs.lammps.org/angle_mm3.html) - anharmonic angle\n* [quartic ](https://docs.lammps.org/angle_quartic.html) - angle with cubic and quartic terms\n* [spica ](https://docs.lammps.org/angle_spica.html) - harmonic angle with repulsive SPICA pair style between 1-3 atoms\n* [table ](https://docs.lammps.org/angle_table.html) - tabulated by angle\n\n----------\n", + "restrictions": "Angle styles can only be set for atom_styles that allow angles to be\ndefined.\n\nMost angle styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual bond potentials tell if it is part of a package.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix nphug", - "fix nphug/omp" + "fix_modify AtC reset_time" ], "syntax": [ - "fix ID group-ID nphug keyword value ..." + "fix_modify reset_time " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "nphug", - "type": 3, - "choices": [ - "nphug", - "nphug/omp" - ] - }, - { - "arg": "keyword", - "type": 2, + "arg": "reset_time", + "type": 1, "choices": [] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command \n *      one or more keyword value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate or scaleyz or scalexz or scalexy \n       temp values = Value1 Value2 Tdamp \n       Value1, Value2 = Nose-Hoover target temperatures, ignored by Hugoniostat \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressures, must be equal (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor components, must be equal (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = length of thermostat chain (1 = single thermostat) \n       pchain values = length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = number of sub-cycles to perform on thermostat \n       ploop value = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = drag factor added to barostat/thermostat (0.0 = no drag) \n       dilate value = all or partial \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       scalexy value = yes or no = scale xy with ly \n", - "examples": "\n```lmps\nfix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0\nfix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0\n```\n", - "html_filename": "fix_nphug.html", - "short_description": "This command is a variant of the Nose-Hoover\n[fix npt ](https://docs.lammps.org/fix_nh.html) fix style", - "description": "This command is a variant of the Nose-Hoover\n[fix npt ](https://docs.lammps.org/fix_nh.html) fix style.\nIt performs time integration of the Hugoniostat equations\nof motion developed by Ravelo et al. **Ravelo1**.\nThese equations compress the system to a state with average\naxial stress or pressure equal to the specified target value\nand that satisfies the Rankine-Hugoniot (RH)\njump conditions for steady shocks.\n\nThe compression can be performed\neither\nhydrostatically (using keyword *iso*, *aniso*, or *tri* ) or uniaxially\n(using keywords *x*, *y*, or *z* ). In the hydrostatic case,\nthe cell dimensions change dynamically so that the average axial stress\nin all three directions converges towards the specified target value.\nIn the uniaxial case, the chosen cell dimension changes dynamically\nso that the average\naxial stress in that direction converges towards the target value. The\nother two cell dimensions are kept fixed (zero lateral strain).\n\nThis leads to the following additional restrictions on the keywords:\n\n* One and only one of the following keywords should be used: *iso*, *aniso*, *tri*, *x*, *y*, *z*\n* The specified initial and final target pressures must be the same.\n* The keywords *xy*, *xz*, *yz* may not be used.\n* The only admissible value for the couple keyword is *xyz*, which has the same effect as keyword *iso*\n* The *temp* keyword must be used to specify the time constant for kinetic energy relaxation, but initial and final target temperature values are ignored.\n\nEssentially, a Hugoniostat simulation is an NPT simulation in which the\nuser-specified target temperature is replaced with a time-dependent\ntarget temperature Tt obtained from the following equation:\n\\[\n T_t - T = \\frac{\\left(\\frac{1}{2}\\left(P + P_0\\right)\\left(V_0 - V\\right) + E_0 - E\\right)}{N_{dof} k_B } = \\Delta\\]\nwhere \\(T\\) and \\(T_t\\) are the instantaneous and target\ntemperatures, *P* and \\(P_0\\) are the instantaneous and reference\npressures or axial stresses, depending on whether hydrostatic or\nuniaxial compression is being performed, *V* and \\(V_0\\) are the\ninstantaneous and reference volumes, *E* and \\(E_0\\) are the\ninstantaneous and reference internal energy (potential plus kinetic),\n\\(N_{dof}\\) is the number of degrees of freedom used in the\ndefinition of temperature, and \\(k_B\\) is the Boltzmann\nconstant. \\(\\Delta\\) is the negative deviation of the instantaneous\ntemperature from the target temperature. When the system reaches a\nstable equilibrium, the value of \\(\\Delta\\) should fluctuate about\nzero.\n\nThe values of \\(E_0\\), \\(V_0\\), and \\(P_0\\) are the\ninstantaneous values at the start of the simulation. These can be\noverridden using the fix_modify keywords *e0*, *v0*, and *p0* described\nbelow.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, this fix\n > performs thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > this fix should not be used on atoms that have their temperature\n > controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\n----------\n\nThis fix computes a temperature and pressure at each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if one of these two sets of commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\". The group for\nthe new computes is \"all\" since pressure is computed for the entire\nsystem.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the values of \\(E_0\\), \\(V_0\\), and \\(P_0\\),\nas well as the state of all the thermostat and barostat variables to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an input\nscript that reads a restart file, so that the operation of the fix\ncontinues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *e0*, *v0* and *p0* keywords can be\nused to define the values of \\(E_0\\), \\(V_0\\), and\n\\(P_0\\). Note the the values for *e0* and *v0* are extensive, and so\nmust correspond to the total energy and volume of the entire system, not\nenergy and volume per atom. If any of these quantities are not\nspecified, then the instantaneous value in the system at the start of\nthe simulation is used.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure, as described above. If you\ndo this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details. Note that this energy is \\*not\\* included in\nthe definition of internal energy E when calculating the value of\nDelta in the above equation.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix also computes a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nThe vector values are \"intensive\".\n\nThe vector stores three quantities unique to this fix (\\(\\Delta\\),\nUs, and up), followed by all the internal Nose/Hoover thermostat and\nbarostat variables defined for [fix npt ](https://docs.lammps.org/fix_nh.html). Delta is the\ndeviation of the temperature from the target temperature, given by the\nabove equation. Us and up are the shock and particle velocity\ncorresponding to a steady shock calculated from the RH\nconditions. They have units of distance/time.\n\n**(Ravelo1)** Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004). \n ", - "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll the usual restrictions for [fix npt ](https://docs.lammps.org/fix_nh.html) apply, plus the\nadditional ones mentioned above.\n", - "related": "[fix msst ](https://docs.lammps.org/fix_msst.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* reset_time = name of the AtC sub-command\n* value = new time value \n", + "examples": "\n```lmps\nfix_modify AtC reset_time 0.0\n```\n", + "html_filename": "atc_reset_time.html", + "short_description": "Resets the simulation time counter", + "description": "Resets the simulation time counter.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "bond_style quartic", - "bond_style quartic/omp" + "create_box" ], "syntax": [ - "bond_style quartic" + "create_box N region-ID keyword value ...", + "create_box N NULL alo ahi blo bhi clo chi keyword value ..." ], "args": [ [ { - "arg": "bond_style", + "arg": "create_box", "type": 1, "choices": [] }, { - "arg": "quartic", - "type": 3, - "choices": [ - "quartic", - "quartic/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nbond_style quartic\nbond_coeff 2 1200 -0.55 0.25 1.3 34.6878\n```\n", - "html_filename": "bond_quartic.html", - "short_description": "The *quartic* bond style uses the potential\n\\[\\begin{align*} \n E & = E_q + E_{LJ} \\\\\n E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\\\\n E_{LJ} & = \\left\\{ \\begin{array} {l@{\\quad:\\quad}l}\n 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon & r < 2^{\\frac{1}{6}}, \\epsilon = 1, \\sigma = 1 \\\\\n 0 & r >= 2^{\\frac{1}{6}}\n \\end{array} \\right", - "description": "The *quartic* bond style uses the potential\n\\[\\begin{align*} \n E & = E_q + E_{LJ} \\\\\n E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\\\\n E_{LJ} & = \\left\\{ \\begin{array} {l@{\\quad:\\quad}l}\n 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon & r < 2^{\\frac{1}{6}}, \\epsilon = 1, \\sigma = 1 \\\\\n 0 & r >= 2^{\\frac{1}{6}}\n \\end{array} \\right. \\end{align*} \\]\nto define a bond that can be broken as the simulation proceeds (e.g.\ndue to a polymer being stretched). The \\(\\sigma\\) and\n\\(\\epsilon\\) used in the LJ portion of the formula are both set\nequal to 1.0 by LAMMPS and the LJ portion is cut off at its minimum,\ni.e. at \\(r_c = 2^{\\frac{1}{6}}\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\(B_1\\) (distance)\n* \\(B_2\\) (distance)\n* \\(R_c\\) (distance)\n* \\(U_0\\) (energy)\n\nThis potential was constructed to mimic the FENE bond potential for\ncoarse-grained polymer chains. When monomers with \\(\\sigma =\n\\epsilon = 1.0\\) are used, the following choice of parameters gives a\nquartic potential that looks nearly like the FENE potential:\n\\[\\begin{align*} \n K &= 1200 \\\\\n B_1 &= -0.55 \\\\\n B_2 &= 0.25 \\\\\n R_c &= 1.3 \\\\\n U_0 &= 34.6878 \\end{align*} \\]\nDifferent parameters can be specified using the [bond_coeff ](https://docs.lammps.org/bond_coeff.html)\ncommand, but you will need to choose them carefully so they form a suitable\nbond potential.\n\n\\(R_c\\) is the cutoff length at which the bond potential goes smoothly to a\nlocal maximum. If a bond length ever becomes \\(> R_c\\), LAMMPS \"breaks\"\nthe bond, which means two things. First, the bond potential is turned\noff by setting its type to 0, and is no longer computed. Second, a\npairwise interaction between the two atoms is turned on, since they\nare no longer bonded. See the [Howto ](https://docs.lammps.org/Howto_broken_bonds.html) page\non broken bonds for more information.\n\nLAMMPS does the second task via a computational sleight-of-hand. It\nsubtracts the pairwise interaction as part of the bond computation.\nWhen the bond breaks, the subtraction stops. For this to work, the\npairwise interaction must always be computed by the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, whether the bond is broken or\nnot. This means that [special_bonds ](https://docs.lammps.org/special_bonds.html) must be set\nto 1,1,1, as indicated as a restriction below.\n\nNote that when bonds are dumped to a file via the [dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 are not included. The\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to query the\nstatus of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThe *quartic* style requires that [special_bonds ](https://docs.lammps.org/special_bonds.html)\nparameters be set to 1,1,1. Three- and four-body interactions (angle,\ndihedral, etc) cannot be used with *quartic* bonds.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" -}, -{ - "command": [ - "bond_style class2", - "bond_style class2/omp", - "bond_style class2/kk" - ], - "syntax": [ - "bond_style class2" - ], - "args": [ - [ + "arg": "N", + "type": 2, + "choices": [] + }, { - "arg": "bond_style", - "type": 1, + "arg": "region-ID", + "type": 2, "choices": [] }, { - "arg": "class2", + "arg": "extra/special/per/atom", "type": 3, "choices": [ - "class2", - "class2/omp", - "class2/kk" + "bond/types", + "angle/types", + "dihedral/types", + "improper/types", + "extra/bond/per/atom", + "extra/angle/per/atom", + "extra/dihedral/per/atom", + "extra/improper/per/atom", + "extra/special/per/atom" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } - ] - ], - "parameters": "", - "examples": "\n```lmps\nbond_style class2\nbond_coeff 1 1.0 100.0 80.0 80.0\n```\n", - "html_filename": "bond_class2.html", - "short_description": "The *class2* bond style uses the potential\n\\[\n E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4\\]\nwhere \\(r_0\\) is the equilibrium bond distance", - "description": "The *class2* bond style uses the potential\n\\[\n E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4\\]\nwhere \\(r_0\\) is the equilibrium bond distance.\n\nSee **bond-Sun** for a description of the COMPASS class2 force field.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(r_0\\) (distance)\n* \\(K_2\\) (energy/distance\\^2)\n* \\(K_3\\) (energy/distance\\^3)\n* \\(K_4\\) (energy/distance\\^4)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(bond-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the CLASS2\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" -}, -{ - "command": [ - "fix wall/gran", - "fix wall/gran/kk" - ], - "syntax": [ - "fix ID group-ID wall/gran fstyle fstyle_params wallstyle args keyword values ..." - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "create_box", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "NULL", "type": 2, "choices": [] }, { - "arg": "wall/gran", - "type": 3, - "choices": [ - "wall/gran", - "wall/gran/kk" - ] + "arg": "alo", + "type": 2, + "choices": [] }, { - "arg": "fstyle", + "arg": "ahi", "type": 2, "choices": [] }, { - "arg": "fstyle_params", + "arg": "blo", "type": 2, "choices": [] }, { - "arg": "zcylinder", - "type": 3, - "choices": [ - "xplane", - "yplane", - "zplane", - "zcylinder" - ] + "arg": "bhi", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "clo", "type": 2, "choices": [] }, { - "arg": "temperature", + "arg": "chi", + "type": 2, + "choices": [] + }, + { + "arg": "extra/special/per/atom", "type": 3, "choices": [ - "wiggle", - "shear", - "contacts", - "temperature" + "bond/types", + "angle/types", + "dihedral/types", + "improper/types", + "extra/bond/per/atom", + "extra/angle/per/atom", + "extra/dihedral/per/atom", + "extra/improper/per/atom", + "extra/special/per/atom" ] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/gran = style name of this fix command\n* fstyle = style of force interactions between particles and wall \n *        possible choices: hooke, hooke/history, hertz/history, granular \n* fstyle_params = parameters associated with force interaction style \n *        For *hooke*, *hooke/history*, and *hertz/history*, fstyle_params are: \n         Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) \n         Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) \n         gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) \n         gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) \n         xmu = static yield criterion (unitless value between 0.0 and 1.0e4) \n         dampflag = 0 or 1 if tangential damping force is excluded or included \n         optional keyword = *limit_damping*, limit damping to prevent attractive interaction \n *        For *granular*, fstyle_params are set using the same syntax as for the pair_coeff command of [pair_style granular ](https://docs.lammps.org/pair_granular.html) \n* wallstyle = xplane or yplane or zplane or zcylinder\n* args = list of arguments for a particular style \n *        xplane or yplane or zplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n *        zcylinder args = radius \n         radius = cylinder radius (distance units) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle or shear or contacts or temperature \n        wiggle values = dim amplitude period \n        dim = x or y or z \n        amplitude = size of oscillation (distance units) \n        period = time of oscillation (time units) \n        shear values = dim vshear \n        dim = x or y or z \n        vshear = magnitude of shear velocity (velocity units) \n *       contacts value = none \n        generate contact information for each particle \n *       temperature value = temperature \n        specify temperature of wall \n", - "examples": "\n```lmps\nfix 1 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0\nfix 1 all wall/gran hooke/history 200000.0 NULL 50.0 NULL 0.5 0 zplane 0.0 NULL\nfix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0\nfix 3 all wall/gran granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox\nfix 4 all wall/gran granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone\nfix 5 all wall/gran granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji heat 10 region myCone temperature 1.0\nfix 6 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0 contacts\n```\n", - "html_filename": "fix_wall_gran.html", - "short_description": "Bound the simulation domain of a granular system with a frictional\nwall", - "description": "Bound the simulation domain of a granular system with a frictional\nwall. All particles in the group interact with the wall when they are\nclose enough to touch it.\n\nThe nature of the wall/particle interactions are determined by the\n*fstyle* setting. It can be any of the styles defined by the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) or the more general\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) commands. Currently the\noptions are *hooke*, *hooke/history*, or *hertz/history* for the\nformer, and *granular* with all the possible options of the associated\n*pair_coeff* command for the latter. The equation for the force\nbetween the wall and particles touching it is the same as the\ncorresponding equation on the [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) and\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) doc pages, in the limit of\none of the two particles going to infinite radius and mass (flat wall).\nSpecifically, delta = radius - r = overlap of particle with wall, m_eff\n= mass of particle, and the effective radius of contact = RiRj/Ri+Rj is\nset to the radius of the particle.\n\nThe parameters *Kn*, *Kt*, *gamma_n*, *gamma_t*, *xmu*, *dampflag*,\nand the optional keyword *limit_damping*\nhave the same meaning and units as those specified with the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) commands. This means a NULL can be\nused for either *Kt* or *gamma_t* as described on that page. If a\nNULL is used for *Kt*, then a default value is used where *Kt* = 2/7\n*Kn* . If a NULL is used for *gamma_t*, then a default value is used\nwhere *gamma_t* = 1/2 *gamma_n*.\n\nAll the model choices for cohesion, tangential friction, rolling\nfriction and twisting friction supported by the [pair_style granular ](https://docs.lammps.org/pair_granular.html) through its *pair_coeff* command are also\nsupported for walls. These are discussed in greater detail on the doc\npage for [pair_style granular ](https://docs.lammps.org/pair_granular.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When *fstyle* *granular* is specified, the associated *fstyle_params* are taken as\n > those for a wall/particle interaction. For example, for the *hertz/material* normal\n > contact model with \\(E = 960\\) and \\(\\nu = 0.2\\), the effective Young's\n > modulus for a wall/particle interaction is computed as\n > \\(E_{eff} = \\frac{960}{2(1-0.2^2)} = 500\\). Any pair coefficients defined by\n > [pair_style granular ](https://docs.lammps.org/pair_granular.html) are not taken into consideration. To\n > model different wall/particle interactions for particles of different material\n > types, the user may define multiple fix wall/gran commands operating on separate\n > groups (e.g. based on particle type) each with a different wall/particle effective\n > Young's modulus. \n > \n\nNote that you can choose a different force styles and/or different\nvalues for the wall/particle coefficients than for particle/particle\ninteractions. E.g. if you wish to model the wall as a different\nmaterial.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the page for [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html),\n > versions of LAMMPS before 9Jan09 used a different equation for\n > Hertzian interactions. This means Hertizian wall/particle\n > interactions have also changed. They now include a sqrt(radius) term\n > which was not present before. Also the previous versions used Kn and\n > Kt from the pairwise interaction and hardwired dampflag to 1, rather\n > than letting them be specified directly. This means you can set the\n > values of the wall/particle coefficients appropriately in the current\n > code to reproduce the results of a previous Hertzian monodisperse\n > calculation. For example, for the common case of a monodisperse\n > system with particles of diameter 1, Kn, Kt, gamma_n, and gamma_s\n > should be set sqrt(2.0) larger than they were previously. \n > \n\nThe effective mass *m_eff* in the formulas listed on the [pair_style granular ](https://docs.lammps.org/pair_gran.html) page is the mass of the particle for\nparticle/wall interactions (mass of wall is infinite). If the\nparticle is part of a rigid body, its mass is replaced by the mass of\nthe rigid body in those formulas. This is determined by searching for\na [fix rigid ](https://docs.lammps.org/fix_rigid.html) command (or its variants).\n\nThe *wallstyle* can be planar or cylindrical. The 3 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired. For a *zcylinder* wallstyle, the cylinder's\naxis is at x = y = 0.0, and the radius of the cylinder is specified.\n\nOptionally, the wall can be moving, if the *wiggle* or *shear*\nkeywords are appended. Both keywords cannot be used together.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\ngranular particles. The arguments to the *wiggle* keyword specify a\ndimension for the motion, as well as it's *amplitude* and *period* .\nNote that if the dimension is in the plane of the wall, this is\neffectively a shearing motion. If the dimension is perpendicular to\nthe wall, it is more of a shaking motion. A *zcylinder* wall can only\nbe wiggled in the z dimension.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\nFor the *shear* keyword, the wall moves continuously in the specified\ndimension with velocity *vshear* . The dimension must be tangential to\nwalls with a planar *wallstyle*, e.g. in the *y* or *z* directions for\nan *xplane* wall. For *zcylinder* walls, a dimension of *z* means the\ncylinder is moving in the z-direction along it's axis. A dimension of\n*x* or *y* means the cylinder is spinning around the z-axis, either in\nthe clockwise direction for *vshear* > 0 or counter-clockwise for\n*vshear* < 0. In this case, *vshear* is the tangential velocity of\nthe wall at whatever *radius* has been defined.\n\nThe *temperature* keyword is used to assign a temperature to the wall.\nThe following value can either be a numeric value or an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to determine\nthe temperature. This option must be used in conjunction with a heat\nconduction model defined in [pair_style granular ](https://docs.lammps.org/pair_granular.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) to store temperature and a\nheat flow, and [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) to integrate heat\nflow.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the shear friction state of atoms interacting with the\nwall to [binary restart files ](https://docs.lammps.org/restart.html), so that a simulation can\ncontinue correctly if granular potentials with shear \"history\" effects\nare being used. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nIf the :code:`contacts` option is used, this fix generates a per-atom array\nwith 8 columns as output, containing the contact information for owned\nparticles (nlocal on each processor). All columns in this per-atom array will\nbe zero if no contact has occurred. The values of these columns are listed in\nthe following table:\n\n| | | | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|---|---|\n| Index | Value | Units |\n+=======+====================================================+================+\n| 1 | 1.0 if particle is in contact with wall, | |\n| | 0.0 otherwise | |\n| 2 | Force \\(f_x\\) exerted by the wall | force units |\n| 3 | Force \\(f_y\\) exerted by the wall | force units |\n| 4 | Force \\(f_z\\) exerted by the wall | force units |\n| 5 | \\(x\\)-coordinate of contact point on wall | distance units |\n| 6 | \\(y\\)-coordinate of contact point on wall | distance units |\n| 7 | \\(z\\)-coordinate of contact point on wall | distance units |\n| 8 | Radius \\(r\\) of atom | distance units |\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo parameter of this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xyz) that has a granular wall must be non-periodic.\n", - "related": "[fix move ](https://docs.lammps.org/fix_move.html),\n[fix wall/gran/region ](https://docs.lammps.org/fix_wall_gran_region.html),\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html)\n[pair_style granular ](https://docs.lammps.org/pair_granular.html)\n" + "parameters": "* N = # of atom types to use in this simulation\n* region-ID = ID of region to use as simulation domain or NULL for general triclinic box\n* alo,ahi,blo,bhi,clo,chi = multipliers on a1,a2,a3 vectors defined by :doc\"`lattice ` command (only when region-ID = NULL)\n* zero or more keyword/value pairs may be appended\n* keyword = bond/types or angle/types or dihedral/types or improper/types or extra/bond/per/atom or extra/angle/per/atom or extra/dihedral/per/atom or extra/improper/per/atom or extra/special/per/atom \n *        bond/types value = # of bond types \n *        angle/types value = # of angle types \n *        dihedral/types value = # of dihedral types \n *        improper/types value = # of improper types \n *        extra/bond/per/atom value = # of bonds per atom \n *        extra/angle/per/atom value = # of angles per atom \n *        extra/dihedral/per/atom value = # of dihedrals per atom \n *        extra/improper/per/atom value = # of impropers per atom \n *        extra/special/per/atom value = # of special neighbors per atom \n", + "examples": "\n```lmps\n# orthogonal or restricted triclinic box using regionID = mybox\ncreate_box 2 mybox\ncreate_box 2 mybox bond/types 2 extra/bond/per/atom 1\n```\n\n```lmps\n# 2d general triclinic box using primitive cell for 2d hex lattice\nlattice custom 1.0 a1 1.0 0.0 0.0 a2 0.5 0.86602540378 0.0 &\na3 0.0 0.0 1.0 basis 0.0 0.0 0.0 triclinic/general\ncreate_box 1 NULL 0 5 0 5 -0.5 0.5\n```\n\n```lmps\n# 3d general triclinic box using primitive cell for 3d fcc lattice\nlattice custom 1.0 a2 0.0 0.5 0.5 a1 0.5 0.0 0.5 a3 0.5 0.5 0.0 basis 0.0 0.0 0.0 triclinic/general\ncreate box 1 NULL -5 5 -10 10 0 20\n```\n", + "html_filename": "create_box.html", + "short_description": "This command creates a simulation box", + "description": "This command creates a simulation box. It also partitions the box into\na regular 3d grid of smaller sub-boxes, one per processor (MPI task).\nThe geometry of the partitioning is based on the size and shape of the\nsimulation box, the number of processors being used and the settings\nof the [processors ](https://docs.lammps.org/processors.html) command. The partitioning can\nlater be changed by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nSimulation boxes in LAMMPS can be either orthogonal or triclinic in\nshape. Orthogonal boxes are a brick in 3d (rectangle in 2d) with 6\nfaces that are each perpendicular to one of the standard xyz\ncoordinate axes. Triclinic boxes are a parallelepiped in 3d\n(parallelogram in 2d) with opposite pairs of faces parallel to each\nother. LAMMPS supports two forms of triclinic boxes, restricted and\ngeneral, which differ in how the box is oriented with respect to the\nxyz coordinate axes. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html)\nfor a detailed description of all 3 kinds of simulation boxes.\n\nThe argument *N* is the number of atom types that will be used in the\nsimulation.\n\nOrthogonal and restricted triclinic boxes are created by specifying a\nregion ID previously defined by the [region ](https://docs.lammps.org/region.html) command.\nGeneral triclinic boxes are discussed below.\n\nIf the region is not of style *prism*, then LAMMPS encloses the region\n(block, sphere, etc.) with an axis-aligned orthogonal bounding box\nwhich becomes the simulation domain. For a 2d simulation, the zlo and\nzhi values of the simulation box must straddle zero.\n\nIf the region is of style *prism*, LAMMPS creates a non-orthogonal\nsimulation domain shaped as a parallelepiped with triclinic symmetry.\nAs defined by the [region prism ](https://docs.lammps.org/region.html) command, the\nparallelepiped has an \"origin\" at (xlo,ylo,zlo) and three edge vectors\nstarting from the origin given by \\(\\vec a =\n(x_\\text{hi}-x_\\text{lo},0,0)\\); \\(\\vec b =\n(xy,y_\\text{hi}-y_\\text{lo},0)\\); and \\(\\vec c =\n(xz,yz,z_\\text{hi}-z_\\text{lo})\\). In LAMMPS lingo, this is a\nrestricted triclinic box because the three edge vectors cannot be\ndefined in arbitrary (general) directions. The parameters *xy* ,\n*xz* , and *yz* can be 0.0 or positive or negative values and are\ncalled \"tilt factors\" because they are the amount of displacement\napplied to faces of an originally orthogonal box to transform it into\nthe parallelepiped. For a 2d simulation, the zlo and zhi values of\nthe simulation box must straddle zero.\n\nTypically a *prism* region used with the create_box command should\nhave tilt factors \\((xy,xz,yz)\\) that do not skew the box more\nthan half the distance of the parallel box length. For example, if\n\\(x_\\text{lo} = 2\\) and \\(x_\\text{hi} = 12\\), then the\n\\(x\\) box length is 10 and the \\(xy\\) tilt factor must be\nbetween \\(-5\\) and \\(5\\). Similarly, both \\(xz\\) and\n\\(yz\\) must be between \\(-(x_\\text{hi}-x_\\text{lo})/2\\) and\n\\(+(y_\\text{hi}-y_\\text{lo})/2\\). Note that this is not a\nlimitation, since if the maximum tilt factor is 5 (as in this\nexample), then configurations with tilt \\(= \\dots, -15\\),\n\\(-5\\), \\(5\\), \\(15\\), \\(25, \\dots\\) are all\ngeometrically equivalent.\n\nLAMMPS will issue a warning if the tilt factors of the created box do\nnot meet this criterion. This is because simulations with large tilt\nfactors may run inefficiently, since they require more ghost atoms and\nthus more communication. With very large tilt factors, LAMMPS may\neventually produce incorrect trajectories and stop with errors due to\nlost atoms or similar issues.\n\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for geometric\ndescriptions of triclinic boxes and tilt factors, as well as how to\ntransform the restricted triclinic parameters to and from other\ncommonly used triclinic representations.\n\nWhen a prism region is used, the simulation domain should normally be\nperiodic in the dimension that the tilt is applied to, which is given\nby the second dimension of the tilt factor (e.g., \\(y\\) for\n\\(xy\\) tilt). This is so that pairs of atoms interacting across\nthat boundary will have one of them shifted by the tilt factor.\nPeriodicity is set by the [boundary ](https://docs.lammps.org/boundary.html) command. For\nexample, if the \\(xy\\) tilt factor is non-zero, then the \\(y\\)\ndimension should be periodic. Similarly, the \\(z\\) dimension\nshould be periodic if \\(xz\\) or \\(yz\\) is non-zero. LAMMPS\ndoes not require this periodicity, but you may lose atoms if this is\nnot the case.\n\nNote that if your simulation will tilt the box (e.g., via the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command), the simulation box must be\ncreated as triclinic, even if the tilt factors are initially 0.0. You\ncan also change an orthogonal box to a triclinic box or vice versa by\nusing the [change box ](https://docs.lammps.org/change_box.html) command with its *ortho* and\n*triclinic* options.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is non-periodic (in a dimension), then you should not\n > make the lo/hi box dimensions (as defined in your [region > ](https://docs.lammps.org/region.html) command) radically smaller/larger than the extent of the\n > atoms you eventually plan to create (e.g., via the\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) command). For example, if your\n > atoms extend from 0 to 50, you should not specify the box bounds as\n > \\(-10000\\) and \\(10000\\). This is because as described\n > above, LAMMPS uses the specified box size to lay out the 3d grid of\n > processors. A huge (mostly empty) box will be sub-optimal for\n > performance when using \"fixed\" boundary conditions (see the\n > [boundary ](https://docs.lammps.org/boundary.html) command). When using \"shrink-wrap\"\n > boundary conditions (see the [boundary ](https://docs.lammps.org/boundary.html) command), a\n > huge (mostly empty) box may cause a parallel simulation to lose\n > atoms the first time that LAMMPS shrink-wraps the box around the\n > atoms. \n > \n\n----------\n\nAs noted above, general triclinic boxes in LAMMPS allow the box to\nhave arbitrary edge vectors **A**, **B**, **C**. The only\nrestrictions are that the three vectors be distinct, non-zero, and not\nco-planar. They must also define a right-handed system such that\n(**A** x **B**) points in the direction of **C**. Note that a\nleft-handed system can be converted to a right-handed system by simply\nswapping the order of any pair of the **A**, **B**, **C** vectors.\n\nTo create a general triclinic boxes, the region is specified as NULL\nand the next 6 parameters (alo,ahi,blo,bhi,clo,chi) define the three\nedge vectors **A**, **B**, **C** using additional information\npreviously defined by the [lattice ](https://docs.lammps.org/lattice.html) command.\n\nThe lattice must be of style *custom* and use its *triclinic/general*\noption. This insures the lattice satisfies the restrictions listed\nabove. The *a1, *a2*, *a3* settings of the [lattice ](https://docs.lammps.org/lattice.html)\ncommand define the edge vectors of a unit cell of the general\ntriclinic lattice. This command uses them to define the three edge\nvectors and origin of the general triclinic box as:\n\n* **A** = (ahi-alo) * *a1*\n* **B** = (bhi-blo) * *a2*\n* **C** = (chi-clo) * *a3*\n* origin = (alo*a1 + blo*a2 + clo*a3)\n\nFor 2d general triclinic boxes, clo = -0.5 and chi = 0.5 is required.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box defined by this command and per-atom information\n > (e.g. coordinates, velocities) defined by the [create_atoms > ](https://docs.lammps.org/create_atoms.html) command are converted (rotated) from general to\n > restricted triclinic form when the two commands are invoked. The\n > ` doc page also discusses other LAMMPS commands\n > which can input/output general triclinic representations of the\n > simulation box and per-atom data. \n > \n\n----------\n\nThe optional keywords can be used to create a system that allows for\nbond (angle, dihedral, improper) interactions, or for molecules with\nspecial 1--2, 1--3, or 1--4 neighbors to be added later. These\noptional keywords serve the same purpose as the analogous keywords\nthat can be used in a data file which are recognized by the\n[read_data ](https://docs.lammps.org/read_data.html) command when it sets up a system.\n\nNote that if these keywords are not used, then the create_box command\ncreates an atomic (non-molecular) simulation that does not allow bonds\nbetween pairs of atoms to be defined, or a [bond potential](https://docs.lammps.org/bond_style.html) to be specified, or for molecules with special neighbors\nto be added to the system by commands such as [create_atoms mol](https://docs.lammps.org/create_atoms.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour](https://docs.lammps.org/fix_pour.html).\n\nAs an example, see the examples/deposit/in.deposit.molecule script,\nwhich deposits molecules onto a substrate. Initially there are no\nmolecules in the system, but they are added later by the [fixdeposit ](https://docs.lammps.org/fix_deposit.html) command. The create_box command in the script\nuses the bond/types and extra/bond/per/atom keywords to allow this.\nIf the added molecule contained more than one special bond (allowed by\ndefault), an extra/special/per/atom keyword would also need to be\nspecified.\n\n----------\n", + "restrictions": "An [atom_style ](https://docs.lammps.org/atom_style.html) and [region ](https://docs.lammps.org/region.html) must have\nbeen previously defined to use this command.\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[region ](https://docs.lammps.org/region.html)\n" }, { "command": [ - "write_restart" + "pair_style body/nparticle" ], "syntax": [ - "write_restart file keyword value ..." + "pair_style body/nparticle cutoff" ], "args": [ [ { - "arg": "write_restart", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "file", + "arg": "body/nparticle", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] + } + ] + ], + "parameters": "cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style body/nparticle 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\n```\n", + "html_filename": "pair_body_nparticle.html", + "short_description": "Style *body/nparticle* is for use with body particles and calculates\npairwise body/body interactions as well as interactions between body\nand point-particles", + "description": "Style *body/nparticle* is for use with body particles and calculates\npairwise body/body interactions as well as interactions between body\nand point-particles. See the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page\nfor more details on using body particles.\n\nThis pair style is designed for use with the \"nparticle\" body style,\nwhich is specified as an argument to the \"atom-style body\" command.\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details about\nthe body styles LAMMPS supports. The \"nparticle\" style treats a body\nparticle as a rigid body composed of N sub-particles.\n\nThe coordinates of a body particle are its center-of-mass (COM). If\nthe COMs of a pair of body particles are within the cutoff (global or\ntype-specific, as specified above), then all interactions between\npairs of sub-particles in the two body particles are computed.\nE.g. if the first body particle has 3 sub-particles, and the second\nhas 10, then 30 interactions are computed and summed to yield the\ntotal force and torque on each body particle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the example just described, all 30 interactions are computed\n > even if the distance between a particular pair of sub-particles is\n > greater than the cutoff. Likewise, no interaction between two body\n > particles is computed if the two COMs are further apart than the\n > cutoff, even if the distance between some pairs of their sub-particles\n > is within the cutoff. Thus care should be used in defining the cutoff\n > distances for body particles, depending on their shape and size. \n > \n\nSimilar rules apply for a body particle interacting with a point\nparticle. The distance between the two particles is calculated using\nthe COM of the body particle and the position of the point particle.\nIf the distance is within the cutoff and the body particle has N\nsub-particles, then N interactions with the point particle are\ncomputed and summed. If the distance is not within the cutoff, no\ninteractions between the body and point particle are computed.\n\nThe interaction between two sub-particles, or a sub-particle and point\nparticle, or between two point particles is computed as a Lennard-Jones\ninteraction, using the standard formula\n\\[\\begin{align*} \n E & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < R_c \\\\ \\end{align*} \\]\nwhere \\(R_c\\) is the cutoff. As explained above, an interaction involving\none or two body sub-particles may be computed even for \\(r > R_c\\).\n\nFor style *body*, the following coefficients must be defined for each\npair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of this pair style can be mixed. The\ndefault mix value is *geometric* . See the [pair_modify ](https://docs.lammps.org/pair_modify.html) command for\ndetails.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This style is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be bodies so they participate in body/body or\nbody/particle interactions requires the use of the [atom_style body ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix rigid ](https://docs.lammps.org/fix_rigid.html)\n" +}, +{ + "command": [ + "pair_style zbl", + "pair_style zbl/gpu", + "pair_style zbl/kk", + "pair_style zbl/omp" + ], + "syntax": [ + "pair_style zbl inner outer" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "nfile", + "arg": "zbl", "type": 3, "choices": [ - "fileper", - "nfile" + "zbl", + "zbl/gpu", + "zbl/kk", + "zbl/omp" ] }, { - "arg": "value", + "arg": "inner", + "type": 2, + "choices": [] + }, + { + "arg": "outer", "type": 2, "choices": [] } ] ], - "parameters": "* file = name of file to write restart information to\n* zero or more keyword/value pairs may be appended\n* keyword = fileper or nfile \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n", - "examples": "\n```lmps\nwrite_restart restart.equil\nwrite_restart poly.%.* nfile 10\n```\n", - "html_filename": "write_restart.html", - "short_description": "Write a binary restart file of the current state of the simulation", - "description": "Write a binary restart file of the current state of the simulation.\n\nDuring a long simulation, the [restart ](https://docs.lammps.org/restart.html) command is\ntypically used to output restart files periodically. The\nwrite_restart command is useful after a minimization or whenever you\nwish to write out a single current restart file.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the restart filename can contain\ntwo wild-card characters. If a \"\\*\" appears in the filename, it is\nreplaced with the current timestep value. If a \"%\" character appears\nin the filename, then one file is written by each processor and the\n\"%\" character is replaced with the processor ID from 0 to P-1. An\nadditional file with the \"%\" replaced by \"base\" is also written, which\ncontains global information. For example, the files written for\nfilename restart.% would be restart.base, restart.0, restart.1, ...\nrestart.P-1. This creates smaller files and can be a fast mode of\noutput and subsequent input on parallel machines that support parallel\nI/O. The optional *fileper* and *nfile* keywords discussed below can\nalter the number of files written.\n\nRestart files can be read by a [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand to restart a simulation from a particular state. Because the\nfile is binary (to enable exact restarts), it may not be readable on\nanother machine. In this case, you can use the [-r command-lineswitch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Although the purpose of restart files is to enable restarting a\n > simulation from where it left off, not all information about a\n > simulation is stored in the file. For example, the list of fixes\n > that were specified during the initial run is not stored, which\n > means the new input script must specify any fixes you want to use.\n > Even when restart information is stored in the file, as it is for\n > some fixes, commands may need to be re-specified in the new input\n > script, in order to re-use that information. Details are usually\n > given in the documentation of the respective command. Also, see the\n > [read_restart ](https://docs.lammps.org/read_restart.html) command for general information\n > about what is stored in a restart file. \n > \n\n----------\n\nThe optional *nfile* or *fileper* keywords can be used in conjunction\nwith the \"%\" wildcard character in the specified restart file name.\nAs explained above, the \"%\" character causes the restart file to be\nwritten in pieces, one piece for each of P processors. By default P =\nthe number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set P to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets P to the specified Nf value. For example, if\nNf = 4, and the simulation is running on 100 processors, 4 files will\nbe written, by processors 0,25,50,75. Each will collect information\nfrom itself and the next 24 processors and write it to a restart file.\n\nFor the *fileper* keyword, the specified value of Np means write one\nfile for every Np processors. For example, if Np = 4, every fourth\nprocessor (0,4,8,12,etc) will collect information from itself and the\nnext 3 processors and write it to a restart file.\n\n----------\n", - "restrictions": "This command requires inter-processor communication to migrate atoms\nbefore the restart file is written. This means that your system must\nbe ready to perform a simulation before using this command (force\nfields setup, atom masses initialized, etc).\n", - "related": "[restart ](https://docs.lammps.org/restart.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[write_data ](https://docs.lammps.org/write_data.html)\n" + "parameters": "* inner = distance where switching function begins\n* outer = global cutoff for ZBL interaction \n", + "examples": "\n```lmps\npair_style zbl 3.0 4.0\npair_coeff * * 73.0 73.0\npair_coeff 1 1 14.0 14.0\n```\n", + "html_filename": "pair_zbl.html", + "short_description": "Style *zbl* computes the Ziegler-Biersack-Littmark (ZBL) screened nuclear\nrepulsion for describing high-energy collisions between atoms", + "description": "Style *zbl* computes the Ziegler-Biersack-Littmark (ZBL) screened nuclear\nrepulsion for describing high-energy collisions between atoms.\n**Ziegler**. It includes an additional switching function\nthat ramps the energy, force, and curvature smoothly to zero\nbetween an inner and outer cutoff. The potential\nenergy due to a pair of atoms at a distance r_ij is given by:\n\\[\\begin{align*} \n E^{ZBL}_{ij} & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_i Z_j \\,e^2}{r_{ij}} \\phi(r_{ij}/a)+ S(r_{ij})\\\\\n a & = \\frac{0.46850}{Z_{i}^{0.23} + Z_{j}^{0.23}}\\\\\n \\phi(x) & = 0.18175e^{-3.19980x} + 0.50986e^{-0.94229x} + 0.28022e^{-0.40290x} + 0.02817e^{-0.20162x}\\\\ \\end{align*} \\]\nwhere *e* is the electron charge, \\(\\epsilon_0\\) is the electrical\npermittivity of vacuum, and \\(Z_i\\) and \\(Z_j\\) are the nuclear\ncharges of the\ntwo atoms. The switching function \\(S(r)\\) is identical to that used by\n[pair_style lj/gromacs ](https://docs.lammps.org/pair_gromacs.html). Here, the inner and outer\ncutoff are the same for all pairs of atom types.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the LAMMPS data file.\n\n* \\(Z_i\\) (atomic number for first atom type, e.g. 13.0 for aluminum)\n\n* \\(Z_j\\) (ditto for second atom type)\n\nThe values of \\(Z_i\\) and \\(Z_j\\) are normally equal to the atomic\nnumbers of the two atom types. Thus, the user may optionally\nspecify only the coefficients for each \\(i==i\\) pair, and rely\non the obvious mixing rule for cross interactions (see below).\nNote that when \\(i==i\\) it is required that \\(Z_i == Z_j\\).\nWhen used with [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) and pairs are\nassigned\nto more than one sub-style, the mixing rule is not used and\neach pair of types interacting with the ZBL sub-style must\nbe included in a pair_coeff command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The numerical values of the exponential decay constants in the\n > screening function depend on the unit of distance. In the above\n > equation they are given for units of Angstroms. LAMMPS will\n > automatically convert these values to the distance unit of the\n > specified LAMMPS [units ](https://docs.lammps.org/units.html) setting. The values of Z should\n > always be given as multiples of a proton's charge, e.g. 29.0 for\n > copper. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs *i,j* and \\(i \\neq i\\), the \\(Z_i\\) and\n\\(Z_j\\) coefficients\ncan be mixed by taking \\(Z_i\\) and \\(Z_j\\) from the values\nspecified for\n\\(i == i\\) and \\(j == j\\) cases. When used\nwith [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) and pairs are assigned\nto more than one sub-style, the mixing rule is not used and\neach pair of types interacting with the ZBL sub-style\nmust be included in a pair_coeff command.\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix option has no effect on\nthe mixing behavior\n\nThe ZBL pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the ZBL interaction is already smoothed to 0.0 at\nthe cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since there are no corrections for a potential that goes to\n0.0 at the cutoff.\n\nThis pair style does not write information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands must be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ziegler)** J.F. Ziegler, J. P. Biersack and U. Littmark, \"The\nStopping and Range of Ions in Matter\", Volume 1, Pergamon, 1985. \n ", + "restrictions": " none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix viscosity" + "fix evaporate" ], "syntax": [ - "fix ID group-ID viscosity N vdim pdim Nbin keyword value ..." + "fix ID group-ID evaporate N M region-ID seed" ], "args": [ [ @@ -18761,7 +18158,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "viscosity", + "arg": "evaporate", "type": 1, "choices": [] }, @@ -18771,138 +18168,116 @@ export const command_docs = [ "choices": [] }, { - "arg": "y", - "type": 3, - "choices": [ - "x", - "y" - ] - }, - { - "arg": "y", - "type": 3, - "choices": [ - "x", - "y" - ] - }, - { - "arg": "Nbin", + "arg": "M", "type": 2, "choices": [] }, { - "arg": "vtarget", - "type": 3, - "choices": [ - "swap", - "vtarget" - ] + "arg": "region-ID", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* viscosity = style name of this fix command\n* N = perform momentum exchange every N steps\n* vdim = x or y or z = which momentum component to exchange\n* pdim = x or y or z = direction of momentum transfer\n* Nbin = # of layers in pdim direction (must be even number)\n* zero or more keyword/value pairs may be appended\n* keyword = swap or vtarget \n *        swap value = Nswap = number of swaps to perform every N steps \n *        vtarget value = V or INF = target velocity of swap partners (velocity units) \n", - "examples": "\n```lmps\nfix 1 all viscosity 100 x z 20\nfix 1 all viscosity 50 x z 20 swap 2 vtarget 1.5\n```\n", - "html_filename": "fix_viscosity.html", - "short_description": "Use the Muller-Plathe algorithm described in **Muller-Plathe2** to exchange momenta between two particles in\ndifferent regions of the simulation box every N steps", - "description": "Use the Muller-Plathe algorithm described in **Muller-Plathe2** to exchange momenta between two particles in\ndifferent regions of the simulation box every N steps. This induces a\nshear velocity profile in the system. As described below this enables\na viscosity of the fluid to be calculated. This algorithm is\nsometimes called a reverse non-equilibrium MD (reverse NEMD) approach\nto computing viscosity. This is because the usual NEMD approach is to\nimpose a shear velocity profile on the system and measure the response\nvia an off-diagonal component of the stress tensor, which is\nproportional to the momentum flux. In the Muller-Plathe method, the\nmomentum flux is imposed, and the shear velocity profile is the\nsystem's response.\n\nThe simulation box is divided into *Nbin* layers in the *pdim*\ndirection, where the layer 1 is at the low end of that dimension and\nthe layer *Nbin* is at the high end. Every N steps, Nswap pairs of\natoms are chosen in the following manner. Only atoms in the fix group\nare considered. Nswap atoms in layer 1 with positive velocity\ncomponents in the *vdim* direction closest to the target value *V* are\nselected. Similarly, Nswap atoms in the \"middle\" layer (see below) with\nnegative velocity components in the *vdim* direction closest to the\nnegative of the target value *V* are selected. The two sets of Nswap\natoms are paired up and their *vdim* momenta components are swapped\nwithin each pair. This resets their velocities, typically in opposite\ndirections. Over time, this induces a shear velocity profile in the\nsystem which can be measured using commands such as the following,\nwhich writes the profile to the file tmp.profile:\n\n```lmps\ncompute layers all chunk/atom bin/1d z lower 0.05 units reduced\nfix f1 all ave/chunk 100 10 1000 layers vx file tmp.profile\n```\nNote that by default, Nswap = 1 and vtarget = INF, though this can be\nchanged by the optional *swap* and *vtarget* keywords. When vtarget =\nINF, one or more atoms with the most positive and negative velocity\ncomponents are selected. Setting these parameters appropriately, in\nconjunction with the swap rate N, allows the momentum flux rate to be\nadjusted across a wide range of values, and the momenta to be\nexchanged in large chunks or more smoothly.\n\nThe \"middle\" layer for momenta swapping is defined as the *Nbin* /2 + 1\nlayer. Thus if *Nbin* = 20, the two swapping layers are 1 and 11.\nThis should lead to a symmetric velocity profile since the two layers\nare separated by the same distance in both directions in a periodic\nsense. This is why *Nbin* is restricted to being an even number.\n\nAs described below, the total momentum transferred by these velocity\nswaps is computed by the fix and can be output. Dividing this\nquantity by time and the cross-sectional area of the simulation box\nyields a momentum flux. The ratio of momentum flux to the slope of\nthe shear velocity profile is proportional to the viscosity of the\nfluid, in appropriate units. See the **Muller-Plathe2** for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is periodic in the direction of the momentum\n > flux, then the flux is going in 2 directions. This means the\n > effective momentum flux in one direction is reduced by a factor of 2.\n > You will see this in the equations for viscosity in the Muller-Plathe\n > paper. LAMMPS is simply tallying momentum which does not account for\n > whether or not your system is periodic; you must use the value\n > appropriately to yield a viscosity for your system. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After equilibration, if the velocity profile you observe is not\n > linear, then you are likely swapping momentum too frequently and are\n > not in a regime of linear response. In this case you cannot\n > accurately infer a viscosity and should try increasing the Nevery\n > parameter. \n > \n\nAn alternative method for calculating a viscosity is to run a NEMD\nsimulation, as described on the [Howto nemd ](https://docs.lammps.org/Howto_nemd.html) doc page.\nNEMD simulations deform the simulation box via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nSome features or combination of settings in LAMMPS do not support\nnon-orthogonal boxes. Using fix viscosity keeps the box orthogonal;\nthus it does not suffer from these limitations.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nmomentum transferred between the bottom and middle of the simulation\nbox (in the *pdim* direction) is stored as a scalar quantity by this\nfix. This quantity is zeroed when the fix is defined and accumulates\nthereafter, once every N steps. The units of the quantity are\nmomentum = mass\\*velocity. The scalar value calculated by this fix is\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Muller-Plathe2)** Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999). \n \n**(Muller-Plathe2)** Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nSwaps conserve both momentum and kinetic energy, even if the masses of\nthe swapped atoms are not equal. Thus you should not need to\nthermostat the system. If you do use a thermostat, you may want to\napply it only to the non-swapped dimensions (other than *vdim* ).\n\nLAMMPS does not check, but you should not use this fix to swap\nvelocities of atoms that are in constrained molecules, e.g. via [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is because\napplication of the constraints will alter the amount of transferred\nmomentum. You should, however, be able to use flexible molecules.\nSee the **Maginn** for an example of using this algorithm\nin a computation of alcohol molecule properties.\n\nWhen running a simulation with large, massive particles or molecules\nin a background solvent, you may want to only exchange momenta between\nsolvent particles.\n\n**(Maginn)** Kelkar, Rafferty, Maginn, Siepmann, Fluid Phase Equilibria,\n260, 218-231 (2007). \n ", - "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* evaporate = style name of this fix command\n* N = delete atoms every this many timesteps\n* M = number of atoms to delete each time\n* region-ID = ID of region within which to perform deletions\n* seed = random number seed to use for choosing atoms to delete\n* zero or more keyword/value pairs may be appended \n *      keyword = molecule \n       molecule value = no or yes \n", + "examples": "\n```lmps\nfix 1 solvent evaporate 1000 10 surface 49892\nfix 1 solvent evaporate 1000 10 surface 38277 molecule yes\n```\n", + "html_filename": "fix_evaporate.html", + "short_description": "Remove M atoms from the simulation every N steps", + "description": "Remove M atoms from the simulation every N steps. This can be used,\nfor example, to model evaporation of solvent particles or molecules\n(i.e. drying) of a system. Every N steps, the number of atoms in the\nfix group and within the specified region are counted. M of these are\nchosen at random and deleted. If there are less than M eligible\nparticles, then all of them are deleted.\n\nIf the setting for the *molecule* keyword is *no*, then only single\natoms are deleted. In this case, you should ensure you do not delete\nonly a portion of a molecule (only some of its atoms), or LAMMPS will\nsoon generate an error when it tries to find those atoms. LAMMPS will\nwarn you if any of the atoms eligible for deletion have a non-zero\nmolecule ID, but does not check for this at the time of deletion.\n\nIf the setting for the *molecule* keyword is *yes*, then when an atom\nis chosen for deletion, the entire molecule it is part of is deleted.\nThe count of deleted atoms is incremented by the number of atoms in\nthe molecule, which may make it exceed *M* . If the molecule ID of the\nchosen atom is 0, then it is assumed to not be part of a molecule, and\njust the single atom is deleted.\n\nAs an example, if you wish to delete 10 water molecules every *N*\nsteps, you should set *M* to 30. If only the water's oxygen atoms\nwere in the fix group, then two hydrogen atoms would be deleted when\nan oxygen atom is selected for deletion, whether the hydrogen atoms\nare inside the evaporation region or not.\n\nNote that neighbor lists are re-built on timesteps that atoms are\nremoved. Thus you should not remove atoms too frequently or you will\nincur overhead due to the cost of building neighbor lists.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the atom\n > count is changing due to evaporation, you typically should use the\n > [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command for the\n > temperature compute you are using. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes a global scalar, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nnumber of deleted atoms. The scalar value calculated by this fix is\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "None\n", + "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html)\n" }, { "command": [ - "fix nve/noforce" + "pair_style dpd/ext", + "pair_style dpd/ext", + "pair_style dpd/ext/tstat", + "pair_style dpd/ext/tstat" ], "syntax": [ - "fix ID group-ID nve" + "pair_style dpd/ext T cutoff seed", + "pair_style dpd/ext/tstat Tstart Tstop cutoff seed" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dpd/ext", + "type": 1, + "choices": [] + }, + { + "arg": "T", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "nve", + "arg": "seed", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/noforce = style name of this fix command \n", - "examples": "\n```lmps\nfix 3 wall nve/noforce\n```\n", - "html_filename": "fix_nve_noforce.html", - "short_description": "Perform updates of position, but not velocity for atoms in the group\neach timestep", - "description": "Perform updates of position, but not velocity for atoms in the group\neach timestep. In other words, the force on the atoms is ignored and\ntheir velocity is not updated. The atom velocities are used to update\ntheir positions.\n\nThis can be useful for wall atoms, when you set their velocities, and\nwant the wall to move (or stay stationary) in a prescribed fashion.\n\nThis can also be accomplished via the [fix setforce ](https://docs.lammps.org/fix_setforce.html)\ncommand, but with fix nve/noforce, the forces on the wall atoms are\nunchanged, and can thus be printed by the [dump ](https://docs.lammps.org/dump.html) command or\nqueried with an equal-style [variable ](https://docs.lammps.org/variable.html) that uses the\nfcm() group function to compute the total force on the group of atoms.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "none\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n" -}, -{ - "command": [ - "compute inertia/chunk" - ], - "syntax": [ - "compute ID group-ID inertia/chunk chunkID" - ], - "args": [ + ], [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dpd/ext/tstat", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "inertia/chunk", - "type": 1, + "arg": "Tstop", + "type": 2, "choices": [] }, { - "arg": "chunkID", + "arg": "cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* inertia/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid inertia/chunk molchunk\n```\n", - "html_filename": "compute_inertia_chunk.html", - "short_description": "Define a computation that calculates the inertia tensor for multiple\nchunks of atoms", - "description": "Define a computation that calculates the inertia tensor for multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the six components of the symmetric inertia\ntensor for each chunk, ordered\n\\(I_{xx},I_{yy},I_{zz},I_{xy},I_{yz},I_{xz}\\).\nThe calculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's inertia\n > tensor in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute inertia/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all inertia/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nThe number of columns is 6, one for each of the 6 components of the inertia\ntensor for each chunk, ordered as listed above. These values can be accessed\nby any command that uses global array values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe array values are \"intensive\". The array values will be in\nmass\\*distance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[variable inertia() function ](https://docs.lammps.org/variable.html)\n" + "parameters": "* T = temperature (temperature units)\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* cutoff = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer) \n", + "examples": "\n```lmps\npair_style dpd/ext 1.0 2.5 34387\npair_coeff 1 1 25.0 4.5 4.5 0.5 0.5 1.2\npair_coeff 1 2 40.0 4.5 4.5 0.5 0.5 1.2\n\npair_style hybrid/overlay lj/cut 2.5 dpd/ext/tstat 1.0 1.0 2.5 34387\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * 4.5 4.5 0.5 0.5 1.2\n```\n", + "html_filename": "pair_dpd_ext.html", + "short_description": "The style *dpd/ext* computes an extended force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot**, **Junghans**", + "description": "The style *dpd/ext* computes an extended force field for dissipative\nparticle dynamics (DPD) following the exposition in **Groot**, **Junghans**.\n\nStyle *dpd/ext/tstat* invokes an extended DPD thermostat on pairwise\ninteractions, equivalent to the non-conservative portion of the extended\nDPD force field. To use *dpd/ext/tstat* as a thermostat for another pair\nstyle, use the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command to\ncompute both the desired pair interaction and the thermostat for each\npair of particles.\n\nFor the style *dpd/ext*, the force on atom I due to atom J is given as\na sum of 3 terms\n\\[\\begin{align*} \n \\mathbf{f} = & f^C + f^D + f^R \\qquad \\qquad r < r_c \\\\\n f^C = & A_{ij} w(r) \\hat{\\mathbf{r}}_{ij} \\\\\n f^D = & - \\gamma_{\\parallel} w_{\\parallel}^2(r) (\\hat{\\mathbf{r}}_{ij} \\cdot \\mathbf{v}_{ij}) \\hat{\\mathbf{r}}_{ij} - \\gamma_{\\perp} w_{\\perp}^2 (r) ( \\mathbf{I} - \\hat{\\mathbf{r}}_{ij} \\hat{\\mathbf{r}}_{ij}^{\\rm T} ) \\mathbf{v}_{ij} \\\\\n f^R = & \\sigma_{\\parallel} w_{\\parallel}(r) \\frac{\\alpha}{\\sqrt{\\Delta t}} \\hat{\\mathbf{r}}_{ij} + \\sigma_{\\perp} w_{\\perp} (r) ( \\mathbf{I} - \\hat{\\mathbf{r}}_{ij} \\hat{\\mathbf{r}}_{ij}^{\\rm T} ) \\frac{\\mathbf{\\xi}_{ij}}{\\sqrt{\\Delta t}}\\\\\n w(r) = & 1 - r/r_c \\\\ \\end{align*} \\]\nwhere \\(\\mathbf{f}^C\\) is a conservative force, \\(\\mathbf{f}^D\\)\nis a dissipative force, and \\(\\mathbf{f}^R\\) is a random\nforce. \\(A_{ij}\\) is the maximum repulsion between the two atoms,\n\\(\\hat{\\mathbf{r}}_{ij}\\) is a unit vector in the direction\n\\(\\mathbf{r}_i - \\mathbf{r}_j\\), \\(\\mathbf{v}_{ij} =\n\\mathbf{v}_i - \\mathbf{v}_j\\) is the vector difference in velocities of\nthe two atoms, \\(\\alpha\\) and \\(\\mathbf{\\xi}_{ij}\\) are Gaussian\nrandom numbers with zero mean and unit variance, \\(\\Delta t\\) is the\ntimestep, \\(w (r) = 1 - r / r_c\\) is a weight function for the\nconservative interactions that varies between 0 and 1, \\(r_c\\) is\nthe corresponding cutoff, \\(w_{\\alpha} ( r ) = ( 1 - r / \\bar{r}_c\n)^{s_{\\alpha}}\\), \\(\\alpha \\equiv ( \\parallel, \\perp )\\), are weight\nfunctions with coefficients \\(s_\\alpha\\) that vary between 0 and 1,\n\\(\\bar{r}_c\\) is the corresponding cutoff, \\(\\mathbf{I}\\) is the\nunit matrix, \\(\\sigma_{\\alpha} = \\sqrt{2 k_B T \\gamma_{\\alpha}}\\),\nwhere \\(k_B\\) is the Boltzmann constant and \\(T\\) is the\ntemperature in the pair\\_style command.\n\nFor the style *dpd/ext/tstat*, the force on atom I due to atom J is\nthe same as the above equation, except that the conservative\n\\(\\mathbf{f}^C\\) term is dropped. Also, during the run, T is set\neach timestep to a ramped value from Tstart to Tstop.\n\nFor the style *dpd/ext*, the pairwise energy associated with style\n*dpd/ext* is only due to the conservative force term\n\\(\\mathbf{f}^C\\), and is shifted to be zero at the cutoff distance\n\\(r_c\\). The pairwise virial is calculated using all three\nterms. There is no pairwise energy for style *dpd/ext/tstat*, but the\nlast two terms of the formula contribute the virial.\n\nFor the style *dpd/ext/tstat*, the force on atom I due to atom J is the\nsame as the above equation, except that the conservative\n\\(\\mathbf{f}^C\\) term is dropped. Also, during the run, T is set\neach timestep to a ramped value from Tstart to Tstop.\n\nFor the style *dpd/ext*, the pairwise energy associated with style\n*dpd/ext* is only due to the conservative force term\n\\(\\mathbf{f}^C\\), and is shifted to be zero at the cutoff distance\n\\(r_c\\). The pairwise virial is calculated using all three\nterms. There is no pairwise energy for style *dpd/ext/tstat*, but the\nlast two terms of the formula contribute the virial.\n\nFor the style *dpd/ext*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above:\n\n* A (force units)\n* \\(\\gamma_{\\parallel}\\) (force/velocity units)\n* \\(\\gamma_{\\perp}\\) (force/velocity units)\n* \\(s_{\\parallel}\\) (unitless)\n* \\(s_{\\perp}\\) (unitless)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used. Note that \\(\\sigma\\)'s are set equal to\n\\(\\sqrt{2 k_B T \\gamma}\\), where \\(T\\) is the temperature set by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command so it does not need to be\nspecified.\n\nFor the style *dpd/ext/tstat*, the coefficients defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command are:\n\n* \\(\\gamma_{\\parallel}\\) (force/velocity units)\n* \\(\\gamma_{\\perp}\\) (force/velocity units)\n* \\(s_{\\parallel}\\) (unitless)\n* \\(s_{\\perp}\\) (unitless)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are modeling DPD polymer chains, you may want to use the\n > [pair_style srp ](https://docs.lammps.org/pair_srp.html) command in conjunction with these pair\n > styles. It is a soft segmental repulsive potential (SRP) that can\n > prevent DPD polymer chains from crossing each other. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The virial calculation for pressure when using these pair styles\n > includes all the components of force listed above, including the\n > random force. Since the random force depends on random numbers,\n > everything that changes the order of atoms in the neighbor list\n > (e.g. different number of MPI ranks or a different neighbor list\n > skin distance) will also change the sequence in which the random\n > numbers are applied and thus the individual forces and therefore\n > also the virial/pressure. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For more consistent time integration and force computation you may\n > consider using [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) instead of [fix > nve ](https://docs.lammps.org/fix_nve.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n\n**Mixing, shift, table, tail correction, restart, rRESPA info** :\n\nThe style *dpd/ext* does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy due to the conservative \\(\\mathbf{f}^C\\)\nterm is already shifted to be zero at the cutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthe style *dpd/ext*.\n\nThe style *dpd/ext* does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to\nenergy and pressure.\n\nThe pair styles can only be used via the pair keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, and *outer* keywords.\n\nThe style *dpd/ext/tstat* can ramp its target temperature over multiple\nruns, using the start and stop keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\n----------\n\n**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Junghans)** Junghans, Praprotnik and Kremer, Soft Matter 4, 156, 1119-1128 (2008). \n ", + "restrictions": "These styles are part of the DPD-BASIC package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent for style *dpd/ext* simulations since particles move rapidly\nand can overlap by large amounts. If this setting yields a non-zero\nnumber of \\say{dangerous} reneighborings (printed at the end of a\nsimulation), you should experiment with forcing reneighboring more often\nand see if system energies/trajectories change.\n\nThe pair styles require to use the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThe pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", + "related": "[pair_style dpd ](https://docs.lammps.org/pair_dpd.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[pair_style srp ](https://docs.lammps.org/pair_srp.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html).\n\n**Default:** none\n\n----------\n\n.. _Groot:\n\n**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997).\n\n.. _Junghans:\n\n**(Junghans)** Junghans, Praprotnik and Kremer, Soft Matter 4, 156, 1119-1128 (2008).\n" }, { "command": [ - "compute chunk/spread/atom" + "compute reduce/chunk" ], "syntax": [ - "compute ID group-ID chunk/spread/atom chunkID input1 input2 ..." + "compute ID group-ID reduce/chunk chunkID mode input1 input2 ..." ], "args": [ [ @@ -18922,7 +18297,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "chunk/spread/atom", + "arg": "reduce/chunk", "type": 1, "choices": [] }, @@ -18932,157 +18307,105 @@ export const command_docs = [ "choices": [] }, { - "arg": "input1", - "type": 2, - "choices": [] - }, - { - "arg": "input2", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* chunk/spread/atom = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N] \n *      c_ID = global vector calculated by a compute with ID \n *      c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) \n *      f_ID = global vector calculated by a fix with ID \n *      f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) \n", - "examples": "\n```lmps\ncompute 1 all chunk/spread/atom mychunk c_com[*] c_gyration\n```\n", - "html_filename": "compute_chunk_spread_atom.html", - "short_description": "Define a calculation that \"spreads\" one or more per-chunk values to\neach atom in the chunk", - "description": "Define a calculation that \"spreads\" one or more per-chunk values to\neach atom in the chunk. This can be useful in several scenarios:\n\n* For creating a [dump file ](https://docs.lammps.org/dump.html) where each atom lists info about\n the chunk it is in, e.g. for post-processing purposes.\n* To access chunk value in [atom-style variables ](https://docs.lammps.org/variable.html) that\n need info about the chunk each atom is in.\n* To use the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to spatially\n average per-chunk values calculated by a per-chunk compute.\n\nExamples are given below.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFor inputs that are computes, they must be a compute that calculates\nper-chunk values. These are computes whose style names end in\n\"/chunk\".\n\nFor inputs that are fixes, they should be a fix that calculates\nper-chunk values. For example, [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) or\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) (assuming it is time-averaging\nper-chunk data).\n\nFor each atom, this compute accesses its chunk ID from the specified\n*chunkID* compute, then accesses the per-chunk value in each input.\nThose values are copied to this compute to become the output for that\natom.\n\nThe values generated by this compute will be 0.0 for atoms not in the\nspecified compute group *group-ID* . They will also be 0.0 if the atom\nis not in a chunk, as assigned by the *chunkID* compute. They will\nalso be 0.0 if the current chunk ID for the atom is out-of-bounds with\nrespect to the number of chunks stored by a particular input compute\nor fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check that a compute or fix which calculates\n > per-chunk values uses the same definition of chunks as this compute.\n > It's up to you to be consistent. Likewise, for a fix input, LAMMPS\n > does not check that it is per-chunk data. It only checks that the fix\n > produces a global vector or array. \n > \n\n----------\n\nEach listed input is operated on independently.\n\nIf a bracketed index I is used, it can be specified using a wildcard\nasterisk with the index to effectively specify multiple values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the number of\ncolumns in the array, then an asterisk with no numeric values means\nall indices from 1 to N. A leading asterisk means all indices from 1\nto n (inclusive). A trailing asterisk means all indices from n to N\n(inclusive). A middle asterisk means all indices from m to n\n(inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. E.g. these 2 compute chunk/spread/atom\ncommands are equivalent, since the [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) command creates a per-atom array\nwith 3 columns:\n\n```lmps\ncompute com all com/chunk mychunk\ncompute 10 all chunk/spread/atom mychunk c_com[*]\ncompute 10 all chunk/spread/atom mychunk c_com[1] c_com[2] c_com[3]\n```\n----------\n\nHere is an example of writing a dump file the with the center-of-mass\n(COM) for the chunk each atom is in. The commands below can be added\nto the bench/in.chain script.\n\n```lmps\ncompute cmol all chunk/atom molecule\ncompute com all com/chunk cmol\ncompute comchunk all chunk/spread/atom cmol c_com[*]\ndump 1 all custom 50 tmp.dump id mol type x y z c_comchunk[*]\ndump_modify 1 sort id\n```\nThe same per-chunk data for each atom could be used to define per-atom\nforces for the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command. In this\nexample the forces act to pull atoms of an extended polymer chain\ntowards its COM in an attractive manner.\n\n```lmps\ncompute prop all property/atom xu yu zu\nvariable k equal 0.1\nvariable fx atom v_k*(c_comchunk[1]-c_prop[1])\nvariable fy atom v_k*(c_comchunk[2]-c_prop[2])\nvariable fz atom v_k*(c_comchunk[3]-c_prop[3])\nfix 3 all addforce v_fx v_fy v_fz\n```\nNote that [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) is used\nto generate unwrapped coordinates for use in the per-atom force\ncalculation, so that the effect of periodic boundaries is accounted\nfor properly.\n\nOver time this applied force could shrink each polymer chain's radius\nof gyration in a polymer mixture simulation. Here is output from the\nbench/in.chain script. Thermo output is shown for 1000 steps, where\nthe last column is the average radius of gyration over all 320 chains\nin the 32000 atom system:\n\n```\ncompute gyr all gyration/chunk cmol\nvariable ave equal ave(c_gyr)\nthermo_style custom step etotal press v_ave\n\n0 22.394765 4.6721833 5.128278\n100 22.445002 4.8166709 5.0348372\n200 22.500128 4.8790392 4.9364875\n300 22.534686 4.9183766 4.8590693\n400 22.557196 4.9492211 4.7937849\n500 22.571017 4.9161853 4.7412008\n600 22.573944 5.0229708 4.6931243\n700 22.581804 5.0541301 4.6440647\n800 22.584683 4.9691734 4.6000016\n900 22.59128 5.0247538 4.5611513\n1000 22.586832 4.94697 4.5238362\n```\n----------\n\nHere is an example for using one set of chunks, defined for molecules,\nto compute the dipole moment vector for each chunk. E.g. for water\nmolecules. Then spreading those values to each atom in each chunk.\nThen defining a second set of chunks based on spatial bins. And\nfinally, using the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to\ncalculate an average dipole moment vector per spatial bin.\n\n```lmps\ncompute cmol all chunk/atom molecule\ncompute dipole all dipole/chunk cmol\ncompute spread all chunk/spread/atom cmol c_dipole[1] c_dipole[2] c_dipole[3]\ncompute cspatial all chunk/atom bin/1d z lower 0.1 units reduced\nfix ave all ave/chunk 100 10 1000 cspatial c_spread[*]\n```\nNote that the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command requires\nper-atom values as input. That is why the compute chunk/spread/atom\ncommand is used to assign per-chunk values to each atom in the chunk.\nIf a molecule straddles bin boundaries, each of its atoms contributes\nin a weighted manner to the average dipole moment of the spatial bin\nit is in.\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom vector or array, which can be\naccessed by any command that uses per-atom values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe output is a per-atom vector if a single input value is specified,\notherwise a per-atom array is output. The number of columns in the\narray is the number of inputs provided. The per-atom values for the\nvector or each column of the array will be in whatever\n[units ](https://docs.lammps.org/units.html) the corresponding input value is in.\n\nThe vector or array values are \"intensive\".\n", - "restrictions": " none\n", - "related": "[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [compute reduce/chunk ](https://docs.lammps.org/compute_reduce_chunk.html)\n" -}, -{ - "command": [ - "compute smd/hourglass/error" - ], - "syntax": [ - "compute ID group-ID smd/hourglass/error" - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, - "choices": [] + "arg": "max", + "type": 3, + "choices": [ + "sum", + "min", + "max" + ] }, { - "arg": "ID", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "input2", "type": 2, "choices": [] - }, - { - "arg": "smd/hourglass/error", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/hourglass/error = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/hourglass/error\n```\n", - "html_filename": "compute_smd_hourglass_error.html", - "short_description": "Define a computation which outputs the error of the approximated\nrelative separation with respect to the actual relative separation of\nthe particles i and j", - "description": "Define a computation which outputs the error of the approximated\nrelative separation with respect to the actual relative separation of\nthe particles i and j. Ideally, if the deformation gradient is exact,\nand there exists a unique mapping between all particles' positions\nwithin the neighborhood of the central node and the deformation\ngradient, the approximated relative separation will coincide with the\nactual relative separation of the particles i and j in the deformed\nconfiguration. This compute is only really useful for debugging the\nhourglass control mechanism which is part of the Total-Lagrangian SPH\npair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will are dimensionless. See\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\ntlsph pair style.\n", - "related": "[smd/tlsph_defgrad ](https://docs.lammps.org/compute_smd_tlsph_defgrad.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* reduce/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* mode = sum or min or max\n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N], v_ID \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n", + "examples": "\n```lmps\ncompute 1 all reduce/chunk mychunk min c_cluster\n```\n", + "html_filename": "compute_reduce_chunk.html", + "short_description": "Define a calculation that reduces one or more per-atom vectors into\nper-chunk values", + "description": "Define a calculation that reduces one or more per-atom vectors into\nper-chunk values. This can be useful for diagnostic output. Or when\nused in conjunction with the [compute chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html) command it can be\nused to create per-atom values that induce a new set of chunks with a\nsecond [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. An\nexample is given below.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFor each atom, this compute accesses its chunk ID from the specified\n*chunkID* compute. The per-atom value from an input contributes\nto a per-chunk value corresponding the the chunk ID.\n\nThe reduction operation is specified by the *mode* setting and is\nperformed over all the per-atom values from the atoms in each chunk.\nThe *sum* option adds the pre-atom values to a per-chunk total. The\n*min* or *max* options find the minimum or maximum value of the\nper-atom values for each chunk.\n\nNote that only atoms in the specified group contribute to the\nreduction operation. If the *chunkID* compute returns a 0 for the\nchunk ID of an atom (i.e., the atom is not in a chunk defined by the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command), that atom will\nalso not contribute to the reduction operation. An input that is a\ncompute or fix may define its own group which affects the quantities\nit returns. For example, a compute with return a zero value for atoms\nthat are not in the group specified for that compute.\n\nEach listed input is operated on independently. Each input can be the\nresult of a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation\nof an atom-style [variable ](https://docs.lammps.org/variable.html).\n\nNote that for values from a compute or fix, the bracketed index I can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from n to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute reduce/chunk\ncommands are equivalent, since the\n[compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command creates a per-atom\narray with 3 columns:\n\n```lmps\ncompute prop all property/atom vx vy vz\ncompute 10 all reduce/chunk mychunk max c_prop[*]\ncompute 10 all reduce/chunk mychunk max c_prop[1] c_prop[2] c_prop[3]\n```\n----------\n\nHere is an example of using this compute, in conjunction with the\ncompute chunk/spread/atom command to identify self-assembled micelles.\nThe commands below can be added to the examples/in.micelle script.\n\nImagine a collection of polymer chains or small molecules with\nhydrophobic end groups. All the hydrophobic (HP) atoms are assigned\nto a group called \"phobic\".\n\nThese commands will assign a unique cluster ID to all HP atoms within\na specified distance of each other. A cluster will contain all HP\natoms in a single molecule, but also the HP atoms in nearby molecules\n(e.g., molecules that have clumped to form a micelle due to the\nattraction induced by the hydrophobicity). The output of the\nchunk/reduce command will be a cluster ID per chunk (molecule).\nMolecules with the same cluster ID are in the same micelle.\n\n```lmps\ngroup phobic type 4 # specific to in.micelle model\ncompute cluster phobic cluster/atom 2.0\ncompute cmol all chunk/atom molecule\ncompute reduce phobic reduce/chunk cmol min c_cluster\n```\nThis per-chunk info could be output in at least two ways:\n\n```lmps\nfix 10 all ave/time 1000 1 1000 c_reduce file tmp.phobic mode vector\n\ncompute spread all chunk/spread/atom cmol c_reduce\ndump 1 all custom 1000 tmp.dump id type mol x y z c_cluster c_spread\ndump_modify 1 sort id\n```\nIn the first case, each snapshot in the tmp.phobic file will contain\none line per molecule. Molecules with the same value are in the same\nmicelle. In the second case each dump snapshot contains all atoms,\neach with a final field with the cluster ID of the micelle that the HP\natoms of that atom's molecule belong to.\n\nThe result from compute chunk/spread/atom can be used to define a new\nset of chunks, where all the atoms in all the molecules in the same\nmicelle are assigned to the same chunk (i.e., one chunk per micelle).\n\n```lmps\ncompute micelle all chunk/atom c_spread compress yes\n```\nFurther analysis on a per-micelle basis can now be performed using any\nof the per-chunk computes listed on the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc page (e.g., count the number of atoms in each micelle, calculate\nits center or mass, shape/moments of inertia, and radius of gyration).\n\n```lmps\ncompute prop all property/chunk micelle count\nfix 20 all ave/time 1000 1 1000 c_prop file tmp.micelle mode vector\n```\nEach snapshot in the tmp.micelle file will have one line per micelle\nwith its count of atoms, plus a first line for a chunk with all the\nsolvent atoms. By the time 50000 steps have elapsed, there are a\nhandful of large micelles.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector if a single input value is\nspecified, otherwise a global array is output. The number of columns\nin the array is the number of inputs provided. The length of the\nvector or the number of vector elements or array rows = the number of\nchunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The vector or array can\nbe accessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-atom values for the vector or each column of the array will be\nin whatever [units ](https://docs.lammps.org/units.html) the corresponding input value is in.\nThe vector or array values are \"intensive\".\n", + "restrictions": " none\n", + "related": "[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html), [compute chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html)\n" }, { "command": [ - "fix_modify AtC mesh create_faceset plane" + "fix gravity", + "fix gravity/omp", + "fix gravity/kk" ], "syntax": [ - "fix_modify mesh create_faceset plane [units]" + "fix ID group gravity magnitude style args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "create_faceset", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "group", "type": 2, "choices": [] }, { - "arg": "plane", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "gravity", "type": 3, "choices": [ - "x", - "y", - "z" + "gravity", + "gravity/omp", + "gravity/kk" ] }, { - "arg": "", + "arg": "magnitude", "type": 2, "choices": [] }, { - "arg": "", + "arg": "vector", "type": 3, "choices": [ - "x", - "y", - "z" + "chute", + "spherical", + "gradient", + "vector" ] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "[units]", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_faceset = name of the AtC sub-command\n* id = id to assign to the collection of FE faces\n* plane = use plane to define faceset\n* ,, = plane is specified as the x|y|z=val1 plane bounded by the segments x|y|z = [lval2,uval2]\n* units = option to specify real as opposed to lattice units \n", - "examples": "\n```lmps\nfix_modify AtC mesh create_faceset xyplane plane y 0 x -4 0\n```\n", - "html_filename": "atc_mesh_create_faceset_plane.html", - "short_description": "Command to assign an id to a set of FE faces", - "description": "Command to assign an id to a set of FE faces.\n", - "restrictions": "Only viable for rectangular grids.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n" + "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gravity = style name of this fix command\n* magnitude = size of acceleration (force/mass units)\n* magnitude can be a variable (see below)\n* style = chute or spherical or gradient or vector \n *        chute args = angle \n         angle = angle in +x away from -z or -y axis in 3d/2d (in degrees) \n         angle can be a variable (see below) \n *        spherical args = phi theta \n         phi = azimuthal angle from +x axis (in degrees) \n         theta = angle from +z or +y axis in 3d/2d (in degrees) \n         phi or theta can be a variable (see below) \n *        vector args = x y z \n         x y z = vector direction to apply the acceleration \n         x or y or z can be a variable (see below) \n", + "examples": "\n```lmps\nfix 1 all gravity 1.0 chute 24.0\nfix 1 all gravity v_increase chute 24.0\nfix 1 all gravity 1.0 spherical 0.0 -180.0\nfix 1 all gravity 10.0 spherical v_phi v_theta\nfix 1 all gravity 100.0 vector 1 1 0\n```\n", + "html_filename": "fix_gravity.html", + "short_description": "Impose an additional acceleration on each particle in the group", + "description": "Impose an additional acceleration on each particle in the group. This\nfix is typically used with granular systems to include a \"gravity\"\nterm acting on the macroscopic particles. More generally, it can\nrepresent any kind of driving field, e.g. a pressure gradient inducing\na Poiseuille flow in a fluid. Note that this fix operates differently\nthan the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command. The addforce fix\nadds the same force to each atom, independent of its mass. This\ncommand imparts the same acceleration to each atom (force/mass).\n\nThe *magnitude* of the acceleration is specified in force/mass units.\nFor granular systems (LJ units) this is typically 1.0. See the\n[units ](https://docs.lammps.org/units.html) command for details.\n\nStyle *chute* is typically used for simulations of chute flow where\nthe specified *angle* is the chute angle, with flow occurring in the +x\ndirection. For 3d systems, the tilt is away from the z axis; for 2d\nsystems, the tilt is away from the y axis.\n\nStyle *spherical* allows an arbitrary 3d direction to be specified for\nthe acceleration vector. *Phi* and *theta* are defined in the usual\nspherical coordinates. Thus for acceleration acting in the -z\ndirection, *theta* would be 180.0 (or -180.0). *Theta* = 90.0 and\n*phi* = -90.0 would mean acceleration acts in the -y direction. For\n2d systems, *phi* is ignored and *theta* is an angle in the xy plane\nwhere *theta* = 0.0 is the y-axis.\n\nStyle *vector* imposes an acceleration in the vector direction given\nby (x,y,z). Only the direction of the vector is important; it's\nlength is ignored. For 2d systems, the *z* component is ignored.\n\nAny of the quantities *magnitude*, *angle*, *phi*, *theta*, *x*, *y*,\n*z* which define the gravitational magnitude and direction, can be\nspecified as an equal-style [variable ](https://docs.lammps.org/variable.html). If the value is\na variable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated each\ntimestep, and its value used to determine the quantity. You should\nensure that the variable calculates a result in the appropriate units,\ne.g. force/mass or degrees.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent gravitational\nfield.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the gravitational potential energy of the system to\nthe global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). This scalar is the\ngravitational potential energy of the particles in the defined field,\nnamely mass \\* (g dot x) for each particles, where x and mass are the\nparticles position and mass, and g is the gravitational field. The\nscalar value calculated by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[atom_style sphere ](https://docs.lammps.org/atom_style.html), [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" }, { "command": [ - "compute rheo/property/atom" + "compute" ], "syntax": [ - "compute ID group-ID rheo/property/atom input1 input2 ..." + "compute ID group-ID style args" ], "args": [ [ @@ -19102,37 +18425,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "rheo/property/atom", - "type": 1, - "choices": [] - }, - { - "arg": "input1", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rheo/property/atom = style name of this compute command\n* input = one or more atom attributes \n *        possible attributes = phase, surface, surface/r, \n         surface/divr, surface/n/a, coordination, \n         shift/v/a, energy, temperature, heatflow, \n         conductivity, cv, viscosity, pressure, rho, \n         grad/v/ab, stress/v/ab, stress/t/ab, nbond/shell \n         phase = atom phase state \n         surface = atom surface status \n         surface/r = atom distance from the surface \n         surface/divr = divergence of position at atom position \n         surface/n/a = a-component of surface normal vector \n         coordination = coordination number \n         shift/v/a = a-component of atom shifting velocity \n         energy = atom energy \n         temperature = atom temperature \n         heatflow = atom heat flow \n         conductivity = atom conductivity \n         cv = atom specific heat \n         viscosity = atom viscosity \n         pressure = atom pressure \n         rho = atom density \n         grad/v/ab = ab-component of atom velocity gradient tensor \n         stress/v/ab = ab-component of atom viscous stress tensor \n         stress/t/ab = ab-component of atom total stress tensor (pressure and viscous) \n         nbond/shell = number of oxide bonds \n", - "examples": "\n```lmps\ncompute 1 all rheo/property/atom phase surface/r surface/n/* pressure\ncompute 2 all rheo/property/atom shift/v/x grad/v/xx stress/v/*\n```\n", - "html_filename": "compute_rheo_property_atom.html", - "short_description": "\nDefine a computation that stores atom attributes specific to the RHEO\npackage for each atom in the group", - "description": "\nDefine a computation that stores atom attributes specific to the RHEO\npackage for each atom in the group. This is useful so that the values\ncan be used by other [output commands ](https://docs.lammps.org/Howto_output.html) that take\ncomputes as inputs. See for example, the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), and\n[atom-style variable ](https://docs.lammps.org/variable.html) commands.\n\nFor vector attributes, e.g. *shift/v/*(\\alpha\\), one must specify\n\\(\\alpha\\) as the *x*, *y*, or *z* component, e.g. *shift/v/x*.\nAlternatively, a wild card \\* will include all components, *x* and *y* in\n2D or *x*, *y*, and *z* in 3D.\n\nFor tensor attributes, e.g. *grad/v/*(\\alpha \\beta\\), one must specify\nboth \\(\\alpha\\) and \\(\\beta\\) as *x*, *y*, or *z*, e.g. *grad/v/xy*.\nAlternatively, a wild card \\* will include all components. In 2D, this\nincludes *xx*, *xy*, *yx*, and *yy*. In 3D, this includes *xx*, *xy*, *xz*,\n*yx*, *yy*, *yz*, *zx*, *zy*, and *zz*.\n\nMany properties require their respective fixes, listed below in related\ncommands, be defined. For instance, the *viscosity* attribute is the\nviscosity of a particle calculated by\n[fix rheo/viscous ](https://docs.lammps.org/fix_rheo_viscosity.html). The meaning of less obvious\nproperties is described below.\n\nThe *phase* property indicates whether the particle is in a fluid state,\na value of 0, or a solid state, a value of 1.\n\nThe *surface* property indicates the surface designation produced by\nthe *interface/reconstruct* option of [fix rheo ](https://docs.lammps.org/fix_rheo.html). Bulk\nparticles have a value of 0, surface particles have a value of 1, and\nsplash particles have a value of 2. The *surface/r* property is the\ndistance from the surface, up to the kernel cutoff length. Surface particles\nhave a value of 0. The *surface/n/*(\\alpha\\) properties are the\ncomponents of the surface normal vector.\n\nThe *shift/v/*(\\alpha\\) properties are the components of the shifting\nvelocity produced by the *shift* option of [fix rheo ](https://docs.lammps.org/fix_rheo.html).\n\nThe *nbond/shell* property is the number of shell bonds that have been\nactivated from [bond style rheo/shell ](https://docs.lammps.org/bond_rheo_shell.html).\n\nThe values are stored in a per-atom vector or array as discussed\nbelow. Zeroes are stored for atoms not in the specified group or for\nquantities that are not defined for a particular particle in the group\n\n #### Output info\n\nThis compute calculates a per-atom vector or per-atom array depending\non the number of input values. Generally, if a single input is specified,\na per-atom vector is produced. If two or more inputs are specified, a\nper-atom array is produced where the number of columns = the number of\ninputs. However, if a wild card \\* is used for a vector or tensor, then\nthe number of inputs is considered to be incremented by the dimension or\nthe dimension squared, respectively. The vector or array can be accessed\nby any command that uses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ncorresponding attribute is in (e.g., density units for *rho*).\n", + "parameters": "* ID = user-assigned name for the computation\n* group-ID = ID of the group of atoms to perform the computation on\n* style = one of a list of possible style names (see below)\n* args = arguments used by a particular style \n", + "examples": "\n```lmps\ncompute 1 all temp\ncompute newtemp flow temp/partial 1 1 0\ncompute 3 all ke/atom\n```\n", + "html_filename": "compute.html", + "short_description": "Define a diagnostic computation that will be performed on a group of\natoms", + "description": "Define a diagnostic computation that will be performed on a group of\natoms. Quantities calculated by a compute are instantaneous values,\nmeaning they are calculated from information about atoms on the\ncurrent timestep or iteration, though internally a compute may store\nsome information about a previous state of the system. Defining a\ncompute does not perform the computation. Instead computes are\ninvoked by other LAMMPS commands as needed (e.g., to calculate a\ntemperature needed for a thermostat fix or to generate thermodynamic\nor dump file output). See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor a summary of various LAMMPS output options, many of which involve\ncomputes.\n\nThe ID of a compute can only contain alphanumeric characters and\nunderscores.\n\n----------\n\nComputes calculate and store any of four *styles* of quantities:\nglobal, per-atom, local, or per-grid.\n\nA global quantity is one or more system-wide values, e.g. the\ntemperature of the system. A per-atom quantity is one or more values\nper atom, e.g. the kinetic energy of each atom. Per-atom values are\nset to 0.0 for atoms not in the specified compute group. Local\nquantities are calculated by each processor based on the atoms it\nowns, but there may be zero or more per atom, e.g. a list of bond\ndistances. Per-grid quantities are calculated on a regular 2d or 3d\ngrid which overlays a 2d or 3d simulation domain. The grid points and\nthe data they store are distributed across processors; each processor\nowns the grid points which fall within its subdomain.\n\nAs a general rule of thumb, computes that produce per-atom quantities\nhave the word \"atom\" at the end of their style, e.g. *ke/atom* .\nComputes that produce local quantities have the word \"local\" at the\nend of their style, e.g. *bond/local* . Computes that produce\nper-grid quantities have the word \"grid\" at the end of their style,\ne.g. *property/grid* . And styles with neither \"atom\" or \"local\" or\n\"grid\" at the end of their style name produce global quantities.\n\nGlobal, per-atom, local, and per-grid quantities can also be of three\n*kinds*: a single scalar value (global only), a vector of values, or a\n2d array of values. For per-atom, local, and per-grid quantities, a\n\"vector\" means a single value for each atom, each local entity\n(e.g. bond), or grid cell. Likewise an \"array\", means multiple values\nfor each atom, each local entity, or each grid cell.\n\nNote that a single compute can produce any combination of global,\nper-atom, local, or per-grid values. Likewise it can produce any\ncombination of scalar, vector, or array output for each style. The\nexception is that for per-atom, local, and per-grid output, either a\nvector or array can be produced, but not both. The doc page for each\ncompute explains the values it produces.\n\nWhen a compute output is accessed by another input script command it\nis referenced via the following bracket notation, where ID is the ID\nof the compute:\n\n| | |\n|---|---|\n| c_ID | entire scalar, vector, or array |\n| c_ID[I] | one element of vector, one column of array |\n| c_ID[I][J] | one element of array |\n\nIn other words, using one bracket reduces the dimension of the\nquantity once (vector \\(\\to\\) scalar, array \\(\\to\\) vector).\nUsing two brackets reduces the dimension twice (array \\(\\to\\)\nscalar). Thus, for example, a command that uses global scalar compute\nvalues as input can also process elements of a vector or array.\nDepending on the command, this can either be done directly using the\nsyntax in the table, or by first defining a [variable ](https://docs.lammps.org/variable.html)\nof the appropriate style to store the quantity, then using the\nvariable as an input to the command.\n\nNote that commands and [variables ](https://docs.lammps.org/variable.html) which take compute\noutputs as input typically do not allow for all styles and kinds of\ndata (e.g., a command may require global but not per-atom values, or\nit may require a vector of values, not a scalar). This means there is\ntypically no ambiguity about referring to a compute output as c_ID\neven if it produces, for example, both a scalar and vector. The doc\npages for various commands explain the details, including how any\nambiguities are resolved.\n\n----------\n\nIn LAMMPS, the values generated by a compute can be used in several\nways:\n\n* The results of computes that calculate a global temperature or\n pressure can be used by fixes that do thermostatting or barostatting\n or when atom velocities are created.\n* Global values can be output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) or [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n Or the values can be referenced in a [variable equal ](https://docs.lammps.org/variable.html) or\n [variable atom ](https://docs.lammps.org/variable.html) command.\n* Per-atom values can be output via the [dump custom ](https://docs.lammps.org/dump.html) command.\n Or they can be time-averaged via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\n command or reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command. Or the per-atom values can be referenced in an [atom-style variable ](https://docs.lammps.org/variable.html).\n* Local values can be reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command, or histogrammed by the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command, or output by the [dump local ](https://docs.lammps.org/dump.html) command.\n\nThe results of computes that calculate global quantities can be either\n\"intensive\" or \"extensive\" values. Intensive means the value is\nindependent of the number of atoms in the simulation\n(e.g., temperature). Extensive means the value scales with the number of\natoms in the simulation (e.g., total rotational kinetic energy).\n[Thermodynamic output ](https://docs.lammps.org/thermo_style.html) will normalize extensive\nvalues by the number of atoms in the system, depending on the\n\"thermo_modify norm\" setting. It will not normalize intensive values.\nIf a compute value is accessed in another way (e.g., by a\n[variable ](https://docs.lammps.org/variable.html)), you may want to know whether it is an\nintensive or extensive value. See the page for individual\ncomputes for further info.\n\n----------\n\nLAMMPS creates its own computes internally for thermodynamic output.\nThree computes are always created, named \"thermo_temp\",\n\"thermo_press\", and \"thermo_pe\", as if these commands had been invoked\nin the input script:\n\n```lmps\ncompute thermo_temp all temp\ncompute thermo_press all pressure thermo_temp\ncompute thermo_pe all pe\n```\nAdditional computes for other quantities are created if the thermo\nstyle requires it. See the documentation for the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command.\n\nFixes that calculate temperature or pressure, i.e. for thermostatting\nor barostatting, may also create computes. These are discussed in the\ndocumentation for specific [fix ](https://docs.lammps.org/fix.html) commands.\n\nIn all these cases, the default computes LAMMPS creates can be\nreplaced by computes defined by the user in the input script, as\ndescribed by the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) and [fix modify ](https://docs.lammps.org/fix_modify.html) commands.\n\nProperties of either a default or user-defined compute can be modified\nvia the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nComputes can be deleted with the [uncompute ](https://docs.lammps.org/uncompute.html) command.\n\nCode for new computes can be added to LAMMPS; see the\n[Modify ](https://docs.lammps.org/Modify.html) page for details. The results of their\ncalculations accessed in the various ways described above.\n\n----------\n\nEach compute style has its own page which describes its arguments\nand what it does. Here is an alphabetic list of compute styles\navailable in LAMMPS. They are also listed in more compact form on the\n[Commands compute ](https://docs.lammps.org/Commands_compute.html) doc page.\n\nThere are also additional accelerated compute styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands compute ](https://docs.lammps.org/Commands_compute.html) page are followed by one or more of\n(g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [ackland/atom ](https://docs.lammps.org/compute_ackland_atom.html) - determines the local lattice structure based on the Ackland formulation\n* [adf ](https://docs.lammps.org/compute_adf.html) - angular distribution function of triples of atoms\n* [aggregate/atom ](https://docs.lammps.org/compute_cluster_atom.html) - aggregate ID for each atom\n* [angle ](https://docs.lammps.org/compute_angle.html) - energy of each angle sub-style\n* [angle/local ](https://docs.lammps.org/compute_angle_local.html) - theta and energy of each angle\n* [angmom/chunk ](https://docs.lammps.org/compute_angmom_chunk.html) - angular momentum for each chunk\n* [ave/sphere/atom ](https://docs.lammps.org/compute_ave_sphere_atom.html) - compute local density and temperature around each atom\n* [basal/atom ](https://docs.lammps.org/compute_basal_atom.html) - calculates the hexagonal close-packed \"c\" lattice vector of each atom\n* [body/local ](https://docs.lammps.org/compute_body_local.html) - attributes of body sub-particles\n* [bond ](https://docs.lammps.org/compute_bond.html) - energy of each bond sub-style\n* [bond/local ](https://docs.lammps.org/compute_bond_local.html) - distance and energy of each bond\n* [born/matrix ](https://docs.lammps.org/compute_born_matrix.html) - second derivative or potential with respect to strain\n* [centro/atom ](https://docs.lammps.org/compute_centro_atom.html) - centro-symmetry parameter for each atom\n* [centroid/stress/atom ](https://docs.lammps.org/compute_stress_atom.html) - centroid based stress tensor for each atom\n* [chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) - assign chunk IDs to each atom\n* [chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html) - spreads chunk values to each atom in chunk\n* [cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html) - cluster ID for each atom\n* [cna/atom ](https://docs.lammps.org/compute_cna_atom.html) - common neighbor analysis (CNA) for each atom\n* [cnp/atom ](https://docs.lammps.org/compute_cnp_atom.html) - common neighborhood parameter (CNP) for each atom\n* [com ](https://docs.lammps.org/compute_com.html) - center of mass of group of atoms\n* [com/chunk ](https://docs.lammps.org/compute_com_chunk.html) - center of mass for each chunk\n* [contact/atom ](https://docs.lammps.org/compute_contact_atom.html) - contact count for each spherical particle\n* [coord/atom ](https://docs.lammps.org/compute_coord_atom.html) - coordination number for each atom\n* [count/type ](https://docs.lammps.org/compute_count_type.html) - count of atoms or bonds by type\n* [damage/atom ](https://docs.lammps.org/compute_damage_atom.html) - Peridynamic damage for each atom\n* [dihedral ](https://docs.lammps.org/compute_dihedral.html) - energy of each dihedral sub-style\n* [dihedral/local ](https://docs.lammps.org/compute_dihedral_local.html) - angle of each dihedral\n* [dilatation/atom ](https://docs.lammps.org/compute_dilatation_atom.html) - Peridynamic dilatation for each atom\n* [dipole ](https://docs.lammps.org/compute_dipole.html) - dipole vector and total dipole\n* [dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html) - dipole vector and total dipole for each chunk\n* [dipole/tip4p ](https://docs.lammps.org/compute_dipole.html) - dipole vector and total dipole with TIP4P pair style\n* [dipole/tip4p/chunk ](https://docs.lammps.org/compute_dipole_chunk.html) - dipole vector and total dipole for each chunk with TIP4P pair style\n* [displace/atom ](https://docs.lammps.org/compute_displace_atom.html) - displacement of each atom\n* [dpd ](https://docs.lammps.org/compute_dpd.html) - total values of internal conductive energy, internal mechanical energy, chemical energy, and harmonic average of internal temperature\n* [dpd/atom ](https://docs.lammps.org/compute_dpd_atom.html) - per-particle values of internal conductive energy, internal mechanical energy, chemical energy, and internal temperature\n* [edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html) - per-atom temperature for each eDPD particle in a group\n* [efield/atom ](https://docs.lammps.org/compute_efield_atom.html) - electric field at each atom\n* [efield/wolf/atom ](https://docs.lammps.org/compute_efield_wolf_atom.html) - electric field at each atom\n* [entropy/atom ](https://docs.lammps.org/compute_entropy_atom.html) - pair entropy fingerprint of each atom\n* [erotate/asphere ](https://docs.lammps.org/compute_erotate_asphere.html) - rotational energy of aspherical particles\n* [erotate/rigid ](https://docs.lammps.org/compute_erotate_rigid.html) - rotational energy of rigid bodies\n* [erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html) - rotational energy of spherical particles\n* [erotate/sphere/atom ](https://docs.lammps.org/compute_erotate_sphere_atom.html) - rotational energy for each spherical particle\n* [event/displace ](https://docs.lammps.org/compute_event_displace.html) - detect event on atom displacement\n* [fabric ](https://docs.lammps.org/compute_fabric.html) - calculates fabric tensors from pair interactions\n* [fep ](https://docs.lammps.org/compute_fep.html) - compute free energies for alchemical transformation from perturbation theory\n* [fep/ta ](https://docs.lammps.org/compute_fep_ta.html) - compute free energies for a test area perturbation\n* [force/tally ](https://docs.lammps.org/compute_tally.html) - force between two groups of atoms via the tally callback mechanism\n* [fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html) - fragment ID for each atom\n* [global/atom ](https://docs.lammps.org/compute_global_atom.html) - assign global values to each atom from arrays of global values\n* [group/group ](https://docs.lammps.org/compute_group_group.html) - energy/force between two groups of atoms\n* [gyration ](https://docs.lammps.org/compute_gyration.html) - radius of gyration of group of atoms\n* [gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html) - radius of gyration for each chunk\n* [gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html) - shape parameters from gyration tensor\n* [gyration/shape/chunk ](https://docs.lammps.org/compute_gyration_shape_chunk.html) - shape parameters from gyration tensor for each chunk\n* [heat/flux ](https://docs.lammps.org/compute_heat_flux.html) - heat flux through a group of atoms\n* [heat/flux/tally ](https://docs.lammps.org/compute_tally.html) - heat flux through a group of atoms via the tally callback mechanism\n* [heat/flux/virial/tally ](https://docs.lammps.org/compute_tally.html) - virial heat flux between two groups via the tally callback mechanism\n* [hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html) - bond orientational order parameter q6\n* [hma ](https://docs.lammps.org/compute_hma.html) - harmonically mapped averaging for atomic crystals\n* [improper ](https://docs.lammps.org/compute_improper.html) - energy of each improper sub-style\n* [improper/local ](https://docs.lammps.org/compute_improper_local.html) - angle of each improper\n* [inertia/chunk ](https://docs.lammps.org/compute_inertia_chunk.html) - inertia tensor for each chunk\n* [ke ](https://docs.lammps.org/compute_ke.html) - translational kinetic energy\n* [ke/atom ](https://docs.lammps.org/compute_ke_atom.html) - kinetic energy for each atom\n* [ke/atom/eff ](https://docs.lammps.org/compute_ke_atom_eff.html) - per-atom translational and radial kinetic energy in the electron force field model\n* [ke/eff ](https://docs.lammps.org/compute_ke_eff.html) - kinetic energy of a group of nuclei and electrons in the electron force field model\n* [ke/rigid ](https://docs.lammps.org/compute_ke_rigid.html) - translational kinetic energy of rigid bodies\n* [composition/atom ](https://docs.lammps.org/compute_composition_atom.html) - local composition for each atom\n* [mliap ](https://docs.lammps.org/compute_mliap.html) - gradients of energy and forces with respect to model parameters and related quantities for training machine learning interatomic potentials\n* [momentum ](https://docs.lammps.org/compute_momentum.html) - translational momentum\n* [msd ](https://docs.lammps.org/compute_msd.html) - mean-squared displacement of group of atoms\n* [msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html) - mean-squared displacement for each chunk\n* [msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html) - MSD and non-Gaussian parameter of group of atoms\n* [nbond/atom ](https://docs.lammps.org/compute_nbond_atom.html) - calculates number of bonds per atom\n* [omega/chunk ](https://docs.lammps.org/compute_omega_chunk.html) - angular velocity for each chunk\n* [orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) - Steinhardt bond orientational order parameters Ql\n* [pace ](https://docs.lammps.org/compute_pace.html) - atomic cluster expansion descriptors and related quantities\n* [pair ](https://docs.lammps.org/compute_pair.html) - values computed by a pair style\n* [pair/local ](https://docs.lammps.org/compute_pair_local.html) - distance/energy/force of each pairwise interaction\n* [pe ](https://docs.lammps.org/compute_pe.html) - potential energy\n* [pe/atom ](https://docs.lammps.org/compute_pe_atom.html) - potential energy for each atom\n* [pe/mol/tally ](https://docs.lammps.org/compute_tally.html) - potential energy between two groups of atoms separated into intermolecular and intramolecular components via the tally callback mechanism\n* [pe/tally ](https://docs.lammps.org/compute_tally.html) - potential energy between two groups of atoms via the tally callback mechanism\n* [plasticity/atom ](https://docs.lammps.org/compute_plasticity_atom.html) - Peridynamic plasticity for each atom\n* [pod/atom ](https://docs.lammps.org/compute_pod_atom.html) - POD descriptors for each atom\n* [podd/atom ](https://docs.lammps.org/compute_pod_atom.html) - derivative of POD descriptors for each atom\n* [pod/local ](https://docs.lammps.org/compute_pod_atom.html) - local POD descriptors and their derivatives\n* [pod/global ](https://docs.lammps.org/compute_pod_atom.html) - global POD descriptors and their derivatives\n* [pressure ](https://docs.lammps.org/compute_pressure.html) - total pressure and pressure tensor\n* [pressure/alchemy ](https://docs.lammps.org/compute_pressure_alchemy.html) - mixed system total pressure and pressure tensor for [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) runs\n* [pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html) - pressure tensor in the reference frame of an applied flow field\n* [property/atom ](https://docs.lammps.org/compute_property_atom.html) - convert atom attributes to per-atom vectors/arrays\n* [property/chunk ](https://docs.lammps.org/compute_property_chunk.html) - extract various per-chunk attributes\n* [property/grid ](https://docs.lammps.org/compute_property_grid.html) - convert per-grid attributes to per-grid vectors/arrays\n* [property/local ](https://docs.lammps.org/compute_property_local.html) - convert local attributes to local vectors/arrays\n* [ptm/atom ](https://docs.lammps.org/compute_ptm_atom.html) - determines the local lattice structure based on the Polyhedral Template Matching method\n* [rattlers/atom ](https://docs.lammps.org/compute_rattlers_atom.html) - identify under-coordinated rattler atoms\n* [rdf ](https://docs.lammps.org/compute_rdf.html) - radial distribution function \\(g(r)\\) histogram of group of atoms\n* [reaxff/atom ](https://docs.lammps.org/compute_reaxff_atom.html) - extract ReaxFF bond information\n* [reduce ](https://docs.lammps.org/compute_reduce.html) - combine per-atom quantities into a single global value\n* [reduce/chunk ](https://docs.lammps.org/compute_reduce_chunk.html) - reduce per-atom quantities within each chunk\n* [reduce/region ](https://docs.lammps.org/compute_reduce.html) - same as compute reduce, within a region\n* [rigid/local ](https://docs.lammps.org/compute_rigid_local.html) - extract rigid body attributes\n* [saed ](https://docs.lammps.org/compute_saed.html) - electron diffraction intensity on a mesh of reciprocal lattice nodes\n* [slcsa/atom ](https://docs.lammps.org/compute_slcsa_atom.html) - perform Supervised Learning Crystal Structure Analysis (SL-CSA)\n* [slice ](https://docs.lammps.org/compute_slice.html) - extract values from global vector or array\n* [smd/contact/radius ](https://docs.lammps.org/compute_smd_contact_radius.html) - contact radius for Smooth Mach Dynamics\n* [smd/damage ](https://docs.lammps.org/compute_smd_damage.html) - damage status of SPH particles in Smooth Mach Dynamics\n* [smd/hourglass/error ](https://docs.lammps.org/compute_smd_hourglass_error.html) - error associated with approximated relative separation in Smooth Mach Dynamics\n* [smd/internal/energy ](https://docs.lammps.org/compute_smd_internal_energy.html) - per-particle enthalpy in Smooth Mach Dynamics\n* [smd/plastic/strain ](https://docs.lammps.org/compute_smd_plastic_strain.html) - equivalent plastic strain per particle in Smooth Mach Dynamics\n* [smd/plastic/strain/rate ](https://docs.lammps.org/compute_smd_plastic_strain_rate.html) - time rate of the equivalent plastic strain in Smooth Mach Dynamics\n* [smd/rho ](https://docs.lammps.org/compute_smd_rho.html) - per-particle mass density in Smooth Mach Dynamics\n* [smd/tlsph/defgrad ](https://docs.lammps.org/compute_smd_tlsph_defgrad.html) - deformation gradient in Smooth Mach Dynamics\n* [smd/tlsph/dt ](https://docs.lammps.org/compute_smd_tlsph_dt.html) - CFL-stable time increment per particle in Smooth Mach Dynamics\n* [smd/tlsph/num/neighs ](https://docs.lammps.org/compute_smd_tlsph_num_neighs.html) - number of particles inside the smoothing kernel radius for Smooth Mach Dynamics\n* [smd/tlsph/shape ](https://docs.lammps.org/compute_smd_tlsph_shape.html) - current shape of the volume of a particle for Smooth Mach Dynamics\n* [smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html) - Green--Lagrange strain tensor for Smooth Mach Dynamics\n* [smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html) - rate of strain for Smooth Mach Dynamics\n* [smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html) - per-particle Cauchy stress tensor for SPH particles\n* [smd/triangle/vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html) - coordinates of vertices corresponding to the triangle elements of a mesh for Smooth Mach Dynamics\n* [smd/ulsph/effm ](https://docs.lammps.org/compute_smd_ulsph_effm.html) - per-particle effective shear modulus\n* [smd/ulsph/num/neighs ](https://docs.lammps.org/compute_smd_ulsph_num_neighs.html) - number of neighbor particles inside the smoothing kernel radius for Smooth Mach Dynamics\n* [smd/ulsph/strain ](https://docs.lammps.org/compute_smd_ulsph_strain.html) - logarithmic strain tensor for Smooth Mach Dynamics\n* [smd/ulsph/strain/rate ](https://docs.lammps.org/compute_smd_ulsph_strain_rate.html) - logarithmic strain rate for Smooth Mach Dynamics\n* [smd/ulsph/stress ](https://docs.lammps.org/compute_smd_ulsph_stress.html) - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics\n* [smd/vol ](https://docs.lammps.org/compute_smd_vol.html) - per-particle volumes and their sum in Smooth Mach Dynamics\n* [snap ](https://docs.lammps.org/compute_sna_atom.html) - gradients of SNAP energy and forces with respect to linear coefficients and related quantities for fitting SNAP potentials\n* [sna/atom ](https://docs.lammps.org/compute_sna_atom.html) - bispectrum components for each atom\n* [sna/grid ](https://docs.lammps.org/compute_sna_atom.html) - global array of bispectrum components on a regular grid\n* [sna/grid/local ](https://docs.lammps.org/compute_sna_atom.html) - local array of bispectrum components on a regular grid\n* [snad/atom ](https://docs.lammps.org/compute_sna_atom.html) - derivative of bispectrum components for each atom\n* [snav/atom ](https://docs.lammps.org/compute_sna_atom.html) - virial contribution from bispectrum components for each atom\n* [sph/e/atom ](https://docs.lammps.org/compute_sph_e_atom.html) - per-atom internal energy of Smooth-Particle Hydrodynamics atoms\n* [sph/rho/atom ](https://docs.lammps.org/compute_sph_rho_atom.html) - per-atom density of Smooth-Particle Hydrodynamics atoms\n* [sph/t/atom ](https://docs.lammps.org/compute_sph_t_atom.html) - per-atom internal temperature of Smooth-Particle Hydrodynamics atoms\n* [spin ](https://docs.lammps.org/compute_spin.html) - magnetic quantities for a system of atoms having spins\n* [stress/atom ](https://docs.lammps.org/compute_stress_atom.html) - stress tensor for each atom\n* [stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html) - stress tensor in cartesian coordinates\n* [stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html) - stress tensor in cylindrical coordinates\n* [stress/mop ](https://docs.lammps.org/compute_stress_mop.html) - normal components of the local stress tensor using the method of planes\n* [stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html) - profile of the normal components of the local stress tensor using the method of planes\n* [stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html) - stress tensor in spherical coordinates\n* [stress/tally ](https://docs.lammps.org/compute_tally.html) - stress between two groups of atoms via the tally callback mechanism\n* [tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html) - per-atom chemical concentration of a specified species for each tDPD particle\n* [temp ](https://docs.lammps.org/compute_temp.html) - temperature of group of atoms\n* [temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) - temperature of aspherical particles\n* [temp/body ](https://docs.lammps.org/compute_temp_body.html) - temperature of body particles\n* [temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) - temperature of each chunk\n* [temp/com ](https://docs.lammps.org/compute_temp_com.html) - temperature after subtracting center-of-mass velocity\n* [temp/cs ](https://docs.lammps.org/compute_temp_cs.html) - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other\n* [temp/deform ](https://docs.lammps.org/compute_temp_deform.html) - temperature excluding box deformation velocity\n* [temp/deform/eff ](https://docs.lammps.org/compute_temp_deform_eff.html) - temperature excluding box deformation velocity in the electron force field model\n* [temp/drude ](https://docs.lammps.org/compute_temp_drude.html) - temperature of Core--Drude pairs\n* [temp/eff ](https://docs.lammps.org/compute_temp_eff.html) - temperature of a group of nuclei and electrons in the electron force field model\n* [temp/partial ](https://docs.lammps.org/compute_temp_partial.html) - temperature excluding one or more dimensions of velocity\n* [temp/profile ](https://docs.lammps.org/compute_temp_profile.html) - temperature excluding a binned velocity profile\n* [temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) - temperature excluding ramped velocity component\n* [temp/region ](https://docs.lammps.org/compute_temp_region.html) - temperature of a region of atoms\n* [temp/region/eff ](https://docs.lammps.org/compute_temp_region_eff.html) - temperature of a region of nuclei and electrons in the electron force field model\n* [temp/rotate ](https://docs.lammps.org/compute_temp_rotate.html) - temperature of a group of atoms after subtracting out their center-of-mass and angular velocities\n* [temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) - temperature of spherical particles\n* [temp/uef ](https://docs.lammps.org/compute_temp_uef.html) - kinetic energy tensor in the reference frame of an applied flow field\n* [ti ](https://docs.lammps.org/compute_ti.html) - thermodynamic integration free energy values\n* [torque/chunk ](https://docs.lammps.org/compute_torque_chunk.html) - torque applied on each chunk\n* [vacf ](https://docs.lammps.org/compute_vacf.html) - velocity auto-correlation function of group of atoms\n* [vcm/chunk ](https://docs.lammps.org/compute_vcm_chunk.html) - velocity of center-of-mass for each chunk\n* [viscosity/cos ](https://docs.lammps.org/compute_viscosity_cos.html) - velocity profile under cosine-shaped acceleration\n* [voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) - Voronoi volume and neighbors for each atom\n* [xrd ](https://docs.lammps.org/compute_xrd.html) - X-ray diffraction intensity on a mesh of reciprocal lattice nodes\n", "restrictions": " none\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[fix rheo/viscosity ](https://docs.lammps.org/fix_rheo_viscosity.html),\n[fix rheo/pressure ](https://docs.lammps.org/fix_rheo_pressure.html),\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\n[fix rheo/oxdiation ](https://docs.lammps.org/fix_rheo_oxidation.html),\n[fix rheo ](https://docs.lammps.org/fix_rheo.html)\n" + "related": "[uncompute ](https://docs.lammps.org/uncompute.html), [compute_modify ](https://docs.lammps.org/compute_modify.html),\n[fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\n" }, { "command": [ - "fix_modify AtC pair_interactions" + "fix_modify AtC remove_species" ], "syntax": [ - "fix_modify pair_interactions ", - "fix_modify bond_interactions " + "fix_modify remove_species " ], "args": [ [ @@ -19147,209 +18464,300 @@ export const command_docs = [ "choices": [] }, { - "arg": "pair_interactions", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] - } - ], - [ - { - "arg": "fix_modify", + "arg": "remove_species", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] - }, - { - "arg": "bond_interactions", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* pair_interactions or bond_interactions = name of the AtC sub-command\n* on or off = activate or deactivate \n", - "examples": "\n```lmps\nfix_modify AtC pair_interactions off\nfix_modify AtC bond_interactions on\n```\n", - "html_filename": "atc_pair_interactions.html", - "short_description": "Include bonds and/or pairs in stress and heat flux computations", - "description": "Include bonds and/or pairs in stress and heat flux computations.\n", + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_species = name of the AtC sub-command\n* tag = tag for tracking a species \n", + "examples": "\n```lmps\nfix_modify AtC remove_species gold\n```\n", + "html_filename": "atc_remove_species.html", + "short_description": "Removes tag designated for tracking a specified species", + "description": "Removes tag designated for tracking a specified species.\n", "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n- [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n" }, { "command": [ - "dihedral_style cosine/shift/exp", - "dihedral_style cosine/shift/exp/omp" + "pair_style rebomos", + "pair_style rebomos/omp" ], "syntax": [ - "dihedral_style cosine/shift/exp" + "pair_style rebomos" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "cosine/shift/exp", + "arg": "rebomos", "type": 3, "choices": [ - "cosine/shift/exp", - "cosine/shift/exp/omp" + "rebomos", + "rebomos/omp" ] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style cosine/shift/exp\ndihedral_coeff 1 10.0 45.0 2.0\n```\n", - "html_filename": "dihedral_cosine_shift_exp.html", - "short_description": "The *cosine/shift/exp* dihedral style uses the potential\n\\[\n E = -U_{min}\\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad\\mbox{with}\\quad U(\\theta,\\theta_0)=-0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{min}\\), \\(\\theta\\), and \\(a\\) are defined for\neach dihedral type", - "description": "The *cosine/shift/exp* dihedral style uses the potential\n\\[\n E = -U_{min}\\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad\\mbox{with}\\quad U(\\theta,\\theta_0)=-0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{min}\\), \\(\\theta\\), and \\(a\\) are defined for\neach dihedral type.\n\nThe potential is bounded between \\(\\left[-U_{min}:0\\right]\\) and the minimum is located\nat the angle \\(\\theta_0\\). The a parameter can be both positive or negative\nand is used to control the spring constant at the equilibrium.\n\nThe spring constant is given by \\(k=a e^a \\frac{U_{min}}{2 \\left(e^a-1\\right)}\\).\nFor \\(a>3\\) and \\(\\frac{k}{U_{min}} = \\frac{a}{2}\\) to better than 5% relative error. For negative\nvalues of the a parameter, the spring constant is essentially zero,\nand anharmonic terms takes over. The potential is furthermore well\nbehaved in the limit \\(a \\rightarrow 0\\), where it has been implemented to linear\norder in \\(a\\) for \\(a < 0.001\\).\n\nThe following coefficients must be defined for each dihedral type via\nthe [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(U_{min}\\) (energy)\n* \\(\\theta\\) (angle)\n* \\(a\\) (real number)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html),\n[angle_style cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html)\n" + "parameters": "* rebomos = name of this pair style \n", + "examples": "\n```lmps\npair_style rebomos\npair_coeff * * ../potentials/MoS.rebomos Mo S\n```\nExample input scripts available: examples/threebody/\n", + "html_filename": "pair_rebomos.html", + "short_description": "\nThe *rebomos* pair style computes the interactions between molybdenum\nand sulfur atoms **Stewart** utilizing an adaptive\ninteratomic reactive empirical bond order potential that is similar in\nform to the AIREBO potential **Stuart2**", + "description": "\nThe *rebomos* pair style computes the interactions between molybdenum\nand sulfur atoms **Stewart** utilizing an adaptive\ninteratomic reactive empirical bond order potential that is similar in\nform to the AIREBO potential **Stuart2**. The potential\nis based on an earlier parameterizations for \\(\\text{MoS}_2\\)\ndeveloped by **Liang**.\n\nThe REBOMoS potential consists of two terms:\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i}\n \\left[ E^{\\text{REBO}}_{ij} + E^{\\text{LJ}}_{ij} \\right] \\\\ \\end{align*} \\]\nThe \\(E^{\\text{REBO}}\\) term describes the covalently bonded\ninteractions between Mo and S atoms while the \\(E^{\\text{LJ}}\\) term\ndescribes longer range dispersion forces between layers. A cubic spline\nfunction is applied to smoothly switch between covalent bonding at short\ndistances to dispersion interactions at longer distances. This allows\nthe model to capture bond formation and breaking events which may occur\nbetween adjacent MoS2 layers, edges, defects, and more.\n\n----------\n\nOnly a single pair_coeff command is used with the *rebomos* pair style\nwhich specifies an REBOMoS potential file with parameters for Mo and S.\nThese are mapped to LAMMPS atom types by specifying N additional\narguments after the filename in the pair_coeff command, where N is the\nnumber of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of REBOMoS elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has three atom types and you want\nthe first two to be Mo, and the third to be S, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * MoS.rebomos Mo Mo S\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first two Mo arguments map LAMMPS atom types 1 and 2 to the Mo\nelement in the REBOMoS file. The final S argument maps LAMMPS atom type\n3 to the S element in the REBOMoS file. If a mapping value is specified\nas NULL, the mapping is not performed. This can be used when a\n*rebomos* potential is used as part of the *hybrid* pair style. The\nNULL values are placeholders for atom types that will be used with other\npotentials.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write their information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stewart)** Stewart, Spearot, Modelling Simul. Mater. Sci. Eng. 21, 045003, (2013). \n \n**(Stuart2)** Stuart, Tutein, Harrison, J Chem Phys, 112, 6472-6486, (2000). \n \n**(Liang)** Liang, Phillpot, Sinnott Phys. Rev. B79 245110, (2009), Erratum: Phys. Rev. B85 199903(E), (2012) \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe MoS.rebomos potential file provided with LAMMPS (see the potentials\ndirectory) is parameterized for metal [units ](https://docs.lammps.org/units.html). You can use\nthe *rebomos* pair style with any LAMMPS units setting, but you would\nneed to create your own REBOMoS potential file with coefficients listed\nin the appropriate units.\n\nThe pair style provided here **only** supports potential files parameterized\nfor the elements molybdenum and sulfur (designated with \"Mo\" and \"S\" in the\n*pair_coeff* command. Using potential files for other elements will trigger\nan error.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair style rebo ](https://docs.lammps.org/pair_airebo.html)\n" }, { "command": [ - "compute smd/tlsph/shape" + "suffix" ], "syntax": [ - "compute ID group-ID smd/tlsph/shape" + "suffix style args" ], "args": [ [ { - "arg": "compute", + "arg": "suffix", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "hybrid", + "type": 3, + "choices": [ + "off", + "on", + "gpu", + "intel", + "kk", + "omp", + "opt", + "hybrid" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, - { - "arg": "smd/tlsph/shape", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/shape = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/shape\n```\n", - "html_filename": "compute_smd_tlsph_shape.html", - "short_description": "Define a computation that outputs the current shape of the volume\nassociated with a particle as a rotated ellipsoid", - "description": "Define a computation that outputs the current shape of the volume\nassociated with a particle as a rotated ellipsoid. It is only\nmeaningful for particles which interact according to the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors, which can be\naccessed by any command that uses per-particle values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-particle vector has 7 entries. The first three entries\ncorrespond to the lengths of the ellipsoid's axes and have units of\nlength. These axis values are computed as the contact radius times the\nxx, yy, or zz components of the Green-Lagrange strain tensor\nassociated with the particle. The next 4 values are quaternions\n(order: q, x, y, z) which describe the spatial rotation of the\nparticle relative to its initial state.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", - "related": "[smd/contact/radius ](https://docs.lammps.org/compute_smd_contact_radius.html)\n" + "parameters": "* style = off or on or gpu or intel or kk or omp or opt or hybrid\n* args = for hybrid style, default suffix to be used and alternative suffix \n", + "examples": "\n```lmps\nsuffix off\nsuffix on\nsuffix gpu\nsuffix intel\nsuffix hybrid intel omp\nsuffix kk\n```\n", + "html_filename": "suffix.html", + "short_description": "This command allows you to use variants of various styles if they\nexist", + "description": "This command allows you to use variants of various styles if they\nexist. In that respect it operates the same as the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html). It also has options to turn\noff or back on any suffix setting made via the command line.\n\nThe specified style can be *gpu*, *intel*, *kk*, *omp*, *opt* or\n*hybrid* . These refer to optional packages that LAMMPS can be built\nwith, as described on the [Build package ](https://docs.lammps.org/Build_package.html) doc page.\nThe \"gpu\" style corresponds to the GPU package, the \"intel\" style to\nthe INTEL package, the \"kk\" style to the KOKKOS package, the\n\"omp\" style to the OPENMP package, and the \"opt\" style to the OPT\npackage.\n\nThese are the variants these packages provide:\n\n* GPU = a handful of pair styles and the PPPM kspace_style, optimized to\n run on one or more GPUs or multicore CPU/GPU nodes\n* INTEL = a collection of pair styles and neighbor routines\n optimized to run in single, mixed, or double precision on CPUs and\n Intel(R) Xeon Phi(TM) co-processors.\n* KOKKOS = a collection of atom, pair, and fix styles optimized to run\n using the Kokkos library on various kinds of hardware, including GPUs\n via CUDA and many-core chips via OpenMP or threading.\n* OPENMP = a collection of pair, bond, angle, dihedral, improper,\n kspace, compute, and fix styles with support for OpenMP\n multi-threading\n* OPT = a handful of pair styles, cache-optimized for faster CPU\n performance\n* HYBRID = a combination of two packages can be specified (see below)\n\nAs an example, all of the packages provide a [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html) variant, with style names lj/cut/opt, lj/cut/omp,\nlj/cut/gpu, lj/cut/intel, or lj/cut/kk. A variant styles\ncan be specified explicitly in your input script, e.g. pair_style\nlj/cut/gpu. If the suffix command is used with the appropriate style,\nyou do not need to modify your input script. The specified suffix\n(opt,omp,gpu,intel,kk) is automatically appended whenever your\ninput script command creates a new [atom ](https://docs.lammps.org/atom_style.html),\n[pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html),\n[angle ](https://docs.lammps.org/angle_style.html), [dihedral ](https://docs.lammps.org/dihedral_style.html),\n[improper ](https://docs.lammps.org/improper_style.html), [kspace ](https://docs.lammps.org/kspace_style.html),\n[fix ](https://docs.lammps.org/fix.html), [compute ](https://docs.lammps.org/compute.html), or [run ](https://docs.lammps.org/run_style.html) style.\nIf the variant version does not exist, the standard version is\ncreated.\n\nFor \"hybrid\", two packages are specified. The first is used whenever\navailable. If a style with the first suffix is not available, the style\nwith the suffix for the second package will be used if available. For\nexample, \"hybrid intel omp\" will use styles from the INTEL package\nas a first choice and styles from the OPENMP package as a second choice\nif no INTEL variant is available.\n\nIf the specified style is *off*, then any previously specified suffix\nis temporarily disabled, whether it was specified by a command-line\nswitch or a previous suffix command. If the specified style is *on*,\na disabled suffix is turned back on. The use of these 2 commands lets\nyour input script use a standard LAMMPS style (i.e. a non-accelerated\nvariant), which can be useful for testing or benchmarking purposes.\nOf course this is also possible by not using any suffix commands, and\nexplicitly appending or not appending the suffix to the relevant\ncommands in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The default [run_style ](https://docs.lammps.org/run_style.html) verlet is invoked prior to\n > reading the input script and is therefore not affected by a suffix command\n > in the input script. The KOKKOS package requires \"run_style verlet/kk\",\n > so when using the KOKKOS package it is necessary to either use the command\n > line \"-sf kk\" command or add an explicit \"run_style verlet\" command to the\n > input script. \n > \n\n", + "restrictions": " none\n", + "related": "[-suffix command-line switch ](https://docs.lammps.org/Run_options.html)\n" }, { "command": [ - "pair_write" + "fix_modify AtC mesh read" ], "syntax": [ - "pair_write itype jtype N style inner outer file keyword Qi Qj" + "fix_modify mesh read " ], "args": [ [ { - "arg": "pair_write", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "itype", + "arg": "", "type": 2, "choices": [] }, { - "arg": "jtype", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "read", + "type": 1, "choices": [] }, { - "arg": "bitmap", + "arg": "", "type": 3, "choices": [ - "r", - "rsq", - "bitmap" + "f", + "p" ] }, { - "arg": "inner", - "type": 2, + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] + }, + { + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh read = name of the AtC sub-command\n* filename = name of the file containing the mesh to be read\n* f or p = periodicity flags for x-, y-, and z-direction (optional) \n", + "examples": "\n```lmps\nfix_modify AtC mesh read myComponent.mesh p p p\nfix_modify AtC mesh read myOtherComponent.exo\n```\n", + "html_filename": "atc_mesh_read.html", + "short_description": "Reads a mesh from a text or exodus file, and assigns periodic boundary\nconditions if needed", + "description": "Reads a mesh from a text or exodus file, and assigns periodic boundary\nconditions if needed.\n", + "restrictions": "None\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n- [fix_modify AtC mesh write ](https://docs.lammps.org/atc_mesh_write.html)\n" +}, +{ + "command": [ + "fix_modify AtC control mask_direction" + ], + "syntax": [ + "fix_modify control mask_direction " + ], + "args": [ + [ + { + "arg": "fix_modify", + "type": 1, "choices": [] }, { - "arg": "outer", + "arg": "", "type": 2, "choices": [] }, { - "arg": "file", - "type": 2, + "arg": "control", + "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, + "arg": "mask_direction", + "type": 1, "choices": [] }, { - "arg": "Qi", + "arg": "", "type": 2, "choices": [] }, { - "arg": "Qj", + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control mask_direction = name of the AtC sub-command\n* direction = select direction\n* on or off = Toggles state \n", + "examples": "\n```lmps\nfix_modify AtC control mask_direction 0 on\n```\n", + "html_filename": "atc_mask_direction.html", + "short_description": "Command to mask out certain dimensions from the atomic regulator\n", + "description": "Command to mask out certain dimensions from the atomic regulator\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" +}, +{ + "command": [ + "pair_style lj/cut/soft", + "pair_style lj/cut/soft/omp", + "pair_style lj/cut/coul/cut/soft", + "pair_style lj/cut/coul/cut/soft/gpu", + "pair_style lj/cut/coul/cut/soft/omp", + "pair_style lj/cut/coul/long/soft", + "pair_style lj/cut/coul/long/soft/gpu", + "pair_style lj/cut/coul/long/soft/omp", + "pair_style lj/cut/tip4p/long/soft", + "pair_style lj/cut/tip4p/long/soft/omp", + "pair_style lj/charmm/coul/long/soft", + "pair_style lj/charmm/coul/long/soft/omp", + "pair_style lj/class2/soft", + "pair_style lj/class2/coul/cut/soft", + "pair_style lj/class2/coul/long/soft", + "pair_style coul/cut/soft", + "pair_style coul/cut/soft/omp", + "pair_style coul/long/soft", + "pair_style coul/long/soft/omp", + "pair_style tip4p/long/soft", + "pair_style tip4p/long/soft/omp", + "pair_style morse/soft" + ], + "syntax": [ + "pair_style style args" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "tip4p/long/soft/omp", + "type": 3, + "choices": [ + "lj/cut/soft", + "lj/cut/coul/cut/soft", + "lj/cut/coul/long/soft", + "lj/cut/tip4p/long/soft", + "lj/charmm/coul/long/soft", + "lj/class2/soft", + "lj/class2/coul/cut/soft", + "lj/class2/coul/long/soft", + "coul/cut/soft", + "coul/long/soft", + "tip4p/long/soft", + "morse/soft", + "lj/cut/soft/omp", + "lj/cut/coul/cut/soft/gpu", + "lj/cut/coul/cut/soft/omp", + "lj/cut/coul/long/soft/gpu", + "lj/cut/coul/long/soft/omp", + "lj/cut/tip4p/long/soft/omp", + "lj/charmm/coul/long/soft/omp", + "coul/cut/soft/omp", + "coul/long/soft/omp", + "tip4p/long/soft/omp" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* itype,jtype = 2 atom types (numeric or type label)\n* N = # of values\n* style = r or rsq or bitmap\n* inner,outer = inner and outer cutoff (distance units)\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values\n* Qi,Qj = 2 atom charges (charge units) (optional) \n", - "examples": "\n```lmps\npair_write 1 3 500 r 1.0 10.0 table.txt LJ\npair_write 1 1 1000 rsq 2.0 8.0 table.txt Yukawa_1_1 -0.5 0.5\n\nlabelmap atom 1 C 2 H\npair_write C H 500 r 1.0 10.0 table.txt LJ\n```\n", - "html_filename": "pair_write.html", - "short_description": "Write energy and force values to a file as a function of distance for\nthe currently defined pair potential", - "description": "Write energy and force values to a file as a function of distance for\nthe currently defined pair potential. This is useful for plotting the\npotential function or otherwise debugging its values. If the file\nalready exists, the table of values is appended to the end of the file\nto allow multiple tables of energy and force to be included in one\nfile. In case a new file is created, the first line will be a comment\ncontaining a \"DATE:\" and \"UNITS:\" tag with the current date and the\ncurrent [units ](https://docs.lammps.org/units.html) setting as argument. For subsequent\ninvocations of the pair_write command, the current units setting is\ncompared against the entry in the file, if present, and pair_write\nwill refuse to add a table if the units are not the same.\n\nThe energy and force values are computed at distances from inner to\nouter for 2 interacting atoms of type *itype* and *jtype*, using the\nappropriate [pair_coeff ](https://docs.lammps.org/pair_coeff.html) coefficients. If the style\nis *r*, then N distances are used, evenly spaced in r; if the style is\n*rsq*, N distances are used, evenly spaced in r\\^2.\n\nFor example, for N = 7, style = *r*, inner = 1.0, and outer = 4.0,\nvalues are computed at r = 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0.\n\nIf the style is *bitmap*, then 2\\^N values are written to the file in a\nformat and order consistent with how they are read in by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for pair style *table* . For\nreasonable accuracy in a bitmapped table, choose N >= 12, an *inner*\nvalue that is smaller than the distance of closest approach of 2\natoms, and an *outer* value <= cutoff of the potential.\n\nIf the pair potential is computed between charged atoms, the charges\nof the pair of interacting atoms can optionally be specified. If not\nspecified, values of Qi = Qj = 1.0 are used.\n\nThe file is written in the format used as input for the\n[pair_style ](https://docs.lammps.org/pair_style.html) *table* option with *keyword* as the\nsection name. Each line written to the file lists an index number\n(1-N), a distance (in distance units), an energy (in energy units),\nand a force (in force units).\n", - "restrictions": "All force field coefficients for pair and other kinds of interactions\nmust be set before this command can be invoked.\n\nDue to how the pairwise force is computed, an inner value > 0.0 must\nbe specified even if the potential has a finite value at r = 0.0.\n\nThe *pair_write* command can only be used for pairwise additive\ninteractions for which a `Pair::single()` function can be and has\nbeen implemented. This excludes for example manybody potentials\nor TIP4P coulomb styles.\n", - "related": "[pair_style table ](https://docs.lammps.org/pair_table.html),\n[pair_style ](https://docs.lammps.org/pair_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = lj/cut/soft or lj/cut/coul/cut/soft or lj/cut/coul/long/soft or lj/cut/tip4p/long/soft or lj/charmm/coul/long/soft or lj/class2/soft or lj/class2/coul/cut/soft or lj/class2/coul/long/soft or coul/cut/soft or coul/long/soft or tip4p/long/soft or morse/soft\n* args = list of arguments for a particular style \n *      lj/cut/soft args = n alpha_lj cutoff \n       n, alpha_LJ = parameters of soft-core potential \n       cutoff = global cutoff for Lennard-Jones interactions (distance units) \n *      lj/cut/coul/cut/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/coul/long/soft args = n alpha_LJ alpha_C cutoff \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/tip4p/long/soft args = otype htype btype atype qdist n alpha_LJ alpha_C cutoff (cutoff2) \n       otype,htype = atom types for TIP4P O and H \n       btype,atype = bond and angle types for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/charmm/coul/long/soft args = n alpha_LJ alpha_C inner outer (cutoff) \n       n, alpha_LJ, alpha_C = parameters of the soft-core potential \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 5 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 5 args) \n *      lj/class2/soft args = n alpha_lj cutoff \n       n, alpha_LJ = parameters of soft-core potential \n       cutoff = global cutoff for Lennard-Jones interactions (distance units) \n *      lj/class2/coul/cut/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long/soft args = n alpha_LJ alpha_C cutoff (cutoff2) \n       n, alpha_LJ, alpha_C = parameters of soft-core potential \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      coul/cut/soft args = n alpha_C cutoff \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      coul/long/soft args = n alpha_C cutoff \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      tip4p/long/soft args = otype htype btype atype qdist n alpha_C cutoff \n       otype,htype = atom types for TIP4P O and H \n       btype,atype = bond and angle types for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       n, alpha_C = parameters of the soft-core potential \n       cutoff = global cutoff for Coulomb interactions (distance units) \n *      morse/soft args = n lf cutoff \n       n = soft-core parameter \n       lf = transformation range is lf < lambda < 1 \n       cutoff = global cutoff for Morse interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/cut/soft 2.0 0.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 1.0 9.5\n\npair_style lj/cut/coul/cut/soft 2.0 0.5 10.0 9.5\npair_style lj/cut/coul/cut/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.5 10.0\npair_coeff 1 1 0.28 3.1 0.5 10.0 9.5\n\npair_style lj/cut/coul/long/soft 2.0 0.5 10.0 9.5\npair_style lj/cut/coul/long/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.0 10.0\npair_coeff 1 1 0.28 3.1 0.0 10.0 9.5\n\npair_style lj/cut/tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8\npair_style lj/cut/tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8 9.5\npair_coeff * * 0.155 3.1536 1.0\npair_coeff 1 1 0.155 3.1536 1.0 9.5\n\npair_style lj/charmm/coul/long 2.0 0.5 10.0 8.0 10.0\npair_style lj/charmm/coul/long 2.0 0.5 10.0 8.0 10.0 9.0\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 1.0 0.14 3.1\n\npair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5\npair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5 9.5\npair_coeff * * 0.28 3.1 1.0\npair_coeff 1 1 0.28 3.1 0.0 10.0\npair_coeff 1 1 0.28 3.1 0.0 10.0 9.5\n\npair_style coul/long/soft 1.0 10.0 9.5\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n\npair_style tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n\npair_style morse/soft 4 0.9 10.0\npair_coeff * * 100.0 2.0 1.5 1.0\npair_coeff 1 1 100.0 2.0 1.5 1.0 3.0\n```\nExample input scripts available: examples/PACKAGES/fep\n", + "html_filename": "pair_fep_soft.html", + "short_description": "These pair styles have a soft repulsive core, tunable by a parameter lambda,\nin order to avoid singularities during free energy calculations when sites are\ncreated or annihilated **Beutler**", + "description": "These pair styles have a soft repulsive core, tunable by a parameter lambda,\nin order to avoid singularities during free energy calculations when sites are\ncreated or annihilated **Beutler**. When lambda tends to 0 the pair\ninteraction vanishes with a soft repulsive core. When lambda tends to 1, the pair\ninteraction approaches the normal, non-soft potential. These pair styles\nare suited for \"alchemical\" free energy calculations using the [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) and [compute fep ](https://docs.lammps.org/compute_fep.html) commands.\n\nThe *lj/cut/soft* style and related sub-styles compute the 12-6 Lennard-Jones\nand Coulomb potentials modified by a soft core, with the functional form\n\\[\n E = \\lambda^n 4 \\epsilon \\left\\{\n \\frac{1}{ \\left[ \\alpha_{\\mathrm{LJ}} (1-\\lambda)^2 +\n \\left( \\displaystyle\\frac{r}{\\sigma} \\right)^6 \\right]^2 } -\n \\frac{1}{ \\alpha_{\\mathrm{LJ}} (1-\\lambda)^2 +\n \\left( \\displaystyle\\frac{r}{\\sigma} \\right)^6 }\n \\right\\} \\qquad r < r_c\\]\nThe *lj/class2/soft* style is a 9-6 potential with the exponent of the\ndenominator of the first term in brackets taking the value 1.5 instead of 2\n(other details differ, see the form of the potential in\n[pair_style lj/class2 ](https://docs.lammps.org/pair_class2.html)).\n\nCoulomb interactions can also be damped with a soft core at short distance,\n\\[\n E = \\lambda^n \\frac{ C q_i q_j}{\\epsilon \\left[ \\alpha_{\\mathrm{C}}\n (1-\\lambda)^2 + r^2 \\right]^{1/2}} \\qquad r < r_c\\]\nIn the Coulomb part \\(C\\) is an energy-conversion constant, \\(q_i\\) and\n\\(q_j\\) are the charges on the 2 atoms, and epsilon is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\n\nThe coefficient lambda is an activation parameter. When \\(\\lambda = 1\\) the\npair potential is identical to a Lennard-Jones term or a Coulomb term or a\ncombination of both. When \\(\\lambda = 0\\) the interactions are\ndeactivated. The transition between these two extrema is smoothed by a soft\nrepulsive core in order to avoid singularities in potential energy and forces\nwhen sites are created or annihilated and can overlap **Beutler**.\n\nThe parameters \\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and\n\\(\\alpha_\\mathrm{C}\\) are set in the [pair_style ](https://docs.lammps.org/pair_style.html) command,\nbefore the cutoffs. Usual choices for the exponent are \\(n = 2\\) or\n\\(n = 1\\). For the remaining coefficients \\(\\alpha_\\mathrm{LJ} = 0.5\\)\nand \\(\\alpha_\\mathrm{C} = 10~\\text{A}^2\\) are appropriate choices. Plots of\nthe 12-6 LJ and Coulomb terms are shown below, for lambda ranging from 1 to 0\nevery 0.1.\n\n ![Image](JPG/lj_soft.jpg) \n\nFor the *lj/cut/coul/cut/soft* or *lj/cut/coul/long/soft* pair styles, as well\nas for the equivalent *class2* versions, the following coefficients must be\ndefined for each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand as in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands,\nor by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\lambda\\) (activation parameter, between 0 and 1)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter two coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair. You cannot specify 2 cutoffs for style *lj/cut/soft*,\nsince it has no Coulombic terms. For the *coul/cut/soft* and\n*coul/long/soft* only lambda and the optional cutoff2 are to be\nspecified.\n\nStyle *lj/cut/tip4p/long/soft* implements a soft-core version of the TIP4P water\nmodel. The usage of the TIP4P pair style is documented in the [pair_lj](https://docs.lammps.org/pair_lj.html) styles. In the soft version the parameters \\(n\\),\n\\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm {C}\\) are set in the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, after the specific parameters of the\nTIP4P water model and before the cutoffs. The activation parameter lambda is\nsupplied as an argument of the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, after\nepsilon and sigma and before the optional cutoffs.\n\nStyle *lj/charmm/coul/long/soft* implements a soft-core version of the modified\n12-6 LJ potential used in CHARMM and documented in the [pair_stylelj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html) style. In the soft version the parameters\n\\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm{C}\\) are set in\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command, before the global cutoffs. The\nactivation parameter lambda is introduced as an argument of the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command, after \\(\\epsilon\\) and \\(\\sigma\\) and before the\noptional eps14 and sigma14.\n\nStyle *lj/class2/soft* implements a soft-core version of the 9-6 potential in\n[pair_style lj/class2 ](https://docs.lammps.org/pair_class2.html). In the soft version the parameters\n\\(n\\), \\(\\alpha_\\mathrm{LJ}\\) and \\(\\alpha_\\mathrm{C}\\) are set in the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, before the global cutoffs. The\nactivation parameter lambda is introduced as an argument of the the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, after \\(\\epsilon\\) and\n\\(\\sigma\\) and before the optional cutoffs.\n\nThe *coul/cut/soft*, *coul/long/soft* and *tip4p/long/soft* sub-styles are\ndesigned to be combined with other pair potentials via the [pair_stylehybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. This is because they have no repulsive\ncore. Hence, if used by themselves, there will be no repulsion to keep two\noppositely charged particles from overlapping each other. In this case, if\n\\(\\lambda = 1\\), a singularity may occur. These sub-styles are suitable to\nrepresent charges embedded in the Lennard-Jones radius of another site (for\nexample hydrogen atoms in several water models). The \\(\\lambda\\) must\nbe defined for each pair, and *coul/cut/soft* can accept an optional cutoff as\nthe second coefficient.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the soft-core Coulomb potentials with long-range solvers (\\\n > *coul/long/soft*, *lj/cut/coul/long/soft*, etc.) in a free energy\n > calculation in which sites holding electrostatic charges are being created or\n > annihilated (using [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) and [compute fep > ](https://docs.lammps.org/compute_fep.html)) it is important to adapt both the \\(\\lambda\\) activation\n > parameter (from 0 to 1, or the reverse) and the value of the charge (from 0\n > to its final value, or the reverse). This ensures that long-range\n > electrostatic terms (kspace) are correct. It is not necessary to use\n > soft-core Coulomb potentials if the van der Waals site is present during the\n > free-energy route, thus avoiding overlap of the charges. Examples are\n > provided in the LAMMPS source directory tree, under examples/PACKAGES/fep. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To avoid division by zero do not set \\(\\sigma = 0\\) in the *lj/cut/soft*\n > and related styles; use the lambda parameter instead to activate/deactivate\n > interactions, or use \\(\\epsilon = 0\\) and \\(\\sigma = 1\\).\n > Alternatively, when sites do not interact though the Lennard-Jones term\n > the *coul/long/soft* or similar sub-style can be used via the\n > [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. \n > \n\n----------\n\nThe *morse/soft* variant modifies the [pair_morse ](https://docs.lammps.org/pair_morse.html) style at\nshort range to have a soft core. The functional form differs from that of the\n*lj/soft* styles, and is instead given by:\n\\[\\begin{align*} \n \\begin{split}\n s(\\lambda) =& (1 - \\lambda) / (1 - \\lambda_f), \\qquad B = -2D e^{-2 \\alpha\n r_0} (e^{\\alpha r_0} - 1) / 3 \\\\\n E =& D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right] +\n s(\\lambda) B e^{-3\\alpha(r-r_0)}, \\qquad \\hspace{2.85em}\\lambda \\geq\n \\lambda_f,\\quad r < r_c \\\\\n E =& \\left( D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right] + B e^{-3\\alpha(r-r_0)} \\right)(\\lambda/\\lambda_f)^n, \\qquad \\lambda\n < \\lambda_f,\\quad r < r_c\n \\end{split} \\end{align*} \\]\nThe *morse/soft* style requires the following pair coefficients:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(\\lambda\\) (unitless, between 0.0 and 1.0)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global morse cutoff is\nused.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe different versions of the *lj/cut/soft* pair styles support mixing. For\natom type pairs I,J and I != J, the \\(\\epsilon\\) and \\(\\sigma\\)\ncoefficients and cutoff distance for these pair styles can be mixed. The default\nmix value is *geometric* for 12-6 styles.\n\nThe mixing rule for epsilon and sigma for *lj/class2/soft* 9-6 potentials is to\nuse the *sixthpower* formulas. The [pair_modify mix ](https://docs.lammps.org/pair_modify.html) setting\nis thus ignored for class2 potentials for \\(\\epsilon\\) and\n\\(\\sigma\\). However it is still followed for mixing the cutoff distance. See\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) command for details.\n\nThe *morse/soft* pair style does not support mixing. Thus, coefficients for all\nLJ pairs must be specified explicitly.\n\nAll of the pair styles with soft core support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Lennard-Jones portion of the pair\ninteraction.\n\nThe different versions of the *lj/cut/soft* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail\ncorrection to the energy and pressure for the Lennard-Jones portion of the pair\ninteraction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The analytical form of the tail corrections for energy and pressure used in\n > the *lj/cut/soft* potentials are approximate, being identical to that of the\n > corresponding non-soft potentials scaled by a factor \\(\\lambda^n\\). The\n > errors due to this approximation should be negligible. For example, for a\n > cutoff of \\(2.5\\sigma\\) this approximation leads to maximum relative\n > errors in tail corrections of the order of 1e-4 for energy and virial\n > (\\(\\alpha_\\mathrm{LJ} = 0.5, n = 2\\)). The error vanishes when lambda\n > approaches 0 or 1. Note that these are the errors affecting the long-range\n > tail (itself a correction to the interaction energy) which includes other\n > approximations, namely that the system is homogeneous (local density equal\n > the average density) beyond the cutoff. \n > \n\nThe *morse/soft* pair style does not support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail corrections to energy and\npressure.\n\nAll of these pair styles write information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file.\n\n----------\n\n**(Beutler)** Beutler, Mark, van Schaik, Gerber, van Gunsteren, Chem\nPhys Lett, 222, 529 (1994). \n \n**(Beutler)** Beutler, Mark, van Schaik, Gerber, van Gunsteren, Chem\nPhys Lett, 222, 529 (1994). \n ", + "restrictions": "The pair styles with soft core are only enabled if LAMMPS was built with the\nFEP package. The *long* versions also require the KSPACE package to be\ninstalled. The soft *tip4p* versions also require the MOLECULE package to be\ninstalled. These styles are only enabled if LAMMPS was built with those\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html),\n[fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html), [compute fep ](https://docs.lammps.org/compute_fep.html)\n" }, { "command": [ - "compute count/type" + "compute pace" ], "syntax": [ - "compute ID group-ID count/type mode" + "compute ID group-ID pace ace_potential_filename ... keyword values ..." ], "args": [ [ @@ -19369,90 +18777,87 @@ export const command_docs = [ "choices": [] }, { - "arg": "count/type", + "arg": "pace", "type": 1, "choices": [] }, { - "arg": "improper", + "arg": "ace_potential_filename", + "type": 2, + "choices": [] + }, + { + "arg": "dgradflag", "type": 3, "choices": [ - "atom", - "bond", - "angle", - "dihedral", - "improper" + "bikflag", + "dgradflag" ] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* count/type = style name of this compute command\n* mode = atom or bond or angle or dihedral or improper \n", - "examples": "\n```lmps\ncompute 1 all count/type atom\ncompute 1 flowmols count/type bond\n```\n", - "html_filename": "compute_count_type.html", - "short_description": "\nDefine a computation that counts the current number of atoms for each\natom type", - "description": "\nDefine a computation that counts the current number of atoms for each\natom type. Or the number of bonds (angles, dihedrals, impropers) for\neach bond (angle, dihedral, improper) type.\n\nThe former can be useful if atoms are added to or deleted from the\nsystem in random ways, e.g. via the [fix deposit ](https://docs.lammps.org/fix_deposit.html),\n[fix pour ](https://docs.lammps.org/fix_pour.html), or [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)\ncommands. The latter can be useful in reactive simulations where\nmolecular bonds are broken or created, as well as angles, dihedrals,\nimpropers.\n\nNote that for this command, bonds (angles, etc) are the topological\nkind enumerated in a data file, initially read by the [read_data](https://docs.lammps.org/read_data.html) command or defined by the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. They do not refer to implicit bonds defined on-the-fly by\nbond-order or reactive pair styles based on the current conformation\nof small clusters of atoms.\n\nThese commands can turn off topological bonds (angles, etc) by setting\ntheir bond (angle, etc) types to negative values. This command\nincludes the turned-off bonds (angles, etc) in the count for each\ntype:\n\n* [fix shake ](https://docs.lammps.org/fix_shake.html)\n* [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n\nThese commands can create and/or break topological bonds (angles,\netc). In the case of breaking, they remove the bond (angle, etc) from\nthe system, so that they no longer exist ([bond_style quartic](https://docs.lammps.org/bond_quartic.html) and [BPM bond styles ](https://docs.lammps.org/Howto_bpm.html) are exceptions,\nsee the discussion below). Thus they are not included in the counts\nfor each type:\n\n* [delete_bonds remove ](https://docs.lammps.org/delete_bonds.html)\n* [bond_style quartic ](https://docs.lammps.org/bond_quartic.html)\n* [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n* [fix bond/create ](https://docs.lammps.org/fix_bond_create.html)\n* [fix bond/break ](https://docs.lammps.org/fix_bond_break.html)\n* [BPM package ](https://docs.lammps.org/Howto_bpm.html) bond styles\n\n----------\n\nIf the *mode* setting is *atom* then the count of atoms for each atom\ntype is tallied. Only atoms in the specified group are counted.\n\nThe atom count for each type can be normalized by the total number of\natoms like so:\n\n```lmps\ncompute typevec all count/type atom # number of atoms of each type\nvariable normtypes vector c_typevec/atoms # divide by total number of atoms\nvariable ntypes equal extract_setting(ntypes) # number of atom types\nthermo_style custom step v_normtypes[*${ntypes}] # vector variable needs upper limit\n```\nSimilarly, bond counts can be normalized by the total number of bonds.\nThe same goes for angles, dihedrals, and impropers (see below).\n\nIf the *mode* setting is *bond* then the count of bonds for each bond\ntype is tallied. Only bonds with both atoms in the specified group\nare counted.\n\nFor *mode* = *bond*, broken bonds with a bond type of zero are also\ncounted. The [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) and [BPMbond styles ](https://docs.lammps.org/Howto_bpm.html) break bonds by doing this. See the\n[Howto broken bonds ](https://docs.lammps.org/Howto_broken_bonds.html) doc page for more details.\nNote that the group setting is ignored for broken bonds; all broken\nbonds in the system are counted.\n\nIf the *mode* setting is *angle* then the count of angles for each\nangle type is tallied. Only angles with all 3 atoms in the specified\ngroup are counted.\n\nIf the *mode* setting is *dihedral* then the count of dihedrals for\neach dihedral type is tallied. Only dihedrals with all 4 atoms in the\nspecified group are counted.\n\nIf the *mode* setting is *improper* then the count of impropers for\neach improper type is tallied. Only impropers with all 4 atoms in the\nspecified group are counted.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of counts. If the mode is\n*atom* or *bond* or *angle* or *dihedral* or *improper*, then the\nvector length is the number of atom types or bond types or angle types\nor dihedral types or improper types, respectively.\n\nIf the mode is *bond* this compute also calculates a global scalar\nwhich is the number of broken bonds with type = 0, as explained above.\n\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar and vector values calculated by this compute are both\n\"intensive\".\n", - "restrictions": "none\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pace = style name of this compute command\n* ace_potential_filename = file name (in the .yace or .ace format from [pace pair_style ](https://docs.lammps.org/pair_pace.html)) including ACE hyper-parameters, bonds, and generalized coupling coefficients\n* keyword = bikflag or dgradflag \n *        bikflag value = 0 or 1 \n         0 = descriptors are summed over atoms of each type \n         1 = descriptors are listed separately for each atom \n *        dgradflag value = 0 or 1 \n         0 = descriptor gradients are summed over atoms of each type \n         1 = descriptor gradients are listed separately for each atom pair \n", + "examples": "\n```lmps\ncompute pace all pace coupling_coefficients.yace\ncompute pace all pace coupling_coefficients.yace 0 1\ncompute pace all pace coupling_coefficients.yace 1 1\n```\n", + "html_filename": "compute_pace.html", + "short_description": "\nThis compute calculates a set of quantities related to the atomic\ncluster expansion (ACE) descriptors of the atoms in a group", + "description": "\nThis compute calculates a set of quantities related to the atomic\ncluster expansion (ACE) descriptors of the atoms in a group. ACE\ndescriptors are highly general atomic descriptors, encoding the radial\nand angular distribution of neighbor atoms, up to arbitrary bond order\n(rank). The detailed mathematical definition is given in the paper by\n**Drautz19**. These descriptors are used in the\n[pace pair_style ](https://docs.lammps.org/pair_pace.html). Quantities obtained from `compute\npace` are related to those used in [pace pair_style ](https://docs.lammps.org/pair_pace.html) to\nevaluate atomic energies, forces, and stresses for linear ACE models.\n\nFor example, the energy for a linear ACE model is calculated as:\n\\(E=\\sum_i^{N\\_atoms} \\sum_{\\boldsymbol{\\nu}} c_{\\boldsymbol{\\nu}}\nB_{i,\\boldsymbol{\\boldsymbol{\\nu}}}\\). The ACE descriptors for atom `i`\n\\(B_{i,\\boldsymbol{\\nu}}\\), and \\(c_{\\nu}\\) are linear model\nparameters. The detailed definition and indexing convention for ACE\ndescriptors is given in **Drautz19**. In short, body\norder \\(N\\), angular character, radial character, and chemical\nelements in the *N-body* descriptor are encoded by \\(\\nu\\). In the\n[pace pair_style ](https://docs.lammps.org/pair_pace.html), the linear model parameters and the\nACE descriptors are combined for efficient evaluation of energies and\nforces. The details and benefits of this efficient implementation are\ngiven in **Lysogorskiy21**, but the combined\ndescriptors and linear model parameters for the purposes of `compute\npace` may be expressed in terms of the ACE descriptors mentioned above.\n\n\\(c_{\\boldsymbol{\\nu}} B_{i,\\boldsymbol{\\nu}}= \\sum_{\\boldsymbol{\\nu}' \\in \\boldsymbol{\\nu} } \\big[ c_{\\boldsymbol{\\nu}} C(\\boldsymbol{\\nu}') \\big] A_{i,\\boldsymbol{\\nu}'}\\)\n\nwhere the bracketed terms on the right-hand side are the combined functions\nwith linear model parameters typically provided in the `.yace` potential\nfile for `pace pair_style`. When these bracketed terms are multiplied by the\nproducts of the atomic base from **Drautz19**,\n\\(A_{i,\\boldsymbol{\\nu'}}\\), the ACE descriptors are recovered but they\nare also scaled by linear model parameters. The generalized coupling coefficients,\nwritten in short-hand here as \\(C(\\boldsymbol{\\nu}')\\), are the generalized\nClebsch-Gordan or generalized Wigner symbols. It may be desirable to reverse the\ncombination of these descriptors and the linear model parameters so that the\nACE descriptors themselves may be used. The ACE descriptors and their gradients\nare often used when training ACE models, performing custom data analysis,\ngeneralizing ACE model forms, and other tasks that involve direct computation of\ndescriptors. The key utility of `compute pace` is that it can compute the ACE\ndescriptors and gradients so that these tasks can be performed during a LAMMPS\nsimulation or so that LAMMPS can be used as a driver for tasks like ACE model\nparameterization. To see how this command can be used within a Python workflow\nto train ACE potentials, see the examples in\n[FitSNAP](https://github.com/FitSNAP/FitSNAP). Examples on using outputs from\nthis compute to construct general ACE potential forms are demonstrated in\n**Goff23**. The various keywords and inputs to `compute pace`\ndetermine what ACE descriptors and related quantities are returned in a compute\narray.\n\nThe coefficient file, `.yace`, ultimately defines the number of ACE\ndescriptors to be computed, their maximum body-order, the degree of angular\ncharacter they have, the degree of radial character they have, the chemical\ncharacter (which element-element interactions are encoded by descriptors),\nand other hyper-parameters defined in **Drautz19**. These may\nbe modeled after the potential files in [pace pair_style ](https://docs.lammps.org/pair_pace.html),\nand have the same format. Details on how to generate the coefficient files\nto train ACE models may be found in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n\nThe keyword *bikflag* determines whether or not to list the descriptors of\neach atom separately, or sum them together and list in a single row. If\n*bikflag* is set to *0* then a single descriptor row is used, which contains\nthe per-atom ACE descriptors \\(B_{i,\\boldsymbol{\\nu}}\\) summed over all\natoms *i* to produce \\(B_{\\boldsymbol{\\nu}}\\). If *bikflag* is set to\n*1* this is replaced by a separate per-atom ACE descriptor row for each atom.\nIn this case, the entries in the final column for these rows are set to zero.\n\nThe keyword *dgradflag* determines whether to sum atom gradients or list\nthem separately. If *dgradflag* is set to 0, the ACE\ndescriptor gradients w.r.t. atom *j* are summed over all atoms *i'*\nof, which may be useful when training linear ACE models on atomic forces.\nIf *dgradflag* is set to 1, gradients are listed separately for each pair of atoms.\nEach row corresponds\nto a single term \\(\\frac{\\partial {B_{i,\\boldsymbol{\\nu}}}}{\\partial {r}^a_j}\\)\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. This also changes the number of columns to be equal to the number of\nACE descriptors, with 3 additional columns representing the indices \\(i\\),\n\\(j\\), and \\(a\\), as explained more in the Output info section below.\nThe option *dgradflag=1* requires that *bikflag=1*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is noted here that in contrast to [pace pair_style ](https://docs.lammps.org/pair_pace.html),\n > the *.yace* file for `compute pace` typically should not contain linear\n > parameters for an ACE potential. If \\(c_{\\nu}\\) are included,\n > the value of the descriptor will not be returned in the `compute` array,\n > but instead, the energy contribution from that descriptor will be returned.\n > Do not do this unless it is the desired behavior.\n > *In short, you should not plug in a '.yace' for a pace potential into this\n > compute to evaluate descriptors.* \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*Generalized Clebsch-Gordan or Generalized Wigner symbols (with appropriate\n > factors) must be used to evaluate ACE descriptors with this compute.* There\n > are multiple ways to define the generalized coupling coefficients. Because\n > of this, this compute will not revert your potential file to a coupling\n > coefficient file. Instead this compute allows the user to supply coupling\n > coefficients that follow any convention. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *dgradflag* = 1 produces a global array with \\(N + 3N^2 + 1\\) rows\n > which becomes expensive for systems with more than 1000 atoms. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of [special_bonds > ](https://docs.lammps.org/special_bonds.html) command can remove pairwise interactions between\n > atoms in the same bond, angle, or dihedral. This is the default\n > setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, and\n > means those pairwise interactions do not appear in the neighbor list.\n > Because this fix uses the neighbor list, it also means those pairs\n > will not be included in the calculation. One way to get around this,\n > is to write a dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the ACE descriptors for snapshots in the dump file.\n > The rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command that includes all pairs in the neighbor list. \n > \n\n----------\n\n #### Output info\n\nCompute *pace* evaluates a global array. The columns are arranged into\n*ntypes* blocks, listed in order of atom type *I* . Each block contains\none column for each ACE descriptor, the same as for compute\n*sna/atom* in [compute snap ](https://docs.lammps.org/compute_sna_atom.html). A final column contains the corresponding energy, force\ncomponent on an atom, or virial stress component. The rows of the array\nappear in the following order:\n\n* 1 row: *pace* average descriptor values for all atoms of type *I*\n* 3\\*\\ *n* force rows: quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID and run up to the total number of atoms, *n*.\n* 6 rows: *virial* quantities summed for all atoms of type *I*\n\nFor example, if \\(\\# \\; B_{i, \\boldsymbol{\\nu}}\\) =30 and ntypes=1, the number of columns in the\nThe number of columns in the global array generated by *pace* are 31, and\n931, respectively, while the number of rows is 1+3\\*\\ *n* +6, where *n*\nis the total number of atoms.\n\nIf the *bik* keyword is set to 1, the structure of the pace array is expanded.\nThe first \\(N\\) rows of the pace array\ncorrespond to \\(\\# \\; B_{i,\\boldsymbol{\\nu}}\\) instead of a single row summed over atoms \\(i\\).\nIn this case, the entries in the final column for these rows\nare set to zero. Also, each row contains only non-zero entries for the\ncolumns corresponding to the type of that atom. This is not true in the case\nof *dgradflag* keyword = 1 (see below).\n\nIf the *dgradflag* keyword is set to 1, this changes the structure of the\nglobal array completely.\nHere the per-atom quantities are replaced with rows corresponding to\ndescriptor gradient components on single atoms:\n\\[\n \\frac{\\partial {B_{i,\\boldsymbol{\\nu}} }}{\\partial {r}^a_j}\\]\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. The rows are\norganized in chunks, where each chunk corresponds to an atom with global index\n\\(j\\). The rows in an atom \\(j\\) chunk correspond to\natoms with global index \\(i\\). The total number of rows for\nthese descriptor gradients is therefore \\(3N^2\\).\nThe number of columns is equal to the number of ACE descriptors,\nplus 3 additional left-most columns representing the global atom indices\n\\(i\\), \\(j\\),\nand Cartesian direction \\(a\\) (0, 1, 2, for x, y, z).\nThe first 3 columns of the first \\(N\\) rows belong to the reference\npotential force components. The remaining K columns contain the\n\\(B_{i,\\boldsymbol{\\nu}}\\) per-atom descriptors corresponding to the non-zero entries\nobtained when *bikflag* = 1.\nThe first column of the last row, after the first\n\\(N + 3N^2\\) rows, contains the reference potential\nenergy. The virial components are not used with this option. The total number of\nrows is therefore \\(N + 3N^2 + 1\\) and the number of columns is \\(K + 3\\).\n\nThese values can be accessed by any command that uses global values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Drautz19)** Drautz, Phys Rev B, 99, 014104 (2019). \n \n**(Lysogorskiy21)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, npj Comp Mat, 7, 97 (2021). \n \n**(Goff23)** Goff, Zhang, Negre, Rohskopf, Niklasson, Journal of Chemical Theory and Computation 19, no. 13 (2023). \n ", + "restrictions": "These computes are part of the ML-PACE package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style pace ](https://docs.lammps.org/pair_pace.html)\n[pair_style snap ](https://docs.lammps.org/pair_snap.html)\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html)\n" }, { "command": [ - "prd" + "fix aveforce" ], "syntax": [ - "prd N t_event n_dephase t_dephase t_correlate compute-ID seed keyword value ..." + "fix ID group-ID aveforce fx fy fz keyword value ..." ], "args": [ [ { - "arg": "prd", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "t_event", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "n_dephase", - "type": 2, + "arg": "aveforce", + "type": 1, "choices": [] }, { - "arg": "t_dephase", + "arg": "fx", "type": 2, "choices": [] }, { - "arg": "t_correlate", + "arg": "fy", "type": 2, "choices": [] }, { - "arg": "compute-ID", + "arg": "fz", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "keyword", "type": 2, "choices": [] }, - { - "arg": "time", - "type": 3, - "choices": [ - "min", - "temp", - "vel", - "time" - ] - }, { "arg": "value", "type": 2, @@ -19460,106 +18865,88 @@ export const command_docs = [ } ] ], - "parameters": "* N = # of timesteps to run (not including dephasing/quenching)\n* t_event = timestep interval between event checks\n* n_dephase = number of velocity randomizations to perform in each dephase run\n* t_dephase = number of timesteps to run dynamics after each velocity randomization during dephase\n* t_correlate = number of timesteps within which 2 consecutive events are considered to be correlated\n* compute-ID = ID of the compute used for event detection\n* random_seed = random # seed (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = min or temp or vel or time \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy, used in quenching \n         ftol = stopping tolerance for force, used in quenching \n         maxiter = max iterations of minimize, used in quenching \n         maxeval = max number of force/energy evaluations, used in quenching \n *        temp value = Tdephase \n         Tdephase = target temperature for velocity randomization, used in dephasing \n *        vel values = loop dist \n         loop = all or local or *geom*, used in dephasing \n         dist = uniform or *gaussian*, used in dephasing \n *        time value = steps or clock \n         steps = simulation runs for N timesteps on each replica (default) \n         clock = simulation runs for N timesteps across all replicas \n", - "examples": "\n```lmps\nprd 5000 100 10 10 100 1 54982\nprd 5000 100 10 10 100 1 54982 min 0.1 0.1 100 200\n```\n", - "html_filename": "prd.html", - "short_description": "Run a parallel replica dynamics (PRD) simulation using multiple\nreplicas of a system", - "description": "Run a parallel replica dynamics (PRD) simulation using multiple\nreplicas of a system. One or more replicas can be used. The total\nnumber of steps *N* to run can be interpreted in one of two ways; see\ndiscussion of the *time* keyword below.\n\nPRD is described in **Voter1998** by Art Voter.\nSimilar to global or local hyperdynamics (HD), PRD is a method for\nperforming accelerated dynamics that is suitable for infrequent-event\nsystems that obey first-order kinetics. A good overview of\naccelerated dynamics methods (AMD) for such systems in given in this\nreview paper **Voter2002prd** from Art's group. To\nquote from the paper: \"The dynamical evolution is characterized by\nvibrational excursions within a potential basin, punctuated by\noccasional transitions between basins. The transition probability is\ncharacterized by p(t) = k\\*exp(-kt) where k is the rate constant.\"\n\nBoth PRD and HD produce a time-accurate trajectory that effectively\nextends the timescale over which a system can be simulated, but they\ndo it differently. PRD creates Nr replicas of the system and runs\ndynamics on each independently with a normal unbiased potential until\nan event occurs in one of the replicas. The time between events is\nreduced by a factor of Nr replicas. HD uses a single replica of the\nsystem and accelerates time by biasing the interaction potential in a\nmanner such that each timestep is effectively longer. For both\nmethods, per CPU second, more physical time elapses and more events\noccur. See the [hyper ](https://docs.lammps.org/hyper.html) page for more info about HD.\n\nIn PRD, each replica runs on a partition of one or more processors.\nProcessor partitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI\ninstalled, you can run a multi-replica simulation with more replicas\n(partitions) than you have physical processors, e.g you can run a\n10-replica simulation on one or two processors. However for PRD, this\nmakes little sense, since running a replica on virtual instead of\nphysical processors,offers no effective parallel speed-up in searching\nfor infrequent events. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc\npage for further discussion.\n\nWhen a PRD simulation is performed, it is assumed that each replica is\nrunning the same model, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of atoms, the interaction\npotentials, etc should be the same for every replica.\n\nA PRD run has several stages, which are repeated each time an \"event\"\noccurs in one of the replicas, as explained below. The logic for a\nPRD run is as follows:\n\n```\nwhile (time remains):\ndephase for n_dephase\\*t_dephase steps\nuntil (event occurs on some replica):\nrun dynamics for t_event steps\nquench\ncheck for uncorrelated event on any replica\nuntil (no correlated event occurs):\nrun dynamics for t_correlate steps\nquench\ncheck for correlated event on this replica\nevent replica shares state with all replicas\n```\nBefore this loop begins, the state of the system on replica 0 is\nshared with all replicas, so that all replicas begin from the same\ninitial state. The first potential energy basin is identified by\nquenching (an energy minimization, see below) the initial state and\nstoring the resulting coordinates for reference.\n\nIn the first stage, dephasing is performed by each replica\nindependently to eliminate correlations between replicas. This is\ndone by choosing a random set of velocities, based on the\n*random_seed* that is specified, and running *t_dephase* timesteps of\ndynamics. This is repeated *n_dephase* times. At each of the\n*n_dephase* stages, if an event occurs during the *t_dephase* steps of\ndynamics for a particular replica, the replica repeats the stage until\nno event occurs.\n\nIf the *temp* keyword is not specified, the target temperature for\nvelocity randomization for each replica is the current temperature of\nthat replica. Otherwise, it is the specified *Tdephase* temperature.\nThe style of velocity randomization is controlled using the keyword\n*vel* with arguments that have the same meaning as their counterparts\nin the [velocity ](https://docs.lammps.org/velocity.html) command.\n\nIn the second stage, each replica runs dynamics continuously, stopping\nevery *t_event* steps to check if a transition event has occurred.\nThis check is performed by quenching the system and comparing the\nresulting atom coordinates to the coordinates from the previous basin.\nThe first time through the PRD loop, the \"previous basin\" is the set\nof quenched coordinates from the initial state of the system.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command.\nMinimization parameters may be set via the\n[min_modify ](https://docs.lammps.org/min_modify.html) command and by the *min* keyword of the\nPRD command. The latter are the settings that would be used with the\n[minimize ](https://docs.lammps.org/minimize.html) command. Note that typically, you do not\nneed to perform a highly-converged minimization to detect a transition\nevent, though you may need to in order to prevent a set of atoms in\nthe system from relaxing to a saddle point.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nPRD command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an \"event\" has occurred.\n\nIn the third stage, the replica on which the event occurred (event\nreplica) continues to run dynamics to search for correlated events.\nThis is done by running dynamics for *t_correlate* steps, quenching\nevery *t_event* steps, and checking if another event has occurred.\n\nThe first time no correlated event occurs, the final state of the\nevent replica is shared with all replicas, the new basin reference\ncoordinates are updated with the quenched state, and the outer loop\nbegins again. While the replica event is searching for correlated\nevents, all the other replicas also run dynamics and event checking\nwith the same schedule, but the final states are always overwritten by\nthe state of the event replica.\n\nThe outer loop of the pseudocode above continues until *N* steps of\ndynamics have been performed. Note that *N* only includes the\ndynamics of stages 2 and 3, not the steps taken during dephasing or\nthe minimization iterations of quenching. The specified *N* is\ninterpreted in one of two ways, depending on the *time* keyword. If\nthe *time* value is *steps*, which is the default, then each replica\nruns for *N* timesteps. If the *time* value is *clock*, then the\nsimulation runs until *N* aggregate timesteps across all replicas have\nelapsed. This aggregate time is the \"clock\" time defined below, which\ntypically advances nearly M times faster than the timestepping on a\nsingle replica, where M is the number of replicas.\n\n----------\n\nFour kinds of output can be generated during a PRD run: event\nstatistics, thermodynamic output by each replica, dump files, and\nrestart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file is\nlimited to event statistics. Note that if a PRD run is performed on\nonly a single replica then the event statistics will be intermixed\nwith the usual thermodynamic output discussed below.\n\nThe quantities printed each time an event occurs are the timestep, CPU\ntime, clock, event number, a correlation flag, the number of\ncoincident events, and the replica number of the chosen event.\n\nThe timestep is the usual LAMMPS timestep, except that time does not\nadvance during dephasing or quenches, but only during dynamics. Note\nthat are two kinds of dynamics in the PRD loop listed above that\ncontribute to this timestepping. The first is when all replicas are\nperforming independent dynamics, waiting for an event to occur. The\nsecond is when correlated events are being searched for, but only one\nreplica is running dynamics.\n\nThe CPU time is the total elapsed time on each processor, since the\nstart of the PRD run.\n\nThe clock is the same as the timestep except that it advances by M\nsteps per timestep during the first kind of dynamics when the M\nreplicas are running independently. The clock advances by only 1 step\nper timestep during the second kind of dynamics, when only a single\nreplica is checking for a correlated event. Thus \"clock\" time\nrepresents the aggregate time (in steps) that has effectively elapsed\nduring a PRD simulation on M replicas. If most of the PRD run is\nspent in the second stage of the loop above, searching for infrequent\nevents, then the clock will advance nearly M times faster than it\nwould if a single replica was running. Note the clock time between\nsuccessive events should be drawn from p(t).\n\nThe event number is a counter that increments with each event, whether\nit is uncorrelated or correlated.\n\nThe correlation flag will be 0 when an uncorrelated event occurs\nduring the second stage of the loop listed above, i.e. when all\nreplicas are running independently. The correlation flag will be 1\nwhen a correlated event occurs during the third stage of the loop\nlisted above, i.e. when only one replica is running dynamics.\n\nWhen more than one replica detects an event at the end of the same\nevent check (every *t_event* steps) during the second stage, then\none of them is chosen at random. The number of coincident events is\nthe number of replicas that detected an event. Normally, this value\nshould be 1. If it is often greater than 1, then either the number of\nreplicas is too large, or *t_event* is too large.\n\nThe replica number is the ID of the replica (from 0 to M-1) in which\nthe event occurred.\n\n----------\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For\nthe PRD command, these contain the thermodynamic output for each\nreplica. You will see short runs and minimizations corresponding to\nthe dynamics and quench operations of the loop listed above. The\ntimestep will be reset appropriately depending on whether the\noperation advances time or not.\n\nAfter the PRD command completes, timing statistics for the PRD run are\nprinted in each replica's log file, giving a breakdown of how much CPU\ntime was spent in each stage (dephasing, dynamics, quenching, etc).\n\n----------\n\nAny [dump files ](https://docs.lammps.org/dump.html) defined in the input script, will be\nwritten to during a PRD run at timesteps corresponding to both\nuncorrelated and correlated events. This means the requested dump\nfrequency in the [dump ](https://docs.lammps.org/dump.html) command is ignored. There will be\none dump file (per dump command) created for all partitions.\n\nThe atom coordinates of the dump snapshot are those of the minimum\nenergy configuration resulting from quenching following a transition\nevent. The timesteps written into the dump files correspond to the\ntimestep at which the event occurred and NOT the clock. A dump\nsnapshot corresponding to the initial minimum state used for event\ndetection is written to the dump file at the beginning of each PRD\nrun.\n\n----------\n\nIf the [restart ](https://docs.lammps.org/restart.html) command is used, a single restart file\nfor all the partitions is generated, which allows a PRD run to be\ncontinued by a new input script in the usual manner.\n\nThe restart file is generated at the end of the loop listed above. If\nno correlated events are found, this means it contains a snapshot of\nthe system at time T + *t_correlate*, where T is the time at which the\nuncorrelated event occurred. If correlated events were found, then it\ncontains a snapshot of the system at time T + *t_correlate*, where T\nis the time of the last correlated event.\n\nThe restart frequency specified in the [restart ](https://docs.lammps.org/restart.html) command\nis interpreted differently when performing a PRD run. It does not\nmean the timestep interval between restart files. Instead it means an\nevent interval for uncorrelated events. Thus a frequency of 1 means\nwrite a restart file every time an uncorrelated event occurs. A\nfrequency of 10 means write a restart file every 10th uncorrelated\nevent.\n\nWhen an input script reads a restart file from a previous PRD run, the\nnew script can be run on a different number of replicas or processors.\nHowever, it is assumed that *t_correlate* in the new PRD command is\nthe same as it was previously. If not, the calculation of the \"clock\"\nvalue for the first event in the new run will be slightly off.\n\n----------\n\n**(Voter1998)** Voter, Phys Rev B, 57, 13985 (1998). \n \n**(Voter2002prd)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThe *N* and *t_correlate* settings must be integer multiples of\n*t_event*.\n\nRuns restarted from restart file written during a PRD run will not\nproduce identical results due to changes in the random numbers used\nfor dephasing.\n\nThis command cannot be used when any fixes are defined that keep track\nof elapsed time to perform time-dependent operations. Examples\ninclude the \"ave\" fixes such as [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html).\nAlso [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) and [fix deposit ](https://docs.lammps.org/fix_deposit.html).\n", - "related": "[compute event/displace ](https://docs.lammps.org/compute_event_displace.html),\n[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[velocity ](https://docs.lammps.org/velocity.html), [temper ](https://docs.lammps.org/temper.html), [neb ](https://docs.lammps.org/neb.html),\n[tad ](https://docs.lammps.org/tad.html), [hyper ](https://docs.lammps.org/hyper.html)\n" -}, -{ - "command": [ - "pair_style gran/hooke", - "pair_style gran/hooke/omp", - "pair_style gran/hooke/history", - "pair_style gran/hooke/history/omp", - "pair_style gran/hooke/history/kk", - "pair_style gran/hertz/history", - "pair_style gran/hertz/history/omp" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* aveforce = style name of this fix command\n* fx,fy,fz = force component values (force units) \n *        any of fx,fy,fz can be a variable (see below) \n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", + "examples": "\n```lmps\nfix pressdown topwall aveforce 0.0 -1.0 0.0\nfix 2 bottomwall aveforce NULL -1.0 0.0 region top\nfix 2 bottomwall aveforce NULL -1.0 v_oscillate region top\n```\n", + "html_filename": "fix_aveforce.html", + "short_description": "Apply an additional external force to a group of atoms in such a way\nthat every atom experiences the same force", + "description": "Apply an additional external force to a group of atoms in such a way\nthat every atom experiences the same force. This is useful for\npushing on wall or boundary atoms so that the structure of the wall\ndoes not change over time.\n\nThe existing force is averaged for the group of atoms, component by\ncomponent. The actual force on each atom is then set to the average\nvalue plus the component specified in this command. This means each\natom in the group receives the same force.\n\nAny of the *fx*, *fy*, or *fz* values can be specified as :code:`NULL`, which\nmeans the force in that dimension is not changed. Note that this is not the\nsame as specifying a 0.0 value, since that sets all forces to the same\naverage value without adding in any additional force.\n\nAny of the three quantities defining the force components, namely *fx*, *fy*,\nand *fz*, can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html)\\ .\nIf the value is a variable, it should be specified as v_name, where\nname is the variable name. In this case, the variable will be\nevaluated each timestep, and its value used to determine the average\nforce.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent average force.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global three-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the timestep as\nthe iteration count during the minimization.\n", + "restrictions": " none\n", + "related": "[fix setforce ](https://docs.lammps.org/fix_setforce.html), [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" +}, +{ + "command": [ + "lattice" ], "syntax": [ - "pair_style style Kn Kt gamma_n gamma_t xmu dampflag keyword" + "lattice style scale keyword values ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "lattice", "type": 1, "choices": [] }, { - "arg": "gran/hertz/history/omp", + "arg": "custom", "type": 3, "choices": [ - "gran/hooke", - "gran/hooke/history", - "gran/hertz/history", - "gran/hooke/omp", - "gran/hooke/history/omp", - "gran/hooke/history/kk", - "gran/hertz/history/omp" + "none", + "sc", + "bcc", + "fcc", + "hcp", + "diamond", + "sq2", + "hex", + "custom" ] }, { - "arg": "Kn", - "type": 2, - "choices": [] - }, - { - "arg": "Kt", - "type": 2, - "choices": [] - }, - { - "arg": "gamma_n", - "type": 2, - "choices": [] - }, - { - "arg": "gamma_t", - "type": 2, - "choices": [] - }, - { - "arg": "xmu", + "arg": "scale", "type": 2, "choices": [] }, { - "arg": "included", + "arg": "triclinic/general", "type": 3, "choices": [ - "0", - "included" + "origin", + "orient", + "spacing", + "a1", + "a2", + "a3", + "basis", + "triclinic/general" ] }, { - "arg": "keyword", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* style = gran/hooke or gran/hooke/history or gran/hertz/history\n* Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)\n* Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)\n* gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)\n* gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)\n* xmu = static yield criterion (unitless value between 0.0 and 1.0e4)\n* dampflag = 0 or 1 if tangential damping force is excluded or included\n\n* keyword = limit_damping \n *       limit_damping value = none \n        limit damping to prevent attractive interaction \n.. note::\n\n Versions of LAMMPS before 9Jan09 had different style names for\n granular force fields. This is to emphasize the fact that the\n Hertzian equation has changed to model polydispersity more accurately.\n A side effect of the change is that the Kn, Kt, gamma_n, and gamma_t\n coefficients in the pair_style command must be specified with\n different values in order to reproduce calculations made with earlier\n versions of LAMMPS, even for monodisperse systems. See the NOTE below\n for details.\n\n \n", - "examples": "\n```lmps\npair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 1\npair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0\npair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 limit_damping\n```\n", - "html_filename": "pair_gran.html", - "short_description": "The *gran* styles use the following formulas for the frictional force\nbetween two granular particles, as described in\n**Brilliantov**, **Silbert**, and\n**Zhang3**, when the distance r between two particles of radii\nRi and Rj is less than their contact distance d = Ri + Rj", - "description": "The *gran* styles use the following formulas for the frictional force\nbetween two granular particles, as described in\n**Brilliantov**, **Silbert**, and\n**Zhang3**, when the distance r between two particles of radii\nRi and Rj is less than their contact distance d = Ri + Rj. There is\nno force between the particles when r > d.\n\nThe two Hookean styles use this formula:\n\\[\n F_{hk} = (k_n \\delta \\mathbf{n}_{ij} -\n m_{eff} \\gamma_n\\mathbf{ v}_n) -\n (k_t \\boldsymbol{\\Delta} \\mathbf{s}_t +\n m_{eff} \\gamma_t \\mathbf{v}_t)\\]\nThe Hertzian style uses this formula:\n\\[\n F_{hz} = \\sqrt{\\delta} \\sqrt{\\frac{R_i R_j}{R_i + R_j}} F_{hk} =\n \\sqrt{\\delta} \\sqrt{\\frac{R_i R_j}{R_i + R_j}}\n \\Big[ (k_n \\delta \\mathbf{n}_{ij} -\n m_{eff} \\: \\gamma_n \\mathbf{ v}_n) -\n (k_t \\boldsymbol{\\Delta} \\mathbf{s}_t +\n m_{eff} \\: \\gamma_t \\mathbf{v}_t) \\Big]\\]\nIn both equations the first parenthesized term is the normal force\nbetween the two particles and the second parenthesized term is the\ntangential force. The normal force has 2 terms, a contact force and a\ndamping force. The tangential force also has 2 terms: a shear force\nand a damping force. The shear force is a \"history\" effect that\naccounts for the tangential displacement between the particles for the\nduration of the time they are in contact. This term is included in\npair styles *hooke/history* and *hertz/history*, but is not included\nin pair style *hooke* . The tangential damping force term is included\nin all three pair styles if *dampflag* is set to 1; it is not included\nif *dampflag* is set to 0.\n\nThe other quantities in the equations are as follows:\n\n* \\(\\delta\\) = d - r = overlap distance of 2 particles\n* \\(K_n\\) = elastic constant for normal contact\n* \\(K_t\\) = elastic constant for tangential contact\n* \\(\\gamma_n\\) = viscoelastic damping constant for normal contact\n* \\(\\gamma_t\\) = viscoelastic damping constant for tangential contact\n* \\(m_{eff} = M_i M_j / (M_i + M_j) =\\) effective mass of 2 particles of mass M_i and M_j\n* \\(\\boldsymbol{\\Delta} \\mathbf{s}_t =\\) tangential displacement vector between 2 particles which is truncated to satisfy a frictional yield criterion\n* \\(n_{ij} =\\) unit vector along the line connecting the centers of the 2 particles\n* \\(V_n =\\) normal component of the relative velocity of the 2 particles\n* \\(V_t =\\) tangential component of the relative velocity of the 2 particles\n\nThe \\(K_n\\), \\(K_t\\), \\(\\gamma_n\\), and \\(\\gamma_t\\)\ncoefficients are specified as parameters to the pair_style command. If\na NULL is used for \\(K_t\\), then a default value is used where\n\\(K_t = 2/7 K_n\\). If a NULL is used for \\(\\gamma_t\\), then a\ndefault value is used where \\(\\gamma_t = 1/2 \\gamma_n\\).\n\nThe interpretation and units for these 4 coefficients are different in\nthe Hookean versus Hertzian equations.\n\nThe Hookean model is one where the normal push-back force for two\noverlapping particles is a linear function of the overlap distance.\nThus the specified \\(K_n\\) is in units of (force/distance). Note\nthat this push-back force is independent of absolute particle size (in\nthe monodisperse case) and of the relative sizes of the two particles\n(in the polydisperse case). This model also applies to the other terms\nin the force equation so that the specified \\(\\gamma_n\\) is in units\nof (1/time), \\(K_t\\) is in units of (force/distance), and\n\\(\\gamma_t\\) is in units of (1/time).\n\nThe Hertzian model is one where the normal push-back force for two\noverlapping particles is proportional to the area of overlap of the\ntwo particles, and is thus a non-linear function of overlap distance.\nThus Kn has units of force per area and is thus specified in units of\n(pressure). The effects of absolute particle size (monodispersity)\nand relative size (polydispersity) are captured in the radii-dependent\nprefactors. When these prefactors are carried through to the other\nterms in the force equation it means that the specified \\(\\gamma_n\\) is in\nunits of (1/(time\\*distance)), \\(K_t\\) is in units of (pressure), and\n\\(\\gamma_t\\) is in units of (1/(time\\*distance)).\n\nNote that in the Hookean case, \\(K_n\\) can be thought of as a linear\nspring constant with units of force/distance. In the Hertzian case,\n\\(K_n\\) is like a non-linear spring constant with units of\nforce/area or pressure, and as shown in the **Zhang3**\npaper, \\(K_n = 4G / (3(1-\\nu))\\) where \\(\\nu =\\) the Poisson ratio,\nG = shear modulus = \\(E / (2(1+\\nu))\\), and E = Young's modulus. Similarly,\n\\(K_t = 4G / (2-\\nu)\\). (NOTE: in an earlier version of the manual, we incorrectly\nstated that \\(K_t = 8G / (2-\\nu)\\).)\n\nThus in the Hertzian case \\(K_n\\) and \\(K_t\\) can be set to\nvalues that corresponds to properties of the material being modeled.\nThis is also true in the Hookean case, except that a spring constant\nmust be chosen that is appropriate for the absolute size of particles in\nthe model. Since relative particle sizes are not accounted for, the\nHookean styles may not be a suitable model for polydisperse systems.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In versions of LAMMPS before 9Jan09, the equation for Hertzian\n > interactions did not include the \\(\\sqrt{r_i r_j / (r_i + r_j)}\\)\n > term and thus was not as accurate for polydisperse systems. For\n > monodisperse systems, \\(\\sqrt{ r_i r_j /(r_i+r_j)}\\) is a\n > constant factor that effectively scales all 4 coefficients:\n > \\(K_n, K_t, \\gamma_n, \\gamma_t\\). Thus you can set the values of\n > these 4 coefficients appropriately in the current code to reproduce\n > the results of a previous Hertzian monodisperse calculation. For\n > example, for the common case of a monodisperse system with particles\n > of diameter 1, all 4 of these coefficients should now be set 2x\n > larger than they were previously. \n > \n\nXmu is also specified in the pair_style command and is the upper limit\nof the tangential force through the Coulomb criterion Ft = xmu\\*Fn,\nwhere Ft and Fn are the total tangential and normal force components\nin the formulas above. Thus in the Hookean case, the tangential force\nbetween 2 particles grows according to a tangential spring and\ndash-pot model until Ft/Fn = xmu and is then held at Ft = Fn\\*xmu until\nthe particles lose contact. In the Hertzian case, a similar analogy\nholds, though the spring is no longer linear.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, xmu should be specified as a fractional value between\n > 0.0 and 1.0, however LAMMPS allows large values (up to 1.0e4) to allow\n > for modeling of systems which can sustain very large tangential\n > forces. \n > \n\nThe effective mass *m_eff* is given by the formula above for two\nisolated particles. If either particle is part of a rigid body, its\nmass is replaced by the mass of the rigid body in the formula above.\nThis is determined by searching for a [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommand (or its variants).\n\nFor granular styles there are no additional coefficients to set for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\nAll settings are global and are made via the pair_style command.\nHowever you must still use the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) for all\npairs of granular atom types. For example the command\n\n```lmps\npair_coeff * *\n```\nshould be used if all atoms in the simulation interact via a granular\npotential (i.e. one of the pair styles above is used). If a granular\npotential is used as a sub-style of [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), then specific atom types can be used in the\npair_coeff command to determine which atoms interact via a granular\npotential.\n\nIf two particles are moving away from each other while in contact, there\nis a possibility that the particles could experience an effective attractive\nforce due to damping. If the *limit_damping* keyword is used, this option\nwill zero out the normal component of the force if there is an effective\nattractive force.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for granular pair styles.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of these pair styles returns 0.0 for the energy\nof a pairwise interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe pairwise interaction force. However, the single() function also\ncalculates 10 extra pairwise quantities. The first 3 are the\ncomponents of the tangential force between particles I and J, acting\non particle I. The fourth is the magnitude of this tangential force.\nThe next 3 (5-7) are the components of the relative velocity in the\nnormal direction (along the line joining the 2 sphere centers). The\nlast 3 (8-10) the components of the relative velocity in the\ntangential direction.\n\nThese extra quantities can be accessed by the [compute pair/local ](https://docs.lammps.org/compute_pair_local.html) command, as *p1*, *p2*, ...,\n*p10* .\n\n----------\n\n**(Brilliantov)** Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53,\np 5382-5392 (1996). \n \n**(Silbert)** Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev\nE, 64, p 051302 (2001). \n \n**(Zhang3)** Zhang and Makse, Phys Rev E, 72, p 011301 (2005). \n ", - "restrictions": "All the granular pair styles are part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require that atoms store torque and angular velocity\n(omega) as defined by the [atom_style ](https://docs.lammps.org/atom_style.html). They also\nrequire a per-particle radius is stored. The *sphere* atom style does\nall of this.\n\nThis pair style requires you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they\ncompute depend on atom velocities. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for more details.\n\nAccumulated values for individual contacts are saved to to restart\nfiles but are not saved to data files. Therefore, forces may\ndiffer significantly when a system is reloaded using A\n[read_data ](https://docs.lammps.org/read_data.html) command.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = none or sc or bcc or fcc or hcp or diamond or sq or sq2 or hex or custom\n* scale = scale factor between lattice and simulation box \n *        scale = reduced density rho\\* (for LJ units) \n *        scale = lattice constant in distance units (for all other units) \n* zero or more keyword/value pairs may be appended\n* keyword = origin or orient or spacing or a1 or a2 or a3 or basis or triclinic/general \n *        origin values = x y z \n         x,y,z = fractions of a unit cell (0 <= x,y,z < 1) \n *        orient values = dim i j k \n         dim = x or y or z \n         i,j,k = integer lattice directions \n *        spacing values = dx dy dz \n         dx,dy,dz = lattice spacings in the x,y,z box directions \n *        a1, a2, a3 values = x y z \n         x,y,z = primitive vector components that define unit cell \n *        basis values = x y z \n         x,y,z = fractional coords of a basis atom (0 <= x,y,z < 1) \n *        triclinic/general values = no values \n", + "examples": "\n```lmps\nlattice fcc 3.52\nlattice hex 0.85\nlattice sq 0.8 origin 0.0 0.5 0.0 orient x 1 1 0 orient y -1 1 0\nlattice custom 3.52 a1 1.0 0.0 0.0 a2 0.5 1.0 0.0 a3 0.0 0.0 0.5 &\nbasis 0.0 0.0 0.0 basis 0.5 0.5 0.5 triclinic/general\nlattice none 2.0\n```\n", + "html_filename": "lattice.html", + "short_description": "Define a lattice for use by other commands", + "description": "Define a lattice for use by other commands. In LAMMPS, a lattice is\nsimply a set of points in space, determined by a unit cell with basis\natoms, that is replicated infinitely in all dimensions. The arguments\nof the lattice command can be used to define a wide variety of\ncrystallographic lattices.\n\nA lattice is used by LAMMPS in two ways. First, the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command creates atoms on the lattice\npoints inside the simulation box. Note that the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command allows different atom types\nto be assigned to different basis atoms of the lattice. Second, the\nlattice spacing in the x,y,z dimensions implied by the lattice, can be\nused by other commands as distance units\n(e.g. [create_box ](https://docs.lammps.org/create_box.html), [region ](https://docs.lammps.org/region.html) and\n[velocity ](https://docs.lammps.org/velocity.html)), which are often convenient to use when the\nunderlying problem geometry is atoms on a lattice.\n\nThe lattice style must be consistent with the dimension of the\nsimulation - see the [dimension ](https://docs.lammps.org/dimension.html) command. Styles *sc*\nor *bcc* or *fcc* or *hcp* or *diamond* are for 3d problems. Styles\n*sq* or *sq2* or *hex* are for 2d problems. Style *custom* can be\nused for either 2d or 3d problems.\n\nA lattice consists of a unit cell, a set of basis atoms within that\ncell, and a set of transformation parameters (scale, origin, orient)\nthat map the unit cell into the simulation box. The vectors a1,a2,a3\nare the edge vectors of the unit cell. This is the nomenclature for\n\"primitive\" vectors in solid-state crystallography, but in LAMMPS the\nunit cell they determine does not have to be a \"primitive cell\" of\nminimum volume.\n\nNote that the lattice command can be used multiple times in an input\nscript. Each time it is invoked, the lattice attributes are\nre-defined and are used for all subsequent commands (that use lattice\nattributes). For example, a sequence of lattice,\n[region ](https://docs.lammps.org/region.html), and [create_atoms ](https://docs.lammps.org/create_atoms.html) commands\ncan be repeated multiple times to build a poly-crystalline model with\ndifferent geometric regions populated with atoms in different lattice\norientations.\n\n----------\n\nA lattice of style *none* does not define a unit cell and basis set,\nso it cannot be used with the [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommand. However it does define a lattice spacing via the specified\nscale parameter. As explained above the lattice spacings in x,y,z can\nbe used by other commands as distance units. No additional\nkeyword/value pairs can be specified for the *none* style. By\ndefault, a \"lattice none 1.0\" is defined, which means the lattice\nspacing is the same as one distance unit, as defined by the\n[units ](https://docs.lammps.org/units.html) command.\n\nLattices of style *sc*, *fcc*, *bcc*, and *diamond* are 3d lattices\nthat define a cubic unit cell with edge length = 1.0. This means a1 =\n1 0 0, a2 = 0 1 0, and a3 = 0 0 1. Style *hcp* has a1 = 1 0 0, a2 = 0\nsqrt(3) 0, and a3 = 0 0 sqrt(8/3). The placement of the basis atoms\nwithin the unit cell are described in any solid-state physics text. A\n*sc* lattice has 1 basis atom at the lower-left-bottom corner of the\ncube. A *bcc* lattice has 2 basis atoms, one at the corner and one at\nthe center of the cube. A *fcc* lattice has 4 basis atoms, one at the\ncorner and 3 at the cube face centers. A *hcp* lattice has 4 basis\natoms, two in the z = 0 plane and 2 in the z = 0.5 plane. A *diamond*\nlattice has 8 basis atoms.\n\nLattices of style *sq* and *sq2* are 2d lattices that define a square\nunit cell with edge length = 1.0. This means a1 = 1 0 0 and a2 = 0 1 0. A *sq* lattice has 1 basis atom at the lower-left corner of the\nsquare. A *sq2* lattice has 2 basis atoms, one at the corner and one\nat the center of the square. A *hex* style is also a 2d lattice, but\nthe unit cell is rectangular, with a1 = 1 0 0 and a2 = 0 sqrt(3) 0.\nIt has 2 basis atoms, one at the corner and one at the center of the\nrectangle.\n\nA lattice of style *custom* allows you to specify a1, a2, a3, and a\nlist of basis atoms to put in the unit cell. By default, a1 and a2\nand a3 are 3 orthogonal unit vectors (edges of a unit cube). But you\ncan specify them to be of any length and non-orthogonal to each other,\nso that they describe a tilted parallelepiped. Via the *basis*\nkeyword you add atoms, one at a time, to the unit cell. Its arguments\nare fractional coordinates (0.0 <= x,y,z < 1.0). For 2d simulations,\nthe fractional z coordinate for any basis atom must be 0.0.\n\nThe position vector x of a basis atom within the unit cell is a linear\ncombination of the unit cell's 3 edge vectors, i.e. x = bx a1 + by\na2 + bz a3, where bx,by,bz are the 3 values specified for the *basis*\nkeyword.\n\n----------\n\nThis subsection discusses the arguments that determine how the\nidealized unit cell is transformed into a lattice of points within the\nsimulation box.\n\nThe *scale* argument determines how the size of the unit cell will be\nscaled when mapping it into the simulation box. I.e. it determines a\nmultiplicative factor to apply to the unit cell, to convert it to a\nlattice of the desired size and distance units in the simulation box.\nThe meaning of the *scale* argument depends on the [units ](https://docs.lammps.org/units.html)\nbeing used in your simulation.\n\nFor all unit styles except *lj*, the scale argument is specified in\nthe distance units defined by the unit style. For example, in *real*\nor *metal* units, if the unit cell is a unit cube with edge length\n1.0, specifying scale = 3.52 would create a cubic lattice with a\nspacing of 3.52 Angstroms. In *cgs* units, the spacing would be 3.52\ncm.\n\nFor unit style *lj*, the scale argument is the Lennard-Jones reduced\ndensity, typically written as rho\\*. LAMMPS converts this value into\nthe multiplicative factor via the formula \"factor\\^dim = rho/rho\\*\",\nwhere rho = N/V with V = the volume of the lattice unit cell and N =\nthe number of basis atoms in the unit cell (described below), and dim\n= 2 or 3 for the dimensionality of the simulation. Effectively, this\nmeans that if LJ particles of size sigma = 1.0 are used in the\nsimulation, the lattice of particles will be at the desired reduced\ndensity.\n\nThe *origin* option specifies how the unit cell will be shifted or\ntranslated when mapping it into the simulation box. The x,y,z values\nare fractional values (0.0 <= x,y,z < 1.0) meaning shift the lattice\nby a fraction of the lattice spacing in each dimension. The meaning\nof \"lattice spacing\" is discussed below. For 2d simulations, the\n*origin* z value must be 0.0.\n\nThe *orient* option specifies how the unit cell will be rotated when\nmapping it into the simulation box. The *dim* argument is one of the\n3 coordinate axes in the simulation box. The other 3 arguments are\nthe crystallographic direction in the lattice that you want to orient\nalong that axis, specified as integers. E.g. \"orient x 2 1 0\" means\nthe x-axis in the simulation box will be the [210] lattice direction,\nand similarly for y and z. The 3 lattice directions you specify do\nnot have to be unit vectors, but they must be mutually orthogonal and\nobey the right-hand rule, i.e. (X cross Y) points in the Z direction.\nFor 2d simulations, the *orient* x and y vectors must define 0 for\ntheir 3rd component. Similarly the *orient* z vector must define 0\nfor its 1st and 2nd components.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The preceding paragraph describing lattice directions is only\n > valid for orthogonal cubic unit cells (or square in 2d). If you are\n > using a *hcp* or *hex* lattice or the more general lattice style\n > *custom* with non-orthogonal a1,a2,a3 vectors, then you should think\n > of the 3 *orient* vectors as creating a 3x3 rotation matrix which is\n > applied to a1,a2,a3 to rotate the original unit cell to a new\n > orientation in the simulation box. \n > \n\n----------\n\nThe *triclinic/general* option specifies that the defined lattice is\nfor use with a general triclinic simulation box, as opposed to an\northogonal or restricted triclinic box. The [Howto triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page explains all 3 kinds of simulation boxes\nLAMMPS supports.\n\nIf this option is specified, a *custom* lattice style must be used.\nThe *a1*, *a2*, *a3* vectors should define the edge vectors of a\nsingle unit cell of the lattice with one or more basis atoms. They\nedge vectors can be arbitrary so long as they are non-zero, distinct,\nand not co-planar. In addition, they must define a right-handed\nsystem, such that (*a1* cross *a2*) points in the direction of *a3*.\nNote that a left-handed system can be converted to a right-handed\nsystem by simply swapping the order of any pair of the *a1*, *a2*,\n*a3* vectors. For 2d simulations, the *a3* vector must be specified\nas (0.0,0.0,1.0), which is its default value.\n\nIf this option is used, the *origin* and *orient* settings must have\ntheir default values. Namely (0.0,0.0,0.0) for the *origin* and\n(100), (010), (001) for the *orient* vectors.\n\nThe [create_box ](https://docs.lammps.org/create_box.html) command can be used to create a\ngeneral triclinic box that replicates the *a1*, *a2*, *a3* unit cell\nvectors in each direction to create the 3 arbitrary edge vectors of\nthe overall simulation box. It requires a lattice with the\n*triclinic/general* option.\n\nLikewise, the [create_atoms ](https://docs.lammps.org/create_atoms.html) command can be used\nto add atoms (or molecules) to a general triclinic box which lie on\nthe lattice points defined by *a1*, *a2*, *a3* and the unit cell basis\natoms. To do this, it also requires a lattice with the\n*triclinic/general* option.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic lattices and\n > simulation boxes as a convenience for users who may be converting\n > data from solid-state crystallographic representations or from DFT\n > codes for input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box and per-atom information (e.g. coordinates, velocities)\n > defined by the [create_box ](https://docs.lammps.org/create_box.html) and\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) commands are converted from\n > general to restricted triclinic form when the two commands are\n > invoked. It also means that any other commands which use lattice\n > spacings from this command (e.g. the region command), will be\n > operating on a restricted triclinic simulation box, even if the\n > *triclinic/general* option was used to define the lattice. See the\n > next section for details. \n > \n\n----------\n\nSeveral LAMMPS commands have the option to use distance units that are\ninferred from \"lattice spacings\" in the x,y,z box directions.\nE.g. the [region ](https://docs.lammps.org/region.html) command can create a block of size\n10x20x20, where 10 means 10 lattice spacings in the x direction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Though they are called lattice spacings, all the commands that\n > have a \"units lattice\" option, simply use the 3 values as scale\n > factors on the distance units defined by the [units ](https://docs.lammps.org/units.html)\n > command. Thus if you do not like the lattice spacings computed by\n > LAMMPS (e.g. for a non-orthogonal or rotated unit cell), you can\n > define the 3 values to be whatever you wish, via the *spacing* option. \n > \n\nIf the *spacing* option is not specified, the lattice spacings are\ncomputed by LAMMPS in the following way. A unit cell of the lattice\nis mapped into the simulation box (scaled and rotated), so that it now\nhas (perhaps) a modified size and orientation. The lattice spacing in\nX is defined as the difference between the min/max extent of the x\ncoordinates of the 8 corner points of the modified unit cell (4 in\n2d). Similarly, the Y and Z lattice spacings are defined as the\ndifference in the min/max of the y and z coordinates.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the *triclinic/general* option is specified, the unit cell\n > defined by *a1*, *a2*, *a3* edge vectors is first converted to a\n > restricted triclinic orientation, which is a rotation operation.\n > The min/max extent of the 8 corner points is then determined, as\n > described in the preceding paragraph, to set the lattice\n > spacings. As explained for the *triclinic/general* option above,\n > this is because any use of the lattice spacings by other commands\n > will be for a restricted triclinic simulation box, not a general\n > triclinic box. \n > \n\nNote that if the unit cell is orthogonal with axis-aligned edges (no\nrotation via the *orient* keyword), then the lattice spacings in each\ndimension are simply the scale factor (described above) multiplied by\nthe length of a1,a2,a3. Thus a *hex* style lattice with a scale\nfactor of 3.0 Angstroms, would have a lattice spacing of 3.0 in x and\n3\\*sqrt(3.0) in y.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For non-orthogonal unit cells and/or when a rotation is applied\n > via the *orient* keyword, then the lattice spacings computed by LAMMPS\n > are typically less intuitive. In particular, in these cases, there is\n > no guarantee that a particular lattice spacing is an integer multiple\n > of the periodicity of the lattice in that direction. Thus, if you\n > create an orthogonal periodic simulation box whose size in a dimension\n > is a multiple of the lattice spacing, and then fill it with atoms via\n > the [create_atoms ](https://docs.lammps.org/create_atoms.html) command, you will NOT necessarily\n > create a periodic system. I.e. atoms may overlap incorrectly at the\n > faces of the simulation box. \n > \n\nThe *spacing* option sets the 3 lattice spacings directly. All must\nbe non-zero (use 1.0 for dz in a 2d simulation). The specified values\nare multiplied by the multiplicative factor described above that is\nassociated with the scale factor. Thus a spacing of 1.0 means one\nunit cell edge length independent of the scale factor. As mentioned\nabove, this option can be useful if the spacings LAMMPS computes are\ninconvenient to use in subsequent commands, which can be the case for\nnon-orthogonal or rotated lattices.\n\nNote that whenever the lattice command is used, the values of the\nlattice spacings LAMMPS calculates are printed out. Thus their effect\nin commands that use the spacings should be decipherable.\n\n----------\n\nExample commands for generating a Wurtzite crystal.\nThe lattice constants approximate those of CdSe.\nThe \\(\\sqrt{3}\\times 1\\) orthorhombic supercell is used\nwith the x, y, and z directions oriented\nalong \\([\\bar{1}\\bar{2}30]\\),\n\\([10\\bar{1}0]\\), and \\([0001]\\), respectively.\n\n```lmps\nvariable a equal 4.34\nvariable b equal $a*sqrt(3.0)\nvariable c equal $a*sqrt(8.0/3.0)\n\nvariable third equal 1.0/3.0\nvariable five6 equal 5.0/6.0\n\nlattice custom 1.0 &\na1 $b 0.0 0.0 &\na2 0.0 $a 0.0 &\na3 0.0 0.0 $c &\nbasis 0.0 0.0 0.0 &\nbasis 0.5 0.5 0.0 &\nbasis ${third} 0.0 0.5 &\nbasis ${five6} 0.5 0.5 &\nbasis 0.0 0.0 0.625 &\nbasis 0.5 0.5 0.625 &\nbasis ${third} 0.0 0.125 &\nbasis ${five6} 0.5 0.125\n\nregion myreg block 0 1 0 1 0 1\ncreate_box 2 myreg\ncreate_atoms 1 box &\nbasis 5 2 &\nbasis 6 2 &\nbasis 7 2 &\nbasis 8 2\n```\n----------\n", + "restrictions": "The *a1,a2,a3,basis* keywords can only be used with style *custom* .\n", + "related": "[dimension ](https://docs.lammps.org/dimension.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[region ](https://docs.lammps.org/region.html)\n" }, { "command": [ - "compute displace/atom" + "fix ave/histo" ], "syntax": [ - "compute ID group-ID displace/atom" + "fix ID group-ID style Nevery Nrepeat Nfreq lo hi Nbin value1 value2 ... keyword args ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -19574,214 +18961,178 @@ export const command_docs = [ "choices": [] }, { - "arg": "displace/atom", - "type": 1, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* displace/atom = style name of this compute command\n* zero or more keyword/arg pairs may be appended\n* keyword = refresh \n *        refresh arg = name of per-atom variable \n", - "examples": "\n```lmps\ncompute 1 all displace/atom\ncompute 1 all displace/atom refresh myVar\n```\n", - "html_filename": "compute_displace_atom.html", - "short_description": "Define a computation that calculates the current displacement of each\natom in the group from its original (reference) coordinates, including\nall effects due to atoms passing through periodic boundaries", - "description": "Define a computation that calculates the current displacement of each\natom in the group from its original (reference) coordinates, including\nall effects due to atoms passing through periodic boundaries.\n\nA vector of four quantities per atom is calculated by this compute.\nThe first three elements of the vector are the \\((dx,dy,dz)\\)\ndisplacements. The fourth component is the total displacement\n(i.e., \\(\\sqrt{dx^2 + dy^2 + dz^2}\\)).\n\nThe displacement of an atom is from its original position at the time\nthe compute command was issued. The value of the displacement will be\n0.0 for atoms not in the specified compute group.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Initial coordinates are stored in \"unwrapped\" form, by using the\n > image flags associated with each atom. See the [dump custom > ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates. See\n > the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You\n > can reset the image flags (e.g., to 0) before invoking this compute\n > by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with time = 0 atom coordinates from the restart file. \n > \n\n----------\n\nThe *refresh* option can be used in conjunction with the \"dump_modify\nrefresh\" command to generate incremental dump files.\n\nThe definition and motivation of an incremental dump file is as\nfollows. Instead of outputting all atoms at each snapshot (with some\nassociated values), you may only wish to output the subset of atoms\nwith a value that has changed in some way compared to the value the\nlast time that atom was output. In some scenarios this can result in\na dramatically smaller dump file. If desired, by post-processing the\nsequence of snapshots, the values for all atoms at all timesteps can\nbe inferred.\n\nA concrete example using this compute, is a simulation of atom\ndiffusion in a solid, represented as atoms on a lattice. Diffusive\nhops are rare. Imagine that when a hop occurs an atom moves more than\na distance *Dhop* . For any snapshot we only want to output atoms that\nhave hopped since the last snapshot. This can be accomplished with\nsomething like the following commands:\n\n```lmps\nwrite_dump all custom tmp.dump id type x y z # see comment below\n\nvariable Dhop equal 0.6\nvariable check atom \"c_dsp[4] > v_Dhop\"\ncompute dsp all displace/atom refresh check\ndump 1 all custom 100 tmp.dump id type x y z\ndump_modify 1 append yes thresh c_dsp[4] > ${Dhop} &\nrefresh c_dsp delay 100\n```\nThe [dump_modify thresh ](https://docs.lammps.org/dump_modify.html) command will only output\natoms that have displaced more than \\(0.6~\\mathring{\\textrm{A}}\\) on each\nsnapshot (assuming metal units). The dump_modify *refresh* option triggers a\ncall to this compute at the end of every dump.\n\nThe *refresh* argument for this compute is the ID of an\n[atom-style variable ](https://docs.lammps.org/variable.html) which calculates a Boolean value (0 or 1)\nbased on the same criterion used by dump_modify thresh. This compute\nevaluates the atom-style variable. For each atom that returns 1 (true),\nthe original (reference) coordinates of the atom (stored by\nthis compute) are updated.\n\nThe effect of these commands is that a particular atom will only be\noutput in the dump file on the snapshot after it makes a diffusive\nhop. It will not be output again until it makes another hop.\n\nNote that in the first snapshot of a subsequent run, no atoms will be\ntypically be output. That is because the initial displacement for all\natoms is 0.0. If an initial dump snapshot is desired, containing the\ninitial reference positions of all atoms, one way to do this is\nillustrated above. An initial write_dump command can be used before\nthe first run. It will contain the positions of all the atoms,\nOptions in the [dump_modify ](https://docs.lammps.org/dump_modify.html) command above will\nappend new output to that same file and delay the output until a later\ntimestep. The *delay* setting avoids a second time = 0 snapshot which\nwould be empty.\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with four columns, which can be\naccessed by indices 1--4 by any command that uses per-atom values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe per-atom array values will be in distance [units ](https://docs.lammps.org/units.html).\n\nThis compute supports the *refresh* option as explained above, for use\nin conjunction with [dump_modify refresh ](https://docs.lammps.org/dump_modify.html) to generate\nincremental dump files.\n", - "restrictions": " none\n", - "related": "[compute msd ](https://docs.lammps.org/compute_msd.html), [dump custom ](https://docs.lammps.org/dump.html), [fix store/state ](https://docs.lammps.org/fix_store_state.html)\n" -}, -{ - "command": [ - "fix dpd/energy", - "fix dpd/energy/kk" - ], - "syntax": [ - "fix ID group-ID dpd/energy" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, + "arg": "style", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "dpd/energy", - "type": 3, - "choices": [ - "dpd/energy", - "dpd/energy/kk" - ] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* dpd/energy = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all dpd/energy\n```\n", - "html_filename": "fix_dpd_energy.html", - "short_description": "Perform constant energy dissipative particle dynamics (DPD-E)\nintegration", - "description": "Perform constant energy dissipative particle dynamics (DPD-E)\nintegration. This fix updates the internal energies for particles in\nthe group at each timestep. It must be used in conjunction with a\ndeterministic integrator (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html)) that updates\nthe particle positions and velocities.\n\nFor fix *dpd/energy*, the particle internal temperature is related to\nthe particle internal energy through a mesoparticle equation of state.\nAn additional fix must be specified that defines the equation of state\nfor each particle, e.g. [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html).\n\nThis fix must be used with the [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command.\n\nNote that numerous variants of DPD can be specified by choosing an\nappropriate combination of the integrator and [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command. DPD under isoenergetic conditions\ncan be specified by using fix *dpd/energy*, fix *nve* and pair_style\n*dpd/fdt/energy* . DPD under isoenthalpic conditions can\nbe specified by using fix *dpd/energy*, fix *nph* and pair_style\n*dpd/fdt/energy* . Examples of each DPD variant are provided in the\nexamples/PACKAGES/dpd-react directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix must be used with an additional fix that specifies time\nintegration, e.g. [fix nve ](https://docs.lammps.org/fix_nve.html).\n\nThe fix *dpd/energy* requires the *dpd* [atom_style ](https://docs.lammps.org/atom_style.html)\nto be used in order to properly account for the particle internal\nenergies and temperature.\n\nThe fix *dpd/energy* must be used with an additional fix that specifies the\nmesoparticle equation of state for each particle.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html) [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html)\n" -}, -{ - "command": [ - "fix imd" - ], - "syntax": [ - "fix ID group-ID imd trate port keyword values ..." - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, + "arg": "Nfreq", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "lo", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "hi", "type": 2, "choices": [] }, { - "arg": "imd", - "type": 1, + "arg": "Nbin", + "type": 2, "choices": [] }, { - "arg": "trate", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "port", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "nowait", + "arg": "title3", "type": 3, "choices": [ - "unwrap", - "fscale", - "trate", - "nowait" + "mode", + "kind", + "file", + "append", + "ave", + "start", + "beyond", + "overwrite", + "title1", + "title2", + "title3" ] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* imd = style name of this fix command\n* port = port number on which the fix listens for an IMD client\n* keyword = unwrap or fscale or trate or nowait \n *        unwrap arg = on or off \n         off = coordinates are wrapped back into the principal unit cell (default) \n         on = \"unwrapped\" coordinates using the image flags used \n *        fscale arg = factor \n         factor = floating point number to scale IMD forces (default: 1.0) \n *        trate arg = transmission rate of coordinate data sets (default: 1) \n *        nowait arg = on or off \n         off = LAMMPS waits to be connected to an IMD client before continuing (default) \n         on = LAMMPS listens for an IMD client, but continues with the run \n", - "examples": "\n```lmps\nfix vmd all imd 5678\nfix comm all imd 8888 trate 5 unwrap on fscale 10.0\n```\n", - "html_filename": "fix_imd.html", - "short_description": "This fix implements the \"Interactive MD\" (IMD) protocol which allows\nrealtime visualization and manipulation of MD simulations through the\nIMD protocol, as initially implemented in VMD and NAMD", - "description": "This fix implements the \"Interactive MD\" (IMD) protocol which allows\nrealtime visualization and manipulation of MD simulations through the\nIMD protocol, as initially implemented in VMD and NAMD. Specifically\nit allows LAMMPS to connect an IMD client, for example the [VMD visualization program ](https://www.ks.uiuc.edu/Research/vmd), so that it can monitor the progress of the\nsimulation and interactively apply forces to selected atoms.\n\nIf LAMMPS is compiled with the pre-processor flag -DLAMMPS_ASYNC_IMD\nthen fix imd will use POSIX threads to spawn a IMD communication\nthread on MPI rank 0 in order to offload data reading and writing\nfrom the main execution thread and potentially lower the inferred\nlatencies for slow communication links. This feature has only been\ntested under linux.\n\nThe source code for this fix includes code developed by the Theoretical\nand Computational Biophysics Group in the Beckman Institute for Advanced\nScience and Technology at the University of Illinois at\nUrbana-Champaign. We thank them for providing a software interface that\nallows codes like LAMMPS to hook to [VMD ](https://www.ks.uiuc.edu/Research/vmd).\n\nUpon initialization of the fix, it will open a communication port on\nthe node with MPI task 0 and wait for an incoming connection. As soon\nas an IMD client is connected, the simulation will continue and the\nfix will send the current coordinates of the fix's group to the IMD\nclient at every trate MD step. When using r-RESPA, trate applies to\nthe steps of the outmost RESPA level. During a run with an active IMD\nconnection also the IMD client can request to apply forces to selected\natoms of the fix group.\n\nThe port number selected must be an available network port number. On\nmany machines, port numbers < 1024 are reserved for accounts with\nsystem manager privilege and specific applications. If multiple imd\nfixes would be active at the same time, each needs to use a different\nport number.\n\nThe *nowait* keyword controls the behavior of the fix when no IMD\nclient is connected. With the default setting of *off*, LAMMPS will\nwait until a connection is made before continuing with the\nexecution. Setting *nowait* to *on* will have the LAMMPS code be ready\nto connect to a client, but continue with the simulation. This can for\nexample be used to monitor the progress of an ongoing calculation\nwithout the need to be permanently connected or having to download a\ntrajectory file.\n\nThe *trate* keyword allows to select how often the coordinate data is\nsent to the IMD client. It can also be changed on request of the IMD\nclient through an IMD protocol message. The *unwrap* keyword allows\nto send \"unwrapped\" coordinates to the IMD client that undo the\nwrapping back of coordinates into the principle unit cell, as done by\ndefault in LAMMPS. The *fscale* keyword allows to apply a scaling\nfactor to forces transmitted by the IMD client. The IMD protocols\nstipulates that forces are transferred in kcal/mol/Angstrom under the\nassumption that coordinates are given in Angstrom. For LAMMPS runs\nwith different units or as a measure to tweak the forces generated by\nthe manipulation of the IMD client, this option allows to make\nadjustments.\n\nTo connect VMD to a listening LAMMPS simulation on the same machine\nwith fix imd enabled, one needs to start VMD and load a coordinate or\ntopology file that matches the fix group. When the VMD command\nprompts appears, one types the command line:\n\n```\nimd connect localhost 5678\n```\nThis assumes that *fix imd* was started with 5678 as a port\nnumber for the IMD protocol.\n\nThe steps to do interactive manipulation of a running simulation in\nVMD are the following:\n\nIn the Mouse menu of the VMD Main window, select \"Mouse -> Force ->\nAtom\". You may alternately select \"Residue\", or \"Fragment\" to apply\nforces to whole residues or fragments. Your mouse can now be used to\napply forces to your simulation. Click on an atom, residue, or fragment\nand drag to apply a force. Click quickly without moving the mouse to\nturn the force off. You can also use a variety of 3D position trackers\nto apply forces to your simulation. Game controllers or haptic devices\nwith force-feedback such as the Novint Falcon or Sensable PHANTOM allow\nyou to feel the resistance due to inertia or interactions with neighbors\nthat the atoms experience you are trying to move, as if they were real\nobjects. See the [VMD IMD Homepage ](https://www.ks.uiuc.edu/Research/vmd/imd/) for more details.\n\nIf IMD control messages are received, a line of text describing the\nmessage and its effect will be printed to the LAMMPS output screen, if\nscreen output is active.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global scalar or vector or per-atom quantities\nare stored by this fix for access by various [output commands](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is not\ninvoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the MISC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nWhen used in combination with VMD, a topology or coordinate file has\nto be loaded, which matches (in number and ordering of atoms) the\ngroup the fix is applied to. The fix internally sorts atom IDs by\nascending integer value; in VMD (and thus the IMD protocol) those will\nbe assigned 0-based consecutive index numbers.\n\nWhen using multiple active IMD connections at the same time, each\nneeds to use a different port number.\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = ave/histo or ave/histo/weight = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating histogram\n* Nfreq = calculate histogram every this many timesteps\n* lo,hi = lo/hi bounds within which to histogram\n* Nbin = # of histogram bins\n* one or more input values can be listed\n* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component) \n *        c_ID = scalar or vector calculated by a compute with ID \n *        c_ID[I] = Ith component of vector or Ith column of array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = scalar or vector calculated by a fix with ID \n *        f_ID[I] = Ith component of vector or Ith column of array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = value(s) calculated by an equal-style or vector-style or atom-style variable with name \n *        v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = mode or kind or file or append or ave or start or beyond or overwrite or title1 or title2 or title3 \n *        mode arg = scalar or vector \n         scalar = all input values are scalars \n         vector = all input values are vectors \n *        kind arg = global or peratom or local \n *        file arg = filename \n         filename = name of file to output histogram(s) to \n *        append arg = filename \n         filename = name of file to append histogram(s) to \n *        ave args = one or running or window \n         one = output a new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        start args = Nstart \n         Nstart = start averaging on this timestep \n *        beyond arg = ignore or end or extra \n         ignore = ignore values outside histogram lo/hi bounds \n         end = count values outside histogram lo/hi bounds in end bins \n         extra = create 2 extra bins for value outside histogram lo/hi bounds \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file, only for vector mode \n", + "examples": "\n```lmps\nfix 1 all ave/histo 100 5 1000 0.5 1.5 50 c_myTemp file temp.histo ave running\nfix 1 all ave/histo 100 5 1000 -5 5 100 c_thermo_press[2] c_thermo_press[3] title1 \"My output values\"\nfix 1 all ave/histo 100 5 1000 -5 5 100 c_thermo_press[*]\nfix 1 all ave/histo 1 100 1000 -2.0 2.0 18 vx vy vz mode vector ave running beyond extra\nfix 1 all ave/histo/weight 1 1 1 10 100 2000 c_XRD[1] c_XRD[2]\n```\n", + "html_filename": "fix_ave_histo.html", + "short_description": "Use one or more values as inputs every few timesteps to create a\nsingle histogram", + "description": "Use one or more values as inputs every few timesteps to create a\nsingle histogram. The histogram can then be averaged over longer\ntimescales. The resulting histogram can be used by other [outputcommands ](https://docs.lammps.org/Howto_output.html), and can also be written to a file. The fix\nave/histo/weight command has identical syntax to fix ave/histo, except\nthat exactly two values must be specified. See details below.\n\nThe group specified with this command is ignored for global and local\ninput values. For per-atom input values, only atoms in the group\ncontribute to the histogram. Note that regardless of the specified\ngroup, specified values may represent calculations performed by\ncomputes and fixes which store their own \"group\" definition.\n\nA histogram is simply a count of the number of values that fall within\na histogram bin. *Nbins* are defined, with even spacing between *lo*\nand *hi* . Values that fall outside the lo/hi bounds can be treated in\ndifferent ways; see the discussion of the *beyond* keyword below.\n\nEach input value can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\nor atom-style [variable ](https://docs.lammps.org/variable.html). The set of input values can\nbe either all global, all per-atom, or all local quantities. Inputs\nof different kinds (e.g. global and per-atom) cannot be mixed. Atom\nattributes are per-atom vector values. See the page for individual\n\"compute\" and \"fix\" commands to see what kinds of quantities they\ngenerate.\n\nNote that a compute or fix can produce multiple kinds of data (global,\nper-atom, local). If LAMMPS cannot unambiguously determine which kind\nof data to use, the optional *kind* keyword discussed below can force\nthe desired disambiguation.\n\nNote that the output of this command is a single histogram for all\ninput values combined together, not one histogram per input value.\nSee below for details on the format of the output of this fix.\n\nThe input values must either be all scalars or all vectors (or\narrays), depending on the setting of the *mode* keyword.\n\nIf *mode* = scalar, then the input values must be scalars, or vectors\nwith a bracketed term appended, indicating the Ith value of the vector\nis used.\n\nIf *mode* = vector, then the input values must be vectors, or arrays\nwith a bracketed term appended, indicating the Ith column of the array\nis used.\n\nIf the fix ave/histo/weight command is used, exactly two values must\nbe specified. If the values are vectors, they must be the same\nlength. The first value (a scalar or vector) is what is histogrammed\ninto bins, in the same manner the fix ave/histo command operates. The\nsecond value (a scalar or vector) is used as a \"weight\". This means\nthat instead of each value tallying a \"1\" to its bin, the\ncorresponding weight is tallied. For example, the \\(N^\\text{th}\\) entry\n(weight) in the second vector is tallied to the bin corresponding to the\n\\(N^\\text{th}\\) entry in the first vector.\n\n----------\n\nFor input values from a compute or fix or variable, the bracketed\nindex I can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector\n(for *mode* = scalar) or the number of columns in the array\n(for *mode* = vector), then an asterisk with no numeric values means all\nindices from 1 to \\(N\\)\\ .\nA leading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive). A middle\nasterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector or columns of the array had been listed one by one. For example, the\nfollowing two fix ave/histo commands are equivalent, since the [computecom/chunk ](https://docs.lammps.org/compute_com_chunk.html) command creates a global array with three\ncolumns:\n\n```lmps\ncompute myCOM all com/chunk\nfix 1 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[*] file tmp1.com mode vector\nfix 2 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[1] c_myCOM[2] c_myCOM[3] file tmp2.com mode vector\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be used in order to\ncontribute to the histogram. The final histogram is generated on time steps\nthat are multiple of \\(N_\\text{freq}\\)\\ . It is averaged over\n\\(N_\\text{repeat}\\) histograms, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps.\n\\(N_\\text{freq}\\) must be a multiple of \\(N_\\text{every}\\) and\n\\(N_\\text{every}\\) must be non-zero even if \\(N_\\text{repeat}\\) is 1.\nAlso, the time steps contributing to the histogram value cannot overlap\n(i.e., \\(N_\\text{repeat}\\times N_\\text{every}\\) cannot exceed\n\\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then input values on time steps 90, 92, 94, 96, 98,\nand 100 will be used to compute the final histogram on timestep 100.\nSimilarly for timesteps 190, 192, 194, 196, 198, and 200 on timestep 200, etc.\nIf \\(N_\\text{repeat}=1\\) and \\(N_\\text{freq} = 100\\), then no time\naveraging of the histogram is done; a histogram is simply generated on\ntimesteps 100, 200, etc.\n\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and\n*fz*) are self-explanatory. Note that other atom attributes can be used as\ninputs to this fix by using the\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html) command and then\nspecifying an input value from that compute.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the\ncompute is used. If a bracketed term is appended, the Ith element of\nthe global vector calculated by the compute is used. If *mode* =\nvector, then if no bracketed term is appended, the global or per-atom\nor local vector calculated by the compute is used. If a bracketed\nterm is appended, the Ith column of the global or per-atom or local\narray calculated by the compute is used. See the discussion above for\nhow I can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector, which\ncan then be accessed by fix ave/histo. It can also be a compute defined\nnot in your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the fix\nis used. If a bracketed term is appended, the Ith element of the\nglobal vector calculated by the fix is used. If *mode* = vector, then\nif no bracketed term is appended, the global or per-atom or local\nvector calculated by the fix is used. If a bracketed term is\nappended, the \\(I^\\text{th}\\) column of the global or per-atom or local\narray calculated by the fix is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with \\(N_\\text{every}\\), else an error will\nresult. Users can also write code for their own fix styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. If *mode* = scalar, then\nonly equal-style or vector-style variables can be used, which both\nproduce global values. In this mode, a vector-style variable requires\na bracketed term to specify the \\(I^\\text{th}\\) element of the vector\ncalculated by the variable. If *mode* = vector, then only vector-style or\natom-style variables can be used, which produce a global or per-atom\nvector respectively. The vector-style variable must be used without a\nbracketed term. See the [variable ](https://docs.lammps.org/variable.html) command for details.\n\nNote that variables of style *equal*, *vector*, and *atom* define a\nformula which can reference individual atom properties or\nthermodynamic keywords, or they can invoke other computes, fixes, or\nvariables when they are evaluated, so this is a very general means of\nspecifying quantities to histogram.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nIf the *mode* keyword is set to *scalar*, then all input values must\nbe global scalars, or elements of global vectors. If the *mode*\nkeyword is set to *vector*, then all input values must be global or\nper-atom or local vectors, or columns of global or per-atom or local\narrays.\n\nThe *kind* keyword only needs to be used if any of the specified input\ncomputes or fixes produce more than one kind of output (global,\nper-atom, local). If not, LAMMPS will determine the kind of data all\nthe inputs produce and verify it is all the same kind. If not, an\nerror will be triggered. If a compute or fix produces more than one\nkind of output, the *kind* keyword should be used to specify which\noutput will be used. The other input arguments must still be\nconsistent.\n\nThe *beyond* keyword determines how input values that fall outside the\n*lo* to *hi* bounds are treated. Values such that *lo* \\(\\le\\) value\n\\(\\le\\) *hi* are assigned to one bin. Values on a bin boundary are\nassigned to the lower of the two bins. If *beyond* is set to *ignore* then\nvalues \\(<\\) *lo* and values \\(>\\) *hi* are ignored (i.e., they are not\nbinned). If *beyond* is set to *end*, then values \\(<\\) *lo* are counted in\nthe first bin and values \\(>\\) *hi* are counted in the last bin.\nIf *beyond* is set to *extend*, then two extra bins are created so that there\nare \\(N_\\text{bins}+2\\) total bins. Values \\(<\\) *lo* are counted in\nthe first bin and values \\(>\\) *hi* are counted in the last bin\n\\((N_\\text{bins}+2)\\)\\ . Values between\n*lo* and *hi* (inclusive) are counted in bins 2 through\n\\(N_\\text{bins}+1\\)\\ . The \"coordinate\" stored and printed for these two\nextra bins is *lo* and *hi* .\n\nThe *ave* keyword determines how the histogram produced every\n\\(N_\\text{freq}\\) steps are averaged with histograms produced on previous\nsteps that were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are independent of each\nother; they are output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each bin value in the histogram\nis thus the average of the bin value produced on that timestep with all\npreceding values for the same bin. This running average begins when the fix is\ndefined; it can only be restarted by deleting the fix via the\n[unfix ](https://docs.lammps.org/unfix.html) command, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed within a\nmoving \"window\" of time, so that the last \\(M\\) histograms are used to\nproduce the output (e.g., if \\(M = 3\\) and \\(N_\\text{freq} = 1000\\),\nthen the output on step 10000 will be the combined histogram of the individual\nhistograms on steps 8000, 9000, and 10000. Outputs on early steps will be sums\nover less than \\(M\\) histograms if they are not available.\n\nThe *start* keyword specifies what timestep histogramming will begin\non. The default is step 0. Often input values can be 0.0 at time 0,\nso setting *start* to a larger value can avoid including a 0.0 in\na running or windowed histogram.\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every *Nfreq* steps, one\nhistogram is written to the file. This includes a leading line that\ncontains the timestep, number of bins, the total count of values\ncontributing to the histogram, the count of values that were not\nhistogrammed (see the *beyond* keyword), the minimum value encountered,\nand the maximum value encountered. The min/max values include values\nthat were not histogrammed. Following the leading line, one line per\nbin is written into the file. Each line contains the bin #, the\ncoordinate for the center of the bin (between *lo* and *hi* ), the\ncount of values in the bin, and the normalized count. The normalized\ncount is the bin count divided by the total count (not including values\nnot histogrammed), so that the normalized values sum to 1.0 across all\nbins.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *title1*, *title2*, and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output\nfile, assuming the *file* keyword was used. LAMMPS uses default\nvalues for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Histogram for fix ID\n# TimeStep Number-of-bins Total-counts Missing-counts Min-value Max-value\n# Bin Coord Count Count/Total\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the six values that are printed at the first of each section\nof output. The third describes the four values printed for each bin in\nthe histogram.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix produces a global vector and global array which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The values\ncan only be accessed on timesteps that are multiples of \\(N_\\text{freq}\\)\nsince that is when a histogram is generated. The global vector has four\nvalues:\n\n* 1 = total counts in the histogram\n* 2 = values that were not histogrammed (see *beyond* keyword)\n* 3 = min value of all input values, including ones not histogrammed\n* 4 = max value of all input values, including ones not histogrammed\n\nThe global array has \\(N_\\text{bins}\\) rows and three columns. The\nfirst column has the bin coordinate, the second column has the count of\nvalues in that histogram bin, and the third column has the bin count\ndivided by the total count (not including missing counts), so that the\nvalues in the third column sum to 1.0.\n\nThe vector and array values calculated by this fix are all treated as\nintensive. If this is not the case (e.g., due to histogramming\nper-atom input values), then you will need to account for that when\ninterpreting the values produced by this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n" }, { "command": [ - "fix_modify AtC control localized_lambda" + "pair_style born", + "pair_style born/omp", + "pair_style born/gpu", + "pair_style born/coul/long", + "pair_style born/coul/long/gpu", + "pair_style born/coul/long/omp", + "pair_style born/coul/msm", + "pair_style born/coul/msm/omp", + "pair_style born/coul/wolf", + "pair_style born/coul/wolf/gpu", + "pair_style born/coul/wolf/omp", + "pair_style born/coul/dsf" ], "syntax": [ - "fix_modify control localized_lambda " + "pair_style style args" ], "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "control", - "type": 1, - "choices": [] - }, - { - "arg": "localized_lambda", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", + "arg": "born/coul/wolf/omp", "type": 3, "choices": [ - "on", - "off" + "born", + "born/coul/long", + "born/coul/msm", + "born/coul/wolf", + "born/omp", + "born/gpu", + "born/coul/long/gpu", + "born/coul/long/omp", + "born/coul/msm/omp", + "born/coul/wolf/gpu", + "born/coul/wolf/omp" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control localized_lambda = name of the AtC sub-command\n* on or off = Toggles state of localization algorithm \n", - "examples": "\n```lmps\nfix_modify AtC control localized_lambda on\n```\n", - "html_filename": "atc_control_localized_lambda.html", - "short_description": "Turns the localization algorithms *on* or *off* for control algorithms\nto restrict the influence of FE coupling or boundary conditions to a\nregion near the boundary of the MD region", - "description": "Turns the localization algorithms *on* or *off* for control algorithms\nto restrict the influence of FE coupling or boundary conditions to a\nregion near the boundary of the MD region. Control algorithms will not\naffect atoms in elements not possessing faces on the boundary of the\nregion. Flux-based control is localized via row-sum lumping while\nquantity control is done by solving a truncated matrix equation.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* style = born or born/coul/long or born/coul/msm or born/coul/wolf\n* args = list of arguments for a particular style \n *      born args = cutoff \n       cutoff = global cutoff for non-Coulombic interactions (distance units) \n *      born/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/msm args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/wolf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *born/coul/dsf* args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n", + "examples": "\n```lmps\npair_style born 10.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/long 10.0\npair_style born/coul/long 10.0 8.\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/msm 10.0\npair_style born/coul/msm 10.0 8.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/wolf 0.25 10.0\npair_style born/coul/wolf 0.25 10.0 9.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/dsf 0.1 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n```\n", + "html_filename": "pair_born.html", + "short_description": "The *born* style computes the Born-Mayer-Huggins or Tosi/Fumi\npotential described in **FumiTosi**, given by\n\\[\n E = A \\exp \\left(\\frac{\\sigma - r}{\\rho} \\right) -\n \\frac{C}{r^6} + \\frac{D}{r^8} \\qquad r < r_c\\]\nwhere \\(\\sigma\\) is an interaction-dependent length parameter,\n\\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff", + "description": "The *born* style computes the Born-Mayer-Huggins or Tosi/Fumi\npotential described in **FumiTosi**, given by\n\\[\n E = A \\exp \\left(\\frac{\\sigma - r}{\\rho} \\right) -\n \\frac{C}{r^6} + \\frac{D}{r^8} \\qquad r < r_c\\]\nwhere \\(\\sigma\\) is an interaction-dependent length parameter,\n\\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff.\n\nThe styles with *coul/long* or *coul/msm* add a Coulombic term as\ndescribed for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles. An additional\ndamping factor is applied to the Coulombic term so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its\n*ewald* or *pppm* of *msm* option. The Coulombic cutoff specified for\nthis style means that pairwise interactions within this distance are\ncomputed directly; interactions outside that distance are computed in\nreciprocal space.\n\nIf one cutoff is specified for the *born/coul/long* and\n*born/coul/msm* style, it is used for both the A,C,D and Coulombic\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the A,C,D terms, and the second is the cutoff for the Coulombic\nterm.\n\nThe *born/coul/wolf* style adds a Coulombic term as described for the\nWolf potential in the [coul/wolf ](https://docs.lammps.org/pair_coul.html) pair style.\n\nThe *born/coul/dsf* style computes the Coulomb contribution with the\ndamped shifted force model as in the [coul/dsf ](https://docs.lammps.org/pair_coul.html) style.\n\nNote that these potentials are related to the [Buckingham potential ](https://docs.lammps.org/pair_buck.html).\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* \\(\\rho\\) (distance units)\n* \\(\\sigma\\) (distance units)\n* C (energy units \\* distance units\\^6)\n* D (energy units \\* distance units\\^8)\n* cutoff (distance units)\n\nThe second coefficient, rho, must be greater than zero.\n\nThe last coefficient is optional. If not specified, the global A,C,D\ncutoff specified in the pair_style command is used.\n\nFor *born/coul/long*, *born/coul/wolf* and *born/coul/dsf* no\nCoulombic cutoff can be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp(), 1/r\\^6, and 1/r\\^8 portion of the pair\ninteraction.\n\nThe *born/coul/long* pair style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option to tabulate the\nshort-range portion of the long-range Coulombic interaction.\n\nThese styles support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure.\n\nThess styles writes thei information to binary [restart ](https://docs.lammps.org/restart.html)\nfiles, so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n----------\n\nFumi and Tosi, J Phys Chem Solids, 25, 31 (1964),\nFumi and Tosi, J Phys Chem Solids, 25, 45 (1964). \n ", + "restrictions": "The *born/coul/long* style is part of the KSPACE package. It is only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *born/coul/dsf* and *born/coul/wolf* pair styles are part of the\nEXTRA-PAIR package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style buck ](https://docs.lammps.org/pair_buck.html)\n" }, { "command": [ - "angle_style cosine/shift", - "angle_style cosine/shift/omp" + "dihedral_style nharmonic", + "dihedral_style nharmonic/omp" ], "syntax": [ - "angle_style cosine/shift" + "dihedral_style nharmonic" ], "args": [ [ { - "arg": "angle_style", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "cosine/shift", + "arg": "nharmonic", "type": 3, "choices": [ - "cosine/shift", - "cosine/shift/omp" + "nharmonic", + "nharmonic/omp" ] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style cosine/shift\nangle_coeff * 10.0 45.0\n```\n", - "html_filename": "angle_cosine_shift.html", - "short_description": "The *cosine/shift* angle style uses the potential\n\\[\n E = -\\frac{U_{\\text{min}}}{2} \\left[ 1 + \\cos(\\theta-\\theta_0) \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium angle", - "description": "The *cosine/shift* angle style uses the potential\n\\[\n E = -\\frac{U_{\\text{min}}}{2} \\left[ 1 + \\cos(\\theta-\\theta_0) \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium angle. The potential is bounded\nbetween \\(-U_{\\text{min}}\\) and zero. In the neighborhood of the minimum\n\\(E = - U_{\\text{min}} + U_{\\text{min}}/4(\\theta - \\theta_0)^2\\) hence\nthe spring constant is \\(\\frac{U_{\\text{min}}}{2}\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n* \\(\\theta\\) (angle)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[angle_style cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html)\n" + "examples": "\n```lmps\ndihedral_style nharmonic\ndihedral_coeff * 3 10.0 20.0 30.0\n```\n", + "html_filename": "dihedral_nharmonic.html", + "short_description": "The *nharmonic* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,n} A_i \\cos^{i-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* ..", + "description": "The *nharmonic* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,n} A_i \\cos^{i-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* ...\n* \\(A_n\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "compute composition/atom", - "compute composition/atom/kk" + "compute ke/eff" ], "syntax": [ - "compute ID group-ID composition/atom keyword values ..." + "compute ID group-ID ke/eff" ], "args": [ [ @@ -19801,141 +19152,85 @@ export const command_docs = [ "choices": [] }, { - "arg": "composition/atom", - "type": 3, - "choices": [ - "composition/atom", - "composition/atom/kk" - ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* composition/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff \n       cutoff value = distance cutoff \n", - "examples": "\n```lmps\ncompute 1 all composition/atom\n\ncompute 1 all composition/atom cutoff 9.0\ncomm_modify cutoff 9.0\n```\n", - "html_filename": "compute_composition_atom.html", - "short_description": "\nDefine a computation that calculates a local composition vector for each\natom", - "description": "\nDefine a computation that calculates a local composition vector for each\natom. For a central atom with \\(M\\) neighbors within the neighbor cutoff sphere,\ncomposition is defined as the number of atoms of a given type\n(including the central atom) divided by (\\(M+1\\)). For a given central atom,\nthe sum of all compositions equals one.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This compute uses the number of atom types, not chemical species, assigned in\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. If an interatomic potential has two\n > species (i.e., Cu and Ni) assigned to four different atom types in\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) (i.e., 'Cu Cu Ni Ni'), the compute will\n > output four fractional values. In those cases, the user may desire an extra\n > calculation step to consolidate per-type fractions into per-species fractions.\n > This calculation can be conducted within LAMMPS using another compute such as\n > [compute reduce ](https://docs.lammps.org/compute_reduce.html), an atom-style [variable`, or as a > post-processing step. > ----------The optional keyword *cutoff* defines the distance cutoff used whensearching for neighbors. The default value is the cutoff specified bythe pair style. If no pair style is defined, then a cutoff must bedefined using this keyword. If the specified cutoff is larger thanthat of the pair_style plus neighbor skin (or no pair style isdefined), the *comm_modify cutoff* option must also be set to matchthat of the *cutoff* keyword.The neighbor list needed to compute this quantity is constructed eachtime the calculation is performed (i.e. each time a snapshot of atomsis dumped). Thus it can be inefficient to compute/dump this quantitytoo frequently.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >If you have a bonded system, then the settings of > :doc:`special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral.\n > This is the default setting for the [special_bonds > ](https://docs.lammps.org/special_bonds.html) command, and means those pairwise interactions do\n > not appear in the neighbor list. Because this compute uses the\n > neighbor list, it also means those pairs will not be included in\n > the order parameter. This difficulty can be circumvented by\n > writing a dump file, and using the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the order parameter for snapshots in the dump file. The\n > rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html) command\n > that includes all pairs in the neighbor list. \n > \n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with \\(1 + N\\) columns, where \\(N\\)\nis the number of atom types. The first column is a count of the number of atoms\nused to calculate composition (including the central atom), and each subsequent\ncolumn indicates the fraction of that atom type within the cutoff sphere.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page for an overview of LAMMPS output options.\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", - "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" -}, -{ - "command": [ - "dihedral_style helix", - "dihedral_style helix/omp" - ], - "syntax": [ - "dihedral_style helix" - ], - "args": [ - [ - { - "arg": "dihedral_style", + "arg": "ke/eff", "type": 1, "choices": [] - }, - { - "arg": "helix", - "type": 3, - "choices": [ - "helix", - "helix/omp" - ] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style helix\ndihedral_coeff 1 80.0 100.0 40.0\n```\n", - "html_filename": "dihedral_helix.html", - "short_description": "The *helix* dihedral style uses the potential\n\\[\n E = A [1 - \\cos(\\theta)] + B [1 + \\cos(3 \\theta)] +\n C [1 + \\cos(\\theta + \\frac{\\pi}{4})]\\]\nThis coarse-grain dihedral potential is described in **Guo**", - "description": "The *helix* dihedral style uses the potential\n\\[\n E = A [1 - \\cos(\\theta)] + B [1 + \\cos(3 \\theta)] +\n C [1 + \\cos(\\theta + \\frac{\\pi}{4})]\\]\nThis coarse-grain dihedral potential is described in **Guo**.\nFor dihedral angles in the helical region, the energy function is\nrepresented by a standard potential consisting of three minima, one\ncorresponding to the trans (t) state and the other to gauche states\n(g+ and g-). The paper describes how the \\(A\\), \\(B\\) and,\n\\(C\\) parameters are chosen so as to balance secondary (largely\ndriven by local interactions) and\ntertiary structure (driven by long-range interactions).\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A\\) (energy)\n* \\(B\\) (energy)\n* \\(C\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Guo)** Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996). \n ", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/eff = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all ke/eff\n```\n", + "html_filename": "compute_ke_eff.html", + "short_description": "Define a computation that calculates the kinetic energy of motion of a\ngroup of eFF particles (nuclei and electrons), as modeled with the\n[electronic force field ](https://docs.lammps.org/pair_eff.html)", + "description": "Define a computation that calculates the kinetic energy of motion of a\ngroup of eFF particles (nuclei and electrons), as modeled with the\n[electronic force field ](https://docs.lammps.org/pair_eff.html).\n\nThe kinetic energy for each nucleus is computed as \\(\\frac{1}{2} m\nv^2\\) and the kinetic energy for each electron is computed as\n\\(\\frac{1}{2}(m_e v^2 + \\frac{3}{4} m_e s^2)\\), where \\(m\\)\ncorresponds to the nuclear mass, \\(m_e\\) to the electron mass, \\(v\\)\nto the translational velocity of each particle, and \\(s\\) to the radial\nvelocity of the electron, respectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" and \"radial\" (only for electrons) kinetic\nenergy, calculated by the simple formula above. For thermodynamic\noutput, the *ke* keyword infers kinetic energy from the temperature of\nthe system with \\(\\frac{1}{2} k_B T\\) of energy for each degree of\nfreedom. For the eFF temperature computation via the [computetemp_eff ](https://docs.lammps.org/compute_temp_eff.html) command, these are the same. But\ndifferent computes that calculate temperature can subtract out different\nnon-thermal components of velocity and/or include other degrees of\nfreedom.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The temperature in eFF models should be monitored via\n > the [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command, which can be\n > printed with thermodynamic output by using the\n > [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command, as shown in the following\n > example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nSee [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html).\n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none\n" }, { "command": [ - "pair_style oxdna/excv", - "pair_style oxdna/stk", - "pair_style oxdna/hbond", - "pair_style oxdna/xstk" + "compute dipole" ], "syntax": [ - "pair_style style1" + "compute ID group-ID style arg" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "style1", + "arg": "ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style1 = *hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk*\n\n* style2 = oxdna/excv or oxdna/stk or oxdna/hbond or oxdna/xstk or oxdna/coaxstk\n* args = list of arguments for these particular styles \n *      oxdna/stk args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.3448 (LJ units) or 8.01727944817084 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.6568 (LJ units) or 0.005279604 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxdna/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 1.077 (LJ units) or 6.42073911784652 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs \n", - "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna/stk seqdep 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxdna/hbond seqdep 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxdna/hbond seqdep 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxdna/xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65\n\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_lj.cgdna\npair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna_lj.cgdna\npair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff * * oxdna/xstk oxdna_lj.cgdna\npair_coeff * * oxdna/coaxstk oxdna_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxdna/stk seqdep 300.0 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 1 4 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 2 3 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 -0.65 2.0 -0.65\n\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_real.cgdna\npair_coeff * * oxdna/stk seqav 300.0 8.01727944817084 0.005279604 oxdna_real.cgdna\npair_coeff * * oxdna/hbond seqav oxdna_real.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_real.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_real.cgdna\npair_coeff * * oxdna/xstk oxdna_real.cgdna\npair_coeff * * oxdna/coaxstk oxdna_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", - "html_filename": "pair_oxdna.html", - "short_description": "The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA\nforce field for coarse-grained modelling of DNA", - "description": "The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA\nforce field for coarse-grained modelling of DNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxdna/excv*, the stacking *oxdna/stk*,\ncross-stacking *oxdna/xstk* and coaxial stacking interaction\n*oxdna/coaxstk* as well as the hydrogen-bonding interaction\n*oxdna/hbond* between complementary pairs of nucleotides on opposite\nstrands. Average sequence or sequence-dependent stacking and\nbase-pairing strengths are supported :ref:[(Sulc) ](https://docs.lammps.org/Sulc1>`. Quasi-uniquebase-pairing between nucleotides can be achieved by using morecomplementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11,13-16 and 14-15, etc. This prevents the hybridization of in principlecomplementary bases within Ntypes/4 bases up and down along thebackbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to :ref:`(Ouldridge-DPhil)` and **Ouldridge1** for a detaileddescription of the oxDNA force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA > bond style *oxdna/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxdna/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 and > corresponding *real unit* equivalents in the above examples) and the > first coefficient after *oxdna/hbond* (seq=seqdep in the above > example). When using a Langevin thermostat, e.g. through [fix > langevin ](https://docs.lammps.org/fix_langevin.html) or [fix nve/dotc/langevin > ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature coefficients have to be > matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. Asimple python setup tool which creates single straight or helical DNAstrands, DNA duplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich1** in any publication that usesthis implementation. An updated documentation that contains generalinformation on the model, its implementation and performance as well asthe structure of the data and input file can be found `here\n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk\npair_coeff * * oxdna/excv oxdna_lj.cgdna\npair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna\npair_coeff * * oxdna/xstk oxdna_lj.cgdna\npair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65\n```\nwill read the stacking and coaxial stacking potential parameters from\nthe manual specification and all others from the potential file\n*oxdna_lj.cgdna*.\n\nThere are sample potential files for each unit style in the\n``potentials`` directory of the LAMMPS distribution. The potential file\nunit system must align with the units defined via the [units](https://docs.lammps.org/units.html) command. For conversion between different *LJ* and *real* unit\nsystems for oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool\nassumes similar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc1)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Ouldridge1)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich1)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n \n**(Ouldridge-DPhil1)** T.E. Ouldridge, Coarse-grained modelling of DNA and DNA self-assembly, DPhil. University of Oxford (2011). \n ", - "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html),\n[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" -}, -{ - "command": [ - "dihedral_style harmonic", - "dihedral_style harmonic/intel", - "dihedral_style harmonic/kk", - "dihedral_style harmonic/omp" - ], - "syntax": [ - "dihedral_style harmonic" - ], - "args": [ - [ + }, { - "arg": "dihedral_style", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "harmonic", + "arg": "dipole/tip4p", "type": 3, "choices": [ - "harmonic", - "harmonic/intel", - "harmonic/kk", - "harmonic/omp" + "dipole", + "dipole/tip4p" ] + }, + { + "arg": "arg", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style harmonic\ndihedral_coeff 1 80.0 1 2\n```\n", - "html_filename": "dihedral_harmonic.html", - "short_description": "The *harmonic* dihedral style uses the potential\n\\[\n E = K [ 1 + d \\cos (n \\phi) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (integer >= 0)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Here are important points to take note of when defining LAMMPS\n > dihedral coefficients for the harmonic style, so that they are\n > compatible with how harmonic dihedrals are defined by other force\n > fields: \n > \n\n* The LAMMPS convention is that the trans position = 180 degrees, while\n in some force fields trans = 0 degrees", - "description": "The *harmonic* dihedral style uses the potential\n\\[\n E = K [ 1 + d \\cos (n \\phi) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (integer >= 0)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Here are important points to take note of when defining LAMMPS\n > dihedral coefficients for the harmonic style, so that they are\n > compatible with how harmonic dihedrals are defined by other force\n > fields: \n > \n\n* The LAMMPS convention is that the trans position = 180 degrees, while\n in some force fields trans = 0 degrees.\n* Some force fields reverse the sign convention on \\(d\\).\n* Some force fields let \\(n\\) be positive or negative which corresponds to\n \\(d = 1\\) or \\(d = -1\\) for the harmonic style.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = dipole or dipole/tip4p\n* arg = mass or geometry = use COM or geometric center for charged chunk correction (optional) \n", + "examples": "\n```lmps\ncompute 1 fluid dipole\ncompute dw water dipole geometry\ncompute dw water dipole/tip4p\n```\n", + "html_filename": "compute_dipole.html", + "short_description": "Define a computation that calculates the dipole vector and total dipole\nfor a group of atoms", + "description": "Define a computation that calculates the dipole vector and total dipole\nfor a group of atoms.\n\nThese computes calculate the x,y,z coordinates of the dipole vector and\nthe total dipole moment for the atoms in the compute group. This\nincludes all effects due to atoms passing through periodic boundaries.\nFor a group with a net charge the resulting dipole is made position\nindependent by subtracting the position vector of the center of mass or\ngeometric center times the net charge from the computed dipole\nvector. Both per-atom charges and per-atom dipole moments, if present,\ncontribute to the computed dipole.\n\nCompute *dipole/tip4p* includes adjustments for the charge carrying\npoint M in molecules with TIP4P water geometry. The corresponding\nparameters are extracted from the pair style.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the dipole in \"unwrapped\"\n > form, by using the image flags associated with each atom. See the\n > [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data > ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and how they are\n > set for each atom. You can reset the image flags (e.g., to 0) before\n > invoking this compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThese computes calculate a global scalar containing the magnitude of the\ncomputed dipole moment and a global vector of length 3 with the dipole\nvector. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview\nof LAMMPS output options.\n\nThe computed values are \"intensive\". The array values will be in\ndipole units (i.e., charge [units ](https://docs.lammps.org/units.html) times distance\n[units ](https://docs.lammps.org/units.html)).\n", + "restrictions": "Compute style *dipole/tip4p* is part of the EXTRA-COMPUTE package. It is\nonly enabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCompute style *dipole/tip4p* can only be used with tip4p pair styles.\n", + "related": "[compute dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html)\n" }, { "command": [ - "fix balance" + "fix nvt", + "fix nvt/gpu", + "fix nvt/intel", + "fix nvt/kk", + "fix nvt/omp", + "fix npt", + "fix npt/gpu", + "fix npt/intel", + "fix npt/kk", + "fix npt/omp", + "fix nph", + "fix nph/kk", + "fix nph/omp" ], "syntax": [ - "fix ID group-ID balance Nfreq thresh style args keyword args ..." + "fix ID group-ID style_name keyword value ..." ], "args": [ [ @@ -19955,63 +19250,50 @@ export const command_docs = [ "choices": [] }, { - "arg": "balance", - "type": 1, - "choices": [] - }, - { - "arg": "Nfreq", - "type": 2, - "choices": [] - }, - { - "arg": "thresh", - "type": 2, - "choices": [] - }, - { - "arg": "report", + "arg": "nph/omp", "type": 3, "choices": [ - "shift", - "rcb", - "report" + "nvt", + "npt", + "nph", + "nvt/gpu", + "nvt/intel", + "nvt/kk", + "nvt/omp", + "npt/gpu", + "npt/intel", + "npt/kk", + "npt/omp", + "nph/kk", + "nph/omp" ] }, { - "arg": "args", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "out", - "type": 3, - "choices": [ - "weight", - "out" - ] - }, - { - "arg": "args", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* balance = style name of this fix command\n* Nfreq = perform dynamic load balancing every this many steps\n* thresh = imbalance threshold that must be exceeded to perform a re-balance\n* style = shift or rcb or report \n *        shift args = dimstr Niter stopthresh \n         dimstr = sequence of letters containing x or y or *z*, each not more than once \n         Niter = # of times to iterate within each dimension of dimstr sequence \n         stopthresh = stop balancing when this imbalance threshold is reached \n *        rcb args = none \n *        report args = none \n* zero or more keyword/arg pairs may be appended\n* keyword = weight or out \n *        weight style args = use weighted particle counts for the balancing \n         style = group or neigh or time or var or store \n         group args = Ngroup group1 weight1 group2 weight2 ... \n         Ngroup = number of groups with assigned weights \n         group1, group2, ... = group IDs \n         weight1, weight2, ... = corresponding weight factors \n         neigh factor = compute weight based on number of neighbors \n         factor = scaling factor (> 0) \n         time factor = compute weight based on time spend computing \n         factor = scaling factor (> 0) \n         var name = take weight from atom-style variable \n         name = name of the atom-style variable \n         store name = store weight in custom atom property defined by [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command \n         name = atom property name (without d\\_ prefix) \n *        *sort* arg = no or yes \n *        out arg = filename \n         filename = write each processor's subdomain to a file, at each re-balancing \n", - "examples": "\n```lmps\nfix 2 all balance 1000 1.05 shift x 10 1.05\nfix 2 all balance 100 0.9 shift xy 20 1.1 out tmp.balance\nfix 2 all balance 100 0.9 shift xy 20 1.1 weight group 3 substrate 3.0 solvent 1.0 solute 0.8 out tmp.balance\nfix 2 all balance 100 1.0 shift x 10 1.1 weight time 0.8\nfix 2 all balance 100 1.0 shift xy 5 1.1 weight var myweight weight neigh 0.6 weight store allweight\nfix 2 all balance 1000 1.1 rcb\n```\n", - "html_filename": "fix_balance.html", - "short_description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of\nparticles and thus the computational cost (load) evenly across\nprocessors", - "description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of\nparticles and thus the computational cost (load) evenly across\nprocessors. The load balancing is \"dynamic\" in the sense that\nre-balancing is performed periodically during the simulation. To\nperform \"static\" balancing, before or between runs, see the\n[balance ](https://docs.lammps.org/balance.html) command.\n\nThe *report* balance style only computes the load imbalance but\ndoes not attempt any re-balancing. This way the load imbalance\ninformation can be used otherwise, for instance for stopping a\nrun with [fix halt ](https://docs.lammps.org/fix_halt.html).\n\nLoad-balancing is typically most useful if the particles in the\nsimulation box have a spatially-varying density distribution or\nwhere the computational cost varies significantly between different\natoms (e.g., a model of a vapor/liquid interface, or a solid with\nan irregular-shaped geometry containing void regions, or\n[hybrid pair style simulations ](https://docs.lammps.org/pair_hybrid.html) that combine\npair styles with different computational cost). In these cases, the\nLAMMPS default of dividing the simulation box volume into a\nregular-spaced grid of 3d bricks, with one equal-volume subdomain\nper processor, may assign numbers of particles per processor in a\nway that the computational effort varies significantly. This can\nlead to poor performance when the simulation is run in parallel.\n\nThe balancing can be performed with or without per-particle weighting.\nWith no weighting, the balancing attempts to assign an equal number of\nparticles to each processor. With weighting, the balancing attempts\nto assign an equal aggregate computational weight to each processor,\nwhich typically induces a different number of atoms assigned to each\nprocessor.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The weighting options listed above are documented with the\n > [balance ](https://docs.lammps.org/balance.html) command in :ref:`this section of the balance\n > command ` doc page. That section\n > describes the various weighting options and gives a few examples of\n > how they can be used. The weighting options are the same for both the\n > fix balance and [balance ](https://docs.lammps.org/balance.html) commands. \n > \n\nNote that the [processors ](https://docs.lammps.org/processors.html) command allows some control\nover how the box volume is split across processors. Specifically, for\na \\(P_x \\times P_y \\times P_z\\) grid of processors, it allows choices of\n\\(P_x\\), \\(P_y\\), and \\(P_z\\) subject to the constraint that\n\\(P_x P_y P_z = P\\), the total number of processors.\nThis is sufficient to achieve good load-balance for\nsome problems on some processor counts. However, all the processor\nsubdomains will still have the same shape and the same volume.\n\nOn a particular time step, a load-balancing operation is only performed\nif the current \"imbalance factor\" in particles owned by each processor\nexceeds the specified *thresh* parameter. The imbalance factor is\ndefined as the maximum number of particles (or weight) owned by any\nprocessor, divided by the average number of particles (or weight) per\nprocessor. Thus, an imbalance factor of 1.0 is perfect balance.\n\nAs an example, for 10000 particles running on 10 processors, if the\nmost heavily loaded processor has 1200 particles, then the imbalance factor is\n1.2, meaning there is a 20% imbalance. Note that re-balances can be\nforced even if the current balance is perfect (1.0) be specifying a\n*thresh* < 1.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command attempts to minimize the imbalance factor, as\n > defined above. But depending on the method a perfect balance (1.0)\n > may not be achieved. For example, \"grid\" methods (defined below) that\n > create a logical 3d grid cannot achieve perfect balance for many\n > irregular distributions of particles. Likewise, if a portion of the\n > system is a perfect, non-rotated lattice (e.g., the initial system is\n > generated by the [create_atoms ](https://docs.lammps.org/create_atoms.html) command with no\n > rotations), then \"grid\" methods may be unable to achieve exact balance.\n > This is because entire lattice planes will be owned or not owned by a single\n > processor. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The imbalance factor is also an estimate of the maximum speed-up\n > you can hope to achieve by running a perfectly balanced simulation\n > versus an imbalanced one. In the example above, the 10000-particle\n > simulation could run up to 20% faster if it were perfectly balanced,\n > versus when imbalanced. However, computational cost is not strictly\n > proportional to particle count, and changing the relative size and\n > shape of processor subdomains may lead to additional computational\n > and communication overheads (e.g., in the PPPM solver used via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command). Thus, you should benchmark\n > the run times of a simulation before and after balancing. \n > \n\n----------\n\nThe method used to perform a load balance is specified by one of the\nlisted styles, which are described in detail below. There are two kinds\nof styles.\n\nThe *shift* style is a \"grid\" method which produces a logical 3d grid\nof processors. It operates by changing the cutting planes (or lines)\nbetween processors in 3d (or 2d), to adjust the volume (area in 2d)\nassigned to each processor, as in the following 2d diagram where\nprocessor subdomains are shown and atoms are colored by the processor\nthat owns them.\n \n | | | | \n |---|---|---| \n | ![Image](img/balance_uniform.jpg) | ![Image](img/balance_nonuniform.jpg) | ![Image](img/balance_rcb.jpg) | \n\n\nThe leftmost diagram is the default partitioning of the simulation box\nacross processors (one sub-box for each of 16 processors); the middle\ndiagram is after a \"grid\" method has been applied. The *rcb* style is a\n\"tiling\" method which does not produce a logical 3d grid of processors.\nRather it tiles the simulation domain with rectangular sub-boxes of\nvarying size and shape in an irregular fashion so as to have equal\nnumbers of particles (or weight) in each sub-box, as in the rightmost\ndiagram above.\n\nThe \"grid\" methods can be used with either of the\n[comm_style ](https://docs.lammps.org/comm_style.html) command options, *brick* or *tiled* . The\n\"tiling\" methods can only be used with [comm_style tiled ](https://docs.lammps.org/comm_style.html).\n\nWhen a \"grid\" method is specified, the current domain partitioning can\nbe either a logical 3d grid or a tiled partitioning. In the former\ncase, the current logical 3d grid is used as a starting point and\nchanges are made to improve the imbalance factor. In the latter case,\nthe tiled partitioning is discarded and a logical 3d grid is created\nwith uniform spacing in all dimensions. This is the starting point\nfor the balancing operation.\n\nWhen a \"tiling\" method is specified, the current domain partitioning\n(\"grid\" or \"tiled\") is ignored, and a new partitioning is computed\nfrom scratch.\n\n----------\n\nThe *group-ID* is ignored. However the impact of balancing on\ndifferent groups of atoms can be affected by using the *group* weight\nstyle as described below.\n\nThe \\(N_\\text{freq}\\) setting determines how often a re-balance is\nperformed. If \\(N_\\text{freq} > 0\\), then re-balancing will occur every\n\\(N_\\text{freq}\\) steps. Each time a re-balance occurs, a reneighboring is\ntriggered, so \\(N_\\text{freq}\\) should not be too small. If\n\\(N_\\text{freq} = 0\\), then re-balancing will be done every time\nreneighboring normally occurs, as determined by the\nthe [neighbor ](https://docs.lammps.org/neighbor.html) and [neigh_modify ](https://docs.lammps.org/neigh_modify.html)\ncommand settings.\n\nOn re-balance steps, re-balancing will only be attempted if the current\nimbalance factor, as defined above, exceeds the *thresh* setting.\n\n----------\n\nThe *shift* style invokes a \"grid\" method for balancing, as described\nabove. It changes the positions of cutting planes between processors\nin an iterative fashion, seeking to reduce the imbalance factor.\n\nThe *dimstr* argument is a string of characters, each of which must be\n*x* or *y* or *z*. Each character can appear zero or one time,\nsince there is no advantage to balancing on a dimension more than\nonce. You should normally only list dimensions where you expect there\nto be a density variation in the particles.\n\nBalancing proceeds by adjusting the cutting planes in each of the\ndimensions listed in *dimstr*, one dimension at a time. For a single\ndimension, the balancing operation (described below) is iterated on up\nto \\(N_\\text{iter}\\) times. After each dimension finishes, the imbalance\nfactor is re-computed, and the balancing operation halts if the *stopthresh*\ncriterion is met.\n\nA re-balance operation in a single dimension is performed using a\ndensity-dependent recursive multisectioning algorithm, where the\nposition of each cutting plane (line in 2d) in the dimension is\nadjusted independently. This is similar to a recursive bisectioning\nfor a single value, except that the bounds used for each bisectioning\ntake advantage of information from neighboring cuts if possible, as\nwell as counts of particles at the bounds on either side of each cuts,\nwhich themselves were cuts in previous iterations. The latter is used\nto infer a density of particles near each of the current cuts. At\neach iteration, the count of particles on either side of each plane is\ntallied. If the counts do not match the target value for the plane,\nthe position of the cut is adjusted based on the local density. The\nlow and high bounds are adjusted on each iteration, using new count\ninformation, so that they become closer together over time. Thus as\nthe recursion progresses, the count of particles on either side of the\nplane gets closer to the target value.\n\nThe density-dependent part of this algorithm is often an advantage\nwhen you re-balance a system that is already nearly balanced. It\ntypically converges more quickly than the geometric bisectioning\nalgorithm used by the [balance ](https://docs.lammps.org/balance.html) command. However, if can\nbe a disadvantage if you attempt to re-balance a system that is far\nfrom balanced, and converge more slowly. In this case you probably\nwant to use the [balance ](https://docs.lammps.org/balance.html) command before starting a run,\nso that you begin the run with a balanced system.\n\nOnce the re-balancing is complete and final processor subdomains\nassigned, particles migrate to their new owning processor as part of\nthe normal reneighboring procedure.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >At each re-balance operation, the bisectioning for each cutting\n > plane (line in 2d) typically starts with low and high bounds separated\n > by the extent of a processor's subdomain in one dimension. The size\n > of this bracketing region shrinks based on the local density, as\n > described above, which should typically be 1/2 or more every\n > iteration. Thus if \\(N_\\text{iter}\\) is specified as 10, the cutting\n > plane will typically be positioned to better than 1 part in 1000 accuracy\n > (relative to the perfect target position). For \\(N_\\text{iter} = 20\\),\n > it will be accurate to better than 1 part in a million. Thus there is no\n > need to set \\(N_\\text{iter}\\) to a large value. This is especially true\n > if you are re-balancing often enough that each time you expect only an\n > incremental adjustment in the cutting planes is necessary. LAMMPS will\n > check if the threshold accuracy is reached (in a dimension) is less\n > iterations than \\(N_\\text{iter}\\) and exit early. \n > \n\n----------\n\nThe *rcb* style invokes a \"tiled\" method for balancing, as described\nabove. It performs a recursive coordinate bisectioning (RCB) of the\nsimulation domain. The basic idea is as follows.\n\nThe simulation domain is cut into two boxes by an axis-aligned cut in\nthe longest dimension, leaving one new box on either side of the cut.\nAll the processors are also partitioned into two groups, half assigned\nto the box on the lower side of the cut, and half to the box on the\nupper side. If the processor count is odd, one side gets an extra\nprocessor. The cut is positioned so that the number of atoms in the\nlower box is exactly the number that the processors assigned to that\nbox should own for load balance to be perfect. This also makes load\nbalance for the upper box perfect. The positioning is done\niteratively, by a bisectioning method. Note that counting atoms on\neither side of the cut requires communication between all processors\nat each iteration.\n\nThat is the procedure for the first cut. Subsequent cuts are made\nrecursively, in exactly the same manner. The subset of processors\nassigned to each box make a new cut in the longest dimension of that\nbox, splitting the box, the subset of processors, and the atoms in\nthe box in two. The recursion continues until every processor is\nassigned a sub-box of the entire simulation domain, and owns the atoms\nin that sub-box.\n\n----------\n\nThe *sort* keyword determines whether the communication of per-atom\ndata to other processors during load-balancing will be random or\ndeterministic. Random is generally faster; deterministic will ensure\nthe new ordering of atoms on each processor is the same each time the\nsame simulation is run. This can be useful for debugging purposes.\nSince the fix balance command is performed during timestepping, the\ndefault is *no* so that sorting is not performed.\n\nThe *out* keyword writes text to the specified *filename* with the\nresults of each re-balancing operation. The file contains the bounds\nof the subdomain for each processor after the balancing operation\ncompletes. The format of the file is compatible with the\n[Pizza.py ](https://lammps.github.io/pizza) *mdump* tool which has support for manipulating and\nvisualizing mesh files. An example is shown here for a balancing by four\nprocessors for a 2d problem:\n\n```\nITEM: TIMESTEP\n0\nITEM: NUMBER OF NODES\n16\nITEM: BOX BOUNDS\n0 10\n0 10\n0 10\nITEM: NODES\n1 1 0 0 0\n2 1 5 0 0\n3 1 5 5 0\n4 1 0 5 0\n5 1 5 0 0\n6 1 10 0 0\n7 1 10 5 0\n8 1 5 5 0\n9 1 0 5 0\n10 1 5 5 0\n11 1 5 10 0\n12 1 10 5 0\n13 1 5 5 0\n14 1 10 5 0\n15 1 10 10 0\n16 1 5 10 0\nITEM: TIMESTEP\n0\nITEM: NUMBER OF SQUARES\n4\nITEM: SQUARES\n1 1 1 2 3 4\n2 1 5 6 7 8\n3 1 9 10 11 12\n4 1 13 14 15 16\n```\nThe coordinates of all the vertices are listed in the NODES section, five\nper processor. Note that the four subdomains share vertices, so there\nwill be duplicate nodes in the list.\n\nThe \"SQUARES\" section lists the node IDs of the four vertices in a\nrectangle for each processor (1 to 4).\n\nFor a 3d problem, the syntax is similar but with eight vertices listed for\neach processor instead of four, and \"SQUARES\" replaced by \"CUBES\".\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes a global scalar which is the imbalance factor\nafter the most recent re-balance and a global vector of length 3 with\nadditional information about the most recent re-balancing. The three\nvalues in the vector are as follows:\n\n #. max # of particles per processor\n #. total # iterations performed in last re-balance\n #. imbalance factor right before the last re-balance was performed\n\nAs explained above, the imbalance factor is the ratio of the maximum\nnumber of particles (or total weight) on any processor to the average\nnumber of particles (or total weight) per processor.\n\nThese quantities can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar and vector values calculated\nby this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n", - "restrictions": "For 2d simulations, the *z* style cannot be used, nor can *z*\nappear in *dimstr* for the *shift* style.\n\nBalancing through recursive bisectioning (\\ *rcb* style) requires\n[comm_style tiled ](https://docs.lammps.org/comm_style.html)\\ .\n", - "related": "[group ](https://docs.lammps.org/group.html), [processors ](https://docs.lammps.org/processors.html), [balance ](https://docs.lammps.org/balance.html),\n[comm_style ](https://docs.lammps.org/comm_style.html)\n\n.. _pizza: https://lammps.github.io/pizza\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt or npt or nph\n* one or more keyword/value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or ptemp or dilate or scalexy or scaleyz or scalexz or flip or fixedpoint or update \n       temp values = Tstart Tstop Tdamp \n       Tstart,Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       pchain value = N \n       N length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = M \n       M = number of sub-cycles to perform on thermostat \n       ploop value = M \n       M = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = Df \n       Df = drag factor added to barostat/thermostat (0.0 = no drag) \n       ptemp value = Ttarget \n       Ttarget = target temperature for barostat \n       dilate value = dilate-group-ID \n       dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n       scalexy value = yes or no = scale xy with ly \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       fixedpoint values = x y z \n       x,y,z = perform barostat dilation/contraction around this point (distance units) \n       update value = dipole or dipole/dlm \n       dipole = update dipole orientation (only for sphere variants) \n       dipole/dlm = use DLM integrator to update dipole orientation (only for sphere variants) \n", + "examples": "\n```lmps\nfix 1 all nvt temp 300.0 300.0 100.0\nfix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0\nfix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\n", + "html_filename": "fix_nh.html", + "short_description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the canonical (nvt),\nisothermal-isobaric (npt), and isenthalpic (nph) ensembles", + "description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the canonical (nvt),\nisothermal-isobaric (npt), and isenthalpic (nph) ensembles. This\nupdates the position and velocity for atoms in the group each\ntimestep.\n\nThe thermostatting and barostatting is achieved by adding some dynamic\nvariables which are coupled to the particle velocities\n(thermostatting) and simulation domain dimensions (barostatting). In\naddition to basic thermostatting and barostatting, these fixes can\nalso create a chain of thermostats coupled to the particle thermostat,\nand another chain of thermostats coupled to the barostat\nvariables. The barostat can be coupled to the overall box volume, or\nto individual dimensions, including the *xy*, *xz* and *yz* tilt\ndimensions. The external pressure of the barostat can be specified as\neither a scalar pressure (isobaric ensemble) or as components of a\nsymmetric stress tensor (constant stress ensemble). When used\ncorrectly, the time-averaged temperature and stress tensor of the\nparticles will match the target values specified by Tstart/Tstop and\nPstart/Pstop.\n\nThe equations of motion used are those of Shinoda et al in\n**nh-Shinoda**, which combine the hydrostatic equations of\nMartyna, Tobias and Klein in **nh-Martyna** with the strain\nenergy proposed by Parrinello and Rahman in\n**nh-Parrinello**. The time integration schemes closely\nfollow the time-reversible measure-preserving Verlet and rRESPA\nintegrators derived by Tuckerman et al in **nh-Tuckerman**.\n\n----------\n\nThe thermostat parameters for fix styles *nvt* and *npt* are specified\nusing the *temp* keyword. Other thermostat-related keywords are\n*tchain*, *tloop* and *drag*, which are discussed below.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles. The translational degrees of freedom can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature at each timestep is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The atoms in the\nfix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. Note that this is NOT the same as 100 time units for\n > most [units ](https://docs.lammps.org/units.html) settings. A simple way to ensure this, is\n > via using an [immediate variable ](https://docs.lammps.org/variable.html) expression accessing\n > the thermo property 'dt', which is the length of the time step. Example: \n > \n\n\n```lmps\nfix 1 all nvt temp 300.0 300.0 $(100.0*dt)\n```\n----------\n\nThe barostat parameters for fix styles *npt* and *nph* is specified\nusing one or more of the *iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*,\n*xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify all 6 components of an external stress tensor, and\nto couple various of these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation.\n\nOther barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *drag*, and *dilate*, which are discussed below.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, *xy*, *xz*, *yz*\nkeywords, which correspond to the 6 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. If\nthe *xy* keyword is used, the xy tilt factor will change. A box\ndimension will not change if that component is not specified, although\nyou have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover barostat will not work well for arbitrary values\n > of *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\nThe relaxation rate of the barostat is set by its inertia \\(W\\):\n\\[\n W = (N + 1) k_B T_{\\rm target} P_{\\rm damp}^2\\]\nwhere \\(N\\) is the number of atoms, \\(k_B\\) is the Boltzmann constant,\nand \\(T_{\\rm target}\\) is the target temperature of the barostat **nh-Martyna**.\nIf a thermostat is defined, \\(T_{\\rm target}\\) is the target temperature\nof the thermostat. If a thermostat is not defined, \\(T_{\\rm target}\\)\nis set to the current temperature of the system when the barostat is initialized.\nIf this temperature is too low the simulation will quit with an error.\nNote: in previous versions of LAMMPS, \\(T_{\\rm target}\\) would default to\na value of 1.0 for *lj* units and 300.0 otherwise if the system had a temperature\nof exactly zero.\n\nIf a thermostat is not specified by this fix, \\(T_{\\rm target}\\) can be\nmanually specified using the *Ptemp* parameter. This may be useful if the\nbarostat is initialized when the current temperature does not reflect the\nsteady state temperature of the system. This keyword may also be useful in\nathermal simulations where the temperature is not well defined.\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. This option should\nbe used with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin. Also note that for atoms not in the fix\ngroup, a separate time integration fix like [fix nve ](https://docs.lammps.org/fix_nve.html) or\n[fix nvt ](https://docs.lammps.org/fix_nh.html) can be used on them, independent of whether they\nare dilated or not.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Pstart Pstop Pdamp\" is the same as\nspecifying these 7 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy 0.0 0.0 Pdamp\nyz 0.0 0.0 Pdamp\nxz 0.0 0.0 Pdamp\ncouple none\n```\n----------\n\nIn some cases (e.g. for solids) the pressure (volume) and/or\ntemperature of the system can oscillate undesirably when a Nose/Hoover\nbarostat and thermostat is applied. The optional *drag* keyword will\ndamp these oscillations, although it alters the Nose/Hoover equations.\nA value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.\nA non-zero value adds a drag term; the larger the value specified, the\ngreater the damping effect. Performing a short run and monitoring the\npressure and temperature is the best way to determine if the drag term\nis working. Typically a value between 0.2 to 2.0 is sufficient to\ndamp oscillations after a few periods. Note that use of the drag\nkeyword will interfere with energy conservation and will also change\nthe distribution of positions and velocities so that they do not\ncorrespond to the nominal NVT, NPT, or NPH ensembles.\n\nAn alternative way to control initial oscillations is to use chain\nthermostats. The keyword *tchain* determines the number of thermostats\nin the particle thermostat. A value of 1 corresponds to the original\nNose-Hoover thermostat. The keyword *pchain* specifies the number of\nthermostats in the chain thermostatting the barostat degrees of\nfreedom. A value of 0 corresponds to no thermostatting of the\nbarostat variables.\n\nThe *mtk* keyword controls whether or not the correction terms due to\nMartyna, Tuckerman, and Klein are included in the equations of motion\n**nh-Martyna**. Specifying *no* reproduces the original\nHoover barostat, whose volume probability distribution function\ndiffers from the true NPT and NPH ensembles by a factor of 1/V. Hence\nusing *yes* is more correct, but in many cases the difference is\nnegligible.\n\nThe keyword *tloop* can be used to improve the accuracy of integration\nscheme at little extra cost. The initial and final updates of the\nthermostat variables are broken up into *tloop* sub-steps, each of\nlength *dt* /\\ *tloop* . This corresponds to using a first-order\nSuzuki-Yoshida scheme **nh-Tuckerman**. The keyword *ploop*\ndoes the same thing for the barostat thermostat.\n\nThe keyword *nreset* controls how often the reference dimensions used\nto define the strain energy are reset. If this keyword is not used,\nor is given a value of zero, then the reference dimensions are set to\nthose of the initial simulation domain and are never changed. If the\nsimulation domain changes significantly during the simulation, then\nthe final average pressure tensor will differ significantly from the\nspecified values of the external stress tensor. A value of *nstep*\nmeans that every *nstep* timesteps, the reference dimensions are set\nto those of the current simulation domain.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when barostatting triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\nThe *fixedpoint* keyword specifies the fixed point for barostat volume\nchanges. By default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle trajectories are unaffected by the\nchosen value, except for a time-dependent constant translation of\npositions.\n\nIf the *update* keyword is used with the *dipole* value, then the\norientation of the dipole moment of each particle is also updated\nduring the time integration. This option should be used for models\nwhere a dipole moment is assigned to finite-size particles,\ne.g. spheroids via use of the [atom_style hybrid sphere dipole ](https://docs.lammps.org/atom_style.html) command.\n\nThe default dipole orientation integrator can be changed to the\nDullweber-Leimkuhler-McLachlan integration scheme\n**nh-Dullweber** when using *update* with the value\n*dipole/dlm* . This integrator is symplectic and time-reversible,\ngiving better energy conservation and allows slightly longer timesteps\nat only a small additional computational cost.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using a barostat coupled to tilt dimensions *xy*, *xz*, *yz* can\n > sometimes result in arbitrarily large values of the tilt dimensions,\n > i.e. a dramatically deformed simulation box. LAMMPS allows the tilt\n > factors to grow a small amount beyond the normal limit of half the box\n > length (0.6 times the box length), and then performs a box \"flip\" to\n > an equivalent periodic cell. See the discussion of the *flip* keyword\n > above, to allow this bound to be exceeded, if desired. \n > \n\nThe flip operation is described in more detail in the page for\n[fix deform ](https://docs.lammps.org/fix_deform.html). Both the barostat dynamics and the atom\ntrajectories are unaffected by this operation. However, if a tilt\nfactor is incremented by a large amount (1.5 times the box length) on\na single timestep, LAMMPS can not accommodate this event and will\nterminate the simulation with an error. This error typically indicates\nthat there is something badly wrong with how the simulation was\nconstructed, such as specifying values of *Pstart* that are too far\nfrom the current stress value, or specifying a timestep that is too\nlarge. Triclinic barostatting should be used with care. This also is\ntrue for other barostat styles, although they tend to be more\nforgiving of insults. In particular, it is important to recognize that\nequilibrium liquids can not support a shear stress and that\nequilibrium solids can not support shear stresses that exceed the\nyield stress.\n\nOne exception to this rule is if the first dimension in the tilt factor\n(x for xy) is non-periodic. In that case, the limits on the tilt\nfactor are not enforced, since flipping the box in that dimension does\nnot change the atom positions due to non-periodicity. In this mode,\nif you tilt the system to extreme angles, the simulation will simply\nbecome inefficient due to the highly skewed simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, these fixes\n > perform thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > fix nvt and fix npt should not normally be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)\n > commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nThese fixes compute a temperature and pressure each timestep. To do\nthis, the thermostat and barostat fixes create their own computes of\nstyle \"temp\" and \"pressure\", as if one of these sets of commands had\nbeen issued:\n\nFor fix nvt:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nFor fix npt and fix nph:\n\n```lmps\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nFor fix nvt, the group for the new temperature compute is the same as\nthe fix group. For fix npt and fix nph, the group for both the new\ntemperature and pressure compute is \"all\" since pressure is computed\nfor the entire system. In the case of fix nph, the temperature\ncompute is not used for thermostatting, but just for a kinetic-energy\ncontribution to the pressure. See the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html)\ncommands for details. Note that the IDs of the new computes are the\nfix-ID + underscore + \"temp\" or fix_ID + underscore + \"press\".\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of these\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Or you can print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate\ncompute-ID. It also means that changing attributes of *thermo_temp*\nor *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\nThese fixes can be used with either the *verlet* or *respa*\n[integrators ](https://docs.lammps.org/run_style.html). When using one of the barostat fixes\nwith *respa*, LAMMPS uses an integrator constructed\naccording to the following factorization of the Liouville propagator\n(for two rRESPA levels):\n\\[\\begin{align*} \n \\exp \\left(\\mathrm{i} L \\Delta t \\right) = & \\hat{E}\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right) \\\\\n &\\times \\left[\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_1 \\frac{\\Delta t}{n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\right]^n \\\\\n &\\times\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right) \\\\\n &+ \\mathcal{O} \\left(\\Delta t^3 \\right) \\end{align*} \\]\nThis factorization differs somewhat from that of Tuckerman et al, in\nthat the barostat is only updated at the outermost rRESPA level,\nwhereas Tuckerman's factorization requires splitting the pressure into\npieces corresponding to the forces computed at each rRESPA level. In\ntheory, the latter method will exhibit better numerical stability. In\npractice, because Pdamp is normally chosen to be a large multiple of\nthe outermost rRESPA timestep, the barostat dynamics are not the\nlimiting factor for numerical stability. Both factorizations are\ntime-reversible and can be shown to preserve the phase space measure\nof the underlying non-Hamiltonian equations of motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This implementation has been shown to conserve linear momentum\n > up to machine precision under NVT dynamics. Under NPT dynamics,\n > for a system with zero initial total linear momentum, the total\n > momentum fluctuates close to zero. It may occasionally undergo brief\n > excursions to non-negligible values, before returning close to zero.\n > Over long simulations, this has the effect of causing the center-of-mass\n > to undergo a slow random walk. This can be mitigated by resetting\n > the momentum at infrequent intervals using the\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) command. \n > \n\n----------\n\nThe fix npt and fix nph commands can be used with rigid bodies or\nmixtures of rigid bodies and non-rigid particles (e.g. solvent). But\nthere are also [fix rigid/npt ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/nph ](https://docs.lammps.org/fix_rigid.html) commands, which are typically a more natural\nchoice. See the page for those commands for more discussion of\nthe various ways to do this.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by these fixes. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure, as described above.\nIf you do this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order in\n > which the keywords are specified is important. Note that a [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own temperature compute as\n > an argument when it is specified. The *temp* keyword will override\n > this (for the pressure compute being used by fix npt), but only if the\n > *temp* keyword comes after the *press* keyword. If the *temp* keyword\n > comes before the *press* keyword, then the new pressure compute\n > specified by the *press* keyword will be unaffected by the *temp*\n > setting. \n > \n\nThe cumulative energy change in the system imposed by these fixes, via\neither thermostatting and/or barostatting, is included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes compute also compute a global vector of quantities, which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nvector values are \"intensive\".\n\nThe vector stores internal Nose/Hoover thermostat and barostat\nvariables. The number and meaning of the vector values depends on\nwhich fix is used and the settings for keywords *tchain* and *pchain*,\nwhich specify the number of Nose/Hoover chains for the thermostat and\nbarostat. If no thermostatting is done, then *tchain* is 0. If no\nbarostatting is done, then *pchain* is 0. In the following list,\n\"ndof\" is 0, 1, 3, or 6, and is the number of degrees of freedom in\nthe barostat. Its value is 0 if no barostat is used, else its value\nis 6 if any off-diagonal stress tensor component is barostatted, else\nits value is 1 if *couple xyz* is used or *couple xy* for a 2d\nsimulation, otherwise its value is 3.\n\nThe order of values in the global vector and their meaning is as\nfollows. The notation means there are tchain values for eta, followed\nby tchain for eta_dot, followed by ndof for omega, etc:\n\n* eta[tchain] = particle thermostat displacements (unitless)\n* eta_dot[tchain] = particle thermostat velocities (1/time units)\n* omega[ndof] = barostat displacements (unitless)\n* omega_dot[ndof] = barostat velocities (1/time units)\n* etap[pchain] = barostat thermostat displacements (unitless)\n* etap_dot[pchain] = barostat thermostat velocities (1/time units)\n* PE_eta[tchain] = potential energy of each particle thermostat displacement (energy units)\n* KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity (energy units)\n* PE_omega[ndof] = potential energy of each barostat displacement (energy units)\n* KE_omega_dot[ndof] = kinetic energy of each barostat velocity (energy units)\n* PE_etap[pchain] = potential energy of each barostat thermostat displacement (energy units)\n* KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)\n* PE_strain[1] = scalar strain energy (energy units)\n\nThese fixes can ramp their external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of\nhow to do this.\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(nh-Shinoda)** Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). \n \n**(nh-Martyna)** Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994). \n \n**(nh-Parrinello)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n \n**(nh-Tuckerman)** Tuckerman, Alejandre, Lopez-Rendon, Jochim, and\nMartyna, J Phys A: Math Gen, 39, 5629 (2006). \n \n**(nh-Dullweber)** Dullweber, Leimkuhler and McLachlan, J Chem Phys, 107,\n5840 (1997). \n ", + "restrictions": "*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. *Z*, *xz*, and *yz*, cannot be\nbarostatted for 2D simulations. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final Tstop cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n\nThese fixes can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise they can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "fix nvt/manifold/rattle" + "fix print" ], "syntax": [ - "fix ID group-ID nvt/manifold/rattle tol maxit manifold manifold-args keyword value ..." + "fix ID group-ID print N string keyword value ..." ], "args": [ [ @@ -20031,34 +19313,29 @@ export const command_docs = [ "choices": [] }, { - "arg": "nvt/manifold/rattle", + "arg": "print", "type": 1, "choices": [] }, { - "arg": "tol", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "maxit", + "arg": "string", "type": 2, "choices": [] }, { - "arg": "manifold", - "type": 2, - "choices": [] - }, - { - "arg": "manifold-args", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "title", + "type": 3, + "choices": [ + "file", + "append", + "screen", + "title" + ] }, { "arg": "value", @@ -20067,20 +19344,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/manifold/rattle = style name of this fix command\n* tol = tolerance to which Newton iteration must converge\n* maxit = maximum number of iterations to perform\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold\n* one or more keyword/value pairs may be appended \n *      keyword = temp or tchain or every \n       temp values = Tstart Tstop Tdamp \n       Tstart, Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       every value = N \n       N = print info about iteration every N steps. N = 0 means no output \n", - "examples": "\n```lmps\nfix 1 all nvt/manifold/rattle 1e-4 10 cylinder 3.0 temp 1.0 1.0 10.0\n```\n", - "html_filename": "fix_nvt_manifold_rattle.html", - "short_description": "This fix combines the RATTLE-based **Andersen2** time\nintegrator of [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n**Paquay3** with a Nose-Hoover-chain thermostat to sample the\ncanonical ensemble of particles constrained to a curved surface\n(manifold)", - "description": "This fix combines the RATTLE-based **Andersen2** time\nintegrator of [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n**Paquay3** with a Nose-Hoover-chain thermostat to sample the\ncanonical ensemble of particles constrained to a curved surface\n(manifold). This sampling does suffer from discretization bias of\nO(dt). For a list of currently supported manifolds and their\nparameters, see the [Howto manifold ](https://docs.lammps.org/Howto_manifold.html) doc page.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Andersen2)** Andersen, J. Comp. Phys. 52, 24, (1983). \n \n**(Paquay3)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/). \n ", - "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", - "related": "[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html), [fix manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html) **Default:** every = 0\n\n----------\n\n.. _Andersen2:\n\n**(Andersen)** Andersen, J. Comp. Phys. 52, 24, (1983).\n\n.. _Paquay3:\n\n**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* print = style name of this fix command\n* N = print every N steps; N can be a variable (see below)\n* string = text string to print with optional variable names\n* zero or more keyword/value pairs may be appended\n* keyword = file or append or screen or title \n *        file value = filename \n *        append value = filename \n *        screen value = yes or no \n *        title value = string \n         string = text to print as 1st line of output file \n", + "examples": "\n```lmps\nfix extra all print 100 \"Coords of marker atom = $x $y $z\"\nfix extra all print 100 \"Coords of marker atom = $x $y $z\" file coord.txt\n```\n", + "html_filename": "fix_print.html", + "short_description": "Print a text string every N steps during a simulation run", + "description": "Print a text string every N steps during a simulation run. This can\nbe used for diagnostic purposes or as a debugging tool to monitor some\nquantity during a run. The text string must be a single argument, so\nit should be enclosed in single or double quotes if it is more than\none word. If it contains variables it must be enclosed in double\nquotes to ensure they are not evaluated when the input script line is\nread, but will instead be evaluated each time the string is printed.\n\n **New in version 15Jun2023** \n\n support for vector style variables\nSee the [variable ](https://docs.lammps.org/variable.html) command for a description of\n*equal* and *vector* style variables which are typically the most\nuseful ones to use with the print command. Equal- and vector-style\nvariables can calculate formulas involving mathematical operations,\natom properties, group properties, thermodynamic properties, global\nvalues calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html),\nor references to other [variables ](https://docs.lammps.org/variable.html). Vector-style\nvariables are printed in a bracketed, comma-separated format,\ne.g. [1,2,3,4] or [12.5,2,4.6,10.1].\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, the text string can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on the [variable > ](https://docs.lammps.org/variable.html) doc page. This is a convenient way to evaluate a\n > formula immediately without using the variable command to define a\n > named variable and then use that variable in the text string. The\n > formula can include a trailing colon and format string which\n > determines the precision with which the numeric value is output.\n > This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name\nis the variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the **next** timestep at which the\nstring will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the\nvariable should return timestep values. See the stagger() and\nlogfreq() and stride() math functions for [equal-style variables](https://docs.lammps.org/variable.html), as examples of useful functions to use in this\ncontext. For example, the following commands will print output at\ntimesteps 10,20,30,100,200,300,1000,2000,etc:\n\n```lmps\nvariable s equal logfreq(10,3,10)\nfix extra all print v_s \"Coords of marker atom = $x $y $z\"\n```\nThe specified group-ID is ignored by this fix.\n\nIf the *file* or *append* keyword is used, a filename is specified to\nwhich the output generated by this fix will be written. If *file* is\nused, then the filename is overwritten if it already exists. If\n*append* is used, then the filename is appended to if it already\nexists, or created if it does not exist.\n\nIf the *screen* keyword is used, output by this fix to the screen and\nlogfile can be turned on or off as desired.\n\nThe *title* keyword allow specification of the string that will be\nprinted as the first line of the output file, assuming the *file*\nkeyword was used. By default, the title line is as follows:\n\n```\n# Fix print output for fix ID\n```\nwhere ID is replaced with the fix-ID.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[variable ](https://docs.lammps.org/variable.html), [print ](https://docs.lammps.org/print.html)\n" }, { "command": [ - "bond_style none" + "bond_style mm3" ], "syntax": [ - "bond_style none" + "bond_style mm3" ], "args": [ [ @@ -20090,125 +19367,138 @@ export const command_docs = [ "choices": [] }, { - "arg": "none", + "arg": "mm3", "type": 1, "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\nbond_style none\n```\n", - "html_filename": "bond_none.html", - "short_description": "Using a bond style of none means bond forces and energies are not\ncomputed, even if pairs of bonded atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command", - "description": "Using a bond style of none means bond forces and energies are not\ncomputed, even if pairs of bonded atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [bond_style zero ](https://docs.lammps.org/bond_zero.html) command for a way to\ncalculate bond statistics, but compute no bond interactions.\n", - "restrictions": " none\n", - "related": "none\n\n\n[bond_style zero ](https://docs.lammps.org/bond_zero.html)\n" + "examples": "\n```lmps\nbond_style mm3\nbond_coeff 1 100.0 107.0\n```\n", + "html_filename": "bond_mm3.html", + "short_description": "The *mm3* bond style uses the potential that is anharmonic in the bond\nas defined in **mm3-allinger1989**\n\\[\n E = K (r - r_0)^2 \\left[ 1 - 2.55(r-r_0) + \\frac{7}{12} 2.55^2(r-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium value of the bond, and \\(K\\) is a\nprefactor", + "description": "The *mm3* bond style uses the potential that is anharmonic in the bond\nas defined in **mm3-allinger1989**\n\\[\n E = K (r - r_0)^2 \\left[ 1 - 2.55(r-r_0) + \\frac{7}{12} 2.55^2(r-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium value of the bond, and \\(K\\) is a\nprefactor. The anharmonic prefactors have units \\(\\mathring{\\textrm{A}}^{-n}\\):\n\\(-2.55 \\mathring{\\textrm{A}}^{-1}\\) and \\(\\frac{7}{12} 2.55^2 \\mathring{\\textrm{A}}^{-2}\\). The code takes\ncare of the necessary unit conversion for these factors internally.\nNote that the MM3 papers contain an error in Eq (1):\n\\(\\frac{7}{12} 2.55\\) should be replaced with \\(\\frac{7}{12} 2.55^2\\)\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n**(mm3-allinger1989)** Allinger, Yuh, Lii, JACS, 111(23), 8551-8566\n(1989), \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html)\n" }, { "command": [ - "restart" + "compute dpd/atom" ], "syntax": [ - "restart 0", - "restart N root keyword value ...", - "restart N file1 file2 keyword value ..." + "compute ID group-ID dpd/atom" ], "args": [ [ { - "arg": "restart", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "0", + "arg": "ID", "type": 2, "choices": [] - } - ], - [ - { - "arg": "restart", - "type": 1, - "choices": [] }, { - "arg": "N", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "root", - "type": 2, + "arg": "dpd/atom", + "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dpd/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all dpd/atom\n```\n", + "html_filename": "compute_dpd_atom.html", + "short_description": "Define a computation that accesses the per-particle internal conductive energy\n(\\(u^\\text{cond}\\)), internal mechanical energy (\\(u^\\text{mech}\\)),\ninternal chemical energy (\\(u^\\text{chem}\\)) and internal temperatures\n(\\(\\theta\\)) for each particle in a group", + "description": "Define a computation that accesses the per-particle internal conductive energy\n(\\(u^\\text{cond}\\)), internal mechanical energy (\\(u^\\text{mech}\\)),\ninternal chemical energy (\\(u^\\text{chem}\\)) and internal temperatures\n(\\(\\theta\\)) for each particle in a group.\nSee the [compute dpd ](https://docs.lammps.org/compute_dpd.html) command if you want the total\ninternal conductive energy, the total internal mechanical energy, the\ntotal chemical energy and average internal temperature of the entire system or\ngroup of dpd particles.\n\n #### Output info\n\nThis compute calculates a per-particle array with four columns\n(\\(u^\\text{cond}\\), \\(u^\\text{mech}\\), \\(u^\\text{chem}\\),\n\\(\\theta\\)), which can be accessed by indices 1--4 by any\ncommand that uses per-particle values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle array values will be in energy (\\(u^\\text{cond}\\),\n\\(u^\\text{mech}\\), \\(u^\\text{chem}\\))\nand temperature (\\(\\theta\\)) [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute dpd ](https://docs.lammps.org/compute_dpd.html)\n" +}, +{ + "command": [ + "neb/spin" + ], + "syntax": [ + "neb/spin etol ttol N1 N2 Nevery file-style arg keyword" + ], + "args": [ + [ { - "arg": "nfile", - "type": 3, - "choices": [ - "fileper", - "nfile" - ] + "arg": "neb/spin", + "type": 1, + "choices": [] }, { - "arg": "value", + "arg": "etol", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "restart", - "type": 1, + "arg": "ttol", + "type": 2, "choices": [] }, { - "arg": "N", + "arg": "N1", "type": 2, "choices": [] }, { - "arg": "file1", + "arg": "N2", "type": 2, "choices": [] }, { - "arg": "file2", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "nfile", + "arg": "none", "type": 3, "choices": [ - "fileper", - "nfile" + "final", + "each", + "none" ] }, { - "arg": "value", + "arg": "arg", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* N = write a restart file on timesteps which are multiples of N\n* N can be a variable (see below)\n* root = filename to which timestep # is appended\n* file1,file2 = two full filenames, toggle between them when writing file\n* zero or more keyword/value pairs may be appended\n* keyword = fileper or nfile \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n", - "examples": "\n```lmps\nrestart 0\nrestart 1000 poly.restart\nrestart 1000 restart.*.equil\nrestart 10000 poly.%.1 poly.%.2 nfile 10\nrestart v_mystep poly.restart\n```\n", - "html_filename": "restart.html", - "short_description": "Write out a binary restart file with the current state of the\nsimulation on timesteps which are a multiple of N", - "description": "Write out a binary restart file with the current state of the\nsimulation on timesteps which are a multiple of N. A value of N = 0\nmeans do not write out any restart files, which is the default.\nRestart files are written in one (or both) of two modes as a run\nproceeds. If one filename is specified, a series of filenames will be\ncreated which include the timestep in the filename. If two filenames\nare specified, only 2 restart files will be created, with those names.\nLAMMPS will toggle between the 2 names as it writes successive restart\nfiles.\n\nNote that you can specify the restart command twice, once with a\nsingle filename and once with two filenames. This would allow you,\nfor example, to write out archival restart files every 100000 steps\nusing a single filename, and more frequent temporary restart files\nevery 1000 steps, using two filenames. Using restart 0 will turn off\nboth modes of output.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the restart filename(s) can contain\ntwo wild-card characters.\n\nIf a \"\\*\" appears in the single filename, it is replaced with the\ncurrent timestep value. This is only recognized when a single\nfilename is used (not when toggling back and forth). Thus, the third\nexample above creates restart files as follows: restart.1000.equil,\nrestart.2000.equil, etc. If a single filename is used with no \"\\*\",\nthen the timestep value is appended. E.g. the second example above\ncreates restart files as follows: poly.restart.1000,\npoly.restart.2000, etc.\n\nIf a \"%\" character appears in the restart filename(s), then one file\nis written for each processor and the \"%\" character is replaced with\nthe processor ID from 0 to P-1. An additional file with the \"%\"\nreplaced by \"base\" is also written, which contains global information.\nFor example, the files written on step 1000 for filename restart.%\nwould be restart.base.1000, restart.0.1000, restart.1.1000, ...,\nrestart.P-1.1000. This creates smaller files and can be a fast mode\nof output and subsequent input on parallel machines that support\nparallel I/O. The optional *fileper* and *nfile* keywords discussed\nbelow can alter the number of files written.\n\nRestart files are written on timesteps that are a multiple of N but\nnot on the first timestep of a run or minimization. You can use the\n[write_restart ](https://docs.lammps.org/write_restart.html) command to write a restart file\nbefore a run begins. A restart file is not written on the last\ntimestep of a run unless it is a multiple of N. A restart file is\nwritten on the last timestep of a minimization if N > 0 and the\nminimization converges.\n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is\nthe variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the next timestep at which a restart\nfile will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the variable\nshould return timestep values. See the stagger() and logfreq() and\nstride() math functions for [equal-style variables ](https://docs.lammps.org/variable.html), as\nexamples of useful functions to use in this context. Other similar math\nfunctions could easily be added as options for [equal-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, the following commands will write restart files\nevery step from 1100 to 1200, and could be useful for debugging\na simulation where something goes wrong at step 1163:\n\n```lmps\nvariable s equal stride(1100,1200,1)\nrestart v_s tmp.restart\n```\n----------\n\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for information about\nwhat is stored in a restart file.\n\nRestart files can be read by a [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand to restart a simulation from a particular state. Because the\nfile is binary (to enable exact restarts), it may not be readable on\nanother machine. In this case, you can use the [-r command-line switch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Although the purpose of restart files is to enable restarting a\n > simulation from where it left off, not all information about a\n > simulation is stored in the file. For example, the list of fixes that\n > were specified during the initial run is not stored, which means the\n > new input script must specify any fixes you want to use. Even when\n > restart information is stored in the file, as it is for some fixes,\n > commands may need to be re-specified in the new input script, in order\n > to re-use that information. See the [read_restart ](https://docs.lammps.org/read_restart.html)\n > command for information about what is stored in a restart file. \n > \n\n----------\n\nThe optional *nfile* or *fileper* keywords can be used in conjunction\nwith the \"%\" wildcard character in the specified restart file name(s).\nAs explained above, the \"%\" character causes the restart file to be\nwritten in pieces, one piece for each of P processors. By default P =\nthe number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set P to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets P to the specified Nf value. For example, if\nNf = 4, and the simulation is running on 100 processors, 4 files will\nbe written, by processors 0,25,50,75. Each will collect information\nfrom itself and the next 24 processors and write it to a restart file.\n\nFor the *fileper* keyword, the specified value of Np means write one\nfile for every Np processors. For example, if Np = 4, every fourth\nprocessor (0,4,8,12,etc) will collect information from itself and the\nnext 3 processors and write it to a restart file.\n\n----------\n", - "restrictions": "none\n", - "related": "[write_restart ](https://docs.lammps.org/write_restart.html), [read_restart ](https://docs.lammps.org/read_restart.html)\n" + "parameters": "* etol = stopping tolerance for energy (energy units)\n* ttol = stopping tolerance for torque ( units)\n* N1 = max # of iterations (timesteps) to run initial NEB\n* N2 = max # of iterations (timesteps) to run barrier-climbing NEB\n* Nevery = print replica energies and reaction coordinates every this many timesteps\n* file-style = final or each or none \n *        final arg = filename \n         filename = file with initial coords for final replica \n         coords for intermediate replicas are linearly interpolated \n         between first and last replica \n *        each arg = filename \n         filename = unique filename for each replica (except first) \n         with its initial coords \n *        none arg = no argument all replicas assumed to already have \n         their initial coords \n* keyword = verbose \n *        verbose = print supplemental information \n", + "examples": "\n```lmps\nneb/spin 0.1 0.0 1000 500 50 final coords.final\nneb/spin 0.0 0.001 1000 500 50 each coords.initial.$i\nneb/spin 0.0 0.001 1000 500 50 none verbose\n```\n", + "html_filename": "neb_spin.html", + "short_description": "Perform a geodesic nudged elastic band (GNEB) calculation using multiple\nreplicas of a system", + "description": "Perform a geodesic nudged elastic band (GNEB) calculation using multiple\nreplicas of a system. Two or more replicas must be used; the first\nand last are the end points of the transition path.\n\nGNEB is a method for finding both the spin configurations and height\nof the energy barrier associated with a transition state, e.g.\nspins to perform a collective rotation from one energy basin to\nanother.\nThe implementation in LAMMPS follows the discussion in the\nfollowing paper: **BessarabA**.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI installed, you\ncan run a multi-replica simulation with more replicas (partitions)\nthan you have physical processors, e.g you can run a 10-replica\nsimulation on just one or two processors. You will simply not get the\nperformance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As explained below, a GNEB calculation performs a\n > minimization across all the replicas. One of the [spin ](https://docs.lammps.org/min_spin.html)\n > style minimizers has to be defined in your input script. \n > \n\nWhen a GNEB calculation is performed, it is assumed that each replica\nis running the same system, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of magnetic atoms, the\ninteraction potentials, and the starting configuration when the neb\ncommand is issued should be the same for every replica.\n\nIn a GNEB calculation each replica is connected to other replicas by\ninter-replica nudging forces. These forces are imposed by the [fix neb/spin ](https://docs.lammps.org/fix_neb_spin.html) command, which must be used in conjunction\nwith the neb command.\nThe group used to define the fix neb/spin command defines the\nGNEB magnetic atoms which are the only ones that inter-replica springs\nare applied to.\nIf the group does not include all magnetic atoms, then non-GNEB\nmagnetic atoms have no inter-replica springs and the torques they feel\nand their precession motion is computed in the usual way due only\nto other magnetic atoms within their replica.\nConceptually, the non-GNEB atoms provide a background force field for\nthe GNEB atoms.\nTheir magnetic spins can be allowed to evolve during the GNEB\nminimization procedure.\n\nThe initial spin configuration for each of the replicas can be\nspecified in different manners via the *file-style* setting, as\ndiscussed below. Only atomic spins whose initial coordinates should\ndiffer from the current configuration need to be specified.\n\nConceptually, the initial and final configurations for the first\nreplica should be states on either side of an energy barrier.\n\nAs explained below, the initial configurations of intermediate\nreplicas can be spin coordinates interpolated in a linear fashion\nbetween the first and last replicas. This is often adequate for\nsimple transitions. For more complex transitions, it may lead to slow\nconvergence or even bad results if the minimum energy path (MEP, see\nbelow) of states over the barrier cannot be correctly converged to\nfrom such an initial path. In this case, you will want to generate\ninitial states for the intermediate replicas that are geometrically\ncloser to the MEP and read them in.\n\n----------\n\nFor a *file-style* setting of *final*, a filename is specified which\ncontains atomic and spin coordinates for zero or more atoms, in the\nformat described below.\nFor each atom that appears in the file, the new coordinates are\nassigned to that atom in the final replica. Each intermediate replica\nalso assigns a new spin to that atom in an interpolated manner.\nThis is done by using the current direction of the spin at the starting\npoint and the read-in direction as the final point.\nThe \"angular distance\" between them is calculated, and the new direction\nis assigned to be a fraction of the angular distance.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"angular distance\" between the starting and final point is\n > evaluated in the geodesic sense, as described in\n > **BessarabA**. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The angular interpolation between the starting and final point\n > is achieved using Rodrigues formula: \n > \n\n\\[\n \\vec{m}_i^{\\nu} = \\vec{m}_i^{I} \\cos(\\omega_i^{\\nu})\n + (\\vec{k}_i \\times \\vec{m}_i^{I}) \\sin(\\omega_i^{\\nu})\n + (1.0-\\cos(\\omega_i^{\\nu})) \\vec{k}_i (\\vec{k}_i\\cdot\n \\vec{m}_i^{I})\\]\nwhere \\(\\vec{m}_i^I\\) is the initial spin configuration for\nspin i, \\(\\omega_i^{\\nu}\\) is a rotation angle defined as:\n\\[\n \\omega_i^{\\nu} = (\\nu - 1) \\Delta \\omega_i {\\rm ~~and~~} \\Delta \\omega_i = \\frac{\\omega_i}{Q-1}\\]\nwith \\(\\nu\\) the image number, Q the total number of images, and\n\\(\\omega_i\\) the total rotation between the initial and final spins.\n\\(\\vec{k}_i\\) defines a rotation axis such as:\n\\[\n \\vec{k}_i = \\frac{\\vec{m}_i^I \\times \\vec{m}_i^F}{\\left|\\vec{m}_i^I \\times \\vec{m}_i^F\\right|}\\]\nif the initial and final spins are not aligned.\nIf the initial and final spins are aligned, then their cross\nproduct is null, and the expression above does not apply.\nIf they point toward the same direction, the intermediate images\nconserve the same orientation.\nIf the initial and final spins are aligned, but point toward\nopposite directions, an arbitrary rotation vector belonging to\nthe plane perpendicular to initial and final spins is chosen.\nIn this case, a warning message is displayed.\n\nFor a *file-style* setting of *each*, a filename is specified which is\nassumed to be unique to each replica.\nSee the [neb ](https://docs.lammps.org/neb.html) documentation page for more information about this\noption.\n\nFor a *file-style* setting of *none*, no filename is specified. Each\nreplica is assumed to already be in its initial configuration at the\ntime the neb command is issued. This allows each replica to define\nits own configuration by reading a replica-specific data or restart or\ndump file, via the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [read_dump ](https://docs.lammps.org/read_dump.html)\ncommands. The replica-specific names of these files can be specified\nas in the discussion above for the *each* file-style. Also see the\nsection below for how a NEB calculation can produce restart files, so\nthat a long calculation can be restarted if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >None of the *file-style* settings change the initial\n > configuration of any atom in the first replica. The first replica\n > must thus be in the correct initial configuration at the time the neb\n > command is issued. \n > \n\n----------\n\nA NEB calculation proceeds in two stages, each of which is a\nminimization procedure. To enable\nthis, you must first define a\n[min_style ](https://docs.lammps.org/min_style.html), using either the *spin*,\n*spin/cg*, or *spin/lbfgs* style (see\n[min_spin ](https://docs.lammps.org/min_spin.html) for more information).\nThe other styles cannot be used, since they relax the lattice\ndegrees of freedom instead of the spins.\n\nThe minimizer tolerances for energy and force are set by *etol* and\n*ttol*, the same as for the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nA non-zero *etol* means that the GNEB calculation will terminate if the\nenergy criterion is met by every replica. The energies being compared\nto *etol* do not include any contribution from the inter-replica\nnudging forces, since these are non-conservative. A non-zero *ttol*\nmeans that the GNEB calculation will terminate if the torque criterion\nis met by every replica. The torques being compared to *ttol* include\nthe inter-replica nudging forces.\n\nThe maximum number of iterations in each stage is set by *N1* and\n*N2* . These are effectively timestep counts since each iteration of\ndamped dynamics is like a single timestep in a dynamics\n[run ](https://docs.lammps.org/run.html). During both stages, the potential energy of each\nreplica and its normalized distance along the reaction path (reaction\ncoordinate RD) will be printed to the screen and log file every\n*Nevery* timesteps. The RD is 0 and 1 for the first and last replica.\nFor intermediate replicas, it is the cumulative angular distance\n(normalized by the total cumulative angular distance) between adjacent\nreplicas, where \"distance\" is defined as the length of the 3N-vector of\nthe geodesic distances in spin coordinates, with N the number of\nGNEB spins involved (see equation (13) in **BessarabA**).\nThese outputs allow you to monitor NEB's progress in\nfinding a good energy barrier. *N1* and *N2* must both be multiples\nof *Nevery* .\n\nIn the first stage of GNEB, the set of replicas should converge toward\na minimum energy path (MEP) of conformational states that transition\nover a barrier. The MEP for a transition is defined as a sequence of\n3N-dimensional spin states, each of which has a potential energy\ngradient parallel to the MEP itself.\nThe configuration of highest energy along a MEP corresponds to a saddle\npoint. The replica states will also be roughly equally spaced along\nthe MEP due to the inter-replica nudging force added by the\n[fix neb ](https://docs.lammps.org/fix_neb.html) command.\n\nIn the second stage of GNEB, the replica with the highest energy is\nselected and the inter-replica forces on it are converted to a force\nthat drives its spin coordinates to the top or saddle point of the\nbarrier, via the barrier-climbing calculation described in\n**BessarabA**. As before, the other replicas rearrange\nthemselves along the MEP so as to be roughly equally spaced.\n\nWhen both stages are complete, if the GNEB calculation was successful,\nthe configurations of the replicas should be along (close to) the MEP\nand the replica with the highest energy should be a spin\nconfiguration at (close to) the saddle point of the transition. The\npotential energies for the set of replicas represents the energy\nprofile of the transition along the MEP.\n\n----------\n\nAn atom map must be defined which it is not by default for [atom_style atomic ](https://docs.lammps.org/atom_style.html) problems. The [atom_modify map ](https://docs.lammps.org/atom_modify.html) command can be used to do this.\n\nAn initial value can be defined for the timestep. Although, the *spin*\nminimization algorithm is an adaptive timestep methodology, so that\nthis timestep is likely to evolve during the calculation.\n\nThe minimizers in LAMMPS operate on all spins in your system, even\nnon-GNEB atoms, as defined above.\n\n----------\n\nEach file read by the neb/spin command containing spin coordinates used\nto initialize one or more replicas must be formatted as follows.\n\nThe file can be ASCII text or a gzipped text file (detected by a .gz\nsuffix). The file can contain initial blank lines or comment lines\nstarting with \"#\" which are ignored. The first non-blank, non-comment\nline should list N = the number of lines to follow. The N successive\nlines contain the following information:\n\n```\nID1 g1 x1 y1 z1 sx1 sy1 sz1\nID2 g2 x2 y2 z2 sx2 sy2 sz2\n...\nIDN gN yN zN sxN syN szN\n```\nThe fields are the atom ID, the norm of the associated magnetic spin,\nfollowed by the *x,y,z* coordinates and the *sx,sy,sz* spin coordinates.\nThe lines can be listed in any order. Additional trailing information on\nthe line is OK, such as a comment.\n\nNote that for a typical GNEB calculation you do not need to specify\ninitial spin coordinates for very many atoms to produce differing starting\nand final replicas whose intermediate replicas will converge to the\nenergy barrier. Typically only new spin coordinates for atoms\ngeometrically near the barrier need be specified.\n\nAlso note there is no requirement that the atoms in the file\ncorrespond to the GNEB atoms in the group defined by the [fix neb ](https://docs.lammps.org/fix_neb.html) command. Not every GNEB atom need be in the file,\nand non-GNEB atoms can be listed in the file.\n\n----------\n\nFour kinds of output can be generated during a GNEB calculation: energy\nbarrier statistics, thermodynamic output by each replica, dump files,\nand restart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file\ncontains a line of output, printed once every *Nevery* timesteps. It\ncontains the timestep, the maximum torque per replica, the maximum\ntorque per atom (in any replica), potential gradients in the initial,\nfinal, and climbing replicas, the forward and backward energy\nbarriers, the total reaction coordinate (RDT), and the normalized\nreaction coordinate and potential energy of each replica.\n\nThe \"maximum torque per replica\" is the two-norm of the\n3N-length vector given by the cross product of a spin by its\nprecession vector omega, in each replica, maximized across replicas,\nwhich is what the *ttol* setting is checking against. In this case, N is\nall the atoms in each replica. The \"maximum torque per atom\" is the\nmaximum torque component of any atom in any replica. The potential\ngradients are the two-norm of the 3N-length magnetic precession vector\nsolely due to the interaction potential i.e. without adding in\ninter-replica forces, and projected along the path tangent (as detailed\nin Appendix D of **BessarabA**).\n\nThe \"reaction coordinate\" (RD) for each replica is the two-norm of the\n3N-length vector of geodesic distances between its spins and the preceding\nreplica's spins (see equation (13) of **BessarabA**), added to\nthe RD of the preceding replica. The RD of the first replica RD1 = 0.0;\nthe RD of the final replica RDN = RDT, the total reaction coordinate.\nThe normalized RDs are divided by RDT, so that they form a monotonically\nincreasing sequence from zero to one. When computing RD, N only includes\nthe spins being operated on by the fix neb/spin command.\n\nThe forward (reverse) energy barrier is the potential energy of the\nhighest replica minus the energy of the first (last) replica.\n\nSupplementary information for all replicas can be printed out to the\nscreen and master log.lammps file by adding the *verbose* keyword. This\ninformation include the following.\nThe \"GradVidottan\" are the projections of the potential gradient for\nthe replica i on its tangent vector (as detailed in Appendix D of\n**BessarabA**).\nThe \"DNi\" are the non normalized geodesic distances (see equation (13)\nof **BessarabA**), between a replica i and the next replica\ni+1. For the last replica, this distance is not defined and a \"NAN\"\nvalue is the corresponding output.\n\nWhen a NEB calculation does not converge properly, the supplementary\ninformation can help understanding what is going wrong.\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a\nGNEB calculation, these contain the thermodynamic output for each\nreplica.\n\nIf [dump ](https://docs.lammps.org/dump.html) commands in the input script define a filename\nthat includes a *universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html),\nthen one dump file (per dump command) will be created for each\nreplica. At the end of the GNEB calculation, the final snapshot in\neach file will contain the sequence of snapshots that transition the\nsystem over the energy barrier. Earlier snapshots will show the\nconvergence of the replicas to the MEP.\n\nLikewise, [restart ](https://docs.lammps.org/restart.html) filenames can be specified with a\n*universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html), to generate\nrestart files for each replica. These may be useful if the GNEB\ncalculation fails to converge properly to the MEP, and you wish to\nrestart the calculation from an intermediate point with altered\nparameters.\n\nA c file script in provided in the tool/spin/interpolate_gneb\ndirectory, that interpolates the MEP given the information provided\nby the *verbose* output option (as detailed in Appendix D of\n**BessarabA**).\n\n----------\n\n**(BessarabA)** Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,\n335-347 (2015). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nFor magnetic GNEB calculations, only the *spin_none* value for the\n*line* keyword can be used when minimization styles *spin/cg* and\n*spin/lbfgs* are employed.\n\n----------\n", + "related": "[min/spin ](https://docs.lammps.org/min_spin.html), [fix neb/spin ](https://docs.lammps.org/fix_neb_spin.html)\n" }, { "command": [ - "pair_style morse", - "pair_style morse/gpu", - "pair_style morse/omp", - "pair_style morse/opt", - "pair_style morse/kk", - "pair_style morse/smooth/linear", - "pair_style morse/smooth/linear/omp" + "pair_style coul/cut/dielectric", + "pair_style coul/long/dielectric", + "pair_style lj/cut/coul/cut/dielectric", + "pair_style lj/cut/coul/cut/dielectric/omp", + "pair_style lj/cut/coul/debye/dielectric", + "pair_style lj/cut/coul/debye/dielectric/omp", + "pair_style lj/cut/coul/long/dielectric", + "pair_style lj/cut/coul/long/dielectric/omp", + "pair_style lj/cut/coul/msm/dielectric" ], "syntax": [ "pair_style style args" @@ -20221,17 +19511,15 @@ export const command_docs = [ "choices": [] }, { - "arg": "morse/smooth/linear/omp", + "arg": "lj/cut/coul/long/dielectric/omp", "type": 3, "choices": [ - "morse", - "morse/smooth/linear", - "morse/soft", - "morse/gpu", - "morse/omp", - "morse/opt", - "morse/kk", - "morse/smooth/linear/omp" + "lj/cut/coul/cut/dielectric", + "lj/cut/coul/long/dielectric", + "lj/cut/coul/msm/dielectric", + "lj/long/coul/msm/dielectric", + "lj/cut/coul/cut/dielectric/omp", + "lj/cut/coul/long/dielectric/omp" ] }, { @@ -20241,20 +19529,20 @@ export const command_docs = [ } ] ], - "parameters": "* style = morse or morse/smooth/linear or morse/soft\n* args = list of arguments for a particular style \n *     morse args = cutoff \n      cutoff = global cutoff for Morse interactions (distance units) \n *     morse/smooth/linear args = cutoff \n      cutoff = global cutoff for Morse interactions (distance units) \n", - "examples": "\n```lmps\npair_style morse 2.5\npair_style morse/smooth/linear 2.5\npair_coeff * * 100.0 2.0 1.5\npair_coeff 1 1 100.0 2.0 1.5 3.0\n```\n", - "html_filename": "pair_morse.html", - "short_description": "Style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "Style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global morse\ncutoff is used.\n\n----------\n\nThe *morse/smooth/linear* variant is similar to the lj/smooth/linear\nvariant in that it adds to the potential a shift and a linear term\nso that both, potential energy and force, go to zero at the cut-off:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right] \\qquad r < r_c \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe syntax of the pair_style and pair_coeff commands are the same for\nthe *morse* and *morse/smooth/linear* styles.\n\n----------\n\nA version of the *morse* style with a soft core, *morse/soft*,\nsuitable for use in free energy calculations, is part of the FEP\npackage and is documented with the [pair_style */soft](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is only available if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNone of these pair styles support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nAll of these pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table options are not relevant for\nthe Morse pair styles.\n\nNone of these pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nAll of these pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "The *morse/smooth/linear* pair style is only enabled if LAMMPS was\nbuilt with the EXTRA-PAIR package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\n" + "parameters": "* style = lj/cut/coul/cut/dielectric or lj/cut/coul/long/dielectric or lj/cut/coul/msm/dielectric or lj/long/coul/msm/dielectric\n* args = list of arguments for a particular style \n", + "examples": "\n```lmps\npair_style coul/cut/dielectric 10.0\npair_coeff * *\npair_coeff 1 1 9.0\n\npair_style lj/cut/coul/cut/dielectric 10.0\npair_style lj/cut/coul/cut/dielectric 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/long/dielectric 10.0\npair_style lj/cut/coul/long/dielectric 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", + "html_filename": "pair_dielectric.html", + "short_description": "All these pair styles are derived from the corresponding pair styles\nwithout the *dielectric* suffix", + "description": "All these pair styles are derived from the corresponding pair styles\nwithout the *dielectric* suffix. In addition to computing atom forces\nand energies, these pair styles compute the electric field vector at\neach atom, which are intended to be used by the [fix polarize](https://docs.lammps.org/fix_polarize.html) commands to compute induced charges at interfaces\nbetween two regions of different dielectric constant.\n\nThese pair styles should be used with [atom_style dielectric](https://docs.lammps.org/atom_style.html).\n\nThe styles lj/cut/coul/long/dielectric, lj/cut/coul/msm/dielectric, and\nlj/long/coul/long/dielectric should be used with their kspace style\ncounterparts, namely, pppm/dielectric, pppm/disp/dielectric, and\nmsm/dielectric, respectively.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distances for this pair style can be mixed. The default mix\nalgorithm is *geometric* . See the [pair_modify ](https://docs.lammps.org/pair_modify.html)\"\ncommand for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThese pair styles write its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n", + "restrictions": "These styles are part of the DIELECTRIC package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix polarize ](https://docs.lammps.org/fix_polarize.html), [read_data ](https://docs.lammps.org/read_data.html)\n" }, { "command": [ - "fix ehex" + "fix wall/reflect/stochastic" ], "syntax": [ - "fix ID group-ID ehex nevery F keyword value" + "fix ID group-ID wall/reflect/stochastic rstyle seed face args ... keyword value ..." ], "args": [ [ @@ -20274,30 +19562,46 @@ export const command_docs = [ "choices": [] }, { - "arg": "ehex", + "arg": "wall/reflect/stochastic", "type": 1, "choices": [] }, { - "arg": "nevery", - "type": 2, - "choices": [] + "arg": "ccl", + "type": 3, + "choices": [ + "diffusive", + "maxwell", + "ccl" + ] }, { - "arg": "F", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "hex", + "arg": "zhi", "type": 3, "choices": [ - "region", - "constrain", - "com", - "hex" + "xlo", + "xhi", + "ylo", + "yhi", + "zlo", + "zhi" ] }, + { + "arg": "args", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, { "arg": "value", "type": 2, @@ -20305,25 +19609,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ehex = style name of this fix command\n* nevery = add/subtract heat every this many timesteps\n* F = energy flux into the reservoir (energy/time units)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region or constrain or com or hex \n *        region value = region-ID \n         region-ID = ID of region (reservoir) atoms must be in for added thermostatting force \n *        constrain value = none \n         apply the constraint algorithm (SHAKE or RATTLE) again at the end of the timestep \n *        com value = none \n         rescale all sites of a constrained cluster of atom if its COM is in the reservoir \n *        hex value = none \n         omit the coordinate correction to recover the HEX algorithm \n", - "examples": "\n```lmps\n# Lennard-Jones, from examples/in.ehex.lj\n\nfix fnve all nve\n# specify regions rhot and rcold\n...\nfix fhot all ehex 1 0.15 region rhot\nfix fcold all ehex 1 -0.15 region rcold\n\n# SPC/E water, from examples/in.ehex.spce\nfix fnve all nve\n# specify regions rhot and rcold\n...\nfix fhot all ehex 1 0.075 region rhot constrain com\nfix fcold all ehex 1 -0.075 region rcold constrain com\nfix frattle all rattle 1e-10 400 0 b 1 a 1\n```\n", - "html_filename": "fix_ehex.html", - "short_description": "This fix implements the asymmetric version of the enhanced heat\nexchange algorithm **Wirnsberger**", - "description": "This fix implements the asymmetric version of the enhanced heat\nexchange algorithm **Wirnsberger**. The eHEX algorithm is\nan extension of the heat exchange algorithm **Ikeshoji** and\nadds an additional coordinate integration to account for higher-order\ntruncation terms in the operator splitting. The original HEX\nalgorithm (implemented as [fix heat ](https://docs.lammps.org/fix_heat.html)) is known to\nexhibit a slight energy drift limiting the accessible simulation times\nto a few nanoseconds. This issue is greatly improved by the new\nalgorithm decreasing the energy drift by at least a factor of a\nhundred (LJ and SPC/E water) with little computational overhead.\n\nIn both algorithms (non-translational) kinetic energy is constantly\nswapped between regions (reservoirs) to impose a heat flux onto the\nsystem. The equations of motion are therefore modified if a particle\n\\(i\\) is located inside a reservoir \\(\\Gamma_k\\) where \\(k>0\\). We\nuse \\(\\Gamma_0\\) to label those parts of the simulation box which\nare not thermostatted.) The input parameter *region-ID* of this fix\ncorresponds to \\(k\\). The energy swap is modelled by introducing an\nadditional thermostatting force to the equations of motion, such that\nthe time evolution of coordinates and momenta of particle \\(i\\)\nbecomes **Wirnsberger**\n\\[\\begin{align*} \n \\dot{\\mathbf r}_i &= \\mathbf v_i, \\\\\n \\dot{\\mathbf v}_i &= \\frac{\\mathbf f_i}{m_i} + \\frac{\\mathbf g_i}{m_i}. \\end{align*} \\]\nThe thermostatting force is given by\n\\[\\begin{align*} \n \\mathbf g_i = \\begin{cases}\n \\frac{m_i}{2} \\frac{ F_{\\Gamma_{k(\\mathbf r_i)}}}{ K_{\\Gamma_{k(\\mathbf r_i)}}}\n \\left(\\mathbf v_i - \\mathbf v_{\\Gamma_{k(\\mathbf r_i)}} \\right) & \\mbox{$k(\\mathbf r_i)> 0$ (inside a reservoir),} \\\\\n 0 & \\mbox{otherwise, }\n \\end{cases} \\end{align*} \\]\nwhere \\(m_i\\) is the mass and \\(k(\\mathbf r_i)\\) maps the particle\nposition to the respective reservoir. The quantity\n\\(F_{\\Gamma_{k(\\mathbf r_i)}}\\) corresponds to the input parameter\n*F*, which is the energy flux into the reservoir. Furthermore,\n\\(K_{\\Gamma_{k(\\mathbf r_i)}}\\) and \\(v_{\\Gamma_{k(\\mathbf r_i)}}\\)\ndenote the non-translational kinetic energy and the center of mass\nvelocity of that reservoir. The thermostatting force does not affect\nthe center of mass velocities of the individual reservoirs and the\nentire simulation box. A derivation of the equations and details on\nthe numerical implementation with velocity Verlet in LAMMPS can be\nfound in reference \"(Wirnsberger)\"#_Wirnsberger.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix only integrates the thermostatting force and must be\n > combined with another integrator, such as [fix nve ](https://docs.lammps.org/fix_nve.html), to\n > solve the full equations of motion. \n > \n\nThis fix is different from a thermostat such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) in that energy is\nadded/subtracted continually. Thus if there is not another mechanism\nin place to counterbalance this effect, the entire system will heat or\ncool continuously.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If heat is subtracted from the system too aggressively so that\n > the group's kinetic energy would go to zero, then LAMMPS will halt\n > with an error message. Increasing the value of *nevery* means that\n > heat is added/subtracted less frequently but in larger portions. The\n > resulting temperature profile will therefore be the same. \n > \n\nThis fix will default to [fix_heat ](https://docs.lammps.org/fix_heat.html) (HEX algorithm) if\nthe keyword *hex* is specified.\n\n----------\n\n**Compatibility with SHAKE and RATTLE (rigid molecules)** :\n\nThis fix is compatible with [fix shake ](https://docs.lammps.org/fix_shake.html) and [fix rattle ](https://docs.lammps.org/fix_shake.html). If either of these constraining algorithms is\nspecified in the input script and the keyword *constrain* is set, the\nbond distances will be corrected a second time at the end of the\nintegration step. It is recommended to specify the keyword *com* in\naddition to the keyword *constrain* . With this option all sites of a\nconstrained cluster are rescaled, if its center of mass is located\ninside the region. Rescaling all sites of a cluster by the same factor\ndoes not introduce any velocity components along fixed bonds. No\nrescaling takes place if the center of mass lies outside the region.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You can only use the keyword *com* along with *constrain* . \n > \n\nTo achieve the highest accuracy it is recommended to use [fix rattle ](https://docs.lammps.org/fix_shake.html) with the keywords *constrain* and *com* as\nshown in the second example. Only if RATTLE is employed, the velocity\nconstraints will be satisfied.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even if RATTLE is used and the keywords *com* and *constrain*\n > are both set, the coordinate constraints will not necessarily be\n > satisfied up to the target precision. The velocity constraints are\n > satisfied as long as all sites of a cluster are rescaled (keyword\n > *com* ) and the cluster does not span adjacent reservoirs. The current\n > implementation of the eHEX algorithm introduces a small error in the\n > bond distances, which goes to zero with order three in the\n > timestep. For example, in a simulation of SPC/E water with a timestep\n > of 2 fs the maximum relative error in the bond distances was found to\n > be on the order of \\(10^{-7}\\) for relatively large\n > temperature gradients. A higher precision can be achieved by\n > decreasing the timestep. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Wirnsberger)** Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143,\n124104 (2015). \n \n**(Ikeshoji)** Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 (1994). \n ", - "restrictions": "This fix is part of the RIGID package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix heat ](https://docs.lammps.org/fix_heat.html), [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html), [compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/reflect/stochastic = style name of this fix command\n* rstyle = diffusive or maxwell or ccl\n* seed = random seed for stochasticity (positive integer)\n* one or more face/args pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi \n *        args = pos temp velx vely velz accomx accomy accomz \n         pos = EDGE or constant \n         EDGE = current lo or hi edge of simulation box \n         constant = number like 0.0 or 30.0 (distance units) \n         temp = wall temperature (temperature units) \n         velx,vely,velz = wall velocity in x,y,z directions (velocity units) \n         accomx,accomy,accomz = accommodation coeffs in x,y,z directions (unitless) \n         not specified for rstyle = diffusive \n         single accom coeff specified for rstyle maxwell \n         all 3 coeffs specified for rstyle cll \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", + "examples": "\n```lmps\nfix zwalls all wall/reflect/stochastic diffusive 23424 zlo EDGE 300 0.1 0.1 0 zhi EDGE 200 0.1 0.1 0\nfix ywalls all wall/reflect/stochastic maxwell 345533 ylo 5.0 300 0.1 0.0 0.0 0.8 yhi 10.0 300 0.1 0.0 0.0 0.8\nfix xwalls all wall/reflect/stochastic cercignanilampis 2308 xlo 0.0 300 0.0 0.1 0.9 0.8 0.7 xhi EDGE 300 0.0 0.1 0 0.9 0.8 0.7 units box\n```\n", + "html_filename": "fix_wall_reflect_stochastic.html", + "short_description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them", + "description": "Bound the simulation with one or more walls which reflect particles\nin the specified group when they attempt to move through them.\n\nReflection means that if an atom moves outside the wall on a timestep\n(e.g. due to the [fix nve ](https://docs.lammps.org/fix_nve.html) command), then it is put back\ninside the wall with a changed velocity.\n\nThis fix models treats the wall as a moving solid boundary with a\nfinite temperature, which can exchange energy with particles that\ncollide with it. This is different than the simpler [fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command which models mirror\nreflection. For this fix, the post collision velocity of each\nparticle is treated stochastically. The randomness can come from many\nsources: thermal motion of the wall atoms, surface roughness, etc.\nThree stochastic reflection models are currently implemented.\n\nFor rstyle *diffusive*, particles are reflected diffusively. Their\nvelocity distribution corresponds to an equilibrium distribution of\nparticles at the wall temperature. No accommodation coefficients\nare specified.\n\nFor rstyle *maxwell*, particle reflection is Maxwellian which means\npartially diffusive and partially specular (**Maxwell**). A\nsingle accommodation coeff is specified which must be between 0.0 and\n1.0 inclusive. It determines the fraction of the collision which is\ndiffusive versus specular. An accommodation coefficient of 1.0 is fully\ndiffusive; a coefficient of 0.0 is fully specular.\n\nFor rstyle *cll*, particle collisions are computed by the\nCercignani/Lampis model. See **CL** and **To** for details.\nThree accommodations coefficient are specified. Each must be between\n0.0 and 1.0 inclusive. Two are velocity accommodation coefficients;\none is a normal kinetic energy accommodation. The normal coeff is the\none corresponding to the normal of the wall itself. For example if\nthe wall is *ylo* or *yhi*, *accomx* and *accomz* are the tangential\nvelocity accommodation coefficients, and *accomy* is the normal\nkinetic energy accommodation coefficient.\n\nThe optional *units* keyword determines the distance units used to\ndefine a wall position. A *box* value selects standard distance units\nas defined by the [units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units\n= real or metal. A *lattice* value means the distance units are in\nlattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have been\npreviously used to define the lattice spacings.\n\n----------\n\n**(Maxwell)** J.C. Maxwell, Philos. Tans. Royal Soc. London, 157: 49-88\n(1867). \n \n**(CL)** C. Cercignani and M. Lampis. Trans. Theory\nStat. Phys. 1, 2, 101 (1971). \n \n**(To)** Q.D. To, V.H. Vu, G. Lauriat, and\nC. Leonard. J. Math. Phys. 56, 103101 (2015). \n ", + "restrictions": "This fix has the same limitations as the [fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command. Any dimension (xyz) that\nhas a wall must be non-periodic. It should not be used with rigid\nbodies such as those defined by the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommand. The wall velocity must lie on the same plane as the wall\nitself.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html)\n" }, { "command": [ - "fix deposit" + "compute temp/drude" ], "syntax": [ - "fix ID group-ID deposit N type M seed keyword values ..." + "compute ID group-ID temp/drude" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -20338,83 +19642,88 @@ export const command_docs = [ "choices": [] }, { - "arg": "deposit", + "arg": "temp/drude", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/drude = style name of this compute command \n", + "examples": "\n```lmps\ncompute TDRUDE all temp/drude\n```\nExample input scripts available: :file:`examples/PACKAGES/drude`.\n", + "html_filename": "compute_temp_drude.html", + "short_description": "Define a computation that calculates the temperatures of core--Drude\npairs", + "description": "Define a computation that calculates the temperatures of core--Drude\npairs. This compute is designed to be used with the\n[thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html).\nPolarizable models in LAMMPS\nare described on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nDrude oscillators consist of a core particle and a Drude particle\nconnected by a harmonic bond, and the relative motion of these Drude\noscillators is usually maintained cold by a specific thermostat that\nacts on the relative motion of the core--Drude particle\npairs. Therefore, because LAMMPS considers Drude particles as normal\natoms in its default temperature compute ([compute temp ](https://docs.lammps.org/compute_temp.html)\ncommand), the reduced temperature of the core--Drude particle pairs is not\ncalculated correctly.\n\nBy contrast, this compute calculates the temperature of the cores\nusing center-of-mass velocities of the core--Drude pairs, and the\nreduced temperature of the Drude particles using the relative\nvelocities of the Drude particles with respect to their cores.\nNon-polarizable atoms are considered as cores. Their velocities\ncontribute to the temperature of the cores.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6, which can be accessed by indices 1--6, whose components\nare\n\n1. temperature of the centers of mass (temperature units)\n2. temperature of the dipoles (temperature units)\n3. number of degrees of freedom of the centers of mass\n4. number of degrees of freedom of the dipoles\n5. kinetic energy of the centers of mass (energy units)\n6. kinetic energy of the dipoles (energy units)\n\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nBoth the scalar value and the first two values of the vector\ncalculated by this compute are \"intensive\". The other four vector values\nare \"extensive\".\n", + "restrictions": "The number of degrees of freedom contributing to the temperature is\nassumed to be constant for the duration of the run unless the\n[fix_modify command ](https://docs.lammps.org/fix_modify.html) sets the option *dynamic/dof\nyes*\\ .\n", + "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html), [compute temp ](https://docs.lammps.org/compute_temp.html)\n" +}, +{ + "command": [ + "bond_style oxdna/fene", + "bond_style oxdna2/fene" + ], + "syntax": [ + "bond_style oxdna/fene", + "bond_style oxdna2/fene", + "bond_style oxrna2/fene" + ], + "args": [ + [ { - "arg": "N", - "type": 2, + "arg": "bond_style", + "type": 1, "choices": [] }, { - "arg": "type", - "type": 2, + "arg": "oxdna/fene", + "type": 1, "choices": [] - }, + } + ], + [ { - "arg": "M", - "type": 2, + "arg": "bond_style", + "type": 1, "choices": [] }, { - "arg": "seed", + "arg": "oxdna2/fene", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "units", - "type": 3, - "choices": [ - "region", - "var", - "set", - "id", - "global", - "local", - "near", - "gaussian", - "attempt", - "rate", - "vx", - "vy", - "vz", - "target", - "mol", - "molfrac", - "rigid", - "shake", - "orient", - "units" - ] + "arg": "bond_style", + "type": 1, + "choices": [] }, { - "arg": "values", + "arg": "oxrna2/fene", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* deposit = style name of this fix command\n* N = # of atoms or molecules to insert\n* type = atom type (1-Ntypes or type label) to assign to inserted atoms (offset for molecule insertion)\n* M = insert a single atom or molecule every M steps\n* seed = random # seed (positive integer)\n* one or more keyword/value pairs may be appended to args\n* keyword = region or var or set or id or global or local or near or gaussian or attempt or rate or vx or vy or vz or target or mol or molfrac or rigid or shake or orient or units \n *        region value = region-ID \n         region-ID = ID of region to use as insertion volume \n *        var value = name = variable name to evaluate for test of atom creation \n *        set values = dim name \n         dim = x or y or z \n         name = name of variable to set with x, y, or z atom position \n *        id value = max or next \n         max = atom ID for new atom(s) is max ID of all current atoms plus one \n         next = atom ID for new atom(s) increments by one for every deposition \n *        global values = lo hi \n         lo,hi = put new atom/molecule a distance lo-hi above all other atoms (distance units) \n *        local values = lo hi delta \n         lo,hi = put new atom/molecule a distance lo-hi above any nearby atom beneath it (distance units) \n         delta = lateral distance within which a neighbor is considered \"nearby\" (distance units) \n *        near value = R \n         R = only insert atom/molecule if further than R from existing particles (distance units) \n *        gaussian values = xmid ymid zmid sigma \n         xmid,ymid,zmid = center of the gaussian distribution (distance units) \n         sigma = width of gaussian distribution (distance units) \n *        attempt value = Q \n         Q = attempt a single insertion up to Q times \n *        rate value = V \n         V = z velocity (y in 2d) at which insertion volume moves (velocity units) \n *        vx values = vxlo vxhi \n         vxlo,vxhi = range of x velocities for inserted atom/molecule (velocity units) \n *        vy values = vylo vyhi \n         vylo,vyhi = range of y velocities for inserted atom/molecule (velocity units) \n *        vz values = vzlo vzhi \n         vzlo,vzhi = range of z velocities for inserted atom/molecule (velocity units) \n *        target values = tx ty tz \n         tx,ty,tz = location of target point (distance units) \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        molfrac values = f1 f2 ... fN \n         f1 to fN = relative probability of creating each of N molecules in template-ID \n *        rigid value = fix-ID \n         fix-ID = ID of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n *        shake value = fix-ID \n         fix-ID = ID of [fix shake ](https://docs.lammps.org/fix_shake.html) command \n *        orient values = rx ry rz \n         rx,ry,rz = vector to randomly rotate an inserted molecule around \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", - "examples": "\n```lmps\nfix 3 all deposit 1000 2 100 29494 region myblock local 1.0 1.0 1.0 units box\nfix 2 newatoms deposit 10000 1 500 12345 region disk near 2.0 vz -1.0 -0.8\nfix 4 sputter deposit 1000 2 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice\nfix 5 insert deposit 200 2 100 777 region disk gaussian 5.0 5.0 9.0 1.0 units box\n\nlabelmap atom 1 Au\nfix 4 sputter deposit 1000 Au 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice\n```\n", - "html_filename": "fix_deposit.html", - "short_description": "Insert a single atom or molecule into the simulation domain every M\ntimesteps until N atoms or molecules have been inserted", - "description": "Insert a single atom or molecule into the simulation domain every M\ntimesteps until N atoms or molecules have been inserted. This is\nuseful for simulating deposition onto a surface. For the remainder of\nthis doc page, a single inserted atom or molecule is referred to as a\n\"particle\".\n\nIf inserted particles are individual atoms, they are assigned the\nspecified atom type. If they are molecules, the type of each atom in\nthe inserted molecule is specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command, and those values are added to the\nspecified atom type. E.g. if the file specifies atom types 1,2,3, and\nthose are the atom types you want for inserted molecules, then specify\n*type* = 0. If you specify *type* = 2, the in the inserted molecule\nwill have atom types 3,4,5.\n\nAll atoms in the inserted particle are assigned to two groups: the\ndefault group \"all\" and the group specified in the fix deposit command\n(which can also be \"all\").\n\nIf you are computing temperature values which include inserted\nparticles, you will want to use the [compute_modify dynamic/dof yes](https://docs.lammps.org/compute_modify.html) option, which ensures the current number of atoms is\nused as a normalizing factor each time the temperature is computed.\n\nCare must be taken that inserted particles are not too near existing\natoms, using the options described below. When inserting particles\nabove a surface in a non-periodic box (see the\n[boundary ](https://docs.lammps.org/boundary.html) command), the possibility of a particle\nescaping the surface and flying upward should be considered, since the\nparticle may be lost or the box size may grow infinitely large. A\n[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command can be used to\nprevent this behavior. Note that if a shrink-wrap boundary is used,\nit is OK to insert the new particle outside the box, however the box\nwill immediately be expanded to include the new particle. When\nsimulating a sputtering experiment it is probably more realistic to\nignore those atoms using the [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\ncommand with the *lost ignore* option and a fixed\n[boundary ](https://docs.lammps.org/boundary.html).\n\nThe fix deposit command must use the *region* keyword to define an\ninsertion volume. The specified region must have been previously\ndefined with a [region ](https://docs.lammps.org/region.html) command. It must be defined with\nside = *in* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS checks that the specified region is wholly inside the\n > simulation box. It can do this correctly for orthonormal simulation\n > boxes. However for [triclinic boxes ](https://docs.lammps.org/Howto_triclinic.html), it only\n > tests against the larger orthonormal box that bounds the tilted\n > simulation box. If the specified region includes volume outside the\n > tilted box, then an insertion will likely fail, leading to a \"lost\n > atoms\" error. Thus for triclinic boxes you should ensure the\n > specified region is wholly inside the simulation box. \n > \n\nThe locations of inserted particles are taken from uniform distributed\nrandom numbers, unless the *gaussian* keyword is used. Then the\nindividual coordinates are taken from a gaussian distribution of\nwidth *sigma* centered on *xmid,ymid,zmid* .\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the\n[molecule ](https://docs.lammps.org/molecule.html) command, which reads files that define one or\nmore molecules. The coordinates, atom types, charges, etc, as well as\nany bond/angle/etc and special neighbor information for the molecule\ncan be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in each file are the coordinates and types of atoms in\nthe molecule.\n\nIf the molecule template contains more than one molecule, the relative\nprobability of depositing each molecule can be specified by the\n*molfrac* keyword. N relative probabilities, each from 0.0 to 1.0, are\nspecified, where N is the number of molecules in the template. Each\ntime a molecule is deposited, a random number is used to sample from\nthe list of relative probabilities. The N values must sum to 1.0.\n\nIf you wish to insert molecules via the *mol* keyword, that will be\ntreated as rigid bodies, use the *rigid* keyword, specifying as its\nvalue the ID of a separate [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)\ncommand which also appears in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nEach timestep a particle is inserted, the coordinates for its atoms\nare chosen as follows. For insertion of individual atoms, the\n\"position\" referred to in the following description is the coordinate\nof the atom. For insertion of molecule, the \"position\" is the\ngeometric center of the molecule; see the [molecule ](https://docs.lammps.org/molecule.html) doc\npage for details. A random rotation of the molecule around its center\npoint is performed, which determines the coordinates all the\nindividual atoms.\n\nA random position within the region insertion volume is generated. If\nneither the *global* or *local* keyword is used, the random position\nis the trial position. If the *global* keyword is used, the random\nx,y values are used, but the z position of the new particle is set\nabove the highest current atom in the simulation by a distance\nrandomly chosen between lo/hi. (For a 2d simulation, this is done for\nthe y position.) If the *local* keyword is used, the z position is\nset a distance between lo/hi above the highest current atom in the\nsimulation that is \"nearby\" the chosen x,y position. In this context,\n\"nearby\" means the lateral distance (in x,y) between the new and old\nparticles is less than the *delta* setting.\n\nOnce a trial x,y,z position has been selected, the insertion is only\nperformed if both the *near* and *var* keywords are satisfied (see below).\nIf either the *near* or the *var* keyword is not satisfied, a new random\nposition within the insertion volume is chosen and another trial is made.\nUp to Q attempts are made. If one or more particle insertions are not\nsuccessful, LAMMPS prints a warning message.\n\nThe *near* keyword ensures that no current atom in the simulation is within\na distance R of any atom in the new particle, including the effect of\nperiodic boundary conditions if applicable. Note that the default value\nfor R is 0.0, which will allow atoms to strongly overlap if you are\ninserting where other atoms are present. This distance test is performed\nindependently for each atom in an inserted molecule, based on the randomly\nrotated configuration of the molecule.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are inserting finite size particles or a molecule or\n > rigid body consisting of finite-size particles, then you should\n > typically set R larger than the distance at which any inserted\n > particle may overlap with either a previously inserted particle or an\n > existing particle. LAMMPS will issue a warning if R is smaller than\n > this value, based on the radii of existing and inserted particles. \n > \n\n\nThe *var* and *set* keywords can be used together to provide a criterion\nfor accepting or rejecting the addition of an individual atom, based on its\ncoordinates. The *name* specified for the *var* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) that should evaluate to a zero or\nnon-zero value based on one or two or three variables that will store the\n*x*, *y*, or *z* coordinates of an atom (one variable per coordinate). If\nused, these other variables must be [internal-style variables](https://docs.lammps.org/variable.html) defined in the input script; their initial numeric value can be\nanything. They must be internal-style variables, because this command\nresets their values directly. The *set* keyword is used to identify the\nnames of these other variables, one variable for the *x*-coordinate of a\ncreated atom, one for *y*, and one for *z*. When an atom is created, its\n\\((x,y,z)\\) coordinates become the values for any *set* variable that\nis defined. The *var* variable is then evaluated. If the returned value\nis 0.0, the atom is not created. If it is non-zero, the atom is created.\nFor an example of how to use these keywords, see the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command.\n\nThe *rate* option moves the insertion volume in the z direction (3d)\nor y direction (2d). This enables particles to be inserted from a\nsuccessively higher height over time. Note that this parameter is\nignored if the *global* or *local* keywords are used, since those\noptions choose a z-coordinate for insertion independently.\n\nThe vx, vy, and vz components of velocity for the inserted particle\nare set by sampling a uniform distribution between the bounds set by\nthe values specified for the *vx*, *vy*, and *vz* keywords. Note that\nnormally, new particles should be a assigned a negative vertical\nvelocity so that they move towards the surface. For molecules, the\nsame velocity is given to every particle (no rotation or bond vibration).\n\nIf the *target* option is used, the velocity vector of the inserted\nparticle is changed so that it points from the insertion position\ntowards the specified target point. The magnitude of the velocity is\nunchanged. This can be useful, for example, for simulating a\nsputtering process. E.g. the target point can be far away, so that\nall incident particles strike the surface as if they are in an\nincident beam of particles at a prescribed angle.\n\nThe *orient* keyword is only used when molecules are deposited. By\ndefault, each molecule is inserted at a random orientation. If this\nkeyword is specified, then (rx,ry,rz) is used as an orientation\nvector, and each inserted molecule is rotated around that vector with\na random value from zero to 2*PI. For a 2d simulation, rx = ry = 0.0\nis required, since rotations can only be performed around the z axis.\n\nThe *id* keyword determines how atom IDs and molecule IDs are assigned\nto newly deposited particles. Molecule IDs are only assigned if\nmolecules are being inserted. For the *max* setting, the atom and\nmolecule IDs of all current atoms are checked. Atoms in the new\nparticle are assigned IDs starting with the current maximum plus one.\nIf a molecule is inserted it is assigned an ID = current maximum plus\none. This means that if particles leave the system, the new IDs may\nreplace the lost ones. For the *next* setting, the maximum ID of any\natom and molecule is stored at the time the fix is defined. Each time\na new particle is added, this value is incremented to assign IDs to\nthe new atom(s) or molecule. Thus atom and molecule IDs for deposited\nparticles will be consecutive even if particles leave the system over\ntime.\n\nThe *units* keyword determines the meaning of the distance units used\nfor the other deposition parameters. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command,\ne.g. Angstroms for units = real or metal. A *lattice* value means the\ndistance units are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\nNote that the units choice affects all the keyword values that have\nunits of distance or velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the atom\n > count is changing due to adding particles, you typically should use\n > the [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command\n > for the temperature compute you are using. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the deposition to [binary restart files ](https://docs.lammps.org/restart.html). This includes information about how many\nparticles have been deposited, the random number generator seed, the\nnext timestep for deposition, etc. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. This fix computes a global scalar, which can be accessed by various\noutput commands. The scalar is the cumulative number of insertions. The\nscalar value calculated by this fix is \"intensive\". No parameter of this\nfix can be used with the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "The specified insertion region cannot be a \"dynamic\" region, as\ndefined by the [region ](https://docs.lammps.org/region.html) command.\n", - "related": "[fix pour ](https://docs.lammps.org/fix_pour.html), [region ](https://docs.lammps.org/region.html)\n" + "parameters": "", + "examples": "\n```lmps\n# LJ units\nbond_style oxdna/fene\nbond_coeff * 2.0 0.25 0.7525\n\nbond_style oxdna2/fene\nbond_coeff * 2.0 0.25 0.7564\n\nbond_style oxrna2/fene\nbond_coeff * 2.0 0.25 0.76107\n\nbond_style oxdna/fene\nbond_coeff * oxdna_lj.cgdna\n\n# Real units\nbond_style oxdna/fene\nbond_coeff * 11.92337812042065 2.1295 6.409795\n\nbond_style oxdna2/fene\nbond_coeff * 11.92337812042065 2.1295 6.4430152\n\nbond_style oxrna2/fene\nbond_coeff * 11.92337812042065 2.1295 6.482800913\n\nbond_style oxrna2/fene\nbond_coeff * oxrna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples have to be kept fixed and\n > cannot be changed without reparameterizing the entire model. They are\n > provided in forms compatible with both *units lj* and *units real*\n > (see documentation of [units ](https://docs.lammps.org/units.html)). These can also be read\n > from a potential file with correct unit style by specifying the name\n > of the file. Several potential files for each unit style are included\n > in the ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", + "html_filename": "bond_oxdna.html", + "short_description": "The *oxdna/fene*, *oxdna2/fene*, and *oxrna2/fene* bond styles use the potential\n\\[\n E = - \\frac{\\epsilon}{2} \\ln \\left[ 1 - \\left(\\frac{r-r_0}{\\Delta}\\right)^2\\right]\\]\nto define a modified finite extensible nonlinear elastic (FENE)\npotential :ref:[(Ouldridge) ](https://docs.lammps.org/Ouldridge0>` to model the connectivity ofthe phosphate backbone in the oxDNA/oxRNA force field for coarse-grainedmodelling of DNA/RNA.The following coefficients must be defined for the bond type via the[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as given in the above example, orin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:* \\(\\epsilon\\) (energy)* \\(\\Delta\\) (distance)* \\(r_0\\) (distance)> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The oxDNA bond style has to be used together with the corresponding > oxDNA pair styles for excluded volume interaction *oxdna/excv* , > stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and coaxial > stacking interaction *oxdna/coaxstk* as well as hydrogen-bonding > interaction *oxdna/hbond* (see also documentation of [pair_style > oxdna/excv ](https://docs.lammps.org/pair_oxdna.html))", + "description": "The *oxdna/fene*, *oxdna2/fene*, and *oxrna2/fene* bond styles use the potential\n\\[\n E = - \\frac{\\epsilon}{2} \\ln \\left[ 1 - \\left(\\frac{r-r_0}{\\Delta}\\right)^2\\right]\\]\nto define a modified finite extensible nonlinear elastic (FENE)\npotential :ref:[(Ouldridge) ](https://docs.lammps.org/Ouldridge0>` to model the connectivity ofthe phosphate backbone in the oxDNA/oxRNA force field for coarse-grainedmodelling of DNA/RNA.The following coefficients must be defined for the bond type via the[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as given in the above example, orin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:* \\(\\epsilon\\) (energy)* \\(\\Delta\\) (distance)* \\(r_0\\) (distance)> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The oxDNA bond style has to be used together with the corresponding > oxDNA pair styles for excluded volume interaction *oxdna/excv* , > stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and coaxial > stacking interaction *oxdna/coaxstk* as well as hydrogen-bonding > interaction *oxdna/hbond* (see also documentation of [pair_style > oxdna/excv ](https://docs.lammps.org/pair_oxdna.html)). For the oxDNA2 **Snodin0** > bond style the analogous pair styles *oxdna2/excv* , *oxdna2/stk* , > *oxdna2/xstk* , *oxdna2/coaxstk* , *oxdna2/hbond* and an additional > Debye-Hueckel pair style *oxdna2/dh* have to be defined. The same > applies to the oxRNA2 **Sulc01** styles. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >This bond style has to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > > ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: >If data files are produced with [write_data ](https://docs.lammps.org/write_data.html), then > the [newton ](https://docs.lammps.org/newton.html) command should be set to *newton on* or > *newton off on*. Otherwise the data files will not have the same > 3'-to-5' polarity as the initial data file. This limitation does not > apply to binary restart files produced with [write_restart > ](https://docs.lammps.org/write_restart.html). > Example input and data files for DNA and RNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`, `.../oxDNA2/`` and``.../oxRNA2/``. A simple python setup tool which creates singlestraight or helical DNA strands, DNA/RNA duplexes or arrays of DNA/RNAduplexes can be found in ``examples/PACKAGES/cgdna/util/``.Please cite **Henrich0** in any publication that usesthis implementation. An updated documentation that contains general informationon the model, its implementation and performance as well as the structure ofthe data and input file can be found `here ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >In order to compute averaged data, it is required that there are no\n > neighbor list rebuilds for at least Nrepeat\\*Nevery steps preceding\n > each *Nfreq* step. For that reason, fix *reaxff/species* may\n > change your neighbor list settings. Reneighboring will occur no\n > more frequently than every Nrepeat\\*Nevery timesteps, and will\n > occur less frequently if *Nfreq* is not a multiple of\n > Nrepeat\\*Nevery. There will be a warning message showing the new\n > settings. Having a *Nfreq* setting that is larger than what is\n > required for correct computation of the ReaxFF force field\n > interactions, in combination with certain *Nrepeat* and *Nevery*\n > settings, can thus lead to incorrect results. For typical ReaxFF\n > calculations, reneighboring only every 100 steps is already quite a\n > low frequency. \n > \n\nIf the filename ends with \".gz\", the output file is written in gzipped\nformat. A gzipped dump file will be about 3x smaller than the text version,\nbut will also take longer to write.\n\n **New in version 15Jun2023** \n\n Support for wildcards added\nOptional keyword *cutoff* can be assigned to change the minimum\nbond-order values used in identifying chemical bonds between pairs of\natoms. Bond-order cutoffs should be carefully chosen, as bond-order\ncutoffs that are too small may include too many bonds (which will result\nin an error), while cutoffs that are too large will result in fragmented\nmolecules. The default cutoff of 0.3 usually gives good results. A\nwildcard asterisk can be used in place of or in conjunction with the I,J\narguments to set the bond-order cutoff for multiple pairs of atom types.\nThis takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of atom types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from n to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe optional keyword *element* can be used to specify the chemical\nsymbol printed for each LAMMPS atom type. The number of symbols must\nmatch the number of LAMMPS atom types and each symbol must consist of\n1 or 2 alphanumeric characters. By default, these symbols are the same\nas the chemical identity of each LAMMPS atom type, as specified by the\n[ReaxFF pair_coeff ](https://docs.lammps.org/pair_reaxff.html) command and the ReaxFF force\nfield file.\n\nThe optional keyword *position* writes center-of-mass positions of\neach identified molecules to file *filepos* every *posfreq* timesteps.\nThe first line contains information on timestep, total number of\nmolecules, total number of distinct species, and box dimensions. The\nsecond line is a header containing labels. From the third line\ndownward, each molecule writes a line of output containing the\nfollowing information: molecule ID, number of atoms in this molecule,\nchemical formula, total charge, and center-of-mass xyz positions of\nthis molecule. The xyz positions are in fractional coordinates\nrelative to the box dimensions.\n\nFor the keyword *position*, the *filepos* is the name of the output\nfile. It can contain the wildcard character \"\\*\". If the \"\\*\"\ncharacter appears in *filepos*, then one file per snapshot is written\nat *posfreq* and the \"\\*\" character is replaced with the timestep\nvalue. For example, AuO.pos.\\* becomes AuO.pos.0, AuO.pos.1000, etc.\n\nThe optional keyword *delete* enables the periodic removal of molecules\nfrom the system **Delete**. Criteria for deletion can\nbe either a list of specific chemical formulae or a range of molecular\nweights. Molecules are deleted every *Nfreq* timesteps, and bond\nconnectivity is determined using the *Nevery* and *Nrepeat* keywords. The\n*filedel* argument is the name of the output file that records the species\nthat are removed from the system. The *specieslist* keyword permits\nspecific chemical species to be deleted. The *Nspecies* argument specifies\nhow many species are eligible for deletion and is followed by a list of\nchemical formulae, whose strings are compared to species identified by this\nfix. For example, \"specieslist 2 CO CO2\" deletes molecules that are\nidentified as \"CO\" and \"CO2\" in the species output file. When using the\n*specieslist* keyword, the *filedel* file has the following format: the\nfirst line lists the chemical formulae eligible for deletion, and each\nadditional line contains the timestep on which a molecule deletion occurs\nand the number of each species deleted on that timestep. The *masslimit*\nkeyword permits deletion of molecules with molecular weights between\n*massmin* and *massmax*. When using the *masslimit* keyword, each line of\nthe *filedel* file contains the timestep on which deletions occurs,\nfollowed by how many of each species are deleted (with quantities preceding\nchemical formulae). The *specieslist* and *masslimit* keywords cannot both\nbe used in the same *reaxff/species* fix. The *delete_rate_limit* keyword\ncan enforce an upper limit on the overall rate of molecule deletion. The\nnumber of deletion occurrences is limited to Nlimit within an interval of\nNsteps timesteps. Nlimit can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html). When using the *delete_rate_limit* keyword, no\ndeletions are permitted to occur within the first Nsteps timesteps of the\nfirst run (after reading a either a data or restart file).\n\n----------\n\nThe *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what\ntimesteps the bond-order values are sampled to get the average bond\norder. The species analysis is performed using the average bond-order\non timesteps that are a multiple of *Nfreq* . The average is over\n*Nrepeat* bond-order samples, computed in the preceding portion of the\nsimulation every *Nevery* timesteps. *Nfreq* must be a multiple of\n*Nevery* and *Nevery* must be non-zero even if *Nrepeat* is 1.\nAlso, the timesteps\ncontributing to the average bond-order cannot overlap,\ni.e. Nrepeat\\*Nevery can not exceed Nfreq.\n\nFor example, if Nevery=2, Nrepeat=6, and Nfreq=100, then bond-order\nvalues on timesteps 90,92,94,96,98,100 will be used to compute the\naverage bond-order for the species analysis output on timestep 100.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes both a global vector of length 2 and a per-atom vector,\neither of which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe values in the global vector are \"intensive\".\n\nThe 2 values in the global vector are as follows:\n\n #. total number of molecules\n #. total number of distinct species\n\nThe per-atom vector stores the molecule ID for each atom as identified\nby the fix. If an atom is not in a molecule, its ID will be 0.\nFor atoms in the same molecule, the molecule ID for all of them\nwill be the same and will be equal to the smallest atom ID of\nany atom in the molecule.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Delete)** Jacob R. Gissinger, Scott R. Zavada, Joseph G. Smith, Josh Kemppainen, Ivan Gallegos, Gregory M. Odegard, Emilie J. Siochi, and Kristopher E. Wise, Carbon, 202, 336-347 (2023). \n ", - "restrictions": "The \"fix reaxff/species\" requires that [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) is used.\nThis fix is part of the REAXFF package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo write gzipped species files, you must compile LAMMPS with the -DLAMMPS_GZIP option.\n", - "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style sph/taitwater/morris\npair_coeff * * 1000.0 1430.0 1.0 2.4\n```\n", + "html_filename": "pair_sph_taitwater_morris.html", + "short_description": "The sph/taitwater/morris style computes pressure forces between SPH\nparticles according to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound", + "description": "The sph/taitwater/morris style computes pressure forces between SPH\nparticles according to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThis pair style also computes laminar viscosity :ref:[(Morris) ](https://docs.lammps.org/Morris>`.See `this PDF guide ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the\n > file are effectively ignored, and replaced by new values as described\n > in the previous paragraph. If the density value in the table is not\n > very close to the new value (i.e. round-off difference), then you will\n > be assigning density-dependent energy and force values to a different\n > density, which is probably not what you want. LAMMPS will warn if\n > this is occurring. \n > \n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in density units), the third value is the density-dependent function\nvalue (in energy units / length\\^4), and the fourth is the force (in force\nunits). The density values must increase from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style multi/lucy/rx\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Moore2)** Moore, J Chem Phys, 144, 104501 (2016). \n \n**(Warren2)** Warren, Phys Rev E, 68, 066702 (2003). \n \n**(Brennan2)** Brennan, J Chem Phys Lett, 5, 2144-2149 (2014). \n ", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/asphere = style name of this fix command\n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nph/asphere iso 0.0 0.0 1000.0\nfix 2 all nph/asphere x 5.0 5.0 1000.0\nfix 2 all nph/asphere x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/asphere aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_nph_asphere.html", + "short_description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover pressure\nbarostat", + "description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover pressure\nbarostat. P is pressure; H is enthalpy. This creates a system\ntrajectory consistent with the isenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/asphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/asphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "pair_style pace", - "pair_style pace/kk", - "pair_style pace", - "pair_style pace/extrapolation" + "improper_style cvff", + "improper_style cvff/intel", + "improper_style cvff/omp" ], "syntax": [ - "pair_style pace ... keyword values ..." + "improper_style cvff" ], "args": [ [ { - "arg": "pair_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "pace", + "arg": "cvff", "type": 3, "choices": [ - "pace", - "pace/kk" + "cvff", + "cvff/intel", + "cvff/omp" ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* one or more keyword/value pairs may be appended \n *      keyword = product or recursive or chunksize \n       product = use product algorithm for basis functions \n       recursive = use recursive algorithm for basis functions \n       chunksize value = number of atoms in each pass \n *    pair_style pace/extrapolation \n", - "examples": "\n```lmps\npair_style pace\npair_style pace product chunksize 2048\npair_coeff * * Cu-PBE-core-rep.ace Cu\n\npair_style pace\npair_coeff * * Cu.yaml Cu\n\npair_style pace/extrapolation\npair_coeff * * Cu.yaml Cu.asi Cu\n```\n", - "html_filename": "pair_pace.html", - "short_description": "Pair style *pace* computes interactions using the Atomic Cluster\nExpansion (ACE), which is a general expansion of the atomic energy in\nmulti-body basis functions", - "description": "Pair style *pace* computes interactions using the Atomic Cluster\nExpansion (ACE), which is a general expansion of the atomic energy in\nmulti-body basis functions. **Drautz20191**. The *pace*\npair style provides an efficient implementation that is described in\nthis paper **Lysogorskiy20211**.\n\nIn ACE, the total energy is decomposed into a sum over atomic\nenergies. The energy of atom *i* is expressed as a linear or non-linear\nfunction of one or more density functions. By projecting the density\nonto a local atomic base, the lowest order contributions to the energy\ncan be expressed as a set of scalar polynomials in basis function\ncontributions summed over neighbor atoms.\n\nOnly a single pair_coeff command is used with the *pace* style which\nspecifies an ACE coefficient file followed by N additional arguments\nspecifying the mapping of ACE elements to LAMMPS atom types, where N is\nthe number of LAMMPS atom types:\n\n* ACE coefficient file (.yaml or .yace/.ace format)\n* N element names = mapping of ACE elements to atom types\n\nOnly a single pair_coeff command is used with the *pace* style which\nspecifies an ACE file that fully defines the potential. Note that\nunlike for other potentials, cutoffs are not set in the pair_style or\npair_coeff command; they are specified in the ACE file.\n\nThe pair_style *pace* command may be followed by the optional keyword\n*product* or *recursive*, which determines which of two algorithms is\nused for the calculation of basis functions and derivatives. The\ndefault is *recursive*.\n\nThe keyword *chunksize* is only applicable when using the pair style\n*pace* with the KOKKOS package on GPUs and is ignored otherwise. This\nkeyword controls the number of atoms in each pass used to compute the\natomic cluster expansion and is used to avoid running out of memory.\nFor example if there are 8192 atoms in the simulation and the\n*chunksize* is set to 4096, the ACE calculation will be broken up into\ntwo passes (running on a single GPU).\n\n #### Extrapolation grade\n\nCalculation of extrapolation grade in PACE is implemented in `pair_style\npace/extrapolation`. It is based on the MaxVol algorithm similar to\nMoment Tensor Potential (MTP) by Shapeev et al. and is described in\n**Lysogorskiy2023**. In order to compute\nextrapolation grade one needs to provide:\n\n#. ACE potential in B-basis form (`.yaml` format) and\n#. Active Set Inverted (ASI) file for corresponding potential (`.asi` format)\n\nCalculation of extrapolation grades requires matrix-vector\nmultiplication for each atom and is slower than the usual `pair_style\npace recursive`, therefore it is *not* computed by default.\nExtrapolation grade calculation is involved by `fix pair`, which\nrequests to compute `gamma`, as shown in example below:\n\n```lmps\npair_style pace/extrapolation\npair_coeff * * Cu.yaml Cu.asi Cu\n\nfix pace_gamma all pair 10 pace/extrapolation gamma 1\n\ncompute max_pace_gamma all reduce max f_pace_gamma\nvariable dump_skip equal \"c_max_pace_gamma < 5\"\n\ndump pace_dump all custom 20 extrapolative_structures.dump id type x y z f_pace_gamma\ndump_modify pace_dump skip v_dump_skip\n\nvariable max_pace_gamma equal c_max_pace_gamma\nfix extreme_extrapolation all halt 10 v_max_pace_gamma > 25\n```\nHere extrapolation grade gamma is computed every 10 steps and is stored\nin `f_pace_gamma` per-atom variable. The largest value of extrapolation\ngrade among all atoms in a structure is reduced to `c_max_pace_gamma`\nvariable. Only if this value exceeds extrapolation threshold 5, then\nthe structure will be dumped into `extrapolative_structures.dump` file,\nbut not more often than every 20 steps.\n\nOn all other steps `pair_style pace recursive` will be used.\n\nWhen using the pair style *pace/extrapolation* with the KOKKOS package on GPUs\nproduct B-basis evaluator is always used and only *linear* ASI is supported.\n\n----------\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the ACE coefficient file.\n\n #### Core repulsion\nThe ACE potential can be configured to initiate core-repulsion from an inner cutoff,\nseamlessly transitioning from ACE to ZBL. The core repulsion factor can be accessed\nas a per-atom quantity, as demonstrated in the example below:\n\n```lmps\npair_style pace\npair_coeff * * CuNi.yaml Cu Ni\n\nfix pace_corerep all pair 1 pace corerep 1\n```\nIn this case, per-atom `f_pace_corerep` quantities represent the fraction of ZBL\ncore-repulsion for each atom.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Drautz20191)** Drautz, Phys Rev B, 99, 014104 (2019). \n \n**(Lysogorskiy20211)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, npj Comp Mat, 7, 97 (2021). \n \n**(Lysogorskiy2023)** Lysogorskiy, Bochkarev, Mrovec, Drautz, Phys Rev Mater, 7, 043801 (2023) / arXiv:2212.08716 (2022). \n ", - "restrictions": "This pair style is part of the ML-PACE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html),\n[fix pair ](https://docs.lammps.org/fix_pair.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style cvff\nimproper_coeff 1 80.0 -1 4\n```\n", + "html_filename": "improper_cvff.html", + "short_description": "The *cvff* improper style uses the potential\n\\[\n E = K [1 + d \\cos (n \\phi) ]\\]\nwhere phi is the improper dihedral angle", + "description": "The *cvff* improper style uses the potential\n\\[\n E = K [1 + d \\cos (n \\phi) ]\\]\nwhere phi is the improper dihedral angle.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\nthe improper dihedral angle is between the plane of I,J,K and the\nplane of J,K,L. Note that because this is effectively a dihedral\nangle, the formula for this improper style is the same as for\n[dihedral_style harmonic ](https://docs.lammps.org/dihedral_harmonic.html).\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (0,1,2,3,4,6)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "boundary" + "angle_style spica", + "angle_style spica/omp" ], "syntax": [ - "boundary x y z" + "angle_style spica", + "angle_style spica/omp" ], "args": [ [ { - "arg": "boundary", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "f", + "arg": "spica", "type": 3, "choices": [ - "p", - "s", - "f" + "spica", + "spica/omp" ] - }, + } + ], + [ { - "arg": "f", - "type": 3, - "choices": [ - "p", - "s", - "f" - ] + "arg": "angle_style", + "type": 1, + "choices": [] }, { - "arg": "f", - "type": 3, - "choices": [ - "p", - "s", - "f" - ] + "arg": "spica/omp", + "type": 2, + "choices": [] } ] ], - "parameters": "* x,y,z = p or s or f or *m*, one or two letters \n *        p is periodic \n *        f is non-periodic and fixed \n *        s is non-periodic and shrink-wrapped \n *        *m* is non-periodic and shrink-wrapped with a minimum value \n", - "examples": "\n```lmps\nboundary p p f\nboundary p fs p\nboundary s f fm\n```\n", - "html_filename": "boundary.html", - "short_description": "Set the style of boundaries for the global simulation box in each\ndimension", - "description": "Set the style of boundaries for the global simulation box in each\ndimension. A single letter assigns the same style to both the lower\nand upper face of the box. Two letters assigns the first style to the\nlower face and the second style to the upper face. The initial size\nof the simulation box is set by the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [create_box ](https://docs.lammps.org/create_box.html)\ncommands.\n\nThe style *p* means the box is periodic, so that particles interact\nacross the boundary, and they can exit one end of the box and re-enter\nthe other end. A periodic dimension can change in size due to\nconstant pressure boundary conditions or box deformation (see the\n[fix npt ](https://docs.lammps.org/fix_nh.html) and [fix deform ](https://docs.lammps.org/fix_deform.html) commands).\nThe *p* style must be applied to both faces of a dimension. For 2d\nsimulations the z dimension must be periodic (which is the default).\n\nThe styles *f*, *s*, and *m* mean the box is non-periodic, so that\nparticles do not interact across the boundary and do not move from one\nside of the box to the other.\n\nFor style *f*, the position of the face is fixed. If an atom moves\noutside the face it will be deleted on the next timestep that\nreneighboring occurs. This will typically generate an error unless\nyou have set the [thermo_modify lost ](https://docs.lammps.org/thermo_modify.html) option to\nallow for lost atoms.\n\nFor style *s*, the position of the face is set so as to encompass the\natoms in that dimension (shrink-wrapping), no matter how far they\nmove. Note that when the difference between the current box dimensions\nand the shrink-wrap box dimensions is large, this can lead to lost\natoms at the beginning of a run when running in parallel. This is due\nto the large change in the (global) box dimensions also causing\nsignificant changes in the individual subdomain sizes. If these\nchanges are farther than the communication cutoff, atoms will be lost.\nThis is best addressed by setting initial box dimensions to match the\nshrink-wrapped dimensions more closely, by using *m* style boundaries\n(see below).\n\nFor style *m*, shrink-wrapping occurs, but is bounded by the value\nspecified in the data or restart file or set by the\n[create_box ](https://docs.lammps.org/create_box.html) command. For example, if the upper z\nface has a value of 50.0 in the data file, the face will always be\npositioned at 50.0 or above, even if the maximum z-extent of all the\natoms becomes less than 50.0. This can be useful if you start a\nsimulation with an empty box or if you wish to leave room on one side\nof the box, e.g. for atoms to evaporate from a surface.\n\nLAMMPS also allows use of triclinic (non-orthogonal) simulation boxes.\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a\ndescription of both general and restricted triclinic boxes and how to\ndefine them. General triclinic boxes (arbitrary edge vectors **A**,\n**B**, and **C**) are converted internally to restricted triclinic\nboxes with tilt factors (xy,xz,yz) which skew an otherwise orthogonal\nbox.\n\nThe boundary command settings explained above for the 6\nfaces of an orthogonal box also apply in similar manner to the 6 faces\nof a restricted triclinic box (and thus to the corresponding 6 faces\nof a general triclinic box), with the following context.\n\nif the second dimension of a tilt factor (e.g. y for xy) is periodic,\nthen the periodicity is enforced with the tilt factor offset. This\nmeans that for y periodicity a particle which exits the lower y\nboundary is displaced in the x-direction by xy before it re-enters the\nupper y boundary. And vice versa if a particle exits the upper y\nboundary. Likewise the ghost atoms surrounding a particle near the\nlower y boundary include images of particles near the upper y-boundary\nwhich are displaced in the x-direction by xy. Similar rules apply for\nz-periodicity and the xz and/or yz tilt factors.\n\nIf the first dimension of a tilt factor is shrink-wrapped, then the\nshrink wrapping is applied to the tilted box face, to encompass the\natoms. E.g. for a positive xy tilt, the xlo and xhi faces of the box\nare planes tilting in the +y direction as y increases. The position\nof these tilted planes are adjusted dynamically to shrink-wrap around\nthe atoms to determine the xlo and xhi extents of the box.\n", - "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command\nor [read_restart ](https://docs.lammps.org/read_restart.html) command. See the\n[change_box ](https://docs.lammps.org/change_box.html) command for how to change the\nsimulation box boundaries after it has been defined.\n\nFor 2d simulations, the z dimension must be periodic.\n", - "related": "See the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command for a discussion\nof lost atoms.\n" + "parameters": "", + "examples": "\n```lmps\nangle_style spica\nangle_coeff 1 300.0 107.0\n```\n", + "html_filename": "angle_spica.html", + "short_description": "The *spica* angle style is a combination of the harmonic angle potential,\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and\n\\(K\\) a prefactor, with the *repulsive* part of the non-bonded\n*lj/spica* pair style between the atoms 1 and 3", + "description": "The *spica* angle style is a combination of the harmonic angle potential,\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and\n\\(K\\) a prefactor, with the *repulsive* part of the non-bonded\n*lj/spica* pair style between the atoms 1 and 3. This angle potential is\nintended for coarse grained MD simulations with the SPICA (formerly called SDK) parameterization\nusing the [pair_style lj/spica ](https://docs.lammps.org/pair_spica.html). Relative to the\npair_style *lj/spica*, however, the energy is shifted by\n\\(\\epsilon\\), to avoid sudden jumps. Note that the usual 1/2 factor\nis included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\nThe required *lj/spica* parameters are extracted automatically from the\npair_style.\n\nStyle *sdk*, the original implementation of style *spica*, is available\nfor backward compatibility.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nCG-SPICA package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style harmonic ](https://docs.lammps.org/angle_harmonic.html), [pair_style lj/spica ](https://docs.lammps.org/pair_spica.html),\n[pair_style lj/spica/coul/long ](https://docs.lammps.org/pair_spica.html)\n" }, { "command": [ - "fix bond/swap" + "fix npt/cauchy" ], "syntax": [ - "fix ID group-ID bond/swap Nevery fraction cutoff seed" + "fix ID group-ID style_name keyword value ..." ], "args": [ [ @@ -20651,127 +19968,221 @@ export const command_docs = [ "choices": [] }, { - "arg": "bond/swap", - "type": 1, - "choices": [] - }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "fraction", + "arg": "style_name", "type": 2, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] + "arg": "fixedpoint", + "type": 3, + "choices": [ + "temp", + "iso", + "aniso", + "tri", + "x", + "y", + "z", + "xy", + "yz", + "xz", + "couple", + "tchain", + "pchain", + "mtk", + "tloop", + "ploop", + "nreset", + "drag", + "dilate", + "scalexy", + "scaleyz", + "scalexz", + "flip", + "alpha", + "continue", + "fixedpoint" + ] }, { - "arg": "seed", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bond/swap = style name of this fix command\n* Nevery = attempt bond swapping every this many steps\n* fraction = fraction of group atoms to consider for swapping\n* cutoff = distance at which swapping will be considered (distance units)\n* seed = random # seed (positive integer) \n", - "examples": "\n```lmps\nfix 1 all bond/swap 50 0.5 1.3 598934\n```\n", - "html_filename": "fix_bond_swap.html", - "short_description": "In a simulation of polymer chains this command attempts to swap a pair\nof bonds, as illustrated below", - "description": "In a simulation of polymer chains this command attempts to swap a pair\nof bonds, as illustrated below. This is done via Monte Carlo rules\nusing the Boltzmann acceptance criterion, typically with the goal of\nequilibrating the polymer system more quickly. This fix is designed\nfor use with idealized bead-spring polymer chains where each polymer\nis a linear chain of monomers, but LAMMPS does not check that is the\ncase for your system.\n\nHere are two use cases for this fix.\n\nThe first use case is for swapping bonds on two different chains,\neffectively grafting the end of one chain onto the other chain and\nvice versa. The purpose is to equilibrate the polymer chain\nconformations more rapidly than dynamics alone would do it, by\nenabling instantaneous large conformational changes in a dense polymer\nmelt. The polymer chains should thus more rapidly converge to the\nproper end-to-end distances and radii of gyration.\n\nA schematic of the kinds of bond swaps that can occur in this use case\nis shown here:\n\n ![Image](JPG/bondswap.jpg) \n\nOn the left, the red and blue chains have two monomers A1 and B1 close\nto each other, which are currently bonded to monomers A2 and B2\nrespectively within their own chains. The bond swap operation will\nattempt to delete the A1-A2 and B1-B2 bonds and replace them with\nA1-B2 and B1-A2 bonds. If the swap is energetically favorable, the\ntwo chains on the right are the result and each polymer chain has\nundergone a dramatic conformational change. This reference,\n**Sides** provides more details on the algorithm's\neffectiveness for this use case.\n\nThe second use case is a collection of polymer chains with some\nfraction of their sites identified as \"sticker\" sites. Initially each\npolymer chain is isolated from the others in a topological sense, and\nthere is an intra-chain bond between every pair of sticker sites on\nthe same chain. Over time, bonds swap so that inter-molecular sticker\nbonds are created. This models a vitrification-style process whereby\nthe polymer chains all become interconnected. For this use case, if\nangles are defined they should not include bonds between sticker\nsites.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the sticker site model, you should set the newton flag for\n > bonds to \"off\", via the [newton on off](https://docs.lammps.org/newton.html) command (\"on\"\n > is the default for the 2nd argument). This is to ensure\n > appropriate randomness in bond selection because the I,J bond will\n > be stored by both atom I and atom J. LAMMPS cannot check for this,\n > because it is not aware that a sticker site model is being used. \n > \n\n----------\n\nThe bond swapping operation is invoked once every *Nevery* timesteps.\nIf any bond in the entire system is swapped, a re-build of the\nneighbor lists is triggered, since a swap alters the list of which\nneighbors are considered for pairwise interaction. At each\ninvocation, each processor considers a random specified *fraction* of\nits atoms as potential swapping monomers for this timestep. Choosing\na small *fraction* value can reduce the likelihood of a reverse swap\noccurring soon after an initial swap.\n\nFor each monomer A1, its neighbors are looped over as B1 monomers.\nFor each A1,B1 an additional double loop of bond partners A2 of A1,\nand bond partners B2 of B1 a is performed. For each pair of A1-A2 and\nB1-B2 bonds to be eligible for swapping, the following 4 criteria must\nbe met:\n\n1. All 4 monomers must be in the fix group.\n\n2. All 4 monomers must be owned by the processor (not ghost atoms).\n This ensures that another processor does not attempt to swap bonds\n involving the same atoms on the same timestep. Note that this also\n means that bond pairs which straddle processor boundaries are not\n eligible for swapping on this step.\n\n3. The distances between 4 pairs of atoms -- (A1,A2), (B1,B2), (A1,B2),\n (B1,A2) -- must all be less than the specified *cutoff*.\n\n4. The molecule IDs of A1 and B1 must be the same (see below).\n\nIf an eligible B1 partner is found, the energy change due to swapping\nthe two bonds is computed. This includes changes in pairwise, bond, and\nangle energies due to the altered connectivity of the 2 chains.\nDihedral and improper interactions are not allowed to be defined when\nthis fix is used.\n\nIf the energy decreases due to the swap operation, the bond swap is\naccepted. If the energy increases it is accepted with probability\nexp(-delta/kT) where delta is the increase in energy, k is the\nBoltzmann constant, and T is the current temperature of the system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Whether the swap is accepted or rejected, no other swaps are\n > attempted by this processor on this timestep. No other eligible\n > 4-tuples of atoms are considered. This means that each processor\n > will perform either a single swap or none on timesteps this fix is\n > invoked. \n > \n\n----------\n\nThe criterion for matching molecule IDs is how the first use case\ndescribed above can be simulated while conserving chain lengths. This\nis done by setting up the molecule IDs for the polymer chains in a\nspecific way, typically in the data file, read by the [read_data](https://docs.lammps.org/read_data.html) command.\n\nConsider a system of 6-mer chains. You have 2 choices. If the\nmolecule IDs for monomers on each chain are set to 1,2,3,4,5,6 then\nswaps will conserve chain length. For a particular monomer there will\nbe only one other monomer on another chain which is a potential swap\npartner. If the molecule IDs for monomers on each chain are set to\n1,2,3,3,2,1 then swaps will conserve chain length but swaps will be\nable to occur at either end of a chain. Thus for a particular monomer\nthere will be 2 possible swap partners on another chain. In this\nscenario, swaps can also occur within a single chain, i.e. the two\nends of a chain swap with each other.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your simulation uses molecule IDs in the usual way, where all\n > monomers on a single chain are assigned the same ID (different for\n > each chain), then swaps will only occur within the same chain. If you\n > assign the same molecule ID to all monomers in all chains then\n > inter-chain swaps will occur, but they will not conserve chain length.\n > Neither of these scenarios is probably what you want for this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a bond swap occurs the image flags of monomers in the new\n > polymer chains can become inconsistent. See the [dump ](https://docs.lammps.org/dump.html)\n > command for a discussion of image flags. This is not an issue for\n > running dynamics, but can affect calculation of some diagnostic\n > quantities or the printing of unwrapped coordinates to a dump file. \n > \n\nFor the second use case described above, the molecule IDs for all\nsticker sites should be the same.\n\n----------\n\nThis fix computes a temperature each time it is invoked for use by the\nBoltzmann criterion. To do this, the fix creates its own compute of\nstyle *temp*, as if this command had been issued:\n\n```lmps\ncompute fix-ID_temp all temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID with underscore + \"temp\"\nappended and the group for the new compute is \"all\", so that the\ntemperature of the entire system is used.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix, where the simulation continues on the same as if no restart\nhad taken place. However, in a statistical sense, a restarted\nsimulation should produce the same behavior. Also note that each\nprocessor generates possible swaps independently of other processors.\nThus if you repeat the same simulation on a different number of\nprocessors, the specific swaps performed will be different.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used to compute the temperature for\nthe Boltzmann criterion.\n\nThis fix computes two statistical quantities as a global 2-vector of\noutput, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first component of the vector is the cumulative\nnumber of swaps performed by all processors. The second component of\nthe vector is the cumulative number of swaps attempted (whether\naccepted or rejected). Note that a swap \"attempt\" only occurs when\nswap partners meeting the criteria described above are found on a\nparticular timestep. The vector values calculated by this fix are\n\"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Sides)** Sides, Grest, Stevens, Plimpton, J Polymer Science B, 42,\n199-208 (2004). \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe settings of the \"special_bond\" command must be 0,1,1 in order to\nuse this fix, which is typical of bead-spring chains with FENE or\nharmonic bonds. This means that pairwise interactions between bonded\natoms are turned off, but are turned on between atoms two or three\nhops away along the chain backbone.\n\nCurrently, energy changes in dihedral and improper interactions due to\na bond swap are not considered. Thus a simulation that uses this fix\ncannot use a dihedral or improper potential.\n", - "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = npt/cauchy\n* one or more keyword/value pairs may be appended\n* keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate or scalexy or scaleyz or scalexz or flip or alpha or continue or fixedpoint \n *        temp values = Tstart Tstop Tdamp \n         Tstart,Tstop = external temperature at start/end of run \n         Tdamp = temperature damping parameter (time units) \n *        iso or aniso or tri values = Pstart Pstop Pdamp \n         Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n         Pdamp = pressure damping parameter (time units) \n *        x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n         Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n         Pdamp = stress damping parameter (time units) \n *        couple = none or xyz or xy or yz or xz \n *        tchain value = N \n         N = length of thermostat chain (1 = single thermostat) \n *        pchain values = N \n         N length of thermostat chain on barostat (0 = no thermostat) \n *        mtk value = yes or no = add in MTK adjustment term or not \n *        tloop value = M \n         M = number of sub-cycles to perform on thermostat \n *        ploop value = M \n         M = number of sub-cycles to perform on barostat thermostat \n *        nreset value = reset reference cell every this many timesteps \n *        drag value = Df \n         Df = drag factor added to barostat/thermostat (0.0 = no drag) \n *        dilate value = dilate-group-ID \n         dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n *        scalexy value = yes or no = scale xy with ly \n *        scaleyz value = yes or no = scale yz with lz \n *        scalexz value = yes or no = scale xz with lz \n *        flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n *        alpha value = strength of Cauchy stress control parameter \n *        continue value = yes or no = whether of not to continue from a previous run \n *        fixedpoint values = x y z \n         x,y,z = perform barostat dilation/contraction around this point (distance units) \n", + "examples": "\n```lmps\nfix 1 water npt/cauchy temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0 alpha 0.001\n```\n", + "html_filename": "fix_npt_cauchy.html", + "short_description": "This command performs time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the isothermal-isobaric (npt)\nensembles", + "description": "This command performs time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the isothermal-isobaric (npt)\nensembles. This updates the position and velocity for atoms in the\ngroup each timestep and the box dimensions.\n\nThe thermostatting and barostatting is achieved by adding some dynamic\nvariables which are coupled to the particle velocities\n(thermostatting) and simulation domain dimensions (barostatting). In\naddition to basic thermostatting and barostatting, this fix can\nalso create a chain of thermostats coupled to the particle thermostat,\nand another chain of thermostats coupled to the barostat\nvariables. The barostat can be coupled to the overall box volume, or\nto individual dimensions, including the *xy*, *xz* and *yz* tilt\ndimensions. The external pressure of the barostat can be specified as\neither a scalar pressure (isobaric ensemble) or as components of a\nsymmetric stress tensor (constant stress ensemble). When used\ncorrectly, the time-averaged temperature and stress tensor of the\nparticles will match the target values specified by Tstart/Tstop and\nPstart/Pstop.\n\nThe equations of motion used are those of Shinoda et al in\n**nc-Shinoda**, which combine the hydrostatic equations of\nMartyna, Tobias and Klein in **nc-Martyna** with the strain\nenergy proposed by Parrinello and Rahman in\n**nc-Parrinello**. The time integration schemes closely\nfollow the time-reversible measure-preserving Verlet and rRESPA\nintegrators derived by Tuckerman et al in **nc-Tuckerman**.\n\n----------\n\nThe thermostat parameters are specified using the *temp* keyword.\nOther thermostat-related keywords are *tchain*, *tloop* and *drag*,\nwhich are discussed below.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles. The translational degrees of freedom can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature at each timestep is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The atoms in the\nfix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. Note that this is NOT the same as 100 time units for\n > most [units ](https://docs.lammps.org/units.html) settings. \n > \n\n----------\n\nThe barostat parameters are specified using one or more of the *iso*,\n*aniso*, *tri*, *x*, *y*, *z*, *xy*, *xz*, *yz*, and *couple* keywords.\nThese keywords give you the ability to specify all 6 components of an\nexternal stress tensor, and to couple various of these components\ntogether so that the dimensions they represent are varied together\nduring a constant-pressure simulation.\n\nOther barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *drag*, and *dilate*, which are discussed below.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, *xy*, *xz*, *yz*\nkeywords, which correspond to the 6 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. If\nthe *xy* keyword is used, the xy tilt factor will change. A box\ndimension will not change if that component is not specified, although\nyou have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover barostat will not work well for arbitrary values\n > of *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. This option should\nbe used with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin. Also note that for atoms not in the fix\ngroup, a separate time integration fix like [fix nve ](https://docs.lammps.org/fix_nve.html) or\n[fix nvt ](https://docs.lammps.org/fix_nh.html) can be used on them, independent of whether they\nare dilated or not.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Pstart Pstop Pdamp\" is the same as\nspecifying these 7 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy 0.0 0.0 Pdamp\nyz 0.0 0.0 Pdamp\nxz 0.0 0.0 Pdamp\ncouple none\n```\n----------\n\nIn some cases (e.g. for solids) the pressure (volume) and/or\ntemperature of the system can oscillate undesirably when a Nose/Hoover\nbarostat and thermostat is applied. The optional *drag* keyword will\ndamp these oscillations, although it alters the Nose/Hoover equations.\nA value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.\nA non-zero value adds a drag term; the larger the value specified, the\ngreater the damping effect. Performing a short run and monitoring the\npressure and temperature is the best way to determine if the drag term\nis working. Typically a value between 0.2 to 2.0 is sufficient to\ndamp oscillations after a few periods. Note that use of the drag\nkeyword will interfere with energy conservation and will also change\nthe distribution of positions and velocities so that they do not\ncorrespond to the nominal NVT, NPT, or NPH ensembles.\n\nAn alternative way to control initial oscillations is to use chain\nthermostats. The keyword *tchain* determines the number of thermostats\nin the particle thermostat. A value of 1 corresponds to the original\nNose-Hoover thermostat. The keyword *pchain* specifies the number of\nthermostats in the chain thermostatting the barostat degrees of\nfreedom. A value of 0 corresponds to no thermostatting of the\nbarostat variables.\n\nThe *mtk* keyword controls whether or not the correction terms due to\nMartyna, Tuckerman, and Klein are included in the equations of motion\n**nc-Martyna**. Specifying *no* reproduces the original\nHoover barostat, whose volume probability distribution function\ndiffers from the true NPT and NPH ensembles by a factor of 1/V. Hence\nusing *yes* is more correct, but in many cases the difference is\nnegligible.\n\nThe keyword *tloop* can be used to improve the accuracy of integration\nscheme at little extra cost. The initial and final updates of the\nthermostat variables are broken up into *tloop* sub-steps, each of\nlength *dt* /\\ *tloop* . This corresponds to using a first-order\nSuzuki-Yoshida scheme **nc-Tuckerman**. The keyword *ploop*\ndoes the same thing for the barostat thermostat.\n\nThe keyword *nreset* controls how often the reference dimensions used\nto define the strain energy are reset. If this keyword is not used,\nor is given a value of zero, then the reference dimensions are set to\nthose of the initial simulation domain and are never changed. If the\nsimulation domain changes significantly during the simulation, then\nthe final average pressure tensor will differ significantly from the\nspecified values of the external stress tensor. A value of *nstep*\nmeans that every *nstep* timesteps, the reference dimensions are set\nto those of the current simulation domain.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when barostatting triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\nThe *fixedpoint* keyword specifies the fixed point for barostat volume\nchanges. By default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle trajectories are unaffected by the\nchosen value, except for a time-dependent constant translation of\npositions.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using a barostat coupled to tilt dimensions *xy*, *xz*, *yz* can\n > sometimes result in arbitrarily large values of the tilt dimensions,\n > i.e. a dramatically deformed simulation box. LAMMPS allows the tilt\n > factors to grow a small amount beyond the normal limit of half the box\n > length (0.6 times the box length), and then performs a box \"flip\" to\n > an equivalent periodic cell. See the discussion of the *flip* keyword\n > above, to allow this bound to be exceeded, if desired. \n > \n\nThe flip operation is described in more detail in the page for\n[fix deform ](https://docs.lammps.org/fix_deform.html). Both the barostat dynamics and the atom\ntrajectories are unaffected by this operation. However, if a tilt\nfactor is incremented by a large amount (1.5 times the box length) on\na single timestep, LAMMPS can not accommodate this event and will\nterminate the simulation with an error. This error typically indicates\nthat there is something badly wrong with how the simulation was\nconstructed, such as specifying values of *Pstart* that are too far\nfrom the current stress value, or specifying a timestep that is too\nlarge. Triclinic barostatting should be used with care. This also is\ntrue for other barostat styles, although they tend to be more\nforgiving of insults. In particular, it is important to recognize that\nequilibrium liquids can not support a shear stress and that\nequilibrium solids can not support shear stresses that exceed the\nyield stress.\n\nOne exception to this rule is if the first dimension in the tilt factor\n(x for xy) is non-periodic. In that case, the limits on the tilt\nfactor are not enforced, since flipping the box in that dimension does\nnot change the atom positions due to non-periodicity. In this mode,\nif you tilt the system to extreme angles, the simulation will simply\nbecome inefficient due to the highly skewed simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, this fix\n > performs thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > fix npt/cauchy should not normally be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)\n > commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nThis fix compute a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if one of these sets of commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nThe group for both the new temperature and pressure compute is \"all\"\nsince pressure is computed for the entire system. See the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html)\ncommands for details. Note that the IDs of the new computes are the\nfix-ID + underscore + \"temp\" or fix_ID + underscore + \"press\".\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of these\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Or you can print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate\ncompute-ID. It also means that changing attributes of *thermo_temp*\nor *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\nThis fix can be used with either the *verlet* or *respa*\n[integrators ](https://docs.lammps.org/run_style.html). When using this fix\nwith *respa*, LAMMPS uses an integrator constructed\naccording to the following factorization of the Liouville propagator\n(for two rRESPA levels):\n\\[\\begin{align*} \n \\exp \\left(\\mathrm{i} L \\Delta t \\right) = & \\hat{E}\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right) \\\\\n &\\times \\left[\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_1 \\frac{\\Delta t}{n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\right]^n \\\\\n &\\times\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right) \\\\\n &+ \\mathcal{O} \\left(\\Delta t^3 \\right) \\end{align*} \\]\nThis factorization differs somewhat from that of Tuckerman et al, in\nthat the barostat is only updated at the outermost rRESPA level,\nwhereas Tuckerman's factorization requires splitting the pressure into\npieces corresponding to the forces computed at each rRESPA level. In\ntheory, the latter method will exhibit better numerical stability. In\npractice, because Pdamp is normally chosen to be a large multiple of\nthe outermost rRESPA timestep, the barostat dynamics are not the\nlimiting factor for numerical stability. Both factorizations are\ntime-reversible and can be shown to preserve the phase space measure\nof the underlying non-Hamiltonian equations of motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Under NPT dynamics, for a system with zero initial total linear\n > momentum, the total momentum fluctuates close to zero. It may occasionally\n > undergo brief excursions to non-negligible values, before returning close\n > to zero. Over long simulations, this has the effect of causing the\n > center-of-mass to undergo a slow random walk. This can be mitigated by\n > resetting the momentum at infrequent intervals using the\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) command. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure, as described above.\nIf you do this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The\n > *temp* keyword will override this (for the pressure compute being\n > used by fix npt), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe cumulative energy change in the system imposed by this fix, due to\nthermostatting and/or barostatting, is included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix also computes a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Rhe vector\nvalues are \"intensive\".\n\nThe vector stores internal Nose/Hoover thermostat and barostat\nvariables. The number and meaning of the vector values depends on\nwhich fix is used and the settings for keywords *tchain* and *pchain*,\nwhich specify the number of Nose/Hoover chains for the thermostat and\nbarostat. If no thermostatting is done, then *tchain* is 0. If no\nbarostatting is done, then *pchain* is 0. In the following list,\n\"ndof\" is 0, 1, 3, or 6, and is the number of degrees of freedom in\nthe barostat. Its value is 0 if no barostat is used, else its value\nis 6 if any off-diagonal stress tensor component is barostatted, else\nits value is 1 if *couple xyz* is used or *couple xy* for a 2d\nsimulation, otherwise its value is 3.\n\nThe order of values in the global vector and their meaning is as\nfollows. The notation means there are tchain values for eta, followed\nby tchain for eta_dot, followed by ndof for omega, etc:\n\n* eta[tchain] = particle thermostat displacements (unitless)\n* eta_dot[tchain] = particle thermostat velocities (1/time units)\n* omega[ndof] = barostat displacements (unitless)\n* omega_dot[ndof] = barostat velocities (1/time units)\n* etap[pchain] = barostat thermostat displacements (unitless)\n* etap_dot[pchain] = barostat thermostat velocities (1/time units)\n* PE_eta[tchain] = potential energy of each particle thermostat displacement (energy units)\n* KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity (energy units)\n* PE_omega[ndof] = potential energy of each barostat displacement (energy units)\n* KE_omega_dot[ndof] = kinetic energy of each barostat velocity (energy units)\n* PE_etap[pchain] = potential energy of each barostat thermostat displacement (energy units)\n* KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)\n* PE_strain[1] = scalar strain energy (energy units)\n\nThis fix can ramp its external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of\nhow to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(nc-Shinoda)** Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). \n \n**(nc-Martyna)** Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994). \n \n**(nc-Parrinello)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n \n**(nc-Tuckerman)** Tuckerman, Alejandre, Lopez-Rendon, Jochim, and\nMartyna, J Phys A: Math Gen, 39, 5629 (2006). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. *Z*, *xz*, and *yz*, cannot be\nbarostatted for 2D simulations. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final Tstop cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n\nThe *alpha* keyword modifies the barostat as per Miller et\nal. (Miller)_\"#nc-Miller\" so that the Cauchy stress is controlled.\n*alpha* is the non-dimensional parameter, typically set to 0.001 or\n0.01 that determines how aggressively the algorithm drives the system\ntowards the set Cauchy stresses. Larger values of *alpha* will modify\nthe system more quickly, but can lead to instabilities. Smaller\nvalues will lead to longer convergence time. Since *alpha* also\ninfluences how much the stress fluctuations deviate from the\nequilibrium fluctuations, it should be set as small as possible.\n\nA *continue* value of *yes* indicates that the fix is subsequent to a\nprevious run with the npt/cauchy fix, and the intention is to continue\nfrom the converged stress state at the end of the previous run. This\nmay be required, for example, when implementing a multi-step loading/unloading\nsequence over several fixes.\n\nSetting *alpha* to zero is not permitted. To \"turn off\" the\ncauchystat control and thus restore the equilibrium stress\nfluctuations, two subsequent fixes should be used. In the first, fix\nnpt/cauchy is used and the simulation box equilibrates to the\ncorrect shape for the desired stresses. In the second,\n[fix npt ](https://docs.lammps.org/fix_nh.html) is used instead which uses the\noriginal Parrinello-Rahman algorithm, but now with the corrected\nsimulation box shape from using fix npt/cauchy.\n\nThis fix can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "pair_style spin/dipole/cut" + "atom_style" ], "syntax": [ - "pair_style spin/dipole/cut cutoff", - "pair_style spin/dipole/long cutoff" + "atom_style style args" ], "args": [ [ { - "arg": "pair_style", + "arg": "atom_style", "type": 1, "choices": [] }, { - "arg": "spin/dipole/cut", - "type": 1, - "choices": [] + "arg": "hybrid", + "type": 3, + "choices": [ + "amoeba", + "angle", + "atomic", + "body", + "bond", + "charge", + "dielectric", + "dipole", + "edpd", + "electron", + "ellipsoid", + "full", + "line", + "mdpd", + "molecular", + "oxdna", + "peri", + "smd", + "sph", + "sphere", + "bpm/sphere", + "spin", + "tdpd", + "tri", + "template", + "wavepacket", + "hybrid" + ] }, { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* style = amoeba or angle or atomic or body or bond or charge or dielectric or dipole or dpd or edpd or electron or ellipsoid or full or line or mdpd or molecular or oxdna or peri or smd or sph or sphere or bpm/sphere or spin or tdpd or tri or template or wavepacket or hybrid \n *        args = none for any style except the following \n         body args = bstyle bstyle-args \n         bstyle = style of body particles \n         bstyle-args = additional arguments specific to the bstyle \n         see the [Howto body ](https://docs.lammps.org/Howto_body.html) doc \n         page for details \n         sphere arg = 0/1 (optional) for static/dynamic particle radii \n         bpm/sphere arg = 0/1 (optional) for static/dynamic particle radii \n         tdpd arg = Nspecies \n         Nspecies = # of chemical species \n         template arg = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n         hybrid args = list of one or more sub-styles, each with their args \n* accelerated styles (with same args) = angle/kk or atomic/kk or bond/kk or charge/kk or full/kk or molecular/kk or spin/kk \n", + "examples": "\n```lmps\natom_style atomic\natom_style bond\natom_style full\natom_style body nparticle 2 10\natom_style hybrid charge bond\natom_style hybrid charge body nparticle 2 5\natom_style spin\natom_style template myMols\natom_style hybrid template twomols charge\natom_style tdpd 2\n```\n", + "html_filename": "atom_style.html", + "short_description": "The *atom_style* command selects which per-atom attributes are\nassociated with atoms in a LAMMPS simulation and thus stored and\ncommunicated with those atoms as well as read from and stored in data\nand restart files", + "description": "The *atom_style* command selects which per-atom attributes are\nassociated with atoms in a LAMMPS simulation and thus stored and\ncommunicated with those atoms as well as read from and stored in data\nand restart files. Different models (e.g. [pair styles](https://docs.lammps.org/pair_style.html)) require access to specific per-atom attributes and thus\nrequire a specific atom style. For example, to compute Coulomb\ninteractions, the atom must have a \"charge\" (aka \"q\") attribute.\n\nA number of distinct atom styles exist that combine attributes. Some\natom styles are a superset of other atom styles. Further attributes\nmay be added to atoms either via using a hybrid style which provides a\nunion of the attributes of the sub-styles, or via the [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html) command. The *atom_style* command\nmust be used before a simulation is setup via a [read_data](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or [create_box](https://docs.lammps.org/create_box.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Many of the atom styles discussed here are only enabled if LAMMPS was\n > built with a specific package, as listed below in the Restrictions\n > section. \n > \n\nOnce a style is selected and the simulation box defined, it cannot be\nchanged but only augmented with the [fix property/atom](https://docs.lammps.org/fix_property_atom.html) command. So one should select an atom style\ngeneral enough to encompass all attributes required. E.g. with atom\nstyle *bond*, it is not possible to define angles and use angle styles.\n\nIt is OK to use a style more general than needed, though it may be\nslightly inefficient because it will allocate and communicate\nadditional unused data.\n\n #### Atom style attributes\n\nThe atom style *atomic* has the minimum subset of per-atom attributes\nand is also the default setting. It encompasses the following per-atom\nattributes (name of the vector or array in the [Atom class](https://docs.lammps.org/Classes_atom.html) is given in parenthesis): atom-ID (tag), type (type),\nposition (x), velocities (v), forces (f), image flags (image), group\nmembership (mask). Since all atom styles are a superset of atom style\n*atomic* , they all include these attributes.\n\nThis table lists all the available atom styles, which attributes they\nprovide, which [package ](https://docs.lammps.org/Packages.html) is required to use them, and\nwhat the typical applications are that use them. See the\n[read_data ](https://docs.lammps.org/read_data.html), [create_atoms ](https://docs.lammps.org/create_atoms.html), and\n[set ](https://docs.lammps.org/set.html) commands for details on how to set these various\nquantities. More information about many of the styles is provided in\nthe Additional Information section below.\n\n | | | | | \n |---|---|---|---|\n Atom style | Attributes | Required package | Applications|\n *amoeba* | *full* + \"1-5 special neighbor data\" | :ref:`AMOEBA ` | AMOEBA/HIPPO force fields|\n *angle* | *bond* + \"angle data\" | :ref:`MOLECULE ` | bead-spring polymers with stiffness|\n *atomic* | tag, type, x, v, f, image, mask | | atomic liquids, solids, metals|\n *body* | *atomic* + radius, rmass, angmom, torque, body | :ref:`BODY ` | arbitrary bodies, see [body howto ](https://docs.lammps.org/Howto_body.html)|\n *bond* | *atomic* + molecule, nspecial, special + \"bond data\" | :ref:`MOLECULE ` | bead-spring polymers|\n *bpm/sphere* | *bond* + radius, rmass, omega, torque, quat | :ref:`BPM ` | granular bonded particle models, see [BPM howto ](https://docs.lammps.org/Howto_bpm.html)|\n *charge* | *atomic* + q | | atomic systems with charges|\n *dielectric* | *full* + mu, area, ed, em, epsilon, curvature, q_scaled | :ref:`DIELECTRIC ` | systems with surface polarization|\n *dipole* | *charge* + mu | :ref:`DIPOLE ` | atomic systems with charges and point dipoles|\n *dpd* | *atomic* + rho + \"reactive DPD data\" | :ref:`DPD-REACT ` | reactive DPD|\n *edpd* | *atomic* + \"eDPD data\" | :ref:`DPD-MESO ` | Energy conservative DPD (eDPD)|\n *electron* | *charge* + espin, eradius, ervel, erforce | :ref:`EFF ` | Electron force field systems|\n *ellipsoid* | *atomic* + rmass, angmom, torque, ellipsoid | | aspherical particles|\n *full* | *molecular* + q | :ref:`MOLECULE ` | molecular force fields|\n *line* | *atomic* + molecule, radius, rmass, omega, torque, line | | 2-d rigid body particles|\n *mdpd* | *atomic* + rho, drho, vest | :ref:`DPD-MESO ` | Many-body DPD (mDPD)|\n *molecular* | *angle* + \"dihedral and improper data\" | :ref:`MOLECULE ` | apolar and uncharged molecules|\n *oxdna* | *atomic* + id5p | :ref:`CG-DNA ` | coarse-grained DNA and RNA models|\n *peri* | *atomic* + rmass, vfrac, s0, x0 | :ref:`PERI ` | mesoscopic Peridynamics models|\n *smd* | *atomic* + molecule, radius, rmass + \"smd data\" | :ref:`MACHDYN ` | Smooth Mach Dynamics models|\n *sph* | *atomic* + \"sph data\" | :ref:`SPH ` | Smoothed particle hydrodynamics models|\n *sphere* | *atomic* + radius, rmass, omega, torque | | finite size spherical particles, e.g. granular models|\n *spin* | *atomic* + \"magnetic moment data\" | :ref:`SPIN ` | magnetic particles|\n *tdpd* | *atomic* + cc, cc_flux, vest | :ref:`DPD-MESO ` | Transport DPD (tDPD)|\n *template* | *atomic* + molecule, molindex, molatom | :ref:`MOLECULE ` | molecular systems where attributes are taken from [molecule files ](https://docs.lammps.org/molecule.html)|\n *tri* | *sphere* + molecule, angmom, tri | | 3-d triangulated rigid body LJ particles|\n \n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is possible to add some attributes, such as a molecule ID and\n > charge, to atom styles that do not have them built in using the\n > [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command. This command\n > also allows new custom-named attributes consisting of extra integer\n > or floating-point values or vectors to be added to atoms. See the\n > [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) page for examples of\n > cases where this is useful and details on how to initialize,\n > access, and output these custom values. \n > \n\n----------\n\n #### Particle size and mass\n\nAll of the atom styles define point particles unless they (1) define\nfinite-size spherical particles via the *radius* attribute, or (2)\ndefine finite-size aspherical particles (e.g. the *body*, *ellipsoid*,\n*line*, and *tri* styles). Most of these styles can also be used with\nmixtures of point and finite-size particles.\n\nNote that the *radius* property may need to be provided as a\n*diameter* (e.g. in [molecule files ](https://docs.lammps.org/molecule.html) or [datafiles ](https://docs.lammps.org/read_data.html)). See the [Howto spherical ](https://docs.lammps.org/Howto_spherical.html)\npage for an overview of using finite-size spherical and aspherical\nparticle models with LAMMPS.\n\nUnless an atom style defines the per-atom *rmass* attribute, particle\nmasses are defined on a per-type basis, using the [mass ](https://docs.lammps.org/mass.html)\ncommand. This means each particle's mass is indexed by its atom\n*type*.\n\nA few styles define the per-atom *rmass* attribute which can also be\nadded using the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nIn this case each particle stores its own mass. Atom styles that have\na per-atom rmass may define it indirectly through setting particle\ndiameter and density on a per-particle basis. If both per-type mass\nand per-atom *rmass* are defined (e.g. in a hybrid style), the\nper-atom mass will take precedence in any operation which which works\nwith both flavors of mass.\n\n----------\n\n #### Additional information about specific atom styles\n\nFor the *body* style, the particles are arbitrary bodies with internal\nattributes defined by the \"style\" of the bodies, which is specified by\nthe *bstyle* argument. Body particles can represent complex entities,\nsuch as surface meshes of discrete points, collections of\nsub-particles, deformable objects, etc.\n\nThe [Howto body ](https://docs.lammps.org/Howto_body.html) page describes the body styles\nLAMMPS currently supports, and provides more details as to the kind of\nbody particles they represent. For all styles, each body particle\nstores moments of inertia and a quaternion 4-vector, so that its\norientation and position can be time integrated due to forces and\ntorques.\n\nNote that there may be additional arguments required along with the\n*bstyle* specification, in the atom_style body command. These\narguments are described on the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page.\n\nFor the *dielectric* style, each particle can be either a physical\nparticle (e.g. an ion), or an interface particle representing a\nboundary element between two regions of different dielectric\nconstant. For interface particles, in addition to the properties\nassociated with atom_style full, each particle also should be assigned\na unit dipole vector (mu) representing the direction of the induced\ndipole moment at each interface particle, an area (area/patch), the\ndifference and mean of the dielectric constants of two sides of the\ninterface along the direction of the normal vector (ed and em), the\nlocal dielectric constant at the boundary element (epsilon), and a\nmean local curvature (curv). Physical particles must be assigned\nthese values, as well, but only their local dielectric constants will\nbe used; see documentation for associated [pair styles](https://docs.lammps.org/pair_dielectric.html) and [fixes ](https://docs.lammps.org/fix_polarize.html). The distinction\nbetween the physical and interface particles is only meaningful when\n[fix polarize ](https://docs.lammps.org/fix_polarize.html) commands are applied to the\ninterface particles. This style is part of the DIELECTRIC package.\n\nFor the *dipole* style, a point dipole vector mu is defined for each\npoint particle. Note that if you wish the particles to be finite-size\nspheres as in a Stockmayer potential for a dipolar fluid, so that the\nparticles can rotate due to dipole-dipole interactions, then you need\nto use the command `atom_style hybrid sphere dipole`, which will\nassign both a diameter and dipole moment to each particle. This also\nrequires using an integrator with a \"/sphere\" suffix like [fixnve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) or [fix nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html)\nand the \"update dipole\" or \"update dlm\" parameters to the fix\ncommands.\n\nThe *dpd* style is for reactive dissipative particle dynamics (DPD)\nparticles. Note that it is part of the DPD-REACT package, and is not\nrequired for use with the [pair_style dpd or dpd/stat ](https://docs.lammps.org/pair_dpd.html)\ncommands, which only require the attributes from atom_style *atomic*.\nAtom_style *dpd* extends DPD particle properties with internal\ntemperature (dpdTheta), internal conductive energy (uCond), internal\nmechanical energy (uMech), and internal chemical energy (uChem).\n\nThe *edpd* style is for energy-conserving dissipative particle\ndynamics (eDPD) particles which store a temperature (edpd_temp), and\nheat capacity (edpd_cv).\n\nFor the *electron* style, the particles representing electrons are 3d\nGaussians with a specified position and bandwidth or uncertainty in\nposition, which is represented by the eradius = electron size.\n\nFor the *ellipsoid* style, particles can be ellipsoids which each\nstores a shape vector with the 3 diameters of the ellipsoid and a\nquaternion 4-vector with its orientation. Each particle stores a flag\nin the ellipsoid vector which indicates whether it is an ellipsoid (1)\nor a point particle (0).\n\nFor the *line* style, particles can be are idealized line segments\nwhich store a per-particle mass and length and orientation (i.e. the\nend points of the line segment). Each particle stores a flag in the\nline vector which indicates whether it is a line segment (1) or a\npoint particle (0).\n\nThe *mdpd* style is for many-body dissipative particle dynamics (mDPD)\nparticles which store a density (rho) for considering density-dependent\nmany-body interactions.\n\nThe *oxdna* style is for coarse-grained nucleotides and stores the\n3'-to-5' polarity of the nucleotide strand, which is set through\nthe bond topology in the data file. The first (second) atom in a\nbond definition is understood to point towards the 3'-end (5'-end)\nof the strand.\n\nFor the *peri* style, the particles are spherical and each stores a\nper-particle mass and volume.\n\nThe *smd* style is for Smooth Particle Mach dynamics. Both fluids and\nsolids can be modeled. Particles store the mass and volume of an\nintegration point, a kernel diameter used for calculating the field\nvariables (e.g. stress and deformation) and a contact radius for\ncalculating repulsive forces which prevent individual physical bodies\nfrom penetrating each other.\n\nThe *sph* style is for smoothed particle hydrodynamics (SPH) particles\nwhich store a density (rho), energy (esph), and heat capacity (cv).\n\nFor the *spin* style, a magnetic spin is associated with each atom.\nThose spins have a norm (their magnetic moment) and a direction.\n\nThe *tdpd* style is for transport dissipative particle dynamics (tDPD)\nparticles which store a set of chemical concentration. An integer\n\"cc_species\" is required to specify the number of chemical species\ninvolved in a tDPD system.\n\nThe *wavepacket* style is similar to the *electron* style, but the\nelectrons may consist of several Gaussian wave packets, summed up with\ncoefficients cs= (cs_re,cs_im). Each of the wave packets is treated\nas a separate particle in LAMMPS, wave packets belonging to the same\nelectron must have identical *etag* values.\n\nThe *sphere* and *bpm/sphere* styles allow particles to be either point\nparticles or finite-size particles. If the *radius* attribute is >\n0.0, the particle is a finite-size sphere. If the diameter = 0.0, it\nis a point particle. Note that by using the *disc* keyword with the\n[fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt/sphere](https://docs.lammps.org/fix_nvt_sphere.html), [fix nph/sphere ](https://docs.lammps.org/fix_nph_sphere.html), [fixnpt/sphere ](https://docs.lammps.org/fix_npt_sphere.html) commands for the *sphere* style, spheres\ncan be effectively treated as 2d discs for a 2d simulation if desired.\nSee also the [set density/disc ](https://docs.lammps.org/set.html) command. These styles also\ntake an optional 0 or 1 argument. A value of 0 means the radius of\neach sphere is constant for the duration of the simulation (this is\nthe default). A value of 1 means the radii may vary dynamically\nduring the simulation, e.g. due to use of the [fix adapt](https://docs.lammps.org/fix_adapt.html) command.\n\nThe *template* style allows molecular topology (bonds,angles,etc) to be\ndefined via a molecule template using the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. The template stores one or more molecules with a single copy\nof the topology info (bonds,angles,etc) of each. Individual atoms only\nstore a template index and template atom to identify which molecule and\nwhich atom-within-the-molecule they represent. Using the *template*\nstyle instead of the *bond*, *angle*, *molecular* styles can save memory\nfor systems comprised of a large number of small molecules, all of a\nsingle type (or small number of types). See the paper by Grime and\nVoth, in **Grime**, for examples of how this can be\nadvantageous for large-scale coarse-grained systems. The\n``examples/template`` directory has a few demo inputs and examples\nshowing the use of the *template* atom style versus *molecular*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *template* style with a [molecule template > ](https://docs.lammps.org/molecule.html) that contains multiple molecules, you should ensure the\n > atom types, bond types, angle_types, etc in all the molecules are\n > consistent. E.g. if one molecule represents H2O and another CO2,\n > then you probably do not want each molecule file to define 2 atom\n > types and a single bond type, because they will conflict with each\n > other when a mixture system of H2O and CO2 molecules is defined,\n > e.g. by the [read_data ](https://docs.lammps.org/read_data.html) command. Rather the H2O\n > molecule should define atom types 1 and 2, and bond type 1. And\n > the CO2 molecule should define atom types 3 and 4 (or atom types 3\n > and 2 if a single oxygen type is desired), and bond type 2. \n > \n\nFor the *tri* style, particles can be planar triangles which each\nstores a per-particle mass and size and orientation (i.e. the corner\npoints of the triangle). Each particle stores a flag in the tri\nvector which indicates whether it is a triangle (1) or a point\nparticle (0).\n\n----------\n\nTypically, simulations require only a single (non-hybrid) atom style.\nIf some atoms in the simulation do not have all the properties defined\nby a particular style, use the simplest style that defines all the\nneeded properties by any atom. For example, if some atoms in a\nsimulation are charged, but others are not, use the *charge* style.\nIf some atoms have bonds, but others do not, use the *bond* style.\n\nThe only scenario where the *hybrid* style is needed is if there is no\nsingle style which defines all needed properties of all atoms. For\nexample, as mentioned above, if you want dipolar particles which will\nrotate due to torque, you need to use \"atom_style hybrid sphere\ndipole\". When a hybrid style is used, atoms store and communicate the\nunion of all quantities implied by the individual styles.\n\nWhen using the *hybrid* style, you cannot combine the *template* style\nwith another molecular style that stores bond, angle, etc info on a\nper-atom basis.\n\nLAMMPS can be extended with new atom styles as well as new body styles;\nsee the corresponding manual page on [modifying & extending LAMMPS](https://docs.lammps.org/Modify_atom.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Grime)** Grime and Voth, to appear in J Chem Theory & Computation\n(2014). \n ", + "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n\nMany of the styles listed above are only enabled if LAMMPS was built\nwith a specific package, as listed below. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info. The table above lists which package\nis required for individual atom styles.\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [pair_style ](https://docs.lammps.org/pair_style.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html), [set ](https://docs.lammps.org/set.html)\n" +}, +{ + "command": [ + "fix smd/integrate_ulsph" + ], + "syntax": [ + "fix ID group-ID smd/integrate_ulsph keyword" + ], + "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "spin/dipole/long", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "smd/integrate_ulsph", + "type": 1, + "choices": [] + }, + { + "arg": "limit_velocity", + "type": 3, + "choices": [ + "adjust_radius", + "limit_velocity" + ] } ] ], - "parameters": "* cutoff = global cutoff for magnetic dipole energy and forces\n (optional) (distance units) \n", - "examples": "\n```lmps\npair_style spin/dipole/cut 10.0\npair_coeff * * 10.0\npair_coeff 2 3 8.0\n\npair_style spin/dipole/long 9.0\npair_coeff * * 10.0\npair_coeff 2 3 6.0\n```\n", - "html_filename": "pair_spin_dipole.html", - "short_description": "Style *spin/dipole/cut* computes a short-range dipole-dipole\ninteraction between pairs of magnetic particles that each\nhave a magnetic spin", - "description": "Style *spin/dipole/cut* computes a short-range dipole-dipole\ninteraction between pairs of magnetic particles that each\nhave a magnetic spin.\nThe magnetic dipole-dipole interactions are computed by the\nfollowing formulas for the magnetic energy, magnetic precession\nvector omega and mechanical force between particles I and J.\n\\[\\begin{align*} \n \\mathcal{H}_{\\rm long} & =\n -\\frac{\\mu_{0} \\left( \\mu_B\\right)^2}{4\\pi}\n \\sum_{i,j,i\\neq j}^{N}\n \\frac{g_i g_j}{r_{ij}^3}\n \\biggl(3\n \\left(\\vec{e}_{ij}\\cdot \\vec{s}_{i}\\right)\n \\left(\\vec{e}_{ij}\\cdot \\vec{s}_{j}\\right)\n -\\vec{s}_i\\cdot\\vec{s}_j \\biggr) \\\\\n \\mathbf{\\omega}_i & =\n \\frac{\\mu_0 (\\mu_B)^2}{4\\pi\\hbar}\\sum_{j}\n \\frac{g_i g_j}{r_{ij}^3}\n \\, \\biggl(\n 3\\,(\\vec{e}_{ij}\\cdot\\vec{s}_{j})\\vec{e}_{ij}\n -\\vec{s}_{j} \\biggr) \\\\\n \\mathbf{F}_i & =\n \\frac{3\\, \\mu_0 (\\mu_B)^2}{4\\pi} \\sum_j\n \\frac{g_i g_j}{r_{ij}^4}\n \\biggl[\\bigl( (\\vec{s}_i\\cdot\\vec{s}_j)\n -5(\\vec{e}_{ij}\\cdot\\vec{s}_i)\n (\\vec{e}_{ij}\\cdot\\vec{s}_j)\\bigr) \\vec{e}_{ij}+\n \\bigl(\n (\\vec{e}_{ij}\\cdot\\vec{s}_i)\\vec{s}_j+\n (\\vec{e}_{ij}\\cdot\\vec{s}_j)\\vec{s}_i\n \\bigr)\n \\biggr] \\end{align*} \\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are the spin on two magnetic\nparticles, r is their separation distance, and the vector \\(\\vec{e}_{ij}\n= \\frac{r_i - r_j}{\\left| r_i - r_j \\right|}\\) is the direction vector\nbetween the two particles.\n\nStyle *spin/dipole/long* computes long-range magnetic dipole-dipole\ninteraction.\nA [kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined to\nuse this pair style. Currently, [kspace_style ewald/dipole/spin ](https://docs.lammps.org/kspace_style.html) and [kspace_style pppm/dipole/spin ](https://docs.lammps.org/kspace_style.html) support long-range magnetic\ndipole-dipole interactions.\n\n----------\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n", - "restrictions": "The *spin/dipole/cut* and *spin/dipole/long* styles are part of\nthe SPIN package. They are only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nUsing dipole/spin pair styles with *electron* [units ](https://docs.lammps.org/units.html) is not\ncurrently supported.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/integrate_ulsph = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = adjust_radius or limit_velocity\n\nadjust_radius values = adjust_radius_factor min_nn max_nn\n adjust_radius_factor = factor which scale the smooth/kernel radius\n min_nn = minimum number of neighbors\n max_nn = maximum number of neighbors\nlimit_velocity values = max_velocity\n max_velocity = maximum allowed velocity. \n", + "examples": "\n```lmps\nfix 1 all smd/integrate_ulsph adjust_radius 1.02 25 50\nfix 1 all smd/integrate_ulsph limit_velocity 1000\n```\n", + "html_filename": "fix_smd_integrate_ulsph.html", + "short_description": "The fix performs explicit time integration for particles which\ninteract with the updated Lagrangian SPH pair style", + "description": "The fix performs explicit time integration for particles which\ninteract with the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\nThe *adjust_radius* keyword activates dynamic adjustment of the\nper-particle SPH smoothing kernel radius such that the number of\nneighbors per particles remains within the interval *min_nn* to\n*max_nn*. The parameter *adjust_radius_factor* determines the amount\nof adjustment per timestep. Typical values are *adjust_radius_factor*\n=1.02, *min_nn* =15, and *max_nn* =20.\n\nThe *limit_velocity* keyword will control the velocity, scaling the norm of\nthe velocity vector to max_vel in case it exceeds this velocity limit.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none\n" }, { "command": [ - "pair_style rheo/solid" + "fix_modify AtC set reference_potential_energy" ], "syntax": [ - "pair_style rheo/solid" + "fix_modify set reference_potential_energy []" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "set", "type": 1, "choices": [] }, { - "arg": "rheo/solid", + "arg": "reference_potential_energy", "type": 1, "choices": [] + }, + { + "arg": "[]", + "type": 3, + "choices": [ + "value", + "filename" + ] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style rheo/solid\npair_coeff * * 1.0 1.5 1.0\n```\n", - "html_filename": "pair_rheo_solid.html", - "short_description": "\nStyle *rheo/solid* is effectively a copy of pair style\n[bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html) except it only applies forces\nbetween solid RHEO particles, determined by checking the status of\neach pair of neighboring particles before calculating forces", - "description": "\nStyle *rheo/solid* is effectively a copy of pair style\n[bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html) except it only applies forces\nbetween solid RHEO particles, determined by checking the status of\neach pair of neighboring particles before calculating forces.\n\nThe style computes pairwise forces with the formula\n\\[\n F = k (r - r_c)\\]\nwhere \\(k\\) is a stiffness and \\(r_c\\) is the cutoff length.\nAn additional damping force is also applied to interacting\nparticles. The force is proportional to the difference in the\nnormal velocity of particles\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\ndisplacement normal vector, \\(\\vec{v}\\) is the velocity difference\nbetween the two particles, and \\(w\\) is a smoothing factor.\nThis smoothing factor is constructed such that damping forces go to zero\nas particles come out of contact to avoid discontinuities. It is\ngiven by\n\\[\n w = 1.0 - \\left( \\frac{r}{r_c} \\right)^8 .\\]\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(k\\) (force/distance units)\n* \\(r_c\\) (distance units)\n* \\(\\gamma\\) (force/velocity units)\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is always mixed via a\n*geometric* rule. The cutoff is mixed according to the pair_modify\nmix value. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the pair interaction goes to 0.0 at the cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\n[pair bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* set reference_potential_energy = name of the AtC sub-command\n* value = optional user specified zero point for PE in native LAMMPS energy units\n* filename = optional user specified string for file of nodal PE values to be read-in \n", + "examples": "\n```lmps\nfix_modify AtC set reference_potential_energy\nfix_modify AtC set reference_potential_energy -0.05\nfix_modify AtC set reference_potential_energy myPEvalues\n```\n", + "html_filename": "atc_set_reference_pe.html", + "short_description": "Used to set various quantities for the post-processing algorithms", + "description": "Used to set various quantities for the post-processing algorithms. It\nsets the zero point for the potential energy density using the value\nprovided for all nodes, or from the current configuration of the lattice\nif no value is provided, or values provided within the specified\nfilename.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html) or [fix atc field ](https://docs.lammps.org/fix_atc.html).\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix bocs" + "fix nve/asphere", + "fix nve/asphere/gpu", + "fix nve/asphere/intel" ], "syntax": [ - "fix ID group-ID bocs keyword values ..." + "fix ID group-ID nve/asphere" ], "args": [ [ @@ -20791,78 +20202,123 @@ export const command_docs = [ "choices": [] }, { - "arg": "bocs", + "arg": "nve/asphere", + "type": 3, + "choices": [ + "nve/asphere", + "nve/asphere/gpu", + "nve/asphere/intel" + ] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/asphere = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/asphere\n```\n", + "html_filename": "fix_nve_asphere.html", + "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for aspherical particles in the\ngroup each timestep", + "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for aspherical particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html)\n" +}, +{ + "command": [ + "bond_style bpm/rotational" + ], + "syntax": [ + "bond_style bpm/rotational keyword value attribute1 attribute2 ..." + ], + "args": [ + [ + { + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "ploop", - "type": 3, - "choices": [ - "temp", - "cgiso", - "tchain", - "pchain", - "mtk", - "tloop", - "ploop" - ] + "arg": "bpm/rotational", + "type": 1, + "choices": [] }, { - "arg": "values", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] + }, + { + "arg": "attribute1", + "type": 2, + "choices": [] + }, + { + "arg": "attribute2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bocs = style name of this fix command\n* two or more keyword/value pairs may be appended\n* keyword = temp or cgiso or tchain or pchain or mtk or tloop or ploop \n *      temp values = Tstart Tstop Tdamp \n *      cgiso values = Pstart Pstop Pdamp basis_set args \n       basis_set = analytic or linear_spline or cubic_spline \n       analytic args = V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N \n       linear_spline args = input_filename \n       cubic_spline args = input_filename \n *      tchain value = N = length of thermostat chain (1 = single thermostat) \n *      pchain value = N = length of thermostat on barostat (0 = no thermostat) \n *      mtk value = yes or no = add MTK adjustment term or not \n *      tloop value = M = number of sub-cycles to perform on thermostat \n *      ploop value = M = number of sub-cycles to perform on barostat \n", - "examples": "\n```lmps\nfix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20\nfix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 cubic_spline input_Fv.dat\nthermo_modify press 1_press\n```\n", - "html_filename": "fix_bocs.html", - "short_description": "These commands incorporate a pressure correction as described by\nDunn and Noid **bocs-Dunn1** to the standard MTK\nbarostat by Martyna et al", - "description": "These commands incorporate a pressure correction as described by\nDunn and Noid **bocs-Dunn1** to the standard MTK\nbarostat by Martyna et al. **bocs-Martyna**.\nThe first half of the command mimics a standard [fix npt ](https://docs.lammps.org/fix_nh.html)\ncommand:\n\n```lmps\nfix 1 all bocs temp Tstart Tstop Tcoupl cgiso Pstart Pstop Pdamp\n```\nThe two differences are replacing *npt* with *bocs*, and replacing\n*iso* /\\ *aniso* /\\ etc. with *cgiso* .\nThe rest of the command details what form you would like to use for\nthe pressure correction equation. The choices are: *analytic*, *linear_spline*,\nor *cubic_spline*.\n\nWith either spline method, the only argument that needs to follow it\nis the name of a file that contains the desired pressure correction\nas a function of volume. The file must be formatted so each line has:\n\n```\nVolume_i, PressureCorrection_i\n```\nNote both the COMMA and the SPACE separating the volume's\nvalue and its corresponding pressure correction. The volumes in the file\nmust be uniformly spaced. Both the volumes and the pressure corrections\nshould be provided in the proper units (e.g., if you are using *units real*,\nthe volumes should all be in \\(\\mathrm{\\mathring{A}}^3\\) and the pressure\ncorrections should all be in atm). Furthermore, the table should start/end at a\nvolume considerably smaller/larger than you expect your system to sample\nduring the simulation. If the system ever reaches a volume outside of the\nrange provided, the simulation will stop.\n\nWith the *analytic* option, the arguments are as follows:\n\n```\n... analytic V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N\n```\nNote that *V_avg* and *Coeff_i* should all be in the proper units (e.g., if you\nare using *units real*, *V_avg* should be in \\(\\mathrm{\\mathring{A}^3}\\)\nand the coefficients should all be in\n\\(\\mathrm{atm}\\cdot\\mathrm{\\mathring{A}^3}\\)\\ ).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the fix continues in an uninterrupted\nfashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(bocs-Dunn1)** Dunn and Noid, J Chem Phys, 143, 243148 (2015). \n \n**(bocs-Martyna)** Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994). \n ", - "restrictions": "This fix is part of the BOCS package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAs this is computing a (modified) pressure, group-ID should be *all* .\n\nThe pressure correction has only been tested for use with an isotropic\npressure coupling in 3 dimensions.\n\nBy default, LAMMPS will still report the normal value for the pressure\nif the pressure is printed via a *thermo* command, or if the pressures\nare written to a file every so often. In order to have LAMMPS report the\nmodified pressure, you must include the *thermo_modify* command given in\nthe examples. For the last argument in the command, you should put\nXXXX_press, where XXXX is the ID given to the fix bocs command (in the\nexample, the ID of the fix bocs command is 1).\n\n #### Further information\n\nFor more details about the pressure correction and the entire BOCS software\npackage, visit the [BOCS package on GitHub ](https://github.com/noid-group/BOCS) and read the release\npaper by Dunn et al. **bocs-Dunn2** .\n\n----------\n\n.. _bocs-Dunn1:\n\n**(Dunn1)** Dunn and Noid, J Chem Phys, 143, 243148 (2015).\n\n.. _bocs-Martyna:\n\n**(Martyna)** Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994).\n\n.. _bocs-Dunn2:\n\n**(Dunn2)** Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018).\n\n**(bocs-Dunn2)** Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018). \n ", - "related": "none" + "parameters": "* optional keyword = overlay/pair or store/local or smooth or break \n *        store/local values = fix_ID N attributes ... \n         * fix_ID = ID of associated internal fix to store data \n         * N = prepare data for output every this many timesteps \n         * attributes = zero or more of the below attributes may be appended \n         *id1, id2* = IDs of 2 atoms in the bond \n         time = the timestep the bond broke \n         *x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units) \n         *x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units) \n *        overlay/pair value = yes or no \n         bonded particles will still interact with pair forces \n *        smooth value = yes or no \n         smooths bond forces near the breaking point \n *        *normalize* value = yes or no \n         normalizes normal and shear forces by the reference length \n *        break value = yes or no \n         indicates whether bonds break during a run \n", + "examples": "\n```lmps\nbond_style bpm/rotational\nbond_coeff 1 1.0 0.2 0.02 0.02 0.20 0.04 0.04 0.04 0.1 0.02 0.002 0.002\n\nbond_style bpm/rotational store/local myfix 1000 time id1 id2\ndump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", + "html_filename": "bond_bpm_rotational.html", + "short_description": "\nThe *bpm/rotational* bond style computes forces and torques based on\ndeviations from the initial reference state of the two atoms", + "description": "\nThe *bpm/rotational* bond style computes forces and torques based on\ndeviations from the initial reference state of the two atoms. The\nreference state is stored by each bond when it is first computed in\nthe setup of a run. Data is then preserved across run commands and is\nwritten to [binary restart files ](https://docs.lammps.org/restart.html) such that restarting\nthe system will not reset the reference state of a bond.\n\nForces include a normal and tangential component. The base normal force\nhas a magnitude of\n\\[\n f_r = k_r (r - r_0)\\]\nwhere \\(k_r\\) is a stiffness and \\(r\\) is the current distance and\n\\(r_0\\) is the initial distance between the two particles.\n\nA tangential force is applied perpendicular to the normal direction\nwhich is proportional to the tangential shear displacement with a\nstiffness of \\(k_s\\). This tangential force also induces a torque.\nIn addition, bending and twisting torques are also applied to\nparticles which are proportional to angular bending and twisting\ndisplacements with stiffnesses of \\(k_b\\) and \\(k_t\\),\nrespectively. Details on the calculations of shear displacements and\nangular displacements can be found in **Wang2009** and\n**Wang2009b**.\n\nBonds will break under sufficient stress. A breaking criterion is calculated\n\\[\n B = \\mathrm{max}\\left\\{0, \\frac{f_r}{f_{r,c}} + \\frac{|f_s|}{f_{s,c}} +\n \\frac{|\\tau_b|}{\\tau_{b,c}} + \\frac{|\\tau_t|}{\\tau_{t,c}} \\right\\}\\]\nwhere \\(|f_s|\\) is the magnitude of the shear force and\n\\(|\\tau_b|\\) and \\(|\\tau_t|\\) are the magnitudes of the\nbending and twisting torques, respectively. The corresponding variables\n\\(f_{r,c}\\) \\(f_{s,c}\\), \\(\\tau_{b,c}\\), and\n\\(\\tau_{t,c}\\) are critical limits to each force or torque. If\n\\(B\\) is ever equal to or exceeds one, the bond will break. This\nis done by setting the bond type to 0 such that forces and\ntorques are no longer computed.\n\nAfter computing the base magnitudes of the forces and torques, they\ncan be optionally multiplied by an extra factor \\(w\\) to smoothly\ninterpolate forces and torques to zero as the bond breaks. This term\nis calculated as \\(w = (1.0 - B^4)\\). This smoothing factor can be added\nor removed by setting the *smooth* keyword to *yes* or *no*, respectively.\n\nFinally, additional damping forces and torques are applied to the two\nparticles. A force is applied proportional to the difference in the\nnormal velocity of particles using a similar construction as\ndissipative particle dynamics **Groot3**:\n\\[\n F_D = - \\gamma_n w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma_n\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, and \\(\\vec{v}\\) is the velocity difference\nbetween the two particles. Similarly, tangential forces are applied to\neach atom proportional to the relative differences in sliding\nvelocities with a constant prefactor \\(\\gamma_s\\) :ref:`(Wang et\nal.) ` along with their associated torques. The rolling and\ntwisting components of the relative angular velocities of the two\natoms are also damped by applying torques with prefactors of\n\\(\\gamma_r\\) and \\(\\gamma_t\\), respectively.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(k_r\\) (force/distance units)\n* \\(k_s\\) (force/distance units)\n* \\(k_t\\) (force*distance/radians units)\n* \\(k_b\\) (force*distance/radians units)\n* \\(f_{r,c}\\) (force units)\n* \\(f_{s,c}\\) (force units)\n* \\(\\tau_{b,c}\\) (force*distance units)\n* \\(\\tau_{t,c}\\) (force*distance units)\n* \\(\\gamma_n\\) (force/velocity units)\n* \\(\\gamma_s\\) (force/velocity units)\n* \\(\\gamma_r\\) (force*distance/velocity units)\n* \\(\\gamma_t\\) (force*distance/velocity units)\n\nIf the *normalize* keyword is set to *yes*, the radial and shear forces\nwill be normalized by \\(r_0\\) such that \\(k_r\\) and \\(k_s\\)\nmust be given in force units.\n\nBy default, pair forces are not calculated between bonded particles.\nPair forces can alternatively be overlaid on top of bond forces by setting\nthe *overlay/pair* keyword to *yes*. These settings require specific\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings described in the\nrestrictions. Further details can be found in the [how to ](https://docs.lammps.org/Howto_bpm.html)\npage on BPMs.\n\nIf the *break* keyword is set to *no*, LAMMPS assumes bonds should not break\nduring a simulation run. This will prevent some unnecessary calculation.\nHowever, if a bond reaches a damage criterion greater than one,\nit will trigger an error.\n\nIf the *store/local* keyword is used, an internal fix will track bonds that\nbreak during the simulation. Whenever a bond breaks, data is processed\nand transferred to an internal fix labeled *fix_ID*. This allows the\nlocal data to be accessed by other LAMMPS commands. Following this optional\nkeyword, a list of one or more attributes is specified. These include the\nIDs of the two atoms in the bond. The other attributes for the two atoms\ninclude the timestep during which the bond broke and the current/initial\ncenter of mass position of the two atoms.\n\nData is continuously accumulated over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\nNote that when unbroken bonds are dumped to a file via the\n[dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 (broken bonds)\nare not included.\nThe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to\nquery the status of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n #### Restart and other info\n\nThis bond style writes the reference state of each bond to\n[binary restart files ](https://docs.lammps.org/restart.html). Loading a restart file will\nproperly resume bonds. However, the reference state is NOT\nwritten to data files. Therefore reading a data file will not\nrestore bonds and will cause their reference states to be redefined.\n\nIf the *store/local* option is used, an internal fix will calculate\na local vector or local array depending on the number of input values.\nThe length of the vector or number of rows in the array is the number\nof recorded, broken bonds. If a single input is specified, a local\nvector is produced. If two or more inputs are specified, a local array\nis produced where the number of columns = the number of inputs. The\nvector or array can be accessed by any command that uses local values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor an overview of LAMMPS output options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\nThe single() function of this bond style returns 0.0 for the energy\nof a bonded interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe bonded interaction force. However, the single() function also\ncalculates 7 extra bond quantities. The first 4 are data from the\nreference state of the bond including the initial distance between particles\n\\(r_0\\) followed by the \\(x\\), \\(y\\), and \\(z\\) components\nof the initial unit vector pointing to particle I from particle J. The next 3\nquantities (5-7) are the \\(x\\), \\(y\\), and \\(z\\) components\nof the total force, including normal and tangential contributions, acting\non particle I.\n\nThese extra quantities can be accessed by the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html)\ncommand, as *b1*, *b2*, ..., *b7* .\n\n**(Wang2009)** Wang, Acta Geotechnica, 4,\np 117-127 (2009). \n \n**(Wang2009b)** Wang, Mora, Advances in Geocomputing,\n119, p 183-228 (2009). \n \n**(Groot3)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n ", + "restrictions": "This bond style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default if pair interactions between bonded atoms are to be disabled,\nthis bond style requires setting\n\n```lmps\nspecial_bonds lj 0 1 1 coul 1 1 1\n```\nand [newton ](https://docs.lammps.org/newton.html) must be set to bond off. If the *overlay/pair*\nkeyword is set to *yes*, this bond style alternatively requires setting\n\n```lmps\nspecial_bonds lj/coul 1 1 1\n```\nThe *bpm/rotational* style requires [atom style bpm/sphere ](https://docs.lammps.org/atom_style.html).\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [fix nve/bpm/sphere ](https://docs.lammps.org/fix_nve_bpm_sphere.html)\n" }, { "command": [ - "pair_style e3b" + "print" ], "syntax": [ - "pair_style e3b Otype" + "print string keyword value" ], "args": [ [ { - "arg": "pair_style", + "arg": "print", "type": 1, "choices": [] }, { - "arg": "e3b", - "type": 1, + "arg": "string", + "type": 2, "choices": [] }, { - "arg": "Otype", + "arg": "universe", + "type": 3, + "choices": [ + "file", + "append", + "screen", + "universe" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* Otype = atom type (numeric or type label) for oxygen \n *    pair_coeff * * keyword \n* one or more keyword/value pairs must be appended.\n* keyword = preset or Ea or Eb or Ec or E2 or K3 or K2 or Rs or Rc3 or Rc2 or bondL or neigh\n* If the preset keyword is given, no others are needed.\n Otherwise, all are mandatory except for neigh .\n The neigh keyword is always optional. \n *      preset arg = 2011 or 2015 = which set of predefined parameters to use \n       2011 = use the potential parameters from :ref:`(Tainter 2011) ` \n       2015 = use the potential parameters from :ref:`(Tainter 2015) ` \n *      Ea arg = three-body energy for type A hydrogen bonding interactions (energy units) \n *      Eb arg = three-body energy for type B hydrogen bonding interactions (energy units) \n *      Ec arg = three-body energy for type C hydrogen bonding interactions (energy units) \n *      E2 arg = two-body energy correction (energy units) \n *      K3 arg = three-body exponential constant (inverse distance units) \n *      K2 arg = two-body exponential constant (inverse distance units) \n *      Rc3 arg = three-body cutoff (distance units) \n *      Rc2 arg = two-body cutoff (distance units) \n *      Rs arg = three-body switching function cutoff (distance units) \n *      bondL arg = intramolecular OH bond length (distance units) \n *      neigh arg = approximate integer number of molecules within Rc3 of an oxygen atom \n", - "examples": "\n```lmps\npair_style e3b 1\npair_coeff * * Ea 35.85 Eb -240.2 Ec 449.3 E2 108269.9 K3 1.907 K2 4.872 Rc3 5.2 Rc2 5.2 Rs 5.0 bondL 0.9572\n\npair_style hybrid/overlay e3b 1 lj/cut/tip4p/long 1 2 1 1 0.15 8.5\npair_coeff * * e3b preset 2011\n\npair_style e3b OW\nlabelmap atom 1 C 2 H 3 O 4 N 5 OW 6 HW\npair_coeff * * Ea 35.85 Eb -240.2 Ec 449.3 E2 108269.9 K3 1.907 K2 4.872 Rc3 5.2 Rc2 5.2 Rs 5.0 bondL 0.9572\n```\nUsed in example input script:\n\n```\nexamples/PACKAGES/e3b/in.e3b-tip4p2005\n```\n", - "html_filename": "pair_e3b.html", - "short_description": "The *e3b* style computes an \\\"explicit three-body\\\" (E3B) potential for water **Kumar**", - "description": "The *e3b* style computes an \\\"explicit three-body\\\" (E3B) potential for water **Kumar**.\n\\[\\begin{align*} \n E =& E_2 \\sum_{i,j}e^{-k_2 r_{ij}} + E_A \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type A}}} f(r_{ij})f(r_{k\\ell}) + E_B \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type B}}} f(r_{ij})f(r_{k\\ell}) + E_C \\sum_{\\substack{i,j,k,\\ell \\\\\n \\in \\textrm{type C}}} f(r_{ij})f(r_{k\\ell}) \\\\\n f(r) =& e^{-k_3 r}s(r) \\\\\n s(r) =& \\begin{cases}\n 1 & rR_f\\\\\n \\end{cases} \\end{align*} \\]\nThis potential was developed as a water model that includes the\nthree-body cooperativity of hydrogen bonding explicitly. To use it in\nthis way, it must be applied in conjunction with a conventional two-body\nwater model, through pair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). The\nthree body interactions are split into three types: A, B, and C. Type A\ncorresponds to anti-cooperative double hydrogen bond donor interactions.\nType B corresponds to the cooperative interaction of molecules that both\ndonate and accept a hydrogen bond. Type C corresponds to\nanti-cooperative double hydrogen bond acceptor interactions. The\nthree-body interactions are smoothly cutoff by the switching function\ns(r) between Rs and Rc3. The two-body interactions are designed to\ncorrect for the effective many-body interactions implicitly included in\nthe conventional two-body potential. The two-body interactions are cut\noff sharply at Rc2, because K3 is typically significantly smaller than\nK2. See **Kumar** for more details.\n\nOnly a single [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command is used with the\n*e3b* style and the first two arguments must be \\* \\*. The oxygen atom\ntype for the pair style is passed as the only argument to the\n*pair_style* command, not in the *pair_coeff* command. The hydrogen\natom type is inferred from the ordering of the atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Every atom of type Otype must be part of a water molecule.\n > Each water molecule must have consecutive IDs with the oxygen first.\n > This pair style does not test that this criteria is met. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nThe *pair_coeff* command must have at least one keyword/value pair, as\ndescribed above. The *preset* keyword sets the potential parameters to\nthe values used in **Tainter2011** or\n**Tainter2015**. To use the water models defined in\nthose references, the *e3b* style should always be used in conjunction\nwith an *lj/cut/tip4p/long* style through *pair_style hybrid/overlay*,\nas demonstrated in the second example above. The *preset 2011* option\nshould be used with the [TIP4P water model ](https://docs.lammps.org/Howto_tip4p.html). The\n*preset 2015* option should be used with the [TIP4P/2005 watermodel ](https://docs.lammps.org/Howto_tip4p.html). If the *preset* keyword is used, no other keyword\nis needed. Changes to the preset parameters can be made by specifying\nthe *preset* keyword followed by the specific parameter to change, like\n*Ea* . Note that the other keywords must come after *preset* in the\npair_style command. The *e3b* style can also be used to implement any\nthree-body potential of the same form by specifying all the keywords\nexcept *neigh* : *Ea*, *Eb*, *Ec*, *E2*, *K3*, *K2*, *Rc3*, *Rc2*,\n*Rs*, and *bondL* . The keyword *bondL* specifies the intramolecular\nOH bond length of the water model being used. This is needed to include\nH atoms that are within the cutoff even when the attached oxygen atom is\nnot.\n\nThis pair style allocates arrays sized according to the number of\npairwise interactions within Rc3. To do this it needs an estimate for\nthe number of water molecules within Rc3 of an oxygen atom. This\nestimate defaults to 10 and can be changed using the *neigh* keyword,\nwhich takes an integer as an argument. If the neigh setting is too\nsmall, the simulation will fail with the error \"neigh is too small\". If\nthe neigh setting is too large, the pair style will use more memory than\nnecessary.\n\nThis pair style tallies a breakdown of the total E3B potential energy\ninto sub-categories, which can be accessed via the [compute pair](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 4. The 4 values\ncorrespond to the terms in the first equation above: the E2 term, the Ea\nterm, the Eb term, and the Ec term.\n\nSee the examples/PACKAGES/e3b directory for a complete example script.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style is incompatible with [respa ](https://docs.lammps.org/run_style.html).\n\n----------\n\n**(Tainter2011)** Kumar and Skinner, J. Phys. Chem. B, 112, 8311 (2008) \n \n**(Tainter2015)** Tainter, Pieniazek, Lin, and Skinner, J. Chem. Phys., 134, 184501 (2011) \n \n \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThis pair style requires a fixed number of atoms in the simulation, so it is incompatible with fixes like [fix deposit ](https://docs.lammps.org/fix_deposit.html).\nIf the number of atoms changes between runs, this pair style must be re-initialized by calling the *pair_style* and *pair_coeffs* commands.\nThis is not a fundamental limitation of the pair style, but the code currently does not support a variable number of atoms.\n\nThe *preset* keyword currently only works with real, metal, si, and cgs [units ](https://docs.lammps.org/units.html).\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" + "parameters": "* string = text string to print, which may contain variables\n* zero or more keyword/value pairs may be appended\n* keyword = file or append or screen or universe \n *        file value = filename \n *        append value = filename \n *        screen value = yes or no \n *        universe value = yes or no \n", + "examples": "\n```lmps\nprint \"Done with equilibration\" file info.dat\nprint Vol=$v append info.dat screen no\nprint \"The system volume is now $v\"\nprint 'The system volume is now $v'\nprint \"NEB calculation 1 complete\" screen no universe yes\nprint \"\"\"\nSystem volume = $v\n #### System temperature = $t\n```\n", + "html_filename": "print.html", + "short_description": "Print a text string to the screen and logfile", + "description": "Print a text string to the screen and logfile. The text string must\nbe a single argument, so if it is one line but more than one word, it\nshould be enclosed in single or double quotes. To generate multiple\nlines of output, the string can be enclosed in triple quotes, as in\nthe last example above. If the text string contains variables, they\nwill be evaluated and their current values printed.\n\n **New in version 15Jun2023** \n\n support for vector style variables\nSee the [variable ](https://docs.lammps.org/variable.html) command for a description of\n*equal* and *vector* style variables which are typically the most\nuseful ones to use with the print command. Equal- and vector-style\nvariables can calculate formulas involving mathematical operations,\natom properties, group properties, thermodynamic properties, global\nvalues calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html),\nor references to other [variables ](https://docs.lammps.org/variable.html). Vector-style\nvariables are printed in a bracketed, comma-separated format,\ne.g. [1,2,3,4] or [12.5,2,4.6,10.1].\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, the text string can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on the [variable > ](https://docs.lammps.org/variable.html) doc page. This is a convenient way to evaluate a\n > formula immediately without using the variable command to define a\n > named variable and then use that variable in the text string. The\n > formula can include a trailing colon and format string which\n > determines the precision with which the numeric value is output.\n > This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nIf you want the print command to be executed multiple times (with\nchanging variable values), there are 3 options. First, consider using\nthe [fix print ](https://docs.lammps.org/fix_print.html) command, which will print a string\nperiodically during a simulation. Second, the print command can be\nused as an argument to the *every* option of the [run ](https://docs.lammps.org/run.html)\ncommand. Third, the print command could appear in a section of the\ninput script that is looped over (see the [jump ](https://docs.lammps.org/jump.html) and\n[next ](https://docs.lammps.org/next.html) commands).\n\nIf the *file* or *append* keyword is used, a filename is specified to\nwhich the output will be written. If *file* is used, then the\nfilename is overwritten if it already exists. If *append* is used,\nthen the filename is appended to if it already exists, or created if\nit does not exist.\n\nIf the *screen* keyword is used, output to the screen and logfile can\nbe turned on or off as desired.\n\nIf the *universe* keyword is used, output to the global screen and\nlogfile can be turned on or off as desired. In multi-partition\ncalculations, the *screen* option and the corresponding output only\napply to the screen and logfile of the individual partition.\n", + "restrictions": " none\n", + "related": "[fix print ](https://docs.lammps.org/fix_print.html), [variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "fix ave/correlate/long" + "fix balance" ], "syntax": [ - "fix ID group-ID ave/correlate/long Nevery Nfreq value1 value2 ... keyword args ..." + "fix ID group-ID balance Nfreq thresh style args keyword args ..." ], "args": [ [ @@ -20882,43 +20338,40 @@ export const command_docs = [ "choices": [] }, { - "arg": "ave/correlate/long", + "arg": "balance", "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "Nfreq", + "arg": "thresh", "type": 2, "choices": [] }, { - "arg": "value1", - "type": 2, - "choices": [] + "arg": "report", + "type": 3, + "choices": [ + "shift", + "rcb", + "report" + ] }, { - "arg": "value2", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "ncount", + "arg": "out", "type": 3, "choices": [ - "type", - "start", - "file", - "overwrite", - "title1", - "title2", - "ncorr", - "nlen", - "ncount" + "weight", + "out" ] }, { @@ -20928,55 +20381,74 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/correlate/long = style name of this fix command\n* Nevery = use input values every this many time steps\n* Nfreq = save state of the time correlation functions every this many time steps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name, v_name[I] \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = type or start or file or overwrite or title1 or title2 or ncorr or nlen or ncount \n *        type arg = auto or upper or lower or auto/upper or auto/lower or full \n         auto = correlate each value with itself \n         upper = correlate each value with each succeeding value \n         lower = correlate each value with each preceding value \n         auto/upper = auto + upper \n         auto/lower = auto + lower \n         full = correlate each value with every other value, including itself = auto + upper + lower \n *        start args = Nstart \n         Nstart = start accumulating correlations on this time step \n *        file arg = filename \n         filename = name of file to output correlation data to \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        ncorr arg = Ncorrelators \n         Ncorrelators = number of correlators to store \n *        nlen args = Nlen \n         Nlen = length of each correlator \n *        ncount args = Ncount \n         Ncount = number of values over which successive correlators are averaged \n", - "examples": "\n```lmps\nfix 1 all ave/correlate/long 5 1000 c_myTemp file temp.correlate\nfix 1 all ave/correlate/long 1 10000 &\nc_thermo_press[1] c_thermo_press[2] c_thermo_press[3] &\ntype upper title1 \"My correlation data\" nlen 15 ncount 3\nfix 1 all ave/correlate/long 1 10000 c_thermo_press[*]\n```\n", - "html_filename": "fix_ave_correlate_long.html", - "short_description": "This fix is similar in spirit and syntax to the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html)", - "description": "This fix is similar in spirit and syntax to the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html).\nHowever, this fix allows the efficient calculation of time correlation\nfunctions on-the-fly over extremely long time windows with little\nadditional CPU overhead, using a multiple-\\(\\tau\\) method\n**Ramirez** that decreases the resolution of the stored\ncorrelation function with time. It is not a full drop-in replacement.\n\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a compute or fix or the\nevaluation of an equal-style or vector-style variable. For\nvector-style variables, the specified indices can include a wildcard\ncharacter. See the [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) page\nfor details.\n\nThe *Nevery* and *Nfreq* arguments specify on what time steps the input\nvalues will be used to calculate correlation data and the frequency\nwith which the time correlation functions will be output to a file,\nrespectively.\nNote that there is no *Nrepeat* argument, unlike the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command.\n\nThe optional keywords *ncorr*, *nlen*, and *ncount* are unique to this\ncommand and determine the number of correlation points calculated and\nthe memory and CPU overhead used by this calculation. *Nlen* and\n*ncount* determine the amount of averaging done at longer correlation\ntimes. The default values *nlen* = 16 and *ncount* = 2 ensure that the\nsystematic error of the multiple-\\(\\tau\\) correlator is always below the\nlevel of the statistical error of a typical simulation (which depends\non the ensemble size and the simulation length).\n\nThe maximum correlation time (in time steps) that can be reached is\ngiven by the formula \\((nlen-1) ncount^{(ncorr-1)}\\). Longer correlation\ntimes are discarded and not calculated. With the default values of\nthe parameters (\\(ncorr=20\\), \\(nlen=16\\) and \\(ncount=2\\)),\nthis corresponds to 7864320 time steps. If longer correlation times are\nneeded, the value of ncorr should be increased. Using \\(nlen=16\\) and\n\\(ncount=2\\), with \\(ncorr=30\\), the maximum number of steps that can\nbe correlated is 80530636808. If \\(ncorr=40\\), correlation times in excess\nof \\(8\\times 10^{12}\\) time steps can be calculated.\n\nThe total memory needed for each correlation pair is roughly\n\\(4 \\times ncorr\\times nlen \\times 8\\) bytes.\nWith the default values of the parameters, this corresponds to about 10 KB.\n\nFor the meaning of the additional optional keywords, see the\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) doc page.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nContrary to [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) this fix\ndoes **not** provide access to its internal data to various output\noptions. Since this fix in intended for the calculation of time\ncorrelation functions over very long MD simulations, the information\nabout this fix is written automatically to binary restart files, so\nthat the time correlation calculation can continue in subsequent\nsimulations. None of the fix_modify options are relevant to this fix.\n\nNo parameter of this fix can be used with the start/stop keywords of\nthe run command. This fix is not invoked during energy minimization.\n\n**(Ramirez)** J. Ramirez, S.K. Sukumaran, B. Vorselaars and\nA.E. Likhtman, J. Chem. Phys. 133, 154103 (2010). \n ", - "restrictions": "This compute is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* balance = style name of this fix command\n* Nfreq = perform dynamic load balancing every this many steps\n* thresh = imbalance threshold that must be exceeded to perform a re-balance\n* style = shift or rcb or report \n *        shift args = dimstr Niter stopthresh \n         dimstr = sequence of letters containing x or y or *z*, each not more than once \n         Niter = # of times to iterate within each dimension of dimstr sequence \n         stopthresh = stop balancing when this imbalance threshold is reached \n *        rcb args = none \n *        report args = none \n* zero or more keyword/arg pairs may be appended\n* keyword = weight or out \n *        weight style args = use weighted particle counts for the balancing \n         style = group or neigh or time or var or store \n         group args = Ngroup group1 weight1 group2 weight2 ... \n         Ngroup = number of groups with assigned weights \n         group1, group2, ... = group IDs \n         weight1, weight2, ... = corresponding weight factors \n         neigh factor = compute weight based on number of neighbors \n         factor = scaling factor (> 0) \n         time factor = compute weight based on time spend computing \n         factor = scaling factor (> 0) \n         var name = take weight from atom-style variable \n         name = name of the atom-style variable \n         store name = store weight in custom atom property defined by [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command \n         name = atom property name (without d\\_ prefix) \n *        *sort* arg = no or yes \n *        out arg = filename \n         filename = write each processor's subdomain to a file, at each re-balancing \n", + "examples": "\n```lmps\nfix 2 all balance 1000 1.05 shift x 10 1.05\nfix 2 all balance 100 0.9 shift xy 20 1.1 out tmp.balance\nfix 2 all balance 100 0.9 shift xy 20 1.1 weight group 3 substrate 3.0 solvent 1.0 solute 0.8 out tmp.balance\nfix 2 all balance 100 1.0 shift x 10 1.1 weight time 0.8\nfix 2 all balance 100 1.0 shift xy 5 1.1 weight var myweight weight neigh 0.6 weight store allweight\nfix 2 all balance 1000 1.1 rcb\n```\n", + "html_filename": "fix_balance.html", + "short_description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of\nparticles and thus the computational cost (load) evenly across\nprocessors", + "description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of\nparticles and thus the computational cost (load) evenly across\nprocessors. The load balancing is \"dynamic\" in the sense that\nre-balancing is performed periodically during the simulation. To\nperform \"static\" balancing, before or between runs, see the\n[balance ](https://docs.lammps.org/balance.html) command.\n\nThe *report* balance style only computes the load imbalance but\ndoes not attempt any re-balancing. This way the load imbalance\ninformation can be used otherwise, for instance for stopping a\nrun with [fix halt ](https://docs.lammps.org/fix_halt.html).\n\nLoad-balancing is typically most useful if the particles in the\nsimulation box have a spatially-varying density distribution or\nwhere the computational cost varies significantly between different\natoms (e.g., a model of a vapor/liquid interface, or a solid with\nan irregular-shaped geometry containing void regions, or\n[hybrid pair style simulations ](https://docs.lammps.org/pair_hybrid.html) that combine\npair styles with different computational cost). In these cases, the\nLAMMPS default of dividing the simulation box volume into a\nregular-spaced grid of 3d bricks, with one equal-volume subdomain\nper processor, may assign numbers of particles per processor in a\nway that the computational effort varies significantly. This can\nlead to poor performance when the simulation is run in parallel.\n\nThe balancing can be performed with or without per-particle weighting.\nWith no weighting, the balancing attempts to assign an equal number of\nparticles to each processor. With weighting, the balancing attempts\nto assign an equal aggregate computational weight to each processor,\nwhich typically induces a different number of atoms assigned to each\nprocessor.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The weighting options listed above are documented with the\n > [balance ](https://docs.lammps.org/balance.html) command in :ref:`this section of the balance\n > command ` doc page. That section\n > describes the various weighting options and gives a few examples of\n > how they can be used. The weighting options are the same for both the\n > fix balance and [balance ](https://docs.lammps.org/balance.html) commands. \n > \n\nNote that the [processors ](https://docs.lammps.org/processors.html) command allows some control\nover how the box volume is split across processors. Specifically, for\na \\(P_x \\times P_y \\times P_z\\) grid of processors, it allows choices of\n\\(P_x\\), \\(P_y\\), and \\(P_z\\) subject to the constraint that\n\\(P_x P_y P_z = P\\), the total number of processors.\nThis is sufficient to achieve good load-balance for\nsome problems on some processor counts. However, all the processor\nsubdomains will still have the same shape and the same volume.\n\nOn a particular time step, a load-balancing operation is only performed\nif the current \"imbalance factor\" in particles owned by each processor\nexceeds the specified *thresh* parameter. The imbalance factor is\ndefined as the maximum number of particles (or weight) owned by any\nprocessor, divided by the average number of particles (or weight) per\nprocessor. Thus, an imbalance factor of 1.0 is perfect balance.\n\nAs an example, for 10000 particles running on 10 processors, if the\nmost heavily loaded processor has 1200 particles, then the imbalance factor is\n1.2, meaning there is a 20% imbalance. Note that re-balances can be\nforced even if the current balance is perfect (1.0) be specifying a\n*thresh* < 1.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command attempts to minimize the imbalance factor, as\n > defined above. But depending on the method a perfect balance (1.0)\n > may not be achieved. For example, \"grid\" methods (defined below) that\n > create a logical 3d grid cannot achieve perfect balance for many\n > irregular distributions of particles. Likewise, if a portion of the\n > system is a perfect, non-rotated lattice (e.g., the initial system is\n > generated by the [create_atoms ](https://docs.lammps.org/create_atoms.html) command with no\n > rotations), then \"grid\" methods may be unable to achieve exact balance.\n > This is because entire lattice planes will be owned or not owned by a single\n > processor. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The imbalance factor is also an estimate of the maximum speed-up\n > you can hope to achieve by running a perfectly balanced simulation\n > versus an imbalanced one. In the example above, the 10000-particle\n > simulation could run up to 20% faster if it were perfectly balanced,\n > versus when imbalanced. However, computational cost is not strictly\n > proportional to particle count, and changing the relative size and\n > shape of processor subdomains may lead to additional computational\n > and communication overheads (e.g., in the PPPM solver used via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command). Thus, you should benchmark\n > the run times of a simulation before and after balancing. \n > \n\n----------\n\nThe method used to perform a load balance is specified by one of the\nlisted styles, which are described in detail below. There are two kinds\nof styles.\n\nThe *shift* style is a \"grid\" method which produces a logical 3d grid\nof processors. It operates by changing the cutting planes (or lines)\nbetween processors in 3d (or 2d), to adjust the volume (area in 2d)\nassigned to each processor, as in the following 2d diagram where\nprocessor subdomains are shown and atoms are colored by the processor\nthat owns them.\n \n | | | | \n |---|---|---| \n | ![Image](img/balance_uniform.jpg) | ![Image](img/balance_nonuniform.jpg) | ![Image](img/balance_rcb.jpg) | \n\n\nThe leftmost diagram is the default partitioning of the simulation box\nacross processors (one sub-box for each of 16 processors); the middle\ndiagram is after a \"grid\" method has been applied. The *rcb* style is a\n\"tiling\" method which does not produce a logical 3d grid of processors.\nRather it tiles the simulation domain with rectangular sub-boxes of\nvarying size and shape in an irregular fashion so as to have equal\nnumbers of particles (or weight) in each sub-box, as in the rightmost\ndiagram above.\n\nThe \"grid\" methods can be used with either of the\n[comm_style ](https://docs.lammps.org/comm_style.html) command options, *brick* or *tiled* . The\n\"tiling\" methods can only be used with [comm_style tiled ](https://docs.lammps.org/comm_style.html).\n\nWhen a \"grid\" method is specified, the current domain partitioning can\nbe either a logical 3d grid or a tiled partitioning. In the former\ncase, the current logical 3d grid is used as a starting point and\nchanges are made to improve the imbalance factor. In the latter case,\nthe tiled partitioning is discarded and a logical 3d grid is created\nwith uniform spacing in all dimensions. This is the starting point\nfor the balancing operation.\n\nWhen a \"tiling\" method is specified, the current domain partitioning\n(\"grid\" or \"tiled\") is ignored, and a new partitioning is computed\nfrom scratch.\n\n----------\n\nThe *group-ID* is ignored. However the impact of balancing on\ndifferent groups of atoms can be affected by using the *group* weight\nstyle as described below.\n\nThe \\(N_\\text{freq}\\) setting determines how often a re-balance is\nperformed. If \\(N_\\text{freq} > 0\\), then re-balancing will occur every\n\\(N_\\text{freq}\\) steps. Each time a re-balance occurs, a reneighboring is\ntriggered, so \\(N_\\text{freq}\\) should not be too small. If\n\\(N_\\text{freq} = 0\\), then re-balancing will be done every time\nreneighboring normally occurs, as determined by the\nthe [neighbor ](https://docs.lammps.org/neighbor.html) and [neigh_modify ](https://docs.lammps.org/neigh_modify.html)\ncommand settings.\n\nOn re-balance steps, re-balancing will only be attempted if the current\nimbalance factor, as defined above, exceeds the *thresh* setting.\n\n----------\n\nThe *shift* style invokes a \"grid\" method for balancing, as described\nabove. It changes the positions of cutting planes between processors\nin an iterative fashion, seeking to reduce the imbalance factor.\n\nThe *dimstr* argument is a string of characters, each of which must be\n*x* or *y* or *z*. Each character can appear zero or one time,\nsince there is no advantage to balancing on a dimension more than\nonce. You should normally only list dimensions where you expect there\nto be a density variation in the particles.\n\nBalancing proceeds by adjusting the cutting planes in each of the\ndimensions listed in *dimstr*, one dimension at a time. For a single\ndimension, the balancing operation (described below) is iterated on up\nto \\(N_\\text{iter}\\) times. After each dimension finishes, the imbalance\nfactor is re-computed, and the balancing operation halts if the *stopthresh*\ncriterion is met.\n\nA re-balance operation in a single dimension is performed using a\ndensity-dependent recursive multisectioning algorithm, where the\nposition of each cutting plane (line in 2d) in the dimension is\nadjusted independently. This is similar to a recursive bisectioning\nfor a single value, except that the bounds used for each bisectioning\ntake advantage of information from neighboring cuts if possible, as\nwell as counts of particles at the bounds on either side of each cuts,\nwhich themselves were cuts in previous iterations. The latter is used\nto infer a density of particles near each of the current cuts. At\neach iteration, the count of particles on either side of each plane is\ntallied. If the counts do not match the target value for the plane,\nthe position of the cut is adjusted based on the local density. The\nlow and high bounds are adjusted on each iteration, using new count\ninformation, so that they become closer together over time. Thus as\nthe recursion progresses, the count of particles on either side of the\nplane gets closer to the target value.\n\nThe density-dependent part of this algorithm is often an advantage\nwhen you re-balance a system that is already nearly balanced. It\ntypically converges more quickly than the geometric bisectioning\nalgorithm used by the [balance ](https://docs.lammps.org/balance.html) command. However, if can\nbe a disadvantage if you attempt to re-balance a system that is far\nfrom balanced, and converge more slowly. In this case you probably\nwant to use the [balance ](https://docs.lammps.org/balance.html) command before starting a run,\nso that you begin the run with a balanced system.\n\nOnce the re-balancing is complete and final processor subdomains\nassigned, particles migrate to their new owning processor as part of\nthe normal reneighboring procedure.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >At each re-balance operation, the bisectioning for each cutting\n > plane (line in 2d) typically starts with low and high bounds separated\n > by the extent of a processor's subdomain in one dimension. The size\n > of this bracketing region shrinks based on the local density, as\n > described above, which should typically be 1/2 or more every\n > iteration. Thus if \\(N_\\text{iter}\\) is specified as 10, the cutting\n > plane will typically be positioned to better than 1 part in 1000 accuracy\n > (relative to the perfect target position). For \\(N_\\text{iter} = 20\\),\n > it will be accurate to better than 1 part in a million. Thus there is no\n > need to set \\(N_\\text{iter}\\) to a large value. This is especially true\n > if you are re-balancing often enough that each time you expect only an\n > incremental adjustment in the cutting planes is necessary. LAMMPS will\n > check if the threshold accuracy is reached (in a dimension) is less\n > iterations than \\(N_\\text{iter}\\) and exit early. \n > \n\n----------\n\nThe *rcb* style invokes a \"tiled\" method for balancing, as described\nabove. It performs a recursive coordinate bisectioning (RCB) of the\nsimulation domain. The basic idea is as follows.\n\nThe simulation domain is cut into two boxes by an axis-aligned cut in\nthe longest dimension, leaving one new box on either side of the cut.\nAll the processors are also partitioned into two groups, half assigned\nto the box on the lower side of the cut, and half to the box on the\nupper side. If the processor count is odd, one side gets an extra\nprocessor. The cut is positioned so that the number of atoms in the\nlower box is exactly the number that the processors assigned to that\nbox should own for load balance to be perfect. This also makes load\nbalance for the upper box perfect. The positioning is done\niteratively, by a bisectioning method. Note that counting atoms on\neither side of the cut requires communication between all processors\nat each iteration.\n\nThat is the procedure for the first cut. Subsequent cuts are made\nrecursively, in exactly the same manner. The subset of processors\nassigned to each box make a new cut in the longest dimension of that\nbox, splitting the box, the subset of processors, and the atoms in\nthe box in two. The recursion continues until every processor is\nassigned a sub-box of the entire simulation domain, and owns the atoms\nin that sub-box.\n\n----------\n\nThe *sort* keyword determines whether the communication of per-atom\ndata to other processors during load-balancing will be random or\ndeterministic. Random is generally faster; deterministic will ensure\nthe new ordering of atoms on each processor is the same each time the\nsame simulation is run. This can be useful for debugging purposes.\nSince the fix balance command is performed during timestepping, the\ndefault is *no* so that sorting is not performed.\n\nThe *out* keyword writes text to the specified *filename* with the\nresults of each re-balancing operation. The file contains the bounds\nof the subdomain for each processor after the balancing operation\ncompletes. The format of the file is compatible with the\n[Pizza.py ](https://lammps.github.io/pizza) *mdump* tool which has support for manipulating and\nvisualizing mesh files. An example is shown here for a balancing by four\nprocessors for a 2d problem:\n\n```\nITEM: TIMESTEP\n0\nITEM: NUMBER OF NODES\n16\nITEM: BOX BOUNDS\n0 10\n0 10\n0 10\nITEM: NODES\n1 1 0 0 0\n2 1 5 0 0\n3 1 5 5 0\n4 1 0 5 0\n5 1 5 0 0\n6 1 10 0 0\n7 1 10 5 0\n8 1 5 5 0\n9 1 0 5 0\n10 1 5 5 0\n11 1 5 10 0\n12 1 10 5 0\n13 1 5 5 0\n14 1 10 5 0\n15 1 10 10 0\n16 1 5 10 0\nITEM: TIMESTEP\n0\nITEM: NUMBER OF SQUARES\n4\nITEM: SQUARES\n1 1 1 2 3 4\n2 1 5 6 7 8\n3 1 9 10 11 12\n4 1 13 14 15 16\n```\nThe coordinates of all the vertices are listed in the NODES section, five\nper processor. Note that the four subdomains share vertices, so there\nwill be duplicate nodes in the list.\n\nThe \"SQUARES\" section lists the node IDs of the four vertices in a\nrectangle for each processor (1 to 4).\n\nFor a 3d problem, the syntax is similar but with eight vertices listed for\neach processor instead of four, and \"SQUARES\" replaced by \"CUBES\".\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes a global scalar which is the imbalance factor\nafter the most recent re-balance and a global vector of length 3 with\nadditional information about the most recent re-balancing. The three\nvalues in the vector are as follows:\n\n* 1 = max # of particles per processor\n* 2 = total # iterations performed in last re-balance\n* 3 = imbalance factor right before the last re-balance was performed\n\nAs explained above, the imbalance factor is the ratio of the maximum\nnumber of particles (or total weight) on any processor to the average\nnumber of particles (or total weight) per processor.\n\nThese quantities can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar and vector values calculated\nby this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n", + "restrictions": "For 2d simulations, the *z* style cannot be used, nor can *z*\nappear in *dimstr* for the *shift* style.\n\nBalancing through recursive bisectioning (\\ *rcb* style) requires\n[comm_style tiled ](https://docs.lammps.org/comm_style.html)\\ .\n", + "related": "[group ](https://docs.lammps.org/group.html), [processors ](https://docs.lammps.org/processors.html), [balance ](https://docs.lammps.org/balance.html),\n[comm_style ](https://docs.lammps.org/comm_style.html)\n\n.. _pizza: https://lammps.github.io/pizza\n" }, { "command": [ - "timestep" + "fix press/berendsen" ], "syntax": [ - "timestep dt" + "fix ID group-ID press/berendsen keyword value ..." ], "args": [ [ { - "arg": "timestep", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "dt", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "press/berendsen", + "type": 1, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* dt = timestep size (time units) \n", - "examples": "\n```lmps\ntimestep 2.0\ntimestep 0.003\n```\n", - "html_filename": "timestep.html", - "short_description": "Set the timestep size for subsequent molecular dynamics simulations", - "description": "Set the timestep size for subsequent molecular dynamics simulations.\nSee the [units ](https://docs.lammps.org/units.html) command for the time units associated with\neach choice of units that LAMMPS supports.\n\nThe default value for the timestep size also depends on the choice of\nunits for the simulation; see the default values below.\n\nWhen the [run style ](https://docs.lammps.org/run_style.html) is *respa*, dt is the timestep for\nthe outer loop (largest) timestep.\n", - "restrictions": " none\n", - "related": "[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html), [run ](https://docs.lammps.org/run.html),\n[run_style ](https://docs.lammps.org/run_style.html) respa, [units ](https://docs.lammps.org/units.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* press/berendsen = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or x or y or z or couple or dilate or modulus \n       iso or aniso values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       modulus value = bulk modulus of system (pressure units) \n       dilate value = all or partial \n", + "examples": "\n```lmps\nfix 1 all press/berendsen iso 0.0 0.0 1000.0\nfix 2 all press/berendsen aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_press_berendsen.html", + "short_description": "Reset the pressure of the system by using a Berendsen barostat\n**Berendsen1**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep", + "description": "Reset the pressure of the system by using a Berendsen barostat\n**Berendsen1**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep.\n\nRegardless of what atoms are in the fix group, a global pressure is\ncomputed for all atoms. Similarly, when the size of the simulation\nbox is changed, all atoms are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the atoms in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of atoms in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html)\n > commands which perform Nose/Hoover barostatting AND time integration,\n > this fix does NOT perform time integration. It only modifies the box\n > size and atom coordinates to effect barostatting. Thus you must use a\n > separate time integration fix, like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) to actually update the positions and velocities of\n > atoms. This fix can be used in conjunction with thermostatting fixes\n > to control the temperature, such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) or [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html). \n > \n\nSee the [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) page for a\ndiscussion of different ways to perform barostatting.\n\n----------\n\nThe barostat is specified using one or more of the *iso*, *aniso*,\n*x*, *y*, *z*, and *couple* keywords. These keywords give you the\nability to specify the 3 diagonal components of an external stress\ntensor, and to couple various of these components together so that the\ndimensions they represent are varied together during a\nconstant-pressure simulation. Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) and\n[fix nph ](https://docs.lammps.org/fix_nh.html) commands, this fix cannot be used with triclinic\n(non-orthogonal) simulation boxes to control all 6 components of the\ngeneral pressure tensor.\n\nThe target pressures for each of the 3 diagonal components of the\nstress tensor can be specified independently via the *x*, *y*, *z*,\nkeywords, which correspond to the 3 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. A\nbox dimension will not change if that component is not specified,\nalthough you have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nFor all barostat keywords, the *Pdamp* parameter determines the time\nscale on which pressure is relaxed. For example, a value of 10.0\nmeans to relax the pressure in a timespan of (roughly) 10 time units\n(tau or fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Berendsen barostat will not work well for arbitrary values of\n > *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The relaxation time is actually also a function of the bulk\n > modulus of the system (inverse of isothermal compressibility). The\n > bulk modulus has units of pressure and is the amount of pressure that\n > would need to be applied (isotropically) to reduce the volume of the\n > system by a factor of 2 (assuming the bulk modulus was a constant,\n > independent of density, which it's not). The bulk modulus can be set\n > via the keyword *modulus* . The *Pdamp* parameter is effectively\n > multiplied by the bulk modulus, so if the pressure is relaxing faster\n > than expected or desired, increasing the bulk modulus has the same\n > effect as increasing *Pdamp* . The converse is also true. LAMMPS does\n > not attempt to guess a correct value of the bulk modulus; it just uses\n > 10.0 as a default value which gives reasonable relaxation for a\n > Lennard-Jones liquid, but will be way off for other materials and way\n > too small for solids. Thus you should experiment to find appropriate\n > values of *Pdamp* and/or the *modulus* when using this fix. \n > \n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso* and *aniso* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its temperature and pressure calculations. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Berendsen1)** Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem\nPhys, 81, 3684 (1984). \n ", + "restrictions": "Any dimension being adjusted by this fix must be periodic.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "fix npt/asphere", - "fix npt/asphere/omp" + "compute displace/atom" ], "syntax": [ - "fix ID group-ID npt/asphere keyword value ..." + "compute ID group-ID displace/atom" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -20991,39 +20463,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "npt/asphere", - "type": 3, - "choices": [ - "npt/asphere", - "npt/asphere/omp" - ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, + "arg": "displace/atom", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* npt/asphere = style name of this fix command\n* additional thermostat and barostat related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all npt/asphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 water npt/asphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_npt_asphere.html", - "short_description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat", - "description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat. P is pressure; T is\ntemperature. This creates a system trajectory consistent with the\nisothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the aspherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*, *iso*,\n*aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/asphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/asphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* displace/atom = style name of this compute command\n* zero or more keyword/arg pairs may be appended\n* keyword = refresh \n *        refresh arg = name of per-atom variable \n", + "examples": "\n```lmps\ncompute 1 all displace/atom\ncompute 1 all displace/atom refresh myVar\n```\n", + "html_filename": "compute_displace_atom.html", + "short_description": "Define a computation that calculates the current displacement of each\natom in the group from its original (reference) coordinates, including\nall effects due to atoms passing through periodic boundaries", + "description": "Define a computation that calculates the current displacement of each\natom in the group from its original (reference) coordinates, including\nall effects due to atoms passing through periodic boundaries.\n\nA vector of four quantities per atom is calculated by this compute.\nThe first three elements of the vector are the \\((dx,dy,dz)\\)\ndisplacements. The fourth component is the total displacement\n(i.e., \\(\\sqrt{dx^2 + dy^2 + dz^2}\\)).\n\nThe displacement of an atom is from its original position at the time\nthe compute command was issued. The value of the displacement will be\n0.0 for atoms not in the specified compute group.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Initial coordinates are stored in \"unwrapped\" form, by using the\n > image flags associated with each atom. See the [dump custom > ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates. See\n > the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You\n > can reset the image flags (e.g., to 0) before invoking this compute\n > by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with time = 0 atom coordinates from the restart file. \n > \n\n----------\n\nThe *refresh* option can be used in conjunction with the \"dump_modify\nrefresh\" command to generate incremental dump files.\n\nThe definition and motivation of an incremental dump file is as\nfollows. Instead of outputting all atoms at each snapshot (with some\nassociated values), you may only wish to output the subset of atoms\nwith a value that has changed in some way compared to the value the\nlast time that atom was output. In some scenarios this can result in\na dramatically smaller dump file. If desired, by post-processing the\nsequence of snapshots, the values for all atoms at all timesteps can\nbe inferred.\n\nA concrete example using this compute, is a simulation of atom\ndiffusion in a solid, represented as atoms on a lattice. Diffusive\nhops are rare. Imagine that when a hop occurs an atom moves more than\na distance *Dhop* . For any snapshot we only want to output atoms that\nhave hopped since the last snapshot. This can be accomplished with\nsomething like the following commands:\n\n```lmps\nwrite_dump all custom tmp.dump id type x y z # see comment below\n\nvariable Dhop equal 0.6\nvariable check atom \"c_dsp[4] > v_Dhop\"\ncompute dsp all displace/atom refresh check\ndump 1 all custom 100 tmp.dump id type x y z\ndump_modify 1 append yes thresh c_dsp[4] > ${Dhop} &\nrefresh c_dsp delay 100\n```\nThe [dump_modify thresh ](https://docs.lammps.org/dump_modify.html) command will only output\natoms that have displaced more than \\(0.6~\\mathring{\\textrm{A}}\\) on each\nsnapshot (assuming metal units). The dump_modify *refresh* option triggers a\ncall to this compute at the end of every dump.\n\nThe *refresh* argument for this compute is the ID of an\n[atom-style variable ](https://docs.lammps.org/variable.html) which calculates a Boolean value (0 or 1)\nbased on the same criterion used by dump_modify thresh. This compute\nevaluates the atom-style variable. For each atom that returns 1 (true),\nthe original (reference) coordinates of the atom (stored by\nthis compute) are updated.\n\nThe effect of these commands is that a particular atom will only be\noutput in the dump file on the snapshot after it makes a diffusive\nhop. It will not be output again until it makes another hop.\n\nNote that in the first snapshot of a subsequent run, no atoms will be\ntypically be output. That is because the initial displacement for all\natoms is 0.0. If an initial dump snapshot is desired, containing the\ninitial reference positions of all atoms, one way to do this is\nillustrated above. An initial write_dump command can be used before\nthe first run. It will contain the positions of all the atoms,\nOptions in the [dump_modify ](https://docs.lammps.org/dump_modify.html) command above will\nappend new output to that same file and delay the output until a later\ntimestep. The *delay* setting avoids a second time = 0 snapshot which\nwould be empty.\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with four columns, which can be\naccessed by indices 1--4 by any command that uses per-atom values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe per-atom array values will be in distance [units ](https://docs.lammps.org/units.html).\n\nThis compute supports the *refresh* option as explained above, for use\nin conjunction with [dump_modify refresh ](https://docs.lammps.org/dump_modify.html) to generate\nincremental dump files.\n", + "restrictions": " none\n", + "related": "[compute msd ](https://docs.lammps.org/compute_msd.html), [dump custom ](https://docs.lammps.org/dump.html), [fix store/state ](https://docs.lammps.org/fix_store_state.html)\n" }, { "command": [ - "fix wall/gran/region" + "fix nph/body" ], "syntax": [ - "fix ID group-ID wall/gran/region fstyle fstyle_params wallstyle regionID keyword values ..." + "fix ID group-ID nph/body args keyword value ..." ], "args": [ [ @@ -21043,103 +20502,89 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/gran/region", + "arg": "nph/body", "type": 1, "choices": [] }, { - "arg": "fstyle", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "fstyle_params", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "wallstyle", + "arg": "value", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/body = style name of this fix command\n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nph/body iso 0.0 0.0 1000.0\nfix 2 all nph/body x 5.0 5.0 1000.0\nfix 2 all nph/body x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/body aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_nph_body.html", + "short_description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover pressure\nbarostat", + "description": "Perform constant NPH integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover pressure\nbarostat. P is pressure; H is enthalpy. This creates a system\ntrajectory consistent with the isenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/body\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/body\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix nvt_body ](https://docs.lammps.org/fix_nvt_body.html), [fix npt_body ](https://docs.lammps.org/fix_npt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" +}, +{ + "command": [ + "fix_modify AtC filter" + ], + "syntax": [ + "fix_modify filter " + ], + "args": [ + [ + { + "arg": "fix_modify", + "type": 1, + "choices": [] }, { - "arg": "regionID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "temperature", - "type": 3, - "choices": [ - "contacts", - "temperature" - ] - }, - { - "arg": "values", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/region = style name of this fix command\n* fstyle = style of force interactions between particles and wall \n *        possible choices: hooke, hooke/history, hertz/history, granular \n* fstyle_params = parameters associated with force interaction style \n *        For *hooke*, *hooke/history*, and *hertz/history*, fstyle_params are: \n         Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) \n         Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) \n         gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) \n         gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) \n         xmu = static yield criterion (unitless value between 0.0 and 1.0e4) \n         dampflag = 0 or 1 if tangential damping force is excluded or included \n *        For *granular*, fstyle_params are set using the same syntax as for the pair_coeff command of [pair_style granular ](https://docs.lammps.org/pair_granular.html) \n* wallstyle = region (see [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) for options for other kinds of walls)\n* region-ID = region whose boundary will act as wall\n* keyword = contacts or temperature \n *       contacts value = none \n        generate contact information for each particle \n *       temperature value = temperature \n        specify temperature of wall \n", - "examples": "\n```lmps\nfix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone\nfix 3 all wall/gran/region granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox\nfix 4 all wall/gran/region granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone\nfix 5 all wall/gran/region granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji region myCone\nfix wall all wall/gran/region hooke/history 1000.0 200.0 200.0 100.0 0.5 1 region myCone contacts\n```\n", - "html_filename": "fix_wall_gran_region.html", - "short_description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding frictional wall which interacts with nearby finite-size\ngranular particles when they are close enough to touch the wall", - "description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding frictional wall which interacts with nearby finite-size\ngranular particles when they are close enough to touch the wall. See\nthe [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) and [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) commands for related kinds of walls for\nnon-granular particles and simpler wall geometries, respectively.\n\nHere are snapshots of example models using this command. Corresponding\ninput scripts can be found in examples/granregion. Movies of these\nsimulations are [here on the Movies page](https://www.lammps.org/movies.html#granregion)\nof the LAMMPS website.\n \n | | | \n |---|---| \n | ![Image](img/gran_funnel.png) | ![Image](img/gran_mixer.png) | \n\n\n----------\n\nThe distance between a particle and the region boundary is the\ndistance to the nearest point on the region surface. The force the\nwall exerts on the particle is along the direction between that point\nand the particle center, which is the direction normal to the surface\nat that point. Note that if the region surface is comprised of\nmultiple \"faces\", then each face can exert a force on the particle if\nit is close enough. E.g. for [region_style block ](https://docs.lammps.org/region.html), a\nparticle in the interior, near a corner of the block, could feel wall\nforces from 1, 2, or 3 faces of the block.\n\nRegions are defined using the [region ](https://docs.lammps.org/region.html) command. Note that\nthe region volume can be interior or exterior to the bounding surface,\nwhich will determine in which direction the surface interacts with\nparticles, i.e. the direction of the surface normal. The exception to\nthis is if one or more *open* options are specified for the region\ncommand, in which case particles interact with both the interior and\nexterior surfaces of regions.\n\nRegions can either be primitive shapes (block, sphere, cylinder, etc)\nor combinations of primitive shapes specified via the *union* or\n*intersect* region styles. These latter styles can be used to\nconstruct particle containers with complex shapes.\n\nRegions can also move dynamically via the [region ](https://docs.lammps.org/region.html) command\nkeywords (move) and *rotate*, or change their shape by use of variables\nas inputs to the [region ](https://docs.lammps.org/region.html) command. If such a region is used\nwith this fix, then the region surface will move in time in the\ncorresponding manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [region ](https://docs.lammps.org/region.html) command doc page,\n > regions in LAMMPS do not get wrapped across periodic boundaries. It\n > is up to you to ensure that the region location with respect to\n > periodic or non-periodic boundaries is specified appropriately via the\n > [region ](https://docs.lammps.org/region.html) and [boundary ](https://docs.lammps.org/boundary.html) commands when using\n > a region as a wall that bounds particle motion. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For primitive regions with sharp corners and/or edges (e.g. a\n > block or cylinder), wall/particle forces are computed accurately for\n > both interior and exterior regions. For *union* and *intersect*\n > regions, additional sharp corners and edges may be present due to the\n > intersection of the surfaces of 2 or more primitive volumes. These\n > corners and edges can be of two types: concave or convex. Concave\n > points/edges are like the corners of a cube as seen by particles in\n > the interior of a cube. Wall/particle forces around these features\n > are computed correctly. Convex points/edges are like the corners of a\n > cube as seen by particles exterior to the cube, i.e. the points jut\n > into the volume where particles are present. LAMMPS does NOT compute\n > the location of these convex points directly, and hence wall/particle\n > forces in the cutoff volume around these points suffer from\n > inaccuracies. The basic problem is that the outward normal of the\n > surface is not continuous at these points. This can cause particles\n > to feel no force (they don't \"see\" the wall) when in one location,\n > then move a distance epsilon, and suddenly feel a large force because\n > they now \"see\" the wall. In a worst-case scenario, this can blow\n > particles out of the simulation box. Thus, as a general rule you\n > should not use the fix wall/gran/region command with *union* or\n > *interesect* regions that have convex points or edges resulting from\n > the union/intersection (convex points/edges in the union/intersection\n > due to a single sub-region are still OK). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Similarly, you should not define *union* or *intersert* regions\n > for use with this command that share an overlapping common face that\n > is part of the overall outer boundary (interior boundary is OK), even\n > if the face is smooth. E.g. two regions of style block in a *union*\n > region, where the two blocks overlap on one or more of their faces.\n > This is because LAMMPS discards points that are part of multiple\n > sub-regions when calculating wall/particle interactions, to avoid\n > double-counting the interaction. Having two coincident faces could\n > cause the face to become invisible to the particles. The solution is\n > to make the two faces differ by epsilon in their position. \n > \n\nThe nature of the wall/particle interactions are determined by the\n*fstyle* setting. It can be any of the styles defined by the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) or the more general\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) commands. Currently the\noptions are *hooke*, *hooke/history*, or *hertz/history* for the\nformer, and *granular* with all the possible options of the associated\n*pair_coeff* command for the latter. The equation for the force\nbetween the wall and particles touching it is the same as the\ncorresponding equation on the [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) and\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) doc pages, but the effective\nradius is calculated using the radius of the particle and the radius of\ncurvature of the wall at the contact point.\n\nSpecifically, delta = radius - r = overlap of particle with wall,\nm_eff = mass of particle, and RiRj/Ri+Rj is the effective radius, with\nRj replaced by the radius of curvature of the wall at the contact\npoint. The radius of curvature can be negative for a concave wall\nsection, e.g. the interior of cylinder. For a flat wall, delta =\nradius - r = overlap of particle with wall, m_eff = mass of particle,\nand the effective radius of contact is just the radius of the\nparticle.\n\nThe parameters *Kn*, *Kt*, *gamma_n*, *gamma_t*, *xmu*, *dampflag*,\nand the optional keyword *limit_damping*\nhave the same meaning and units as those specified with the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) commands. This means a NULL can be\nused for either *Kt* or *gamma_t* as described on that page. If a\nNULL is used for *Kt*, then a default value is used where *Kt* = 2/7\n*Kn* . If a NULL is used for *gamma_t*, then a default value is used\nwhere *gamma_t* = 1/2 *gamma_n*.\n\nAll the model choices for cohesion, tangential friction, rolling\nfriction and twisting friction supported by the [pair_style granular ](https://docs.lammps.org/pair_granular.html) through its *pair_coeff* command are also\nsupported for walls. These are discussed in greater detail on the doc\npage for [pair_style granular ](https://docs.lammps.org/pair_granular.html).\n\nNote that you can choose a different force styles and/or different\nvalues for the 6 wall/particle coefficients than for particle/particle\ninteractions. E.g. if you wish to model the wall as a different\nmaterial.\n\nThe *temperature* keyword is used to assign a temperature to the wall.\nThe following value can either be a numeric value or an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to determine\nthe temperature. This option must be used in conjunction with a heat\nconduction model defined in [pair_style granular ](https://docs.lammps.org/pair_granular.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) to store temperature and a\nheat flow, and [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) to integrate heat\nflow.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nSimilar to [fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html) command, this fix writes\nthe shear friction state of atoms interacting with the wall to [binary restart files ](https://docs.lammps.org/restart.html), so that a simulation can continue\ncorrectly if granular potentials with shear \"history\" effects are\nbeing used. This fix also includes info about a moving region in the\nrestart file. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Information about region definitions is NOT included in restart\n > files, as discussed on the [read_restart ](https://docs.lammps.org/read_restart.html) doc page.\n > So you must re-define your region and if it is a moving region, define\n > its motion attributes in a way that is consistent with the simulation\n > that wrote the restart file. In particular, if you want to change the\n > region motion attributes (e.g. its velocity), then you should ensure\n > the position/orientation of the region at the initial restart timestep\n > is the same as it was on the timestep the restart file was written.\n > If this is not possible, you may need to ignore info in the restart\n > file by defining a new fix wall/gran/region command in your restart\n > script, e.g. with a different fix ID. Or if you want to keep the\n > shear history info but discard the region motion information, you can\n > use the same fix ID for fix wall/gran/region, but assign it a region\n > with a different region ID. \n > \n\nIf the :code:`contacts` option is used, this fix generates a per-atom array\nwith 8 columns as output, containing the contact information for owned\nparticles (nlocal on each processor). All columns in this per-atom array will\nbe zero if no contact has occurred. The values of these columns are listed in\nthe following table:\n\n| | | | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|---|---|\n| Index | Value | Units |\n+=======+====================================================+================+\n| 1 | 1.0 if particle is in contact with wall, | |\n| | 0.0 otherwise | |\n| 2 | Force \\(f_x\\) exerted by the wall | force units |\n| 3 | Force \\(f_y\\) exerted by the wall | force units |\n| 4 | Force \\(f_z\\) exerted by the wall | force units |\n| 5 | \\(x\\)-coordinate of contact point on wall | distance units |\n| 6 | \\(y\\)-coordinate of contact point on wall | distance units |\n| 7 | \\(z\\)-coordinate of contact point on wall | distance units |\n| 8 | Radius \\(r\\) of atom | distance units |\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo parameter of this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix_move ](https://docs.lammps.org/fix_move.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html),\n[fix wall/region ](https://docs.lammps.org/fix_wall_region.html),\n[pair_style granular ](https://docs.lammps.org/pair_gran.html),\n[region ](https://docs.lammps.org/region.html)\n" -}, -{ - "command": [ - "plugin" - ], - "syntax": [ - "plugin command args" - ], - "args": [ - [ - { - "arg": "plugin", + "arg": "filter", "type": 1, "choices": [] }, { - "arg": "clear", + "arg": "", "type": 3, "choices": [ - "load", - "unload", - "list", - "clear" + "on", + "off", + "equilibrate" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* command = load or unload or list or clear\n* args = list of arguments for a particular plugin command \n *      load file = load plugin(s) from shared object in file \n *      unload style name = unload plugin name of style style \n       style = pair or bond or angle or dihedral or improper or kspace or compute or fix or region or command \n *      list = print a list of currently loaded plugins \n *      clear = unload all currently loaded plugins \n", - "examples": "\n```lmps\nplugin load morse2plugin.so\nplugin unload pair morse2/omp\nplugin unload command hello\nplugin list\nplugin clear\n```\n", - "html_filename": "plugin.html", - "short_description": "The plugin command allows to load (and unload) additional styles and\ncommands into a LAMMPS binary from so-called dynamic shared object (DSO)\nfiles", - "description": "The plugin command allows to load (and unload) additional styles and\ncommands into a LAMMPS binary from so-called dynamic shared object (DSO)\nfiles. This enables to add new functionality to an existing LAMMPS\nbinary without having to recompile and link the entire executable.\n\nThe *load* command will load and initialize all plugins contained in the\nplugin DSO with the given filename. A message with information the\nplugin style and name and more will be printed. Individual DSO files\nmay contain multiple plugins. More details about how to write and\ncompile the plugin DSO is given in programmer's guide part of the manual\nunder :doc:`Developer_plugins`.\n\nThe *unload* command will remove the given style or the given name from\nthe list of available styles. If the plugin style is currently in use,\nthat style instance will be deleted.\n\nThe *list* command will print a list of the loaded plugins and their\nstyles and names.\n\nThe *clear* command will unload all currently loaded plugins.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Automatic loading of plugins \n >\n **New in version 4May2022** \n >\n > When the environment variable ``LAMMPS_PLUGIN_PATH`` is set, then\n > LAMMPS will search the directory (or directories) listed in this path\n > for files with names that end in ``plugin.so``\n > (e.g. ``helloplugin.so``) and will try to load the contained plugins\n > automatically at start-up. \n > \n\n", - "restrictions": "The *plugin* command is part of the PLUGIN package. It is\nonly enabled if LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nIf plugins access functions or classes from a package,\nLAMMPS must have been compiled with that package included.\n\nPlugins are dependent on the LAMMPS binary interface (ABI)\nand particularly the MPI library used. So they are not guaranteed\nto work when the plugin was compiled with a different MPI library\nor different compilation settings or a different LAMMPS version.\nThere are no checks, so if there is a mismatch the plugin object\nwill either not load or data corruption and crashes may happen.\n", - "related": "none\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter = name of the AtC sub-command\n* on or off or equilibrate = Select state of filter \n", + "examples": "\n```lmps\nfix_modify AtC filter on\n```\n", + "html_filename": "atc_time_filter.html", + "short_description": "Filters the MD dynamics to construct a more appropriate continuous\nfield", + "description": "Filters the MD dynamics to construct a more appropriate continuous\nfield. Equilibrating first filters the time derivatives without changing\nthe dynamics to provide a better initial condition to the filtered\ndynamics.\n", + "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n- [fix_modify AtC equilibrium_start ](https://docs.lammps.org/atc_equilibrium_start.html)\n" }, { "command": [ - "dump vtk" + "fix hyper/local" ], "syntax": [ - "dump ID group-ID vtk N file args" + "fix ID group-ID hyper/local cutbond qfactor Vmax Tequil Dcut alpha Btarget" ], "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -21154,230 +20599,135 @@ export const command_docs = [ "choices": [] }, { - "arg": "vtk", + "arg": "hyper/local", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "cutbond", "type": 2, "choices": [] }, { - "arg": "file", + "arg": "qfactor", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "Vmax", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be dumped\n* vtk = style of dump command (other styles such as atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write dump info to\n* args = same as arguments for [dump_style custom ](https://docs.lammps.org/dump.html) \n", - "examples": "\n```lmps\ndump dmpvtk all vtk 100 dump*.myforce.vtk id type vx fx\ndump dmpvtp flow vtk 100 dump*.%.displace.vtp id type c_myD[1] c_myD[2] c_myD[3] v_ke\n```\n", - "html_filename": "dump_vtk.html", - "short_description": "Dump a snapshot of atom quantities to one or more files every \\(N\\)\ntimesteps in a format readable by the [VTK visualization toolkit](https://docs.lammps.org/https://www.vtk.org>[_ or other visualization tools that use it, suchas `ParaView](https://www.paraview.org)", - "description": "Dump a snapshot of atom quantities to one or more files every \\(N\\)\ntimesteps in a format readable by the [VTK visualization toolkit](https://docs.lammps.org/https://www.vtk.org>[_ or other visualization tools that use it, suchas `ParaView](https://www.paraview.org). The time steps on which dumpoutput is written can also be controlled by a variable; see the[dump_modify every ](https://docs.lammps.org/dump_modify.html) command for details.This dump style is similar to [dump_style custom ](https://docs.lammps.org/dump.html) but usesthe VTK library to write data to VTK simple legacy or XML format,depending on the filename extension specified for the dump file. Thiscan be either *\\*.vtk* for the legacy format or *\\*.vtp* and *\\*.vtu*,respectively, for XML format; see the `VTK homepage ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Because periodic boundary conditions are enforced only\n > on timesteps when neighbor lists are rebuilt, the coordinates of an\n > atom written to a dump file may be slightly outside the simulation\n > box. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Unless the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) option is invoked,\n > the lines of atom information written to dump files will be in an\n > indeterminate order for each snapshot. This is even true when\n > running on a single processor, if the [atom_modify sort > ](https://docs.lammps.org/atom_modify.html) option is on, which it is by default. In this case\n > atoms are re-ordered periodically during a simulation, due to spatial\n > sorting. It is also true when running in parallel, because data for\n > a single snapshot is collected from multiple processors, each of\n > which owns a subset of the atoms. \n > \n\nFor the *vtk* style, sorting is off by default. See the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) page for details.\n\n----------\n\nThe dimensions of the simulation box are written to a separate file\nfor each snapshot (either in legacy VTK or XML format depending on the\nformat of the main dump file) with the suffix *_boundingBox* appended\nto the given dump filename.\n\nFor an orthogonal simulation box this information is saved as a\nrectilinear grid (legacy .vtk or .vtr XML format).\n\nTriclinic simulation boxes (non-orthogonal) are saved as\nhexahedrons in either legacy .vtk or .vtu XML format.\n\nStyle *vtk* allows you to specify a list of atom attributes to be\nwritten to the dump file for each atom. The list of possible attributes\nis the same as for the [dump_style custom ](https://docs.lammps.org/dump.html) command; see its\ndocumentation page for a listing and an explanation of each attribute.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since position data is required to write VTK files the atom\n > attributes \"x y z\" do not have to be specified explicitly; they will\n > be included in the dump file regardless. Also, in contrast to the\n > *custom* style, the specified *vtk* attributes are rearranged to\n > ensure correct ordering of vector components (except for computes and\n > fixes - these have to be given in the right order) and duplicate\n > entries are removed. \n > \n\nThe VTK format uses a single snapshot of the system per file, thus\na wildcard \"\\*\" must be included in the filename, as discussed below.\nOtherwise the dump files will get overwritten with the new snapshot\neach time.\n\n----------\n\nDumps are performed on timesteps that are a multiple of N (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of N. This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which\ncan also be useful if the dump command is invoked after a minimization\nended on an arbitrary timestep. N can be changed between runs by\nusing the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\nThe [dump_modify every ](https://docs.lammps.org/dump_modify.html) command\nalso allows a variable to be used to determine the sequence of\ntimesteps on which dump files are written. In this mode a dump on the\nfirst timestep of a run will also not be written unless the\n[dump_modify first ](https://docs.lammps.org/dump_modify.html) command is used.\n\nDump filenames can contain two wildcard characters. If a \"\\*\"\ncharacter appears in the filename, then one file per snapshot is\nwritten and the \"\\*\" character is replaced with the timestep value.\nFor example, tmp.dump\\*.vtk becomes tmp.dump0.vtk, tmp.dump10000.vtk,\ntmp.dump20000.vtk, etc. Note that the [dump_modify pad ](https://docs.lammps.org/dump_modify.html)\ncommand can be used to ensure all timestep numbers are the same length\n(e.g. 00010), which can make it easier to read a series of dump files\nin order with some post-processing tools.\n\nIf a \"%\" character appears in the filename, then each of P processors\nwrites a portion of the dump file, and the \"%\" character is replaced\nwith the processor ID from 0 to P-1 preceded by an underscore character.\nFor example, tmp.dump%.vtp becomes tmp.dump_0.vtp, tmp.dump_1.vtp, ...\ntmp.dump_P-1.vtp, etc. This creates smaller files and can be a fast\nmode of output on parallel machines that support parallel I/O for output.\n\nBy default, P = the number of processors meaning one file per\nprocessor, but P can be set to a smaller value via the *nfile* or\n*fileper* keywords of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command.\nThese options can be the most efficient way of writing out dump files\nwhen running on large numbers of processors.\n\nFor the legacy VTK format \"%\" is ignored and P = 1, i.e., only\nprocessor 0 does write files.\n\nNote that using the \"\\*\" and \"%\" characters together can produce a\nlarge number of small dump files!\n\nIf *dump_modify binary* is used, the dump file (or files, if \"\\*\" or\n\"%\" is also used) is written in binary format. A binary dump file\nwill be about the same size as a text version, but will typically\nwrite out much faster.\n\n----------\n", - "restrictions": "The *vtk* style does not support writing of gzipped dump files.\n\nThe *vtk* dump style is part of the VTK package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use this dump style, you also must link to the VTK library. See\nthe info in lib/vtk/README and ensure the Makefile.lammps file in that\ndirectory is appropriate for your machine.\n\nThe *vtk* dump style supports neither buffering or custom format\nstrings.\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" -}, -{ - "command": [ - "pair_style reaxff", - "pair_style reaxff/kk", - "pair_style reaxff/omp" - ], - "syntax": [ - "pair_style reaxff cfile keyword value" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "reaxff", - "type": 3, - "choices": [ - "reaxff", - "reaxff/kk", - "reaxff/omp" - ] + "arg": "Tequil", + "type": 2, + "choices": [] }, { - "arg": "cfile", + "arg": "Dcut", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "alpha", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "Btarget", "type": 2, "choices": [] } ] ], - "parameters": "* cfile = NULL or name of a control file\n* zero or more keyword/value pairs may be appended \n *      keyword = checkqeq or lgvdw or safezone or mincap or minhbonds or tabulate or list/blocking \n       checkqeq value = yes or no = whether or not to require qeq/reaxff or acks2/reaxff fix \n       enobonds value = yes or no = whether or not to tally energy of atoms with no bonds \n       lgvdw value = yes or no = whether or not to use a low gradient vdW correction \n       safezone = factor used for array allocation \n       mincap = minimum size for array allocation \n       minhbonds = minimum size use for storing hydrogen bonds \n       tabulate value = size of interpolation table for Lennard-Jones and Coulomb interactions \n       list/blocking value = yes or no = whether or not to use \"blocking\" scheme for bond list build \n", - "examples": "\n```lmps\npair_style reaxff NULL\npair_style reaxff controlfile checkqeq no\npair_style reaxff NULL lgvdw yes\npair_style reaxff NULL safezone 1.6 mincap 100\npair_coeff * * ffield.reax C H O N\n```\n", - "html_filename": "pair_reaxff.html", - "short_description": "Pair style *reaxff* computes the ReaxFF potential of van Duin, Goddard\nand co-workers", - "description": "Pair style *reaxff* computes the ReaxFF potential of van Duin, Goddard\nand co-workers. ReaxFF uses distance-dependent bond-order functions to\nrepresent the contributions of chemical bonding to the potential\nenergy. There is more than one version of ReaxFF. The version\nimplemented in LAMMPS uses the functional forms documented in the\nsupplemental information of the following paper:\n**Chenoweth_20082** and matches the\nversion of the reference ReaxFF implementation from Summer 2010. For\nmore technical details about the implementation of ReaxFF in pair style\n*reaxff*, see the **Aktulga** paper. The *reaxff* style\nwas initially implemented as a stand-alone C code and is now converted\nto C++ and integrated into LAMMPS as a package.\n\nThe *reaxff/kk* style is a Kokkos version of the ReaxFF potential that\nis derived from the *reaxff* style. The Kokkos version can run on GPUs\nand can also use OpenMP multithreading. For more information about the\nKokkos package, see [Packages details ](https://docs.lammps.org/Packages_details.html) and\n[Speed kokkos ](https://docs.lammps.org/Speed_kokkos.html) doc pages. One important\nconsideration when using the *reaxff/kk* style is the choice of either\nhalf or full neighbor lists. This setting can be changed using the\nKokkos [package ](https://docs.lammps.org/package.html) command.\n\nThe *reaxff* style differs from the (obsolete) \"pair_style reax\"\ncommand in the implementation details. The *reax* style was a\nFortran library, linked to LAMMPS. The *reax* style has been removed\nfrom LAMMPS after the 12 December 2018 version.\n\nLAMMPS provides several different versions of ffield.reax in its\npotentials dir, each called potentials/ffield.reax.label. These are\ndocumented in potentials/README.reax.\n\nThe format of these files is identical to that used originally by van\nDuin. We have tested the accuracy of *pair_style reaxff* potential\nagainst the original ReaxFF code for the systems mentioned above. You\ncan use other ffield files for specific chemical systems that may be\navailable elsewhere (but note that their accuracy may not have been\ntested).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >We do not distribute a wide variety of ReaxFF force field files\n > with LAMMPS. Adri van Duin's group at PSU is the central repository\n > for this kind of data as they are continuously deriving and updating\n > parameterizations for different classes of materials. You can submit\n > a contact request at the Materials Computation Center (MCC) website\n > [https://www.mri.psu.edu/materials-computation-center/connect-mcc](https://www.mri.psu.edu/materials-computation-center/connect-mcc),\n > describing the material(s) you are interested in modeling with ReaxFF.\n > They can tell you what is currently available or what it would take to\n > create a suitable ReaxFF parameterization. \n > \n\nThe *cfile* setting can be specified as NULL, in which case default\nsettings are used. A control file can be specified which defines values\nof control variables. Some control variables are global parameters for\nthe ReaxFF potential. Others define certain performance and output\nsettings. Each line in the control file specifies the value for a\ncontrol variable. The format of the control file is described below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The LAMMPS default values for the ReaxFF global parameters\n > correspond to those used by Adri van Duin's stand-alone serial\n > code. If these are changed by setting control variables in the\n > control file, the results from LAMMPS and the serial code will\n > not agree. \n > \n\nExamples using *pair_style reaxff* are provided in the examples/reax\ndirectory and its subdirectories.\n\nUse of this pair style requires using an [atom_style ](https://docs.lammps.org/atom_style.html)\nthat includes a per-atom charge property *or* using\n[fix property/atom q ](https://docs.lammps.org/fix_property_atom.html). Charges can be set\nvia [read_data ](https://docs.lammps.org/read_data.html) or [set ](https://docs.lammps.org/set.html). Using an initial\ncharge that is close to the result of charge equilibration will speed\nup that process.\n\nThe ReaxFF parameter files provided were created using a charge\nequilibration (QEq) model for handling the electrostatic interactions.\nTherefore, by default, LAMMPS requires that either the\n[fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) or the\n[fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html) or [fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html)\ncommand be used with\n*pair_style reaxff* when simulating a ReaxFF model, to equilibrate\nthe charges each timestep.\n\nUsing the keyword *checkqeq* with the value *no* turns off the check\nfor the QEq fixes, allowing a simulation to be run without charge\nequilibration. In this case, the static charges you assign to each\natom will be used for computing the electrostatic interactions in\nthe system. See the [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) or\n[fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html) or [fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html)\ncommand documentation for more details.\n\nUsing the optional keyword *lgvdw* with the value *yes* turns on the\nlow-gradient correction of ReaxFF for long-range London Dispersion,\nas described in the **Liu_2011** paper. The bundled force\nfield file *ffield.reax.lg* is designed for this correction, and is\ntrained for several energetic materials (see \"Liu\"). When using *lgvdw yes*,\nthe recommended value for parameter *thb* is 0.01, which can be set in the\ncontrol file. Note: Force field files are different for the original\nor lg corrected pair styles, using the wrong ffield file generates an\nerror.\n\nUsing the optional keyword *enobonds* with the value *yes*, the energy\nof atoms with no bonds (i.e. isolated atoms) is included in the total\npotential energy and the per-atom energy of that atom. If the value\n*no* is specified then the energy of atoms with no bonds is set to\nzero. The latter behavior is usual not desired, as it causes\ndiscontinuities in the potential energy when the bonding of an atom\ndrops to zero.\n\nOptional keywords *safezone*, *mincap*, and *minhbonds* are used\nfor allocating reaxff arrays. Increasing these values can avoid memory\nproblems, such as segmentation faults and bondchk failed errors, that\ncould occur under certain conditions. These keywords are not used by\nthe Kokkos version, which instead uses a more robust memory allocation\nscheme that checks if the sizes of the arrays have been exceeded and\nautomatically allocates more memory.\n\nThe keyword *tabulate* controls the size of interpolation table for\nLennard-Jones and Coulomb interactions. Tabulation may also be set in the\ncontrol file (see below). If tabulation is set in both the input script and the\ncontrol file, the value in the control file will be ignored. A size of 10000 is\ntypically used for the interpolation table. A value of 0 means no tabulation\nwill be used.\n\nThe keyword *list/blocking* is only supported by the Kokkos version of\nReaxFF and ignored otherwise. Setting the value to *yes* enables the\n\"blocking\" scheme (dynamically building interaction lists) for the\nReaxFF bond neighbor list. This reduces the number of empty\ninteractions and can improve performance in some cases (e.g. large\nnumber of atoms/GPU on AMD hardware). It is also enabled by default\nwhen running the CPU with Kokkos.\n\nThe thermo variable *evdwl* stores the sum of all the ReaxFF potential\nenergy contributions, with the exception of the Coulombic and charge\nequilibration contributions which are stored in the thermo variable\n*ecoul* . The output of these quantities is controlled by the\n[thermo ](https://docs.lammps.org/thermo.html) command.\n\nThis pair style tallies a breakdown of the total ReaxFF potential\nenergy into sub-categories, which can be accessed via the\n[compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 14.\nThe 14 values correspond to the following sub-categories (the variable\nnames in italics match those used in the original FORTRAN ReaxFF\ncode):\n\n1. *eb* = bond energy\n2. *ea* = atom energy\n3. *elp* = lone-pair energy\n4. *emol* = molecule energy (always 0.0)\n5. *ev* = valence angle energy\n6. *epen* = double-bond valence angle penalty\n7. *ecoa* = valence angle conjugation energy\n8. *ehb* = hydrogen bond energy\n9. *et* = torsion energy\n10. *eco* = conjugation energy\n11. *ew* = van der Waals energy\n12. *ep* = Coulomb energy\n13. *efi* = electric field energy (always 0.0)\n14. *eqeq* = charge equilibration energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute reax all pair reaxff\nvariable eb equal c_reax[1]\nvariable ea equal c_reax[2]\n[...]\nvariable eqeq equal c_reax[14]\nthermo_style custom step temp epair v_eb v_ea [...] v_eqeq\n```\nOnly a single pair_coeff command is used with the *reaxff* style which\nspecifies a ReaxFF potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N indices = ReaxFF elements\n\nThe filename is the ReaxFF potential file.\n\nIn the ReaxFF potential file, near the top, after the general\nparameters, is the atomic parameters section that contains element\nnames, each with a couple dozen numeric parameters. If there are M\nelements specified in the *ffield* file, think of these as numbered 1\nto M. Each of the N indices you specify for the N atom types of LAMMPS\natoms must be an integer from 1 to M. Atoms with LAMMPS type 1 will\nbe mapped to whatever element you specify as the first index value,\netc. If a mapping value is specified as NULL, the mapping is not\nperformed. This can be used when the *reaxff* style is used as part\nof the *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nAs an example, say your LAMMPS simulation has 4 atom types and the\nelements are ordered as C, H, O, N in the *ffield* file. If you want\nthe LAMMPS atom type 1 and 2 to be C, type 3 to be N, and type 4 to be\nH, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * ffield.reax C C N H\n```\n-------------\n\n #### Control file\n\nThe format of a line in the control file is as follows:\n\n```\nvariable_name value\n```\nand it may be followed by an \"!\" character and a trailing comment.\n\nIf the value of a control variable is not specified, then default\nvalues are used. What follows is the list of variables along with a\nbrief description of their use and default values.\n\n\n*simulation_name*\n Output files produced by *pair_style reaxff* carry\n this name + extensions specific to their contents. Partial energies\n are reported with a \".pot\" extension, while the trajectory file has\n \".trj\" extension.\n\n*tabulate_long_range*\n To improve performance, long range interactions can optionally be\n tabulated (0 means no tabulation). Value of this variable denotes the\n size of the long range interaction table. The range from 0 to long\n range cutoff (defined in the *ffield* file) is divided into\n *tabulate_long_range* points. Then at the start of simulation, we\n fill in the entries of the long range interaction table by computing\n the energies and forces resulting from van der Waals and Coulomb\n interactions between every possible atom type pairs present in the\n input system. During the simulation we consult to the long range\n interaction table to estimate the energy and forces between a pair of\n atoms. Linear interpolation is used for estimation. (default value = 0)\n\n*energy_update_freq*\n Denotes the frequency (in number of steps) of writes into the partial\n energies file. (default value = 0)\n\n*nbrhood_cutoff*\n Denotes the near neighbors cutoff (in Angstroms)\n regarding the bonded interactions. (default value = 5.0)\n\n*hbond_cutoff*\n Denotes the cutoff distance (in Angstroms) for hydrogen\n bond interactions.(default value = 7.5. A value of 0.0 turns off\n hydrogen bonds)\n\n*bond_graph_cutoff*\n is the threshold used in determining what is a\n physical bond, what is not. Bonds and angles reported in the\n trajectory file rely on this cutoff. (default value = 0.3)\n\n*thb_cutoff*\n cutoff value for the strength of bonds to be considered in\n three body interactions. (default value = 0.001)\n\n*thb_cutoff_sq*\n cutoff value for the strength of bond order products\n to be considered in three body interactions. (default value = 0.00001)\n\n*write_freq*\n Frequency of writes into the trajectory file. (default value = 0)\n\n*traj_title*\n Title of the trajectory - not the name of the trajectory file.\n\n*atom_info*\n 1 means print only atomic positions + charge (default = 0)\n\n*atom_forces*\n 1 adds net forces to atom lines in the trajectory file (default = 0)\n\n*atom_velocities*\n 1 adds atomic velocities to atoms line (default = 0)\n\n*bond_info*\n 1 prints bonds in the trajectory file (default = 0)\n\n*angle_info*\n 1 prints angles in the trajectory file (default = 0)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html),\nsince it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Chenoweth_20082)** Chenoweth, van Duin and Goddard,\nJournal of Physical Chemistry A, 112, 1040-1053 (2008). \n \n(Aktulga) Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,\n245-259 (2012). \n \n**(Liu_2011)** L. Liu, Y. Liu, S. V. Zybin, H. Sun and W. A. Goddard, Journal\nof Physical Chemistry A, 115, 11016-11022 (2011). \n ", - "restrictions": "This pair style is part of the REAXFF package. It is only enabled\nif LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe ReaxFF potential files provided with LAMMPS in the potentials\ndirectory are parameterized for *real* [units ](https://docs.lammps.org/units.html). You can use\nthe ReaxFF pair style with any LAMMPS units, but you would need to\ncreate your own potential file with coefficients listed in the\nappropriate units if your simulation does not use \"real\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html),\n[fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html), [fix reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html),\n[fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html),\n[compute reaxff/atom ](https://docs.lammps.org/compute_reaxff_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* hyper/local = style name of this fix command\n* cutbond = max distance at which a pair of atoms is considered bonded (distance units)\n* qfactor = max strain at which bias potential goes to 0.0 (unitless)\n* Vmax = estimated height of bias potential (energy units)\n* Tequil = equilibration temperature (temperature units)\n* Dcut = minimum distance between boosted bonds (distance units)\n* alpha = boostostat relaxation time (time units)\n* Btarget = desired time boost factor (unitless)\n* zero or more keyword/value pairs may be appended\n* keyword = bound or reset or check/ghost or check/bias \n *        bound value = Bfrac \n         Bfrac = -1 or a value >= 0.0 \n *        reset value = Rfreq \n         Rfreq = -1 or 0 or timestep value > 0 \n *        check/ghost values = none \n *        check/bias values = Nevery error/warn/ignore \n", + "examples": "\n```lmps\nfix 1 all hyper/local 1.0 0.3 0.8 300.0\nfix 1 all hyper/local 1.0 0.3 0.8 300.0 bound 0.1 reset 0\n```\n", + "html_filename": "fix_hyper_local.html", + "short_description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost local hyperdynamics (LHD) simulation", + "description": "This fix is meant to be used with the [hyper ](https://docs.lammps.org/hyper.html) command to\nperform a bond-boost local hyperdynamics (LHD) simulation. The role\nof this fix is to a select multiple pairs of atoms in the system at\neach timestep to add a local bias potential to, which will alter the\ndynamics of the system in a manner that effectively accelerates time.\nThis is in contrast to the [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\ncommand, which can be user to perform a global hyperdynamics (GHD)\nsimulation, by adding a global bias potential to a single pair of\natoms at each timestep. GHD can time accelerate a small simulation\nwith up to a few 100 atoms. For larger systems, LHD is needed to\nachieve good time acceleration.\n\nFor a system that undergoes rare transition events, where one or more\natoms move over an energy barrier to a new potential energy basin, the\neffect of the bias potential is to induce more rapid transitions.\nThis can lead to a dramatic speed-up in the rate at which events\noccurs, without altering their relative frequencies, thus leading to\nan overall increase in the elapsed real time of the simulation as\ncompared to running for the same number of timesteps with normal MD.\nSee the [hyper ](https://docs.lammps.org/hyper.html) page for a more general discussion of\nhyperdynamics and citations that explain both GHD and LHD.\n\nThe equations and logic used by this fix and described here to perform\nLHD follow the description given in **Voter2013lhd**. The\nbond-boost form of a bias potential for HD is due to Miron and\nFichthorn as described in **Mironlhd**.\n\nTo understand this description, you should first read the description\nof the GHD algorithm on the [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\ndoc page. This description of LHD builds on the GHD description.\n\nThe definition of bonds and \\(E_{ij}\\) are the same for GHD and LHD.\nThe formulas for \\(V^{max}_{ij}\\) and \\(F^{max}_{ij}\\) are also\nthe same except for a prefactor \\(C_{ij}\\), explained below.\n\nThe bias energy \\(V_{ij}\\) applied to a bond *ij* with maximum strain is\n\\[\n 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}\\]\nThe derivative of \\(V^{max}_{ij}\\) with respect to the position of\neach atom in the *ij* bond gives a bias force \\(F^{max}_{ij}\\) acting\non the bond as\n\\[\n 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}\\]\nwhich can be decomposed into an equal and opposite force acting on\nonly the two atoms *i* and *j* in the *ij* bond.\n\nThe key difference is that in GHD a bias energy and force is added (on\na particular timestep) to only one bond (pair of atoms) in the system,\nwhich is the bond with maximum strain \\(E^{max}\\).\n\nIn LHD, a bias energy and force can be added to multiple bonds\nseparated by the specified *Dcut* distance or more. A bond *ij* is\nbiased if it is the maximum strain bond within its local\n\"neighborhood\", which is defined as the bond *ij* plus any neighbor\nbonds within a distance *Dcut* from *ij*. The \"distance\" between bond\n*ij* and bond *kl* is the minimum distance between any of the *ik*, *il*,\n*jk*, and *jl* pairs of atoms.\n\nFor a large system, multiple bonds will typically meet this\nrequirement, and thus a bias potential \\(V^{max}_{ij}\\) will be\napplied to many bonds on the same timestep.\n\nIn LHD, all bonds store a \\(C_{ij}\\) prefactor which appears in\nthe \\(V^{max}_{ij}\\) and :math:`F^{max}_{ij}equations above. Note\nthat the \\(C_{ij}\\) factor scales the strength of the bias energy\nand forces whenever bond *ij* is the maximum strain bond in its neighborhood.\n\n\\(C_{ij}\\) is initialized to 1.0 when a bond between the *ij* atoms\nis first defined. The specified *Btarget* factor is then used to adjust the\n\\(C_{ij}\\) prefactors for each bond every timestep in the following manner.\n\nAn instantaneous boost factor \\(B_{ij}\\) is computed each timestep\nfor each bond, as\n\\[\n B_{ij} = e^{\\beta V^{max}_{kl}}\\]\nwhere \\(V^{max}_{kl}\\) is the bias energy of the maxstrain bond *kl*\nwithin bond *ij* 's neighborhood, \\(\\beta = \\frac{1}{kT_{equil}}\\),\nand \\(T_{equil}\\) is the temperature of the system and an argument\nto this fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To run an LHD simulation, the input script must also use the\n > [fix langevin ](https://docs.lammps.org/fix_langevin.html) command to thermostat the atoms at\n > the same *Tequil* as specified by this fix, so that the system is\n > running constant-temperature (NVT) dynamics. LAMMPS does not check\n > that this is done. \n > \n\nNote that if *ij* == *kl*, then bond *ij* is a biased bond on that\ntimestep, otherwise it is not. But regardless, the boost factor\n\\(B_{ij}\\) can be thought of an estimate of time boost currently\nbeing applied within a local region centered on bond *ij*. For LHD,\nwe want this to be the specified *Btarget* value everywhere in the\nsimulation domain.\n\nTo accomplish this, if \\(B_{ij} < B_{target}\\), the \\(C_{ij}\\)\nprefactor for bond *ij* is incremented on the current timestep by an\namount proportional to the inverse of the specified \\(\\alpha\\) and\nthe difference (\\(B_{ij} - B_{target}\\)). Conversely if\n\\(B_{ij} > B_{target}\\), \\(C_{ij}\\) is decremented by the same\namount. This procedure is termed \"boostostatting\" in **Voter2013lhd**. It drives all of the individual \\(C_{ij}\\) to\nvalues such that when \\(V^{max}_{ij}\\) is applied as a bias to bond\n*ij*, the resulting boost factor \\(B_{ij}\\) will be close to\n\\(B_{target}\\) on average. Thus the LHD time acceleration factor\nfor the overall system is effectively *Btarget* .\n\nNote that in LHD, the boost factor \\(B_{target}\\) is specified by the user.\nThis is in contrast to global hyperdynamics (GHD) where the boost\nfactor varies each timestep and is computed as a function of \\(V_{max}\\),\n\\(E_{max}\\), and \\(T_{equil}\\); see the\n[fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html) page for details.\n\n----------\n\nHere is additional information on the input parameters for LHD.\n\nNote that the *cutbond*, *qfactor*, and *Tequil* arguments have the\nsame meaning as for GHD. The *Vmax* argument is slightly different.\nThe *Dcut*, *alpha*, and *Btarget* parameters are unique to LHD.\n\nThe *cutbond* argument is the cutoff distance for defining bonds\nbetween pairs of nearby atoms. A pair of I,J atoms in their\nequilibrium, minimum-energy configuration, which are separated by a\ndistance \\(R_{ij} < cutbond\\), are flagged as a bonded pair. Setting\n*cubond* to be ~25% larger than the nearest-neighbor distance in a\ncrystalline lattice is a typical choice for solids, so that bonds\nexist only between nearest neighbor pairs.\n\nThe *qfactor* argument is the limiting strain at which the bias\npotential goes to 0.0. It is dimensionless, so a value of 0.3 means a\nbond distance can be up to 30% larger or 30% smaller than the\nequilibrium (quenched) \\(R^0_{ij}\\) distance and the two atoms in the bond\ncould still experience a non-zero bias force.\n\nIf *qfactor* is set too large, then transitions from one energy basin\nto another are affected because the bias potential is non-zero at the\ntransition state (e.g. saddle point). If *qfactor* is set too small\nthan little boost can be achieved because the \\(E_{ij}\\) strain of\nsome bond in\nthe system will (nearly) always exceed *qfactor* . A value of 0.3 for\n*qfactor* is typically a reasonable value.\n\nThe *Vmax* argument is a fixed prefactor on the bias potential. There\nis a also a dynamic prefactor \\(C_{ij}\\), driven by the choice of\n*Btarget* as discussed above. The product of these should be a value less than\nthe smallest barrier height for an event to occur. Otherwise the\napplied bias potential may be large enough (when added to the\ninteratomic potential) to produce a local energy basin with a maxima\nin the center. This can produce artificial energy minima in the same\nbasin that trap an atom. Or if \\(C_{ij} \\cdot V^{max}\\) is even\nlarger, it may\ninduce an atom(s) to rapidly transition to another energy basin. Both\ncases are \"bad dynamics\" which violate the assumptions of LHD that\nguarantee an accelerated time-accurate trajectory of the system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It may seem that \\(V^{max}\\) can be set to any value, and\n > \\(C_{ij}\\) will compensate to reduce the overall prefactor\n > if necessary. However the \\(C_{ij}\\) are initialized to 1.0\n > and the boostostatting procedure typically operates slowly enough\n > that there can be a time period of bad dynamics if \\(V^{max}\\)\n > is set too large. A better strategy is to set \\(V^{max}\\) to the\n > slightly smaller than the lowest barrier height for an event (the same\n > as for GHD), so that the \\(C_{ij}\\) remain near unity. \n > \n\nThe *Tequil* argument is the temperature at which the system is\nsimulated; see the comment above about the [fix langevin ](https://docs.lammps.org/fix_langevin.html) thermostatting. It is also part of the\nbeta term in the exponential factor that determines how much boost is\nachieved as a function of the bias potential. See the discussion of\nthe *Btarget* argument below.\n\nAs discussed above, the *Dcut* argument is the distance required\nbetween two locally maxstrain bonds for them to both be selected as\nbiased bonds on the same timestep. Computationally, the larger *Dcut*\nis, the more work (computation and communication) must be done each\ntimestep within the LHD algorithm. And the fewer bonds can be\nsimultaneously biased, which may mean the specified *Btarget* time\nacceleration cannot be achieved.\n\nPhysically *Dcut* should be a long enough distance that biasing two\npairs of atoms that close together will not influence the dynamics of\neach pair. E.g. something like 2x the cutoff of the interatomic\npotential. In practice a *Dcut* value of ~10 Angstroms seems to work\nwell for many solid-state systems.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should ensure that ghost atom communication is performed for\n > a distance of at least *Dcut* + *cutevent* = the distance one or more\n > atoms move (between quenched states) to be considered an \"event\". It\n > is an argument to the \"compute event/displace\" command used to detect\n > events. By default the ghost communication distance is set by the\n > pair_style cutoff, which will typically be < *Dcut* . The [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command should be used to override the ghost\n > cutoff explicitly, e.g. \n > \n\n\n```lmps\ncomm_modify cutoff 12.0\n```\nNote that this fix does not know the *cutevent* parameter, but uses\nhalf the *cutbond* parameter as an estimate to warn if the ghost\ncutoff is not long enough.\n\nAs described above the *alpha* argument is a prefactor in the\nboostostat update equation for each bond's \\(C_{ij}\\) prefactor.\n*Alpha* is specified in time units, similar to other thermostat or barostat\ndamping parameters. It is roughly the physical time it will take the\nboostostat to adjust a \\(C_{ij}\\) value from a too high (or too low)\nvalue to a correct one. An *alpha* setting of a few ps is typically good for\nsolid-state systems. Note that the *alpha* argument here is the\ninverse of the alpha parameter discussed in\n**Voter2013lhd**.\n\nThe *Btarget* argument is the desired time boost factor (a value > 1)\nthat all the atoms in the system will experience. The elapsed time\nt_hyper for an LHD simulation running for *N* timesteps is simply\n\\[\n t_{hyper} = B_{target} \\cdot N \\cdot dt\\]\nwhere *dt* is the timestep size defined by the [timestep ](https://docs.lammps.org/timestep.html)\ncommand. The effective time acceleration due to LHD is thus\n\\(\\frac{t_{hyper}}{N\\cdot dt} = B_{target}\\), where \\(N\\cdot dt\\)\nis the elapsed time for a normal MD run of N timesteps.\n\nYou cannot choose an arbitrarily large setting for *Btarget* . The\nmaximum value you should choose is\n\\[\n B_{target} = e^{\\beta V_{small}}\\]\nwhere \\(V_{small}\\) is the smallest event barrier height in your\nsystem, \\(\\beta = \\frac{1}{kT_{equil}}\\), and \\(T_{equil}\\)\nis the specified temperature of the system\n(both by this fix and the Langevin thermostat).\n\nNote that if *Btarget* is set smaller than this, the LHD simulation\nwill run correctly. There will just be fewer events because the hyper\ntime (t_hyper equation above) will be shorter.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have no physical intuition as to the smallest barrier\n > height in your system, a reasonable strategy to determine the largest\n > *Btarget* you can use for an LHD model, is to run a sequence of\n > simulations with smaller and smaller *Btarget* values, until the event\n > rate does not change (as a function of hyper time). \n > \n\n----------\n\nHere is additional information on the optional keywords for this fix.\n\nThe *bound* keyword turns on min/max bounds for bias coefficients\n\\(C_{ij}\\) for all bonds. \\(C_{ij}\\) is a prefactor for each bond on\nthe bias potential of maximum strength \\(V^{max}\\). Depending on the\nchoice of *alpha* and *Btarget* and *Vmax*, the boostostatting can cause\nindividual \\(C_{ij}\\) values to fluctuate. If the fluctuations are too\nlarge \\(C_{ij} \\cdot V^{max}\\) can exceed low barrier heights and induce\nbad event dynamics. Bounding the \\(C_{ij}\\) values is a way to prevent\nthis. If *Bfrac* is set to -1 or any negative value (the default) then no\nbounds are enforced on \\(C_{ij}\\) values (except they must always\nbe >= 0.0). A *Bfrac* setting >= 0.0\nsets a lower bound of 1.0 - Bfrac and upper bound of 1.0 + Bfrac on each\n\\(C_{ij}\\) value. Note that all \\(C_{ij}\\) values are initialized\nto 1.0 when a bond is created for the first time. Thus *Bfrac* limits the\nbias potential height to *Vmax* +/- *Bfrac* \\*\\ *Vmax* .\n\nThe *reset* keyword allow *Vmax* to be adjusted dynamically depending on the\naverage value of all \\(C_{ij}\\) prefactors. This can be useful if you\nare unsure what value of *Vmax* will match the *Btarget* boost for the\nsystem. The \\(C_{ij}\\) values will then adjust in aggregate (up or down)\nso that \\(C_{ij} \\cdot V^{max}\\) produces a boost of *Btarget*, but this\nmay conflict with the *bound* keyword settings. By using *bound* and *reset*\ntogether, \\(V^{max}\\) itself can be reset, and desired bounds still applied\nto the \\(C_{ij}\\) values.\n\nA setting for *Rfreq* of -1 (the default) means *Vmax* never changes.\nA setting of 0 means \\(V^{max}\\) is adjusted every time an event occurs and\nbond pairs are recalculated. A setting of N > 0 timesteps means\n\\(V^{max}\\) is adjusted on the first time an event occurs on a timestep >=\nN steps after the previous adjustment. The adjustment to \\(V^{max}\\) is\ncomputed as follows. The current average of all \\(C_{ij} \\cdot V^{max}\\)\nvalues is computed and the \\(V^{max}\\) is reset to that value. All\n\\(C_{ij}\\) values are changed to new prefactors such the new\n\\(C_{ij} \\cdot V^{max}\\) is the same as it was previously. If the\n*bound* keyword was used, those bounds are enforced on the new \\(C_{ij}\\)\nvalues. Henceforth, new bonds are assigned a \\(C_{ij} = 1.0\\), which\nmeans their bias potential magnitude is the new \\(V^{max}\\).\n\nThe *check/ghost* keyword turns on extra computation each timestep to\ncompute statistics about ghost atoms used to determine which bonds to\nbias. The output of these stats are the vector values 14 and 15,\ndescribed below. If this keyword is not enabled, the output\nof the stats will be zero.\n\nThe *check/bias* keyword turns on extra computation and communication\nto check if any biased bonds are closer than *Dcut* to each other,\nwhich should not be the case if LHD is operating correctly. Thus it\nis a debugging check. The *Nevery* setting determines how often the\ncheck is made. The *error*, *warn*, or *ignore* setting determines\nwhat is done if the count of too-close bonds is not zero. Either the\ncode will exit, or issue a warning, or silently tally the count. The\ncount can be output as vector value 17, as described below. If this\nkeyword is not enabled, the output of that statistic will be 0.\n\nNote that both of these computations are costly, hence they are only\nenabled by these keywords.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of the bias potential to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and global vector of length 28,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the magnitude of the bias potential\n(energy units) applied on the current timestep, summed over all biased\nbonds. The vector stores the following quantities:\n\n* 1 = average boost for all bonds on this step (unitless)\n* 2 = # of biased bonds on this step\n* 3 = max strain \\(E_{ij}\\) of any bond on this step (absolute value, unitless)\n* 4 = value of \\(V^{max}\\) on this step (energy units)\n* 5 = average bias coeff for all bonds on this step (unitless)\n* 6 = min bias coeff for all bonds on this step (unitless)\n* 7 = max bias coeff for all bonds on this step (unitless)\n* 8 = average # of bonds/atom on this step\n* 9 = average neighbor bonds/bond on this step within *Dcut*\n\n* 10 = average boost for all bonds during this run (unitless)\n* 11 = average # of biased bonds/step during this run\n* 12 = fraction of biased bonds with no bias during this run\n* 13 = fraction of biased bonds with negative strain during this run\n* 14 = max bond length during this run (distance units)\n* 15 = average bias coeff for all bonds during this run (unitless)\n* 16 = min bias coeff for any bond during this run (unitless)\n* 17 = max bias coeff for any bond during this run (unitless)\n\n* 18 = max drift distance of any bond atom during this run (distance units)\n* 19 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)\n* 20 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)\n* 21 = count of ghost atoms that could not be found on reneighbor steps during this run\n* 22 = count of bias overlaps (< Dcut) found during this run\n\n* 23 = cumulative hyper time since fix created (time units)\n* 24 = cumulative count of event timesteps since fix created\n* 25 = cumulative count of atoms in events since fix created\n* 26 = cumulative # of new bonds formed since fix created\n\n27 = average boost for biased bonds on this step (unitless)\n28 = # of bonds with absolute strain >= q on this step\n\nThe first quantities 1-9 are for the current timestep. Quantities\n10-22 are for the current hyper run. They are reset each time a new\nhyper run is performed. Quantities 23-26 are cumulative across\nmultiple runs (since the point in the input script the fix was\ndefined).\n\nFor value 10, each bond instantaneous boost factor is given by the\nequation for \\(B_{ij}\\) above. The total system boost (average across all\nbonds) fluctuates, but should average to a value close to the\nspecified \\(B_{target}\\).\n\nFor value 12, the numerator is a count of all biased bonds on each\ntimestep whose bias energy = 0.0 due to \\(E_{ij} >= qfactor\\). The\ndenominator is the count of all biased bonds on all timesteps.\n\nFor value 13, the numerator is a count of all biased bonds on each\ntimestep with negative strain. The denominator is the count of all\nbiased bonds on all timesteps.\n\nValues 18-22 are mostly useful for debugging and diagnostic purposes.\n\nFor value 18, drift is the distance an atom moves between two quenched\nstates when the second quench determines an event has occurred. Atoms\ninvolved in an event will typically move the greatest distance since\nothers typically remain near their original quenched position.\n\nFor values 19-21, neighbor atoms in the full neighbor list with cutoff\n*Dcut* may be ghost atoms outside a processor's sub-box. Before the\nnext event occurs they may move further than *Dcut* away from the\nsub-box boundary. Value 19 is the furthest (from the sub-box) any\nghost atom in the neighbor list with maxstrain < *qfactor* was\naccessed during the run. Value 20 is the same except that the ghost\natom's maxstrain may be >= *qfactor*, which may mean it is about to\nparticipate in an event. Value 21 is a count of how many ghost atoms\ncould not be found on reneighbor steps, presumably because they moved\ntoo far away due to their participation in an event (which will likely\nbe detected at the next quench).\n\nTypical values for 19 and 20 should be slightly larger than *Dcut*,\nwhich accounts for ghost atoms initially at a *Dcut* distance moving\nthermally before the next event takes place.\n\nNote that for values 19 and 20 to be computed, the optional keyword\n*check/ghost* must be specified. Otherwise these values will be zero.\nThis is because computing them incurs overhead, so the values are only\ncomputed if requested.\n\nValue 21 should be zero or small. As explained above a small count\nlikely means some ghost atoms were participating in their own events\nand moved a longer distance. If the value is large, it likely means\nthe communication cutoff for ghosts is too close to *Dcut* leading to\nmany not-found ghost atoms before the next event. This may lead to a\nreduced number of bonds being selected for biasing, since the code\nassumes those atoms are part of highly strained bonds. As explained\nabove, the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command can be used\nto set a longer cutoff.\n\nFor value 22, no two bonds should be biased if they are within a\n*Dcut* distance of each other. This value should be zero, indicating\nthat no pair of biased bonds are closer than *Dcut* from each other.\n\nNote that for value 22 to be computed, the optional keyword\n*check/bias* must be specified and it determines how often this check\nis performed. This is because performing the check incurs overhead,\nso if only computed as often as requested.\n\nThe result at the end of the run is the cumulative total from every\ntimestep the check was made. Note that the value is a count of atoms\nin bonds which found other atoms in bonds too close, so it is almost\nalways an over-count of the number of too-close bonds.\n\nValue 23 is simply the specified *boost* factor times the number of\ntimesteps times the timestep size.\n\nFor value 24, events are checked for by the [hyper ](https://docs.lammps.org/hyper.html) command\nonce every *Nevent* timesteps. This value is the count of those\ntimesteps on which one (or more) events was detected. It is NOT the\nnumber of distinct events, since more than one event may occur in the\nsame *Nevent* time window.\n\nFor value 25, each time the [hyper ](https://docs.lammps.org/hyper.html) command checks for an\nevent, it invokes a compute to flag zero or more atoms as\nparticipating in one or more events. E.g. atoms that have displaced\nmore than some distance from the previous quench state. Value 25 is\nthe cumulative count of the number of atoms participating in any of\nthe events that were found.\n\nValue 26 tallies the number of new bonds created by the bond reset\noperation. Bonds between a specific I,J pair of atoms may persist for\nthe entire hyperdynamics simulation if neither I or J are involved in\nan event.\n\nValue 27 computes the average boost for biased bonds only on this step.\n\nValue 28 is the count of bonds with an absolute value of strain >= q\non this step.\n\nThe scalar value and vector values are all \"intensive\".\n\nThis fix also computes a local vector of length the number of bonds\ncurrently in the system. The value for each bond is its \\(C_{ij}\\)\nprefactor (bias coefficient). These values can be can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). A particularly useful one is the\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command which can be used to\nhistogram the Cij values to see if they are distributed reasonably\nclose to 1.0, which indicates a good choice of \\(V^{max}\\).\n\nThe local values calculated by this fix are unitless.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Voter2013lhd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n \n**(Mironlhd)** R. A. Miron and K. A. Fichthorn, J Chem Phys, 119, 6210 (2003). \n \n**(Voter2013lhd)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,\n144110 (2013). \n ", + "restrictions": "This fix is part of the REPLICA package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[hyper ](https://docs.lammps.org/hyper.html), [fix hyper/global ](https://docs.lammps.org/fix_hyper_global.html)\n" }, { "command": [ - "pair_style kolmogorov/crespi/full" + "partition" ], "syntax": [ - "pair_style hybrid/overlay kolmogorov/crespi/full cutoff tap_flag" + "partition style N command ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "partition", "type": 1, "choices": [] }, { - "arg": "hybrid/overlay", - "type": 2, - "choices": [] - }, - { - "arg": "kolmogorov/crespi/full", - "type": 1, - "choices": [] + "arg": "no", + "type": 3, + "choices": [ + "yes", + "no" + ] }, { - "arg": "cutoff", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "tap_flag", + "arg": "command", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style hybrid/overlay kolmogorov/crespi/full 20.0 0\npair_coeff * * none\npair_coeff * * kolmogorov/crespi/full CH.KC C C\n\npair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1\npair_coeff * * rebo CH.rebo C H\npair_coeff * * kolmogorov/crespi/full CH_taper.KC C H\n```\n", - "html_filename": "pair_kolmogorov_crespi_full.html", - "short_description": "The *kolmogorov/crespi/full* style computes the Kolmogorov-Crespi (KC)\ninteraction potential as described in **Kolmogorov1**", - "description": "The *kolmogorov/crespi/full* style computes the Kolmogorov-Crespi (KC)\ninteraction potential as described in **Kolmogorov1**.\nNo simplification is made,\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & e^{-\\lambda (r_{ij} -z_0)} \\left [ C + f(\\rho_{ij}) + f(\\rho_{ji}) \\right ] - A \\left ( \\frac{r_{ij}}{z_0}\\right )^{-6} \\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij}\\cdot {\\bf n}_{i})^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij}\\cdot {\\bf n}_{j})^2 \\\\\n f(\\rho) & = e^{-(\\rho/\\delta)^2} \\sum_{n=0}^2 C_{2n} { (\\rho/\\delta) }^{2n} \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth\nforces and to include all the pairs to build the neighbor list for\ncalculating the normals. Energies are shifted so that they go\ncontinuously to zero at the cutoff assuming that the exponential part of\n\\(V_{ij}\\) (first term) decays sufficiently fast. This shift is achieved by\nthe last term in the equation for \\(V_{ij}\\) above. This is essential only\nwhen the tapper function is turned off. The formula of taper function\ncan be found in pair style [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential (ILP) is intended for interlayer interactions between two\n > different layers of graphene. To perform a realistic simulation, this potential\n > must be used in combination with intralayer potential, such as\n > [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html) potential.\n > To keep the intralayer properties unaffected, the interlayer interaction\n > within the same layers should be avoided. Hence, each atom has to have a layer\n > identifier such that atoms residing on the same layer interact via the\n > appropriate intralayer potential and atoms residing on different layers\n > interact via the ILP. Here, the molecule id is chosen as the layer identifier,\n > thus a data file with the \"full\" atom style is required to use this potential. \n > \n\nThe parameter file (e.g. CH.KC), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters, *S*,\nand *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Two new sets of parameters of KC potential for hydrocarbons, CH.KC\n > (without the taper function) and CH_taper.KC (with the taper function)\n > are presented in **Ouyang3**. The energy for the KC potential\n > with the taper function goes continuously to zero at the cutoff. The\n > parameters in both CH.KC and CH_taper.KC provide a good description in\n > both short- and long-range interaction regimes. While the original\n > parameters (CC.KC) published in **Kolmogorov1** are only\n > suitable for long-range interaction regime. This feature is essential\n > for simulations in high pressure regime (i.e., the interlayer distance\n > is smaller than the equilibrium distance). The benchmark tests and\n > comparison of these parameters can be found in **Ouyang3** and **Ouyang4**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair kolmogorov/crespi/full\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table,\nand tail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Kolmogorov1)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(Ouyang3)** W. Ouyang, D. Mandelli, M. Urbakh and O. Hod, Nano Lett. 18, 6009-6016 (2018). \n \n**(Ouyang4)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe CH.KC potential file provided with LAMMPS (see the potentials\nfolder) is parameterized for metal units. You can use this pair style\nwith any LAMMPS units, but you would need to create your own custom\nCH.KC potential file with all coefficients converted to the appropriate\nunits.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n" + "parameters": "* style = yes or no\n* N = partition number (see asterisk form below)\n* command = any LAMMPS command \n", + "examples": "\n```lmps\npartition yes 1 processors 4 10 6\npartition no 5 print \"Active partition\"\npartition yes *5 fix all nve\npartition yes 6* fix all nvt temp 1.0 1.0 0.1\n```\n", + "html_filename": "partition.html", + "short_description": "This command invokes the specified command on a subset of the\npartitions of processors you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html)", + "description": "This command invokes the specified command on a subset of the\npartitions of processors you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\nNormally, every input script command in your script is invoked by\nevery partition. This behavior can be modified by defining world- or\nuniverse-style [variables ](https://docs.lammps.org/variable.html) that have different values\nfor each partition. This mechanism can be used to cause your script\nto jump to different input script files on different partitions, if\nsuch a variable is used in a [jump ](https://docs.lammps.org/jump.html) command.\n\nThe \"partition\" command is another mechanism for having as input\nscript operate differently on different partitions. It is basically a\nprefix on any LAMMPS command. The command will only be invoked on\nthe partition(s) specified by the *style* and *N* arguments.\n\nIf the *style* is *yes*, the command will be invoked on any partition\nwhich matches the *N* argument. If the *style* is *no* the command\nwill be invoked on all the partitions which do not match the Np\nargument.\n\nPartitions are numbered from 1 to Np, where Np is the number of\npartitions specified by the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\n*N* can be specified in one of two ways. An explicit numeric value\ncan be used, as in the first example above. Or a wild-card asterisk can\nbe used to span a range of partition numbers. This takes the form \"\\*\"\nor \"\\*n\" or \"n\\*\" or \"m\\*n\". An asterisk with no numeric values means\nall partitions from 1 to Np. A leading asterisk means all partitions\nfrom 1 to n (inclusive). A trailing asterisk means all partitions\nfrom n to Np (inclusive). A middle asterisk means all partitions from\nm to n (inclusive).\n\nThis command can be useful for the \"run_style verlet/split\" command\nwhich imposed requirements on how the [processors ](https://docs.lammps.org/processors.html)\ncommand lays out a 3d grid of processors in each of 2 partitions.\n", + "restrictions": " none\n", + "related": "[run_style verlet/split ](https://docs.lammps.org/run_style.html)\n" }, { "command": [ - "pair_style lj/charmm/coul/charmm", - "pair_style lj/charmm/coul/charmm/gpu", - "pair_style lj/charmm/coul/charmm/intel", - "pair_style lj/charmm/coul/charmm/kk", - "pair_style lj/charmm/coul/charmm/omp", - "pair_style lj/charmm/coul/charmm/implicit", - "pair_style lj/charmm/coul/charmm/implicit/kk", - "pair_style lj/charmm/coul/charmm/implicit/omp", - "pair_style lj/charmm/coul/long", - "pair_style lj/charmm/coul/long/gpu", - "pair_style lj/charmm/coul/long/intel", - "pair_style lj/charmm/coul/long/kk", - "pair_style lj/charmm/coul/long/opt", - "pair_style lj/charmm/coul/long/omp", - "pair_style lj/charmm/coul/msm", - "pair_style lj/charmm/coul/msm/omp", - "pair_style lj/charmmfsw/coul/charmmfsh", - "pair_style lj/charmmfsw/coul/long", - "pair_style lj/charmmfsw/coul/long/kk" + "read_data" ], "syntax": [ - "pair_style style args" + "read_data file keyword args ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "read_data", "type": 1, "choices": [] }, { - "arg": "lj/charmmfsw/coul/long/kk", - "type": 3, - "choices": [ - "lj/charmm/coul/charmm", - "lj/charmm/coul/charmm/implicit", - "lj/charmm/coul/long", - "lj/charmm/coul/msm", - "lj/charmmfsw/coul/charmmfsh", - "lj/charmmfsw/coul/long", - "lj/charmm/coul/charmm/gpu", - "lj/charmm/coul/charmm/intel", - "lj/charmm/coul/charmm/kk", - "lj/charmm/coul/charmm/omp", - "lj/charmm/coul/charmm/implicit/kk", - "lj/charmm/coul/charmm/implicit/omp", - "lj/charmm/coul/long/gpu", - "lj/charmm/coul/long/intel", - "lj/charmm/coul/long/kk", - "lj/charmm/coul/long/opt", - "lj/charmm/coul/long/omp", - "lj/charmm/coul/msm/omp", - "lj/charmmfsw/coul/long/kk" - ] - }, - { - "arg": "args", + "arg": "file", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style = lj/charmm/coul/charmm or lj/charmm/coul/charmm/implicit or lj/charmm/coul/long or lj/charmm/coul/msm or lj/charmmfsw/coul/charmmfsh or lj/charmmfsw/coul/long\n* args = list of arguments for a particular style \n *      lj/charmm/coul/charmm args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n *      lj/charmm/coul/charmm/implicit args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n *      lj/charmm/coul/long args = inner outer (cutoff) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmm/coul/msm args = inner outer (cutoff) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmmfsw/coul/charmmfsh args = inner outer (cutoff) \n       inner, outer = global cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmmfsw/coul/long args = inner outer (cutoff) \n       inner, outer = global cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n", - "examples": "\n```lmps\npair_style lj/charmm/coul/charmm 8.0 10.0\npair_style lj/charmm/coul/charmm 8.0 10.0 7.0 9.0\npair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0\npair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/charmm/implicit 8.0 10.0\npair_style lj/charmm/coul/charmm/implicit 8.0 10.0 7.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/long 8.0 10.0\npair_style lj/charmm/coul/long 8.0 10.0 9.0\npair_style lj/charmmfsw/coul/long 8.0 10.0\npair_style lj/charmmfsw/coul/long 8.0 10.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/msm 8.0 10.0\npair_style lj/charmm/coul/msm 8.0 10.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n```\n", - "html_filename": "pair_charmm.html", - "short_description": "These pair styles compute Lennard Jones (LJ) and Coulombic\ninteractions with additional switching or shifting functions that ramp\nthe energy and/or force smoothly to zero between an inner and outer\ncutoff", - "description": "These pair styles compute Lennard Jones (LJ) and Coulombic\ninteractions with additional switching or shifting functions that ramp\nthe energy and/or force smoothly to zero between an inner and outer\ncutoff. They implement the widely used CHARMM force field, see\n[Howto discussion on biomolecular force fields ](https://docs.lammps.org/Howto_bioFF.html) for\ndetails.\n\nThe styles with *charmm* (not *charmmfsw* or *charmmfsh* ) in their\nname are the older, original LAMMPS implementations. They compute the\nLJ and Coulombic interactions with an energy switching function which\nramps the energy smoothly to zero between the inner and outer cutoff.\nThis can cause irregularities in pairwise forces (due to the discontinuous\nsecond derivative of energy at the boundaries of the switching region),\nwhich in some cases can result in detectable artifacts in an MD simulation.\n\nThe newer styles with *charmmfsw* or *charmmfsh* in their name replace\nthe energy switching with force switching (fsw) and force shifting\n(fsh) functions, for LJ and Coulombic interactions respectively.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newer *charmmfsw* or *charmmfsh* styles were released in\n > March 2017. We recommend they be used instead of the older *charmm*\n > styles. This includes the newer [dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html) command. Eventually code from the new\n > styles will propagate into the related pair styles (e.g. implicit,\n > accelerator, free energy variants). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newest CHARMM pair styles reset the Coulombic energy\n > conversion factor used internally in the code, from the LAMMPS value\n > to the CHARMM value, as if it were effectively a parameter of the\n > force field. This is because the CHARMM code uses a slightly\n > different value for the this conversion factor in [real units ](https://docs.lammps.org/units.html) (kcal/mol), namely CHARMM = 332.0716, LAMMPS =\n > 332.06371. This is to enable more precise agreement by LAMMPS with\n > the CHARMM force field energies and forces, when using one of these\n > two CHARMM pair styles. \n > \n\nWhen using the *lj/charmm/coul/charmm styles*, both the LJ and\nCoulombic terms require an inner and outer cutoff. They can be the\nsame for both formulas or different depending on whether 2 or 4\narguments are used in the pair_style command. For the\n*lj/charmmfsw/coul/charmmfsh* style, the LJ term requires both an\ninner and outer cutoff, while the Coulombic term requires only one\ncutoff. If the Coulombic cutoff is not specified (2 instead of 3\narguments), the LJ outer cutoff is used for the Coulombic cutoff. In\nall cases where an inner and outer cutoff are specified, the inner\ncutoff distance must be less than the outer cutoff. It is typical to\nmake the difference between the inner and outer cutoffs about 2.0\nAngstroms.\n\nStyle *lj/charmm/coul/charmm/implicit* computes the same formulas as\nstyle *lj/charmm/coul/charmm* except that an additional 1/r term is\nincluded in the Coulombic formula. The Coulombic energy thus varies\nas 1/r\\^2. This is effectively a distance-dependent dielectric term\nwhich is a simple model for an implicit solvent with additional\nscreening. It is designed for use in a simulation of an unsolvated\nbiomolecule (no explicit water molecules).\n\nStyles *lj/charmm/coul/long* and *lj/charmm/coul/msm* compute the same\nformulas as style *lj/charmm/coul/charmm* and style\n*lj/charmmfsw/coul/long* computes the same formulas as style\n*lj/charmmfsw/coul/charmmfsh*, except that an additional damping\nfactor is applied to the Coulombic term, so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its\n*ewald* or *pppm* or *msm* option. Only one Coulombic cutoff is\nspecified for these styles; if only 2 arguments are used in the\npair_style command, then the outer LJ cutoff is used as the single\nCoulombic cutoff. The Coulombic cutoff specified for these styles\nmeans that pairwise interactions within this distance are computed\ndirectly; interactions outside that distance are computed in\nreciprocal space.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\epsilon_{14}\\) (energy units)\n* \\(\\sigma_{14}\\) (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{1/6} \\sigma\\).\n\nThe latter 2 coefficients are optional. If they are specified, they\nare used in the LJ formula between two atoms of these types which are\nalso first and fourth atoms in any dihedral. No cutoffs are specified\nbecause the CHARMM force field does not allow varying cutoffs for\nindividual atom pairs; all pairs use the global cutoff(s) specified in\nthe pair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, epsilon_14,\nand sigma_14 coefficients for all of the lj/charmm pair styles can be\nmixed. The default mix value is *arithmetic* to coincide with the\nusual settings for the CHARMM force field. See the \"pair_modify\"\ncommand for details.\n\nNone of the *lj/charmm* or *lj/charmmfsw* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option, since the Lennard-Jones\nportion of the pair interaction is smoothed to 0.0 at the cutoff.\n\nThe *lj/charmm/coul/long* and *lj/charmmfsw/coul/long* styles support\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can\ntabulate the short-range portion of the long-range Coulombic\ninteraction.\n\nNone of the *lj/charmm* or *lj/charmmfsw* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since the Lennard-Jones portion of\nthe pair interaction is smoothed to 0.0 at the cutoff.\n\nAll of the *lj/charmm* and *lj/charmmfsw* pair styles write their\ninformation to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and\npair_coeff commands do not need to be specified in an input script\nthat reads a restart file.\n\nThe *lj/charmm/coul/long* and *lj/charmmfsw/coul/long* pair styles\nsupport the use of the *inner*, *middle*, and *outer* keywords of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces\ncan be partitioned by distance at different levels of the rRESPA\nhierarchy. The other styles only support the *pair* keyword of\nrun_style respa. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", - "restrictions": "All the styles with *coul/charmm* or *coul/charmmfsh* styles are part\nof the MOLECULE package. All the styles with *coul/long* style are\npart of the KSPACE package. They are only enabled if LAMMPS was built\nwith those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [angle_style charmm ](https://docs.lammps.org/angle_charmm.html),\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html),\n[dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" -}, -{ - "command": [ - "pair_style lj/cut/tip4p/cut", - "pair_style lj/cut/tip4p/cut/omp", - "pair_style lj/cut/tip4p/long", - "pair_style lj/cut/tip4p/long/gpu", - "pair_style lj/cut/tip4p/long/omp", - "pair_style lj/cut/tip4p/long/opt" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "lj/cut/tip4p/long/opt", + "arg": "fix", "type": 3, "choices": [ - "lj/cut/tip4p/cut", - "lj/cut/tip4p/long", - "lj/cut/tip4p/cut/omp", - "lj/cut/tip4p/long/gpu", - "lj/cut/tip4p/long/omp", - "lj/cut/tip4p/long/opt" + "add", + "offset", + "shift", + "extra/atom/types", + "extra/bond/types", + "extra/angle/types", + "extra/dihedral/types", + "extra/improper/types", + "extra/bond/per/atom", + "extra/angle/per/atom", + "extra/dihedral/per/atom", + "extra/improper/per/atom", + "group", + "nocoeff", + "fix" ] }, { @@ -21387,240 +20737,133 @@ export const command_docs = [ } ] ], - "parameters": "* style = lj/cut/tip4p/cut or lj/cut/tip4p/long\n* args = list of arguments for a particular style \n *      lj/cut/tip4p/cut args = otype htype btype atype qdist cutoff (cutoff2) \n       otype,htype = atom types (numeric or type label) for TIP4P O and H \n       btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/tip4p/long args = otype htype btype atype qdist cutoff (cutoff2) \n       otype,htype = atom types (numeric or type label) for TIP4P O and H \n       btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0\npair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0\npair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/tip4p/long OW HW HW-OW HW-OW-HW 0.15 12.0\nlabelmap atom 1 OW 2 HW\nlabelmap bond 1 HW-OW\nlabelmap angle 1 HW-OW-HW\npair_coeff * * 100.0 3.0\npair_coeff OW OW 100.0 3.5 9.0\n```\n", - "html_filename": "pair_lj_cut_tip4p.html", - "short_description": "The *lj/cut/tip4p* styles implement the TIP4P water model of\n**Jorgensen2** and similar models, which introduce a\nmassless site M located a short distance away from the oxygen atom along\nthe bisector of the HOH angle", - "description": "The *lj/cut/tip4p* styles implement the TIP4P water model of\n**Jorgensen2** and similar models, which introduce a\nmassless site M located a short distance away from the oxygen atom along\nthe bisector of the HOH angle. The atomic types of the oxygen and\nhydrogen atoms, the bond and angle types for OH and HOH interactions,\nand the distance to the massless charge site are specified as pair_style\narguments and are used to identify the TIP4P-like molecules and\ndetermine the position of the M site from the positions of the hydrogen\nand oxygen atoms of the water molecules. The M site location is used\nfor all Coulomb interactions instead of the oxygen atom location, also\nwith all other atom types, while the location of the oxygen atom is used\nfor the Lennard-Jones interactions. Style *lj/cut/tip4p/cut* uses a\ncutoff for Coulomb interactions; style *lj/cut/tip4p/long* is for use\nwith a long-range Coulombic solver (Ewald or PPPM).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more information\non how to use the TIP4P pair styles and lists of parameters to set.\nNote that the neighbor list cutoff for Coulomb interactions is\neffectively extended by a distance 2\\*qdist when using the TIP4P pair\nstyle, to account for the offset distance of the fictitious charges on\nO atoms in water molecules. Thus it is typically best in an\nefficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\\*qdist, to\nshrink the size of the neighbor list. This leads to slightly larger\ncost for the long-range calculation, so you can test the trade-off for\nyour model.\n\nThe *lj/cut/tip4p* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThey add Coulombic pairwise interactions given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the two atoms, and \\(\\epsilon\\) is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nStyle *lj/cut/tip4p/long* compute the same\nCoulombic interactions as style *lj/cut/tip4p/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\n\n #### Coefficients\n\nFor all of the *lj/cut* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{\\frac{1}{6}} \\sigma\\).\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\nFor *lj/cut/tip4p/cut* and *lj/cut/tip4p/long* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff specified in\nthe pair_style command.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Because of how these pair styles implement the coulomb interactions\n > by implicitly defining a fourth site for the negative charge\n > of the TIP4P and similar water models, special care must be taken\n > when using these pair styles with other computations that also use\n > charges. Unless they are specially set up to also handle the implicit\n > definition of the 4th site, results are likely incorrect. Example:\n > [compute dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html). For the same\n > reason, when using one of these pair styles with\n > [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), **all** coulomb interactions\n > should be handled by a single sub-style with TIP4P support. All other\n > instances and styles will \"see\" the M point charges at the position\n > of the Oxygen atom and thus compute incorrect forces and energies.\n > LAMMPS will print a warning when it detects one of these issues. \n > \n\n----------\n\nA version of these styles with a soft core, *lj/cut/tip4p/long/soft*, suitable\nfor use in free energy calculations, is part of the FEP package and\nis documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\nstyles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/cut/coul/long* and *lj/cut/tip4p/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut* and *lj/cut/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Jorgensen2)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", - "restrictions": "The *lj/cut/tip4p/long* styles are part of the\nKSPACE package. The *lj/cut/tip4p/cut* style is part of the MOLECULE\npackage. These styles are only enabled if LAMMPS was built with those\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* file = name of data file to read in\n* zero or more keyword/arg pairs may be appended\n* keyword = add or offset or shift or extra/atom/types or extra/bond/types or extra/angle/types or extra/dihedral/types or extra/improper/types or extra/bond/per/atom or extra/angle/per/atom or extra/dihedral/per/atom or extra/improper/per/atom or group or nocoeff or fix \n *        add arg = append or IDoffset or *IDoffset MOLoffset* or merge \n         append = add new atoms with atom IDs appended to current IDs \n         IDoffset = add new atoms with atom IDs having IDoffset added \n         MOLoffset = add new atoms with molecule IDs having MOLoffset added (only when molecule IDs are enabled) \n         merge = add new atoms with their atom IDs (and molecule IDs) unchanged \n *        offset args = toff boff aoff doff ioff \n         toff = offset to add to atom types \n         boff = offset to add to bond types \n         aoff = offset to add to angle types \n         doff = offset to add to dihedral types \n         ioff = offset to add to improper types \n *        shift args = Sx Sy Sz \n         Sx,Sy,Sz = distance to shift atoms when adding to system (distance units) \n *        extra/atom/types arg = # of extra atom types \n *        extra/bond/types arg = # of extra bond types \n *        extra/angle/types arg = # of extra angle types \n *        extra/dihedral/types arg = # of extra dihedral types \n *        extra/improper/types arg = # of extra improper types \n *        extra/bond/per/atom arg = leave space for this many new bonds per atom \n *        extra/angle/per/atom arg = leave space for this many new angles per atom \n *        extra/dihedral/per/atom arg = leave space for this many new dihedrals per atom \n *        extra/improper/per/atom arg = leave space for this many new impropers per atom \n *        *extra/special/per/atom* arg = leave space for extra 1-2,1-3,1-4 interactions per atom \n *        group args = groupID \n         groupID = add atoms in data file to this group \n *        nocoeff = ignore force field parameters \n *        fix args = fix-ID header-string section-string \n         fix-ID = ID of fix to process header lines and sections of data file \n         header-string = header lines containing this string will be passed to fix \n         section-string = section names with this string will be passed to fix \n", + "examples": "\n```lmps\nread_data data.lj\nread_data ../run7/data.polymer.gz\nread_data data.protein fix mycmap crossterm CMAP\nread_data data.water add append offset 3 1 1 1 1 shift 0.0 0.0 50.0\nread_data data.water add merge group solvent\n```\n", + "html_filename": "read_data.html", + "short_description": "Read in a data file containing information LAMMPS needs to run a\nsimulation", + "description": "Read in a data file containing information LAMMPS needs to run a\nsimulation. The file can be ASCII text or a gzipped text file\n(detected by a .gz suffix).\n\nThis is one of 3 ways to specify the simulation box: see the\n[create_box ](https://docs.lammps.org/create_box.html) and [read_restart ](https://docs.lammps.org/read_restart.html)\nand commands for alternative methods. It is also one of 3 ways to\nspecify initial atom coordinates: see the [create_atoms](https://docs.lammps.org/create_atoms.html) and [read_restart ](https://docs.lammps.org/read_restart.html) and commands\nfor alternative methods. Also see the explanation of the\n[-restart command-line switch ](https://docs.lammps.org/Run_options.html) which can convert a\nrestart file to a data file.\n\nThis command can be used multiple times to add new atoms and their\nproperties to an existing system by using the *add*, *offset*, and\n*shift* keywords. However, it is important to understand that several\nsystem parameters, like the number of types of different kinds and per\natom settings are **locked in** after the first *read_data* command,\nwhich means that no type ID (including its offset) may have a larger\nvalue when processing additional data files than what is set by the\nfirst data file and the corresponding *read_data* command options. See\nmore details on this situation below, which includes the use case for\nthe *extra* keywords.\n\nThe *group* keyword adds all the atoms in the data file to the\nspecified group-ID. The group will be created if it does not already\nexist. This is useful if you are reading multiple data files and wish\nto put sets of atoms into different groups so they can be operated on\nlater. E.g. a group of added atoms can be moved to new positions via\nthe [displace_atoms ](https://docs.lammps.org/displace_atoms.html) command. Note that atoms\nread from the data file are also always added to the \"all\" group. The\n[group ](https://docs.lammps.org/group.html) command discusses atom groups, as used in LAMMPS.\n\nThe *nocoeff* keyword tells read_data to ignore force field parameters.\nThe various Coeff sections are still read and have to have the correct\nnumber of lines, but they are not applied. This also allows to read a\ndata file without having any pair, bond, angle, dihedral or improper\nstyles defined, or to read a data file for a different force field.\n\nThe use of the *fix* keyword is discussed below.\n\n----------\n\n #### Reading multiple data files\n\nThe read_data command can be used multiple times with the same or\ndifferent data files to build up a complex system from components\ncontained in individual data files. For example one data file could\ncontain fluid in a confined domain; a second could contain wall atoms,\nand the second file could be read a third time to create a wall on the\nother side of the fluid. The third set of atoms could be rotated to\nan opposing direction using the [displace_atoms ](https://docs.lammps.org/displace_atoms.html)\ncommand, after the third read_data command is used.\n\nThe *add*, *offset*, *shift*, *extra*, and *group* keywords are\nuseful in this context.\n\nIf a simulation box does not yet exist, the *add* keyword cannot be\nused; the read_data command is being used for the first time. If a\nsimulation box does exist, due to using the [create_box](https://docs.lammps.org/create_box.html) command, or a previous read_data command, then the *add*\nkeyword must be used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the first read_data command defined an orthogonal or restricted\n > triclinic or general triclinic simulation box (see the sub-section\n > below on header keywords), then subsequent data files must define\n > the same kind of simulation box. For orthogonal boxes, the new box\n > can be a different size; see the next Note. For a restricted\n > triclinic box, the 3 new tilt factors (\"xy xz yz\" keyword) must\n > have the same values as in the original data file. For a general\n > triclinic box, the new avec, bvec, cvec, and \"abc origin\" keywords\n > must have the same values in the original data file. files. Also\n > the *shift* keyword cannot be used in subsequent read_data commands\n > for a general triclinic box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For orthogonal boxes, the simulation box size in the new data file\n > will be merged with the existing simulation box to create a large\n > enough box in each dimension to contain both the existing and new\n > atoms. Each box dimension never shrinks due to this merge\n > operation, it only stays the same or grows. Care must be used if\n > you are growing the existing simulation box in a periodic\n > dimension. If there are existing atoms with bonds that straddle\n > that periodic boundary, then the atoms may become far apart if the\n > box size grows. This will separate the atoms in the bond, which\n > can lead to \"lost\" bond atoms or bad dynamics. \n > \n\nThe three choices for the *add* argument affect how the atom IDs and\nmolecule IDs of atoms in the data file are treated.\n\nIf *append* is specified, atoms in the data file are added to the\ncurrent system, with their atom IDs reset so that an atom-ID = M in\nthe data file becomes atom-ID = N+M, where N is the largest atom ID in\nthe current system. This rule is applied to all occurrences of atom\nIDs in the data file, e.g. in the Velocity or Bonds section. This is\nalso done for molecule IDs, if the atom style does support molecule\nIDs or they are enabled via fix property/atom.\n\nIf *IDoffset* is specified, then *IDoffset* is a numeric value is\ngiven, e.g. 1000, so that an atom-ID = M in the data file becomes\natom-ID = 1000+M. For systems with enabled molecule IDs, another\nnumerical argument *MOLoffset* is required representing the equivalent\noffset for molecule IDs.\n\nIf *merge* is specified, the data file atoms are added to the current\nsystem without changing their IDs. They are assumed to merge (without\nduplication) with the currently defined atoms. It is up to you to\nensure there are no multiply defined atom IDs, as LAMMPS only performs\nan incomplete check that this is the case by ensuring the resulting\nmax atom-ID >= the number of atoms. For molecule IDs, there is no\ncheck done at all.\n\nThe *offset* and *shift* keywords can only be used if the *add*\nkeyword is also specified.\n\nThe *offset* keyword adds the specified offset values to the atom\ntypes, bond types, angle types, dihedral types, and improper types as\nthey are read from the data file. E.g. if *toff* = 2, and the file\nuses atom types 1,2,3, then the added atoms will have atom types\n3,4,5. These offsets apply to all occurrences of types in the data\nfile, e.g. for the Atoms or Masses or Pair Coeffs or Bond Coeffs\nsections. This makes it easy to use atoms and molecules and their\nattributes from a data file in different simulations, where you want\ntheir types (atom, bond, angle, etc) to be different depending on what\nother types already exist. All five offset values must be specified,\nbut individual values will be ignored if the data file does not use\nthat attribute (e.g. no bonds).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Offsets are **ignored** on lines using type labels, as the type\n > labels will determine the actual types directly depending on the\n > current [labelmap ](https://docs.lammps.org/labelmap.html) settings. \n > \n\nThe *shift* keyword can be used to specify an (Sx, Sy, Sz)\ndisplacement applied to the coordinates of each atom. Sz must be 0.0\nfor a 2d simulation. This is a mechanism for adding structured\ncollections of atoms at different locations within the simulation box,\nto build up a complex geometry. It is up to you to ensure atoms do\nnot end up overlapping unphysically which would lead to bad dynamics.\nNote that the [displace_atoms ](https://docs.lammps.org/displace_atoms.html) command can be used\nto move a subset of atoms after they have been read from a data file.\nLikewise, the [delete_atoms ](https://docs.lammps.org/delete_atoms.html) command can be used to\nremove overlapping atoms. Note that the shift values (Sx, Sy, Sz) are\nalso added to the simulation box information (xlo, xhi, ylo, yhi, zlo,\nzhi) in the data file to shift its boundaries. E.g. xlo_new = xlo +\nSx, xhi_new = xhi + Sx.\n\nThe *extra* keywords can only be used the first time the read_data\ncommand is used. They are useful if you intend to add new atom, bond,\nangle, etc types later with additional read_data commands. This is\nbecause the maximum number of allowed atom, bond, angle, etc types is\nset by LAMMPS when the system is first initialized. If you do not use\nthe *extra* keywords, then the number of these types will be limited\nto what appears in the first data file you read. For example, if the\nfirst data file is a solid substrate of Si, it will likely specify a\nsingle atom type. If you read a second data file with a different\nmaterial (water molecules) that sit on top of the substrate, you will\nwant to use different atom types for those atoms. You can only do\nthis if you set the *extra/atom/types* keyword to a sufficiently large\nvalue when reading the substrate data file. Note that use of the\n*extra* keywords also allows each data file to contain sections like\nMasses or Pair Coeffs or Bond Coeffs which are sized appropriately for\nthe number of types in that data file. If the *offset* keyword is\nused appropriately when each data file is read, the values in those\nsections will be stored correctly in the larger data structures\nallocated by the use of the *extra* keywords. E.g. the substrate file\ncan list mass and pair coefficients for type 1 silicon atoms. The\nwater file can list mass and pair coefficients for type 1 and type 2\nhydrogen and oxygen atoms. Use of the *extra* and *offset* keywords\nwill store those mass and pair coefficient values appropriately in\ndata structures that allow for 3 atom types (Si, H, O). Of course,\nyou would still need to specify coefficients for H/Si and O/Si\ninteractions in your input script to have a complete pairwise\ninteraction model.\n\nAn alternative to using the *extra* keywords with the read_data\ncommand, is to use the [create_box ](https://docs.lammps.org/create_box.html) command to\ninitialize the simulation box and all the various type limits you need\nvia its *extra* keywords. Then use the read_data command one or more\ntimes to populate the system with atoms, bonds, angles, etc, using the\n*offset* keyword if desired to alter types used in the various data\nfiles you read.\n\n----------\n\n #### Format of a data file\n\nThe structure of the data file is important, though many settings and\nsections are optional or can come in any order. See the examples\ndirectory for sample data files for different problems.\n\nThe file will be read line by line, but there is a limit of 254\ncharacters per line and characters beyond that limit will be ignored.\n\nA data file has a header and a body. The header appears first. The\nfirst line of the header and thus of the data file is *always* skipped;\nit typically contains a description of the file or a comment from the\nsoftware that created the file.\n\nThen lines are read one line at a time. Lines can have a trailing\ncomment starting with '#' that is ignored. There *must* be at least one\nblank between any valid content and the comment. If a line is blank\n(i.e. contains only white-space after comments are deleted), it is\nskipped. If the line contains a header keyword, the corresponding\nvalue(s) is/are read from the line. A line that is *not* blank and does\n*not* contain a header keyword begins the body of the file.\n\nThe body of the file contains zero or more sections. The first line of\na section has only a keyword. This line can have a trailing comment\nstarting with '#' that is either ignored or can be used to check for a\nstyle match, as described below. There must be a blank between the\nkeyword and any comment. The *next* line is *always* skipped. The\nremaining lines of the section contain values. The number of lines\ndepends on the section keyword as described below. Zero or more blank\nlines can be used *between* sections. Sections can appear in any order,\nwith a few exceptions as noted below.\n\nThe keyword *fix* can be used one or more times. Each usage specifies\na fix that will be used to process a specific portion of the data\nfile. Any header line containing *header-string* and any section that\nis an exact match to *section-string* will be passed to the specified\nfix. See the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command for\nan example of a fix that operates in this manner. The doc page for\nthe fix defines the syntax of the header line(s) and section that it\nreads from the data file. Note that the *header-string* can be\nspecified as NULL, in which case no header lines are passed to the\nfix. This means the fix can infer the length of its Section from\nstandard header settings, such as the number of atoms. Also the\n*section-string* may be specified as NULL, and in that case the fix\nID is used as section name.\n\nThe formatting of individual lines in the data file (indentation,\nspacing between words and numbers) is not important except that header\nand section keywords (e.g. atoms, xlo xhi, Masses, Bond Coeffs) must\nbe capitalized as shown and cannot have extra white-space between\ntheir words - e.g. two spaces or a tab between the 2 words in \"xlo\nxhi\" or the 2 words in \"Bond Coeffs\", is not valid.\n\n----------\n\n #### Format of the header of a data file\n\nThese are the recognized header keywords. Header lines can come in\nany order. Each keyword takes a single value unless noted in this\nlist. The value(s) are read from the beginning of the line.\nThus the keyword *atoms* should be in a line like \"1000 atoms\"; the\nkeyword *ylo yhi* should be in a line like \"-10.0 10.0 ylo yhi\"; the\nkeyword *xy xz yz* should be in a line like \"0.0 5.0 6.0 xy xz yz\".\n\nAll these settings have a default value of 0, except for the\nsimulation box size settings; their defaults are explained below. A\nkeyword line need only appear if its value is different than the\ndefault.\n\n* *atoms* = # of atoms in system\n* *bonds* = # of bonds in system\n* *angles* = # of angles in system\n* *dihedrals* = # of dihedrals in system\n* *impropers* = # of impropers in system\n* *atom types* = # of atom types in system\n* *bond types* = # of bond types in system\n* *angle types* = # of angle types in system\n* *dihedral types* = # of dihedral types in system\n* *improper types* = # of improper types in system\n* *extra bond per atom* = leave space for this many new bonds per atom (deprecated, use extra/bond/per/atom keyword)\n* *extra angle per atom* = leave space for this many new angles per atom (deprecated, use extra/angle/per/atom keyword)\n* *extra dihedral per atom* = leave space for this many new dihedrals per atom (deprecated, use extra/dihedral/per/atom keyword)\n* *extra improper per atom* = leave space for this many new impropers per atom (deprecated, use extra/improper/per/atom keyword)\n* *extra special per atom* = leave space for this many new special bonds per atom (deprecated, use extra/special/per/atom keyword)\n* *ellipsoids* = # of ellipsoids in system\n* *lines* = # of line segments in system\n* *triangles* = # of triangles in system\n* *bodies* = # of bodies in system\n* *xlo xhi* = simulation box boundaries in x dimension (2 values)\n* *ylo yhi* = simulation box boundaries in y dimension (2 values)\n* *zlo zhi* = simulation box boundaries in z dimension (2 values)\n* *xy xz yz* = simulation box tilt factors for triclinic system (3 values)\n* *avec* = first edge vector of a general triclinic simulation box (3 values)\n* *bvec* = second edge vector of a general triclinic simulation box (3 values)\n* *cvec* = third edge vector of a general triclinic simulation box (3 values)\n* *abc origin* = origin of a general triclinic simulation box (3 values)\n\n----------\n\n #### Header specification of the simulation box size and shape\n\nThe last 8 keywords in the list of header keywords are for simulation\nboxes of 3 kinds which LAMMPS supports:\n\n* orthogonal box = faces are perpendicular to the xyz coordinate axes\n* restricted triclinic box = a parallelepiped defined by 3 edge vectors oriented in a constrained manner\n* general triclinic box = a parallelepiped defined by 3 arbitrary edge vectors\n\nFor restricted and general triclinic boxes, see the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a fuller\ndescription than is given here.\n\nThe units of the values for all 8 keywords in in distance units; see\nthe [units ](https://docs.lammps.org/units.html) command for details.\n\nFor all 3 kinds of simulation boxes, the system may be periodic or\nnon-periodic in any dimension; see the [boundary ](https://docs.lammps.org/boundary.html)\ncommand for details.\n\nWhen the simulation box is created by the read_data command, it is\nalso partitioned into a regular 3d grid of subdomains, one per\nprocessor, based on the number of processors being used and the\nsettings of the [processors ](https://docs.lammps.org/processors.html) command. For each kind\nof simulation box the subdomains have the same shape as the simulation\nbox, i.e. smaller orthogonal bricks for orthogonal boxes, smaller\nparallelepipeds for triclinic boxes. The partitioning can later be\nchanged by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nFor an orthogonal box, only the *xlo xhi*, *ylo yhi*, *zlo zhi*\nkeywords are used. They define the extent of the simulation box in\neach dimension so that the resulting edge vectors of an orthogonal box\nare:\n\n* **A** = (xhi-xlo,0,0)\n* **B** = (0,yhi-ylo,0)\n* **C** = (0,0,zhi-zlo)\n\nThe origin (lower left corner) of the orthogonal box is at\n(xlo,ylo,zlo). The default values for these 3 keywords are -0.5 and\n0.5 for each lo/hi pair. For a 2d simulation, the zlo and zhi values\nmust straddle zero. The default zlo/zhi values do this, so that\nkeyword is not needed in 2d.\n\nFor a restricted triclinic box, the *xy xz yz* keyword is used in\naddition to the *xlo xhi*, *ylo yhi*, *zlo zhi* keywords. The three\n*xy,xz,yz* values can be 0.0 or positive or negative, and are called\n\"tilt factors\" because they are the amount of displacement applied to\nedges of faces of an orthogonal box to transform it into a restricted\ntriclinic parallelepiped.\n\nThe [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page discusses the\ntilt factors in detail and explains that the resulting edge vectors of\na restricted triclinic box are:\n\n* **A** = (xhi-xlo,0,0)\n* **B** = (xy,yhi-ylo,0)\n* **C** = (xz,yz,zhi-zlo)\n\nThis restricted form of edge vectors requires that **A** be in the\ndirection of the x-axis, **B** be in the xy plane with its y-component\nin the +y direction, and **C** have its z-component in the +z\ndirection. The origin (lower left corner) of the restricted triclinic\nbox is at (xlo,ylo,zlo).\n\nFor a 2d simulation, the zlo and zhi values must straddle zero. The\ndefault zlo/zhi values do this, so that keyword is not needed in 2d.\nThe xz and yz values must also be zero in 2d. The shape of the 2d\nrestricted triclinic simulation box is effectively a parallelogram.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a restricted triclinic box is used, the simulation domain\n > should normally be periodic in any dimensions that tilt is applied\n > to, which is given by the second dimension of the tilt factor\n > (e.g. y for xy tilt). This is so that pairs of atoms interacting\n > across that boundary will have one of them shifted by the tilt\n > factor. Periodicity is set by the [boundary ](https://docs.lammps.org/boundary.html)\n > command which also describes the shifting by the tilt factor. For\n > example, if the xy tilt factor is non-zero, then the y dimension\n > should be periodic. Similarly, the z dimension should be periodic\n > if xz or yz is non-zero. LAMMPS does not require this periodicity,\n > but you may lose atoms if this is not the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, the specified tilt factors (xy,xz,yz) should not skew the\n > simulation box by more than half the distance of the corresponding\n > parallel box length for computational efficiency. For example, if\n > \\(x_\\text{lo} = 2\\) and \\(x_\\text{hi} = 12\\), then the\n > \\(x\\) box length is 10 and the \\(xy\\) tilt factor should be\n > between \\(-5\\) and \\(5\\). LAMMPS will issue a warning if\n > this is not the case. See the last sub-section of the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more details. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a simulation box is initially orthogonal, but will tilt during a\n > simulation, e.g. via the [fix deform ](https://docs.lammps.org/fix_deform.html) command,\n > then the box should be defined as restricted triclinic with all 3\n > tilt factors = 0.0. Alternatively, the [change box > ](https://docs.lammps.org/change_box.html) command can be used to convert an orthogonal box to a\n > restricted triclinic box. \n > \n\nFor a general triclinic box, the *avec*, *bvec*, *cvec*, and *abc\norigin* keywords are used. The *xlo xhi*, *ylo yhi*, *zlo zhi*, and\n*xy xz yz* keywords are NOT used. The first 3 keywords define the 3\nedge vectors **A**, **B**, **C** of the general triclinic box. They\ncan be arbitrary vectors so long as they are distinct, non-zero, and\nnot co-planar. They must also define a right-handed system such that\n(**A** x **B**) points in the direction of **C**. Note that a\nleft-handed system can be converted to a right-handed system by simply\nswapping the order of any pair of the **A**, **B**, **C** vectors.\nThe origin of the box (origin of the 3 edge vectors) is set by the\n*abc origin* keyword.\n\nThe default values for these 4 keywords are as follows:\n\n* avec = (1,0,0)\n* bvec = (0,1,0)\n* cvec = (0,0,1)\n* abc origin = (0,0,0) for 3d, (0,0,-0.5) for 2d\n\nFor 2d simulations, *cvec* = (0,0,1) is required, and the 3rd value of\n*abc origin* must be -0.5. These are the default values, so the\n*cvec* keyword is not needed in 2d.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box and per-atom information (e.g. coordinates, velocities) in\n > the data file are converted (rotated) from general to restricted\n > triclinic form when the file is read. Other sections of the data\n > file must also list their per-atom data appropriately if vector\n > quantities are specified. This requirement is explained below for\n > the relevant sections. The [Howto_triclinic > ](https://docs.lammps.org/Howto_triclinic.html) doc page also discusses other LAMMPS commands\n > which can input/output general triclinic representations of the\n > simulation box and per-atom data. \n > \n\nThe following explanations apply to all 3 kinds of simulation boxes:\northogonal, restricted triclinic, and general triclinic.\n\nIf the system is periodic (in a dimension), then atom coordinates can\nbe outside the bounds (in that dimension); they will be remapped (in a\nperiodic sense) back inside the box. For triclinic boxes, periodicity\nin x,y,z refers to the faces of the parallelepiped defined by the\n**A**,**B**,**C** edge vectors of the simulation box. See the\n[boundary ](https://docs.lammps.org/boundary.html) command doc page for a fuller discussion.\n\nNote that if the *add* option is being used to add atoms to a\nsimulation box that already exists, this periodic remapping will be\nperformed using simulation box bounds that are the union of the\nexisting box and the box boundaries in the new data file.\n\nIf the system is non-periodic (in a dimension), then an image flag for\nthat direction has no meaning, since there cannot be periodic images\nwithout periodicity and the data file is therefore - technically speaking\n- invalid. This situation would happen when a data file was written\nwith periodic boundaries and then read back for non-periodic boundaries.\nAccepting a non-zero image flag can lead to unexpected results for any\noperations and computations in LAMMPS that internally use unwrapped\ncoordinates (for example computing the center of mass of a group of\natoms). Thus all non-zero image flags for non-periodic dimensions will\nbe be reset to zero on reading the data file and LAMMPS will print a\nwarning message, if that happens. This is equivalent to wrapping atoms\nindividually back into the principal unit cell in that direction. This\noperation is equivalent to the behavior of the [change_box command](https://docs.lammps.org/change_box.html) when used to change periodicity.\n\nIf those atoms with non-zero image flags are involved in bonded\ninteractions, this reset can lead to undesired changes, when the image\nflag values differ between the atoms, i.e. the bonded interaction\nstraddles domain boundaries. For example a bond can become stretched\nacross the unit cell if one of its atoms is wrapped to one side of the\ncell and the second atom to the other. In those cases the data file\nneeds to be pre-processed externally to become valid again. This can be\ndone by first unwrapping coordinates and then wrapping entire molecules\ninstead of individual atoms back into the principal simulation cell and\nfinally expanding the cell dimensions in the non-periodic direction as\nneeded, so that the image flag would be zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is non-periodic (in a dimension), then all atoms in\n > the data file must have coordinates (in that dimension) that are\n > \"greater than or equal to\" the lo value and \"less than or equal to\"\n > the hi value. If the non-periodic dimension is of style \"fixed\"\n > (see the [boundary ](https://docs.lammps.org/boundary.html) command), then the atom coords\n > must be strictly \"less than\" the hi value, due to the way LAMMPS\n > assign atoms to processors. Note that you should not make the\n > lo/hi values radically smaller/larger than the extent of the atoms.\n > For example, if atoms extend from 0 to 50, you should not specify\n > the box bounds as -10000 and 10000 unless you also use the\n > [processors command ](https://docs.lammps.org/processors.html). This is because LAMMPS\n > uses the specified box size to layout the 3d grid of processors. A\n > huge (mostly empty) box will be sub-optimal for performance when\n > using \"fixed\" boundary conditions (see the [boundary > ](https://docs.lammps.org/boundary.html) command). When using \"shrink-wrap\" boundary conditions\n > (see the [boundary ](https://docs.lammps.org/boundary.html) command), a huge (mostly empty)\n > box may cause a parallel simulation to lose atoms when LAMMPS\n > shrink-wraps the box around the atoms. The read_data command will\n > generate an error in this case. \n > \n\n----------\n\n #### Meaning of other header keywords\n\nThe \"extra bond per atom\" setting (angle, dihedral, improper) is only\nneeded if new bonds (angles, dihedrals, impropers) will be added to\nthe system when a simulation runs, e.g. by using the [fixbond/create ](https://docs.lammps.org/fix_bond_create.html) command. Using this header flag is\ndeprecated; please use the *extra/bond/per/atom* keyword (and\ncorrespondingly for angles, dihedrals and impropers) in the read_data\ncommand instead. Either will pre-allocate space in LAMMPS data\nstructures for storing the new bonds (angles, dihedrals, impropers).\n\nThe \"extra special per atom\" setting is typically only needed if new\nbonds/angles/etc will be added to the system, e.g. by using the\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html) command. Or if entire new\nmolecules will be added to the system, e.g. by using the [fixdeposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html) commands, which\nwill have more special 1-2,1-3,1-4 neighbors than any other molecules\ndefined in the data file. Using this header flag is deprecated;\nplease use the *extra/special/per/atom* keyword instead. Using this\nsetting will pre-allocate space in the LAMMPS data structures for\nstoring these neighbors. See the [special_bonds ](https://docs.lammps.org/special_bonds.html)\nand [molecule ](https://docs.lammps.org/molecule.html) doc pages for more discussion of\n1-2,1-3,1-4 neighbors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All of the \"extra\" settings are only applied in the first data file\n > read and when no simulation box has yet been created; as soon as\n > the simulation box is created (and read_data implies that), these\n > settings are *locked* and cannot be changed anymore. Please see the\n > description of the *add* keyword above for reading multiple data\n > files. If they appear in later data files, they are ignored. \n > \n\nThe \"ellipsoids\" and \"lines\" and \"triangles\" and \"bodies\" settings are\nonly used with [atom_style ellipsoid or line or tri or body](https://docs.lammps.org/atom_style.html) and specify how many of the atoms are finite-size\nellipsoids or lines or triangles or bodies; the remainder are point\nparticles. See the discussion of ellipsoidflag and the *Ellipsoids*\nsection below. See the discussion of lineflag and the *Lines* section\nbelow. See the discussion of triangleflag and the *Triangles* section\nbelow. See the discussion of bodyflag and the *Bodies* section below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [atom_style template ](https://docs.lammps.org/atom_style.html), the molecular topology\n > (bonds,angles,etc) is contained in the molecule templates read-in\n > by the [molecule ](https://docs.lammps.org/molecule.html) command. This means you cannot\n > set the *bonds*, *angles*, etc header keywords in the data file,\n > nor can you define *Bonds*, *Angles*, etc sections as discussed\n > below. You can set the *bond types*, *angle types*, etc header\n > keywords, though it is not necessary. If specified, they must\n > match the maximum values defined in any of the template molecules. \n > \n\n----------\n\n #### Format of the body of a data file\n\nThese are the section keywords for the body of the file.\n\n* *Atoms, Velocities, Masses, Ellipsoids, Lines, Triangles, Bodies* = atom-property sections\n* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections\n* *Atom Type Labels, Bond Type Labels, Angle Type Labels, Dihedral Type Labels, Improper Type Labels* = type label maps\n* *Pair Coeffs, PairIJ Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs* = force field sections\n* *BondBond Coeffs, BondAngle Coeffs, MiddleBondTorsion Coeffs, EndBondTorsion Coeffs, AngleTorsion Coeffs, AngleAngleTorsion Coeffs, BondBond13 Coeffs, AngleAngle Coeffs* = class 2 force field sections\n\nThese keywords will check an appended comment for a match with the\ncurrently defined style:\n\n* *Atoms, Pair Coeffs, PairIJ Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs*\n\nFor example, these lines:\n\n```\nAtoms # sphere\nPair Coeffs # lj/cut\n```\nwill check if the currently-defined [atom_style ](https://docs.lammps.org/atom_style.html) is\n*sphere*, and the current [pair_style ](https://docs.lammps.org/pair_style.html) is *lj/cut* .\nIf not, LAMMPS will issue a warning to indicate that the data file\nsection likely does not contain the correct number or type of\nparameters expected for the currently-defined style.\n\nEach section is listed below in alphabetic order. The format of each\nsection is described including the number of lines it must contain and\nrules (if any) for where it can appear in the data file.\n\nAny individual line in the various sections can have a trailing\ncomment starting with \"#\" for annotation purposes. There must be at least\none blank between valid content and the comment. E.g. in the\nAtoms section:\n\n```\n10 1 17 -1.0 10.0 5.0 6.0 # salt ion\n```\n----------\n\n*Angle Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n6 70 108.5 0 0\n```\nThe number and meaning of the coefficients are specific to the defined\nangle style. See the [angle_style ](https://docs.lammps.org/angle_style.html) and\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands for details. Coefficients can\nalso be set via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command in the\ninput script.\n\n----------\n\n*Angle Type Labels* section:\n\n* one line per angle type\n* line syntax: ID label\n\n```\nID = angle type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric angle type. These\ncan be used in the Angles section in place of a numeric type, but only\nif the this section appears before the Angles section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*AngleAngle Coeffs* section:\n\n* one line per improper type\n* line syntax: ID coeffs\n\n```\nID = improper type (1-N)\ncoeffs = list of coeffs (see [improper_coeff ](https://docs.lammps.org/improper_coeff.html))\n```\n----------\n\n*AngleAngleTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Angles* section:\n\n* one line per angle\n* line syntax: ID type atom1 atom2 atom3\n\n```\nID = number of angle (1-Nangles)\ntype = angle type (1-Nangletype, or type label)\natom1,atom2,atom3 = IDs of 1st,2nd,3rd atom in angle\n```\nexample:\n\n```\n2 2 17 29 430\n```\nThe 3 atoms are ordered linearly within the angle. Thus the central\natom (around which the angle is computed) is the atom2 in the list.\nE.g. H,O,H for a water molecule. The *Angles* section must appear\nafter the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or an Angle Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*AngleTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Atom Type Labels* section:\n\n* one line per atom type\n* line syntax: ID label\n\n```\nID = numeric atom type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric atom type. These\ncan be used in the Atoms section in place of a numeric type, but only\nif the Atom Type Labels section appears before the Atoms section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Atoms* section:\n\n* one line per atom\n* line syntax: depends on atom style\n\nAn *Atoms* section must appear in the data file if natoms > 0 in the\nheader section. The atoms can be listed in any order. These are the\nline formats for each [atom style ](https://docs.lammps.org/atom_style.html) in LAMMPS. As\ndiscussed below, each line can optionally have 3 flags (nx,ny,nz)\nappended to it, which indicate which image of a periodic simulation\nbox the atom is in. These may be important to include for some kinds\nof analysis.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For orthogonal and restricted and general triclinic simulation\n > boxes, the atom coordinates (x,y,z) listed in this section should\n > be inside the corresponding simulation box. For restricted\n > triclinic boxes that means the parallelepiped defined by the *xlo\n > xhi*, *ylo yhi*, *zlo zhi*, and *xy xz yz*, keywords. For general\n > triclinic boxes that means the parallelepiped defined by the 3 edge\n > vectors and origin specified by the *avec*, *bvec*, *cvec*, and\n > *abc origin* header keywords. See the discussion in the header\n > section above about how atom coordinates outside the simulation box\n > are (or are not) remapped to be inside the box. \n > \n\n\n | | | \n |---|---|\n angle | atom-ID molecule-ID atom-type x y z|\n atomic | atom-ID atom-type x y z|\n body | atom-ID atom-type bodyflag mass x y z|\n bond | atom-ID molecule-ID atom-type x y z|\n bpm/sphere | atom-ID molecule-ID atom-type diameter density x y z|\n charge | atom-ID atom-type q x y z|\n dielectric | atom-ID atom-type q x y z mux muy muz area ed em epsilon curvature|\n dipole | atom-ID atom-type q x y z mux muy muz|\n dpd | atom-ID atom-type theta x y z|\n edpd | atom-ID atom-type edpd_temp edpd_cv x y z|\n electron | atom-ID atom-type q espin eradius x y z|\n ellipsoid | atom-ID atom-type ellipsoidflag density x y z|\n full | atom-ID molecule-ID atom-type q x y z|\n line | atom-ID molecule-ID atom-type lineflag density x y z|\n mdpd | atom-ID atom-type rho x y z|\n molecular | atom-ID molecule-ID atom-type x y z|\n peri | atom-ID atom-type volume density x y z|\n smd | atom-ID atom-type molecule volume mass kradius cradius x0 y0 z0 x y z|\n sph | atom-ID atom-type rho esph cv x y z|\n sphere | atom-ID atom-type diameter density x y z|\n spin | atom-ID atom-type x y z spx spy spz sp|\n tdpd | atom-ID atom-type x y z cc1 cc2 ... ccNspecies|\n template | atom-ID atom-type molecule-ID template-index template-atom x y z|\n tri | atom-ID molecule-ID atom-type triangleflag density x y z|\n wavepacket | atom-ID atom-type charge espin eradius etag cs_re cs_im x y z|\n \nThe per-atom values have these meanings and units, listed alphabetically:\n\n* atom-ID = integer ID of atom\n* atom-type = type of atom (1-Ntype, or type label)\n* bodyflag = 1 for body particles, 0 for point particles\n* ccN = chemical concentration for tDPD particles for each species (mole/volume units)\n* cradius = contact radius for SMD particles (distance units)\n* cs_re,cs_im = real/imaginary parts of wave packet coefficients\n* cv = heat capacity (need units) for SPH particles\n* density = density of particle (mass/distance\\^3 or mass/distance\\^2 or mass/distance units, depending on dimensionality of particle)\n* diameter = diameter of spherical atom (distance units)\n* edpd_temp = temperature for eDPD particles (temperature units)\n* edpd_cv = volumetric heat capacity for eDPD particles (energy/temperature/volume units)\n* ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles\n* eradius = electron radius (or fixed-core radius)\n* esph = energy (need units) for SPH particles\n* espin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP)\n* etag = integer ID of electron that each wave packet belongs to\n* kradius = kernel radius for SMD particles (distance units)\n* lineflag = 1 for line segment particles, 0 for point or spherical particles\n* mass = mass of particle (mass units)\n* molecule-ID = integer ID of molecule the atom belongs to\n* mux,muy,muz = components of dipole moment of atom (dipole units) (see general triclinic note below)\n* q = charge on atom (charge units)\n* rho = density (need units) for SPH particles\n* sp = magnitude of magnetic spin of atom (Bohr magnetons)\n* spx,spy,spz = components of magnetic spin of atom (unit vector) (see general triclinic note below)\n* template-atom = which atom within a template molecule the atom is\n* template-index = which molecule within the molecule template the atom is part of\n* theta = internal temperature of a DPD particle\n* triangleflag = 1 for triangular particles, 0 for point or spherical particles\n* volume = volume of Peridynamic particle (distance\\^3 units)\n* x,y,z = coordinates of atom (distance units)\n* x0,y0,z0 = original (strain-free) coordinates of atom (distance\n units) (see general triclinic note below)\n\nThe units for these quantities depend on the unit style; see the\n[units ](https://docs.lammps.org/units.html) command for details.\n\nFor 2d simulations, the atom coordinate z must be specified as 0.0.\nIf the data file is created by another program, then z values for a 2d\nsimulation can be within epsilon of 0.0, and LAMMPS will force them to\nzero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the data file defines a general triclinic box, then the\n > following per-atom values in the list above are per-atom vectors\n > which imply an orientation: (mux,muy,muz) and (spx,spy,spz). This\n > means they should be specified consistent with the general\n > triclinic box and its orientation relative to the standard x,y,z\n > coordinate axes. For example a dipole moment vector which will be\n > in the +x direction once LAMMPS converts from a general to\n > restricted triclinic box, should be specified in the data file in\n > the direction of the **A** edge vector. Likewise the (x0,y0,z0)\n > per-atom strain-free coordinates should be inside the general\n > triclinic simulation box as explained in the note above. See the\n > [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more details. \n > \n\nThe atom-ID is used to identify the atom throughout the simulation and\nin dump files. Normally, it is a unique value from 1 to Natoms for\neach atom. Unique values larger than Natoms can be used, but they\nwill cause extra memory to be allocated on each processor, if an atom\nmap array is used, but not if an atom map hash is used; see the\n[atom_modify ](https://docs.lammps.org/atom_modify.html) command for details. If an atom map is\nnot used (e.g. an atomic system with no bonds), and you don't care if\nunique atom IDs appear in dump files, then the atom-IDs can all be set\nto 0.\n\nThe atom-type can be a numeric value or an alphanumeric label. The\nlatter is only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or an Atom Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nThe molecule ID is a second identifier attached to an atom. Normally, it\nis a number from 1 to N, identifying which molecule the atom belongs\nto. It can be 0 if it is a non-bonded atom or if you don't care to\nkeep track of molecule assignments.\n\nThe diameter specifies the size of a finite-size spherical particle.\nIt can be set to 0.0, which means that atom is a point particle.\n\nThe ellipsoidflag, lineflag, triangleflag, and bodyflag determine\nwhether the particle is a finite-size ellipsoid or line or triangle or\nbody of finite size, or whether the particle is a point particle.\nAdditional attributes must be defined for each ellipsoid, line,\ntriangle, or body in the corresponding *Ellipsoids*, *Lines*,\n*Triangles*, or *Bodies* section.\n\nThe *template-index* and *template-atom* are only defined used by\n[atom_style template ](https://docs.lammps.org/atom_style.html). In this case the\n[molecule ](https://docs.lammps.org/molecule.html) command is used to define a molecule template\nwhich contains one or more molecules (as separate files). If an atom\nbelongs to one of those molecules, its *template-index* and *template-atom*\nare both set to positive integers; if not the values are both 0. The\n*template-index* is which molecule (1 to Nmols) the atom belongs to.\nThe *template-atom* is which atom (1 to Natoms) within the molecule\nthe atom is.\n\nSome pair styles and fixes and computes that operate on finite-size\nparticles allow for a mixture of finite-size and point particles. See\nthe doc pages of individual commands for details.\n\nFor finite-size particles, the density is used in conjunction with the\nparticle volume to set the mass of each particle as mass = density \\*\nvolume. In this context, volume can be a 3d quantity (for spheres or\nellipsoids), a 2d quantity (for triangles), or a 1d quantity (for line\nsegments). If the volume is 0.0, meaning a point particle, then the\ndensity value is used as the mass. One exception is for the body atom\nstyle, in which case the mass of each particle (body or point\nparticle) is specified explicitly. This is because the volume of the\nbody is unknown.\n\nNote that for 2d simulations of spheres, this command will treat them\nas spheres when converting density to mass. However, they can also be\nmodeled as 2d discs (circles) if the [set density/disc ](https://docs.lammps.org/set.html)\ncommand is used to reset their mass after the read_data command is\nused. A *disc* keyword can also be used with time integration fixes,\nsuch as [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) and [fixnvt/sphere ](https://docs.lammps.org/fix_nve_sphere.html) to time integrate their motion as 2d\ndiscs (not 3d spheres), by changing their moment of inertia.\n\nFor atom\\_style hybrid, following the 5 initial values\n(ID,type,x,y,z), specific values for each sub-style must be listed.\nThe order of the sub-styles is the same as they were listed in the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. The specific values for each\nsub-style are those that are not the 5 standard ones (ID,type,x,y,z).\nFor example, for the \"charge\" sub-style, a \"q\" value would appear.\nFor the \"full\" sub-style, a \"molecule-ID\" and \"q\" would appear. These\nare listed in the same order they appear as listed above. Thus if\n\n```\natom_style hybrid charge sphere\n```\nwere used in the input script, each atom line would have these fields:\n\n```\natom-ID atom-type x y z q diameter density\n```\nNote that if a non-standard value is defined by multiple sub-styles,\nit only appears once in the atom line. E.g. the atom line for\natom_style hybrid dipole full would list \"q\" only once, with the\ndipole sub-style fields; \"q\" does not appear with the full sub-style\nfields.\n\n```\natom-ID atom-type x y z q mux muy myz molecule-ID\n```\nAtom lines specify the (x,y,z) coordinates of atoms. These can be\ninside or outside the simulation box. When the data file is read,\nLAMMPS wraps coordinates outside the box back into the box for\ndimensions that are periodic. As discussed above, if an atom is\noutside the box in a non-periodic dimension, it will be lost.\n\nLAMMPS always stores atom coordinates as values which are inside the\nsimulation box. It also stores 3 flags which indicate which image of\nthe simulation box (in each dimension) the atom would be in if its\ncoordinates were unwrapped across periodic boundaries. An image flag\nof 0 means the atom is still inside the box when unwrapped. A value\nof 2 means add 2 box lengths to get the unwrapped coordinate. A value\nof -1 means subtract 1 box length to get the unwrapped coordinate.\nLAMMPS updates these flags as atoms cross periodic boundaries during\nthe simulation. The [dump ](https://docs.lammps.org/dump.html) command can output atom\ncoordinates in wrapped or unwrapped form, as well as the 3 image\nflags.\n\nIn the data file, atom lines (all lines or none of them) can\noptionally list 3 trailing integer values (nx,ny,nz), which are used\nto initialize the atom's image flags. If nx,ny,nz values are not\nlisted in the data file, LAMMPS initializes them to 0. Note that the\nimage flags are immediately updated if an atom's coordinates need to\nwrapped back into the simulation box.\n\nIt is only important to set image flags correctly in a data file if a\nsimulation model relies on unwrapped coordinates for some calculation;\notherwise they can be left unspecified. Examples of LAMMPS commands\nthat use unwrapped coordinates internally are as follows:\n\n* Atoms in a rigid body (see [fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)) must have consistent image flags, so that\n when the atoms are unwrapped, they are near each other, i.e. as a\n single body.\n* If the [replicate ](https://docs.lammps.org/replicate.html) command is used to generate a larger\n system, image flags must be consistent for bonded atoms when the bond\n crosses a periodic boundary. I.e. the values of the image flags\n should be different by 1 (in the appropriate dimension) for the two\n atoms in such a bond.\n* If you plan to [dump ](https://docs.lammps.org/dump.html) image flags and perform post-analysis\n that will unwrap atom coordinates, it may be important that a\n continued run (restarted from a data file) begins with image flags\n that are consistent with the previous run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is an infinite periodic crystal with bonds then\n > it is impossible to have fully consistent image flags. This is because\n > some bonds will cross periodic boundaries and connect two atoms with the\n > same image flag. \n > \n\nAtom velocities and other atom quantities not defined above are set to\n0.0 when the *Atoms* section is read. Velocities can be set later by\na *Velocities* section in the data file or by a [velocity](https://docs.lammps.org/velocity.html) or [set ](https://docs.lammps.org/set.html) command in the input script.\n\n----------\n\n*Bodies* section:\n\n* one or more lines per body\n* first line syntax: atom-ID Ninteger Ndouble\n\n```\nNinteger = # of integer quantities for this particle\nNdouble = # of floating-point quantities for this particle\n```\n* 0 or more integer lines with total of Ninteger values\n* 0 or more double lines with total of Ndouble values\n* example:\n\n```\n12 3 6\n2 3 2\n1.0 2.0 3.0 1.0 2.0 4.0\n```\n* example:\n\n```\n12 0 14\n1.0 2.0 3.0 1.0 2.0 4.0 1.0\n2.0 3.0 1.0 2.0 4.0 4.0 2.0\n```\nThe *Bodies* section must appear if [atom_style body ](https://docs.lammps.org/atom_style.html)\nis used and any atoms listed in the *Atoms* section have a bodyflag =\n1. The number of bodies should be specified in the header section via\nthe \"bodies\" keyword.\n\nEach body can have a variable number of integer and/or floating-point\nvalues. The number and meaning of the values is defined by the body\nstyle, as described in the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page.\nThe body style is given as an argument to the [atom_style body](https://docs.lammps.org/atom_style.html) command.\n\nThe Ninteger and Ndouble values determine how many integer and\nfloating-point values are specified for this particle. Ninteger and\nNdouble can be as large as needed and can be different for every body.\nInteger values are then listed next on subsequent lines. Lines are\nread one at a time until Ninteger values are read. Floating-point\nvalues follow on subsequent lines, Again lines are read one at a time\nuntil Ndouble values are read. Note that if there are no values of a\nparticular type, no lines appear for that type.\n\nThe *Bodies* section must appear after the *Atoms* section.\n\n----------\n\n*Bond Coeffs* section:\n\n* one line per bond type\n* line syntax: ID coeffs\n\n```\nID = bond type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n4 250 1.49\n```\nThe number and meaning of the coefficients are specific to the defined\nbond style. See the [bond_style ](https://docs.lammps.org/bond_style.html) and\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) commands for details. Coefficients can\nalso be set via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command in the input\nscript.\n\n----------\n\n*Bond Type Labels* section:\n\n* one line per bond type\n* line syntax: ID label\n\n```\nID = bond type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric bond type. These can\nbe used in the Bonds section in place of a numeric type, but only if\nthe this section appears before the Angles section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*BondAngle Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs (see class 2 section of [angle_coeff ](https://docs.lammps.org/angle_coeff.html))\n```\n----------\n\n*BondBond Coeffs* section:\n\n* one line per angle type\n* line syntax: ID coeffs\n\n```\nID = angle type (1-N)\ncoeffs = list of coeffs (see class 2 section of [angle_coeff ](https://docs.lammps.org/angle_coeff.html))\n```\n----------\n\n*BondBond13 Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Bonds* section:\n\n* one line per bond\n* line syntax: ID type atom1 atom2\n\n```\nID = bond number (1-Nbonds)\ntype = bond type (1-Nbondtype, or type label)\natom1,atom2 = IDs of 1st,2nd atom in bond\n```\n* example:\n\n```\n12 3 17 29\n```\nThe *Bonds* section must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Bond Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Dihedral Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n3 0.6 1 0 1\n```\nThe number and meaning of the coefficients are specific to the defined\ndihedral style. See the [dihedral_style ](https://docs.lammps.org/dihedral_style.html) and\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) commands for details.\nCoefficients can also be set via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script.\n\n----------\n\n*Dihedral Type Labels* section:\n\n* one line per dihedral type\n* line syntax: ID label\n\n```\nID = dihedral type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric dihedral type. These\ncan be used in the Dihedrals section in place of a numeric type, but\nonly if the this section appears before the Dihedrals section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Dihedrals* section:\n\n* one line per dihedral\n* line syntax: ID type atom1 atom2 atom3 atom4\n\n```\nID = number of dihedral (1-Ndihedrals)\ntype = dihedral type (1-Ndihedraltype, or type label)\natom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in dihedral\n```\n* example:\n\n```\n12 4 17 29 30 21\n```\nThe 4 atoms are ordered linearly within the dihedral. The *Dihedrals*\nsection must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Dihedral Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Ellipsoids* section:\n\n* one line per ellipsoid\n* line syntax: atom-ID shapex shapey shapez quatw quati quatj quatk\n\n```\natom-ID = ID of atom which is an ellipsoid\nshapex,shapey,shapez = 3 diameters of ellipsoid (distance units)\nquatw,quati,quatj,quatk = quaternion components for orientation of atom\n```\n* example:\n\n```\n12 1 2 1 1 0 0 0\n```\nThe *Ellipsoids* section must appear if [atom_style ellipsoid](https://docs.lammps.org/atom_style.html) is used and any atoms are listed in the *Atoms* section\nwith an ellipsoidflag = 1. The number of ellipsoids should be\nspecified in the header section via the \"ellipsoids\" keyword.\n\nThe 3 shape values specify the 3 diameters or aspect ratios of a\nfinite-size ellipsoidal particle, when it is oriented along the 3\ncoordinate axes. They must all be non-zero values.\n\nThe values *quatw*, *quati*, *quatj*, and *quatk* set the orientation\nof the atom as a quaternion (4-vector). Note that the shape\nattributes specify the aspect ratios of an ellipsoidal particle, which\nis oriented by default with its x-axis along the simulation box's\nx-axis, and similarly for y and z. If this body is rotated (via the\nright-hand rule) by an angle theta around a unit vector (a,b,c), then\nthe quaternion that represents its new orientation is given by\n(cos(theta/2), a\\*sin(theta/2), b\\*sin(theta/2), c\\*sin(theta/2)). These\n4 components are quatw, quati, quatj, and quatk as specified above.\nLAMMPS normalizes each atom's quaternion in case (a,b,c) is not\nspecified as a unit vector.\n\nIf the data file defines a general triclinic box, then the quaternion\nfor each ellipsoid should be specified for its orientation relative to\nthe standard x,y,z coordinate axes. When the system is converted to a\nrestricted triclinic box, the ellipsoid quaternions will be altered to\nreflect the new orientation of the ellipsoid.\n\nThe *Ellipsoids* section must appear after the *Atoms* section.\n\n----------\n\n*EndBondTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Improper Coeffs* section:\n\n* one line per improper type\n* line syntax: ID coeffs\n\n```\nID = improper type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n2 20 0.0548311\n```\nThe number and meaning of the coefficients are specific to the defined\nimproper style. See the [improper_style ](https://docs.lammps.org/improper_style.html) and\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands for details.\nCoefficients can also be set via the\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) command in the input script.\n\n----------\n\n*Improper Type Labels* section:\n\n* one line per improper type\n* line syntax: ID label\n\n```\nID = improper type (1-N)\nlabel = alphanumeric type label\n```\nDefine alphanumeric type labels for each numeric improper type. These\ncan be used in the Impropers section in place of a numeric type, but\nonly if the this section appears before the Impropers section.\n\nSee the [Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the\nallowed syntax of type labels and a general discussion of how type\nlabels can be used.\n\n----------\n\n*Impropers* section:\n\n* one line per improper\n* line syntax: ID type atom1 atom2 atom3 atom4\n\n```\nID = number of improper (1-Nimpropers)\ntype = improper type (1-Nimpropertype, or type label)\natom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in improper\n```\n* example:\n\n```\n12 3 17 29 13 100\n```\nThe ordering of the 4 atoms determines the definition of the improper\nangle used in the formula for each [improper style](https://docs.lammps.org/improper_style.html). See the doc pages for individual styles for\ndetails.\n\nThe *Impropers* section must appear after the *Atoms* section.\n\nAll values in this section must be integers (1, not 1.0). However,\nthe type can be a numeric value or an alphanumeric label. The latter\nis only allowed if the type label has been defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or a Improper Type Labels section\nearlier in the data file. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\n----------\n\n*Lines* section:\n\n* one line per line segment\n* line syntax: atom-ID x1 y1 x2 y2\n\n```\natom-ID = ID of atom which is a line segment\nx1,y1 = 1st end point\nx2,y2 = 2nd end point\n```\n* example:\n\n```\n12 1.0 0.0 2.0 0.0\n```\nThe *Lines* section must appear if [atom_style line ](https://docs.lammps.org/atom_style.html)\nis used and any atoms are listed in the *Atoms* section with a\nlineflag = 1. The number of lines should be specified in the header\nsection via the \"lines\" keyword.\n\nThe 2 end points are the end points of the line segment. They should\nbe values close to the center point of the line segment specified in\nthe Atoms section of the data file, even if individual end points are\noutside the simulation box.\n\nThe ordering of the 2 points should be such that using a right-hand\nrule to cross the line segment with a unit vector in the +z direction,\ngives an \"outward\" normal vector perpendicular to the line segment.\nI.e. normal = (c2-c1) x (0,0,1). This orientation may be important\nfor defining some interactions.\n\nIf the data file defines a general triclinic box, then the x1,y1 and\nx2,y2 values for each line segment should be specified for its\norientation relative to the standard x,y,z coordinate axes. When the\nsystem is converted to a restricted triclinic box, the x1,y1,x2,y2\nvalues will be altered to reflect the new orientation of the line\nsegment.\n\nThe *Lines* section must appear after the *Atoms* section.\n\n----------\n\n*Masses* section:\n\n* one line per atom type\n* line syntax: ID mass\n\n```\nID = atom type (1-N or atom type label)\nmass = mass value\n```\n* example:\n\n```\n3 1.01\n```\nThis defines the mass of each atom type. This can also be set via the\n[mass ](https://docs.lammps.org/mass.html) command in the input script. This section cannot be\nused for atom styles that define a mass for individual atoms -\ne.g. [atom_style sphere ](https://docs.lammps.org/atom_style.html).\n\nUsing type labels instead of atom type numbers is only allowed if the\ntype label has been defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command or\na Atom Type Labels section earlier in the data file. See the\n[Howto type labels ](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed\nsyntax of type labels and a general discussion of how type labels can be\nused.\n\n----------\n\n*MiddleBondTorsion Coeffs* section:\n\n* one line per dihedral type\n* line syntax: ID coeffs\n\n```\nID = dihedral type (1-N)\ncoeffs = list of coeffs (see class 2 section of [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html))\n```\n----------\n\n*Pair Coeffs* section:\n\n* one line per atom type\n* line syntax: ID coeffs\n\n```\nID = atom type (1-N)\ncoeffs = list of coeffs\n```\n* example:\n\n```\n3 0.022 2.35197 0.022 2.35197\n```\nThe number and meaning of the coefficients are specific to the defined\npair style. See the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for details. Since pair\ncoefficients for types I != J are not specified, these will be\ngenerated automatically by the pair style's mixing rule. See the\nindividual pair_style doc pages and the [pair_modify mix](https://docs.lammps.org/pair_modify.html) command for details. Pair coefficients can also be set\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command in the input script.\n\n----------\n\n*PairIJ Coeffs* section:\n\n* one line per pair of atom types for all I,J with I <= J\n* line syntax: ID1 ID2 coeffs\n\n```\nID1 = atom type I = 1-N\nID2 = atom type J = I-N, with I <= J\ncoeffs = list of coeffs\n```\n* examples:\n\n```\n3 3 0.022 2.35197 0.022 2.35197\n3 5 0.022 2.35197 0.022 2.35197\n```\nThis section must have N\\*(N+1)/2 lines where N = # of atom types.\nThe number and meaning of the coefficients are specific to the defined\npair style. See the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for details. Since pair\ncoefficients for types I != J are all specified, these values will\nturn off the default mixing rule defined by the pair style. See the\nindividual pair_style doc pages and the [pair_modify mix](https://docs.lammps.org/pair_modify.html) command for details. Pair coefficients can also be set\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command in the input script.\n\n----------\n\n*Triangles* section:\n\n* one line per triangle\n* line syntax: atom-ID x1 y1 z1 x2 y2 z2 x3 y3 z3\n\n```\natom-ID = ID of atom which is a line segment\nx1,y1,z1 = 1st corner point\nx2,y2,z2 = 2nd corner point\nx3,y3,z3 = 3rd corner point\n```\n* example:\n\n```\n12 0.0 0.0 0.0 2.0 0.0 1.0 0.0 2.0 1.0\n```\nThe *Triangles* section must appear if [atom_style tri](https://docs.lammps.org/atom_style.html) is used and any atoms are listed in the *Atoms* section\nwith a triangleflag = 1. The number of lines should be specified in\nthe header section via the \"triangles\" keyword.\n\nThe 3 corner points are the corner points of the triangle. They\nshould be values close to the center point of the triangle specified\nin the Atoms section of the data file, even if individual corner\npoints are outside the simulation box.\n\nThe ordering of the 3 points should be such that using a right-hand\nrule to go from point1 to point2 to point3 gives an \"outward\" normal\nvector to the face of the triangle. I.e. normal = (c2-c1) x (c3-c1).\nThis orientation may be important for defining some interactions.\n\nIf the data file defines a general triclinic box, then the x1,y1,z1\nand x2,y2,z2 and x3,y3,z3 values for each triangle should be specified\nfor its orientation relative to the standard x,y,z coordinate axes.\nWhen the system is converted to a restricted triclinic box, the\nx1,y1,z1,x2,y2,z2,x3,y3,z3 values will be altered to reflect the new\norientation of the triangle.\n\nThe *Triangles* section must appear after the *Atoms* section.\n\n----------\n\n*Velocities* section:\n\n* one line per atom\n* line syntax: depends on atom style\n\n| | |\n|---|---|\n| all styles except those listed | atom-ID vx vy vz |\n| electron | atom-ID vx vy vz ervel |\n| ellipsoid | atom-ID vx vy vz lx ly lz |\n| sphere | atom-ID vx vy vz wx wy wz |\n| hybrid | atom-ID vx vy vz sub-style1 sub-style2 ... |\n\nwhere the keywords have these meanings:\n\n```\nvx,vy,vz = translational velocity of atom\nlx,ly,lz = angular momentum of aspherical atom\nwx,wy,wz = angular velocity of spherical atom\nervel = electron radial velocity (0 for fixed-core)\n```\nThe velocity lines can appear in any order. This section can only be\nused after an *Atoms* section. This is because the *Atoms* section\nmust have assigned a unique atom ID to each atom so that velocities\ncan be assigned to them.\n\nVx, vy, vz, and ervel are in [units ](https://docs.lammps.org/units.html) of velocity. Lx, ly,\nlz are in units of angular momentum (distance-velocity-mass). Wx, Wy,\nWz are in units of angular velocity (radians/time).\n\nIf the data file defines a general triclinic box, then each of the 3\nvectors (translational velocity, angular momentum, angular velocity)\nshould be specified for the rotated coordinate axes of the general\ntriclinic box. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc\npage for more details.\n\nFor atom_style hybrid, following the 4 initial values (ID,vx,vy,vz),\nspecific values for each sub-style must be listed. The order of the\nsub-styles is the same as they were listed in the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. The sub-style specific values\nare those that are not the 5 standard ones (ID,vx,vy,vz). For\nexample, for the \"sphere\" sub-style, \"wx\", \"wy\", \"wz\" values would\nappear. These are listed in the same order they appear as listed\nabove. Thus if\n\n```lmps\natom_style hybrid electron sphere\n```\nwere used in the input script, each velocity line would have these\nfields:\n\n```\natom-ID vx vy vz ervel wx wy wz\n```\nTranslational velocities can also be (re)set by the [velocity](https://docs.lammps.org/velocity.html) command in the input script.\n\n----------\n", + "restrictions": "To read gzipped data files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n\nLabel maps are currently not supported when using the KOKKOS package.\n", + "related": "[read_dump ](https://docs.lammps.org/read_dump.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[create_atoms ](https://docs.lammps.org/create_atoms.html), [write_data ](https://docs.lammps.org/write_data.html),\n[labelmap ](https://docs.lammps.org/labelmap.html)\n" }, { "command": [ - "pair_style eff/cut" + "fix ffl" ], "syntax": [ - "pair_style eff/cut cutoff keyword args ..." + "fix ID id-group ffl tau Tstart Tstop seed [flip-type]" ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "eff/cut", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "id-group", "type": 2, "choices": [] }, { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* cutoff = global cutoff for Coulombic interactions\n* zero or more keyword/value pairs may be appended \n *      keyword = limit/eradius or pressure/evirials or ecp \n       limit/eradius args = none \n       pressure/evirials args = none \n       ecp args = type element type element ... \n       type = LAMMPS atom type (1 to Ntypes) \n       element = element symbol (e.g. H, Si) \n", - "examples": "\n```lmps\npair_style eff/cut 39.7\npair_style eff/cut 40.0 limit/eradius\npair_style eff/cut 40.0 limit/eradius pressure/evirials\npair_style eff/cut 40.0 ecp 1 Si 3 C\npair_coeff * *\npair_coeff 2 2 20.0\npair_coeff 1 s 0.320852 2.283269 0.814857\npair_coeff 3 p 22.721015 0.728733 1.103199 17.695345 6.693621\n```\n", - "html_filename": "pair_eff.html", - "short_description": "This pair style contains a LAMMPS implementation of the electron Force\nField (eFF) potential currently under development at Caltech, as\ndescribed in **Jaramillo-Botero**", - "description": "This pair style contains a LAMMPS implementation of the electron Force\nField (eFF) potential currently under development at Caltech, as\ndescribed in **Jaramillo-Botero**. The eFF for Z<6\nwas first introduced by **Su** in 2007. It has been extended to\nhigher Zs by using effective core potentials (ECPs) that now cover up\nto second and third row p-block elements of the periodic table.\n\neFF can be viewed as an approximation to QM wave packet dynamics and\nFermionic molecular dynamics, combining the ability of electronic\nstructure methods to describe atomic structure, bonding, and chemistry\nin materials, and of plasma methods to describe nonequilibrium\ndynamics of large systems with a large number of highly excited\nelectrons. Yet, eFF relies on a simplification of the electronic\nwave function in which electrons are described as floating Gaussian\nwave packets whose position and size respond to the various dynamic\nforces between interacting classical nuclear particles and spherical\nGaussian electron wave packets. The wave function is taken to be a\nHartree product of the wave packets. To compensate for the lack of\nexplicit antisymmetry in the resulting wave function, a spin-dependent\nPauli potential is included in the Hamiltonian. Substituting this\nwave function into the time-dependent Schrodinger equation produces\nequations of motion that correspond - to second order - to classical\nHamiltonian relations between electron position and size, and their\nconjugate momenta. The N-electron wave function is described as a\nproduct of one-electron Gaussian functions, whose size is a dynamical\nvariable and whose position is not constrained to a nuclear\ncenter. This form allows for straightforward propagation of the\nwave function, with time, using a simple formulation from which the\nequations of motion are then integrated with conventional MD\nalgorithms. In addition to this spin-dependent Pauli repulsion\npotential term between Gaussians, eFF includes the electron kinetic\nenergy from the Gaussians. These two terms are based on\nfirst-principles quantum mechanics. On the other hand, nuclei are\ndescribed as point charges, which interact with other nuclei and\nelectrons through standard electrostatic potential forms.\n\nThe full Hamiltonian (shown below), contains then a standard\ndescription for electrostatic interactions between a set of\ndelocalized point and Gaussian charges which include, nuclei-nuclei\n(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a\nmixed QM-classical mechanics method rather than a conventional force\nfield method (in which electron motions are averaged out into ground\nstate nuclear motions, i.e a single electronic state, and particle\ninteractions are described via empirically parameterized interatomic\npotential functions). This makes eFF uniquely suited to simulate\nmaterials over a wide range of temperatures and pressures where\nelectronically excited and ionized states of matter can occur and\ncoexist. Furthermore, the interactions between particles -nuclei and\nelectrons- reduce to the sum of a set of effective pairwise potentials\nin the eFF formulation. The *eff/cut* style computes the pairwise\nCoulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),\nand the quantum-derived Pauli (E_PR) and Kinetic energy interactions\npotentials between electrons (E_KE) for a total energy expression\ngiven as,\n\\[\n U\\left(R,r,s\\right) = E_{NN} \\left( R \\right) + E_{Ne} \\left( {R,r,s} \\right) + E_{ee} \\left( {r,s} \\right) + E_{KE} \\left( {r,s} \\right) + E_{PR} \\left( { \\uparrow \\downarrow ,S} \\right)\\]\nThe individual terms are defined as follows:\n\\[\\begin{align*} \n E_{KE} = & \\frac{\\hbar^2 }{{m_{e} }}\\sum\\limits_i {\\frac{3}{{2s_i^2 }}} \\\\\n E_{NN} = & \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i < j} {\\frac{{Z_i Z_j }}{{R_{ij} }}} \\\\\n E_{Ne} = & - \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i,j} {\\frac{{Z_i }}{{R_{ij} }}Erf\\left( {\\frac{{\\sqrt 2 R_{ij} }}{{s_j }}} \\right)} \\\\\n E_{ee} = & \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i < j} {\\frac{1}{{r_{ij} }}Erf\\left( {\\frac{{\\sqrt 2 r_{ij} }}{{\\sqrt {s_i^2 + s_j^2 } }}} \\right)} \\\\\n E_{Pauli} = & \\sum\\limits_{\\sigma _i = \\sigma _j } {E\\left( { \\uparrow \\uparrow } \\right)_{ij}} + \\sum\\limits_{\\sigma _i \\ne \\sigma _j } {E\\left( { \\uparrow \\downarrow } \\right)_{ij}} \\\\ \\end{align*} \\]\nwhere, s_i correspond to the electron sizes, the sigmas i's to the\nfixed spins of the electrons, Z_i to the charges on the nuclei, R_ij\nto the distances between the nuclei or the nuclei and electrons, and\nr_ij to the distances between electrons. For additional details see\n**Jaramillo-Botero**.\n\nThe overall electrostatics energy is given in Hartree units of energy\nby default and can be modified by an energy-conversion constant,\naccording to the units chosen (see [electron_units ](https://docs.lammps.org/units.html)). The\ncutoff Rc, given in Bohrs (by default), truncates the interaction\ndistance. The recommended cutoff for this pair style should follow\nthe minimum image criterion, i.e. half of the minimum unit cell\nlength.\n\nThis potential is designed to be used with [atom_style electron ](https://docs.lammps.org/atom_style.html) definitions, in order to handle the\ndescription of systems with interacting nuclei and explicit electrons.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *eff/cut*, the cutoff coefficient is optional. If it is not used\n(as in some of the examples above), the default global value specified\nin the pair_style command is used.\n\n----------\n\nThe *limit/eradius* and *pressure/evirials* keywords are optional.\nNeither or both must be specified. If not specified they are unset.\n\nThe *limit/eradius* keyword is used to restrain electron size from\nbecoming excessively diffuse at very high temperatures were the\nGaussian wave packet representation breaks down, and from expanding as\nfree particles to infinite size. If unset, electron radius is free to\nincrease without bounds. If set, a restraining harmonic potential of\nthe form E = 1/2k_ss\\^2 for s > L_box/2, where k_s = 1 Hartrees/Bohr\\^2,\nis applied on the electron radius.\n\nThe *pressure/evirials* keyword is used to control between two types\nof pressure computation: if unset, the computed pressure does not\ninclude the electronic radial virials contributions to the total\npressure (scalar or tensor). If set, the computed pressure will\ninclude the electronic radial virial contributions to the total\npressure (scalar and tensor).\n\nThe *ecp* keyword is used to associate an ECP representation for a\nparticular atom type. The ECP captures the orbital overlap between a\ncore pseudo particle and valence electrons within the Pauli repulsion.\nA list of type:element-symbol pairs may be provided for all ECP\nrepresentations, after the \"ecp\" keyword.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Default ECP parameters are provided for C, N, O, Al, and Si.\n > Users can modify these using the pair_coeff command as exemplified\n > above. For this, the User must distinguish between two different\n > functional forms supported, one that captures the orbital overlap\n > assuming the s-type core interacts with an s-like valence electron\n > (s-s) and another that assumes the interaction is s-p. For systems\n > that exhibit significant p-character (e.g. C, N, O) the s-p form is\n > recommended. The \"s\" ECP form requires 3 parameters and the \"p\" 5\n > parameters. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are two different pressures that can be reported for eFF\n > when defining this pair_style, one (default) that considers electrons\n > do not contribute radial virial components (i.e. electrons treated as\n > incompressible 'rigid' spheres) and one that does. The radial\n > electronic contributions to the virials are only tallied if the\n > flexible pressure option is set, and this will affect both global and\n > per-atom quantities. In principle, the true pressure of a system is\n > somewhere in between the rigid and the flexible eFF pressures, but,\n > for most cases, the difference between these two pressures will not be\n > significant over long-term averaged runs (i.e. even though the energy\n > partitioning changes, the total energy remains similar). \n > \n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This implementation of eFF gives a reasonably accurate description\n > for systems containing nuclei from Z = 1-6 in \"all electron\"\n > representations. For systems with increasingly non-spherical\n > electrons, Users should use the ECP representations. ECPs are now\n > supported and validated for most of the second and third row elements of\n > the p-block. Predefined parameters are provided for C, N, O, Al, and\n > Si. The ECP captures the orbital overlap between the core and valence\n > electrons (i.e. Pauli repulsion) with one of the functional forms: \n > \n\n\\[\\begin{align*} \n E_{Pauli(ECP_s)} = & p_1\\exp\\left(-\\frac{p_2r^2}{p_3+s^2} \\right) \\\\\n E_{Pauli(ECP_p)} = & p_1\\left( \\frac{2}{p_2/s+s/p_2} \\right)\\left( r-p_3s\\right)^2\\exp \\left[ -\\frac{p_4\\left( r-p_3s \\right)^2}{p_5+s^2} \\right] \\end{align*} \\]\nWhere the first form correspond to core interactions with s-type valence\nelectrons and the second to core interactions with p-type valence\nelectrons.\n\nThe current version adds full support for models with fixed-core and\nECP definitions. to enable larger timesteps (i.e. by avoiding the\nhigh frequency vibrational modes -translational and radial- of the 2 s\nelectrons), and in the ECP case to reduce the increased orbital\ncomplexity in higher Z elements (up to Z<18). A fixed-core should be\ndefined with a mass that includes the corresponding nuclear mass plus\nthe 2 s electrons in atomic mass units (2x5.4857990943e-4), and a\nradius equivalent to that of minimized 1s electrons (see examples\nunder /examples/PACKAGES/eff/fixed-core). An pseudo-core should be\ndescribed with a mass that includes the corresponding nuclear mass,\nplus all the core electrons (i.e no outer shell electrons), and a\nradius equivalent to that of a corresponding minimized full-electron\nsystem. The charge for a pseudo-core atom should be given by the\nnumber of outer shell electrons.\n\nIn general, eFF excels at computing the properties of materials in\nextreme conditions and tracing the system dynamics over multi-picosecond\ntimescales; this is particularly relevant where electron excitations\ncan change significantly the nature of bonding in the system. It can\ncapture with surprising accuracy the behavior of such systems because\nit describes consistently and in an unbiased manner many different\nkinds of bonds, including covalent, ionic, multicenter, ionic, and\nplasma, and how they interconvert and/or change when they become\nexcited. eFF also excels in computing the relative thermochemistry of\nisodemic reactions and conformational changes, where the bonds of the\nreactants are of the same type as the bonds of the products. eFF\nassumes that kinetic energy differences dominate the overall exchange\nenergy, which is true when the electrons present are nearly spherical\nand nodeless and valid for covalent compounds such as dense hydrogen,\nhydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth\nmetals (e.g. beryllium) and semimetals such as boron; and various\ncompounds containing ionic and/or multicenter bonds, such as boron\ndihydride.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*eff/cut* style can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is not relevant for\nthese pair styles.\n\nThe *eff/long* (not yet available) style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option for tabulation of the\nshort-range portion of the long-range Coulombic interaction.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Jaramillo-Botero)** Jaramillo-Botero, Su, Qi, Goddard, Large-scale,\nLong-term Non-adiabatic Electron Molecular Dynamics for Describing\nMaterial Properties and Phenomena in Extreme Environments, J Comp\nChem, 32, 497-512 (2011). \n \n**(Su)** Su and Goddard, Excited Electron Dynamics Modeling of Warm\nDense Matter, Phys Rev Lett, 99:185003 (2007). \n ", - "restrictions": "These pair styles will only be enabled if LAMMPS is built with the\nEFF package. It will only be enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThese pair styles require that particles store electron attributes\nsuch as radius, radial velocity, and radial force, as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html). The *electron* atom style does all of\nthis.\n\nThes pair styles require you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "pair_style sw/angle/table" - ], - "syntax": [ - "pair_style style" - ], - "args": [ - [ - { - "arg": "pair_style", + "arg": "ffl", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "tau", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style = sw/angle/table \n", - "examples": "\n```lmps\npair_style sw/angle/table\npair_coeff * * spce.sw type\n```\nUsed in example input script:\n\n```\nexamples/PACKAGES/manybody_table/in.spce_sw\n```\n", - "html_filename": "pair_sw_angle_table.html", - "short_description": "\nThe *sw/angle/table* style is a modification of the original\n[pair_style sw ](https://docs.lammps.org/pair_sw.html)", - "description": "\nThe *sw/angle/table* style is a modification of the original\n[pair_style sw ](https://docs.lammps.org/pair_sw.html). It has been developed for coarse-grained\nsimulations (of water) (**Scherer1**), but can be employed\nfor all kinds of systems. It computes a modified 3-body\n**Stillinger3** potential for the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance \\(a \\sigma\\). In contrast\nto the original *sw* style, *sw/angle/table* allows for a flexible\nthree-body term \\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\) which\nis read in as a tabulated interaction. It can be parameterized with the\ncsg_fmatch app of VOTCA as available at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca.\n\nOnly a single pair_coeff command is used with the *sw/angle/table* style\nwhich specifies a modified Stillinger-Weber potential file with\nparameters for all needed elements. These are mapped to LAMMPS atom\ntypes by specifying N_el additional arguments after the \".sw\" filename\nin the pair_coeff command, where N_el is the number of LAMMPS atom\ntypes:\n\n* \".sw\" filename\n* N_el element names = mapping of SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, imagine a file SiC.sw has Stillinger-Weber values for Si\nand C. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.sw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the SW file. The final C argument maps LAMMPS atom type 4 to\nthe C element in the SW file. If a mapping value is specified as NULL,\nthe mapping is not performed. This can be used when a *sw/angle/table*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other potentials.\n\nThe (modified) Stillinger-Weber files have a \".sw\" suffix. Lines that\nare not blank or comments (starting with #) define parameters for a\ntriplet of elements. The parameters in a single entry correspond to the\ntwo-body and three-body coefficients in the formula above. Here, also\nthe suffix \".sw\" is used though the original Stillinger-Weber file\nformat is supplemented with four additional lines per parameter block to\nspecify the tabulated three-body interaction. A single entry then\ncontains:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* a\n* \\(\\lambda\\)\n* \\(\\gamma\\)\n* \\(\\cos\\theta_0\\)\n* A\n* B\n* p\n* q\n* tol\n* filename\n* keyword\n* style\n* N\n\nThe A, B, p, and q parameters are used only for two-body interactions.\nThe \\(\\lambda\\) and \\(\\cos\\theta_0\\) parameters, only used for\nthree-body interactions in the original Stillinger-Weber style, are read\nin but ignored in this modified pair style. The \\(\\epsilon\\)\nparameter is only used for two-body interactions in this modified pair\nstyle and not for the three-body terms. The \\(\\sigma\\) and *a*\nparameters are used for both two-body and three-body\ninteractions. \\(\\gamma\\) is used only in the three-body\ninteractions, but is defined for pairs of atoms. The non-annotated\nparameters are unitless.\n\nLAMMPS introduces an additional performance-optimization parameter tol\nthat is used for both two-body and three-body interactions. In the\nStillinger-Weber potential, the interaction energies become negligibly\nsmall at atomic separations substantially less than the theoretical\ncutoff distances. LAMMPS therefore defines a virtual cutoff distance\nbased on a user defined tolerance tol. The use of the virtual cutoff\ndistance in constructing atom neighbor lists can significantly reduce\nthe neighbor list sizes and therefore the computational cost. LAMMPS\nprovides a *tol* value for each of the three-body entries so that they\ncan be separately controlled. If tol = 0.0, then the standard\nStillinger-Weber cutoff is used.\n\nThe additional parameters *filename*, *keyword*, *style*, and *N* refer\nto the tabulated angular potential\n\\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\). The tabulated angular\npotential has to be of the format as used in the [angle_style table](https://docs.lammps.org/angle_table.html) command:\n\nAn interpolation tables of length *N* is created. The interpolation is\ndone in one of 2 *styles*: *linear* or *spline*. For the *linear*\nstyle, the angle is used to find 2 surrounding table values from which\nan energy or its derivative is computed by linear interpolation. For the\n*spline* style, a cubic spline coefficients are computed and stored at\neach of the *N* values in the table. The angle is used to find the\nappropriate set of coefficients which are used to evaluate a cubic\npolynomial which computes the energy or derivative.\n\nThe *filename* specifies the file containing the tabulated energy and\nderivative values of \\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\).\nThe *keyword* then specifies a section of the file. The format of this\nfile is as follows (without the parenthesized comments):\n\n```\n# Angle potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 181 FP 0 0 EQ 90.0 (N, FP, EQ parameters)\n(blank line)\n1 0.0 200.5 2.5 (index, angle, energy, derivative)\n2 1.0 198.0 2.5\n...\n181 180.0 0.0 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the Stillinger-Weber potential file. Let Nsw = *N* in the\n\".sw\" file, and Nfile = \"N\" in the tabulated angular file. What LAMMPS\ndoes is a preliminary interpolation by creating splines using the Nfile\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and derivative values at Ntable different\npoints. The resulting tables of length Nsw are then used as described\nabove, when computing energy and force for individual angles and their\natoms. This means that if you want the interpolation tables of length\nNsw to match exactly what is in the tabulated file (with effectively no\npreliminary interpolation), you should set Nsw = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the second derivatives at the innermost and\noutermost angle settings. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they are\nestimated (less accurately) by the first two and last two derivative\nvalues in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium angle value, which is used, for example, by the [fixshake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium angle is set to\n180.0.\n\nFollowing a blank line, the next N lines of the angular table file list\nthe tabulated values. On each line, the first value is the index from 1\nto N, the second value is the angle value (in degrees), the third value\nis the energy (in energy units), and the fourth is -dE/d(theta) (also in\nenergy units). The third term is the energy of the 3-atom configuration\nfor the specified angle. The last term is the derivative of the energy\nwith respect to the angle (in degrees, not radians). Thus the units of\nthe last term are still energy, not force. The angle values must\nincrease from one line to the next. The angle values must also begin\nwith 0.0 and end with 180.0, i.e. span the full range of possible\nangles.\n\nNote that one angular potential file can contain many sections, each\nwith a tabulated potential. LAMMPS reads the file section by section\nuntil it finds one that matches the specified *keyword* of appropriate\nsection of the \".sw\" file.\n\nThe Stillinger-Weber potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain entries\nfor additional elements not being used in a particular simulation;\nLAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify SW parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom in\na three-body interaction. Thus an entry for SiCC means a Si atom with 2\nC atoms as neighbors. The parameter values used for the two-body\ninteraction come from the entry where the second and third elements are\nthe same. Thus the two-body parameters for Si interacting with C, comes\nfrom the SiCC entry. The three-body angular potential\n\\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\) can in principle be\nspecific to the three elements of the configuration. However, the user\nmust ensure that it makes physically sense. Note also that the function\n\\(\\phi_3\\) contains two exponential screening factors with parameter\nvalues from the ij pair and ik pairs. So \\(\\phi_3\\) for a C atom\nbonded to a Si atom and a second C atom will depend on the three-body\nparameters for the CSiC entry, and also on the two-body parameters for\nthe CCC and CSiSi entries. Since the order of the two neighbors is\narbitrary, the three-body parameters and the tabulated angular potential\nfor entries CSiC and CCSi should be the same. Similarly, the two-body\nparameters for entries SiCC and CSiSi should also be the same. The\nparameters used only for two-body interactions (A, B, p, and q) in\nentries whose second and third element are different (e.g. SiCSi) are\nnot used for anything and can be set to 0.0 if desired. This is also\ntrue for the parameters in \\(\\phi_3\\) that are taken from the ij and\nik pairs (\\(\\sigma\\), *a*, \\(\\gamma\\))\n\nAdditional input files and reference data can be found at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/spce/3body_sw\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as described\nabove from values in the potential file, but not for the tabulated\nangular potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Scherer1)** C. Scherer and D. Andrienko, Phys. Chem. Chem. Phys. 20, 22387-22394 (2018). \n \n**(Stillinger3)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style sw ](https://docs.lammps.org/pair_sw.html),\n[pair_style threebody/table ](https://docs.lammps.org/pair_threebody_table.html)\n\n\n----------\n\n.. _Stillinger3:\n\n**(Stillinger)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985).\n\n.. _Scherer1:\n\n**(Scherer1)** C. Scherer and D. Andrienko, Phys. Chem. Chem. Phys. 20, 22387-22394 (2018).\n" -}, -{ - "command": [ - "fix enforce2d", - "fix enforce2d/kk" - ], - "syntax": [ - "fix ID group-ID enforce2d" - ], - "args": [ - [ + }, { - "arg": "fix", - "type": 1, + "arg": "Tstart", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "enforce2d", - "type": 3, - "choices": [ - "enforce2d", - "enforce2d/kk" - ] + "arg": "[flip-type]", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* enforce2d = style name of this fix command \n", - "examples": "\n```lmps\nfix 5 all enforce2d\n```\n", - "html_filename": "fix_enforce2d.html", - "short_description": "Zero out the z-dimension velocity and force on each atom in the group", - "description": "Zero out the z-dimension velocity and force on each atom in the group.\nThis is useful when running a 2d simulation to ensure that atoms do\nnot move from their initial z coordinate.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n", - "restrictions": " none\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ffl = style name of this fix command\n* tau = thermostat parameter (positive real)\n* Tstart, Tstop = temperature ramp during the run\n* seed = random number seed to use for generating noise (positive integer)\n* one more value may be appended \n *          flip-type = determines the flipping type, can be chosen between rescale - no_flip - hard - soft, if no flip type is given, rescale will be chosen by default \n", + "examples": "\n```lmps\nfix 3 boundary ffl 10 300 300 31415\nfix 1 all ffl 100 500 500 9265 soft\n```\n", + "html_filename": "fix_ffl.html", + "short_description": "Apply a Fast-Forward Langevin Equation (FFL) thermostat as described\nin **Hijazi**", + "description": "Apply a Fast-Forward Langevin Equation (FFL) thermostat as described\nin **Hijazi**. Contrary to\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), this fix performs both\nthermostatting and evolution of the Hamiltonian equations of motion, so it\nshould not be used together with [fix nve ](https://docs.lammps.org/fix_nve.html) -- at least not\non the same atom groups.\n\nThe time-evolution of a single particle undergoing Langevin dynamics is described\nby the equations\n\\[\n \\frac {dq}{dt} = \\frac{p}{m},\\]\n\\[\n \\frac {dp}{dt} = -\\gamma p + W + F,\\]\nwhere \\(F\\) is the physical force, \\(\\gamma\\) is the friction coefficient, and \\(W\\) is a\nGaussian random force.\n\nThe friction coefficient is the inverse of the thermostat parameter : \\(\\gamma = 1/\\tau\\), with \\(\\tau\\) the thermostat parameter *tau* .\nThe thermostat parameter is given in the time units, \\(\\gamma\\) is in inverse time units.\n\nEquilibrium sampling a temperature T is obtained by specifying the\ntarget value as the *Tstart* and *Tstop* arguments, so that the internal\nconstants depending on the temperature are computed automatically.\n\nThe random number *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\nThe flipping type *flip-type* can be chosen between 4 types described in\n**Hijazi**. The flipping operation occurs during the thermostatting\nstep and it flips the momenta of the atoms. If no_flip is chosen, no flip\nwill be executed and the integration will be the same as a standard\nLangevin thermostat **Bussi3**. The other flipping types are : rescale - hard - soft.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the\nrandom number generator is not saved in restart files, this means you\ncannot do \"exact\" restarts with this fix, where the simulation\ncontinues on the same as if no restart had taken place. However, in a\nstatistical sense, a restarted simulation should produce the same\nbehavior. Note however that you should use a different seed each time\nyou restart, otherwise the same sequence of random numbers will be\nused each time, which might lead to stochastic synchronization and\nsubtle artifacts in the sampling.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n \n \n**(Bussi3)** M. Hijazi, D. M. Wilkins, M. Ceriotti, J. Chem. Phys. 148, 184109 (2018) \n ", + "restrictions": "In order to perform constant-pressure simulations please use\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), rather than\n[fix npt ](https://docs.lammps.org/fix_nh.html), to avoid duplicate integration of the\nequations of motion.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html), [fix gld ](https://docs.lammps.org/fix_gld.html), [fix gle ](https://docs.lammps.org/fix_gle.html)\n\n----------\n\n.. _Hijazi:\n\n.. _Bussi3:\n\n**(Hijazi)** M. Hijazi, D. M. Wilkins, M. Ceriotti, J. Chem. Phys. 148, 184109 (2018)\n\n**(Bussi)** G. Bussi, M. Parrinello, Phs. Rev. E 75, 056707 (2007)\n" }, { "command": [ - "min_style spin", - "min_style spin/cg" + "compute body/local" ], "syntax": [ - "min_style spin", - "min_style spin/cg", - "min_style spin/lbfgs" + "compute ID group-ID body/local input1 input2 ..." ], "args": [ [ { - "arg": "min_style", - "type": 1, - "choices": [] - }, - { - "arg": "spin", - "type": 1, - "choices": [] - } - ], - [ - { - "arg": "min_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "spin/cg", + "arg": "ID", "type": 2, "choices": [] - } - ], - [ - { - "arg": "min_style", - "type": 1, - "choices": [] }, { - "arg": "spin/lbfgs", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nmin_style spin/lbfgs\nmin_modify line spin_cubic discrete_factor 10.0\n```\n", - "html_filename": "min_spin.html", - "short_description": "Apply a minimization algorithm to use when a [minimize ](https://docs.lammps.org/minimize.html)\ncommand is performed", - "description": "Apply a minimization algorithm to use when a [minimize ](https://docs.lammps.org/minimize.html)\ncommand is performed.\n\nStyle *spin* defines a damped spin dynamics with an adaptive\ntimestep, according to:\n\\[\n \\frac{d \\vec{s}_{i}}{dt} = \\lambda\\, \\vec{s}_{i} \\times\\left( \\vec{\\omega}_{i} \\times\\vec{s}_{i} \\right)\\]\nwith \\(\\lambda\\) a damping coefficient (similar to a magnetic\ndamping). \\(\\lambda\\) can be defined by setting the\n*alpha_damp* keyword with the [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nThe minimization procedure solves this equation using an\nadaptive timestep. The value of this timestep is defined\nby the largest precession frequency that has to be solved in the\nsystem:\n\\[\n {\\Delta t}_{\\rm max} = \\frac{2\\pi}{\\kappa \\left|\\vec{\\omega}_{\\rm max} \\right|}\\]\nwith \\(\\left|\\vec{\\omega}_{\\rm max}\\right|\\) the norm of the largest precession\nfrequency in the system (across all processes, and across all replicas if a\nspin/neb calculation is performed).\n\n\\(\\kappa\\) defines a discretization factor *discrete_factor* for\nthe definition of this timestep. *discrete_factor* can be defined with\nthe [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nStyle *spin/cg* defines an orthogonal spin optimization\n(OSO) combined to a conjugate gradient (CG) algorithm.\nThe [min_modify ](https://docs.lammps.org/min_modify.html) command can be used to\ncouple the *spin/cg* to a line search procedure, and to modify the\ndiscretization factor *discrete_factor*.\nBy default, style *spin/cg* does not employ the line search procedure\nand uses the adaptive time-step technique in the same way as style *spin* .\n\nStyle *spin/lbfgs* defines an orthogonal spin optimization (OSO)\ncombined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)\nalgorithm. By default, style *spin/lbfgs* does not employ line search\nprocedure. If the line search procedure is not used then the discrete\nfactor defines the maximum root mean squared rotation angle of spins by\nequation *pi/(5\\*Kappa)*. The default value for Kappa is 10. The\n*spin_cubic* line search option can improve the convergence of the\n*spin/lbfgs* algorithm.\n\nThe [min_modify ](https://docs.lammps.org/min_modify.html) command can be used to\nactivate the line search procedure, and to modify the\ndiscretization factor *discrete_factor*.\n\nFor more information about styles *spin/cg* and *spin/lbfgs*,\nsee their implementation reported in **Ivanov1**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All the *spin* styles replace the force tolerance by a torque\n > tolerance. See [minimize ](https://docs.lammps.org/minimize.html) for more explanation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *spin/cg* and *spin/lbfgs* styles can be used\n > for magnetic NEB calculations only if the line search procedure\n > is deactivated. See [neb/spin ](https://docs.lammps.org/neb_spin.html) for more explanation.\n >\n > \n > \n\n\n**(Ivanov1)** Ivanov, Uzdin, Jonsson. arXiv preprint arXiv:1904.02669, (2019). \n ", - "restrictions": "The *spin*, *spin/cg*, and *spin/lbfgps* styles are part of the SPIN\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis minimization procedure is only applied to spin degrees of\nfreedom for a frozen lattice configuration.\n", - "related": "[min_style ](https://docs.lammps.org/min_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[min_modify ](https://docs.lammps.org/min_modify.html)\n" -}, -{ - "command": [ - "pair_style rheo" - ], - "syntax": [ - "pair_style rheo cutoff keyword values" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "rheo", + "arg": "body/local", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "harmonic/means", - "type": 3, - "choices": [ - "rho/damp", - "artificial/visc", - "harmonic/means" - ] - }, - { - "arg": "values", + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for kernel (distance units)\n* zero or more keyword/value pairs may be appended to args\n* keyword = rho/damp or artificial/visc or harmonic/means \n *      rho/damp args = density damping prefactor \\(\\xi\\) \n *      artificial/visc args = artificial viscosity prefactor \\(\\zeta\\) \n *      harmonic/means args = none \n", - "examples": "\n```lmps\npair_style rheo 3.0 rho/damp 1.0 artificial/visc 2.0\npair_coeff * *\n```\n", - "html_filename": "pair_rheo.html", - "short_description": "\nPair style *rheo* computes pressure and viscous forces between particles\nin the [rheo package ](https://docs.lammps.org/Howto_rheo.html)", - "description": "\nPair style *rheo* computes pressure and viscous forces between particles\nin the [rheo package ](https://docs.lammps.org/Howto_rheo.html). If thermal evolution is turned\non in [fix rheo ](https://docs.lammps.org/fix_rheo.html), then the pair style also calculates\nheat exchanged between particles.\n\nThe *artificial/viscosity* keyword is used to specify the magnitude\n\\(\\zeta\\) of an optional artificial viscosity contribution to forces.\nThis factor can help stabilize simulations by smoothing out small length\nscale variations in velocity fields. Artificial viscous forces typically\nare only exchanged by fluid particles. However, if interfaces are not\nreconstructed in fix rheo, fluid particles will also exchange artificial\nviscous forces with solid particles to improve stability.\n\nThe *rho/damp* keyword is used to specify the magnitude \\(\\xi\\) of\nan optional pairwise damping term between the density of particles. This\nfactor can help stabilize simulations by smoothing out small length\nscale variations in density fields. However, in systems that develop\na density gradient in equilibrium (e.g. in a hydrostatic column underlying\ngravity), this option may be inappropriate.\n\nIf particles have different viscosities or conductivities, the\n*harmonic/means* keyword changes how they are averaged before calculating\npairwise forces or heat exchanges. By default, an arithmetic averaged is\nused, however, a harmonic mean may improve stability in systems with multiple\nfluid phases with large disparities in viscosities.\n\nNo coefficients are defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html).\nThus, you need to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n", - "restrictions": "This fix is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[fix rheo/pressure ](https://docs.lammps.org/fix_rheo_pressure.html),\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\n[fix rheo/viscosity ](https://docs.lammps.org/fix_rheo_viscosity.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* body/local = style name of this compute command\n* one or more keywords may be appended\n* keyword = id or type or integer \n *        id = atom ID of the body particle \n *        type = atom type of the body particle \n *        integer = 1,2,3,etc = index of fields defined by body style \n", + "examples": "\n```lmps\ncompute 1 all body/local type 1 2 3\ncompute 1 all body/local 3 6\n```\n", + "html_filename": "compute_body_local.html", + "short_description": "Define a computation that calculates properties of individual body\nsub-particles", + "description": "Define a computation that calculates properties of individual body\nsub-particles. The number of data generated, aggregated across all\nprocessors, equals the number of body sub-particles plus the number of\nnon-body particles in the system, modified by the group parameter as\nexplained below. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for\nmore details on using body particles.\n\nThe local data stored by this command is generated by looping over all\nthe atoms. An atom will only be included if it is in the group. If\nthe atom is a body particle, then its \\(N\\) sub-particles will be looped\nover, and it will contribute \\(N\\) data to the count of data. If it\nis not a body particle, it will contribute 1 datum.\n\nFor both body particles and non-body particles, the *id* keyword\nwill store the ID of the particle.\n\nFor both body particles and non-body particles, the *type* keyword\nwill store the type of the particle.\n\nThe *integer* keywords mean different things for body and non-body\nparticles. If the atom is not a body particle, only its *x*, *y*, *z*\ncoordinates can be referenced, using the *integer* keywords 1,2,3.\nNote that this means that if you want to access more fields than this\nfor body particles, then you cannot include non-body particles in the\ngroup.\n\nFor a body particle, the *integer* keywords refer to fields calculated\nby the body style for each sub-particle. The body style, as specified\nby the [atom_style body ](https://docs.lammps.org/atom_style.html), determines how many fields\nexist and what they are. See the [Howto_body ](https://docs.lammps.org/Howto_body.html) doc\npage for details of the different styles.\n\nHere is an example of how to output body information using the [dump local ](https://docs.lammps.org/dump.html) command with this compute. If fields 1, 2, and 3 for the\nbody sub-particles are (*x*, *y*, *z*) coordinates, then the dump file will be\nformatted similar to the output of a [dump atom or custom ](https://docs.lammps.org/dump.html)\ncommand.\n\n```lmps\ncompute 1 all body/local type 1 2 3\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of data as described above. If a single keyword\nis specified, a local vector is produced. If two or more keywords are\nspecified, a local array is produced where the number of columns = the\nnumber of keywords. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe [units ](https://docs.lammps.org/units.html) for output values depend on the body style.\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "compute xrd" + "compute rdf" ], "syntax": [ - "compute ID group-ID xrd lambda type1 type2 ... typeN keyword value ..." + "compute ID group-ID rdf Nbin itype1 jtype1 itype2 jtype2 ... keyword/value ..." ], "args": [ [ @@ -21640,117 +20883,100 @@ export const command_docs = [ "choices": [] }, { - "arg": "xrd", + "arg": "rdf", "type": 1, "choices": [] }, { - "arg": "lambda", + "arg": "Nbin", "type": 2, "choices": [] }, { - "arg": "type1", + "arg": "itype1", "type": 2, "choices": [] }, { - "arg": "type2", + "arg": "jtype1", "type": 2, "choices": [] }, { - "arg": "typeN", + "arg": "itype2", "type": 2, "choices": [] }, { - "arg": "echo", - "type": 3, - "choices": [ - "2Theta", - "c", - "LP", - "manual", - "echo" - ] + "arg": "jtype2", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "keyword/value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* xrd = style name of this compute command\n* lambda = wavelength of incident radiation (length units)\n* type1 type2 ... typeN = chemical symbol of each atom type (see valid options below)\n* zero or more keyword/value pairs may be appended\n* keyword = 2Theta or c or LP or manual or echo \n *        2Theta values = Min2Theta Max2Theta \n         Min2Theta,Max2Theta = minimum and maximum 2 theta range to explore \n         (radians or degrees) \n *        c values = c1 c2 c3 \n         c1,c2,c3 = parameters to adjust the spacing of the reciprocal \n         lattice nodes in the h, k, and l directions respectively \n *        LP value = switch to apply Lorentz-polarization factor \n         0/1 = off/on \n *        manual = flag to use manual spacing of reciprocal lattice points \n         based on the values of the c parameters \n *        echo = flag to provide extra output for debugging purposes \n", - "examples": "\n```lmps\ncompute 1 all xrd 1.541838 Al O 2Theta 0.087 0.87 c 1 1 1 LP 1 echo\ncompute 2 all xrd 1.541838 Al O 2Theta 10 100 c 0.05 0.05 0.05 LP 1 manual\n\nfix 1 all ave/histo/weight 1 1 1 0.087 0.87 250 c_1[1] c_1[2] mode vector file Rad2Theta.xrd\nfix 2 all ave/histo/weight 1 1 1 10 100 250 c_2[1] c_2[2] mode vector file Deg2Theta.xrd\n```\n", - "html_filename": "compute_xrd.html", - "short_description": "Define a computation that calculates X-ray diffraction intensity as described\nin **xrd-Coleman** on a mesh of reciprocal lattice nodes defined\nby the entire simulation domain (or manually) using a simulated radiation\nof wavelength *lambda*", - "description": "Define a computation that calculates X-ray diffraction intensity as described\nin **xrd-Coleman** on a mesh of reciprocal lattice nodes defined\nby the entire simulation domain (or manually) using a simulated radiation\nof wavelength *lambda*.\n\nThe X-ray diffraction intensity, \\(I\\), at each reciprocal lattice point,\n\\(k\\), is computed from the structure factor, \\(F\\), using the\nequations:\n\\[\\begin{align*} \n I &= L_p(\\theta)\\frac{F^{*}F}{N} \\\\\n F(\\mathbf{k}) &= \\sum_{j=1}^{N}f_j(\\theta)exp(2\\pi i \\mathbf{k}\\cdot \\mathbf{r}_j) \\\\\n L_p(\\theta) &= \\frac{1+\\cos^2(2\\theta)}{\\cos(\\theta)\\sin^2(\\theta)} \\\\\n \\frac{\\sin(\\theta)}{\\lambda} &= \\frac{\\left\\lVert\\mathbf{k}\\right\\rVert}{2} \\end{align*} \\]\nHere, \\(\\mathbf{k}\\) is the location of the reciprocal lattice node,\n\\(r_j\\) is the position of each atom, \\(f_j\\) are atomic\nscattering factors, *Lp* is the Lorentz-polarization factor, and\n\\(\\theta\\) is the scattering angle of diffraction. The\nLorentz-polarization factor can be turned off using the optional *LP*\nkeyword.\n\nDiffraction intensities are calculated on a three-dimensional mesh of\nreciprocal lattice nodes. The mesh spacing is defined either (a) by the\nentire simulation domain or (b) manually using selected values as shown\nin the 2D diagram below.\n\n ![Image](img/xrd_mesh.png) \n\nFor a mesh defined by the simulation domain, a rectilinear grid is\nconstructed with spacing \\(c A^{-1}\\) along each reciprocal lattice\naxis, where \\(A\\) is a matrix containing the vectors corresponding\nto the edges of the simulation cell. If one or two directions has\nnon-periodic boundary conditions, then the spacing in these directions\nis defined from the average of the (inversed) box lengths with periodic\nboundary conditions. Meshes defined by the simulation domain must\ncontain at least one periodic boundary.\n\nIf the *manual* flag is included, the mesh of reciprocal lattice nodes\nwill be defined using the *c* values for the spacing along each\nreciprocal lattice axis. Note that manual mapping of the reciprocal\nspace mesh is good for comparing diffraction results from multiple\nsimulations; however, it can reduce the likelihood that Bragg\nreflections will be satisfied unless small spacing parameters\n(\\(< 0.05~\\mathring{\\textrm{A}}^{-1}\\)) are implemented.\nMeshes with manual spacing do not require a periodic boundary.\n\nThe limits of the reciprocal lattice mesh are determined by range of\nscattering angles explored. The *2Theta* parameter allows the user\nto reduce the scattering angle range to only the region of interest\nwhich reduces the cost of the computation.\n\nThe atomic scattering factor, \\(f_j\\), accounts for the reduction in\ndiffraction intensity due to Compton scattering. Compute xrd uses\nanalytical approximations of the atomic scattering factors that vary\nfor each atom type (type1 type2 ... typeN) and angle of diffraction.\nThe analytic approximation is computed using the formula\n**Colliex**:\n\\[\n f_j\\left ( \\frac{\\sin(\\theta)}{\\lambda} \\right )=\\sum_{i=1}^{4}\n a_i \\exp\\left ( -b_i \\frac{\\sin^{2}(\\theta)}{\\lambda^{2}} \\right )+c\\]\nCoefficients parameterized by **Peng** are assigned for each\natom type designating the chemical symbol and charge of each atom\ntype. Valid chemical symbols for compute xrd are:\n\n| | | | | |\n|---|---|---|---|---|\n| H | He1- | He | Li | Li1+ |\n| Be | Be2+ | B | C | Cval |\n| N | O | O1- | F | F1- |\n| Ne | Na | Na1+ | Mg | Mg2+ |\n| Al | Al3+ | Si | Sival | Si4+ |\n| P | S | Cl | Cl1- | Ar |\n| K | Ca | Ca2+ | Sc | Sc3+ |\n| Ti | Ti2+ | Ti3+ | Ti4+ | V |\n| V2+ | V3+ | V5+ | Cr | Cr2+ |\n| Cr3+ | Mn | Mn2+ | Mn3+ | Mn4+ |\n| Fe | Fe2+ | Fe3+ | Co | Co2+ |\n| Co | Ni | Ni2+ | Ni3+ | Cu |\n| Cu1+ | Cu2+ | Zn | Zn2+ | Ga |\n| Ga3+ | Ge | Ge4+ | As | Se |\n| Br | Br1- | Kr | Rb | Rb1+ |\n| Sr | Sr2+ | Y | Y3+ | Zr |\n| Zr4+ | Nb | Nb3+ | Nb5+ | Mo |\n| Mo3+ | Mo5+ | Mo6+ | Tc | Ru |\n| Ru3+ | Ru4+ | Rh | Rh3+ | Rh4+ |\n| Pd | Pd2+ | Pd4+ | Ag | Ag1+ |\n| Ag2+ | Cd | Cd2+ | In | In3+ |\n| Sn | Sn2+ | Sn4+ | Sb | Sb3+ |\n| Sb5+ | Te | I | I1- | Xe |\n| Cs | Cs1+ | Ba | Ba2+ | La |\n| La3+ | Ce | Ce3+ | Ce4+ | Pr |\n| Pr3+ | Pr4+ | Nd | Nd3+ | Pm |\n| Pm3+ | Sm | Sm3+ | Eu | Eu2+ |\n| Eu3+ | Gd | Gd3+ | Tb | Tb3+ |\n| Dy | Dy3+ | Ho | Ho3+ | Er |\n| Er3+ | Tm | Tm3+ | Yb | Yb2+ |\n| Yb3+ | Lu | Lu3+ | Hf | Hf4+ |\n| Ta | Ta5+ | W | W6+ | Re |\n| Os | Os4+ | Ir | Ir3+ | Ir4+ |\n| Pt | Pt2+ | Pt4+ | Au | Au1+ |\n| Au3+ | Hg | Hg1+ | Hg2+ | Tl |\n| Tl1+ | Tl3+ | Pb | Pb2+ | Pb4+ |\n| Bi | Bi3+ | Bi5+ | Po | At |\n| Rn | Fr | Ra | Ra2+ | Ac |\n| Ac3+ | Th | Th4+ | Pa | U |\n| U3+ | U4+ | U6+ | Np | Np3+ |\n| Np4+ | Np6+ | Pu | Pu3+ | Pu4+ |\n| Pu6+ | Am | Cm | Bk | Cf |\n\nIf the *echo* keyword is specified, compute xrd will provide extra\nreporting information to the screen.\n\n #### Output info\n\nThis compute calculates a global array. The number of rows in the\narray is the number of reciprocal lattice nodes that are explored\nwhich by the mesh. The global array has two columns.\n\nThe first column contains the diffraction angle in the units (radians\nor degrees) provided with the *2Theta* values. The second column contains\nthe computed diffraction intensities as described above.\n\nThe array can be accessed by any command that uses global values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nAll array values calculated by this compute are \"intensive\".\n\n**(xrd-Coleman)** Coleman, Spearot, Capolungo, MSMSE, 21, 055020\n(2013). \n \n**(Colliex)** Colliex et al. International Tables for Crystallography\nVolume C: Mathematical and Chemical Tables, 249-429 (2004). \n \n**(Peng)** Peng, Ren, Dudarev, Whelan, Acta Crystallogr. A, 52, 257-76\n(1996). \n ", - "restrictions": "This compute is part of the DIFFRACTION package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe compute_xrd command does not work for triclinic cells.\n", - "related": "[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[compute saed ](https://docs.lammps.org/compute_saed.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rdf = style name of this compute command\n* Nbin = number of RDF bins\n* itypeN = central atom type for Nth RDF histogram (integer, type label, or asterisk form)\n* jtypeN = distribution atom type for Nth RDF histogram (integer, type label, or asterisk form)\n* zero or more keyword/value pairs may be appended\n* keyword = cutoff \n *        cutoff value = Rcut \n         Rcut = cutoff distance for RDF computation (distance units) \n", + "examples": "\n```lmps\ncompute 1 all rdf 100\ncompute 1 all rdf 100 1 1\ncompute 1 all rdf 100 * 3 cutoff 5.0\ncompute 1 fluid rdf 500 1 1 1 2 2 1 2 2\ncompute 1 fluid rdf 500 1*3 2 5 *10 cutoff 3.5\n```\n", + "html_filename": "compute_rdf.html", + "short_description": "Define a computation that calculates the radial distribution function\n(RDF), also called \\(g(r)\\), and the coordination number for a group of\nparticles", + "description": "Define a computation that calculates the radial distribution function\n(RDF), also called \\(g(r)\\), and the coordination number for a group of\nparticles. Both are calculated in histogram form by binning pairwise\ndistances into *Nbin* bins from 0.0 to the maximum force cutoff\ndefined by the [pair_style ](https://docs.lammps.org/pair_style.html) command or the cutoff\ndistance *Rcut* specified via the *cutoff* keyword. The bins are of\nuniform size in radial distance. Thus a single bin encompasses a thin\nshell of distances in 3d and a thin ring of distances in 2d.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses a neighbor list, it also means\n > those pairs will not be included in the RDF. This does not apply when\n > using long-range coulomb interactions (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g., \\(1.0 \\times 10^{-50}\\)). Another workaround is to write a\n > dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the RDF for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\nBy default the RDF is computed out to the maximum force cutoff defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command. If the *cutoff* keyword\nis used, then the RDF is computed accurately out to the *Rcut* \\(> 0.0\\)\ndistance specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, you should only use the *cutoff* keyword if no pair\n > style is defined (e.g., the [rerun ](https://docs.lammps.org/rerun.html) command is being used to\n > post-process a dump file of snapshots) or if you really want the RDF\n > for distances beyond the pair_style force cutoff and cannot easily\n > post-process a dump file to calculate it. This is because using the\n > *cutoff* keyword incurs extra computation and possibly communication,\n > which may slow down your simulation. If you specify *Rcut* \\(\\le\\)\n > force cutoff, you will force an additional neighbor list to be built at\n > every timestep this command is invoked (or every reneighboring\n > timestep, whichever is less frequent), which is inefficient. LAMMPS\n > will warn you if this is the case. If you specify a *Rcut* > force\n > cutoff, you must ensure ghost atom information out to *Rcut* + *skin*\n > is communicated, via the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html)\n > command, else the RDF computation cannot be performed, and LAMMPS will\n > give an error message. The *skin* value is what is specified with the\n > [neighbor ](https://docs.lammps.org/neighbor.html) command. In this case, you are forcing a\n > large neighbor list to be built just for the RDF computation, and\n > extra communication to be performed every timestep. \n > \n\nThe *itypeN* and *jtypeN* arguments are optional. These arguments\nmust come in pairs. If no pairs are listed, then a single histogram\nis computed for \\(g(r)\\) between all atom types. If one or more pairs are\nlisted, then a separate histogram is generated for each\n*itype*,\\ *jtype* pair.\n\nThe *itypeN* and *jtypeN* settings can be specified in one of three\nways. One or both of the types in the I,J pair can be a\n[type label ](https://docs.lammps.org/Howto_type_labels.html). Or an explicit numeric value can be\nused, as in the fourth example above. Or a wild-card asterisk can be used\nto specify a range of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"m\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types, then an asterisk\nwith no numeric values means all types from 1 to \\(N\\). A leading\nasterisk means all types from 1 to n (inclusive). A trailing asterisk\nmeans all types from m to \\(N\\) (inclusive). A middle asterisk means\nall types from m to n (inclusive).\n\nIf both *itypeN* and *jtypeN* are single values, as in the fourth example\nabove, this means that a \\(g(r)\\) is computed where atoms of type *itypeN*\nare the central atom, and atoms of type *jtypeN* are the distribution\natom. If either *itypeN* and *jtypeN* represent a range of values via\nthe wild-card asterisk, as in the fifth example above, this means that a\n\\(g(r)\\) is computed where atoms of any of the range of types represented\nby *itypeN* are the central atom, and atoms of any of the range of\ntypes represented by *jtypeN* are the distribution atom.\n\nPairwise distances are generated by looping over a pairwise neighbor\nlist, just as they would be in a [pair_style ](https://docs.lammps.org/pair_style.html)\ncomputation. The distance between two atoms \\(I\\) and \\(J\\) is\nincluded in a specific histogram if the following criteria are met:\n\n* atoms \\(I\\) and \\(J\\) are both in the specified compute group\n* the distance between atoms \\(I\\) and \\(J\\) is less than the maximum\n force cutoff\n* the type of the \\(I\\) atom matches *itypeN* (one or a range of types)\n* the type of the \\(J\\) atom matches *jtypeN* (one or a range of types)\n\nIt is OK if a particular pairwise distance is included in more than\none individual histogram, due to the way the *itypeN* and *jtypeN*\narguments are specified.\n\nThe \\(g(r)\\) value for a bin is calculated from the histogram count by\nscaling it by the idealized number of how many counts there would be\nif atoms of type *jtypeN* were uniformly distributed. Thus it\ninvolves the count of *itypeN* atoms, the count of *jtypeN* atoms, the\nvolume of the entire simulation box, and the volume of the bin's thin\nshell in 3d (or the area of the bin's thin ring in 2d).\n\nA coordination number \\(\\mathrm{coord}(r)\\) is also calculated, which is\nthe number of atoms of type *jtypeN* within the current bin or closer, averaged\nover atoms of type *itypeN* . This is calculated as the area- or\nvolume-weighted sum of \\(g(r)\\) values over all bins up to and including\nthe current bin, multiplied by the global average volume density of\natoms of type *jtypeN*.\n\nThe simplest way to output the results of the compute rdf calculation\nto a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for\nexample:\n\n```lmps\ncompute myRDF all rdf 50\nfix 1 all ave/time 100 1 100 c_myRDF[*] file tmp.rdf mode vector\n```\n #### Output info\n\nThis compute calculates a global array in which the number of rows is\n*Nbins* and the number of columns is \\(1 + 2N_\\text{pairs}\\), where\n\\(N_\\text{pairs}\\) is the number of \\(I,J\\) pairings specified.\nThe first column has the bin coordinate (center of the bin), and each\nsuccessive set of two columns has the \\(g(r)\\) and \\(\\text{coord}(r)\\)\nvalues for a specific set of *itypeN* versus *jtypeN* interactions,\nas described above. These values can be used\nby any command that uses a global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"intensive\".\n\nThe first column of array values will be in distance\n[units ](https://docs.lammps.org/units.html). The \\(g(r)\\) columns of array values are normalized\nnumbers \\(\\ge 0.0\\). The coordination number columns of array values are\nalso numbers \\(\\ge 0.0\\).\n", + "restrictions": "By default, the RDF is not computed for distances longer than the\nlargest force cutoff, since the neighbor list creation will only contain\npairs up to that distance (plus neighbor list skin). This distance can\nbe increased using the *cutoff* keyword but this keyword is only valid\nwith [neighbor styles 'bin' and 'nsq' ](https://docs.lammps.org/neighbor.html).\n\nIf you want an RDF for larger distances, you can also use the\n[rerun ](https://docs.lammps.org/rerun.html) command to post-process a dump file, use [pairstyle zero ](https://docs.lammps.org/pair_zero.html) and set the force cutoff to be longer in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary and with pair style zero you are not computing any forces, and\nyou are not running dynamics you are not changing the model that\ngenerated the trajectory.\n\nThe definition of \\(g(r)\\) used by LAMMPS is only appropriate for\ncharacterizing atoms that are uniformly distributed throughout the\nsimulation cell. In such cases, the coordination number is still correct\nand meaningful. As an example, if a large simulation cell contains only\none atom of type *itypeN* and one of *jtypeN*, then \\(g(r)\\) will\nregister an arbitrarily large spike at whatever distance they happen to\nbe at, and zero everywhere else. The function \\(\\text{coord}(r)\\)\nwill show a step change from zero to one at the location of the spike in\n\\(g(r)\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >compute rdf can handle dynamic groups and systems where atoms\n > are added or removed, but this causes that certain normalization\n > parameters need to be re-computed in every step and include collective\n > communication operations. This will reduce performance and limit\n > parallel efficiency and scaling. For systems, where only the type\n > of atoms changes (e.g., when using [fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)),\n > you need to explicitly request the dynamic normalization updates\n > via [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) \n > \n\n", + "related": "[fix ave/time ](https://docs.lammps.org/fix_ave_time.html), [compute_modify ](https://docs.lammps.org/compute_modify.html),\n[compute adf ](https://docs.lammps.org/compute_adf.html)\n" }, { "command": [ - "pair_style aip/water/2dm" + "compute temp/region/eff" ], "syntax": [ - "pair_style [hybrid/overlay ...] aip/water/2dm cutoff tap_flag" + "compute ID group-ID temp/region/eff region-ID" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "aip/water/2dm", + "arg": "temp/region/eff", "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] - }, - { - "arg": "tap_flag", + "arg": "region-ID", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style hybrid/overlay aip/water/2dm 16.0 1\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm C Ow Hw\n\npair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5\npair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O\npair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H\npair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm C Ow Hw\n\npair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 3 4 1 1 0.1546 10 8.5 coul/shield 16.0 1\npair_coeff 1*2 1*2 none\npair_coeff 3 3 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O\npair_coeff 3 4 lj/cut/tip4p/long 0.0 0.0 # O-H\npair_coeff 4 4 lj/cut/tip4p/long 0.0 0.0 # H-H\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm B N Ow Hw\npair_coeff 1 3 coul/shield 1.333\npair_coeff 1 4 coul/shield 1.333\npair_coeff 2 3 coul/shield 1.333\npair_coeff 2 4 coul/shield 1.333\n```\n", - "html_filename": "pair_aip_water_2dm.html", - "short_description": "\nThe *aip/water/2dm* style computes the anisotropic interfacial potential\n(AIP) potential for interfaces of water with two-dimensional (2D)\nmaterials as described in **Feng1** and **Feng2**", - "description": "\nThe *aip/water/2dm* style computes the anisotropic interfacial potential\n(AIP) potential for interfaces of water with two-dimensional (2D)\nmaterials as described in **Feng1** and **Feng2**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This pair style uses the atomic normal vector definition from\n > **Feng1**), where the atomic normal vectors of the\n > hydrogen atoms are assumed to lie along the corresponding\n > oxygen-hydrogen bonds and the normal vector of the central oxygen\n > atom is defined as their average. \n > \n\nThe provided parameter file, ``CBNOH.aip.water.2dm``, is intended for use\nwith *metal* [units ](https://docs.lammps.org/units.html), with energies in meV. Two additional\nparameters, *S*, and *rcut* are included in the parameter file. *S* is\ndesigned to facilitate scaling of energies; *rcut* is the cutoff for an\ninternal, short distance neighbor list that is generated for speeding up\nthe calculation of the normals for all atom pairs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the provided parameter file,\n > ``CBNOH.aip.water.2dm``, are fitted with the taper function enabled by\n > setting the cutoff equal to 16.0 Angstrom. Using a different cutoff\n > or taper function setting should be carefully checked as they can\n > lead to significant errors. These parameters provide a good\n > description in both short- and long-range interaction regimes. This\n > is essential for simulations in high pressure regime (i.e., the\n > interlayer distance is smaller than the equilibrium distance). \n > \n\nThis potential must be used in combination with hybrid/overlay. Other\ninteractions can be set to zero using [pair_coeff settings](https://docs.lammps.org/pair_coeff.html) with the pair style set to *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [computepair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2. The 2\nvalues correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair aip/water/2dm\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Feng1)** Z. Feng, \n \n**(Feng2)** Z. Feng, \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe ``CBNOH.aip.water.2dm`` potential file provided with LAMMPS is\nparameterized for *metal* units. You can use this pair style with any\nLAMMPS units, but you would need to create your own potential file with\nparameters in the appropriate units, if your simulation does not use\n*metal* units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/region/eff = style name of this compute command\n* region-ID = ID of region to use for choosing atoms \n", + "examples": "\n```lmps\ncompute mine flow temp/region/eff boundary\n```\n", + "html_filename": "compute_temp_region_eff.html", + "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, within a geometric region using the electron force field", + "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, within a geometric region using the electron force field.\nA compute of this style can be used by commands that compute a\ntemperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html)).\n\nThe operation of this compute is exactly like that described by the\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html) command, except that\nthe formula for the temperature itself includes the radial electron\nvelocity contributions, as discussed by the\n[compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "pair_style sw", - "pair_style sw/gpu", - "pair_style sw/intel", - "pair_style sw/kk", - "pair_style sw/omp", - "pair_style sw/mod", - "pair_style sw/mod/omp" + "pair_style meam/sw/spline" ], "syntax": [ - "pair_style style keyword values" + "pair_style meam/sw/spline" ], "args": [ [ @@ -21760,49 +20986,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "sw/mod/omp", - "type": 3, - "choices": [ - "sw", - "sw/mod", - "sw/gpu", - "sw/intel", - "sw/kk", - "sw/omp", - "sw/mod/omp" - ] - }, - { - "arg": "threebody", - "type": 3, - "choices": [ - "maxdelcs", - "threebody" - ] - }, - { - "arg": "values", - "type": 2, + "arg": "meam/sw/spline", + "type": 1, "choices": [] } ] ], - "parameters": "* style = sw or sw/mod\n* keyword = maxdelcs or threebody \n *        maxdelcs value = delta1 delta2 (optional, sw/mod only) \n         delta1 = The minimum thershold for the variation of cosine of three-body angle \n         delta2 = The maximum threshold for the variation of cosine of three-body angle \n *        threebody value = on or off (optional, sw only) \n         on (default) = Compute both the three-body and two-body terms of the potential \n         off = Compute only the two-body term of the potential \n", - "examples": "\n```lmps\npair_style sw\npair_coeff * * si.sw Si\npair_coeff * * GaN.sw Ga N Ga\n\npair_style sw/mod maxdelcs 0.25 0.35\npair_coeff * * tmd.sw.mod Mo S S\n\npair_style hybrid sw threebody on sw threebody off\npair_coeff * * sw 1 mW_xL.sw mW NULL\npair_coeff 1 2 sw 2 mW_xL.sw mW xL\npair_coeff 2 2 sw 2 mW_xL.sw mW xL\n```\n", - "html_filename": "pair_sw.html", - "short_description": "The *sw* style computes a 3-body **Stillinger2**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = \\lambda_{ijk} \\epsilon_{ijk} \\left[ \\cos \\theta_{ijk} -\n \\cos \\theta_{0ijk} \\right]^2\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term", - "description": "The *sw* style computes a 3-body **Stillinger2**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = \\lambda_{ijk} \\epsilon_{ijk} \\left[ \\cos \\theta_{ijk} -\n \\cos \\theta_{0ijk} \\right]^2\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance \\(a \\)\\sigma`.\n\nThe *sw/mod* style is designed for simulations of materials when\ndistinguishing three-body angles are necessary, such as borophene and\ntransition metal dichalcogenides, which cannot be described by the\noriginal code for the Stillinger-Weber potential. For instance, there\nare several types of angles around each Mo atom in `MoS_2`, and some\nunnecessary angle types should be excluded in the three-body\ninteraction. Such exclusion may be realized by selecting proper angle\ntypes directly. The exclusion of unnecessary angles is achieved here by\nthe cut-off function (`f_C(\\delta)`), which induces only minimum\nmodifications for LAMMPS.\n\nValidation, benchmark tests, and applications of the *sw/mod* style\ncan be found in **Jiang2** and **Jiang3**.\n\nThe *sw/mod* style computes the energy E of a system of atoms, whose\npotential function is mostly the same as the Stillinger-Weber\npotential. The only modification is in the three-body term, where the\nvalue of \\(\\delta = \\cos \\theta_{ijk} - \\cos \\theta_{0ijk}\\) used in\nthe original energy and force expression is scaled by a switching factor\n\\(f_C(\\delta)\\):\n\\[\\begin{align*} \n f_C(\\delta) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & \\left| \\delta \\right| < \\delta_1 \\\\\n \\frac{1}{2} + \\frac{1}{2} \\cos \\left( \\pi \\frac{\\left| \\delta \\right| - \\delta_1}{\\delta_2 - \\delta_1} \\right) &\n \\delta_1 < \\left| \\delta \\right| < \\delta_2 \\\\\n 0 & \\left| \\delta \\right| > \\delta_2\n \\end{array} \\right. \\\\ \\end{align*} \\]\nThis cut-off function decreases smoothly from 1 to 0 over the range\n\\([\\delta_1, \\delta_2]\\). This smoothly turns off the energy and\nforce contributions for \\(\\left| \\delta \\right| > \\delta_2\\). It is\nsuggested that \\(\\delta 1\\) and \\(\\delta_2\\) to be the value\naround \\(0.5 \\left| \\cos \\theta_1 - \\cos \\theta_2 \\right|\\), with\n\\(\\theta_1\\) and \\(\\theta_2\\) as the different types of angles\naround an atom. For borophene and transition metal dichalcogenides,\n\\(\\delta_1 = 0.25\\) and \\(\\delta_2 = 0.35\\). This value enables\nthe cut-off function to exclude unnecessary angles in the three-body SW\nterms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cut-off function is just to be used as a technique to exclude\n > some unnecessary angles, and it has no physical meaning. It should be\n > noted that the force and potential are inconsistent with each other\n > in the decaying range of the cut-off function, as the angle\n > dependence for the cut-off function is not implemented in the force\n > (first derivation of potential). However, the angle variation is\n > much smaller than the given threshold value for actual simulations,\n > so the inconsistency between potential and force can be neglected in\n > actual simulations. \n > \n\n\nThe *threebody* keyword is optional and determines whether or not the\nthree-body term of the potential is calculated. The default value is\n\"on\" and it is only available for the plain *sw* pair style variants,\nbut not available for the *sw/mod* and [sw/angle/table](https://docs.lammps.org/pair_sw_angle_table.html) pair style variants. To turn off the threebody\ncontributions all \\(\\lambda_{ijk}\\) parameters from the potential\nfile are forcibly set to 0. In addition the pair style implementation\nmay employ code optimizations for the *threebody off* setting that can\nresult in significant speedups versus the default. These code optimizations\nare currently only available for the MANYBODY and OPENMP packages.\n\nOnly a single pair_coeff command is used with the *sw* and *sw/mod*\nstyles which specifies a Stillinger-Weber potential file with parameters\nfor all needed elements, except for when the *threebody off* setting is\nused (see note below). These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.sw has Stillinger-Weber values for\nSi and C. If your LAMMPS simulation has 4 atoms types and you want\nthe first 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_style sw\npair_coeff * * SiC.sw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1, 2, and 3 to the Si\nelement in the SW file. The final C argument maps LAMMPS atom type 4 to\nthe C element in the SW file. If an argument value is specified as\nNULL, the mapping is not performed. This can be used when an *sw*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other potentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *threebody off* keyword is used, multiple pair_coeff\n > commands may be used to specific the pairs of atoms which don't\n > require three-body term. In these cases, the first 2 arguments are\n > not required to be \\* \\*, the potential parameter file is only read\n > by the first [pair_coeff command ](https://docs.lammps.org/pair_coeff.html) and the element\n > to atom type mappings must be consistent across all *pair_coeff*\n > statements. If not LAMMPS will abort with an error. \n > \n\nStillinger-Weber files in the *potentials* directory of the LAMMPS\ndistribution have a \".sw\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* a\n* \\(\\lambda\\)\n* \\(\\gamma\\)\n* \\(\\cos\\theta_0\\)\n* A\n* B\n* p\n* q\n* tol\n\nThe A, B, p, and q parameters are used only for two-body interactions.\nThe \\(\\lambda\\) and \\(\\cos\\theta_0\\) parameters are used only\nfor three-body interactions. The \\(\\epsilon\\), \\(\\sigma\\) and\n*a* parameters are used for both two-body and three-body\ninteractions. \\(\\gamma\\) is used only in the three-body\ninteractions, but is defined for pairs of atoms. The non-annotated\nparameters are unitless.\n\nLAMMPS introduces an additional performance-optimization parameter tol\nthat is used for both two-body and three-body interactions. In the\nStillinger-Weber potential, the interaction energies become negligibly\nsmall at atomic separations substantially less than the theoretical\ncutoff distances. LAMMPS therefore defines a virtual cutoff distance\nbased on a user defined tolerance tol. The use of the virtual cutoff\ndistance in constructing atom neighbor lists can significantly reduce\nthe neighbor list sizes and therefore the computational cost. LAMMPS\nprovides a *tol* value for each of the three-body entries so that they\ncan be separately controlled. If tol = 0.0, then the standard\nStillinger-Weber cutoff is used.\n\nThe Stillinger-Weber potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify SW parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction. Thus an entry for SiCC means a Si atom\nwith 2 C atoms as neighbors. The parameter values used for the\ntwo-body interaction come from the entry where the second and third\nelements are the same. Thus the two-body parameters for Si\ninteracting with C, comes from the SiCC entry. The three-body\nparameters can in principle be specific to the three elements of the\nconfiguration. In the literature, however, the three-body parameters\nare usually defined by simple formulas involving two sets of pairwise\nparameters, corresponding to the ij and ik pairs, where i is the\ncenter atom. The user must ensure that the correct combining rule is\nused to calculate the values of the three-body parameters for\nalloys. Note also that the function \\(\\phi_3\\) contains two exponential\nscreening factors with parameter values from the ij pair and ik\npairs. So \\(\\phi_3\\) for a C atom bonded to a Si atom and a second C atom\nwill depend on the three-body parameters for the CSiC entry, and also\non the two-body parameters for the CCC and CSiSi entries. Since the\norder of the two neighbors is arbitrary, the three-body parameters for\nentries CSiC and CCSi should be the same. Similarly, the two-body\nparameters for entries SiCC and CSiSi should also be the same. The\nparameters used only for two-body interactions (A, B, p, and q) in\nentries whose second and third element are different (e.g. SiCSi) are not\nused for anything and can be set to 0.0 if desired.\nThis is also true for the parameters in \\(\\phi_3\\) that are\ntaken from the ij and ik pairs (\\(\\sigma\\), *a*, \\(\\gamma\\))\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the INTEL package with this style, there is an additional\n > 5 to 10 percent performance improvement when the Stillinger-Weber\n > parameters p and q are set to 4 and 0 respectively. These\n > parameters are common for modeling silicon and water. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of the *sw* pair style is only enabled and\nsupported for the case of the *threebody off* setting.\n\n----------\n\n**(Stillinger2)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985). \n \n**(Jiang2)** J.-W. Jiang, Nanotechnology 26, 315706 (2015). \n \n**(Jiang3)** J.-W. Jiang, Acta Mech. Solida. Sin 32, 17 (2019). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Stillinger-Weber potential files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the sw or sw/mod pair styles with any LAMMPS units, but you\nwould need to create your own SW potential file with coefficients listed\nin the appropriate units if your simulation does not use \"metal\" units.\nIf the potential file contains a 'UNITS:' metadata tag in the first line\nof the potential file, then LAMMPS can convert it transparently between\n\"metal\" and \"real\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style meam/sw/spline\npair_coeff * * Ti.meam.sw.spline Ti\npair_coeff * * Ti.meam.sw.spline Ti Ti Ti\n```\n", + "html_filename": "pair_meam_sw_spline.html", + "short_description": "The *meam/sw/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky2** with an additional Stillinger-Weber (SW) term\n**Stillinger1** in the energy", + "description": "The *meam/sw/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky2** with an additional Stillinger-Weber (SW) term\n**Stillinger1** in the energy. This form of the potential\nwas first proposed by Nicklas, Fellinger, and Park\n**Nicklas**. We refer to it as MEAM+SW. The total energy E\nis given by\n\\[\\begin{align*} \n E & = E_{MEAM} + E_{SW} \\\\\n E_{MEAM} & = \\sum _{IJ} \\phi (r_{IJ}) + \\sum _{I} U(\\rho _I) \\\\\n E_{SW} & = \\sum _{I} \\sum _{JK} F(r_{IJ}) \\, F(r_{IK}) \\, G(\\cos(\\theta _{JIK})) \\\\\n \\rho _I & = \\sum _J \\rho(r_{IJ}) + \\sum _{JK} f(r_{IJ}) \\, f(r_{IK}) \\, g(\\cos(\\theta _{JIK})) \\end{align*} \\]\nwhere \\(\\rho_I\\) is the density at atom I, \\(\\theta_{JIK}\\) is\nthe angle between atoms J, I, and K centered on atom I. The seven\nfunctions \\(\\phi, F, G, U, \\rho, f,\\) and *g* are represented by\ncubic splines.\n\nThe cutoffs and the coefficients for these spline functions are listed\nin a parameter file which is specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Parameter files for different\nelements are included in the \"potentials\" directory of the LAMMPS\ndistribution and have a \".meam.sw.spline\" file suffix. All of these\nfiles are parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike for other potentials, cutoffs for spline-based\nMEAM+SW potentials are not set in the pair_style or pair_coeff\ncommand; they are specified in the potential files themselves.\n\nUnlike the EAM pair style, which retrieves the atomic mass from the\npotential file, the spline-based MEAM+SW potentials do not include\nmass information; thus you need to use the [mass ](https://docs.lammps.org/mass.html) command to\nspecify it.\n\nOnly a single pair_coeff command is used with the meam/sw/spline style\nwhich specifies a potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of spline-based MEAM+SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the Ti.meam.sw.spline file has values for Ti.\nIf your LAMMPS simulation has 3 atoms types and they are all to be\ntreated with this potential, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * Ti.meam.sw.spline Ti Ti Ti\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe three Ti arguments map LAMMPS atom types 1,2,3 to the Ti element\nin the potential file. If a mapping value is specified as NULL, the\nmapping is not performed. This can be used when a *meam/sw/spline*\npotential is used as part of the hybrid pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *meam/sw/spline* style currently supports only\n > single-element MEAM+SW potentials. It may be extended for alloy\n > systems in the future. \n > \n\nExample input scripts that use this pair style are provided\nin the examples/PACKAGES/meam_sw_spline directory.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe pair style does not support multiple element types or mixing.\nIt has been designed for pure elements only.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe *meam/sw/spline* pair style does not write its information to\n[binary restart files ](https://docs.lammps.org/restart.html), since it is stored in an external\npotential parameter file. Thus, you need to re-specify the pair_style\nand pair_coeff commands in an input script that reads a restart file.\n\nThe *meam/sw/spline* pair style can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Lenosky2)** Lenosky, Sadigh, Alonso, Bulatov, de la Rubia, Kim, Voter,\nKress, Modell. Simul. Mater. Sci. Eng. 8, 825 (2000). \n \n**(Stillinger1)** Stillinger, Weber, Phys. Rev. B 31, 5262 (1985). \n \n**(Nicklas)**\nThe spline-based MEAM+SW format was first devised and used to develop\npotentials for bcc transition metals by Jeremy Nicklas, Michael Fellinger,\nand Hyoungki Park at The Ohio State University. \n ", + "restrictions": "This pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThis pair style is only enabled if LAMMPS was built with the MANYBODY\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style meam ](https://docs.lammps.org/pair_meam.html),\n[pair_style meam/spline ](https://docs.lammps.org/pair_meam_spline.html)\n" }, { "command": [ - "pair_style beck", - "pair_style beck/gpu", - "pair_style beck/omp" + "pair_style tersoff/mod", + "pair_style tersoff/mod/gpu", + "pair_style tersoff/mod/kk", + "pair_style tersoff/mod/omp", + "pair_style tersoff/mod/c", + "pair_style tersoff/mod/c/omp" ], "syntax": [ - "pair_style beck Rc" + "pair_style style keywords values" ], "args": [ [ @@ -21812,67 +21020,22 @@ export const command_docs = [ "choices": [] }, { - "arg": "beck", + "arg": "tersoff/mod/c/omp", "type": 3, "choices": [ - "beck", - "beck/gpu", - "beck/omp" + "tersoff/mod", + "tersoff/mod/c", + "tersoff/mod/gpu", + "tersoff/mod/kk", + "tersoff/mod/omp", + "tersoff/mod/c/omp" ] }, { - "arg": "Rc", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* Rc = cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style beck 8.0\npair_coeff * * 399.671876712 0.0000867636112694 0.675 4.390 0.0003746\npair_coeff 1 1 399.671876712 0.0000867636112694 0.675 4.390 0.0003746 6.0\n```\n", - "html_filename": "pair_beck.html", - "short_description": "Style *beck* computes interactions based on the potential by\n**Beck**, originally designed for simulation of Helium", - "description": "Style *beck* computes interactions based on the potential by\n**Beck**, originally designed for simulation of Helium. It\nincludes truncation at a cutoff distance \\(r_c\\).\n\\[\\begin{align*} \n E(r) &= A \\exp\\left[-\\alpha r - \\beta r^6\\right] - \\frac{B}{\\left(r^2+a^2\\right)^3} \\left(1+\\frac{2.709+3a^2}{r^2+a^2}\\right) \\qquad r < r_c \\\\ \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\n* \\(A\\) (energy units)\n* \\(B\\) (energy-distance\\^6 units)\n* \\(a\\) (distance units)\n* \\(\\alpha\\) (1/distance units)\n* \\(\\beta\\) (1/distance\\^6 units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\n\\(r_c\\) is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, coefficients must be specified.\nNo default mixing rules are used.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Beck)** Beck, Molecular Physics, 14, 311 (1968). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "fix poems" - ], - "syntax": [ - "fix ID group-ID poems keyword values" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "keywords", "type": 2, "choices": [] }, - { - "arg": "poems", - "type": 1, - "choices": [] - }, - { - "arg": "molecule", - "type": 3, - "choices": [ - "group", - "file", - "molecule" - ] - }, { "arg": "values", "type": 2, @@ -21880,25 +21043,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* poems = style name of this fix command\n* keyword = group or file or molecule \n *        group values = list of group IDs \n *        molecule values = none \n *        file values = filename \n", - "examples": "\n```lmps\nfix 3 fluid poems group clump1 clump2 clump3\nfix 3 fluid poems file cluster.list\n```\n", - "html_filename": "fix_poems.html", - "short_description": "Treats one or more sets of atoms as coupled rigid bodies", - "description": "Treats one or more sets of atoms as coupled rigid bodies. This means\nthat each timestep the total force and torque on each rigid body is\ncomputed and the coordinates and velocities of the atoms are updated\nso that the collection of bodies move as a coupled set. This can be\nuseful for treating a large biomolecule as a collection of connected,\ncoarse-grained particles.\n\nThe coupling, associated motion constraints, and time integration is\nperformed by the software package `Parallelizable Open source\nEfficient Multibody Software (POEMS)` which computes the constrained\nrigid-body motion of articulated (jointed) multibody systems\n**Anderson**. POEMS was written and is distributed by\nProf Kurt Anderson, his graduate student Rudranarayan Mukherjee, and\nother members of his group at Rensselaer Polytechnic Institute (RPI).\nRudranarayan developed the LAMMPS/POEMS interface. For copyright\ninformation on POEMS and other details, please refer to the documents\nin the poems directory distributed with LAMMPS.\n\nThis fix updates the positions and velocities of the rigid atoms with\na constant-energy time integration, so you should not update the same\natoms via other fixes (e.g. nve, nvt, npt, temp/rescale, langevin).\n\nEach body must have a non-degenerate inertia tensor, which means if\nmust contain at least 3 non-collinear atoms. Which atoms are in which\nbodies can be defined via several options.\n\nFor option *group*, each of the listed groups is treated as a rigid\nbody. Note that only atoms that are also in the fix group are\nincluded in each rigid body.\n\nFor option *molecule*, each set of atoms in the group with a different\nmolecule ID is treated as a rigid body.\n\nFor option *file*, sets of atoms are read from the specified file and\neach set is treated as a rigid body. Each line of the file specifies\na rigid body in the following format:\n\nID type atom1-ID atom2-ID atom3-ID ...\n\nID as an integer from 1 to M (the number of rigid bodies). Type is\nany integer; it is not used by the fix poems command. The remaining\narguments are IDs of atoms in the rigid body, each typically from 1 to\nN (the number of atoms in the system). Only atoms that are also in\nthe fix group are included in each rigid body. Blank lines and lines\nthat begin with '#' are skipped.\n\nA connection between a pair of rigid bodies is inferred if one atom is\ncommon to both bodies. The POEMS solver treats that atom as a\nspherical joint with 3 degrees of freedom. Currently, a collection of\nbodies can only be connected by joints as a linear chain. The entire\ncollection of rigid bodies can represent one or more chains. Other\nconnection topologies (tree, ring) are not allowed, but will be added\nlater. Note that if no joints exist, it is more efficient to use the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command to simulate the system.\n\nWhen the poems fix is defined, it will print out statistics on the\ntotal # of clusters, bodies, joints, atoms involved. A cluster in\nthis context means a set of rigid bodies connected by joints.\n\nFor computational efficiency, you should turn off pairwise and bond\ninteractions within each rigid body, as they no longer contribute to\nthe motion. The \"neigh_modify exclude\" and \"delete_bonds\" commands\ncan be used to do this if each rigid body is a group.\n\nFor computational efficiency, you should only define one fix poems\nwhich includes all the desired rigid bodies. LAMMPS will allow\nmultiple poems fixes to be defined, but it is more expensive.\n\nThe degrees-of-freedom removed by coupled rigid bodies are accounted\nfor in temperature and pressure computations. Similarly, the rigid\nbody contribution to the pressure virial is also accounted for. The\nlatter is only correct if forces within the bodies have been turned\noff, and there is only a single fix poems defined.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces and torques\non atoms to both the global pressure and per-atom stress of the system\nvia the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *bodyforces* option is supported by\nthis fix style to set whether per-body forces and torques are computed\nearly or late in a timestep, i.e. at the post-force stage or at the\nfinal-integrate stage, respectively.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this\nfix can be used with the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. This fix is not invoked during [energy minimization](https://docs.lammps.org/minimize.html).\n\n**(Anderson)** Anderson, Mukherjee, Critchley, Ziegler, and Lipton\n\"POEMS: Parallelizable Open-source Efficient Multibody Software \",\nEngineering With Computers (2006). ([link to paper](https://doi.org/10.1007/s00366-006-0026-x)) \n ", - "restrictions": "This fix is part of the :ref:`POEMS ` package. It is only\nenabled if LAMMPS was built with that package, which also requires the\nPOEMS library be built and linked with LAMMPS. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html) exclude\n" + "parameters": "* style = tersoff/mod or tersoff/mod/c\n* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", + "examples": "\n```lmps\npair_style tersoff/mod\npair_coeff * * Si.tersoff.mod Si Si\n\npair_style tersoff/mod/c\npair_coeff * * Si.tersoff.modc Si Si\n```\n", + "html_filename": "pair_tersoff_mod.html", + "short_description": "The *tersoff/mod* and *tersoff/mod/c* styles computes a bond-order type\ninteratomic potential **Kumagai** based on a 3-body Tersoff\npotential **Tersoff_12**, **Tersoff_22** with\nmodified cutoff function and angular-dependent term, giving the energy\nE of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{9}{16} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) - \\frac{1}{16} \\sin \\left( \\frac{3\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", + "description": "The *tersoff/mod* and *tersoff/mod/c* styles computes a bond-order type\ninteratomic potential **Kumagai** based on a 3-body Tersoff\npotential **Tersoff_12**, **Tersoff_22** with\nmodified cutoff function and angular-dependent term, giving the energy\nE of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{9}{16} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) - \\frac{1}{16} \\sin \\left( \\frac{3\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + {\\zeta_{ij}}^\\eta \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g(\\theta_{ijk})\n \\exp \\left[ \\alpha (r_{ij} - r_{ik})^\\beta \\right] \\\\\n g(\\theta) & = c_1 + g_o(\\theta) g_a(\\theta) \\\\\n g_o(\\theta) & = \\frac{c_2 (h - \\cos \\theta)^2}{c_3 + (h - \\cos \\theta)^2} \\\\\n g_a(\\theta) & = 1 + c_4 \\exp \\left[ -c_5 (h - \\cos \\theta)^2 \\right] \\\\ \\end{align*} \\]\nwhere \\(f_R\\) is a two-body term and \\(f_A\\) includes three-body interactions.\n\\(\\delta\\) is an optional negative shift of the\nequilibrium bond length, as described below.\n\nThe summations in the formula are over all neighbors J and K of atom I\nwithin a cutoff distance = R + D.\nThe *tersoff/mod/c* style differs from *tersoff/mod* only in the\nformulation of the V_ij term, where it contains an additional c0 term.\n\\[\n V_{ij} = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) + c_0 \\right] \\\\\\]\nThe modified cutoff function \\(f_C\\) proposed by **Murty** and\nhaving a continuous second-order differential is employed. The\nangular-dependent term \\(g(\\theta)\\) was modified to increase the\nflexibility of the potential.\n\nThe *tersoff/mod* potential is fitted to both the elastic constants\nand melting point by employing the modified Tersoff potential function\nform in which the angular-dependent term is improved. The model\nperforms extremely well in describing the crystalline, liquid, and\namorphous phases **Schelling**.\n\nOnly a single pair_coeff command is used with the *tersoff/mod* style\nwhich specifies a Tersoff/MOD potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff/MOD elements to atom types\n\nAs an example, imagine the Si.tersoff_mod file has Tersoff values for Si.\nIf your LAMMPS simulation has 3 Si atoms types, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * Si.tersoff_mod Si Si Si\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe three Si arguments map LAMMPS atom types 1,2,3 to the Si element\nin the Tersoff/MOD file. If a mapping value is specified as NULL, the\nmapping is not performed. This can be used when a *tersoff/mod*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nTersoff/MOD file in the *potentials* directory of the LAMMPS\ndistribution have a \".tersoff.mod\" suffix. Potential files for the\n*tersoff/mod/c* style have the suffix \".tersoff.modc\". Lines that are\nnot blank or comments (starting with #) define parameters for a triplet\nof elements. The parameters in a single entry correspond to\ncoefficients in the formulae above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* \\(\\beta\\)\n* \\(\\alpha\\)\n* h\n* \\(\\eta\\)\n* \\(\\beta_{ters}\\) = 1 (dummy parameter)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n* n\n* c1\n* c2\n* c3\n* c4\n* c5\n* c0 (energy units, tersoff/mod/c only)\n\nThe n, \\(\\eta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A parameters are only used for\ntwo-body interactions. The \\(\\beta\\), \\(\\alpha\\), c1, c2, c3, c4, c5, h\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions.\nThe c0 term applies to *tersoff/mod/c* only. The non-annotated\nparameters are unitless.\n\nThe Tersoff/MOD potential file must contain entries for all the elements\nlisted in the pair_coeff command. It can also contain entries for\nadditional elements not being used in a particular simulation; LAMMPS\nignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). As annotated above, the first element in the entry is\nthe center atom in a three-body interaction and it is bonded to the\nsecond atom and the bond is influenced by the third atom. Thus an entry\nfor SiSiSi means Si bonded to a Si with another Si atom influencing the bond.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose formula\nis the same as the Tersoff potential. The only modification is that the original\nequilibrium bond length ( \\(r_0\\)) of the system is shifted to \\(r_0-\\delta\\).\nThe minus sign arises because each radial distance \\(r\\) is replaced by \\(r+\\delta\\).\nMore information on this option is given on the main [pair_tersoff ](https://docs.lammps.org/pair_tersoff.html) page.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Kumagai)** T. Kumagai, S. Izumi, S. Hara, S. Sakai,\nComp. Mat. Science, 39, 457 (2007). \n \n**(Tersoff_12)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(Tersoff_22)** J. Tersoff, Phys Rev B, 38, 9902 (1988). \n \n**(Murty)** M.V.R. Murty, H.A. Atwater, Phys Rev B, 51, 4889 (1995). \n \n**(Schelling)** Patrick K. Schelling, Comp. Mat. Science, 44, 274 (2008). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is not supported by the *tersoff/gpu*,\n*tersoff/intel*, *tersoff/kk*, *tersoff/table* or *tersoff/table/omp*\nvariants.\n\nThe *tersoff/mod* potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html). You can\nuse the *tersoff/mod* pair style with any LAMMPS units, but you would need to\ncreate your own Tersoff/MOD potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute angmom/chunk" + "fix smd/adjust_dt" ], "syntax": [ - "compute ID group-ID angmom/chunk chunkID" + "fix ID group-ID smd/adjust_dt arg" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -21913,31 +21076,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "angmom/chunk", + "arg": "smd/adjust_dt", "type": 1, "choices": [] }, { - "arg": "chunkID", + "arg": "arg", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angmom/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid angmom/chunk molchunk\n```\n", - "html_filename": "compute_angmom_chunk.html", - "short_description": "Define a computation that calculates the angular momentum of multiple\nchunks of atoms", - "description": "Define a computation that calculates the angular momentum of multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the 3 components of the angular momentum\nvector for each chunk, due to the velocity/momentum of the individual\natoms in the chunk around the center-of-mass of the chunk. The\ncalculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's angular\n > momentum in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g. to 0) before invoking this compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute angmom/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all angmom/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns = 3 for the three\n(*x*, *y*, *z*) components of the angular momentum for each chunk.\nThese values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe array values are \"intensive\". The array values will be in\nmass-velocity-distance [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[variable angmom() function ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/adjust_dt = style name of this fix command\n* arg = s_fact \n *        s_fact = safety factor \n", + "examples": "\n```lmps\nfix 1 all smd/adjust_dt 0.1\n```\n", + "html_filename": "fix_smd_adjust_dt.html", + "short_description": "The fix calculates a new stable time increment for use with the SMD\ntime integrators", + "description": "The fix calculates a new stable time increment for use with the SMD\ntime integrators.\n\nThe stable time increment is based on multiple conditions. For the SPH\npair styles, a CFL criterion (Courant, Friedrichs & Lewy, 1928) is\nevaluated, which determines the speed of sound cannot propagate\nfurther than a typical spacing between particles within a single time\nstep to ensure no information is lost. For the contact pair styles, a\nlinear analysis of the pair potential determines a stable maximum time\nstep.\n\nThis fix inquires the minimum stable time increment across all\nparticles contained in the group for which this fix is defined. An\nadditional safety factor *s_fact* is applied to the time increment.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor minimization.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[smd/tlsph_dt ](https://docs.lammps.org/compute_smd_tlsph_dt.html)\n" }, { "command": [ - "fix rheo" + "fix drude" ], "syntax": [ - "fix ID group-ID rheo cut kstyle zmin keyword values..." + "fix ID group-ID drude flag1 flag2 ... flagN" ], "args": [ [ @@ -21957,98 +21120,75 @@ export const command_docs = [ "choices": [] }, { - "arg": "rheo", + "arg": "drude", "type": 1, "choices": [] }, { - "arg": "cut", + "arg": "flag1", "type": 2, "choices": [] }, { - "arg": "RK2", - "type": 3, - "choices": [ - "quintic", - "RK0", - "RK1", - "RK2" - ] - }, - { - "arg": "zmin", + "arg": "flag2", "type": 2, "choices": [] }, { - "arg": "interface/reconstruct", - "type": 3, - "choices": [ - "thermal", - "interface/reconstruct" - ] - }, - { - "arg": "values...", + "arg": "flagN", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rheo = style name of this fix command\n* cut = cutoff for the kernel (distance)\n* kstyle = quintic or RK0 or RK1 or RK2\n* zmin = minimal number of neighbors for reproducing kernels\n* zero or more keyword/value pairs may be appended to args\n* keyword = thermal or interface/reconstruct or surface/detection or\n shift or rho/sum or density or self/mass or speed/sound \n *        thermal values = none, turns on thermal evolution \n *        interface/reconstruct values = none, reconstructs interfaces with solid particles \n *        surface/detection values = sdstyle limit limit/splash \n         sdstyle = coordination or divergence \n         limit = threshold for surface particles \n         limit/splash = threshold for splash particles \n *        shift values = none, turns on velocity shifting \n *        rho/sum values = none, uses the kernel to compute the density of particles \n *        self/mass values = none, a particle uses its own mass in a rho summation \n *        density values = *rho01*, ... rho0N (density) \n *        speed/sound values = *cs0*, ... csN (velocity) \n", - "examples": "\n```lmps\nfix 1 all rheo 3.0 quintic 0 thermal density 0.1 0.1 speed/sound 10.0 1.0\nfix 1 all rheo 3.0 RK1 10 shift surface/detection coordination 40\n```\n", - "html_filename": "fix_rheo.html", - "short_description": "\nPerform time integration for RHEO particles, updating positions, velocities,\nand densities", - "description": "\nPerform time integration for RHEO particles, updating positions, velocities,\nand densities. For an overview of other features available in the RHEO package,\nsee [the RHEO howto ](https://docs.lammps.org/Howto_rheo.html).\n\nThe type of kernel is specified using *kstyle* and the cutoff is *cut*. Four\nkernels are currently available. The *quintic* kernel is a standard quintic\nspline function commonly used in SPH. The other options, *RK0*, *RK1*, and\n*RK2*, are zeroth, first, and second order reproducing. To generate a\nreproducing kernel, a particle must have sufficient neighbors inside the\nkernel cutoff distance (a coordination number) to accurately calculate\nmoments. This threshold is set by *zmin*. If reproducing kernels are\nrequested but a particle has fewer neighbors, then it will revert to a\nnon-reproducing quintic kernel until it gains more neighbors.\n\nTo model temperature evolution, one must specify the *thermal* keyword,\ndefine a separate instance of [fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\nand use atom style rheo/thermal.\n\nBy default, the density of solid RHEO particles does not evolve and forces\nwith fluid particles are calculated using the current velocity of the solid\nparticle. If the *interface/reconstruct* keyword is used, then the density\nand velocity of solid particles are alternatively reconstructed for every\nfluid-solid interaction to ensure no-slip and pressure-balanced boundaries.\nThis is done by estimating the location of the fluid-solid interface and\nextrapolating fluid particle properties across the interface to calculate a\ntemporary apparent density and velocity for a solid particle.\n\nA modified form of Fickian particle shifting can be enabled with the\n*shift* keyword. This effectively shifts particle positions to generate a\nmore uniform spatial distribution. Shifting currently does not consider the\ntype of a particle and therefore may be inappropriate in systems consisting\nof multiple fluid phases.\n\nIn systems with free surfaces, the *surface/detection* keyword can be used\nto classify the location of particles as being within the bulk fluid, on a\nfree surface, or isolated from other particles in a splash or droplet.\nShifting is then disabled in the normal direction away from the free surface\nto prevent particles from diffusing away. Surface detection can also be used\nto control surface-nucleated effects like oxidation when used in combination\nwith [fix rheo/oxidation ](https://docs.lammps.org/fix_rheo_oxidation.html). Surface detection is not\nperformed on solid bodies.\n\nThe *surface/detection* keyword takes three arguments: *sdstyle*, *limit*,\nand *limit/splash*. The first, *sdstyle*, specifies whether surface particles\nare identified using a coordination number (*coordination*) or the divergence\nof the local particle positions (*divergence*). The threshold value for a\nsurface particle for either of these criteria is set by the numerical value\nof *limit*. Additionally, if a particle's coordination number is too low,\ni.e. if it has separated off from the bulk in a droplet, it is not possible\nto define surfaces and the particle is classified as a splash. The coordination\nthreshold for this classification is set by the numerical value of\n*limit/splash*.\n\nBy default, RHEO integrates particles' densities using a mass diffusion\nequation. Alternatively, one can update densities every timestep by performing\na kernel summation of the masses of neighboring particles by specifying the *rho/sum*\nkeyword.\n\nThe *self/mass* keyword modifies the behavior of the density summation in *rho/sum*.\nTypically, the density \\(\\rho\\) of a particle is calculated as the sum over neighbors\n\\[ \\rho_i = \\sum_{j} W_{ij} M_j\\]\nwhere \\(W_{ij}\\) is the kernel, and \\(M_j\\) is the mass of particle \\(j\\).\nThe *self/mass* keyword augments this expression by replacing \\(M_j\\) with\n\\(M_i\\). This may be useful in simulations of multiple fluid phases with large\ndifferences in density, **fix_rheo_hu**.\n\nThe *density* keyword is used to specify the equilibrium density of each of the N\nparticle types. It must be followed by N numerical values specifying each type's\nequilibrium density *rho0*.\n\nThe *speed/sound* keyword is used to specify the speed of sound of each of the\nN particle types. It must be followed by N numerical values specifying each type's\nspeed of sound *cs*.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(fix_rheo_hu)** Hu, and Adams J. Comp. Physics, 213, 844-861 (2006). \n ", - "restrictions": "This fix must be used with atom style rheo or rheo/thermal. This fix must\nbe used in conjunction with [fix rheo/pressure ](https://docs.lammps.org/fix_rheo_pressure.html).\nand [fix rheo/viscosity ](https://docs.lammps.org/fix_rheo_viscosity.html). If the *thermal* setting\nis used, there must also be an instance of\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html). The fix group must be set to all.\nOnly one instance of fix rheo may be defined and it must be defined prior\nto all other RHEO fixes in the input script.\n\nThis fix is part of the RHEO package. It is only enabled if LAMMPS was built\nwith that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix rheo/viscosity ](https://docs.lammps.org/fix_rheo_viscosity.html),\n[fix rheo/pressure ](https://docs.lammps.org/fix_rheo_pressure.html),\n[fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\n[pair rheo ](https://docs.lammps.org/pair_rheo.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* drude = style name of this fix command\n* flag1 flag2 ... flagN = Drude flag for each atom type (1 to N) in the system \n", + "examples": "\n```lmps\nfix 1 all drude 1 1 0 1 0 2 2 2\nfix 1 all drude C C N C N D D D\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "fix_drude.html", + "short_description": "Assign each atom type in the system to be one of 3 kinds of atoms\nwithin the Drude polarization model", + "description": "Assign each atom type in the system to be one of 3 kinds of atoms\nwithin the Drude polarization model. This fix is designed to be used\nwith the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html).\nPolarizable models in LAMMPS are described on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nThe three possible types can be designated with an integer (0,1,2)\nor capital letter (N,C,D):\n\n* 0 or N = non-polarizable atom (not part of Drude model)\n* 1 or C = Drude core\n* 2 or D = Drude electron\n", + "restrictions": "This fix should be invoked before any other commands that implement\nthe Drude oscillator model, such as [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html), [pair_style thole ](https://docs.lammps.org/pair_thole.html).\n", + "related": "[fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html), [pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" }, { "command": [ - "fix python/move" + "angle_style mm3" ], "syntax": [ - "fix python/move pymodule.CLASS" + "angle_style mm3" ], "args": [ [ { - "arg": "fix", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "python/move", + "arg": "mm3", "type": 1, "choices": [] - }, - { - "arg": "pymodule.CLASS", - "type": 2, - "choices": [] } ] ], - "parameters": "pymodule.CLASS = use class CLASS in module/file pymodule to compute how to move atoms \n", - "examples": "\n```lmps\nfix 1 all python/move py_nve.NVE\nfix 1 all python/move py_nve.NVE_OPT\n```\n", - "html_filename": "fix_python_move.html", - "short_description": "The *python/move* fix style provides a way to define ways how particles\nare moved during an MD run from python script code, that is loaded from\na file into LAMMPS and executed at the various steps where other fixes\ncan be executed", - "description": "The *python/move* fix style provides a way to define ways how particles\nare moved during an MD run from python script code, that is loaded from\na file into LAMMPS and executed at the various steps where other fixes\ncan be executed. This python script must contain specific python class\ndefinitions.\n\nThis allows to implement complex position updates and also modified\ntime integration methods. Due to python being an interpreted language,\nhowever, the performance of this fix can be moderately to significantly\nslower than the corresponding C++ code. For specific cases, this\nperformance penalty can be limited through effective use of NumPy.\n\n----------\n\nThe python module file has to start with the following code:\n\n```python\nfrom __future__ import print_function\nimport lammps\nimport ctypes\nimport traceback\nimport numpy as np\n#\nclass LAMMPSFix(object):\ndef __init__(self, ptr, group_name=\"all\"):\nself.lmp = lammps.lammps(ptr=ptr)\nself.group_name = group_name\n#\nclass LAMMPSFixMove(LAMMPSFix):\ndef __init__(self, ptr, group_name=\"all\"):\nsuper(LAMMPSFixMove, self).__init__(ptr, group_name)\n#\ndef init(self):\npass\n#\ndef initial_integrate(self, vflag):\npass\n#\ndef final_integrate(self):\npass\n#\ndef initial_integrate_respa(self, vflag, ilevel, iloop):\npass\n#\ndef final_integrate_respa(self, ilevel, iloop):\npass\n#\ndef reset_dt(self):\npass\n```\nAny classes implementing new atom motion functionality have to be\nderived from the **LAMMPSFixMove** class, overriding the available\nmethods as needed.\n\nExamples for how to do this are in the *examples/python* folder.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This pair style is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style mm3\nangle_coeff 1 100.0 107.0\n```\n", + "html_filename": "angle_mm3.html", + "short_description": "The *mm3* angle style uses the potential that is anharmonic in the angle\nas defined in :ref:`(Allinger) `\n\\[\n E = K (\\theta - \\theta_0)^2 \\left[ 1 - 0.014(\\theta - \\theta_0) + 5.6(10)^{-5} (\\theta - \\theta_0)^2 - 7.0(10)^{-7} (\\theta - \\theta_0)^3 + 9(10)^{-10} (\\theta - \\theta_0)^4 \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and\n\\(K\\) is a prefactor", + "description": "The *mm3* angle style uses the potential that is anharmonic in the angle\nas defined in :ref:`(Allinger) `\n\\[\n E = K (\\theta - \\theta_0)^2 \\left[ 1 - 0.014(\\theta - \\theta_0) + 5.6(10)^{-5} (\\theta - \\theta_0)^2 - 7.0(10)^{-7} (\\theta - \\theta_0)^3 + 9(10)^{-10} (\\theta - \\theta_0)^4 \\right]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and\n\\(K\\) is a prefactor. The anharmonic prefactors have units\n\\(\\deg^{-n}\\), for example \\(-0.014 \\deg^{-1}\\), \\(5.6\n\\cdot 10^{-5} \\deg^{-2}\\), ...\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix smd/adjust_dt" + "compute gyration/shape/chunk" ], "syntax": [ - "fix ID group-ID smd/adjust_dt arg" + "compute ID group-ID gyration/shape/chunk compute-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -22063,78 +21203,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/adjust_dt", + "arg": "gyration/shape/chunk", "type": 1, "choices": [] }, { - "arg": "arg", + "arg": "compute-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/adjust_dt = style name of this fix command\n* arg = s_fact \n *        s_fact = safety factor \n", - "examples": "\n```lmps\nfix 1 all smd/adjust_dt 0.1\n```\n", - "html_filename": "fix_smd_adjust_dt.html", - "short_description": "The fix calculates a new stable time increment for use with the SMD\ntime integrators", - "description": "The fix calculates a new stable time increment for use with the SMD\ntime integrators.\n\nThe stable time increment is based on multiple conditions. For the SPH\npair styles, a CFL criterion (Courant, Friedrichs & Lewy, 1928) is\nevaluated, which determines the speed of sound cannot propagate\nfurther than a typical spacing between particles within a single time\nstep to ensure no information is lost. For the contact pair styles, a\nlinear analysis of the pair potential determines a stable maximum time\nstep.\n\nThis fix inquires the minimum stable time increment across all\nparticles contained in the group for which this fix is defined. An\nadditional safety factor *s_fact* is applied to the time increment.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor minimization.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[smd/tlsph_dt ](https://docs.lammps.org/compute_smd_tlsph_dt.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/shape/chunk = style name of this compute command\n* compute-ID = ID of [compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html) command \n", + "examples": "\n```lmps\ncompute 1 molecule gyration/shape/chunk pe\n```\n", + "html_filename": "compute_gyration_shape_chunk.html", + "short_description": "Define a computation that calculates the eigenvalues of the gyration tensor and\nthree shape parameters of multiple chunks of atoms", + "description": "Define a computation that calculates the eigenvalues of the gyration tensor and\nthree shape parameters of multiple chunks of atoms. The computation includes\nall effects due to atoms passing through periodic boundaries.\n\nThe three computed shape parameters are the asphericity, \\(b\\),\nthe acylindricity, \\(c\\), and the relative shape anisotropy, \\(k\\),\nviz.,\n\\[.. math::\\]\n b &= l_z - \\frac12(l_y+l_x) \\\\\n c &= l_y - l_x \\\\\n k &= \\frac{3}{2} \\frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \\frac{1}{2}\n\nwhere \\(l_x \\le l_y \\le l_z\\) are the three eigenvalues of the gyration\ntensor. A general description of these parameters is provided in\n**Mattice2** while an application to polymer systems\ncan be found in **Theodorou2**. The asphericity is always\nnon-negative and zero only when the three principal moments are equal.\nThis zero condition is met when the distribution of particles is spherically\nsymmetric (hence the name asphericity) but also whenever the particle\ndistribution is symmetric with respect to the three coordinate axes (e.g.,\nwhen the particles are distributed uniformly on a cube, tetrahedron, or other\nPlatonic solid). The acylindricity is always non-negative and zero only when\nthe two principal moments are equal. This zero condition is met when the\ndistribution of particles is cylindrically symmetric (hence the name,\nacylindricity), but also whenever the particle distribution is symmetric with\nrespect to the two coordinate axes (e.g., when the particles are distributed\nuniformly on a regular prism). The relative shape anisotropy\nis bounded between 0 (if all points are spherically symmetric) and 1\n(if all points lie on a line).\n\nThe tensor keyword must be specified in the compute gyration/chunk command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the gyration tensor in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html)\n > command for a discussion of image flags and how they are set for each\n > atom. You can reset the image flags (e.g., to 0) before invoking this\n > compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global array with six columns,\nwhich can be accessed by indices 1--6. The first three columns are the\neigenvalues of the gyration tensor followed by the asphericity, the\nacylindricity and the relative shape anisotropy. The computed values can be\nused by any command that uses global array values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe array calculated by this compute is\n\"intensive\". The first five columns will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html) while the sixth one is dimensionless.\n\n**(Mattice2)** Mattice, Suter, Conformational Theory of Large Molecules, Wiley, New York, 1994. \n \n**(Theodorou2)** Theodorou, Suter, Macromolecules, 18, 1206 (1985). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute gyration/chunk ](https://docs.lammps.org/compute_gyration_chunk.html)\n[compute gyration/shape ](https://docs.lammps.org/compute_gyration_shape.html)\n" }, { "command": [ - "pair_style lj/expand", - "pair_style lj/expand/gpu", - "pair_style lj/expand/kk", - "pair_style lj/expand/omp", - "pair_style lj/expand/coul/long", - "pair_style lj/expand/coul/long/gpu", - "pair_style lj/expand/coul/long/kk" + "compute ke/atom/eff" ], "syntax": [ - "pair_style lj/expand cutoff" + "compute ID group-ID ke/atom/eff" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "lj/expand", - "type": 3, - "choices": [ - "lj/expand", - "lj/expand/gpu", - "lj/expand/kk", - "lj/expand/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "ke/atom/eff", + "type": 1, + "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for lj/expand interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/expand 2.5\npair_coeff * * 1.0 1.0 0.5\npair_coeff 1 1 1.0 1.0 -0.2 2.0\n\npair_style lj/expand/coul/long 2.5\npair_style lj/expand/coul/long 2.5 4.0\npair_coeff * * 1.0 1.0 0.5\npair_coeff 1 1 1.0 1.0 -0.2 3.0\n```\n", - "html_filename": "pair_lj_expand.html", - "short_description": "Style *lj/expand* computes a LJ interaction with a distance shifted by\ndelta which can be useful when particles are of different sizes, since\nit is different that using different sigma values in a standard LJ\nformula:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the \\(\\Delta\\)\ndistance", - "description": "Style *lj/expand* computes a LJ interaction with a distance shifted by\ndelta which can be useful when particles are of different sizes, since\nit is different that using different sigma values in a standard LJ\nformula:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r - \\Delta}\\right)^{12} -\n \\left(\\frac{\\sigma}{r - \\Delta}\\right)^6 \\right]\n \\qquad r < r_c + \\Delta\\]\n\\(r_c\\) is the cutoff which does not include the \\(\\Delta\\)\ndistance. I.e. the actual force cutoff is the sum of \\(r_c +\n\\Delta\\).\n\nFor all of the *lj/expand* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described\nbelow:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\Delta\\) (distance units)\n* cutoff (distance units)\n\nThe \\(\\Delta\\) values can be positive or negative. The last\ncoefficient is optional. If not specified, the global LJ cutoff is\nused.\n\nFor *lj/expand/coul/long* only the LJ cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, and shift\ncoefficients and cutoff distance for this pair style can be mixed.\nShift is always mixed via an *arithmetic* rule. The other\ncoefficients are mixed according to the pair_modify mix value. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/atom/eff = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all ke/atom/eff\n```\n", + "html_filename": "compute_ke_atom_eff.html", + "short_description": "Define a computation that calculates the per-atom translational\n(nuclei and electrons) and radial kinetic energy (electron only) in a\ngroup", + "description": "Define a computation that calculates the per-atom translational\n(nuclei and electrons) and radial kinetic energy (electron only) in a\ngroup. The particles are assumed to be nuclei and electrons modeled\nwith the [electronic force field ](https://docs.lammps.org/pair_eff.html).\n\nThe kinetic energy for each nucleus is computed as \\(\\frac{1}{2} m\nv^2\\), where *m* corresponds to the corresponding nuclear mass, and the\nkinetic energy for each electron is computed as \\(\\frac{1}{2} (m_e\nv^2 + \\frac{3}{4} m_e s^2)\\), where \\(m_e\\) and *v* correspond to the mass\nand translational velocity of each electron, and *s* to its radial\nvelocity, respectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" plus electronic \"radial\" kinetic energy,\ncalculated by the simple formula above. For thermodynamic output, the\n*ke* keyword infers kinetic energy from the temperature of the system\nwith \\(\\frac{1}{2} k_B T\\) of energy for each (nuclear-only) degree\nof freedom in eFF.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The temperature in eFF should be monitored via the [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command, which can be printed with\n > thermodynamic output by using the [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n > command, as shown in the following example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nThe value of the kinetic energy will be 0.0 for atoms (nuclei or\nelectrons) not in the specified compute group.\n\n #### Output info\n\nThis compute calculates a scalar quantity for each atom, which can be\naccessed by any command that uses per-atom computes as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "fix electrode/conp", - "fix electrode/conq", - "fix electrode/thermo" + "fix ave/chunk" ], "syntax": [ - "fix ID group-ID style args keyword value ..." + "fix ID group-ID ave/chunk Nevery Nrepeat Nfreq chunkID value1 value2 ... keyword args ..." ], "args": [ [ @@ -22154,275 +21286,227 @@ export const command_docs = [ "choices": [] }, { - "arg": "electrode/thermo", - "type": 3, - "choices": [ - "electrode/conp", - "electrode/conq", - "electrode/thermo" - ] + "arg": "ave/chunk", + "type": 1, + "choices": [] }, { - "arg": "args", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "eta", - "type": 3, - "choices": [ - "algo", - "symm", - "couple", - "etypes", - "ffield", - "write_mat", - "write_inv", - "read_mat", - "read_inv", - "qtotal", - "eta" - ] - }, - { - "arg": "value", + "arg": "Nrepeat", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = electrode/conp or electrode/conq or electrode/thermo\n* args = arguments used by a particular style \n *        electrode/conp args = potential eta \n *        electrode/conq args = charge eta \n *        electrode/thermo args = potential eta temp values \n         potential = electrode potential \n         charge = electrode charge \n         eta = reciprocal width of electrode charge smearing (can be NULL if eta keyword is used) \n         temp values = T_v tau_v rng_v \n         T_v = temperature of thermo-potentiostat \n         tau_v = time constant of thermo-potentiostat \n         rng_v = integer used to initialize random number generator \n* zero or more keyword/value pairs may be appended\n* keyword = algo or symm or couple or etypes or ffield or write_mat or write_inv or read_mat or read_inv or qtotal or eta \n *     algo values = mat_inv or mat_cg tol or cg tol \n      specify the algorithm used to compute the electrode charges \n *     symm value = on or off \n      turn on/off charge neutrality constraint for the electrodes \n *     couple values = group-ID val \n      group-ID = group of atoms treated as additional electrode \n      val = electric potential or charge on this electrode \n *     etypes value = on or off \n      turn on/off type-based optimized neighbor lists (electrode and electrolyte types may not overlap) \n *     ffield value = on or off \n      turn on/off finite-field implementation \n *     write_mat value = filename \n      filename = file to which to write elastance matrix \n *     write_inv value = filename \n      filename = file to which to write inverted matrix \n *     read_mat value = filename \n      filename = file from which to read elastance matrix \n *     read_inv value = filename \n      filename = file from which to read inverted matrix \n *     qtotal value = number or v equal-style variable \n      add overall potential so that all electrode charges add up to qtotal \n *     eta value = d_propname \n      d_propname = a custom double vector defined via fix property/atom \n", - "examples": "\n```lmps\nfix fxconp bot electrode/conp -1.0 1.805 couple top 1.0 couple ref 0.0 write_inv inv.csv symm on\nfix fxconp electrodes electrode/conq 0.0 1.805 algo cg 1e-5\nfix fxconp bot electrode/thermo -1.0 1.805 temp 298 100 couple top 1.0\n```\n", - "html_filename": "fix_electrode.html", - "short_description": "The *electrode* fixes implement the constant potential method (CPM)\n(**Siepmann**, **Reed3**), and modern variants,\nto accurately model electrified, conductive electrodes", - "description": "The *electrode* fixes implement the constant potential method (CPM)\n(**Siepmann**, **Reed3**), and modern variants,\nto accurately model electrified, conductive electrodes. This is\nprimarily useful for studying electrode-electrolyte interfaces,\nespecially at high potential differences or ionicities, with non-planar\nelectrodes such as nanostructures or nanopores, and to study dynamic\nphenomena such as charging or discharging time scales or conductivity or\nionic diffusivities.\n\nEach *electrode* fix allows users to set additional electrostatic\nrelationships between the specified groups which model useful\nelectrostatic configurations:\n\n* *electrode/conp* sets potentials or potential differences between electrodes\n\n * (resulting in changing electrode total charges)\n\n* *electrode/conq* sets the total charge on each electrode\n\n * (resulting in changing electrode potentials)\n\n* *electrode/thermo* sets a thermopotentiostat\n **Deissenbeck** between two electrodes\n\n * (resulting in changing charges and potentials with appropriate\n average potential difference and thermal variance)\n\nThe first group-ID provided to each fix specifies the first electrode\ngroup, and more group(s) are added using the *couple* keyword for each\nadditional group. While *electrode/thermo* only accepts two groups,\n*electrode/conp* and *electrode/conq* accept any number of groups, up to\nLAMMPS's internal restrictions (see Restrictions below). Electrode\ngroups must not overlap, i.e. the fix will issue an error if any\nparticle is detected to belong to at least two electrode groups.\n\nCPM involves updating charges on groups of electrode particles, per time\nstep, so that the system's total energy is minimized with respect to\nthose charges. From basic electrostatics, this is equivalent to making\neach group conductive, or imposing an equal electrostatic potential on\nevery particle in the same group (hence the name CPM). The charges are\nusually modelled as a Gaussian distribution to make the charge-charge\ninteraction matrix invertible (**Gingrich**). The keyword\n*eta* specifies the distribution's width in units of inverse length.\n\nThree algorithms are available to minimize the energy, varying in how\nmatrices are pre-calculated before a run to provide computational\nspeedup. These algorithms can be selected using the keyword *algo*:\n\n* *algo mat_inv* pre-calculates the capacitance matrix and obtains the\n charge configuration in one matrix-vector calculation per time step\n\n* *algo mat_cg* pre-calculates the elastance matrix (inverse of\n capacitance matrix) and obtains the charge configuration using a\n conjugate gradient solver in multiple matrix-vector calculations per\n time step\n\n* *algo cg* does not perform any pre-calculation and obtains the charge\n configuration using a conjugate gradient solver and multiple\n calculations of the electric potential per time step.\n\nFor both *cg* methods, the command must specify the conjugate gradient\ntolerance. *fix electrode/thermo* currently only supports the *mat_inv*\nalgorithm.\n\nThe keyword *symm* can be set *on* (or *off*) to turn on (or turn off)\nthe capacitance matrix constraint that sets total electrode charge to be\nzero. This has slightly different effects for each *fix electrode*\nvariant. For *fix electrode/conp*, with *symm off*, the potentials\nspecified are absolute potentials, but the charge configurations\nsatisfying them may add up to an overall non-zero, varying charge for\nthe electrodes (and thus the simulation box). With *symm on*, the total\ncharge over all electrode groups is constrained to zero, and potential\ndifferences rather than absolute potentials are the physically relevant\nquantities.\n\nFor *fix electrode/conq*, with *symm off*, overall neutrality is\nexplicitly obeyed or violated by the user input (which is not\nchecked!). With *symm on*, overall neutrality is ensured by ignoring the\nuser-input charge for the last listed electrode (instead, its charge\nwill always be minus the total sum of all other electrode charges). For\n*fix electrode/thermo*, overall neutrality is always automatically\nimposed for any setting of *symm*, but *symm on* allows finite-field\nmode (*ffield on*, described below) for faster simulations.\n\nFor all three fixes, any potential (or charge for *conq*) can be\nspecified as an equal-style variable prefixed with \"v\\_\". For example,\nthe following code will ramp the potential difference between electrodes\nfrom 0.0V to 2.0V over the course of the simulation:\n\n```lmps\nfix fxconp bot electrode/conp 0.0 1.805 couple top v_v symm on\nvariable v equal ramp(0.0, 2.0)\n```\nNote that these fixes only parse their supplied variable name when\nstarting a run, and so these fixes will accept equal-style variables\ndefined *after* the fix definition, including variables dependent on the\nfix's own output. This is useful, for example, in the fix's internal\nfinite-field commands (see below). For an advanced example of this see\nthe in.conq2 input file in the directory\n``examples/PACKAGES/electrode/graph-il``.\n\nThis fix necessitates the use of a long range solver that calculates and\nprovides the matrix of electrode-electrode interactions and a vector of\nelectrode-electrolyte interactions. The Kspace styles\n*ewald/electrode*, *pppm/electrode* and *pppm/electrode/intel* are\ncreated specifically for this task **Ahrens-Iwers**.\n\nFor systems with non-periodic boundaries in one or two directions dipole\ncorrections are available with the [kspace_modify ](https://docs.lammps.org/kspace_modify.html).\nFor ewald/electrode a two-dimensional Ewald summation **Hu**\ncan be used by setting \"slab ew2d\":\n\n```lmps\nkspace_modify slab \nkspace_modify wire \nkspace_modify slab ew2d\n```\nTwo implementations for the calculation of the elastance matrix are\navailable with pppm and can be selected using the *amat onestep/twostep*\nkeyword. *onestep* is the default; *twostep* can be faster for large\nelectrodes and a moderate mesh size but requires more memory.\n\n```lmps\nkspace_modify amat onestep/twostep\n```\nFor all versions of the fix, the keyword-value *ffield on* enables the\nfinite-field mode (**Dufils**, **Tee**), which uses\nan electric field across a periodic cell instead of non-periodic\nboundary conditions to impose a potential difference between the two\nelectrodes bounding the cell. The fix (with name *fix-ID*) detects which\nof the two electrodes is \"on top\" (has the larger maximum *z*-coordinate\namong all particles). Assuming the first electrode group is on top, it\nthen issues the following commands internally:\n\n```lmps\nvariable fix-ID_ffield_zfield equal (f_fix-ID[2]-f_fix-ID[1])/lz\nefield fix-ID_efield all efield 0.0 0.0 v_fix-ID_ffield_zfield\n```\nwhich implements the required electric field as the potential difference\ndivided by cell length. The internal commands use variable so that the\nelectric field will correctly vary with changing potentials in the\ncorrect way (for example with equal-style potential difference or with\n*fix electrode/conq*). This keyword requires two electrodes and will\nissue an error with any other number of electrodes. This keyword\nrequires electroneutrality to be imposed (*symm on*) and will issue an\nerror otherwise.\n\nFor all versions of the fix, the keyword-value *etypes on* enables\ntype-based optimized neighbor lists. With this feature enabled, LAMMPS\nprovides the fix with an occasional neighbor list restricted to\nelectrode-electrode interactions for calculating the electrode matrix,\nand a perpetual neighbor list restricted to electrode-electrolyte\ninteractions for calculating the electrode potentials, using particle\ntypes to list only desired interactions, and typically resulting in\n5--10\\% less computational time. Without this feature the fix will\nsimply use the active pair style's neighbor list. This feature cannot\nbe enabled if any electrode particle has the same type as any\nelectrolyte particle (which would be unusual in a typical simulation)\nand the fix will issue an error in that case.\n\nThe keyword *qtotal* causes *fix electrode/conp* and *fix\nelectrode/thermo* to add an overall potential to all electrodes so that\nthe total charge on the electrodes is a specified amount (which may be\nan equal-style variable). For example, if a user wanted to simulate a\nsolution of excess cations such that the total electrolyte charge is +2,\nsetting *qtotal -2* would cause the total electrode charge to be -2, so\nthat the simulation box remains overall electroneutral. Since *fix\nelectrode/conq* constrains the total charges of individual electrodes,\nand since *symm on* constrains the total charge of all electrodes to be\nzero, either option is incompatible with the *qtotal* keyword (even if\n*qtotal* is set to zero).\n\nThe keyword *eta* takes the name of a custom double vector defined via\nfix property/atom. The values will be used instead of the standard eta\nvalue. The property/atom fix must be for vector of double values and\nuse the *ghost on* option.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix currently does not write any information to restart files.\n\nThe *fix_modify tf* option enables the Thomas-Fermi metallicity model\n(**Scalfi**) and allows parameters to be set for each atom type.\n\n```lmps\nfix_modify ID tf type length voronoi\n```\nIf this option is used, these two parameters must be set for\nall atom types of the electrode:\n\n* `tf` is the Thomas-Fermi length \\(l_{TF}\\)\n* `voronoi` is the Voronoi volume per atom in units of length cubed\n\nDifferent types may have different `tf` and `voronoi` values.\nThe following self-energy term is then added for all electrode atoms:\n\\[\n A_{ii} += \\frac{1}{4 \\pi \\epsilon_0} \\times \\frac{4 \\pi l_{TF}^2}{\\mathrm{Voronoi volume}}\\]\nThe *fix_modify timer* option turns on (off) additional timer outputs in the log\nfile, for code developers to track optimization.\n\n```lmps\nfix_modify ID timer on/off\n```\n----------\n\nThese fixes compute a global (extensive) scalar, a global (intensive)\nvector, and a global array, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe global scalar outputs the energy added to the system by this fix,\nwhich is the negative of the total charge on each electrode multiplied\nby that electrode's potential.\n\nThe global vector outputs the potential on each electrode (and thus has\n*N* entries if the fix manages *N* electrode groups), in [units](https://docs.lammps.org/units.html) of electric field multiplied by distance (thus volts for *real*\nand *metal* units). The electrode groups' ordering follows the order in\nwhich they were input in the fix command using *couple*. The global\nvector output is useful for *fix electrode/conq* and *fix\nelectrode/thermo*, where potential is dynamically updated based on\nelectrolyte configuration instead of being directly set.\n\nThe global array has *N* rows and *2N+1* columns, where the fix manages\n*N* electrode groups managed by the fix. For the *I*-th row of the\narray, the elements are:\n\n* array[I][1] = total charge that group *I* would have had *if it were\n at 0 V applied potential*\n* array[I][2 to *N* + 1] = the *N* entries\n of the *I*-th row of the electrode capacitance matrix (definition\n follows)\n* array[I][*N* + 2 to *2N* + 1] = the *N* entries of the\n *I*-th row of the electrode elastance matrix (the inverse of the\n electrode capacitance matrix)\n\nThe \\(N \\times N\\) electrode capacitance matrix, denoted \\(\\mathbf{C}\\)\nin the following equation, summarizes how the total charge induced on each\nelectrode (\\(\\mathbf{Q}\\) as an *N*-vector) is related to the potential on\neach electrode, \\(\\mathbf{V}\\), and the charge-at-0V \\(\\mathbf{Q}_{0V}\\)\n(which is influenced by the local electrolyte structure):\n\\[\n \\mathbf{Q} = \\mathbf{Q}_{0V} + \\mathbf{C} \\cdot \\mathbf{V}\\]\nThe charge-at-0V, electrode capacitance and elastance matrices are internally\nused to calculate the potentials required to induce the specified total\nelectrode charges in *fix electrode/conq* and *fix electrode/thermo*. With the\n*symm on* option, the electrode capacitance matrix would be singular, and thus\nits last row is replaced with *N* copies of its top-left entry\n(\\(\\mathbf{C}_{11}\\)) for invertibility.\n\nThe global array output is mainly useful for quickly determining the 'vacuum\ncapacitance' of the system (capacitance with only electrodes, no electrolyte),\nand can also be used for advanced simulations setting the potential as some\nfunction of the charge-at-0V (such as the ``in.conq2`` example mentioned above).\n\nPlease cite **Ahrens-Iwers2** in any publication that\nuses this implementation. Please cite also the publication on the combination\nof the CPM with PPPM if you use *pppm/electrode* **Ahrens-Iwers**.\n\n----------\n\n**(Siepmann)** Siepmann and Sprik, J. Chem. Phys. 102, 511 (1995). \n \n**(Reed3)** Reed *et al.*, J. Chem. Phys. 126, 084704 (2007). \n \n**(Deissenbeck)** Deissenbeck *et al.*, Phys. Rev. Letters 126, 136803 (2021). \n \n**(Gingrich)** Gingrich, `MSc thesis` ` (2010). \n \n**(Ahrens-Iwers)** Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021). \n \n**(Hu)** Hu, J. Chem. Theory Comput. 10, 5254 (2014). \n \n**(Dufils)** Dufils *et al.*, Phys. Rev. Letters 123, 195501 (2019). \n \n**(Tee)** Tee and Searles, J. Chem. Phys. 156, 184101 (2022). \n \n**(Scalfi)** Scalfi *et al.*, J. Chem. Phys., 153, 174704 (2020). \n \n**(Ahrens-Iwers2)** Ahrens-Iwers *et al.*, J. Chem. Phys. 157, 084801 (2022). \n \n**(Ahrens-Iwers)** Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021). \n ", - "restrictions": "For algorithms that use a matrix for the electrode-electrode\ninteractions, positions of electrode particles have to be immobilized at\nall times.\n\nWith *ffield off* (i.e. the default), the box geometry is expected to be\n*z*-non-periodic (i.e. *boundary p p f*), and this fix will issue an\nerror if the box is *z*-periodic. With *ffield on*, the box geometry is\nexpected to be *z*-periodic, and this fix will issue an error if the box\nis *z*-non-periodic.\n\nThe parallelization for the fix works best if electrode atoms are evenly\ndistributed across processors. For a system with two electrodes at the bottom\nand top of the cell this can be achieved with *processors * * 2*, or with the\nline\n\n```lmps\nif \"$(extract_setting(world_size) % 2) == 0\" then \"processors * * 2\"\n```\nwhich avoids an error if the script is run on an odd number of\nprocessors (such as on just one processor for testing).\n\nThe fix creates an additional group named *[fix-ID]_group* which is the\nunion of all electrode groups supplied to LAMMPS. This additional group\ncounts towards LAMMPS's limitation on the total number of groups\n(currently 32), which may not allow scripts that use that many groups to\nrun with this fix.\n\nThe matrix-based algorithms (*algo mat_inv* and *algo mat_cg*) currently\nstore an interaction matrix (either elastance or capacitance) of *N* by\n*N* doubles for each MPI process. This memory requirement may be\nprohibitive for large electrode groups. The fix will issue a warning if\nit expects to use more than 0.5 GiB of memory.\n", - "related": "none" -}, -{ - "command": [ - "fix_modify AtC unfix_flux" - ], - "syntax": [ - "fix_modify unfix_flux " - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] }, { - "arg": "", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "unfix_flux", - "type": 1, + "arg": "chunkID", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "", + "arg": "title3", "type": 3, "choices": [ - "value", - "function" + "norm", + "ave", + "bias", + "adof", + "cdof", + "file", + "append", + "overwrite", + "format", + "title1", + "title2", + "title3" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* unfix_flux = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* face_set = name of set of element faces \n", - "examples": "\n```lmps\nfix_modify AtC unfix_flux temperature faceSet\n```\n", - "html_filename": "atc_unfix_flux.html", - "short_description": "Command for removing prescribed normal fluxes e.g", - "description": "Command for removing prescribed normal fluxes e.g. heat_flux, stress.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fix_flux ](https://docs.lammps.org/atc_fix_flux.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/chunk = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* one or more input values can be listed\n* value = *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *density/mass*, *density/number*, *mass*, *temp*, c_ID, c_ID[I], f_ID, f_ID[I], v_name \n *        vx,vy,vz,fx,fy,fz,mass = atom attribute (velocity, force component, mass) \n *        density/number, density/mass = number or mass density (per volume) \n *        temp = temperature \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/arg pairs may be appended\n* keyword = norm or ave or bias or adof or cdof or file or append or overwrite or format or title1 or title2 or title3 \n *        norm arg = all or sample or none = how output on Nfreq steps is normalized \n         all = output is sum of atoms across all Nrepeat samples, divided by atom count \n         sample = output is sum of Nrepeat sample averages, divided by Nrepeat \n         none = output is sum of Nrepeat sample sums, divided by Nrepeat \n *        ave args = one or running or *window M* \n         one = output new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        bias arg = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias for temperature calculation \n *        adof value = dof_per_atom \n         dof_per_atom = define this many degrees-of-freedom per atom for temperature calculation \n *        cdof value = dof_per_chunk \n         dof_per_chunk = define this many degrees-of-freedom per chunk for temperature calculation \n *        file arg = filename \n         filename = file to write results to \n *        append arg = filename \n         filename = file to append results to \n *        overwrite arg = none = overwrite output file with only latest output \n *        format arg = string \n         string = C-style format string \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file \n", + "examples": "\n```lmps\nfix 1 all ave/chunk 10000 1 10000 binchunk c_myCentro title1 \"My output values\"\nfix 1 flow ave/chunk 100 10 1000 molchunk vx vz norm sample file vel.profile\nfix 1 flow ave/chunk 100 5 1000 binchunk density/mass ave running\nfix 1 flow ave/chunk 100 5 1000 binchunk density/mass ave running\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >\n **New in version 31May2016** \n >\n > If you are trying to replace a deprecated fix ave/spatial command\n > with the newer, more flexible fix ave/chunk and [compute > chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) commands, you simply need to split\n > the fix ave/spatial arguments across the two new commands. For\n > example, this command:\n >\n > .. code-block:: LAMMPS\n >\n > fix 1 flow ave/spatial 100 10 1000 y 0.0 1.0 vx vz norm sample file vel.profile\n >\n > could be replaced by:\n >\n > .. code-block:: LAMMPS\n >\n > compute cc1 flow chunk/atom bin/1d y 0.0 1.0\n > fix 1 flow ave/chunk 100 10 1000 cc1 vx vz norm sample file vel.profile\n >\n > \n > \n\n", + "html_filename": "fix_ave_chunk.html", + "short_description": "Use one or more per-atom vectors as inputs every few timesteps, sum\nthe values over the atoms in each chunk at each timestep, then average\nthe per-chunk values over longer timescales", + "description": "Use one or more per-atom vectors as inputs every few timesteps, sum\nthe values over the atoms in each chunk at each timestep, then average\nthe per-chunk values over longer timescales. The resulting chunk\naverages can be used by other [output commands ](https://docs.lammps.org/Howto_output.html) such\nas [thermo_style custom ](https://docs.lammps.org/thermo_style.html), and can also be written to\na file.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) page and the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\npage for details of how chunks can be defined and examples of how they\ncan be used to measure properties of a system.\n\nNote that if the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\ncommand defines spatial bins, the fix ave/chunk command performs a\nsimilar computation as the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command.\nHowever, the per-bin outputs from the fix ave/chunk command are\nglobal; each processor stores a copy of the entire set of bin data.\nBy contrast, the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command uses a\ndistributed grid where each processor owns a subset of the bins. Thus\nit is more efficient to use the [fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html)\ncommand when the grid is large and a simulation is run on many\nprocessors.\n\nNote that only atoms in the specified group contribute to the summing\nand averaging calculations. The [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command defines its own group as well as an\noptional region. Atoms will have a chunk ID = 0, meaning they belong\nto no chunk, if they are not in that group or region. Thus you can\nspecify the \"all\" group for this command if you simply want to use the\nchunk definitions provided by chunkID.\n\nEach specified per-atom value can be an atom attribute (position,\nvelocity, force component), a number or mass density, a mass or\ntemperature, or the result of a [compute ](https://docs.lammps.org/compute.html) or [fix](https://docs.lammps.org/fix.html) or the evaluation of an atom-style [variable ](https://docs.lammps.org/variable.html).\nIn the latter cases, the compute, fix, or variable must produce a\nper-atom quantity, not a global quantity. Note that the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command provides access to any\nattribute defined and stored by atoms. If you wish to time-average\nglobal quantities from a compute, fix, or variable, then see the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n\nThe per-atom values of each input vector are summed and averaged\nindependently of the per-atom values in other input vectors.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom quantities are those\nwhich have the word *atom* in their style name. See the doc pages for\nindividual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce per-atom\nquantities. [Variables ](https://docs.lammps.org/variable.html) of style *atom* are the only\nones that can be used with this fix since all other styles of variable\nproduce global quantities.\n\nNote that for values from a compute or fix that produces a per-atom\narray (multiple values per atom), the bracketed index I can be\nspecified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\"\nor \"m\\*n\". If \\(N\\) = the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two fix ave/chunk commands are\nequivalent, since the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command creates, in this case, a per-atom\narray with three columns:\n\n```lmps\ncompute myAng all property/atom angmomx angmomy angmomz\nfix 1 all ave/chunk 100 1 100 cc1 c_myAng[*] file tmp.angmom\nfix 2 all ave/chunk 100 1 100 cc1 c_myAng[1] c_myAng[2] c_myAng[3] file tmp.angmom\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix works by creating an array of size\n > \\(N_\\text{chunk} \\times N_\\text{values}\\) on each processor.\n > \\(N_\\text{chunk}\\) is the number of chunks, which is defined by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\n > \\(N_\\text{values}\\) is the number of input values specified.\n > Each processor loops over its atoms, tallying its values to the appropriate\n > chunk. Then the entire array is summed across all processors. This means\n > that using a large number of chunks will incur an overhead in memory and\n > computational cost (summing across processors), so be careful to\n > define a reasonable number of chunks. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be accessed and\ncontribute to the average. The final averaged quantities are generated on time\nsteps that are a multiples of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps. \\(N_\\text{freq}\\)\nmust be a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat} = 1\\)\\ . Also, the time steps\ncontributing to the average value cannot overlap (i.e.,\n\\(N_\\text{repeat}N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on\ntime steps 90, 92, 94, 96, 98, 100 will be used to compute the final average\non time step 100. Similarly for time steps 190, 192, 194, 196, 198, 200 on\ntime step 200, etc. If \\(N_\\text{repeat}=1\\) and\n\\(N_\\text{freq} = 100\\), then no time averaging is done; values are simply\ngenerated on time steps 100, 200, etc.\n\nEach input value can also be averaged over the atoms in each chunk.\nThe way the averaging is done across the \\(N_\\text{repeat}\\) time steps to\nproduce output on the \\(N_\\text{freq}\\) time steps, and across multiple\n\\(N_\\text{freq}\\) outputs, is determined by the *norm* and *ave* keyword\nsettings, as discussed below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To perform per-chunk averaging within a \\(N_\\text{freq}\\) time window,\n > the number of chunks \\(N_\\text{chunk}\\) defined by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command must remain\n > constant. If the *ave* keyword is set to *running* or *window* then\n > \\(N_\\text{chunk}\\) must remain constant for the duration of the\n > simulation. This fix forces the chunk/atom compute specified by chunkID to\n > hold \\(N_\\text{chunk}\\) constant for the appropriate time windows,\n > by not allowing it to re-calculate \\(N_\\text{chunk}\\), which can also\n > affect how it assigns chunk IDs to atoms. This is particularly important to\n > understand if the chunks defined by the [compute chunk/atom > ](https://docs.lammps.org/compute_chunk_atom.html) command are spatial bins. If its *units*\n > keyword is set to *box* or *lattice*, then the number of bins\n > \\(N_\\text{chunk}\\) and size of each bin will be fixed over the\n > \\(N_\\text{freq}\\) time window, which can affect which atoms are\n > discarded if the simulation box size changes. If its *units* keyword is set\n > to *reduced*, then the number of bins \\(N_\\text{chunk}\\) will still be\n > fixed, but the size of each bin can vary at each time step if the\n > simulation box size changes (e.g., for an NPT simulation). \n > \n\n----------\n\nThe atom attribute values (*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *mass*) are\nself-explanatory. As noted above, any other atom attributes can be\nused as input values to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nThe *density/number* value means the number density is computed for\neach chunk (i.e., number/volume). The *density/mass* value means the\nmass density is computed for each chunk (i.e., total-mass/volume). The\noutput values are in units of 1/volume or mass density (mass/volume). See\nthe [units ](https://docs.lammps.org/units.html) command page for the definition of density\nfor each choice of units (e.g., g/cm\\ \\(^3\\)). If the chunks defined by\nthe [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command are spatial\nbins, the volume is the bin volume. Otherwise, it is the volume of the\nentire simulation box.\n\nThe *temp* value means the temperature is computed for each chunk,\nby the formula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE is the total kinetic energy of the chunk of atoms (sum of\n\\(\\frac{1}{2} m v^2\\)), DOF is the the total number of degrees of freedom\nfor all atoms in the chunk, \\(k_B\\) is the Boltzmann constant, and\n\\(T\\) is the absolute temperature.\n\nThe DOF is calculated as \\(N\\)\\ \\*adof + cdof, where \\(N\\) is the\nnumber of atoms in the chunk, adof is the number of degrees of freedom per\natom, and cdof is the number of degrees of freedom per chunk. By default,\nadof = 2 or 3 = dimensionality of system,\nas set via the [dimension ](https://docs.lammps.org/dimension.html) command, and cdof = 0.0.\nThis gives the usual formula for temperature.\n\nNote that currently this temperature only includes translational\ndegrees of freedom for each atom. No rotational degrees of freedom\nare included for finite-size particles. Also, no degrees of freedom\nare subtracted for any velocity bias or constraints that are applied,\nsuch as [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[fix shake ](https://docs.lammps.org/fix_shake.html), or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause those degrees of freedom (e.g., a constrained bond) could apply\nto sets of atoms that are both included and excluded from a specific\nchunk, and hence the concept is somewhat ill-defined. In some cases,\nyou can use the *adof* and *cdof* keywords to adjust the calculated\ndegrees of freedom appropriately, as explained below.\n\nAlso note that a bias can be subtracted from atom velocities before\nthey are used in the above formula for KE, by using the *bias*\nkeyword. This allows, for example, a thermal temperature to be\ncomputed after removal of a flow velocity profile.\n\nNote that the per-chunk temperature calculated by this fix and the\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html) command can be\ndifferent. The compute calculates the temperature for each chunk for\na single snapshot. This fix can do that but can also time average\nthose values over many snapshots, or it can compute a temperature as\nif the atoms in the chunk on different time steps were collected\ntogether as one set of atoms to calculate their temperature. The\ncompute allows the center-of-mass velocity of each chunk to be\nsubtracted before calculating the temperature; this fix does not.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain time steps, which must be compatible with\n\\(N_\\text{every}\\), else an error results. Users can also write code for\ntheir own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. Variables of style\n*atom* can reference thermodynamic keywords and various per-atom\nattributes, or invoke other computes, fixes, or variables when they\nare evaluated, so this is a very general means of generating per-atom\nquantities to average within chunks.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix\nand its outputs.\n\nThe *norm* keyword affects how averaging is done for the per-chunk\nvalues that are output every \\(N_\\text{freq}\\) time steps.\n\nIt the *norm* setting is *all*, which is the default, a chunk value is summed\nover all atoms in all \\(N_\\text{repeat}\\) samples, as is the count of\natoms in the chunk. The averaged output value for the chunk on the\n\\(N_\\text{freq}\\) time steps is Total-sum / Total-count. In other words it\nis an average over atoms across the entire \\(N_\\text{freq}\\) timescale.\nFor the *density/number* and *density/mass* values, the volume (bin volume or\nsystem volume) used in the final normalization will be the volume at\nthe final \\(N_\\text{freq}\\) time step. For the *temp* values, degrees of\nfreedom and kinetic energy are summed separately across the entire\n\\(N_\\text{freq}\\) timescale, and the output value is calculated by dividing\nthose two sums.\n\nIf the *norm* setting is *sample*, the chunk value is summed over\natoms for each sample, as is the count, and an \"average sample value\"\nis computed for each sample (i.e., Sample-sum / Sample-count). The\noutput value for the chunk on the \\(N_\\text{freq}\\) time steps is the\naverage of the \\(N_\\text{repeat}\\) \"average sample values\" (i.e., the sum\nof \\(N_\\text{repeat}\\) \"average sample values\" divided by\n\\(N_\\text{repeat}\\)\\ ). In other words, it is an average of an average.\nFor the *density/number* and *density/mass* values, the volume (bin volume or\nsystem volume) used in the per-sample normalization will be the current volume\nat each sampling step.\n\nIf the *norm* setting is *none*, a similar computation as for the\n*sample* setting is done, except the individual \"average sample\nvalues\" are \"summed sample values\". A summed sample value is simply\nthe chunk value summed over atoms in the sample, without dividing by\nthe number of atoms in the sample. The output value for the chunk on\nthe \\(N_\\text{freq}\\) timesteps is the average of the\n\\(N_\\text{repeat}\\) \"summed sample values\" (i.e., the sum of\n\\(N_\\text{repeat}\\) \"summed sample values\" divided by\n\\(N_\\text{repeat}\\)\\ ).\nFor the *density/number* and *density/mass* values, the\nvolume (bin volume or system volume) used in the per-sample sum\nnormalization will be the current volume at each sampling step.\n\n----------\n\nThe *ave* keyword determines how the per-chunk values produced every\n\\(N_\\text{freq}\\) steps are averaged with values produced on previous steps\nthat were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, which is the default, then the chunk\nvalues produced on timesteps that are multiples of \\(N_\\text{freq}\\) are\nindependent of each other; they are output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the chunk values produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each output chunk value is thus\nthe average of the chunk value produced on that timestep with all\npreceding values for the same chunk. This running average begins when\nthe fix is defined; it can only be restarted by deleting the fix via\nthe [unfix ](https://docs.lammps.org/unfix.html) command, or re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the chunk values produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nwithin a moving \"window\" of time, so that the last \\(M\\) values for the\nsame chunk are used to produce the output. For example, if \\(M = 3\\) and\n\\(N_\\text{freq} = 1000\\), then the output on step 10000 will be the average\nof the individual chunk values on time steps 8000, 9000, and 10000. Outputs on\nearly steps will average over less than \\(M\\) values if they are not\navailable.\n\n----------\n\nThe *bias* keyword specifies the ID of a temperature compute that\nremoves a \"bias\" velocity from each atom, specified as *bias-ID* .\nIt is only used when the *temp* value is calculated, to compute the\nthermal temperature of each chunk after the translational kinetic\nenergy components have been altered in a prescribed way (e.g., to\nremove a flow velocity profile). See the doc pages for individual\ncomputes that calculate a temperature to see which ones implement a bias.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formula described above for temperature calculation\nfor each chunk. They are only used when the *temp* value is\ncalculated. They can be used to calculate a more appropriate\ntemperature for some kinds of chunks. Here are three examples:\n\nIf spatially binned chunks contain some number of water molecules and\n[fix shake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then\nyou could calculate a temperature with six degrees of freedom (DOF) (three\ntranslational, three rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the \\(x\\) component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nIf each chunk consists of a large molecule, with some number of its\nbonds constrained by [fix shake ](https://docs.lammps.org/fix_shake.html) or the entire molecule\nby [fix rigid/small ](https://docs.lammps.org/fix_rigid.html), *adof* = 0.0 and *cdof* could be\nset to the remaining degrees of freedom for the entire molecule\n(entire chunk in this case), that is, 6 for 3d or 3 for 2d for a rigid\nmolecule.\n\n----------\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every \\(N_\\text{freq}\\)\ntimesteps, a section of chunk info will be written to a text file in the\nfollowing format. A line with the timestep and number of chunks is\nwritten. Then one line per chunk is written, containing the chunk ID\n\\((1-N_\\text{chunk}),\\) an optional original ID value, optional\ncoordinate values for chunks that represent spatial bins, the number of\natoms in the chunk, and one or more calculated values. More explanation\nof the optional values is given below. The number of values in each\nline corresponds to the number of values specified in the fix ave/chunk\ncommand. The number of atoms and the value(s) are summed or average\nquantities, as explained above.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *format* keyword sets the numeric format of each value when it is\nprinted to a file via the *file* keyword. Note that all values are\nfloating point quantities. The default format is %g. You can specify\na higher precision if desired (e.g., %20.16g).\n\nThe *title1* and *title2* and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output\nfile, assuming the *file* keyword was used. LAMMPS uses default\nvalues for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Chunk-averaged data for fix ID and group name\n# Timestep Number-of-chunks\n# Chunk (OrigID) (Coord1) (Coord2) (Coord3) Ncount value1 value2 ...\n```\nIn the first line, ID and name are replaced with the fix-ID and group\nname. The second line describes the two values that are printed at\nthe first of each section of output. In the third line the values are\nreplaced with the appropriate value names (e.g., *fx* or c_myCompute[2]).\n\nThe words in parenthesis only appear with corresponding columns if the\nchunk style specified for the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command supports them. The OrigID column is\nonly used if the *compress* keyword was set to *yes* for the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. This means\nthat the original chunk IDs (e.g., molecule IDs) will have been\ncompressed to remove chunk IDs with no atoms assigned to them. Thus a\ncompressed chunk ID of 3 may correspond to an original chunk ID or\nmolecule ID of 415. The OrigID column will list 415 for the third chunk.\n\nThe CoordN columns only appear if a *binning* style was used in the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. For *bin/1d*,\n*bin/2d*, and *bin/3d* styles the column values are the center point\nof the bin in the corresponding dimension. Just Coord1 is used for\n*bin/1d*, Coord2 is added for *bin/2d*, Coord3 is added for *bin/3d* .\nFor *bin/sphere*, just Coord1 is used, and it is the radial\ncoordinate. For *bin/cylinder*, Coord1 and Coord2 are used. Coord1\nis the radial coordinate (away from the cylinder axis), and coord2 is\nthe coordinate along the cylinder axis.\n\nNote that if the value of the *units* keyword used in the\n[compute chunk/atom command ](https://docs.lammps.org/compute_chunk_atom.html) is *box* or\n*lattice*, the coordinate values will be in distance [units ](https://docs.lammps.org/units.html).\nIf the value of the *units* keyword is *reduced*, the\ncoordinate values will be in unitless reduced units (0--1). This is\nnot true for the Coord1 value of style *bin/sphere* or *bin/cylinder*\nwhich both represent radial dimensions. Those values are always in\ndistance [units ](https://docs.lammps.org/units.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The values can only be\naccessed on timesteps that are multiples of \\(N_\\text{freq}\\), since\nthat is when averaging is performed. The global array has # of rows =\nthe number of chunks \\(N_\\text{chunk}\\), as calculated by the\nspecified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The #\nof columns is \\(M+1+N_\\text{values}\\), where \\(M \\in\n\\{1,\\dotsc,4\\}\\), depending on whether the optional columns for OrigID\nand CoordN are used, as explained above. Following the optional\ncolumns, the next column contains the count of atoms in the chunk, and\nthe remaining columns are the Nvalue quantities. When the array is\naccessed with a row \\(I\\) that exceeds the current number of chunks,\nthan a 0.0 is returned by the fix instead of an error, since the number\nof chunks can vary as a simulation runs depending on how that value is\ncomputed by the compute chunk/atom command.\n\nThe array values calculated by this fix are treated as \"intensive\",\nsince they are typically already normalized by the count of atoms in\neach chunk.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n[fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html)\n" }, { "command": [ - "pair_style buck", - "pair_style buck/gpu", - "pair_style buck/intel", - "pair_style buck/kk", - "pair_style buck/omp", - "pair_style buck/coul/cut", - "pair_style buck/coul/cut/gpu", - "pair_style buck/coul/cut/intel", - "pair_style buck/coul/cut/kk", - "pair_style buck/coul/cut/omp", - "pair_style buck/coul/long", - "pair_style buck/coul/long/gpu", - "pair_style buck/coul/long/intel", - "pair_style buck/coul/long/kk", - "pair_style buck/coul/long/omp", - "pair_style buck/coul/msm", - "pair_style buck/coul/msm/omp" + "fix_modify AtC add_molecule" ], "syntax": [ - "pair_style style args" + "fix_modify add_molecule " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "buck/coul/msm/omp", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "add_molecule", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 3, "choices": [ - "buck", - "buck/coul/cut", - "buck/coul/long", - "buck/coul/msm", - "buck/gpu", - "buck/intel", - "buck/kk", - "buck/omp", - "buck/coul/cut/gpu", - "buck/coul/cut/intel", - "buck/coul/cut/kk", - "buck/coul/cut/omp", - "buck/coul/long/gpu", - "buck/coul/long/intel", - "buck/coul/long/kk", - "buck/coul/long/omp", - "buck/coul/msm/omp" + "small", + "large" ] }, { - "arg": "args", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* style = buck or buck/coul/cut or buck/coul/long or buck/coul/msm\n* args = list of arguments for a particular style \n *      buck args = cutoff \n       cutoff = global cutoff for Buckingham interactions (distance units) \n *      buck/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/msm args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style buck 2.5\npair_coeff * * 100.0 1.5 200.0\npair_coeff * * 100.0 1.5 200.0 3.0\n\npair_style buck/coul/cut 10.0\npair_style buck/coul/cut 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\npair_coeff 1 1 100.0 1.5 200.0 9.0 8.0\n\npair_style buck/coul/long 10.0\npair_style buck/coul/long 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n\npair_style buck/coul/msm 10.0\npair_style buck/coul/msm 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n```\n", - "html_filename": "pair_buck.html", - "short_description": "The *buck* style computes a Buckingham potential (exp/6 instead of\nLennard-Jones 12/6) given by\n\\[\n E = A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c\\]\nwhere \\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff on both terms", - "description": "The *buck* style computes a Buckingham potential (exp/6 instead of\nLennard-Jones 12/6) given by\n\\[\n E = A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c\\]\nwhere \\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff on both terms.\n\nThe styles with *coul/cut* or *coul/long* or *coul/msm* add a\nCoulombic term as described for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles.\nFor *buck/coul/long* and *buc/coul/msm*, an additional damping factor\nis applied to the Coulombic term so it can be used in conjunction with\nthe [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\nor *msm* option. The Coulombic cutoff specified for this style means\nthat pairwise interactions within this distance are computed directly;\ninteractions outside that distance are computed in reciprocal space.\n\nIf one cutoff is specified for the *born/coul/cut* and\n*born/coul/long* and *born/coul/msm* styles, it is used for both the\nA,C and Coulombic terms. If two cutoffs are specified, the first is\nused as the cutoff for the A,C terms, and the second is the cutoff for\nthe Coulombic term.\n\nNote that these potentials are related to the [Born-Mayer-Huggins potential ](https://docs.lammps.org/pair_born.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For all these pair styles, the terms with A and C are always\n > cutoff. The additional Coulombic term can be cutoff or long-range (no\n > cutoff) depending on whether the style name includes coul/cut or\n > coul/long or coul/msm. If you wish the C/r\\^6 term to be long-range\n > (no cutoff), then see the [pair_style buck/long/coul/long ](https://docs.lammps.org/pair_buck_long.html) command. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* \\(\\rho\\) (distance units)\n* C (energy-distance\\^6 units)\n* cutoff (distance units)\n* cutoff2 (distance units)\n\nThe second coefficient, \\(\\rho\\), must be greater than zero.\nThe coefficients A, \\(\\rho\\), and C can be written as analytical expressions\nof \\(\\epsilon\\) and \\(\\sigma\\), in analogy to the Lennard-Jones potential\n**Khrapak**.\n\nThe latter 2 coefficients are optional. If not specified, the global\nA,C and Coulombic cutoffs are used. If only one cutoff is specified,\nit is used as the cutoff for both A,C and Coulombic interactions for\nthis type pair. If both coefficients are specified, they are used as\nthe A,C and Coulombic cutoffs for this type pair. You cannot specify\n2 cutoffs for style *buck*, since it has no Coulombic terms.\nFor *buck/coul/long* only the LJ cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp() and 1/r\\^6 portion of the pair interaction.\n\nThe *buck/coul/long* pair style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option to tabulate the\nshort-range portion of the long-range Coulombic interaction.\n\nThese styles support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure for the A,C terms in the\npair interaction.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n**(Khrapak)** Khrapak, Chaudhuri, and Morfill, J Chem Phys, 134, 054120 (2011). \n ", - "restrictions": "The *buck/coul/long* style is part of the KSPACE package. They are\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* add_molecule = name of the AtC sub-command\n* small or large = can be small if molecule size < cutoff radius, must be large otherwise\n* tag = tag for tracking a molecule\n* group-ID = LAMMPS defined group-ID \n", + "examples": "\n```lmps\ngroup WATERGROUP type 1 2\nfix_modify AtC add_molecule small water WATERGROUP\n```\n", + "html_filename": "atc_add_molecule.html", + "short_description": "Associates a tag with all molecules corresponding to a specified group", + "description": "Associates a tag with all molecules corresponding to a specified group.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n- [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n" }, { "command": [ - "pair_style body/rounded/polyhedron" + "rerun" ], "syntax": [ - "pair_style body/rounded/polyhedron c_n c_t mu delta_ua cutoff" + "rerun file1 file2 ... keyword args ..." ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "body/rounded/polyhedron", + "arg": "rerun", "type": 1, "choices": [] }, { - "arg": "c_n", - "type": 2, - "choices": [] - }, - { - "arg": "c_t", + "arg": "file1", "type": 2, "choices": [] }, { - "arg": "mu", + "arg": "file2", "type": 2, "choices": [] }, { - "arg": "delta_ua", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": " *    c_n = normal damping coefficient \n *    c_t = tangential damping coefficient \n *    mu = normal friction coefficient during gross sliding \n *    delta_ua = multiple contact scaling factor \n *    cutoff = global separation cutoff for interactions (distance units), see below for definition \n", - "examples": "\n```lmps\npair_style body/rounded/polyhedron 20.0 5.0 0.0 1.0 0.5\npair_coeff * * 100.0 1.0\npair_coeff 1 1 100.0 1.0\n```\n", - "html_filename": "pair_body_rounded_polyhedron.html", - "short_description": "Style *body/rounded/polygon* is for use with 3d models of body\nparticles of style *rounded/polyhedron* ", - "description": "Style *body/rounded/polygon* is for use with 3d models of body\nparticles of style *rounded/polyhedron* . It calculates pairwise\nbody/body interactions which can include body particles modeled as\n1-vertex spheres with a specified diameter. See the\n[Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using body\nrounded/polyhedron particles.\n\nThis pairwise interaction between the rounded polyhedra is described\nin **pair-Wang**, where a polyhedron does not have sharp corners\nand edges, but is rounded at its vertices and edges by spheres\ncentered on each vertex with a specified diameter. The edges of the\npolyhedron are defined between pairs of adjacent vertices. Its faces\nare defined by a loop of edges. The sphere diameter for each polygon\nis specified in the data file read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand. This is a discrete element model (DEM) which allows for\nmultiple contact points.\n\nNote that when two particles interact, the effective surface of each\npolyhedron particle is displaced outward from each of its vertices,\nedges, and faces by half its sphere diameter. The interaction forces\nand energies between two particles are defined with respect to the\nseparation of their respective rounded surfaces, not by the separation\nof the vertices, edges, and faces themselves.\n\nThis means that the specified cutoff in the pair_style command is the\ncutoff distance, \\(r_c\\), for the surface separation, \\(\\delta_n\\) (see figure\nbelow). This is the distance at which two particles no longer\ninteract. If \\(r_c\\) is specified as 0.0, then it is a contact-only\ninteraction. I.e. the two particles must overlap in order to exert a\nrepulsive force on each other. If \\(r_c > 0.0\\), then the force between\ntwo particles will be attractive for surface separations from 0 to\n\\(r_c\\), and repulsive once the particles overlap.\n\nNote that unlike for other pair styles, the specified cutoff is not\nthe distance between the centers of two particles at which they stop\ninteracting. This center-to-center distance depends on the shape and\nsize of the two particles and their relative orientation. LAMMPS\ntakes that into account when computing the surface separation distance\nand applying the \\(r_c\\) cutoff.\n\nThe forces between vertex-vertex, vertex-edge, vertex-face, edge-edge,\nand edge-face overlaps are given by:\n\\[.. math::\\]\n F_n &= \\begin{cases}\n k_n \\delta_n - c_n v_n, & \\delta_n \\le 0 \\\\\n -k_{na} \\delta_n - c_n v_n & 0 < \\delta_n \\le r_c \\\\\n 0 & \\delta_n > r_c \\\\\n \\end{cases} \\\\\n F_t &= \\begin{cases}\n \\mu k_n \\delta_n - c_t v_t & \\delta_n \\le 0 \\\\\n 0 & \\delta_n > 0\n \\end{cases}\n\n ![Image](JPG/pair_body_rounded.jpg) \n\nIn **pair-Wang**, the tangential friction force between two\nparticles that are in contact is modeled differently prior to gross\nsliding (i.e. static friction) and during gross-sliding (kinetic\nfriction). The latter takes place when the tangential deformation\nexceeds the Coulomb frictional limit. In the current implementation,\nhowever, we do not take into account frictional history, i.e. we do\nnot keep track of how many time steps the two particles have been in\ncontact nor calculate the tangential deformation. Instead, we assume\nthat gross sliding takes place as soon as two particles are in\ncontact.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file read by the [read_data ](https://docs.lammps.org/read_data.html) command:\n\n* \\(k_n\\) (energy/distance\\^2 units)\n* \\(k_{na}\\) (energy/distance\\^2 units)\n\nEffectively, \\(k_n\\) and \\(k_{na}\\) are the slopes of the red lines in the plot\nabove for force versus surface separation, for \\(\\delta_n\\) < 0 and\n\\(0 < \\delta_n < r_c\\) respectively.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\nThus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(pair-Wang)** J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular\nMatter, 13, 1 (2011). \n ", - "restrictions": "These pair styles are part of the BODY package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* file1,file2,... = dump file(s) to read\n* one or more keywords may be appended, keyword dump must appear and be last \n *      keyword = first or last or every or skip or start or stop or post or dump \n       first args = Nfirst \n       Nfirst = dump timestep to start on \n       last args = Nlast \n       Nlast = dumptimestep to stop on \n       every args = Nevery \n       Nevery = read snapshots matching every this many timesteps \n       skip args = Nskip \n       Nskip = read one out of every Nskip snapshots \n       start args = Nstart \n       Nstart = timestep on which pseudo run will start \n       stop args = Nstop \n       Nstop = timestep to which pseudo run will end \n       post value = yes or no \n       dump args = same as [read_dump ](https://docs.lammps.org/read_dump.html) command starting with its field arguments \n", + "examples": "\n```lmps\nrerun dump.file dump x y z vx vy vz\nrerun dump1.txt dump2.txt first 10000 every 1000 dump x y z\nrerun dump.vels dump x y z vx vy vz box yes format molfile lammpstrj\nrerun dump.dcd dump x y z box no format molfile dcd\nrerun ../run7/dump.file.gz skip 2 dump x y z box yes\nrerun dump.bp dump x y z box no format adios\nrerun dump.bp dump x y z vx vy vz format adios timeout 10.0\n```\n", + "html_filename": "rerun.html", + "short_description": "Perform a pseudo simulation run where atom information is read one\nsnapshot at a time from a dump file(s), and energies and forces are\ncomputed on the shapshot to produce thermodynamic or other output", + "description": "Perform a pseudo simulation run where atom information is read one\nsnapshot at a time from a dump file(s), and energies and forces are\ncomputed on the shapshot to produce thermodynamic or other output.\n\nThis can be useful in the following kinds of scenarios, after an\ninitial simulation produced the dump file:\n\n* Compute the energy and forces of snapshots using a different potential.\n* Calculate one or more diagnostic quantities on the snapshots that\n were not computed in the initial run. These can also be computed with\n settings not used in the initial run, e.g. computing an RDF via the\n [compute rdf ](https://docs.lammps.org/compute_rdf.html) command with a longer cutoff than was\n used initially.\n* Calculate the portion of per-atom forces resulting from a subset of\n the potential. E.g. compute only Coulombic forces. This can be done\n by only defining only a Coulombic pair style in the rerun script.\n Doing this in the original script would result in different (bad)\n dynamics.\n\nConceptually, using the rerun command is like running an input script\nthat has a loop in it (see the [next ](https://docs.lammps.org/next.html) and [jump ](https://docs.lammps.org/jump.html)\ncommands). Each iteration of the loop reads one snapshot from the\ndump file via the [read_dump ](https://docs.lammps.org/read_dump.html) command, sets the\ntimestep to the appropriate value, and then invokes a [run ](https://docs.lammps.org/run.html)\ncommand for zero timesteps to simply compute energy and forces, and\nany other [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or diagnostic info\nyou have defined. This computation also invokes any fixes you have\ndefined that apply constraints to the system, such as [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix indent ](https://docs.lammps.org/fix_indent.html).\n\nNote that a simulation box must already be defined before using the\nrerun command. This can be done by the [create_box ](https://docs.lammps.org/create_box.html),\n[read_data ](https://docs.lammps.org/read_data.html), or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nAlso note that reading per-atom information from dump snapshots is\nlimited to the atom coordinates, velocities and image flags as\nexplained in the [read_dump ](https://docs.lammps.org/read_dump.html) command. Other atom\nproperties, which may be necessary to compute energies and forces,\nsuch as atom charge, or bond topology information for a molecular\nsystem, are not read from (or even contained in) dump files. Thus\nthis auxiliary information should be defined in the usual way, e.g. in\na data file read in by a [read_data ](https://docs.lammps.org/read_data.html) command, before\nusing the rerun command.\n\nAlso note that the frequency of thermodynamic or dump output from the\nrerun simulation will depend on settings made in the rerun script, the\nsame as for output from any LAMMPS simulation. See further info below\nas to what that means if the timesteps for snapshots read from dump\nfiles do not match the specified output frequency.\n\n----------\n\nIf more than one dump file is specified, the dump files are read one\nafter the other in the order specified. It is assumed that snapshot\ntimesteps will be in ascending order. If a snapshot is encountered that\nis not in ascending order, it will skip the snapshot until it reads one\nthat is.\nThis allows skipping of a duplicate snapshot (same timestep),\ne.g. that appeared at the end of one file and beginning of the next.\nHowever if you specify a series of dump files in an incorrect order\n(with respect to the timesteps they contain), you may skip large\nnumbers of snapshots.\n\nNote that the dump files specified as part of the *dump* keyword can be\nparallel files, i.e. written as multiple files either per processor\nand/or per snapshot. If that is the case they will also be read in\nparallel which can make the rerun command operate dramatically faster\nfor large systems. See the page for the [read_dump](https://docs.lammps.org/read_dump.html) and [dump ](https://docs.lammps.org/dump.html) commands which describe how to read\nand write parallel dump files.\n\nThe *first*, *last*, *every*, *skip* keywords determine which\nsnapshots are read from the dump file(s). Snapshots are skipped until\nthey have a timestep >= *Nfirst* . When a snapshot with a timestep >\n*Nlast* is encountered, the rerun command finishes. Note that\nthe defaults for *first* and *last* are to read all snapshots. If the\n*every* keyword is set to a value > 0, then only snapshots with\ntimesteps that are a multiple of *Nevery* are read (the first\nsnapshot is always read). If *Nevery* = 0, then this criterion is\nignored, i.e. every snapshot is read that meets the other criteria.\nIf the *skip* keyword is used, then after the first snapshot is read,\nevery Nth snapshot is read, where N = *Nskip* . E.g. if *Nskip* = 3,\nthen only 1 out of every 3 snapshots is read, assuming the snapshot\ntimestep is also consistent with the other criteria.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all dump formats contain the timestep and not all dump readers\n > support reading it. In that case individual snapshots are assigned\n > consecutive timestep numbers starting at 1. \n > \n\nThe *start* and *stop* keywords do not affect which snapshots are read\nfrom the dump file(s). Rather, they have the same meaning that they\ndo for the [run ](https://docs.lammps.org/run.html) command. They only need to be defined if\n(a) you are using a [fix ](https://docs.lammps.org/fix.html) command that changes some value\nover time, and (b) you want the reference point for elapsed time (from\nstart to stop) to be different than the *first* and *last* settings.\nSee the page for individual fixes to see which ones can be used\nwith the *start/stop* keywords. Note that if you define neither of\nthe *start* /\\ *stop* or *first* /\\ *last* keywords, then LAMMPS treats the\npseudo run as going from 0 to a huge value (effectively infinity).\nThis means that any quantity that a fix scales as a fraction of\nelapsed time in the run, will essentially remain at its initial value.\nAlso note that an error will occur if you read a snapshot from the\ndump file with a timestep value larger than the *stop* setting you\nhave specified.\n\nThe *post* keyword can be used to minimize the output to the screen that\nhappens after a *rerun* command, similar to the post keyword of the\n[run command ](https://docs.lammps.org/run.html). It is set to *no* by default.\n\nThe *dump* keyword is required and must be the last keyword specified.\nIts arguments are passed internally to the [read_dump ](https://docs.lammps.org/read_dump.html)\ncommand. The first argument following the *dump* keyword should be\nthe *field1* argument of the [read_dump ](https://docs.lammps.org/read_dump.html) command. See\nthe [read_dump ](https://docs.lammps.org/read_dump.html) page for details on the various\noptions it allows for extracting information from the dump file\nsnapshots, and for using that information to alter the LAMMPS\nsimulation.\n\n----------\n\nIn general, a LAMMPS input script that uses a rerun command can\ninclude and perform all the usual operations of an input script that\nuses the [run ](https://docs.lammps.org/run.html) command. There are a few exceptions and\npoints to consider, as discussed here.\n\nFixes that perform time integration, such as [fix nve ](https://docs.lammps.org/fix_nve.html)\nor [fix npt ](https://docs.lammps.org/fix_nh.html) are not invoked, since no time integration\nis performed. Fixes that perturb or constrain the forces on atoms\nwill be invoked, just as they would during a normal run. Examples are\n[fix indent ](https://docs.lammps.org/fix_indent.html) and [fix langevin ](https://docs.lammps.org/fix_langevin.html).\nSo you should think carefully as to whether that makes sense for the\nmanner in which you are reprocessing the dump snapshots.\n\nIf you only want the rerun script to perform an analysis that does not\ninvolve pair interactions, such as use compute msd to calculated\ndisplacements over time, you do not need to define a [pair style](https://docs.lammps.org/pair_style.html), which may also mean neighbor lists will not need to be\ncalculated which saves time. The [comm_modify cutoff](https://docs.lammps.org/comm_modify.html) command can also be used to ensure ghost atoms are\nacquired from far enough away for operations like bond and angle\nevaluations, if no pair style is being used.\n\nEvery time a snapshot is read, the timestep for the simulation is reset,\nas if the [reset_timestep ](https://docs.lammps.org/reset_timestep.html) command were used.\nThis command has some restrictions as to what fixes can be defined. See\nits documentation page for details. For example, the [fix deposit](https://docs.lammps.org/fix_deposit.html) and [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) fixes are in this\ncategory. They also make no sense to use with a rerun command.\n\nIf time-averaging fixes like [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) are\nused, they are invoked on timesteps that are a function of their\n*Nevery*, *Nrepeat*, and *Nfreq* settings. As an example, see the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) page for details. You must\nensure those settings are consistent with the snapshot timestamps that\nare read from the dump file(s). If an averaging fix is not invoked on\na timestep it expects to be, LAMMPS will flag an error.\n\nThe various forms of LAMMPS output, as defined by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html), [thermo ](https://docs.lammps.org/thermo.html),\n[dump ](https://docs.lammps.org/dump.html), and [restart ](https://docs.lammps.org/restart.html) commands occur with\nspecified frequency, e.g. every N steps. If the timestep for a dump\nsnapshot is not a multiple of N, then it will be read and processed,\nbut no output will be produced. If you want output for every dump\nsnapshot, you can simply use N=1 for an output frequency, e.g. for\nthermodynamic output or new dump file output.\n\n----------\n", + "restrictions": "The *rerun* command is subject to all restrictions of\nthe [read_dump ](https://docs.lammps.org/read_dump.html) command.\n", + "related": "[read_dump ](https://docs.lammps.org/read_dump.html)\n" }, { "command": [ - "compute smd/triangle/vertices" + "pair_style yukawa", + "pair_style yukawa/gpu", + "pair_style yukawa/omp", + "pair_style yukawa/kk" ], "syntax": [ - "compute ID group-ID smd/triangle/vertices" + "pair_style yukawa kappa cutoff" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "yukawa", + "type": 3, + "choices": [ + "yukawa", + "yukawa/gpu", + "yukawa/omp", + "yukawa/kk" + ] }, { - "arg": "group-ID", + "arg": "kappa", "type": 2, "choices": [] }, { - "arg": "smd/triangle/vertices", - "type": 1, + "arg": "cutoff", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/triangle/vertices = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/triangle/vertices\n```\n", - "html_filename": "compute_smd_triangle_vertices.html", - "short_description": "Define a computation that returns the coordinates of the vertices\ncorresponding to the triangle-elements of a mesh created by the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)", - "description": "Define a computation that returns the coordinates of the vertices\ncorresponding to the triangle-elements of a mesh created by the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html).\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute returns a per-particle vector of vectors, which can be\naccessed by any command that uses per-particle values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-particle vector has nine entries, (x1/y1/z1), (x2/y2/z2), and\n(x3/y3/z3) corresponding to the first, second, and third vertex of\neach triangle.\n\nIt is only meaningful to use this compute for a group of particles\nwhich is created via the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) command.\n\nThe output of this compute can be used with the dump2vtk_tris tool to\ngenerate a VTK representation of the smd/wall_surface mesh for\nvisualization purposes.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of distance.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix smd/move/tri/surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html),\n[fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)\n" + "parameters": "* kappa = screening length (inverse distance units)\n* cutoff = global cutoff for Yukawa interactions (distance units) \n", + "examples": "\n```lmps\npair_style yukawa 2.0 2.5\npair_coeff 1 1 100.0 2.3\npair_coeff * * 100.0\n```\n", + "html_filename": "pair_yukawa.html", + "short_description": "Style *yukawa* computes pairwise interactions with the formula\n\\[\n E = A \\frac{e^{- \\kappa r}}{r} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "Style *yukawa* computes pairwise interactions with the formula\n\\[\n E = A \\frac{e^{- \\kappa r}}{r} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy\\*distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global yukawa\ncutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is an energy value mixed\nlike a LJ epsilon. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": " none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute dihedral/local" + "fix deposit" ], "syntax": [ - "compute ID group-ID dihedral/local value1 value2 ... keyword args ..." + "fix ID group-ID deposit N type M seed keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -22437,142 +21521,148 @@ export const command_docs = [ "choices": [] }, { - "arg": "dihedral/local", + "arg": "deposit", "type": 1, "choices": [] }, { - "arg": "value1", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "type", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "M", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "seed", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dihedral/local = style name of this compute command\n* one or more values may be appended\n* value = phi or v_name \n *        phi = tabulate dihedral angles \n *        v_name = equal-style variable with name (see below) \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *        set args = phi name \n         phi = only currently allowed arg \n         name = name of variable to set with phi \n", - "examples": "\n```lmps\ncompute 1 all dihedral/local phi\ncompute 1 all dihedral/local phi v_cos set phi p\n```\n", - "html_filename": "compute_dihedral_local.html", - "short_description": "Define a computation that calculates properties of individual dihedral\ninteractions", - "description": "Define a computation that calculates properties of individual dihedral\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of dihedral angles in the system, modified\nby the group parameter as explained below.\n\nThe value *phi* (\\(\\phi\\)) is the dihedral angle, as defined in the diagram\non the [dihedral_style ](https://docs.lammps.org/dihedral_style.html) doc page.\n\nThe value *v_name* can be used together with the *set* keyword to compute a\nuser-specified function of the dihedral angle \\(\\phi\\). The *name*\nspecified for the *v_name* value is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on\na variable which will store the angle \\(\\phi\\). This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with \\(\\phi\\).\n\nNote that the value of \\(\\phi\\) for each angle which stored in the internal\nvariable is in radians, not degrees.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the \\(\\cos\\phi\\) and \\(\\cos^2\\phi\\) of every dihedral\nangle in the system and output the statistics in various ways:\n\n```lmps\nvariable p internal 0.0\nvariable cos equal cos(v_p)\nvariable cossq equal cos(v_p)*cos(v_p)\n\ncompute 1 all property/local datom1 datom2 datom3 datom4 dtype\ncompute 2 all dihedral/local phi v_cos v_cossq set phi p\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the angle (\\(\\phi\\)),\n\\(\\cos(\\phi)\\), and \\(\\cos^2(\\phi)\\) for every dihedral in the system.\nThe [thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the average of\nthose quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwith thermo output. And the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the cosine(angle) values and write them to a file.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their dihedrals. A dihedral will\nonly be included if all four atoms in the dihedral are in the specified\ncompute group.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, dihedral output from the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local dtype datom1 datom2 datom3 datom4\ncompute 2 all dihedral/local phi\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_2[1]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of dihedrals. If a single value is specified, a\nlocal vector is produced. If two or more values are specified, a\nlocal array is produced where the number of columns is equal to the number of\nvalues. The vector or array can be accessed by any command that uses\nlocal values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *phi* will be in degrees.\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" -}, -{ - "command": [ - "fix sph/stationary" - ], - "syntax": [ - "fix ID group-ID sph/stationary" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "units", + "type": 3, + "choices": [ + "region", + "var", + "set", + "id", + "global", + "local", + "near", + "gaussian", + "attempt", + "rate", + "vx", + "vy", + "vz", + "target", + "mol", + "molfrac", + "rigid", + "shake", + "orient", + "units" + ] }, { - "arg": "group-ID", + "arg": "values", "type": 2, "choices": [] - }, - { - "arg": "sph/stationary", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sph = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 boundary sph/stationary\n```\n", - "html_filename": "fix_sph_stationary.html", - "short_description": "Perform time integration to update internal energy and local density,\nbut not position or velocity for atoms in the group each timestep", - "description": "Perform time integration to update internal energy and local density,\nbut not position or velocity for atoms in the group each timestep.\nThis fix is needed for SPH simulations to correctly time-integrate\nfixed boundary particles which constrain a fluid to a given region in\nspace. SPH stands for Smoothed Particle Hydrodynamics.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix sph ](https://docs.lammps.org/fix_sph.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* deposit = style name of this fix command\n* N = # of atoms or molecules to insert\n* type = atom type (1-Ntypes or type label) to assign to inserted atoms (offset for molecule insertion)\n* M = insert a single atom or molecule every M steps\n* seed = random # seed (positive integer)\n* one or more keyword/value pairs may be appended to args\n* keyword = region or var or set or id or global or local or near or gaussian or attempt or rate or vx or vy or vz or target or mol or molfrac or rigid or shake or orient or units \n *        region value = region-ID \n         region-ID = ID of region to use as insertion volume \n *        var value = name = variable name to evaluate for test of atom creation \n *        set values = dim name \n         dim = x or y or z \n         name = name of variable to set with x, y, or z atom position \n *        id value = max or next \n         max = atom ID for new atom(s) is max ID of all current atoms plus one \n         next = atom ID for new atom(s) increments by one for every deposition \n *        global values = lo hi \n         lo,hi = put new atom/molecule a distance lo-hi above all other atoms (distance units) \n *        local values = lo hi delta \n         lo,hi = put new atom/molecule a distance lo-hi above any nearby atom beneath it (distance units) \n         delta = lateral distance within which a neighbor is considered \"nearby\" (distance units) \n *        near value = R \n         R = only insert atom/molecule if further than R from existing particles (distance units) \n *        gaussian values = xmid ymid zmid sigma \n         xmid,ymid,zmid = center of the gaussian distribution (distance units) \n         sigma = width of gaussian distribution (distance units) \n *        attempt value = Q \n         Q = attempt a single insertion up to Q times \n *        rate value = V \n         V = z velocity (y in 2d) at which insertion volume moves (velocity units) \n *        vx values = vxlo vxhi \n         vxlo,vxhi = range of x velocities for inserted atom/molecule (velocity units) \n *        vy values = vylo vyhi \n         vylo,vyhi = range of y velocities for inserted atom/molecule (velocity units) \n *        vz values = vzlo vzhi \n         vzlo,vzhi = range of z velocities for inserted atom/molecule (velocity units) \n *        target values = tx ty tz \n         tx,ty,tz = location of target point (distance units) \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        molfrac values = f1 f2 ... fN \n         f1 to fN = relative probability of creating each of N molecules in template-ID \n *        rigid value = fix-ID \n         fix-ID = ID of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n *        shake value = fix-ID \n         fix-ID = ID of [fix shake ](https://docs.lammps.org/fix_shake.html) command \n *        orient values = rx ry rz \n         rx,ry,rz = vector to randomly rotate an inserted molecule around \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", + "examples": "\n```lmps\nfix 3 all deposit 1000 2 100 29494 region myblock local 1.0 1.0 1.0 units box\nfix 2 newatoms deposit 10000 1 500 12345 region disk near 2.0 vz -1.0 -0.8\nfix 4 sputter deposit 1000 2 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice\nfix 5 insert deposit 200 2 100 777 region disk gaussian 5.0 5.0 9.0 1.0 units box\n\nlabelmap atom 1 Au\nfix 4 sputter deposit 1000 Au 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice\n```\n", + "html_filename": "fix_deposit.html", + "short_description": "Insert a single atom or molecule into the simulation domain every M\ntimesteps until N atoms or molecules have been inserted", + "description": "Insert a single atom or molecule into the simulation domain every M\ntimesteps until N atoms or molecules have been inserted. This is\nuseful for simulating deposition onto a surface. For the remainder of\nthis doc page, a single inserted atom or molecule is referred to as a\n\"particle\".\n\nIf inserted particles are individual atoms, they are assigned the\nspecified atom type. If they are molecules, the type of each atom in\nthe inserted molecule is specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command, and those values are added to the\nspecified atom type. E.g. if the file specifies atom types 1,2,3, and\nthose are the atom types you want for inserted molecules, then specify\n*type* = 0. If you specify *type* = 2, the in the inserted molecule\nwill have atom types 3,4,5.\n\nAll atoms in the inserted particle are assigned to two groups: the\ndefault group \"all\" and the group specified in the fix deposit command\n(which can also be \"all\").\n\nIf you are computing temperature values which include inserted\nparticles, you will want to use the [compute_modify dynamic/dof yes](https://docs.lammps.org/compute_modify.html) option, which ensures the current number of atoms is\nused as a normalizing factor each time the temperature is computed.\n\nCare must be taken that inserted particles are not too near existing\natoms, using the options described below. When inserting particles\nabove a surface in a non-periodic box (see the\n[boundary ](https://docs.lammps.org/boundary.html) command), the possibility of a particle\nescaping the surface and flying upward should be considered, since the\nparticle may be lost or the box size may grow infinitely large. A\n[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command can be used to\nprevent this behavior. Note that if a shrink-wrap boundary is used,\nit is OK to insert the new particle outside the box, however the box\nwill immediately be expanded to include the new particle. When\nsimulating a sputtering experiment it is probably more realistic to\nignore those atoms using the [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\ncommand with the *lost ignore* option and a fixed\n[boundary ](https://docs.lammps.org/boundary.html).\n\nThe fix deposit command must use the *region* keyword to define an\ninsertion volume. The specified region must have been previously\ndefined with a [region ](https://docs.lammps.org/region.html) command. It must be defined with\nside = *in* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS checks that the specified region is wholly inside the\n > simulation box. It can do this correctly for orthonormal simulation\n > boxes. However for [triclinic boxes ](https://docs.lammps.org/Howto_triclinic.html), it only\n > tests against the larger orthonormal box that bounds the tilted\n > simulation box. If the specified region includes volume outside the\n > tilted box, then an insertion will likely fail, leading to a \"lost\n > atoms\" error. Thus for triclinic boxes you should ensure the\n > specified region is wholly inside the simulation box. \n > \n\nThe locations of inserted particles are taken from uniform distributed\nrandom numbers, unless the *gaussian* keyword is used. Then the\nindividual coordinates are taken from a gaussian distribution of\nwidth *sigma* centered on *xmid,ymid,zmid* .\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the\n[molecule ](https://docs.lammps.org/molecule.html) command, which reads files that define one or\nmore molecules. The coordinates, atom types, charges, etc, as well as\nany bond/angle/etc and special neighbor information for the molecule\ncan be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in each file are the coordinates and types of atoms in\nthe molecule.\n\nIf the molecule template contains more than one molecule, the relative\nprobability of depositing each molecule can be specified by the\n*molfrac* keyword. N relative probabilities, each from 0.0 to 1.0, are\nspecified, where N is the number of molecules in the template. Each\ntime a molecule is deposited, a random number is used to sample from\nthe list of relative probabilities. The N values must sum to 1.0.\n\nIf you wish to insert molecules via the *mol* keyword, that will be\ntreated as rigid bodies, use the *rigid* keyword, specifying as its\nvalue the ID of a separate [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)\ncommand which also appears in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nEach timestep a particle is inserted, the coordinates for its atoms\nare chosen as follows. For insertion of individual atoms, the\n\"position\" referred to in the following description is the coordinate\nof the atom. For insertion of molecule, the \"position\" is the\ngeometric center of the molecule; see the [molecule ](https://docs.lammps.org/molecule.html) doc\npage for details. A random rotation of the molecule around its center\npoint is performed, which determines the coordinates all the\nindividual atoms.\n\nA random position within the region insertion volume is generated. If\nneither the *global* or *local* keyword is used, the random position\nis the trial position. If the *global* keyword is used, the random\nx,y values are used, but the z position of the new particle is set\nabove the highest current atom in the simulation by a distance\nrandomly chosen between lo/hi. (For a 2d simulation, this is done for\nthe y position.) If the *local* keyword is used, the z position is\nset a distance between lo/hi above the highest current atom in the\nsimulation that is \"nearby\" the chosen x,y position. In this context,\n\"nearby\" means the lateral distance (in x,y) between the new and old\nparticles is less than the *delta* setting.\n\nOnce a trial x,y,z position has been selected, the insertion is only\nperformed if both the *near* and *var* keywords are satisfied (see below).\nIf either the *near* or the *var* keyword is not satisfied, a new random\nposition within the insertion volume is chosen and another trial is made.\nUp to Q attempts are made. If one or more particle insertions are not\nsuccessful, LAMMPS prints a warning message.\n\nThe *near* keyword ensures that no current atom in the simulation is within\na distance R of any atom in the new particle, including the effect of\nperiodic boundary conditions if applicable. Note that the default value\nfor R is 0.0, which will allow atoms to strongly overlap if you are\ninserting where other atoms are present. This distance test is performed\nindependently for each atom in an inserted molecule, based on the randomly\nrotated configuration of the molecule.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are inserting finite size particles or a molecule or\n > rigid body consisting of finite-size particles, then you should\n > typically set R larger than the distance at which any inserted\n > particle may overlap with either a previously inserted particle or an\n > existing particle. LAMMPS will issue a warning if R is smaller than\n > this value, based on the radii of existing and inserted particles. \n > \n\n\nThe *var* and *set* keywords can be used together to provide a criterion\nfor accepting or rejecting the addition of an individual atom, based on its\ncoordinates. The *name* specified for the *var* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) that should evaluate to a zero or\nnon-zero value based on one or two or three variables that will store the\n*x*, *y*, or *z* coordinates of an atom (one variable per coordinate). If\nused, these other variables must be [internal-style variables](https://docs.lammps.org/variable.html) defined in the input script; their initial numeric value can be\nanything. They must be internal-style variables, because this command\nresets their values directly. The *set* keyword is used to identify the\nnames of these other variables, one variable for the *x*-coordinate of a\ncreated atom, one for *y*, and one for *z*. When an atom is created, its\n\\((x,y,z)\\) coordinates become the values for any *set* variable that\nis defined. The *var* variable is then evaluated. If the returned value\nis 0.0, the atom is not created. If it is non-zero, the atom is created.\nFor an example of how to use these keywords, see the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command.\n\nThe *rate* option moves the insertion volume in the z direction (3d)\nor y direction (2d). This enables particles to be inserted from a\nsuccessively higher height over time. Note that this parameter is\nignored if the *global* or *local* keywords are used, since those\noptions choose a z-coordinate for insertion independently.\n\nThe vx, vy, and vz components of velocity for the inserted particle\nare set by sampling a uniform distribution between the bounds set by\nthe values specified for the *vx*, *vy*, and *vz* keywords. Note that\nnormally, new particles should be a assigned a negative vertical\nvelocity so that they move towards the surface. For molecules, the\nsame velocity is given to every particle (no rotation or bond vibration).\n\nIf the *target* option is used, the velocity vector of the inserted\nparticle is changed so that it points from the insertion position\ntowards the specified target point. The magnitude of the velocity is\nunchanged. This can be useful, for example, for simulating a\nsputtering process. E.g. the target point can be far away, so that\nall incident particles strike the surface as if they are in an\nincident beam of particles at a prescribed angle.\n\nThe *orient* keyword is only used when molecules are deposited. By\ndefault, each molecule is inserted at a random orientation. If this\nkeyword is specified, then (rx,ry,rz) is used as an orientation\nvector, and each inserted molecule is rotated around that vector with\na random value from zero to 2*PI. For a 2d simulation, rx = ry = 0.0\nis required, since rotations can only be performed around the z axis.\n\nThe *id* keyword determines how atom IDs and molecule IDs are assigned\nto newly deposited particles. Molecule IDs are only assigned if\nmolecules are being inserted. For the *max* setting, the atom and\nmolecule IDs of all current atoms are checked. Atoms in the new\nparticle are assigned IDs starting with the current maximum plus one.\nIf a molecule is inserted it is assigned an ID = current maximum plus\none. This means that if particles leave the system, the new IDs may\nreplace the lost ones. For the *next* setting, the maximum ID of any\natom and molecule is stored at the time the fix is defined. Each time\na new particle is added, this value is incremented to assign IDs to\nthe new atom(s) or molecule. Thus atom and molecule IDs for deposited\nparticles will be consecutive even if particles leave the system over\ntime.\n\nThe *units* keyword determines the meaning of the distance units used\nfor the other deposition parameters. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command,\ne.g. Angstroms for units = real or metal. A *lattice* value means the\ndistance units are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\nNote that the units choice affects all the keyword values that have\nunits of distance or velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are monitoring the temperature of a system where the atom\n > count is changing due to adding particles, you typically should use\n > the [compute_modify dynamic/dof yes ](https://docs.lammps.org/compute_modify.html) command\n > for the temperature compute you are using. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the deposition to [binary restart files ](https://docs.lammps.org/restart.html). This includes information about how many\nparticles have been deposited, the random number generator seed, the\nnext timestep for deposition, etc. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. This fix computes a global scalar, which can be accessed by various\noutput commands. The scalar is the cumulative number of insertions. The\nscalar value calculated by this fix is \"intensive\". No parameter of this\nfix can be used with the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "The specified insertion region cannot be a \"dynamic\" region, as\ndefined by the [region ](https://docs.lammps.org/region.html) command.\n", + "related": "[fix pour ](https://docs.lammps.org/fix_pour.html), [region ](https://docs.lammps.org/region.html)\n" }, { "command": [ - "fix bond/react" + "pair_style eam", + "pair_style eam/gpu", + "pair_style eam/intel", + "pair_style eam/kk", + "pair_style eam/omp", + "pair_style eam/opt", + "pair_style eam/alloy", + "pair_style eam/alloy/gpu", + "pair_style eam/alloy/intel", + "pair_style eam/alloy/kk", + "pair_style eam/alloy/omp", + "pair_style eam/alloy/opt", + "pair_style eam/cd", + "pair_style eam/cd/old", + "pair_style eam/fs", + "pair_style eam/he", + "pair_style eam/he", + "pair_style eam/he", + "pair_style eam/he", + "pair_style eam/he", + "pair_style eam/he" ], "syntax": [ - "fix ID group-ID bond/react common_keyword values &" + "pair_style style" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "bond/react", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "reset_mol_ids", + "arg": "eam/fs/opt", "type": 3, "choices": [ - "stabilization", - "reset_mol_ids" + "eam", + "eam/alloy", + "eam/cd", + "eam/cd/old", + "eam/fs", + "eam/he", + "eam/gpu", + "eam/intel", + "eam/kk", + "eam/omp", + "eam/opt", + "eam/alloy/gpu", + "eam/alloy/intel", + "eam/alloy/kk", + "eam/alloy/omp", + "eam/alloy/opt", + "eam/fs/gpu", + "eam/fs/intel", + "eam/fs/kk", + "eam/fs/omp", + "eam/fs/opt" ] - }, - { - "arg": "values", - "type": 2, - "choices": [] - }, - { - "arg": "&", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command.\n* bond/react = style name of this fix command\n* the common keyword/values may be appended directly after 'bond/react'\n* common keywords apply to all reaction specifications\n* common_keyword = stabilization or reset_mol_ids \n *        stabilization values = stabilize group_prefix xmax \n         stabilize = yes or no \n         yes = perform reaction site stabilization \n         no = no reaction site stabilization (default) \n         group_prefix = user-assigned prefix for the dynamic group of atoms not currently involved in a reaction \n         xmax = value that is used by an internally-created [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) integrator \n *        reset_mol_ids values = yes or no \n         yes = update molecule IDs based on new global topology (default) \n         no = do not update molecule IDs \n* react = mandatory argument indicating new reaction specification\n* react-ID = user-assigned name for the reaction\n* react-group-ID = only atoms in this group are considered for the reaction\n* Nevery = attempt reaction every this many steps\n* Rmin = initiator atoms must be separated by more than Rmin to initiate reaction (distance units)\n* Rmax = initiator atoms must be separated by less than Rmax to initiate reaction (distance units)\n* template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology\n* template-ID(post-reacted) = ID of a molecule template containing post-reaction topology\n* map_file = name of file specifying corresponding atom-IDs in the pre- and post-reacted templates\n* zero or more individual keyword/value pairs may be appended to each react argument\n* individual_keyword = prob or rate_limit or max_rxn or stabilize_steps or custom_charges or rescale_charges or molecule or modify_create \n *          prob values = fraction seed \n           fraction = initiate reaction with this probability if otherwise eligible \n           seed = random number seed (positive integer) \n *          rate_limit = Nlimit Nsteps \n           Nlimit = maximum number of reactions allowed to occur within interval \n           Nsteps = the interval (number of timesteps) over which to count reactions \n *          max_rxn value = N \n           N = maximum number of reactions allowed to occur \n *          stabilize_steps value = timesteps \n           timesteps = number of time steps to apply the internally-created [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) fix to reacting atoms \n *          custom_charges value = no or fragment-ID \n           no = update all atomic charges (default) \n           fragment-ID = ID of molecule fragment whose charges are updated \n *          rescale_charges value = no or yes \n           no = do not rescale atomic charges (default) \n           yes = rescale charges such that total charge does not change during reaction \n *          molecule value = off or inter or intra \n           off = allow both inter- and intramolecular reactions (default) \n           inter = search for reactions between molecules with different IDs \n           intra = search for reactions within the same molecule \n *          modify_create values = keyword arg \n           fit arg = all or fragment-ID \n           all = use all eligible atoms for create-atoms fit (default) \n           fragment-ID = ID of molecule fragment used for create-atoms fit \n           overlap value = R \n           R = only insert atom/molecule if further than R from existing particles (distance units) \n", - "examples": "For unabridged example scripts and files, see examples/PACKAGES/reaction.\n\n```lmps\nmolecule mol1 pre_reacted_topology.txt\nmolecule mol2 post_reacted_topology.txt\nfix 5 all bond/react react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt\n\nmolecule mol1 pre_reacted_rxn1.txt\nmolecule mol2 post_reacted_rxn1.txt\nmolecule mol3 pre_reacted_rxn2.txt\nmolecule mol4 post_reacted_rxn2.txt\nfix 5 all bond/react stabilization yes nvt_grp .03 &\nreact myrxn1 all 1 0 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &\nreact myrxn2 all 1 0 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345\nfix 6 nvt_grp_REACT nvt temp 300 300 100 # set thermostat after bond/react\n```\n", - "html_filename": "fix_bond_react.html", - "short_description": "Initiate complex covalent bonding (topology) changes", - "description": "Initiate complex covalent bonding (topology) changes. These topology\nchanges will be referred to as 'reactions' throughout this\ndocumentation. Topology changes are defined in pre- and post-reaction\nmolecule templates and can include creation and deletion of bonds,\nangles, dihedrals, impropers, bond types, angle types, dihedral types,\natom types, or atomic charges. In addition, reaction by-products or\nother molecules can be identified and deleted. Finally, atoms can be\ncreated and inserted at specific positions relative to the reaction\nsite.\n\nFix bond/react does not use quantum mechanical (e.g., [fix qmmm ](https://docs.lammps.org/fix_qmmm.html)) or\npairwise bond-order potential (e.g., [Tersoff ](https://docs.lammps.org/pair_tersoff.html) or\n[AIREBO ](https://docs.lammps.org/pair_airebo.html)) methods to\ndetermine bonding changes a priori. Rather, it uses a distance-based\nprobabilistic criteria to effect predetermined topology changes in\nsimulations using standard force fields.\n\nThis fix was created to facilitate the dynamic creation of polymeric,\namorphous or highly cross-linked systems. A suggested workflow for\nusing this fix is\n\n (1) identify a reaction to be simulated\n (2) build a molecule template of the reaction site before the reaction has occurred\n (3) build a molecule template of the reaction site after the reaction has occurred\n (4) create a map that relates the template-atom-IDs of each atom between pre- and post-reaction molecule templates\n (5) fill a simulation box with molecules and run a simulation with fix bond/react.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >\n **New in version 15Sep2022** \n >\n > [Type labels ](https://docs.lammps.org/Howto_type_labels.html) allow for molecule templates\n > and data files to use alphanumeric atom types that match those of\n > a force field. Input files that use type labels are inherently\n > compatible with each other and portable between different\n > simulations. Therefore, it is highly recommended to use type labels\n > to specify atom, bond, etc. types when using fix bond/react. \n > \n\nOnly one 'fix bond/react' command can be used at a time. Multiple\nreactions can be simultaneously applied by specifying multiple *react*\narguments to a single 'fix bond/react' command. This syntax is\nnecessary because the \"common\" keywords are applied to all reactions.\n\nThe *stabilization* keyword enables reaction site stabilization.\nReaction site stabilization is performed by including reacting atoms\nin an internally-created fix [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) time\nintegrator for a set number of time steps given by the\n*stabilize_steps* keyword. While reacting atoms are being time\nintegrated by the internal nve/limit, they are prevented from being\ninvolved in any new reactions. The *xmax* value keyword should\ntypically be set to the maximum distance that non-reacting atoms move\nduring the simulation.\n\nFix bond/react creates and maintains two important dynamic groups of\natoms when using the *stabilization* keyword. The first group contains\nall atoms currently involved in a reaction; this group is\nautomatically time-integrated by an internally-created\n[nve/limit ](https://docs.lammps.org/fix_nve_limit.html) integrator. The second group contains\nall atoms currently not involved in a reaction. This group should be\ncontrolled by a thermostat in order to time integrate the system. The name\nof this group of non-reacting atoms is created by appending '_REACT'\nto the group-ID argument of the *stabilization* keyword, as shown in\nthe second example above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using reaction stabilization, you should generally **not** have\n > a separate thermostat that acts on the \"all\" group. \n > \n\nThe group-ID set using the *stabilization* keyword can be an existing\nstatic group or a previously-unused group-ID. It cannot be specified\nas \"all\". If the group-ID is previously unused, the fix bond/react\ncommand creates a [dynamic group ](https://docs.lammps.org/group.html) that is initialized to\ninclude all atoms. If the group-ID is that of an existing static\ngroup, the group is used as the parent group of new,\ninternally-created dynamic group. In both cases, this new dynamic\ngroup is named by appending '_REACT' to the group-ID (e.g.,\nnvt_grp_REACT). By specifying an existing group, you may thermostat\nconstant-topology parts of your system separately. The dynamic group\ncontains only atoms not involved in a reaction at a given time step,\nand therefore should be used by a subsequent system-wide time\nintegrator such as [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), or\n[fix nve ](https://docs.lammps.org/fix_nve.html), as shown in the second example\nabove (full examples can be found in examples/PACKAGES/reaction). The time\nintegration command should be placed after the fix bond/react command\ndue to the internal dynamic grouping performed by fix bond/react.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the group-ID is an existing static group, react-group-IDs\n > should also be specified as this static group or a subset. \n > \n\nThe *reset_mol_ids* keyword invokes the [reset_atoms mol](https://docs.lammps.org/reset_atoms.html) command after a reaction occurs, to ensure that\nmolecule IDs are consistent with the new bond topology. The group-ID\nused for [reset_atoms mol ](https://docs.lammps.org/reset_atoms.html) is the group-ID for this\nfix. Resetting molecule IDs is necessarily a global operation, so it\ncan be slow for very large systems.\n\nThe following comments pertain to each *react* argument (in other\nwords, they can be customized for each reaction, or reaction step):\n\nA check for possible new reaction sites is performed every *Nevery*\ntime steps. *Nevery* can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html), whose value is rounded up to the nearest\ninteger.\n\nThree physical conditions must be met for a reaction to occur. First,\nan initiator atom pair must be identified within the reaction distance\ncutoffs. Second, the topology surrounding the initiator atom pair must\nmatch the topology of the pre-reaction template. Only atom types and\nbond connectivity are used to identify a valid reaction site (not bond\ntypes, etc.). Finally, any reaction constraints listed in the map file\n(see below) must be satisfied. If all of these conditions are met, the\nreaction site is eligible to be modified to match the post-reaction\ntemplate.\n\nAn initiator atom pair will be identified if several conditions are\nmet. First, a pair of atoms \\(i\\) and \\(j\\) within the specified\nreact-group-ID of type *itype* and *jtype* must be separated by a distance\nbetween *Rmin* and *Rmax* . *Rmin* and *Rmax* can be specified with\nequal-style [variables ](https://docs.lammps.org/variable.html). For example, these reaction cutoffs\ncan be functions of the reaction conversion using the following commands:\n\n```lmps\nvariable rmax equal 0 # initialize variable before bond/react\nfix myrxn all bond/react react myrxn1 all 1 0 v_rmax mol1 mol2 map_file.txt\nvariable rmax equal 3+f_myrxn[1]/100 # arbitrary function of reaction count\n```\nThe following criteria are used if multiple candidate initiator atom\npairs are identified within the cutoff distance:\n\n (1) If the initiator atoms in the pre-reaction template are not 1--2\n neighbors (i.e., not directly bonded) the closest potential partner is\n chosen.\n (2) Otherwise, if the initiator atoms in the pre-reaction template are 1--2\n neighbors (i.e. directly bonded) the farthest potential partner is\n chosen.\n (3) Then, if both an atom \\(i\\) and atom \\(j\\) have each other as\n initiator partners, these two atoms are identified as the initiator atom\n pair of the reaction site.\n\nNote that it can be helpful to select unique atom types for the\ninitiator atoms: if an initiator atom pair is identified, as described\nin the previous steps, but it does not correspond to the same pair\nspecified in the pre-reaction template, an otherwise eligible reaction\ncould be prevented from occurring. Once this unique initiator atom\npair is identified for each reaction, there could be two or more\nreactions that involve the same atom on the same time step. If this is\nthe case, only one such reaction is permitted to occur. This reaction\nis chosen randomly from all potential reactions involving the\noverlapping atom. This capability allows, for example, different\nreaction pathways to proceed from identical reaction sites with\nuser-specified probabilities.\n\nThe pre-reacted molecule template is specified by a molecule command.\nThis molecule template file contains a sample reaction site and its\nsurrounding topology. As described below, the initiator atom pairs of\nthe pre-reacted template are specified by atom ID in the map file. The\npre-reacted molecule template should contain as few atoms as possible\nwhile still completely describing the topology of all atoms affected\nby the reaction (which includes all atoms that change atom type or\nconnectivity, and all bonds that change bond type). For example, if\nthe force field contains dihedrals, the pre-reacted template should\ncontain any atom within three bonds of reacting atoms.\n\nSome atoms in the pre-reacted template that are not reacting may have\nmissing topology with respect to the simulation. For example, the\npre-reacted template may contain an atom that, in the simulation, is\ncurrently connected to the rest of a long polymer chain. These are\nreferred to as edge atoms, and are also specified in the map file. All\npre-reaction template atoms should be linked to an initiator atom, via\nat least one path that does not involve edge atoms. When the\npre-reaction template contains edge atoms, not all atoms, bonds,\ncharges, etc. specified in the reaction templates will be updated.\nSpecifically, topology that involves only atoms that are \"too near\" to\ntemplate edges will not be updated. The definition of \"too near the\nedge\" depends on which interactions are defined in the simulation. If\nthe simulation has defined dihedrals, atoms within two bonds of edge\natoms are considered \"too near the edge.\" If the simulation defines\nangles, but not dihedrals, atoms within one bond of edge atoms are\nconsidered \"too near the edge.\" If just bonds are defined, only edge\natoms are considered \"too near the edge.\"\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Small molecules (i.e., ones that have all their atoms contained\n > within the reaction templates) never have edge atoms. \n > \n\nNote that some care must be taken when a building a molecule template\nfor a given simulation. All atom types in the pre-reacted template\nmust be the same as those of a potential reaction site in the\nsimulation. A detailed discussion of matching molecule template atom\ntypes with the simulation is provided on the [molecule ](https://docs.lammps.org/molecule.html)\ncommand page. It is highly recommended to use [Type labels ](https://docs.lammps.org/Howto_type_labels.html)\n(added in version 15Sep2022) in both molecule templates and data\nfiles, which automates the process of syncing atom types between\ndifferent input files.\n\nThe post-reacted molecule template contains a sample of the reaction\nsite and its surrounding topology after the reaction has occurred. It\nmust contain the same number of atoms as the pre-reacted template\n(unless there are created atoms). A one-to-one correspondence between\nthe atom IDs in the pre- and post-reacted templates is specified in\nthe map file as described below. Note that during a reaction, an atom,\nbond, etc. type may change to one that was previously not present in\nthe simulation. These new types must also be defined during the setup\nof a given simulation. A discussion of correctly handling this is also\nprovided on the [molecule ](https://docs.lammps.org/molecule.html) command page.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a reaction occurs, it is possible that the resulting\n > topology/atom (e.g., special bonds, dihedrals) exceeds that of\n > the existing system and reaction templates. As when inserting\n > molecules, enough space for this increased topology/atom must be\n > reserved by using the relevant \"extra\" keywords to the\n > [read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) commands. \n > \n\nThe map file is a text document with the following format:\n\nA map file has a header and a body. The header of map file the\ncontains one mandatory keyword and five optional keywords. The\nmandatory keyword is *equivalences* :\n\n```\nN *equivalences* = # of atoms N in the reaction molecule templates\n```\nThe optional keywords are *edgeIDs* , *deleteIDs* , *chiralIDs* , and\n*constraints* :\n\n```\nN *edgeIDs* = # of edge atoms N in the pre-reacted molecule template\nN *deleteIDs* = # of atoms N that are deleted\nN *createIDs* = # of atoms N that are created\nN *chiralIDs* = # of chiral centers N\nN *constraints* = # of reaction constraints N\n```\nThe body of the map file contains two mandatory sections and five\noptional sections. The first mandatory section begins with the keyword\n\"InitiatorIDs\" and lists the two atom IDs of the initiator atom pair\nin the pre-reacted molecule template. The second mandatory section\nbegins with the keyword \"Equivalences\" and lists a one-to-one\ncorrespondence between atom IDs of the pre- and post-reacted\ntemplates. The first column is an atom ID of the pre-reacted molecule\ntemplate, and the second column is the corresponding atom ID of the\npost-reacted molecule template. The first optional section begins with\nthe keyword \"EdgeIDs\" and lists the atom IDs of edge atoms in the\npre-reacted molecule template. The second optional section begins with\nthe keyword \"DeleteIDs\" and lists the atom IDs of pre-reaction\ntemplate atoms to delete. The third optional section begins with the\nkeyword \"CreateIDs\" and lists the atom IDs of the post-reaction\ntemplate atoms to create. The fourth optional section begins with the\nkeyword \"ChiralIDs\" lists the atom IDs of chiral atoms whose\nhandedness should be enforced. The fifth optional section begins with\nthe keyword \"Constraints\" and lists additional criteria that must be\nsatisfied in order for the reaction to occur. Currently, there are\nsix types of constraints available, as discussed below: \"distance\",\n\"angle\", \"dihedral\", \"arrhenius\", \"rmsd\", and \"custom\".\n\nA sample map file is given below:\n\n----------\n\n```\n# this is a map file\n\n7 equivalences\n2 edgeIDs\n\nInitiatorIDs\n\n3\n5\n\nEdgeIDs\n\n1\n7\n\nEquivalences\n\n1 1\n2 2\n3 3\n4 4\n5 5\n6 6\n7 7\n```\n----------\n\nA user-specified set of atoms can be deleted by listing their\npre-reaction template IDs in the DeleteIDs section. A deleted atom\nmust still be included in the post-reaction molecule template, in\nwhich it cannot be bonded to an atom that is not deleted. In addition\nto deleting unwanted reaction by-products, this feature can be used to\nremove specific topologies, such as small rings, that may be otherwise\nindistinguishable.\n\nAtoms can be created by listing their post-reaction template IDs in\nthe CreateIDs section. A created atom should not be included in the\npre-reaction template. The inserted positions of created atoms are\ndetermined by the coordinates of the post-reaction template, after\noptimal translation and rotation of the post-reaction template to the\nreaction site (using a fit with atoms that are neither created nor\ndeleted). The *modify_create* keyword can be used to modify the\ndefault behavior when creating atoms. The *modify_create* keyword has\ntwo sub-keywords, *fit* and *overlap*. One or more of the sub-keywords\nmay be used after the *modify_create* keyword. The *fit* sub-keyword\ncan be used to specify which post-reaction atoms are used for the\noptimal translation and rotation of the post-reaction template. The\nfragment-ID value of the *fit* sub-keyword must be the name of a\nmolecule fragment defined in the post-reaction [molecule](https://docs.lammps.org/molecule.html) template, and only atoms in this fragment are used for the\nfit. Atoms are created only if no current atom in the simulation is\nwithin a distance \\(R\\) of any created atom, including the effect of\nperiodic boundary conditions if applicable. \\(R\\) is defined by the\n*overlap* sub-keyword. Note that the default value for \\(R\\) is 0.0, which\nwill allow atoms to strongly overlap if you are inserting where other\natoms are present. The velocity of each created atom is initialized in\na random direction with a magnitude calculated from the instantaneous\ntemperature of the reaction site.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The 'Coords' section must be included in the post-reaction template\n > when creating atoms because these coordinates are used to determine\n > where new atoms are inserted. \n > \n\nThe handedness of atoms that are chiral centers can be enforced by\nlisting their IDs in the ChiralIDs section. A chiral atom must be\nbonded to four atoms with mutually different atom types. This feature\nuses the coordinates and types of the involved atoms in the\npre-reaction template to determine handedness. Three atoms bonded to\nthe chiral center are arbitrarily chosen, to define an oriented plane,\nand the relative position of the fourth bonded atom determines the\nchiral center's handedness.\n\nAny number of additional constraints may be specified in the\nConstraints section of the map file. The constraint of type \"distance\"\nhas syntax as follows:\n\n```\ndistance *ID1* *ID2* *rmin* *rmax*\n```\nwhere \"distance\" is the required keyword, *ID1* and *ID2* are\npre-reaction atom IDs (or molecule-fragment IDs, see below), and these\ntwo atoms must be separated by a distance between *rmin* and *rmax*\nfor the reaction to occur.\n\nThe constraint of type \"angle\" has the following syntax:\n\n```\nangle *ID1* *ID2* *ID3* *amin* *amax*\n```\nwhere \"angle\" is the required keyword, *ID1*, *ID2* and *ID3* are\npre-reaction atom IDs (or molecule-fragment IDs, see below), and these\nthree atoms must form an angle between *amin* and *amax* for the\nreaction to occur (where *ID2* is the central atom). Angles must be\nspecified in degrees. This constraint can be used to enforce a certain\norientation between reacting molecules.\n\nThe constraint of type \"dihedral\" has the following syntax:\n\n```\ndihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*\n```\nwhere \"dihedral\" is the required keyword, and *ID1*, *ID2*, *ID3*\nand *ID4* are pre-reaction atom IDs (or molecule-fragment IDs, see\nbelow). Dihedral angles are calculated in the interval \\((-180^\\circ,180^\\circ]\\).\nRefer to the [dihedral style ](https://docs.lammps.org/dihedral_style.html) documentation for\nfurther details on convention. If *amin* is less than *amax*, these\nfour atoms must form a dihedral angle greater than *amin* **and** less\nthan *amax* for the reaction to occur. If *amin* is greater than\n*amax*, these four atoms must form a dihedral angle greater than\n*amin* **or** less than *amax* for the reaction to occur. Angles must\nbe specified in degrees. Optionally, a second range of permissible\nangles *amin2* to *amax2* can be specified.\n\nFor the 'distance', 'angle', and 'dihedral' constraints (explained\nabove), atom IDs can be replaced by pre-reaction molecule-fragment\nIDs. The molecule-fragment ID must begin with a letter. The location\nof the ID is the geometric center of all atom positions in the\nfragment. The molecule fragment must have been defined in the\n[molecule ](https://docs.lammps.org/molecule.html) command for the pre-reaction template.\n\nThe constraint of type 'arrhenius' imposes an additional reaction\nprobability according to the modified Arrhenius equation,\n\\[\n k = AT^{n}e^{-E_{a}/k_{B}T}.\\]\nThe Arrhenius constraint has the following syntax:\n\n```\narrhenius *A* *n* *E_a* *seed*\n```\nwhere \"arrhenius\" is the required keyword, *A* is the pre-exponential\nfactor, *n* is the exponent of the temperature dependence, \\(E_a\\)\nis the activation energy ([units ](https://docs.lammps.org/units.html) of energy), and *seed* is a\nrandom number seed. The temperature is defined as the instantaneous\ntemperature averaged over all atoms in the reaction site and is\ncalculated in the same manner as for example\n[compute temp/chunk ](https://docs.lammps.org/compute_temp_chunk.html). Currently, there are no\noptions for additional temperature averaging or velocity-biased\ntemperature calculations. A uniform random number between 0 and 1 is\ngenerated using *seed* ; if this number is less than the result of the\nArrhenius equation above, the reaction is permitted to occur.\n\nThe constraint of type 'rmsd' has the following syntax:\n\n```\nrmsd *RMSDmax* *molfragment*\n```\nwhere \"rmsd\" is the required keyword, and *RMSDmax* is the maximum\nroot-mean-square deviation between atom positions of the pre-reaction\ntemplate and the local reaction site (distance units), after optimal\ntranslation and rotation of the pre-reaction template. Optionally, the\nname of a molecule fragment (of the pre-reaction template) can be\nspecified by *molfragment* . If a molecule fragment is specified,\nonly atoms that are part of this molecule fragment are used to\ndetermine the RMSD. A molecule fragment must have been defined in the\n[molecule ](https://docs.lammps.org/molecule.html) command for the pre-reaction template. For\nexample, the molecule fragment could consist of only the backbone\natoms of a polymer chain. This constraint can be used to enforce a\nspecific relative position and orientation between reacting molecules.\n\nThe constraint of type \"custom\" has the following syntax:\n\n```\ncustom *varstring*\n```\nwhere 'custom' is the required keyword, and *varstring* is a variable\nexpression. The expression must be a valid equal-style variable\nformula that can be read by the [variable ](https://docs.lammps.org/variable.html) command,\nafter any special reaction functions are evaluated. If the resulting\nexpression is zero, the reaction is prevented from occurring;\notherwise, it is permitted to occur. There are three special reaction\nfunctions available, 'rxnbond', 'rxnsum', and 'rxnave'. The 'rxnbond'\nfunction allows per-bond values to be included in the variable strings\nof the custom constraint. The 'rxnbond' function has two mandatory\narguments. The first argument is the ID of a previously defined\n'compute bond/local' command. This 'compute bond/local' must compute\nonly one value, e.g. bond force. This value is returned by the\n'rxnbond' function. The second argument is the name of a molecule\nfragment in the pre-reaction template. The fragment must contain\nexactly two atoms, corresponding to the atoms involved in the bond\nwhose value should be calculated. An example of a constraint that uses\nthe force experienced by a bond is provided below. The 'rxnsum' and\n'rxnave' functions operate over the atoms in a given reaction site,\nand have one mandatory argument and one optional argument. The\nmandatory argument is the identifier for an atom-style variable. The\nsecond, optional argument is the name of a molecule fragment in the\npre-reaction template, and can be used to operate over a subset of\natoms in the reaction site. The 'rxnsum' function sums the atom-style\nvariable over the reaction site, while the 'rxnave' returns the\naverage value. For example, a constraint on the total potential energy\nof atoms involved in the reaction can be imposed as follows:\n\n```lmps\ncompute 1 all pe/atom # in LAMMPS input script\nvariable my_pe atom c_1 # in LAMMPS input script\n```\n\n```lmps\ncustom \"rxnsum(v_my_pe) > 100\" # in Constraints section of map file\n```\nThe above example prevents the reaction from occurring unless the\ntotal potential energy of the reaction site is above 100. As a second\nexample, this time using the 'rxnbond' function, consider a modified\nArrhenius constraint that depends on the bond force of a specific bond:\n\n```lmps\n# in LAMMPS input script\n\ncompute bondforce all bond/local force\n\ncompute ke_atom all ke/atom\nvariable ke atom c_ke_atom\n\nvariable E_a equal 100.0 # activation energy\nvariable l0 equal 1.0 # characteristic length\n```\n\n```lmps\n# in Constraints section of map file\n\ncustom \"exp(-(v_E_a-rxnbond(c_bondforce,bond1frag)*v_l0)/(2/3*rxnave(v_ke))) < random(0,1,12345)\"\n```\nBy using an inequality and the 'random(x,y,z)' function, the left-hand\nside can be interpreted as the probability of the reaction occurring,\nsimilar to the 'arrhenius' constraint above.\n\nBy default, all constraints must be satisfied for the reaction to\noccur. In other words, constraints are evaluated as a series of\nlogical values using the logical AND operator \"&&\". More complex logic\ncan be achieved by explicitly adding the logical AND operator \"&&\" or\nthe logical OR operator \"||\" after a given constraint command. If a\nlogical operator is specified after a constraint, it must be placed\nafter all constraint parameters, on the same line as the constraint\n(one per line). Similarly, parentheses can be used to group\nconstraints. The expression that results from concatenating all\nconstraints should be a valid logical expression that can be read by\nthe [variable ](https://docs.lammps.org/variable.html) command after converting each\nconstraint to a logical value. Because exactly one constraint is\nallowed per line, having a valid logical expression implies that left\nparentheses \"(\" should only appear before a constraint, and right\nparentheses \")\" should only appear after a constraint and before any\nlogical operator.\n\nOnce a reaction site has been successfully identified, data structures\nwithin LAMMPS that store bond topology are updated to reflect the\npost-reacted molecule template. All force fields with fixed bonds,\nangles, dihedrals or impropers are supported.\n\nA few capabilities to note:\n\n (1) You may specify as many *react* arguments as desired. For example, you\n could break down a complicated reaction mechanism into several reaction\n steps, each defined by its own *react* argument.\n (2) While typically a bond is formed or removed between the initiator atoms\n specified in the pre-reacted molecule template, this is not required.\n (3) By reversing the order of the pre- and post-reacted molecule templates in\n another *react* argument, you can allow for the possibility of one or\n more reverse reactions.\n\nThe optional keywords deal with the probability of a given reaction\noccurring as well as the stable equilibration of each reaction site as\nit occurs.\n\nThe *prob* keyword can affect whether or not an eligible reaction\nactually occurs. The fraction setting must be a value between 0.0 and\n1.0, and can be specified with an equal-style [variable ](https://docs.lammps.org/variable.html).\nA uniform random number between 0.0 and 1.0 is generated and the\neligible reaction only occurs if the random number is less than the\nfraction. Up to \\(N\\) reactions are permitted to occur, as optionally\nspecified by the *max_rxn* keyword.\n\nThe *rate_limit* keyword can enforce an upper limit on the overall\nrate of the reaction. The number of reaction occurrences is limited to\nNlimit within an interval of Nsteps timesteps. No reactions are\npermitted to occur within the first Nsteps timesteps of the first run\nafter reading a data file. Nlimit can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html).\n\nThe *stabilize_steps* keyword allows for the specification of how many\ntime steps a reaction site is stabilized before being returned to the\noverall system thermostat. In order to produce the most physical\nbehavior, this \"reaction site equilibration time\" should be tuned to\nbe as small as possible while retaining stability for a given system\nor reaction step. After a limited number of case studies, this number\nhas been set to a default of 60 time steps. Ideally, it should be\nindividually tuned for each fix reaction step. Note that in some\nsituations, decreasing rather than increasing this parameter will\nresult in an increase in stability.\n\nThe *custom_charges* keyword can be used to specify which atoms'\natomic charges are updated. When the value is set to *no* , all atomic\ncharges are updated to those specified by the post-reaction template\n(default). Otherwise, the value should be the name of a molecule\nfragment defined in the pre-reaction molecule template. In this case,\nonly the atomic charges of atoms in the molecule fragment are updated.\n\nThe *rescale_charges* keyword can be used to ensure the total charge\nof the system does not change as reactions occur. When the argument is\nset to *yes* , a fixed value is added to the charges of post-reaction\natoms such that their total charge equals that of the pre-reaction\nsite. If only a subset of atomic charges are updated via the\n*custom_charges* keyword, this rescaling is applied to the subset.\nThis keyword could be useful for systems that contain different\nmolecules with the same reactive site, if the partial charges on the\nreaction site vary from molecule to molecule, or when removing\nreaction by-products.\n\nThe *molecule* keyword can be used to force the reaction to be\nintermolecular, intramolecular or either. When the value is set to\n*off* , molecule IDs are not considered when searching for reactions\n(default). When the value is set to *inter* , the initiator atoms must\nhave different molecule IDs in order to be considered for the\nreaction. When the value is set to *intra* , only initiator atoms with\nthe same molecule ID are considered for the reaction.\n\nA few other considerations:\n\nOptionally, you can enforce additional behaviors on reacting atoms.\nFor example, it may be beneficial to force reacting atoms to remain at\na certain temperature. For this, you can use the internally-created\ndynamic group named \"bond_react_MASTER_group\", which consists of all\natoms currently involved in a reaction. For example, adding the\nfollowing command would add an additional thermostat to the group of\nall currently-reacting atoms:\n\n```lmps\nfix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command must be added after the fix bond/react command, and\n > will apply to all reactions. \n > \n\nComputationally, each time step this fix is invoked, it loops over\nneighbor lists (for bond-forming reactions) and computes distances\nbetween pairs of atoms in the list. It also communicates between\nneighboring processors to coordinate which bonds are created and/or\nremoved. All of these operations increase the cost of a time step. Thus,\nyou should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the\n[dump local ](https://docs.lammps.org/dump.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCumulative reaction counts for each reaction are written to [binary restart files ](https://docs.lammps.org/restart.html).\nThese values are associated with the reaction name (react-ID).\nAdditionally, internally-created per-atom properties are stored to\nallow for smooth restarts. None of the [fix_modify ](https://docs.lammps.org/fix_modify.html)\noptions are relevant to this fix.\n\nThis fix computes one statistic for each *react* argument that it\nstores in a global vector, of length (number of react arguments), that\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nvector values calculated by this fix are \"intensive\".\n\nThere is one quantity in the global vector for each *react* argument:\n\n (1) cumulative number of reactions that occurred\n\nNo parameter of this fix can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nWhen fix bond/react is \"[unfixed ](https://docs.lammps.org/unfix.html)\", all internally-created\ngroups are deleted. Therefore, fix bond/react can only be unfixed after\nunfixing all other fixes that use any group created by fix bond/react.\n", - "restrictions": "This fix is part of the REACTION package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix bond/create ](https://docs.lammps.org/fix_bond_create.html),\n[fix bond/break ](https://docs.lammps.org/fix_bond_break.html),\n[fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" + "parameters": "* style = eam or eam/alloy or eam/cd or eam/cd/old or eam/fs or eam/he \n", + "examples": "\n```lmps\npair_style eam\npair_coeff * * cuu3\npair_coeff 1*3 1*3 niu3.eam\n\npair_style eam/alloy\npair_coeff * * ../potentials/NiAlH_jea.eam.alloy Ni Al Ni Ni\n\npair_style eam/cd\npair_coeff * * ../potentials/FeCr.cdeam Fe Cr\n\npair_style eam/fs\npair_coeff * * NiAlH_jea.eam.fs Ni Al Ni Ni\n\npair_style eam/he\npair_coeff * * PdHHe.eam.he Pd H He\n```\n", + "html_filename": "pair_eam.html", + "short_description": "Style *eam* computes pairwise interactions for metals and metal alloys\nusing embedded-atom method (EAM) potentials **Daw**", + "description": "Style *eam* computes pairwise interactions for metals and metal alloys\nusing embedded-atom method (EAM) potentials **Daw**. The total\nenergy Ei of an atom I is given by\n\\[\n E_i = F_\\alpha \\left(\\sum_{j \\neq i}\\ \\rho_\\beta (r_{ij})\\right) +\n \\frac{1}{2} \\sum_{j \\neq i} \\phi_{\\alpha\\beta} (r_{ij})\\]\nwhere F is the embedding energy which is a function of the atomic\nelectron density rho, phi is a pair potential interaction, and alpha\nand beta are the element types of atoms I and J. The multi-body\nnature of the EAM potential is a result of the embedding energy term.\nBoth summations in the formula are over all neighbors J of atom I\nwithin the cutoff distance.\n\nThe cutoff distance and the tabulated values of the functionals F,\nrho, and phi are listed in one or more files which are specified by\nthe [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. These are ASCII text files\nin a DYNAMO-style format which is described below. DYNAMO was the\noriginal serial EAM MD code, written by the EAM originators. Several\nDYNAMO potential files for different metals are included in the\n\"potentials\" directory of the LAMMPS distribution. All of these files\nare parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *eam* style reads single-element EAM potentials in the\n > DYNAMO *funcfl* format. Either single element or alloy systems can be\n > modeled using multiple *funcfl* files and style *eam* . For the alloy\n > case LAMMPS mixes the single-element potentials to produce alloy\n > potentials, the same way that DYNAMO does. Alternatively, a single\n > DYNAMO *setfl* file or Finnis/Sinclair EAM file can be used by LAMMPS\n > to model alloy systems by invoking the *eam/alloy* or *eam/cd* or\n > *eam/fs* or *eam/he* styles as described below. These files require no\n > mixing since they specify alloy interactions explicitly. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that unlike for other potentials, cutoffs for EAM potentials are not\n > set in the pair_style or pair_coeff command; they are specified in the EAM\n > potential files themselves. Likewise, valid EAM potential files usually\n > contain atomic masses; thus you may not need to use the [mass ](https://docs.lammps.org/mass.html)\n > command to specify them, unless the potential file uses a dummy value (e.g.\n > 0.0). LAMMPS will print a warning, if this is the case. \n > \n\nThere are web sites that distribute and document EAM potentials stored\nin DYNAMO or other formats:\n\n* https://www.ctcms.nist.gov/potentials\n* https://openkim.org\n\nThese potentials should be usable with LAMMPS, though the alternate\nformats would need to be converted to the DYNAMO format used by LAMMPS\nand described on this page. The NIST site is maintained by Chandler\nBecker (cbecker at nist.gov) who is good resource for info on\ninteratomic potentials and file formats.\n\nThe OpenKIM Project at\n[https://openkim.org/browse/models/by-type](https://openkim.org/browse/models/by-type)\nprovides EAM potentials that can be used directly in LAMMPS with the\n[kim command ](https://docs.lammps.org/kim_commands.html) interface.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The EAM potential files tabulate the embedding energy as a function\n > of the local electron density \\(\\rho\\). When atoms get too\n > close, this electron density may exceed the range for which the\n > embedding energy was tabulated for. To avoid crashes, LAMMPS will\n > assume a linearly increasing embedding energy for electron densities\n > beyond the maximum tabulated value. LAMMPS will print a warning when\n > this happens. It may be acceptable at the beginning of an\n > equilibration (e.g. when using randomized coordinates) but would be a\n > big concern for accuracy if it happens during production runs. The\n > EAM potential file triggering the warning during production is thus\n > not a good choice, and the EAM model in general not likely a good\n > model for the kind of system under investigation. \n > \n\n----------\n\nFor style *eam*, potential values are read from a file that is in the\nDYNAMO single-element *funcfl* format. If the DYNAMO file was created\nby a Fortran program, it cannot have \"D\" values in it for exponents.\nC only recognizes \"e\" or \"E\" for scientific notation.\n\nFor style *eam* a potential file must be assigned to each I,I pair of\natom types by using one or more pair_coeff commands, each with a\nsingle argument:\n\n* filename\n\nThus the following command\n\n```lmps\npair_coeff *2 1*2 cuu3.eam\n```\nwill read the cuu3 potential file and use the tabulated Cu values for\nF, phi, rho that it contains for type pairs 1,1 and 2,2 (type pairs\n1,2 and 2,1 are ignored). See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) doc\npage for alternate ways to specify the path for the potential file.\nIn effect, this makes atom types 1 and 2 in LAMMPS be Cu atoms.\nDifferent single-element files can be assigned to different atom types\nto model an alloy system. The mixing to create alloy potentials for\ntype pairs with I != J is done automatically the same way that the\nserial DYNAMO code originally did it; you do not need to specify\ncoefficients for these type pairs.\n\n*Funcfl* files in the *potentials* directory of the LAMMPS\ndistribution have an \".eam\" suffix. A DYNAMO single-element *funcfl*\nfile is formatted as follows:\n\n* line 1: comment (ignored)\n* line 2: atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* line 3: Nrho, drho, Nr, dr, cutoff\n\nOn line 2, all values but the mass are ignored by LAMMPS. The mass is\nin mass [units ](https://docs.lammps.org/units.html), e.g. mass number or grams/mole for metal\nunits. The cubic lattice constant is in Angstroms. On line 3, Nrho\nand Nr are the number of tabulated values in the subsequent arrays,\ndrho and dr are the spacing in density and distance space for the\nvalues in those arrays, and the specified cutoff becomes the pairwise\ncutoff used by LAMMPS for the potential. The units of dr are\nAngstroms; I'm not sure of the units for drho - some measure of\nelectron density.\n\nFollowing the three header lines are three arrays of tabulated values:\n\n* embedding function F(rho) (Nrho values)\n* effective charge function Z(r) (Nr values)\n* density function rho(r) (Nr values)\n\nThe values for each array can be listed as multiple values per line,\nso long as each array starts on a new line. For example, the\nindividual Z(r) values are for r = 0,dr,2\\*dr, ... (Nr-1)\\*dr.\n\nThe units for the embedding function F are eV. The units for the\ndensity function rho are the same as for drho (see above, electron\ndensity). The units for the effective charge Z are \"atomic charge\" or\nsqrt(Hartree \\* Bohr-radii). For two interacting atoms i,j this is used\nby LAMMPS to compute the pair potential term in the EAM energy\nexpression as r\\*phi, in units of eV-Angstroms, via the formula\n\\[\n r \\cdot \\phi = 27.2 \\cdot 0.529 \\cdot Z_i \\cdot Z_j\\]\nwhere 1 Hartree = 27.2 eV and 1 Bohr = 0.529 Angstroms.\n\n----------\n\nStyle *eam/alloy* computes pairwise interactions using the same\nformula as style *eam* . However the associated\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command reads a DYNAMO *setfl* file\ninstead of a *funcfl* file. *Setfl* files can be used to model a\nsingle-element or alloy system. In the alloy case, as explained\nabove, *setfl* files contain explicit tabulated values for alloy\ninteractions. Thus they allow more generality than *funcfl* files for\nmodeling alloys.\n\nFor style *eam/alloy*, potential values are read from a file that is\nin the DYNAMO multi-element *setfl* format, except that element names\n(Ni, Cu, etc) are added to one of the lines in the file. If the\nDYNAMO file was created by a Fortran program, it cannot have \"D\"\nvalues in it for exponents. C only recognizes \"e\" or \"E\" for\nscientific notation.\n\nOnly a single pair_coeff command is used with the *eam/alloy* style\nwhich specifies a DYNAMO *setfl* file, which contains information for\nM elements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of *setfl* elements to atom types\n\nAs an example, the potentials/NiAlH_jea.eam.alloy file is a *setfl*\nfile which has tabulated EAM values for 3 elements and their alloy\ninteractions: Ni, Al, and H. See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) doc\npage for alternate ways to specify the path for the potential file.\nIf your LAMMPS simulation has 4 atoms types and you want the first 3 to\nbe Ni, and the fourth to be Al, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * NiAlH_jea.eam.alloy Ni Ni Ni Al\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Ni arguments map LAMMPS atom types 1,2,3 to the Ni\nelement in the *setfl* file. The final Al argument maps LAMMPS atom\ntype 4 to the Al element in the *setfl* file. Note that there is no\nrequirement that your simulation use all the elements specified by the\n*setfl* file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *eam/alloy* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n*Setfl* files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.alloy\" suffix. A DYNAMO multi-element *setfl* file is\nformatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff\n\nIn a DYNAMO *setfl* file, line 4 only lists Nelements = the # of\nelements in the *setfl* file. For LAMMPS, the element name (Ni, Cu,\netc) of each element must be added to the line, in the order the\nelements appear in the file.\n\nThe meaning and units of the values in line 5 is the same as for the\n*funcfl* file described above. Note that the cutoff (in Angstroms) is\na global value, valid for all pairwise interactions for all element\npairings.\n\nFollowing the 5 header lines are Nelements sections, one for each\nelement, each with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function F(rho) (Nrho values)\n* density function rho(r) (Nr values)\n\nAs with the *funcfl* files, only the mass (in mass [units ](https://docs.lammps.org/units.html),\ne.g. mass number or grams/mole for metal units) is used by LAMMPS from\nthe first line. The cubic lattice constant is in Angstroms. The F and\nrho arrays are unique to a single element and have the same format and\nunits as in a *funcfl* file.\n\nFollowing the Nelements sections, Nr values for each pair potential\nphi(r) array are listed for all i,j element pairs in the same format\nas other arrays. Since these interactions are symmetric (i,j = j,i)\nonly phi arrays with i >= j are listed, in the following order: i,j =\n(1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (Nelements,\nNelements). Unlike the effective charge array Z(r) in *funcfl* files,\nthe tabulated values for each phi function are listed in *setfl* files\ndirectly as r\\*phi (in units of eV-Angstroms), since they are for atom\npairs.\n\n----------\n\nStyle *eam/cd* is similar to the *eam/alloy* style, except that it\ncomputes alloy pairwise interactions using the concentration-dependent\nembedded-atom method (CD-EAM). This model can reproduce the enthalpy\nof mixing of alloys over the full composition range, as described in\n**Stukowski**. Style *eam/cd/old* is an older, slightly\ndifferent and slower two-site formulation of the model **Caro**.\n\nThe pair_coeff command is specified the same as for the *eam/alloy*\nstyle. However the DYNAMO *setfl* file must has two\nlines added to it, at the end of the file:\n\n* line 1: Comment line (ignored)\n* line 2: N Coefficient0 Coefficient1 ... CoefficientN\n\nThe last line begins with the degree *N* of the polynomial function\n*h(x)* that modifies the cross interaction between A and B elements.\nThen *N+1* coefficients for the terms of the polynomial are then\nlisted.\n\nModified EAM *setfl* files used with the *eam/cd* style must contain\nexactly two elements, i.e. in the current implementation the *eam/cd*\nstyle only supports binary alloys. The first and second elements in\nthe input EAM file are always taken as the *A* and *B* species.\n\n*CD-EAM* files in the *potentials* directory of the LAMMPS\ndistribution have a \".cdeam\" suffix.\n\n----------\n\nStyle *eam/fs* computes pairwise interactions for metals and metal\nalloys using a generalized form of EAM potentials due to Finnis and\nSinclair **Finnis1**. Style *eam/he* is similar to\n*eam/fs* except that it allows for negative electron density in\norder to capture the behavior of helium in metals **Zhou6**.\n\nThe total energy Ei of an atom I is given by\n\\[\n E_i = F_\\alpha \\left(\\sum_{j \\neq i}\\\n \\rho_{\\alpha\\beta} (r_{ij})\\right) +\n \\frac{1}{2} \\sum_{j \\neq i} \\phi_{\\alpha\\beta} (r_{ij})\\]\nwhere \\(\\rho_{\\alpha\\beta}\\) refers to the density contributed\nby a neighbor atom J of element \\(\\beta\\) at the site of atom I\nof element \\(\\alpha\\).\nThis has the same form as the EAM formula above, except that rho is\nnow a functional specific to the elements of both atoms I and J,\nso that different elements can contribute differently to the total\nelectron density at an atomic site depending on the identity of the\nelement at that atomic site.\n\nThe associated [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for style *eam/fs*\nor *eam/he* reads a DYNAMO *setfl* file that has been extended to include\nadditional \\(\\rho_{\\alpha\\beta}\\) arrays of tabulated values. A\ndiscussion of how FS EAM differs from conventional EAM alloy potentials is\ngiven in **Ackland1**. An example of such a potential is the\nsame author's Fe-P FS potential **Ackland2**. Note that while\nFS potentials always specify the embedding energy with a square root\ndependence on the total density, the implementation in LAMMPS does not\nrequire that; the user can tabulate any functional form desired in the\nFS potential files.\n\nFor style *eam/fs* and *eam/he* the form of the pair_coeff command is exactly\nthe same as for style *eam/alloy*, e.g.\n\n```lmps\npair_coeff * * NiAlH_jea.eam.fs Ni Ni Ni Al\n```\nwith N additional arguments after the filename, where N is\nthe number of LAMMPS atom types. See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ndoc page for alternate ways to specify the path for the potential\nfile. The N values determine the mapping of LAMMPS atom types to EAM\nelements in the file, as described above for style *eam/alloy* . As\nwith *eam/alloy*, if a mapping value is NULL, the mapping is not\nperformed. This can be used when an *eam/fs* or *eam/he* potential is\nused as part of a *hybrid* pair style. The NULL values are used as\nplaceholders for atom types that will be used with other potentials.\n\nFS EAM and HE EAM files include more information than the DYNAMO *setfl*\nformat files read by *eam/alloy*, in that i,j density functionals for\nall pairs of elements are included as needed by the Finnis/Sinclair\nformulation of the EAM.\n\nFS EAM files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.fs\" suffix. They are formatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff\n\nThe 5-line header section is identical to an EAM *setfl* file.\n\nFollowing the header are Nelements sections, one for each element \\(\\beta\\),\neach with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function F(rho) (Nrho values)\n* density function \\(\\rho_{1\\beta} (r)\\) for element \\(\\beta\\) at element 1 (Nr values)\n* density function \\(\\rho_{2\\beta} (r)\\) for element \\(\\beta\\) at element 2\n* ...\n* density function \\(\\rho_{N_{elem}\\beta} (r)\\) for element \\(\\beta\\) at element \\(N_{elem}\\)\n\nThe units of these quantities in line 1 are the same as for *setfl*\nfiles. Note that the rho(r) arrays in Finnis/Sinclair can be\nasymmetric (\\(\\rho_{\\alpha\\beta} (r) \\neq \\rho_{\\beta\\alpha} (r)\\) )\nso there are Nelements\\^2 of them listed in the file.\n\nFollowing the Nelements sections, Nr values for each pair potential\nphi(r) array are listed in the same manner (r\\*phi, units of\neV-Angstroms) as in EAM *setfl* files. Note that in Finnis/Sinclair,\nthe phi(r) arrays are still symmetric, so only phi arrays for i >= j\nare listed.\n\nHE EAM files in the *potentials* directory of the LAMMPS distribution\nhave an \".eam.he\" suffix. They are formatted as follows:\n\n* lines 1,2,3 = comments (ignored)\n* line 4: Nelements Element1 Element2 ... ElementN\n* line 5: Nrho, drho, Nr, dr, cutoff, rhomax\n\nThe 5-line header section is identical to an FS EAM file\nexcept that line 5 lists an additional value, rhomax. Unlike in FS EAM\nfiles where embedding energies F(rho) are always defined between rho = 0\nand rho = (Nrho -1)drho, F(rho) in HE EAM files are defined between\nrho = rhomin and rho = rhomax. Since drho = (rhomax - rhomin)/(Nrho - 1),\nrhomin = rhomax - (Nrho - 1)drho. The embedding energies F(rho) are\nlisted for rho = rhomin, rhomin + drho, rhomin + 2drho, ..., rhomax.\nThis gives users additional flexibility to define a negative rhomin and\ntherefore an embedding energy function that works for both positive and\nnegative electron densities. The format and units of these sections are\nidentical to the FS EAM files (see above).\n\n----------\n\nThe *eam*, *eam/alloy*, *eam/fs*, and *eam/he* pair styles support\nextraction of two per-atom quantities by the [fix pair ](https://docs.lammps.org/fix_pair.html)\ncommand. This allows the quantities to be output to files by the\n[dump ](https://docs.lammps.org/dump.html) or otherwise processed by other LAMMPS commands.\n\nThe names of the two quantities are \"rho\" and \"fp\" for the density and\nderivative of the embedding energy for each atom. Neither quantity\nneeds to be triggered by the [fix pair ](https://docs.lammps.org/fix_pair.html) command in order\nfor these pair styles to calculate it.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above with the individual styles. You never need to specify\na pair_coeff command with I != J arguments for the eam styles.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe eam pair styles do not write their information to [binaryrestart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential\nfiles. Thus, you need to re-specify the pair_style and pair_coeff\ncommands in an input script that reads a restart file.\n\nThe eam pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n\n\n\n----------\n\n**(Daw)** Daw, Baskes, Phys Rev Lett, 50, 1285 (1983).\nDaw, Baskes, Phys Rev B, 29, 6443 (1984). \n \n**(Stukowski)** Stukowski, Sadigh, Erhart, Caro; Modeling Simulation\nMaterials Science & Engineering, 7, 075005 (2009). \n \n**(Caro)** A Caro, DA Crowson, M Caro; Phys Rev Lett, 95, 075702 (2005) \n \n**(Finnis1)** Finnis, Sinclair, Philosophical Magazine A, 50, 45 (1984). \n \n**(Zhou6)** Zhou, Bartelt, Sills, Physical Review B, 103, 014108 (2021). \n \n**(Ackland1)** Ackland, Condensed Matter (2005). \n \n**(Ackland2)** Ackland, Mendelev, Srolovitz, Han and Barashev, Journal\nof Physics: Condensed Matter, 16, S2629 (2004). \n ", + "restrictions": "All of these styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix ave/histo" + "fix gle" ], "syntax": [ - "fix ID group-ID style Nevery Nrepeat Nfreq lo hi Nbin value1 value2 ... keyword args ..." + "fix ID id-group gle Ns Tstart Tstop seed Amatrix [noneq Cmatrix] [every stride]" ], "args": [ [ @@ -22587,140 +21677,114 @@ export const command_docs = [ "choices": [] }, { - "arg": "group-ID", + "arg": "id-group", "type": 2, "choices": [] }, { - "arg": "style", - "type": 2, + "arg": "gle", + "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "Ns", "type": 2, "choices": [] }, { - "arg": "Nrepeat", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "Nfreq", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "lo", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "hi", + "arg": "Amatrix", "type": 2, "choices": [] }, { - "arg": "Nbin", + "arg": "[noneq", "type": 2, "choices": [] }, { - "arg": "value1", + "arg": "Cmatrix]", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "[every", "type": 2, "choices": [] }, { - "arg": "title3", - "type": 3, - "choices": [ - "mode", - "kind", - "file", - "append", - "ave", - "start", - "beyond", - "overwrite", - "title1", - "title2", - "title3" - ] - }, - { - "arg": "args", + "arg": "stride]", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = ave/histo or ave/histo/weight = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating histogram\n* Nfreq = calculate histogram every this many timesteps\n* lo,hi = lo/hi bounds within which to histogram\n* Nbin = # of histogram bins\n* one or more input values can be listed\n* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component) \n *        c_ID = scalar or vector calculated by a compute with ID \n *        c_ID[I] = Ith component of vector or Ith column of array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = scalar or vector calculated by a fix with ID \n *        f_ID[I] = Ith component of vector or Ith column of array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = value(s) calculated by an equal-style or vector-style or atom-style variable with name \n *        v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = mode or kind or file or append or ave or start or beyond or overwrite or title1 or title2 or title3 \n *        mode arg = scalar or vector \n         scalar = all input values are scalars \n         vector = all input values are vectors \n *        kind arg = global or peratom or local \n *        file arg = filename \n         filename = name of file to output histogram(s) to \n *        append arg = filename \n         filename = name of file to append histogram(s) to \n *        ave args = one or running or window \n         one = output a new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        start args = Nstart \n         Nstart = start averaging on this timestep \n *        beyond arg = ignore or end or extra \n         ignore = ignore values outside histogram lo/hi bounds \n         end = count values outside histogram lo/hi bounds in end bins \n         extra = create 2 extra bins for value outside histogram lo/hi bounds \n *        overwrite arg = none = overwrite output file with only latest output \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file, only for vector mode \n", - "examples": "\n```lmps\nfix 1 all ave/histo 100 5 1000 0.5 1.5 50 c_myTemp file temp.histo ave running\nfix 1 all ave/histo 100 5 1000 -5 5 100 c_thermo_press[2] c_thermo_press[3] title1 \"My output values\"\nfix 1 all ave/histo 100 5 1000 -5 5 100 c_thermo_press[*]\nfix 1 all ave/histo 1 100 1000 -2.0 2.0 18 vx vy vz mode vector ave running beyond extra\nfix 1 all ave/histo/weight 1 1 1 10 100 2000 c_XRD[1] c_XRD[2]\n```\n", - "html_filename": "fix_ave_histo.html", - "short_description": "Use one or more values as inputs every few timesteps to create a\nsingle histogram", - "description": "Use one or more values as inputs every few timesteps to create a\nsingle histogram. The histogram can then be averaged over longer\ntimescales. The resulting histogram can be used by other [outputcommands ](https://docs.lammps.org/Howto_output.html), and can also be written to a file. The fix\nave/histo/weight command has identical syntax to fix ave/histo, except\nthat exactly two values must be specified. See details below.\n\nThe group specified with this command is ignored for global and local\ninput values. For per-atom input values, only atoms in the group\ncontribute to the histogram. Note that regardless of the specified\ngroup, specified values may represent calculations performed by\ncomputes and fixes which store their own \"group\" definition.\n\nA histogram is simply a count of the number of values that fall within\na histogram bin. *Nbins* are defined, with even spacing between *lo*\nand *hi* . Values that fall outside the lo/hi bounds can be treated in\ndifferent ways; see the discussion of the *beyond* keyword below.\n\nEach input value can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\nor atom-style [variable ](https://docs.lammps.org/variable.html). The set of input values can\nbe either all global, all per-atom, or all local quantities. Inputs\nof different kinds (e.g. global and per-atom) cannot be mixed. Atom\nattributes are per-atom vector values. See the page for individual\n\"compute\" and \"fix\" commands to see what kinds of quantities they\ngenerate.\n\nNote that a compute or fix can produce multiple kinds of data (global,\nper-atom, local). If LAMMPS cannot unambiguously determine which kind\nof data to use, the optional *kind* keyword discussed below can force\nthe desired disambiguation.\n\nNote that the output of this command is a single histogram for all\ninput values combined together, not one histogram per input value.\nSee below for details on the format of the output of this fix.\n\nThe input values must either be all scalars or all vectors (or\narrays), depending on the setting of the *mode* keyword.\n\nIf *mode* = scalar, then the input values must be scalars, or vectors\nwith a bracketed term appended, indicating the Ith value of the vector\nis used.\n\nIf *mode* = vector, then the input values must be vectors, or arrays\nwith a bracketed term appended, indicating the Ith column of the array\nis used.\n\nIf the fix ave/histo/weight command is used, exactly two values must\nbe specified. If the values are vectors, they must be the same\nlength. The first value (a scalar or vector) is what is histogrammed\ninto bins, in the same manner the fix ave/histo command operates. The\nsecond value (a scalar or vector) is used as a \"weight\". This means\nthat instead of each value tallying a \"1\" to its bin, the\ncorresponding weight is tallied. For example, the \\(N^\\text{th}\\) entry\n(weight) in the second vector is tallied to the bin corresponding to the\n\\(N^\\text{th}\\) entry in the first vector.\n\n----------\n\nFor input values from a compute or fix or variable, the bracketed\nindex I can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector\n(for *mode* = scalar) or the number of columns in the array\n(for *mode* = vector), then an asterisk with no numeric values means all\nindices from 1 to \\(N\\)\\ .\nA leading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive). A middle\nasterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector or columns of the array had been listed one by one. For example, the\nfollowing two fix ave/histo commands are equivalent, since the [computecom/chunk ](https://docs.lammps.org/compute_com_chunk.html) command creates a global array with three\ncolumns:\n\n```lmps\ncompute myCOM all com/chunk\nfix 1 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[*] file tmp1.com mode vector\nfix 2 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[1] c_myCOM[2] c_myCOM[3] file tmp2.com mode vector\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be used in order to\ncontribute to the histogram. The final histogram is generated on time steps\nthat are multiple of \\(N_\\text{freq}\\)\\ . It is averaged over\n\\(N_\\text{repeat}\\) histograms, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps.\n\\(N_\\text{freq}\\) must be a multiple of \\(N_\\text{every}\\) and\n\\(N_\\text{every}\\) must be non-zero even if \\(N_\\text{repeat}\\) is 1.\nAlso, the time steps contributing to the histogram value cannot overlap\n(i.e., \\(N_\\text{repeat}\\times N_\\text{every}\\) cannot exceed\n\\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then input values on time steps 90, 92, 94, 96, 98,\nand 100 will be used to compute the final histogram on timestep 100.\nSimilarly for timesteps 190, 192, 194, 196, 198, and 200 on timestep 200, etc.\nIf \\(N_\\text{repeat}=1\\) and \\(N_\\text{freq} = 100\\), then no time\naveraging of the histogram is done; a histogram is simply generated on\ntimesteps 100, 200, etc.\n\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and\n*fz*) are self-explanatory. Note that other atom attributes can be used as\ninputs to this fix by using the\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html) command and then\nspecifying an input value from that compute.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the\ncompute is used. If a bracketed term is appended, the Ith element of\nthe global vector calculated by the compute is used. If *mode* =\nvector, then if no bracketed term is appended, the global or per-atom\nor local vector calculated by the compute is used. If a bracketed\nterm is appended, the Ith column of the global or per-atom or local\narray calculated by the compute is used. See the discussion above for\nhow I can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector, which\ncan then be accessed by fix ave/histo. It can also be a compute defined\nnot in your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the fix\nis used. If a bracketed term is appended, the Ith element of the\nglobal vector calculated by the fix is used. If *mode* = vector, then\nif no bracketed term is appended, the global or per-atom or local\nvector calculated by the fix is used. If a bracketed term is\nappended, the \\(I^\\text{th}\\) column of the global or per-atom or local\narray calculated by the fix is used. See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with \\(N_\\text{every}\\), else an error will\nresult. Users can also write code for their own fix styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. If *mode* = scalar, then\nonly equal-style or vector-style variables can be used, which both\nproduce global values. In this mode, a vector-style variable requires\na bracketed term to specify the \\(I^\\text{th}\\) element of the vector\ncalculated by the variable. If *mode* = vector, then only vector-style or\natom-style variables can be used, which produce a global or per-atom\nvector respectively. The vector-style variable must be used without a\nbracketed term. See the [variable ](https://docs.lammps.org/variable.html) command for details.\n\nNote that variables of style *equal*, *vector*, and *atom* define a\nformula which can reference individual atom properties or\nthermodynamic keywords, or they can invoke other computes, fixes, or\nvariables when they are evaluated, so this is a very general means of\nspecifying quantities to histogram.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nIf the *mode* keyword is set to *scalar*, then all input values must\nbe global scalars, or elements of global vectors. If the *mode*\nkeyword is set to *vector*, then all input values must be global or\nper-atom or local vectors, or columns of global or per-atom or local\narrays.\n\nThe *kind* keyword only needs to be used if any of the specified input\ncomputes or fixes produce more than one kind of output (global,\nper-atom, local). If not, LAMMPS will determine the kind of data all\nthe inputs produce and verify it is all the same kind. If not, an\nerror will be triggered. If a compute or fix produces more than one\nkind of output, the *kind* keyword should be used to specify which\noutput will be used. The other input arguments must still be\nconsistent.\n\nThe *beyond* keyword determines how input values that fall outside the\n*lo* to *hi* bounds are treated. Values such that *lo* \\(\\le\\) value\n\\(\\le\\) *hi* are assigned to one bin. Values on a bin boundary are\nassigned to the lower of the two bins. If *beyond* is set to *ignore* then\nvalues \\(<\\) *lo* and values \\(>\\) *hi* are ignored (i.e., they are not\nbinned). If *beyond* is set to *end*, then values \\(<\\) *lo* are counted in\nthe first bin and values \\(>\\) *hi* are counted in the last bin.\nIf *beyond* is set to *extend*, then two extra bins are created so that there\nare \\(N_\\text{bins}+2\\) total bins. Values \\(<\\) *lo* are counted in\nthe first bin and values \\(>\\) *hi* are counted in the last bin\n\\((N_\\text{bins}+2)\\)\\ . Values between\n*lo* and *hi* (inclusive) are counted in bins 2 through\n\\(N_\\text{bins}+1\\)\\ . The \"coordinate\" stored and printed for these two\nextra bins is *lo* and *hi* .\n\nThe *ave* keyword determines how the histogram produced every\n\\(N_\\text{freq}\\) steps are averaged with histograms produced on previous\nsteps that were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are independent of each\nother; they are output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each bin value in the histogram\nis thus the average of the bin value produced on that timestep with all\npreceding values for the same bin. This running average begins when the fix is\ndefined; it can only be restarted by deleting the fix via the\n[unfix ](https://docs.lammps.org/unfix.html) command, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the histograms produced on\ntimesteps that are multiples of \\(N_\\text{freq}\\) are summed within a\nmoving \"window\" of time, so that the last \\(M\\) histograms are used to\nproduce the output (e.g., if \\(M = 3\\) and \\(N_\\text{freq} = 1000\\),\nthen the output on step 10000 will be the combined histogram of the individual\nhistograms on steps 8000, 9000, and 10000. Outputs on early steps will be sums\nover less than \\(M\\) histograms if they are not available.\n\nThe *start* keyword specifies what timestep histogramming will begin\non. The default is step 0. Often input values can be 0.0 at time 0,\nso setting *start* to a larger value can avoid including a 0.0 in\na running or windowed histogram.\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every *Nfreq* steps, one\nhistogram is written to the file. This includes a leading line that\ncontains the timestep, number of bins, the total count of values\ncontributing to the histogram, the count of values that were not\nhistogrammed (see the *beyond* keyword), the minimum value encountered,\nand the maximum value encountered. The min/max values include values\nthat were not histogrammed. Following the leading line, one line per\nbin is written into the file. Each line contains the bin #, the\ncoordinate for the center of the bin (between *lo* and *hi* ), the\ncount of values in the bin, and the normalized count. The normalized\ncount is the bin count divided by the total count (not including values\nnot histogrammed), so that the normalized values sum to 1.0 across all\nbins.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one timestep worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *title1*, *title2*, and *title3* keywords allow specification of\nthe strings that will be printed as the first three lines of the output\nfile, assuming the *file* keyword was used. LAMMPS uses default\nvalues for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows:\n\n```\n# Histogram for fix ID\n# TimeStep Number-of-bins Total-counts Missing-counts Min-value Max-value\n# Bin Coord Count Count/Total\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the six values that are printed at the first of each section\nof output. The third describes the four values printed for each bin in\nthe histogram.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix produces a global vector and global array which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The values\ncan only be accessed on timesteps that are multiples of \\(N_\\text{freq}\\)\nsince that is when a histogram is generated. The global vector has four\nvalues:\n\n #. total counts in the histogram\n #. values that were not histogrammed (see *beyond* keyword)\n #. min value of all input values, including ones not histogrammed\n #. max value of all input values, including ones not histogrammed\n\nThe global array has \\(N_\\text{bins}\\) rows and three columns. The\nfirst column has the bin coordinate, the second column has the count of\nvalues in that histogram bin, and the third column has the bin count\ndivided by the total count (not including missing counts), so that the\nvalues in the third column sum to 1.0.\n\nThe vector and array values calculated by this fix are all treated as\nintensive. If this is not the case (e.g., due to histogramming\nper-atom input values), then you will need to account for that when\ninterpreting the values produced by this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gle = style name of this fix command\n* Ns = number of additional fictitious momenta\n* Tstart, Tstop = temperature ramp during the run\n* Amatrix = file to read the drift matrix A from\n* seed = random number seed to use for generating noise (positive integer)\n* zero or more keyword/value pairs may be appended \n *        keyword = noneq or every \n         noneq Cmatrix = file to read the non-equilibrium covariance matrix from \n         every stride = apply the GLE once every time steps. Reduces the accuracy \n         of the integration of the GLE, but has \\*no effect\\* on the accuracy of equilibrium \n         sampling. It might change sampling properties when used together with noneq . \n", + "examples": "\n```lmps\nfix 3 boundary gle 6 300 300 31415 smart.A\nfix 1 all gle 6 300 300 31415 qt-300k.A noneq qt-300k.C\n```\n", + "html_filename": "fix_gle.html", + "short_description": "Apply a Generalized Langevin Equation (GLE) thermostat as described\nin **Ceriotti**", + "description": "Apply a Generalized Langevin Equation (GLE) thermostat as described\nin **Ceriotti**. The formalism allows one to obtain a number\nof different effects ranging from efficient sampling of all\nvibrational modes in the system to inexpensive (approximate)\nmodelling of nuclear quantum effects. Contrary to\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), this fix performs both\nthermostatting and evolution of the Hamiltonian equations of motion, so it\nshould not be used together with [fix nve ](https://docs.lammps.org/fix_nve.html) -- at least not\non the same atom groups.\n\nEach degree of freedom in the thermostatted group is supplemented\nwith Ns additional degrees of freedom s, and the equations of motion\nbecome\n\n```\ndq/dt=p/m\nd(p,s)/dt=(F,0) - A(p,s) + B dW/dt\n```\nwhere F is the physical force, A is the drift matrix (that generalizes\nthe friction in Langevin dynamics), B is the diffusion term and dW/dt\nun-correlated Gaussian random forces. The A matrix couples the physical\n(q,p) dynamics with that of the additional degrees of freedom,\nand makes it possible to obtain effectively a history-dependent\nnoise and friction kernel.\n\nThe drift matrix should be given as an external file *Afile*,\nas a (Ns+1 x Ns+1) matrix in inverse time units. Matrices that are\noptimal for a given application and the system of choice can be\nobtained from **GLE4MD**.\n\nEquilibrium sampling a temperature T is obtained by specifying the\ntarget value as the *Tstart* and *Tstop* arguments, so that the diffusion\nmatrix that gives canonical sampling for a given A is computed automatically.\nHowever, the GLE framework also allow for non-equilibrium sampling, that\ncan be used for instance to model inexpensively zero-point energy\neffects **Ceriotti2**. This is achieved specifying the *noneq*\nkeyword followed by the name of the file that contains the static covariance\nmatrix for the non-equilibrium dynamics. Please note, that the covariance\nmatrix is expected to be given in **temperature units** .\n\nSince integrating GLE dynamics can be costly when used together with\nsimple potentials, one can use the *every* optional keyword to\napply the Langevin terms only once every several MD steps, in a\nmultiple time-step fashion. This should be used with care when doing\nnon-equilibrium sampling, but should have no effect on equilibrium\naverages when using canonical sampling.\n\nThe random number *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\nNote also that the Generalized Langevin Dynamics scheme that is\nimplemented by the [fix gld ](https://docs.lammps.org/fix_gld.html) scheme is closely related\nto the present one. In fact, it should be always possible to cast the\nProny series form of the memory kernel used by GLD into an appropriate\ninput matrix for [fix gle ](https://docs.lammps.org/fix_gle.html). While the GLE scheme is more\ngeneral, the form used by [fix gld ](https://docs.lammps.org/fix_gld.html) can be more directly\nrelated to the representation of an implicit solvent environment.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the\nrandom number generator is not saved in restart files, this means you\ncannot do \"exact\" restarts with this fix, where the simulation\ncontinues on the same as if no restart had taken place. However, in a\nstatistical sense, a restarted simulation should produce the same\nbehavior. Note however that you should use a different seed each time\nyou restart, otherwise the same sequence of random numbers will be\nused each time, which might lead to stochastic synchronization and\nsubtle artifacts in the sampling.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Ceriotti)** Ceriotti, Bussi and Parrinello, J Chem Theory Comput 6,\n1170-80 (2010) \n \n**(GLE4MD)** [https://gle4md.org/](https://gle4md.org/) \n \n**(Ceriotti2)** Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,\n030603 (2009) \n ", + "restrictions": "The GLE thermostat in its current implementation should not be used\nwith rigid bodies, SHAKE or RATTLE. It is expected that all the\nthermostatted degrees of freedom are fully flexible, and the sampled\nensemble will not be correct otherwise.\n\nIn order to perform constant-pressure simulations please use\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), rather than\n[fix npt ](https://docs.lammps.org/fix_nh.html), to avoid duplicate integration of the\nequations of motion.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html), [fix gld ](https://docs.lammps.org/fix_gld.html)\n\n----------\n\n.. _Ceriotti:\n\n**(Ceriotti)** Ceriotti, Bussi and Parrinello, J Chem Theory Comput 6,\n1170-80 (2010)\n\n.. _GLE4MD:\n\n**(GLE4MD)** [https://gle4md.org/](https://gle4md.org/)\n\n.. _Ceriotti2:\n\n**(Ceriotti2)** Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,\n030603 (2009)\n" }, { "command": [ - "min_style cg", - "min_style hftn", - "min_style sd", - "min_style quickmin", - "min_style fire" + "pair_style meam/spline", + "pair_style meam/spline/omp" ], "syntax": [ - "min_style style" + "pair_style meam/spline" ], "args": [ [ { - "arg": "min_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "spin/lbfgs", + "arg": "meam/spline", "type": 3, "choices": [ - "cg", - "hftn", - "sd", - "quickmin", - "fire", - "spin", - "spin/cg", - "spin/lbfgs" + "meam/spline", + "meam/spline/omp" ] } ] ], - "parameters": "* style = cg or hftn or sd or quickmin or fire or spin or spin/cg or spin/lbfgs \n *        spin is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n *        spin/cg is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n *        spin/lbfgs is discussed briefly here and fully on [min_style spin ](https://docs.lammps.org/min_spin.html) doc page \n", - "examples": "\n```lmps\nmin_style cg\nmin_style fire\nmin_style spin\n```\n", - "html_filename": "min_style.html", - "short_description": "Choose a minimization algorithm to use when a [minimize](https://docs.lammps.org/minimize.html) command is performed", - "description": "Choose a minimization algorithm to use when a [minimize](https://docs.lammps.org/minimize.html) command is performed.\n\nStyle *cg* is the Polak-Ribiere version of the conjugate gradient (CG)\nalgorithm. At each iteration the force gradient is combined with the\nprevious iteration information to compute a new search direction\nperpendicular (conjugate) to the previous search direction. The PR\nvariant affects how the direction is chosen and how the CG method is\nrestarted when it ceases to make progress. The PR variant is thought\nto be the most effective CG choice for most problems.\n\nStyle *hftn* is a Hessian-free truncated Newton algorithm. At each\niteration a quadratic model of the energy potential is solved by a\nconjugate gradient inner iteration. The Hessian (second derivatives)\nof the energy is not formed directly, but approximated in each\nconjugate search direction by a finite difference directional\nderivative. When close to an energy minimum, the algorithm behaves\nlike a Newton method and exhibits a quadratic convergence rate to high\naccuracy. In most cases the behavior of *hftn* is similar to *cg*,\nbut it offers an alternative if *cg* seems to perform poorly. This\nstyle is not affected by the [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nStyle *sd* is a steepest descent algorithm. At each iteration, the\nsearch direction is set to the downhill direction corresponding to the\nforce vector (negative gradient of energy). Typically, steepest\ndescent will not converge as quickly as CG, but may be more robust in\nsome situations.\n\nStyle *quickmin* is a damped dynamics method described in\n**Sheppard**, where the damping parameter is related\nto the projection of the velocity vector along the current force\nvector for each atom. The velocity of each atom is initialized to 0.0\nby this style, at the beginning of a minimization.\n\nStyle *fire* is a damped dynamics method described in **Bitzek**, which is similar to *quickmin* but adds a variable timestep\nand alters the projection operation to maintain components of the\nvelocity non-parallel to the current force vector. The velocity of each\natom is initialized to 0.0 by this style, at the beginning of a\nminimization. This style correspond to an optimized version described\nin **Guenole** that include different time integration\nschemes and default parameters. The default parameters can be modified\nwith the command [min_modify ](https://docs.lammps.org/min_modify.html).\n\nStyle *spin* is a damped spin dynamics with an adaptive timestep.\n\nStyle *spin/cg* uses an orthogonal spin optimization (OSO) combined to\na conjugate gradient (CG) approach to minimize spin configurations.\n\nStyle *spin/lbfgs* uses an orthogonal spin optimization (OSO) combined\nto a limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) approach\nto minimize spin configurations.\n\nSee the [min/spin ](https://docs.lammps.org/min_spin.html) page for more information about\nthe *spin*, *spin/cg* and *spin/lbfgs* styles.\n\nEither the *quickmin* or the *fire* styles are useful in the context of\nnudged elastic band (NEB) calculations via the [neb ](https://docs.lammps.org/neb.html) command.\n\nEither the *spin*, *spin/cg*, or *spin/lbfgs* styles are useful in the\ncontext of magnetic geodesic nudged elastic band (GNEB) calculations via\nthe [neb/spin ](https://docs.lammps.org/neb_spin.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damped dynamic minimizers use whatever timestep you have\n > defined via the [timestep ](https://docs.lammps.org/timestep.html) command. Often they\n > will converge more quickly if you use a timestep about 10x larger\n > than you would normally use for dynamics simulations.\n > For *fire*, the default timestep is recommended to be equal to\n > the one you would normally use for dynamics simulations. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *quickmin*, *fire*, *hftn*, and *cg/kk* styles do not yet\n > support the use of the [fix box/relax ](https://docs.lammps.org/fix_box_relax.html) command\n > or minimizations involving the electron radius in [eFF > ](https://docs.lammps.org/pair_eff.html) models. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Sheppard)** Sheppard, Terrell, Henkelman, J Chem Phys, 128, 134106\n(2008). See ref 1 in this paper for original reference to Qmin in\nJonsson, Mills, Jacobsen. \n \n**(Bitzek)** Bitzek, Koskinen, Gahler, Moseler, Gumbsch, Phys Rev Lett,\n97, 170201 (2006). \n \n**(Guenole)** Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek,\nComput Mater Sci, 175, 109584 (2020). \n ", - "restrictions": "The *spin*, *spin/cg*, and *spin/lbfgps* styles are part of the SPIN\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[min_modify ](https://docs.lammps.org/min_modify.html), [minimize ](https://docs.lammps.org/minimize.html), [neb ](https://docs.lammps.org/neb.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style meam/spline\npair_coeff * * Ti.meam.spline Ti\npair_coeff * * Ti.meam.spline Ti O\n```\n", + "html_filename": "pair_meam_spline.html", + "short_description": "The *meam/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky1**", + "description": "The *meam/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky1**. For a single species (\"old-style\") MEAM,\nthe total energy E is given by\n\\[\\begin{align*} \n E & =\\sum_{i ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be used in order to\ncontribute to the average. The final averaged quantities are generated on\ntime steps that are a multiple of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps. \\(N_\\text{freq}\\) must\nbe a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat} = 1\\). Also, the time steps\ncontributing to the average value cannot overlap (i.e.,\n\\(N_\\text{repeat} \\times N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\)).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on time steps 90, 92, 94, 96, 98, and\n100 will be used to compute the final average on time step 100. Similarly for\ntime steps 190, 192, 194, 196, 198, and 200 on time step 200, etc.\nIf \\(N_\\text{repeat}=1\\) and \\(N_\\text{freq} = 100\\), then no time\naveraging is done; values are simply generated on time steps\n100, 200, etc.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the\ncompute is used. If a bracketed term is appended, the Ith element of\nthe global vector calculated by the compute is used. If *mode* =\nvector, then if no bracketed term is appended, the global vector\ncalculated by the compute is used. If a bracketed term is appended,\nthe Ith column of the global array calculated by the compute is used.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector, which\ncan then be accessed by fix ave/time. It can also be a compute defined\nnot in your input script, but by [thermodynamic output](https://docs.lammps.org/thermo_style.html) or other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and [add them to LAMMPS](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the fix\nis used. If a bracketed term is appended, the Ith element of the\nglobal vector calculated by the fix is used. If *mode* = vector, then\nif no bracketed term is appended, the global vector calculated by the\nfix is used. If a bracketed term is appended, the Ith column of the\nglobal array calculated by the fix is used. See the discussion above\nfor how I can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nNote that some fixes only produce their values on certain time steps,\nwhich must be compatible with *Nevery*, else an error will result.\nUsers can also write code for their own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. If *mode* = scalar, then\nonly equal-style or vector-style variables can be used, which both\nproduce global values. In this mode, a vector-style variable requires\na bracketed term to specify the Ith element of the vector calculated\nby the variable. If *mode* = vector, then only a vector-style\nvariable can be used, without a bracketed term. See the\n[variable ](https://docs.lammps.org/variable.html) command for details.\n\nNote that variables of style *equal* and *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to time average.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nIf the *mode* keyword is set to *scalar*, then all input values must\nbe global scalars, or elements of global vectors. If the *mode*\nkeyword is set to *vector*, then all input values must be global\nvectors, or columns of global arrays. They can also be global arrays,\nwhich are converted into a series of global vectors (one per column),\nas explained above.\n\nThe *ave* keyword determines how the values produced every\n\\(N_\\text{freq}\\) steps are averaged with values produced on previous steps\nthat were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, then the values produced on time steps\nthat are multiples of \\(N_\\text{freq}\\) are independent of each other; they\nare output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the values produced on\ntime steps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each output value is thus the\naverage of the value produced on that time step with all preceding\nvalues. This running average begins when the fix is defined; it can\nonly be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the values produced on\ntime steps that are multiples of *Nfreq* are summed and averaged within\na moving \"window\" of time, so that the last M values are used to\nproduce the output. For example, if \\(M = 3\\) and\n\\(N_\\text{freq} = 1000\\), then the output on step 10000 will be the average\nof the individual values on steps 8000, 9000, and 10000. Outputs on early\nsteps will average over less than \\(M\\) values if they are not available.\n\nThe *start* keyword specifies what time step averaging will begin on.\nThe default is step 0. Often input values can be 0.0 at time 0, so\nsetting *start* to a larger value can avoid including a 0.0 in a\nrunning or windowed average.\n\nThe *off* keyword can be used to flag any of the input values. If a\nvalue is flagged, it will not be time averaged. Instead the most\nrecent input value will always be stored and output. This is useful\nif one of more of the inputs produced by a compute or fix or variable\nare effectively constant or are simply current values (e.g., they are\nbeing written to a file with other time-averaged values for purposes\nof creating well-formatted output).\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every *Nfreq* steps, one\nquantity or vector of quantities is written to the file for each input\nvalue specified in the fix ave/time command. For *mode* = scalar, this\nmeans a single line is written each time output is performed. Thus the\nfile ends up to be a series of lines, i.e. one column of numbers for\neach input value. For *mode* = vector, an array of numbers is written\neach time output is performed. The number of rows is the length of the\ninput vectors, and the number of columns is the number of values. Thus\nthe file ends up to be a series of these array sections.\n\nIf the filename ends in '.yaml' or '.yml' then the output format\nconforms to the [YAML standard](https://yaml.org/) which allows\neasy import that data into tools and scripts that support reading YAML\nfiles. The [structured data Howto ](https://docs.lammps.org/Howto_structured_data.html) contains\nexamples for parsing and plotting such data with very little programming\neffort in Python using the *pyyaml*, *pandas*, and *matplotlib*\npackages.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one time step worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *format* keyword sets the numeric format of each value when it is\nprinted to a file via the *file* keyword. Note that all values are\nfloating point quantities. The default format is %g. You can specify\na higher precision if desired (e.g., %20.16g).\n\nThe *title1* and *title2* and *title3* keywords allow specification of\nthe strings that will be printed as the first 2 or 3 lines of the\noutput file, assuming the *file* keyword was used. LAMMPS uses\ndefault values for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows for *mode* = scalar:\n\n```\n# Time-averaged data for fix ID\n# TimeStep value1 value2 ...\n```\nIn the first line, ID is replaced with the fix-ID. In the second line\nthe values are replaced with the appropriate fields from the fix\nave/time command. There is no third line in the header of the file,\nso the *title3* setting is ignored when *mode* = scalar.\n\nBy default, these header lines are as follows for *mode* = vector:\n\n```\n# Time-averaged data for fix ID\n# TimeStep Number-of-rows\n# Row value1 value2 ...\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the two values that are printed at the first of each section\nof output. In the third line the values are replaced with the\nappropriate fields from the fix ave/time command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). The [fix_modify colname ](https://docs.lammps.org/fix_modify.html) option can be\nused to change the name of the column in the output file. When writing\na YAML format file this name will be in the list of keywords.\n\nThis fix produces a global scalar or global vector or global array\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe values can only be accessed on time steps that are multiples of\n\\(N_\\text{freq}\\) since that is when averaging is performed.\n\nA scalar is produced if only a single input value is averaged and\n*mode* = scalar. A vector is produced if multiple input values are\naveraged for *mode* = scalar, or a single input value for *mode* =\nvector. In the first case, the length of the vector is the number of\ninputs. In the second case, the length of the vector is the same as\nthe length of the input vector. An array is produced if multiple\ninput values are averaged and *mode* = vector. The global array has #\nof rows = length of the input vectors and # of columns = number of\ninputs.\n\nIf the fix produces a scalar or vector, then the scalar and each\nelement of the vector can be either \"intensive\" or \"extensive\",\ndepending on whether the values contributing to the scalar or vector\nelement are \"intensive\" or \"extensive\". If the fix produces an array,\nthen all elements in the array must be the same, either \"intensive\" or\n\"extensive\". If a compute or fix provides the value being time\naveraged, then the compute or fix determines whether the value is\nintensive or extensive; see the page for that compute or fix for\nfurther info. Values produced by a variable are treated as intensive.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* cnp/atom = style name of this compute command\n* cutoff = cutoff distance for nearest neighbors (distance units) \n", + "examples": "\n```lmps\ncompute 1 all cnp/atom 3.08\n```\n", + "html_filename": "compute_cnp_atom.html", + "short_description": "Define a computation that calculates the Common Neighborhood\nParameter (CNP) for each atom in the group", + "description": "Define a computation that calculates the Common Neighborhood\nParameter (CNP) for each atom in the group. In solid-state systems\nthe CNP is a useful measure of the local crystal structure\naround an atom and can be used to characterize whether the\natom is part of a perfect lattice, a local defect (e.g., a dislocation\nor stacking fault), or at a surface.\n\nThe value of the CNP parameter will be 0.0 for atoms not in the\nspecified compute group. Note that normally a CNP calculation should\nonly be performed on single component systems.\n\nThis parameter is computed using the following formula from\n**Tsuzuki2**\n\\[\n Q_{i} = \\frac{1}{n_i}\\sum_{j = 1}^{n_i} \\left\\lVert \\sum_{k = 1}^{n_{ij}} \\vec{R}_{ik} + \\vec{R}_{jk} \\right\\rVert^{2}\\]\nwhere the index *j* goes over the \\(n_i\\) nearest neighbors of atom\n*i*, and the index *k* goes over the \\(n_{ij}\\) common nearest neighbors\nbetween atom *i* and atom *j* . \\(\\vec{R}_{ik}\\) and\n\\(\\vec{R}_{jk}\\) are the vectors connecting atom *k* to atoms *i*\nand *j* . The quantity in the double sum is computed\nfor each atom.\n\nThe CNP calculation is sensitive to the specified cutoff value.\nYou should ensure that the appropriate nearest neighbors of an atom are\nfound within the cutoff distance for the presumed crystal structure.\nE.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest\nneighbors for perfect BCC crystals. These formulas can be used to\nobtain a good cutoff distance:\n\\[\\begin{align*} \n r_{c}^{\\mathrm{fcc}} = & \\frac{1}{2} \\left(\\frac{\\sqrt{2}}{2} + 1\\right) a\n \\approx 0.8536 a \\\\\n r_{c}^{\\mathrm{bcc}} = & \\frac{1}{2}(\\sqrt{2} + 1) a\n \\approx 1.207 a \\\\\n r_{c}^{\\mathrm{hcp}} = & \\frac{1}{2}\\left(1+\\sqrt{\\frac{4+2x^{2}}{3}}\\right) a \\end{align*} \\]\nwhere \\(a\\) is the lattice constant for the crystal structure concerned\nand in the HCP case, \\(x = (c/a) / 1.633\\), where 1.633 is the ideal\n\\(c/a\\) for HCP crystals.\n\nAlso note that since the CNP calculation in LAMMPS uses the neighbors\nof an owned atom to find the nearest neighbors of a ghost atom, the\nfollowing relation should also be satisfied:\n\\[\n r_c + r_s > 2*{\\rm cutoff}\\]\nwhere \\(r_c\\) is the cutoff distance of the potential, \\(r_s\\) is\nthe skin\ndistance as specified by the [neighbor ](https://docs.lammps.org/neighbor.html) command, and\ncutoff is the argument used with the compute cnp/atom command. LAMMPS\nwill issue a warning if this is not the case.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*cnp/atom* style.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be real positive numbers. Some typical CNP\nvalues:\n\n```\nFCC lattice = 0.0\nBCC lattice = 0.0\nHCP lattice = 4.4\n\nFCC (111) surface = 13.0\nFCC (100) surface = 26.5\nFCC dislocation core = 11\n```\n\n**(Tsuzuki2)** Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" }, { "command": [ - "fix nonaffine/displacement" + "compute global/atom" ], "syntax": [ - "fix ID group nonaffine/displacement style args reference/style nstep keyword values" + "compute ID group-ID style index input1 input2 ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -22816,174 +21838,105 @@ export const command_docs = [ "choices": [] }, { - "arg": "group", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "nonaffine/displacement", - "type": 1, - "choices": [] - }, - { - "arg": "integrated", - "type": 3, - "choices": [ - "d2min", - "integrated" - ] - }, - { - "arg": "args", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "offset", - "type": 3, - "choices": [ - "fixed", - "update", - "offset" - ] - }, - { - "arg": "nstep", + "arg": "index", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nonaffine/displacement = style name of this fix command\n* nevery = calculate nonaffine displacement every this many timesteps\n* style = d2min or integrated \n *        d2min args = cutoff args \n         cutoff = type or radius or custom \n         type args = none, cutoffs determined by atom types \n         radius args = none, cutoffs determined based on atom diameters (atom style sphere) \n         custom args = rmax, cutoff set by a constant numeric value rmax (distance units) \n *        integrated args = none \n* reference/style = fixed or update or offset \n *        fixed = use a fixed reference frame at nstep \n *        update = update the reference frame every nstep timesteps \n *        offset = update the reference frame nstep timesteps before calculating the nonaffine displacement \n* zero or more keyword/value pairs may be appended \n *        *z/min* values = zmin \n         zmin = minimum coordination number to calculate D2min \n", - "examples": "\n```lmps\nfix 1 all nonaffine/displacement 100 integrated update 100\nfix 1 all nonaffine/displacement 1000 d2min type fixed 0\nfix 1 all nonaffine/displacement 1000 d2min custom 2.0 offset 100\n```\n", - "html_filename": "fix_nonaffine_displacement.html", - "short_description": "\nThis fix computes different metrics of the nonaffine displacement of\nparticles", - "description": "\nThis fix computes different metrics of the nonaffine displacement of\nparticles. The first metric, *d2min* calculates the \\(D^2_\\mathrm{min}\\)\nnonaffine displacement by Falk and Langer in **d2min-Falk**.\nFor each atom, the fix computes the two tensors\n\\[\n X = \\sum_{\\mathrm{neighbors}} \\vec{r} \\left(\\vec{r}_{0} \\right)^T\\]\nand\n\\[\n Y = \\sum_{\\mathrm{neighbors}} \\vec{r}_0 \\left(\\vec{r}_{0} \\right)^T\\]\nwhere the neighbors include all other atoms within the distance criterion\nset by the cutoff option, discussed below, \\(\\vec{r}\\) is the current\ndisplacement between particles, and \\(\\vec{r}_0\\) is the reference\ndisplacement. A deformation gradient tensor is then calculated as\n\\(F = X Y^{-1}\\) from which\n\\[\n D^2_\\mathrm{min} = \\sum_{\\mathrm{neighbors}} \\left| \\vec{r} - F \\vec{r}_0 \\right|^2\\]\nand a strain tensor is calculated \\(E = F F^{T} - I\\) where \\(I\\)\nis the identity tensor. This calculation is only performed on timesteps that\nare a multiple of *nevery* (including timestep zero). Data accessed before\nthis occurs will simply be zeroed.\n\nFor particles with low coordination numbers, calculations of \\(D^2_\\mathrm{min}\\)\nmay not be accurate. An optional minimum coordination number can be defined using\nthe *z/min* keyword. If any particle has fewer than the specified number of particles\nin the cutoff distance or in contact, the above calculations will be skipped and the\ncorresponding peratom array entries will be zero.\n\nThe *integrated* style simply integrates the velocity of particles\nevery timestep to calculate a displacement. This style only works if\nused in conjunction with another fix that deforms the box and displaces\natom positions such as [fix deform ](https://docs.lammps.org/fix_deform.html) with remap x,\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), or [fix nh ](https://docs.lammps.org/fix_nh.html).\n\nBoth of these methods require defining a reference state. With the *fixed* reference\nstyle, the user picks a specific timestep *nstep* at which particle positions are saved.\nIf peratom data is accessed from this compute prior to this timestep, it will simply be\nzeroed. The *update* reference style implies the reference state will be updated every\n*nstep* timesteps. The *offset* reference will update the reference state *nstep*\ntimesteps before a multiple of *nevery* timesteps.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe reference state is saved to [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a peratom array with 3 columns, which can be accessed\nby indices 1-3 using any command that uses per-atom values from a fix\nas input.\n\nFor the *integrated* style, the three columns are the nonaffine\ndisplacements in the x, y, and z directions. For the *d2min* style,\nthe three columns are the calculated \\(\\sqrt{D^2_\\mathrm{min}}\\), the\nvolumetric strain, and the deviatoric strain.\n\n**(d2min-Falk)** Falk and Langer PRE, 57, 7192 (1998). \n ", - "restrictions": "This compute is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* global/atom = style name of this compute command\n* index = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global vector calculated by a compute with ID \n *        c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global vector calculated by a fix with ID \n *        f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = global vector calculated by a vector-style variable with name \n", + "examples": "\n```lmps\ncompute 1 all global/atom c_chunk c_com[1] c_com[2] c_com[3]\ncompute 1 all global/atom c_chunk c_com[*]\n```\n", + "html_filename": "compute_global_atom.html", + "short_description": "Define a calculation that assigns global values to each atom from\nvectors or arrays of global values", + "description": "Define a calculation that assigns global values to each atom from\nvectors or arrays of global values. The specified *index* parameter\nis used to determine which global value is assigned to each atom.\n\nThe *index* parameter must reference a per-atom vector or array from a\n[compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation of an\natom-style [variable ](https://docs.lammps.org/variable.html). Each *input* value must\nreference a global vector or array from a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an vector-style\n[variable ](https://docs.lammps.org/variable.html). Details are given below.\n\nThe *index* value for an atom is used as an index \\(I\\) (from 1 to\n\\(N\\), where \\(N\\) is the number of atoms) into the vector\nassociated with each of the input values. The \\(I\\)\\ th value\nfrom the input vector becomes one output value for that atom. If the\natom is not in the specified group, or the index \\(I < 1\\) or\n\\(I > M\\), where \\(M\\) is the actual length of the input vector,\nthen an output value of 0.0 is assigned to the atom.\n\nAn example of how this command is useful, is in the context of\n\"chunks\" which are static or dynamic subsets of atoms. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command assigns unique chunk IDs\nto each atom. Its output can be used as the *index* parameter for\nthis command. Various other computes with \"chunk\" in their style\nname, such as [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) or\n[compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html), calculate properties for each\nchunk. The output of these commands are global vectors or arrays,\nwith one or more values per chunk, and can be used as input values for\nthis command. This command will then assign the global chunk value to\neach atom in the chunk, producing a per-atom vector or per-atom array\nas output. The per-atom values can then be output to a dump file or\nused by any command that uses per-atom values from a compute as input,\nas discussed on the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page.\n\nAs a concrete example, these commands will calculate the displacement\nof each atom from the center-of-mass of the molecule it is in, and\ndump those values to a dump file. In this case, each molecule is a\nchunk.\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all com/chunk cc1\ncompute prop all property/atom xu yu zu\ncompute glob all global/atom c_cc1 c_myChunk[*]\nvariable dx atom c_prop[1]-c_glob[1]\nvariable dy atom c_prop[2]-c_glob[2]\nvariable dz atom c_prop[3]-c_glob[3]\nvariable dist atom sqrt(v_dx*v_dx+v_dy*v_dy+v_dz*v_dz)\ndump 1 all custom 100 tmp.dump id xu yu zu c_glob[1] c_glob[2] c_glob[3] &\nv_dx v_dy v_dz v_dist\ndump_modify 1 sort id\n```\nYou can add these commands to the bench/in.chain script to see how\nthey work.\n\n----------\n\nNote that for input values from a compute or fix, the bracketed index\nI can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or \"\\*n\"\nor \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector\n(for *mode* = scalar)\nor the number of columns in the array (for *mode* = vector), then an\nasterisk with no numeric values means all indices from 1 to \\(N\\).\nA leading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from m to \\(N\\) (inclusive).\nA middle asterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute global/atom\ncommands are equivalent, since the [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html)\ncommand creates a global array with three columns:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute com all com/chunk cc1\ncompute 1 all global/atom c_cc1 c_com[1] c_com[2] c_com[3]\ncompute 1 all global/atom c_cc1 c_com[*]\n```\n----------\n\nThis section explains the *index* parameter. Note that it must\nreference per-atom values, as contrasted with the *input* values, which\nmust reference global values.\n\nNote that all of these options generate floating point values. When\nthey are used as an index into the specified input vectors, they\nsimple rounded down to convert the value to integer indices. The\nfinal values should range from 1 to \\(N\\) (inclusive), since they are used\nto access values from \\(N\\)-length vectors.\n\nIf *index* begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. The compute must generate\nper-atom quantities. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the per-atom\nvector calculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the per-atom array calculated by the\ncompute is used. Users can also write code for their own compute\nstyles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf *index* begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. The Fix must generate\nper-atom quantities. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when compute global/atom\nreferences the values, else an error results. If no bracketed integer\nis appended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Users can also write code for their\nown fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf *index* begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be an\n[atom-style variable ](https://docs.lammps.org/variable.html). Atom-style variables can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to use\nas *index* .\n\n----------\n\nThis section explains the kinds of *input* values that can be used.\nNote that inputs reference global values, as contrasted with the\n*index* parameter which must reference per-atom values.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. The compute must generate a\nglobal vector or array. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the vector\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\nI can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. The fix must generate a\nglobal vector or array. See the individual [fix ](https://docs.lammps.org/fix.html) doc page\nfor details. Note that some fixes only produce their values on\ncertain timesteps, which must be compatible with when compute\nglobal/atom references the values, else an error results. If no\nbracketed integer is appended, the vector calculated by the fix is\nused. If a bracketed integer is appended, the Ith column of the array\ncalculated by the fix is used. Users can also write code for their\nown fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be a\n[vector-style variable ](https://docs.lammps.org/variable.html). Vector-style variables can\nreference thermodynamic keywords and various other attributes of\natoms, or invoke other computes, fixes, or variables when they are\nevaluated, so this is a very general means of generating a vector of\nglobal quantities which the *index* parameter will reference for\nassignment of global values to atoms.\n\n----------\n\n #### Output info\n\nIf a single input is specified this compute produces a per-atom\nvector. If multiple inputs are specified, this compute produces a\nper-atom array values, where the number of columns is equal to the\nnumber of inputs specified. These values can be used by any command\nthat uses per-atom vector or array values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector or array values will be in whatever units the\ncorresponding input values are in.\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [variable ](https://docs.lammps.org/variable.html),\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" }, { "command": [ - "pair_style rann" + "fix lineforce" ], "syntax": [ - "pair_style rann" + "fix ID group-ID lineforce x y z" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "rann", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style rann\npair_coeff * * Mg.rann Mg\npair_coeff * * MgAlalloy.rann Mg Mg Al Mg\n```\n", - "html_filename": "pair_rann.html", - "short_description": "Pair style *rann* computes pairwise interactions for a variety of\nmaterials using rapid atomistic neural network (RANN) potentials\n(**Dickel** , **Nitol**)", - "description": "Pair style *rann* computes pairwise interactions for a variety of\nmaterials using rapid atomistic neural network (RANN) potentials\n(**Dickel** , **Nitol**). Neural network\npotentials work by first generating a series of symmetry functions\ni.e. structural fingerprints from the neighbor list and then using these\nvalues as the input layer of a neural network. There is a single output\nneuron in the final layer which is the energy. Atomic forces are found\nby analytical derivatives computed via back-propagation. For alloy\nsystems, each element has a unique network.\n\n #### Potential file syntax\n\nThe RANN potential is defined by a single text file which contains all\nthe fitting parameters for the alloy system. The potential file also\ndefines the active fingerprints, network architecture, activation\nfunctions, etc. The potential file is divided into several sections\nwhich are identified by one of the following keywords:\n\n* atomtypes\n* mass\n* fingerprintsperelement\n* fingerprints\n* fingerprintconstants\n* screening (optional)\n* networklayers\n* layersize\n* weight\n* bias\n* activationfunctions\n* calibrationparameters (ignored)\n\nThe '#' character is treated as a comment marker, similar to LAMMPS\ninput scripts. Sections are not required to follow a rigid ordering,\nbut do require previous definition of prerequisite information. E.g.,\nfingerprintconstants for a particular fingerprint must follow the\nfingerprints definition; layersize for a particular layer must follow\nthe declaration of network layers.\n\n*atomtypes* are defined as follows using element keywords separated by spaces.\n\n```\natomtypes:\nFe Mg Al etc.\n```\n*mass* must be specified for each element keyword as follows:\n\n```\nmass:Mg:\n24.305\nmass:Fe:\n55.847\nmass:Al:\n26.982\n```\n*fingerprintsperelement* specifies how many fingerprints are active for\ncomputing the energy of a given atom. This number must be specified for\neach element keyword. Active elements for each fingerprint depend upon\nthe type of the central atom and the neighboring atoms. Pairwise\nfingerprints may be defined for a Mg atom based exclusively on its Al\nneighbors, for example. Bond fingerprints may use two neighbor lists of\ndifferent element types. In computing fingerprintsperelement from all\ndefined fingerprints, only the fingerprints defined for atoms of a\nparticular element should be considered, regardless of the elements used\nin its neighbor list. In the following code, for example, some\nfingerprints may compute pairwise fingerprints summing contributions\nabout Fe atoms based on a neighbor list of exclusively Al atoms, but if\nthere are no fingerprints summing contributions of all neighbors about a\ncentral Al atom, then fingerprintsperelement of Al is zero:\n\n```\nfingerprintsperelement:Mg:\n5\nfingerprintsperelement:Fe:\n2\nfingerprintsperelement:Al:\n0\n```\n*fingerprints* specifies the active fingerprints for a certain element\ncombination. Pair fingerprints are specified for two elements, while\nbond fingerprints are specified for three elements. Only one\nfingerprints header should be used for an individual combination of\nelements. The ordering of the fingerprints in the network input layer\nis determined by the order of element combinations specified by\nsubsequent *fingerprints* lines, and the order of the fingerprints\ndefined for each element combination. Multiple fingerprints of the same\nstyle or different ones may be specified. If the same style and element\ncombination is used for multiple fingerprints, they should have\ndifferent id numbers. The first element specifies the atoms for which\nthis fingerprint is computed while the other(s) specify which atoms to\nuse in the neighbor lists for the computation. Switching the second and\nthird element type in bond fingerprints has no effect on the\ncomputation:\n\n```\nfingerprints:Mg_Mg:\nradial_0 radialscreened_0 radial_1\nfingerprints:Mg_Al_Fe:\nbond_0 bondspin_0\nfingerprints:Mg_Al:\nradial_0 radialscreened_0\n```\nThe following fingerprint styles are currently defined. See the\n**fingerprints** below for their definitions:\n\n* radial\n* radialscreened\n* radialspin\n* radialscreenedspin\n* bond\n* bondscreened\n* bondspin\n* bondscreenedspin\n\n*fingerprintconstants* specifies the meta-parameters for a defined fingerprint. For all radial styles, re, rc,\nalpha, dr, o, and n must be specified. re should usually be the stable interatomic distance, rc is the cutoff\nradius, dr is the cutoff smoothing distance, o is the lowest radial power term (which may be negative), and n\nis the highest power term. The total length of the fingerprint vector is (n-o+1). alpha is a list of decay parameters\nused for exponential decay of radial contributions. It may be set proportionally to the bulk modulus similarly\nto MEAM potentials, but other values may provided better fitting in special cases. Bond style fingerprints require\nspecification of re, rc, alphak, dr, k, and m. Here m is the power of the bond cosines and k is the number of\ndecay parameters. Cosine powers go from 0 to m-1 and are each computed for all values of alphak. Thus the total\nlength of the fingerprint vector is m*k.\n\n```\nfingerprintconstants:Mg_Mg:radialscreened_0:re:\n3.193592\nfingerprintconstants:Mg_Mg:radialscreened_0:rc:\n6.000000\nfingerprintconstants:Mg_Mg:radialscreened_0:alpha:\n5.520000 5.520000 5.520000 5.520000 5.520000\nfingerprintconstants:Mg_Mg:radialscreened_0:dr:\n2.806408\nfingerprintconstants:Mg_Mg:radialscreened_0:o:\n-1\nfingerprintconstants:Mg_Mg:radialscreened_0:n:\n3\n```\n*screening* specifies the Cmax and Cmin values used in the screening\nfingerprints. Contributions form neighbors to the fingerprint are\nomitted if they are blocked by a closer neighbor, and reduced if they\nare partially blocked. Larger values of Cmin correspond to neighbors\nbeing blocked more easily. Cmax cannot be greater than 3, and Cmin\ncannot be greater than Cmax or less than zero. Screening may be omitted\nin which case the default values Cmax = 2.8, Cmin = 0.8 are used. Since\nscreening is a bond computation, it is specified separately for each\ncombination of three elements in which the latter two may be\ninterchanged with no effect.\n\n```\nscreening:Mg_Mg_Mg:Cmax:\n2.700000\nscreening:Mg_Mg_Mg:Cmin:\n0.400000\n```\n*networklayers* species the size of the neural network for each atom.\nIt counts both the input and output layer and so is 2 + \\.\n\n```\nnetworklayers:Mg:\n3\n```\n*layersize* specifies the length of each layer, including the input\nlayer and output layer. The input layer is layer 0. The size of the\ninput layer size must match the summed length of all the fingerprints\nfor that element, and the output layer size must be 1:\n\n```\nlayersize:Mg:0:\n14\nlayersize:Mg:1:\n20\nlayersize:Mg:2:\n1\n```\n*weight* specifies the weight for a given element and layer. Weight\ncannot be specified for the output layer. The weight of layer i is a\n*m* x *n* matrix where *m* is the layer size of *i* and *n* is the layer size of\n*i* +1:\n\n```\nweight:Mg:0:\nw11 w12 w13 ...\nw21 w22 w23 ...\n...\n```\n*bias* specifies the bias for a given element and layer. Bias cannot be\nspecified for the output layer. The bias of layer i is a nx1 vector\nwhere n is the layer size of i+1:\n\n```\nbias:Mg:0:\nb1\nb2\nb3\n...\n```\n*activationfunctions* specifies the activation function for a given\nelement and layer. Activation functions cannot be specified for the\noutput layer:\n\n```\nactivationfunctions:Mg:0:\nsigI\nactivationfunctions:Mg:1:\nlinear\n```\nThe following activation styles are currently specified. See the\n**activations** below for their definitions.\n\n* sigI\n\n* linear\n\n*calibrationparameters* specifies a number of parameters used to calibrate the potential. These are ignored\nby LAMMPS.\n\n #### Formulation\n\nIn the RANN formulation, the total energy of a system of atoms\nis given by:\n\\[\n E = \\sum_{\\alpha} E^{\\alpha}\\\\\\\\\n E^{\\alpha} = {}^{N}\\!A^{\\alpha}\\\\\\\\\n {}^{n+1}\\!A_i^{\\alpha} = {}^{n}\\!F\\left({}^{n}\\!W_{ij}{\\;}^{n}\\!A_j^{\\alpha}+{}^{n}\\!B_i\\right)\\\\\\\\\n {}^{0}\\!A_i^{\\alpha} = \\left[\\begin{array}{c} {}^1\\!S\\!f^\\alpha\\\\ {}^2\\!S\\!f^\\alpha \\\\...\\\\\\end{array}\\right]\\]\nHere \\(E^\\alpha\\) is the energy of atom \\(\\alpha\\),\n\\({}^n\\!F()\\), \\({}^n\\!W_{ij}\\) and \\({}^n\\!B_i\\) are the\nactivation function, weight matrix and bias vector of the n-th layer\nrespectively. The inputs to the first layer are a collection of\nstructural fingerprints which are collected and reshaped into a single\nlong vector. The individual fingerprints may be defined in any order\nand have various shapes and sizes. Multiple fingerprints of the same\ntype and varying parameters may also be defined in the input layer.\n\nEight types of structural fingerprints are currently defined. In the\nfollowing, \\(\\beta\\) and \\(\\gamma\\) span the full neighbor list\nof atom \\(\\alpha\\). \\(\\delta_i\\) are decay meta-parameters, and\n\\(r_e\\) is a meta-parameter roughly proportional to the first\nneighbor distance. \\(r_c\\) and \\(dr\\) are the neighbor cutoff\ndistance and cutoff smoothing distance respectively.\n\\(S^{\\alpha\\beta}\\) is the MEAM screening function **Baskes97**, \\(s_i^\\alpha\\) and \\(s_i^\\beta\\) are the atom spin\nvectors **Tranchida7**. \\(r^{\\alpha\\beta}\\) is the\ndistance from atom \\(\\alpha\\) to atom \\(\\beta\\), and\n\\(\\theta^{\\alpha\\beta\\gamma}\\) is the bond angle:\n\\[\n cos\\left(\\theta^{\\alpha\\beta\\gamma}\\right)=\\frac{\\mathbf{r}^{\\alpha\\beta} \\cdot \\mathbf{r}^{\\alpha\\gamma}}{r^{\\alpha\\beta}r^{\\alpha\\gamma}}\\]\n\\(S^{\\alpha\\beta}\\) is defined as **Baskes97**:\n\\[\n X^{\\gamma\\beta} = \\left(\\frac{r^{\\gamma\\beta}}{r^{\\alpha\\beta}}\\right)^2\\\\\n \\\\\n X^{\\alpha\\gamma} = \\left(\\frac{r^{\\alpha\\gamma}}{r^{\\alpha\\beta}}\\right)^2\\\\\n \\\\\n C = \\frac{2\\left(X^{\\alpha\\gamma}+X^{\\gamma\\beta}\\right)-\\left(X^{\\alpha\\gamma}-X^{\\gamma\\beta}\\right)^2-1}{1-\\left(X^{\\alpha\\gamma}-X^{\\gamma\\beta}\\right)^2}\\\\\n \\\\\n f_c(x) = \\left[\\begin{array}{l} 1 \\; \\: x \\geq 1\\\\ \\left(1-\\left(1-x\\right)^4\\right)^2 \\; \\: 0 ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > written to a dump file may be slightly outside the simulation box. \n > \n\n**Use from write_dump:**\n\nIt is possible to use this dump style with the\n[write_dump ](https://docs.lammps.org/write_dump.html) command. In this case, the sub-intervals\nmust not be set at all. The write_dump command can be used either to\ncreate a new file or to add current data to an existing dump file by\nusing the *file_from* keyword.\n\nTypically, the *species* data is fixed. The following two commands\nstore the position data every 100 timesteps, with the image data, and\nstore once the species data in the same file.\n\n```lmps\ndump h5md1 all h5md 100 dump.h5 position image\nwrite_dump all h5md dump.h5 file_from h5md1 species\n```\n----------\n\n**(h5md_cpc)** de Buyl, Colberg and Hofling, H5MD: A structured,\nefficient, and portable file format for molecular data,\nComp. Phys. Comm. 185(6), 1546-1553 (2014) -\n[[arXiv:1308.6382]](https://arxiv.org/abs/1308.6382/). \n ", - "restrictions": "The number of atoms per snapshot cannot change with the h5md style.\nThe position data is stored wrapped (box boundaries not enforced, see\nnote above). Only orthogonal domains are currently supported. This is\na limitation of the present dump h5md command and not of H5MD itself.\n\nThe *h5md* dump style is part of the H5MD package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. It also requires\n(i) building the ch5md library provided with LAMMPS (See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.) and (ii) having\nthe [HDF5 ](https://www.hdfgroup.org/solutions/hdf5/) library installed (C bindings are sufficient) on\nyour system. The library ch5md is compiled with the h5cc wrapper\nprovided by the HDF5 library.\n\n----------\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n\n----------\n\n.. _h5md_cpc:\n\n**(de Buyl)** de Buyl, Colberg and Hofling, H5MD: A structured,\nefficient, and portable file format for molecular data,\nComp. Phys. Comm. 185(6), 1546-1553 (2014) -\n[[arXiv:1308.6382]](https://arxiv.org/abs/1308.6382/).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qbmsst = style name of this fix\n* dir = x or y or z\n* shockvel = shock velocity (strictly positive, velocity units)\n* zero or more keyword/value pairs may be appended\n* keyword = q or mu or p0 or v0 or e0 or tscale or damp or seed or f_max or N_f or eta or beta or T_init \n *        q value = cell mass-like parameter (mass\\^2/distance\\^4 units) \n *        mu value = artificial viscosity (mass/distance/time units) \n *        p0 value = initial pressure in the shock equations (pressure units) \n *        v0 value = initial simulation cell volume in the shock equations (distance\\^3 units) \n *        e0 value = initial total energy (energy units) \n *        tscale value = reduction in initial temperature (unitless fraction between 0.0 and 1.0) \n *        damp value = damping parameter (time units) inverse of friction gamma \n *        seed value = random number seed (positive integer) \n *        f_max value = upper cutoff frequency of the vibration spectrum (1/time units) \n *        N_f value = number of frequency bins (positive integer) \n *        eta value = coupling constant between the shock system and the quantum thermal bath (positive unitless) \n *        beta value = the quantum temperature is updated every beta time steps (positive integer) \n *        T_init value = quantum temperature for the initial state (temperature units) \n", + "examples": "\n```lmps\n# (liquid methane modeled with the REAX force field, real units)\nfix 1 all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 seed 35082 f_max 0.3 N_f 100 eta 1 beta 400 T_init 110\n# (quartz modeled with the BKS force field, metal units)\nfix 2 all qbmsst z 72 q 40 tscale 0.05 damp 1 seed 47508 f_max 120.0 N_f 100 eta 1.0 beta 500 T_init 300\n```\nTwo example input scripts are given, including shocked\n\\(\\alpha\\textrm{-quartz}\\) and shocked liquid methane. The input\nscript first equilibrates an initial state with the quantum thermal\nbath at the target temperature and then applies *fix qbmsst* to simulate\nshock compression with quantum nuclear correction. The following two\nfigures plot relevant quantities for shocked\n\\(\\alpha\\textrm{-quartz}\\).\n\n ![Image](JPG/qbmsst_init.jpg) \n\nFigure 1. Classical temperature\n\\(T_{cl} = \\sum \\frac{m_iv_i^2}{3Nk_B}\\) vs. time for coupling the\n\\(\\alpha\\textrm{-quartz}\\) initial state with the quantum thermal\nbath at target quantum temperature \\(T^{qm} = 300 K\\). The NpH\nensemble is used for time integration while QTB provides the colored\nrandom force. \\(T^{cl}\\) converges at the timescale of *damp*\nwhich is set to be 1 ps.\n\n ![Image](JPG/qbmsst_shock.jpg) \n\nFigure 2. Quantum temperature and pressure vs. time for simulating\nshocked \\(\\alpha\\textrm{-quartz}\\) with *fix qbmsst*\\. The shock\npropagates along the z direction. Restart of the *fix qbmsst* command\nis demonstrated in the example input script. Thermodynamic quantities\nstay continuous before and after the restart.\n", + "html_filename": "fix_qbmsst.html", + "short_description": "This command performs the Quantum-Bath coupled Multi-Scale Shock\nTechnique (QBMSST) integration", + "description": "This command performs the Quantum-Bath coupled Multi-Scale Shock\nTechnique (QBMSST) integration. See **Qi** for a detailed\ndescription of this method. QBMSST provides description of the\nthermodynamics and kinetics of shock processes while incorporating\nquantum nuclear effects. The *shockvel* setting determines the steady\nshock velocity that will be simulated along direction *dir* .\n\nQuantum nuclear effects [(fix qtb) ](https://docs.lammps.org/fix_qtb.html) can be crucial\nespecially when the temperature of the initial state is below the\nclassical limit or there is a great change in the zero point energies\nbetween the initial and final states. Theoretical post processing\nquantum corrections of shock compressed water and methane have been\nreported as much as 30% of the temperatures **Goldman1**. A\nself-consistent method that couples the shock to a quantum thermal\nbath described by a colored noise Langevin thermostat has been\ndeveloped by Qi et al **Qi** and applied to shocked methane. The\nonset of chemistry is reported to be at a pressure on the shock\nHugoniot that is 40% lower than observed with classical molecular\ndynamics.\n\nIt is highly recommended that the system be already in an equilibrium\nstate with a quantum thermal bath at temperature of *T_init*. The fix\ncommand [fix qtb ](https://docs.lammps.org/fix_qtb.html) at constant temperature *T_init* could\nbe used before applying this command to introduce self-consistent\nquantum nuclear effects into the initial state.\n\nThe parameters *q*, *mu*, *e0*, *p0*, *v0* and *tscale* are described\nin the command [fix msst ](https://docs.lammps.org/fix_msst.html). The values of *e0*, *p0*, or\n*v0* will be calculated on the first step if not specified. The\nparameter of *damp*, *f_max*, and *N_f* are described in the command\n[fix qtb ](https://docs.lammps.org/fix_qtb.html).\n\nThe *fix qbmsst* command couples the shock system to a quantum thermal\nbath with a rate that is proportional to the change of the total\nenergy of the shock system, \\(E^{tot} - E^{tot}_0\\).\nHere \\(E^{etot}\\) consists of both the system energy and a thermal\nterm, see **Qi**, and \\(E^{tot}_0 = e0\\) is the\ninitial total energy.\n\nThe *eta* (\\(\\eta\\)) parameter is a unitless coupling constant\nbetween the shock system and the quantum thermal bath. A small \\(\\eta\\)\nvalue cannot adjust the quantum temperature fast enough during the\ntemperature ramping period of shock compression while large \\(\\eta\\)\nleads to big temperature oscillation. A value of \\(\\eta\\) between 0.3 and\n1 is usually appropriate for simulating most systems under shock\ncompression. We observe that different values of \\(\\eta\\) lead to almost\nthe same final thermodynamic state behind the shock, as expected.\n\nThe quantum temperature is updated every *beta* (\\(\\beta\\)) steps\nwith an integration time interval \\(\\beta\\) times longer than the\nsimulation time step. In that case, \\(E^{tot}\\) is taken as its\naverage over the past \\(\\beta\\) steps. The temperature of the quantum\nthermal bath \\(T^{qm}\\) changes dynamically according to\nthe following equation where \\(\\Delta_t\\) is the MD time step and\n\\(\\gamma\\) is the friction constant which is equal to the inverse\nof the *damp* parameter.\n\\[\n \\frac{dT^{qm}}{dt} = \\gamma\\eta\\sum^\\beta_{l=1}\\frac{E^{tot}(t-l\\Delta t) - E^{tot}_0}{3\\beta N k_B}\\]\nThe parameter *T_init* is the initial temperature of the quantum\nthermal bath and the system before shock loading.\n\nFor all pressure styles, the simulation box stays orthorhombic in\nshape. Parrinello-Rahman boundary conditions (tilted box) are\nsupported by LAMMPS, but are not implemented for QBMSST.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nBecause the state of the random number generator is not written to\n[binary restart files ](https://docs.lammps.org/restart.html), this fix cannot be restarted\n\"exactly\" in an uninterrupted fashion. However, in a statistical\nsense, a restarted simulation should produce similar behaviors of the\nsystem as if it is not interrupted. To achieve such a restart, one\nshould write explicitly the same value for *q*, *mu*, *damp*,\n*f_max*, *N_f*, *eta*, and *beta* and set *tscale* = 0 if the system\nis compressed during the first run.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThe progress of the QBMSST can be monitored by printing the global\nscalar and global vector quantities computed by the fix.\n\nAs mentioned above, the scalar is the cumulative energy change due to\nthe fix. By monitoring the thermodynamic *econserve* output, this can\nbe used to test if the MD timestep is sufficiently small for accurate\nintegration of the dynamic equations.\n\nThe global vector contains five values in the following order. The\nvector values output by this fix are \"intensive\".\n\n[\\ *dhugoniot*, *drayleigh*, *lagrangian_speed*, *lagrangian_position*,\n*quantum_temperature*]\n\n1. *dhugoniot* is the departure from the Hugoniot (temperature units).\n2. *drayleigh* is the departure from the Rayleigh line (pressure units).\n3. *lagrangian_speed* is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).\n4. *lagrangian_position* is the computational cell position in the reference frame moving at the shock speed. This is the distance of the computational cell behind the shock front.\n5. *quantum_temperature* is the temperature of the quantum thermal bath \\(T^{qm}\\).\n\nTo print these quantities to the log file with descriptive column\nheaders, the following LAMMPS commands are suggested.\n\n```\nfix fix_id all msst z\nvariable dhug equal f_fix_id[1]\nvariable dray equal f_fix_id[2]\nvariable lgr_vel equal f_fix_id[3]\nvariable lgr_pos equal f_fix_id[4]\nvariable T_qm equal f_fix_id[5]\nthermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos v_T_qm f_fix_id\n```\nIt is worth noting that the temp keyword for the [thermo_style](https://docs.lammps.org/thermo_style.html) command prints the instantaneous classical temperature\n\\(T^{cl}\\) as described by the [fix qtb ](https://docs.lammps.org/fix_qtb.html) command.\n\n----------\n\n**(Qi)** Qi and Reed, J. Phys. Chem. A 116, 10451 (2012). \n \n**(Goldman1)** Goldman, Reed and Fried, J. Chem. Phys. 131, 204103 (2009) \n ", + "restrictions": "This fix style is part of the QTB package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll cell dimensions must be periodic. This fix can not be used with a\ntriclinic cell. The QBMSST fix has been tested only for the group-ID\nall.\n\n----------\n", + "related": "[fix qtb ](https://docs.lammps.org/fix_qtb.html), [fix msst ](https://docs.lammps.org/fix_msst.html)\n\n----------\n" }, { "command": [ - "fix_modify AtC computes" + "compute temp/sphere" ], "syntax": [ - "fix_modify computes " + "compute ID group-ID temp/sphere keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "computes", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "add", - "delete" - ] - }, - { - "arg": "", + "arg": "temp/sphere", "type": 1, "choices": [] }, { - "arg": "", + "arg": "dof", "type": 3, "choices": [ - "volume", - "number" + "bias", + "dof" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* computes = name of the AtC sub-command\n* add or delete = add or delete the calculation of an equivalent continuum field for the specified per-atom compute as volume or number density quantity\n* per-atom compute-ID = ID of a per-atom compute; fields can be calculated for all per-atom computes available in LAMMPS\n* volume or number = select whether the created field is a per-unit-volume quantity or a per-atom quantity as weighted by kernel functions \n", - "examples": "\n```lmps\ncompute virial all stress/atom\nfix_modify AtC computes add virial volume\nfix_modify AtC computes delete virial\n\ncompute centrosymmetry all centro/atom\nfix_modify AtC computes add centrosymmetry number\n```\n", - "html_filename": "atc_hardy_computes.html", - "short_description": "Calculates continuum fields corresponding to specified per-atom\n[computes ](https://docs.lammps.org/compute.html) created by LAMMPS", - "description": "Calculates continuum fields corresponding to specified per-atom\n[computes ](https://docs.lammps.org/compute.html) created by LAMMPS.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). The per-atom compute\nmust be specified before the corresponding continuum field can be\nrequested.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [compute ](https://docs.lammps.org/compute.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/sphere = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", + "examples": "\n```lmps\ncompute 1 all temp/sphere\ncompute myTemp mobile temp/sphere bias tempCOM\ncompute myTemp mobile temp/sphere dof rotate\n```\n", + "html_filename": "compute_temp_sphere.html", + "short_description": "Define a computation that calculates the temperature of a group of\nspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy", + "description": "Define a computation that calculates the temperature of a group of\nspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nBoth point and finite-size particles can be included in the group.\nPoint particles do not rotate, so they have only three translational\ndegrees of freedom. For 3d spherical particles, each has six degrees of\nfreedom (three translational, three rotational). For 2d spherical particles,\neach has three degrees of freedom (two translational, one rotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all finite-size\n > spherical particles in your model will freely rotate, sampling all\n > their rotational DOF. It is possible to use a combination of\n > interaction potentials and fixes that induce no torque or otherwise\n > constrain some of all of your particles so that this is not the case.\n > Then there are less DOF and you should use the [compute_modify > extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust the DOF accordingly. \n > \n\nThe translational kinetic energy is computed the same as is described\nby the [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational\nkinetic energy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is\nthe moment of inertia for a sphere and \\(\\omega\\) is the particle's angular\nvelocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute. The formula for the components of the\ntensor is the same as the above formulas, except that \\(v^2\\) and\n\\(\\omega^2\\) are replaced by \\(v_x v_y\\) and \\(\\omega_x\n\\omega_y\\) for the \\(xy\\) component. The six components of the\nvector are ordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\),\n\\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out translational degrees-of-freedom due to fixes\nthat constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups\nof atoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees of freedom can be altered using the\n*extra/dof* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom.\nA setting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres, or point\nparticles with radius = 0.0.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/asphere ](https://docs.lammps.org/compute_temp.html)\n" }, { "command": [ - "pair_modify" + "fix smd/move_tri_surf" ], "syntax": [ - "pair_modify keyword values ..." + "fix ID group-ID smd/move_tri_surf keyword" ], "args": [ [ { - "arg": "pair_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "tabinner", - "type": 3, - "choices": [ - "pair", - "shift", - "mix", - "table", - "table/disp", - "tabinner" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "smd/move_tri_surf", + "type": 1, + "choices": [] + }, + { + "arg": "\\*ROTATE", + "type": 3, + "choices": [ + "\\*LINEAR", + "\\*WIGGLE", + "\\*ROTATE" + ] } ] ], - "parameters": "* one or more keyword/value pairs may be listed\n* keyword = pair or shift or mix or table or table/disp or tabinner\n or tabinner/disp or tail or compute or nofdotr or special or\n compute/tally or neigh/trim \n *        pair value = sub-style N \n         sub-style = sub-style of [pair hybrid ](https://docs.lammps.org/pair_hybrid.html) \n         N = which instance of sub-style (1 to M), only specify if sub-style is used multiple times \n *        mix value = geometric or arithmetic or sixthpower \n *        shift value = yes or no \n *        table value = N \n         2\\^N = # of values in table \n *        table/disp value = N \n         2\\^N = # of values in table \n *        tabinner value = cutoff \n         cutoff = inner cutoff at which to begin table (distance units) \n *        tabinner/disp value = cutoff \n         cutoff = inner cutoff at which to begin table (distance units) \n *        tail value = yes or no \n *        compute value = yes or no \n *        nofdotr value = none \n *        special values = which wt1 wt2 wt3 \n         which = lj/coul or lj or coul \n         w1,w2,w3 = 1-2, 1-3, 1-4 weights from 0.0 to 1.0 inclusive \n *        compute/tally value = yes or no \n *        neigh/trim value = yes or no \n", - "examples": "\n```lmps\npair_modify shift yes mix geometric\npair_modify tail yes\npair_modify table 12\npair_modify pair lj/cut compute no\npair_modify pair tersoff compute/tally no\npair_modify pair lj/cut/coul/long 1 special lj/coul 0.0 0.0 0.0\npair_modify pair lj/cut/coul/long special lj 0.0 0.0 0.5 special coul 0.0 0.0 0.8333333\n```\n", - "html_filename": "pair_modify.html", - "short_description": "Modify the parameters of the currently defined pair style", - "description": "Modify the parameters of the currently defined pair style. If the\npair style is [hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), then the\nspecified parameters are by default modified for all the hybrid sub-styles.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior for hybrid pair styles can be changed by using the *pair*\n > keyword, which allows selection of a specific sub-style to apply all\n > remaining keywords to.\n > The *special* and *compute/tally* keywords can **only** be\n > used in conjunction with the *pair* keyword. See further details about\n > these 3 keywords below. \n > \n\nThe *mix* keyword affects pair coefficients for interactions between\natoms of type I and J, when I != J and the coefficients are not\nexplicitly set in the input script. Note that coefficients for I = J\nmust be set explicitly, either in the input script via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command or in the \"Pair Coeffs\" or \"PairIJ Coeffs\"\nsections of the [data file ](https://docs.lammps.org/read_data.html). For some pair styles it is not\nnecessary to specify coefficients when I != J, since a \"mixing\" rule\nwill create them from the I,I and J,J settings. The pair_modify\n*mix* value determines what formulas are used to compute the mixed\ncoefficients. In each case, the cutoff distance is mixed the same way\nas sigma.\n\nNote that not all pair styles support mixing and some mix options are\nnot available for certain pair styles. Also, there are additional\nrestrictions when using [pair style hybrid or hybrid/overlay](https://docs.lammps.org/pair_hybrid.html). See the page for individual pair styles for those\nrestrictions. Note also that the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nalso can be used to directly set coefficients for a specific I != J\npairing, in which case no mixing is performed. If possible, LAMMPS will\nprint an informational message about how many of the mixed pair\ncoefficients were generated and which mixing rule was applied.\n\n- mix *geometric*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\sqrt{\\epsilon_i \\epsilon_j} \\\\\n \\sigma_{ij} = & \\sqrt{\\sigma_i \\sigma_j} \\end{align*} \\]\n- mix *arithmetic*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\sqrt{\\epsilon_i \\epsilon_j} \\\\\n \\sigma_{ij} = & \\frac{1}{2} (\\sigma_i + \\sigma_j) \\end{align*} \\]\n- mix *sixthpower*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\frac{2 \\sqrt{\\epsilon_i \\epsilon_j} \\sigma_i^3 \\sigma_j^3}{\\sigma_i^6 + \\sigma_j^6} \\\\\n \\sigma_{ij} = & \\left(\\frac{1}{2} (\\sigma_i^6 + \\sigma_j^6) \\right)^{\\frac{1}{6}} \\end{align*} \\]\nThe *shift* keyword determines whether a Lennard-Jones potential is\nshifted at its cutoff to 0.0. If so, this adds an energy term to each\npairwise interaction which will be included in the thermodynamic\noutput, but does not affect pair forces or atom trajectories. See the\ndoc page for individual pair styles to see which ones support this\noption.\n\nThe *table* and *table/disp* keywords apply to pair styles with a\nlong-range Coulombic term or long-range dispersion term respectively;\nsee the page for individual styles to see which potentials support\nthese options. If N is non-zero, a table of length 2\\^N is\npre-computed for forces and energies, which can shrink their\ncomputational cost by up to a factor of 2. The table is indexed via a\nbit-mapping technique **Wolff1** and a linear\ninterpolation is performed between adjacent table values. In our\nexperiments with different table styles (lookup, linear, spline), this\nmethod typically gave the best performance in terms of speed and\naccuracy.\n\nThe choice of table length is a tradeoff in accuracy versus speed. A\nlarger N yields more accurate force computations, but requires more\nmemory which can slow down the computation due to cache misses. A\nreasonable value of N is between 8 and 16. The default value of 12\n(table of length 4096) gives approximately the same accuracy as the\nno-table (N = 0) option. For N = 0, forces and energies are computed\ndirectly, using a polynomial fit for the needed erfc() function\nevaluation, which is what earlier versions of LAMMPS did. Values\ngreater than 16 typically slow down the simulation and will not\nimprove accuracy; values from 1 to 8 give unreliable results.\n\nThe *tabinner* and *tabinner/disp* keywords set an inner cutoff above\nwhich the pairwise computation is done by table lookup (if tables are\ninvoked), for the corresponding Coulombic and dispersion tables\ndiscussed with the *table* and *table/disp* keywords. The smaller the\ncutoff is set, the less accurate the table becomes (for a given number\nof table values), which can require use of larger tables. The default\ncutoff value is sqrt(2.0) distance units which means nearly all\npairwise interactions are computed via table lookup for simulations\nwith \"real\" units, but some close pairs may be computed directly\n(non-table) for simulations with \"lj\" units.\n\nWhen the *tail* keyword is set to *yes*, certain pair styles will\nadd a long-range VanderWaals tail \"correction\" to the energy and\npressure. These corrections are bookkeeping terms which do not affect\ndynamics, unless a constant-pressure simulation is being performed.\nSee the page for individual styles to see which support this\noption. These corrections are included in the calculation and\nprinting of thermodynamic quantities (see the [thermo_style](https://docs.lammps.org/thermo_style.html) command). Their effect will also be included in\nconstant NPT or NPH simulations where the pressure influences the\nsimulation box dimensions (e.g. the [fix npt ](https://docs.lammps.org/fix_nh.html) and\n[fix nph ](https://docs.lammps.org/fix_nh.html) commands). The formulas used for the\nlong-range corrections come from equation 5 of **Sun**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The tail correction terms are computed at the beginning of each\n > run, using the current atom counts of each atom type. If atoms are\n > deleted (or lost) or created during a simulation, e.g. via the\n > [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) command, the correction factors are not\n > re-computed. If you expect the counts to change dramatically, you\n > can break a run into a series of shorter runs so that the\n > correction factors are re-computed more frequently. \n > \n\nSeveral additional assumptions are inherent in using tail corrections,\nincluding the following:\n\n* The simulated system is a 3d bulk homogeneous liquid. This option\n should not be used for systems that are non-liquid, 2d, have a slab\n geometry (only 2d periodic), or inhomogeneous.\n* G(r), the radial distribution function (rdf), is unity beyond the\n cutoff, so a fairly large cutoff should be used (i.e. 2.5 sigma for\n an LJ fluid), and it is probably a good idea to verify this\n assumption by checking the rdf. The rdf is not exactly unity beyond\n the cutoff for each pair of interaction types, so the tail\n correction is necessarily an approximation.\n\n The tail corrections are computed at the beginning of each\n simulation run. If the number of atoms changes during the run,\n e.g. due to atoms leaving the simulation domain, or use of the\n [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) command, then the corrections are not\n updated to reflect the changed atom count. If this is a large\n effect in your simulation, you should break the long run into\n several short runs, so that the correction factors are re-computed\n multiple times.\n\n* Thermophysical properties obtained from calculations with this\n option enabled will not be thermodynamically consistent with the\n truncated force-field that was used. In other words, atoms do not\n feel any LJ pair interactions beyond the cutoff, but the energy and\n pressure reported by the simulation include an estimated\n contribution from those interactions.\n\nThe *compute* keyword allows pairwise computations to be turned off,\neven though a [pair_style ](https://docs.lammps.org/pair_style.html) is defined. This is not\nuseful for running a real simulation, but can be useful for debugging\npurposes or for performing a [rerun ](https://docs.lammps.org/rerun.html) simulation, when you\nonly wish to compute partial forces that do not include the pairwise\ncontribution.\n\nTwo examples are as follows. First, this option allows you to perform\na simulation with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) with only a\nsubset of the hybrid sub-styles enabled. Second, this option allows\nyou to perform a simulation with only long-range interactions but no\nshort-range pairwise interactions. Doing this by simply not defining\na pair style will not work, because the [kspace_style](https://docs.lammps.org/kspace_style.html) command requires a Kspace-compatible pair style be\ndefined.\n\nThe *nofdotr* keyword allows to disable an optimization that computes\nthe global stress tensor from the total forces and atom positions\nrather than from summing forces between individual pairs of atoms.\n\n----------\n\nThe *pair* keyword can only be used with the [hybrid andhybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) pair styles. If used, it must appear\nfirst in the list of keywords.\n\nIts meaning is that all the following parameters will only be modified\nfor the specified sub-style. If the sub-style is defined multiple\ntimes, then an additional numeric argument *N* must also be specified,\nwhich is a number from 1 to M where M is the number of times the\nsub-style was listed in the [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html)\ncommand. The extra number indicates which instance of the sub-style\nthe remaining keywords will be applied to.\n\nThe *special* and *compute/tally* keywords can **only** be used in\nconjunction with the *pair* keyword and they must directly follow it.\nI.e. any other keyword, must appear after *pair*, *special*, and\n*compute/tally*.\n\nThe *special* keyword overrides the global [special_bonds ](https://docs.lammps.org/special_bonds.html)\n1-2, 1-3, 1-4 exclusion settings (weights) for the sub-style selected\nby the *pair* keyword.\n\nSimilar to the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, it takes\n4 arguments. The *which* argument can be *lj* to change only the\nnon-Coulomb weights (e.g. Lennard-Jones or Buckingham), *coul* to change\nonly the Coulombic settings, or *lj/coul* to change both to the same\nvalues. The *wt1,wt2,wt3* values are numeric weights from 0.0 to 1.0\ninclusive, for the 1-2, 1-3, and 1-4 bond topology neighbors, respectively.\nThe *special* keyword can be used multiple times, e.g. to set the *lj*\nand *coul* settings to different values.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *special* keyword is not compatible with pair styles from the\n > GPU or the INTEL package and attempting to use it will cause\n > an error. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Weights of exactly 0.0 or 1.0 in the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command have implications on the neighbor list construction, which\n > means that they cannot be overridden by using the *special* keyword.\n > One workaround for this restriction is to use the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command with weights like 1.0e-10 or 0.999999999 instead of 0.0 or 1.0,\n > respectively, which enables to reset each them to any value between 0.0\n > and 1.0 inclusively. Otherwise you can set **all** global weights to\n > an arbitrary number between 0.0 or 1.0, like 0.5, and then you have\n > to override **all** *special* settings for **all** sub-styles which use\n > the 1-2, 1-3, and 1-4 exclusion weights in their force/energy computation. \n > \n\nThe *compute/tally* keyword disables or enables registering [compute\\*/tally ](https://docs.lammps.org/compute_tally.html) computes for the sub-style specified by\nthe *pair* keyword. Use *no* to disable, or *yes* to enable.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"pair_modify pair compute/tally\" command must be issued\n > **before** the corresponding compute style is defined. \n > \n\n\nThe *neigh/trim* keyword controls whether an explicit cutoff is set for\neach neighbor list request issued by individual pair sub-styles when\nusing [pair hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). When this keyword is\nset to *no*, then the cutoff of each pair sub-style neighbor list will\nbe set equal to the largest cutoff, even if a shorter cutoff is\nspecified for a particular sub-style. If possible the neighbor list\nwill be copied directly from another list. When this keyword is set to\n*yes* then the cutoff of the neighbor list will be explicitly set to the\nvalue requested by the pair sub-style, and if possible the list will be\ncreated by trimming neighbors from another list with a longer cutoff,\notherwise a new neighbor list will be created with the specified cutoff.\nThe *yes* option can be faster when there are multiple pair styles with\ndifferent cutoffs since the number of pair-wise distance checks between\nneighbors is reduced (but the time required to build the neighbor lists\nis increased). The *no* option could be faster when two or more neighbor\nlists have similar (but not exactly the same) cutoffs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"pair_modify neigh/trim\" command *only* applies when there are\n > multiple pair sub-styles for the same atoms with different cutoffs,\n > i.e. when using pair style hybrid/overlay. If you have different\n > cutoffs for different pairs for atoms type, the [neighbor style > multi ](https://docs.lammps.org/neighbor.html) should be used to create optimized neighbor lists. \n > \n\n----------\n\n**(Wolff1)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n \n**(Sun)** Sun, J Phys Chem B, 102, 7338-7364 (1998). \n ", - "restrictions": "You cannot use *shift* yes with *tail* yes, since those are\nconflicting options. You cannot use *tail* yes with 2d simulations.\nYou cannot use *special* with pair styles from the GPU or\nINTEL package.\n", - "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html),\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [thermo_style ](https://docs.lammps.org/thermo_style.html),\n[compute \\*/tally ](https://docs.lammps.org/compute_tally.html), [neighbor multi ](https://docs.lammps.org/neighbor.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/move_tri_surf keyword = style name of this fix command\n* keyword = \\*LINEAR or \\*WIGGLE or \\*ROTATE \n *         \\*LINEAR args = Vx Vy Vz \n          Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *         \\*WIGGLE args = Vx Vy Vz max_travel \n          vx,vy,vz = components of velocity vector (velocity units), any component can be specified as NULL \n          max_travel = wiggle amplitude \n *         \\*ROTATE args = Px Py Pz Rx Ry Rz period \n          Px,Py,Pz = origin point of axis of rotation (distance units) \n          Rx,Ry,Rz = axis of rotation vector \n          period = period of rotation (time units) \n", + "examples": "\n```lmps\nfix 1 tool smd/move_tri_surf *LINEAR 20 20 10\nfix 2 tool smd/move_tri_surf *WIGGLE 20 20 10\nfix 2 tool smd/move_tri_surf *ROTATE 0 0 0 5 2 1\n```\n", + "html_filename": "fix_smd_move_triangulated_surface.html", + "short_description": "This fix applies only to rigid surfaces read from .STL files via fix\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) ", + "description": "This fix applies only to rigid surfaces read from .STL files via fix\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) . It updates position\nand velocity for the particles in the group each timestep without\nregard to forces on the particles. The rigid surfaces can thus be\nmoved along simple trajectories during the simulation.\n\nThe *\\*LINEAR* style moves particles with the specified constant velocity\nvector V = (Vx,Vy,Vz). This style also sets the velocity of each particle\nto V = (Vx,Vy,Vz).\n\nThe *\\*WIGGLE* style moves particles in an oscillatory fashion.\nParticles are moved along (vx, vy, vz) with constant velocity until a\ndisplacement of max_travel is reached. Then, the velocity vector is\nreversed. This process is repeated.\n\nThe *\\*ROTATE* style rotates particles around a rotation axis R =\n(Rx,Ry,Rz) that goes through a point P = (Px,Py,Pz). The period of the\nrotation is also specified. This style also sets the velocity of each\nparticle to (omega cross Rperp) where omega is its angular velocity\naround the rotation axis and Rperp is a perpendicular vector from the\nrotation axis to the particle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[smd/triangle_mesh_vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html),\n[smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)\n" }, { "command": [ - "compute angle/local" + "fix append/atoms" ], "syntax": [ - "compute ID group-ID angle/local value1 value2 ... keyword args ..." + "fix ID group-ID append/atoms face ... keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -23153,46 +22128,66 @@ export const command_docs = [ "choices": [] }, { - "arg": "angle/local", + "arg": "append/atoms", "type": 1, "choices": [] }, { - "arg": "value1", - "type": 2, - "choices": [] - }, - { - "arg": "value2", + "arg": "face", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "units", + "type": 3, + "choices": [ + "basis", + "size", + "freq", + "temp", + "random", + "units" + ] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angle/local = style name of this compute command\n* one or more values may be appended\n* value = theta or eng or v_name \n *        theta = tabulate angles \n *        eng = tabulate angle energies \n *        v_name = equal-style variable with name (see below) \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *        set args = theta name \n         theta = only currently allowed arg \n         name = name of variable to set with theta \n", - "examples": "\n```lmps\ncompute 1 all angle/local theta\ncompute 1 all angle/local eng theta\ncompute 1 all angle/local theta v_cos set theta t\n```\n", - "html_filename": "compute_angle_local.html", - "short_description": "Define a computation that calculates properties of individual angle\ninteractions", - "description": "Define a computation that calculates properties of individual angle\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of angles in the system, modified by the\ngroup parameter as explained below.\n\nThe value *theta* is the angle for the three atoms in the interaction.\n\nThe value *eng* is the interaction energy for the angle.\n\nThe value *v_name* can be used together with the *set* keyword to\ncompute a user-specified function of the angle theta. The *name*\nspecified for the *v_name* value is the name of an [equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on a\nvariable which will store the angle theta. This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with theta.\n\nNote that the value of theta for each angle which stored in the\ninternal variable is in radians, not degrees.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the cosine and cosine-squared of every angle in the\nsystem and output the statistics in various ways:\n\n```lmps\nvariable t internal 0.0\nvariable cos equal cos(v_t)\nvariable cossq equal cos(v_t)*cos(v_t)\n\ncompute 1 all property/local aatom1 aatom2 aatom3 atype\ncompute 2 all angle/local eng theta v_cos v_cossq set theta t\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the potential energy\n(\\(\\phi\\)), the angle (\\(\\theta\\)), \\(\\cos(\\theta\\)), and\n\\(\\cos^2(\\theta)\\) for every angle \\(\\theta\\) in the system.\nThe [thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the\naverage of those quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\ncommand with thermo output. And the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the \\(\\cos(\\theta)\\) values and write them to a\nfile.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their angles. An angle will only\nbe included if all three atoms in the angle are in the specified compute\ngroup. Any angles that have been broken (see the\n[angle_style ](https://docs.lammps.org/angle_style.html) command) by setting their angle type to\n0 are not included. Angles that have been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by\nsetting their angle type negative are written into the file, but their\nenergy will be 0.0.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, angle output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local atype aatom1 aatom2 aatom3\ncompute 2 all angle/local theta eng\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_2[1] c_2[2]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of angles. If a single value is specified, a\nlocal vector is produced. If two or more values are specified, a\nlocal array is produced where the number of columns = the number of\nvalues. The vector or array can be accessed by any command that uses\nlocal values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *theta* will be in degrees. The output for *eng* will\nbe in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* append/atoms = style name of this fix command\n* face = zhi\n* zero or more keyword/value pairs may be appended\n* keyword = basis or size or freq or temp or random or units \n *        basis values = M itype \n         M = which basis atom \n         itype = atom type (1-N) to assign to this basis atom \n *        size args = Lz \n         Lz = z size of lattice region appended in a single event(distance units) \n *        freq args = freq \n         freq = the number of timesteps between append events \n *        temp args = target damp seed extent \n         target = target temperature for the region between zhi-extent and zhi (temperature units) \n         damp = damping parameter (time units) \n         seed = random number seed for langevin kicks \n         extent = extent of thermostatted region (distance units) \n *        random args = xmax ymax zmax seed \n         *xmax*, *ymax*, zmax = maximum displacement in particular direction (distance units) \n         seed = random number seed for random displacement \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", + "examples": "\n```lmps\nfix 1 all append/atoms zhi size 5.0 freq 295 units lattice\nfix 4 all append/atoms zhi size 15.0 freq 5 units box\nfix A all append/atoms zhi size 1.0 freq 1000 units lattice\n```\n", + "html_filename": "fix_append_atoms.html", + "short_description": "This fix creates atoms on a lattice, appended on the zhi edge of the\nsystem box", + "description": "This fix creates atoms on a lattice, appended on the zhi edge of the\nsystem box. This can be useful when a shock or wave is propagating\nfrom zlo. This allows the system to grow with time to accommodate an\nexpanding wave. A simulation box must already exist, which is\ntypically created via the [create_box ](https://docs.lammps.org/create_box.html) command.\nBefore using this command, a lattice must also be defined using the\n[lattice ](https://docs.lammps.org/lattice.html) command.\n\nThis fix will automatically freeze atoms on the zhi edge of the\nsystem, so that overlaps are avoided when new atoms are appended.\n\nThe *basis* keyword specifies an atom type that will be assigned to\nspecific basis atoms as they are created. See the\n[lattice ](https://docs.lammps.org/lattice.html) command for specifics on how basis atoms are\ndefined for the unit cell of the lattice. By default, all created\natoms are assigned type = 1 unless this keyword specifies differently.\n\nThe *size* keyword defines the size in \\(z\\) of the chunk of material to\nbe added.\n\nThe *random* keyword will give the atoms random displacements around\ntheir lattice points to simulate some initial temperature.\n\nThe *temp* keyword will cause a region to be thermostatted with a\nLangevin thermostat on the zhi boundary. The size of the region is\nmeasured from zhi and is set with the *extent* argument.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\)\nfor units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe boundary on which atoms are added with append/atoms must be\nshrink/minimum. The opposite boundary may be any boundary type other\nthan periodic.\n", + "related": "[fix wall/piston ](https://docs.lammps.org/fix_wall_piston.html) command\n" }, { "command": [ - "pair_style nb3b/harmonic" + "pair_style lj/charmm/coul/charmm", + "pair_style lj/charmm/coul/charmm/gpu", + "pair_style lj/charmm/coul/charmm/intel", + "pair_style lj/charmm/coul/charmm/kk", + "pair_style lj/charmm/coul/charmm/omp", + "pair_style lj/charmm/coul/charmm/implicit", + "pair_style lj/charmm/coul/charmm/implicit/kk", + "pair_style lj/charmm/coul/charmm/implicit/omp", + "pair_style lj/charmm/coul/long", + "pair_style lj/charmm/coul/long/gpu", + "pair_style lj/charmm/coul/long/intel", + "pair_style lj/charmm/coul/long/kk", + "pair_style lj/charmm/coul/long/opt", + "pair_style lj/charmm/coul/long/omp", + "pair_style lj/charmm/coul/msm", + "pair_style lj/charmm/coul/msm/omp", + "pair_style lj/charmmfsw/coul/charmmfsh", + "pair_style lj/charmmfsw/coul/long", + "pair_style lj/charmmfsw/coul/long/kk" ], "syntax": [ - "pair_style style" + "pair_style style args" ], "args": [ [ @@ -23202,341 +22197,385 @@ export const command_docs = [ "choices": [] }, { - "arg": "nb3b/screened", + "arg": "lj/charmmfsw/coul/long/kk", "type": 3, "choices": [ - "nb3b/harmonic", - "nb3b/screened" + "lj/charmm/coul/charmm", + "lj/charmm/coul/charmm/implicit", + "lj/charmm/coul/long", + "lj/charmm/coul/msm", + "lj/charmmfsw/coul/charmmfsh", + "lj/charmmfsw/coul/long", + "lj/charmm/coul/charmm/gpu", + "lj/charmm/coul/charmm/intel", + "lj/charmm/coul/charmm/kk", + "lj/charmm/coul/charmm/omp", + "lj/charmm/coul/charmm/implicit/kk", + "lj/charmm/coul/charmm/implicit/omp", + "lj/charmm/coul/long/gpu", + "lj/charmm/coul/long/intel", + "lj/charmm/coul/long/kk", + "lj/charmm/coul/long/opt", + "lj/charmm/coul/long/omp", + "lj/charmm/coul/msm/omp", + "lj/charmmfsw/coul/long/kk" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = nb3b/harmonic or nb3b/screened \n", - "examples": "\n```lmps\npair_style nb3b/harmonic\npair_coeff * * MgOH.nb3bharmonic Mg O H\n\npair_style nb3b/screened\npair_coeff * * PO.nb3b.screened P NULL O\npair_coeff * * SiOH.nb3b.screened Si O H\n```\n", - "html_filename": "pair_nb3b.html", - "short_description": "The pair style *nb3b/harmonic* computes a non-bonded 3-body harmonic potential for the\nenergy E of a system of atoms as\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and *K* is a\nprefactor", - "description": "The pair style *nb3b/harmonic* computes a non-bonded 3-body harmonic potential for the\nenergy E of a system of atoms as\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle and *K* is a\nprefactor. Note that the usual 1/2 factor is included in *K* . The form\nof the potential is identical to that used in angle_style *harmonic*,\nbut in this case, the atoms do not need to be explicitly bonded.\n\nStyle *nb3b/screened* adds an additional exponentially decaying factor to\nthe harmonic term, given by\n\\[\n E = K (\\theta - \\theta_0)^2 \\exp \\left(- \\frac{r_{ij}}{\\rho_{ij}} - \\frac{r_{ik}}{\\rho_{ik}} \\right)\\]\nwhere \\(\\rho_ij\\) and \\(\\rho_ik\\) are the screening factors along\nthe two bonds. Note that the usual 1/2 factor is included in *K*.\n\nOnly a single pair_coeff command is used with these styles which\nspecifies a potential file with parameters for specified elements.\nThese are mapped to LAMMPS atom types by specifying N additional\narguments after the filename in the pair_coeff command, where N is the\nnumber of LAMMPS atom types:\n\n* filename\n* N element names = mapping of elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.nb3b.harmonic has potential values\nfor Si and C. If your LAMMPS simulation has 4 atoms types and you\nwant the first 3 to be Si, and the fourth to be C, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * SiC.nb3b.harmonic Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the potential file. The final C argument maps LAMMPS atom\ntype 4 to the C element in the potential file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen the potential is used as part of the *hybrid* pair style. The\nNULL values are placeholders for atom types that will be used with\nother potentials. Two examples of pair_coeff command for use with the\n*hybrid* pair style are:\n\n```lmps\npair_coeff * * nb3b/harmonic MgOH.nb3b.harmonic Mg O H\n```\nThree-body non-bonded harmonic files in the *potentials* directory of\nthe LAMMPS distribution have a \".nb3b.harmonic\" suffix. Lines that\nare not blank or comments (starting with #) define parameters for a\ntriplet of elements.\n\nEach entry has six arguments. The first three are atom types as\nreferenced in the LAMMPS input file. The first argument specifies the\ncentral atom. The fourth argument indicates the *K* parameter. The\nfifth argument indicates \\(\\theta_0\\). The sixth argument indicates a\nseparation cutoff in Angstroms.\n\nFor a given entry, if the second and third arguments are identical,\nthen the entry is for a cutoff for the distance between types 1 and 2\n(values for *K* and \\(\\theta_0\\) are irrelevant in this case).\n\nFor a given entry, if the first three arguments are all different, then\nthe entry is for the *K* and \\(\\theta_0\\) parameters (the cutoff in\nthis case is irrelevant).\n\nIt is required that the potential file contains entries for *all*\npermutations of the elements listed in the pair_coeff command.\nIf certain combinations are not parameterized the corresponding\nparameters should be set to zero. The potential file can also\ncontain entries for additional elements which are not used in\na particular simulation; LAMMPS ignores those entries.\n\n----------\n", - "restrictions": "This pair style can only be used if LAMMPS was built with the MANYBODY\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = lj/charmm/coul/charmm or lj/charmm/coul/charmm/implicit or lj/charmm/coul/long or lj/charmm/coul/msm or lj/charmmfsw/coul/charmmfsh or lj/charmmfsw/coul/long\n* args = list of arguments for a particular style \n *      lj/charmm/coul/charmm args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n *      lj/charmm/coul/charmm/implicit args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n *      lj/charmm/coul/long args = inner outer (cutoff) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmm/coul/msm args = inner outer (cutoff) \n       inner, outer = global switching cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmmfsw/coul/charmmfsh args = inner outer (cutoff) \n       inner, outer = global cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n *      lj/charmmfsw/coul/long args = inner outer (cutoff) \n       inner, outer = global cutoffs for LJ (and Coulombic if only 2 args) \n       cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 2 args) \n", + "examples": "\n```lmps\npair_style lj/charmm/coul/charmm 8.0 10.0\npair_style lj/charmm/coul/charmm 8.0 10.0 7.0 9.0\npair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0\npair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/charmm/implicit 8.0 10.0\npair_style lj/charmm/coul/charmm/implicit 8.0 10.0 7.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/long 8.0 10.0\npair_style lj/charmm/coul/long 8.0 10.0 9.0\npair_style lj/charmmfsw/coul/long 8.0 10.0\npair_style lj/charmmfsw/coul/long 8.0 10.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n\npair_style lj/charmm/coul/msm 8.0 10.0\npair_style lj/charmm/coul/msm 8.0 10.0 9.0\npair_coeff * * 100.0 2.0\npair_coeff 1 1 100.0 2.0 150.0 3.5\n```\n", + "html_filename": "pair_charmm.html", + "short_description": "These pair styles compute Lennard Jones (LJ) and Coulombic\ninteractions with additional switching or shifting functions that ramp\nthe energy and/or force smoothly to zero between an inner and outer\ncutoff", + "description": "These pair styles compute Lennard Jones (LJ) and Coulombic\ninteractions with additional switching or shifting functions that ramp\nthe energy and/or force smoothly to zero between an inner and outer\ncutoff. They implement the widely used CHARMM force field, see\n[Howto discussion on biomolecular force fields ](https://docs.lammps.org/Howto_bioFF.html) for\ndetails.\n\nThe styles with *charmm* (not *charmmfsw* or *charmmfsh* ) in their\nname are the older, original LAMMPS implementations. They compute the\nLJ and Coulombic interactions with an energy switching function which\nramps the energy smoothly to zero between the inner and outer cutoff.\nThis can cause irregularities in pairwise forces (due to the discontinuous\nsecond derivative of energy at the boundaries of the switching region),\nwhich in some cases can result in detectable artifacts in an MD simulation.\n\nThe newer styles with *charmmfsw* or *charmmfsh* in their name replace\nthe energy switching with force switching (fsw) and force shifting\n(fsh) functions, for LJ and Coulombic interactions respectively.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newer *charmmfsw* or *charmmfsh* styles were released in\n > March 2017. We recommend they be used instead of the older *charmm*\n > styles. This includes the newer [dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html) command. Eventually code from the new\n > styles will propagate into the related pair styles (e.g. implicit,\n > accelerator, free energy variants). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newest CHARMM pair styles reset the Coulombic energy\n > conversion factor used internally in the code, from the LAMMPS value\n > to the CHARMM value, as if it were effectively a parameter of the\n > force field. This is because the CHARMM code uses a slightly\n > different value for the this conversion factor in [real units ](https://docs.lammps.org/units.html) (kcal/mol), namely CHARMM = 332.0716, LAMMPS =\n > 332.06371. This is to enable more precise agreement by LAMMPS with\n > the CHARMM force field energies and forces, when using one of these\n > two CHARMM pair styles. \n > \n\nWhen using the *lj/charmm/coul/charmm styles*, both the LJ and\nCoulombic terms require an inner and outer cutoff. They can be the\nsame for both formulas or different depending on whether 2 or 4\narguments are used in the pair_style command. For the\n*lj/charmmfsw/coul/charmmfsh* style, the LJ term requires both an\ninner and outer cutoff, while the Coulombic term requires only one\ncutoff. If the Coulombic cutoff is not specified (2 instead of 3\narguments), the LJ outer cutoff is used for the Coulombic cutoff. In\nall cases where an inner and outer cutoff are specified, the inner\ncutoff distance must be less than the outer cutoff. It is typical to\nmake the difference between the inner and outer cutoffs about 2.0\nAngstroms.\n\nStyle *lj/charmm/coul/charmm/implicit* computes the same formulas as\nstyle *lj/charmm/coul/charmm* except that an additional 1/r term is\nincluded in the Coulombic formula. The Coulombic energy thus varies\nas 1/r\\^2. This is effectively a distance-dependent dielectric term\nwhich is a simple model for an implicit solvent with additional\nscreening. It is designed for use in a simulation of an unsolvated\nbiomolecule (no explicit water molecules).\n\nStyles *lj/charmm/coul/long* and *lj/charmm/coul/msm* compute the same\nformulas as style *lj/charmm/coul/charmm* and style\n*lj/charmmfsw/coul/long* computes the same formulas as style\n*lj/charmmfsw/coul/charmmfsh*, except that an additional damping\nfactor is applied to the Coulombic term, so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its\n*ewald* or *pppm* or *msm* option. Only one Coulombic cutoff is\nspecified for these styles; if only 2 arguments are used in the\npair_style command, then the outer LJ cutoff is used as the single\nCoulombic cutoff. The Coulombic cutoff specified for these styles\nmeans that pairwise interactions within this distance are computed\ndirectly; interactions outside that distance are computed in\nreciprocal space.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(\\epsilon_{14}\\) (energy units)\n* \\(\\sigma_{14}\\) (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{1/6} \\sigma\\).\n\nThe latter 2 coefficients are optional. If they are specified, they\nare used in the LJ formula between 2 atoms of these types which are\nalso first and fourth atoms in any dihedral. No cutoffs are specified\nbecause the CHARMM force field does not allow varying cutoffs for\nindividual atom pairs; all pairs use the global cutoff(s) specified in\nthe pair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, epsilon_14,\nand sigma_14 coefficients for all of the lj/charmm pair styles can be\nmixed. The default mix value is *arithmetic* to coincide with the\nusual settings for the CHARMM force field. See the \"pair_modify\"\ncommand for details.\n\nNone of the *lj/charmm* or *lj/charmmfsw* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option, since the Lennard-Jones\nportion of the pair interaction is smoothed to 0.0 at the cutoff.\n\nThe *lj/charmm/coul/long* and *lj/charmmfsw/coul/long* styles support\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can\ntabulate the short-range portion of the long-range Coulombic\ninteraction.\n\nNone of the *lj/charmm* or *lj/charmmfsw* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since the Lennard-Jones portion of\nthe pair interaction is smoothed to 0.0 at the cutoff.\n\nAll of the *lj/charmm* and *lj/charmmfsw* pair styles write their\ninformation to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and\npair_coeff commands do not need to be specified in an input script\nthat reads a restart file.\n\nThe *lj/charmm/coul/long* and *lj/charmmfsw/coul/long* pair styles\nsupport the use of the *inner*, *middle*, and *outer* keywords of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces\ncan be partitioned by distance at different levels of the rRESPA\nhierarchy. The other styles only support the *pair* keyword of\nrun_style respa. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", + "restrictions": "All the styles with *coul/charmm* or *coul/charmmfsh* styles are part\nof the MOLECULE package. All the styles with *coul/long* style are\npart of the KSPACE package. They are only enabled if LAMMPS was built\nwith those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [angle_style charmm ](https://docs.lammps.org/angle_charmm.html),\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html),\n[dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" }, { "command": [ - "pair_style multi/lucy" + "fix smd" ], "syntax": [ - "pair_style multi/lucy style N keyword ..." + "fix ID group-ID smd type values keyword values" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "multi/lucy", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "smd", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "type", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "values", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "couple", + "type": 3, + "choices": [ + "tether", + "couple" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* style = lookup or linear = method of interpolation\n* N = use N values in lookup, linear tables \n", - "examples": "\n```lmps\npair_style multi/lucy linear 1000\npair_coeff * * multibody.table ENTRY1 7.0\n```\n", - "html_filename": "pair_multi_lucy.html", - "short_description": "Style *multi/lucy* computes a density-dependent force following from\nthe many-body form described in **Moore1** and\n**Warren1** as\n\\[\n F_{i}^{DD}(\\rho_i,\\rho_j,r_{ij}) = \\frac{1}{2} \\omega_{DD}\\left(r_{ij}\\right)\n \\left[A\\left(\\rho_i\\right) + A\\left(\\rho_j\\right)\\right]e_{ij}\\]\nwhich consists of a density-dependent function, \\(A(\\rho)\\), and a\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\)", - "description": "Style *multi/lucy* computes a density-dependent force following from\nthe many-body form described in **Moore1** and\n**Warren1** as\n\\[\n F_{i}^{DD}(\\rho_i,\\rho_j,r_{ij}) = \\frac{1}{2} \\omega_{DD}\\left(r_{ij}\\right)\n \\left[A\\left(\\rho_i\\right) + A\\left(\\rho_j\\right)\\right]e_{ij}\\]\nwhich consists of a density-dependent function, \\(A(\\rho)\\), and a\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\). The\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\), is taken\nas the Lucy function:\n\\[\n \\omega_{DD}\\left(r_{ij}\\right) = \\left(1+\\frac{3r_{ij}}{r_{cut}}\\right)\\left(1+\\frac{r_{ij}}{r_{cut}}\\right)^3\\]\nThe density-dependent energy for a given particle is given by:\n\\[\n u_{i}^{DD}\\left(\\rho_{i}\\right) = \\frac{\\pi r_{cut}^4}{84} \\int_{\\rho_0}^{\\rho_i} A\\left(\\rho'\\right) d\\rho'\\]\nSee the supporting information of **Brennan1** or the\npublication by **Moore1** for more details on the functional\nform.\n\nAn interpolation table is used to evaluate the density-dependent energy\n(\\(\\int A(\\rho') d\\rho'\\)) and force (\\(A(\\rho')\\)). Note that\nthe prefactor to the energy is computed after the interpolation, thus\nthe \\(\\int A(\\rho') d \\rho'\\) will have units of energy / length\\^4.\n\nThe interpolation table is created as a pre-computation by fitting\ncubic splines to the file values and interpolating the\ndensity-dependent energy and force at each of *N* densities. During a\nsimulation, the tables are used to interpolate the density-dependent\nenergy and force as needed for each pair of particles separated by a\ndistance *R* . The interpolation is done in one of 2 styles: *lookup*\nand *linear* .\n\nFor the *lookup* style, the density is used to find the nearest table\nentry, which is the density-dependent energy and force.\n\nFor the *linear* style, the density is used to find the 2 surrounding\ntable values from which the density-dependent energy and force are\ncomputed by linear interpolation.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* cutoff (distance units)\n\nThe filename specifies a file containing the tabulated\ndensity-dependent energy and force. The keyword specifies a section\nof the file. The cutoff is an optional coefficient. If not\nspecified, the outer cutoff in the table itself (see below) will be\nused to build an interpolation table that extend to the largest\ntabulated distance. If specified, only file values up to the cutoff\nare used to create the interpolation table. The format of this file\nis described below.\n\n----------\n\nThe format of a tabulated file is a series of one or more sections,\ndefined as follows (without the parenthesized comments):\n\n```\n# Density-dependent function (one or more comment or blank lines)\n\nDD-FUNCTION (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ parameters)\n(blank)\n1 1.0 25.5 102.34 (index, density, energy/r\\^4, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style multi/lucy ](https://docs.lammps.org/pair_multi_lucy.html) command.\nLet Ntable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate the density-dependent energy and force at\nNtable different points. The resulting tables of length Ntable are\nthen used as described above, when computing the density-dependent\nenergy and force. This means that if you want the interpolation\ntables of length Ntable to match exactly what is in the tabulated file\n(with effectively no preliminary interpolation), you should set Ntable\n= Nfile, and use the \"RSQ\" parameter. This is because the internal\ntable abscissa is always RSQ (separation distance squared), for\nefficient lookup.\n\nAll other parameters are optional. If \"R\" or \"RSQ\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *density* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo* and\n*rhi* . If specified, the density associated with each\ndensity-dependent energy and force value is computed from these 2 values\n(at high accuracy), rather than using the (low-accuracy) value listed in\neach line of the table. The density values in the table file are\nignored in this case. For \"R\", distances uniformly spaced between *rlo*\nand *rhi* are computed; for \"RSQ\", squared distances uniformly spaced\nbetween *rlo\\*rlo* and *rhi\\*rhi* are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the file\n > are effectively ignored, and replaced by new values as described in\n > the previous paragraph. If the density value in the table is not\n > very close to the new value (i.e. round-off difference), then you\n > will be assigning density-dependent energy and force values to a\n > different density, which is probably not what you want. LAMMPS will\n > warn if this is occurring. \n > \n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in density units), the third value is the density-dependent function value\n(in energy units / length\\^4), and the fourth is the force (in force units). The\ndensity values must increase from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style multi/lucy\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Moore1)** Moore, J Chem Phys, 144, 104501 (2016). \n \n**(Warren1)** Warren, Phys Rev E, 68, 066702 (2003). \n \n**(Brennan1)** Brennan, J Chem Phys Lett, 5, 2144-2149 (2014). \n ", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd = style name of this fix command\n* mode = cvel or cfor to select constant velocity or constant force SMD \n *        cvel values = K vel \n         K = spring constant (force/distance units) \n         vel = velocity of pulling (distance/time units) \n *        cfor values = force \n         force = pulling force (force units) \n* keyword = tether or couple \n *        tether values = x y z R0 \n         x,y,z = point to which spring is tethered \n         R0 = distance of end of spring from tether point (distance units) \n *        couple values = group-ID2 x y z R0 \n         group-ID2 = 2nd group to couple to fix group with a spring \n         x,y,z = direction of spring, automatically computed with 'auto' \n         R0 = distance of end of spring (distance units) \n", + "examples": "\n```lmps\nfix pull cterm smd cvel 20.0 -0.00005 tether NULL NULL 100.0 0.0\nfix pull cterm smd cvel 20.0 -0.0001 tether 25.0 25 25.0 0.0\nfix stretch cterm smd cvel 20.0 0.0001 couple nterm auto auto auto 0.0\nfix pull cterm smd cfor 5.0 tether 25.0 25.0 25.0 0.0\n```\n", + "html_filename": "fix_smd.html", + "short_description": "This fix implements several options of steered MD (SMD) as reviewed in\n**Izrailev**, which allows to induce conformational\nchanges in systems and to compute the potential of mean force (PMF)\nalong the assumed reaction coordinate **Park** based on\nJarzynski's equality **Jarzynski**", + "description": "This fix implements several options of steered MD (SMD) as reviewed in\n**Izrailev**, which allows to induce conformational\nchanges in systems and to compute the potential of mean force (PMF)\nalong the assumed reaction coordinate **Park** based on\nJarzynski's equality **Jarzynski**. This fix borrows\na lot from [fix spring ](https://docs.lammps.org/fix_spring.html) and [fix setforce](https://docs.lammps.org/fix_setforce.html).\n\nYou can apply a moving spring force to a group of atoms (\\ *tether*\nstyle) or between two groups of atoms (\\ *couple* style). The spring\ncan then be used in either constant velocity (\\ *cvel* ) mode or in\nconstant force (\\ *cfor* ) mode to induce transitions in your systems.\nWhen running in *tether* style, you may need some way to fix some\nother part of the system (e.g. via [fix spring/self ](https://docs.lammps.org/fix_spring_self.html))\n\nThe *tether* style attaches a spring between a point at a distance of\nR0 away from a fixed point *x,y,z* and the center of mass of the fix\ngroup of atoms. A restoring force of magnitude K (R - R0) Mi / M is\napplied to each atom in the group where *K* is the spring constant, Mi\nis the mass of the atom, and M is the total mass of all atoms in the\ngroup. Note that *K* thus represents the total force on the group of\natoms, not a per-atom force.\n\nIn *cvel* mode the distance R is incremented or decremented\nmonotonously according to the pulling (or pushing) velocity.\nIn *cfor* mode a constant force is added and the actual distance\nin direction of the spring is recorded.\n\nThe *couple* style links two groups of atoms together. The first\ngroup is the fix group; the second is specified by group-ID2. The\ngroups are coupled together by a spring that is at equilibrium when\nthe two groups are displaced by a vector in direction *x,y,z* with\nrespect to each other and at a distance R0 from that displacement.\nNote that *x,y,z* only provides a direction and will be internally\nnormalized. But since it represents the *absolute* displacement of\ngroup-ID2 relative to the fix group, (1,1,0) is a different spring\nthan (-1,-1,0). For each vector component, the displacement can be\ndescribed with the *auto* parameter. In this case the direction is\nre-computed in every step, which can be useful for steering a local\nprocess where the whole object undergoes some other change. When the\nrelative positions and distance between the two groups are not in\nequilibrium, the same spring force described above is applied to atoms\nin each of the two groups.\n\nFor both the *tether* and *couple* styles, any of the x,y,z values can\nbe specified as NULL which means do not include that dimension in the\ndistance calculation or force application.\n\nFor constant velocity pulling (\\ *cvel* mode), the running integral\nover the pulling force in direction of the spring is recorded and\ncan then later be used to compute the potential of mean force (PMF)\nby averaging over multiple independent trajectories along the same\npulling path.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix stores the direction of the spring, current pulling target\ndistance and the running PMF to [binary restart files ](https://docs.lammps.org/restart.html).\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces on atoms to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a vector list of 7 quantities, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The quantities in\nthe vector are in this order: the x-, y-, and z-component of the\npulling force, the total force in direction of the pull, the\nequilibrium distance of the spring, the distance between the two\nreference points, and finally the accumulated PMF (the sum of pulling\nforces times displacement).\n\nThe force is the total force on the group of atoms by the spring. In\nthe case of the *couple* style, it is the force on the fix group\n(group-ID) or the negative of the force on the second group\n(group-ID2). The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Izrailev)** Izrailev, Stepaniants, Isralewitz, Kosztin, Lu, Molnar,\nWriggers, Schulten. Computational Molecular Dynamics: Challenges,\nMethods, Ideas, volume 4 of Lecture Notes in Computational Science and\nEngineering, pp. 39-65. Springer-Verlag, Berlin, 1998. \n \n**(Park)** Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004) \n \n**(Jarzynski)** Jarzynski, Phys. Rev. Lett. 78, 2690 (1997) \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html),\n[fix colvars ](https://docs.lammps.org/fix_colvars.html), [fix plumed ](https://docs.lammps.org/fix_plumed.html)\n" }, { "command": [ - "fix_modify AtC mesh create_faceset box" + "compute msd/nongauss" ], "syntax": [ - "fix_modify mesh create_faceset box [units]" + "compute ID group-ID msd/nongauss keyword values ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "create_faceset", + "arg": "msd/nongauss", "type": 1, "choices": [] }, { - "arg": "", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "box", + "arg": "values", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd/nongauss = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = com \n *        com value = yes or no \n", + "examples": "\n```lmps\ncompute 1 all msd/nongauss\ncompute 1 upper msd/nongauss com yes\n```\n", + "html_filename": "compute_msd_nongauss.html", + "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) and non-Gaussian parameter (NGP) of the group of atoms,\nincluding all effects due to atoms passing through periodic boundaries", + "description": "Define a computation that calculates the mean-squared displacement\n(MSD) and non-Gaussian parameter (NGP) of the group of atoms,\nincluding all effects due to atoms passing through periodic boundaries.\n\nA vector of three quantities is calculated by this compute. The first\nelement of the vector is the total squared displacement,\n\\(dr^2 = dx^2 + dy^2 + dz^2\\), of the atoms, and the second is the\nfourth power of these displacements, \\(dr^4 = (dx^2 + dy^2 + dz^2)^2\\),\nsummed and averaged over atoms in the group. The third component is the\nnon-Gaussian diffusion parameter NGP,\n\\[\n \\text{NGP}(t) = \\frac{3\\left\\langle(r(t)-r(0))^4\\right\\rangle}\n {5\\left\\langle(r(t)-r(0))^2\\right\\rangle^2} - 1.\\]\nThe NGP is a commonly used quantity in studies of dynamical\nheterogeneity. Its minimum theoretical value \\((-0.4)\\) occurs when all\natoms have the same displacement magnitude. \\(\\text{NGP}=0\\) for Brownian\ndiffusion, while \\(\\text{NGP} > 0\\) when some mobile atoms move faster than\nothers.\n\nIf the *com* option is set to *yes* then the effect of any drift in\nthe center-of-mass of the group of atoms is subtracted out before the\ndisplacement of each atom is calculated.\n\nSee the [compute msd ](https://docs.lammps.org/compute_msd.html) page for further important\nNOTEs, which also apply to this compute.\n\n #### Output info\n\nThis compute calculates a global vector of length 3, which can be\naccessed by indices 1--3 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The first vector value will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html), the second is in\ndistance\\ \\(^4\\) units, and the third is dimensionless.\n", + "restrictions": "Compute *msd/nongauss* cannot be used with a dynamic group.\n\nThis compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" +}, +{ + "command": [ + "group" + ], + "syntax": [ + "group ID style args" + ], + "args": [ + [ + { + "arg": "group", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] + "arg": "static", + "type": 3, + "choices": [ + "delete", + "clear", + "empty", + "region", + "type", + "id", + "molecule", + "variable", + "include", + "subtract", + "union", + "intersect", + "dynamic", + "static" + ] }, { - "arg": "", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID = user-defined name of the group\n* style = delete or clear or empty or region or type or id or molecule or variable or include or subtract or union or intersect or dynamic or static \n *        delete = no args \n *        clear = no args \n *        empty = no args \n *        region args = region-ID \n *        type or id or molecule \n         args = list of one or more atom types (1-Ntypes or type label), atom IDs, or molecule IDs \n         any numeric entry in list can be a sequence formatted as A:B or A:B:C where \n         A = starting index, B = ending index, \n         C = increment between indices, 1 if not specified \n         args = logical value \n         logical = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" \n         value = an atom type (1-Ntypes or type label) or atom ID or molecule ID (depending on *style* ) \n         args = logical value1 value2 \n         logical = \"<>\" \n         value1,value2 = atom types or atom IDs or molecule IDs (depending on *style* ) \n *        variable args = variable-name \n *        include args = molecule \n         molecule = add atoms to group with same molecule ID as atoms already in group \n *        subtract args = two or more group IDs \n *        union args = one or more group IDs \n *        intersect args = two or more group IDs \n *        dynamic args = parent-ID keyword value ... \n         one or more keyword/value pairs may be appended \n         keyword = region or var or property or every \n         region value = region-ID \n         var value = name of variable \n         property value = name of custom integer or floating point vector \n         every value = N = update group every this many timesteps \n *        static = no args \n", + "examples": "\n```lmps\ngroup edge region regstrip\ngroup water type 3 4\ngroup water type OW HT\ngroup sub id 10 25 50\ngroup sub id 10 25 50 500:1000\ngroup sub id 100:10000:10\ngroup sub id <= 150\ngroup polyA molecule <> 50 250\ngroup hienergy variable eng\ngroup hienergy include molecule\ngroup boundary subtract all a2 a3\ngroup boundary union lower upper\ngroup boundary intersect upper flow\ngroup boundary delete\ngroup mine dynamic all region myRegion every 100\n```\n", + "html_filename": "group.html", + "short_description": "Identify a collection of atoms as belonging to a group", + "description": "Identify a collection of atoms as belonging to a group. The group ID\ncan then be used in other commands such as [fix ](https://docs.lammps.org/fix.html),\n[compute ](https://docs.lammps.org/compute.html), [dump ](https://docs.lammps.org/dump.html), or [velocity ](https://docs.lammps.org/velocity.html)\nto act on those atoms together.\n\nIf the group ID already exists, the group command adds the specified\natoms to the group.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >By default groups are static, meaning the atoms are permanently\n > assigned to the group. For example, if the *region* style is used to\n > assign atoms to a group, the atoms will remain in the group even if\n > they later move out of the region. As explained below, the *dynamic*\n > style can be used to make a group dynamic so that a periodic\n > determination is made as to which atoms are in the group. Since many\n > LAMMPS commands operate on groups of atoms, you should think carefully\n > about whether making a group dynamic makes sense for your model. \n > \n\nA group with the ID *all* is predefined. All atoms belong to this group.\nThis group cannot be deleted, or made dynamic.\n\nThe *delete* style removes the named group and un-assigns all atoms\nthat were assigned to that group. Since there is a restriction (see\nbelow) that no more than 32 groups can be defined at any time, the\n*delete* style allows you to remove groups that are no longer needed,\nso that more can be specified. You cannot delete a group if it has\nbeen used to define a current [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html)\nor [dump ](https://docs.lammps.org/dump.html).\n\nThe *clear* style un-assigns all atoms that were assigned to that\ngroup. This may be dangerous to do during a simulation run\n(e.g., using the [run every ](https://docs.lammps.org/run.html) command if a fix or compute or\nother operation expects the atoms in the group to remain constant), but\nLAMMPS does not check for this.\n\nThe *empty* style creates an empty group, which is useful for commands\nlike [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) or with complex scripts that add atoms\nto a group.\n\nThe *region* style puts all atoms in the region volume into the group.\nNote that this is a static one-time assignment. The atoms remain\nassigned (or not assigned) to the group even in they later move out of\nthe region volume.\n\nThe *type*, *id*, and *molecule* styles put all atoms with the\nspecified atom types, atom IDs, or molecule IDs into the group. These\nthree styles can use arguments specified in one of two formats.\n\nThe first format is a list of values (types or IDs). For example, the\nsecond command in the examples above puts all atoms of type 3 or 4 into\nthe group named *water* . Each numeric entry in the list can be a\ncolon-separated sequence ``A:B`` or ``A:B:C``, as in two of the examples\nabove. A \"sequence\" generates a sequence of values (types or IDs),\nwith an optional increment. The first example with ``500:1000`` has the\ndefault increment of 1 and would add all atom IDs from 500 to 1000\n(inclusive) to the group sub, along with 10, 25, and 50 since they also\nappear in the list of values. The second example with ``100:10000:10``\nuses an increment of 10 and would thus would add atoms IDs\n\\(100, 110, 120, \\dots, 9990, 10000\\) to the group sub.\n\nThe second format is a *logical* followed by one or two values (type\nor ID). The 7 valid logicals are listed above. All the logicals\nexcept ``<>`` take a single argument. The third example above adds all\natoms with IDs from 1 to 150 to the group named *sub* . The logical ``<>``\nmeans \"between\" and takes 2 arguments. The fourth example above adds all\natoms belonging to molecules with IDs from 50 to 250 (inclusive) to\nthe group named polyA. For the *type* style, type labels are converted into\nnumeric types before being evaluated.\n\nThe *variable* style evaluates a variable to determine which atoms to\nadd to the group. It must be an [atom-style variable ](https://docs.lammps.org/variable.html)\npreviously defined in the input script. If the variable evaluates\nto a non-zero value for a particular atom, then that atom is added\nto the specified group.\n\nAtom-style variables can specify formulas that include thermodynamic\nquantities, per-atom values such as atom coordinates, or per-atom\nquantities calculated by computes, fixes, or other variables. They\ncan also include Boolean logic where two numeric values are compared to\nyield a 1 or 0 (effectively a true or false). Thus, using the\n*variable* style is a general way to flag specific atoms to include\nor exclude from a group.\n\nFor example, these lines define a variable \"eatom\" that calculates the\npotential energy of each atom and includes it in the group if its\npotential energy is above the threshold value \\(-3.0\\).\n\n```lmps\ncompute 1 all pe/atom\ncompute 2 all reduce sum c_1\nthermo_style custom step temp pe c_2\nrun 0\n\nvariable eatom atom \"c_1 > -3.0\"\ngroup hienergy variable eatom\n```\nNote that these lines\n\n```lmps\ncompute 2 all reduce sum c_1\nthermo_style custom step temp pe c_2\nrun 0\n```\nare necessary to ensure that the \"eatom\" variable is current when the\ngroup command invokes it. Because the eatom variable computes the\nper-atom energy via the pe/atom compute, it will only be current if a\nrun has been performed which evaluated pairwise energies, and the\npe/atom compute was actually invoked during the run. Printing the\nthermodynamic info for compute 2 ensures that this is the case, since\nit sums the pe/atom compute values (in the reduce compute) to output\nthem to the screen. See the \"Variable Accuracy\" section of the\n[variable ](https://docs.lammps.org/variable.html) page for more details on ensuring that\nvariables are current when they are evaluated between runs.\n\nThe *include* style with its arg *molecule* adds atoms to a group that\nhave the same molecule ID as atoms already in the group. The molecule\nID = 0 is ignored in this operation, since it is assumed to flag\nisolated atoms that are not part of molecules. An example of where\nthis operation is useful is if the *region* style has been used\npreviously to add atoms to a group that are within a geometric region.\nIf molecules straddle the region boundary, then atoms outside the\nregion that are part of molecules with atoms inside the region will\nnot be in the group. Using the group command a second time with *include\nmolecule* will add those atoms that are outside the region to the\ngroup.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *include molecule* operation is relatively expensive in a\n > parallel sense. This is because it requires communication of relevant\n > molecule IDs between all the processors and each processor to loop\n > over its atoms once per processor, to compare its atoms to the list of\n > molecule IDs from every other processor. Hence it scales as N, rather\n > than N/P as most of the group operations do, where N is the number of\n > atoms, and P is the number of processors. \n > \n\nThe *subtract* style takes a list of two or more existing group names\nas arguments. All atoms that belong to the first group, but not to any\nof the other groups are added to the specified group.\n\nThe *union* style takes a list of one or more existing group names as\narguments. All atoms that belong to any of the listed groups are\nadded to the specified group.\n\nThe *intersect* style takes a list of two or more existing group names\nas arguments. Atoms that belong to every one of the listed groups are\nadded to the specified group.\n\n----------\n\nThe *dynamic* style flags an existing or new group as dynamic. This\nmeans atoms will be (re)assigned to the group periodically as a\nsimulation runs. This is in contrast to static groups where atoms are\npermanently assigned to the group. The way the assignment occurs is\nas follows. Only atoms in the group specified as the parent group via\nthe parent-ID are assigned to the dynamic group before the following\nconditions are applied.\n\nIf the *region* keyword is used, atoms not in the specified region are\nremoved from the dynamic group.\n\nIf the *var* keyword is used, the variable name must be an atom-style\nor atomfile-style variable. The variable is evaluated and atoms whose\nper-atom values are 0.0, are removed from the dynamic group.\n\nIf the *property* keyword is used, the name refers to a custom integer\nor floating point per-atom vector defined via the [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html) command. This means the values in\nthe vector can be read as part of a data file with the [read_data](https://docs.lammps.org/read_data.html) command or specified with the [set ](https://docs.lammps.org/set.html) command.\nOr accessed and changed via the [library interface to LAMMPS](https://docs.lammps.org/Howto_library.html), or by styles you add to LAMMPS (pair, fix, compute,\netc) which access the custom vector and modify its values. Which\nmeans the values can be modified between or during simulations. Atoms\nwhose values in the custom vector are zero are removed from the\ndynamic group. Note that the name of the custom per-atom vector is\nspecified just as *name*, not as *i_name* or *d_name* as it is for\nother commands that use different kinds of custom atom vectors or\narrays as arguments.\n\nThe assignment of atoms to a dynamic group is done at the beginning of\neach run and on every timestep that is a multiple of *N* , which is\nthe argument for the *every* keyword (\\(N = 1\\) is the default). For an\nenergy minimization, via the [minimize ](https://docs.lammps.org/minimize.html) command, an\nassignment is made at the beginning of the minimization, but not\nduring the iterations of the minimizer.\n\nThe point in the timestep at which atoms are assigned to a dynamic\ngroup is after interatomic forces have been computed, but before any\nfixes which alter forces or otherwise update the system have been\ninvoked. This means that atom positions have been updated, neighbor\nlists and ghost atoms are current, and both intermolecular and\nintramolecular forces have been calculated based on the new\ncoordinates. Thus the region criterion, if applied, should be\naccurate. Also, any computes invoked by an atom-style variable should\nuse updated information for that timestep (e.g., potential energy/atom\nor coordination number/atom). Similarly, fixes or computes which are\ninvoked after that point in the timestep, should operate on the new\ngroup of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the *region* keyword is used to determine what atoms are in\n > the dynamic group, atoms can move outside of the simulation box\n > between reneighboring events. Thus if you want to include all atoms\n > on the left side of the simulation box, you probably want to set the\n > left boundary of the region to be outside the simulation box by some\n > reasonable amount (e.g., up to the cutoff of the potential), else they\n > may be excluded from the dynamic region. \n > \n\nHere is an example of using a dynamic group to shrink the set of atoms\nbeing integrated by using a spherical region with a variable radius\n(shrinking from 18 to 5 over the course of the run). This could be\nused to model a quench of the system, freezing atoms outside the\nshrinking sphere, then converting the remaining atoms to a static\ngroup and running further.\n\n```lmps\nvariable nsteps equal 5000\nvariable rad equal 18-(step/v_nsteps)*(18-5)\nregion ss sphere 20 20 0 v_rad\ngroup mobile dynamic all region ss\nfix 1 mobile nve\nrun ${nsteps}\ngroup mobile static\nrun ${nsteps}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All fixes and computes take a group ID as an argument, but they do\n > not all allow for use of a dynamic group. If you get an error\n > message that this is not allowed, but feel that it should be for the\n > fix or compute in question, then please post your reasoning to the\n > [LAMMPS forum at MatSci](https://matsci.org/c/lammps-development/42)\n > and we can look into changing it. The same applies if you come\n > across inconsistent behavior when dynamic groups are allowed. \n > \n\nThe *static* style removes the setting for a dynamic group, converting\nit to a static group (the default). The atoms in the static group are\nthose currently in the dynamic group.\n\n----------\n", + "restrictions": "There can be no more than 32 groups defined at one time, including\n\"all\".\n\nThe parent group of a dynamic group cannot itself be a dynamic group.\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [fix ](https://docs.lammps.org/fix.html), [region ](https://docs.lammps.org/region.html),\n[velocity ](https://docs.lammps.org/velocity.html)\n" +}, +{ + "command": [ + "include" + ], + "syntax": [ + "include file" + ], + "args": [ + [ { - "arg": "", - "type": 2, + "arg": "include", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "file", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* file = filename of new input script to switch to \n", + "examples": "\n```lmps\ninclude newfile\ninclude in.run2\n```\n", + "html_filename": "include.html", + "short_description": "This command opens a new input script file and begins reading LAMMPS\ncommands from that file", + "description": "This command opens a new input script file and begins reading LAMMPS\ncommands from that file. When the new file is finished, the original\nfile is returned to. Include files can be nested as deeply as\ndesired. If input script A includes script B, and B includes A, then\nLAMMPS could run for a long time.\n\nIf the filename is a variable (see the [variable ](https://docs.lammps.org/variable.html)\ncommand), different processor partitions can run different input\nscripts.\n", + "restrictions": " none\n", + "related": "[variable ](https://docs.lammps.org/variable.html), [jump ](https://docs.lammps.org/jump.html)\n" +}, +{ + "command": [ + "mdi" + ], + "syntax": [ + "mdi option args" + ], + "args": [ + [ { - "arg": "", - "type": 2, + "arg": "mdi", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "exit", "type": 3, "choices": [ - "in", - "out" + "engine", + "plugin", + "connect", + "exit" ] }, { - "arg": "[units]", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_faceset = name of the AtC sub-command\n* id = id to assign to the collection of FE faces\n* box = use bounding box to define FE faces\n* = coordinates of the bounding box that is coincident with the desired FE faces\n* = \"in\" gives inner faces to the box, \"out\" gives the outer faces to the box\n* units = option to specify real as opposed to lattice units \n", - "examples": "\n```lmps\nfix_modify AtC mesh create_faceset obndy box -4.0 4.0 -12 12 -12 12 out\n```\n", - "html_filename": "atc_mesh_create_faceset_box.html", - "short_description": "Command to assign an id to a set of FE faces", - "description": "Command to assign an id to a set of FE faces.\n", - "restrictions": "Only viable for rectangular grids.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" + "parameters": "* option = engine or plugin or connect or exit \n *      engine args = zero or more keyword/args pairs \n       keywords = elements \n       elements args = N_1 N_2 ... N_ntypes \n       N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n *      plugin args = name keyword value keyword value ... \n       name = name of plugin library (e.g., lammps means a liblammps.so library will be loaded) \n       keyword/value pairs in any order, some are required, some are optional \n       keywords = mdi or infile or extra or command \n       mdi value = args passed to MDI for driver to operate with plugins (required) \n       infile value = filename the engine will read at start-up (optional) \n       extra value = aditional command-line args to pass to engine library when loaded (optional) \n       command value = a LAMMPS input script command to execute (required) \n *      connect args = none \n *      exit args = none \n", + "examples": "\n```lmps\nmdi engine\nmdi engine elements Al Cu\nmdi plugin lammps mdi \"-role ENGINE -name lammps -method LINK\" &\ninfile in.aimd.engine extra \"-log log.aimd.engine.plugin\" &\ncommand \"run 5\"\nmdi connect\nmdi exit\n```\n", + "html_filename": "mdi.html", + "short_description": "This command implements operations within LAMMPS to use the `MDI\nLibrary `\nfor coupling to other codes in a client/server protocol", + "description": "This command implements operations within LAMMPS to use the `MDI\nLibrary `\nfor coupling to other codes in a client/server protocol.\n\nSee the Howto MDI doc page for a discussion of all the different ways\n2 or more codes can interact via MDI.\n\nThe examples/mdi directory has examples which use LAMMPS in 4\ndifferent modes: as a driver using an engine as either a stand-alone\ncode or as a plugin, and as an engine operating as either a\nstand-alone code or as a plugin. The README file in that directory\nshows how to launch and couple codes for all the 4 usage modes, and so\nthey communicate via the MDI library using either MPI or sockets.\n\nThe scripts in that directory illustrate the use of all the options\nfor this command.\n\nThe *engine* option enables LAMMPS to act as an MDI engine (server),\nresponding to requests from an MDI driver (client) code.\n\nThe *plugin* option enables LAMMPS to act as an MDI driver (client),\nand load the MDI engine (server) code as a library plugin. In this\ncase the MDI engine is a library plugin. An MDI engine can also be a\nstand-alone code, launched separately from LAMMPS, in which case the\nmdi plugin command is not used.\n\nThe *connect* and *exit* options are only used when LAMMPS is acting\nas an MDI driver. As explained below, these options are normally not\nneeded, except for a specific kind of use case.\n\n----------\n\nThe *mdi engine* command is used to make LAMMPS operate as an MDI\nengine. It is typically used in an input script after LAMMPS has\nsetup the system it is going to model consistent with what the driver\ncode expects. Depending on when the driver code tells the LAMMPS\nengine to exit, other commands can be executed after this command, but\ntypically it is used at the end of a LAMMPS input script.\n\nTo act as an MDI engine operating as an MD code (or surrogate QM\ncode), this is the list of standard MDI commands issued by a driver\ncode which LAMMPS currently recognizes. Using standard commands\ndefined by the MDI library means that a driver code can work\ninterchangeably with LAMMPS or other MD codes or with QM codes which\nsupport the MDI standard. See more details about these commands in\nthe [MDI library documentation](https://molssi-mdi.github.io/MDI_Library/html/mdi_standard.html)\n\nThese commands are valid at the @DEFAULT node defined by MDI.\nCommands that start with \">\" mean the driver is sending information to\nLAMMPS. Commands that start with \"<\" are requests by the driver for\nLAMMPS to send it information. Commands that start with an alphabetic\nletter perform actions. Commands that start with \"@\" are MDI \"node\"\ncommands, which are described further below.\n\n | | | \n |---|---|\n Command name | Action|\n >CELL or CELL_DISPL or CHARGES or COORDS or ELEMENTS | Send elements (atomic numbers) for each atom (N values)|\n FORCES or +FORCES | Send forces to add to each atom (3N values)|\n NSTEPS value)|\n OPTG | Perform an energy minimization to convergence (most recent >TOLERANCE values)|\n >NATOMS or NSTEPS | Send number of timesteps for next MD dynamics run via MD command|\n TOLERANCE | Send 4 tolerance parameters for next MD minimization via OPTG command|\n >TYPES or VELOCITIES or ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The compute atomic interactions for the current configuration of atoms\n > and size/shape of the simulation box. I.e. LAMMPS invokes its\n > pair, bond, angle, ..., kspace styles. If the driver is updating\n > the atom coordinates and/or box incrementally (as in an MD\n > simulation which the driver is managing), then the LAMMPS engine\n > will do the same, and only occasionally trigger neighbor list\n > builds. If the change in atom positions is large (since the\n > previous >COORDS command), then LAMMPS will do a more expensive\n > operation to migrate atoms to new processors as needed and\n > re-neighbor. If the >NATOMS or >TYPES or >ELEMENTS commands have\n > been sent (since the previous >COORDS command), then LAMMPS assumes\n > the system is new and re-initializes an entirely new simulation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The >TYPES or >ELEMENTS commands are how the MDI driver tells the\n > LAMMPS engine which LAMMPS atom type to assign to each atom. If\n > both the MDI driver and the LAMMPS engine are initialized so that\n > atom type values are consistent in both codes, then the >TYPES\n > command can be used. If not, the optional *elements* keyword can\n > be used to specify what element each LAMMPS atom type corresponds\n > to. This is specified by the chemical symbol of the element,\n > e.g. C or Al or Si. A symbol must be specified for each of the\n > ntypes LAMMPS atom types. Each LAMMPS type must map to a unique\n > element; two or more types cannot map to the same element. Ntypes\n > is typically specified via the [create_box ](https://docs.lammps.org/create_box.html)\n > command or in the data file read by the [read_data > ](https://docs.lammps.org/read_data.html) command. Once this has been done, the MDI driver can\n > send an >ELEMENTS command to the LAMMPS driver with the atomic\n > number of each atom and the LAMMPS engine will be able to map it to\n > a LAMMPS atom type. \n > \n\nThe MD and OPTG commands perform an entire MD simulation or energy\nminimization (to convergence) with no communication from the driver\nuntil the simulation is complete. By contrast, the @INIT_MD and\n@INIT_OPTG commands allow the driver to communicate with the engine at\neach timestep of a dynamics run or iteration of a minimization; see\nmore info below.\n\nThe MD command performs a simulation using the most recent >NSTEPS\nvalue. The OPTG command performs a minimization using the 4\nconvergence parameters from the most recent >TOLERANCE command. The 4\nparameters sent are those used by the [minimize ](https://docs.lammps.org/minimize.html)\ncommand in LAMMPS: etol, ftol, maxiter, and maxeval.\n\nThe mdi engine command also implements the following custom MDI\ncommands which are LAMMPS-specific. These commands are also valid at\nthe @DEFAULT node defined by MDI:\n\n * - Command name\n - Action\n * - >NBYTES\n - Send # of datums in a subsequent command (1 value)\n * - >COMMAND\n - Send a LAMMPS input script command as a string (Nbytes in length)\n * - >COMMANDS\n - Send multiple LAMMPS input script commands as a newline-separated string (Nbytes in length)\n * - >INFILE\n - Send filename of an input script to execute (filename Nbytes in length)\n * - COORDS or FORCES\nor >+FORCES or ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *command* is complete, LAMMPS will send an MDI EXIT\n > command to the plugin engine and the plugin will be removed. The\n > \"mdi plugin\" command will then exit and the next command (if any)\n > in the LAMMPS input script will be processed. A subsequent \"mdi\n > plugin\" command could then load the same or a different MDI\n > plugin if desired. \n > \n\n----------\n\nThe *mdi connect* and *mdi exit* commands are only used when LAMMPS is\noperating as an MDI driver. And when other LAMMPS command(s) which\nsend MDI commands and associated data to/from the MDI engine are not\nable to initiate and terminate the connection to the engine code.\n\nThe only current MDI driver command in LAMMPS is the [fix mdi/qm](https://docs.lammps.org/fix_mdi_qm.html) command. If it is only used once in an input script\nthen it can initiate and terminate the connection, but if it is being\nissued multiple times (e.g., in a loop that issues a [clear](https://docs.lammps.org/clear.html) command), then it cannot initiate or terminate the connection\nmultiple times. Instead, the *mdi connect* and *mdi exit* commands\nshould be used outside the loop to initiate or terminate the connection.\n\nSee the examples/mdi/in.series.driver script for an example of how\nthis is done. The LOOP in that script is reading a series of data\nfile configurations and passing them to an MDI engine (e.g., quantum\ncode) for energy and force evaluation. A *clear* command inside the\nloop wipes out the current system so a new one can be defined. This\noperation also destroys all fixes. So the [fix mdi/qm](https://docs.lammps.org/fix_mdi_qm.html) command is issued once per loop iteration. Note that it\nincludes a \"connect no\" option which disables the initiate/terminate\nlogic within that fix.\n", + "restrictions": "This command is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS in conjunction with other MDI-enabled atomistic codes,\nthe [units ](https://docs.lammps.org/units.html) command should be used to specify *real* or\n*metal* units. This will ensure the correct unit conversions between\nLAMMPS and MDI units, which the other codes will also perform in their\npreferred units.\n\nLAMMPS can also be used as an MDI engine in other unit choices it\nsupports (e.g., *lj*), but then no unit conversion is performed.\n", + "related": "[fix mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html)\n" }, { "command": [ - "pair_style coul/tt" + "compute erotate/sphere/atom" ], "syntax": [ - "pair_style style args" + "compute ID group-ID erotate/sphere/atom" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "erotate/sphere/atom", + "type": 1, + "choices": [] } ] ], - "parameters": "* style = coul/tt\n* args = list of arguments for a particular style \n *      coul/tt args = n cutoff \n       n = degree of polynomial \n       cutoff = global cutoff (distance units) \n", - "examples": "\n```lmps\npair_style hybrid/overlay ... coul/tt 4 12.0\npair_coeff 1 2 coul/tt 4.5 1.0\npair_coeff 1 2 coul/tt 4.0 1.0 4 12.0\npair_coeff 1 3* coul/tt 4.5 1.0 4\n```\nExample input scripts available: examples/PACKAGES/drude\n", - "html_filename": "pair_coul_tt.html", - "short_description": "The *coul/tt* pair style is meant to be used with force fields that\ninclude explicit polarization through Drude dipoles", - "description": "The *coul/tt* pair style is meant to be used with force fields that\ninclude explicit polarization through Drude dipoles.\n\nThe *coul/tt* pair style should be used as a sub-style within in the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, in conjunction with a\nmain pair style including Coulomb interactions and *thole* pair style,\nor with *lj/cut/thole/long* pair style that is equivalent to the combination\nof preceding two.\n\nThe *coul/tt* pair styles compute the charge-dipole Coulomb interaction damped\nat short distances by a function\n\\[\n f_{n,ij}(r) = 1 - c_{ij} \\cdot e^{-b_{ij} r} \\sum_{k=0}^n \\frac{(b_{ij} r)^k}{k!}\\]\nThis function results from an adaptation to the Coulomb interaction **Salanne1** of the damping function originally proposed\nby **TangToennies1** for van der Waals interactions.\n\nThe polynomial takes the degree 4 for damping the Coulomb interaction.\nThe parameters \\(b_{ij}\\) and \\(c_{ij}\\) could be determined from\nfirst-principle calculations for small, mainly mono-atomic, ions **Salanne1**, or else treated as empirical for large molecules.\n\nIn pair styles with Drude induced dipoles, this damping function is typically\napplied to the interactions between a Drude charge (either \\(q_{D,i}\\) on\na Drude particle or \\(-q_{D,i}\\) on the respective\nDrude core)) and a charge on a non-polarizable atom, \\(q_{j}\\).\n\nThe Tang-Toennies function could also be used to damp electrostatic\ninteractions between the (non-polarizable part of the) charge of a core,\n\\(q_{i}-q_{D,i}\\), and the Drude charge of another, \\(-q_{D,j}\\).\nThe \\(b_{ij}\\) and \\(c_{ij}\\) are equal to \\(b_{ji}\\) and\n\\(c_{ji}\\) in the case of core-core interactions.\n\nFor pair_style *coul/tt*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the example above.\n\n* \\(b_{ij}\\)\n* \\(c_{ij}\\)\n* degree of polynomial (positive integer)\n* cutoff (distance units)\n\nThe last two coefficients are optional. If not specified the global\ndegree of the polynomial or the global cutoff specified in the pair_style\ncommand are used. In order to specify a cutoff (forth argument), the degree of\nthe polynomial (third argument) must also be specified.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe *coul/tt* pair style does not support mixing. Thus, coefficients\nfor all I,J pairs must be specified explicitly.\n\n**(Salanne1)** Salanne, Rotenberg, Jahn, Vuilleumier, Simon, Christian and Madden, Theor Chem Acc, 131, 1143 (2012). \n \n**(TangToennies1)** J Chem Phys, 80, 3726 (1984). \n ", - "restrictions": "These pair styles are part of the DRUDE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair_style should currently not be used with the [charmm dihedralstyle ](https://docs.lammps.org/dihedral_charmm.html) if the latter has non-zero 1-4 weighting\nfactors. This is because the *coul/tt* pair style does not know which\npairs are 1-4 partners of which dihedrals.\n", - "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/sphere/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all erotate/sphere/atom\n```\n", + "html_filename": "compute_erotate_sphere_atom.html", + "short_description": "Define a computation that calculates the rotational kinetic energy for\neach particle in a group", + "description": "Define a computation that calculates the rotational kinetic energy for\neach particle in a group.\n\nThe rotational energy is computed as \\(\\frac12 I \\omega^2\\), where\n\\(I\\) is the moment of inertia for a sphere and \\(\\omega\\) is the\nparticle's angular velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\nThe value of the rotational kinetic energy will be 0.0 for atoms not\nin the specified compute group or for point particles with a radius of 0.0.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "fix qeq/reaxff", - "fix qeq/reaxff/kk", - "fix qeq/reaxff/omp" + "delete_bonds" ], "syntax": [ - "fix ID group-ID qeq/reaxff Nevery cutlo cuthi tolerance params args" + "delete_bonds group-ID style arg keyword ..." ], "args": [ [ { - "arg": "fix", + "arg": "delete_bonds", "type": 1, "choices": [] }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, { "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "qeq/reaxff", + "arg": "stats", "type": 3, "choices": [ - "qeq/reaxff", - "qeq/reaxff/kk", - "qeq/reaxff/omp" + "multi", + "atom", + "bond", + "angle", + "dihedral", + "improper", + "stats" ] }, { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "cutlo", - "type": 2, - "choices": [] - }, - { - "arg": "cuthi", + "arg": "arg", "type": 2, "choices": [] }, { - "arg": "tolerance", - "type": 2, - "choices": [] - }, - { - "arg": "params", - "type": 2, - "choices": [] - }, - { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qeq/reaxff = style name of this fix command\n* Nevery = perform QEq every this many steps\n* cutlo,cuthi = lo and hi cutoff for Taper radius\n* tolerance = precision to which charges will be equilibrated\n* params = reaxff or a filename\n* one or more keywords or keyword/value pairs may be appended \n *      keyword = dual or maxiter or nowarn \n       dual = process S and T matrix in parallel (only for qeq/reaxff/omp) \n       maxiter N = limit the number of iterations to N \n       nowarn = do not print a warning message if the maximum number of iterations was reached \n", - "examples": "\n```lmps\nfix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff\nfix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 param.qeq maxiter 500\n```\n", - "html_filename": "fix_qeq_reaxff.html", - "short_description": "Perform the charge equilibration (QEq) method as described in\n**Rappe2** and formulated in **Nakano2**", - "description": "Perform the charge equilibration (QEq) method as described in\n**Rappe2** and formulated in **Nakano2**. It is typically used in conjunction with the ReaxFF force\nfield model as implemented in the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)\ncommand, but it can be used with any potential in LAMMPS, so long as it\ndefines and uses charges on each atom. The [fix qeq/comb](https://docs.lammps.org/fix_qeq_comb.html) command should be used to perform charge equilibration\nwith the [COMB potential ](https://docs.lammps.org/pair_comb.html). For more technical details\nabout the charge equilibration performed by fix qeq/reaxff, see the\n**qeq-Aktulga** paper.\n\nThe QEq method minimizes the electrostatic energy of the system by\nadjusting the partial charge on individual atoms based on interactions\nwith their neighbors. It requires some parameters for each atom type.\nIf the *params* setting above is the word \"reaxff\", then these are\nextracted from the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command and\nthe ReaxFF force field file it reads in. If a file name is specified\nfor *params*, then the parameters are taken from the specified file\nand the file must contain one line for each atom type. The latter\nform must be used when performing QeQ with a non-ReaxFF potential.\nEach line should be formatted as follows:\n\n```\nitype chi eta gamma\n```\nwhere *itype* is the atom type from 1 to Ntypes, *chi* denotes the\nelectronegativity in eV, *eta* denotes the self-Coulomb\npotential in eV, and *gamma* denotes the valence orbital\nexponent. Note that these 3 quantities are also in the ReaxFF\npotential file, except that eta is defined here as twice the eta value\nin the ReaxFF file. Note that unlike the rest of LAMMPS, the units\nof this fix are hard-coded to be A, eV, and electronic charge.\n\nThe optional *dual* keyword allows to perform the optimization\nof the S and T matrices in parallel. This is only supported for\nthe *qeq/reaxff/omp* style. Otherwise they are processed separately.\nThe *qeq/reaxff/kk* style always solves the S and T matrices in\nparallel.\n\nThe optional *maxiter* keyword allows changing the max number\nof iterations in the linear solver. The default value is 200.\n\nThe optional *nowarn* keyword silences the warning message printed\nwhen the maximum number of iterations was reached. This can be\nuseful for comparing serial and parallel results where having the\nsame fixed number of QEq iterations is desired, which can be achieved\nby using a very small tolerance and setting *maxiter* to the desired\nnumber of iterations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). This fix computes a global scalar (the number of\niterations) for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Rappe2)** Rappe and Goddard III, Journal of Physical Chemistry, 95,\n3358-3363 (1991). \n \n**(Nakano2)** Nakano, Computer Physics Communications, 104, 59-69 (1997). \n \n**(qeq-Aktulga)** Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,\n245-259 (2012). \n ", - "restrictions": "This fix is part of the REAXFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix does not correctly handle interactions involving multiple\nperiodic images of the same atom. Hence, it should not be used for\nperiodic cell dimensions less than 10 Angstroms.\n\nThis fix may be used in combination with [fix efield ](https://docs.lammps.org/fix_efield.html)\nand will apply the external electric field during charge equilibration,\nbut there may be only one fix efield instance used and the electric field\nvector may only have components in non-periodic directions. Equal-style\nvariables can be used for electric field vector components without any further\nsettings. Atom-style variables can be used for spatially-varying electric field\nvector components, but the resulting electric potential must be specified\nas an atom-style variable using the *potential* keyword for `fix efield`.\n", - "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html)\n" -}, -{ - "command": [ - "pair_style table", - "pair_style table/gpu", - "pair_style table/kk", - "pair_style table/omp" - ], - "syntax": [ - "pair_style table style N keyword ..." - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "table", - "type": 3, - "choices": [ - "table", - "table/gpu", - "table/kk", - "table/omp" - ] - }, - { - "arg": "spline", - "type": 3, - "choices": [ - "lookup", - "linear", - "spline" - ] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "tip4p", + "arg": "special", "type": 3, "choices": [ - "ewald", - "pppm", - "msm", - "dispersion", - "tip4p" + "any", + "undo", + "remove", + "special" ] } ] ], - "parameters": "* style = lookup or linear or spline or bitmap = method of interpolation\n* N = use N values in lookup, linear, spline tables\n* N = use 2\\^N values in bitmap tables\n* zero or more keywords may be appended\n* keyword = ewald or pppm or msm or dispersion or tip4p \n", - "examples": "\n```lmps\npair_style table linear 1000\npair_style table linear 1000 pppm\npair_style table bitmap 12\npair_coeff * 3 morse.table ENTRY1\npair_coeff * 3 morse.table ENTRY1 7.0\n```\n", - "html_filename": "pair_table.html", - "short_description": "Style *table* creates interpolation tables from potential energy and\nforce values listed in a file(s) as a function of distance", - "description": "Style *table* creates interpolation tables from potential energy and\nforce values listed in a file(s) as a function of distance. When\nperforming dynamics or minimization, the interpolation tables are used\nto evaluate energy and forces for pairwise interactions between\nparticles, similar to how analytic formulas are used for other pair\nstyles.\n\nThe interpolation tables are created as a pre-computation by fitting\ncubic splines to the file values and interpolating energy and force\nvalues at each of *N* distances. During a simulation, the tables are\nused to interpolate energy and force values as needed for each pair of\nparticles separated by a distance *R* . The interpolation is done in\none of 4 styles: *lookup*, *linear*, *spline*, or *bitmap* .\n\nFor the *lookup* style, the distance *R* is used to find the nearest\ntable entry, which is the energy or force.\n\nFor the *linear* style, the distance *R* is used to find the 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored for each of the *N* values in the table, one set of splines for\nenergy, another for force. Note that these splines are different than\nthe ones used to pre-compute the *N* values. Those splines were fit\nto the *Nfile* values in the tabulated file, where often *Nfile* <\n*N* . The distance *R* is used to find the appropriate set of spline\ncoefficients which are used to evaluate a cubic polynomial which\ncomputes the energy or force.\n\nFor the *bitmap* style, the specified *N* is used to create\ninterpolation tables that are 2\\^N in length. The distance *R* is used\nto index into the table via a fast bit-mapping technique due to\n**Wolff2**, and a linear interpolation is performed between\nadjacent table values.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* cutoff (distance units)\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The cutoff is\nan optional coefficient. If not specified, the outer cutoff in the\ntable itself (see below) will be used to build an interpolation table\nthat extend to the largest tabulated distance. If specified, only\nfile values up to the cutoff are used to create the interpolation\ntable. The format of this file is described below.\n\nIf your tabulated potential(s) are designed to be used as the\nshort-range part of one of the long-range solvers specified by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command, then you must use one or\nmore of the optional keywords listed above for the pair_style command.\nThese are *ewald* or *pppm* or *msm* or *dispersion* or *tip4p* . This\nis so LAMMPS can ensure the short-range potential and long-range\nsolver are compatible with each other, as it does for other\nshort-range pair styles, such as [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html). Note that it is up to you to ensure\nthe tabulated values for each pair of atom types has the correct\nfunctional form to be compatible with the matching long-range solver.\n\n----------\n\nHere are some guidelines for using the pair_style table command to\nbest effect:\n\n* Vary the number of table points; you may need to use more than you think\n to get good resolution.\n* Always use the [pair_write ](https://docs.lammps.org/pair_write.html) command to produce a plot\n of what the final interpolated potential looks like. This can show up\n interpolation \"features\" you may not like.\n* Start with the linear style; it's the style least likely to have problems.\n* Use *N* in the pair_style command equal to the \"N\" in the tabulation\n file, and use the \"RSQ\" or \"BITMAP\" parameter, so additional interpolation\n is not needed. See discussion below.\n* Make sure that your tabulated forces and tabulated energies are\n consistent (dE/dr = -F) over the entire range of r values. LAMMPS\n will warn if this is not the case.\n* Use as large an inner cutoff as possible. This avoids fitting splines\n to very steep parts of the potential.\n\n----------\n\nSuitable tables in the correct format for use with these pair styles can\nbe created by LAMMPS itself using the [pair_write ](https://docs.lammps.org/pair_write.html)\ncommand. In combination with the pair styles [python ](https://docs.lammps.org/pair_python.html),\n[lepton, or lepton/coul ](https://docs.lammps.org/pair_lepton.html) this can be a powerful\nmechanism to implement and test tables for use with LAMMPS. Another\noption to generate tables is the Python code in the ``tools/tabulate``\nfolder of the LAMMPS source code distribution.\n\nThe format of a tabulated file has an (optional) header followed by a\nseries of one or more sections, defined as follows (without the\nparenthesized comments). The header must start with a `#` character\nand the DATE: and UNITS: tags will be parsed and used:\n\n```\n# DATE: 2020-06-10 UNITS: real CONTRIBUTOR: ... (header line)\n# Morse potential for Fe (one or more comment or blank lines)\n\nMORSE_FE (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ, BITMAP, FPRIME parameters)\n(blank)\n1 1.0 25.5 102.34 (index, r, energy, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style table ](https://docs.lammps.org/pair_style.html) command. Let\nNtable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate energy and force values at Ntable different\npoints. The resulting tables of length Ntable are then used as\ndescribed above, when computing energy and force for individual pair\ndistances. This means that if you want the interpolation tables of\nlength Ntable to match exactly what is in the tabulated file (with\neffectively no preliminary interpolation), you should set Ntable =\nNfile, and use the \"RSQ\" or \"BITMAP\" parameter. This is because the\ninternal table abscissa is always RSQ (separation distance squared),\nfor efficient lookup.\n\nAll other parameters are optional. If \"R\" or \"RSQ\" or \"BITMAP\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *r* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo*\nand *rhi* . If specified, the distance associated with each energy and\nforce value is computed from these 2 values (at high accuracy), rather\nthan using the (low-accuracy) value listed in each line of the table.\nThe distance values in the table file are ignored in this case.\nFor \"R\", distances uniformly spaced between *rlo* and *rhi* are\ncomputed; for \"RSQ\", squared distances uniformly spaced between\n*rlo\\*rlo* and *rhi\\*rhi* are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the\n > file are effectively ignored, and replaced by new values as described\n > in the previous paragraph. If the distance value in the table is not\n > very close to the new value (i.e. round-off difference), then you will\n > be assigning energy/force values to a different distance, which is\n > probably not what you want. LAMMPS will warn if this is occurring. \n > \n\nIf used, the parameter \"BITMAP\" is also followed by 2 values *rlo* and\n*rhi* . These values, along with the \"N\" value determine the ordering\nof the N lines that follow and what distance is associated with each.\nThis ordering is complex, so it is not documented here, since this\nfile is typically produced by the [pair_write ](https://docs.lammps.org/pair_write.html) command\nwith its *bitmap* option. When the table is in BITMAP format, the \"N\"\nparameter in the file must be equal to 2\\^M where M is the value\nspecified in the pair_style command. Also, a cutoff parameter cannot\nbe used as an optional third argument in the pair_coeff command; the\nentire table extent as specified in the file must be used.\n\nIf used, the parameter \"FPRIME\" is followed by 2 values *fplo* and\n*fphi* which are the derivative of the force at the innermost and\noutermost distances listed in the table. These values are needed by\nthe spline construction routines. If not specified by the \"FPRIME\"\nparameter, they are estimated (less accurately) by the first 2 and\nlast 2 force values in the table. This parameter is not used by\nBITMAP tables.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in distance units), the third value is the energy (in energy units),\nand the fourth is the force (in force units). The r values must increase\nfrom one line to the next (unless the BITMAP parameter is specified).\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style table\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Wolff2)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n ", - "restrictions": "none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" + "parameters": "* group-ID = group ID\n* style = multi or atom or bond or angle or dihedral or improper or stats \n *        multi arg = none \n *        atom arg = an atom type or range of types (see below) \n *        bond arg = a bond type or range of types (see below) \n *        angle arg = an angle type or range of types (see below) \n *        dihedral arg = a dihedral type or range of types (see below) \n *        improper arg = an improper type or range of types (see below) \n *        stats arg = none \n* zero or more keywords may be appended\n* keyword = any or undo or remove or special \n *        any arg = none = turn off interactions if any atoms are in the group (or on if undo is also used) \n *        undo arg = none = turn specified bonds on instead of off \n *        remove arg = permanently remove bonds that have been turned off \n *        special arg = recompute pairwise 1-2, 1-3, and 1-4 lists \n", + "examples": "\n```lmps\ndelete_bonds frozen multi remove\ndelete_bonds all atom 4 special\ndelete_bonds all bond 0*3 special\ndelete_bonds all stats\n\nlabelmap atom 4 hc\ndelete_bonds all atom hc special\n```\n", + "html_filename": "delete_bonds.html", + "short_description": "Turn off (or on) molecular topology interactions (i.e., bonds, angles,\ndihedrals, and/or impropers)", + "description": "Turn off (or on) molecular topology interactions (i.e., bonds, angles,\ndihedrals, and/or impropers). This command is useful for deleting\ninteractions that have been previously turned off by bond-breaking\npotentials. It is also useful for turning off topology interactions\nbetween frozen or rigid atoms. Pairwise interactions can be turned\noff via the [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html) command. The\n[fix shake ](https://docs.lammps.org/fix_shake.html) command also effectively turns off certain\nbond and angle interactions.\n\nFor all styles, by default, an interaction is only turned off (or on)\nif all the atoms involved are in the specified group. See the *any*\nkeyword to change the behavior.\n\nSeveral of the styles (\\ *atom*, *bond*, *angle*, *dihedral*, *improper* )\ntake a *type* as an argument. The specified *type* can be a\n[type label ](https://docs.lammps.org/Howto_type_labels.html). Otherwise, the type should be an\ninteger from 0 to \\(N\\), where \\(N\\) is the number of relevant\ntypes (atom types, bond types, etc.). A value of 0 is only relevant for\nstyle *bond* ; see details below. For numeric types, a wildcard asterisk\ncan be used in place of or in conjunction with the *type* argument to\nspecify a range of types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the number of types, then an asterisk with no\nnumeric values means all types from 0 to \\(N\\). A leading asterisk\nmeans all types from 0 to n (inclusive). A trailing asterisk means all\ntypes from m to N (inclusive). A middle asterisk means all types from m to\nn (inclusive). Note that it is fine to include a type of 0 for non-bond\nstyles; it will simply be ignored.\n\nFor style *multi* all bond, angle, dihedral, and improper interactions\nof any type, involving atoms in the group, are turned off.\n\nStyle *atom* is the same as style *multi* except that in addition, one\nor more of the atoms involved in the bond, angle, dihedral, or\nimproper interaction must also be of the specified atom type.\n\nFor style *bond*, only bonds are candidates for turn-off, and the bond\nmust also be of the specified type. Styles *angle*, *dihedral*, and\n*improper* are treated similarly.\n\nFor style *bond*, you can set the type to 0 to delete bonds that have\nbeen previously broken by a bond-breaking potential (which sets the\nbond type to 0 when a bond is broken); for example, see the\n[bond_style quartic ](https://docs.lammps.org/bond_style.html) command.\n\nFor style *stats* no interactions are turned off (or on); the status\nof all interactions in the specified group is simply reported. This\nis useful for diagnostic purposes if bonds have been turned off by a\nbond-breaking potential during a previous run.\n\nThe default behavior of the delete_bonds command is to turn off\ninteractions by toggling their type to a negative value, but not to\npermanently remove the interaction. For example, a bond_type of 2 is set to\n\\(-2.\\) The neighbor list creation routines will not include such an\ninteraction in their interaction lists. The default is also to not\nalter the list of 1--2, 1--3, or 1--4 neighbors computed by the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command and used to weight pairwise\nforce and energy calculations. This means that pairwise computations\nwill proceed as if the bond (or angle, etc.) were still turned on.\n\nSeveral keywords can be appended to the argument list to alter the\ndefault behaviors.\n\nThe *any* keyword changes the requirement that all atoms in the bond\n(angle, etc.) must be in the specified group in order to turn off the\ninteraction. Instead, if any of the atoms in the interaction are in\nthe specified group, it will be turned off (or on if the *undo*\nkeyword is used).\n\nThe *undo* keyword inverts the delete_bonds command so that the\nspecified bonds, angles, etc. are turned on if they are currently\nturned off. This means a negative value is toggled to positive. For\nexample, for style *angle*, if *type* is specified as 2, then all\nangles with current type = \\(-2\\) are reset to type = \\(2\\).\nNote that the [fix shake ](https://docs.lammps.org/fix_shake.html) command also sets bond and angle\ntypes negative, so this option should not be used on those interactions.\n\nThe *remove* keyword is invoked at the end of the delete_bonds\noperation. It causes turned-off bonds (angles, etc.) to be removed\nfrom each atom's data structure and then adjusts the global bond\n(angle, etc.) counts accordingly. Removal is a permanent change;\nremoved bonds cannot be turned back on via the *undo* keyword.\nRemoval does not alter the pairwise 1--2, 1--3, or 1--4 weighting list.\n\nThe *special* keyword is invoked at the end of the delete_bonds\noperation, after (optional) removal. It re-computes the pairwise 1--2,\n1--3, 1--4 weighting list. The weighting list computation treats\nturned-off bonds the same as turned-on. Thus, turned-off bonds must\nbe removed if you wish to change the weighting list.\n\nNote that the choice of *remove* and *special* options affects how\n1--2, 1--3, 1--4 pairwise interactions will be computed across bonds that\nhave been modified by the delete_bonds command.\n", + "restrictions": "This command requires inter-processor communication to acquire ghost\natoms, to coordinate the deleting of bonds, angles, etc. between atoms\nshared by multiple processors. This means that your system must be\nready to perform a simulation before using this command (force fields\nsetup, atom masses set, etc.). Just as would be needed to run\ndynamics, the force field you define should define a cutoff\n(e.g., through a [pair_style ](https://docs.lammps.org/pair_style.html) command) which is long\nenough for a processor to acquire the ghost atoms its needs to compute\nbond, angle, etc. interactions.\n\nIf deleted bonds (or angles, etc.) are removed but the 1--2, 1--3, and 1--4\nweighting list is not recomputed, this can cause a later\n[fix shake ](https://docs.lammps.org/fix_shake.html) command to fail due to an atom's bonds being\ninconsistent with the weighting list. This should only happen if the\ngroup used in the fix command includes both atoms in the bond, in\nwhich case you probably should be recomputing the weighting list.\n", + "related": "[neigh_modify ](https://docs.lammps.org/neigh_modify.html) exclude,\n[special_bonds ](https://docs.lammps.org/special_bonds.html), [fix shake ](https://docs.lammps.org/fix_shake.html)\n" }, { "command": [ - "compute slcsa/atom" + "fix saed/vtk" ], "syntax": [ - "compute ID group-ID slcsa/atom twojmax nclasses db_mean_descriptor_file lda_file lr_decision_file lr_bias_file maha_file value" + "fix ID group-ID saed/vtk Nevery Nrepeat Nfreak c_ID attribute args ... keyword args ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -23551,71 +22590,71 @@ export const command_docs = [ "choices": [] }, { - "arg": "slcsa/atom", + "arg": "saed/vtk", "type": 1, "choices": [] }, { - "arg": "twojmax", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "nclasses", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "db_mean_descriptor_file", + "arg": "Nfreak", "type": 2, "choices": [] }, { - "arg": "lda_file", + "arg": "c_ID", "type": 2, "choices": [] }, { - "arg": "lr_decision_file", + "arg": "attribute", "type": 2, "choices": [] }, { - "arg": "lr_bias_file", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "maha_file", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* slcsa/atom = style name of this compute command\n* twojmax = band limit for bispectrum components (non-negative integer)\n* nclasses = number of crystal structures used in the database for the classifier SL-CSA\n* db_mean_descriptor_file = file name of file containing the database mean descriptor\n* lda_file = file name of file containing the linear discriminant analysis matrix for dimension reduction\n* lr_decision_file = file name of file containing the scaling matrix for logistic regression classification\n* lr_bias_file = file name of file containing the bias vector for logistic regression classification\n* maha_file = file name of file containing for each crystal structure: the Mahalanobis distance threshold for sanity check purposes, the average reduced descriptor and the inverse of the corresponding covariance matrix\n* c_ID[*] = compute ID of previously required *compute sna/atom* command \n", - "examples": "\n```lmps\ncompute b1 all sna/atom 9.0 0.99363 8 0.5 1.0 rmin0 0.0 nnn 24 wmode 1 delta 0.3\ncompute b2 all slcsa/atom 8 4 mean_descriptors.dat lda_scalings.dat lr_decision.dat lr_bias.dat maha_thresholds.dat c_b1[*]\n```\n", - "html_filename": "compute_slcsa_atom.html", - "short_description": "\nDefine a computation that performs the Supervised Learning Crystal\nStructure Analysis (SL-CSA) from **Lafourcade2023_1**\nfor each atom in the group", - "description": "\nDefine a computation that performs the Supervised Learning Crystal\nStructure Analysis (SL-CSA) from **Lafourcade2023_1**\nfor each atom in the group. The SL-CSA tool takes as an input a per-atom\ndescriptor (bispectrum) that is computed through the *compute sna/atom*\ncommand and then proceeds to a dimension reduction step followed by a\nlogistic regression in order to assign a probable crystal structure to\neach atom in the group. The SL-CSA tool is pre-trained on a database\ncontaining \\(C\\) distinct crystal structures from which a crystal\nstructure classifier is derived and a tutorial to build such a tool is\navailable at [SL-CSA](https://github.com/lafourcadep/SL-CSA).\n\nThe first step of the SL-CSA tool consists in performing a dimension\nreduction of the per-atom descriptor \\(\\mathbf{B}^i \\in\n\\mathbb{R}^{D}\\) through the Linear Discriminant Analysis (LDA) method,\nleading to a new projected descriptor\n\\(\\mathbf{x}^i=\\mathrm{P}_\\mathrm{LDA}(\\mathbf{B}^i):\\mathbb{R}^D\n\\rightarrow \\mathbb{R}^{d=C-1}\\):\n\\[\n \\mathbf{x}^i = \\mathbf{C}^T_\\mathrm{LDA} \\cdot (\\mathbf{B}^i - \\mu^\\mathbf{B}_\\mathrm{db})\\]\nwhere \\(\\mathbf{C}^T_\\mathrm{LDA} \\in \\mathbb{R}^{D \\times d}\\) is\nthe reduction coefficients matrix of the LDA model read in file\n*lda_file*, \\(\\mathbf{B}^i \\in \\mathbb{R}^{D}\\) is the bispectrum of\natom \\(i\\) and \\(\\mu^\\mathbf{B}_\\mathrm{db} \\in \\mathbb{R}^{D}\\)\nis the average descriptor of the entire database. The latter is computed\nfrom the average descriptors of each crystal structure read from the\nfile *mean_descriptors_file*.\n\nThe new projected descriptor with dimension \\(d=C-1\\) allows for a\ngood separation of different crystal structures fingerprints in the\nlatent space.\n\nOnce the dimension reduction step is performed by means of LDA, the new\ndescriptor \\(\\mathbf{x}^i \\in \\mathbb{R}^{d=C-1}\\) is taken as an\ninput for performing a multinomial logistic regression (LR) which\nprovides a score vector\n\\(\\mathbf{s}^i=\\mathrm{P}_\\mathrm{LR}(\\mathbf{x}^i):\\mathbb{R}^d\n\\rightarrow \\mathbb{R}^C\\) defined as:\n\\[\n \\mathbf{s}^i = \\mathbf{b}_\\mathrm{LR} + \\mathbf{D}_\\mathrm{LR} \\cdot {\\mathbf{x}^i}^T\\]\nwith \\(\\mathbf{b}_\\mathrm{LR} \\in \\mathbb{R}^C\\) and\n\\(\\mathbf{D}_\\mathrm{LR} \\in \\mathbb{R}^{C \\times d}\\) the bias\nvector and decision matrix of the LR model after training both read in\nfiles *lr_fil1* and *lr_file2* respectively.\n\nFinally, a probability vector\n\\(\\mathbf{p}^i=\\mathrm{P}_\\mathrm{LR}(\\mathbf{x}^i):\\mathbb{R}^d\n\\rightarrow \\mathbb{R}^C\\) is defined as:\n\\[\n \\mathbf{p}^i = \\frac{\\mathrm{exp}(\\mathbf{s}^i)}{\\sum\\limits_{j} \\mathrm{exp}(s^i_j) }\\]\nfrom which the crystal structure assigned to each atom with descriptor\n\\(\\mathbf{B}^i\\) and projected descriptor \\(\\mathbf{x}^i\\) is\ncomputed as the *argmax* of the probability vector\n\\(\\mathbf{p}^i\\). Since the logistic regression step systematically\nattributes a crystal structure to each atom, a sanity check is needed to\navoid misclassification. To this end, a per-atom Mahalanobis distance to\neach crystal structure *CS* present in the database is computed:\n\\[\n d_\\mathrm{Mahalanobis}^{i \\rightarrow \\mathrm{CS}} = \\sqrt{(\\mathbf{x}^i - \\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS})^\\mathrm{T} \\cdot \\mathbf{\\Sigma}^{-1}_\\mathrm{CS} \\cdot (\\mathbf{x}^i - \\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS}) }\\]\nwhere \\(\\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS} \\in \\mathbb{R}^{d}\\) is\nthe average projected descriptor of crystal structure *CS* in the\ndatabase and where \\(\\mathbf{\\Sigma}_\\mathrm{CS} \\in \\mathbb{R}^{d\n\\times d}\\) is the corresponding covariance matrix. Finally, if the\nMahalanobis distance to crystal structure *CS* for atom *i* is greater\nthan the pre-determined threshold, no crystal structure is assigned to\natom *i*. The Mahalanobis distance thresholds are read in file\n*maha_file* while the covariance matrices are read in file\n*covmat_file*.\n\nThe [SL-CSA](https://github.com/lafourcadep/SL-CSA) framework provides\nan automatic computation of the different matrices and thresholds\nrequired for a proper classification and writes down all the required\nfiles for calling the *compute slcsa/atom* command.\n\nThe *compute slcsa/atom* command requires that the [computesna/atom ](https://docs.lammps.org/compute_sna_atom.html) command is called before as it takes the\nresulting per-atom bispectrum as an input. In addition, it is crucial\nthat the value *twojmax* is set to the same value of the value *twojmax*\nused in the *compute sna/atom* command, as well as that the value\n*nclasses* is set to the number of crystal structures used in the\ndatabase to train the SL-CSA tool.\n\n #### Output info\n\nBy default, this compute computes the Mahalanobis distances to the\ndifferent crystal structures present in the database in addition to\nassigning a crystal structure for each atom as a per-atom vector, which\ncan be accessed by any command that uses per-atom values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\n**(Lafourcade2023_1)** Lafourcade, Maillet, Denoual, Duval, Allera, Goryaeva, and Marinica,\n[Comp. Mat. Science, 230, 112534 (2023)](https://doi.org/10.1016/j.commatsci.2023.112534) \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* saed/vtk = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* c_ID = saed compute ID \n *      keyword = file or ave or start or file or *overwrite* :l \n       ave args = one or running or *window M* \n       one = output a new average value every Nfreq steps \n       running = output cumulative average of all previous Nfreq steps \n       window M = output average of M most recent Nfreq steps \n       start args = Nstart \n       Nstart = start averaging on this timestep \n       file arg = filename \n       filename = name of file to output time averages to \n", + "examples": "\n```lmps\ncompute 1 all saed 0.0251 Al O Kmax 1.70 Zone 0 0 1 dR_Ewald 0.01 c 0.5 0.5 0.5\ncompute 2 all saed 0.0251 Ni Kmax 1.70 Zone 0 0 0 c 0.05 0.05 0.05 manual echo\n\nfix 1 all saed/vtk 1 1 1 c_1 file Al2O3_001.saed\nfix 2 all saed/vtk 1 1 1 c_2 file Ni_000.saed\n```\n", + "html_filename": "fix_saed_vtk.html", + "short_description": "Time average computed intensities from [compute saed ](https://docs.lammps.org/compute_saed.html) and\nwrite output to a file in the third generation vtk image data format for\nvisualization directly in parallelized visualization software packages\nlike ParaView and VisIt", + "description": "Time average computed intensities from [compute saed ](https://docs.lammps.org/compute_saed.html) and\nwrite output to a file in the third generation vtk image data format for\nvisualization directly in parallelized visualization software packages\nlike ParaView and VisIt. Note that if no time averaging is done, this\ncommand can be used as a convenient way to simply output diffraction\nintensities at a single snapshot.\n\nTo produce output in the image data vtk format ghost data is added\noutside the *Kmax* range assigned in the compute saed. The ghost data is\nassigned a value of -1 and can be removed setting a minimum isovolume\nof 0 within the visualization software. SAED images can be created by\nvisualizing a spherical slice of the data that is centered at\nR_Ewald\\*[h k l]/norm([h k l]), where R_Ewald=1/lambda.\n\nThe group specified within this command is ignored. However, note that\nspecified values may represent calculations performed by saed computes\nwhich store their own \"group\" definitions.\n\nFix saed/vtk is designed to work only with [compute saed ](https://docs.lammps.org/compute_saed.html)\nvalues, e.g.\n\n```lmps\ncompute 3 top saed 0.0251 Al O\nfix saed/vtk 1 1 1 c_3 file Al2O3_001.saed\n```\n----------\n\nThe *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what\ntimesteps the input values will be used in order to contribute to the\naverage. The final averaged quantities are generated on timesteps\nthat are a multiple of *Nfreq* . The average is over *Nrepeat*\nquantities, computed in the preceding portion of the simulation every\n*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and\n*Nevery* must be non-zero even if *Nrepeat* is 1.\nAlso, the timesteps\ncontributing to the average value cannot overlap,\ni.e. Nrepeat\\*Nevery can not exceed Nfreq.\n\nFor example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on\ntimesteps 90,92,94,96,98,100 will be used to compute the final average\non timestep 100. Similarly for timesteps 190,192,194,196,198,200 on\ntimestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time\naveraging is done; values are simply generated on timesteps\n100,200,etc.\n\n----------\n\nThe output for fix ave/time/saed is a file written with the third generation\nvtk image data formatting. The filename assigned by the *file* keyword is\nappended with _N.vtk where N is an index (0,1,2...) to account for multiple\ndiffraction intensity outputs.\n\nBy default the header contains the following information (with example data):\n\n```\n# vtk DataFile Version 3.0 c_SAED\nImage data set\nASCII\nDATASET STRUCTURED_POINTS\nDIMENSIONS 337 219 209\nASPECT_RATIO 0.00507953 0.00785161 0.00821458\nORIGIN -0.853361 -0.855826 -0.854316\nPOINT_DATA 15424827\nSCALARS intensity float\nLOOKUP_TABLE default\n...data\n```\nIn this example, kspace is sampled across a 337 x 219 x 209 point mesh\nwhere the mesh spacing is approximately 0.005, 0.007, and 0.008\ninv(length) units in the k1, k2, and k3 directions, respectively.\nThe data is shifted by -0.85, -0.85, -0.85 inv(length) units so that\nthe origin will lie at 0, 0, 0. Here, 15,424,827 kspace points are\nsampled in total.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nThe *ave* keyword determines how the values produced every *Nfreq*\nsteps are averaged with values produced on previous steps that were\nmultiples of *Nfreq*, before they are accessed by another output\ncommand or written to a file.\n\nIf the *ave* setting is *one*, then the values produced on timesteps\nthat are multiples of *Nfreq* are independent of each other; they are\noutput as-is without further averaging.\n\nIf the *ave* setting is *running*, then the values produced on\ntimesteps that are multiples of *Nfreq* are summed and averaged in a\ncumulative sense before being output. Each output value is thus the\naverage of the value produced on that timestep with all preceding\nvalues. This running average begins when the fix is defined; it can\nonly be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the values produced on\ntimesteps that are multiples of *Nfreq* are summed and averaged within\na moving \"window\" of time, so that the last M values are used to\nproduce the output. E.g. if M = 3 and Nfreq = 1000, then the output\non step 10000 will be the average of the individual values on steps\n8000,9000,10000. Outputs on early steps will average over less than M\nvalues if they are not available.\n\nThe *start* keyword specifies what timestep averaging will begin on.\nThe default is step 0. Often input values can be 0.0 at time 0, so\nsetting *start* to a larger value can avoid including a 0.0 in a\nrunning or windowed average.\n\nThe *file* keyword allows a filename to be specified. Every *Nfreq*\nsteps, the vector of saed intensity data is written to a new file using\nthe third generation vtk format. The base of each file is assigned by\nthe *file* keyword and this string is appended with _N.vtk where N is\nan index (0,1,2...) to account for situations with multiple diffraction\nintensity outputs.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix is part of the DIFFRACTION package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "The attributes for fix_saed_vtk must match the values assigned in the\nassociated [compute_saed ](https://docs.lammps.org/compute_saed.html) command.\n", + "related": "[compute_saed ](https://docs.lammps.org/compute_saed.html)\n" }, { "command": [ - "fix smd/integrate_ulsph" + "compute adf" ], "syntax": [ - "fix ID group-ID smd/integrate_ulsph keyword" + "compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -23630,278 +22669,235 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/integrate_ulsph", + "arg": "adf", "type": 1, "choices": [] }, { - "arg": "limit_velocity", - "type": 3, - "choices": [ - "adjust_radius", - "limit_velocity" - ] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/integrate_ulsph = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = adjust_radius or limit_velocity\n\nadjust_radius values = adjust_radius_factor min_nn max_nn\n adjust_radius_factor = factor which scale the smooth/kernel radius\n min_nn = minimum number of neighbors\n max_nn = maximum number of neighbors\nlimit_velocity values = max_velocity\n max_velocity = maximum allowed velocity. \n", - "examples": "\n```lmps\nfix 1 all smd/integrate_ulsph adjust_radius 1.02 25 50\nfix 1 all smd/integrate_ulsph limit_velocity 1000\n```\n", - "html_filename": "fix_smd_integrate_ulsph.html", - "short_description": "The fix performs explicit time integration for particles which\ninteract with the updated Lagrangian SPH pair style", - "description": "The fix performs explicit time integration for particles which\ninteract with the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\nThe *adjust_radius* keyword activates dynamic adjustment of the\nper-particle SPH smoothing kernel radius such that the number of\nneighbors per particles remains within the interval *min_nn* to\n*max_nn*. The parameter *adjust_radius_factor* determines the amount\nof adjustment per timestep. Typical values are *adjust_radius_factor*\n=1.02, *min_nn* =15, and *max_nn* =20.\n\nThe *limit_velocity* keyword will control the velocity, scaling the norm of\nthe velocity vector to max_vel in case it exceeds this velocity limit.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is incompatible with deformation controls that remap velocity,\nfor instance the *remap v* option of [fix deform ](https://docs.lammps.org/fix_deform.html).\n", - "related": "none\n" -}, -{ - "command": [ - "fix rigid/meso" - ], - "syntax": [ - "fix ID group-ID rigid/meso bodystyle args keyword values ..." - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, + "arg": "Nbin", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "itype1", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "jtype1", "type": 2, "choices": [] }, { - "arg": "rigid/meso", - "type": 1, + "arg": "ktype1", + "type": 2, "choices": [] }, { - "arg": "group", - "type": 3, - "choices": [ - "single", - "molecule", - "group" - ] + "arg": "Rjinner1", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "Rjouter1", "type": 2, "choices": [] }, { - "arg": "infile", - "type": 3, - "choices": [ - "reinit", - "force", - "torque", - "infile" - ] + "arg": "Rkinner1", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "Rkouter1", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rigid/meso = style name of this fix command\n* bodystyle = single or molecule or group \n *        single args = none \n *        molecule args = none \n *        *custom* args = i_propname or v_varname \n         i_propname = an integer property defined via fix property/atom \n         v_varname = an atom-style or atomfile-style variable \n *        group args = N groupID1 groupID2 ... \n         N = # of groups \n         groupID1, groupID2, ... = list of N group IDs \n* zero or more keyword/value pairs may be appended\n* keyword = reinit or force or torque or infile \n *        reinit = yes or no \n *        force values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass force is active \n *        torque values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass torque is active \n *        infile filename \n         filename = file with per-body values of mass, center-of-mass, moments of inertia \n", - "examples": "\n```lmps\nfix 1 ellipsoid rigid/meso single\nfix 1 rods rigid/meso molecule\nfix 1 spheres rigid/meso single force 1 off off on\nfix 1 particles rigid/meso molecule force 1*5 off off off force 6*10 off off on\nfix 2 spheres rigid/meso group 3 sphere1 sphere2 sphere3 torque * off off off\n```\n", - "html_filename": "fix_rigid_meso.html", - "short_description": "Treat one or more sets of mesoscopic SPH/SDPD particles as independent\nrigid bodies", - "description": "Treat one or more sets of mesoscopic SPH/SDPD particles as independent\nrigid bodies. This means that each timestep the total force and torque\non each rigid body is computed as the sum of the forces and torques on\nits constituent particles. The coordinates and velocities of the\nparticles in each body are then updated so that the body moves and\nrotates as a single entity using the methods described in the paper by\n**Miller**. Density and internal energy of the particles will\nalso be updated. This is implemented by creating internal data structures\nfor each rigid body and performing time integration on these data\nstructures. Positions and velocities of the constituent particles are\nregenerated from the rigid body data structures in every time step. This\nrestricts which operations and fixes can be applied to rigid bodies. See\nbelow for a detailed discussion.\n\nThe operation of this fix is exactly like that described by the\n[fix rigid/nve ](https://docs.lammps.org/fix_rigid.html) command, except that particles' density,\ninternal energy and extrapolated velocity are also updated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not update the particles in rigid bodies via other\n > time-integration fixes (e.g. [fix sph ](https://docs.lammps.org/fix_sph.html), [fix > sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)), or you will have conflicting\n > updates to positions and velocities resulting in unphysical\n > behavior in most cases. When performing a hybrid simulation with\n > some atoms in rigid bodies, and some not, a separate time\n > integration fix like [fix sph ](https://docs.lammps.org/fix_sph.html) should be used for\n > the non-rigid particles. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes are overkill if you simply want to hold a collection of\n > particles stationary or have them move with a constant velocity. To\n > hold particles stationary use [fix sph/stationary > ](https://docs.lammps.org/fix_sph_stationary.html) instead. If you would like to move particles\n > with a constant velocity use [fix meso/move ](https://docs.lammps.org/fix_meso_move.html). \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The aggregate properties of each rigid body are\n > calculated at the start of a simulation run and are maintained in\n > internal data structures. The properties include the position and\n > velocity of the center-of-mass of the body, its moments of inertia, and\n > its angular momentum. This is done using the properties of the\n > constituent particles of the body at that point in time (or see the *infile*\n > keyword option). Thereafter, changing these properties of individual\n > particles in the body will have no effect on a rigid body's dynamics, unless\n > they effect any computation of per-particle forces or torques. If the\n > keyword *reinit* is set to *yes* (the default), the rigid body data\n > structures will be recreated at the beginning of each *run* command;\n > if the keyword *reinit* is set to *no*, the rigid body data structures\n > will be built only at the very first *run* command and maintained for\n > as long as the rigid fix is defined. For example, you might think you\n > could displace the particles in a body or add a large velocity to each particle\n > in a body to make it move in a desired direction before a second run is\n > performed, using the [set ](https://docs.lammps.org/set.html) or\n > [displace_atoms ](https://docs.lammps.org/displace_atoms.html) or [velocity ](https://docs.lammps.org/velocity.html)\n > commands. But these commands will not affect the internal attributes\n > of the body unless *reinit* is set to *yes* . With *reinit* set to *no*\n > (or using the *infile* option, which implies *reinit* *no* ) the position\n > and velocity of individual particles in the body will be reset when time\n > integration starts again. \n > \n\n----------\n\nEach rigid body must have two or more particles. A particle can belong\nto at most one rigid body. Which particles are in which bodies can be\ndefined via several options.\n\nFor bodystyle *single* the entire fix group of particles is treated as\none rigid body.\n\nFor bodystyle *molecule*, particles are grouped into rigid bodies by their\nrespective molecule IDs: each set of particles in the fix group with the\nsame molecule ID is treated as a different rigid body. Note that particles\nwith a molecule ID = 0 will be treated as a single rigid body. For a\nsystem with solvent (typically this is particles with molecule ID = 0)\nsurrounding rigid bodies, this may not be what you want. Thus you\nshould be careful to use a fix group that only includes particles you\nwant to be part of rigid bodies.\n\nBodystyle *custom* is similar to bodystyle *molecule* except that it\nis more flexible in using other per-atom properties to define the sets\nof particles that form rigid bodies. An integer vector defined by the\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command can be used. Or an\n[atom-style or atomfile-style variable ](https://docs.lammps.org/variable.html) can be used; the\nfloating-point value produced by the variable is rounded to an\ninteger. As with bodystyle *molecule*, each set of particles in the fix\ngroups with the same integer value is treated as a different rigid\nbody. Since fix property/atom vectors and atom-style variables\nproduce values for all particles, you should be careful to use a fix group\nthat only includes particles you want to be part of rigid bodies.\n\nFor bodystyle *group*, each of the listed groups is treated as a\nseparate rigid body. Only particles that are also in the fix group are\nincluded in each rigid body.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To compute the initial center-of-mass position and other\n > properties of each rigid body, the image flags for each particle in the\n > body are used to \"unwrap\" the particle coordinates. Thus you must\n > ensure that these image flags are consistent so that the unwrapping\n > creates a valid rigid body (one where the particles are close together)\n > , particularly if the particles in a single rigid body straddle a\n > periodic boundary. This means the input data file or restart file must\n > define the image flags for each particle consistently or that you have\n > used the [set ](https://docs.lammps.org/set.html) command to specify them correctly. If a\n > dimension is non-periodic then the image flag of each particle must be\n > 0 in that dimension, else an error is generated. \n > \n\nBy default, each rigid body is acted on by other particles which induce\nan external force and torque on its center of mass, causing it to\ntranslate and rotate. Components of the external center-of-mass force\nand torque can be turned off by the *force* and *torque* keywords.\nThis may be useful if you wish a body to rotate but not translate, or\nvice versa, or if you wish it to rotate or translate continuously\nunaffected by interactions with other particles. Note that if you\nexpect a rigid body not to move or rotate by using these keywords, you\nmust ensure its initial center-of-mass translational or angular\nvelocity is 0.0. Otherwise the initial translational or angular\nmomentum, the body has, will persist.\n\nAn xflag, yflag, or zflag set to *off* means turn off the component of\nforce or torque in that dimension. A setting of *on* means turn on\nthe component, which is the default. Which rigid body(s) the settings\napply to is determined by the first argument of the *force* and\n*torque* keywords. It can be an integer M from 1 to Nbody, where\nNbody is the number of rigid bodies defined. A wild-card asterisk can\nbe used in place of, or in conjunction with, the M argument to set the\nflags for multiple rigid bodies. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If N = the number of rigid bodies, then an asterisk\nwith no numeric values means all bodies from 1 to N. A leading\nasterisk means all bodies from 1 to n (inclusive). A trailing\nasterisk means all bodies from n to N (inclusive). A middle asterisk\nmeans all bodies from m to n (inclusive). Note that you can use the\n*force* or *torque* keywords as many times as you like. If a\nparticular rigid body has its component flags set multiple times, the\nsettings from the final keyword are used.\n\nFor computational efficiency, you should typically define one fix\nrigid/meso command which includes all the desired rigid bodies. LAMMPS\nwill allow multiple rigid/meso fixes to be defined, but it is more\nexpensive.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *reinit* keyword determines, whether the rigid body properties\nare re-initialized between run commands. With the option *yes* (the\ndefault) this is done, with the option *no* this is not done. Turning\noff the re-initialization can be helpful to protect rigid bodies against\nunphysical manipulations between runs or when properties cannot be\neasily re-computed (e.g. when read from a file). When using the *infile*\nkeyword, the *reinit* option is automatically set to *no* .\n\n----------\n\nThe *infile* keyword allows a file of rigid body attributes to be read\nin from a file, rather then having LAMMPS compute them. There are 5\nsuch attributes: the total mass of the rigid body, its center-of-mass\nposition, its 6 moments of inertia, its center-of-mass velocity, and\nthe 3 image flags of the center-of-mass position. For rigid bodies\nconsisting of point particles or non-overlapping finite-size\nparticles, LAMMPS can compute these values accurately. However, for\nrigid bodies consisting of finite-size particles which overlap each\nother, LAMMPS will ignore the overlaps when computing these 4\nattributes. The amount of error this induces depends on the amount of\noverlap. To avoid this issue, the values can be pre-computed\n(e.g. using Monte Carlo integration).\n\nThe format of the file is as follows. Note that the file does not\nhave to list attributes for every rigid body integrated by fix rigid.\nOnly bodies which the file specifies will have their computed\nattributes overridden. The file can contain initial blank lines or\ncomment lines starting with \"#\" which are ignored. The first\nnon-blank, non-comment line should list N = the number of lines to\nfollow. The N successive lines contain the following information:\n\n```\nID1 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\nID2 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n...\nIDN masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n```\nThe rigid body IDs are all positive integers. For the *single*\nbodystyle, only an ID of 1 can be used. For the *group* bodystyle,\nIDs from 1 to Ng can be used where Ng is the number of specified\ngroups. For the *molecule* bodystyle, use the molecule ID for the\natoms in a specific rigid body as the rigid body ID.\n\nThe masstotal and center-of-mass coordinates (xcm,ycm,zcm) are\nself-explanatory. The center-of-mass should be consistent with what\nis calculated for the position of the rigid body with all its atoms\nunwrapped by their respective image flags. If this produces a\ncenter-of-mass that is outside the simulation box, LAMMPS wraps it\nback into the box.\n\nThe 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the\nvalues consistent with the current orientation of the rigid body\naround its center of mass. The values are with respect to the\nsimulation box XYZ axes, not with respect to the principal axes of the\nrigid body itself. LAMMPS performs the latter calculation internally.\n\nThe (vxcm,vycm,vzcm) values are the velocity of the center of mass.\nThe (lx,ly,lz) values are the angular momentum of the body. The\n(vxcm,vycm,vzcm) and (lx,ly,lz) values can simply be set to 0 if you\nwish the body to have no initial motion.\n\nThe (ixcm,iycm,izcm) values are the image flags of the center of mass\nof the body. For periodic dimensions, they specify which image of the\nsimulation box the body is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of -1 means subtract 1 box length to\nget the true value. LAMMPS updates these flags as the rigid bodies\ncross periodic boundaries during the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the *infile* keyword and write restart\n > files during a simulation, then each time a restart file is written,\n > the fix also write an auxiliary restart file with the name\n > rfile.rigid, where \"rfile\" is the name of the restart file,\n > e.g. tmp.restart.10000 and tmp.restart.10000.rigid. This auxiliary\n > file is in the same format described above. Thus it can be used in a\n > new input script that restarts the run and re-specifies a rigid fix\n > using an *infile* keyword and the appropriate filename. Note that the\n > auxiliary file will contain one line for every rigid body, even if the\n > original file only listed a subset of the rigid bodies. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information is written to [binary restart files ](https://docs.lammps.org/restart.html).\nIf the *infile* keyword is used, an auxiliary file is written out\nwith rigid body information each time a restart file is written, as\nexplained above for the *infile* keyword.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe number of rows in the array is equal to the number of rigid\nbodies. The number of columns is 28. Thus for each rigid body, 28\nvalues are stored: the xyz coords of the center of mass (COM), the xyz\ncomponents of the COM velocity, the xyz components of the force acting\non the COM, the components of the 4-vector quaternion representing the\norientation of the rigid body, the xyz components of the angular velocity\nof the body around its COM, the xyz components of the torque acting on the\nCOM, the 3 principal components of the moment of inertia, the xyz components\nof the angular momentum of the body around its COM, and the xyz image\nflags of the COM.\n\nThe center of mass (COM) for each body is similar to unwrapped\ncoordinates written to a dump file. It will always be inside (or\nslightly outside) the simulation box. The image flags have the same\nmeaning as image flags for particle positions (see the \"dump\" command).\nThis means you can calculate the unwrapped COM by applying the image\nflags to the COM, the same as when unwrapped coordinates are written\nto a dump file.\n\nThe force and torque values in the array are not affected by the\n*force* and *torque* keywords in the fix rigid command; they reflect\nvalues before any changes are made by those keywords.\n\nThe ordering of the rigid bodies (by row in the array) is as follows.\nFor the *single* keyword there is just one rigid body. For the\n*molecule* keyword, the bodies are ordered by ascending molecule ID.\nFor the *group* keyword, the list of group IDs determines the ordering\nof bodies.\n\nThe array values calculated by this fix are \"intensive\", meaning they\nare independent of the number of particles in the simulation.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Miller)** Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,\nJ Chem Phys, 116, 8649 (2002). \n ", - "restrictions": "This fix is part of the DPD-SMOOTH package and also depends on the RIGID\npackage. It is only enabled if LAMMPS was built with both packages. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store density and internal energy as\ndefined by the [atom_style sph ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be mesoscopic SPH/SDPD particles.\n\nThis fix is incompatible with deformation controls that remap velocity,\nfor instance the *remap v* option of [fix deform ](https://docs.lammps.org/fix_deform.html).\n", - "related": "[fix meso/move ](https://docs.lammps.org/fix_meso_move.html), [fix rigid ](https://docs.lammps.org/fix_rigid.html),\n[neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* adf = style name of this compute command\n* Nbin = number of ADF bins\n* itypeN = central atom type for Nth ADF histogram (see asterisk form below)\n* jtypeN = J atom type for Nth ADF histogram (see asterisk form below)\n* ktypeN = K atom type for Nth ADF histogram (see asterisk form below)\n* RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units)\n* RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units)\n* RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units)\n* RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units)\n* zero or one keyword/value pairs may be appended\n* keyword = ordinate \n *        ordinate value = degree or radian or cosine \n         Choose the ordinate parameter for the histogram \n", + "examples": "\n```lmps\ncompute 1 fluid adf 32 1 1 1 0.0 1.2 0.0 1.2 &\n1 1 2 0.0 1.2 0.0 1.5 &\n1 2 2 0.0 1.5 0.0 1.5 &\n2 1 1 0.0 1.2 0.0 1.2 &\n2 1 2 0.0 1.5 2.0 3.5 &\n2 2 2 2.0 3.5 2.0 3.5\ncompute 1 fluid adf 32 1*2 1*2 1*2 0.5 3.5\ncompute 1 fluid adf 32\n```\n", + "html_filename": "compute_adf.html", + "short_description": "Define a computation that calculates one or more angular distribution functions\n(ADF) for a group of particles", + "description": "Define a computation that calculates one or more angular distribution functions\n(ADF) for a group of particles. Each ADF is calculated in histogram form\nby measuring the angle formed by a central atom and two neighbor atoms and\nbinning these angles into *Nbin* bins.\nOnly neighbors for which *Rinner* < *R* < *Router* are counted, where\n*Rinner* and *Router* are specified separately for the first and second\nneighbor atom in each requested ADF.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses a neighbor list, it also means\n > those pairs will not be included in the ADF. This does not apply when\n > using long-range coulomb interactions (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g. 1.0e-50). Another workaround is to write a dump file, and\n > use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the ADF for snapshots in\n > the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you request any outer cutoff *Router* > force cutoff, or if no\n > pair style is defined, e.g. the [rerun ](https://docs.lammps.org/rerun.html) command is being used to\n > post-process a dump file of snapshots you must ensure ghost atom information\n > out to the largest value of *Router* + *skin* is communicated, via the\n > [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command, else the ADF computation\n > cannot be performed, and LAMMPS will give an error message. The *skin* value\n > is what is specified with the [neighbor ](https://docs.lammps.org/neighbor.html) command. \n > \n\nThe *itypeN*,\\ *jtypeN*,\\ *ktypeN* settings can be specified in one of two\nways. An explicit numeric value can be used, as in the first example\nabove. Or a wild-card asterisk can be used to specify a range of atom\ntypes as in the second example above.\nThis takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the\nnumber of atom types, then an asterisk with no numeric values means\nall types from 1 to N. A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from n to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nIf *itypeN*, *jtypeN*, and *ktypeN* are single values, as in the first example\nabove, this means that the ADF is computed where atoms of type *itypeN*\nare the central atom, and neighbor atoms of type *jtypeN* and *ktypeN*\nare forming the angle. If any of *itypeN*, *jtypeN*, or *ktypeN*\nrepresent a range of values via\nthe wild-card asterisk, as in the second example above, this means that the\nADF is computed where atoms of any of the range of types represented\nby *itypeN* are the central atom, and the angle is formed by two neighbors,\none neighbor in the range of types represented by *jtypeN* and another neighbor\nin the range of types represented by *ktypeN* .\n\nIf no *itypeN*, *jtypeN*, *ktypeN* settings are specified, then\nLAMMPS will generate a single ADF for all atoms in the group.\nThe inner cutoff is set to zero and the outer cutoff is set\nto the force cutoff. If no pair_style is specified, there is no\nforce cutoff and LAMMPS will give an error message. Note that\nin most cases, generating an ADF for all atoms is not a good thing.\nSuch an ADF is both uninformative and\nextremely expensive to compute. For example, with liquid water\nwith a 10 A force cutoff, there are 80,000 angles per atom.\nIn addition, most of the interesting angular structure occurs for\nneighbors that are the closest to the central atom, involving\njust a few dozen angles.\n\nAngles for each ADF are generated by double-looping over the list of\nneighbors of each central atom I,\njust as they would be in the force calculation for\na three-body potential such as [Stillinger-Weber ](https://docs.lammps.org/pair_sw.html).\nThe angle formed by central atom I and neighbor atoms J and K is included in an\nADF if the following criteria are met:\n\n* atoms I,J,K are all in the specified compute group\n* the distance between atoms I,J is between Rjinner and Rjouter\n* the distance between atoms I,K is between Rkinner and Rkouter\n* the type of the I atom matches itypeN (one or a range of types)\n* atoms I,J,K are distinct\n* the type of the J atom matches jtypeN (one or a range of types)\n* the type of the K atom matches ktypeN (one or a range of types)\n\nEach unique angle satisfying the above criteria is counted only once, regardless\nof whether either or both of the neighbor atoms making up the\nangle appear in both the J and K lists.\nIt is OK if a particular angle is included in more than\none individual histogram, due to the way the *itypeN*, *jtypeN*, *ktypeN*\narguments are specified.\n\nThe first ADF value for a bin is calculated from the histogram count by\ndividing by the total number of triples satisfying the criteria,\nso that the integral of the ADF w.r.t. angle is 1, i.e. the ADF\nis a probability density function.\n\nThe second ADF value is reported as a cumulative sum of\nall bins up to the current bins, averaged\nover atoms of type *itypeN* . It represents the\nnumber of angles per central atom with angle less\nthan or equal to the angle of the current bin,\nanalogous to the coordination\nnumber radial distribution function.\n\nThe *ordinate* optional keyword determines\nwhether the bins are of uniform angular size from zero\nto 180 (\\ *degree* ), zero to Pi (\\ *radian* ), or the\ncosine of the angle uniform in the range [-1,1] (\\ *cosine* ).\n*cosine* has the advantage of eliminating the *acos()* function\ncall, which speeds up the compute by 2-3x, and it is also preferred\non physical grounds, because the for uniformly distributed particles\nin 3D, the angular probability density w.r.t dtheta is\nsin(theta)/2, while for d(cos(theta)), it is 1/2,\nRegardless of which ordinate is chosen, the first column of ADF\nvalues is normalized w.r.t. the range of that ordinate, so that\nthe integral is 1.\n\nThe simplest way to output the results of the compute adf calculation\nto a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for\nexample:\n\n```lmps\ncompute myADF all adf 32 2 2 2 0.5 3.5 0.5 3.5\nfix 1 all ave/time 100 1 100 c_myADF[*] file tmp.adf mode vector\n```\n #### Output info\n\nThis compute calculates a global array with the number of rows =\n*Nbins* and the number of columns = \\(1 + 2 \\times\\) *Ntriples*, where *Ntriples*\nis the number of I,J,K triples specified. The first column has the bin\ncoordinate (angle-related ordinate at midpoint of bin). Each subsequent column has\nthe two ADF values for a specific set of (\\ *itypeN*,\\ *jtypeN*,\\ *ktypeN* )\ninteractions, as described above. These values can be used\nby any command that uses a global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"intensive\".\n\nThe first column of array values is the angle-related ordinate, either\nthe angle in degrees or radians, or the cosine of the angle. Each\nsubsequent pair of columns gives the first and second kinds of ADF\nfor a specific set of (\\ *itypeN*,\\ *jtypeN*,\\ *ktypeN* ). The values\nin the first ADF column are normalized numbers \\(\\ge 0.0\\),\nwhose integral w.r.t. the ordinate is 1,\ni.e. the first ADF is a normalized probability distribution.\nThe values in the second ADF column are also numbers \\(\\ge 0.0\\).\nThey are the cumulative density distribution of angles per atom.\nBy definition, this ADF is monotonically increasing from zero to\na maximum value equal to the average total number of\nangles per atom satisfying the ADF criteria.\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default, the ADF is not computed for distances longer than the\nlargest force cutoff, since the neighbor list creation will only contain\npairs up to that distance (plus neighbor list skin). If you use outer\ncutoffs larger than that, you must use [neighbor style 'bin' or'nsq' ](https://docs.lammps.org/neighbor.html).\n\nIf you want an ADF for a larger outer cutoff, you can also use the\n[rerun ](https://docs.lammps.org/rerun.html) command to post-process a dump file, use [pairstyle zero ](https://docs.lammps.org/pair_zero.html) and set the force cutoff to be larger in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary and with pair style zero you are not computing any forces, and\nsince you are not running dynamics you are not changing the model that\ngenerated the trajectory.\n\nThe ADF is not computed for neighbors outside the force cutoff,\nsince processors (in parallel) don't know about atom coordinates for\natoms further away than that distance. If you want an ADF for larger\ndistances, you can use the [rerun ](https://docs.lammps.org/rerun.html) command to post-process\na dump file and set the cutoff for the potential to be longer in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary, since you are not running dynamics and thus are not changing\nyour model.\n", + "related": "[compute rdf ](https://docs.lammps.org/compute_rdf.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html), [compute_modify ](https://docs.lammps.org/compute_modify.html)\n" }, { "command": [ - "pair_style dsmc" + "compute smd/ulsph/strain/rate" ], "syntax": [ - "pair_style dsmc max_cell_size seed weighting Tref Nrecompute Nsample" + "compute ID group-ID smd/ulsph/strain/rate" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "dsmc", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "max_cell_size", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "seed", - "type": 2, + "arg": "smd/ulsph/strain/rate", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/strain/rate = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/ulsph/strain/rate\n```\n", + "html_filename": "compute_smd_ulsph_strain_rate.html", + "short_description": "Define a computation that outputs the rate of the logarithmic strain\ntensor for particles interacting via the updated Lagrangian SPH pair\nstyle", + "description": "Define a computation that outputs the rate of the logarithmic strain\ntensor for particles interacting via the updated Lagrangian SPH pair\nstyle.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute can only be used for particles which interact with the\nupdated Lagrangian SPH pair style.\n", + "related": "[compute smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html)\n" +}, +{ + "command": [ + "compute gyration/shape" + ], + "syntax": [ + "compute ID group-ID gyration/shape compute-ID" + ], + "args": [ + [ + { + "arg": "compute", + "type": 1, "choices": [] }, { - "arg": "weighting", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "Tref", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "Nrecompute", - "type": 2, + "arg": "gyration/shape", + "type": 1, "choices": [] }, { - "arg": "Nsample", + "arg": "compute-ID", "type": 2, "choices": [] } ] ], - "parameters": "* max_cell_size = global maximum cell size for DSMC interactions (distance units)\n* seed = random # seed (positive integer)\n* weighting = macroparticle weighting\n* Tref = reference temperature (temperature units)\n* Nrecompute = re-compute v\\*sigma_max every this many timesteps (timesteps)\n* Nsample = sample this many times in recomputing v\\*sigma_max \n", - "examples": "\n```lmps\npair_style dsmc 2.5 34387 10 1.0 100 20\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n```\n", - "html_filename": "pair_dsmc.html", - "short_description": "Style *dsmc* computes collisions between pairs of particles for a\ndirect simulation Monte Carlo (DSMC) model following the exposition in\n**Bird**", - "description": "Style *dsmc* computes collisions between pairs of particles for a\ndirect simulation Monte Carlo (DSMC) model following the exposition in\n**Bird**. Each collision resets the velocities of the two\nparticles involved. The number of pairwise collisions for each pair\nor particle types and the length scale within which they occur are\ndetermined by the parameters of the pair_style and pair_coeff\ncommands.\n\nStochastic collisions are performed using the variable hard sphere\n(VHS) approach, with the user-defined *max_cell_size* value used as\nthe maximum DSMC cell size, and reference cross-sections for\ncollisions given using the pair_coeff command.\n\nThere is no pairwise energy or virial contributions associated with\nthis pair style.\n\nThe following coefficient must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* sigma (area units, i.e. distance-squared)\n\nThe global DSMC *max_cell_size* determines the maximum cell length\nused in the DSMC calculation. A structured mesh is overlayed on the\nsimulation box such that an integer number of cells are created in\neach direction for each processor's subdomain. Cell lengths are\nadjusted up to the user-specified maximum cell size.\n\n----------\n\nTo perform a DSMC simulation with LAMMPS, several additional options\nshould be set in your input script, though LAMMPS does not check for\nthese settings.\n\nSince this pair style does not compute particle forces, you should use\nthe \"fix nve/noforce\" time integration fix for the DSMC particles,\ne.g.\n\n```lmps\nfix 1 all nve/noforce\n```\nThis pair style assumes that all particles will communicated to\nneighboring processors every timestep as they move. This makes it\npossible to perform all collisions between pairs of particles that are\non the same processor. To ensure this occurs, you should use\nthese commands:\n\n```lmps\nneighbor 0.0 bin\nneigh_modify every 1 delay 0 check no\natom_modify sort 0 0.0\ncommunicate single cutoff 0.0\n```\nThese commands ensure that LAMMPS communicates particles to\nneighboring processors every timestep and that no ghost atoms are\ncreated. The output statistics for a simulation run should indicate\nthere are no ghost particles or neighbors.\n\nIn order to get correct DSMC collision statistics, users should\nspecify a Gaussian velocity distribution when populating the\nsimulation domain. Note that the default velocity distribution is\nuniform, which will not give good DSMC collision rates. Specify\n\"dist gaussian\" when using the [velocity ](https://docs.lammps.org/velocity.html) command\nas in the following:\n\n```lmps\nvelocity all create 594.6 87287 loop geom dist gaussian\n```\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file. Note\nthat the user-specified random number seed is stored in the restart\nfile, so when a simulation is restarted, each processor will\nre-initialize its random number generator the same way it did\ninitially. This means the random forces will be random, but will not\nbe the same as they would have been if the original simulation had\ncontinued past the restart time.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bird)** G. A. Bird, \"Molecular Gas Dynamics and the Direct Simulation\nof Gas Flows\" (1994). \n ", - "restrictions": "This pair style is part of the MC package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per\natom type masses.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html),\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* gyration/shape = style name of this compute command\n* compute-ID = ID of [compute gyration ](https://docs.lammps.org/compute_gyration.html) command \n", + "examples": "\n```lmps\ncompute 1 molecule gyration/shape pe\n```\n", + "html_filename": "compute_gyration_shape.html", + "short_description": "Define a computation that calculates the eigenvalues of the gyration tensor of a\ngroup of atoms and three shape parameters", + "description": "Define a computation that calculates the eigenvalues of the gyration tensor of a\ngroup of atoms and three shape parameters. The computation includes all effects\ndue to atoms passing through periodic boundaries.\n\nThe three computed shape parameters are the asphericity, \\(b\\),\nthe acylindricity, \\(c\\), and the relative shape anisotropy, \\(k\\),\nviz.,\n\\[.. math::\\]\n b &= l_z - \\frac12(l_y+l_x) \\\\\n c &= l_y - l_x \\\\\n k &= \\frac{3}{2} \\frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \\frac{1}{2}\n\nwhere \\(l_x \\le l_y \\le l_z\\) are the three eigenvalues of the gyration\ntensor. A general description of these parameters is provided in\n**Mattice1** while an application to polymer systems\ncan be found in **Theodorou1**.\nThe asphericity is always non-negative and zero only when the three principal\nmoments are equal. This zero condition is met when the distribution of\nparticles is spherically symmetric (hence the name asphericity) but also\nwhenever the particle distribution is symmetric with respect to the three\ncoordinate axes (e.g., when the particles are distributed uniformly on a cube,\ntetrahedron or other Platonic solid). The acylindricity is always non-negative\nand zero only when the two principal moments are equal. This zero condition is\nmet when the distribution of particles is cylindrically symmetric (hence the\nname, acylindricity), but also whenever the particle distribution is symmetric\nwith respect to the two coordinate axes (e.g., when the\nparticles are distributed uniformly on a regular prism).\nThe relative shape anisotropy is bounded between zero (if all points are\nspherically symmetric) and one (if all points lie on a line).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the gyration tensor in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data ](https://docs.lammps.org/read_data.html)\n > command for a discussion of image flags and how they are set for each\n > atom. You can reset the image flags (e.g., to 0) before invoking this\n > compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 6, which can be accessed by\nindices 1--6. The first three values are the eigenvalues of the gyration tensor\nfollowed by the asphericity, the acylindricity and the relative shape\nanisotropy. The computed values can be used by any command that uses global\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values calculated by this compute are\n\"intensive\". The first five vector values will be in\ndistance\\ \\(2\\) [units ](https://docs.lammps.org/units.html) while the sixth one is dimensionless.\n\n**(Mattice1)** Mattice, Suter, Conformational Theory of Large Molecules, Wiley, New York, 1994. \n \n**(Theodorou1)** Theodorou, Suter, Macromolecules, 18, 1206 (1985). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute gyration ](https://docs.lammps.org/compute_gyration.html)\n" }, { "command": [ - "undump" + "newton" ], "syntax": [ - "undump dump-ID" + "newton flag", + "newton flag1 flag2" ], "args": [ [ { - "arg": "undump", + "arg": "newton", "type": 1, "choices": [] }, { - "arg": "dump-ID", + "arg": "flag", "type": 2, "choices": [] } - ] - ], - "parameters": "* dump-ID = ID of previously defined dump \n", - "examples": "\n```lmps\nundump mine\nundump 2\n```\n", - "html_filename": "undump.html", - "short_description": "Turn off a previously defined dump so that it is no longer active", - "description": "Turn off a previously defined dump so that it is no longer active.\nThis closes the file associated with the dump.\n", - "restrictions": " none\n", - "related": "[dump ](https://docs.lammps.org/dump.html)\n" -}, -{ - "command": [ - "improper_style distance" - ], - "syntax": [ - "improper_style distance" - ], - "args": [ + ], [ { - "arg": "improper_style", + "arg": "newton", "type": 1, "choices": [] }, { - "arg": "distance", - "type": 1, + "arg": "flag1", + "type": 2, + "choices": [] + }, + { + "arg": "flag2", + "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style distance\nimproper_coeff 1 80.0 100.0\n```\n", - "html_filename": "improper_distance.html", - "short_description": "The *distance* improper style uses the potential\n\\[\n E = K_2 d^2 + K_4 d^4\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms", - "description": "The *distance* improper style uses the potential\n\\[\n E = K_2 d^2 + K_4 d^4\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the I-atom is assumed to be the\ncentral atom.\n\n ![Image](JPG/improper_distance.jpg) \n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K_2\\) (energy/distance\\^2)\n* \\(K_4\\) (energy/distance\\^4)\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* flag = on or off for both pairwise and bonded interactions\n* flag1 = on or off for pairwise interactions\n* flag2 = on or off for bonded interactions \n", + "examples": "\n```lmps\nnewton off\nnewton on off\n```\n", + "html_filename": "newton.html", + "short_description": "This command turns Newton's third law *on* or *off* for pairwise and\nbonded interactions", + "description": "This command turns Newton's third law *on* or *off* for pairwise and\nbonded interactions. For most problems, setting Newton's third law to\n*on* means a modest savings in computation at the cost of two times\nmore communication. Whether this is faster depends on problem size,\nforce cutoff lengths, a machine's compute/communication ratio, and how\nmany processors are being used.\n\nSetting the pairwise newton flag to *off* means that if two\ninteracting atoms are on different processors, both processors compute\ntheir interaction and the resulting force information is not\ncommunicated. Similarly, for bonded interactions, newton *off* means\nthat if a bond, angle, dihedral, or improper interaction contains\natoms on 2 or more processors, the interaction is computed by each\nprocessor.\n\nLAMMPS should produce the same answers for any newton flag settings,\nexcept for round-off issues.\n\nWith [run_style ](https://docs.lammps.org/run_style.html) *respa* and only bonded interactions\n(bond, angle, etc) computed in the innermost timestep, it may be\nfaster to turn newton *off* for bonded interactions, to avoid extra\ncommunication in the innermost loop.\n", + "restrictions": "The newton bond setting cannot be changed after the simulation box is\ndefined by a [read_data ](https://docs.lammps.org/read_data.html) or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", + "related": "[run_style ](https://docs.lammps.org/run_style.html) respa\n" }, { "command": [ - "kspace_modify" + "compute edpd/temp/atom" ], "syntax": [ - "kspace_modify keyword value ..." + "compute ID group-ID edpd/temp/atom" ], "args": [ [ { - "arg": "kspace_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "wire", - "type": 3, - "choices": [ - "collective", - "compute", - "cutoff/adjust", - "diff", - "disp/auto", - "fftbench", - "force/disp/kspace", - "force/disp/real", - "force", - "gewald/disp", - "gewald", - "kmax/ewald", - "mesh", - "minorder", - "mix/disp", - "order/disp", - "order", - "overlap", - "scafacos", - "slab", - "splittol", - "wire" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "edpd/temp/atom", + "type": 1, + "choices": [] } ] ], - "parameters": "* one or more keyword/value pairs may be listed\n* keyword = collective or compute or cutoff/adjust or diff or disp/auto or fftbench or force/disp/kspace or force/disp/real or force or gewald/disp or gewald or kmax/ewald or mesh or minorder or mix/disp or order/disp or order or overlap or scafacos or slab or splittol or wire \n *        collective value = yes or no \n *        compute value = yes or no \n *        cutoff/adjust value = yes or no \n *        diff value = ad or ik = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode \n *        disp/auto value = yes or no \n *        fftbench value = yes or no \n *        force/disp/real value = accuracy (force units) \n *        force/disp/kspace value = accuracy (force units) \n *        force value = accuracy (force units) \n *        gewald value = rinv (1/distance units) \n         rinv = G-ewald parameter for Coulombics \n *        gewald/disp value = rinv (1/distance units) \n         rinv = G-ewald parameter for dispersion \n *        kmax/ewald value = kx ky kz \n         kx,ky,kz = number of Ewald sum kspace vectors in each dimension \n *        mesh value = x y z \n         x,y,z = grid size in each dimension for long-range Coulombics \n *        *mesh/disp* value = x y z \n         x,y,z = grid size in each dimension for 1/r\\^6 dispersion \n *        minorder value = M \n         M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication \n *        mix/disp value = pair or geom or none \n *        order value = N \n         N = extent of Gaussian for PPPM or MSM mapping of charge to grid \n *        order/disp value = N \n         N = extent of Gaussian for PPPM mapping of dispersion term to grid \n *        overlap = yes or no = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor \n *        *pressure/scalar* value = yes or no \n *        scafacos values = option value1 value2 ... \n         option = tolerance \n         value = energy or energy_rel or field or field_rel or potential or potential_rel \n         option = fmm_tuning \n         value = 0 or 1 \n *        slab value = volfactor or nozforce \n         volfactor = ratio of the total extended volume used in the \n         2d approximation compared with the volume of the simulation domain \n         nozforce turns off kspace forces in the z direction \n *        splittol value = tol \n         tol = relative size of two eigenvalues (see discussion below) \n *        wire value = volfactor (available with ELECTRODE package) \n         volfactor = ratio of the total extended dimension used in the 1d \n         approximation compared with the dimension of the simulation domain \n", - "examples": "\n```lmps\nkspace_modify mesh 24 24 30 order 6\nkspace_modify slab 3.0\nkspace_modify scafacos tolerance energy\n```\n", - "html_filename": "kspace_modify.html", - "short_description": "Set parameters used by the kspace solvers defined by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command", - "description": "Set parameters used by the kspace solvers defined by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command. Not all parameters are\nrelevant to all kspace styles.\n\n----------\n\nThe *collective* keyword applies only to PPPM. It is set to *no* by\ndefault, except on IBM BlueGene machines. If this option is set to\n*yes*, LAMMPS will use MPI collective operations to remap data for\n3d-FFT operations instead of the default point-to-point communication.\nThis is faster on IBM BlueGene machines, and may also be faster on\nother machines if they have an efficient implementation of MPI\ncollective operations and adequate hardware.\n\n----------\n\nThe *compute* keyword allows Kspace computations to be turned off,\neven though a [kspace_style ](https://docs.lammps.org/kspace_style.html) is defined. This is\nnot useful for running a real simulation, but can be useful for\ndebugging purposes or for computing only partial forces that do not\ninclude the Kspace contribution. You can also do this by simply not\ndefining a [kspace_style ](https://docs.lammps.org/kspace_style.html), but a Kspace-compatible\n[pair_style ](https://docs.lammps.org/pair_style.html) requires a kspace style to be defined.\nThis keyword gives you that option.\n\n----------\n\nThe *cutoff/adjust* keyword applies only to MSM. If this option is\nturned on, the Coulombic cutoff will be automatically adjusted at the\nbeginning of the run to give the desired estimated error. Other\ncutoffs such as LJ will not be affected. If the grid is not set using\nthe *mesh* command, this command will also attempt to use the optimal\ngrid that minimizes cost using an estimate given by\n**Hardy1**. Note that this cost estimate is not exact, somewhat\nexperimental, and still may not yield the optimal parameters.\n\n----------\n\nThe *diff* keyword specifies the differentiation scheme used by the\nPPPM method to compute forces on particles given electrostatic\npotentials on the PPPM mesh. The *ik* approach is the default for\nPPPM and is the original formulation used in **Hockney1**. It\nperforms differentiation in Kspace, and uses 3 FFTs to transfer each\ncomponent of the computed fields back to real space for total of 4\nFFTs per timestep.\n\nThe analytic differentiation *ad* approach uses only 1 FFT to transfer\ninformation back to real space for a total of 2 FFTs per timestep. It\nthen performs analytic differentiation on the single quantity to\ngenerate the 3 components of the electric field at each grid point.\nThis is sometimes referred to as \"smoothed\" PPPM. This approach\nrequires a somewhat larger PPPM mesh to achieve the same accuracy as\nthe *ik* method. Currently, only the *ik* method (default) can be\nused for a triclinic simulation cell with PPPM. The *ad* method is\nalways used for MSM.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently, not all PPPM styles support the *ad* option. Support\n > for those PPPM variants will be added later. \n > \n\n----------\n\nThe *disp/auto* option controls whether the pppm/disp is allowed to\ngenerate PPPM parameters automatically. If set to *no*, parameters have\nto be specified using the *gewald/disp*, *mesh/disp*,\n*force/disp/real* or *force/disp/kspace* keywords, or\nthe code will stop with an error message. When this option is set to\n*yes*, the error message will not appear and the simulation will start.\nFor a typical application, using the automatic parameter generation\nwill provide simulations that are either inaccurate or slow. Using this\noption is thus not recommended. For guidelines on how to obtain good\nparameters, see the [long-range dispersion howto ](https://docs.lammps.org/Howto_dispersion.html)\ndiscussion.\n\n----------\n\nThe *fftbench* keyword applies only to PPPM. It is off by default. If\nthis option is turned on, LAMMPS will perform a short FFT benchmark\ncomputation and report its timings, and will thus finish some seconds\nlater than it would if this option were off.\n\n----------\n\nThe *force/disp/real* and *force/disp/kspace* keywords set the force\naccuracy for the real and reciprocal space computations for the dispersion\npart of pppm/disp. As shown in **Isele-Holder1**,\noptimal performance and accuracy in the results is obtained when these\nvalues are different.\n\n----------\n\nThe *force* keyword overrides the relative accuracy parameter set by\nthe [kspace_style ](https://docs.lammps.org/kspace_style.html) command with an absolute\naccuracy. The accuracy determines the RMS error in per-atom forces\ncalculated by the long-range solver and is thus specified in force\nunits. A negative value for the accuracy setting means to use the\nrelative accuracy parameter. The accuracy setting is used in\nconjunction with the pairwise cutoff to determine the number of\nK-space vectors for style *ewald*, the FFT grid size for style\n*pppm*, or the real space grid size for style *msm* .\n\n----------\n\nThe *gewald* keyword sets the value of the Ewald or PPPM G-ewald\nparameter for charge as *rinv* in reciprocal distance units. Without\nthis setting, LAMMPS chooses the parameter automatically as a function\nof cutoff, precision, grid spacing, etc. This means it can vary from\none simulation to the next which may not be desirable for matching a\nKSpace solver to a pre-tabulated pairwise potential. This setting can\nalso be useful if Ewald or PPPM fails to choose a good grid spacing\nand G-ewald parameter automatically. If the value is set to 0.0,\nLAMMPS will choose the G-ewald parameter automatically. MSM does not\nuse the *gewald* parameter.\n\n----------\n\nThe *gewald/disp* keyword sets the value of the Ewald or PPPM G-ewald\nparameter for dispersion as *rinv* in reciprocal distance units. It\nhas the same meaning as the *gewald* setting for Coulombics.\n\n----------\n\nThe *kmax/ewald* keyword sets the number of kspace vectors in each\ndimension for kspace style *ewald* . The three values must be positive\nintegers, or else (0,0,0), which unsets the option. When this option\nis not set, the Ewald sum scheme chooses its own kspace vectors,\nconsistent with the user-specified accuracy and pairwise cutoff. In\nany case, if kspace style *ewald* is invoked, the values used are\nprinted to the screen and the log file at the start of the run.\n\n----------\n\nThe *mesh* keyword sets the grid size for kspace style *pppm* or\n*msm* . In the case of PPPM, this is the FFT mesh, and each dimension\nmust be factorizable into powers of 2, 3, and 5. In the case of MSM,\nthis is the finest scale real-space mesh, and each dimension must be\nfactorizable into powers of 2. When this option is not set, the PPPM\nor MSM solver chooses its own grid size, consistent with the\nuser-specified accuracy and pairwise cutoff. Values for x,y,z of\n0,0,0 unset the option.\n\n----------\n\nThe *mesh/disp* keyword sets the grid size for kspace style\n*pppm/disp* . This is the FFT mesh for long-range dispersion and ach\ndimension must be factorizable into powers of 2, 3, and 5. When this\noption is not set, the PPPM solver chooses its own grid size,\nconsistent with the user-specified accuracy and pairwise cutoff.\nValues for x,y,z of 0,0,0 unset the option.\n\n----------\n\nThe *minorder* keyword allows LAMMPS to reduce the *order* setting if\nnecessary to keep the communication of ghost grid point limited to\nexchanges between nearest-neighbor processors. See the discussion of\nthe *overlap* keyword for details. If the *overlap* keyword is set to\n*yes*, which is the default, this is never needed. If it set to *no*\nand overlap occurs, then LAMMPS will reduce the order setting, one\nstep at a time, until the ghost grid overlap only extends to nearest\nneighbor processors. The *minorder* keyword limits how small the\n*order* setting can become. The minimum allowed value for PPPM is 2,\nwhich is the default. If *minorder* is set to the same value as\n*order* then no reduction is allowed, and LAMMPS will generate an\nerror if the grid communication is non-nearest-neighbor and *overlap*\nis set to *no* . The *minorder* keyword is not currently supported in\nMSM.\n\n----------\n\nThe *mix/disp* keyword selects the mixing rule for the dispersion\ncoefficients. With *pair*, the dispersion coefficients of unlike\ntypes are computed as indicated with [pair_modify ](https://docs.lammps.org/pair_modify.html).\nWith *geom*, geometric mixing is enforced on the dispersion\ncoefficients in the kspace coefficients. When using the arithmetic\nmixing rule, this will speed-up the simulations but introduces some\nerror in the force computations, as shown in **Wennberg**.\nWith *none*, it is assumed that no mixing rule is\napplicable. Splitting of the dispersion coefficients will be performed\nas described in **Isele-Holder1**.\n\nThis splitting can be influenced with the *splittol* keywords. Only\nthe eigenvalues that are larger than tol compared to the largest\neigenvalues are included. Using this keywords the original matrix of\ndispersion coefficients is approximated. This leads to faster\ncomputations, but the accuracy in the reciprocal space computations of\nthe dispersion part is decreased.\n\n----------\n\nThe *order* keyword determines how many grid spacings an atom's charge\nextends when it is mapped to the grid in kspace style *pppm* or *msm* .\nThe default for this parameter is 5 for PPPM and 8 for MSM, which\nmeans each charge spans 5 or 8 grid cells in each dimension,\nrespectively. For the LAMMPS implementation of MSM, the order can\nrange from 4 to 10 and must be even. For PPPM, the minimum allowed\nsetting is 2 and the maximum allowed setting is 7. The larger the\nvalue of this parameter, the smaller that LAMMPS will set the grid\nsize, to achieve the requested accuracy. Conversely, the smaller the\norder value, the larger the grid size will be. Note that there is an\ninherent trade-off involved: a small grid will lower the cost of FFTs\nor MSM direct sum, but a larger order parameter will increase the cost\nof interpolating charge/fields to/from the grid.\n\nThe PPPM order parameter may be reset by LAMMPS when it sets up the\nFFT grid if the implied grid stencil extends beyond the grid cells\nowned by neighboring processors. Typically this will only occur when\nsmall problems are run on large numbers of processors. A warning will\nbe generated indicating the order parameter is being reduced to allow\nLAMMPS to run the problem. Automatic adjustment of the order parameter\nis not supported in MSM.\n\n----------\n\nThe *order/disp* keyword determines how many grid spacings an atom's\ndispersion term extends when it is mapped to the grid in kspace style\n*pppm/disp* . It has the same meaning as the *order* setting for\nCoulombics.\n\n----------\n\nThe *overlap* keyword can be used in conjunction with the *minorder*\nkeyword with the PPPM styles to adjust the amount of communication\nthat occurs when values on the FFT grid are exchanged between\nprocessors. This communication is distinct from the communication\ninherent in the parallel FFTs themselves, and is required because\nprocessors interpolate charge and field values using grid point values\nowned by neighboring processors (i.e. ghost point communication). If\nthe *overlap* keyword is set to *yes* then this communication is\nallowed to extend beyond nearest-neighbor processors, e.g. when using\nlots of processors on a small problem. If it is set to *no* then the\ncommunication will be limited to nearest-neighbor processors and the\n*order* setting will be reduced if necessary, as explained by the\n*minorder* keyword discussion. The *overlap* keyword is always set to\n*yes* in MSM.\n\n----------\n\nThe *pressure/scalar* keyword applies only to MSM. If this option is\nturned on, only the scalar pressure (i.e. (Pxx + Pyy + Pzz)/3.0) will\nbe computed, which can be used, for example, to run an isotropic barostat.\nComputing the full pressure tensor with MSM is expensive, and this option\nprovides a faster alternative. The scalar pressure is computed using a\nrelationship between the Coulombic energy and pressure **Hummer**\ninstead of using the virial equation. This option cannot be used to access\nindividual components of the pressure tensor, to compute per-atom virial,\nor with suffix kspace/pair styles of MSM, like OMP or GPU.\n\n----------\n\nThe *scafacos* keyword is used for settings that are passed to the\nScaFaCoS library when using [kspace_style scafacos ](https://docs.lammps.org/kspace_style.html).\n\nThe *tolerance* option affects how the *accuracy* specified with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command is interpreted by ScaFaCoS.\nThe following values may be used:\n\n* energy = absolute accuracy in total Coulombic energy\n* energy_rel = relative accuracy in total Coulombic energy\n* potential = absolute accuracy in total Coulombic potential\n* potential_rel = relative accuracy in total Coulombic potential\n* field = absolute accuracy in electric field\n* field_rel = relative accuracy in electric field\n\nThe values with suffix _rel indicate the tolerance is a relative\ntolerance; the other values impose an absolute tolerance on the given\nquantity. Absolute tolerance in this case means, that for a given\nquantity q and a given absolute tolerance of t_a the result should\nbe between q-t_a and q+t_a. For a relative tolerance t_r the relative\nerror should not be greater than t_r, i.e. abs(1 - (result/q)) < t_r.\nAs a consequence of this, the tolerance type should be checked, when\nperforming computations with a high absolute field / energy. E.g.\nif the total energy in the system is 1000000.0 an absolute tolerance\nof 1e-3 would mean that the result has to be between 999999.999 and\n1000000.001, which would be equivalent to a relative tolerance of\n1e-9.\n\nThe energy and energy_rel values, set a tolerance based on the total\nCoulombic energy of the system. The potential and potential_rel set a\ntolerance based on the per-atom Coulombic energy. The field and\nfield_rel tolerance types set a tolerance based on the electric field\nvalues computed by ScaFaCoS. Since per-atom forces are derived from\nthe per-atom electric field, this effectively sets a tolerance on the\nforces, similar to other LAMMPS KSpace styles, as explained on the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) doc page.\n\nNote that not all ScaFaCoS solvers support all tolerance types.\nThese are the allowed values for each method:\n\n* fmm = energy and energy_rel\n* p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic)\n* p3m = field\n* ewald = field\n* direct = has no tolerance tuning\n\nIf the tolerance type is not changed, the default values for the\ntolerance type are the first values in the above list, e.g. energy\nis the default tolerance type for the fmm solver.\n\nThe *fmm_tuning* option is only relevant when using the FMM method.\nIt activates (value=1) or deactivates (value=0) an internal tuning\nmechanism for the FMM solver. The tuning operation runs sequentially\nand can be very time-consuming. Usually it is not needed for systems\nwith a homogeneous charge distribution. The default for this option is\ntherefore *0* . The FMM internal tuning is performed once, when the\nsolver is set up.\n\n----------\n\nThe *slab* keyword allows an Ewald or PPPM solver to be used for a\nsystems that are periodic in x,y but non-periodic in z - a\n[boundary ](https://docs.lammps.org/boundary.html) setting of \"boundary p p f\". This is done\nby treating the system as if it were periodic in z, but inserting\nempty volume between atom slabs and removing dipole inter-slab\ninteractions so that slab-slab interactions are effectively turned\noff. The volfactor value sets the ratio of the extended dimension in\nz divided by the actual dimension in z. It must be a value >= 1.0. A\nvalue of 1.0 (the default) means the slab approximation is not used.\n\nThe recommended value for volfactor is 3.0. A larger value is\ninefficient; a smaller value introduces unwanted slab-slab\ninteractions. The use of fixed boundaries in z means that the user\nmust prevent particle migration beyond the initial z-bounds, typically\nby providing a wall-style fix. The methodology behind the *slab*\noption is explained in the paper by **Yeh**. The *slab*\noption is also extended to non-neutral systems **Ballenegger**.\n\nAn alternative slab option can be invoked with the *nozforce* keyword\nin lieu of the volfactor. This turns off all kspace forces in the z\ndirection. The *nozforce* option is not supported by MSM. For MSM,\nany combination of periodic, non-periodic, or shrink-wrapped\nboundaries can be set using [boundary ](https://docs.lammps.org/boundary.html) (the slab\napproximation in not needed). The *slab* keyword is not currently\nsupported by Ewald or PPPM when using a triclinic simulation cell. The\nslab correction has also been extended to point dipole interactions\n**Klapp** in [kspace_style ](https://docs.lammps.org/kspace_style.html)\n*ewald/disp*, *ewald/dipole*, and *pppm/dipole* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish to apply an electric field in the Z-direction, in\n > conjunction with the *slab* keyword, you should do it by adding\n > explicit charged particles to the +/- Z surfaces. If you do it via\n > the [fix efield ](https://docs.lammps.org/fix_efield.html) command, it will not give the correct\n > dielectric constant due to the Yeh/Berkowitz **Yeh** correction\n > not being compatible with how [fix efield ](https://docs.lammps.org/fix_efield.html) works. \n > \n\n----------\n\nThe *force/disp/real* and *force/disp/kspace* keywords set the force\naccuracy for the real and reciprocal space computations for the dispersion\npart of pppm/disp. As shown in **Isele-Holder1**,\noptimal performance and accuracy in the results is obtained when these\nvalues are different.\n\nThe *disp/auto* option controls whether the pppm/disp is allowed to\ngenerate PPPM parameters automatically. If set to *no*, parameters\nhave to be specified using the *gewald/disp*, *mesh/disp*,\n*force/disp/real* or *force/disp/kspace* keywords, or the code will\nstop with an error message. When this option is set to *yes*, the\nerror message will not appear and the simulation will start. For a\ntypical application, using the automatic parameter generation will\nprovide simulations that are either inaccurate or slow. Using this\noption is thus not recommended. For guidelines on how to obtain good\nparameters, see the [Howto dispersion ](https://docs.lammps.org/Howto_dispersion.html) doc page.\n\n----------\n\n**(Hardy1)** David Hardy thesis: Multilevel Summation for the Fast\nEvaluation of Forces for the Simulation of Biomolecules, University of\nIllinois at Urbana-Champaign, (2006). \n \n**(Hockney1)** Hockney and Eastwood, Computer Simulation Using Particles,\nAdam Hilger, NY (1989). \n \n**(Isele-Holder1)** Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J\nChem Theory Comput, 9, 5412 (2013). \n \n**(Wennberg)** Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput,\n9, 3527 (2013). \n \n**(Hummer)** Hummer, Gronbech-Jensen, Neumann, J Chem Phys, 109, 2791 (1998) \n \n**(Yeh)** Yeh and Berkowitz, J Chem Phys, 111, 3155 (1999). \n \n**(Ballenegger)** Ballenegger, Arnold, Cerda, J Chem Phys, 131, 094107\n(2009). \n \n**(Klapp)** Klapp, Schoen, J Chem Phys, 117, 8050 (2002). \n ", - "restrictions": "none\n", - "related": "[kspace_style ](https://docs.lammps.org/kspace_style.html), [boundary ](https://docs.lammps.org/boundary.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* edpd/temp/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all edpd/temp/atom\n```\n", + "html_filename": "compute_edpd_temp_atom.html", + "short_description": "Define a computation that calculates the per-atom temperature\nfor each eDPD particle in a group", + "description": "Define a computation that calculates the per-atom temperature\nfor each eDPD particle in a group.\n\nThe temperature is a local temperature derived from the internal energy\nof each eDPD particle based on the local equilibrium hypothesis.\nFor more details please see **Espanol1997** and\n**Li2014a**.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe per-atom vector values will be in temperature [units ](https://docs.lammps.org/units.html).\n\n**(Espanol1997)** Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:\n10.1209/epl/i1997-00515-8 \n \n**(Li2014a)** Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265:\n113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003. \n ", + "restrictions": "This compute is part of the DPD-MESO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html)\n" }, { "command": [ - "pair_style adp", - "pair_style adp/kk", - "pair_style adp/omp" + "pair_style atm" ], "syntax": [ - "pair_style adp" + "pair_style atm cutoff cutoff_triple" ], "args": [ [ @@ -23911,35 +22907,41 @@ export const command_docs = [ "choices": [] }, { - "arg": "adp", - "type": 3, - "choices": [ - "adp", - "adp/kk", - "adp/omp" - ] + "arg": "atm", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff_triple", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style adp\npair_coeff * * Ta.adp Ta\npair_coeff * * ../potentials/AlCu.adp Al Al Cu\n```\n", - "html_filename": "pair_adp.html", - "short_description": "Style *adp* computes pairwise interactions for metals and metal alloys\nusing the angular dependent potential (ADP) of **Mishin**,\nwhich is a generalization of the [embedded atom method (EAM) potential ](https://docs.lammps.org/pair_eam.html)", - "description": "Style *adp* computes pairwise interactions for metals and metal alloys\nusing the angular dependent potential (ADP) of **Mishin**,\nwhich is a generalization of the [embedded atom method (EAM) potential ](https://docs.lammps.org/pair_eam.html). The LAMMPS implementation is discussed in\n**Singh**. The total energy Ei of an atom I is given by\n\\[\\begin{align*} \n E_i & = F_\\alpha \\left( \\sum_{j\\neq i} \\rho_\\beta (r_{ij}) \\right) + \\frac{1}{2} \\sum_{j\\neq i}\\phi_{\\alpha\\beta}(r_{ij})+ \\frac{1}{2} \\sum_s (\\mu_i^s)^2 + \\frac{1}{2} \\sum_{s,t} (\\lambda_i^{st})^2 - \\frac{1}{6} \\nu_i^2 \\\\\n \\mu_i^s & = \\sum_{j\\neq i}u_{\\alpha\\beta}(r_{ij})r_{ij}^s\\\\\n \\lambda_i^{st} & = \\sum_{j\\neq i}w_{\\alpha\\beta}(r_{ij})r_{ij}^sr_{ij}^t\\\\\n \\nu_i & = \\sum_s\\lambda_i^{ss} \\end{align*} \\]\nwhere \\(F\\) is the embedding energy which is a function of the atomic\nelectron density \\(\\rho\\), \\(\\phi\\) is a pair potential interaction,\n\\(\\alpha\\) and \\(\\beta\\) are the element types of atoms \\(I\\) and\n\\(J\\), and \\(s\\) and \\(t = 1,2,3\\) and refer to the cartesian\ncoordinates. The \\(\\mu\\) and \\(\\lambda\\) terms represent the dipole\nand quadruple distortions of the local atomic environment which extend the\noriginal EAM framework by introducing angular forces.\n\nNote that unlike for other potentials, cutoffs for ADP potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe ADP potential files themselves. Likewise, the ADP potential files\nlist atomic masses; thus you do not need to use the [mass ](https://docs.lammps.org/mass.html)\ncommand to specify them.\n\n**ADP potentials are available from:**\n\n* The NIST WWW site at https://www.ctcms.nist.gov/potentials.\n Note that ADP potentials obtained from NIST must be converted\n into the extended DYNAMO *setfl* format discussed below.\n* The OpenKIM Project at\n [https://openkim.org/browse/models/by-type](https://openkim.org/browse/models/by-type)\n provides ADP potentials that can be used directly in LAMMPS with the\n [kim command ](https://docs.lammps.org/kim_commands.html) interface.\n\n----------\n\nOnly a single pair_coeff command is used with the *adp* style which\nspecifies an extended DYNAMO *setfl* file, which contains information\nfor \\(M\\) elements. These are mapped to LAMMPS atom types by specifying \\(N\\)\nadditional arguments after the filename in the pair_coeff command,\nwhere \\(N\\) is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of extended *setfl* elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, the potentials/AlCu.adp file, included in the\npotentials directory of the LAMMPS distribution, is an extended *setfl*\nfile which has tabulated ADP values for w elements and their alloy\ninteractions: Cu and Al. If your LAMMPS simulation has 4 atoms types\nand you want the first 3 to be Al, and the fourth to be Cu, you would use\nthe following pair_coeff command:\n\n```lmps\npair_coeff * * AlCu.adp Al Al Al Cu\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Al arguments map LAMMPS atom types 1,2,3 to the Al\nelement in the extended *setfl* file. The final Cu argument maps\nLAMMPS atom type 4 to the Al element in the extended *setfl* file.\nNote that there is no requirement that your simulation use all the\nelements specified by the extended *setfl* file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *adp* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n*Adp* files in the *potentials* directory of the LAMMPS distribution\nhave an \".adp\" suffix. A DYNAMO *setfl* file extended for ADP is\nformatted as follows. Basically it is the standard *setfl* format\nwith additional tabulated functions u and w added to the file after\nthe tabulated pair potentials. See the [pair_eam ](https://docs.lammps.org/pair_eam.html)\ncommand for further details on the *setfl* format.\n\n* lines 1,2,3 = comments (ignored)\n* line 4: \\(N_{\\text{elements}}\\) Element1 Element2 ... ElementN\n* line 5: \\(N_{\\rho}\\), \\(d_{\\rho}\\), \\(N_r\\), \\(d_r\\), cutoff\n\nFollowing the 5 header lines are \\(N_{\\text{elements}}\\) sections, one for each\nelement, each with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function \\(F(\\rho)\\) (\\(N_{\\rho}\\) values)\n* density function \\(\\rho(r)\\) (\\(N_r\\) values)\n\nFollowing the \\(N_{\\text{elements}}\\) sections, \\(N_r\\) values for each pair potential\n\\(\\phi(r)\\) array are listed for all \\(i,j\\) element pairs in the same format\nas other arrays. Since these interactions are symmetric (\\(i,j = j,i\\))\nonly \\(\\phi\\) arrays with \\(i \\geq j\\) are listed, in the following order:\n\\[\n i,j = (1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (N_{\\text{elements}},N_{\\text{elements}}).\\]\nThe tabulated values for each \\(\\phi\\) function are listed as\n\\(r*\\phi\\) (in units of eV-Angstroms), since they are for atom pairs, the\nsame as for [other EAM files ](https://docs.lammps.org/pair_eam.html).\n\nAfter the \\(\\phi(r)\\) arrays, each of the \\(u(r)\\) arrays are listed in the\nsame order with the same assumptions of symmetry. Directly following\nthe \\(u(r)\\), the \\(w(r)\\) arrays are listed. Note that \\(\\phi(r)\\) is the only\narray tabulated with a scaling by \\(r\\).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, no special mixing rules are needed, since\nthe ADP potential files specify alloy interactions explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Mishin)** Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029\n(2005). \n \n**(Singh)** Singh and Warner, Acta Mater, 58, 5797-5805 (2010), \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_eam ](https://docs.lammps.org/pair_eam.html)\n" + "parameters": "* cutoff = cutoff for each pair in 3-body interaction (distance units)\n* cutoff_triple = additional cutoff applied to product of 3 pairwise distances (distance units) \n", + "examples": "\n```lmps\npair_style atm 4.5 2.5\npair_coeff * * * 0.072\n\npair_style hybrid/overlay lj/cut 6.5 atm 4.5 2.5\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 1 1 atm 1 0.064\npair_coeff 1 1 atm 2 0.080\npair_coeff 1 2 atm 2 0.100\npair_coeff 2 2 atm 2 0.125\n```\n", + "html_filename": "pair_atm.html", + "short_description": "The *atm* style computes a 3-body **Axilrod**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\nu\\frac{1+3\\cos\\gamma_1\\cos\\gamma_2\\cos\\gamma_3}{r_{12}^3r_{23}^3r_{31}^3} \\\\ \\end{align*} \\]\nwhere \\(\\nu\\) is the three-body interaction strength", + "description": "The *atm* style computes a 3-body **Axilrod**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\nu\\frac{1+3\\cos\\gamma_1\\cos\\gamma_2\\cos\\gamma_3}{r_{12}^3r_{23}^3r_{31}^3} \\\\ \\end{align*} \\]\nwhere \\(\\nu\\) is the three-body interaction strength. The distances\nbetween pairs of atoms \\(r_{12}\\), \\(r_{23}\\), \\(r_{31}\\) and the angles \\(\\gamma_1\\), \\(\\gamma_2\\),\n\\(\\gamma_3\\) are as shown in this diagram:\n\n ![Image](JPG/pair_atm_dia.jpg) \n\nNote that for the interaction between a triplet of atoms \\(I,J,K\\), there\nis no \"central\" atom. The interaction is symmetric with respect to\npermutation of the three atoms. Thus the \\(\\nu\\) value is\nthe same for all those permutations of the atom types of \\(I,J,K\\)\nand needs to be specified only once, as discussed below.\n\nThe *atm* potential is typically used in combination with a two-body\npotential using the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand as in the example above.\n\nThe potential for a triplet of atom is calculated only if all 3 distances\n\\(r_{12}\\), \\(r_{23}\\), \\(r_{31}\\) between the 3 atoms satisfy\n\\(r_{IJ} < \\text{cutoff}\\). In addition, the product of the 3 distances\n\\(r_{12} r_{23} r_{31}\\) < cutoff_triple \\(^3\\) is required, which\nexcludes from calculation the triplets with small contribution to the\ninteraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the restart files read by the\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) = atom type of the third atom (1 to \\(N_{\\text{types}}\\))\n* \\(\\nu\\) = prefactor (energy/distance\\^9 units)\n\n\\(K\\) can be specified in one of two ways. An explicit numeric value can\nbe used, as in the second example above. \\(J \\leq K\\) is required. LAMMPS\nsets the coefficients for the other 5 symmetric interactions to the same\nvalues. E.g. if \\(I = 1\\), \\(J = 2\\), \\(K = 3\\), then these 6\nvalues are set to the specified \\(\\nu\\): \\(\\nu_{123}\\),\n\\(\\nu_{132}\\), \\(\\nu_{213}\\), \\(\\nu_{231}\\), \\(\\nu_{312}\\),\n\\(\\nu_{321}\\). This enforces the symmetry discussed above.\n\nA wildcard asterisk can be used for K to set the coefficients for\nmultiple triplets of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If \\(N\\) equals the number of atom types, then an asterisk with\nno numeric values means all types from 1 to \\(N\\). A leading asterisk\nmeans all types from 1 to \\(n\\) (inclusive). A trailing asterisk means\nall types from \\(n\\) to \\(N\\) (inclusive). A middle asterisk means all types\nfrom \\(m\\) to \\(n\\) (inclusive). Note that only type triplets with \\(J \\leq K\\) are\nconsidered; if asterisks imply type triplets where \\(K < J\\), they are\nignored.\n\nNote that a pair_coeff command can override a previous setting for the\nsame \\(I,J,K\\) triplet. For example, these commands set \\(\\nu\\) for all \\(I,J.K\\)\ntriplets, then overwrite nu for just the \\(I,J,K = 2,3,4\\) triplet:\n\n```lmps\npair_coeff * * * 0.25\npair_coeff 2 3 4 0.1\n```\nNote that for a simulation with a single atom type, only a single\nentry is required, e.g.\n\n```lmps\npair_coeff 1 1 1 0.25\n```\nFor a simulation with two atom types, four pair_coeff commands will\nspecify all possible nu values:\n\n```lmps\npair_coeff 1 1 1 nu1\npair_coeff 1 1 2 nu2\npair_coeff 1 2 2 nu3\npair_coeff 2 2 2 nu4\n```\nFor a simulation with three atom types, ten pair_coeff commands will\nspecify all possible nu values:\n\n```lmps\npair_coeff 1 1 1 nu1\npair_coeff 1 1 2 nu2\npair_coeff 1 1 3 nu3\npair_coeff 1 2 2 nu4\npair_coeff 1 2 3 nu5\npair_coeff 1 3 3 nu6\npair_coeff 2 2 2 nu7\npair_coeff 2 2 3 nu8\npair_coeff 2 3 3 nu9\npair_coeff 3 3 3 nu10\n```\nBy default the \\(\\nu\\) value for all triplets is set to 0.0. Thus it is\nnot required to provide pair_coeff commands that enumerate triplet\ninteractions for all \\(K\\) types. If some \\(I,J,K\\) combination is not\nspecified, then there will be no 3-body ATM interactions for that\ncombination and all its permutations. However, as with all pair\nstyles, it is required to specify a pair_coeff command for all \\(I,J\\)\ncombinations, else an error will result.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file. However, if the *atm* potential\nis used in combination with other potentials using the [pair_stylehybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command then pair_coeff commands need to be\nre-specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, and *outer* keywords.\n\n----------\n\n**(Axilrod)**\nAxilrod and Teller, J Chem Phys, 11, 299 (1943);\nMuto, Nippon Sugaku-Buturigakkwaishi 17, 629 (1943). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix langevin/spin" + "compute slice" ], "syntax": [ - "fix ID group-ID langevin/spin T Tdamp seed" + "compute ID group-ID slice Nstart Nstop Nskip input1 input2 ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -23954,41 +22956,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "langevin/spin", + "arg": "slice", "type": 1, "choices": [] }, { - "arg": "T", + "arg": "Nstart", "type": 2, "choices": [] }, { - "arg": "Tdamp", + "arg": "Nstop", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "Nskip", + "type": 2, + "choices": [] + }, + { + "arg": "input1", + "type": 2, + "choices": [] + }, + { + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/spin = style name of this fix command\n* T = desired temperature of the bath (temperature units, K in metal units)\n* Tdamp = transverse magnetic damping parameter (adim)\n* seed = random number seed to use for white noise (positive integer) \n", - "examples": "\n```lmps\nfix 2 all langevin/spin 300.0 0.01 21\n```\n", - "html_filename": "fix_langevin_spin.html", - "short_description": "Apply a Langevin thermostat as described in **Mayergoyz1** to the\nmagnetic spins associated to the atoms", - "description": "Apply a Langevin thermostat as described in **Mayergoyz1** to the\nmagnetic spins associated to the atoms.\nUsed with [fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html), this command performs\nBrownian dynamics (BD).\nA random torque and a transverse dissipation are applied to each spin i according to\nthe following stochastic differential equation:\n\\[\n \\frac{d \\vec{s}_{i}}{dt} = \\frac{1}{\\left(1+\\lambda^2 \\right)} \\left( \\left(\n \\vec{\\omega}_{i} +\\vec{\\eta} \\right) \\times \\vec{s}_{i} + \\lambda\\, \\vec{s}_{i}\n \\times\\left( \\vec{\\omega}_{i} \\times\\vec{s}_{i} \\right) \\right)\\]\nwith \\(\\lambda\\) the transverse damping, and \\(\\eta\\) a random vector.\nThis equation is referred to as the stochastic Landau-Lifshitz (sLL)\nequation.\n\nThe components of \\(\\eta\\) are drawn from a Gaussian probability\nlaw. Their amplitude is defined as a proportion of the temperature of\nthe external thermostat T (in K in metal units).\n\nMore details about this implementation are reported in **Tranchida2**.\n\nNote: due to the form of the sLL equation, this fix has to be defined just\nbefore the nve/spin fix (and after all other magnetic fixes).\nAs an example:\n\n```lmps\nfix 1 all precession/spin zeeman 0.01 0.0 0.0 1.0\nfix 2 all langevin/spin 300.0 0.01 21\nfix 3 all nve/spin lattice moving\n```\nis correct, but defining a force/spin command after the langevin/spin command\nwould give an error message.\n\nNote: The random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Mayergoyz1)** I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) \n \n**(Tranchida2)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", - "restrictions": "The *langevin/spin* fix is part of the SPIN package. This style is\nonly enabled if LAMMPS was built with this package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe numerical integration has to be performed with *fix nve/spin*\nwhen *fix langevin/spin* is enabled.\n\nThis fix has to be the last defined magnetic fix before the time\nintegration fix (e.g. *fix nve/spin*\\ ).\n", - "related": "[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html), [fix precession/spin ](https://docs.lammps.org/fix_precession_spin.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* slice = style name of this compute command\n* Nstart = starting index within input vector(s)\n* Nstop = stopping index within input vector(s)\n* Nskip = extract every Nskip elements from input vector(s)\n* input = c_ID, c_ID[N], f_ID, f_ID[N] \n *        c_ID = global vector calculated by a compute with ID \n *        c_ID[I] = Ith column of global array calculated by a compute with ID \n *        f_ID = global vector calculated by a fix with ID \n *        f_ID[I] = Ith column of global array calculated by a fix with ID \n *        v_name = vector calculated by an vector-style variable with name \n", + "examples": "\n```lmps\ncompute 1 all slice 1 100 10 c_msdmol[4]\ncompute 1 all slice 301 400 1 c_msdmol[4] v_myVec\n```\n", + "html_filename": "compute_slice.html", + "short_description": "Define a calculation that \"slices\" one or more vector inputs into\nsmaller vectors, one per listed input", + "description": "Define a calculation that \"slices\" one or more vector inputs into\nsmaller vectors, one per listed input. The inputs can be global\nquantities; they cannot be per-atom or local quantities.\n[Computes ](https://docs.lammps.org/compute.html) and [fixes ](https://docs.lammps.org/fix.html) and vector-style\n[variables ](https://docs.lammps.org/variable.html) can generate such global quantities. The\ngroup specified with this command is ignored.\n\nThe values extracted from the input vector(s) are determined by the\n*Nstart*, *Nstop*, and *Nskip* parameters. The elements of an input\nvector of length N are indexed from 1 to N. Starting at element\n*Nstart*, every Mth element is extracted, where M = *Nskip*, until\nelement *Nstop* is reached. The extracted quantities are stored as a\nvector, which is typically shorter than the input vector.\n\nEach listed input is operated on independently to produce one output\nvector. Each listed input must be a global vector or column of a\nglobal array calculated by another [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html).\n\nIf an input value begins with \"c\\_\", a compute ID must follow which has\nbeen previously defined in the input script and which generates a\nglobal vector or array. See the individual [compute ](https://docs.lammps.org/compute.html) doc\npage for details. If no bracketed integer is appended, the vector\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script and which generates a global\nvector or array. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when compute slice references\nthe values, else an error results. If no bracketed integer is\nappended, the vector calculated by the fix is used. If a bracketed\ninteger is appended, the Ith column of the array calculated by the fix\nis used. Users can also write code for their own fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf an input value begins with \"v\\_\", a variable name must follow which\nhas been previously defined in the input script. Only vector-style\nvariables can be referenced. See the [variable ](https://docs.lammps.org/variable.html) command\nfor details. Note that variables of style *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to slice.\n\nIf a single input is specified this compute produces a global vector,\neven if the length of the vector is 1. If multiple inputs are\nspecified, then a global array of values is produced, with the number\nof columns equal to the number of inputs specified.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector if a single input value is\nspecified or a global array with N columns where N is the number of\ninputs. The length of the vector or the number of rows in the array\nis equal to the number of values extracted from each input vector.\nThese values can be used by any command that uses global vector or\narray values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector or array values calculated by this compute are simply\ncopies of values generated by computes or fixes or variables that are\ninput vectors to this compute. If there is a single input vector of\nintensive and/or extensive values, then each value in the vector of\nvalues calculated by this compute will be \"intensive\" or \"extensive\",\ndepending on the corresponding input value. If there are multiple\ninput vectors, and all the values in them are intensive, then the\narray values calculated by this compute are \"intensive\". If there are\nmultiple input vectors, and any value in them is extensive, then the\narray values calculated by this compute are \"extensive\". Values\nproduced by a variable are treated as intensive.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ninput quantities are in.\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" }, { "command": [ - "fix npt/body" + "fix bond/break" ], "syntax": [ - "fix ID group-ID npt/body keyword value ..." + "fix ID group-ID bond/break Nevery bondtype Rmax keyword values ..." ], "args": [ [ @@ -24008,41 +23020,56 @@ export const command_docs = [ "choices": [] }, { - "arg": "npt/body", + "arg": "bond/break", "type": 1, "choices": [] }, + { + "arg": "Nevery", + "type": 2, + "choices": [] + }, + { + "arg": "bondtype", + "type": 2, + "choices": [] + }, + { + "arg": "Rmax", + "type": 2, + "choices": [] + }, { "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* npt/body = style name of this fix command\n* additional thermostat and barostat related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all npt/body temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/body temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/body temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 water npt/body temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_npt_body.html", - "short_description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat", - "description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat. P is pressure; T is\ntemperature. This creates a system trajectory consistent with the\nisothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the body particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*,\n*iso*, *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/body\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/body\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", - "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix nvt_body ](https://docs.lammps.org/fix_nvt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bond/break = style name of this fix command\n* Nevery = attempt bond breaking every this many steps\n* bondtype = type of bonds to break (integer or type label)\n* Rmax = bond longer than Rmax can break (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = prob \n *        prob values = fraction seed \n         fraction = break a bond with this probability if otherwise eligible \n         seed = random number seed (positive integer) \n", + "examples": "\n```lmps\nfix 5 all bond/break 10 2 1.2\nfix 5 polymer bond/break 1 1 2.0 prob 0.5 49829\n```\n", + "html_filename": "fix_bond_break.html", + "short_description": "Break bonds between pairs of atoms as a simulation runs according to\nspecified criteria", + "description": "Break bonds between pairs of atoms as a simulation runs according to\nspecified criteria. This can be used to model the dissolution of a\npolymer network due to stretching of the simulation box or other\ndeformations. In this context, a bond means an interaction between a\npair of atoms computed by the [bond_style ](https://docs.lammps.org/bond_style.html) command.\nOnce the bond is broken it will be permanently deleted, as will all\nangle, dihedral, and improper interactions that bond is part of.\n\nThis is different than a [pair-wise ](https://docs.lammps.org/pair_style.html) bond-order\npotential such as Tersoff or AIREBO which infers bonds and many-body\ninteractions based on the current geometry of a small cluster of atoms\nand effectively creates and destroys bonds and higher-order many-body\ninteractions from timestep to timestep as atoms move.\n\nA check for possible bond breakage is performed every *Nevery*\ntimesteps. If two bonded atoms \\(i\\) and \\(j\\) are farther than the\ndistance *Rmax* from each other, the bond is of type *bondtype*, and both\n\\(i\\) and \\(j\\) are in the specified fix group, then the bond between\n\\(i\\) and \\(j\\) is labeled as a \"possible\" bond to break.\n\nIf several bonds involving an atom are stretched, it may have multiple\npossible bonds to break. Every atom checks its list of possible bonds\nto break and labels the longest such bond as its \"sole\" bond to break.\nAfter this is done, if atom \\(i\\) is bonded to atom \\(j\\) in its sole\nbond, and atom \\(j\\) is bonded to atom \\(j\\) in its sole bond, then the\nbond between \\(i\\) and \\(j\\) is \"eligible\" to be broken.\n\nNote that these rules mean an atom will only be part of at most one\nbroken bond on a given time step. It also means that if atom \\(i\\) chooses\natom \\(j\\) as its sole partner, but atom \\(j\\) chooses atom \\(k\\)\nas its sole partner (because \\(R_{jk} > R_{ij}\\)), then this means atom\n\\(i\\) will not be part of a broken bond on this time step, even if it has\nother possible bond partners.\n\nThe *prob* keyword can effect whether an eligible bond is actually\nbroken. The *fraction* setting must be a value between 0.0 and 1.0.\nA uniform random number between 0.0 and 1.0 is generated and the\neligible bond is only broken if the random number is less than *fraction*.\n\nWhen a bond is broken, data structures within LAMMPS that store bond\ntopologies are updated to reflect the breakage. Likewise, if the bond\nis part of a 3-body (angle) or 4-body (dihedral, improper)\ninteraction, that interaction is removed as well. These changes\ntypically affect pair-wise interactions between atoms that used to be\npart of bonds, angles, etc.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One data structure that is not updated when a bond breaks are\n > the molecule IDs stored by each atom. Even though one molecule\n > becomes two molecules due to the broken bond, all atoms in both new\n > molecules retain their original molecule IDs. \n > \n\nComputationally, each time step this fix is invoked, it loops over all\nthe bonds in the system and computes distances between pairs of bonded\natoms. It also communicates between neighboring processors to\ncoordinate which bonds are broken. Moreover, if any bonds are broken,\nneighbor lists must be immediately updated on the same time step. This\nis to ensure that any pair-wise interactions that should be turned \"on\"\ndue to a bond breaking, because they are no longer excluded by the\npresence of the bond and the settings of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command, will be immediately\nrecognized. All of these operations increase the cost of a time step.\nThus, you should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the [dump local ](https://docs.lammps.org/dump.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Breaking a bond typically alters the energy of a system. You\n > should be careful not to choose bond breaking criteria that induce a\n > dramatic change in energy. For example, if you define a very stiff\n > harmonic bond and break it when two atoms are separated by a distance\n > far from the equilibrium bond length, then the two atoms will be\n > dramatically released when the bond is broken. More generally, you\n > may need to thermostat your system to compensate for energy changes\n > resulting from broken bonds (as well as angles, dihedrals, and impropers). \n > \n\nSee the [Howto ](https://docs.lammps.org/Howto_broken_bonds.html) page on broken bonds for more\ninformation on related features in LAMMPS.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes two statistics, which it stores in a global vector of\nlength 2. This vector can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix are \"intensive\".\n\nThe two quantities in the global vector are\n\n (1) number of bonds broken on the most recent breakage time step\n (2) cumulative number of bonds broken\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[fix bond/create ](https://docs.lammps.org/fix_bond_create.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" }, { "command": [ - "fix press/langevin" + "compute improper" ], "syntax": [ - "fix ID group-ID press/langevin keyword value ..." + "compute ID group-ID improper" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -24057,199 +23084,80 @@ export const command_docs = [ "choices": [] }, { - "arg": "press/langevin", + "arg": "improper", "type": 1, "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* press/langevin = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or tri or x or y or z or xy or xz or yz or couple or dilate or modulus or temp or flip \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or xz or yz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = pressure damping parameter \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       couple = none or xyz or xy or yz or xz \n       friction value = Friction coefficient for the barostat (time units) \n       temp values = Tstart, Tstop, seed \n       Tstart, Tstop = target temperature used for the barostat at start/end of run \n       seed = seed of the random number generator \n       dilate value = all or partial \n", - "examples": "\n```lmps\nfix 1 all press/langevin iso 0.0 0.0 1000.0 temp 300 300 487374\nfix 2 all press/langevin aniso 0.0 0.0 1000.0 temp 100 300 238 dilate partial\n```\n", - "html_filename": "fix_press_langevin.html", - "short_description": "Adjust the pressure of the system by using a Langevin stochastic barostat\n**Gronbech**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep", - "description": "Adjust the pressure of the system by using a Langevin stochastic barostat\n**Gronbech**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep.\n\nThe Langevin barostat couple each direction *L* with a pseudo-particle that obeys\nthe Langevin equation such as:\n\\[\\begin{align*} \n f_P = & \\frac{N k_B T_{target}}{V} + \\frac{1}{V d}\\sum_{i=1}^{N} \\vec r_i \\cdot \\vec f_i - P_{target} \\\\\n Q\\ddot{L} + \\alpha{}\\dot{L} = & f_P + \\beta(t)\\\\\n L^{n+1} = & L^{n} + bdt\\dot{L}^{n} \\frac{bdt^{2}}{2Q} \\\\\n \\dot{L}^{n+1} = & \\alpha\\dot{L}^{n} + \\frac{dt}{2Q}\\left(a f^{n}_{P} + f^{n+1}_{P}\\right) + \\frac{b}{Q}\\beta^{n+1} \\\\\n a = & \\frac{1-\\frac{\\alpha{}dt}{2Q}}{1+\\frac{\\alpha{}dt}{2Q}} \\\\\n b = & \\frac{1}{1+\\frac{\\alpha{}dt}{2Q}} \\\\\n \\left< \\beta(t)\\beta(t') \\right> = & 2\\alpha k_B Tdt \\end{align*} \\]\nWhere \\(dt\\) is the timestep \\(\\dot{L}\\) and \\(\\ddot{L}\\) the first\nand second derivatives of the coupled direction with regard to time,\n\\(\\alpha\\) is a friction coefficient, \\(\\beta\\) is a random gaussian\nvariable and \\(Q\\) the effective mass of the coupled pseudoparticle. The\ntwo first terms on the right-hand side of the first equation are the virial\nexpression of the canonical pressure. It is to be noted that the temperature\nused to compute the pressure is not based on the atom velocities but rather on\nthe canonical\ntarget temperature directly. This temperature is specified using the *temp*\nkeyword parameter and should be close to the expected target temperature of the\nsystem.\n\nRegardless of what atoms are in the fix group, a global pressure is\ncomputed for all atoms. Similarly, when the size of the simulation\nbox is changed, all atoms are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the atoms in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of atoms in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands which\n > perform Nose-Hoover barostatting AND time integration, this fix does NOT\n > perform time integration of the atoms but only of the barostat coupled\n > coordinate. It then only modifies the box size and atom coordinates to\n > effect barostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) to actually update\n > the positions and velocities of atoms. This fix can be used in conjunction\n > with thermostatting fixes to control the temperature, such as [fix nvt > ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) or [fix temp/berendsen > ](https://docs.lammps.org/fix_temp_berendsen.html). \n > \n\nSee the [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) page for a\ndiscussion of different ways to perform barostatting.\n\n----------\n\nThe barostat is specified using one or more of the *iso*, *aniso*, *tri* *x*,\n*y*, *z*, *xy*, *xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify the 3 diagonal components of an external stress tensor, and\nto couple various of these components together so that the dimensions they\nrepresent are varied together during a constant-pressure simulation.\n\nThe target pressures for each of the 6 diagonal components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, keywords, which\ncorrespond to the 3 simulation box dimensions, and the *xy*, *xz* and *yz*\nkeywords which corresponds to the 3 simulation box tilt factors. For each\ncomponent, the external pressure or tensor component at each timestep is a\nramped value during the run from *Pstart* to *Pstop* . If a target pressure is\nspecified for a component, then the corresponding box dimension will change\nduring a simulation. For example, if the *y* keyword is used, the y-box length\nwill change. A box dimension will not change if that component is not\nspecified, although you have the option to change that dimension via the\n[fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nThe *Pdamp* parameter can be seen in the same way as a Nose-Hoover parameter as\nit is used to compute the mass of the fictitious particle. Without friction,\nthe barostat can be compared to a single particle Nose-Hoover barostat and\nshould follow a similar decay in time. The mass of the barostat is\nlinked to *Pdamp* by the relation\n\\(Q=(N_{at}+1)\\cdot{}k_BT_{target}\\cdot{}P_{damp}^2\\). Note that *Pdamp*\nshould be expressed in time units.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As for Berendsen barostat, a Langevin barostat will not work well for\n > arbitrary values of *Pdamp* . If *Pdamp* is too small, the pressure and\n > volume can fluctuate wildly; if it is too large, the pressure will take a\n > very long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in time\n > units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\n----------\n\nThe *temp* keyword sets the temperature to use in the equation of motion of the\nbarostat. This value is used to compute the value of the force \\(f_P\\) in\nthe equation of motion. It is important to note that this value is not the\ninstantaneous temperature but a target temperature that ramps from *Tstart* to\n*Tstop*. Also the required argument *seed* sets the seed for the random\nnumber generator used in the generation of the random forces.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso* and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* is the same as *aniso* but also adds the control on the\nshear pressure coupled with the tilt factors.\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy Pstart Pstop Pdamp\nxz Pstart Pstop Pdamp\nyz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\n----------\n\nThe *friction* keyword sets the friction parameter \\(\\alpha\\) in the\nequations of motion of the barostat. For each barostat direction, the value of\n\\(\\alpha\\) depends on both *Pdamp* and *friction*. The value given as a\nparameter is the Langevin characteristic time\n\\(\\tau_{L}=\\frac{Q}{\\alpha}\\) in time units. The langevin time can be understood as a\ndecorrelation time for the pressure. A long Langevin time value will make the\nbarostat act as an underdamped oscillator while a short value will make it\nact as an overdamped oscillator. The ideal configuration would be to find\nthe critical parameter of the barostat. Empirically this is observed to\noccur for \\(\\tau_{L}\\approx{}P_{damp}\\). For this reason, if the *friction*\nkeyword is not used, the default value *Pdamp* is used for each barostat direction.\n\n----------\n\nThis fix computes pressure each timestep. To do\nthis, the fix creates its own computes of style \"pressure\",\nas if this command had been issued:\n\n```lmps\ncompute fix-ID_press group-ID pressure NULL virial\n```\nThe kinetic contribution to the pressure is taken as the ensemble value\n\\(\\frac{Nk_bT}{V}\\) and computed by the fix itself.\n\nSee the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command for details. Note\nthat the IDs of the new compute is the fix-ID + underscore + \"press\" and the\ngroup for the new computes is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_press*. This\nmeans you can change the attributes of this fix's pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature or\npressure during thermodynamic output via the [thermo_style custom](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID. It also means that\nchanging attributes of *thermo_temp* or *thermo_press* will have no effect on\nthis fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *press* option is\nsupported by this fix. You can use it to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its pressure calculations.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target pressure and temperature over multiple runs, using\nthe *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this. It is recommended that\nthe ramped temperature is the same as the effective temperature of the\nthermostatted system. That is, if the system's temperature is ramped by other\ncommands, it is recommended to do the same with this pressure control.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Gronbech)** Gronbech-Jensen, Farago, J Chem Phys, 141, 194108 (2014). \n ", - "restrictions": "Any dimension being adjusted by this fix must be periodic.\n", - "related": "[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html),\n[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* improper = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all improper\n```\n", + "html_filename": "compute_improper.html", + "short_description": "Define a computation that extracts the improper energy calculated by\neach of the improper sub-styles used in the [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) command", + "description": "Define a computation that extracts the improper energy calculated by\neach of the improper sub-styles used in the [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) command. These values are made\naccessible for output or further processing by other commands. The\ngroup specified for this command is ignored.\n\nThis compute is useful when using [improper_style hybrid ](https://docs.lammps.org/improper_hybrid.html) if you want to know the portion of the\ntotal energy contributed by one or more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\) is\nthe number of sub_styles defined by the\n[improper_style hybrid ](https://docs.lammps.org/improper_style.html) command.\nThese styles can be accessed by the indices 1 through \\(N\\).\nThese values can be used by any command that uses global scalar or vector\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "fix mdi/qm" + "tad" ], "syntax": [ - "fix ID group-ID mdi/qm keyword value(s) keyword value(s) ..." + "tad N t_event T_lo T_hi delta tmax compute-ID keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "tad", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "mdi/qm", - "type": 1, - "choices": [] - }, - { - "arg": "mc", - "type": 3, - "choices": [ - "virial", - "add", - "every", - "connect", - "elements", - "mc" - ] - }, - { - "arg": "value(s)", + "arg": "t_event", "type": 2, "choices": [] }, { - "arg": "mc", - "type": 3, - "choices": [ - "virial", - "add", - "every", - "connect", - "elements", - "mc" - ] - }, - { - "arg": "value(s)", + "arg": "T_lo", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mdi/qm = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = virial or add or every or connect or elements or mc \n *        virial args = yes or no \n         yes = request virial tensor from server code \n         no = do not request virial tensor from server code \n *        add args = yes or no \n         yes = add returned value from server code to LAMMPS quantities \n         no = do not add returned values to LAMMPS quantities \n *        every args = Nevery \n         Nevery = request values from server code once every Nevery steps \n *        connect args = yes or no \n         yes = perform a one-time connection to the MDI engine code \n         no = do not perform the connection operation \n *        elements args = N_1 N_2 ... N_ntypes \n         N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n *        mc args = mcfixID \n         mcfixID = ID of a Monte Carlo fix designed to work with this fix \n", - "examples": "\n```lmps\nfix 1 all mdi/qm\nfix 1 all mdi/qm virial yes\nfix 1 all mdi/qm add no every 100 elements C C H O\n```\n", - "html_filename": "fix_mdi_qm.html", - "short_description": "\nThis command enables LAMMPS to act as a client with another server\ncode that will compute the total energy, per-atom forces, and total\nvirial for atom conformations and simulation box size/shapes that\nLAMMPS sends it", - "description": "\nThis command enables LAMMPS to act as a client with another server\ncode that will compute the total energy, per-atom forces, and total\nvirial for atom conformations and simulation box size/shapes that\nLAMMPS sends it.\n\nTypically the server code will be a quantum mechanics (QM) code, hence\nthe name of the fix. However this is not required, the server code\ncould be another classical molecular dynamics code or LAMMPS itself.\nThe server code must support use of the [MDI Library](https://molssi-mdi.github.io/MDI_Library/html/index.html) as\nexplained below.\n\nTypically, to use this fix, the input script should not define any\nother classical force field components, e.g. a pair style, bond style,\netc.\n\nThese are example use cases for this fix, discussed further below:\n\n* perform an ab initio MD (AIMD) simulation with quantum forces\n* perform an energy minimization with quantum forces\n* perform a nudged elastic band (NEB) calculation with quantum forces\n* perform a QM calculation for a series of independent systems which\n LAMMPS reads or generates once\n* run a classical MD simulation and calculate QM energy/forces once\n every N steps on the current configuration\n\nMore generally any command which calculates per-atom forces can instead\nuse quantum forces by defining this fix. Examples are the Monte Carlo\ncommands [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) and [fix atom/swap](https://docs.lammps.org/fix_atom_swap.html), as well as the [compute born/matrix](https://docs.lammps.org/compute_born_matrix.html) command. The only requirement is that internally\nthe command invokes the post_force() method of fixes such as this one,\nwhich will trigger the quantum calculation.\n\nThe code coupling performed by this command is done via the `MDI\nLibrary `_.\nLAMMPS runs as an MDI driver (client), and sends MDI commands to an\nexternal MDI engine code (server), e.g. a QM code which has support\nfor MDI. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html) page for more\ninformation about how LAMMPS can operate as either an MDI driver or\nengine.\n\nThe ``examples/mdi`` directory contains input scripts using this fix in\nthe various use cases discussed below. In each case, two instances of\nLAMMPS are used, once as an MDI driver, once as an MDI engine (surrogate\nfor a QM code). The ``examples/mdi/README`` file explains how to launch\ntwo codes so that they communicate via the MDI library using either MPI\nor sockets. Any QM code that supports MDI could be used in place of\nLAMMPS acting as a QM surrogate. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html)\npage for a current list (March 2022) of such QM codes. The\n``examples/QUANTUM`` directory has examples for coupling LAMMPS to 3 QM\ncodes either via this fix or the [fix mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html)\ncommand.\n\nNote that an engine code can support MDI in either or both of two modes.\nIt can be used as a stand-alone code, launched at the same time as\nLAMMPS. Or it can be used as a plugin library, which LAMMPS loads. See\nthe [mdi plugin ](https://docs.lammps.org/mdi.html) command for how to trigger LAMMPS to load a\nplugin library. The ``examples/mdi/README`` file and\n``examples/QUANTUM/QM-code/README`` files explain how to launch the two\ncodes in either mode.\n\n----------\n\nThe *virial* keyword setting of yes or no determines whether LAMMPS\nwill request the QM code to also compute and return the QM\ncontribution to a stress tensor for the system which LAMMPS will\nconvert to a 6-element symmetric virial tensor.\n\nThe *add* keyword setting of *yes* or *no* determines whether the\nenergy and forces and virial returned by the QM code will be added to\nthe LAMMPS internal energy and forces and virial or not. If the\nsetting is *no* then the default [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\nand [fix_modify virial ](https://docs.lammps.org/fix_modify.html) settings are also set to\n*no* and your input scripts should not set them to yes. See more\ndetails on these fix_modify settings below.\n\nWhatever the setting for the *add* keyword, the QM energy, forces, and\nvirial will be stored by the fix, so they can be accessed by other\ncommands. See details below.\n\nThe *every* keyword determines how often the QM code will be invoked\nduring a dynamics run with the current LAMMPS simulation box and\nconfiguration of atoms. The QM code will be called once every\n*Nevery* timesteps. By default *Nevery* = 1.\n\nThe *connect* keyword determines whether this fix performs a one-time\nconnection to the QM code. The default is *yes*. The only time a *no*\nis needed is if this command is used multiple times in an input script\nand the MDI coupling is between two stand-alone codes (not plugin mode).\nE.g. if it used inside a loop which also uses the [clear ](https://docs.lammps.org/clear.html)\ncommand to destroy the system (including this fix). See the\n``examples/mdi/in.series.driver`` script as an example of this, where\nLAMMPS is using the QM code to compute energy and forces for a series of\nsystem configurations. In this use case *connect no* is used along with\nthe [mdi connect and exit ](https://docs.lammps.org/mdi.html) command to one-time\ninitiate/terminate the connection outside the loop.\n\nThe *elements* keyword allows specification of what element each\nLAMMPS atom type corresponds to. This is specified by the chemical\nsymbol of the element, e.g. C or Al or Si. A symbol must be specified\nfor each of the ntypes LAMMPS atom types. Multiple LAMMPS types can\nrepresent the same element. Ntypes is typically specified via the\n[create_box ](https://docs.lammps.org/create_box.html) command or in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nIf this keyword is specified, then this fix will send the MDI\n\">ELEMENTS\" command to the engine, to ensure the two codes are\nconsistent in their definition of atomic species. If this keyword is\nnot specified, then this fix will send the MDI >TYPES command to the\nengine. This is fine if both the LAMMPS driver and the MDI engine are\ninitialized so that the atom type values are consistent in both codes.\n\nThe *mc* keyword enables this fix to be used with a Monte Carlo (MC)\nfix to calculate before/after quantum energies as part of the MC\naccept/reject criterion. The [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) and [fixatom/swap ](https://docs.lammps.org/fix_atom_swap.html) commands can be used in this manner.\nSpecify the ID of the MC fix following the *mc* keyword. This allows\nthe two fixes to coordinate when MC events are being calculated versus\nMD timesteps between the MC events.\n\n----------\n\nThe following 3 example use cases are illustrated in the\n``examples/mdi`` directory. See its README file for more details.\n\n(1) To run an ab initio MD (AIMD) dynamics simulation, or an energy\nminimization with QM forces, or a multi-replica NEB calculation, use\n*add yes* and *every 1* (the defaults). This is so that every time\nLAMMPS needs energy and forces, the QM code will be invoked.\n\nBoth LAMMPS and the QM code should define the same system (simulation\nbox, atoms and their types) in their respective input scripts. Note\nthat on this scenario, it may not be necessary for LAMMPS to define a\npair style or use a neighbor list.\n\nLAMMPS will then perform the timestepping or minimization iterations\nfor the simulation. At the point in each timestep or iteration when\nLAMMPS needs the force on each atom, it communicates with the engine\ncode. It sends the current simulation box size and shape (if they\nchange dynamically, e.g. during an NPT simulation), and the current\natom coordinates. The engine code computes quantum forces on each\natom and the total energy of the system and returns them to LAMMPS.\n\nNote that if the AIMD simulation is an NPT or NPH model, or the energy\nminimization includes [fix box relax ](https://docs.lammps.org/fix_box_relax.html) to\nequilibrate the box size/shape, then LAMMPS computes a pressure. This\nmeans the *virial* keyword should be set to *yes* so that the QM\ncontribution to the pressure can be included.\n\n(2) To run dynamics with a LAMMPS interatomic potential, and evaluate\nthe QM energy and forces once every 1000 steps, use *add no* and\n*every 1000*. This could be useful for using an MD run to generate\nrandomized configurations which are then passed to the QM code to\nproduce training data for a machine learning potential. A [dumpcustom ](https://docs.lammps.org/dump.html) command could be invoked every 1000 steps to dump the\natom coordinates and QM forces to a file. Likewise the QM energy and\nvirial could be output with the [thermo_style custom](https://docs.lammps.org/thermo_style.html) command.\n\n(3) To do a QM evaluation of energy and forces for a series of *N*\nindependent systems (simulation box and atoms), use *add no* and\n*every 1*. Write a LAMMPS input script which loops over the *N*\nsystems. See the [Howto multiple ](https://docs.lammps.org/Howto_multiple.html) doc page for\ndetails on looping and removing old systems. The series of systems\ncould be initialized by reading them from data files with\n[read_data ](https://docs.lammps.org/read_data.html) commands. Or, for example, by using the\n[lattice ](https://docs.lammps.org/lattice.html) , [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), and/or [displace_atomsrandom ](https://docs.lammps.org/displace_atoms.html) commands to generate a series of different\nsystems. At the end of the loop perform [run 0 ](https://docs.lammps.org/run.html) and\n[write_dump ](https://docs.lammps.org/write_dump.html) commands to invoke the QM code and\noutput the QM energy and forces. As in (2) this be useful to produce\nQM data for training a machine learning potential.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy computed by the QM code to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy yes ](https://docs.lammps.org/fix_modify.html), unless the *add* keyword is\nset to *no*, in which case the default setting is *no*.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the QM code to the global\npressure of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyvirial yes ](https://docs.lammps.org/fix_modify.html), unless the *add* keyword is set to *no*, in\nwhich case the default setting is *no*.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\nreturned by the QM code. The scalar value calculated by this fix is\n\"extensive\".\n\nThis fix also computes a global vector with of length 6 which contains\nthe symmetric virial tensor values returned by the QM code. It can\nlikewise be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe ordering of values in the symmetric virial tensor is as follows:\nvxx, vyy, vzz, vxy, vxz, vyz. The values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nThis fix also computes a peratom array with 3 columns which contains\nthe peratom forces returned by the QM code. It can likewise be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nAssuming the *add* keyword is set to *yes* (the default), the forces\ncomputed by the QM code are used during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the potential energy associated with the QM forces to\n > be included in the total potential energy of the system (the\n > quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix, which\n > means the *add* keyword should also be set to *yes* (the default). \n > \n\n", - "restrictions": "This fix is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS as an MDI driver in conjunction with other MDI-enabled\ncodes (MD or QM codes), the [units ](https://docs.lammps.org/units.html) command should be used\nto specify *real* or *metal* units. This will ensure the correct unit\nconversions between LAMMPS and MDI units. The other code will also\nperform similar unit conversions into its preferred units.\n\nLAMMPS can also be used as an MDI driver in other unit choices it\nsupports, e.g. *lj*, but then no unit conversion to MDI units is\nperformed.\n\nIf this fix is used in conjunction with a QM code that does not support\nperiodic boundary conditions (more specifically, a QM code that does not\nsupport the ``>CELL`` MDI command), the LAMMPS system must be fully\nnon-periodic. I.e. no dimension of the system can be periodic.\n", - "related": "[mdi plugin ](https://docs.lammps.org/mdi.html),\n[mdi engine ](https://docs.lammps.org/mdi.html),\n[fix mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html)\n" -}, -{ - "command": [ - "fix_modify" - ], - "syntax": [ - "fix_modify fix-ID keyword value ..." - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] }, { - "arg": "fix-ID", + "arg": "T_hi", "type": 2, "choices": [] }, { - "arg": "virial", - "type": 3, - "choices": [ - "bodyforces", - "colname", - "dynamic/dof", - "energy", - "press", - "respa", - "temp", - "virial" - ] - }, - { - "arg": "value", + "arg": "delta", "type": 2, "choices": [] - } - ] - ], - "parameters": "* fix-ID = ID of the fix to modify\n* one or more keyword/value pairs may be appended\n* keyword = bodyforces or colname or dynamic/dof or energy or press or respa or temp or virial \n *        bodyforces value = early or late \n         early/late = compute rigid-body forces/torques early or late in the timestep \n *        colname values = ID string \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a fix output property keyword or reference to compute, fix, property or variable. \n *        dynamic/dof value = yes or no \n         yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature \n *        energy value = yes or no \n *        press value = compute ID that calculates a pressure \n *        respa value = 1 to *max respa level* or 0 (for outermost level) \n *        temp value = compute ID that calculates a temperature \n *        virial value = yes or no \n", - "examples": "\n```lmps\nfix_modify 3 temp myTemp press myPress\nfix_modify 1 energy yes\nfix_modify tether respa 2\nfix_modify ave colname c_thermo_press Pressure colname 1 Temperature\n```\n", - "html_filename": "fix_modify.html", - "short_description": "Modify one or more parameters of a previously defined fix", - "description": "Modify one or more parameters of a previously defined fix. Only\nspecific fix styles support specific parameters. See the doc pages\nfor individual fix commands for info on which ones support which\nfix_modify parameters.\n\nThe *temp* keyword is used to determine how a fix computes\ntemperature. The specified compute ID must have been previously\ndefined by the user via the [compute ](https://docs.lammps.org/compute.html) command and it must\nbe a style of compute that calculates a temperature. All fixes that\ncompute temperatures define their own compute by default, as described\nin their documentation. Thus this option allows the user to override\nthe default method for computing T.\n\nThe *press* keyword is used to determine how a fix computes pressure.\nThe specified compute ID must have been previously defined by the user\nvia the [compute ](https://docs.lammps.org/compute.html) command and it must be a style of\ncompute that calculates a pressure. All fixes that compute pressures\ndefine their own compute by default, as described in their\ndocumentation. Thus this option allows the user to override the\ndefault method for computing P.\n\nThe *energy* keyword can be used with fixes that support it, which is\nexplained at the bottom of their doc page. *Energy yes* will add a\ncontribution to the potential energy of the system. More\nspecifically, the fix's global or per-atom energy is included in the\ncalculation performed by the [compute pe ](https://docs.lammps.org/compute_pe.html) or\n[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) commands. The former is what\nis used the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for output of\nany quantity that includes the global potential energy of the system.\nNote that the [compute pe ](https://docs.lammps.org/compute_pe.html) and [compute pe/atom](https://docs.lammps.org/compute_pe_atom.html) commands also have an option to include or exclude\nthe contribution from fixes. For fixes that tally a global energy, it\ncan also be printed with thermodynamic output by using the keyword\nf_ID in the thermo_style custom command, where ID is the fix-ID of the\nappropriate fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are performing an [energy minimization ](https://docs.lammps.org/minimize.html) with\n > one of these fixes and want the energy and forces it produces to be\n > part of the optimization criteria, you must specify the *energy\n > yes* setting. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For most fixes that support the *energy* keyword, the default\n > setting is *no*. For a few it is *yes*, when a user would expect\n > that to be the case. The page of each fix gives the default. \n > \n\nThe *virial* keyword can be used with fixes that support it, which is\nexplained at the bottom of their doc page. *Virial yes* will add a\ncontribution to the virial of the system. More specifically, the\nfix's global or per-atom virial is included in the calculation\nperformed by the [compute pressure ](https://docs.lammps.org/compute_pressure.html) or\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former\nis what is used the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for\noutput of any quantity that includes the global pressure of the\nsystem. Note that the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands also have an\noption to include or exclude the contribution from fixes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are performing an [energy minimization ](https://docs.lammps.org/minimize.html) with\n > [box relaxation ](https://docs.lammps.org/fix_box_relax.html) and one of these fixes and\n > want the virial contribution of the fix to be part of the\n > optimization criteria, you must specify the *virial yes* setting. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For most fixes that support the *virial* keyword, the default\n > setting is *no*. For a few it is *yes*, when a user would expect\n > that to be the case. The page of each fix gives the default. \n > \n\nFor fixes that set or modify forces, it may be possible to select at\nwhich [r-RESPA ](https://docs.lammps.org/run_style.html) level the fix operates via the *respa*\nkeyword. The RESPA level at which the fix is active can be selected.\nThis is a number ranging from 1 to the number of levels. If the RESPA\nlevel is larger than the current maximum, the outermost level will be\nused, which is also the default setting. This default can be restored\nusing a value of *0* for the RESPA level. The affected fix has to be\nenabled to support this feature; if not, *fix_modify* will report an\nerror. Active fixes with a custom RESPA level setting are reported\nwith their specified level at the beginning of a r-RESPA run.\n\nThe *dynamic/dof* keyword determines whether the number of atoms N in\nthe fix group and their associated degrees of freedom are re-computed\neach time a temperature is computed. Only fix styles that calculate\ntheir own internal temperature use this option. Currently this is only\nthe [fix rigid/nvt/small ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/npt/small](https://docs.lammps.org/fix_rigid.html) commands for the purpose of thermostatting rigid body\ntranslation and rotation. By default, N and their DOF are assumed to be\nconstant. If you are adding atoms or molecules to the system (see the\n[fix pour ](https://docs.lammps.org/fix_pour.html), [fix deposit ](https://docs.lammps.org/fix_deposit.html), and\n[fix gcmc ](https://docs.lammps.org/fix_gcmc.html) commands) or expect atoms or molecules to be\nlost (e.g. due to exiting the simulation box or via [fix evaporate](https://docs.lammps.org/fix_evaporate.html)), then this option should be used to ensure the\ntemperature is correctly normalized.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Other thermostatting fixes, such as [fix nvt ](https://docs.lammps.org/fix_nh.html), do not\n > use the *dynamic/dof* keyword because they use a temperature compute\n > to calculate temperature. See the [compute_modify dynamic/dof > ](https://docs.lammps.org/compute_modify.html) command for a similar way to ensure correct\n > temperature normalization for those thermostats. \n > \n\nThe *bodyforces* keyword determines whether the forces and torques\nacting on rigid bodies are computed *early* at the post-force stage of\neach timestep (right after per-atom forces have been computed and\ncommunicated among processors), or *late* at the final-integrate stage\nof each timestep (after any other fixes have finished their post-force\ntasks). Only the rigid-body integration fixes use this option, which\nincludes [fix rigid ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/small](https://docs.lammps.org/fix_rigid.html), and their variants, and also [fix poems ](https://docs.lammps.org/fix_poems.html).\n\nThe default is *late* . If there are other fixes that add forces to\nindividual atoms, then the rigid-body constraints will include these\nforces when time-integrating the rigid bodies. If *early* is\nspecified, then new fixes can be written that use or modify the\nper-body force and torque, before time-integration of the rigid bodies\noccurs. Note however this has the side effect, that fixes such as\n[fix addforce ](https://docs.lammps.org/fix_addforce.html), [fix setforce ](https://docs.lammps.org/fix_setforce.html),\n[fix spring ](https://docs.lammps.org/fix_spring.html), which add forces to individual atoms\nwill have no effect on the motion of the rigid bodies if they are\nspecified in the input script after the fix rigid command. LAMMPS\nwill give a warning if that is the case.\n\n\nThe *colname* keyword can be used to change the default header keywords\nin output files of fix styles that support it: currently only [fixave/time ](https://docs.lammps.org/fix_ave_time.html) is supported. The setting for *ID string*\nreplaces the default text with the provided string. *ID* can be a\npositive integer when it represents the column number counting from the\nleft, a negative integer when it represents the column number from the\nright (i.e. -1 is the last column/keyword), or a custom fix output\nkeyword (or compute, fix, property, or variable reference) and then it\nreplaces the string for that specific keyword. The *colname* keyword can\nbe used multiple times. If multiple *colname* settings refer to the same\nkeyword, the last setting has precedence.\n", - "restrictions": "none\n", - "related": "[fix ](https://docs.lammps.org/fix.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html), [thermo_style ](https://docs.lammps.org/thermo_style.html)\n" -}, -{ - "command": [ - "fix qeq/comb", - "fix qeq/comb/omp" - ], - "syntax": [ - "fix ID group-ID qeq/comb Nevery precision keyword value ..." - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] }, { - "arg": "ID", + "arg": "tmax", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "compute-ID", "type": 2, "choices": [] }, { - "arg": "qeq/comb", + "arg": "neb_log", "type": 3, "choices": [ - "qeq/comb", - "qeq/comb/omp" + "min", + "neb", + "neb_style", + "neb_step", + "neb_log" ] }, - { - "arg": "Nevery", - "type": 2, - "choices": [] - }, - { - "arg": "precision", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, { "arg": "value", "type": 2, @@ -24257,55 +23165,13 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qeq/comb = style name of this fix command\n* Nevery = perform charge equilibration every this many steps\n* precision = convergence criterion for charge equilibration\n* zero or more keyword/value pairs may be appended\n* keyword = file \n *        file value = filename \n         filename = name of file to write QEQ equilibration info to \n", - "examples": "\n```lmps\nfix 1 surface qeq/comb 10 0.0001\n```\n", - "html_filename": "fix_qeq_comb.html", - "short_description": "Perform charge equilibration (QeQ) in conjunction with the COMB\n(Charge-Optimized Many-Body) potential as described in\n**COMB_1** and **COMB_2**", - "description": "Perform charge equilibration (QeQ) in conjunction with the COMB\n(Charge-Optimized Many-Body) potential as described in\n**COMB_1** and **COMB_2**. It performs the charge\nequilibration portion of the calculation using the so-called QEq\nmethod, whereby the charge on each atom is adjusted to minimize the\nenergy of the system. This fix can only be used with the COMB\npotential; see the [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) command for a QeQ\ncalculation that can be used with any potential.\n\nOnly charges on the atoms in the specified group are equilibrated.\nThe fix relies on the pair style (COMB in this case) to calculate the\nper-atom electronegativity (effective force on the charges). An\nelectronegativity equalization calculation (or QEq) is performed in an\niterative fashion, which in parallel requires communication at each\niteration for processors to exchange charge information about nearby\natoms with each other. See **Rappe_and_Goddard** and\n**Rick_and_Stuart** for details.\n\nDuring a run, charge equilibration is performed every *Nevery* time\nsteps. Charge equilibration is also always enforced on the first step\nof each run. The *precision* argument controls the tolerance for the\ndifference in electronegativity for all atoms during charge\nequilibration. *Precision* is a trade-off between the cost of\nperforming charge equilibration (more iterations) and accuracy.\n\nIf the *file* keyword is used, then information about each\nequilibration calculation is written to the specified file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is performing charge equilibration. Default is\nthe outermost level.\n\nThis fix produces a per-atom vector which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The vector stores the gradient\nof the charge on each atom. The per-atom values be accessed on any\ntimestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix can be invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(COMB_1)** J. Yu, S. B. Sinnott, S. R. Phillpot, Phys Rev B, 75, 085311 (2007), \n \n**(COMB_2)** T.-R. Shan, B. D. Devine, T. W. Kemper, S. B. Sinnott, S. R.\nPhillpot, Phys Rev B, 81, 125328 (2010). \n \n**(Rappe_and_Goddard)** A. K. Rappe, W. A. Goddard, J Phys Chem 95, 3358\n(1991). \n \n**(Rick_and_Stuart)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys\n101, 16141 (1994). \n ", - "restrictions": "This fix command currently only supports [pair style *comb* ](https://docs.lammps.org/pair_comb.html).\n", - "related": "[pair_style comb ](https://docs.lammps.org/pair_comb.html)\n" -}, -{ - "command": [ - "fix_modify AtC decomposition" - ], - "syntax": [ - "fix_modify decomposition " - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "decomposition", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "replicated_memory", - "distributed_memory" - ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* decomposition = name of the AtC sub-command\n* type = replicated_memory or distributed_memory \n", - "examples": "\n```lmps\nfix_modify AtC decomposition distributed_memory\n```\n", - "html_filename": "atc_decomposition.html", - "short_description": "Command for assigning the distribution of work and memory for parallel\nruns", - "description": "Command for assigning the distribution of work and memory for parallel\nruns. With *replicated_memory* the nodal information is replicated on\neach processor, and with *distributed_memory* only the owned nodal\ninformation kept on each processor. The *replicated_memory* option\nis most appropriate for simulations were the number of nodes is much\nsmaller than the number of atoms.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* N = # of timesteps to run (not including dephasing/quenching)\n* t_event = timestep interval between event checks\n* T_lo = temperature at which event times are desired\n* T_hi = temperature at which MD simulation is performed\n* delta = desired confidence level for stopping criterion\n* tmax = reciprocal of lowest expected pre-exponential factor (time units)\n* compute-ID = ID of the compute used for event detection\n* zero or more keyword/value pairs may be appended\n* keyword = min or neb or neb_style or neb_step or neb_log \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy (energy units) \n         ftol = stopping tolerance for force (force units) \n         maxiter = max iterations of minimize \n         maxeval = max number of force/energy evaluations \n *        neb values = ftol N1 N2 Nevery \n         etol = stopping tolerance for energy (energy units) \n         ftol = stopping tolerance for force (force units) \n         N1 = max # of iterations (timesteps) to run initial NEB \n         N2 = max # of iterations (timesteps) to run barrier-climbing NEB \n         Nevery = print NEB statistics every this many timesteps \n *        neb_style value = quickmin or fire \n *        neb_step value = dtneb \n         dtneb = timestep for NEB damped dynamics minimization \n *        neb_log value = file where NEB statistics are printed \n", + "examples": "\n```lmps\ntad 2000 50 1800 2300 0.01 0.01 event\ntad 2000 50 1800 2300 0.01 0.01 event &\nmin 1e-05 1e-05 100 100 &\nneb 0.0 0.01 200 200 20 &\nmin_style cg &\nneb_style fire &\nneb_log log.neb\n```\n", + "html_filename": "tad.html", + "short_description": "Run a temperature accelerated dynamics (TAD) simulation", + "description": "Run a temperature accelerated dynamics (TAD) simulation. This method\nrequires two or more partitions to perform NEB transition state\nsearches.\n\nTAD is described in **Voter2000** by Art Voter. It is\na method that uses accelerated dynamics at an elevated temperature to\ngenerate results at a specified lower temperature. A good overview of\naccelerated dynamics methods (AMD) for such systems is given in\n**Voter2002** from the same group. To quote\nfrom the review paper: \"The dynamical evolution is characterized by\nvibrational excursions within a potential basin, punctuated by\noccasional transitions between basins. The transition probability is\ncharacterized by p(t) = k\\*exp(-kt) where k is the rate constant.\"\n\nTAD is a suitable AMD method for infrequent-event systems, where in\naddition, the transition kinetics are well-approximated by harmonic\ntransition state theory (hTST). In hTST, the temperature dependence\nof transition rates follows the Arrhenius relation. As a consequence\na set of event times generated in a high-temperature simulation can be\nmapped to a set of much longer estimated times in the low-temperature\nsystem. However, because this mapping involves the energy barrier of\nthe transition event, which is different for each event, the first\nevent at the high temperature may not be the earliest event at the low\ntemperature. TAD handles this by first generating a set of possible\nevents from the current basin. After each event, the simulation is\nreflected backwards into the current basin. This is repeated until\nthe stopping criterion is satisfied, at which point the event with the\nearliest low-temperature occurrence time is selected. The stopping\ncriterion is that the confidence measure be greater than 1-\\ *delta*\n. The confidence measure is the probability that no earlier\nlow-temperature event will occur at some later time in the\nhigh-temperature simulation. hTST provides an lower bound for this\nprobability, based on the user-specified minimum pre-exponential\nfactor (reciprocal of *tmax* ).\n\nIn order to estimate the energy barrier for each event, the TAD method\ninvokes the [NEB ](https://docs.lammps.org/neb.html) method. Each NEB replica runs on a\npartition of processors. The current NEB implementation in LAMMPS\nrestricts you to having exactly one processor per replica. For more\ninformation, see the documentation for the [neb ](https://docs.lammps.org/neb.html) command. In\nthe current LAMMPS implementation of TAD, all the non-NEB TAD\noperations are performed on the first partition, while the other\npartitions remain idle. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc\npage for further discussion of multi-replica simulations.\n\nA TAD run has several stages, which are repeated each time an event is\nperformed. The logic for a TAD run is as follows:\n\n```\nwhile (time remains):\nwhile (time < tstop):\nuntil (event occurs):\nrun dynamics for t_event steps\nquench\nrun neb calculation using all replicas\ncompute tlo from energy barrier\nupdate earliest event\nupdate tstop\nreflect back into current basin\nexecute earliest event\n```\nBefore this outer loop begins, the initial potential energy basin is\nidentified by quenching (an energy minimization, see below) the\ninitial state and storing the resulting coordinates for reference.\n\nInside the inner loop, dynamics is run continuously according to\nwhatever integrator has been specified by the user, stopping every\n*t_event* steps to check if a transition event has occurred. This\ncheck is performed by quenching the system and comparing the resulting\natom coordinates to the coordinates from the previous basin.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command;\nits default is the CG minimizer. The tolerances and limits for each\nquench can be set by the *min* keyword. Note that typically, you do\nnot need to perform a highly-converged minimization to detect a\ntransition event.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nTAD command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an \"event\" has occurred.\n\nThe NEB calculation is similar to that invoked by the [neb ](https://docs.lammps.org/neb.html)\ncommand, except that the final state is generated internally, instead\nof being read in from a file. The style of minimization performed by\nNEB is determined by the *neb_style* keyword and must be a damped\ndynamics minimizer. The tolerances and limits for each NEB\ncalculation can be set by the *neb* keyword. As discussed on the\n[neb ](https://docs.lammps.org/neb.html), it is often advantageous to use a larger timestep for\nNEB than for normal dynamics. Since the size of the timestep set by\nthe [timestep ](https://docs.lammps.org/timestep.html) command is used by TAD for performing\ndynamics, there is a *neb_step* keyword which can be used to set a\nlarger timestep for each NEB calculation if desired.\n\n----------\n\nA key aspect of the TAD method is setting the stopping criterion\nappropriately. If this criterion is too conservative, then many\nevents must be generated before one is finally executed. Conversely,\nif this criterion is too aggressive, high-entropy high-barrier events\nwill be over-sampled, while low-entropy low-barrier events will be\nunder-sampled. If the lowest pre-exponential factor is known fairly\naccurately, then it can be used to estimate *tmax*, and the value of\n*delta* can be set to the desired confidence level e.g. *delta* = 0.05\ncorresponds to 95% confidence. However, for systems where the dynamics\nare not well characterized (the most common case), it will be\nnecessary to experiment with the values of *delta* and *tmax* to get a\ngood trade-off between accuracy and performance.\n\nA second key aspect is the choice of *t_hi*. A larger value greatly\nincreases the rate at which new events are generated. However, too\nlarge a value introduces errors due to anharmonicity (not accounted\nfor within hTST). Once again, for any given system, experimentation is\nnecessary to determine the best value of *t_hi*.\n\n----------\n\nFive kinds of output can be generated during a TAD run: event\nstatistics, NEB statistics, thermodynamic output by each replica, dump\nfiles, and restart files.\n\nEvent statistics are printed to the screen and master log.lammps file\neach time an event is executed. The quantities are the timestep, CPU\ntime, global event number *N*, local event number *M*, event status,\nenergy barrier, time margin, *t_lo* and *delt_lo*. The timestep is\nthe usual LAMMPS timestep, which corresponds to the high-temperature\ntime at which the event was detected, in units of timestep. The CPU\ntime is the total processor time since the start of the TAD run. The\nglobal event number *N* is a counter that increments with each\nexecuted event. The local event number *M* is a counter that resets to\nzero upon entering each new basin. The event status is *E* when an\nevent is executed, and is *D* for an event that is detected, while\n*DF* is for a detected event that is also the earliest (first) event\nat the low temperature.\n\nThe time margin is the ratio of the high temperature time in the\ncurrent basin to the stopping time. This last number can be used to\njudge whether the stopping time is too short or too long (see above).\n\n*t_lo* is the low-temperature event time when the current basin was\nentered, in units of timestep. del*t_lo* is the time of each detected\nevent, measured relative to *t_lo*. *delt_lo* is equal to the\nhigh-temperature time since entering the current basin, scaled by an\nexponential factor that depends on the hi/lo temperature ratio and the\nenergy barrier for that event.\n\nOn lines for executed events, with status *E*, the global event number\nis incremented by one,\nthe local event number and time margin are reset to zero,\nwhile the global event number, energy barrier, and\n*delt_lo* match the last event with status *DF*\nin the immediately preceding block of detected events.\nThe low-temperature event time *t_lo* is incremented by *delt_lo*.\n\nNEB statistics are written to the file specified by the *neb_log*\nkeyword. If the keyword value is \"none\", then no NEB statistics are\nprinted out. The statistics are written every *Nevery* timesteps. See\nthe [neb ](https://docs.lammps.org/neb.html) command for a full description of the NEB\nstatistics. When invoked from TAD, NEB statistics are never printed to\nthe screen.\n\nBecause the NEB calculation must run on multiple partitions, LAMMPS\nproduces additional screen and log files for each partition,\ne.g. log.lammps.0, log.lammps.1, etc. For the TAD command, these\ncontain the thermodynamic output of each NEB replica. In addition, the\nlog file for the first partition, log.lammps.0, will contain\nthermodynamic output from short runs and minimizations corresponding\nto the dynamics and quench operations, as well as a line for each new\ndetected event, as described above.\n\nAfter the TAD command completes, timing statistics for the TAD run are\nprinted in each replica's log file, giving a breakdown of how much CPU\ntime was spent in each stage (NEB, dynamics, quenching, etc).\n\nAny [dump files ](https://docs.lammps.org/dump.html) defined in the input script will be written\nto during a TAD run at timesteps when an event is executed. This\nmeans the requested dump frequency in the [dump ](https://docs.lammps.org/dump.html) command\nis ignored. There will be one dump file (per dump command) created\nfor all partitions. The atom coordinates of the dump snapshot are\nthose of the minimum energy configuration resulting from quenching\nfollowing the executed event. The timesteps written into the dump\nfiles correspond to the timestep at which the event occurred and NOT\nthe clock. A dump snapshot corresponding to the initial minimum state\nused for event detection is written to the dump file at the beginning\nof each TAD run.\n\nIf the [restart ](https://docs.lammps.org/restart.html) command is used, a single restart file\nfor all the partitions is generated, which allows a TAD run to be\ncontinued by a new input script in the usual manner. The restart file\nis generated after an event is executed. The restart file contains a\nsnapshot of the system in the new quenched state, including the event\nnumber and the low-temperature time. The restart frequency specified\nin the [restart ](https://docs.lammps.org/restart.html) command is interpreted differently when\nperforming a TAD run. It does not mean the timestep interval between\nrestart files. Instead it means an event interval for executed\nevents. Thus a frequency of 1 means write a restart file every time\nan event is executed. A frequency of 10 means write a restart file\nevery 10th executed event. When an input script reads a restart file\nfrom a previous TAD run, the new script can be run on a different\nnumber of replicas or processors.\n\nNote that within a single state, the dynamics will typically\ntemporarily continue beyond the event that is ultimately chosen, until\nthe stopping criterion is satisfied. When the event is eventually\nexecuted, the timestep counter is reset to the value when the event\nwas detected. Similarly, after each quench and NEB minimization, the\ntimestep counter is reset to the value at the start of the\nminimization. This means that the timesteps listed in the replica log\nfiles do not always increase monotonically. However, the timestep\nvalues printed to the master log file, dump files, and restart files\nare always monotonically increasing.\n\n----------\n\n**(Voter2000)** Sorensen and Voter, J Chem Phys, 112, 9599 (2000) \n \n**(Voter2002)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n*N* setting must be integer multiple of *t_event*.\n\nRuns restarted from restart files written during a TAD run will only\nproduce identical results if the user-specified integrator supports\nexact restarts. So [fix nvt ](https://docs.lammps.org/fix_nh.html) will produce an exact\nrestart, but [fix langevin ](https://docs.lammps.org/fix_langevin.html) will not.\n\nThis command cannot be used when any fixes are defined that keep track\nof elapsed time to perform time-dependent operations. Examples\ninclude the \"ave\" fixes such as [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html).\nAlso [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) and [fix deposit ](https://docs.lammps.org/fix_deposit.html).\n", + "related": "[compute event/displace ](https://docs.lammps.org/compute_event_displace.html),\n[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[temper ](https://docs.lammps.org/temper.html), [neb ](https://docs.lammps.org/neb.html),\n[prd ](https://docs.lammps.org/prd.html)\n" }, { "command": [ @@ -24348,10 +23214,10 @@ export const command_docs = [ }, { "command": [ - "fix amoeba/bitorsion" + "fix wall/body/polygon" ], "syntax": [ - "fix ID group-ID ameoba/bitorsion filename" + "fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ..." ], "args": [ [ @@ -24371,104 +23237,121 @@ export const command_docs = [ "choices": [] }, { - "arg": "ameoba/bitorsion", + "arg": "wall/body/polygon", + "type": 1, + "choices": [] + }, + { + "arg": "k_n", "type": 2, "choices": [] }, { - "arg": "filename", + "arg": "c_n", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* amoeba/bitorsion = style name of this fix command\n* filename = force-field file with AMOEBA bitorsion coefficients \n", - "examples": "\n```lmps\nfix bit all amoeba/bitorsion bitorsion.ubiquitin.data\nread_data proteinX.data fix bit bitorsions BiTorsions\nfix_modify bit energy yes\n```\n", - "html_filename": "fix_amoeba_bitorsion.html", - "short_description": "This command enables 5-body torsion/torsion interactions to be added\nto simulations which use the AMOEBA and HIPPO force fields", - "description": "This command enables 5-body torsion/torsion interactions to be added\nto simulations which use the AMOEBA and HIPPO force fields. It\nmatches how the Tinker MD code computes its torsion/torsion\ninteractions for the AMOEBA and HIPPO force fields. See the\n[Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page for more information about\nthe implementation of AMOEBA and HIPPO in LAMMPS.\n\nBitorsion interactions add additional potential energy contributions\nto pairs of overlapping phi-psi dihedrals of amino-acids, which are\nimportant to properly represent their conformational behavior. Each\nbitorsion interaction is thus defined for a 5-tuple of atoms\n\\(IJKLM\\) with bonds between successive atoms in the list,\ni.e. two overlapping dihedral interactions for atoms \\(IJKL\\) and\n\\(JKLM\\).\n\nThe examples/amoeba directory has a sample input script and data file\nfor ubiquitin, which illustrates use of the fix amoeba/bitorsion\ncommand.\n\nAs in the example above, this fix should be used before reading a data\nfile that contains a listing of bitorsion interactions. The\n*filename* specified should contain the bitorsion parameters for the\nAMOEBA or HIPPO force field.\n\nThe data file read by the [read_data ](https://docs.lammps.org/read_data.html) command must\ncontain the topology of all the bitorsion interactions, similar to the\ntopology data for bonds, angles, dihedrals, etc. Specifically it\nshould have a line like this in its header section:\n\n```\nN bitorsions\n```\nwhere \\(N\\) is the number of bitorsion 5-body interactions. It should\nalso have a section in the body of the data file like this with \\(N\\)\nlines:\n\n```\nBiTorsions\n\n1 1 8 10 12 18 20\n2 5 18 20 22 25 27\n[...]\nN 3 314 315 317 318 330\n```\nThe first column is an index from 1 to \\(N\\) to enumerate the\nbitorsion 5-atom tuples; it is ignored by LAMMPS. The second column\nis the *type* of the interaction; it is an index into the bitorsion\nforce field file. The remaining 5 columns are the atom IDs of the\natoms (in order) for the 5-tuple \\(IJKLM\\), as described above.\n\nNote that the *bitorsions* and *BiTorsions* keywords for the header\nand body sections match those specified in the [read_data](https://docs.lammps.org/read_data.html) command following the data file name.\n\nThe data file should be generated by using the\ntools/tinker/tinker2lmp.py conversion script which creates a LAMMPS\ndata file from Tinker input files, including its PRM file which\ncontains the parameters necessary for computing bitorsion\ninteractions. The script must be invoked with the optional\n\"-bitorsion\" flag to do this; see the example for the ubiquitin system\nin the tools/tinker/README file. The same conversion script also\ncreates the file of bitorsion coefficient data which is read by this\ncommand.\n\nThe potential energy associated with bitorsion interactions can be\noutput as described below. It can also be included in the total\npotential energy of the system, as output by the [thermo_style](https://docs.lammps.org/thermo_style.html) command, if the [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\ncommand is used, as in the example above. See the note below about\nhow to include the bitorsion energy when performing an [energyminimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the list of bitorsion interactions to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of the bitorsion interactions to\nboth the global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or output\nby the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The default\nsetting for this fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the bitorsion interactions to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the bitorsion terms forces to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", - "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a [read_restart](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the AMOEBA package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" -}, -{ - "command": [ - "compute smd/tlsph/num/neighs" - ], - "syntax": [ - "compute ID group-ID smd/tlsph/num/neighs" - ], - "args": [ - [ + }, { - "arg": "compute", - "type": 1, + "arg": "c_t", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "zcylinder", + "type": 3, + "choices": [ + "xplane", + "yplane", + "zcylinder" + ] + }, + { + "arg": "args", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "smd/tlsph/num/neighs", - "type": 1, + "arg": "values", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/num/neighs = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/num/neighs\n```\n", - "html_filename": "compute_smd_tlsph_num_neighs.html", - "short_description": "Define a computation that calculates the number of particles inside of\nthe smoothing kernel radius for particles interacting via the\nTotal-Lagrangian SPH pair style", - "description": "Define a computation that calculates the number of particles inside of\nthe smoothing kernel radius for particles interacting via the\nTotal-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values are dimensionless. See [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian pair style.\n", - "related": "[smd/ulsph/num/neighs ](https://docs.lammps.org/compute_smd_ulsph_num_neighs.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/body/polygon = style name of this fix command\n* k_n = normal repulsion strength (force/distance or pressure units)\n* c_n = normal damping coefficient (force/distance or pressure units)\n* c_t = tangential damping coefficient (force/distance or pressure units)\n* wallstyle = xplane or yplane or zcylinder\n* args = list of arguments for a particular style \n *        xplane or yplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n *        zcylinder args = radius \n         radius = cylinder radius (distance units) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle \n *        wiggle values = dim amplitude period \n         dim = x or y or z \n         amplitude = size of oscillation (distance units) \n         period = time of oscillation (time units) \n", + "examples": "\n```lmps\nfix 1 all wall/body/polygon 1000.0 20.0 5.0 xplane -10.0 10.0\n```\n", + "html_filename": "fix_wall_body_polygon.html", + "short_description": "This fix is for use with 2d models of body particles of style\n*rounded/polygon* ", + "description": "This fix is for use with 2d models of body particles of style\n*rounded/polygon* . It bounds the simulation domain with wall(s). All\nparticles in the group interact with the wall when they are close\nenough to touch it. The nature of the interaction between the wall\nand the polygon particles is the same as that between the polygon\nparticles themselves, which is similar to a Hookean potential. See\nthe [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using\nbody particles.\n\nThe parameters *k_n*, *c_n*, *c_t* have the same meaning and units as\nthose specified with the [pair_style body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html) command.\n\nThe *wallstyle* can be planar or cylindrical. The 2 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired. For a *zcylinder* wallstyle, the cylinder's\naxis is at x = y = 0.0, and the radius of the cylinder is specified.\n\nOptionally, the wall can be moving, if the *wiggle* keyword is\nappended.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\nparticles. The arguments to the *wiggle* keyword specify a dimension\nfor the motion, as well as it's *amplitude* and *period* . Note that\nif the dimension is in the plane of the wall, this is effectively a\nshearing motion. If the dimension is perpendicular to the wall, it is\nmore of a shaking motion. A *zcylinder* wall can only be wiggled in\nthe z dimension.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xy) that has a wall must be non-periodic.\n", + "related": "[atom_style body ](https://docs.lammps.org/atom_style.html), [pair_style body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html)\n" }, { "command": [ - "pair_style meam/sw/spline" + "bond_style fene", + "bond_style fene/intel", + "bond_style fene/kk", + "bond_style fene/omp", + "bond_style fene/nm" ], "syntax": [ - "pair_style meam/sw/spline" + "bond_style fene", + "bond_style fene/nm" ], "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "meam/sw/spline", + "arg": "fene", + "type": 3, + "choices": [ + "fene", + "fene/intel", + "fene/kk", + "fene/omp" + ] + } + ], + [ + { + "arg": "bond_style", "type": 1, "choices": [] + }, + { + "arg": "fene/nm", + "type": 2, + "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\npair_style meam/sw/spline\npair_coeff * * Ti.meam.sw.spline Ti\npair_coeff * * Ti.meam.sw.spline Ti Ti Ti\n```\n", - "html_filename": "pair_meam_sw_spline.html", - "short_description": "The *meam/sw/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky2** with an additional Stillinger-Weber (SW) term\n**Stillinger1** in the energy", - "description": "The *meam/sw/spline* style computes pairwise interactions for metals\nusing a variant of modified embedded-atom method (MEAM) potentials\n**Lenosky2** with an additional Stillinger-Weber (SW) term\n**Stillinger1** in the energy. This form of the potential\nwas first proposed by Nicklas, Fellinger, and Park\n**Nicklas**. We refer to it as MEAM+SW. The total energy E\nis given by\n\\[\\begin{align*} \n E & = E_{MEAM} + E_{SW} \\\\\n E_{MEAM} & = \\sum _{IJ} \\phi (r_{IJ}) + \\sum _{I} U(\\rho _I) \\\\\n E_{SW} & = \\sum _{I} \\sum _{JK} F(r_{IJ}) \\, F(r_{IK}) \\, G(\\cos(\\theta _{JIK})) \\\\\n \\rho _I & = \\sum _J \\rho(r_{IJ}) + \\sum _{JK} f(r_{IJ}) \\, f(r_{IK}) \\, g(\\cos(\\theta _{JIK})) \\end{align*} \\]\nwhere \\(\\rho_I\\) is the density at atom I, \\(\\theta_{JIK}\\) is\nthe angle between atoms J, I, and K centered on atom I. The seven\nfunctions \\(\\phi, F, G, U, \\rho, f,\\) and *g* are represented by\ncubic splines.\n\nThe cutoffs and the coefficients for these spline functions are listed\nin a parameter file which is specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Parameter files for different\nelements are included in the \"potentials\" directory of the LAMMPS\ndistribution and have a \".meam.sw.spline\" file suffix. All of these\nfiles are parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike for other potentials, cutoffs for spline-based\nMEAM+SW potentials are not set in the pair_style or pair_coeff\ncommand; they are specified in the potential files themselves.\n\nUnlike the EAM pair style, which retrieves the atomic mass from the\npotential file, the spline-based MEAM+SW potentials do not include\nmass information; thus you need to use the [mass ](https://docs.lammps.org/mass.html) command to\nspecify it.\n\nOnly a single pair_coeff command is used with the meam/sw/spline style\nwhich specifies a potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of spline-based MEAM+SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the Ti.meam.sw.spline file has values for Ti.\nIf your LAMMPS simulation has 3 atoms types and they are all to be\ntreated with this potential, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * Ti.meam.sw.spline Ti Ti Ti\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe three Ti arguments map LAMMPS atom types 1,2,3 to the Ti element\nin the potential file. If a mapping value is specified as NULL, the\nmapping is not performed. This can be used when a *meam/sw/spline*\npotential is used as part of the hybrid pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *meam/sw/spline* style currently supports only\n > single-element MEAM+SW potentials. It may be extended for alloy\n > systems in the future. \n > \n\nExample input scripts that use this pair style are provided\nin the examples/PACKAGES/meam_sw_spline directory.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe pair style does not support multiple element types or mixing.\nIt has been designed for pure elements only.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe *meam/sw/spline* pair style does not write its information to\n[binary restart files ](https://docs.lammps.org/restart.html), since it is stored in an external\npotential parameter file. Thus, you need to re-specify the pair_style\nand pair_coeff commands in an input script that reads a restart file.\n\nThe *meam/sw/spline* pair style can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Lenosky2)** Lenosky, Sadigh, Alonso, Bulatov, de la Rubia, Kim, Voter,\nKress, Modell. Simul. Mater. Sci. Eng. 8, 825 (2000). \n \n**(Stillinger1)** Stillinger, Weber, Phys. Rev. B 31, 5262 (1985). \n \n**(Nicklas)**\nThe spline-based MEAM+SW format was first devised and used to develop\npotentials for bcc transition metals by Jeremy Nicklas, Michael Fellinger,\nand Hyoungki Park at The Ohio State University. \n ", - "restrictions": "This pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThis pair style is only enabled if LAMMPS was built with the MANYBODY\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style meam ](https://docs.lammps.org/pair_meam.html),\n[pair_style meam/spline ](https://docs.lammps.org/pair_meam_spline.html)\n" + "examples": "\n```lmps\nbond_style fene\nbond_coeff 1 30.0 1.5 1.0 1.0\n\nbond_style fene/nm\nbond_coeff 1 2.25344 1.5 1.0 1.12246 2 6\n```\n", + "html_filename": "bond_fene.html", + "short_description": "The *fene* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**fene-Kremer**, used for bead-spring polymer models", + "description": "The *fene* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**fene-Kremer**, used for bead-spring polymer models. The first\nterm is attractive, the second Lennard-Jones term is repulsive. The\nfirst term extends to \\(R_0\\), the maximum extent of the bond. The second\nterm is cutoff at \\(2^\\frac{1}{6} \\sigma\\), the minimum of the LJ potential.\n\nThe *fene/nm* bond style substitutes the standard LJ potential with the generalized LJ potential\nin the same form as in pair style [nm/cut ](https://docs.lammps.org/pair_nm.html). The bond energy is then given by\n\\[\n E = -0.5 K R_0^2 \\ln \\left[ 1 - \\left(\\frac{r}{R_0}\\right)^2\\right] + \\frac{E_0}{(n-m)} \\left[ m \\left(\\frac{r_0}{r}\\right)^n - n \\left(\\frac{r_0}{r}\\right)^m \\right]\\]\nSimilar to the *fene* style, the generalized Lennard-Jones is cut off at\nthe potential minimum, \\(r_0\\), to be repulsive only. The following\ncoefficients must be defined for each bond type via the [bond_coeff](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n\nFor the *fene/nm* style, the following coefficients are used. Please\nnote, that the standard LJ potential and thus the regular FENE potential\nis recovered for (n=12 m=6) and \\(r_0 = 2^\\frac{1}{6} \\sigma\\).\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(E_0\\) (energy)\n* \\(r_0\\) (distance)\n* \\(n\\) (unitless)\n* \\(m\\) (unitless)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(fene-Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", + "restrictions": "The *fene* bond style can only be used if LAMMPS was built with the MOLECULE\npackage; the *fene/nm* bond style can only be used if LAMMPS was built\nwith the EXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nYou typically should specify [special_bonds fene ](https://docs.lammps.org/special_bonds.html)\nor [special_bonds lj/coul 0 1 1 ](https://docs.lammps.org/special_bonds.html) to use this bond\nstyle. LAMMPS will issue a warning it that's not the case.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[pair style lj/cut ](https://docs.lammps.org/pair_lj.html), [pair style nm/cut ](https://docs.lammps.org/pair_nm.html).\n" }, { "command": [ - "compute angle" + "fix smd/setvel" ], "syntax": [ - "compute ID group-ID angle" + "fix ID group-ID smd/setvel vx vy vz keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -24483,66 +23366,44 @@ export const command_docs = [ "choices": [] }, { - "arg": "angle", + "arg": "smd/setvel", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angle = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all angle\n```\n", - "html_filename": "compute_angle.html", - "short_description": "Define a computation that extracts the angle energy calculated by each of the\nangle sub-styles used in the [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) command", - "description": "Define a computation that extracts the angle energy calculated by each of the\nangle sub-styles used in the [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) command.\nThese values are made accessible for output or further processing by other\ncommands. The group specified for this command is ignored.\n\nThis compute is useful when using [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) if\nyou want to know the portion of the total energy contributed by one or more of\nthe hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length *N*, where *N* is the number\nof sub_styles defined by the [angle_style hybrid ](https://docs.lammps.org/angle_style.html) command,\nwhich can be accessed by indices 1 through *N*. These values can be used by\nany command that uses global scalar or vector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": "none\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" -}, -{ - "command": [ - "pair_style tersoff/zbl", - "pair_style tersoff/zbl/gpu", - "pair_style tersoff/zbl/kk", - "pair_style tersoff/zbl/omp" - ], - "syntax": [ - "pair_style tersoff/zbl keywords values" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "vx", + "type": 2, "choices": [] }, { - "arg": "tersoff/zbl", - "type": 3, - "choices": [ - "tersoff/zbl", - "tersoff/zbl/gpu", - "tersoff/zbl/kk", - "tersoff/zbl/omp" - ] + "arg": "vy", + "type": 2, + "choices": [] }, { - "arg": "keywords", + "arg": "vz", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", - "examples": "\n```lmps\npair_style tersoff/zbl\npair_coeff * * SiC.tersoff.zbl Si C Si\n```\n", - "html_filename": "pair_tersoff_zbl.html", - "short_description": "The *tersoff/zbl* style computes a 3-body Tersoff potential\n**zbl-Tersoff_1** with a close-separation pairwise modification\nbased on a Coulomb potential and the Ziegler-Biersack-Littmark\nuniversal screening function **zbl-ZBL**, giving the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = (1 - f_F(r_{ij} + \\delta)) V^{ZBL}(r_{ij} + \\delta)\n + f_F(r_{ij} + \\delta) V^{Tersoff}(r_{ij} + \\delta) \\\\\n f_F(r) & = \\frac{1}{1 + e^{-A_F(r - r_C)}}\\\\\n \\\\\n \\\\\n V^{ZBL}(r) & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_1 Z_2 \\,e^2}{r} \\phi(r/a) \\\\\n a & = \\frac{0.8854\\,a_0}{Z_{1}^{0.23} + Z_{2}^{0.23}}\\\\\n \\phi(x) & = 0.1818e^{-3.2x} + 0.5099e^{-0.9423x} + 0.2802e^{-0.4029x} + 0.02817e^{-0.2016x}\\\\\n \\\\\n \\\\\n V^{Tersoff}(r) & = f_C(r) \\left[ f_R(r) + b_{ij} f_A(r) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", - "description": "The *tersoff/zbl* style computes a 3-body Tersoff potential\n**zbl-Tersoff_1** with a close-separation pairwise modification\nbased on a Coulomb potential and the Ziegler-Biersack-Littmark\nuniversal screening function **zbl-ZBL**, giving the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = (1 - f_F(r_{ij} + \\delta)) V^{ZBL}(r_{ij} + \\delta)\n + f_F(r_{ij} + \\delta) V^{Tersoff}(r_{ij} + \\delta) \\\\\n f_F(r) & = \\frac{1}{1 + e^{-A_F(r - r_C)}}\\\\\n \\\\\n \\\\\n V^{ZBL}(r) & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_1 Z_2 \\,e^2}{r} \\phi(r/a) \\\\\n a & = \\frac{0.8854\\,a_0}{Z_{1}^{0.23} + Z_{2}^{0.23}}\\\\\n \\phi(x) & = 0.1818e^{-3.2x} + 0.5099e^{-0.9423x} + 0.2802e^{-0.4029x} + 0.02817e^{-0.2016x}\\\\\n \\\\\n \\\\\n V^{Tersoff}(r) & = f_C(r) \\left[ f_R(r) + b_{ij} f_A(r) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + \\beta^n {\\zeta_{ij}}^n \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g(\\theta_{ijk})\n \\exp \\left[ {\\lambda_3}^m (r_{ij} - r_{ik})^m \\right] \\\\\n g(\\theta) & = \\gamma_{ijk} \\left( 1 + \\frac{c^2}{d^2} -\n \\frac{c^2}{\\left[ d^2 + (\\cos \\theta - \\cos \\theta_0)^2\\right]} \\right) \\end{align*} \\]\nThe \\(f_F\\) term is a fermi-like function used to smoothly connect the ZBL\nrepulsive potential with the Tersoff potential. There are 2\nparameters used to adjust it: \\(A_F\\) and \\(r_C\\). \\(A_F\\)\ncontrols how \"sharp\"\nthe transition is between the two, and \\(r_C\\) is essentially the cutoff\nfor the ZBL potential.\n\nFor the ZBL portion, there are two terms. The first is the Coulomb\nrepulsive term, with Z1, Z2 as the number of protons in each nucleus,\ne as the electron charge (1 for metal and real units) and \\(\\epsilon_0\\)\nas the permittivity of vacuum. The second part is the ZBL universal\nscreening function, with a0 being the Bohr radius (typically 0.529\nAngstroms), and the remainder of the coefficients provided by the\noriginal paper. This screening function should be applicable to most\nsystems. However, it is only accurate for small separations\n(i.e. less than 1 Angstrom).\n\nFor the Tersoff portion, \\(f_R\\) is a two-body term and \\(f_A\\)\nincludes\nthree-body interactions. The summations in the formula are over all\nneighbors J and K of atom I within a cutoff distance = R + D.\n\n\\(\\delta\\) is an optional negative shift of the\nequilibrium bond length, as described below.\n\nOnly a single pair_coeff command is used with the *tersoff/zbl* style\nwhich specifies a Tersoff/ZBL potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff/ZBL elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values\nfor Si and C. If your LAMMPS simulation has 4 atoms types and you\nwant the first 3 to be Si, and the fourth to be C, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * SiC.tersoff Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the Tersoff/ZBL file. The final C argument maps LAMMPS\natom type 4 to the C element in the Tersoff/ZBL file. If a mapping\nvalue is specified as NULL, the mapping is not performed. This can be\nused when a *tersoff/zbl* potential is used as part of the *hybrid*\npair style. The NULL values are placeholders for atom types that will\nbe used with other potentials.\n\nTersoff/ZBL files in the *potentials* directory of the LAMMPS\ndistribution have a \".tersoff.zbl\" suffix. Lines that are not blank\nor comments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to coefficients\nin the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* m\n* \\(\\gamma\\)\n* \\(\\lambda_3\\) (1/distance units)\n* c\n* d\n* \\(\\cos\\theta_0\\) (can be a value < -1 or > 1)\n* n\n* \\(\\beta\\)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n* \\(Z_i\\)\n* \\(Z_j\\)\n* ZBLcut (distance units)\n* ZBLexpscale (1/distance units)\n\nThe n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A\nparameters are only used for\ntwo-body interactions. The m, \\(\\gamma\\), \\(\\lambda_3\\), c, d,\nand \\(\\cos\\theta_0\\)\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions. The\n\\(Z_i\\), \\(Z_j\\), ZBLcut, ZBLexpscale parameters are used in the\nZBL repulsive\nportion of the potential and in the Fermi-like function. The\nnon-annotated parameters are unitless. The value of m must be 3 or 1.\n\nThe Tersoff/ZBL potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify Tersoff parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction and it is bonded to the second atom and the\nbond is influenced by the third atom. Thus an entry for SiCC means Si\nbonded to a C with another C atom influencing the bond. Thus\nthree-body parameters for SiCSi and SiSiC entries will not, in\ngeneral, be the same. The parameters used for the two-body\ninteraction come from the entry where the second element is repeated.\nThus the two-body parameters for Si interacting with C, comes from the\nSiCC entry.\n\nThe parameters used for a particular\nthree-body interaction come from the entry with the corresponding\nthree elements. The parameters used only for two-body interactions\n(n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A)\nin entries whose second and third\nelement are different (e.g. SiCSi) are not used for anything and can\nbe set to 0.0 if desired.\n\nNote that the twobody parameters in entries such as SiCC and CSiSi\nare often the same, due to the common use of symmetric mixing rules,\nbut this is not always the case. For example, the beta and n parameters in\nTersoff_2 **zbl-Tersoff_2** are not symmetric.\n\nWe chose the above form so as to enable users to define all commonly\nused variants of the Tersoff portion of the potential. In particular,\nour form reduces to the original Tersoff form when m = 3 and gamma =\n1, while it reduces to the form of **zbl-Albe** when beta = 1\nand m = 1. Note that in the current Tersoff implementation in LAMMPS,\nm must be specified as either 3 or 1. Tersoff used a slightly\ndifferent but equivalent form for alloys, which we will refer to as\nTersoff_2 potential **zbl-Tersoff_2**.\n\nLAMMPS parameter values for Tersoff_2 can be obtained as follows:\n\\(\\gamma = \\omega_{ijk}\\), \\(\\lambda_3 = 0\\) and the value of\nm has no effect. The parameters for species i and j can be calculated\nusing the Tersoff_2 mixing rules:\n\\[\\begin{align*} \n \\lambda_1^{i,j} & = \\frac{1}{2}(\\lambda_1^i + \\lambda_1^j)\\\\\n \\lambda_2^{i,j} & = \\frac{1}{2}(\\lambda_2^i + \\lambda_2^j)\\\\\n A_{i,j} & = (A_{i}A_{j})^{1/2}\\\\\n B_{i,j} & = \\chi_{ij}(B_{i}B_{j})^{1/2}\\\\\n R_{i,j} & = (R_{i}R_{j})^{1/2}\\\\\n S_{i,j} & = (S_{i}S_{j})^{1/2}\\\\ \\end{align*} \\]\nTersoff_2 parameters R and S must be converted to the LAMMPS\nparameters R and D (R is different in both forms), using the following\nrelations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the\nTersoff_2 parameters.\n\nIn the potentials directory, the file SiCGe.tersoff provides the\nLAMMPS parameters for Tersoff's various versions of Si, as well as his\nalloy parameters for Si, C, and Ge. This file can be used for pure Si,\n(three different versions), pure C, pure Ge, binary SiC, and binary\nSiGe. LAMMPS will generate an error if this file is used with any\ncombination involving C and Ge, since there are no entries for the GeC\ninteractions (Tersoff did not publish parameters for this\ncross-interaction.) Tersoff files are also provided for the SiC alloy\n(SiC.tersoff) and the GaN (GaN.tersoff) alloys.\n\nMany thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou\nfor helping clarify how Tersoff parameters for alloys have been\ndefined in various papers. Also thanks to Ram Devanathan for\nproviding the base ZBL implementation.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose\nformula is the same as the Tersoff potential. The only modification is\nthat the original equilibrium bond length ( \\(r_0\\)) of the system\nis shifted to \\(r_0-\\delta\\). The minus sign arises because each\nradial distance \\(r\\) is replaced by \\(r+\\delta\\). More\ninformation on this option is given on the main [pair_tersoff](https://docs.lammps.org/pair_tersoff.html) page.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(zbl-Tersoff_1)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(zbl-ZBL)** J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges\nof Ions in Matter' Vol 1, 1985, Pergamon Press. \n \n**(zbl-Tersoff_2)** J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248) \n \n**(zbl-Albe)** J. Nord, K. Albe, P. Erhart and K. Nordlund, J. Phys.:\nCondens. Matter, 15, 5649(2003). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is currently not supported for the *tersoff/gpu* and\n*tersoff/kk* variants of this pair style.\n\nThe tersoff/zbl potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for [\"metal\" units ](https://docs.lammps.org/units.html). Also the\npair style supports converting potential file parameters on-the-fly\nbetween \"metal\" and \"real\" units. You can use the tersoff/zbl pair\nstyle with any LAMMPS units, but you would need to create your own\ntersoff/zbl potential file with coefficients listed in the appropriate\nunits if your simulation does not use \"metal\" or \"real\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/setvel = style name of this fix command\n* vx,vy,vz = velocity component values\n* any of vx,vy,vz can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region particles must be in to have their velocities set \n", + "examples": "\n```lmps\nfix top_velocity top_group smd/setvel 1.0 0.0 0.0\n```\n", + "html_filename": "fix_smd_setvel.html", + "short_description": "Set each component of velocity on each particle in the group to the specified\nvalues vx,vy,vz, regardless of the forces acting on the particle", + "description": "Set each component of velocity on each particle in the group to the specified\nvalues vx,vy,vz, regardless of the forces acting on the particle. This command can\nbe used to impose velocity boundary conditions.\n\nAny of the vx,vy,vz values can be specified as NULL which means do not\nalter the velocity component in that dimension.\n\nThis fix is indented to be used together with a time integration fix.\n\nAny of the 3 quantities defining the velocity components can be specified\nas an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html), namely *vx*,\n*vy*, *vz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\nforce component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent velocity field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent velocity\nfield with optional time-dependence as well.\n\nIf the *region* keyword is used, the particle must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have its velocity set by this command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor minimization\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms. The vector values calculated by this fix\nare \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none\n" }, { "command": [ @@ -24622,185 +23483,239 @@ export const command_docs = [ }, { "command": [ - "write_coeff" + "pair_style gayberne", + "pair_style gayberne/gpu", + "pair_style gayberne/intel", + "pair_style gayberne/omp" ], "syntax": [ - "write_coeff file" + "pair_style gayberne gamma upsilon mu cutoff" ], "args": [ [ { - "arg": "write_coeff", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "file", + "arg": "gayberne", + "type": 3, + "choices": [ + "gayberne", + "gayberne/gpu", + "gayberne/intel", + "gayberne/omp" + ] + }, + { + "arg": "gamma", + "type": 2, + "choices": [] + }, + { + "arg": "upsilon", + "type": 2, + "choices": [] + }, + { + "arg": "mu", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* file = name of data file to write out \n", - "examples": "\n```lmps\nwrite_coeff polymer.coeff\n```\n", - "html_filename": "write_coeff.html", - "short_description": "Write a text format file with the currently defined force field\ncoefficients in a way, that it can be read by LAMMPS with the\n[include ](https://docs.lammps.org/include.html) command", - "description": "Write a text format file with the currently defined force field\ncoefficients in a way, that it can be read by LAMMPS with the\n[include ](https://docs.lammps.org/include.html) command. In combination with the nocoeff\noption of [write_data ](https://docs.lammps.org/write_data.html) this can be used to move\nthe Coeffs sections from a data file into a separate file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The write_coeff command is not yet fully implemented as\n > some pair styles do not output their coefficient information.\n > This means you will need to add/copy this information manually. \n > \n\n----------\n", - "restrictions": "none\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_restart ](https://docs.lammps.org/write_restart.html),\n[write_data ](https://docs.lammps.org/write_data.html)\n" + "parameters": "* gamma = shift for potential minimum (typically 1)\n* upsilon = exponent for eta orientation-dependent energy function\n* mu = exponent for chi orientation-dependent energy function\n* cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style gayberne 1.0 1.0 1.0 10.0\npair_coeff * * 1.0 1.7 1.7 3.4 3.4 1.0 1.0 1.0\n```\n", + "html_filename": "pair_gayberne.html", + "short_description": "The *gayberne* styles compute a Gay-Berne anisotropic LJ interaction\n:ref:[(Berardi) ](https://docs.lammps.org/Berardi>` between pairs of ellipsoidal particles or anellipsoidal and spherical particle via the formulas\\[\\begin{align*} U ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12} ) = & U_r ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\gamma ) \\cdot \\eta_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\upsilon ) \\cdot \\chi_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\mu ) \\\\ U_r = & 4 \\epsilon ( \\varrho^{12} - \\varrho^6) \\\\ \\varrho = & \\frac{\\sigma}{ h_{12} + \\gamma \\sigma} \\end{align*} \\]where \\(\\mathbf{A}_1\\) and \\(\\mathbf{A}_2\\) are thetransformation matrices from the simulation box frame to the body frameand \\(r_{12}\\) is the center to center vector between the particles.\\(U_r\\) controls the shifted distance dependent interaction based onthe distance of closest approach of the two particles (\\(h_{12}\\))and the user-specified shift parameter \\(\\gamma\\)", + "description": "The *gayberne* styles compute a Gay-Berne anisotropic LJ interaction\n:ref:[(Berardi) ](https://docs.lammps.org/Berardi>` between pairs of ellipsoidal particles or anellipsoidal and spherical particle via the formulas\\[\\begin{align*} U ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12} ) = & U_r ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\gamma ) \\cdot \\eta_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\upsilon ) \\cdot \\chi_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\mu ) \\\\ U_r = & 4 \\epsilon ( \\varrho^{12} - \\varrho^6) \\\\ \\varrho = & \\frac{\\sigma}{ h_{12} + \\gamma \\sigma} \\end{align*} \\]where \\(\\mathbf{A}_1\\) and \\(\\mathbf{A}_2\\) are thetransformation matrices from the simulation box frame to the body frameand \\(r_{12}\\) is the center to center vector between the particles.\\(U_r\\) controls the shifted distance dependent interaction based onthe distance of closest approach of the two particles (\\(h_{12}\\))and the user-specified shift parameter \\(\\gamma\\). When bothparticles are spherical, the formula reduces to the usual Lennard-Jonesinteraction (see details below for when Gay-Berne treats a particle as\"spherical\").For large uniform molecules it has been shown that the energyparameters are approximately representable in terms of local contactcurvatures **Everaers2**:\\[ \\epsilon_a = \\sigma \\cdot { \\frac{a}{ b \\cdot c } }; \\epsilon_b = \\sigma \\cdot { \\frac{b}{ a \\cdot c } }; \\epsilon_c = \\sigma \\cdot { \\frac{c}{ a \\cdot b } }\\]The variable names utilized as potential parameters are for the mostpart taken from **Everaers2** in order to be consistent withthe [RE-squared pair potential ](https://docs.lammps.org/pair_resquared.html). Details on theupsilon and mu parameters are given`here ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the \\(\\epsilon_{a}\\) = \\(\\epsilon_{b}\\) = \\(\\epsilon_{c}\\) for an atom type, and if the shape\n > of the particle itself is spherical, meaning its 3 shape parameters\n > are all the same, then the particle is treated as an LJ sphere by the\n > Gay-Berne potential. This is significant because if two LJ spheres\n > interact, then the simple Lennard-Jones formula is used to compute\n > their interaction energy/force using the specified epsilon and sigma\n > as the standard LJ parameters. This is much cheaper to compute than\n > the full Gay-Berne formula. To treat the particle as a LJ sphere\n > with sigma = D, you should normally set \\(\\epsilon_{a}\\) = \\(\\epsilon_{b}\\) = \\(\\epsilon_{c}\\) =\n > 1.0, set the pair_coeff \\(\\sigma = D\\), and also set the 3 shape\n > parameters for the particle to D. The one exception is that if the 3\n > shape parameters are set to 0.0, which is a valid way in LAMMPS to\n > specify a point particle, then the Gay-Berne potential will treat\n > that as shape parameters of 1.0 (i.e. a LJ particle with\n > \\(\\sigma = 1\\)), since it requires finite-size particles. In\n > this case you should still set the pair_coeff \\(\\sigma\\) to 1.0\n > as well. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for this pair style can be mixed. The default mix\nvalue is *geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Lennard-Jones portion of the pair\ninteraction, but only for sphere-sphere interactions. There is no\nshifting performed for ellipsoidal interactions due to the anisotropic\ndependence of the interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Everaers2)** Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", + "restrictions": "The *gayberne* style is part of the ASPHERE package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require that atoms store torque and a quaternion to\nrepresent their orientation, as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html). It also require they store a per-type\n[shape ](https://docs.lammps.org/set.html). The particles cannot store a per-particle\ndiameter.\n\nThis pair style requires that atoms be ellipsoids as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n\nParticles acted on by the potential can be finite-size aspherical or\nspherical particles, or point particles. Spherical particles have all\n3 of their shape parameters equal to each other. Point particles have\nall 3 of their shape parameters equal to 0.0.\n\nThe Gay-Berne potential does not become isotropic as r increases\n**Everaers2**. The distance-of-closest-approach\napproximation used by LAMMPS becomes less accurate when high-aspect\nratio ellipsoids are used.\n\n**(Everaers2)** Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html),\n[compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html), [pair_style resquared ](https://docs.lammps.org/pair_resquared.html)\n" }, { "command": [ - "pair_style oxdna2/excv", - "pair_style oxdna2/stk", - "pair_style oxdna2/hbond", - "pair_style oxdna2/xstk", - "pair_style oxdna2/coaxstk" + "bond_style quartic", + "bond_style quartic/omp" ], "syntax": [ - "pair_style style1" + "bond_style quartic" ], "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "style1", - "type": 2, - "choices": [] + "arg": "quartic", + "type": 3, + "choices": [ + "quartic", + "quartic/omp" + ] } ] ], - "parameters": "* style1 = *hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh*\n\n* style2 = oxdna2/excv or oxdna2/stk or oxdna2/hbond or oxdna2/xstk or oxdna2/coaxstk or oxdna2/dh\n* args = list of arguments for these particular styles \n *      oxdna2/stk args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.3523 (LJ units) or 8.06199211612242 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.6717 (LJ units) or 0.005309213 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxdna2/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 1.0678 (LJ units) or 6.36589157849259 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs \n *      oxdna2/dh args = T rhos qeff \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       rhos = salt concentration (mole per litre) \n       qeff = 0.815 (effective charge in elementary charges) \n", - "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna2/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxdna2/hbond seqdep 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxdna2/hbond seqdep 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxdna2/xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna2/coaxstk 58.5 0.4 0.6 0.22 0.58 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793\npair_coeff * * oxdna2/dh 0.1 0.5 0.815\n\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv oxdna2_lj.cgdna\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff * * oxdna2/xstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/dh 0.1 0.5 oxdna2_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65\npair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45\npair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68\npair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 40.0 3.116592653589793\npair_coeff * * oxdna2/dh 300.0 0.5 0.815\n\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv oxdna2_real.cgdna\npair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 oxdna2_real.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_real.cgdna\npair_coeff * * oxdna2/xstk oxdna2_real.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_real.cgdna\npair_coeff * * oxdna2/dh 300.0 0.5 oxdna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", - "html_filename": "pair_oxdna2.html", - "short_description": "The *oxdna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of DNA", - "description": "The *oxdna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of DNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxdna2/excv*, the stacking *oxdna2/stk*,\ncross-stacking *oxdna2/xstk* and coaxial stacking interaction\n*oxdna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxdna2/dh* as\nwell as the hydrogen-bonding interaction *oxdna2/hbond* between\ncomplementary pairs of nucleotides on opposite strands. Average sequence\nor sequence-dependent stacking and base-pairing strengths are supported\n:ref:[(Sulc) ](https://docs.lammps.org/Sulc2>`. Quasi-unique base-pairing between nucleotides canbe achieved by using more complementary pairs of atom types like 5-8 and6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents thehybridization of in principle complementary bases within Ntypes/4 basesup and down along the backbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to **Snodin2**and the original oxDNA publications :ref:`(Ouldridge-DPhil)` and **Ouldridge2** for a detaileddescription of the oxDNA2 force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA2 > bond style *oxdna2/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxdna2/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 and > corresponding *real unit* equivalents in the above examples). the > first coefficient after *oxdna2/hbond* (seq=seqdep in the above > example) and the three coefficients after *oxdna2/dh* (T=0.1, > rhos=0.5, qeff=0.815 in the above example). When using a Langevin > thermostat e.g. through [fix langevin ](https://docs.lammps.org/fix_langevin.html) or > [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature > coefficients have to be matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. Asimple python setup tool which creates single straight or helical DNAstrands, DNA duplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich2** in any publication that usesthis implementation. An updated documentation that contains generalinformation on the model, its implementation and performance as well asthe structure of the data and input file can be found `here\n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh\npair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna\npair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna\npair_coeff * * oxdna2/xstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna\npair_coeff * * oxdna2/dh 0.1 0.5 0.815\n```\nwill read the excluded volume and Debye-Hueckel effective charge *qeff*\nparameters from the manual specification and all others from the\npotential file *oxdna2_lj.cgdna*.\n\nThere are sample potential files for each unit style in the ``potentials``\ndirectory of the LAMMPS distribution. The potential file unit system\nmust align with the units defined via the [units ](https://docs.lammps.org/units.html)\ncommand. For conversion between different *LJ* and *real* unit systems\nfor oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool assumes\nsimilar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc2)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Snodin2)** B.E. Snodin, F. Randisi, M. Mosayebi, et al., J. Chem. Phys. 142, 234901 (2015). \n \n**(Ouldridge2)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich2)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n ", - "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html),\n[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxrna2/excv ](https://docs.lammps.org/pair_oxrna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" + "parameters": "", + "examples": "\n```lmps\nbond_style quartic\nbond_coeff 2 1200 -0.55 0.25 1.3 34.6878\n```\n", + "html_filename": "bond_quartic.html", + "short_description": "The *quartic* bond style uses the potential\n\\[\\begin{align*} \n E & = E_q + E_{LJ} \\\\\n E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\\\\n E_{LJ} & = \\left\\{ \\begin{array} {l@{\\quad:\\quad}l}\n 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon & r < 2^{\\frac{1}{6}}, \\epsilon = 1, \\sigma = 1 \\\\\n 0 & r >= 2^{\\frac{1}{6}}\n \\end{array} \\right", + "description": "The *quartic* bond style uses the potential\n\\[\\begin{align*} \n E & = E_q + E_{LJ} \\\\\n E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\\\\n E_{LJ} & = \\left\\{ \\begin{array} {l@{\\quad:\\quad}l}\n 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + \\epsilon & r < 2^{\\frac{1}{6}}, \\epsilon = 1, \\sigma = 1 \\\\\n 0 & r >= 2^{\\frac{1}{6}}\n \\end{array} \\right. \\end{align*} \\]\nto define a bond that can be broken as the simulation proceeds (e.g.\ndue to a polymer being stretched). The \\(\\sigma\\) and\n\\(\\epsilon\\) used in the LJ portion of the formula are both set\nequal to 1.0 by LAMMPS and the LJ portion is cut off at its minimum,\ni.e. at \\(r_c = 2^{\\frac{1}{6}}\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\(B_1\\) (distance)\n* \\(B_2\\) (distance)\n* \\(R_c\\) (distance)\n* \\(U_0\\) (energy)\n\nThis potential was constructed to mimic the FENE bond potential for\ncoarse-grained polymer chains. When monomers with \\(\\sigma =\n\\epsilon = 1.0\\) are used, the following choice of parameters gives a\nquartic potential that looks nearly like the FENE potential:\n\\[\\begin{align*} \n K &= 1200 \\\\\n B_1 &= -0.55 \\\\\n B_2 &= 0.25 \\\\\n R_c &= 1.3 \\\\\n U_0 &= 34.6878 \\end{align*} \\]\nDifferent parameters can be specified using the [bond_coeff ](https://docs.lammps.org/bond_coeff.html)\ncommand, but you will need to choose them carefully so they form a suitable\nbond potential.\n\n\\(R_c\\) is the cutoff length at which the bond potential goes smoothly to a\nlocal maximum. If a bond length ever becomes \\(> R_c\\), LAMMPS \"breaks\"\nthe bond, which means two things. First, the bond potential is turned\noff by setting its type to 0, and is no longer computed. Second, a\npairwise interaction between the two atoms is turned on, since they\nare no longer bonded. See the [Howto ](https://docs.lammps.org/Howto_broken_bonds.html) page\non broken bonds for more information.\n\nLAMMPS does the second task via a computational sleight-of-hand. It\nsubtracts the pairwise interaction as part of the bond computation.\nWhen the bond breaks, the subtraction stops. For this to work, the\npairwise interaction must always be computed by the\n[pair_style ](https://docs.lammps.org/pair_style.html) command, whether the bond is broken or\nnot. This means that [special_bonds ](https://docs.lammps.org/special_bonds.html) must be set\nto 1,1,1, as indicated as a restriction below.\n\nNote that when bonds are dumped to a file via the [dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 are not included. The\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to query the\nstatus of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThe *quartic* style requires that [special_bonds ](https://docs.lammps.org/special_bonds.html)\nparameters be set to 1,1,1. Three- and four-body interactions (angle,\ndihedral, etc) cannot be used with *quartic* bonds.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "fix shake", - "fix shake/kk", - "fix rattle" + "reset_timestep" ], "syntax": [ - "fix ID group-ID style tol iter N constraint values ... keyword value ..." + "reset_timestep N keyword values ..." ], "args": [ [ { - "arg": "fix", + "arg": "reset_timestep", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "style", - "type": 2, - "choices": [] - }, - { - "arg": "tol", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "iter", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "values", "type": 2, "choices": [] - }, - { - "arg": "m", + } + ] + ], + "parameters": "* N = timestep number\n* zero or more keyword/value pairs may be appended\n* keyword = time \n *      time value = atime \n       atime = accumulated simulation time \n", + "examples": "\n```lmps\nreset_timestep 0\nreset_timestep 4000000\nreset_timestep 1000 time 100.0\n```\n", + "html_filename": "reset_timestep.html", + "short_description": "Set the timestep counter to the specified value", + "description": "Set the timestep counter to the specified value. This command\nusually comes after the timestep has been set by reading a restart\nfile via the [read_restart ](https://docs.lammps.org/read_restart.html) command, or a previous\nsimulation run or minimization advanced the timestep.\n\nThe optional *time* keyword allows to also set the accumulated\nsimulation time. This is usually the number of timesteps times\nthe size of the timestep, but when using variable size timesteps\nwith [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) it can differ.\n\nThe [read_data ](https://docs.lammps.org/read_data.html) and [create_box ](https://docs.lammps.org/create_box.html)\ncommands set the timestep to 0; the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand sets the timestep to the value it had when the restart file\nwas written. The same applies to the accumulated simulation time.\n", + "restrictions": "This command cannot be used when any fixes are defined that keep track\nof elapsed time to perform certain kinds of time-dependent operations.\nExamples are the [fix deposit ](https://docs.lammps.org/fix_deposit.html) and [fix dt/reset](https://docs.lammps.org/fix_dt_reset.html) commands. The former adds atoms on specific timesteps.\nThe latter keeps track of accumulated time.\n\nVarious fixes use the current timestep to calculate related quantities.\nIf the timestep is reset, this may produce unexpected behavior, but\nLAMMPS allows the fixes to be defined even if the timestep is reset.\nFor example, commands which thermostat the system, e.g. [fix nvt](https://docs.lammps.org/fix_nh.html), allow you to specify a target temperature which ramps from\nTstart to Tstop which may persist over several runs. If you change the\ntimestep, you may induce an instantaneous change in the target\ntemperature.\n\nResetting the timestep clears flags for [computes ](https://docs.lammps.org/compute.html) that\nmay have calculated some quantity from a previous run. This means these\nquantity cannot be accessed by a variable in between runs until a new\nrun is performed. See the [variable ](https://docs.lammps.org/variable.html) command for more\ndetails.\n", + "related": "[rerun ](https://docs.lammps.org/rerun.html), [timestep ](https://docs.lammps.org/timestep.html),\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\n" +}, +{ + "command": [ + "fix nonaffine/displacement" + ], + "syntax": [ + "fix ID group nonaffine/displacement style args reference/style nstep keyword values" + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] + }, + { + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group", + "type": 2, + "choices": [] + }, + { + "arg": "nonaffine/displacement", + "type": 1, + "choices": [] + }, + { + "arg": "integrated", "type": 3, "choices": [ - "b", - "a", - "t", - "m" + "d2min", + "integrated" ] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "kbond", + "arg": "offset", "type": 3, "choices": [ - "mol", - "kbond" + "fixed", + "update", + "offset" ] }, { - "arg": "value", + "arg": "nstep", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = shake or rattle = style name of this fix command\n* tol = accuracy tolerance of SHAKE solution\n* iter = max # of iterations in each SHAKE solution\n* N = print SHAKE statistics every this many timesteps (0 = never)\n* one or more constraint/value pairs are appended\n* constraint = b or a or t or m \n *        b values = one or more bond types (may use type labels) \n *        a values = one or more angle types (may use type labels) \n *        t values = one or more atom types (may use type labels) \n *        m value = one or more mass values \n* zero or more keyword/value pairs may be appended\n* keyword = mol or kbond \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        kbond value = force constant \n         force constant = force constant used to apply a restraint force when used during minimization \n", - "examples": "\n```lmps\nfix 1 sub shake 0.0001 20 10 b 4 19 a 3 5 2\nfix 1 sub shake 0.0001 20 10 t 5 6 m 1.0 a 31\nfix 1 sub shake 0.0001 20 10 t 5 6 m 1.0 a 31 mol myMol\nfix 1 sub rattle 0.0001 20 10 t 5 6 m 1.0 a 31\nfix 1 sub rattle 0.0001 20 10 t 5 6 m 1.0 a 31 mol myMol\n```\n", - "html_filename": "fix_shake.html", - "short_description": "Apply bond and angle constraints to specified bonds and angles in the\nsimulation by either the SHAKE or RATTLE algorithms", - "description": "Apply bond and angle constraints to specified bonds and angles in the\nsimulation by either the SHAKE or RATTLE algorithms. This typically\nenables a longer timestep. The SHAKE or RATTLE constraint algorithms,\nhowever, can *only* be applied during molecular dynamics runs.\n\nThese fixes may now also be used during minimization. In that case the\nconstraints are *approximated* by strong harmonic restraints.\n\n**SHAKE vs RATTLE:**\n\nThe SHAKE algorithm was invented for schemes such as standard Verlet\ntimestepping, where only the coordinates are integrated and the\nvelocities are approximated as finite differences to the trajectories\n(**Ryckaert**). If the velocities are\nintegrated explicitly, as with velocity Verlet which is what LAMMPS\nuses as an integration method, a second set of constraining forces is\nrequired in order to eliminate velocity components along the bonds\n(**Andersen3**).\n\nIn order to formulate individual constraints for SHAKE and RATTLE,\nfocus on a single molecule whose bonds are constrained. Let Ri and Vi\nbe the position and velocity of atom *i* at time *n*, for\n*i* =1,...,\\ *N*, where *N* is the number of sites of our reference\nmolecule. The distance vector between sites *i* and *j* is given by\n\\[\n \\mathbf r^{n+1}_{ij} = \\mathbf r^n_j - \\mathbf r^n_i\\]\nThe constraints can then be formulated as\n\\[\\begin{align*} \n \\mathbf r^{n+1}_{ij} \\cdot \\mathbf r^{n+1}_{ij} &= d^2_{ij} \\quad \\text{and} \\\\\n \\mathbf v^{n+1}_{ij} \\cdot \\mathbf r^{n+1}_{ij} &= 0 \\end{align*} \\]\nThe SHAKE algorithm satisfies the first condition, i.e. the sites at\ntime *n+1* will have the desired separations Dij immediately after the\ncoordinates are integrated. If we also enforce the second condition,\nthe velocity components along the bonds will vanish. RATTLE satisfies\nboth conditions. As implemented in LAMMPS, *fix rattle* uses fix shake\nfor satisfying the coordinate constraints. Therefore the settings and\noptional keywords are the same for both fixes, and all the information\nbelow about SHAKE is also relevant for RATTLE.\n\n**SHAKE:**\n\nEach timestep the specified bonds and angles are reset to their\nequilibrium lengths and angular values via the SHAKE algorithm\n(**Ryckaert**). This is done by applying an\nadditional constraint force so that the new positions preserve the\ndesired atom separations. The equations for the additional force are\nsolved via an iterative method that typically converges to an accurate\nsolution in a few iterations. The desired tolerance (e.g. 1.0e-4 = 1\npart in 10000) and maximum # of iterations are specified as arguments.\nSetting the N argument will print statistics to the screen and log\nfile about regarding the lengths of bonds and angles that are being\nconstrained. Small delta values mean SHAKE is doing a good job.\n\nIn LAMMPS, only small clusters of atoms can be constrained. This is\nso the constraint calculation for a cluster can be performed by a\nsingle processor, to enable good parallel performance. A cluster is\ndefined as a central atom connected to others in the cluster by\nconstrained bonds. LAMMPS allows for the following kinds of clusters\nto be constrained: one central atom bonded to 1 or 2 or 3 atoms, or\none central atom bonded to 2 others and the angle between the three atoms\nalso constrained. This means water molecules or CH2 or CH3 groups may\nbe constrained, but not all the C-C backbone bonds of a long polymer\nchain.\n\nThe *b* constraint lists bond types that will be constrained. The *t*\nconstraint lists atom types. All bonds connected to an atom of the\nspecified type will be constrained. The *m* constraint lists atom\nmasses. All bonds connected to atoms of the specified masses will be\nconstrained (within a fudge factor of MASSDELTA specified in\n``src/RIGID/fix_shake.cpp``). The *a* constraint lists angle types. If\nboth bonds in the angle are constrained then the angle will also be\nconstrained if its type is in the list.\n\nThe types may be given as type labels *only* if there is no atom, bond,\nor angle type label named *b*, *a*, *t*, or *m* defined in the\nsimulation. If that is the case, type labels cannot be used as\nconstraint type index with these two fixes, because the type labels\nwould be incorrectly treated as a new type of constraint instead.\nThus, LAMMPS will print a warning and type label handling is disabled\nand numeric types must be used.\n\nFor all constraints, a particular bond is only constrained if *both*\natoms in the bond are in the group specified with the SHAKE fix.\n\nThe degrees-of-freedom removed by SHAKE bonds and angles are accounted\nfor in temperature and pressure computations. Similarly, the SHAKE\ncontribution to the pressure of the system (virial) is also accounted\nfor.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command works by using the current forces on atoms to calculate\n > an additional constraint force which when added will leave the atoms\n > in positions that satisfy the SHAKE constraints (e.g. bond length)\n > after the next time integration step. If you define fixes\n > (e.g. [fix efield ](https://docs.lammps.org/fix_efield.html)) that add additional force to\n > the atoms after *fix shake* operates, then this fix will not take them\n > into account and the time integration will typically not satisfy the\n > SHAKE constraints. The solution for this is to make sure that fix\n > shake is defined in your input script after any other fixes which add\n > or change forces (to atoms that *fix shake* operates on). \n > \n\n----------\n\nThe *mol* keyword should be used when other commands, such as [fixdeposit ](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html), add molecules\non-the-fly during a simulation, and you wish to constrain the new\nmolecules via SHAKE. You specify a *template-ID* previously defined\nusing the [molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that\ndefines the molecule. You must use the same *template-ID* that the\ncommand adding molecules uses. The coordinates, atom types, special\nbond restrictions, and SHAKE info can be specified in the molecule file.\nSee the [molecule ](https://docs.lammps.org/molecule.html) command for details. The only\nsettings required to be in this file (by this command) are the SHAKE\ninfo of atoms in the molecule.\n\nThe *kbond* keyword sets the restraint force constant when *fix shake*\nor fix rattle are used during minimization. In that case the constraint\nalgorithms are *not* applied and restraint forces are used instead to\nmaintain the geometries similar to the constraints. How well the\ngeometries are maintained and how quickly a minimization converges,\ndepends largely on the force constant *kbond*: larger values will reduce\nthe deviation from the desired geometry, but can also lead to slower\nconvergence of the minimization or lead to instabilities depending on\nthe minimization algorithm requiring to reduce the value of\n[timestep ](https://docs.lammps.org/timestep.html). Even though the restraints will not\npreserve the bond lengths and angles as closely as the constraints\nduring the MD, they are generally close enough so that the constraints\nwill be fulfilled to the desired accuracy within a few MD steps\nfollowing the minimization. The default value for *kbond* depends on the\n[units ](https://docs.lammps.org/units.html) setting and is 1.0e6*k_B.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**RATTLE:**\n\nThe velocity constraints lead to a linear system of equations which\ncan be solved analytically. The implementation of the algorithm in\nLAMMPS closely follows (**Andersen3**).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *fix rattle* command modifies forces and velocities and thus\n > should be defined after all other integration fixes in your input\n > script. If you define other fixes that modify velocities or forces\n > after *fix rattle* operates, then *fix rattle* will not take them\n > into account and the overall time integration will typically not\n > satisfy the RATTLE constraints. You can check whether the\n > constraints work correctly by setting the value of RATTLE_DEBUG in\n > ``src/RIGID/fix_rattle.cpp`` to 1 and recompiling LAMMPS. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restartfiles ](https://docs.lammps.org/restart.html).\n\nBoth fix *shake* and fix *rattle* behave differently during a minimization\nin comparison to a molecular dynamics run:\n\n- When used during a minimization, the SHAKE or RATTLE constraint\n algorithms themselves are **not** applied. Instead the constraints\n are replaced by harmonic restraint forces. The energy and virial\n contributions due to the restraint forces are tallied into global and\n per-atom accumulators. The total restraint energy is also accessible\n as a global scalar property of the fix.\n\n- During molecular dynamics runs, however, the fixes do apply the\n requested SHAKE or RATTLE constraint algorithms.\n\n The [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\n these fixes to add the contribution due to the added constraint forces\n on atoms to both the global pressure and per-atom stress of the system\n via the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\n accessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html).\n\n The default setting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html). No global or per-atom quantities are stored by these\n fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html) during\n an MD run. No parameter of these fixes can be used with the\n *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\n\n**(Ryckaert)** J.-P. Ryckaert, G. Ciccotti and H. J. C. Berendsen,\nJ of Comp Phys, 23, 327-341 (1977). \n \n**(Andersen3)** H. Andersen, J of Comp Phys, 52, 24-34 (1983). \n ", - "restrictions": "These fixes are part of the RIGID package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor computational efficiency, there can only be one shake or rattle\nfix defined in a simulation.\n\nIf you use a tolerance that is too large or a max-iteration count that\nis too small, the constraints will not be enforced very strongly,\nwhich can lead to poor energy conservation. You can test for this in\nyour system by running a constant NVE simulation with a particular set\nof SHAKE parameters and monitoring the energy versus time.\n\nSHAKE or RATTLE should not be used to constrain an angle at 180 degrees\n(e.g. a linear CO2 molecule). This causes a divergence when solving the\nconstraint equations numerically. You can use [fix rigid or fixrigid/small ](https://docs.lammps.org/fix_rigid.html) instead to make a linear molecule rigid.\n\nWhen used during minimization choosing a too large value of the *kbond*\ncan make minimization very inefficient and also cause stability problems\nwith some minimization algorithms. Sometimes those can be avoided by\nreducing the [timestep ](https://docs.lammps.org/timestep.html).\n", - "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix ehex ](https://docs.lammps.org/fix_ehex.html),\n[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n" + "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nonaffine/displacement = style name of this fix command\n* nevery = calculate nonaffine displacement every this many timesteps\n* style = d2min or integrated \n *        d2min args = cutoff args \n         cutoff = type or radius or custom \n         type args = none, cutoffs determined by atom types \n         radius args = none, cutoffs determined based on atom diameters (atom style sphere) \n         custom args = rmax, cutoff set by a constant numeric value rmax (distance units) \n *        integrated args = none \n* reference/style = fixed or update or offset \n *        fixed = use a fixed reference frame at nstep \n *        update = update the reference frame every nstep timesteps \n *        offset = update the reference frame nstep timesteps before calculating the nonaffine displacement \n* zero or more keyword/value pairs may be appended \n *        *z/min* values = zmin \n         zmin = minimum coordination number to calculate D2min \n", + "examples": "\n```lmps\nfix 1 all nonaffine/displacement 100 integrated update 100\nfix 1 all nonaffine/displacement 1000 d2min type fixed 0\nfix 1 all nonaffine/displacement 1000 d2min custom 2.0 offset 100\n```\n", + "html_filename": "fix_nonaffine_displacement.html", + "short_description": "\nThis fix computes different metrics of the nonaffine displacement of\nparticles", + "description": "\nThis fix computes different metrics of the nonaffine displacement of\nparticles. The first metric, *d2min* calculates the \\(D^2_\\mathrm{min}\\)\nnonaffine displacement by Falk and Langer in **d2min-Falk**.\nFor each atom, the fix computes the two tensors\n\\[\n X = \\sum_{\\mathrm{neighbors}} \\vec{r} \\left(\\vec{r}_{0} \\right)^T\\]\nand\n\\[\n Y = \\sum_{\\mathrm{neighbors}} \\vec{r}_0 \\left(\\vec{r}_{0} \\right)^T\\]\nwhere the neighbors include all other atoms within the distance criterion\nset by the cutoff option, discussed below, \\(\\vec{r}\\) is the current\ndisplacement between particles, and \\(\\vec{r}_0\\) is the reference\ndisplacement. A deformation gradient tensor is then calculated as\n\\(F = X Y^{-1}\\) from which\n\\[\n D^2_\\mathrm{min} = \\sum_{\\mathrm{neighbors}} \\left| \\vec{r} - F \\vec{r}_0 \\right|^2\\]\nand a strain tensor is calculated \\(E = F F^{T} - I\\) where \\(I\\)\nis the identity tensor. This calculation is only performed on timesteps that\nare a multiple of *nevery* (including timestep zero). Data accessed before\nthis occurs will simply be zeroed.\n\nFor particles with low coordination numbers, calculations of \\(D^2_\\mathrm{min}\\)\nmay not be accurate. An optional minimum coordination number can be defined using\nthe *z/min* keyword. If any particle has fewer than the specified number of particles\nin the cutoff distance or in contact, the above calculations will be skipped and the\ncorresponding peratom array entries will be zero.\n\nThe *integrated* style simply integrates the velocity of particles\nevery timestep to calculate a displacement. This style only works if\nused in conjunction with another fix that deforms the box and displaces\natom positions such as [fix deform ](https://docs.lammps.org/fix_deform.html) with remap x,\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html), or [fix nh ](https://docs.lammps.org/fix_nh.html).\n\nBoth of these methods require defining a reference state. With the *fixed* reference\nstyle, the user picks a specific timestep *nstep* at which particle positions are saved.\nIf peratom data is accessed from this compute prior to this timestep, it will simply be\nzeroed. The *update* reference style implies the reference state will be updated every\n*nstep* timesteps. The *offset* reference will update the reference state *nstep*\ntimesteps before a multiple of *nevery* timesteps.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe reference state is saved to [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a peratom array with 3 columns, which can be accessed\nby indices 1-3 using any command that uses per-atom values from a fix\nas input.\n\nFor the *integrated* style, the three columns are the nonaffine\ndisplacements in the x, y, and z directions. For the *d2min* style,\nthe three columns are the calculated \\(\\sqrt{D^2_\\mathrm{min}}\\), the\nvolumetric strain, and the deviatoric strain.\n\n**(d2min-Falk)** Falk and Langer PRE, 57, 7192 (1998). \n ", + "restrictions": "This compute is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none\n" }, { "command": [ - "read_restart" + "clear" ], "syntax": [ - "read_restart file" + "clear" ], "args": [ [ { - "arg": "read_restart", + "arg": "clear", "type": 1, "choices": [] - }, - { - "arg": "file", - "type": 2, - "choices": [] } ] ], - "parameters": "* file = name of binary restart file to read in \n", - "examples": "\n```lmps\nread_restart save.10000\nread_restart restart.*\n```\n", - "html_filename": "read_restart.html", - "short_description": "Read in a previously saved system configuration from a restart file", - "description": "Read in a previously saved system configuration from a restart file.\nThis allows continuation of a previous run. Details about what\ninformation is stored (and not stored) in a restart file is given below.\nBasically this operation will re-create the simulation box with all its\natoms and their attributes as well as some related global settings, at\nthe point in time it was written to the restart file by a previous\nsimulation. The simulation box will be partitioned into a regular 3d\ngrid of rectangular bricks, one per processor, based on the number of\nprocessors in the current simulation and the settings of the\n[processors ](https://docs.lammps.org/processors.html) command. The partitioning can later be\nchanged by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\n **Deprecated in version 23Jun2022** \n\nAtom coordinates that are found to be outside the simulation box when\nreading the restart will be remapped back into the box and their image\nflags updated accordingly. This previously required specifying the\n*remap* option, but that is no longer required.\n\nRestart files are saved in binary format to enable exact restarts,\nmeaning that the trajectories of a restarted run will precisely match\nthose produced by the original run had it continued on.\n\nSome information about a restart file can be gathered directly from the\ncommand line when using LAMMPS with the :ref:`-restart2info\n` command line flag. On Unix-like operating systems (like\nLinux or macOS), one can also :ref:`configure the \"file\" command line\nprogram ` to display basic information about a restart file\n\nThe binary restart file format was not designed with backward, forward,\nor cross-platform compatibility in mind, so the files are only expected\nto be read correctly by the same LAMMPS executable on the same platform.\nChanges to the architecture, compilation settings, or LAMMPS version can\nrender a restart file unreadable or it may read the data incorrectly.\nIf you want a more portable format, you can use the data file format as\ncreated by the [write_data ](https://docs.lammps.org/write_data.html) command. Binary restart\nfiles can also be converted into a data file from the command line by\nthe LAMMPS executable that wrote them using the :ref:`-restart2data\n` command line flag.\n\nSeveral things can prevent exact restarts due to round-off effects, in\nwhich case the trajectories in the 2 runs will slowly diverge. These\ninclude running on a different number of processors or changing\ncertain settings such as those set by the [newton ](https://docs.lammps.org/newton.html) or\n[processors ](https://docs.lammps.org/processors.html) commands. LAMMPS will issue a warning in\nthese cases.\n\nCertain fixes will not restart exactly, though they should provide\nstatistically similar results. These include [fix shake](https://docs.lammps.org/fix_shake.html) and [fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nCertain pair styles will not restart exactly, though they should\nprovide statistically similar results. This is because the forces\nthey compute depend on atom velocities, which are used at half-step\nvalues every timestep when forces are computed. When a run restarts,\nforces are initially evaluated with a full-step velocity, which is\ndifferent than if the run had continued. These pair styles include\n[granular pair styles ](https://docs.lammps.org/pair_gran.html), [pair dpd ](https://docs.lammps.org/pair_dpd.html), and\n[pair lubricate ](https://docs.lammps.org/pair_lubricate.html).\n\nIf a restarted run is immediately different than the run which\nproduced the restart file, it could be a LAMMPS bug, so consider\n[reporting it ](https://docs.lammps.org/Errors_bugs.html) if you think the behavior is a bug.\n\nBecause restart files are binary, they may not be portable to other\nmachines. In this case, you can use the [-restart command-lineswitch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\nSimilar to how restart files are written (see the [write_restart](https://docs.lammps.org/write_restart.html) and [restart ](https://docs.lammps.org/restart.html) commands), the restart\nfilename can contain two wild-card characters. If a \"\\*\" appears in the\nfilename, the directory is searched for all filenames that match the\npattern where \"\\*\" is replaced with a timestep value. The file with the\nlargest timestep value is read in. Thus, this effectively means, read\nthe latest restart file. It's useful if you want your script to\ncontinue a run from where it left off. See the [run ](https://docs.lammps.org/run.html) command\nand its \"upto\" option for how to specify the run command so it does not\nneed to be changed either.\n\nIf a \"%\" character appears in the restart filename, LAMMPS expects a\nset of multiple files to exist. The [restart ](https://docs.lammps.org/restart.html) and\n[write_restart ](https://docs.lammps.org/write_restart.html) commands explain how such sets are\ncreated. Read_restart will first read a filename where \"%\" is\nreplaced by \"base\". This file tells LAMMPS how many processors\ncreated the set and how many files are in it. Read_restart then reads\nthe additional files. For example, if the restart file was specified\nas save.% when it was written, then read_restart reads the files\nsave.base, save.0, save.1, ... save.P-1, where P is the number of\nprocessors that created the restart file.\n\nNote that P could be the total number of processors in the previous\nsimulation, or some subset of those processors, if the *fileper* or\n*nfile* options were used when the restart file was written; see the\n[restart ](https://docs.lammps.org/restart.html) and [write_restart ](https://docs.lammps.org/write_restart.html) commands\nfor details. The processors in the current LAMMPS simulation share\nthe work of reading these files; each reads a roughly equal subset of\nthe files. The number of processors which created the set can be\ndifferent the number of processors in the current LAMMPS simulation.\nThis can be a fast mode of input on parallel machines that support\nparallel I/O.\n\n----------\n\nHere is the list of information included in a restart file, which\nmeans these quantities do not need to be re-specified in the input\nscript that reads the restart file, though you can redefine many of\nthese settings after the restart file is read.\n\n* [units ](https://docs.lammps.org/units.html)\n* [newton bond ](https://docs.lammps.org/newton.html) (see discussion of newton command below)\n* [atom style ](https://docs.lammps.org/atom_style.html) and [atom_modify ](https://docs.lammps.org/atom_modify.html) settings id, map, sort\n* [comm style ](https://docs.lammps.org/comm_style.html) and [comm_modify ](https://docs.lammps.org/comm_modify.html) settings mode, cutoff, vel\n* [timestep size ](https://docs.lammps.org/timestep.html) and [timestep number ](https://docs.lammps.org/reset_timestep.html)\n* simulation box size and shape and [boundary ](https://docs.lammps.org/boundary.html) settings\n* atom [group ](https://docs.lammps.org/group.html) definitions\n* per-type atom settings such as [mass ](https://docs.lammps.org/mass.html)\n* per-atom attributes including their group assignments and molecular topology attributes (bonds, angles, etc)\n* force field styles ([pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html), etc)\n* force field coefficients ([pair ](https://docs.lammps.org/pair_coeff.html), [bond ](https://docs.lammps.org/bond_coeff.html), [angle ](https://docs.lammps.org/angle_coeff.html), etc) in some cases (see below)\n* [pair_modify ](https://docs.lammps.org/pair_modify.html) settings, except the compute option\n* [special_bonds ](https://docs.lammps.org/special_bonds.html) settings\n\nHere is a list of information not stored in a restart file, which\nmeans you must re-issue these commands in your input script, after\nreading the restart file.\n\n* [newton pair ](https://docs.lammps.org/newton.html) (see discussion of newton command below)\n* [fix ](https://docs.lammps.org/fix.html) commands (see below)\n* [compute ](https://docs.lammps.org/compute.html) commands (see below)\n* [variable ](https://docs.lammps.org/variable.html) commands\n* [region ](https://docs.lammps.org/region.html) commands\n* [neighbor list ](https://docs.lammps.org/neighbor.html) criteria including [neigh_modify ](https://docs.lammps.org/neigh_modify.html) settings\n* [kspace_style ](https://docs.lammps.org/kspace_style.html) and [kspace_modify ](https://docs.lammps.org/kspace_modify.html) settings\n* info for [thermodynamic ](https://docs.lammps.org/thermo_style.html), [dump ](https://docs.lammps.org/dump.html), or [restart ](https://docs.lammps.org/restart.html) output\n\nThe [newton ](https://docs.lammps.org/newton.html) command has two settings, one for pairwise\ninteractions, the other for bonded. Both settings are stored in the\nrestart file. For the bond setting, the value in the file will\noverwrite the current value (at the time the read_restart command is\nissued) and warn if the two values are not the same and the current\nvalue is not the default. For the pair setting, the value in the file\nwill not overwrite the current value (so that you can override the\nprevious run's value), but a warning is issued if the two values are\nnot the same and the current value is not the default.\n\nNote that some force field styles (pair, bond, angle, etc) do not\nstore their coefficient info in restart files. Typically these are\nmany-body or tabulated potentials which read their parameters from\nseparate files. In these cases you will need to re-specify the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [bond_coeff ](https://docs.lammps.org/bond_coeff.html), etc\ncommands in your restart input script. The doc pages for individual\nforce field styles mention if this is the case. This is also true of\n[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) (bond hybrid, angle hybrid, etc)\ncommands; they do not store coefficient info.\n\nAs indicated in the above list, the [fixes ](https://docs.lammps.org/fix.html) used for a\nsimulation are not stored in the restart file. This means the new\ninput script should specify all fixes it will use. However, note that\nsome fixes store an internal \"state\" which is written to the restart\nfile. This allows the fix to continue on with its calculations in a\nrestarted simulation. To re-enable such a fix, the fix command in the\nnew input script must be of the same style and use the same fix-ID as\nwas used in the input script that wrote the restart file.\n\nIf a match is found, LAMMPS prints a message indicating that the fix\nis being re-enabled. If no match is found before the first run or\nminimization is performed by the new script, the \"state\" information\nfor the saved fix is discarded. At the time the discard occurs,\nLAMMPS will also print a list of fixes for which the information is\nbeing discarded. See the doc pages for individual fixes for info on\nwhich ones can be restarted in this manner. Note that fixes which are\ncreated internally by other LAMMPS commands (computes, fixes, etc)\nwill have style names which are all-capitalized, and IDs which are\ngenerated internally.\n\nLikewise, the [computes ](https://docs.lammps.org/fix.html) used for a simulation are not stored\nin the restart file. This means the new input script should specify\nall computes it will use. However, some computes create a fix\ninternally to store \"state\" information that persists from timestep to\ntimestep. An example is the [compute msd ](https://docs.lammps.org/compute_msd.html) command\nwhich uses a fix to store a reference coordinate for each atom, so\nthat a displacement can be calculated at any later time. If the\ncompute command in the new input script uses the same compute-ID and\ngroup-ID as was used in the input script that wrote the restart file,\nthen it will create the same fix in the restarted run. This means the\nre-created fix will be re-enabled with the stored state information as\ndescribed in the previous paragraph, so that the compute can continue\nits calculations in a consistent manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are a handful of commands which can be used before or between\n > runs which may require a system initialization. Examples include the\n > \"balance\", \"displace_atoms\", \"delete_atoms\", \"set\" (some options),\n > and \"velocity\" (some options) commands. This is because they can\n > migrate atoms to new processors. Thus they will also discard unused\n > \"state\" information from fixes. You will know the discard has\n > occurred because a list of discarded fixes will be printed to the\n > screen and log file, as explained above. This means that if you wish\n > to retain that info in a restarted run, you must re-specify the\n > relevant fixes and computes (which create fixes) before those\n > commands are used. \n > \n\nSome pair styles, like the [granular pair styles ](https://docs.lammps.org/pair_gran.html), also\nuse a fix to store \"state\" information that persists from timestep to\ntimestep. In the case of granular potentials, it is contact\ninformation between pairs of touching particles. This info will also\nbe re-enabled in the restart script, assuming you re-use the same\ngranular pair style.\n\nLAMMPS allows bond interactions (angle, etc) to be turned off or\ndeleted in various ways, which can affect how their info is stored in\na restart file.\n\nIf bonds (angles, etc) have been turned off by the [fix shake](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command, their info\nwill be written to a restart file as if they are turned on. This means\nthey will need to be turned off again in a new run after the restart\nfile is read.\n\nBonds that are broken (e.g. by a bond-breaking potential) are written\nto the restart file as broken bonds with a type of 0. Thus these\nbonds will still be broken when the restart file is read.\n\nBonds that have been broken by the [fix bond/break](https://docs.lammps.org/fix_bond_break.html) command have disappeared from the system. No\ninformation about these bonds is written to the restart file.\n\n----------\n", - "restrictions": "none\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [read_dump ](https://docs.lammps.org/read_dump.html),\n[write_restart ](https://docs.lammps.org/write_restart.html), [restart ](https://docs.lammps.org/restart.html)\n" + "parameters": "", + "examples": "\n```lmps\n# (commands for 1st simulation)\nclear\n# (commands for 2nd simulation)\n```\n", + "html_filename": "clear.html", + "short_description": "This command deletes all atoms, restores all settings to their default\nvalues, and frees all memory allocated by LAMMPS", + "description": "This command deletes all atoms, restores all settings to their default\nvalues, and frees all memory allocated by LAMMPS. Once a clear command\nhas been executed, it is almost as if LAMMPS were starting over, with\nonly the exceptions noted below. This command enables multiple jobs to\nbe run sequentially from one input script.\n\nThese settings are not affected by a clear command: the working\ndirectory ([shell ](https://docs.lammps.org/shell.html) command), log file status ([log](https://docs.lammps.org/log.html) command), echo status ([echo ](https://docs.lammps.org/echo.html) command), and input\nscript variables except for *atomfile* style variables ([variable](https://docs.lammps.org/variable.html) command).\n", + "restrictions": " none\n", + "related": "none\n" }, { "command": [ - "fix smd" + "fix ave/time" ], "syntax": [ - "fix ID group-ID smd type values keyword values" + "fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ..." ], "args": [ [ @@ -24820,260 +23735,243 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd", + "arg": "ave/time", "type": 1, "choices": [] }, { - "arg": "type", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "couple", - "type": 3, - "choices": [ - "tether", - "couple" - ] + "arg": "Nfreq", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "value1", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd = style name of this fix command\n* mode = cvel or cfor to select constant velocity or constant force SMD \n *        cvel values = K vel \n         K = spring constant (force/distance units) \n         vel = velocity of pulling (distance/time units) \n *        cfor values = force \n         force = pulling force (force units) \n* keyword = tether or couple \n *        tether values = x y z R0 \n         x,y,z = point to which spring is tethered \n         R0 = distance of end of spring from tether point (distance units) \n *        couple values = group-ID2 x y z R0 \n         group-ID2 = 2nd group to couple to fix group with a spring \n         x,y,z = direction of spring, automatically computed with 'auto' \n         R0 = distance of end of spring (distance units) \n", - "examples": "\n```lmps\nfix pull cterm smd cvel 20.0 -0.00005 tether NULL NULL 100.0 0.0\nfix pull cterm smd cvel 20.0 -0.0001 tether 25.0 25 25.0 0.0\nfix stretch cterm smd cvel 20.0 0.0001 couple nterm auto auto auto 0.0\nfix pull cterm smd cfor 5.0 tether 25.0 25.0 25.0 0.0\n```\n", - "html_filename": "fix_smd.html", - "short_description": "This fix implements several options of steered MD (SMD) as reviewed in\n**Izrailev**, which allows to induce conformational\nchanges in systems and to compute the potential of mean force (PMF)\nalong the assumed reaction coordinate **Park** based on\nJarzynski's equality **Jarzynski**", - "description": "This fix implements several options of steered MD (SMD) as reviewed in\n**Izrailev**, which allows to induce conformational\nchanges in systems and to compute the potential of mean force (PMF)\nalong the assumed reaction coordinate **Park** based on\nJarzynski's equality **Jarzynski**. This fix borrows\na lot from [fix spring ](https://docs.lammps.org/fix_spring.html) and [fix setforce](https://docs.lammps.org/fix_setforce.html).\n\nYou can apply a moving spring force to a group of atoms (\\ *tether*\nstyle) or between two groups of atoms (\\ *couple* style). The spring\ncan then be used in either constant velocity (\\ *cvel* ) mode or in\nconstant force (\\ *cfor* ) mode to induce transitions in your systems.\nWhen running in *tether* style, you may need some way to fix some\nother part of the system (e.g. via [fix spring/self ](https://docs.lammps.org/fix_spring_self.html))\n\nThe *tether* style attaches a spring between a point at a distance of\nR0 away from a fixed point *x,y,z* and the center of mass of the fix\ngroup of atoms. A restoring force of magnitude K (R - R0) Mi / M is\napplied to each atom in the group where *K* is the spring constant, Mi\nis the mass of the atom, and M is the total mass of all atoms in the\ngroup. Note that *K* thus represents the total force on the group of\natoms, not a per-atom force.\n\nIn *cvel* mode the distance R is incremented or decremented\nmonotonously according to the pulling (or pushing) velocity.\nIn *cfor* mode a constant force is added and the actual distance\nin direction of the spring is recorded.\n\nThe *couple* style links two groups of atoms together. The first\ngroup is the fix group; the second is specified by group-ID2. The\ngroups are coupled together by a spring that is at equilibrium when\nthe two groups are displaced by a vector in direction *x,y,z* with\nrespect to each other and at a distance R0 from that displacement.\nNote that *x,y,z* only provides a direction and will be internally\nnormalized. But since it represents the *absolute* displacement of\ngroup-ID2 relative to the fix group, (1,1,0) is a different spring\nthan (-1,-1,0). For each vector component, the displacement can be\ndescribed with the *auto* parameter. In this case the direction is\nre-computed in every step, which can be useful for steering a local\nprocess where the whole object undergoes some other change. When the\nrelative positions and distance between the two groups are not in\nequilibrium, the same spring force described above is applied to atoms\nin each of the two groups.\n\nFor both the *tether* and *couple* styles, any of the x,y,z values can\nbe specified as NULL which means do not include that dimension in the\ndistance calculation or force application.\n\nFor constant velocity pulling (\\ *cvel* mode), the running integral\nover the pulling force in direction of the spring is recorded and\ncan then later be used to compute the potential of mean force (PMF)\nby averaging over multiple independent trajectories along the same\npulling path.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix stores the direction of the spring, current pulling target\ndistance and the running PMF to [binary restart files ](https://docs.lammps.org/restart.html).\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces on atoms to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a vector list of 7 quantities, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The quantities in\nthe vector are in this order: the x-, y-, and z-component of the\npulling force, the total force in direction of the pull, the\nequilibrium distance of the spring, the distance between the two\nreference points, and finally the accumulated PMF (the sum of pulling\nforces times displacement).\n\nThe force is the total force on the group of atoms by the spring. In\nthe case of the *couple* style, it is the force on the fix group\n(group-ID) or the negative of the force on the second group\n(group-ID2). The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Izrailev)** Izrailev, Stepaniants, Isralewitz, Kosztin, Lu, Molnar,\nWriggers, Schulten. Computational Molecular Dynamics: Challenges,\nMethods, Ideas, volume 4 of Lecture Notes in Computational Science and\nEngineering, pp. 39-65. Springer-Verlag, Berlin, 1998. \n \n**(Park)** Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004) \n \n**(Jarzynski)** Jarzynski, Phys. Rev. Lett. 78, 2690 (1997) \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html),\n[fix colvars ](https://docs.lammps.org/fix_colvars.html), [fix plumed ](https://docs.lammps.org/fix_plumed.html)\n" -}, -{ - "command": [ - "dihedral_style" - ], - "syntax": [ - "dihedral_style style" - ], - "args": [ - [ + }, { - "arg": "dihedral_style", - "type": 1, + "arg": "value2", + "type": 2, "choices": [] }, { - "arg": "table/cut", + "arg": "title3", "type": 3, "choices": [ - "none", - "zero", - "hybrid", - "charmm", - "charmmfsw", - "class2", - "cosine/shift/exp", - "cosine/squared/restricted", - "fourier", - "harmonic", - "helix", - "lepton", - "multi/harmonic", - "nharmonic", - "opls", - "spherical", - "table", - "table/cut" + "mode", + "file", + "append", + "ave", + "start", + "off", + "overwrite", + "format", + "title1", + "title2", + "title3" ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = none or zero or hybrid or charmm or charmmfsw or class2 or cosine/shift/exp or cosine/squared/restricted or fourier or harmonic or helix or lepton or multi/harmonic or nharmonic or opls or spherical or table or table/cut \n", - "examples": "\n```lmps\ndihedral_style harmonic\ndihedral_style multi/harmonic\ndihedral_style hybrid harmonic charmm\n```\n", - "html_filename": "dihedral_style.html", - "short_description": "Set the formula(s) LAMMPS uses to compute dihedral interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation", - "description": "Set the formula(s) LAMMPS uses to compute dihedral interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation. The list of dihedral quadruplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file.\n\nHybrid models where dihedrals are computed using different dihedral\npotentials can be setup using the *hybrid* dihedral style.\n\nThe coefficients associated with a dihedral style can be specified in\na data or restart file or via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand.\n\nAll dihedral potentials store their coefficient data in binary restart\nfiles which means dihedral_style and\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) commands do not need to be\nre-specified in an input script that restarts a simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for details on how to do\nthis. The one exception is that dihedral_style *hybrid* only stores\nthe list of sub-styles in the restart file; dihedral coefficients need\nto be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both a dihedral and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between four bonded atoms. \n > \n\nIn the formulas listed for each dihedral style, *phi* is the torsional\nangle defined by the quadruplet of atoms. This angle has a sign\nconvention as shown in this diagram:\n\n ![Image](JPG/dihedral_sign.jpg) \n\nwhere the \\(I,J,K,L\\) ordering of the four atoms that define the dihedral\nis from left to right.\n\nThis sign convention effects several of the dihedral styles listed\nbelow (e.g., charmm, helix) in the sense that the energy formula\ndepends on the sign of phi, which may be reflected in the value of the\ncoefficients you specify.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When comparing the formulas and coefficients for various LAMMPS\n > dihedral styles with dihedral equations defined by other force fields,\n > note that some force field implementations divide/multiply the energy\n > prefactor *K* by the multiple number of torsions that contain the\n > *J* --\\ *K* bond in an *I* --\\ *J* --\\ *K* --\\ *L* torsion. LAMMPS does\n > not do this (i.e., the listed dihedral equation applies to each individual\n > dihedral). Thus, you need to define *K* appropriately via the\n > [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command to account for this\n > difference if necessary. \n > \n\n----------\n\nHere is an alphabetic list of dihedral styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the dihedral_style command, and coefficients\nspecified by the associated [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands dihedral ` page are\nfollowed by one or more of (g,i,k,o,t) to indicate which accelerated styles\nexist.\n\n* [none ](https://docs.lammps.org/dihedral_none.html) - turn off dihedral interactions\n* [zero ](https://docs.lammps.org/dihedral_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/dihedral_hybrid.html) - define multiple styles of dihedral interactions\n\n* [charmm ](https://docs.lammps.org/dihedral_charmm.html) - CHARMM dihedral\n* [charmmfsw ](https://docs.lammps.org/dihedral_charmm.html) - CHARMM dihedral with force switching\n* [class2 ](https://docs.lammps.org/dihedral_class2.html) - COMPASS (class 2) dihedral\n* [cosine/shift/exp ](https://docs.lammps.org/dihedral_cosine_shift_exp.html) - dihedral with exponential in spring constant\n* [cosine/squared/restricted ](https://docs.lammps.org/dihedral_cosine_squared_restricted.html) - squared cosine dihedral with restricted term\n* [fourier ](https://docs.lammps.org/dihedral_fourier.html) - dihedral with multiple cosine terms\n* [harmonic ](https://docs.lammps.org/dihedral_harmonic.html) - harmonic dihedral\n* [helix ](https://docs.lammps.org/dihedral_helix.html) - helix dihedral\n* [lepton ](https://docs.lammps.org/dihedral_lepton.html) - dihedral potential from evaluating a string\n* [multi/harmonic ](https://docs.lammps.org/dihedral_multi_harmonic.html) - dihedral with 5 harmonic terms\n* [nharmonic ](https://docs.lammps.org/dihedral_nharmonic.html) - same as multi-harmonic with N terms\n* [opls ](https://docs.lammps.org/dihedral_opls.html) - OPLS dihedral\n* [quadratic ](https://docs.lammps.org/dihedral_quadratic.html) - dihedral with quadratic term in angle\n* [spherical ](https://docs.lammps.org/dihedral_spherical.html) - dihedral which includes angle terms to avoid singularities\n* [table ](https://docs.lammps.org/dihedral_table.html) - tabulated dihedral\n* [table/cut ](https://docs.lammps.org/dihedral_table.html) - tabulated dihedral with analytic cutoff\n\n----------\n", - "restrictions": "Dihedral styles can only be set for atom styles that allow dihedrals\nto be defined.\n\nMost dihedral styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual dihedral potentials tell if it is part of a package.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/time = style name of this fix command\n* Nevery = use input values every this many time steps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many time steps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global scalar or vector calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector or Ith column of global array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = global scalar or vector calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector or Ith column of global array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = value(s) calculated by an equal-style or vector-style variable with name \n *        v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) \n* zero or more keyword/arg pairs may be appended\n* keyword = mode or file or append or ave or start or off or overwrite or format or title1 or title2 or title3 \n *        mode arg = scalar or vector \n         scalar = all input values are global scalars \n         vector = all input values are global vectors or global arrays \n *        ave args = one or running or *window M* \n         one = output a new average value every Nfreq steps \n         running = output cumulative average of all previous Nfreq steps \n         window M = output average of M most recent Nfreq steps \n *        start args = Nstart \n         Nstart = start averaging on this time step \n *        off arg = M = do not average this value \n         M = value # from 1 to Nvalues \n *        file arg = filename \n         filename = name of file to output time averages to \n *        append arg = filename \n         filename = name of file to append time averages to \n *        overwrite arg = none = overwrite output file with only latest output \n *        format arg = string \n         string = C-style format string \n *        title1 arg = string \n         string = text to print as 1st line of output file \n *        title2 arg = string \n         string = text to print as 2nd line of output file \n *        title3 arg = string \n         string = text to print as 3rd line of output file, only for vector mode \n", + "examples": "\n```lmps\nfix 1 all ave/time 100 5 1000 c_myTemp c_thermo_temp file temp.profile\nfix 1 all ave/time 100 5 1000 c_thermo_press[2] ave window 20 &\ntitle1 \"My output values\"\nfix 1 all ave/time 100 5 1000 c_thermo_press[*]\nfix 1 all ave/time 1 100 1000 f_indent f_indent[1] file temp.indent off 1\n```\n", + "html_filename": "fix_ave_time.html", + "short_description": "Use one or more global values as inputs every few time steps, and\naverage them over longer timescales", + "description": "Use one or more global values as inputs every few time steps, and\naverage them over longer timescales. The resulting averages can be\nused by other [output commands ](https://docs.lammps.org/Howto_output.html) such as\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html), and can also be written to a\nfile. Note that if no time averaging is done, this command can be\nused as a convenient way to simply output one or more global values to\na file.\n\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity. If\nyou wish to spatial- or time-average or histogram per-atom quantities\nfrom a compute, fix, or variable, then see the\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\nor [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) commands. If you wish to sum a\nper-atom quantity into a single global quantity, see the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce global quantities are those which\ndo not have the word *atom* in their style name. Only a few\n[fixes ](https://docs.lammps.org/fix.html) produce global quantities. See the doc pages for\nindividual fixes for info on which ones produce such values.\n[Variables ](https://docs.lammps.org/variable.html) of style *equal* and *vector* are the only\nones that can be used with this fix. Variables of style *atom* cannot\nbe used, since they produce per-atom values.\n\nThe input values must either be all scalars or all vectors depending\non the setting of the *mode* keyword. In both cases, the averaging is\nperformed independently on each input value (i.e., each input scalar\nis averaged independently or each element of each input vector is\naveraged independently).\n\nIf *mode* = scalar, then the input values must be scalars, or vectors\nwith a bracketed term appended, indicating the \\(I^\\text{th}\\) value of the\nvector is used.\n\nIf *mode* = vector, then the input values must be vectors, or arrays\nwith a bracketed term appended, indicating the Ith column of the array\nis used. All vectors must be the same length, which is the length of\nthe vector or number of rows in the array.\n\n----------\n\nFor input values from a compute or fix or variable, the bracketed\nindex I can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the size of the vector (for *mode* =\nscalar) or the number of columns in the array (for *mode* = vector),\nthen an asterisk with no numeric values means all indices from 1 to \\(N\\).\nA leading asterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from n to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector or columns of the array had been listed one by one. For example, the\nfollowing two fix ave/time commands are equivalent, since the [compute rdf](https://docs.lammps.org/compute_rdf.html) command creates, in this case, a global array with three\ncolumns, each of length 50:\n\n```lmps\ncompute myRDF all rdf 50 1 2\nfix 1 all ave/time 100 1 100 c_myRDF[*] file tmp1.rdf mode vector\nfix 2 all ave/time 100 1 100 c_myRDF[1] c_myRDF[2] c_myRDF[3] file tmp2.rdf mode vector\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what time steps the input values will be used in order to\ncontribute to the average. The final averaged quantities are generated on\ntime steps that are a multiple of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) time steps. \\(N_\\text{freq}\\) must\nbe a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat} = 1\\). Also, the time steps\ncontributing to the average value cannot overlap,\ni.e. Nrepeat\\*Nevery can not exceed Nfreq.\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on time steps 90, 92, 94, 96, 98, and\n100 will be used to compute the final average on time step 100. Similarly for\ntime steps 190, 192, 194, 196, 198, and 200 on time step 200, etc.\nIf \\(N_\\text{repeat}=1\\) and \\(N_\\text{freq} = 100\\), then no time\naveraging is done; values are simply generated on time steps\n100, 200, etc.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the\ncompute is used. If a bracketed term is appended, the Ith element of\nthe global vector calculated by the compute is used. If *mode* =\nvector, then if no bracketed term is appended, the global vector\ncalculated by the compute is used. If a bracketed term is appended,\nthe Ith column of the global array calculated by the compute is used.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nthat can sum per-atom quantities into a global scalar or vector, which\ncan then be accessed by fix ave/time. It can also be a compute defined\nnot in your input script, but by [thermodynamic output](https://docs.lammps.org/thermo_style.html) or other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for\nthese commands which give the IDs of these computes. Users can also\nwrite code for their own compute styles and [add them to LAMMPS](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If *mode* = scalar, then if\nno bracketed term is appended, the global scalar calculated by the fix\nis used. If a bracketed term is appended, the Ith element of the\nglobal vector calculated by the fix is used. If *mode* = vector, then\nif no bracketed term is appended, the global vector calculated by the\nfix is used. If a bracketed term is appended, the Ith column of the\nglobal array calculated by the fix is used. See the discussion above\nfor how I can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nNote that some fixes only produce their values on certain time steps,\nwhich must be compatible with *Nevery*, else an error will result.\nUsers can also write code for their own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. If *mode* = scalar, then\nonly equal-style or vector-style variables can be used, which both\nproduce global values. In this mode, a vector-style variable requires\na bracketed term to specify the Ith element of the vector calculated\nby the variable. If *mode* = vector, then only a vector-style\nvariable can be used, without a bracketed term. See the\n[variable ](https://docs.lammps.org/variable.html) command for details.\n\nNote that variables of style *equal* and *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to time average.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nIf the *mode* keyword is set to *scalar*, then all input values must\nbe global scalars, or elements of global vectors. If the *mode*\nkeyword is set to *vector*, then all input values must be global\nvectors, or columns of global arrays. They can also be global arrays,\nwhich are converted into a series of global vectors (one per column),\nas explained above.\n\nThe *ave* keyword determines how the values produced every\n\\(N_\\text{freq}\\) steps are averaged with values produced on previous steps\nthat were multiples of \\(N_\\text{freq}\\), before they are accessed by\nanother output command or written to a file.\n\nIf the *ave* setting is *one*, then the values produced on time steps\nthat are multiples of \\(N_\\text{freq}\\) are independent of each other; they\nare output as-is without further averaging.\n\nIf the *ave* setting is *running*, then the values produced on\ntime steps that are multiples of \\(N_\\text{freq}\\) are summed and averaged\nin a cumulative sense before being output. Each output value is thus the\naverage of the value produced on that time step with all preceding\nvalues. This running average begins when the fix is defined; it can\nonly be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the values produced on\ntime steps that are multiples of *Nfreq* are summed and averaged within\na moving \"window\" of time, so that the last M values are used to\nproduce the output. For example, if \\(M = 3\\) and\n\\(N_\\text{freq} = 1000\\), then the output on step 10000 will be the average\nof the individual values on steps 8000, 9000, and 10000. Outputs on early\nsteps will average over less than \\(M\\) values if they are not available.\n\nThe *start* keyword specifies what time step averaging will begin on.\nThe default is step 0. Often input values can be 0.0 at time 0, so\nsetting *start* to a larger value can avoid including a 0.0 in a\nrunning or windowed average.\n\nThe *off* keyword can be used to flag any of the input values. If a\nvalue is flagged, it will not be time averaged. Instead the most\nrecent input value will always be stored and output. This is useful\nif one of more of the inputs produced by a compute or fix or variable\nare effectively constant or are simply current values (e.g., they are\nbeing written to a file with other time-averaged values for purposes\nof creating well-formatted output).\n\n **New in version 17Apr2024** \n new keyword *append*\nThe *file* or *append* keywords allow a filename to be specified. If\n*file* is used, then the filename is overwritten if it already exists.\nIf *append* is used, then the filename is appended to if it already\nexists, or created if it does not exist. Every *Nfreq* steps, one\nquantity or vector of quantities is written to the file for each input\nvalue specified in the fix ave/time command. For *mode* = scalar, this\nmeans a single line is written each time output is performed. Thus the\nfile ends up to be a series of lines, i.e. one column of numbers for\neach input value. For *mode* = vector, an array of numbers is written\neach time output is performed. The number of rows is the length of the\ninput vectors, and the number of columns is the number of values. Thus\nthe file ends up to be a series of these array sections.\n\nIf the filename ends in '.yaml' or '.yml' then the output format\nconforms to the [YAML standard](https://yaml.org/) which allows\neasy import that data into tools and scripts that support reading YAML\nfiles. The [structured data Howto ](https://docs.lammps.org/Howto_structured_data.html) contains\nexamples for parsing and plotting such data with very little programming\neffort in Python using the *pyyaml*, *pandas*, and *matplotlib*\npackages.\n\nThe *overwrite* keyword will continuously overwrite the output file\nwith the latest output, so that it only contains one time step worth of\noutput. This option can only be used with the *ave running* setting.\n\nThe *format* keyword sets the numeric format of each value when it is\nprinted to a file via the *file* keyword. Note that all values are\nfloating point quantities. The default format is %g. You can specify\na higher precision if desired (e.g., %20.16g).\n\nThe *title1* and *title2* and *title3* keywords allow specification of\nthe strings that will be printed as the first 2 or 3 lines of the\noutput file, assuming the *file* keyword was used. LAMMPS uses\ndefault values for each of these, so they do not need to be specified.\n\nBy default, these header lines are as follows for *mode* = scalar:\n\n```\n# Time-averaged data for fix ID\n# TimeStep value1 value2 ...\n```\nIn the first line, ID is replaced with the fix-ID. In the second line\nthe values are replaced with the appropriate fields from the fix\nave/time command. There is no third line in the header of the file,\nso the *title3* setting is ignored when *mode* = scalar.\n\nBy default, these header lines are as follows for *mode* = vector:\n\n```\n# Time-averaged data for fix ID\n# TimeStep Number-of-rows\n# Row value1 value2 ...\n```\nIn the first line, ID is replaced with the fix-ID. The second line\ndescribes the two values that are printed at the first of each section\nof output. In the third line the values are replaced with the\nappropriate fields from the fix ave/time command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). The [fix_modify colname ](https://docs.lammps.org/fix_modify.html) option can be\nused to change the name of the column in the output file. When writing\na YAML format file this name will be in the list of keywords.\n\nThis fix produces a global scalar or global vector or global array\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe values can only be accessed on time steps that are multiples of\n\\(N_\\text{freq}\\) since that is when averaging is performed.\n\nA scalar is produced if only a single input value is averaged and\n*mode* = scalar. A vector is produced if multiple input values are\naveraged for *mode* = scalar, or a single input value for *mode* =\nvector. In the first case, the length of the vector is the number of\ninputs. In the second case, the length of the vector is the same as\nthe length of the input vector. An array is produced if multiple\ninput values are averaged and *mode* = vector. The global array has #\nof rows = length of the input vectors and # of columns = number of\ninputs.\n\nIf the fix produces a scalar or vector, then the scalar and each\nelement of the vector can be either \"intensive\" or \"extensive\",\ndepending on whether the values contributing to the scalar or vector\nelement are \"intensive\" or \"extensive\". If the fix produces an array,\nthen all elements in the array must be the same, either \"intensive\" or\n\"extensive\". If a compute or fix provides the value being time\naveraged, then the compute or fix determines whether the value is\nintensive or extensive; see the page for that compute or fix for\nfurther info. Values produced by a variable are treated as intensive.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[variable ](https://docs.lammps.org/variable.html), [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n" }, { "command": [ - "pair_style born/coul/dsf/cs", - "pair_style born/coul/long/cs", - "pair_style born/coul/long/cs/gpu", - "pair_style born/coul/wolf/cs", - "pair_style born/coul/wolf/cs/gpu", - "pair_style buck/coul/long/cs", - "pair_style coul/long/cs", - "pair_style coul/long/cs/gpu", - "pair_style coul/wolf/cs", - "pair_style lj/cut/coul/long/cs" + "create_bonds" ], "syntax": [ - "pair_style style args" + "create_bonds style args ... keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "create_bonds", "type": 1, "choices": [] }, { - "arg": "coul/long/cs/gpu", + "arg": "single/improper", "type": 3, "choices": [ - "born/coul/dsf/cs", - "born/coul/long/cs", - "born/coul/wolf/cs", - "buck/coul/long/cs", - "coul/long/cs", - "coul/wolf/cs", - "lj/cut/coul/long/cs", - "lj/class2/coul/long/cs", - "born/coul/long/cs/gpu", - "born/coul/wolf/cs/gpu", - "coul/long/cs/gpu" + "many", + "single/bond", + "single/angle", + "single/dihedral", + "single/improper" ] }, { "arg": "args", "type": 2, "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = born/coul/dsf/cs or born/coul/long/cs or born/coul/wolf/cs or buck/coul/long/cs or coul/long/cs or coul/wolf/cs or lj/cut/coul/long/cs or lj/class2/coul/long/cs\n* args = list of arguments for a particular style \n *      born/coul/dsf/cs args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n *      born/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/wolf/cs args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *coul/long* args = cutoff \n       cutoff = global cutoff for Coulombic (distance units) \n *      *coul/wolf* args = alpha cutoff \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for Coulombic (distance units) \n *      lj/cut/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long/cs args = cutoff (cutoff2) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style born/coul/dsf/cs 0.1 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n\npair_style born/coul/long/cs 10.0 8.0\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/wolf/cs 0.25 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n\npair_style buck/coul/long/cs 10.0\npair_style buck/coul/long/cs 10.0 8.0\npair_coeff * * 100.0 1.5 200.0\npair_coeff 1 1 100.0 1.5 200.0 9.0\n\npair_style coul/long/cs 10.0\npair_coeff * *\n\npair_style coul/wolf/cs 0.2 9.0\npair_coeff * *\n\npair_style lj/cut/coul/long/cs 10.0\npair_style lj/cut/coul/long/cs 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", - "html_filename": "pair_cs.html", - "short_description": "These pair styles are designed to be used with the adiabatic\ncore/shell model of **MitchellFincham3**", - "description": "These pair styles are designed to be used with the adiabatic\ncore/shell model of **MitchellFincham3**. See\nthe [Howto coreshell ](https://docs.lammps.org/Howto_coreshell.html) page for an overview of\nthe model as implemented in LAMMPS.\n\nAll the styles are identical to the corresponding pair style without\nthe \"/cs\" in the name:\n\n* [pair_style born/coul/dsf ](https://docs.lammps.org/pair_born.html)\n* [pair_style born/coul/long ](https://docs.lammps.org/pair_born.html)\n* [pair_style born/coul/wolf ](https://docs.lammps.org/pair_born.html)\n* [pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n* [pair_style coul/long ](https://docs.lammps.org/pair_coul.html)\n* [pair_style coul/wolf ](https://docs.lammps.org/pair_coul.html)\n* [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n* [pair_style lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html)\n\nexcept that they correctly treat the special case where the distance\nbetween two charged core and shell atoms in the same core/shell pair\napproach r = 0.0.\n\nStyles with a \"/long\" in the name are used with a long-range solver\nfor Coulombic interactions via the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand. They require special treatment of the short-range Coulombic\ninteractions within the cor/shell model.\n\nSpecifically, the short-range Coulomb interaction between a core and\nits shell should be turned off using the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command by setting the 1-2 weight\nto 0.0, which works because the core and shell atoms are bonded to\neach other. This induces a long-range correction approximation which\nfails at small distances (~< 10e-8). Therefore, the Coulomb term which\nis used to calculate the correction factor is extended by a minimal\ndistance (r_min = 1.0-6) when the interaction between a core/shell\npair is treated, as follows\n\\[\n E = \\frac{C q_i q_j}{\\epsilon (r + r_{min})} \\qquad r \\rightarrow 0\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the core and shell, epsilon is the dielectric\nconstant and \\(r_{min}\\) is the minimal distance.\n\nFor styles that are not used with a long-range solver, i.e. those with\n\"/dsf\" or \"/wolf\" in the name, the only correction is the addition of\na minimal distance to avoid the possible r = 0.0 case for a core/shell\npair.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nSee the corresponding doc pages for pair styles without the \"cs\"\nsuffix to see how mixing, shifting, tabulation, tail correction,\nrestarting, and rRESPA are handled by theses pair styles.\n\n----------\n\n**(MitchellFincham3)** Mitchell, Fincham, J Phys Condensed Matter,\n5, 1031-1038 (1993). \n ", - "restrictions": "These pair styles are part of the CORESHELL package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html),\n[pair_style buck ](https://docs.lammps.org/pair_buck.html)\n" + "parameters": "* style = many or single/bond or single/angle or single/dihedral or single/improper \n *      many args = group-ID group2-ID btype rmin rmax \n       group-ID = ID of first group \n       group2-ID = ID of second group, bonds will be between atoms in the 2 groups \n       btype = bond type of created bonds \n       rmin = minimum distance between pair of atoms to bond together \n       rmax = maximum distance between pair of atoms to bond together \n *      single/bond args = btype batom1 batom2 \n       btype = bond type of new bond \n       batom1,batom2 = atom IDs for two atoms in bond \n *      single/angle args = atype aatom1 aatom2 aatom3 \n       atype = angle type of new angle \n       aatom1,aatom2,aatom3 = atom IDs for three atoms in angle \n *      single/dihedral args = dtype datom1 datom2 datom3 datom4 \n       dtype = dihedral type of new dihedral \n       datom1,datom2,datom3,datom4 = atom IDs for four atoms in dihedral \n *      single/improper args = itype iatom1 iatom2 iatom3 iatom4 \n       itype = improper type of new improper \n       iatom1,iatom2,iatom3,iatom4 = atom IDs for four atoms in improper \n* zero or more keyword/value pairs may be appended\n* keyword = special \n *      special value = yes or no \n", + "examples": "\n```lmps\ncreate_bonds many all all 1 1.0 1.2\ncreate_bonds many surf solvent 3 2.0 2.4\ncreate_bonds single/bond 1 1 2\ncreate_bonds single/angle 5 52 98 107 special no\ncreate_bonds single/dihedral 2 4 19 27 101\ncreate_bonds single/improper 3 23 26 31 57\n```\n", + "html_filename": "create_bonds.html", + "short_description": "Create bonds between pairs of atoms that meet a specified distance\ncriteria", + "description": "Create bonds between pairs of atoms that meet a specified distance\ncriteria. Or create a single bond, angle, dihedral or improper between 2, 3,\nor 4 specified atoms.\n\nThe new bond (angle, dihedral, improper) interactions will then be computed\nduring a simulation by the bond (angle, dihedral, improper) potential defined by\nthe [bond_style ](https://docs.lammps.org/bond_style.html), [bond_coeff ](https://docs.lammps.org/bond_coeff.html),\n[angle_style ](https://docs.lammps.org/angle_style.html), [angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[dihedral_style ](https://docs.lammps.org/dihedral_style.html),\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html), [improper_style ](https://docs.lammps.org/improper_style.html),\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands.\n\nThe *many* style is useful for adding bonds to a system (e.g., between\nnearest neighbors in a lattice of atoms) without having to enumerate\nall the bonds in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nThe *single* styles are useful for adding bonds, angles, dihedrals, and\nimpropers to a system incrementally, then continuing a simulation.\n\nNote that this command does not auto-create any angle, dihedral, or improper\ninteractions when a bond is added, nor does it auto-create any bonds\nwhen an angle, dihedral, or improper is added. It also will not auto-create\nany angles when a dihedral or improper is added. Thus, the flexibility of this\ncommand is limited. It can be used several times to create different types of\nbond at different distances, but it cannot typically auto-create all the\nbonds or angles or dihedrals or impropers that would normally be defined in a\ndata file for a complex system of molecules.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system has no bonds (angles, dihedrals, impropers) to begin\n > with, or if more bonds per atom are being added than currently exist,\n > then you must ensure that the number of bond types and the maximum\n > number of bonds per atom are set to large enough values, and\n > similarly for angles, dihedrals, impropers, and special neighbors,\n > otherwise an error may occur when too many bonds (angles, dihedrals,\n > impropers) are added to an atom. If the [read_data ](https://docs.lammps.org/read_data.html)\n > command is used to define the system, these parameters can be set via\n > its optional *extra/bond/types*, *extra/bond/per/atom*, and similar\n > keywords to the command. If the [create_box ](https://docs.lammps.org/create_box.html)\n > command is used to define the system, these two parameters can be set\n > via its optional *bond/types* and *extra/bond/per/atom* arguments,\n > and similarly for angles, dihedrals, and impropers. See the\n > corresponding documentation pages for these two commands for details. \n > \n\n----------\n\nThe *many* style will create bonds between pairs of atoms \\(I,J\\),\nwhere \\(I\\) is in one of the two specified groups and \\(J\\) is in the\nother. The two groups can be the same (e.g., group \"all\"). The created bonds\nwill be of bond type *btype*, where *btype* must be a value between 1 and the\nnumber of bond types defined.\n\nFor a bond to be created, an \\(I,J\\) pair of atoms must be a distance\n\\(D\\) apart such that \\(r_\\text{min} \\le D \\le r_\\text{max}\\).\n\nThe following settings must have been made in an input script before\nthe *many* style is used:\n\n* special_bonds weight for 1--2 interactions must be 0.0\n* a [pair_style ](https://docs.lammps.org/pair_style.html) must be defined\n* no [kspace_style ](https://docs.lammps.org/kspace_style.html) defined\n* minimum [pair_style ](https://docs.lammps.org/pair_style.html) cutoff + [neighbor ](https://docs.lammps.org/neighbor.html)\n skin \\(\\ge r_\\text{max}\\)\n\nThese settings are required so that a neighbor list can be created to\nsearch for nearby atoms. Pairs of atoms that are already bonded cannot\nappear in the neighbor list, to avoid creation of duplicate bonds. The\nneighbor list for all atom type pairs must also extend to a distance\nthat encompasses the *rmax* for new bonds to create. When using\nperiodic boundary conditions, the box length in each periodic dimension\nmust be larger than *rmax*, so that no bonds are created between the\nsystem and its own periodic image.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want to create bonds between pairs of 1--3 or 1--4 atoms in\n > the current bond topology, then you need to use [special_bonds > lj 0 1 1 ](https://docs.lammps.org/special_bonds.html) to ensure those pairs appear in the\n > neighbor list. They will not appear with the default special_bonds\n > settings, which are zero for 1--2, 1--3, and 1--4 atoms. 1--3 or 1--4\n > atoms are those which are two hops or three hops apart in the bond\n > topology. \n > \n\nAn additional requirement for this style is that your system must be\nready to perform a simulation. This means, for example, that all\n[pair_style ](https://docs.lammps.org/pair_style.html) coefficients be set via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. A [bond_style ](https://docs.lammps.org/bond_style.html)\ncommand and all bond coefficients must also be set, even if no bonds\nexist before this command is invoked. This is because the building of\nneighbor list requires initialization and setup of a simulation,\nsimilar to what a [run ](https://docs.lammps.org/run.html) command would require.\n\nNote that you can change any of these settings after this command\nexecutes (e.g., if you wish to use long-range Coulombic interactions)\nvia the [kspace_style ](https://docs.lammps.org/kspace_style.html) command for your subsequent\nsimulation.\n\n----------\n\nThe *single/bond* style creates a single bond of type *btype* between\ntwo atoms with IDs *batom1* and *batom2* . *Btype* must be a value\nbetween 1 and the number of bond types defined.\n\nThe *single/angle* style creates a single angle of type *atype*\nbetween three atoms with IDs *aatom1*, *aatom2*, and *aatom3* . The\nordering of the atoms is the same as in the *Angles* section of a data\nfile read by the [read_data ](https://docs.lammps.org/read_data.html) command (i.e., the three atoms\nare ordered linearly within the angle; the central atom is *aatom2*).\n*Atype* must be a value between 1 and the number of angle types\ndefined.\n\nThe *single/dihedral* style creates a single dihedral of type *dtype*\nbetween four atoms with IDs *datom1*, *datom2*, *datom3*, and *datom4* . The\nordering of the atoms is the same as in the *Dihedrals* section of a data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command. I.e. the 4 atoms are ordered\nlinearly within the dihedral. *dtype* must be a value between 1 and\nthe number of dihedral types defined.\n\nThe *single/improper* style creates a single improper of type *itype*\nbetween four atoms with IDs *iatom1*, *iatom2*, *iatom3*, and *iatom4* . The\nordering of the atoms is the same as in the *Impropers* section of a data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command. I.e. the 4 atoms are ordered\nlinearly within the improper. *itype* must be a value between 1 and\nthe number of improper types defined.\n\n----------\n\nThe keyword *special* controls whether an internal list of special\nbonds is created after one or more bonds, or a single angle, dihedral, or\nimproper is added to the system.\n\nThe default value is *yes* . A value of *no* cannot be used\nwith the *many* style.\n\nThis is an expensive operation since the bond topology for the system\nmust be walked to find all 1--2, 1--3, and 1--4 interactions to store in an\ninternal list, which is used when pairwise interactions are weighted;\nsee the [special_bonds ](https://docs.lammps.org/special_bonds.html) command for details.\n\nThus if you are adding a few bonds or a large list of angles all at\nthe same time, by using this command repeatedly, it is more efficient\nto only trigger the internal list to be created once, after the last\nbond (or angle, or dihedral, or improper) is added:\n\n```lmps\ncreate_bonds single/bond 5 52 98 special no\ncreate_bonds single/bond 5 73 74 special no\n...\ncreate_bonds single/bond 5 17 386 special no\ncreate_bonds single/bond 4 112 183 special yes\n```\nNote that you **must** ensure the internal list is rebuilt after the last\nbond (angle, dihedral, improper) is added, *before* performing a simulation.\nOtherwise, pairwise interactions will not be properly excluded or\nweighted. LAMMPS does **not** check that you have done this correctly.\n\n----------\n", + "restrictions": "This command cannot be used with molecular systems defined using\nmolecule template files via the [molecule ](https://docs.lammps.org/molecule.html) and\n[atom_style template ](https://docs.lammps.org/atom_style.html) commands.\n\nFor style *many*, no [kspace style ](https://docs.lammps.org/kspace_style.html) must be\ndefined. Also, the *rmax* value must be smaller than any periodic box\nlength and the neighbor list cutoff (largest pair cutoff plus neighbor\nskin).\n", + "related": "[create_atoms ](https://docs.lammps.org/create_atoms.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "fix_modify AtC control thermal" + "fix amoeba/bitorsion" ], "syntax": [ - "fix_modify control ", - "fix_modify control thermal ", - "fix_modify control thermal rescale ", - "fix_modify control thermal flux ", - "fix_modify control thermal correction_max_iterations " + "fix ID group-ID ameoba/bitorsion filename" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "thermal", - "momentum" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "max_iterations", - "tolerance" - ] + "arg": "ameoba/bitorsion", + "type": 2, + "choices": [] }, { - "arg": "", + "arg": "filename", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* amoeba/bitorsion = style name of this fix command\n* filename = force-field file with AMOEBA bitorsion coefficients \n", + "examples": "\n```lmps\nfix bit all amoeba/bitorsion bitorsion.ubiquitin.data\nread_data proteinX.data fix bit bitorsions BiTorsions\nfix_modify bit energy yes\n```\n", + "html_filename": "fix_amoeba_bitorsion.html", + "short_description": "This command enables 5-body torsion/torsion interactions to be added\nto simulations which use the AMOEBA and HIPPO force fields", + "description": "This command enables 5-body torsion/torsion interactions to be added\nto simulations which use the AMOEBA and HIPPO force fields. It\nmatches how the Tinker MD code computes its torsion/torsion\ninteractions for the AMOEBA and HIPPO force fields. See the\n[Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page for more information about\nthe implementation of AMOEBA and HIPPO in LAMMPS.\n\nBitorsion interactions add additional potential energy contributions\nto pairs of overlapping phi-psi dihedrals of amino-acids, which are\nimportant to properly represent their conformational behavior. Each\nbitorsion interaction is thus defined for a 5-tuple of atoms\n\\(IJKLM\\) with bonds between successive atoms in the list,\ni.e. two overlapping dihedral interactions for atoms \\(IJKL\\) and\n\\(JKLM\\).\n\nThe examples/amoeba directory has a sample input script and data file\nfor ubiquitin, which illustrates use of the fix amoeba/bitorsion\ncommand.\n\nAs in the example above, this fix should be used before reading a data\nfile that contains a listing of bitorsion interactions. The\n*filename* specified should contain the bitorsion parameters for the\nAMOEBA or HIPPO force field.\n\nThe data file read by the [read_data ](https://docs.lammps.org/read_data.html) command must\ncontain the topology of all the bitorsion interactions, similar to the\ntopology data for bonds, angles, dihedrals, etc. Specifically it\nshould have a line like this in its header section:\n\n```\nN bitorsions\n```\nwhere \\(N\\) is the number of bitorsion 5-body interactions. It should\nalso have a section in the body of the data file like this with \\(N\\)\nlines:\n\n```\nBiTorsions\n\n1 1 8 10 12 18 20\n2 5 18 20 22 25 27\n[...]\nN 3 314 315 317 318 330\n```\nThe first column is an index from 1 to \\(N\\) to enumerate the\nbitorsion 5-atom tuples; it is ignored by LAMMPS. The second column\nis the *type* of the interaction; it is an index into the bitorsion\nforce field file. The remaining 5 columns are the atom IDs of the\natoms (in order) for the 5-tuple \\(IJKLM\\), as described above.\n\nNote that the *bitorsions* and *BiTorsions* keywords for the header\nand body sections match those specified in the [read_data](https://docs.lammps.org/read_data.html) command following the data file name.\n\nThe data file should be generated by using the\ntools/tinker/tinker2lmp.py conversion script which creates a LAMMPS\ndata file from Tinker input files, including its PRM file which\ncontains the parameters necessary for computing bitorsion\ninteractions. The script must be invoked with the optional\n\"-bitorsion\" flag to do this; see the example for the ubiquitin system\nin the tools/tinker/README file. The same conversion script also\ncreates the file of bitorsion coefficient data which is read by this\ncommand.\n\nThe potential energy associated with bitorsion interactions can be\noutput as described below. It can also be included in the total\npotential energy of the system, as output by the [thermo_style](https://docs.lammps.org/thermo_style.html) command, if the [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\ncommand is used, as in the example above. See the note below about\nhow to include the bitorsion energy when performing an [energyminimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the list of bitorsion interactions to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of the bitorsion interactions to\nboth the global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or output\nby the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The default\nsetting for this fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the bitorsion interactions to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the bitorsion terms forces to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", + "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a [read_restart](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the AMOEBA package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" +}, +{ + "command": [ + "prd" + ], + "syntax": [ + "prd N t_event n_dephase t_dephase t_correlate compute-ID seed keyword value ..." + ], + "args": [ [ { - "arg": "fix_modify", + "arg": "prd", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, - "choices": [] - }, - { - "arg": "thermal", - "type": 1, + "arg": "t_event", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "n_dephase", "type": 2, "choices": [] }, { - "arg": "", + "arg": "t_dephase", "type": 2, "choices": [] - } - ], - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] }, { - "arg": "", + "arg": "t_correlate", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, + "arg": "compute-ID", + "type": 2, "choices": [] }, { - "arg": "thermal", - "type": 1, + "arg": "seed", + "type": 2, "choices": [] }, { - "arg": "rescale", - "type": 1, - "choices": [] + "arg": "time", + "type": 3, + "choices": [ + "min", + "temp", + "vel", + "time" + ] }, { - "arg": "", + "arg": "value", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* N = # of timesteps to run (not including dephasing/quenching)\n* t_event = timestep interval between event checks\n* n_dephase = number of velocity randomizations to perform in each dephase run\n* t_dephase = number of timesteps to run dynamics after each velocity randomization during dephase\n* t_correlate = number of timesteps within which 2 consecutive events are considered to be correlated\n* compute-ID = ID of the compute used for event detection\n* random_seed = random # seed (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = min or temp or vel or time \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy, used in quenching \n         ftol = stopping tolerance for force, used in quenching \n         maxiter = max iterations of minimize, used in quenching \n         maxeval = max number of force/energy evaluations, used in quenching \n *        temp value = Tdephase \n         Tdephase = target temperature for velocity randomization, used in dephasing \n *        vel values = loop dist \n         loop = all or local or *geom*, used in dephasing \n         dist = uniform or *gaussian*, used in dephasing \n *        time value = steps or clock \n         steps = simulation runs for N timesteps on each replica (default) \n         clock = simulation runs for N timesteps across all replicas \n", + "examples": "\n```lmps\nprd 5000 100 10 10 100 1 54982\nprd 5000 100 10 10 100 1 54982 min 0.1 0.1 100 200\n```\n", + "html_filename": "prd.html", + "short_description": "Run a parallel replica dynamics (PRD) simulation using multiple\nreplicas of a system", + "description": "Run a parallel replica dynamics (PRD) simulation using multiple\nreplicas of a system. One or more replicas can be used. The total\nnumber of steps *N* to run can be interpreted in one of two ways; see\ndiscussion of the *time* keyword below.\n\nPRD is described in **Voter1998** by Art Voter.\nSimilar to global or local hyperdynamics (HD), PRD is a method for\nperforming accelerated dynamics that is suitable for infrequent-event\nsystems that obey first-order kinetics. A good overview of\naccelerated dynamics methods (AMD) for such systems in given in this\nreview paper **Voter2002prd** from Art's group. To\nquote from the paper: \"The dynamical evolution is characterized by\nvibrational excursions within a potential basin, punctuated by\noccasional transitions between basins. The transition probability is\ncharacterized by p(t) = k\\*exp(-kt) where k is the rate constant.\"\n\nBoth PRD and HD produce a time-accurate trajectory that effectively\nextends the timescale over which a system can be simulated, but they\ndo it differently. PRD creates Nr replicas of the system and runs\ndynamics on each independently with a normal unbiased potential until\nan event occurs in one of the replicas. The time between events is\nreduced by a factor of Nr replicas. HD uses a single replica of the\nsystem and accelerates time by biasing the interaction potential in a\nmanner such that each timestep is effectively longer. For both\nmethods, per CPU second, more physical time elapses and more events\noccur. See the [hyper ](https://docs.lammps.org/hyper.html) page for more info about HD.\n\nIn PRD, each replica runs on a partition of one or more processors.\nProcessor partitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI\ninstalled, you can run a multi-replica simulation with more replicas\n(partitions) than you have physical processors, e.g you can run a\n10-replica simulation on one or two processors. However for PRD, this\nmakes little sense, since running a replica on virtual instead of\nphysical processors,offers no effective parallel speed-up in searching\nfor infrequent events. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc\npage for further discussion.\n\nWhen a PRD simulation is performed, it is assumed that each replica is\nrunning the same model, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of atoms, the interaction\npotentials, etc should be the same for every replica.\n\nA PRD run has several stages, which are repeated each time an \"event\"\noccurs in one of the replicas, as explained below. The logic for a\nPRD run is as follows:\n\n```\nwhile (time remains):\ndephase for n_dephase\\*t_dephase steps\nuntil (event occurs on some replica):\nrun dynamics for t_event steps\nquench\ncheck for uncorrelated event on any replica\nuntil (no correlated event occurs):\nrun dynamics for t_correlate steps\nquench\ncheck for correlated event on this replica\nevent replica shares state with all replicas\n```\nBefore this loop begins, the state of the system on replica 0 is\nshared with all replicas, so that all replicas begin from the same\ninitial state. The first potential energy basin is identified by\nquenching (an energy minimization, see below) the initial state and\nstoring the resulting coordinates for reference.\n\nIn the first stage, dephasing is performed by each replica\nindependently to eliminate correlations between replicas. This is\ndone by choosing a random set of velocities, based on the\n*random_seed* that is specified, and running *t_dephase* timesteps of\ndynamics. This is repeated *n_dephase* times. At each of the\n*n_dephase* stages, if an event occurs during the *t_dephase* steps of\ndynamics for a particular replica, the replica repeats the stage until\nno event occurs.\n\nIf the *temp* keyword is not specified, the target temperature for\nvelocity randomization for each replica is the current temperature of\nthat replica. Otherwise, it is the specified *Tdephase* temperature.\nThe style of velocity randomization is controlled using the keyword\n*vel* with arguments that have the same meaning as their counterparts\nin the [velocity ](https://docs.lammps.org/velocity.html) command.\n\nIn the second stage, each replica runs dynamics continuously, stopping\nevery *t_event* steps to check if a transition event has occurred.\nThis check is performed by quenching the system and comparing the\nresulting atom coordinates to the coordinates from the previous basin.\nThe first time through the PRD loop, the \"previous basin\" is the set\nof quenched coordinates from the initial state of the system.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command.\nMinimization parameters may be set via the\n[min_modify ](https://docs.lammps.org/min_modify.html) command and by the *min* keyword of the\nPRD command. The latter are the settings that would be used with the\n[minimize ](https://docs.lammps.org/minimize.html) command. Note that typically, you do not\nneed to perform a highly-converged minimization to detect a transition\nevent, though you may need to in order to prevent a set of atoms in\nthe system from relaxing to a saddle point.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nPRD command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an \"event\" has occurred.\n\nIn the third stage, the replica on which the event occurred (event\nreplica) continues to run dynamics to search for correlated events.\nThis is done by running dynamics for *t_correlate* steps, quenching\nevery *t_event* steps, and checking if another event has occurred.\n\nThe first time no correlated event occurs, the final state of the\nevent replica is shared with all replicas, the new basin reference\ncoordinates are updated with the quenched state, and the outer loop\nbegins again. While the replica event is searching for correlated\nevents, all the other replicas also run dynamics and event checking\nwith the same schedule, but the final states are always overwritten by\nthe state of the event replica.\n\nThe outer loop of the pseudocode above continues until *N* steps of\ndynamics have been performed. Note that *N* only includes the\ndynamics of stages 2 and 3, not the steps taken during dephasing or\nthe minimization iterations of quenching. The specified *N* is\ninterpreted in one of two ways, depending on the *time* keyword. If\nthe *time* value is *steps*, which is the default, then each replica\nruns for *N* timesteps. If the *time* value is *clock*, then the\nsimulation runs until *N* aggregate timesteps across all replicas have\nelapsed. This aggregate time is the \"clock\" time defined below, which\ntypically advances nearly M times faster than the timestepping on a\nsingle replica, where M is the number of replicas.\n\n----------\n\nFour kinds of output can be generated during a PRD run: event\nstatistics, thermodynamic output by each replica, dump files, and\nrestart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file is\nlimited to event statistics. Note that if a PRD run is performed on\nonly a single replica then the event statistics will be intermixed\nwith the usual thermodynamic output discussed below.\n\nThe quantities printed each time an event occurs are the timestep, CPU\ntime, clock, event number, a correlation flag, the number of\ncoincident events, and the replica number of the chosen event.\n\nThe timestep is the usual LAMMPS timestep, except that time does not\nadvance during dephasing or quenches, but only during dynamics. Note\nthat are two kinds of dynamics in the PRD loop listed above that\ncontribute to this timestepping. The first is when all replicas are\nperforming independent dynamics, waiting for an event to occur. The\nsecond is when correlated events are being searched for, but only one\nreplica is running dynamics.\n\nThe CPU time is the total elapsed time on each processor, since the\nstart of the PRD run.\n\nThe clock is the same as the timestep except that it advances by M\nsteps per timestep during the first kind of dynamics when the M\nreplicas are running independently. The clock advances by only 1 step\nper timestep during the second kind of dynamics, when only a single\nreplica is checking for a correlated event. Thus \"clock\" time\nrepresents the aggregate time (in steps) that has effectively elapsed\nduring a PRD simulation on M replicas. If most of the PRD run is\nspent in the second stage of the loop above, searching for infrequent\nevents, then the clock will advance nearly M times faster than it\nwould if a single replica was running. Note the clock time between\nsuccessive events should be drawn from p(t).\n\nThe event number is a counter that increments with each event, whether\nit is uncorrelated or correlated.\n\nThe correlation flag will be 0 when an uncorrelated event occurs\nduring the second stage of the loop listed above, i.e. when all\nreplicas are running independently. The correlation flag will be 1\nwhen a correlated event occurs during the third stage of the loop\nlisted above, i.e. when only one replica is running dynamics.\n\nWhen more than one replica detects an event at the end of the same\nevent check (every *t_event* steps) during the second stage, then\none of them is chosen at random. The number of coincident events is\nthe number of replicas that detected an event. Normally, this value\nshould be 1. If it is often greater than 1, then either the number of\nreplicas is too large, or *t_event* is too large.\n\nThe replica number is the ID of the replica (from 0 to M-1) in which\nthe event occurred.\n\n----------\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For\nthe PRD command, these contain the thermodynamic output for each\nreplica. You will see short runs and minimizations corresponding to\nthe dynamics and quench operations of the loop listed above. The\ntimestep will be reset appropriately depending on whether the\noperation advances time or not.\n\nAfter the PRD command completes, timing statistics for the PRD run are\nprinted in each replica's log file, giving a breakdown of how much CPU\ntime was spent in each stage (dephasing, dynamics, quenching, etc).\n\n----------\n\nAny [dump files ](https://docs.lammps.org/dump.html) defined in the input script, will be\nwritten to during a PRD run at timesteps corresponding to both\nuncorrelated and correlated events. This means the requested dump\nfrequency in the [dump ](https://docs.lammps.org/dump.html) command is ignored. There will be\none dump file (per dump command) created for all partitions.\n\nThe atom coordinates of the dump snapshot are those of the minimum\nenergy configuration resulting from quenching following a transition\nevent. The timesteps written into the dump files correspond to the\ntimestep at which the event occurred and NOT the clock. A dump\nsnapshot corresponding to the initial minimum state used for event\ndetection is written to the dump file at the beginning of each PRD\nrun.\n\n----------\n\nIf the [restart ](https://docs.lammps.org/restart.html) command is used, a single restart file\nfor all the partitions is generated, which allows a PRD run to be\ncontinued by a new input script in the usual manner.\n\nThe restart file is generated at the end of the loop listed above. If\nno correlated events are found, this means it contains a snapshot of\nthe system at time T + *t_correlate*, where T is the time at which the\nuncorrelated event occurred. If correlated events were found, then it\ncontains a snapshot of the system at time T + *t_correlate*, where T\nis the time of the last correlated event.\n\nThe restart frequency specified in the [restart ](https://docs.lammps.org/restart.html) command\nis interpreted differently when performing a PRD run. It does not\nmean the timestep interval between restart files. Instead it means an\nevent interval for uncorrelated events. Thus a frequency of 1 means\nwrite a restart file every time an uncorrelated event occurs. A\nfrequency of 10 means write a restart file every 10th uncorrelated\nevent.\n\nWhen an input script reads a restart file from a previous PRD run, the\nnew script can be run on a different number of replicas or processors.\nHowever, it is assumed that *t_correlate* in the new PRD command is\nthe same as it was previously. If not, the calculation of the \"clock\"\nvalue for the first event in the new run will be slightly off.\n\n----------\n\n**(Voter1998)** Voter, Phys Rev B, 57, 13985 (1998). \n \n**(Voter2002prd)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThe *N* and *t_correlate* settings must be integer multiples of\n*t_event*.\n\nRuns restarted from restart file written during a PRD run will not\nproduce identical results due to changes in the random numbers used\nfor dephasing.\n\nThis command cannot be used when any fixes are defined that keep track\nof elapsed time to perform time-dependent operations. Examples\ninclude the \"ave\" fixes such as [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html).\nAlso [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) and [fix deposit ](https://docs.lammps.org/fix_deposit.html).\n", + "related": "[compute event/displace ](https://docs.lammps.org/compute_event_displace.html),\n[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[velocity ](https://docs.lammps.org/velocity.html), [temper ](https://docs.lammps.org/temper.html), [neb ](https://docs.lammps.org/neb.html),\n[tad ](https://docs.lammps.org/tad.html), [hyper ](https://docs.lammps.org/hyper.html)\n" +}, +{ + "command": [ + "fix_modify AtC decomposition" + ], + "syntax": [ + "fix_modify decomposition " + ], + "args": [ [ { "arg": "fix_modify", @@ -25086,427 +23984,416 @@ export const command_docs = [ "choices": [] }, { - "arg": "control", + "arg": "decomposition", "type": 1, "choices": [] }, { - "arg": "thermal", - "type": 1, - "choices": [] - }, + "arg": "", + "type": 3, + "choices": [ + "replicated_memory", + "distributed_memory" + ] + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* decomposition = name of the AtC sub-command\n* type = replicated_memory or distributed_memory \n", + "examples": "\n```lmps\nfix_modify AtC decomposition distributed_memory\n```\n", + "html_filename": "atc_decomposition.html", + "short_description": "Command for assigning the distribution of work and memory for parallel\nruns", + "description": "Command for assigning the distribution of work and memory for parallel\nruns. With *replicated_memory* the nodal information is replicated on\neach processor, and with *distributed_memory* only the owned nodal\ninformation kept on each processor. The *replicated_memory* option\nis most appropriate for simulations were the number of nodes is much\nsmaller than the number of atoms.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" +}, +{ + "command": [ + "fix vector" + ], + "syntax": [ + "fix ID group-ID vector Nevery value1 value2 ... keyword args ..." + ], + "args": [ + [ { - "arg": "flux", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "faceset", - "interpolate" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "fix_modify", + "arg": "vector", "type": 1, "choices": [] }, { - "arg": "", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, + "arg": "value1", + "type": 2, "choices": [] }, { - "arg": "thermal", - "type": 1, + "arg": "value2", + "type": 2, "choices": [] }, { - "arg": "correction_max_iterations", - "type": 1, + "arg": "keyword", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control = name of the AtC sub-command\n* physics_type = thermal or momentum\n* solution_parameter = max_iterations or tolerance\n* value = solution_parameter value\n* thermal control_type = none or rescale or hoover or flux\n* frequency = time step frequency for applying velocity rescaling\n* boundary_integration_type = faceset or interpolate (optional)\n* faceset_id = id of boundary face set (optional, only for faceset)\n* correction_max_iterations = maximum number of iterations that will be used by iterative matrix solvers for thermal physics type \n", - "examples": "\n```lmps\nfix_modify AtC control thermal none\nfix_modify AtC control thermal rescale 10\nfix_modify AtC control thermal hoover\nfix_modify AtC control thermal flux\nfix_modify AtC control thermal flux faceset bndy_faces\nfix_modify AtC control thermal correction_max_iterations 10\n```\n", - "html_filename": "atc_control_thermal.html", - "short_description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm", - "description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm. Many solution\napproaches require iterative solvers, and these methods enable users to\nprovide the maximum number of iterations and the relative tolerance.\n\nThe *control thermal* version sets the energy exchange mechanism from\nthe finite elements to the atoms, managed through a control algorithm.\n*rescale* computes a scale factor for each atom to match the finite\nelement temperature. *hoover* is a Gaussian least-constraint isokinetic\nthermostat enforces that the nodal restricted atomic temperature matches\nthe finite element temperature. *flux* is a similar mode, but rather\nadds energy to the atoms based on conservation of energy. *hoover* and\n*flux* allow the prescription of sources or fixed temperatures on the\natoms.\n\n*correction_max_iterations* sets the maximum number of iterations to\ncompute the second order in time correction term for lambda with the\nfractional step method. The method uses the same tolerance as the\ncontroller's matrix solver.\n", - "restrictions": "Only for be used with the specific controllers *thermal* or *momentum*.\nThey are ignored if a lumped solution is requested.\n\n*control thermal* is only for be used with specific transfers: thermal (*rescale*, *hoover*, *flux* ), *two_temperature* (*flux* ).\n*rescale* not valid with time filtering activated\n\n*correction_max_iterations* is only for use with *thermal* physics using\nthe fractional step method.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC control momentum ](https://docs.lammps.org/atc_control_momentum.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* vector = style name of this fix command\n* Nevery = use input values every this many timesteps\n* one or more input values can be listed\n* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID \n *        v_name = value calculated by an equal-style variable with name \n *        v_name[I] = Ith component of vector-style variable with name \n* zero or more keyword/args pairs may be appended\n* keyword = nmax \n *        nmax length = set maximal length of vector to \n", + "examples": "\n```lmps\nfix 1 all vector 100 c_myTemp\nfix 1 all vector 5 c_myTemp v_integral\nfix 1 all vector 50 c_myTemp nmax 200\n```\n", + "html_filename": "fix_vector.html", + "short_description": "Use one or more global values as inputs every few timesteps, and simply\nstore them as a sequence", + "description": "Use one or more global values as inputs every few timesteps, and simply\nstore them as a sequence. For a single specified value, the values are\nstored as a global vector of growing length. For multiple specified\nvalues, they are stored as rows in a global array, whose number of rows\nis growing. The resulting vector or array can be used by other\n[output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe optional *nmax* keyword can be used to restrict the length of the\nvector to the given *length* value. Once the restricted vector is\nfilled, the oldest entry will be discarded when a entry is added.\n\nOne way to to use this command is to accumulate a vector that is\nnumerically integrated using the [variable trap() ](https://docs.lammps.org/variable.html)\nfunction. For example, the velocity auto-correlation function (VACF)\ncan be integrated, to yield a diffusion coefficient, as follows:\n\n```lmps\ncompute 2 all vacf\nfix 5 all vector 1 c_2[4]\nvariable diff equal dt*trap(f_5)\nthermo_style custom step v_diff\n```\nThe group specified with this command is ignored. However, note that\nspecified values may represent calculations performed by computes and\nfixes which store their own \"group\" definitions.\n\nEach listed value can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an equal-style or vector-style\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity. And\nthe global quantity must be a scalar, not a vector or array.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce global quantities are those which\ndo not have the word *atom* in their style name. Only a few\n[fixes ](https://docs.lammps.org/fix.html) produce global quantities. See the doc pages for\nindividual fixes for info on which ones produce such values.\n[Variables ](https://docs.lammps.org/variable.html) of style *equal* or *vector* are the only\nones that can be used with this fix. Variables of style *atom* cannot\nbe used, since they produce per-atom values.\n\nThe *Nevery* argument specifies on what timesteps the input values\nwill be used in order to be stored. Only timesteps that are a\nmultiple of *Nevery*, including timestep 0, will contribute values.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >:class: warning\n >\n > If *Nevery* is a small number and the simulation runs for many\n > steps, the accumulated vector or array can become very large and\n > thus consume a lot of memory. The implementation limit is about\n > 2 billion entries. Using the *nmax* keyword mentioned above can\n > avoid that by limiting the size of the vector. \n > \n\nNote that if you perform multiple runs, using the \"pre no\" option of\nthe [run ](https://docs.lammps.org/run.html) command to avoid initialization on subsequent runs,\nthen you need to use the *stop* keyword with the first [run ](https://docs.lammps.org/run.html)\ncommand with a timestep value that encompasses all the runs. This is\nso that the vector or array stored by this fix can be allocated to a\nsufficient size.\n\n----------\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the compute is used. If a\nbracketed term is appended, the Ith element of the global vector\ncalculated by the compute is used.\n\nNote that there is a [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwhich can sum per-atom quantities into a global scalar or vector which\ncan thus be accessed by fix vector. Or it can be a compute defined not\nin your input script, but by [thermodynamic output ](https://docs.lammps.org/thermo_style.html)\nor other fixes such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale](https://docs.lammps.org/fix_temp_rescale.html). See the doc pages for these commands which give\nthe IDs of these computes. Users can also write code for their own\ncompute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the global scalar calculated by the fix is used. If a\nbracketed term is appended, the Ith element of the global vector\ncalculated by the fix is used.\n\nNote that some fixes only produce their values on certain timesteps,\nwhich must be compatible with *Nevery*, else an error will result.\nUsers can also write code for their own fix styles and [add them toLAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. An equal-style or\nvector-style variable can be referenced; the latter requires a\nbracketed term to specify the Ith element of the vector calculated by\nthe variable. See the [variable ](https://docs.lammps.org/variable.html) command for details.\nNote that variables of style *equal* and *vector* define a formula\nwhich can reference individual atom properties or thermodynamic\nkeywords, or they can invoke other computes, fixes, or variables when\nthey are evaluated, so this is a very general means of specifying\nquantities to be stored by fix vector.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a global vector or global array which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The values\ncan only be accessed on timesteps that are multiples of *Nevery* .\n\nA vector is produced if only a single input value is specified.\nAn array is produced if multiple input values are specified.\nThe length of the vector or the number of rows in the array grows\nby 1 every *Nevery* timesteps.\n\nIf the fix produces a vector, then the entire vector will be either\n\"intensive\" or \"extensive\", depending on whether the values stored in\nthe vector are \"intensive\" or \"extensive\". If the fix produces an\narray, then all elements in the array must be the same, either\n\"intensive\" or \"extensive\". If a compute or fix provides the value\nstored, then the compute or fix determines whether the value is\nintensive or extensive; see the page for that compute or fix for further\ninfo. Values produced by a variable are treated as intensive.\n\nThis fix can allocate storage for stored values accumulated over\nmultiple runs, using the *start* and *stop* keywords of the [run](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of how to\ndo this. If using the [run pre no ](https://docs.lammps.org/run.html) command option, this is\nrequired to allow the fix to allocate sufficient storage for stored\nvalues.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [variable ](https://docs.lammps.org/variable.html)\n\n #### Defaults\n\nThe default value of *nmax* is deduced from the number of steps\nin a run (or multiple runs when using the *start* and *stop*\nkeywords of the [run command ](https://docs.lammps.org/run.html)) divided by the choice\nof *Nevery* plus 1.\n" }, { "command": [ - "angle_style lepton", - "angle_style lepton/omp" + "dihedral_style lepton", + "dihedral_style lepton/omp" ], "syntax": [ - "angle_style style args" + "dihedral_style lepton" ], "args": [ [ { - "arg": "angle_style", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "style", - "type": 2, - "choices": [] - }, - { - "arg": "args", - "type": 2, - "choices": [] + "arg": "lepton", + "type": 3, + "choices": [ + "lepton", + "lepton/omp" + ] } ] ], - "parameters": "* style = lepton\n* args = optional arguments \n *    args = auto_offset or no_offset \n     auto_offset = offset the potential energy so that the value at theta0 is 0.0 (default) \n     no_offset = do not offset the potential energy \n", - "examples": "\n```lmps\nangle_style lepton\nangle_style lepton no_offset\n\nangle_coeff 1 120.0 \"k*theta^2; k=250.0\"\nangle_coeff 2 90.0 \"k2*theta^2 + k3*theta^3 + k4*theta^4; k2=300.0; k3=-100.0; k4=50.0\"\nangle_coeff 3 109.47 \"k*theta^2; k=350.0\"\n```\n", - "html_filename": "angle_lepton.html", - "short_description": "\nAngle style *lepton* computes angular interactions between three atoms\nwith a custom potential function", - "description": "\nAngle style *lepton* computes angular interactions between three atoms\nwith a custom potential function. The potential function must be\nprovided as an expression string using \"theta\" as the angle variable\nrelative to the reference angle \\(\\theta_0\\) which is provided as an\nangle coefficient. For example `\"200.0*theta^2\"` represents a\n[harmonic angle ](https://docs.lammps.org/angle_harmonic.html) potential with a force constant\n*K* of 200.0 energy units:\n\\[\n U_{angle,i} = K (\\theta_i - \\theta_0)^2 = K \\theta^2 \\qquad \\theta = \\theta_i - \\theta_0\\]\n\nBy default the potential energy U is shifted so that the value U is 0.0\nfor $theta = theta_0$. This is equivalent to using the optional keyword\n*auto_offset*. When using the keyword *no_offset* instead, the\npotential energy is not shifted.\n\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* angle style interfaces with, evaluates this expression string\nat run time to compute the pairwise energy. It also creates an\nanalytical representation of the first derivative of this expression\nwith respect to \"theta\" and then uses that to compute the force between\nthe angle atoms as defined by the topology data.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* \\(\\theta_0\\) (degrees)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The \\(\\theta_0\\)\ncoefficient is the \"equilibrium angle\". It is entered in degrees, but\ninternally converted to radians. Thus the expression must assume\n\"theta\" is in radians. The potential energy function in the Lepton\nexpression is shifted in such a way, that the potential energy is 0 for\na angle \\(\\theta_i == \\theta_0\\).\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style table ](https://docs.lammps.org/angle_table.html),\n[bond_style lepton ](https://docs.lammps.org/bond_lepton.html),[dihedral_style lepton ](https://docs.lammps.org/dihedral_lepton.html)\n" + "parameters": "", + "examples": "\n```lmps\ndihedral_style lepton\n\ndihedral_coeff 1 \"k*(1 + d*cos(n*phi)); k=75.0; d=1; n=2\"\ndihedral_coeff 2 \"45*(1-cos(4*phi))\"\ndihedral_coeff 2 \"k2*cos(phi) + k3*cos(phi)^2; k2=100.0\"\ndihedral_coeff 3 \"k*(phi-phi0)^2; k=85.0; phi0=120.0\"\n```\n", + "html_filename": "dihedral_lepton.html", + "short_description": "\nDihedral style *lepton* computes dihedral interactions between four\natoms forming a dihedral angle with a custom potential function", + "description": "\nDihedral style *lepton* computes dihedral interactions between four\natoms forming a dihedral angle with a custom potential function. The\npotential function must be provided as an expression string using \"phi\"\nas the dihedral angle variable. For example `\"200.0*(phi-120.0)^2\"`\nrepresents a [quadratic dihedral ](https://docs.lammps.org/dihedral_quadratic.html) potential\naround a 120 degree dihedral angle with a force constant *K* of 200.0\nenergy units:\n\\[\n U_{dihedral,i} = K (\\phi_i - \\phi_0)^2\\]\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* dihedral style interfaces with, evaluates this expression\nstring at run time to compute the pairwise energy. It also creates an\nanalytical representation of the first derivative of this expression\nwith respect to \"phi\" and then uses that to compute the force between\nthe dihedral atoms as defined by the topology data.\n\nThe potential function expression for each dihedral type is provided via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands. The expression is in energy units.\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. Dihedral angles are internally\ncomputed in radians and thus the expression must assume \"phi\" is in\nradians.\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html), [dihedral_style table ](https://docs.lammps.org/dihedral_table.html),\n[bond_style lepton ](https://docs.lammps.org/bond_lepton.html), [angle_style lepton ](https://docs.lammps.org/angle_lepton.html)\n" }, { "command": [ - "pair_style python" + "compute stress/mop" ], "syntax": [ - "pair_style python cutoff" + "compute ID group-ID style dir args keywords ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "python", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "cutoff = global cutoff for interactions in python potential classes \n", - "examples": "\n```lmps\npair_style python 2.5\npair_coeff * * py_pot.LJCutMelt lj\n\npair_style python 10.0\npair_coeff * * py_pot.HarmonicCut A B\n\npair_style hybrid/overlay coul/long 12.0 python 12.0\npair_coeff * * coul/long\npair_coeff * * python py_pot.LJCutSPCE OW NULL\n```\n", - "html_filename": "pair_python.html", - "short_description": "The *python* pair style provides a way to define pairwise additive\npotential functions as python script code that is loaded into LAMMPS\nfrom a python file which must contain specific python class definitions", - "description": "The *python* pair style provides a way to define pairwise additive\npotential functions as python script code that is loaded into LAMMPS\nfrom a python file which must contain specific python class definitions.\nThis allows to rapidly evaluate different potential functions without\nhaving to modify and re-compile LAMMPS. Due to python being an\ninterpreted language, however, the performance of this pair style is\ngoing to be significantly slower (often between 20x and 100x) than\ncorresponding compiled code. This penalty can be significantly reduced\nthrough generating tabulations from the python code through the\n[pair_write ](https://docs.lammps.org/pair_write.html) command, which is supported by this style.\n\nOnly a single [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command is used with the\n*python* pair style which specifies a python class inside a python module\nor a file that LAMMPS will look up in the current directory, a folder\npointed to by the ``LAMMPS_POTENTIALS`` environment variable or somewhere\nin your python path. A single python module can hold multiple python pair\nclass definitions. The class definitions itself have to follow specific\nrules that are explained below.\n\nAtom types in the python class are specified through symbolic\nconstants, typically strings. These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the class name in the\npair_coeff command, where N must be the number of currently defined\natom types:\n\nAs an example, imagine a file *py_pot.py* has a python potential class\nnames *LJCutMelt* with parameters and potential functions for a two\nLennard-Jones atom types labeled as 'LJ1' and 'LJ2'. In your LAMMPS\ninput and you would have defined 3 atom types, out of which the first\ntwo are supposed to be using the 'LJ1' parameters and the third the\n'LJ2' parameters, then you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * py_pot.LJCutMelt LJ1 LJ1 LJ2\n```\nThe first two arguments **must** be \\* \\* so as to span all LAMMPS atom\ntypes. The first two LJ1 arguments map LAMMPS atom types 1 and 2 to\nthe LJ1 atom type in the LJCutMelt class of the py_pot.py file. The\nfinal LJ2 argument maps LAMMPS atom type 3 to the LJ2 atom type the\npython file. If a mapping value is specified as NULL, the mapping is\nnot performed, any pair interaction with this atom type will be\nskipped. This can be used when a *python* potential is used as part of\nthe *hybrid* or *hybrid/overlay* pair style. The NULL values are then\nplaceholders for atom types that will be used with other potentials.\n\n----------\n\nThe python potential file has to start with the following code:\n\n```python\nfrom __future__ import print_function\n\nclass LAMMPSPairPotential(object):\ndef __init__(self):\nself.pmap=dict()\nself.units='lj'\ndef map_coeff(self,name,ltype):\nself.pmap[ltype]=name\ndef check_units(self,units):\nif (units != self.units):\nraise Exception(\"Conflicting units: %s vs. %s\" % (self.units,units))\n```\nAny classes with definitions of specific potentials have to be derived\nfrom this class and should be initialize in a similar fashion to the\nexample given below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The class constructor has to set up a data structure containing\n > the potential parameters supported by this class. It should also\n > define a variable *self.units* containing a string matching one of the\n > options of LAMMPS' [units ](https://docs.lammps.org/units.html) command, which is used to\n > verify, that the potential definition in the python class and in the\n > LAMMPS input match. \n > \n\nHere is an example for a single type Lennard-Jones potential class\n*LJCutMelt* in reduced units, which defines an atom type *lj* for\nwhich the parameters epsilon and sigma are both 1.0:\n\n```python\nclass LJCutMelt(LAMMPSPairPotential):\ndef __init__(self):\nsuper(LJCutMelt,self).__init__()\n# set coeffs: 48*eps*sig**12, 24*eps*sig**6,\n# 4*eps*sig**12, 4*eps*sig**6\nself.units = 'lj'\nself.coeff = {'lj' : {'lj' : (48.0,24.0,4.0,4.0)}}\n```\nThe class also has to provide two methods for the computation of the\npotential energy and forces, which have be named *compute_force*,\nand *compute_energy*, which both take 3 numerical arguments:\n\n* rsq = the square of the distance between a pair of atoms (float)\n* itype = the (numerical) type of the first atom\n* jtype = the (numerical) type of the second atom\n\nThis functions need to compute the (scaled) force and the energy,\nrespectively, and use the result as return value. The functions need\nto use the *pmap* dictionary to convert the LAMMPS atom type number\nto the symbolic value of the internal potential parameter data structure.\nFollowing the *LJCutMelt* example, here are the two functions:\n\n```python\ndef compute_force(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr2inv = 1.0/rsq\nr6inv = r2inv*r2inv*r2inv\nlj1 = coeff[0]\nlj2 = coeff[1]\nreturn (r6inv * (lj1*r6inv - lj2))*r2inv\n\ndef compute_energy(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr2inv = 1.0/rsq\nr6inv = r2inv*r2inv*r2inv\nlj3 = coeff[2]\nlj4 = coeff[3]\nreturn (r6inv * (lj3*r6inv - lj4))\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >for consistency with the C++ pair styles in LAMMPS, the\n > *compute_force* function follows the conventions of the Pair::single()\n > methods and does not return the pairwise force directly, but the force\n > divided by the distance between the two atoms, so this value only needs\n > to be multiplied by delta x, delta y, and delta z to conveniently obtain\n > the three components of the force vector between these two atoms. \n > \n\nBelow is a more complex example using *real* units and defines an interaction\nequivalent to:\n\n```lmps\nunits real\npair_style harmonic/cut\npair_coeff 1 1 0.2 9.0\npair_coeff 2 2 0.4 9.0\n```\nThis uses the default geometric mixing. The equivalent input with pair\nstyle *python* is:\n\n```lmps\nunits real\npair_style python 10.0\npair_coeff * * py_pot.Harmonic A B\n```\nNote that while for pair style *harmonic/cut* the cutoff is implicitly\nset to the minimum of the harmonic potential, for pair style python a\nglobal cutoff must be set and it must be equal or larger to the implicit\ncutoff of the potential in python, which has to explicitly return zero\nforce and energy beyond the cutoff. Also, the mixed parameters have to\nbe explicitly provided. The corresponding python code is:\n\n```python\nclass Harmonic(LAMMPSPairPotential):\ndef __init__(self):\nsuper(Harmonic,self).__init__()\nself.units = 'real'\n# set coeffs: K, r0\nself.coeff = {'A' : {'A' : (0.2,9.0),\n'B' : (math.sqrt(0.2*0.4),9.0)},\n'B' : {'A' : (math.sqrt(0.2*0.4),9.0),\n'B' : (0.4,9.0)}}\n\ndef compute_force(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr = math.sqrt(rsq)\ndelta = coeff[1]-r\nif (r < coeff[1]):\nreturn 2.0*delta*coeff[0]/r\nelse:\nreturn 0.0\n\ndef compute_energy(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr = math.sqrt(rsq)\ndelta = coeff[1]-r\nif (r < coeff[1]):\nreturn delta*delta*coeff[0]\nelse:\nreturn 0.0\n```\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Performance Impact \n >The evaluation of scripted python code will slow down the computation\n > of pairwise interactions quite significantly. However, this performance\n > penalty can be worked around through using the python pair style not\n > for the actual simulation, but to generate tabulated potentials using\n > the [pair_write ](https://docs.lammps.org/pair_write.html) command. This will also enable\n > GPU or multi-thread acceleration through the GPU, KOKKOS, or OPENMP\n > package versions of the *table* pair style. Please see below for a\n > LAMMPS input example demonstrating how to build a table file: \n > \n\n\n```lmps\npair_style python 2.5\npair_coeff * * py_pot.LJCutMelt lj\nshell rm -f lj.table\npair_write 1 1 2000 rsq 0.01 2.5 lj.table lj\n```\nNote that it is strongly recommended to try to **delete** the potential\ntable file before generating it. Since the *pair_write* command will\nalways **append** to a table file, while pair style table will use the\n**first match** . Thus when changing the potential function in the python\nclass, the table pair style will still read the old variant unless the\ntable file is first deleted.\n\nAfter switching the pair style to *table*, the potential tables need\nto be assigned to the LAMMPS atom types like this:\n\n```lmps\npair_style table linear 2000\npair_coeff 1 1 lj.table lj\n```\nThis can also be done for more complex systems. Please see the\n*examples/python* folders for a few more examples.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nMixing of potential parameters has to be handled inside the provided\npython module. The python pair style simply assumes that force and\nenergy computation can be correctly performed for all pairs of atom\ntypes as they are mapped to the atom type labels inside the python\npotential class.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_write ](https://docs.lammps.org/pair_write.html),\n[pair style table ](https://docs.lammps.org/pair_table.html)\n" -}, -{ - "command": [ - "bond_coeff" - ], - "syntax": [ - "bond_coeff N args" - ], - "args": [ - [ + }, { - "arg": "bond_coeff", - "type": 1, - "choices": [] + "arg": "stress/mop/profile", + "type": 3, + "choices": [ + "stress/mop", + "stress/mop/profile" + ] }, { - "arg": "N", - "type": 2, - "choices": [] + "arg": "y", + "type": 3, + "choices": [ + "x", + "y" + ] }, { "arg": "args", "type": 2, "choices": [] + }, + { + "arg": "angle", + "type": 3, + "choices": [ + "kin", + "conf", + "total", + "pair", + "bond", + "angle" + ] } ] ], - "parameters": "* N = numeric bond type (see asterisk form below), or type label\n* args = coefficients for one or more bond types \n", - "examples": "\n```lmps\nbond_coeff 5 80.0 1.2\nbond_coeff * 30.0 1.5 1.0 1.0\nbond_coeff 1*4 30.0 1.5 1.0 1.0\nbond_coeff 1 harmonic 200.0 1.0 # (for bond_style hybrid)\n\nlabelmap bond 5 carbonyl\nbond_coeff carbonyl 80.0 1.2\n```\n", - "html_filename": "bond_coeff.html", - "short_description": "Specify the bond force field coefficients for one or more bond types", - "description": "Specify the bond force field coefficients for one or more bond types.\nThe number and meaning of the coefficients depends on the bond style.\nBond coefficients can also be set in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of several ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple bond types. This takes the form \"\\*\" or \"\\*n\"\nor \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of bond types, then an\nasterisk with no numeric values means all types from 1 to \\(N\\). A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to \\(N\\) (inclusive). A middle\nasterisk means all types from m to n (inclusive).\n\nNote that using a bond_coeff command can override a previous setting\nfor the same bond type. For example, these commands set the coeffs\nfor all bond types, then overwrite the coeffs for just bond type 2:\n\n```lmps\nbond_coeff * 100.0 1.2\nbond_coeff 2 200.0 1.2\n```\nA line in a data file that specifies bond coefficients uses the exact\nsame format as the arguments of the bond_coeff command in an input\nscript, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For\nexample, under the \"Bond Coeffs\" section of a data file, the line that\ncorresponds to the first example above would be listed as\n\n```\n5 80.0 1.2\n```\n----------\n\nThe list of all bond styles defined in LAMMPS is given on the\n[bond_style ](https://docs.lammps.org/bond_style.html) doc page. They are also listed in more\ncompact form on the [Commands bond ](https://docs.lammps.org/Commands_bond.html) doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\nbond_coeff command.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nA bond style must be defined before any bond coefficients are set,\neither in the input script or in a data file.\n", - "related": "[bond_style ](https://docs.lammps.org/bond_style.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/mop or stress/mop/profile\n* dir = x or y or z is the direction normal to the plane\n* args = argument specific to the compute style\n* keywords = kin or conf or total or pair or bond or angle or dihedral (one or more can be specified) \n *      stress/mop args = pos \n       pos = lower or center or upper or coordinate value (distance units) is the position of the plane \n *      stress/mop/profile args = origin delta \n       origin = lower or center or upper or coordinate value (distance units) is the position of the first plane \n       delta = value (distance units) is the distance between planes \n", + "examples": "\n```lmps\ncompute 1 all stress/mop x lower total\ncompute 1 liquid stress/mop z 0.0 kin conf\nfix 1 all ave/time 10 1000 10000 c_1[*] file mop.time\nfix 1 all ave/time 10 1000 10000 c_1[2] file mop.time\n\ncompute 1 all stress/mop/profile x lower 0.1 total\ncompute 1 liquid stress/mop/profile z 0.0 0.25 kin conf\nfix 1 all ave/time 500 20 10000 c_1[*] ave running overwrite file mopp.time mode vector\n```\n", + "html_filename": "compute_stress_mop.html", + "short_description": "Compute *stress/mop* and compute *stress/mop/profile* define\ncomputations that calculate components of the local stress tensor using\nthe method of planes **mop-todd**", + "description": "Compute *stress/mop* and compute *stress/mop/profile* define\ncomputations that calculate components of the local stress tensor using\nthe method of planes **mop-todd**. Specifically in compute\n*stress/mop* calculates 3 components are computed in directions *dir*,\\\n*x* ; *dir*,\\ *y* ; and *dir*,\\ *z* ; where *dir* is the direction\nnormal to the plane, while in compute *stress/mop/profile* the profile\nof the stress is computed.\n\nContrary to methods based on histograms of atomic stress (i.e., using\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)), the method of planes\nis compatible with mechanical balance in heterogeneous systems and at\ninterfaces **mop-todd**.\n\nThe stress tensor is the sum of a kinetic term and a configurational\nterm, which are given respectively by Eq. (21) and Eq. (16) in\n**mop-todd**. For the kinetic part, the algorithm considers\nthat atoms have crossed the plane if their positions at times\n\\(t-\\Delta t\\) and \\(t\\) are one on either side of the plane,\nand uses the velocity at time \\(t-\\Delta t/2\\) given by the velocity\nVerlet algorithm.\n\n **New in version 15Jun2023** \n\n contributions from bond, angle and dihedral potentials\nBetween one and seven keywords can be used to indicate which contributions\nto the stress must be computed: total stress (total), kinetic stress\n(kin), configurational stress (conf), stress due to bond stretching\n(bond), stress due to angle bending (angle), stress due to dihedral terms (dihedral)\nand/or due to pairwise non-bonded interactions (pair).\n\nNOTE 1: The configurational stress is computed considering all pairs of\natoms where at least one atom belongs to group group-ID.\n\nNOTE 2: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the [pair_modify tail yes](https://docs.lammps.org/pair_modify.html) command, since those are contributions to the global\nsystem pressure.\n\nNOTE 3: The local stress profile generated by compute\n*stress/mop/profile* is similar to that obtained by compute\n[stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html).\nA key difference is that compute *stress/mop/profile*\nconsiders particles crossing a set of planes, while\n*stress/cartesian* computes averages for a set\nof small volumes.\nMoreover, *stress/cartesian* compute computes the diagonal components of the stress\ntensor \\(P_{xx}\\), \\(P_{yy}\\), and \\(P_{zz}\\), while\n*stress/mop/profile* computes the components\n\\(P_{ix}\\), \\(P_{iy}\\), and \\(P_{iz}\\), where \\(i\\) is the\ndirection normal to the plane.\n\n #### Output info\n\nCompute *stress/mop* calculates a global vector (indices starting at 1),\nwith 3 values for each declared keyword (in the order the keywords have\nbeen declared). For each keyword, the stress tensor components are\nordered as follows: stress_dir,x, stress_dir,y, and stress_dir,z.\n\nCompute *stress/mop/profile* instead calculates a global array, with 1\ncolumn giving the position of the planes where the stress tensor was\ncomputed, and with 3 columns of values for each declared keyword (in the\norder the keywords have been declared). For each keyword, the profiles\nof stress tensor components are ordered as follows: stress_dir,x;\nstress_dir,y; and stress_dir,z.\n\nThe values are in pressure [units ](https://docs.lammps.org/units.html).\n\nThe values produced by this compute can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). For instance, the results can be\nwritten to a file using the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand. Please see the example in the examples/PACKAGES/mop folder.\n\n**(mop-todd)** B. D. Todd, Denis J. Evans, and Peter J. Daivis: \"Pressure tensor for inhomogeneous fluids\",\nPhys. Rev. E 52, 1627 (1995). \n ", + "restrictions": "These styles are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS is built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page on for more info.\n\nThe method is implemented for orthogonal simulation boxes whose\nsize does not change in time, and axis-aligned planes.\n\nThe method only works with two-body pair interactions, because it\nrequires the class method ``Pair::single()`` to be implemented, which is\nnot possible for manybody potentials. In particular, compute\n*stress/mop/profile* and *stress/mop* do not work with more than two-body\npair interactions, long range (kspace) interactions and\nimproper intramolecular interactions.\n\nThe impact of fixes that affect the stress (e.g. fix langevin) is\nalso not included in the stress computed here.\n", + "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html),\n[compute stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html),\n[compute stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html)\n" }, { "command": [ - "fix mvv/dpd", - "fix mvv/edpd" + "pair_style exp6/rx", + "pair_style exp6/rx/kk" ], "syntax": [ - "fix ID group-ID mvv/dpd lambda", - "fix ID group-ID mvv/edpd lambda", - "fix ID group-ID mvv/tdpd lambda" + "pair_style exp6/rx cutoff ..." ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "mvv/dpd", - "type": 1, - "choices": [] + "arg": "exp6/rx", + "type": 3, + "choices": [ + "exp6/rx", + "exp6/rx/kk" + ] }, { - "arg": "lambda", + "arg": "cutoff", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* cutoff = global cutoff for DPD interactions (distance units)\n* weighting = fractional or molecular (optional) \n", + "examples": "\n```lmps\npair_style exp6/rx 10.0\npair_style exp6/rx 10.0 fractional\npair_style exp6/rx 10.0 molecular\npair_coeff * * exp6.params h2o h2o exponent 1.0 1.0 10.0\npair_coeff * * exp6.params h2o 1fluid exponent 1.0 1.0 10.0\npair_coeff * * exp6.params 1fluid 1fluid exponent 1.0 1.0 10.0\npair_coeff * * exp6.params 1fluid 1fluid none 10.0\npair_coeff * * exp6.params 1fluid 1fluid polynomial filename 10.0\n```\n", + "html_filename": "pair_exp6_rx.html", + "short_description": "Style *exp6/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command", + "description": "Style *exp6/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command. The species of\none CG particle can interact with a species in a neighboring CG\nparticle through a site-site interaction potential model. The\n*exp6/rx* style computes an exponential-6 potential given by\n\\[\n U_{ij}(r) = \\frac{\\epsilon}{\\alpha-6}\\{6\\exp[\\alpha(1-\\frac{r_{ij}}{R_{m}})]-\\alpha(\\frac{R_{m}}{r_{ij}})^6\\}\\]\nwhere the \\(\\epsilon\\) parameter determines the depth of the\npotential minimum located at \\(R_m\\), and \\(\\alpha\\) determines\nthe softness of the repulsion.\n\nThe coefficients must be defined for each species in a given particle\ntype via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, where the first argument is the filename that includes the\nexponential-6 parameters for each species. The file includes the\nspecies tag followed by the \\(\\alpha, \\epsilon\\) and \\(R_m\\)\nparameters. The format of the file is described below.\n\nThe second and third arguments specify the site-site interaction\npotential between two species contained within two different\nparticles. The species tags must either correspond to the species\ndefined in the reaction kinetics files specified with the [fix rx ](https://docs.lammps.org/fix_rx.html) command or they must correspond to the tag \"1fluid\",\nsignifying interaction with a product species mixture determined\nthrough a one-fluid approximation. The interaction potential is\nweighted by the geometric average of either the mole fraction concentrations\nor the number of molecules associated with the interacting coarse-grained\nparticles (see the *fractional* or *molecular* weighting pair style options).\nThe coarse-grained potential is stored before and after the\nreaction kinetics solver is applied, where the difference is defined\nto be the internal chemical energy (uChem).\n\nThe fourth argument specifies the type of scaling that will be used\nto scale the EXP-6 parameters as reactions occur. Currently, there\nare three scaling options: *exponent*, *polynomial* and *none* .\n\nExponent scaling requires two additional arguments for scaling\nthe \\(R_m\\) and \\(\\epsilon\\) parameters, respectively. The scaling factor\nis computed by phi\\^exponent, where phi is the number of molecules\nrepresented by the coarse-grain particle and exponent is specified\nas a pair coefficient argument for \\(R_m\\) and \\(\\epsilon\\), respectively.\nThe \\(R_m\\) and \\(\\epsilon\\) parameters are multiplied by the scaling\nfactor to give the scaled interaction parameters for the CG particle.\n\nPolynomial scaling requires a filename to be specified as a pair\ncoeff argument. The file contains the coefficients to a fifth order\npolynomial for the \\(\\alpha\\), \\(\\epsilon\\) and \\(R_m\\) parameters that depend\nupon phi (the number of molecules represented by the CG particle).\nThe format of a polynomial file is provided below.\n\nThe *none* option to the scaling does not have any additional pair coeff\narguments. This is equivalent to specifying the *exponent* option with\n\\(R_m\\) and \\(\\epsilon\\) exponents of 0.0 and 0.0, respectively.\n\nThe final argument specifies the interaction cutoff (optional).\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# exponential-6 parameters for various species (one or more comment or blank lines)\n\nh2o exp6 11.00 0.02 3.50 (species, exp6, alpha, Rm, epsilon)\nno2 exp6 13.60 0.01 3.70\n...\nco2 exp6 13.00 0.03 3.20\n```\nThe format of the polynomial scaling file as follows (without the\nparenthesized comments):\n\n```\n# POLYNOMIAL FILE (one or more comment or blank lines)\n\n# General Functional Form:\n# A\\*phi\\^5 + B\\*phi\\^4 + C\\*phi\\^3 + D\\*phi\\^2 + E\\*phi + F\n#\n# Parameter A B C D E F\n(blank)\nalpha 0.0000 0.00000 0.00008 0.04955 -0.73804 13.63201\nepsilon 0.0000 0.00478 -0.06283 0.24486 -0.33737 2.60097\nrm 0.0001 -0.00118 -0.00253 0.05812 -0.00509 1.50106\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections.\n\nFollowing a blank line, the next N lines list the species and their\ncorresponding parameters. The first argument is the species tag, the\nsecond argument is the exp6 tag, the third argument is the \\(\\alpha\\)\nparameter (energy units), the fourth argument is the \\(\\epsilon\\) parameter\n(energy-distance\\^6 units), and the fifth argument is the \\(R_m\\) parameter\n(distance units). If a species tag of \"1fluid\" is listed as a pair\ncoefficient, a one-fluid approximation is specified where a\nconcentration-dependent combination of the parameters is computed\nthrough the following equations:\n\\[\\begin{align*} \n R_{m}^{3} = & \\sum_{a}\\sum_{b} x_{a}x_{b}R_{m,ab}^{3} \\\\\n \\epsilon = & \\frac{1}{R_{m}^{3}}\\sum_{a}\\sum_{b} x_{a}x_{b}\\epsilon_{ab}R_{m,ab}^{3} \\\\\n \\alpha = & \\frac{1}{\\epsilon R_{m}^{3}}\\sum_{a}\\sum_{b} x_{a}x_{b}\\alpha_{ab}\\epsilon_{ab}R_{m,ab}^{3} \\end{align*} \\]\nwhere\n\\[\\begin{align*} \n \\epsilon_{ab} = & \\sqrt{\\epsilon_{a}\\epsilon_{b}} \\\\\n R_{m,ab} = & \\frac{R_{m,a}+R_{m,b}}{2} \\\\\n \\alpha_{ab} = & \\sqrt{\\alpha_{a}\\alpha_{b}} \\end{align*} \\]\nand \\(x_a\\) and \\(x_b\\) are the mole fractions of a and b, respectively, which\ncomprise the gas mixture.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp() and 1/r\\^6 portion of the pair interaction.\n\nThis style does not support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure for the A,C terms in the\npair interaction.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "pair_style multi/lucy" + ], + "syntax": [ + "pair_style multi/lucy style N keyword ..." + ], + "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "multi/lucy", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "mvv/edpd", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "lambda", + "arg": "keyword", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* style = lookup or linear = method of interpolation\n* N = use N values in lookup, linear tables \n", + "examples": "\n```lmps\npair_style multi/lucy linear 1000\npair_coeff * * multibody.table ENTRY1 7.0\n```\n", + "html_filename": "pair_multi_lucy.html", + "short_description": "Style *multi/lucy* computes a density-dependent force following from\nthe many-body form described in **Moore1** and\n**Warren1** as\n\\[\n F_{i}^{DD}(\\rho_i,\\rho_j,r_{ij}) = \\frac{1}{2} \\omega_{DD}\\left(r_{ij}\\right)\n \\left[A\\left(\\rho_i\\right) + A\\left(\\rho_j\\right)\\right]e_{ij}\\]\nwhich consists of a density-dependent function, \\(A(\\rho)\\), and a\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\)", + "description": "Style *multi/lucy* computes a density-dependent force following from\nthe many-body form described in **Moore1** and\n**Warren1** as\n\\[\n F_{i}^{DD}(\\rho_i,\\rho_j,r_{ij}) = \\frac{1}{2} \\omega_{DD}\\left(r_{ij}\\right)\n \\left[A\\left(\\rho_i\\right) + A\\left(\\rho_j\\right)\\right]e_{ij}\\]\nwhich consists of a density-dependent function, \\(A(\\rho)\\), and a\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\). The\nradial-dependent weight function, \\(\\omega_{DD}(r_{ij})\\), is taken\nas the Lucy function:\n\\[\n \\omega_{DD}\\left(r_{ij}\\right) = \\left(1+\\frac{3r_{ij}}{r_{cut}}\\right)\\left(1+\\frac{r_{ij}}{r_{cut}}\\right)^3\\]\nThe density-dependent energy for a given particle is given by:\n\\[\n u_{i}^{DD}\\left(\\rho_{i}\\right) = \\frac{\\pi r_{cut}^4}{84} \\int_{\\rho_0}^{\\rho_i} A\\left(\\rho'\\right) d\\rho'\\]\nSee the supporting information of **Brennan1** or the\npublication by **Moore1** for more details on the functional\nform.\n\nAn interpolation table is used to evaluate the density-dependent energy\n(\\(\\int A(\\rho') d\\rho'\\)) and force (\\(A(\\rho')\\)). Note that\nthe prefactor to the energy is computed after the interpolation, thus\nthe \\(\\int A(\\rho') d \\rho'\\) will have units of energy / length\\^4.\n\nThe interpolation table is created as a pre-computation by fitting\ncubic splines to the file values and interpolating the\ndensity-dependent energy and force at each of *N* densities. During a\nsimulation, the tables are used to interpolate the density-dependent\nenergy and force as needed for each pair of particles separated by a\ndistance *R* . The interpolation is done in one of 2 styles: *lookup*\nand *linear* .\n\nFor the *lookup* style, the density is used to find the nearest table\nentry, which is the density-dependent energy and force.\n\nFor the *linear* style, the density is used to find the 2 surrounding\ntable values from which the density-dependent energy and force are\ncomputed by linear interpolation.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* cutoff (distance units)\n\nThe filename specifies a file containing the tabulated\ndensity-dependent energy and force. The keyword specifies a section\nof the file. The cutoff is an optional coefficient. If not\nspecified, the outer cutoff in the table itself (see below) will be\nused to build an interpolation table that extend to the largest\ntabulated distance. If specified, only file values up to the cutoff\nare used to create the interpolation table. The format of this file\nis described below.\n\n----------\n\nThe format of a tabulated file is a series of one or more sections,\ndefined as follows (without the parenthesized comments):\n\n```\n# Density-dependent function (one or more comment or blank lines)\n\nDD-FUNCTION (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ parameters)\n(blank)\n1 1.0 25.5 102.34 (index, density, energy/r\\^4, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style multi/lucy ](https://docs.lammps.org/pair_multi_lucy.html) command.\nLet Ntable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate the density-dependent energy and force at\nNtable different points. The resulting tables of length Ntable are\nthen used as described above, when computing the density-dependent\nenergy and force. This means that if you want the interpolation\ntables of length Ntable to match exactly what is in the tabulated file\n(with effectively no preliminary interpolation), you should set Ntable\n= Nfile, and use the \"RSQ\" parameter. This is because the internal\ntable abscissa is always RSQ (separation distance squared), for\nefficient lookup.\n\nAll other parameters are optional. If \"R\" or \"RSQ\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *density* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo* and\n*rhi* . If specified, the density associated with each\ndensity-dependent energy and force value is computed from these 2 values\n(at high accuracy), rather than using the (low-accuracy) value listed in\neach line of the table. The density values in the table file are\nignored in this case. For \"R\", distances uniformly spaced between *rlo*\nand *rhi* are computed; for \"RSQ\", squared distances uniformly spaced\nbetween *rlo\\*rlo* and *rhi\\*rhi* are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the file\n > are effectively ignored, and replaced by new values as described in\n > the previous paragraph. If the density value in the table is not\n > very close to the new value (i.e. round-off difference), then you\n > will be assigning density-dependent energy and force values to a\n > different density, which is probably not what you want. LAMMPS will\n > warn if this is occurring. \n > \n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in density units), the third value is the density-dependent function value\n(in energy units / length\\^4), and the fourth is the force (in force units). The\ndensity values must increase from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style multi/lucy\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Moore1)** Moore, J Chem Phys, 144, 104501 (2016). \n \n**(Warren1)** Warren, Phys Rev E, 68, 066702 (2003). \n \n**(Brennan1)** Brennan, J Chem Phys Lett, 5, 2144-2149 (2014). \n ", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "improper_style harmonic", + "improper_style harmonic/intel", + "improper_style harmonic/kk", + "improper_style harmonic/omp" + ], + "syntax": [ + "improper_style harmonic" + ], + "args": [ [ { - "arg": "fix", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "mvv/tdpd", - "type": 2, - "choices": [] - }, - { - "arg": "lambda", - "type": 2, - "choices": [] + "arg": "harmonic", + "type": 3, + "choices": [ + "harmonic", + "harmonic/intel", + "harmonic/kk", + "harmonic/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mvv/dpd, mvv/edpd, mvv/tdpd = style name of this fix command\n* lambda = (optional) relaxation parameter (unitless) \n", - "examples": "\n```lmps\nfix 1 all mvv/dpd\nfix 1 all mvv/dpd 0.5\nfix 1 all mvv/edpd\nfix 1 all mvv/edpd 0.5\nfix 1 all mvv/tdpd\nfix 1 all mvv/tdpd 0.5\n```\n", - "html_filename": "fix_mvv_dpd.html", - "short_description": "Perform time integration using the modified velocity-Verlet (MVV)\nalgorithm to update position and velocity (fix mvv/dpd), or position,\nvelocity and temperature (fix mvv/edpd), or position, velocity and\nconcentration (fix mvv/tdpd) for particles in the group each timestep", - "description": "Perform time integration using the modified velocity-Verlet (MVV)\nalgorithm to update position and velocity (fix mvv/dpd), or position,\nvelocity and temperature (fix mvv/edpd), or position, velocity and\nconcentration (fix mvv/tdpd) for particles in the group each timestep.\n\nThe modified velocity-Verlet (MVV) algorithm aims to improve the\nstability of the time integrator by using an extrapolated version of\nthe velocity for the force evaluation:\n\\[\\begin{align*} \n v(t+\\frac{\\Delta t}{2}) = & v(t) + \\frac{\\Delta t}{2}\\cdot a(t) \\\\\n r(t+\\Delta t) = & r(t) + \\Delta t\\cdot v(t+\\frac{\\Delta t}{2}) \\\\\n a(t+\\Delta t) = & \\frac{1}{m}\\cdot F\\left[ r(t+\\Delta t), v(t) +\\lambda \\cdot \\Delta t\\cdot a(t)\\right] \\\\\n v(t+\\Delta t) = & v(t+\\frac{\\Delta t}{2}) + \\frac{\\Delta t}{2}\\cdot a(t+\\Delta t) \\end{align*} \\]\nwhere the parameter \\(\\lambda\\) depends on the\nspecific choice of DPD parameters, and needs to be tuned on a\ncase-by-case basis. Specification of a *lambda* value is optional.\nIf specified, the setting must be from 0.0 to 1.0. If not specified,\na default value of 0.5 is used, which effectively reproduces the\nstandard velocity-Verlet (VV) scheme. For more details, see\n**Groot2**.\n\nFix *mvv/dpd* updates the position and velocity of each atom. It can be\nused with the [pair_style mdpd ](https://docs.lammps.org/pair_mesodpd.html) command or other\npair styles such as [pair dpd ](https://docs.lammps.org/pair_dpd.html).\n\nFix *mvv/edpd* updates the per-atom temperature, in addition to position\nand velocity, and must be used with the [pair_style edpd](https://docs.lammps.org/pair_mesodpd.html) command.\n\nFix *mvv/tdpd* updates the per-atom chemical concentration, in addition\nto position and velocity, and must be used with the [pair_styletdpd ](https://docs.lammps.org/pair_mesodpd.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Groot2)** Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:\n10.1063/1.474784 \n ", - "restrictions": "These fixes are part of the DPD-MESO package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is incompatible with deformation controls that remap velocity,\nfor instance the *remap v* option of [fix deform ](https://docs.lammps.org/fix_deform.html).\n", - "related": "[pair_style mdpd ](https://docs.lammps.org/pair_mesodpd.html), [pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html),\n[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style harmonic\nimproper_coeff 1 100.0 0\n```\n", + "html_filename": "improper_harmonic.html", + "short_description": "The *harmonic* improper style uses the potential\n\\[\n E = K (\\chi - \\chi_0)^2\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its equilibrium\nvalue, and \\(K\\) is a prefactor", + "description": "The *harmonic* improper style uses the potential\n\\[\n E = K (\\chi - \\chi_0)^2\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its equilibrium\nvalue, and \\(K\\) is a prefactor. Note that the usual 1/2 factor is\nincluded in \\(K\\).\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\n\\(\\chi\\)\nis the angle between the plane of I,J,K and the plane of J,K,L.\nAlternatively, you can think of atoms J,K,L as being in a plane, and\natom I above the plane, and \\(\\chi\\) as a measure of how far out-of-plane\nI is with respect to the other 3 atoms.\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n\\(\\chi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "fix addforce" + "pair_style dsmc" ], "syntax": [ - "fix ID group-ID addforce fx fy fz keyword value ..." + "pair_style dsmc max_cell_size seed weighting Tref Nrecompute Nsample" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "dsmc", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "max_cell_size", "type": 2, "choices": [] }, { - "arg": "addforce", - "type": 1, + "arg": "seed", + "type": 2, "choices": [] }, { - "arg": "fx", + "arg": "weighting", "type": 2, "choices": [] }, { - "arg": "fy", + "arg": "Tref", "type": 2, "choices": [] }, { - "arg": "fz", + "arg": "Nrecompute", "type": 2, "choices": [] }, { - "arg": "energy", - "type": 3, - "choices": [ - "every", - "region", - "energy" - ] - }, - { - "arg": "value", + "arg": "Nsample", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* addforce = style name of this fix command\n* fx,fy,fz = force component values (force units) \n *        any of fx,fy,fz can be a variable (see below) \n* zero or more keyword/value pairs may be appended to args\n* keyword = every or region or energy \n *        every value = Nevery \n         Nevery = add force every this many time steps \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n *        energy value = v_name \n         v_name = variable with name that calculates the potential energy of each atom in the added force field \n", - "examples": "\n```lmps\nfix kick flow addforce 1.0 0.0 0.0\nfix kick flow addforce 1.0 0.0 v_oscillate\nfix ff boundary addforce 0.0 0.0 v_push energy v_espace\n```\n", - "html_filename": "fix_addforce.html", - "short_description": "Add \\((f_x,f_y,f_z)\\) to the corresponding component of the force for each\natom in the group", - "description": "Add \\((f_x,f_y,f_z)\\) to the corresponding component of the force for each\natom in the group. This command can be used to give an additional push to\natoms in a simulation, such as for a simulation of Poiseuille flow in\na channel.\n\nAny of the three quantities defining the force components, namely \\(f_x\\),\n\\(f_y\\), and \\(f_z\\), can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be specified\nas v_name, where name is the variable name. In this case, the variable\nwill be evaluated each time step, and its value(s) will be used to determine\nthe force component(s).\n\nEqual-style variables can specify formulas with various mathematical\nfunctions and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters, time step, and elapsed time.\nThus, it is easy to specify a time-dependent force field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus, it is easy to specify a spatially-dependent force\nfield with optional time-dependence as well.\n\nIf the *every* keyword is used, the *Nevery* setting determines how\noften the forces are applied. The default value is 1, for every\ntime step.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nAdding a force to atoms implies a change in their potential energy as\nthey move due to the applied force field. For dynamics via the \"run\"\ncommand, this energy can be optionally added to the system's potential\nenergy for thermodynamic output (see below). For energy minimization\nvia the \"minimize\" command, this energy must be added to the system's\npotential energy to formulate a self-consistent minimization problem\n(see below).\n\nThe *energy* keyword is not allowed if the added force is a constant\nvector \\(\\vec F = (f_x,f_y,f_z)\\), with all components defined as numeric\nconstants and not as variables. This is because LAMMPS can compute\nthe energy for each atom directly as\n\\[ E = -\\vec x \\cdot \\vec F = -(x f_x + y f_y + z f_z),\\]\nso that \\(-\\vec\\nabla E = \\vec F\\).\n\nThe *energy* keyword is optional if the added force is defined with\none or more variables, and if you are performing dynamics via the\n[run ](https://docs.lammps.org/run.html) command. If the keyword is not used, LAMMPS will set\nthe energy to 0.0, which is typically fine for dynamics.\n\nThe *energy* keyword is required if the added force is defined with\none or more variables, and you are performing energy minimization via\nthe \"minimize\" command. The keyword specifies the name of an\natom-style [variable ](https://docs.lammps.org/variable.html) which is used to compute the\nenergy of each atom as function of its position. Like variables used\nfor \\(f_x\\), \\(f_y\\), \\(f_z\\), the energy variable is specified as\nv_name, where name is the variable name.\n\nNote that when the *energy* keyword is used during an energy\nminimization, you must ensure that the formula defined for the\natom-style [variable ](https://docs.lammps.org/variable.html) is consistent with the force\nvariable formulas (i.e., that \\(-\\vec\\nabla E = \\vec F\\)).\nFor example, if the force were a spring-like, \\(\\vec F = -k\\vec x\\), then\nthe energy formula should be \\(E = \\frac12 kx^2\\). If you do not do this\ncorrectly, the minimization will not converge properly.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy inferred by the added force to\nthe global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). Note that this\nenergy is a fictitious quantity but is needed so that the\n[minimize ](https://docs.lammps.org/minimize.html) command can include the forces added by\nthis fix in a consistent manner (i.e., there is a decrease in\npotential energy when atoms move in the direction of the added force).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces on atoms to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar and a global three-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the potential energy discussed above.\nThe vector is the total force on the group of atoms before the forces\non individual atoms are changed by the fix. The scalar and vector\nvalues calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. You should not\nspecify force components with a variable that has time-dependence for\nuse with a minimizer, since the minimizer increments the time step as\nthe iteration count during the minimization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the fictitious potential energy associated with the\n > added forces to be included in the total potential energy of the\n > system (the quantity being minimized), you MUST enable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", - "restrictions": " none\n", - "related": "[fix setforce ](https://docs.lammps.org/fix_setforce.html), [fix aveforce ](https://docs.lammps.org/fix_aveforce.html)\n" + "parameters": "* max_cell_size = global maximum cell size for DSMC interactions (distance units)\n* seed = random # seed (positive integer)\n* weighting = macroparticle weighting\n* Tref = reference temperature (temperature units)\n* Nrecompute = re-compute v\\*sigma_max every this many timesteps (timesteps)\n* Nsample = sample this many times in recomputing v\\*sigma_max \n", + "examples": "\n```lmps\npair_style dsmc 2.5 34387 10 1.0 100 20\npair_coeff * * 1.0\npair_coeff 1 1 1.0\n```\n", + "html_filename": "pair_dsmc.html", + "short_description": "Style *dsmc* computes collisions between pairs of particles for a\ndirect simulation Monte Carlo (DSMC) model following the exposition in\n**Bird**", + "description": "Style *dsmc* computes collisions between pairs of particles for a\ndirect simulation Monte Carlo (DSMC) model following the exposition in\n**Bird**. Each collision resets the velocities of the two\nparticles involved. The number of pairwise collisions for each pair\nor particle types and the length scale within which they occur are\ndetermined by the parameters of the pair_style and pair_coeff\ncommands.\n\nStochastic collisions are performed using the variable hard sphere\n(VHS) approach, with the user-defined *max_cell_size* value used as\nthe maximum DSMC cell size, and reference cross-sections for\ncollisions given using the pair_coeff command.\n\nThere is no pairwise energy or virial contributions associated with\nthis pair style.\n\nThe following coefficient must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* sigma (area units, i.e. distance-squared)\n\nThe global DSMC *max_cell_size* determines the maximum cell length\nused in the DSMC calculation. A structured mesh is overlayed on the\nsimulation box such that an integer number of cells are created in\neach direction for each processor's subdomain. Cell lengths are\nadjusted up to the user-specified maximum cell size.\n\n----------\n\nTo perform a DSMC simulation with LAMMPS, several additional options\nshould be set in your input script, though LAMMPS does not check for\nthese settings.\n\nSince this pair style does not compute particle forces, you should use\nthe \"fix nve/noforce\" time integration fix for the DSMC particles,\ne.g.\n\n```lmps\nfix 1 all nve/noforce\n```\nThis pair style assumes that all particles will communicated to\nneighboring processors every timestep as they move. This makes it\npossible to perform all collisions between pairs of particles that are\non the same processor. To ensure this occurs, you should use\nthese commands:\n\n```lmps\nneighbor 0.0 bin\nneigh_modify every 1 delay 0 check no\natom_modify sort 0 0.0\ncommunicate single cutoff 0.0\n```\nThese commands ensure that LAMMPS communicates particles to\nneighboring processors every timestep and that no ghost atoms are\ncreated. The output statistics for a simulation run should indicate\nthere are no ghost particles or neighbors.\n\nIn order to get correct DSMC collision statistics, users should\nspecify a Gaussian velocity distribution when populating the\nsimulation domain. Note that the default velocity distribution is\nuniform, which will not give good DSMC collision rates. Specify\n\"dist gaussian\" when using the [velocity ](https://docs.lammps.org/velocity.html) command\nas in the following:\n\n```lmps\nvelocity all create 594.6 87287 loop geom dist gaussian\n```\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file. Note\nthat the user-specified random number seed is stored in the restart\nfile, so when a simulation is restarted, each processor will\nre-initialize its random number generator the same way it did\ninitially. This means the random forces will be random, but will not\nbe the same as they would have been if the original simulation had\ncontinued past the restart time.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bird)** G. A. Bird, \"Molecular Gas Dynamics and the Direct Simulation\nof Gas Flows\" (1994). \n ", + "restrictions": "This pair style is part of the MC package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per\natom type masses.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html),\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" }, { "command": [ - "fix rheo/viscosity" + "pair_style pedone", + "pair_style pedone/omp" ], "syntax": [ - "fix ID group-ID rheo/viscosity type1 pstyle1 args1 ... typeN pstyleN argsN" + "pair_style style args" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "rheo/viscosity", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "type1", - "type": 2, - "choices": [] - }, - { - "arg": "pstyle1", - "type": 2, - "choices": [] - }, - { - "arg": "args1", - "type": 2, - "choices": [] - }, - { - "arg": "typeN", - "type": 2, - "choices": [] - }, - { - "arg": "pstyleN", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "argsN", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rheo/viscosity = style name of this fix command\n* one or more types and viscosity styles must be appended\n* types = lists of types (see below)\n* vstyle = constant or power \n *        constant args = eta \n         eta = viscosity \n *        power args = eta, gd0, K, n \n         eta = viscosity \n         gd0 = critical strain rate \n         K = consistency index \n         n = power-law exponent \n", - "examples": "\n```lmps\nfix 1 all rheo/viscosity * constant 1.0\nfix 1 all rheo/viscosity 1 constant 1.0 2 power 0.1 5e-4 0.001 0.5\n```\n", - "html_filename": "fix_rheo_viscosity.html", - "short_description": "\nThis fix defines a viscosity for RHEO particles", - "description": "\nThis fix defines a viscosity for RHEO particles. One can define different\nviscosities for different atom types, but a viscosity must be specified for\nevery atom type.\n\nOne first defines the atom *types*. A wild-card asterisk can be used in place\nof or in conjunction with the *types* argument to set the coefficients for\nmultiple pairs of atom types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\"\nor \"m\\*n\". If \\(N\\) is the number of atom types, then an asterisk with\nno numeric values means all types from 1 to \\(N\\). A leading asterisk\nmeans all types from 1 to n (inclusive). A trailing asterisk means all types\nfrom m to \\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe *types* definition is followed by the viscosity style, *vstyle*. Two\noptions are available, *constant* and *power*. Style *constant* simply\napplies a constant value of the viscosity *eta* to each particle of the\nassigned type. Style *power* is a Hershchel-Bulkley constitutive equation\nfor the stress \\(\\tau\\)\n\\[\n \\tau = \\left(\\frac{\\tau_0}{\\dot{\\gamma}} + K \\dot{\\gamma}^{n - 1}\\right) \\dot{\\gamma}, \\tau \\ge \\tau_0\\]\nwhere \\(\\dot{\\gamma}\\) is the strain rate and \\(\\tau_0\\) is the critical\nyield stress, below which \\(\\dot{\\gamma} = 0.0\\). To avoid divergences, this\nexpression is regularized by defining a critical strain rate *gd0*. If the local\nstrain rate on a particle falls below this limit, a constant viscosity of *eta*\nis assigned. This implies a value of\n\\[ \\tau_0 = \\eta \\dot{\\gamma}_0 - K \\dot{\\gamma}_0^N\\]\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix must be used with an atom style that includes viscosity\nsuch as atom_style rheo or rheo/thermal. This fix must be used in\nconjunction with [fix rheo ](https://docs.lammps.org/fix_rheo.html). The fix group must be\nset to all. Only one instance of fix rheo/viscosity can be defined.\n\nThis fix is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[pair rheo ](https://docs.lammps.org/pair_rheo.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html)\n" + "parameters": "* style = pedone*\n* args = list of arguments for a particular style \n *     *pedone* args = cutoff \n      cutoff = global cutoff for Pedone interactions (distance units) \n", + "examples": "\n```lmps\n.. code-block:: LAMMPS\n```\npair_style hybrid/overlay pedone 15.0 coul/long 15.0\nkspace_style pppm 1.0e-5\n\npair_coeff * * coul/long\npair_coeff 1 2 pedone 0.030211 2.241334 2.923245 5.0\npair_coeff 2 2 pedone 0.042395 1.379316 3.618701 22.0\n\nUsed in input scripts:\n\n```\nexamples/PACKAGES/pedone/in.pedone.relax\nexamples/PACKAGES/pedone/in.pedone.melt\n```\n", + "html_filename": "pair_pedone.html", + "short_description": "\nPair style *pedone* computes the **non-Coulomb** interactions of the Pedone\n(or PMMCS) potential **Pedone** which combines Coulomb\ninteractions, Morse potential, and repulsive \\(r^{-12}\\)\nLennard-Jones terms (see below)", + "description": "\nPair style *pedone* computes the **non-Coulomb** interactions of the Pedone\n(or PMMCS) potential **Pedone** which combines Coulomb\ninteractions, Morse potential, and repulsive \\(r^{-12}\\)\nLennard-Jones terms (see below). The *pedone* pair style is meant\nto be used in addition to a [Coulomb pair style ](https://docs.lammps.org/pair_coul.html) via\npair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) (see example above).\nUsing *coul/long* or *could/dsf* (for solids) is recommended.\n\nThe full Pedone potential function from **Pedone** for each\npair of atoms is:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r}\n + D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n + \\frac{B_0}{r^{12}} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and \\(C\\) is a conversion factor that is\nspecific to the choice of [units ](https://docs.lammps.org/units.html) so that the entire\nCoulomb term is in energy units with \\(q_i\\) and \\(q_j\\) as the\nassigned charges in multiples of the elementary charge.\n\nThe following coefficients must be defined for the selected pairs of\natom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexample above:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(C_0\\) (energy units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global *pedone*\ncutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing.\n\nThis pair style support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands does not need to be specified in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, or *outer* keywords.\n\n----------\n\n**(Pedone)** A. Pedone, G. Malavasi, M. C. Menziani, A. N. Cormack, and U. Segre, J. Phys. Chem. B, 110, 11780 (2006) \n ", + "restrictions": "The *pedone* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style ](https://docs.lammps.org/pair_style.html),\n[pair style coul/long and coul/dsf ](https://docs.lammps.org/pair_coul.html),\n[pair style morse ](https://docs.lammps.org/pair_morse.html)\n" }, { "command": [ - "compute chunk/atom" + "fix smd/wall_surface" ], "syntax": [ - "compute ID group-ID chunk/atom style args keyword values ..." + "fix ID group-ID smd/wall_surface arg type mol-ID" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -25521,113 +24408,109 @@ export const command_docs = [ "choices": [] }, { - "arg": "chunk/atom", + "arg": "smd/wall_surface", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "arg", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "type", "type": 2, "choices": [] }, { - "arg": "units", - "type": 3, - "choices": [ - "region", - "nchunk", - "limit", - "ids", - "compress", - "discard", - "bound", - "pbc", - "units" - ] - }, - { - "arg": "values", + "arg": "mol-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* chunk/atom = style name of this compute command \n *      style = bin/1d or bin/2d or bin/3d or bin/sphere or bin/cylinder or type or molecule or c_ID, c_ID[I], f_ID, f_ID[I], v_name \n       bin/1d args = dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/2d args = dim origin delta dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/3d args = dim origin delta dim origin delta dim origin delta \n       dim = x or y or z \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       bin/sphere args = xorig yorig zorig rmin rmax nsbin \n       xorig,yorig,zorig = center point of sphere \n       srmin,srmax = bin from sphere radius rmin to rmax \n       nsbin = # of spherical shell bins between rmin and rmax \n       bin/cylinder args = dim origin delta c1 c2 rmin rmax ncbin \n       dim = x or y or z = axis of cylinder axis \n       origin = lower or center or upper or coordinate value (distance units) \n       delta = thickness of spatial bins in dim (distance units) \n       c1,c2 = coords of cylinder axis in other 2 dimensions (distance units) \n       crmin,crmax = bin from cylinder radius rmin to rmax (distance units) \n       ncbin = # of concentric circle bins between rmin and rmax \n       type args = none \n       molecule args = none \n       c_ID, c_ID[I], f_ID, f_ID[I], v_name args = none \n       c_ID = per-atom vector calculated by a compute with ID \n       c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n       f_ID = per-atom vector calculated by a fix with ID \n       f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n       v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/values pairs may be appended\n* keyword = region or nchunk or limit or ids or compress or discard or bound or pbc or units \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to be part of a chunk \n *        nchunk value = once or every \n         once = only compute the number of chunks once \n         every = re-compute the number of chunks whenever invoked \n *        limit values = 0 or Nc max or Nc exact \n         0 = no limit on the number of chunks \n         Nc max = limit number of chunks to be <= Nc \n         Nc exact = set number of chunks to exactly Nc \n *        ids value = once or nfreq or every \n         once = assign chunk IDs to atoms only once, they persist thereafter \n         nfreq = assign chunk IDs to atoms only once every Nfreq steps (if invoked by [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) which sets Nfreq) \n         every = assign chunk IDs to atoms whenever invoked \n *        compress value = yes or no \n         yes = compress chunk IDs to eliminate IDs with no atoms \n         no = do not compress chunk IDs even if some IDs have no atoms \n *        discard value = yes or no or mixed \n         yes = discard atoms with out-of-range chunk IDs by assigning a chunk ID = 0 \n         no = keep atoms with out-of-range chunk IDs by assigning a valid chunk ID \n         mixed = keep or discard such atoms according to spatial binning rule \n *        bound values = x/y/z lo hi \n         x/y/z = x or y or z to bound spatial bins in this dimension \n         lo = lower or coordinate value (distance units) \n         hi = upper or coordinate value (distance units) \n *        pbc value = no or yes \n         yes = use periodic distance for bin/sphere and bin/cylinder styles \n *        units value = box or lattice or reduced \n", - "examples": "\n```lmps\ncompute 1 all chunk/atom type\ncompute 1 all chunk/atom bin/1d z lower 0.02 units reduced\ncompute 1 all chunk/atom bin/2d z lower 1.0 y 0.0 2.5\ncompute 1 all chunk/atom molecule region sphere nchunk once ids once compress yes\ncompute 1 all chunk/atom bin/sphere 5 5 5 2.0 5.0 5 discard yes\ncompute 1 all chunk/atom bin/cylinder z lower 2 10 10 2.0 5.0 3 discard yes\ncompute 1 all chunk/atom c_cluster\n```\n", - "html_filename": "compute_chunk_atom.html", - "short_description": "Define a computation that calculates an integer chunk ID from 1 to\nNchunk for each atom in the group", - "description": "Define a computation that calculates an integer chunk ID from 1 to\nNchunk for each atom in the group. Values of chunk IDs are determined\nby the *style* of chunk, which can be based on atom type or molecule\nID or spatial binning or a per-atom property or value calculated by\nanother [compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or [atom-style variable ](https://docs.lammps.org/variable.html). Per-atom chunk IDs can be used by other\ncomputes with \"chunk\" in their style name, such as [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) or [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html). Or they can be used by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to sum and time average a\nvariety of per-atom properties over the atoms in each chunk. Or they\ncan simply be accessed by any command that uses per-atom values from a\ncompute as input, as discussed on the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page.\n\nSee the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) page for an overview of how\nthis compute can be used with a variety of other commands to tabulate\nproperties of a simulation. The page gives several examples of input\nscript commands that can be used to calculate interesting properties.\n\nConceptually it is important to realize that this compute does two\nsimple things. First, it sets the value of *Nchunk* = the number of\nchunks, which can be a constant value or change over time. Second, it\nassigns each atom to a chunk via a chunk ID. Chunk IDs range from 1\nto *Nchunk* inclusive; some chunks may have no atoms assigned to them.\nAtoms that do not belong to any chunk are assigned a value of 0. Note\nthat the two operations are not always performed together. For\nexample, spatial bins can be setup once (which sets *Nchunk* ), and\natoms assigned to those bins many times thereafter (setting their\nchunk IDs).\n\nAll other commands in LAMMPS that use chunk IDs assume there are\n*Nchunk* number of chunks, and that every atom is assigned to one of\nthose chunks, or not assigned to any chunk.\n\nThere are many options for specifying for how and when *Nchunk* is\ncalculated, and how and when chunk IDs are assigned to atoms. The\ndetails depend on the chunk *style* and its *args*, as well as\noptional keyword settings. They can also depend on whether a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command is using this compute, since\nthat command requires *Nchunk* to remain static across windows of\ntimesteps it specifies, while it accumulates per-chunk averages.\n\nThe details are described below.\n\n----------\n\nThe different chunk styles operate as follows. For each style, how it\ncalculates *Nchunk* and assigns chunk IDs to atoms is explained. Note\nthat using the optional keywords can change both of those actions, as\ndescribed further below where the keywords are discussed.\n\n----------\n\nThe *binning* styles perform a spatial binning of atoms, and assign an\natom the chunk ID corresponding to the bin number it is in. *Nchunk*\nis set to the number of bins, which can change if the simulation box\nsize changes. This also depends on the setting of the *units*\nkeyword (e.g., for *reduced* units the number of chunks may not change\neven if the box size does).\n\nThe *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers\n(slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta*\nsettings are specified 1, 2, or 3 times. For 2d or 3d bins, there is\nno restriction on specifying dim = *x* before dim = *y* or *z*, or dim = *y*\nbefore dim = *z*. Bins in a particular *dim* have a bin size in that\ndimension given by *delta* . In each dimension, bins are defined\nrelative to a specified *origin*, which may be the lower/upper edge of\nthe simulation box (in that dimension), or its center point, or a\nspecified coordinate value. Starting at the origin, sufficient bins\nare created in both directions to completely span the simulation box\nor the bounds specified by the optional *bounds* keyword.\n\nFor orthogonal simulation boxes, the bins are layers, pencils, or\nboxes aligned with the xyz coordinate axes. For triclinic\n(non-orthogonal) simulation boxes, the bin faces are parallel to the\ntilted faces of the simulation box. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a discussion of the\ngeometry of triclinic boxes in LAMMPS. As described there, a tilted\nsimulation box has edge vectors \\(\\vec a\\), \\(\\vec b\\), and\n\\(\\vec c\\). In that nomenclature, bins in\nthe *x* dimension have faces with normals in the \\(\\vec b \\times \\vec c\\)\ndirection, bins in *y* have faces normal to the \\(\\vec a \\times \\vec c\\)\ndirection, and bins in *z* have faces normal to the \\(\\vec a \\times \\vec b\\)\ndirection. Note that in order to define the size and position of\nthese bins in an unambiguous fashion, the *units* option must be set\nto *reduced* when using a triclinic simulation box, as noted below.\n\nThe meaning of *origin* and *delta* for triclinic boxes is as follows.\nConsider a triclinic box with bins that are 1d layers or slabs in the\nx dimension. No matter how the box is tilted, an *origin* of 0.0\nmeans start layers at the lower \\(\\vec b \\times \\vec c\\) plane of the\nsimulation box and an *origin* of 1.0 means to start layers at the upper\n\\(\\vec b \\times \\vec c\\) face of the box. A *delta* value of 0.1 in\n*reduced* units means there will be 10 layers from 0.0 to 1.0, regardless of\nthe current size or shape of the simulation box.\n\nThe *bin/sphere* style defines a set of spherical shell bins around\nthe origin (\\ *xorig*,\\ *yorig*,\\ *zorig* ), using *nsbin* bins with radii\nequally spaced between *srmin* and *srmax* . This is effectively a 1d\nvector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and\n*nsbin* = 9, then the first bin spans \\(1.0 < r < 2.0\\), and the last bin\nspans \\(9.0 < r < 10.0\\). The geometry of the bins is the same whether the\nsimulation box is orthogonal or triclinic (i.e., the spherical shells\nare not tilted or scaled differently in different dimensions to\ntransform them into ellipsoidal shells).\n\nThe *bin/cylinder* style defines bins for a cylinder oriented along\nthe axis *dim* with the axis coordinates in the other two radial\ndimensions at (\\ *c1*,\\ *c2* ). For dim = *x*, \\(c_1/c_2 = y/z\\);\nfor dim = *y*, \\(c_1/c_2 = x/z\\); for dim = *z*,\n\\(c_1/c_2 = x/y\\). This is effectively a 2d array of bins. The first\ndimension is along the cylinder axis, the second dimension is radially outward\nfrom the cylinder axis. The bin size and positions along the cylinder axis are\nspecified by the *origin* and *delta* values, the same as for the *bin/1d*,\n*bin/2d*, and *bin/3d* styles. There are *ncbin* concentric circle bins in the\nradial direction from the cylinder axis with radii equally spaced\nbetween *crmin* and *crmax* . For example, if *crmin* = 1.0 and\n*crmax* = 10.0 and *ncbin* = 9, then the first bin spans \\(1.0 < r < 2.0\\)\nand the last bin spans \\(9.0 < r < 10.0\\). The geometry of the bins in\nthe radial dimensions is the same whether the simulation box is\northogonal or triclinic (i.e., the concentric circles are not tilted or\nscaled differently in the two different dimensions to transform them\ninto ellipses).\n\nThe created bins (and hence the chunk IDs) are numbered consecutively\nfrom 1 to the number of bins = *Nchunk* . For *bin2d* and *bin3d*, the\nnumbering varies most rapidly in the first dimension (which could be\n*x*, *y*, or *z*), next rapidly in the second dimension, and most slowly in the\nthird dimension. For *bin/sphere*, the bin with smallest radii is chunk\n1 and the bin with largest radii is chunk Nchunk = *ncbin* . For\n*bin/cylinder*, the numbering varies most rapidly in the dimension\nalong the cylinder axis and most slowly in the radial direction.\n\nEach time this compute is invoked, each atom is mapped to a bin based\non its current position. Note that between reneighboring timesteps,\natoms can move outside the current simulation box. If the box is\nperiodic (in that dimension) the atom is remapping into the periodic\nbox for purposes of binning. If the box in not periodic, the atom may\nhave moved outside the bounds of all bins. If an atom is not inside\nany bin, the *discard* keyword is used to determine how a chunk ID is\nassigned to the atom.\n\n----------\n\nThe *type* style uses the atom type as the chunk ID. *Nchunk* is set\nto the number of atom types defined for the simulation (e.g., via the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands).\n\n----------\n\nThe *molecule* style uses the molecule ID of each atom as its chunk\nID. *Nchunk* is set to the largest chunk ID. Note that this excludes\nmolecule IDs for atoms which are not in the specified group or\noptional region.\n\nThere is no requirement that all atoms in a particular molecule are\nassigned the same chunk ID (zero or non-zero), though you probably\nwant that to be the case, if you wish to compute a per-molecule\nproperty. LAMMPS will issue a warning if that is not the case, but\nonly the first time that *Nchunk* is calculated.\n\nNote that atoms with a molecule ID = 0, which may be non-molecular\nsolvent atoms, have an out-of-range chunk ID. These atoms are\ndiscarded (not assigned to any chunk) or assigned to *Nchunk*,\ndepending on the value of the *discard* keyword.\n\n----------\n\nThe *compute/fix/variable* styles set the chunk ID of each atom based\non a quantity calculated and stored by a compute, fix, or variable.\nIn each case, it must be a per-atom quantity. In each case the\nreferenced floating point values are converted to an integer chunk ID\nas follows. The floating point value is truncated (rounded down) to\nan integer value. If the integer value is \\(\\le 0\\), then a chunk ID of 0\nis assigned to the atom. If the integer value is \\(> 0\\), it becomes the\nchunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note\nthat this excludes atoms which are not in the specified group or\noptional region.\n\nIf the style begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the compute is used. Users can also write code for\ntheir own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf the style begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. If no bracketed integer is\nappended, the per-atom vector calculated by the fix is used. If a\nbracketed integer is appended, the Ith column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce\ntheir values on certain timesteps, which must be compatible with the\ntimestep on which this compute accesses the fix, else an error\nresults. Users can also write code for their own fix styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf a value begins with \"v\\_\", a variable name for an *atom* or\n*atomfile* style [variable ](https://docs.lammps.org/variable.html) must follow which has been\npreviously defined in the input script. Variables of style *atom* can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to\ntreat as a chunk ID.\n\n----------\n\nNormally, *Nchunk* = the number of chunks, is re-calculated every time\nthis fix is invoked, though the value may or may not change. As\nexplained below, the *nchunk* keyword can be set to *once* which means\n*Nchunk* will never change.\n\nIf a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command uses this compute, it\ncan also turn off the re-calculation of *Nchunk* for one or more\nwindows of timesteps. The extent of the windows, during which Nchunk\nis held constant, are determined by the *Nevery*, *Nrepeat*, *Nfreq*\nvalues and the *ave* keyword setting that are used by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command.\n\nSpecifically, if *ave* = *one*, then for each span of *Nfreq*\ntimesteps, *Nchunk* is held constant between the first timestep when\naveraging is done (within the Nfreq-length window), and the last\ntimestep when averaging is done (multiple of Nfreq). If *ave* =\n*running* or *window*, then *Nchunk* is held constant forever,\nstarting on the first timestep when the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command invokes this compute.\n\nNote that multiple [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) commands can use\nthe same compute chunk/atom compute. However, the time windows they\ninduce for holding *Nchunk* constant must be identical, else an error\nwill be generated.\n\n----------\n\nThe various optional keywords operate as follows. Note that some of\nthem function differently or are ignored by different chunk styles.\nSome of them also have different default values, depending on\nthe chunk style, as listed below.\n\nThe *region* keyword applies to all chunk styles. If used, an atom\nmust be in both the specified group and the specified geometric\n[region ](https://docs.lammps.org/region.html) to be assigned to a chunk.\n\n----------\n\nThe *nchunk* keyword applies to all chunk styles. It specifies how\noften *Nchunk* is recalculated, which in turn can affect the chunk IDs\nassigned to individual atoms.\n\nIf *nchunk* is set to *once*, then *Nchunk* is only calculated once,\nthe first time this compute is invoked. If *nchunk* is set to\n*every*, then *Nchunk* is re-calculated every time the compute is\ninvoked. Note that, as described above, the use of this compute\nby the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command can override\nthe *every* setting.\n\nThe default values for *nchunk* are listed below and depend on the\nchunk style and other system and keyword settings. They attempt to\nrepresent typical use cases for the various chunk styles. The\n*nchunk* value can always be set explicitly if desired.\n\n----------\n\nThe *limit* keyword can be used to limit the calculated value of\n*Nchunk* = the number of chunks. The limit is applied each time\n*Nchunk* is calculated, which also limits the chunk IDs assigned to\nany atom. The *limit* keyword is used by all chunk styles except the\n*binning* styles, which ignore it. This is because the number of bins\ncan be tailored using the *bound* keyword (described below) which\neffectively limits the size of *Nchunk* .\n\nIf *limit* is set to *Nc* = 0, then no limit is imposed on *Nchunk*,\nthough the *compress* keyword can still be used to reduce *Nchunk*, as\ndescribed below.\n\nIf *Nc* \\(>\\) 0, then the effect of the *limit* keyword depends on whether\nthe *compress* keyword is also used with a setting of *yes*, and\nwhether the *compress* keyword is specified before the *limit* keyword\nor after.\n\nIn all cases, *Nchunk* is first calculated in the usual way for each\nchunk style, as described above.\n\nFirst, here is what occurs if *compress yes* is not set. If *limit*\nis set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk*\nand *Nc* . If *limit* is set to *Nc exact*, then *Nchunk* is reset to\n*Nc*, whether the original *Nchunk* was larger or smaller than *Nc* .\nIf *Nchunk* shrank due to the *limit* setting, then atom chunk IDs \\(>\\)\n*Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of\nthe *discard* keyword. If *Nchunk* grew, there will simply be some\nchunks with no atoms assigned to them.\n\nIf *compress yes* is set, and the *compress* keyword comes before the\n*limit* keyword, the compression operation is performed first, as\ndescribed below, which resets *Nchunk* . The *limit* keyword is then\napplied to the new *Nchunk* value, exactly as described in the\npreceding paragraph. Note that in this case, all atoms will end up\nwith chunk IDs \\(\\le\\) *Nc*, but their original values (e.g., molecule ID\nor compute/fix/variable) may have been \\(>\\) *Nc*, because of the\ncompression operation.\n\nIf *compress yes* is set, and the *compress* keyword comes after the\n*limit* keyword, then the *limit* value of *Nc* is applied first to\nthe uncompressed value of *Nchunk*, but only if *Nc* \\(<\\) *Nchunk*\n(whether *Nc max* or *Nc exact* is used). This effectively means all\natoms with chunk IDs \\(>\\) *Nc* have their chunk IDs reset to 0 or *Nc*,\ndepending on the setting of the *discard* keyword. The compression\noperation is then performed, which may shrink *Nchunk* further. If\nthe new *Nchunk* \\(<\\) *Nc* and *limit* = *Nc exact* is specified, then\n*Nchunk* is reset to *Nc*, which results in extra chunks with no atoms\nassigned to them. Note that in this case, all atoms will end up with\nchunk IDs \\(\\le\\) *Nc*, and their original values (e.g., molecule ID or\ncompute/fix/variable value) will also have been \\(\\le\\) *Nc* .\n\n----------\n\nThe *ids* keyword applies to all chunk styles. If the setting is\n*once* then the chunk IDs assigned to atoms the first time this\ncompute is invoked will be permanent, and never be re-computed.\n\nIf the setting is *nfreq* and if a [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\ncommand is using this compute, then in each of the *Nchunk* = constant\ntime windows (discussed above), the chunk ID's assigned to atoms on\nthe first step of the time window will persist until the end of the\ntime window.\n\nIf the setting is *every*, which is the default, then chunk IDs are\nre-calculated on any timestep this compute is invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the persistent chunk-IDs calculated by this compute\n > to be continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html),\n > then you should use the same ID for this compute, as in the original\n > run. This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with chunk IDs from the restart file. \n > \n\n----------\n\nThe *compress* keyword applies to all chunk styles and affects how\n*Nchunk* is calculated, which in turn affects the chunk IDs assigned\nto each atom. It is useful for converting a \"sparse\" set of chunk IDs\n(with many IDs that have no atoms assigned to them), into a \"dense\"\nset of IDs, where every chunk has one or more atoms assigned to it.\n\nTwo possible use cases are as follows. If a large simulation box is\nmostly empty space, then the *binning* style may produce many bins\nwith no atoms. If *compress* is set to *yes*, only bins with atoms\nwill be contribute to *Nchunk* . Likewise, the *molecule* or\n*compute/fix/variable* styles may produce large *Nchunk* values. For\nexample, the [compute cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html) command\nassigns every atom an atom ID for one of the atoms it is clustered\nwith. For a million-atom system with 5 clusters, there would only be\n5 unique chunk IDs, but the largest chunk ID might be 1 million,\nresulting in *Nchunk* = 1 million. If *compress* is set to *yes*,\n*Nchunk* will be reset to 5.\n\nIf *compress* is set to *no*, which is the default, no compression is\ndone. If it is set to *yes*, all chunk IDs with no atoms are removed\nfrom the list of chunk IDs, and the list is sorted. The remaining\nchunk IDs are renumbered from 1 to *Nchunk* where *Nchunk* is the new\nlength of the list. The chunk IDs assigned to each atom reflect\nthe new renumbering from 1 to *Nchunk* .\n\nThe original chunk IDs (before renumbering) can be accessed by the\n[compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command and its\n*id* keyword, or by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command\nwhich outputs the original IDs as one of the columns in its global\noutput array. For example, using the \"compute cluster/atom\" command\ndiscussed above, the original 5 unique chunk IDs might be atom IDs\n(27,4982,58374,857838,1000000). After compression, these will be\nrenumbered to (1,2,3,4,5). The original values (27,...,1000000) can\nbe output to a file by the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command,\nor by using the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command in\nconjunction with the [compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The compression operation requires global communication across\n > all processors to share their chunk ID values. It can require large\n > memory on every processor to store them, even after they are\n > compressed, if there are a large number of unique chunk IDs with\n > atoms assigned to them. It uses a STL map to find unique chunk IDs\n > and store them in sorted order. Each time an atom is assigned a\n > compressed chunk ID, it must access the STL map. All of this means\n > that compression can be expensive, both in memory and CPU time. The\n > use of the *limit* keyword in conjunction with the *compress* keyword\n > can affect these costs, depending on which keyword is used first. So\n > use this option with care. \n > \n\n----------\n\nThe *discard* keyword applies to all chunk styles. It affects what\nchunk IDs are assigned to atoms that do not match one of the valid\nchunk IDs from 1 to *Nchunk* . Note that it does not apply to atoms\nthat are not in the specified group or optionally specified region.\nThose atoms are always assigned a chunk ID = 0.\n\nIf the calculated chunk ID for an atom is not within the range 1 to\n*Nchunk* then it is a \"discard\" atom. Note that *Nchunk* may have\nbeen shrunk by the *limit* keyword. Or the *compress* keyword may\nhave eliminated chunk IDs that were valid before the compression took\nplace, and are now not in the compressed list. Also note that for the\n*molecule* chunk style, if new molecules are added to the system,\ntheir chunk IDs may exceed a previously calculated *Nchunk* .\nLikewise, evaluation of a compute/fix/variable on a later timestep may\nreturn chunk IDs that are invalid for the previously calculated\n*Nchunk* .\n\nAll the chunk styles except the *binning* styles, must use *discard*\nset to either *yes* or *no* . If *discard* is set to *yes*, which is\nthe default, then every \"discard\" atom has its chunk ID set to 0. If\n*discard* is set to *no*, every \"discard\" atom has its chunk ID set to\n*Nchunk* . I.e. it becomes part of the last chunk.\n\nThe *binning* styles use the *discard* keyword to decide whether to\ndiscard atoms outside the spatial domain covered by bins, or to assign\nthem to the bin they are nearest to.\n\nFor the *bin/1d*, *bin/2d*, *bin/3d* styles the details are as\nfollows. If *discard* is set to *yes*, an out-of-domain atom will\nhave its chunk ID set to 0. If *discard* is set to *no*, the atom\nwill have its chunk ID set to the first or last bin in that dimension.\nIf *discard* is set to *mixed*, which is the default, it will only\nhave its chunk ID set to the first or last bin if bins extend to the\nsimulation box boundary in that dimension. This is the case if the\n*bound* keyword settings are *lower* and *upper*, which is the\ndefault. If the *bound* keyword settings are numeric values, then the\natom will have its chunk ID set to 0 if it is outside the bounds of\nany bin. Note that in this case, it is possible that the first or\nlast bin extends beyond the numeric *bounds* settings, depending on\nthe specified *origin* . If this is the case, the chunk ID of the atom\nis only set to 0 if it is outside the first or last bin, not if it is\nsimply outside the numeric *bounds* setting.\n\nFor the *bin/sphere* style the details are as follows. If *discard*\nis set to *yes*, an out-of-domain atom will have its chunk ID set to\n0. If *discard* is set to *no* or *mixed*, the atom will have its\nchunk ID set to the first or last bin, i.e. the innermost or outermost\nspherical shell. If the distance of the atom from the origin is less\nthan *rmin*, it will be assigned to the first bin. If the distance of\nthe atom from the origin is greater than *rmax*, it will be assigned\nto the last bin.\n\nFor the *bin/cylinder* style the details are as follows. If *discard*\nis set to *yes*, an out-of-domain atom will have its chunk ID set to\n0. If *discard* is set to *no*, the atom will have its chunk ID set\nto the first or last bin in both the radial and axis dimensions. If\n*discard* is set to *mixed*, which is the default, the radial\ndimension is treated the same as for *discard* = no. But for the axis\ndimension, it will only have its chunk ID set to the first or last\nbin if bins extend to the simulation box boundary in the axis\ndimension. This is the case if the *bound* keyword settings are\n*lower* and *upper*, which is the default. If the *bound* keyword\nsettings are numeric values, then the atom will have its chunk ID set\nto 0 if it is outside the bounds of any bin. Note that in this case,\nit is possible that the first or last bin extends beyond the numeric\n*bounds* settings, depending on the specified *origin* . If this is\nthe case, the chunk ID of the atom is only set to 0 if it is outside\nthe first or last bin, not if it is simply outside the numeric\n*bounds* setting.\n\nIf *discard* is set to *no* or *mixed*, the atom will have its\nchunk ID set to the first or last bin, i.e. the innermost or outermost\nspherical shell. If the distance of the atom from the origin is less\nthan *rmin*, it will be assigned to the first bin. If the distance of\nthe atom from the origin is greater than *rmax*, it will be assigned\nto the last bin.\n\n----------\n\nThe *bound* keyword only applies to the *bin/1d*, *bin/2d*, *bin/3d*\nstyles and to the axis dimension of the *bin/cylinder* style;\notherwise it is ignored. It can be used one or more times to limit\nthe extent of bin coverage in a specified dimension, i.e. to only bin\na portion of the box. If the *lo* setting is *lower* or the *hi*\nsetting is *upper*, the bin extent in that direction extends to the\nbox boundary. If a numeric value is used for *lo* and/or *hi*, then\nthe bin extent in the *lo* or *hi* direction extends only to that\nvalue, which is assumed to be inside (or at least near) the simulation\nbox boundaries, though LAMMPS does not check for this. Note that\nusing the *bound* keyword typically reduces the total number of bins\nand thus the number of chunks *Nchunk* .\n\nThe *pbc* keyword only applies to the *bin/sphere* and *bin/cylinder*\nstyles. If set to *yes*, the distance an atom is from the sphere\norigin or cylinder axis is calculated in a minimum image sense with\nrespect to periodic dimensions, when determining which bin the atom is\nin. I.e. if x is a periodic dimension and the distance between the\natom and the sphere center in the x dimension is greater than 0.5 \\*\nsimulation box length in x, then a box length is subtracted to give a\ndistance < 0.5 \\* simulation box length. This allosws the sphere or\ncylinder center to be near a box edge, and atoms on the other side of\nthe periodic box will still be close to the center point/axis. Note\nthat with a setting of *yes*, the outer sphere or cylinder radius must\nalso be <= 0.5 \\* simulation box length in any periodic dimension\nexcept for the cylinder axis dimension, or an error is generated.\n\nThe *units* keyword only applies to the *binning* styles; otherwise it\nis ignored. For the *bin/1d*, *bin/2d*, *bin/3d* styles, it\ndetermines the meaning of the distance units used for the bin sizes\n*delta* and for *origin* and *bounds* values if they are coordinate\nvalues. For the *bin/sphere* style it determines the meaning of the\ndistance units used for *xorig*,\\ *yorig*,\\ *zorig* and the radii *srmin*\nand *srmax* . For the *bin/cylinder* style it determines the meaning\nof the distance units used for *delta*,\\ *c1*,\\ *c2* and the radii *crmin*\nand *crmax* .\n\nFor orthogonal simulation boxes, any of the 3 options may\nbe used. For non-orthogonal (triclinic) simulation boxes, only the\n*reduced* option may be used.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\) for units = *real* or *metal*).\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacing. A *reduced* value means normalized\nunitless values between 0 and 1, which represent the lower and upper\nfaces of the simulation box respectively. Thus an *origin* value of\n0.5 means the center of the box in any dimension. A *delta* value of\n0.1 means 10 bins span the box in that dimension.\n\nNote that for the *bin/sphere* style, the radii *srmin* and *srmax* are\nscaled by the lattice spacing or reduced value of the *x* dimension.\n\nNote that for the *bin/cylinder* style, the radii *crmin* and *crmax*\nare scaled by the lattice spacing or reduced value of the first\ndimension perpendicular to the cylinder axis (e.g., *y* for an *x*-axis\ncylinder, *x* for a *y*-axis cylinder, and *x* for a *z*-axis cylinder).\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom vector (the chunk ID), which can\nbe accessed by any command that uses per-atom values from a compute\nas input. It also calculates a global scalar (the number of chunks),\nwhich can be similarly accessed everywhere outside of a per-atom context.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values are unitless chunk IDs, ranging from 1 to\n*Nchunk* (inclusive) for atoms assigned to chunks, and 0 for atoms not\nbelonging to a chunk. The scalar contains the value of *Nchunk*.\n", - "restrictions": "Even if the *nchunk* keyword is set to *once*, the chunk IDs assigned\nto each atom are not stored in a restart files. This means you cannot\nexpect those assignments to persist in a restarted simulation.\nInstead you must re-specify this command and assign atoms to chunks when\nthe restarted simulation begins.\n", - "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html),\n[compute global/atom ](https://docs.lammps.org/compute_global_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/wall_surface = style name of this fix command\n* arg = file \n *         file = file name of a triangular mesh in stl format \n* type = particle type to be given to the new particles created by this fix\n* mol-ID = molecule-ID to be given to the new particles created by this fix (must be >= 65535) \n", + "examples": "\n```lmps\nfix stl_surf all smd/wall_surface tool.stl 2 65535\n```\n", + "html_filename": "fix_smd_wall_surface.html", + "short_description": "This fix creates reads a triangulated surface from a file in .STL\nformat", + "description": "This fix creates reads a triangulated surface from a file in .STL\nformat. For each triangle, a new particle is created which stores the\nbarycenter of the triangle and the vertex positions. The radius of\nthe new particle is that of the minimum circle which encompasses the\ntriangle vertices.\n\nThe triangulated surface can be used as a complex rigid wall via the\n[smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html) pair style. It\nis possible to move the triangulated surface via the\n[smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html) fix style.\n\nImmediately after a .STL file has been read, the simulation needs to\nbe run for 0 timesteps in order to properly register the new particles\nin the system. See the \"funnel_flow\" example in the MACHDYN examples\ndirectory.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach\nDynamics in LAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe molecule ID given to the particles created by this fix have to be\nequal to or larger than 65535.\n\nWithin each .STL file, only a single triangulated object must be\npresent, even though the STL format allows for the possibility of\nmultiple objects in one file.\n", + "related": "[smd/triangle_mesh_vertices ](https://docs.lammps.org/compute_smd_triangle_vertices.html),\n[smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html),\n[smd/tri_surface ](https://docs.lammps.org/pair_smd_triangulated_surface.html)\n" }, { "command": [ - "third_order" + "fix_modify AtC read_restart" ], "syntax": [ - "third_order group-ID style delta args keyword value ..." + "fix_modify read_restart " ], "args": [ [ { - "arg": "third_order", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "eskm", - "type": 3, - "choices": [ - "regular", - "eskm" - ] - }, - { - "arg": "delta", - "type": 2, + "arg": "read_restart", + "type": 1, "choices": [] }, { - "arg": "args", + "arg": "", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* read_restart = name of the AtC sub-command\n* file_name = name of AtC restart file \n", + "examples": "\n```lmps\nfix_modify AtC read_restart restart.mydata.AtC\n```\n", + "html_filename": "atc_read_restart.html", + "short_description": "Reads the current state of the AtC fields from a named text-based restart file", + "description": "Reads the current state of the AtC fields from a named text-based restart file.\n", + "restrictions": "The restart file only contains fields and their time derivatives. The\nreference positions of the atoms and the commands that initialize the\nfix are not saved e.g. an identical mesh containing the same atoms will\nhave to be recreated.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC write_restart ](https://docs.lammps.org/atc_write_restart.html)\n" +}, +{ + "command": [ + "improper_style sqdistharm" + ], + "syntax": [ + "improper_style sqdistharm" + ], + "args": [ + [ { - "arg": "keyword", - "type": 2, + "arg": "improper_style", + "type": 1, "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "sqdistharm", + "type": 1, "choices": [] } ] ], - "parameters": "* group-ID = ID of group of atoms to displace\n* style = regular or eskm\n* delta = finite different displacement length (distance units)\n* one or more keyword/arg pairs may be appended \n *        keyword = file or binary \n         file name = name of output file for the third order tensor \n         binary arg = yes or no or gzip \n", - "examples": "\n```lmps\nthird_order 1 regular 0.000001\nthird_order 1 eskm 0.000001\nthird_order 3 regular 0.00004 file third_order.dat\nthird_order 5 eskm 0.00000001 file third_order.dat binary yes\n```\n", - "html_filename": "third_order.html", - "short_description": "Calculate the third order force constant tensor by finite difference of the selected group,\n\\[\n \\Phi^{\\alpha\\beta\\gamma}_{ijk} = \\frac{\\partial^3 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta} \\partial x_{k, \\gamma}}\\]\nwhere Phi is the third order force constant tensor", - "description": "Calculate the third order force constant tensor by finite difference of the selected group,\n\\[\n \\Phi^{\\alpha\\beta\\gamma}_{ijk} = \\frac{\\partial^3 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta} \\partial x_{k, \\gamma}}\\]\nwhere Phi is the third order force constant tensor.\n\nThe output of the command is the tensor, three elements at a time. The\nthree elements correspond to the three gamma elements for a specific i/alpha/j/beta/k.\nThe initial five numbers are i, alpha, j, beta, and k respectively.\n\nIf the style eskm is selected, the tensor will be using energy units of 10 J/mol.\nThese units conform to eskm style from the dynamical_matrix command, which\nwill simplify operations using dynamical matrices with third order tensors.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "The command collects a 9 times the number of atoms in the group on every single MPI rank,\nso the memory requirements can be very significant for large systems.\n\nThis command is part of the PHONON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix phonon ](https://docs.lammps.org/fix_phonon.html) [dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style sqdistharm\nimproper_coeff 1 50.0 0.1\n```\n", + "html_filename": "improper_sqdistharm.html", + "short_description": "The *sqdistharm* improper style uses the potential\n\\[\n E = K (d^2 - {d_0}^2)^2\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms", + "description": "The *sqdistharm* improper style uses the potential\n\\[\n E = K (d^2 - {d_0}^2)^2\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the L-atom is assumed to be the\ncentral atom. Note that this is different from the convention used\nin the improper_style distance.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\({d_0}^2\\) (distance\\^2)\n\nNote that \\({d_0}^2\\) (in units distance\\^2) has be provided and not \\(d_0\\).\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "compute pressure/uef" + "compute hma" ], "syntax": [ - "compute ID group-ID pressure/uef temp-ID keyword ..." + "compute ID group-ID hma temp-ID keyword ..." ], "args": [ [ @@ -25647,7 +24530,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "pressure/uef", + "arg": "hma", "type": 1, "choices": [] }, @@ -25657,36 +24540,62 @@ export const command_docs = [ "choices": [] }, { - "arg": "virial", + "arg": "cv", "type": 3, "choices": [ - "ke", - "pair", - "bond", - "angle", - "dihedral", - "improper", - "kspace", - "fix", - "virial" + "anharmonic", + "u", + "p", + "cv" ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure/uef = style name of this compute command\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial \n", - "examples": "\n```lmps\ncompute 1 all pressure/uef my_temp_uef\ncompute 2 all pressure/uef my_temp_uef virial\n```\n", - "html_filename": "compute_pressure_uef.html", - "short_description": "This command is used to compute the pressure tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used", - "description": "This command is used to compute the pressure tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used.\nIt is not necessary to use this command to compute the scalar\nvalue of the pressure. A [compute pressure ](https://docs.lammps.org/compute_pressure.html)\nmay be used for that purpose.\n\nThe keywords and output information are documented in\n[compute_pressure ](https://docs.lammps.org/compute_pressure.html).\n", - "restrictions": "This fix is part of the UEF package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\nThis command can only be used when [fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\nor [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is active.\n\nThe kinetic contribution to the pressure tensor\nwill be accurate only when the compute specified by *temp-ID* is a\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html).\n", - "related": "[compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html),\n[compute temp/uef ](https://docs.lammps.org/compute_temp_uef.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* hma = style name of this compute command\n* temp-ID = ID of fix that specifies the set temperature during canonical simulation\n* one or more keywords or keyword/argument pairs must be appended\n* keyword = anharmonic or u or p or cv \n *      anharmonic = compute will return anharmonic property values \n *      u = compute will return potential energy \n *      p value = Pharm = compute will return pressure \n       Pharm = difference between the harmonic pressure and lattice pressure \n       as described below \n *      cv = compute will return the heat capacity \n", + "examples": "\n```lmps\ncompute 2 all hma 1 u\ncompute 2 all hma 1 anharmonic u p 0.9\ncompute 2 all hma 1 u cv\n```\n", + "html_filename": "compute_hma.html", + "short_description": "Define a computation that calculates the properties of a solid (potential\nenergy, pressure or heat capacity), using the harmonically-mapped averaging\n(HMA) method", + "description": "Define a computation that calculates the properties of a solid (potential\nenergy, pressure or heat capacity), using the harmonically-mapped averaging\n(HMA) method.\nThis command yields much higher precision than the equivalent compute commands\n([compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html), etc.)\ncommands during a canonical simulation of an atomic crystal. Specifically,\nnear melting HMA can yield averages of a given precision an order of magnitude\nfaster than conventional methods, and this only improves as the temperatures is\nlowered. This is particularly important for evaluating the free energy by\nthermodynamic integration, where the low-temperature contributions are the\ngreatest source of statistical uncertainty. Moreover, HMA has other\nadvantages, including smaller potential-truncation effects, finite-size\neffects, smaller timestep inaccuracy, faster equilibration and shorter\ndecorrelation time.\n\nHMA should not be used if atoms are expected to diffuse. It is also\nrestricted to simulations in the NVT ensemble. While this compute may\nbe used with any potential in LAMMPS, it will provide inaccurate results\nfor potentials that do not go to 0 at the truncation distance;\n[pair_style lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html) and Ewald\nsummation should work fine, while [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\nwill perform poorly unless the potential is shifted (via\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift) or the cutoff is large.\nFurthermore, computation of the heat capacity with this compute is\nrestricted to those that implement the *single_hessian* method in Pair.\nImplementing *single_hessian* in additional pair styles is simple.\nPlease contact Andrew Schultz (ajs42 at buffalo.edu) and David Kofke\n(kofke at buffalo.edu) if your desired pair style does not have this\nmethod. This is the list of pair styles that currently implement\n*single_hessian*:\n\n* [pair_style lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html)\n\nIn this method, the analytically known harmonic behavior of a crystal is removed from the traditional ensemble\naverages, which leads to an accurate and precise measurement of the anharmonic contributions without contamination\nby noise produced by the already-known harmonic behavior.\nA detailed description of this method can be found in (**hma-Moustafa**). The potential energy is computed by the formula:\n\\[\n \\left< U\\right>_\\text{HMA} = \\frac{d}{2} (N-1) k_B T + \\left< U + \\frac{1}{2} \\vec F\\cdot\\Delta \\vec r \\right>\\]\nwhere \\(N\\) is the number of atoms in the system, \\(k_B\\) is Boltzmann's\nconstant, \\(T\\) is the temperature, \\(d\\) is the dimensionality of the\nsystem (2 or 3 for 2d/3d), \\(\\vec F\\cdot\\Delta\\vec r\\) is the sum of dot\nproducts of the atomic force vectors and displacement (from lattice sites)\nvectors, and \\(U\\) is the sum of pair, bond, angle, dihedral, improper,\nkspace (long-range), and fix energies.\n\nThe pressure is computed by the formula:\n\\[\n \\left< P\\right>_{HMA} = \\Delta \\hat P + \\left< P_\\text{vir}\n + \\frac{\\beta \\Delta \\hat P - \\rho}{d(N-1)} \\vec F\\cdot\\Delta \\vec r \\right>\\]\nwhere \\(\\rho\\) is the number density of the system, \\(\\Delta \\hat P\\)\nis the difference between the harmonic and lattice pressure,\n\\(P_\\text{vir}\\) is the virial pressure computed as the sum of pair, bond,\nangle, dihedral, improper, kspace (long-range), and fix contributions to the\nforce on each atom, and \\(k_B=1/k_B T\\). Although the method will work for\nany value of \\(\\Delta \\hat P\\)\nspecified (use pressure [units ](https://docs.lammps.org/units.html)), the precision of the resultant\npressure is sensitive to \\(\\Delta \\hat P\\); the precision tends to be\nbest when \\(\\Delta \\hat P\\) is the actual the difference between the\nlattice pressure and harmonic pressure.\n\\[\n \\left_\\text{HMA} = \\frac{d}{2} (N-1) k_B\n + \\frac{1}{k_B T^2} \\left( \\left\n - \\left^2 \\right) + \\frac{1}{4 T}\n \\left<\\vec F\\cdot\\Delta\\vec r + \\Delta r \\cdot\\Phi\\cdot \\Delta\\vec r\\right>\\]\nwhere \\(\\Phi\\) is the Hessian matrix. The compute hma command\ncomputes the full expression for \\(C_V\\) except for the\n\\(\\left^2\\) in the variance term, which can be obtained\nby passing the *u* keyword; you must add this extra contribution to the\n\\(C_V\\) value reported by this compute. The variance term can cause\nsignificant round-off error when computing \\(C_V\\). To address this, the\n*anharmonic* keyword can be passed and/or the output format can be specified\nwith more digits.\n\n```lmps\nthermo_modify format float '%22.15e'\n```\nThe *anharmonic* keyword will instruct the compute to return anharmonic\nproperties rather than the full properties, which include lattice, harmonic\nand anharmonic contributions.\nWhen using this keyword, the compute must be first active (it must be included\nvia a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command) while the atoms are\nstill at their lattice sites (before equilibration).\n\nThe temp-ID specified with compute hma command should be same as the fix-ID of\nthe Nose--Hoover ([fix nvt ](https://docs.lammps.org/fix_nh.html)) or\nBerendsen ([fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)) thermostat used for\nthe simulation. While using this command, the Langevin thermostat\n([fix langevin ](https://docs.lammps.org/fix_langevin.html))\nshould be avoided as its extra forces interfere with the HMA implementation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Compute hma command should be used right after the energy minimization, when the atoms are at their lattice sites.\n > The simulation should not be started before this command has been used in the input script. \n > \n\nThe following example illustrates the placement of this command in the input script:\n\n```lmps\nmin_style cg\nminimize 1e-35 1e-15 50000 500000\ncompute 1 all hma thermostatid u\nfix thermostatid all nvt temp 600.0 600.0 100.0\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Compute hma should be used when the atoms of the solid do not diffuse. Diffusion will reduce the precision in the potential energy computation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be specified if a fix is to contribute potential energy to this command. \n > \n\nAn example input script that uses this compute is included in\nexamples/PACKAGES/hma/ along with corresponding LAMMPS output showing that the HMA\nproperties fluctuate less than the corresponding conventional properties.\n\n #### Output info\n\nThis compute calculates a global vector that includes the n properties\nrequested as arguments to the command (the potential energy, pressure and/or heat\ncapacity). The elements of the vector can be accessed by indices 1--n by any\ncommand that uses global vector values as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector values calculated by this compute are \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n\n**(hma-Moustafa)** Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, *Very fast averaging of thermal properties of crystals by molecular simulation*,\n[Phys. Rev. E [92], 043303 (2015)](https://link.aps.org/doi/10.1103/PhysRevE.92.043303) \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is enabled only\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nUsage restricted to canonical (NVT) ensemble simulation only.\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n\n[dynamical matrix ](https://docs.lammps.org/dynamical_matrix.html) provides a finite difference\nformulation of the Hessian provided by Pair's single_hessian, which is used by\nthis compute.\n" }, { "command": [ - "compute improper/local" + "pair_style eim", + "pair_style eim/omp" ], "syntax": [ - "compute ID group-ID improper/local value1 value2 ..." + "pair_style style" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "style", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* style = eim \n", + "examples": "\n```lmps\npair_style eim\npair_coeff * * Na Cl ../potentials/ffield.eim Na Cl\npair_coeff * * Na Cl ffield.eim Na Na Na Cl\npair_coeff * * Na Cl ../potentials/ffield.eim Cl NULL Na\n```\n", + "html_filename": "pair_eim.html", + "short_description": "Style *eim* computes pairwise interactions for ionic compounds\nusing embedded-ion method (EIM) potentials **Zhou2**", + "description": "Style *eim* computes pairwise interactions for ionic compounds\nusing embedded-ion method (EIM) potentials **Zhou2**. The\nenergy of the system E is given by\n\\[\n E = \\frac{1}{2} \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\phi_{ij} \\left(r_{ij}\\right) + \\sum_{i=1}^{N}E_i\\left(q_i,\\sigma_i\\right)\\]\nThe first term is a double pairwise sum over the J neighbors of all I\natoms, where \\(\\phi_{ij}\\) is a pair potential. The second term sums over\nthe embedding energy E_i of atom I, which is a function of its charge\nq_i and the electrical potential \\(\\sigma_i\\) at its location. E_i, q_i,\nand \\(sigma_i\\) are calculated as\n\\[\\begin{align*} \n q_i = & \\sum_{j=i_1}^{i_N} \\eta_{ji}\\left(r_{ij}\\right) \\\\\n \\sigma_i = & \\sum_{j=i_1}^{i_N} q_j \\cdot \\psi_{ij} \\left(r_{ij}\\right) \\\\\n E_i\\left(q_i,\\sigma_i\\right) = & \\frac{1}{2} \\cdot q_i \\cdot \\sigma_i \\end{align*} \\]\nwhere \\(\\eta_{ji}\\) is a pairwise function describing electron flow from atom\nI to atom J, and \\(\\psi_{ij}\\) is another pairwise function. The multi-body\nnature of the EIM potential is a result of the embedding energy term.\nA complete list of all the pair functions used in EIM is summarized\nbelow\n\\[\\begin{align*} \n \\phi_{ij}\\left(r\\right) = & \\left\\{ \\begin{array}{lr}\n \\left[\\frac{E_{b,ij}\\beta_{ij}}{\\beta_{ij}-\\alpha_{ij}}\\exp\\left(-\\alpha_{ij} \\frac{r-r_{e,ij}}{r_{e,ij}}\\right)-\\frac{E_{b,ij}\\alpha_{ij}}{\\beta_{ij}-\\alpha_{ij}}\\exp\\left(-\\beta_{ij} \\frac{r-r_{e,ij}}{r_{e,ij}}\\right)\\right]f_c\\left(r,r_{e,ij},r_{c,\\phi,ij}\\right),& p_{ij}=1 \\\\\n \\left[\\frac{E_{b,ij}\\beta_{ij}}{\\beta_{ij}-\\alpha_{ij}} \\left(\\frac{r_{e,ij}}{r}\\right)^{\\alpha_{ij}} -\\frac{E_{b,ij}\\alpha_{ij}}{\\beta_{ij}-\\alpha_{ij}} \\left(\\frac{r_{e,ij}}{r}\\right)^{\\beta_{ij}}\\right]f_c\\left(r,r_{e,ij},r_{c,\\phi,ij}\\right),& p_{ij}=2\n \\end{array}\n \\right.\\\\\n \\eta_{ji} = & A_{\\eta,ij}\\left(\\chi_j-\\chi_i\\right)f_c\\left(r,r_{s,\\eta,ij},r_{c,\\eta,ij}\\right) \\\\\n \\psi_{ij}\\left(r\\right) = & A_{\\psi,ij}\\exp\\left(-\\zeta_{ij}r\\right)f_c\\left(r,r_{s,\\psi,ij},r_{c,\\psi,ij}\\right) \\\\\n f_{c}\\left(r,r_p,r_c\\right) = & 0.510204 \\cdot \\mathrm{erfc}\\left[\\frac{1.64498\\left(2r-r_p-r_c\\right)}{r_c-r_p}\\right] - 0.010204 \\end{align*} \\]\nHere \\(E_b, r_e, r_(c,\\phi), \\alpha, \\beta, A_(\\psi), \\zeta, r_(s,\\psi),\nr_(c,\\psi), A_(\\eta), r_(s,\\eta), r_(c,\\eta), \\chi,\\) and pair function type\n*p* are parameters, with subscripts *ij* indicating the two species of\natoms in the atomic pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even though the EIM potential is treating atoms as charged ions,\n > you should not use a LAMMPS [atom_style ](https://docs.lammps.org/atom_style.html) that stores a\n > charge on each atom and thus requires you to assign a charge to each\n > atom, e.g. the *charge* or *full* atom styles. This is because the\n > EIM potential infers the charge on an atom from the equation above for\n > q_i; you do not assign charges explicitly. \n > \n\n----------\n\nAll the EIM parameters are listed in a potential file which is\nspecified by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. This is an\nASCII text file in a format described below. The \"ffield.eim\" file\nincluded in the \"potentials\" directory of the LAMMPS distribution\ncurrently includes nine elements Li, Na, K, Rb, Cs, F, Cl, Br, and I.\nA system with any combination of these elements can be modeled. This\nfile is parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike other potentials, cutoffs for EIM potentials are not\nset in the pair_style or pair_coeff command; they are specified in the\nEIM potential file itself. Likewise, the EIM potential file lists\natomic masses; thus you do not need to use the [mass ](https://docs.lammps.org/mass.html)\ncommand to specify them.\n\nOnly a single pair_coeff command is used with the *eim* style which\nspecifies an EIM potential file and the element(s) to extract\ninformation for. The EIM elements are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* Elem1, Elem2, ...\n* EIM potential file\n* N element names = mapping of EIM elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example like one of those above, suppose you want to model a\nsystem with Na and Cl atoms. If your LAMMPS simulation has 4 atoms\ntypes and you want the first 3 to be Na, and the fourth to be Cl, you would\nuse the following pair_coeff command:\n\n```lmps\npair_coeff * * Na Cl ffield.eim Na Na Na Cl\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe filename is the EIM potential file. The Na and Cl arguments\n(before the file name) are the two elements for which info will be\nextracted from the potential file. The first three trailing Na\narguments map LAMMPS atom types 1,2,3 to the EIM Na element. The\nfinal Cl argument maps LAMMPS atom type 4 to the EIM Cl element.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *eim* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\nThe ffield.eim file in the *potentials* directory of the LAMMPS\ndistribution is formatted as follows:\n\nLines starting with # are comments and are ignored by LAMMPS. Lines\nstarting with \"global:\" include three global values. The first value\ndivides the cations from anions, i.e., any elements with\nelectronegativity above this value are viewed as anions, and any\nelements with electronegativity below this value are viewed as\ncations. The second and third values are related to the cutoff\nfunction - i.e. the 0.510204, 1.64498, and 0.010204 shown in the above\nequation can be derived from these values.\n\nLines starting with \"element:\" are formatted as follows: name of\nelement, atomic number, atomic mass, electronic negativity, atomic\nradius (LAMMPS ignores it), ionic radius (LAMMPS ignores it), cohesive\nenergy (LAMMPS ignores it), and q0 (must be 0).\n\nLines starting with \"pair:\" are entered as: element 1, element 2,\nr_(c,phi), r_(c,phi) (redundant for historical reasons), E_b, r_e,\nalpha, beta, r_(c,eta), A_(eta), r_(s,eta), r_(c,psi), A_(psi), zeta,\nr_(s,psi), and p.\n\nThe lines in the file can be in any order; LAMMPS extracts the info it\nneeds.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Zhou2)** Zhou, submitted for publication (2010). Please contact\nXiaowang Zhou (Sandia) for details via email at xzhou at sandia.gov. \n ", + "restrictions": "This style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "compute orientorder/atom", + "compute orientorder/atom/kk" + ], + "syntax": [ + "compute ID group-ID orientorder/atom keyword values ..." ], "args": [ [ @@ -25706,36 +24615,39 @@ export const command_docs = [ "choices": [] }, { - "arg": "improper/local", - "type": 1, - "choices": [] + "arg": "orientorder/atom", + "type": 3, + "choices": [ + "orientorder/atom", + "orientorder/atom/kk" + ] }, { - "arg": "value1", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* improper/local = style name of this compute command\n* one or more values may be appended\n* value = chi \n *        chi = tabulate improper angles \n", - "examples": "\n```lmps\ncompute 1 all improper/local chi\n```\n", - "html_filename": "compute_improper_local.html", - "short_description": "Define a computation that calculates properties of individual improper\ninteractions", - "description": "Define a computation that calculates properties of individual improper\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of impropers in the system, modified by\nthe group parameter as explained below.\n\nThe value *chi* is the improper angle, as defined in the doc pages for\nthe individual improper styles listed on\n[improper_style ](https://docs.lammps.org/improper_style.html) doc page.\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their impropers. An improper will\nonly be included if all four atoms in the improper are in the specified\ncompute group.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, improper output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local itype iatom1 iatom2 iatom3 iatom4\ncompute 2 all improper/local chi\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_2[1]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of impropers. If a single keyword is specified, a\nlocal vector is produced. If two or more keywords are specified, a\nlocal array is produced where the number of columns = the number of\nkeywords. The vector or array can be accessed by any command that\nuses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *chi* will be in degrees.\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* orientorder/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff or nnn or degrees or wl or wl/hat or components or chunksize \n       cutoff value = distance cutoff \n       nnn value = number of nearest neighbors \n       degrees values = nlvalues, l1, l2,... \n       wl value = yes or no \n       wl/hat value = yes or no \n       components value = ldegree \n       chunksize value = number of atoms in each pass \n", + "examples": "\n```lmps\ncompute 1 all orientorder/atom\ncompute 1 all orientorder/atom degrees 5 4 6 8 10 12 nnn NULL cutoff 1.5\ncompute 1 all orientorder/atom wl/hat yes\ncompute 1 all orientorder/atom components 6\n```\n", + "html_filename": "compute_orientorder_atom.html", + "short_description": "Define a computation that calculates a set of bond-orientational\norder parameters \\(Q_\\ell\\) for each atom in a group", + "description": "Define a computation that calculates a set of bond-orientational\norder parameters \\(Q_\\ell\\) for each atom in a group. These order parameters\nwere introduced by **Steinhardt** as a way to\ncharacterize the local orientational order in atomic structures.\nFor each atom, \\(Q_\\ell\\) is a real number defined as follows:\n\\[\\begin{align*} \n \\bar{Y}_{\\ell m} = & \\frac{1}{nnn}\\sum_{j = 1}^{nnn} Y_{\\ell m}\\bigl( \\theta( {\\bf r}_{ij} ), \\phi( {\\bf r}_{ij} ) \\bigr) \\\\\n Q_\\ell = & \\sqrt{\\frac{4 \\pi}{2 \\ell + 1} \\sum_{m = -\\ell }^{m = \\ell } \\bar{Y}_{\\ell m} \\bar{Y}^*_{\\ell m}} \\end{align*} \\]\nThe first equation defines the local order parameters as averages\nof the spherical harmonics \\(Y_{\\ell m}\\) for each neighbor.\nThese are complex number components of the 3D analog of the 2D order\nparameter \\(q_n\\), which is implemented as LAMMPS compute\n[hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html).\nThe summation is over the *nnn* nearest\nneighbors of the central atom. The angles \\(\\theta\\) and \\(\\phi\\) are\nthe standard spherical polar angles\ndefining the direction of the bond vector \\(r_{ij}\\).\nThe phase and sign of \\(Y_{\\ell m}\\) follow the standard conventions,\nso that \\(\\mathrm{sign}(Y_{\\ell\\ell}(0,0)) = (-1)^\\ell\\).\nThe second equation defines \\(Q_\\ell\\), which is a\nrotationally invariant non-negative amplitude obtained by summing\nover all the components of degree \\(\\ell\\).\n\nThe optional keyword *cutoff* defines the distance cutoff\nused when searching for neighbors. The default value, also\nthe maximum allowable value, is the cutoff specified\nby the pair style.\n\nThe optional keyword *nnn* defines the number of nearest\nneighbors used to calculate \\(Q_\\ell\\). The default value is 12.\nIf the value is NULL, then all neighbors up to the\nspecified distance cutoff are used.\n\nThe optional keyword *degrees* defines the list of order parameters to\nbe computed. The first argument *nlvalues* is the number of order\nparameters. This is followed by that number of non-negative integers giving the\ndegree of each order parameter. Because \\(Q_2\\) and all odd-degree order\nparameters are zero for atoms in cubic crystals (see\n**Steinhardt**), the default order parameters are \\(Q_4\\),\n\\(Q_6\\), \\(Q_8\\), \\(Q_{10}\\), and \\(Q_{12}\\). For the FCC\ncrystal with *nnn* =12,\n\\[ Q_4 = \\sqrt{\\frac{7}{192}} \\approx 0.19094\\]\nThe numerical values of all order\nparameters up to \\(Q_{12}\\) for a range of commonly encountered\nhigh-symmetry structures are given in Table I of **Mickel**,\nand these can be reproduced with this compute.\n\nThe optional keyword *wl* will output the third-order invariants \\(W_\\ell\\)\n(see Eq. 1.4 in **Steinhardt**) for the same degrees as\nfor the \\(Q_\\ell\\) parameters. For the FCC crystal with *nnn* = 12,\n\\[\n W_4 = -\\sqrt{\\frac{14}{143}} \\left(\\frac{49}{4096}\\right) \\pi^{-3/2} \\approx -0.0006722136\\]\nThe optional keyword *wl/hat* will output the normalized third-order\ninvariants \\(\\hat{W}_\\ell\\) (see Eq. 2.2 in **Steinhardt**)\nfor the same degrees as for the \\(Q_\\ell\\) parameters. For the FCC crystal\nwith *nnn* =12,\n\\[\n \\hat{W}_4 = -\\frac{7}{3} \\sqrt{\\frac{2}{429}} \\approx -0.159317\\]\nThe numerical values of \\(\\hat{W}_\\ell\\) for a range of commonly\nencountered high-symmetry structures are given in Table I of\n**Steinhardt**, and these can be reproduced with this keyword.\n\nThe optional keyword *components* will output the components of the\n*normalized* complex vector\n\\(\\hat{Y}_{\\ell m} = \\bar{Y}_{\\ell m}/|\\bar{Y}_{\\ell m}|\\)\nof degree *ldegree*, which must be included in the list of order parameters to\nbe computed. This option can be used in conjunction with\n[compute coord_atom ](https://docs.lammps.org/compute_coord_atom.html) to calculate the ten Wolde's\ncriterion to identify crystal-like particles, as discussed in\n**tenWolde2**.\n\nThe optional keyword *chunksize* is only applicable when using the\nthe KOKKOS package and is ignored otherwise. This keyword controls\nthe number of atoms in each pass used to compute the bond-orientational\norder parameters and is used to avoid running out of memory. For example\nif there are 32768 atoms in the simulation and the *chunksize*\nis set to 16384, the parameter calculation will be broken up\ninto two passes.\n\nThe value of \\(Q_\\ell\\) is set to zero for atoms not in the\nspecified compute group, as well as for atoms that have less than\n*nnn* neighbors within the distance cutoff, unless *nnn* is NULL.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the order parameter. This\n > difficulty can be circumvented by writing a dump file, and using the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the order parameter for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with *nlvalues* columns,\ngiving the \\(Q_\\ell\\) values for each atom, which are real numbers in the\nrange \\(0 \\le Q_\\ell \\le 1\\).\n\nIf the keyword *wl* is set to yes, then the \\(W_\\ell\\) values for each\natom will be added to the output array, which are real numbers.\n\nIf the keyword *wl/hat* is set to yes, then the \\(\\hat{W}_\\ell\\)\nvalues for each atom will be added to the output array, which are real numbers.\n\nIf the keyword *components* is set, then the real and imaginary parts\nof each component of *normalized* \\(\\hat{Y}_{\\ell m}\\) will be added to the\noutput array in the following order:\n\\(\\Re(\\hat{Y}_{-m}),\\) \\(\\Im(\\hat{Y}_{-m}),\\)\n\\(\\Re(\\hat{Y}_{-m+1}),\\) \\(\\Im(\\hat{Y}_{-m+1}), \\dotsc,\\)\n\\(\\Re(\\hat{Y}_m),\\) \\(\\Im(\\hat{Y}_m).\\)\n\nIn summary, the per-atom array will contain *nlvalues* columns, followed by\nan additional *nlvalues* columns if *wl* is set to yes, followed by\nan additional *nlvalues* columns if *wl/hat* is set to yes, followed\nby an additional 2\\*(2\\* *ldegree* +1) columns if the *components*\nkeyword is set.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Steinhardt)** P. Steinhardt, D. Nelson, and M. Ronchetti,\nPhys. Rev. B 28, 784 (1983). \n \n**(Steinhardt)** P. Steinhardt, D. Nelson, and M. Ronchetti,\nPhys. Rev. B 28, 784 (1983). \n \n**(Mickel)** W. Mickel, S. C. Kapfer, G. E. Schroeder-Turkand, K. Mecke,\nJ. Chem. Phys. 138, 044501 (2013). \n \n**(tenWolde2)** P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,\nJ. Chem. Phys. 104, 9932 (1996). \n ", + "restrictions": "none\n", + "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html), [compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html), [compute hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html)\n" }, { "command": [ - "fix_modify AtC mesh delete_elements" + "fix_modify AtC reset_atomic_reference_positions" ], "syntax": [ - "fix_modify mesh delete_elements " + "fix_modify reset_atomic_reference_positions" ], "args": [ [ @@ -25750,76 +24662,55 @@ export const command_docs = [ "choices": [] }, { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "delete_elements", + "arg": "reset_atomic_reference_positions", "type": 1, "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_elementset = name of the AtC sub-command\n* id = id of the element set \n", - "examples": "\n```lmps\nfix_modify AtC mesh delete_elements gap\n```\n", - "html_filename": "atc_mesh_delete_elements.html", - "short_description": "Deletes a group of elements from the mesh", - "description": "Deletes a group of elements from the mesh.\n", + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* reset_atomic_reference_positions = name of the AtC sub-command \n", + "examples": "\n```lmps\nfix_modify AtC reset_atomic_reference_positions\n```\n", + "html_filename": "atc_reset_atomic_reference.html", + "short_description": "Resets the atomic positions ATC uses to perform point to field\noperations", + "description": "Resets the atomic positions ATC uses to perform point to field\noperations. In can be used to use perfect lattice sites in ATC but a\nthermalized or deformed lattice in LAMMPS.\n", "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n- [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n" + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style uf3", - "pair_style uf3/kk" + "angle_style cross" ], "syntax": [ - "pair_style style BodyFlag" + "angle_style cross" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "uf3/kk", - "type": 3, - "choices": [ - "uf3", - "uf3/kk", - "uf3/kk" - ] - }, - { - "arg": "BodyFlag", - "type": 2, + "arg": "cross", + "type": 1, "choices": [] } ] ], - "parameters": "* style = uf3 or uf3/kk \n *        BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values: 2 or 3 \n", - "examples": "\n```lmps\npair_style uf3 3\npair_coeff * * Nb.uf3 Nb\n\npair_style uf3 2\npair_coeff * * NbSn.uf3 Nb Sn\n\npair_style uf3 3\npair_coeff * * NbSn.uf3 Nb Sn\n```\n", - "html_filename": "pair_uf3.html", - "short_description": "\nThe *uf3* style computes the **Xie23** potential, a machine-learning interatomic potential", - "description": "\nThe *uf3* style computes the **Xie23** potential, a machine-learning interatomic potential. In UF3,\nthe total energy of the system is defined via two- and three-body\ninteractions:\n\\[\\begin{align*} \n E & = \\sum_{i,j} V_2(r_{ij}) + \\sum_{i,j,k} V_3 (r_{ij},r_{ik},r_{jk}) \\\\\n V_2(r_{ij}) & = \\sum_{n=0}^N c_n B_n(r_{ij}) \\\\\n V_3 (r_{ij},r_{ik},r_{jk}) & = \\sum_{l=0}^{N_l} \\sum_{m=0}^{N_m} \\sum_{n=0}^{N_n} c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) \\end{align*} \\]\nwhere \\(V_2(r_{ij})\\) and \\(V_3 (r_{ij},r_{ik},r_{jk})\\) are the\ntwo- and three-body interactions, respectively. For the two-body the\nsummation is over all neighbors J and for the three-body the summation\nis over all neighbors J and K of atom I within a cutoff distance\ndetermined from the potential files. \\(B_n(r_{ij})\\) are the cubic\nb-spline basis, \\(c_n\\) and \\(c_{l,m,n}\\) are the machine-learned\ninteraction parameters and \\(N\\), \\(N_l\\), \\(N_m\\), and\n\\(N_n\\) denote the number of basis functions per spline or tensor\nspline dimension.\n\nWith *uf3* style only a single pair_coeff command is used to indicate the\nUF3 LAMMPS potential file containing all the two- and three-body interactions\nfollowed by N additional arguments specifying the mapping of UF3 elements to\nLAMMPS atom types, where N is the number of LAMMPS atom types:\n\n* UF3 LAMMPS potential file\n* N elements names = mapping of UF3 elements to atom types\n\nAs an example, if a LAMMPS simulation contains 2 atom types (elements\n'A' and 'B'), the pair_coeff command will be:\n\n```lmps\npair_style uf3 3\npair_coeff * * AB.uf3 A B\n```\nThe AB.uf3 file should contain all two-body (A-A, A-B, B-B) and three-body\n(A-A-A, A-A-B, A-B-B, B-A-A, B-A-B, B-B-B).\n\nIf a value of \"2\" is specified in the :code:`pair_style uf3` command,\nonly the two-body potentials are needed. For 3-body interaction the\nfirst atom type is the central atom. We recommend using the\n:code:[generate_uf3_lammps_pots.py` script (found `here](https://github.com/uf3/uf3/tree/develop/lammps_plugin/scripts)) for\ngenerating the UF3 LAMMPS potential file from the UF3 JSON potentials.\n\n----------\n\nUF3 LAMMPS potential file in the *potentials* directory of the LAMMPS\ndistribution have a \".uf3\" suffix. The interaction block in UF3 LAMMPS potential\nfile should start with :code:`#UF3 POT` and end with :code:`#` characters.\nFollowing shows the format of a generic 2-body and 3-body potential block in\nUF3 LAMMPS potential file-\n\n```lmps\n#UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE\n2B ELEMENT1 ELEMENT2 LEADING_TRIM TRAILING_TRIM\nRij_CUTOFF NUM_OF_KNOTS\nBSPLINE_KNOTS\nNUM_OF_COEFF\nCOEFF\n#\n#UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE\n3B ELEMENT1 ELEMENT2 ELEMENT3 LEADING_TRIM TRAILING_TRIM\nRjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ\nBSPLINE_KNOTS_FOR_JK\nBSPLINE_KNOTS_FOR_IK\nBSPLINE_KNOTS_FOR_IJ\nSHAPE_OF_COEFF_MATRIX[I][J][K]\nCOEFF_MATRIX[0][0][K]\nCOEFF_MATRIX[0][1][K]\nCOEFF_MATRIX[0][2][K]\n.\n.\n.\nCOEFF_MATRIX[1][0][K]\nCOEFF_MATRIX[1][1][K]\nCOEFF_MATRIX[1][2][K]\n.\n.\n.\n#\n```\nThe second line indicates whether the block contains data for 2-body\n(:code:`2B`) or 3-body (:code:`3B`) interaction. This is followed by element\ncombination interaction, :code:`LEADING_TRIM` and :code:`TRAILING_TRIM`\nnumber on the same line. The current implementation is only tested for\n:code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`.\nIf other values are used LAMMPS is terminated after issuing an error message.\nThe :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described\nby the potential block. :code:`NUM_OF_KNOTS` is the number of knots\n(or the length of the knot vector) present on the very next line. The\n:code:`BSPLINE_KNOTS` line should contain all the knots in ascending order.\n:code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line.\nAll the numbers in the BSPLINE_KNOTS and COEFF line should be space-separated.\nSimilar to the 2-body potential block, the third line sets the cutoffs and\nlength of the knots. The cutoff distance between atom-type I and J is\n:code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and between\nJ and K is :code:`Rjk_CUTOFF`.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The current implementation only works for UF3 potentials with cutoff\n > distances for 3-body interactions that follows\n > :code:`2Rij_CUTOFF=2Rik_CUTOFF=Rjk_CUTOFF` relation. \n > \n\nThe :code:`BSPLINE_KNOTS_FOR_JK`, :code:`BSPLINE_KNOTS_FOR_IK`, and\n:code:`BSPLINE_KNOTS_FOR_IJ` lines (note the order) contain the knots in\nincreasing order for atoms J and K, I and K, and atoms I and J\nrespectively. The number of knots is defined by the\n:code:`NUM_OF_KNOTS_*` characters in the previous line. The shape of\nthe coefficient matrix is defined on the\n:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` line followed by the columns of\nthe coefficient matrix, one per line, as shown above. For example, if\nthe coefficient matrix has the shape of 8x8x13, then\n:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` will be :code:`8 8 13` followed\nby 64 (8x8) lines each containing 13 coefficients separated by space.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as described\nabove from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Xie23)** Xie, S.R., Rupp, M. & Hennig, R.G. Ultra-fast interpretable machine-learning potentials. npj Comput Mater 9, 162 (2023). https://doi.org/10.1038/s41524-023-01092-7 \n ", - "restrictions": "The 'uf3' pair style is part of the ML-UF3 package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\".\n\nThe UF3 LAMMPS potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\n\nThe single() function of 'uf3' pair style only return the 2-body\ninteraction energy.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cross\nangle_coeff 1 200.0 100.0 100.0 1.25 1.25 107.0\n```\n", + "html_filename": "angle_cross.html", + "short_description": "The *cross* angle style uses a potential that couples the bond stretches of\na bend with the angle stretch of that bend:\n\\[\n E = K_{SS} \\left(r_{12}-r_{12,0}\\right)\\left(r_{32}-r_{32,0}\\right) + K_{BS0}\\left(r_{12}-r_{12,0}\\right)\\left(\\theta-\\theta_0\\right) + K_{BS1}\\left(r_{32}-r_{32,0}\\right)\\left(\\theta-\\theta_0\\right)\\]\nwhere \\(r_{12,0}\\) is the rest value of the bond length between atom 1 and 2,\n\\(r_{32,0}\\) is the rest value of the bond length between atom 3 and 2,\nand \\(\\theta_0\\) is the rest value of the angle", + "description": "The *cross* angle style uses a potential that couples the bond stretches of\na bend with the angle stretch of that bend:\n\\[\n E = K_{SS} \\left(r_{12}-r_{12,0}\\right)\\left(r_{32}-r_{32,0}\\right) + K_{BS0}\\left(r_{12}-r_{12,0}\\right)\\left(\\theta-\\theta_0\\right) + K_{BS1}\\left(r_{32}-r_{32,0}\\right)\\left(\\theta-\\theta_0\\right)\\]\nwhere \\(r_{12,0}\\) is the rest value of the bond length between atom 1 and 2,\n\\(r_{32,0}\\) is the rest value of the bond length between atom 3 and 2,\nand \\(\\theta_0\\) is the rest value of the angle. \\(K_{SS}\\) is the force constant of\nthe bond stretch-bond stretch term and \\(K_{BS0}\\) and \\(K_{BS1}\\) are the force constants\nof the bond stretch-angle stretch terms.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K_{SS}\\) (energy/distance\\^2)\n* \\(K_{BS0}\\) (energy/distance)\n* \\(K_{BS1}\\) (energy/distance)\n* \\(r_{12,0}\\) (distance)\n* \\(r_{32,0}\\) (distance)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the \\(K_{BS0}\\) and \\(K_{BS1}\\) are\neffectively energy/distance per radian.\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute erotate/sphere", - "compute erotate/sphere/kk" + "compute temp/rotate" ], "syntax": [ - "compute ID group-ID erotate/sphere" + "compute ID group-ID temp/rotate" ], "args": [ [ @@ -25839,168 +24730,161 @@ export const command_docs = [ "choices": [] }, { - "arg": "erotate/sphere", - "type": 3, - "choices": [ - "erotate/sphere", - "erotate/sphere/kk" - ] + "arg": "temp/rotate", + "type": 1, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/sphere = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all erotate/sphere\n```\n", - "html_filename": "compute_erotate_sphere.html", - "short_description": "Define a computation that calculates the rotational kinetic energy of\na group of spherical particles", - "description": "Define a computation that calculates the rotational kinetic energy of\na group of spherical particles.\n\nThe rotational energy is computed as \\(\\frac12 I \\omega^2\\),\nwhere \\(I\\) is the moment of inertia for a sphere and \\(\\omega\\)\nis the particle's angular velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute requires that atoms store a radius and angular velocity\n(omega) as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be finite-size spheres or point\nparticles. They cannot be aspherical. Point particles will not\ncontribute to the rotational energy.\n", - "related": "[compute erotate/asphere ](https://docs.lammps.org/compute_erotate_asphere.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/rotate = style name of this compute command \n", + "examples": "\n```lmps\ncompute Tbead bead temp/rotate\n```\n", + "html_filename": "compute_temp_rotate.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity and angular velocity\nof the group", + "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity and angular velocity\nof the group. This is useful if the group is expected to have a non-zero net\nvelocity and/or global rotation motion for some reason. A compute of this\nstyle can be used by any command that computes a temperature\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nAfter the center-of-mass velocity and angular velocity has been subtracted from\neach atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nA kinetic energy tensor, stored as a six-element vector, is also calculated by\nthis compute for use in the computation of a pressure tensor. The formula for\nthe components of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, and\nso on. The six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the center-of-mass velocity and angular velocity by this fix is\nessentially computing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1-6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" }, { "command": [ - "pair_style sph/taitwater", - "pair_style sph/taitwater/gpu" + "fix viscous/sphere" ], "syntax": [ - "pair_style sph/taitwater" + "fix ID group-ID viscous/sphere gamma keyword values ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "sph/taitwater", - "type": 3, - "choices": [ - "sph/taitwater", - "sph/taitwater/gpu" - ] + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "viscous/sphere", + "type": 1, + "choices": [] + }, + { + "arg": "gamma", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style sph/taitwater\npair_coeff * * 1000.0 1430.0 1.0 2.4\n```\n", - "html_filename": "pair_sph_taitwater.html", - "short_description": "The sph/taitwater style computes pressure forces between SPH particles\naccording to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound", - "description": "The sph/taitwater style computes pressure forces between SPH particles\naccording to Tait's equation of state:\n\\[\n p = B \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{\\gamma} - 1\\biggr]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThis pair style also computes Monaghan's artificial viscosity to\nprevent particles from interpenetrating :ref:[(Monaghan) ](https://docs.lammps.org/Monaghan>`.See `this PDF guide ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should specify gamma in torque/angular velocity units. This is not\n > the same as mass/time units, at least for some of the LAMMPS\n > [units ](https://docs.lammps.org/units.html) options like \"real\" or \"metal\" that are not\n > self-consistent. \n > \n\nIn the current implementation, rather than have the user specify a viscosity,\n\\(\\gamma\\) is specified directly in torque/angular velocity units.\nIf needed, \\(\\gamma\\) can be adjusted for atoms of different sizes\n(i.e. \\(\\sigma\\)) by using the *scale* keyword.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying torques. Default is the outermost level.\n\nThe torques due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n", + "related": "[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html)\n" }, { "command": [ - "pair_style airebo", - "pair_style airebo/intel", - "pair_style airebo/omp", - "pair_style airebo/morse", - "pair_style airebo/morse/intel", - "pair_style airebo/morse/omp", - "pair_style rebo", - "pair_style rebo/intel", - "pair_style rebo/omp" + "fix nve/awpmd" ], "syntax": [ - "pair_style style cutoff LJ_flag TORSION_flag cutoff_min" + "fix ID group-ID nve/awpmd" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "rebo/omp", - "type": 3, - "choices": [ - "airebo", - "airebo/morse", - "rebo", - "airebo/intel", - "airebo/omp", - "airebo/morse/intel", - "airebo/morse/omp", - "rebo/intel", - "rebo/omp" - ] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] - }, - { - "arg": "LJ_flag", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "TORSION_flag", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cutoff_min", - "type": 2, + "arg": "nve/awpmd", + "type": 1, "choices": [] } ] ], - "parameters": "* style = airebo or airebo/morse or rebo\n* cutoff = LJ or Morse cutoff (\\(\\sigma\\) scale factor) (AIREBO and AIREBO-M only)\n* LJ_flag = 0/1 to turn off/on the LJ or Morse term (AIREBO and AIREBO-M only, optional)\n* TORSION_flag = 0/1 to turn off/on the torsion term (AIREBO and AIREBO-M only, optional)\n* cutoff_min = Start of the transition region of cutoff (\\(\\sigma\\) scale factor) (AIREBO and AIREBO-M only, optional) \n", - "examples": "\n```lmps\npair_style airebo 3.0\npair_style airebo 2.5 1 0\npair_coeff * * ../potentials/CH.airebo H C\n\npair_style airebo/morse 3.0\npair_coeff * * ../potentials/CH.airebo-m H C\n\npair_style rebo\npair_coeff * * ../potentials/CH.rebo H C\n```\n", - "html_filename": "pair_airebo.html", - "short_description": "The *airebo* pair style computes the Adaptive Intermolecular Reactive\nEmpirical Bond Order (AIREBO) Potential of **Stuart** for a\nsystem of carbon and/or hydrogen atoms", - "description": "The *airebo* pair style computes the Adaptive Intermolecular Reactive\nEmpirical Bond Order (AIREBO) Potential of **Stuart** for a\nsystem of carbon and/or hydrogen atoms. Note that this is the initial\nformulation of AIREBO from 2000, not the later formulation.\n\nThe *airebo/morse* pair style computes the AIREBO-M potential, which\nis equivalent to AIREBO, but replaces the LJ term with a Morse potential.\nThe Morse potentials are parameterized by high-quality quantum chemistry\n(MP2) calculations and do not diverge as quickly as particle density\nincreases. This allows AIREBO-M to retain accuracy to much higher pressures\nthan AIREBO (up to 40 GPa for Polyethylene). Details for this potential\nand its parameterization are given in **OConnor**.\n\nThe *rebo* pair style computes the Reactive Empirical Bond Order (REBO)\nPotential of **Brenner**. Note that this is the so-called\nsecond generation REBO from 2002, not the original REBO from 1990.\nAs discussed below, second generation REBO is closely related to the\ninitial AIREBO; it is just a subset of the potential energy terms\nwith a few slightly different parameters\n\nThe AIREBO potential consists of three terms:\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i}\n \\left[ E^{\\text{REBO}}_{ij} + E^{\\text{LJ}}_{ij} +\n \\sum_{k \\neq i,j} \\sum_{l \\neq i,j,k} E^{\\text{TORSION}}_{kijl} \\right] \\\\ \\end{align*} \\]\nBy default, all three terms are included. For the *airebo* style, if\nthe first two optional flag arguments to the pair_style command are\nincluded, the LJ and torsional terms can be turned off. Note that\nboth or neither of the flags must be included. If both of the LJ an\ntorsional terms are turned off, it becomes the second-generation REBO\npotential, with a small caveat on the spline fitting procedure\nmentioned below. This can be specified directly as pair_style *rebo*\nwith no additional arguments.\n\nThe detailed formulas for this potential are given in\n**Stuart**; here we provide only a brief description.\n\nThe \\(E^{\\text{REBO}}\\) term has the same functional form as the hydrocarbon REBO\npotential developed in **Brenner**. The coefficients for\n\\(E^{\\text{REBO}}\\) in AIREBO are essentially the same as Brenner's potential, but\na few fitted spline values are slightly different. For most cases the\n\\(E^{\\text{REBO}}\\) term in AIREBO will produce the same energies, forces and\nstatistical averages as the original REBO potential from which it was\nderived. The \\(E^{\\text{REBO}}\\) term in the AIREBO potential gives the model its\nreactive capabilities and only describes short-ranged C-C, C-H and H-H\ninteractions (\\(r < 2 \\mathring{\\textrm{A}}\\)). These interactions have strong\ncoordination-dependence through a bond order parameter, which adjusts\nthe attraction between the I,J atoms based on the position of other\nnearby atoms and thus has 3- and 4-body dependence.\n\nThe \\(E^{\\text{LJ}}\\) term adds longer-ranged interactions (\\(2 < r < \\text{cutoff}\\)) using a\nform similar to the standard [Lennard Jones potential ](https://docs.lammps.org/pair_lj.html).\nThe \\(E^{\\text{LJ}}\\) term in AIREBO contains a series of switching functions so\nthat the short-ranged LJ repulsion (\\(1/r^{12}\\)) does not interfere with\nthe energetics captured by the \\(E^{\\text{REBO}}\\) term. The extent of the \\(E^{\\text{LJ}}\\)\ninteractions is determined by the *cutoff* argument to the pair_style\ncommand which is a scale factor. For each type pair (C-C, C-H, H-H)\nthe cutoff is obtained by multiplying the scale factor by the sigma\nvalue defined in the potential file for that type pair. In the\nstandard AIREBO potential, \\(\\sigma_{CC} = 3.4 \\mathring{\\textrm{A}}\\), so with a scale\nfactor of 3.0 (the argument in pair_style), the resulting \\(E^{\\text{LJ}}\\) cutoff\nwould be \\(10.2 \\mathring{\\textrm{A}}\\).\n\nBy default, the longer-ranged interaction is smoothly switched off\nbetween 2.16 and 3.0 \\(\\sigma\\). By specifying *cutoff_min* in addition\nto *cutoff*, the switching can be configured to take place between\n*cutoff_min* and *cutoff* . *cutoff_min* can only be specified if all\noptional arguments are given.\n\nThe \\(E^{\\text{TORSION}}\\) term is an explicit 4-body potential that describes\nvarious dihedral angle preferences in hydrocarbon configurations.\n\n----------\n\nOnly a single pair_coeff command is used with the *airebo*, *airebo*\nor *rebo* style which specifies an AIREBO, REBO, or AIREBO-M potential\nfile with parameters for C and H. Note that as of LAMMPS version\n15 May 2019 the *rebo* style in LAMMPS uses its own potential\nfile (CH.rebo). These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of AIREBO elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has 4 atom types and you want\nthe first 3 to be C, and the fourth to be H, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * CH.airebo C C C H\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three C arguments map LAMMPS atom types 1,2,3 to the C\nelement in the AIREBO file. The final H argument maps LAMMPS atom\ntype 4 to the H element in the AIREBO file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen a *airebo* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nThe parameters/coefficients for the AIREBO potentials are listed in\nthe CH.airebo file to agree with the original **Stuart**\npaper. Thus the parameters are specific to this potential and the way\nit was fit, so modifying the file should be done cautiously.\n\nSimilarly the parameters/coefficients for the AIREBO-M potentials are\nlisted in the CH.airebo-m file to agree with the **OConnor**\npaper. Thus the parameters are specific to this potential and the way\nit was fit, so modifying the file should be done cautiously. The\nAIREBO-M Morse potentials were parameterized using a cutoff of\n3.0 (\\(\\sigma\\)). Modifying this cutoff may impact simulation accuracy.\n\nThis pair style tallies a breakdown of the total AIREBO potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 3.\nThe 3 values correspond to the following sub-categories:\n\n1. \\(E_{\\text{REBO}}\\) = REBO energy\n2. \\(E_{\\text{LJ}}\\) = Lennard-Jones energy\n3. \\(E_{\\text{TORSION}}\\) = Torsion energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair airebo\nvariable REBO equal c_0[1]\nvariable LJ equal c_0[2]\nvariable TORSION equal c_0[3]\nthermo_style custom step temp epair v_REBO v_LJ v_TORSION\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThese pair styles do not write their information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stuart)** Stuart, Tutein, Harrison, J Chem Phys, 112, 6472-6486\n(2000). \n \n**(OConnor)** O'Connor et al., J. Chem. Phys. 142, 024903 (2015). \n \n**(Brenner)** Brenner, Shenderova, Harrison, Stuart, Ni, Sinnott, J\nPhysics: Condensed Matter, 14, 783-802 (2002). \n \n**(OConnor)** O'Connor et al., J. Chem. Phys. 142, 024903 (2015). \n ", - "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair potentials require the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe CH.airebo and CH.airebo-m potential files provided with LAMMPS (see\nthe potentials directory) are parameterized for metal [units](https://docs.lammps.org/units.html). You can use the pair styles with *any* LAMMPS units, but you\nwould need to create your own AIREBO or AIREBO-M potential file with\ncoefficients listed in the appropriate units, if your simulation does\nnot use \"metal\" units.\n\nThe pair styles provided here **only** support potential files parameterized\nfor the elements carbon and hydrogen (designated with \"C\" and \"H\" in the\n*pair_coeff* command. Using potential files for other elements will trigger\nan error.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/awpmd = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/awpmd\n```\n", + "html_filename": "fix_nve_awpmd.html", + "short_description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [Antisymmetrized Wave Packet Molecular Dynamics ](https://docs.lammps.org/pair_awpmd.html) model", + "description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [Antisymmetrized Wave Packet Molecular Dynamics ](https://docs.lammps.org/pair_awpmd.html) model. V is volume; E is energy.\nThis creates a system trajectory consistent with the microcanonical\nensemble.\n\nThe operation of this fix is exactly like that described by the [fix nve ](https://docs.lammps.org/fix_nve.html) command, except that the width and width-velocity of\nthe electron wave functions are also updated.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the AWPMD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n" }, { "command": [ - "dihedral_style zero" + "pair_style born/gauss" ], "syntax": [ - "dihedral_style zero keyword" + "pair_style born/gauss cutoff" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "zero", + "arg": "born/gauss", "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", - "examples": "\n```lmps\ndihedral_style zero\ndihedral_style zero nocoeff\ndihedral_coeff *\n```\n", - "html_filename": "dihedral_zero.html", - "short_description": "Using a dihedral style of zero means dihedral forces and energies are\nnot computed, but the geometry of dihedral quadruplets is still\naccessible to other commands", - "description": "Using a dihedral style of zero means dihedral forces and energies are\nnot computed, but the geometry of dihedral quadruplets is still\naccessible to other commands.\n\nAs an example, the [compute dihedral/local ](https://docs.lammps.org/compute_dihedral_local.html) command can be used to\ncompute the theta values for the list of quadruplets of dihedral atoms\nlisted in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no dihedral style is defined, this command cannot be\nused.\n\nThe optional *nocoeff* flag allows to read data files with a DihedralCoeff\nsection for any dihedral style. Similarly, any dihedral_coeff commands\nwill only be checked for the dihedral type number and the rest ignored.\n\nNote that the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command must be\nused for all dihedral types, though no additional values are\nspecified.\n", - "restrictions": " none\n", - "related": "none\n\n\n[dihedral_style none ](https://docs.lammps.org/dihedral_none.html)\n" + "parameters": "* born/gauss = name of the pair style\n* cutoff = global cutoff (distance units) \n", + "examples": "\n```lmps\npair_style born/gauss 10.0\npair_coeff 1 1 1 1 8.2464e13 12.48 0.042644277 0.44 3.56\n```\n", + "html_filename": "pair_born_gauss.html", + "short_description": "\nPair style *born/gauss* computes pairwise interactions from a combination of a Born-Mayer\nrepulsive term and a Gaussian attractive term according to **Bomont**:\n\\[\n E = A_0 \\exp \\left( -\\alpha r \\right) - A_1 \\exp\\left[ -\\beta \\left(r - r_0 \\right)^2 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "\nPair style *born/gauss* computes pairwise interactions from a combination of a Born-Mayer\nrepulsive term and a Gaussian attractive term according to **Bomont**:\n\\[\n E = A_0 \\exp \\left( -\\alpha r \\right) - A_1 \\exp\\left[ -\\beta \\left(r - r_0 \\right)^2 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(A_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(A_1\\) (energy units)\n* \\(\\beta\\) (1/(distance units)^2)\n* \\(r_0\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all I,J\npairs must be specified explicitly.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table options are not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bomont)** Bomont, Bretonnet, J. Chem. Phys. 124, 054504 (2006) \n ", + "restrictions": "This pair style is only enabled if LAMMPS was built with the EXTRA-PAIR\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html)\n" }, { "command": [ - "compute ke/atom" + "fix mvv/dpd", + "fix mvv/edpd" ], "syntax": [ - "compute ID group-ID ke/atom" + "fix ID group-ID mvv/dpd lambda", + "fix ID group-ID mvv/edpd lambda", + "fix ID group-ID mvv/tdpd lambda" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -26015,351 +24899,264 @@ export const command_docs = [ "choices": [] }, { - "arg": "ke/atom", + "arg": "mvv/dpd", "type": 1, "choices": [] + }, + { + "arg": "lambda", + "type": 2, + "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all ke/atom\n```\n", - "html_filename": "compute_ke_atom.html", - "short_description": "Define a computation that calculates the per-atom translational\nkinetic energy for each atom in a group", - "description": "Define a computation that calculates the per-atom translational\nkinetic energy for each atom in a group.\n\nThe kinetic energy is simply \\(\\frac12 m v^2\\), where \\(m\\) is the mass\nand \\(v\\) is the velocity of each atom.\n\nThe value of the kinetic energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" -}, -{ - "command": [ - "pair_style mliap", - "pair_style mliap/kk" - ], - "syntax": [ - "pair_style mliap ... keyword values ..." - ], - "args": [ + ], [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "mliap", - "type": 3, - "choices": [ - "mliap", - "mliap/kk" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "unified", - "type": 3, - "choices": [ - "model", - "descriptor", - "unified" - ] + "arg": "group-ID", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "mvv/edpd", + "type": 2, + "choices": [] + }, + { + "arg": "lambda", "type": 2, "choices": [] } - ] - ], - "parameters": "* one or two keyword/value pairs must be appended\n* keyword = model or descriptor or unified \n *        model values = style filename \n         style = linear or quadratic or nn or mliappy \n         filename = name of file containing model definitions \n *        descriptor values = style filename \n         style = sna or so3 or ace \n         filename = name of file containing descriptor definitions \n *        unified values = filename ghostneigh_flag \n         filename = name of file containing serialized unified Python object \n         ghostneigh_flag = 0/1 to turn off/on inclusion of ghost neighbors in neighbors list \n", - "examples": "\n```lmps\npair_style mliap model linear InP.mliap.model descriptor sna InP.mliap.descriptor\npair_style mliap model quadratic W.mliap.model descriptor sna W.mliap.descriptor\npair_style mliap model nn Si.nn.mliap.model descriptor so3 Si.nn.mliap.descriptor\npair_style mliap model mliappy ACE_NN_Pytorch.pt descriptor ace ccs_single_element.yace\npair_style mliap unified mliap_unified_lj_Ar.pkl 0\npair_coeff * * In P\n```\n", - "html_filename": "pair_mliap.html", - "short_description": "Pair style *mliap* provides a general interface to families of\nmachine-learning interatomic potentials", - "description": "Pair style *mliap* provides a general interface to families of\nmachine-learning interatomic potentials. It allows separate definitions\nof the interatomic potential functional form (*model*) and the geometric\nquantities that characterize the atomic positions (*descriptor*).\n\nBy defining *model* and *descriptor* separately, it is possible to use\nmany different models with a given descriptor, or many different\ndescriptors with a given model. The pair style currently supports *sna*,\n*so3* and *ace* descriptor styles, but it is straightforward to add new\ndescriptor styles. By using the *unified* keyword, it is possible to\ndefine a Python model that combines functionalities of both *model* and\n*descriptor*.\n\nThe SNAP descriptor style *sna* is the same as that used by\n[pair_style snap ](https://docs.lammps.org/pair_snap.html), including the linear, quadratic, and\nchem variants. The available models are *linear*, *quadratic*, *nn*,\nand *mliappy*. The *mliappy* style can be used to couple python models,\ne.g. PyTorch neural network energy models, and requires building LAMMPS\nwith the PYTHON package (see below). In order to train a model, it is\nuseful to know the gradient or derivative of energy, force, and stress\nw.r.t. model parameters. This information can be accessed using the\nrelated [compute mliap ](https://docs.lammps.org/compute_mliap.html) command.\n\nThe descriptor style *so3* is a descriptor that is derived from the\nthe smooth SO(3) power spectrum with the explicit inclusion of a radial\nbasis **Bartok2013** and **Zagaceta2020**.\nThe available models are *linear* and *nn*.\n\nThe descriptor style *ace* is a class of highly general atomic\ndescriptors, atomic cluster expansion descriptors (ACE) from\n:ref:`(Drautz) `, that include a radial basis, an angular\nbasis, and bases for other variables (such as chemical species) if\nrelevant. In descriptor style *ace*, the *ace* descriptors may be\ndefined up to an arbitrary body order. This descriptor style is the same\nas that used in [pair_style pace ](https://docs.lammps.org/pair_pace.html) and [computepace ](https://docs.lammps.org/compute_pace.html). The available models with *ace* in ML-IAP are\n*linear* and *mliappy*. The *ace* descriptors and models require\nbuilding LAMMPS with the ML-PACE package (see below). The *mliappy*\nmodel style may be used with *ace* descriptors, but it requires that\nLAMMPS is also built with the PYTHON package. As with other model\nstyles, the *mliappy* model style can be used to couple arbitrary python\nmodels that use the *ace* descriptors such as Pytorch NNs. Note that\n*ALL* mliap model styles with *ace* descriptors require that descriptors\nand hyperparameters are supplied in a `.yace` or `.ace` file, similar to\n[compute pace ](https://docs.lammps.org/compute_pace.html).\n\nThe pair_style *mliap* command must be followed by two keywords *model*\nand *descriptor* in either order, or the one keyword *unified*. A\nsingle *pair_coeff* command is also required. The first 2 arguments\nmust be \\* \\* so as to span all LAMMPS atom types. This is followed by\na list of N arguments that specify the mapping of MLIAP element names to\nLAMMPS atom types, where N is the number of LAMMPS atom types.\n\nThe *model* keyword is followed by the model style. This is followed by\na single argument specifying the model filename containing the\nparameters for a set of elements. The model filename usually ends in\nthe *.mliap.model* extension. It may contain parameters for many\nelements. The only requirement is that it contain at least those element\nnames appearing in the *pair_coeff* command.\n\nThe top of the model file can contain any number of blank and comment\nlines (start with #), but follows a strict format after that. The first\nnon-blank non-comment line must contain two integers:\n\n* nelems = Number of elements\n* nparams = Number of parameters\n\nWhen the *model* keyword is *linear* or *quadratic*, this is followed by\none block for each of the *nelem* elements. Each block consists of\n*nparams* parameters, one per line. Note that this format is similar,\nbut not identical to that used for the [pair_style snap](https://docs.lammps.org/pair_snap.html) coefficient file. Specifically, the line containing the\nelement weight and radius is omitted, since these are handled by the\n*descriptor*.\n\nWhen the *model* keyword is *nn* (neural networks), the model file can\ncontain blank and comment lines (start with #) anywhere. The second\nnon-blank non-comment line must contain the string NET, followed by two\nintegers:\n\n* ndescriptors = Number of descriptors\n* nlayers = Number of layers (including the hidden layers and the output layer)\n\nand followed by a sequence of a string and an integer for each layer:\n\n* Activation function (linear, sigmoid, tanh or relu)\n* nnodes = Number of nodes\n\nThis is followed by one block for each of the *nelem* elements. Each\nblock consists of *scale0* minimum value, *scale1* (maximum - minimum)\nvalue, in order to normalize the descriptors, followed by *nparams*\nparameters, including *bias* and *weights* of the model, starting with\nthe first node of the first layer and so on, with a maximum of 30 values\nper line.\n\nThe detail of *nn* module implementation can be found at **Yanxon2020**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on mliappy models \n >When the *model* keyword is *mliappy*, if the filename ends in '.pt',\n > or '.pth', it will be loaded using pytorch; otherwise, it will be\n > loaded as a pickle file. To load a model from memory (i.e. an\n > existing python object), specify the filename as \"LATER\", and then\n > call `lammps.mliap.load_model(model)` from python before using the\n > pair style. When using LAMMPS via the library mode, you will need to\n > call `lammps.mliappy.activate_mliappy(lmp)` on the active LAMMPS\n > object before the pair style is defined. This call locates and loads\n > the mliap-specific python module that is built into LAMMPS. \n > \n\nThe *descriptor* keyword is followed by a descriptor style, and additional arguments.\nCurrently three descriptor styles are available: *sna*, *so3*, and *ace*.\n\n- *sna* indicates the bispectrum component descriptors used by the Spectral\n Neighbor Analysis Potential (SNAP) potentials of [pair_style snap ](https://docs.lammps.org/pair_snap.html). A single additional argument specifies the descriptor\n filename containing the parameters and setting used by the SNAP\n descriptor. The descriptor filename usually ends in the\n *.mliap.descriptor* extension.\n\n- *so3* indicated the power spectrum component descriptors. A single additional\n argument specifies the descriptor filename containing the parameters and setting.\n\n- *ace* indicates the atomic cluster expansion (ACE) descriptors. A single\n additional argument specifies the filename containing parameters, settings, and\n definitions of the ace descriptors (through tabulated basis function indices and\n corresponding generalized Clebsch-Gordan coefficients) in the ctilde file format,\n e.g. in the potential file format with `*.ace` or `*.yace` extensions from\n [pair_style pace ](https://docs.lammps.org/pair_pace.html). Note that unlike the potential file, the\n Clebsch-Gordan coefficients in the descriptor file supplied should *NOT* be\n multiplied by linear or square root embedding terms.\n\n\nThe SNAP descriptor file closely follows the format of the\n[pair_style snap ](https://docs.lammps.org/pair_snap.html) parameter file. The file can contain\nblank and comment lines (start with #) anywhere. Each non-blank\nnon-comment line must contain one keyword/value pair. The required\nkeywords are *rcutfac* and *twojmax* . There are many optional keywords\nthat are described on the [pair_style snap ](https://docs.lammps.org/pair_snap.html) doc page.\nIn addition, the SNAP descriptor file must contain the *nelems*,\n*elems*, *radelems*, and *welems* keywords. The *nelems* keyword\nspecifies the number of elements provided in the other three keywords.\nThe *elems* keyword is followed by a list of *nelems* element names that\nmust include the element names appearing in the *pair_coeff* command,\nbut can contain other names too. Similarly, the *radelems* and *welems*\nkeywords are followed by lists of *nelems* numbers giving the element\nradius and element weight of each element. Obviously, the order in which\nthe elements are listed must be consistent for all three keywords.\n\nThe SO3 descriptor file is similar to the SNAP descriptor except that it\ncontains a few more arguments (e.g., *nmax* and *alpha*). The preparation\nof SO3 descriptor and model files can be done with the\n[Pyxtal_FF](https://github.com/qzhu2017/PyXtal_FF) package.\n\nThe ACE descriptor file differs from the SNAP and SO3 files. It more\nclosely resembles the potential file format for linear or square-root\nembedding ACE potentials used in the [pair_style pace ](https://docs.lammps.org/pair_pace.html).\nAs noted above, the key difference is that the Clebsch-Gordan\ncoefficients in the descriptor file with *mliap descriptor ace* are\n*NOT* multiplied by linear or square root embedding terms. In other\nwords,the model is separated from the descriptor definitions and\nhyperparameters. In [pair_style pace ](https://docs.lammps.org/pair_pace.html), they are\ncombined. The ACE descriptor files required by *mliap* are generated\nautomatically in [FitSNAP](https://github.com/FitSNAP/FitSNAP) during\nlinear, pytorch, etc. ACE model fitting. Additional tools are provided\nthere to prepare *ace* descriptor files and hyperparameters before model\nfitting. The *ace* descriptor files can also be extracted from ACE\nmodel fits in [python-ace.](https://github.com/ICAMS/python-ace). It\nis important to note that order of the types listed in [pair_coeff](https://docs.lammps.org/pair_coeff.html) must match the order of the elements/types listed in the\nACE descriptor file for all *mliap* styles when using *ace* descriptors.\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for these *model* and *descriptor* files.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To significantly reduce SO3 descriptor/force calculation time,\n > some properties are pre-computed and reused during the calculation.\n > These can consume a significant amount of RAM for simulations of\n > larger systems since their size depends on the total number of\n > neighbors per MPI process. \n > \n\n\nThe *unified* keyword is followed by an argument specifying the\nfilename containing the serialized unified Python object and the \"ghostneigh\" toggle\n(0/1) to disable/enable the construction of neighbors lists including\nneighbors of ghost atoms. If the filename ends in '.pt', or '.pth', it will be loaded\nusing pytorch; otherwise, it will be loaded as a pickle file.\nIf ghostneigh is enabled, it is recommended to set [comm_modify ](https://docs.lammps.org/comm_modify.html)\ncutoff manually, such as in the following example.\n\n```lmps\nvariable ninteractions equal 2\nvariable cutdist equal 7.5\nvariable skin equal 1.0\nvariable commcut equal (${ninteractions}*${cutdist})+${skin}\nneighbor ${skin} bin\ncomm_modify cutoff ${commcut}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To load a model from memory\n > (i.e. an existing python object), call `lammps.mliap.load_unified(unified)`\n > from python, and then specify the filename as \"EXISTS\". When using LAMMPS via\n > the library mode, you will need to call `lammps.mliappy.activate_mliappy(lmp)`\n > on the active LAMMPS object before the pair style is defined. This call locates\n > and loads the mliap-specific python module that is built into LAMMPS. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bartok2013)** Bartok, Kondor, Csanyi, Phys Rev B, 87, 184115 (2013). \n \n**(Zagaceta2020)** Zagaceta, Yanxon, Zhu, J Appl Phys, 128, 045113 (2020). \n \n**(Yanxon2020)** Yanxon, Zagaceta, Tang, Matteson, Zhu, Mach. Learn.: Sci. Technol. 2, 027001 (2020). \n ", - "restrictions": "This pair style is part of the ML-IAP package. It is only enabled if\nLAMMPS was built with that package. In addition, building LAMMPS with\nthe ML-IAP package requires building LAMMPS with the ML-SNAP package.\nThe *mliappy* model requires building LAMMPS with the PYTHON package.\nThe *ace* descriptor requires building LAMMPS with the ML-PACE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. Note\nthat `pair_mliap/kk` acceleration will *not* invoke the `kk`\naccelerated variants of SNAP or ACE descriptors.\n", - "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html), [compute mliap ](https://docs.lammps.org/compute_mliap.html)\n" -}, -{ - "command": [ - "kspace_style" - ], - "syntax": [ - "kspace_style style value" - ], - "args": [ + ], [ { - "arg": "kspace_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "scafacos", - "type": 3, - "choices": [ - "none", - "ewald", - "ewald/dipole", - "ewald/dipole/spin", - "ewald/disp", - "ewald/disp/dipole", - "ewald/omp", - "ewald/electrode", - "pppm", - "pppm/cg", - "pppm/disp", - "pppm/tip4p", - "pppm/stagger", - "pppm/disp/tip4p", - "pppm/gpu", - "pppm/intel", - "pppm/disp/intel", - "pppm/kk", - "pppm/omp", - "pppm/cg/omp", - "pppm/disp/tip4p/omp", - "pppm/tip4p/omp", - "pppm/dielectic", - "pppm/disp/dielectric", - "pppm/electrode", - "pppm/electrode/intel", - "msm", - "msm/cg", - "msm/omp", - "msm/cg/omp", - "msm/dielectric", - "scafacos" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "mvv/tdpd", + "type": 2, + "choices": [] + }, + { + "arg": "lambda", "type": 2, "choices": [] } ] ], - "parameters": "* style = none or ewald or ewald/dipole or ewald/dipole/spin or ewald/disp or ewald/disp/dipole or ewald/omp or ewald/electrode or pppm or pppm/cg or pppm/disp or pppm/tip4p or pppm/stagger or pppm/disp/tip4p or pppm/gpu or pppm/intel or pppm/disp/intel or pppm/kk or pppm/omp or pppm/cg/omp or pppm/disp/tip4p/omp or pppm/tip4p/omp or pppm/dielectic or pppm/disp/dielectric or pppm/electrode or pppm/electrode/intel or msm or msm/cg or msm/omp or msm/cg/omp or msm/dielectric or scafacos \n *        none value = none \n *        ewald value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/dipole value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/dipole/spin value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/disp value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/disp/dipole value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/omp value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/electrode value = accuracy \n         accuracy = desired relative error in forces \n *        pppm value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/cg values = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        *pppm/dipole* value = accuracy \n         accuracy = desired relative error in forces \n *        *pppm/dipole/spin* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/tip4p value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/tip4p value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/gpu value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/intel value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/intel value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/kk value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/cg/omp values = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        *pppm/disp/omp* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/tip4p/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/tip4p/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/stagger value = accuracy \n         accuracy = desired relative error in forces \n *        *pppm/dielectric* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/dielectric value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/electrode value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/electrode/intel value = accuracy \n         accuracy = desired relative error in forces \n *        msm value = accuracy \n         accuracy = desired relative error in forces \n *        msm/cg value = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        msm/omp value = accuracy \n         accuracy = desired relative error in forces \n *        msm/cg/omp value = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        msm/dielectric value = accuracy \n         accuracy = desired relative error in forces \n *        scafacos values = method accuracy \n         method = fmm or p2nfft or p3m or ewald or direct \n         accuracy = desired relative error in forces \n", - "examples": "\n```lmps\nkspace_style pppm 1.0e-4\nkspace_style pppm/cg 1.0e-5 1.0e-6\nkspace_style msm 1.0e-4\nkspace_style scafacos fmm 1.0e-4\nkspace_style none\n```\nUsed in input scripts:\n\n```\nexamples/peptide/in.peptide\n```\n", - "html_filename": "kspace_style.html", - "short_description": "Define a long-range solver for LAMMPS to use each timestep to compute\nlong-range Coulombic interactions or long-range \\(1/r^6\\) interactions", - "description": "Define a long-range solver for LAMMPS to use each timestep to compute\nlong-range Coulombic interactions or long-range \\(1/r^6\\) interactions.\nMost of the long-range solvers perform their computation in K-space,\nhence the name of this command.\n\nWhen such a solver is used in conjunction with an appropriate pair\nstyle, the cutoff for Coulombic or \\(1/r^N\\) interactions is effectively\ninfinite. If the Coulombic case, this means each charge in the system\ninteracts with charges in an infinite array of periodic images of the\nsimulation domain.\n\nNote that using a long-range solver requires use of a matching [pair style ](https://docs.lammps.org/pair_style.html) to perform consistent short-range pairwise\ncalculations. This means that the name of the pair style contains a\nmatching keyword to the name of the KSpace style, as in this table:\n\n| | |\n|---|---|\n| Pair style | KSpace style |\n| coul/long | ewald or pppm |\n| coul/msm | msm |\n| lj/long or buck/long | disp (for dispersion) |\n| tip4p/long | tip4p |\n| dipole/long | dipole |\n\n----------\n\nThe *ewald* style performs a standard Ewald summation as described in\nany solid-state physics text.\n\nThe *ewald/disp* style adds a long-range dispersion sum option for\n\\(1/r^6\\) potentials and is useful for simulation of interfaces\n**Veld**. It also performs standard Coulombic Ewald summations,\nbut in a more efficient manner than the *ewald* style. The \\(1/r^6\\)\ncapability means that Lennard-Jones or Buckingham potentials can be\nused without a cutoff, i.e. they become full long-range potentials.\n\nThe *ewald/disp/dipole* style can also be used with point-dipoles, see\n**Toukmaji**.\n\nThe *ewald/dipole* style adds long-range standard Ewald summations\nfor dipole-dipole interactions, see **Toukmaji**.\n\nThe *ewald/dipole/spin* style adds long-range standard Ewald\nsummations for magnetic dipole-dipole interactions between\nmagnetic spins.\n\n----------\n\nThe *pppm* style invokes a particle-particle particle-mesh solver\n**Hockney** which maps atom charge to a 3d mesh, uses 3d FFTs\nto solve Poisson's equation on the mesh, then interpolates electric\nfields on the mesh points back to the atoms. It is closely related to\nthe particle-mesh Ewald technique (PME) **Darden** used in\nAMBER and CHARMM. The cost of traditional Ewald summation scales as\n\\(N^{\\frac{3}{2}}\\) where \\(N\\) is the number of atoms in the system. The PPPM solver\nscales as \\(N \\log{N}\\) due to the FFTs, so it is almost always a faster\nchoice **Pollock**.\n\nThe *pppm/cg* style is identical to the *pppm* style except that it\nhas an optimization for systems where most particles are uncharged.\nSimilarly the *msm/cg* style implements the same optimization for *msm* .\nThe optional *smallq* argument defines the cutoff for the absolute\ncharge value which determines whether a particle is considered charged\nor not. Its default value is 1.0e-5.\n\nThe *pppm/dipole* style invokes a particle-particle particle-mesh solver\nfor dipole-dipole interactions, following the method of **Cerda2008**.\n\nThe *pppm/dipole/spin* style invokes a particle-particle particle-mesh solver\nfor magnetic dipole-dipole interactions between magnetic spins.\n\nThe *pppm/tip4p* style is identical to the *pppm* style except that it\nadds a charge at the massless fourth site in each TIP4P water molecule.\nIt should be used with [pair styles ](https://docs.lammps.org/pair_style.html) with a\n*tip4p/long* in their style name.\n\nThe *pppm/stagger* style performs calculations using two different\nmeshes, one shifted slightly with respect to the other. This can\nreduce force aliasing errors and increase the accuracy of the method\nfor a given mesh size. Or a coarser mesh can be used for the same\ntarget accuracy, which saves CPU time. However, there is a trade-off\nsince FFTs on two meshes are now performed which increases the\ncomputation required. See **Cerutti**, **Neelov**,\nand **Hockney** for details of the method.\n\nFor high relative accuracy, using staggered PPPM allows the mesh size\nto be reduced by a factor of 2 in each dimension as compared to\nregular PPPM (for the same target accuracy). This can give up to a 4x\nspeedup in the KSpace time (8x less mesh points, 2x more expensive).\nHowever, for low relative accuracy, the staggered PPPM mesh size may\nbe essentially the same as for regular PPPM, which means the method\nwill be up to 2x slower in the KSpace time (simply 2x more expensive).\nFor more details and timings, see the [Speed tips ](https://docs.lammps.org/Speed_tips.html) doc\npage.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *pppm/stagger* may not give the same increase in the\n > accuracy of energy and pressure as it does in forces, so some caution\n > must be used if energy and/or pressure are quantities of interest,\n > such as when using a barostat. \n > \n\n----------\n\nThe *pppm/disp* and *pppm/disp/tip4p* styles add a mesh-based long-range\ndispersion sum option for 1/r\\^6 potentials **Isele-Holder2012**,\nsimilar to the *ewald/disp* style. The 1/r\\^6 capability means\nthat Lennard-Jones or Buckingham potentials can be used without a cutoff,\ni.e. they become full long-range potentials.\n\nFor these styles, you will possibly want to adjust the default choice\nof parameters by using the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) command.\nThis can be done by either choosing the Ewald and grid parameters, or\nby specifying separate accuracies for the real and kspace\ncalculations. When not making any settings, the simulation will stop\nwith an error message. Further information on the influence of the\nparameters and how to choose them is described in\n**Isele-Holder2012**,\n**Isele-Holder2013** and the [Howto dispersion ](https://docs.lammps.org/Howto_dispersion.html) doc page.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All of the PPPM styles can be used with single-precision FFTs by\n > using the compiler switch -DFFT_SINGLE for the FFT_INC setting in your\n > low-level Makefile. This setting also changes some of the PPPM\n > operations (e.g. mapping charge to mesh and interpolating electric\n > fields to particles) to be performed in single precision. This option\n > can speed-up long-range calculations, particularly in parallel or on\n > GPUs. The use of the -DFFT_SINGLE flag is discussed on the [Build settings ](https://docs.lammps.org/Build_settings.html) doc page. MSM does not currently support\n > the -DFFT_SINGLE compiler switch. \n > \n\n----------\n\nThe *electrode* styles add methods that are required for the constant potential\nmethod implemented in [fix electrode/* ](https://docs.lammps.org/fix_electrode.html). The styles\n*ewald/electrode*, *pppm/electrode* and *pppm/electrode/intel* are available.\nThese styles do not support the `kspace_modify slab nozforce` command.\n\n----------\n\nThe *msm* style invokes a multi-level summation method MSM solver,\n**Hardy2006** or **Hardy2009**, which maps atom charge\nto a 3d mesh, and uses a multi-level hierarchy of coarser and coarser\nmeshes on which direct Coulomb solvers are done. This method does not\nuse FFTs and scales as \\(N\\). It may therefore be faster than the other\nK-space solvers for relatively large problems when running on large\ncore counts. MSM can also be used for non-periodic boundary conditions\nand for mixed periodic and non-periodic boundaries.\n\nMSM is most competitive versus Ewald and PPPM when only relatively\nlow accuracy forces, about 1e-4 relative error or less accurate,\nare needed. Note that use of a larger Coulombic cutoff (i.e. 15\nAngstroms instead of 10 Angstroms) provides better MSM accuracy for\nboth the real space and grid computed forces.\n\nCurrently calculation of the full pressure tensor in MSM is expensive.\nUsing the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) *pressure/scalar yes*\ncommand provides a less expensive way to compute the scalar pressure\n(Pxx + Pyy + Pzz)/3.0. The scalar pressure can be used, for example,\nto run an isotropic barostat. If the full pressure tensor is needed,\nthen calculating the pressure at every timestep or using a fixed\npressure simulation with MSM will cause the code to run slower.\n\n----------\n\nThe *scafacos* style is a wrapper on the `ScaFaCoS Coulomb solver\nlibrary `_ which provides a variety of solver\nmethods which can be used with LAMMPS. The paper by **Sutmann2014** gives an overview of ScaFaCoS.\n\nScaFaCoS was developed by a consortium of German research facilities\nwith a BMBF (German Ministry of Science and Education) funded project\nin 2009-2012. Participants of the consortium were the Universities of\nBonn, Chemnitz, Stuttgart, and Wuppertal as well as the\nForschungszentrum Juelich.\n\nThe library is available for download at \"http://scafacos.de\" or can\nbe cloned from the git-repository\n\"https://github.com/scafacos/scafacos.git\".\n\nIn order to use this KSpace style, you must download and build the\nScaFaCoS library, then build LAMMPS with the SCAFACOS package\ninstalled package which links LAMMPS to the ScaFaCoS library.\nSee details on :ref:`this page `.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all\n > Coulombic interactions, both short- and long-range. Thus you should\n > NOT use a Coulombic pair style when using kspace_style scafacos. This\n > also means the total Coulombic energy (short- and long-range) will be\n > tallied for [thermodynamic output ](https://docs.lammps.org/thermo_style.html) command as part\n > of the *elong* keyword; the *ecoul* keyword will be zero. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >See the current restriction below about use of ScaFaCoS in\n > LAMMPS with molecular charged systems or the TIP4P water model. \n > \n\nThe specified *method* determines which ScaFaCoS algorithm is used.\nThese are the ScaFaCoS methods currently available from LAMMPS:\n\n* *fmm* = Fast Multi-Pole method\n* *p2nfft* = FFT-based Coulomb solver\n* *ewald* = Ewald summation\n* *direct* = direct O(N\\^2) summation\n* *p3m* = PPPM\n\nWe plan to support additional ScaFaCoS solvers from LAMMPS in the\nfuture. For an overview of the included solvers, refer to\n**Sutmann2013**\n\nThe specified *accuracy* is similar to the accuracy setting for other\nLAMMPS KSpace styles, but is passed to ScaFaCoS, which can interpret\nit in different ways for different methods it supports. Within the\nScaFaCoS library the *accuracy* is treated as a tolerance level\n(either absolute or relative) for the chosen quantity, where the\nquantity can be either the Columic field values, the per-atom Columic\nenergy or the total Columic energy. To select from these options, see\nthe [kspace_modify scafacos accuracy ](https://docs.lammps.org/kspace_modify.html) doc page.\n\nThe [kspace_modify scafacos ](https://docs.lammps.org/kspace_modify.html) command also explains\nother ScaFaCoS options currently exposed to LAMMPS.\n\n----------\n\nThe specified *accuracy* determines the relative RMS error in per-atom\nforces calculated by the long-range solver. It is set as a\ndimensionless number, relative to the force that two unit point\ncharges (e.g. 2 monovalent ions) exert on each other at a distance of\n1 Angstrom. This reference value was chosen as representative of the\nmagnitude of electrostatic forces in atomic systems. Thus an accuracy\nvalue of 1.0e-4 means that the RMS error will be a factor of 10000\nsmaller than the reference force.\n\nThe accuracy setting is used in conjunction with the pairwise cutoff\nto determine the number of K-space vectors for style *ewald* or the\ngrid size for style *pppm* or *msm* .\n\nNote that style *pppm* only computes the grid size at the beginning of\na simulation, so if the length or triclinic tilt of the simulation\ncell increases dramatically during the course of the simulation, the\naccuracy of the simulation may degrade. Likewise, if the\n[kspace_modify slab ](https://docs.lammps.org/kspace_modify.html) option is used with\nshrink-wrap boundaries in the z-dimension, and the box size changes\ndramatically in z. For example, for a triclinic system with all three\ntilt factors set to the maximum limit, the PPPM grid should be\nincreased roughly by a factor of 1.5 in the y direction and 2.0 in the\nz direction as compared to the same system using a cubic orthogonal\nsimulation cell. One way to handle this issue if you have a long\nsimulation where the box size changes dramatically, is to break it\ninto shorter simulations (multiple [run ](https://docs.lammps.org/run.html) commands). This\nworks because the grid size is re-computed at the beginning of each\nrun. Another way to ensure the described accuracy requirement is met\nis to run a short simulation at the maximum expected tilt or length,\nnote the required grid size, and then use the\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html) *mesh* command to manually set the\nPPPM grid size to this value for the long run. The simulation then\nwill be \"too accurate\" for some portion of the run.\n\nRMS force errors in real space for *ewald* and *pppm* are estimated\nusing equation 18 of **Kolafa**, which is also referenced as\nequation 9 of **Petersen**. RMS force errors in K-space for\n*ewald* are estimated using equation 11 of **Petersen**,\nwhich is similar to equation 32 of **Kolafa**. RMS force\nerrors in K-space for *pppm* are estimated using equation 38 of\n**Deserno**. RMS force errors for *msm* are estimated\nusing ideas from chapter 3 of **Hardy2006**, with equation 3.197\nof particular note. When using *msm* with non-periodic boundary\nconditions, it is expected that the error estimation will be too\npessimistic. RMS force errors for dipoles when using *ewald/disp*\nor *ewald/dipole* are estimated using equations 33 and 46 of\n**Wang**. The RMS force errors for *pppm/dipole* are estimated\nusing the equations in **Cerda2008**.\n\nSee the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) command for additional\noptions of the K-space solvers that can be set, including a *force*\noption for setting an absolute RMS error in forces, as opposed to a\nrelative RMS error.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the GPU package, the *pppm/gpu* style performs charge assignment\n > and force interpolation calculations on the GPU. These processes\n > are performed either in single or double precision, depending on\n > whether the -DFFT_SINGLE setting was specified in your low-level\n > Makefile, as discussed above. The FFTs themselves are still\n > calculated on the CPU. If *pppm/gpu* is used with a GPU-enabled\n > pair style, part of the PPPM calculation can be performed\n > concurrently on the GPU while other calculations for non-bonded and\n > bonded force calculation are performed on the CPU. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the KOKKOS package, the *pppm/kk* style performs charge\n > assignment and force interpolation calculations, along with the FFTs\n > themselves, on the GPU or (optionally) threaded on the CPU when\n > using OpenMP and FFTW3. The specific FFT library is selected using\n > the FFT_KOKKOS CMake parameter. See the\n > [Build settings ](https://docs.lammps.org/Build_settings.html) doc page for how to select a\n > 3rd-party FFT library. \n > \n\n----------\n\n**(Veld)** In 't Veld, Ismail, Grest, J Chem Phys, 127, 144711 (2007). \n \n**(Toukmaji)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n \n**(Hockney)** Hockney and Eastwood, Computer Simulation Using Particles,\nAdam Hilger, NY (1989). \n \n**(Darden)** Darden, York, Pedersen, J Chem Phys, 98, 10089 (1993). \n \n**(Pollock)** Pollock and Glosli, Comp Phys Comm, 95, 93 (1996). \n \n**(Cerda2008)** Cerda, Ballenegger, Lenz, Holm, J Chem Phys 129, 234104 (2008) \n \n**(Cerutti)** Cerutti, Duke, Darden, Lybrand, Journal of Chemical Theory\nand Computation 5, 2322 (2009) \n \n**(Neelov)** Neelov, Holm, J Chem Phys 132, 234103 (2010) \n \n**(Isele-Holder2012)** Isele-Holder, Mitchell, Ismail, J Chem Phys, 137,\n174107 (2012). \n \n**(Isele-Holder2013)** Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail,\nJ Chem Theory Comput 9, 5412 (2013). \n \n**(Hardy2006)** David Hardy thesis: Multilevel Summation for the Fast\nEvaluation of Forces for the Simulation of Biomolecules, University of\nIllinois at Urbana-Champaign, (2006). \n \n**(Hardy2009)** Hardy, Stone, Schulten, Parallel Computing, 35, 164-177\n(2009). \n \n**(Sutmann2014)** G. Sutmann. ScaFaCoS - a Scalable library of Fast Coulomb Solvers for particle Systems.\n In Bajaj, Zavattieri, Koslowski, Siegmund, Proceedings of the Society of Engineering Science 51st Annual Technical Meeting. 2014. \n \n**(Sutmann2013)** Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013) \n \n**(Kolafa)** Kolafa and Perram, Molecular Simulation, 9, 351 (1992). \n \n**(Petersen)** Petersen, J Chem Phys, 103, 3668 (1995). \n \n**(Deserno)** Deserno and Holm, J Chem Phys, 109, 7694 (1998). \n \n**(Wang)** Wang and Holm, J Chem Phys, 115, 6277 (2001). \n ", - "restrictions": "Note that the long-range electrostatic solvers in LAMMPS assume conducting\nmetal (tinfoil) boundary conditions for both charge and dipole\ninteractions. Vacuum boundary conditions are not currently supported.\n\nThe *ewald/disp*, *ewald*, *pppm*, and *msm* styles support\nnon-orthogonal (triclinic symmetry) simulation boxes. However,\ntriclinic simulation cells may not yet be supported by all suffix\nversions of these styles.\n\nMost of the base kspace styles are part of the KSPACE package. They are\nonly enabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *msm/dielectric* and *pppm/dielectric* kspace styles are part of the\nDIELECTRIC package. They are only enabled if LAMMPS was built with\nthat package **and** the KSPACE package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor MSM, a simulation must be 3d and one can use any combination of\nperiodic, non-periodic, but not shrink-wrapped boundaries (specified\nusing the [boundary ](https://docs.lammps.org/boundary.html) command).\n\nFor Ewald and PPPM, a simulation must be 3d and periodic in all\ndimensions. The only exception is if the slab option is set with\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html), in which case the xy dimensions\nmust be periodic and the z dimension must be non-periodic.\n\nThe scafacos KSpace style will only be enabled if LAMMPS is built with\nthe SCAFACOS package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe use of ScaFaCos in LAMMPS does not yet support molecular charged\nsystems where the short-range Coulombic interactions between atoms in\nthe same bond/angle/dihedral are weighted by the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command. Likewise it does not\nsupport the \"TIP4P water style\" where a fictitious charge site is\nintroduced in each water molecule.\nFinally, the methods *p3m* and *ewald* do not support computing the\nvirial, so this contribution is not included.\n", - "related": "[kspace_modify ](https://docs.lammps.org/kspace_modify.html), [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html), [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html), [pair_style lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html), [pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mvv/dpd, mvv/edpd, mvv/tdpd = style name of this fix command\n* lambda = (optional) relaxation parameter (unitless) \n", + "examples": "\n```lmps\nfix 1 all mvv/dpd\nfix 1 all mvv/dpd 0.5\nfix 1 all mvv/edpd\nfix 1 all mvv/edpd 0.5\nfix 1 all mvv/tdpd\nfix 1 all mvv/tdpd 0.5\n```\n", + "html_filename": "fix_mvv_dpd.html", + "short_description": "Perform time integration using the modified velocity-Verlet (MVV)\nalgorithm to update position and velocity (fix mvv/dpd), or position,\nvelocity and temperature (fix mvv/edpd), or position, velocity and\nconcentration (fix mvv/tdpd) for particles in the group each timestep", + "description": "Perform time integration using the modified velocity-Verlet (MVV)\nalgorithm to update position and velocity (fix mvv/dpd), or position,\nvelocity and temperature (fix mvv/edpd), or position, velocity and\nconcentration (fix mvv/tdpd) for particles in the group each timestep.\n\nThe modified velocity-Verlet (MVV) algorithm aims to improve the\nstability of the time integrator by using an extrapolated version of\nthe velocity for the force evaluation:\n\\[\\begin{align*} \n v(t+\\frac{\\Delta t}{2}) = & v(t) + \\frac{\\Delta t}{2}\\cdot a(t) \\\\\n r(t+\\Delta t) = & r(t) + \\Delta t\\cdot v(t+\\frac{\\Delta t}{2}) \\\\\n a(t+\\Delta t) = & \\frac{1}{m}\\cdot F\\left[ r(t+\\Delta t), v(t) +\\lambda \\cdot \\Delta t\\cdot a(t)\\right] \\\\\n v(t+\\Delta t) = & v(t+\\frac{\\Delta t}{2}) + \\frac{\\Delta t}{2}\\cdot a(t+\\Delta t) \\end{align*} \\]\nwhere the parameter \\(\\lambda\\) depends on the\nspecific choice of DPD parameters, and needs to be tuned on a\ncase-by-case basis. Specification of a *lambda* value is optional.\nIf specified, the setting must be from 0.0 to 1.0. If not specified,\na default value of 0.5 is used, which effectively reproduces the\nstandard velocity-Verlet (VV) scheme. For more details, see\n**Groot2**.\n\nFix *mvv/dpd* updates the position and velocity of each atom. It can be\nused with the [pair_style mdpd ](https://docs.lammps.org/pair_mesodpd.html) command or other\npair styles such as [pair dpd ](https://docs.lammps.org/pair_dpd.html).\n\nFix *mvv/edpd* updates the per-atom temperature, in addition to position\nand velocity, and must be used with the [pair_style edpd](https://docs.lammps.org/pair_mesodpd.html) command.\n\nFix *mvv/tdpd* updates the per-atom chemical concentration, in addition\nto position and velocity, and must be used with the [pair_styletdpd ](https://docs.lammps.org/pair_mesodpd.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Groot2)** Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:\n10.1063/1.474784 \n ", + "restrictions": "These fixes are part of the DPD-MESO package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style mdpd ](https://docs.lammps.org/pair_mesodpd.html), [pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html),\n[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html)\n" }, { "command": [ - "fix nvt/body" + "pair_style sdpd/taitwater/isothermal" ], "syntax": [ - "fix ID group-ID nvt/body keyword value ..." + "pair_style sdpd/taitwater/isothermal temperature viscosity seed" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "sdpd/taitwater/isothermal", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "temperature", "type": 2, "choices": [] }, { - "arg": "nvt/body", - "type": 1, - "choices": [] - }, - { - "arg": "keyword", + "arg": "viscosity", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/body = style name of this fix command\n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nvt/body temp 300.0 300.0 100.0\nfix 1 all nvt/body temp 300.0 300.0 100.0 drag 0.2\n```\n", - "html_filename": "fix_nvt_body.html", - "short_description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat", - "description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the body particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/body\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/body\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix npt_body ](https://docs.lammps.org/fix_npt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* temperature = temperature of the fluid (temperature units)\n* viscosity = dynamic viscosity of the fluid (mass\\*distance/time units)\n* seed = random number generator seed (positive integer, optional) \n", + "examples": "\n```lmps\npair_style sdpd/taitwater/isothermal 300. 1. 28681\npair_coeff * * 1000.0 1430.0 2.4\n```\n", + "html_filename": "pair_sdpd_taitwater_isothermal.html", + "short_description": "The sdpd/taitwater/isothermal style computes forces between mesoscopic\nparticles according to the Smoothed Dissipative Particle Dynamics model\ndescribed in this paper by **Espanol_Revenga** under\nthe following assumptions:\n\n#", + "description": "The sdpd/taitwater/isothermal style computes forces between mesoscopic\nparticles according to the Smoothed Dissipative Particle Dynamics model\ndescribed in this paper by **Espanol_Revenga** under\nthe following assumptions:\n\n#. The temperature is constant and uniform.\n#. The shear viscosity is constant and uniform.\n#. The volume viscosity is negligible before the shear viscosity.\n#. The Boltzmann constant is negligible before the heat capacity of a\n single mesoscopic particle of fluid.\n\nThe third assumption is true for water in nearly incompressible flows.\nThe fourth holds true for water for any reasonable size one can\nimagine for a mesoscopic particle.\n\nThe pressure forces between particles will be computed according to\nTait's equation of state:\n\\[\n p = B \\left[(\\frac{\\rho}{\\rho_0})^{\\gamma} - 1\\right]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThe laminar viscosity and the random forces will be computed according\nto formulas described in **Espanol_Revenga**.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Similar to [brownian ](https://docs.lammps.org/pair_brownian.html) and\n > [dpd ](https://docs.lammps.org/pair_dpd.html) styles, the [newton ](https://docs.lammps.org/newton.html) setting for\n > pairwise interactions needs to be on when running LAMMPS in parallel\n > if you want to ensure linear momentum conservation. Otherwise random\n > forces generated for pairs straddling processor boundary will not be\n > equal and opposite. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The actual random seed used will be a mix of what you specify\n > and other parameters like the MPI ranks. This is to ensure that\n > different MPI tasks have distinct seeds. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* \\(\\rho_0\\) reference density (mass/volume units)\n* \\(c_0\\) reference soundspeed (distance/time units)\n* h kernel function cutoff (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n\n**(Espanol_Revenga)** Espanol, Revenga, Physical Review E, 67, 026705 (2003). \n ", + "restrictions": "This pair style is part of the DPD-SMOOTH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair coeff ](https://docs.lammps.org/pair_coeff.html), [pair sph/rhosum ](https://docs.lammps.org/pair_sph_rhosum.html),\n[pair sph/taitwater ](https://docs.lammps.org/pair_sph_taitwater.html)\n" }, { "command": [ - "fix_modify AtC temperature_definition" + "pair_style sph/rhosum" ], "syntax": [ - "fix_modify temperature_definition " + "pair_style sph/rhosum Nstep" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "temperature_definition", + "arg": "sph/rhosum", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "kinetic", - "total" - ] + "arg": "Nstep", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* temperature_definition = name of the AtC sub-command\n* kinetic or total = (undocumented) \n", - "examples": "\n```lmps\nfix_modify AtC temperature_definition kinetic\n```\n", - "html_filename": "atc_temperature_definition.html", - "short_description": "Change the definition for the atomic temperature used to create the\nfinite element temperature", - "description": "Change the definition for the atomic temperature used to create the\nfinite element temperature. The kinetic option is based only on the\nkinetic energy of the atoms while the total option uses the total energy\n(kinetic + potential) of an atom.\n", - "restrictions": "This command is only valid when using thermal coupling. Also, while not\na formal restriction, the user should ensure that associating a\npotential energy with each atom makes physical sense for the total\noption to be meaningful.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* Nstep = timestep interval \n", + "examples": "\n```lmps\npair_style sph/rhosum 10\npair_coeff * * 2.4\n```\n", + "html_filename": "pair_sph_rhosum.html", + "short_description": "The sph/rhosum style computes the local particle mass density rho for\nSPH particles by kernel function interpolation, every Nstep timesteps", + "description": "The sph/rhosum style computes the local particle mass density rho for\nSPH particles by kernel function interpolation, every Nstep timesteps.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* h (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n", + "restrictions": "This pair style is part of the SPH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), pair_sph/taitwater\n" }, { "command": [ - "compute reaxff/atom", - "compute reaxff/atom/kk" + "dihedral_style cosine/squared/restricted" ], "syntax": [ - "compute ID group-ID reaxff/atom attribute args ... keyword value ..." + "dihedral_style cosine/squared/restricted" ], "args": [ [ { - "arg": "compute", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "cosine/squared/restricted", + "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "", + "examples": "\n```lmps\ndihedral_style cosine/squared/restricted\ndihedral_coeff 1 10.0 120\n```\n", + "html_filename": "dihedral_cosine_squared_restricted.html", + "short_description": "\nThe *cosine/squared/restricted* dihedral style uses the potential\n\\[\n E = K [\\cos(\\phi) - \\cos(\\phi_0)]^2 / \\sin^2(\\phi)\\]\n, which is commonly used in the MARTINI force field", + "description": "\nThe *cosine/squared/restricted* dihedral style uses the potential\n\\[\n E = K [\\cos(\\phi) - \\cos(\\phi_0)]^2 / \\sin^2(\\phi)\\]\n, which is commonly used in the MARTINI force field.\n\nSee **restricted-Bul** for a description of the restricted dihedral for the MARTINI force field.\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\phi_0\\) (degrees)\n\n\\(\\phi_0\\) is specified in degrees, but LAMMPS converts it to radians internally.\n\n----------\n\n**(restricted-Bul)** Bulacu, Goga, Zhao, Rossi, Monticelli, Periole, Tieleman, Marrink, J Chem Theory Comput, 9, 3282-3292\n(2013). \n ", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" +}, +{ + "command": [ + "reset_atoms" + ], + "syntax": [ + "reset_atoms property arguments ..." + ], + "args": [ + [ { - "arg": "group-ID", - "type": 2, + "arg": "reset_atoms", + "type": 1, "choices": [] }, { - "arg": "reaxff/atom", + "arg": "mol", "type": 3, "choices": [ - "reaxff/atom", - "reaxff/atom/kk" + "id", + "image", + "mol" ] }, { - "arg": "attribute", - "type": 2, - "choices": [] - }, - { - "arg": "args", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", + "arg": "arguments", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* reaxff/atom = name of this compute command\n* attribute = pair \n *        pair args = nsub \n         nsub = *n*-instance of a sub-style, if a pair style is used multiple times in a hybrid style \n* keyword = bonds \n *        bonds value = no or yes \n         no = ignore list of local bonds \n         yes = include list of local bonds \n", - "examples": "\n```lmps\ncompute 1 all reaxff/atom bonds yes\n```\n", - "html_filename": "compute_reaxff_atom.html", - "short_description": "\nDefine a computation that extracts bond information computed by the ReaxFF\npotential specified by [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)", - "description": "\nDefine a computation that extracts bond information computed by the ReaxFF\npotential specified by [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html).\n\nBy default, it produces per-atom data that includes the following columns:\n\n* abo = atom bond order (sum of all bonds)\n* nlp = number of lone pairs\n* nb = number of bonds\n\nBonds will only be included if its atoms are in the group.\n\nIn addition, if ``bonds`` is set to ``yes``, the compute will also produce a\nlocal array of all bonds on the current processor whose atoms are in the group.\nThe columns of each entry of this local array are:\n\n* id_i = atom i id of bond\n* id_j = atom j id of bond\n* bo = bond order of bond\n\n #### Output info\n\nThis compute calculates a per-atom array and local array depending on the\nnumber of keywords. The number of rows in the local array is the number of\nbonds as described above. Both per-atom and local array have 3 columns.\n\nThe arrays can be accessed by any command that uses local and per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for\nan overview of LAMMPS output options.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "The compute reaxff/atom command requires that the [pair_style reaxff](https://docs.lammps.org/pair_reaxff.html) is invoked. This fix is part of the REAXFF package. It is only\nenabled if LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)\n" + "parameters": "* property = id or image or mol\n* additional arguments depend on the property \n    reset_atoms id keyword value ... \n *   * zero or more keyword/value pairs can be appended \n *   * keyword = sort \n    sort value = yes or no \n    reset_atoms image group-ID \n *   * group-ID = ID of group of atoms whose image flags will be reset \n    reset atoms mol group-ID keyword value ... \n *   * group-ID = ID of group of atoms whose molecule IDs will be reset \n *   * zero or more keyword/value pairs can be appended \n *   * keyword = compress or offset or single \n    compress value = yes or no \n    offset value = Noffset >= -1 \n    single value = yes or no to treat single atoms (no bonds) as molecules \n", + "examples": "\n```lmps\nreset_atoms id\nreset_atoms id sort yes\nreset_atoms image all\nreset_atoms image mobile\nreset_atoms mol all\nreset_atoms mol all offset 10 single yes\nreset_atoms mol solvent compress yes offset 100\nreset_atoms mol solvent compress no\n```\n", + "html_filename": "reset_atoms.html", + "short_description": "\nThe *reset_atoms* command resets the values of a specified atom\nproperty", + "description": "\nThe *reset_atoms* command resets the values of a specified atom\nproperty. In contrast to the set command, it does this in a\ncollective manner which resets the values for many atoms in a\nself-consistent way. This is often useful when the simulated system\nhas undergone significant modifications like adding or removing atoms\nor molecules, joining data files, changing bonds, or large-scale\ndiffusion.\n\nThe new values can be thought of as a *reset*, similar to values atoms\nwould have if a new data file were being read or a new simulation\nperformed. Note that the set command also resets atom properties to\nnew values, but it treats each atom independently.\n\nThe *property* setting can be *id* or *image* or *mol*. For *id*, the\nIDs of all the atoms are reset to contiguous values. For *image*, the\nimage flags of atoms in the specified *group-ID* are reset so that at\nleast one atom in each molecule is in the simulation box (image flag =\n0). For *mol*, the molecule IDs of all atoms are reset to contiguous\nvalues.\n\nMore details on these operations and their arguments or optional\nkeyword/value settings are given below.\n\n----------\n\n*Property id*\n\nReset atom IDs for the entire system, including all the global IDs\nstored for bond, angle, dihedral, improper topology data. This will\ncreate a set of IDs that are numbered contiguously from 1 to N for a N\natoms system.\n\nThis can be useful to do after performing a \"delete_atoms\" command for\na molecular system. The delete_atoms compress yes option will not\nperform this operation due to the existence of bond topology. It can\nalso be useful to do after any simulation which has lost atoms,\ne.g. due to atoms moving outside a simulation box with fixed\nboundaries (see the \"boundary command\"), or due to evaporation (see\nthe \"fix evaporate\" command).\n\nIf the *sort* keyword is used with a setting of *yes*, then the\nassignment of new atom IDs will be the same no matter how many\nprocessors LAMMPS is running on. This is done by first doing a\nspatial sort of all the atoms into bins and sorting them within each\nbin. Because the set of bins is independent of the number of\nprocessors, this enables a consistent assignment of new IDs to each\natom.\n\nThis can be useful to do after using the \"create_atoms\" command and/or\n\"replicate\" command. In general those commands do not guarantee\nassignment of the same atom ID to the same physical atom when LAMMPS\nis run on different numbers of processors. Enforcing consistent IDs\ncan be useful for debugging or comparing output from two different\nruns.\n\nNote that the spatial sort requires communication of atom IDs and\ncoordinates between processors in an all-to-all manner. This is done\nefficiently in LAMMPS, but it is more expensive than how atom IDs are\nreset without sorting.\n\nNote that whether sorting or not, the resetting of IDs is not a\ncompression, where gaps in atom IDs are removed by decrementing atom\nIDs that are larger. Instead the IDs for all atoms are erased, and\nnew IDs are assigned so that the atoms owned by an individual\nprocessor have consecutive IDs, as the [create_atoms](https://docs.lammps.org/create_atoms.html) command explains.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If this command is used before a [pair style ](https://docs.lammps.org/pair_style.html) is\n > defined, an error about bond topology atom IDs not being found may\n > result. This is because the cutoff distance for ghost atom\n > communication was not sufficient to find atoms in bonds, angles, etc\n > that are owned by other processors. The [comm_modify cutoff > ](https://docs.lammps.org/comm_modify.html) command can be used to correct this issue. Or you can\n > define a pair style before using this command. If you do the former,\n > you should unset the *comm_modify cutoff* after using *reset\n > atoms id* so that subsequent communication is not inefficient. \n > \n\n----------\n\n*Property image*\n\nReset the image flags of atoms so that at least one atom in each\nmolecule has an image flag of 0. Molecular topology is respected so\nthat if the molecule straddles a periodic simulation box boundary, the\nimages flags of all atoms in the molecule will be consistent. This\navoids inconsistent image flags that could result from resetting all\nimage flags to zero with the [set ](https://docs.lammps.org/set.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system has no bonds, there is no reason to use this command,\n > since image flags for different atoms do not need to be\n > consistent. Use the [set ](https://docs.lammps.org/set.html) command with its *image*\n > keyword instead. \n > \n\nOnly image flags for atoms in the specified *group-ID* are reset; all\nothers remain unchanged. No check is made for whether the group\ncovers complete molecule fragments and thus whether the command will\nresult in inconsistent image flags.\n\nMolecular fragments are identified by the algorithm used by the\n[compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html) command. For each\nfragment the average of the largest and the smallest image flag in\neach direction across all atoms in the fragment is computed and\nsubtracted from the current image flag in the same direction.\n\nThis can be a useful operation to perform after running longer\nequilibration runs of mobile systems where molecules would pass\nthrough the system multiple times and thus produce non-zero image\nflags.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Same as explained for the [compute fragment/atom > ](https://docs.lammps.org/compute_cluster_atom.html) command, molecules are identified using the\n > current bond topology. This will **not** account for bonds broken by\n > the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command, because this\n > bond style does not perform a full update of the bond topology data\n > structures within LAMMPS. In that case, using the [delete_bonds > all bond 0 remove ](https://docs.lammps.org/delete_bonds.html) will permanently delete such\n > broken bonds and should thus be used first. \n > \n\n----------\n\n*Property mol*\n\nReset molecule IDs for a specified group of atoms based on current\nbond connectivity. This will typically create a new set of molecule\nIDs for atoms in the group. Only molecule IDs for atoms in the\nspecified *group-ID* are reset; molecule IDs for atoms not in the\ngroup are not changed.\n\nFor purposes of this operation, molecules are identified by the current\nbond connectivity in the system, which may or may not be consistent with\nthe current molecule IDs. A molecule in this context is a set of atoms\nconnected to each other with explicit bonds. The specific algorithm\nused is the one of [compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html)\nOnce the molecules are identified and a new molecule ID computed for\neach, this command will update the current molecule ID for all atoms in\nthe group with the new molecule ID. Note that if the group excludes\natoms within molecules, one (physical) molecule may become two or more\n(logical) molecules. For example if the group excludes atoms in the\nmiddle of a linear chain, then each end of the chain is considered an\nindependent molecule and will be assigned a different molecule ID.\n\nThis can be a useful operation to perform after running reactive\nmolecular dynamics run with [fix bond/react ](https://docs.lammps.org/fix_bond_react.html),\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html), or [fix bond/break](https://docs.lammps.org/fix_bond_break.html), all of which can change molecule topologies. It can\nalso be useful after molecules have been deleted with the\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html) command or after a simulation which\nhas lost molecules, e.g. via the [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)\ncommand.\n\nThe *compress* keyword determines how new molecule IDs are computed. If\nthe setting is *yes* (the default) and there are N molecules in the\ngroup, the new molecule IDs will be a set of N contiguous values. See\nthe *offset* keyword for details on selecting the range of these values.\nIf the setting is *no*, the molecule ID of every atom in the molecule\nwill be set to the smallest atom ID of any atom in the molecule.\n\nThe *single* keyword determines whether single atoms (not bonded to\nanother atom) are treated as one-atom molecules or not, based on the\n*yes* or *no* setting. If the setting is *no* (the default), their\nmolecule IDs are set to 0. This setting can be important if the new\nmolecule IDs will be used as input to other commands such as\n[compute chunk/atom molecule ](https://docs.lammps.org/compute_chunk_atom.html) or [fixrigid molecule ](https://docs.lammps.org/fix_rigid.html).\n\nThe *offset* keyword is only used if the *compress* setting is *yes*.\nIts default value is *Noffset* = -1. In that case, if the specified\ngroup is *all*, then the new compressed molecule IDs will range from 1\nto N. If the specified group is not *all* and the largest molecule ID\nof atoms outside that group is M, then the new compressed molecule IDs will\nrange from M+1 to M+N, to avoid collision with existing molecule\nIDs. If an *Noffset* >= 0 is specified, then the new compressed\nmolecule IDs will range from *Noffset* +1 to *Noffset* +N. If the group\nis not *all* there may be collisions with the molecule IDs of other atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Same as explained for the [compute fragment/atom > ](https://docs.lammps.org/compute_cluster_atom.html) command, molecules are identified using the\n > current bond topology. This will **not** account for bonds broken by\n > the [bond_style quartic ](https://docs.lammps.org/bond_quartic.html) command, because this\n > bond style does not perform a full update of the bond topology data\n > structures within LAMMPS. In that case, using the [delete_bonds > all bond 0 remove ](https://docs.lammps.org/delete_bonds.html) will permanently delete such broken\n > bonds and should thus be used first. \n > \n\n", + "restrictions": "The *image* property can only be used when the atom style supports bonds.\n", + "related": "[compute fragment/atom ](https://docs.lammps.org/compute_cluster_atom.html)\n[fix bond/react ](https://docs.lammps.org/fix_bond_react.html),\n[fix bond/create ](https://docs.lammps.org/fix_bond_create.html),\n[fix bond/break ](https://docs.lammps.org/fix_bond_break.html),\n[fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html),\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n\n #### Defaults\n\nFor property *id*, the default keyword setting is sort = no.\n\nFor property *mol*, the default keyword settings are compress = yes,\nsingle = no, and offset = -1.\n" }, { "command": [ - "fix_modify AtC source" + "dielectric" ], "syntax": [ - "fix_modify source " + "dielectric value" ], "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "source", + "arg": "dielectric", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", + "arg": "value", "type": 2, "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "value", - "function" - ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* source = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* element_set = name of set of elements\n* value or function = value or name of function followed by its parameters \n", - "examples": "\n```lmps\nfix_modify AtC source temperature middle temporal_ramp 10.0 0.0\n```\n", - "html_filename": "atc_source.html", - "short_description": "Add domain sources to the mesh", - "description": "Add domain sources to the mesh. The units are consistent with LAMMPS's\nunits for mass, length and time and are defined by the PDE being solved,\ne.g. for thermal transfer the balance equation is for energy and source\nis energy per time.\n", - "restrictions": "The keyword *all* is reserved and thus not available as element_set name.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC remove_source ](https://docs.lammps.org/atc_remove_source.html)\n" + "parameters": "* value = dielectric constant \n", + "examples": "\n```lmps\ndielectric 2.0\n```\n", + "html_filename": "dielectric.html", + "short_description": "Set the dielectric constant for Coulombic interactions (pairwise and\nlong-range) to this value", + "description": "Set the dielectric constant for Coulombic interactions (pairwise and\nlong-range) to this value. The constant is unitless, since it is used\nto reduce the strength of the interactions. The value is used in the\ndenominator of the formulas for Coulombic interactions (e.g., a value\nof 4.0 reduces the Coulombic interactions to 25% of their default\nstrength). See the [pair_style ](https://docs.lammps.org/pair_style.html) command for more\ndetails.\n", + "restrictions": " none\n", + "related": "[pair_style ](https://docs.lammps.org/pair_style.html)\n" }, { "command": [ - "compute ke" + "fix sph/stationary" ], "syntax": [ - "compute ID group-ID ke" + "fix ID group-ID sph/stationary" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -26374,324 +25171,266 @@ export const command_docs = [ "choices": [] }, { - "arg": "ke", + "arg": "sph/stationary", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all ke\n```\n", - "html_filename": "compute_ke.html", - "short_description": "Define a computation that calculates the translational kinetic energy\nof a group of particles", - "description": "Define a computation that calculates the translational kinetic energy\nof a group of particles.\n\nThe kinetic energy of each particle is computed as \\(\\frac{1}{2} m\nv^2\\), where *m* and *v* are the mass and velocity of the particle,\nrespectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" kinetic energy, calculated by the simple\nformula above. For thermodynamic output, the *ke* keyword infers\nkinetic energy from the temperature of the system with\n\\(\\frac{1}{2} k_B T\\) of energy for each degree of freedom. For the\ndefault temperature computation via the [compute temp](https://docs.lammps.org/compute_temp.html) command, these are the same.\nHowever, different computes that calculate temperature can subtract out\ndifferent non-thermal components of velocity and/or include different degrees\nof freedom (translational, rotational, etc.).\n\n #### Output info\n\nThis compute calculates a global scalar (the summed KE). This value\ncan be used by any command that uses a global scalar value from a\ncompute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sph = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 boundary sph/stationary\n```\n", + "html_filename": "fix_sph_stationary.html", + "short_description": "Perform time integration to update internal energy and local density,\nbut not position or velocity for atoms in the group each timestep", + "description": "Perform time integration to update internal energy and local density,\nbut not position or velocity for atoms in the group each timestep.\nThis fix is needed for SPH simulations to correctly time-integrate\nfixed boundary particles which constrain a fluid to a given region in\nspace. SPH stands for Smoothed Particle Hydrodynamics.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix sph ](https://docs.lammps.org/fix_sph.html)\n" }, { "command": [ - "fix langevin", - "fix langevin/kk" + "pair_style coul/cut", + "pair_style coul/cut/gpu", + "pair_style coul/cut/kk", + "pair_style coul/cut/omp", + "pair_style coul/debye", + "pair_style coul/debye/gpu", + "pair_style coul/debye/kk", + "pair_style coul/debye/omp", + "pair_style coul/dsf", + "pair_style coul/dsf/gpu", + "pair_style coul/dsf/kk", + "pair_style coul/dsf/omp", + "pair_style coul/exclude", + "pair_style coul/cut/global", + "pair_style coul/cut/omp/global", + "pair_style coul/long", + "pair_style coul/long/omp", + "pair_style coul/long/kk", + "pair_style coul/long/gpu", + "pair_style coul/msm", + "pair_style coul/msm/omp", + "pair_style coul/streitz", + "pair_style coul/wolf", + "pair_style coul/wolf/kk", + "pair_style coul/wolf/omp", + "pair_style tip4p/cut", + "pair_style tip4p/cut/omp", + "pair_style tip4p/long", + "pair_style tip4p/long/omp" ], "syntax": [ - "fix ID group-ID langevin Tstart Tstop damp seed keyword values ..." + "pair_style coul/cut cutoff", + "pair_style coul/debye kappa cutoff", + "pair_style coul/dsf alpha cutoff", + "pair_style coul/exclude cutoff", + "pair_style coul/cut/global cutoff", + "pair_style coul/long cutoff", + "pair_style coul/wolf alpha cutoff", + "pair_style coul/streitz cutoff keyword alpha", + "pair_style tip4p/cut otype htype btype atype qdist cutoff", + "pair_style tip4p/long otype htype btype atype qdist cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "coul/cut", + "type": 3, + "choices": [ + "coul/cut", + "coul/cut/gpu", + "coul/cut/kk", + "coul/cut/omp", + "coul/cut/omp" + ] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "langevin", - "type": 3, - "choices": [ - "langevin", - "langevin/kk" - ] + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "Tstart", + "arg": "coul/debye", "type": 2, "choices": [] }, { - "arg": "Tstop", + "arg": "kappa", "type": 2, "choices": [] }, { - "arg": "damp", + "arg": "cutoff", "type": 2, "choices": [] + } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "seed", + "arg": "coul/dsf", "type": 2, "choices": [] }, { - "arg": "zero", - "type": 3, - "choices": [ - "angmom", - "gjf", - "omega", - "scale", - "tally", - "zero" - ] + "arg": "alpha", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "cutoff", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* Tstart can be a variable (see below)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* zero or more keyword/value pairs may be appended\n* keyword = angmom or gjf or omega or scale or tally or zero \n *        angmom value = no or factor \n         no = do not thermostat rotational degrees of freedom via the angular momentum \n         factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below \n *        gjf value = no or vfull or vhalf \n         no = use standard formulation \n         vfull = use Gronbech-Jensen/Farago formulation \n         vhalf = use 2GJ formulation \n *        omega value = no or yes \n         no = do not thermostat rotational degrees of freedom via the angular velocity \n         yes = do thermostat rotational degrees of freedom via the angular velocity \n *        scale values = type ratio \n         type = atom type (1-N) \n         ratio = factor by which to scale the damping coefficient \n *        tally value = no or yes \n         no = do not tally the energy added/subtracted to atoms \n         yes = do tally the energy added/subtracted to atoms \n *        zero value = no or yes \n         no = do not set total random force to zero \n         yes = set total random force to zero \n", - "examples": "\n```lmps\nfix 3 boundary langevin 1.0 1.0 1000.0 699483\nfix 1 all langevin 1.0 1.1 100.0 48279 scale 3 1.5\nfix 1 all langevin 1.0 1.1 100.0 48279 angmom 3.333\n```\n", - "html_filename": "fix_langevin.html", - "short_description": "Apply a Langevin thermostat as described in **Schneider1**\nto a group of atoms which models an interaction with a background\nimplicit solvent", - "description": "Apply a Langevin thermostat as described in **Schneider1**\nto a group of atoms which models an interaction with a background\nimplicit solvent. Used with [fix nve ](https://docs.lammps.org/fix_nve.html), this command\nperforms Brownian dynamics (BD), since the total force on each atom\nwill have the form:\n\\[\\begin{align*} \n F = & F_c + F_f + F_r \\\\\n F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\\n F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\n\\(F_c\\) is the conservative force computed via the usual\ninter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html),\n[bond_style ](https://docs.lammps.org/bond_style.html), etc). The \\(F_f\\) and \\(F_r\\)\nterms are added by this fix on a per-particle basis. See the\n[pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html) command for a thermostatting\noption that adds similar terms on a pairwise basis to pairs of\ninteracting particles.\n\n\\(F_f\\) is a frictional drag or viscous damping term proportional to\nthe particle's velocity. The proportionality constant for each atom is\ncomputed as \\(\\frac{m}{\\mathrm{damp}}\\), where *m* is the mass of the\nparticle and damp is the damping factor specified by the user.\n\n\\(F_r\\) is a force due to solvent atoms at a temperature \\(T\\)\nrandomly bumping into the particle. As derived from the\nfluctuation/dissipation theorem, its magnitude as shown above is\nproportional to \\(\\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}}\\), where\n\\(k_B\\) is the Boltzmann constant, \\(T\\) is the desired temperature,\n*m* is the mass of the particle, *dt* is the timestep size, and damp is\nthe damping factor. Random numbers are used to randomize the direction\nand magnitude of this force as described in **Dunweg1**,\nwhere a uniform random number is used (instead of a Gaussian random\nnumber) for speed.\n\nNote that unless you use the *omega* or *angmom* keywords, the\nthermostat effect of this fix is applied to only the translational\ndegrees of freedom for the particles, which is an important\nconsideration for finite-size particles, which have rotational degrees\nof freedom, are being thermostatted. The translational degrees of\nfreedom can also have a bias velocity removed from them before\nthermostatting takes place; see the description below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs Nose/Hoover\n > thermostatting AND time integration, this fix does NOT perform time\n > integration. It only modifies forces to effect thermostatting. Thus\n > you must use a separate time integration fix, like [fix nve > ](https://docs.lammps.org/fix_nve.html) to actually update the velocities and positions of atoms\n > using the modified forces. Likewise, this fix should not normally be\n > used on atoms that also have their temperature controlled by another\n > fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale > ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for\na discussion of different ways to compute temperature and perform\nthermostatting.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* .\n\n*Tstart* can be specified as an equal-style or atom-style\n[variable ](https://docs.lammps.org/variable.html). In this case, the *Tstop* setting is\nignored. If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\ntarget temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent\ntemperature with optional time-dependence as well.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nThe *damp* parameter is specified in time units and determines how\nrapidly the temperature is relaxed. For example, a value of 100.0 means\nto relax the temperature in a timespan of (roughly) 100 time units\n(\\(\\tau\\) or fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The\ndamp factor can be thought of as inversely related to the viscosity of\nthe solvent. I.e. a small relaxation time implies a high-viscosity\nsolvent and vice versa. See the discussion about \\(\\gamma\\) and\nviscosity in the documentation for the [fix viscous ](https://docs.lammps.org/fix_viscous.html)\ncommand for more details.\n\nThe random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random numbers.\nThus the dynamics of the system will not be identical on two runs on\ndifferent numbers of processors.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe keyword *angmom* and *omega* keywords enable thermostatting of\nrotational degrees of freedom in addition to the usual translational\ndegrees of freedom. This can only be done for finite-size particles.\n\nA simulation using atom_style sphere defines an omega for finite-size\nspheres. A simulation using atom_style ellipsoid defines a finite\nsize and shape for aspherical particles and an angular momentum.\nThe Langevin formulas for thermostatting the rotational degrees of\nfreedom are the same as those above, where force is replaced by\ntorque, m is replaced by the moment of inertia I, and v is replaced by\nomega (which is derived from the angular momentum in the case of\naspherical particles).\n\nThe rotational temperature of the particles can be monitored by the\n[compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and [computetemp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) commands with their rotate\noptions.\n\nFor the *omega* keyword there is also a scale factor of\n\\(\\frac{10.0}{3.0}\\) that is applied as a multiplier on the\n\\(F_f\\) (damping) term in the equation above and of\n\\(\\sqrt{\\frac{10.0}{3.0}}\\) as a multiplier on the \\(F_r\\) term.\nThis does not affect the thermostatting behavior of the Langevin\nformalism but ensures that the randomized rotational diffusivity of\nspherical particles is correct.\n\nFor the *angmom* keyword a similar scale factor is needed which is\n\\(\\frac{10.0}{3.0}\\) for spherical particles, but is anisotropic for\naspherical particles (e.g. ellipsoids). Currently LAMMPS only applies\nan isotropic scale factor, and you can choose its magnitude as the\nspecified value of the *angmom* keyword. If your aspherical particles\nare (nearly) spherical than a value of \\(\\frac{10.0}{3.0} =\n3.\\overline{3}\\) is a good choice. If they are highly aspherical, a\nvalue of 1.0 is as good a choice as any, since the effects on rotational\ndiffusivity of the particles will be incorrect regardless. Note that\nfor any reasonable scale factor, the thermostatting effect of the\n*angmom* keyword on the rotational temperature of the aspherical\nparticles should still be valid.\n\nThe keyword *scale* allows the damp factor to be scaled up or down by\nthe specified factor for atoms of that type. This can be useful when\ndifferent atom types have different sizes or masses. It can be used\nmultiple times to adjust damp for several atom types. Note that\nspecifying a ratio of 2 increases the relaxation time which is\nequivalent to the solvent's viscosity acting on particles with\n\\(\\frac{1}{2}\\) the diameter. This is the opposite effect of scale\nfactors used by the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, since the\ndamp factor in fix *langevin* is inversely related to the \\(\\gamma\\)\nfactor in fix *viscous* . Also note that the damping factor in fix\n*langevin* includes the particle mass in Ff, unlike fix *viscous* .\nThus the mass and size of different atom types should be accounted for\nin the choice of ratio values.\n\nThe keyword *tally* enables the calculation of the cumulative energy\nadded/subtracted to the atoms as they are thermostatted. Effectively\nit is the energy exchanged between the infinite thermal reservoir and\nthe particles. As described below, this energy can then be printed\nout or added to the potential energy of the system to monitor energy\nconservation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This accumulated energy does NOT include kinetic energy removed\n > by the *zero* flag. LAMMPS will print a warning when both options are\n > active. \n > \n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat. Because the random forces on different atoms are\nindependent, they do not sum exactly to zero. As a result, this fix\napplies a small random force to the entire system, and the\ncenter-of-mass of the system undergoes a slow random walk. If the\nkeyword *zero* is set to *yes*, the total random force is set exactly\nto zero by subtracting off an equal part of it from each atom in the\ngroup. As a result, the center-of-mass of a system with zero initial\nmomentum will not drift over time.\n\nThe keyword *gjf* can be used to run the **Gronbech-Jensen** time-discretization of the Langevin model. As\ndescribed in the papers cited below, the purpose of this method is to\nenable longer timesteps to be used (up to the numerical stability\nlimit of the integrator), while still producing the correct Boltzmann\ndistribution of atom positions.\n\nThe current implementation provides the user with the option to output\nthe velocity in one of two forms: *vfull* or *vhalf*, which replaces\nthe outdated option *yes* . The *gjf* option *vfull* outputs the\non-site velocity given in **Gronbech-Jensen**; this velocity is shown to be systematically lower\nthan the target temperature by a small amount, which grows\nquadratically with the timestep. The *gjf* option *vhalf* outputs the\n2GJ half-step velocity given in **2Gronbech-Jensen**; for linear systems, this velocity is shown to not\nhave any statistical errors for any stable time step. An overview of\nstatistically correct Boltzmann and Maxwell-Boltzmann sampling of true\non-site and true half-step velocities is given in\n**1Gronbech-Jensen**. Regardless of the choice\nof output velocity, the sampling of the configurational distribution\nof atom positions is the same, and linearly consistent with the target\ntemperature.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random number generator\nis not saved in restart files, this means you cannot do \"exact\"\nrestarts with this fix, where the simulation continues on the same as\nif no restart had taken place. However, in a statistical sense, a\nrestarted simulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*, but only if the *tally* keyword to set to\n*yes* . See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\nNote that calculation of this quantity also requires setting the\n*tally* keyword to *yes* .\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schneider1)** Schneider and Stoll, Phys Rev B, 17, 1302 (1978). \n \n**(Dunweg1)** Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991). \n \n**(Gronbech-Jensen)** Gronbech-Jensen and Farago, Mol Phys, 111, 983\n(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, 185, 524 (2014) \n \n**(2Gronbech-Jensen)** Gronbech Jensen and Gronbech-Jensen, Mol Phys, 117, 2511 (2019) \n \n**(1Gronbech-Jensen)** Gronbech-Jensen, Mol Phys (2019); https://doi.org/10.1080/00268976.2019.1662506 \n ", - "restrictions": "For *gjf* do not choose damp=dt/2. *gjf* is not compatible\nwith run_style respa.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html)\n" -}, -{ - "command": [ - "lattice" - ], - "syntax": [ - "lattice style scale keyword values ..." - ], - "args": [ + ], [ { - "arg": "lattice", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "custom", - "type": 3, - "choices": [ - "none", - "sc", - "bcc", - "fcc", - "hcp", - "diamond", - "sq2", - "hex", - "custom" - ] + "arg": "coul/exclude", + "type": 2, + "choices": [] }, { - "arg": "scale", + "arg": "cutoff", "type": 2, "choices": [] + } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "triclinic/general", - "type": 3, - "choices": [ - "origin", - "orient", - "spacing", - "a1", - "a2", - "a3", - "basis", - "triclinic/general" - ] + "arg": "coul/cut/global", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "cutoff", "type": 2, "choices": [] } - ] - ], - "parameters": "* style = none or sc or bcc or fcc or hcp or diamond or sq or sq2 or hex or custom\n* scale = scale factor between lattice and simulation box \n *        scale = reduced density rho\\* (for LJ units) \n *        scale = lattice constant in distance units (for all other units) \n* zero or more keyword/value pairs may be appended\n* keyword = origin or orient or spacing or a1 or a2 or a3 or basis or triclinic/general \n *        origin values = x y z \n         x,y,z = fractions of a unit cell (0 <= x,y,z < 1) \n *        orient values = dim i j k \n         dim = x or y or z \n         i,j,k = integer lattice directions \n *        spacing values = dx dy dz \n         dx,dy,dz = lattice spacings in the x,y,z box directions \n *        a1, a2, a3 values = x y z \n         x,y,z = primitive vector components that define unit cell \n *        basis values = x y z \n         x,y,z = fractional coords of a basis atom (0 <= x,y,z < 1) \n *        triclinic/general values = no values \n", - "examples": "\n```lmps\nlattice fcc 3.52\nlattice hex 0.85\nlattice sq 0.8 origin 0.0 0.5 0.0 orient x 1 1 0 orient y -1 1 0\nlattice custom 3.52 a1 1.0 0.0 0.0 a2 0.5 1.0 0.0 a3 0.0 0.0 0.5 &\nbasis 0.0 0.0 0.0 basis 0.5 0.5 0.5 triclinic/general\nlattice none 2.0\n```\n", - "html_filename": "lattice.html", - "short_description": "Define a lattice for use by other commands", - "description": "Define a lattice for use by other commands. In LAMMPS, a lattice is\nsimply a set of points in space, determined by a unit cell with basis\natoms, that is replicated infinitely in all dimensions. The arguments\nof the lattice command can be used to define a wide variety of\ncrystallographic lattices.\n\nA lattice is used by LAMMPS in two ways. First, the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command creates atoms on the lattice\npoints inside the simulation box. Note that the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command allows different atom types\nto be assigned to different basis atoms of the lattice. Second, the\nlattice spacing in the x,y,z dimensions implied by the lattice, can be\nused by other commands as distance units\n(e.g. [create_box ](https://docs.lammps.org/create_box.html), [region ](https://docs.lammps.org/region.html) and\n[velocity ](https://docs.lammps.org/velocity.html)), which are often convenient to use when the\nunderlying problem geometry is atoms on a lattice.\n\nThe lattice style must be consistent with the dimension of the\nsimulation - see the [dimension ](https://docs.lammps.org/dimension.html) command. Styles *sc*\nor *bcc* or *fcc* or *hcp* or *diamond* are for 3d problems. Styles\n*sq* or *sq2* or *hex* are for 2d problems. Style *custom* can be\nused for either 2d or 3d problems.\n\nA lattice consists of a unit cell, a set of basis atoms within that\ncell, and a set of transformation parameters (scale, origin, orient)\nthat map the unit cell into the simulation box. The vectors a1,a2,a3\nare the edge vectors of the unit cell. This is the nomenclature for\n\"primitive\" vectors in solid-state crystallography, but in LAMMPS the\nunit cell they determine does not have to be a \"primitive cell\" of\nminimum volume.\n\nNote that the lattice command can be used multiple times in an input\nscript. Each time it is invoked, the lattice attributes are\nre-defined and are used for all subsequent commands (that use lattice\nattributes). For example, a sequence of lattice,\n[region ](https://docs.lammps.org/region.html), and [create_atoms ](https://docs.lammps.org/create_atoms.html) commands\ncan be repeated multiple times to build a poly-crystalline model with\ndifferent geometric regions populated with atoms in different lattice\norientations.\n\n----------\n\nA lattice of style *none* does not define a unit cell and basis set,\nso it cannot be used with the [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommand. However it does define a lattice spacing via the specified\nscale parameter. As explained above the lattice spacings in x,y,z can\nbe used by other commands as distance units. No additional\nkeyword/value pairs can be specified for the *none* style. By\ndefault, a \"lattice none 1.0\" is defined, which means the lattice\nspacing is the same as one distance unit, as defined by the\n[units ](https://docs.lammps.org/units.html) command.\n\nLattices of style *sc*, *fcc*, *bcc*, and *diamond* are 3d lattices\nthat define a cubic unit cell with edge length = 1.0. This means a1 =\n1 0 0, a2 = 0 1 0, and a3 = 0 0 1. Style *hcp* has a1 = 1 0 0, a2 = 0\nsqrt(3) 0, and a3 = 0 0 sqrt(8/3). The placement of the basis atoms\nwithin the unit cell are described in any solid-state physics text. A\n*sc* lattice has 1 basis atom at the lower-left-bottom corner of the\ncube. A *bcc* lattice has 2 basis atoms, one at the corner and one at\nthe center of the cube. A *fcc* lattice has 4 basis atoms, one at the\ncorner and 3 at the cube face centers. A *hcp* lattice has 4 basis\natoms, two in the z = 0 plane and 2 in the z = 0.5 plane. A *diamond*\nlattice has 8 basis atoms.\n\nLattices of style *sq* and *sq2* are 2d lattices that define a square\nunit cell with edge length = 1.0. This means a1 = 1 0 0 and a2 = 0 1 0. A *sq* lattice has 1 basis atom at the lower-left corner of the\nsquare. A *sq2* lattice has 2 basis atoms, one at the corner and one\nat the center of the square. A *hex* style is also a 2d lattice, but\nthe unit cell is rectangular, with a1 = 1 0 0 and a2 = 0 sqrt(3) 0.\nIt has 2 basis atoms, one at the corner and one at the center of the\nrectangle.\n\nA lattice of style *custom* allows you to specify a1, a2, a3, and a\nlist of basis atoms to put in the unit cell. By default, a1 and a2\nand a3 are 3 orthogonal unit vectors (edges of a unit cube). But you\ncan specify them to be of any length and non-orthogonal to each other,\nso that they describe a tilted parallelepiped. Via the *basis*\nkeyword you add atoms, one at a time, to the unit cell. Its arguments\nare fractional coordinates (0.0 <= x,y,z < 1.0). For 2d simulations,\nthe fractional z coordinate for any basis atom must be 0.0.\n\nThe position vector x of a basis atom within the unit cell is a linear\ncombination of the unit cell's 3 edge vectors, i.e. x = bx a1 + by\na2 + bz a3, where bx,by,bz are the 3 values specified for the *basis*\nkeyword.\n\n----------\n\nThis subsection discusses the arguments that determine how the\nidealized unit cell is transformed into a lattice of points within the\nsimulation box.\n\nThe *scale* argument determines how the size of the unit cell will be\nscaled when mapping it into the simulation box. I.e. it determines a\nmultiplicative factor to apply to the unit cell, to convert it to a\nlattice of the desired size and distance units in the simulation box.\nThe meaning of the *scale* argument depends on the [units ](https://docs.lammps.org/units.html)\nbeing used in your simulation.\n\nFor all unit styles except *lj*, the scale argument is specified in\nthe distance units defined by the unit style. For example, in *real*\nor *metal* units, if the unit cell is a unit cube with edge length\n1.0, specifying scale = 3.52 would create a cubic lattice with a\nspacing of 3.52 Angstroms. In *cgs* units, the spacing would be 3.52\ncm.\n\nFor unit style *lj*, the scale argument is the Lennard-Jones reduced\ndensity, typically written as rho\\*. LAMMPS converts this value into\nthe multiplicative factor via the formula \"factor\\^dim = rho/rho\\*\",\nwhere rho = N/V with V = the volume of the lattice unit cell and N =\nthe number of basis atoms in the unit cell (described below), and dim\n= 2 or 3 for the dimensionality of the simulation. Effectively, this\nmeans that if LJ particles of size sigma = 1.0 are used in the\nsimulation, the lattice of particles will be at the desired reduced\ndensity.\n\nThe *origin* option specifies how the unit cell will be shifted or\ntranslated when mapping it into the simulation box. The x,y,z values\nare fractional values (0.0 <= x,y,z < 1.0) meaning shift the lattice\nby a fraction of the lattice spacing in each dimension. The meaning\nof \"lattice spacing\" is discussed below. For 2d simulations, the\n*origin* z value must be 0.0.\n\nThe *orient* option specifies how the unit cell will be rotated when\nmapping it into the simulation box. The *dim* argument is one of the\n3 coordinate axes in the simulation box. The other 3 arguments are\nthe crystallographic direction in the lattice that you want to orient\nalong that axis, specified as integers. E.g. \"orient x 2 1 0\" means\nthe x-axis in the simulation box will be the [210] lattice direction,\nand similarly for y and z. The 3 lattice directions you specify do\nnot have to be unit vectors, but they must be mutually orthogonal and\nobey the right-hand rule, i.e. (X cross Y) points in the Z direction.\nFor 2d simulations, the *orient* x and y vectors must define 0 for\ntheir 3rd component. Similarly the *orient* z vector must define 0\nfor its 1st and 2nd components.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The preceding paragraph describing lattice directions is only\n > valid for orthogonal cubic unit cells (or square in 2d). If you are\n > using a *hcp* or *hex* lattice or the more general lattice style\n > *custom* with non-orthogonal a1,a2,a3 vectors, then you should think\n > of the 3 *orient* vectors as creating a 3x3 rotation matrix which is\n > applied to a1,a2,a3 to rotate the original unit cell to a new\n > orientation in the simulation box. \n > \n\n----------\n\nThe *triclinic/general* option specifies that the defined lattice is\nfor use with a general triclinic simulation box, as opposed to an\northogonal or restricted triclinic box. The [Howto triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page explains all 3 kinds of simulation boxes\nLAMMPS supports.\n\nIf this option is specified, a *custom* lattice style must be used.\nThe *a1*, *a2*, *a3* vectors should define the edge vectors of a\nsingle unit cell of the lattice with one or more basis atoms. They\nedge vectors can be arbitrary so long as they are non-zero, distinct,\nand not co-planar. In addition, they must define a right-handed\nsystem, such that (*a1* cross *a2*) points in the direction of *a3*.\nNote that a left-handed system can be converted to a right-handed\nsystem by simply swapping the order of any pair of the *a1*, *a2*,\n*a3* vectors. For 2d simulations, the *a3* vector must be specified\nas (0.0,0.0,1.0), which is its default value.\n\nIf this option is used, the *origin* and *orient* settings must have\ntheir default values. Namely (0.0,0.0,0.0) for the *origin* and\n(100), (010), (001) for the *orient* vectors.\n\nThe [create_box ](https://docs.lammps.org/create_box.html) command can be used to create a\ngeneral triclinic box that replicates the *a1*, *a2*, *a3* unit cell\nvectors in each direction to create the 3 arbitrary edge vectors of\nthe overall simulation box. It requires a lattice with the\n*triclinic/general* option.\n\nLikewise, the [create_atoms ](https://docs.lammps.org/create_atoms.html) command can be used\nto add atoms (or molecules) to a general triclinic box which lie on\nthe lattice points defined by *a1*, *a2*, *a3* and the unit cell basis\natoms. To do this, it also requires a lattice with the\n*triclinic/general* option.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic lattices and\n > simulation boxes as a convenience for users who may be converting\n > data from solid-state crystallographic representations or from DFT\n > codes for input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box and per-atom information (e.g. coordinates, velocities)\n > defined by the [create_box ](https://docs.lammps.org/create_box.html) and\n > [create_atoms ](https://docs.lammps.org/create_atoms.html) commands are converted from\n > general to restricted triclinic form when the two commands are\n > invoked. It also means that any other commands which use lattice\n > spacings from this command (e.g. the region command), will be\n > operating on a restricted triclinic simulation box, even if the\n > *triclinic/general* option was used to define the lattice. See the\n > next section for details. \n > \n\n----------\n\nSeveral LAMMPS commands have the option to use distance units that are\ninferred from \"lattice spacings\" in the x,y,z box directions.\nE.g. the [region ](https://docs.lammps.org/region.html) command can create a block of size\n10x20x20, where 10 means 10 lattice spacings in the x direction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Though they are called lattice spacings, all the commands that\n > have a \"units lattice\" option, simply use the 3 values as scale\n > factors on the distance units defined by the [units ](https://docs.lammps.org/units.html)\n > command. Thus if you do not like the lattice spacings computed by\n > LAMMPS (e.g. for a non-orthogonal or rotated unit cell), you can\n > define the 3 values to be whatever you wish, via the *spacing* option. \n > \n\nIf the *spacing* option is not specified, the lattice spacings are\ncomputed by LAMMPS in the following way. A unit cell of the lattice\nis mapped into the simulation box (scaled and rotated), so that it now\nhas (perhaps) a modified size and orientation. The lattice spacing in\nX is defined as the difference between the min/max extent of the x\ncoordinates of the 8 corner points of the modified unit cell (4 in\n2d). Similarly, the Y and Z lattice spacings are defined as the\ndifference in the min/max of the y and z coordinates.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the *triclinic/general* option is specified, the unit cell\n > defined by *a1*, *a2*, *a3* edge vectors is first converted to a\n > restricted triclinic orientation, which is a rotation operation.\n > The min/max extent of the 8 corner points is then determined, as\n > described in the preceding paragraph, to set the lattice\n > spacings. As explained for the *triclinic/general* option above,\n > this is because any use of the lattice spacings by other commands\n > will be for a restricted triclinic simulation box, not a general\n > triclinic box. \n > \n\nNote that if the unit cell is orthogonal with axis-aligned edges (no\nrotation via the *orient* keyword), then the lattice spacings in each\ndimension are simply the scale factor (described above) multiplied by\nthe length of a1,a2,a3. Thus a *hex* style lattice with a scale\nfactor of 3.0 Angstroms, would have a lattice spacing of 3.0 in x and\n3\\*sqrt(3.0) in y.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For non-orthogonal unit cells and/or when a rotation is applied\n > via the *orient* keyword, then the lattice spacings computed by LAMMPS\n > are typically less intuitive. In particular, in these cases, there is\n > no guarantee that a particular lattice spacing is an integer multiple\n > of the periodicity of the lattice in that direction. Thus, if you\n > create an orthogonal periodic simulation box whose size in a dimension\n > is a multiple of the lattice spacing, and then fill it with atoms via\n > the [create_atoms ](https://docs.lammps.org/create_atoms.html) command, you will NOT necessarily\n > create a periodic system. I.e. atoms may overlap incorrectly at the\n > faces of the simulation box. \n > \n\nThe *spacing* option sets the 3 lattice spacings directly. All must\nbe non-zero (use 1.0 for dz in a 2d simulation). The specified values\nare multiplied by the multiplicative factor described above that is\nassociated with the scale factor. Thus a spacing of 1.0 means one\nunit cell edge length independent of the scale factor. As mentioned\nabove, this option can be useful if the spacings LAMMPS computes are\ninconvenient to use in subsequent commands, which can be the case for\nnon-orthogonal or rotated lattices.\n\nNote that whenever the lattice command is used, the values of the\nlattice spacings LAMMPS calculates are printed out. Thus their effect\nin commands that use the spacings should be decipherable.\n\n----------\n\nExample commands for generating a Wurtzite crystal.\nThe lattice constants approximate those of CdSe.\nThe \\(\\sqrt{3}\\times 1\\) orthorhombic supercell is used\nwith the x, y, and z directions oriented\nalong \\([\\bar{1}\\bar{2}30]\\),\n\\([10\\bar{1}0]\\), and \\([0001]\\), respectively.\n\n```lmps\nvariable a equal 4.34\nvariable b equal $a*sqrt(3.0)\nvariable c equal $a*sqrt(8.0/3.0)\n\nvariable third equal 1.0/3.0\nvariable five6 equal 5.0/6.0\n\nlattice custom 1.0 &\na1 $b 0.0 0.0 &\na2 0.0 $a 0.0 &\na3 0.0 0.0 $c &\nbasis 0.0 0.0 0.0 &\nbasis 0.5 0.5 0.0 &\nbasis ${third} 0.0 0.5 &\nbasis ${five6} 0.5 0.5 &\nbasis 0.0 0.0 0.625 &\nbasis 0.5 0.5 0.625 &\nbasis ${third} 0.0 0.125 &\nbasis ${five6} 0.5 0.125\n\nregion myreg block 0 1 0 1 0 1\ncreate_box 2 myreg\ncreate_atoms 1 box &\nbasis 5 2 &\nbasis 6 2 &\nbasis 7 2 &\nbasis 8 2\n```\n----------\n", - "restrictions": "The *a1,a2,a3,basis* keywords can only be used with style *custom* .\n", - "related": "[dimension ](https://docs.lammps.org/dimension.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[region ](https://docs.lammps.org/region.html)\n" -}, -{ - "command": [ - "processors" - ], - "syntax": [ - "processors Px Py Pz keyword args ..." - ], - "args": [ + ], [ { - "arg": "processors", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "Px", + "arg": "coul/long", "type": 2, "choices": [] }, { - "arg": "Py", + "arg": "cutoff", "type": 2, "choices": [] + } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "Pz", + "arg": "coul/wolf", "type": 2, "choices": [] }, { - "arg": "file", - "type": 3, - "choices": [ - "grid", - "map", - "part", - "file" - ] + "arg": "alpha", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "cutoff", "type": 2, "choices": [] } - ] - ], - "parameters": "* Px,Py,Pz = # of processors in each dimension of 3d grid overlaying the simulation domain\n* zero or more keyword/arg pairs may be appended\n* keyword = grid or map or part or file \n *        grid arg = gstyle params ... \n         gstyle = onelevel or twolevel or numa or custom \n         onelevel params = none \n         twolevel params = Nc Cx Cy Cz \n         Nc = number of cores per node \n         Cx,Cy,Cz = # of cores in each dimension of 3d sub-grid assigned to each node \n         numa params = none \n         custom params = infile \n         infile = file containing grid layout \n *        *numa_nodes* arg = Nn \n         Nn = number of numa domains per node \n *        map arg = cart or cart/reorder or xyz or xzy or yxz or yzx or zxy or zyx \n         cart = use MPI_Cart() methods to map processors to 3d grid with reorder = 0 \n         cart/reorder = use MPI_Cart() methods to map processors to 3d grid with reorder = 1 \n         xyz,xzy,yxz,yzx,zxy,zyx = map processors to 3d grid in IJK ordering \n *        part args = Psend Precv cstyle \n         Psend = partition # (1 to Np) which will send its processor layout \n         Precv = partition # (1 to Np) which will recv the processor layout \n         cstyle = multiple \n         multiple = Psend grid will be multiple of Precv grid in each dimension \n *        file arg = outfile \n         outfile = name of file to write 3d grid of processors to \n", - "examples": "\n```lmps\nprocessors * * 5\nprocessors 2 4 4\nprocessors * * 8 map xyz\nprocessors * * * grid numa\nprocessors * * * grid twolevel 4 * * 1\nprocessors 4 8 16 grid custom myfile\nprocessors * * * part 1 2 multiple\n```\n", - "html_filename": "processors.html", - "short_description": "Specify how processors are mapped as a regular 3d grid to the global\nsimulation box", - "description": "Specify how processors are mapped as a regular 3d grid to the global\nsimulation box. The mapping involves 2 steps. First if there are P\nprocessors it means choosing a factorization P = Px by Py by Pz so\nthat there are Px processors in the x dimension, and similarly for the\ny and z dimensions. Second, the P processors are mapped to the\nregular 3d grid. The arguments to this command control each of these\n2 steps.\n\nThe Px, Py, Pz parameters affect the factorization. Any of the 3\nparameters can be specified with an asterisk \"\\*\", which means LAMMPS\nwill choose the number of processors in that dimension of the grid.\nIt will do this based on the size and shape of the global simulation\nbox so as to minimize the surface-to-volume ratio of each processor's\nsubdomain.\n\nChoosing explicit values for Px or Py or Pz can be used to override\nthe default manner in which LAMMPS will create the regular 3d grid of\nprocessors, if it is known to be sub-optimal for a particular problem.\nE.g. a problem where the extent of atoms will change dramatically in a\nparticular dimension over the course of the simulation.\n\nThe product of Px, Py, Pz must equal P, the total # of processors\nLAMMPS is running on. For a [2d simulation ](https://docs.lammps.org/dimension.html), Pz must\nequal 1.\n\nNote that if you run on a prime number of processors P, then a grid\nsuch as 1 x P x 1 will be required, which may incur extra\ncommunication costs due to the high surface area of each processor's\nsubdomain.\n\nAlso note that if multiple partitions are being used then P is the\nnumber of processors in this partition; see the [-partition command-line switch ](https://docs.lammps.org/Run_options.html) page for details. Also note\nthat you can prefix the processors command with the\n[partition ](https://docs.lammps.org/partition.html) command to easily specify different\nPx,Py,Pz values for different partitions.\n\nYou can use the [partition ](https://docs.lammps.org/partition.html) command to specify\ndifferent processor grids for different partitions, e.g.\n\n```lmps\npartition yes 1 processors 4 4 4\npartition yes 2 processors 2 3 2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command only affects the initial regular 3d grid created\n > when the simulation box is first specified via a\n > [create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) command. Or if the simulation box is\n > re-created via the [replicate ](https://docs.lammps.org/replicate.html) command. The same\n > regular grid is initially created, regardless of which\n > [comm_style ](https://docs.lammps.org/comm_style.html) command is in effect. \n > \n\nIf load-balancing is never invoked via the [balance ](https://docs.lammps.org/balance.html) or\n[fix balance ](https://docs.lammps.org/fix_balance.html) commands, then the initial regular grid\nwill persist for all simulations. If balancing is performed, some of\nthe methods invoked by those commands retain the logical topology of\nthe initial 3d grid, and the mapping of processors to the grid\nspecified by the processors command. However the grid spacings in\ndifferent dimensions may change, so that processors own subdomains of\ndifferent sizes. If the [comm_style tiled ](https://docs.lammps.org/comm_style.html) command is\nused, methods invoked by the balancing commands may discard the 3d\ngrid of processors and tile the simulation domain with subdomains of\ndifferent sizes and shapes which no longer have a logical 3d\nconnectivity. If that occurs, all the information specified by the\nprocessors command is ignored.\n\n----------\n\nThe *grid* keyword affects the factorization of P into Px,Py,Pz and it\ncan also affect how the P processor IDs are mapped to the 3d grid of\nprocessors.\n\nThe *onelevel* style creates a 3d grid that is compatible with the\nPx,Py,Pz settings, and which minimizes the surface-to-volume ratio of\neach processor's subdomain, as described above. The mapping of\nprocessors to the grid is determined by the *map* keyword setting.\n\nThe *twolevel* style can be used on machines with multicore nodes to\nminimize off-node communication. It ensures that contiguous\nsubsections of the 3d grid are assigned to all the cores of a node.\nFor example if *Nc* is 4, then 2x2x1 or 2x1x2 or 1x2x2 subsections of\nthe 3d grid will correspond to the cores of each node. This affects\nboth the factorization and mapping steps.\n\nThe *Cx*, *Cy*, *Cz* settings are similar to the *Px*, *Py*, *Pz*\nsettings, only their product should equal *Nc* . Any of the 3\nparameters can be specified with an asterisk \"\\*\", which means LAMMPS\nwill choose the number of cores in that dimension of the node's\nsub-grid. As with Px,Py,Pz, it will do this based on the size and\nshape of the global simulation box so as to minimize the\nsurface-to-volume ratio of each processor's subdomain.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the *twolevel* style to work correctly, it assumes the MPI\n > ranks of processors LAMMPS is running on are ordered by core and then\n > by node. E.g. if you are running on 2 quad-core nodes, for a total of\n > 8 processors, then it assumes processors 0,1,2,3 are on node 1, and\n > processors 4,5,6,7 are on node 2. This is the default rank ordering\n > for most MPI implementations, but some MPIs provide options for this\n > ordering, e.g. via environment variable settings. \n > \n\nThe *numa* style operates similar to the *twolevel* keyword except that\nit auto-detects which cores are running on which nodes. It will also\nsubdivide the cores into numa domains. Currently, the number of numa\ndomains is not auto-detected and must be specified using the\n*numa_nodes* keyword; otherwise, the default value is used. The *numa*\nstyle uses a different algorithm than the *twolevel* keyword for doing\nthe two-level factorization of the simulation box into a 3d processor\ngrid to minimize off-node communication and communication across numa\ndomains. It does its own MPI-based mapping of nodes and cores to the\nregular 3d grid. Thus it may produce a different layout of the\nprocessors than the *twolevel* options.\n\nThe *numa* style will give an error if the number of MPI processes is\nnot divisible by the number of cores used per node, or any of the Px\nor Py or Pz values is greater than 1.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the *twolevel* style, the *numa* style does not require\n > any particular ordering of MPI ranks in order to work correctly. This\n > is because it auto-detects which processes are running on which nodes.\n > However, it assumes that the lowest ranks are in the first numa\n > domain, and so forth. MPI rank orderings that do not preserve this\n > property might result in more intra-node communication between CPUs. \n > \n\nThe *custom* style uses the file *infile* to define both the 3d\nfactorization and the mapping of processors to the grid.\n\nThe file should have the following format. Any number of initial\nblank or comment lines (starting with a \"#\" character) can be present.\nThe first non-blank, non-comment line should have\n3 values:\n\n```\nPx Py Py\n```\nThese must be compatible with the total number of processors\nand the Px, Py, Pz settings of the processors command.\n\nThis line should be immediately followed by\nP = Px\\*Py\\*Pz lines of the form:\n\n```\nID I J K\n```\nwhere ID is a processor ID (from 0 to P-1) and I,J,K are the\nprocessors location in the 3d grid. I must be a number from 1 to Px\n(inclusive) and similarly for J and K. The P lines can be listed in\nany order, but no processor ID should appear more than once.\n\n----------\n\nThe *numa_nodes* keyword is used to specify the number of numa domains\nper node. It is currently only used by the *numa* style for two-level\nfactorization to reduce the amount of MPI communications between CPUs.\nA good setting for this will typically be equal to the number of CPU\nsockets per node.\n\n----------\n\nThe *map* keyword affects how the P processor IDs (from 0 to P-1) are\nmapped to the 3d grid of processors. It is only used by the\n*onelevel* and *twolevel* grid settings.\n\nThe *cart* style uses the family of MPI Cartesian functions to perform\nthe mapping, namely MPI_Cart_create(), MPI_Cart_get(),\nMPI_Cart_shift(), and MPI_Cart_rank(). It invokes the\nMPI_Cart_create() function with its reorder flag = 0, so that MPI is\nnot free to reorder the processors.\n\nThe *cart/reorder* style does the same thing as the *cart* style\nexcept it sets the reorder flag to 1, so that MPI can reorder\nprocessors if it desires.\n\nThe *xyz*, *xzy*, *yxz*, *yzx*, *zxy*, and *zyx* styles are all\nsimilar. If the style is IJK, then it maps the P processors to the\ngrid so that the processor ID in the I direction varies fastest, the\nprocessor ID in the J direction varies next fastest, and the processor\nID in the K direction varies slowest. For example, if you select\nstyle *xyz* and you have a 2x2x2 grid of 8 processors, the assignments\nof the 8 octants of the simulation domain will be:\n\n```\nproc 0 = lo x, lo y, lo z octant\nproc 1 = hi x, lo y, lo z octant\nproc 2 = lo x, hi y, lo z octant\nproc 3 = hi x, hi y, lo z octant\nproc 4 = lo x, lo y, hi z octant\nproc 5 = hi x, lo y, hi z octant\nproc 6 = lo x, hi y, hi z octant\nproc 7 = hi x, hi y, hi z octant\n```\nNote that, in principle, an MPI implementation on a particular machine\nshould be aware of both the machine's network topology and the\nspecific subset of processors and nodes that were assigned to your\nsimulation. Thus its MPI_Cart calls can optimize the assignment of\nMPI processes to the 3d grid to minimize communication costs. In\npractice, however, few if any MPI implementations actually do this.\nSo it is likely that the *cart* and *cart/reorder* styles simply give\nthe same result as one of the IJK styles.\n\nAlso note, that for the *twolevel* grid style, the *map* setting is\nused to first map the nodes to the 3d grid, then again to the cores\nwithin each node. For the latter step, the *cart* and *cart/reorder*\nstyles are not supported, so an *xyz* style is used in their place.\n\n----------\n\nThe *part* keyword affects the factorization of P into Px,Py,Pz.\n\nIt can be useful when running in multi-partition mode, e.g. with the\n[run_style verlet/split ](https://docs.lammps.org/run_style.html) command. It specifies a\ndependency between a sending partition *Psend* and a receiving\npartition *Precv* which is enforced when each is setting up their own\nmapping of their processors to the simulation box. Each of *Psend*\nand *Precv* must be integers from 1 to Np, where Np is the number of\npartitions you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\nA \"dependency\" means that the sending partition will create its\nregular 3d grid as Px by Py by Pz and after it has done this, it will\nsend the Px,Py,Pz values to the receiving partition. The receiving\npartition will wait to receive these values before creating its own\nregular 3d grid and will use the sender's Px,Py,Pz values as a\nconstraint. The nature of the constraint is determined by the\n*cstyle* argument.\n\nFor a *cstyle* of *multiple*, each dimension of the sender's processor\ngrid is required to be an integer multiple of the corresponding\ndimension in the receiver's processor grid. This is a requirement of\nthe [run_style verlet/split ](https://docs.lammps.org/run_style.html) command.\n\nFor example, assume the sending partition creates a 4x6x10 grid = 240\nprocessor grid. If the receiving partition is running on 80\nprocessors, it could create a 4x2x10 grid, but it will not create a\n2x4x10 grid, since in the y-dimension, 6 is not an integer multiple of\n4.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the [partition ](https://docs.lammps.org/partition.html) command to invoke\n > different \"processors\" commands on different partitions, and you also\n > use the *part* keyword, then you must ensure that both the sending and\n > receiving partitions invoke the \"processors\" command that connects the\n > 2 partitions via the *part* keyword. LAMMPS cannot easily check for\n > this, but your simulation will likely hang in its setup phase if this\n > error has been made. \n > \n\n----------\n\nThe *file* keyword writes the mapping of the factorization of P\nprocessors and their mapping to the 3d grid to the specified file\n*outfile* . This is useful to check that you assigned physical\nprocessors in the manner you desired, which can be tricky to figure\nout, especially when running on multiple partitions or on, a multicore\nmachine or when the processor ranks were reordered by use of the\n[-reorder command-line switch ](https://docs.lammps.org/Run_options.html) or due to use of\nMPI-specific launch options such as a config file.\n\nIf you have multiple partitions you should ensure that each one writes\nto a different file, e.g. using a [world-style variable ](https://docs.lammps.org/variable.html)\nfor the filename. The file has a self-explanatory header, followed by\none-line per processor in this format:\n\nworld-ID universe-ID original-ID: I J K: name\n\nThe IDs are the processor's rank in this simulation (the world), the\nuniverse (of multiple simulations), and the original MPI communicator\nused to instantiate LAMMPS, respectively. The world and universe IDs\nwill only be different if you are running on more than one partition;\nsee the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). The\nuniverse and original IDs will only be different if you used the\n[-reorder command-line switch ](https://docs.lammps.org/Run_options.html) to reorder the\nprocessors differently than their rank in the original communicator\nLAMMPS was instantiated with.\n\nI,J,K are the indices of the processor in the regular 3d grid, each\nfrom 1 to Nd, where Nd is the number of processors in that dimension\nof the grid.\n\nThe *name* is what is returned by a call to MPI_Get_processor_name()\nand should represent an identifier relevant to the physical processors\nin your machine. Note that depending on the MPI implementation,\nmultiple cores can have the same *name* .\n\n----------\n", - "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\nIt can be used before a restart file is read to change the 3d\nprocessor grid from what is specified in the restart file.\n\nThe *grid numa* keyword only currently works with the *map cart*\noption.\n\nThe *part* keyword (for the receiving partition) only works with the\n*grid onelevel* or *grid twolevel* options.\n", - "related": "[partition ](https://docs.lammps.org/partition.html), [-reorder command-line switch ](https://docs.lammps.org/Run_options.html)\n" -}, -{ - "command": [ - "dihedral_style lepton", - "dihedral_style lepton/omp" - ], - "syntax": [ - "dihedral_style lepton" - ], - "args": [ + ], [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "lepton", - "type": 3, - "choices": [ - "lepton", - "lepton/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style lepton\n\ndihedral_coeff 1 \"k*(1 + d*cos(n*phi)); k=75.0; d=1; n=2\"\ndihedral_coeff 2 \"45*(1-cos(4*phi))\"\ndihedral_coeff 2 \"k2*cos(phi) + k3*cos(phi)^2; k2=100.0\"\ndihedral_coeff 3 \"k*(phi-phi0)^2; k=85.0; phi0=120.0\"\n```\n", - "html_filename": "dihedral_lepton.html", - "short_description": "\nDihedral style *lepton* computes dihedral interactions between four\natoms forming a dihedral angle with a custom potential function", - "description": "\nDihedral style *lepton* computes dihedral interactions between four\natoms forming a dihedral angle with a custom potential function. The\npotential function must be provided as an expression string using \"phi\"\nas the dihedral angle variable. For example `\"200.0*(phi-120.0)^2\"`\nrepresents a [quadratic dihedral ](https://docs.lammps.org/dihedral_quadratic.html) potential\naround a 120 degree dihedral angle with a force constant *K* of 200.0\nenergy units:\n\\[\n U_{dihedral,i} = K (\\phi_i - \\phi_0)^2\\]\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* dihedral style interfaces with, evaluates this expression\nstring at run time to compute the pairwise energy. It also creates an\nanalytical representation of the first derivative of this expression\nwith respect to \"phi\" and then uses that to compute the force between\nthe dihedral atoms as defined by the topology data.\n\nThe potential function expression for each dihedral type is provided via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands. The expression is in energy units.\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. Dihedral angles are internally\ncomputed in radians and thus the expression must assume \"phi\" is in\nradians.\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html), [dihedral_style table ](https://docs.lammps.org/dihedral_table.html),\n[bond_style lepton ](https://docs.lammps.org/bond_lepton.html), [angle_style lepton ](https://docs.lammps.org/angle_lepton.html)\n" -}, -{ - "command": [ - "compute coord/atom", - "compute coord/atom/kk" - ], - "syntax": [ - "compute ID group-ID coord/atom style args ..." - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, + "arg": "coul/streitz", + "type": 2, "choices": [] }, { - "arg": "ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "coord/atom", - "type": 3, - "choices": [ - "coord/atom", - "coord/atom/kk" - ] + "arg": "alpha", + "type": 2, + "choices": [] + } + ], + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "orientorder", - "type": 3, - "choices": [ - "cutoff", - "orientorder" - ] + "arg": "tip4p/cut", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "otype", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* coord/atom = style name of this compute command\n* style = cutoff or orientorder \n *      cutoff args = cutoff [group group2-ID] typeN \n       cutoff = distance within which to count coordination neighbors (distance units) \n       group group2-ID = select group-ID to restrict which atoms to consider for coordination number (optional) \n       typeN = atom type for Nth coordination count (see asterisk form below) \n *      orientorder args = orientorderID threshold \n       orientorderID = ID of an orientorder/atom compute \n       threshold = minimum value of the product of two \"connected\" atoms \n", - "examples": "\n```lmps\ncompute 1 all coord/atom cutoff 2.0\ncompute 1 all coord/atom cutoff 6.0 1 2\ncompute 1 all coord/atom cutoff 6.0 2*4 5*8 *\ncompute 1 solute coord/atom cutoff 2.0 group solvent\ncompute 1 all coord/atom orientorder 2 0.5\n```\n", - "html_filename": "compute_coord_atom.html", - "short_description": "This compute performs calculations between neighboring atoms to\ndetermine a coordination value", - "description": "This compute performs calculations between neighboring atoms to\ndetermine a coordination value. The specific calculation and the\nmeaning of the resulting value depend on the *cstyle* keyword used.\n\nThe *cutoff* cstyle calculates one or more traditional coordination\nnumbers for each atom. A coordination number is defined as the number\nof neighbor atoms with specified atom type(s), and optionally within\nthe specified group, that are within the specified cutoff distance from\nthe central atom. The compute group selects only the central atoms; all\nneighboring atoms, unless selected by type, type range, or group option,\nare included in the coordination number tally.\n\nThe optional *group* keyword allows to specify from which group atoms\ncontribute to the coordination number. Default setting is group 'all.'\n\nThe *typeN* keywords allow specification of which atom types\ncontribute to each coordination number. One coordination number is\ncomputed for each of the *typeN* keywords listed. If no *typeN*\nkeywords are listed, a single coordination number is calculated, which\nincludes atoms of all types (same as the \"\\*\" format, see below).\n\nThe *typeN* keywords can be specified in one of two ways. An explicit\nnumeric value can be used, as in the second example above. Or a\nwild-card asterisk can be used to specify a range of atom types. This\ntakes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of\natom types, then an asterisk with no numeric values means all types\nfrom 1 to \\(N\\). A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe *orientorder* cstyle calculates the number of \"connected\" neighbor\natoms *j* around each central atom *i* . For this *cstyle*, connected is\ndefined by the orientational order parameter calculated by the\n[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) command.\nThis *cstyle* thus allows one to apply the ten Wolde's criterion to\nidentify crystal-like atoms in a system, as discussed in **tenWolde1**.\n\nThe ID of the previously specified [compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) command is specified as\n*orientorderID* . The compute must invoke its *components* option to\ncalculate components of the *Ybar_lm* vector for each atoms, as\ndescribed in its documentation. Note that orientorder/atom compute\ndefines its own criteria for identifying neighboring atoms. If the\nscalar product (*Ybar_lm(i)*, *Ybar_lm(j)*), calculated by the\norientorder/atom compute is larger than the specified *threshold*,\nthen *i* and *j* are connected, and the coordination value of *i* is\nincremented by one.\n\nFor all *cstyle* settings, all coordination values will be 0.0 for\natoms not in the specified compute group.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the coordination count. One way\n > to get around this, is to write a dump file, and use the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the coordination for snapshots\n > in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nFor *cstyle* cutoff, this compute can calculate a per-atom vector or\narray. If single *type1* keyword is specified (or if none are\nspecified), this compute calculates a per-atom vector. If multiple\n*typeN* keywords are specified, this compute calculates a per-atom\narray, with \\(N\\) columns.\n\nFor *cstyle* orientorder, this compute calculates a per-atom vector.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-atom vector or array values will be a number \\(\\ge 0.0\\), as\nexplained above.\n\n**(tenWolde1)** P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,\nJ. Chem. Phys. 104, 9932 (1996). \n ", - "restrictions": " none\n", - "related": "[compute cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html)\n[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html)\n" -}, -{ - "command": [ - "pair_style spin/exchange" - ], - "syntax": [ - "pair_style spin/exchange cutoff", - "pair_style spin/exchange/biquadratic cutoff" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "htype", + "type": 2, "choices": [] }, { - "arg": "spin/exchange", - "type": 1, + "arg": "btype", + "type": 2, + "choices": [] + }, + { + "arg": "atype", + "type": 2, + "choices": [] + }, + { + "arg": "qdist", + "type": 2, "choices": [] }, { @@ -26707,7 +25446,32 @@ export const command_docs = [ "choices": [] }, { - "arg": "spin/exchange/biquadratic", + "arg": "tip4p/long", + "type": 2, + "choices": [] + }, + { + "arg": "otype", + "type": 2, + "choices": [] + }, + { + "arg": "htype", + "type": 2, + "choices": [] + }, + { + "arg": "btype", + "type": 2, + "choices": [] + }, + { + "arg": "atype", + "type": 2, + "choices": [] + }, + { + "arg": "qdist", "type": 2, "choices": [] }, @@ -26718,20 +25482,20 @@ export const command_docs = [ } ] ], - "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", - "examples": "\n```lmps\npair_style spin/exchange 4.0\npair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885\npair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 offset yes\n\npair_style spin/exchange/biquadratic 4.0\npair_coeff * * biquadratic 4.0 0.05 0.03 1.48 0.05 0.03 1.48 offset no\npair_coeff 1 2 biquadratic 6.0 -0.01 0.0 1.9 0.0 0.1 19\n```\n", - "html_filename": "pair_spin_exchange.html", - "short_description": "Style *spin/exchange* computes the exchange interaction between\npairs of magnetic spins:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,\\vec{s}_i \\cdot \\vec{s}_j\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two unit vectors representing\nthe magnetic spins of two particles (usually atoms), and\n\\(r_{ij} = \\vert \\vec{r}_i - \\vec{r}_j \\vert\\) is the inter-atomic distance\nbetween those two particles", - "description": "Style *spin/exchange* computes the exchange interaction between\npairs of magnetic spins:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,\\vec{s}_i \\cdot \\vec{s}_j\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two unit vectors representing\nthe magnetic spins of two particles (usually atoms), and\n\\(r_{ij} = \\vert \\vec{r}_i - \\vec{r}_j \\vert\\) is the inter-atomic distance\nbetween those two particles. The summation is over pairs of nearest neighbors.\n\\(J(r_{ij})\\) is a function defining the intensity and the sign of the\nexchange interaction for different neighboring shells.\n\nStyle *spin/exchange/biquadratic* computes a biquadratic exchange interaction\nbetween pairs of magnetic spins:\n\\[\n H_{bi} = -\\sum_{i, j}^{N} {J}_{ij} \\left(r_{ij} \\right)\\,\n \\vec{s}_{i}\\cdot \\vec{s}_{j}\n -\\sum_{i, j}^{N} {K}_{ij} \\left(r_{ij} \\right)\\,\n \\left(\\vec{s}_{i}\\cdot\n \\vec{s}_{j}\\right)^2\\]\nwhere \\(\\vec{s}_i\\), \\(\\vec{s}_j\\), \\(r_{ij}\\) and\n\\(J(r_{ij})\\) have the same definitions as above, and \\(K(r_{ij})\\) is\na second function, defining the intensity and the sign of the biquadratic term.\n\nThe interatomic dependence of \\(J(r_{ij})\\) and \\(K(r_{ij})\\) in both\ninteractions above is defined by the following function:\n\\[\n {f}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2\n \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right)\n e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients\ndefined in the associated \"pair_coeff\" command, and \\(R_c\\) is the radius\ncutoff associated to the pair interaction (see below for more explanations).\n\nThe coefficients \\(a\\), \\(b\\), and \\(d\\) need to be fitted so that\nthe function above matches with the value of the exchange interaction for the\n\\(N\\) neighbor shells taken into account.\nExamples and more explanations about this function and its parameterization\nare reported in **Tranchida3**.\n\nWhen a *spin/exchange/biquadratic* pair style is defined, six coefficients\n(three for \\(J(r_{ij})\\), and three for \\(K(r_{ij})\\)) have to be\nfitted.\n\nFrom this exchange interaction, each spin \\(i\\) will be submitted\nto a magnetic torque \\(\\vec{\\omega}_{i}\\), and its associated atom can be\nsubmitted to a force \\(\\vec{F}_{i}\\) for spin-lattice calculations (see\n[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)), such as:\n\\[\n \\vec{\\omega}_{i} = \\frac{1}{\\hbar} \\sum_{j}^{Neighb} {J}\n \\left(r_{ij} \\right)\\,\\vec{s}_{j}\n ~~{\\rm and}~~\n \\vec{F}_{i} = \\sum_{j}^{Neighb} \\frac{\\partial {J} \\left(r_{ij} \\right)}{\n \\partial r_{ij}} \\left( \\vec{s}_{i}\\cdot \\vec{s}_{j} \\right) \\vec{e}_{ij}\\]\nwith \\(\\hbar\\) the Planck constant (in metal units), and \\(\\vec{e}_{ij}\n= \\frac{\\vec{r}_i - \\vec{r}_j}{\\vert \\vec{r}_i-\\vec{r}_j \\vert}\\) the unit\nvector between sites \\(i\\) and \\(j\\).\nEquivalent forces and magnetic torques are generated for the biquadratic term\nwhen a *spin/exchange/biquadratic* pair style is defined.\n\nMore details about the derivation of these torques/forces are reported in\n**Tranchida3**.\n\nFor the *spin/exchange* and *spin/exchange/biquadratic* pair styles, the\nfollowing coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, and set in the following order:\n\n* \\(R_c\\) (distance units)\n* \\(a\\) (energy units)\n* \\(b\\) (adim parameter)\n* \\(d\\) (distance units)\n\nfor the *spin/exchange* pair style, and:\n\n* \\(R_c\\) (distance units)\n* \\(a_j\\) (energy units)\n* \\(b_j\\) (adim parameter)\n* \\(d_j\\) (distance units)\n* \\(a_k\\) (energy units)\n* \\(b_k\\) (adim parameter)\n* \\(d_k\\) (distance units)\n\nfor the *spin/exchange/biquadratic* pair style.\n\nNote that \\(R_c\\) is the radius cutoff of the considered exchange\ninteraction, and \\(a\\), \\(b\\) and \\(d\\) are the three coefficients\nperforming the parameterization of the function \\(J(r_{ij})\\) defined\nabove (in the *biquadratic* style, \\(a_j\\), \\(b_j\\), \\(d_j\\) and\n\\(a_k\\), \\(b_k\\), \\(d_k\\) are the coefficients of \\(J(r_{ij})\\)\nand \\(K(r_{ij})\\) respectively).\n\n\nNone of those coefficients is optional. If not specified, the\n*spin/exchange* pair style cannot be used.\n\n----------\n\n**Offsetting magnetic forces and energies** :\n\nFor spin-lattice simulation, it can be useful to offset the\nmechanical forces and energies generated by the exchange\ninteraction.\nThe *offset* keyword allows to apply this offset.\nBy setting *offset* to *yes*, the energy definitions above are\nreplaced by:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,[ \\vec{s}_i \\cdot \\vec{s}_j-1 ]\\]\nfor the *spin/exchange* pair style, and:\n\\[\n H_{bi} = -\\sum_{i, j}^{N} {J}_{ij} \\left(r_{ij} \\right)\\,\n [ \\vec{s}_{i}\\cdot \\vec{s}_{j} -1 ]\n -\\sum_{i, j}^{N} {K}_{ij} \\left(r_{ij} \\right)\\,\n [ \\left(\\vec{s}_{i}\\cdot\n \\vec{s}_{j}\\right)^2 -1]\\]\nfor the *spin/exchange/biquadratic* pair style.\n\nNote that this offset only affects the calculation of the energy\nand mechanical forces. It does not modify the calculation of the\nprecession vectors (and thus does no impact the purely magnetic\nproperties).\nThis ensures that when all spins are aligned, the magnetic energy\nand the associated mechanical forces (and thus the pressure\ngenerated by the magnetic potential) are null.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This offset term can be very important when calculations such as\n > equations of state (energy vs volume, or energy vs pressure) are\n > being performed. Indeed, setting the *offset* term ensures that\n > at the ground state of the crystal and at the equilibrium magnetic\n > configuration (typically ferromagnetic), the pressure is null,\n > as expected.\n > Otherwise, magnetic forces could generate a residual pressure. \n > \n\nWhen the *offset* option is set to *no*, no offset is applied\n(also corresponding to the default option).\n\n----------\n\n**(Tranchida3)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", - "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" + "parameters": "* cutoff = global cutoff for Coulombic interactions\n* kappa = Debye length (inverse distance units)\n* alpha = damping parameter (inverse distance units) \n", + "examples": "\n```lmps\npair_style coul/cut 2.5\npair_coeff * *\npair_coeff 2 2 3.5\n\npair_style coul/debye 1.4 3.0\npair_coeff * *\npair_coeff 2 2 3.5\n\npair_style coul/dsf 0.05 10.0\npair_coeff * *\n\npair_style hybrid/overlay coul/exclude 10.0 ...\npair_coeff * * coul/exclude\n\npair_style coul/long 10.0\npair_coeff * *\n\npair_style coul/msm 10.0\npair_coeff * *\n\npair_style coul/wolf 0.2 9.0\npair_coeff * *\n\npair_style coul/streitz 12.0 ewald\npair_style coul/streitz 12.0 wolf 0.30\npair_coeff * * AlO.streitz Al O\n\npair_style tip4p/cut 1 2 7 8 0.15 12.0\npair_coeff * *\n\npair_style tip4p/long 1 2 7 8 0.15 10.0\npair_coeff * *\n```\n", + "html_filename": "pair_coul.html", + "short_description": "The *coul/cut* style computes the standard Coulombic interaction\npotential given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, Qi and Qj are the charges on\nthe 2 atoms, and \\(\\epsilon\\) is the dielectric constant which can be set\nby the [dielectric ](https://docs.lammps.org/dielectric.html) command", + "description": "The *coul/cut* style computes the standard Coulombic interaction\npotential given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, Qi and Qj are the charges on\nthe 2 atoms, and \\(\\epsilon\\) is the dielectric constant which can be set\nby the [dielectric ](https://docs.lammps.org/dielectric.html) command. The cutoff \\(r_c\\) truncates\nthe interaction distance.\n\n----------\n\nStyle *coul/debye* adds an additional exp() damping factor to the\nCoulombic term, given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\exp(- \\kappa r) \\qquad r < r_c\\]\nwhere \\(\\kappa\\) is the Debye length. This potential is another way to\nmimic the screening effect of a polar solvent.\n\n----------\n\nStyle *coul/dsf* computes Coulombic interactions via the damped\nshifted force model described in **Fennell1**, given by:\n\\[\n E = q_iq_j \\left[ \\frac{\\mbox{erfc} (\\alpha r)}{r} - \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c} +\n \\left( \\frac{\\mbox{erfc} (\\alpha r_c)}{r_c^2} + \\frac{2\\alpha}{\\sqrt{\\pi}}\\frac{\\exp (-\\alpha^2 r^2_c)}{r_c} \\right)(r-r_c) \\right] \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter and *erfc()* is the\ncomplementary error-function. The potential corrects issues in the Wolf\nmodel (described below) to provide consistent forces and energies (the\nWolf potential is not differentiable at the cutoff) and smooth decay to\nzero.\n\n----------\n\nStyle *coul/wolf* computes Coulombic interactions via the Wolf\nsummation method, described in **Wolf1**, given by:\n\\[\n E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and *erf()* and *erfc()*\nare error-function and complementary error-function terms. This\npotential is essentially a short-range, spherically-truncated,\ncharge-neutralized, shifted, pairwise *1/r* summation. With a\nmanipulation of adding and subtracting a self term (for i = j) to the\nfirst and second term on the right-hand-side, respectively, and a small\nenough \\(\\alpha\\) damping parameter, the second term shrinks and the\npotential becomes a rapidly-converging real-space summation. With a\nlong enough cutoff and small enough \\(\\alpha\\) parameter, the energy\nand forces calculated by the Wolf summation method approach those of the\nEwald sum. So it is a means of getting effective long-range\ninteractions with a short-range potential.\n\n----------\n\nStyle *coul/streitz* is the Coulomb pair interaction defined as part of\nthe Streitz-Mintmire potential, as described in **Streitz2**, in which charge distribution about an atom is modeled as a\nSlater 1\\ *s* orbital. More details can be found in the referenced\npaper. To fully reproduce the published Streitz-Mintmire potential,\nwhich is a variable charge potential, style *coul/streitz* must be used\nwith [pair_style eam/alloy ](https://docs.lammps.org/pair_eam.html) (or some other short-range\npotential that has been parameterized appropriately) via the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. Likewise,\ncharge equilibration must be performed via the [fix qeq/slater](https://docs.lammps.org/fix_qeq.html) command. For example:\n\n```lmps\npair_style hybrid/overlay coul/streitz 12.0 wolf 0.31 eam/alloy\npair_coeff * * coul/streitz AlO.streitz Al O\npair_coeff * * eam/alloy AlO.eam.alloy Al O\nfix 1 all qeq/slater 1 12.0 1.0e-6 100 coul/streitz\n```\nThe keyword *wolf* in the coul/streitz command denotes computing\nCoulombic interactions via Wolf summation. An additional damping\nparameter is required for the Wolf summation, as described for the\ncoul/wolf potential above. Alternatively, Coulombic interactions can\nbe computed via an Ewald summation. For example:\n\n```lmps\npair_style hybrid/overlay coul/streitz 12.0 ewald eam/alloy\nkspace_style ewald 1e-6\n```\nKeyword *ewald* does not need a damping parameter, but a\n[kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined, which can be style\n*ewald* or *pppm* . The Ewald method was used in Streitz and\nMintmire's original paper, but a Wolf summation offers a speed-up in\nsome cases.\n\nFor the fix qeq/slater command, the *qfile* can be a filename that\ncontains QEq parameters as discussed on the [fix qeq ](https://docs.lammps.org/fix_qeq.html)\ncommand doc page. Alternatively *qfile* can be replaced by\n\"coul/streitz\", in which case the fix will extract QEq parameters from\nthe coul/streitz pair style itself.\n\nSee the examples/strietz directory for an example input script that\nuses the Streitz-Mintmire potential. The potentials directory has the\nAlO.eam.alloy and AlO.streitz potential files used by the example.\n\nNote that the Streiz-Mintmire potential is generally used for oxides,\nbut there is no conceptual problem with extending it to nitrides and\ncarbides (such as SiC, TiN). Pair coul/strietz used by itself or with\nany other pair style such as EAM, MEAM, Tersoff, or LJ in\nhybrid/overlay mode. To do this, you would need to provide a\nStreitz-Mintmire parameterization for the material being modeled.\n\n----------\n\nPair style *coul/cut/global* computes the same Coulombic interactions\nas style *coul/cut* except that it allows only a single global cutoff\nand thus makes it compatible for use in combination with long-range\ncoulomb styles in [hybrid pair styles ](https://docs.lammps.org/pair_hybrid.html).\n\nPair style *coul/exclude* computes Coulombic interactions like *coul/cut*\nbut **only** applies them to excluded pairs using a scaling factor\nof \\(\\gamma - 1.0\\) with \\(\\gamma\\) being the factor assigned\nto that excluded pair via the [special_bonds coul ](https://docs.lammps.org/special_bonds.html)\nsetting. With this it is possible to treat Coulomb interactions for\nmolecular systems with [kspace style scafacos ](https://docs.lammps.org/kspace_style.html),\nwhich always computes the *full* Coulomb interactions without exclusions.\nPair style *coul/exclude* will then *subtract* the excluded interactions\naccordingly. So to achieve the same forces as with ``pair_style lj/cut/coul/long 12.0``\nwith ``kspace_style pppm 1.0e-6``, one would use\n``pair_style hybrid/overlay lj/cut 12.0 coul/exclude 12.0`` with\n``kspace_style scafacos p3m 1.0e-6``.\n\nStyles *coul/long* and *coul/msm* compute the same Coulombic\ninteractions as style *coul/cut* except that an additional damping\nfactor is applied so it can be used in conjunction with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\noption. The Coulombic cutoff specified for this style means that\npairwise interactions within this distance are computed directly;\ninteractions outside that distance are computed in reciprocal space.\n\nStyles *tip4p/cut* and *tip4p/long* implement the Coulomb part of\nthe TIP4P water model of **Jorgensen3**, which introduces\na massless site located a short distance away from the oxygen atom\nalong the bisector of the HOH angle. The atomic types of the oxygen and\nhydrogen atoms, the bond and angle types for OH and HOH interactions,\nand the distance to the massless charge site are specified as\npair_style arguments. Style *tip4p/cut* uses a global cutoff for\nCoulomb interactions; style *tip4p/long* is for use with a long-range\nCoulombic solver (Ewald or PPPM).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more information\non how to use the TIP4P pair styles and lists of parameters to set.\nNote that the neighbor list cutoff for Coulomb interactions is\neffectively extended by a distance 2\\*qdist when using the TIP4P pair\nstyle, to account for the offset distance of the fictitious charges on\nO atoms in water molecules. Thus it is typically best in an\nefficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\\*qdist, to\nshrink the size of the neighbor list. This leads to slightly larger\ncost for the long-range calculation, so you can test the trade-off for\nyour model.\n\n----------\n\nNote that these potentials are designed to be combined with other pair\npotentials via the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand. This is because they have no repulsive core. Hence if they\nare used by themselves, there will be no repulsion to keep two\noppositely charged particles from moving arbitrarily close to each\nother.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *coul/cut* and *coul/debye* the cutoff coefficient is optional.\nIf it is not used (as in some of the examples above), the default\nglobal value specified in the pair_style command is used.\n\nFor *coul/cut/global*, *coul/long* and *coul/msm* no cutoff can be\nspecified for an individual I,J type pair via the pair_coeff command.\nAll type pairs use the same global Coulomb cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*coul/cut* style can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is not relevant\nfor these pair styles.\n\nThe *coul/long* style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntable option for tabulation of the short-range portion of the\nlong-range Coulombic interaction.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Fennell1)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,\n234104 (2006). \n \n**(Wolf1)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n \n**(Streitz2)** F. H. Streitz, J. W. Mintmire, Phys Rev B, 50, 11996-12003\n(1994). \n \n**(Jorgensen3)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", + "restrictions": "The *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles are\npart of the KSPACE package. The *coul/cut/global* and *coul/exclude* are\npart of the EXTRA-PAIR package. A pair style is only enabled if LAMMPS was\nbuilt with its corresponding package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style, hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n" }, { "command": [ - "compute msd/nongauss" + "compute temp/eff" ], "syntax": [ - "compute ID group-ID msd/nongauss keyword values ..." + "compute ID group-ID temp/eff" ], "args": [ [ @@ -26751,36 +25515,29 @@ export const command_docs = [ "choices": [] }, { - "arg": "msd/nongauss", + "arg": "temp/eff", "type": 1, "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd/nongauss = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = com \n *        com value = yes or no \n", - "examples": "\n```lmps\ncompute 1 all msd/nongauss\ncompute 1 upper msd/nongauss com yes\n```\n", - "html_filename": "compute_msd_nongauss.html", - "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) and non-Gaussian parameter (NGP) of the group of atoms,\nincluding all effects due to atoms passing through periodic boundaries", - "description": "Define a computation that calculates the mean-squared displacement\n(MSD) and non-Gaussian parameter (NGP) of the group of atoms,\nincluding all effects due to atoms passing through periodic boundaries.\n\nA vector of three quantities is calculated by this compute. The first\nelement of the vector is the total squared displacement,\n\\(dr^2 = dx^2 + dy^2 + dz^2\\), of the atoms, and the second is the\nfourth power of these displacements, \\(dr^4 = (dx^2 + dy^2 + dz^2)^2\\),\nsummed and averaged over atoms in the group. The third component is the\nnon-Gaussian diffusion parameter NGP,\n\\[\n \\text{NGP}(t) = \\frac{3\\left\\langle(r(t)-r(0))^4\\right\\rangle}\n {5\\left\\langle(r(t)-r(0))^2\\right\\rangle^2} - 1.\\]\nThe NGP is a commonly used quantity in studies of dynamical\nheterogeneity. Its minimum theoretical value \\((-0.4)\\) occurs when all\natoms have the same displacement magnitude. \\(\\text{NGP}=0\\) for Brownian\ndiffusion, while \\(\\text{NGP} > 0\\) when some mobile atoms move faster than\nothers.\n\nIf the *com* option is set to *yes* then the effect of any drift in\nthe center-of-mass of the group of atoms is subtracted out before the\ndisplacement of each atom is calculated.\n\nSee the [compute msd ](https://docs.lammps.org/compute_msd.html) page for further important\nNOTEs, which also apply to this compute.\n\n #### Output info\n\nThis compute calculates a global vector of length 3, which can be\naccessed by indices 1--3 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The first vector value will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html), the second is in\ndistance\\ \\(^4\\) units, and the third is dimensionless.\n", - "restrictions": "Compute *msd/nongauss* cannot be used with a dynamic group.\n\nThis compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/eff = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all temp/eff\ncompute myTemp mobile temp/eff\n```\n", + "html_filename": "compute_temp_eff.html", + "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel", + "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel. A compute of this style can be used by commands that compute a\ntemperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix npt/eff ](https://docs.lammps.org/fix_nh_eff.html)).\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\) for nuclei and sum of\n\\(\\frac12 (m v^2 + \\frac34 m s^2\\)) for electrons, where \\(s\\)\nincludes the radial electron velocity contributions), dim = 2 or 3 is the\ndimensionality of the simulation, \\(N\\) is the number of atoms (only total\nnumber of nuclei in the eFF (see the [pair_eff ](https://docs.lammps.org/pair_style.html)\ncommand) in the group, \\(k_B\\) is the Boltzmann constant, and \\(T\\) is\nthe absolute temperature. This expression is summed over all nuclear and\nelectronic degrees of freedom, essentially by setting the kinetic contribution\nto the heat capacity to \\(\\frac32 k\\) (where only nuclei contribute). This\nsubtlety is valid for temperatures well below the Fermi temperature, which for\ndensities two to five times the density of liquid hydrogen ranges from\n86,000 to 170,000 K.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For eFF models, in order to override the default temperature\n > reported by LAMMPS in the thermodynamic quantities reported via the\n > [thermo ](https://docs.lammps.org/thermo.html) command, the user should apply a\n > [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command, as shown in the following\n > example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nA six-component kinetic energy tensor is also calculated by this compute\nfor use in the computation of a pressure tensor. The formula for the\ncomponents of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, etc.\nFor the eFF, again, the radial electronic velocities are also considered.\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThe scalar value calculated by this compute is \"intensive\", meaning it\nis independent of the number of atoms in the simulation. The vector\nvalues are \"extensive\", meaning they scale with the number of atoms in\nthe simulation.\n", + "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "angle_style none" + "angle_style charmm", + "angle_style charmm/intel", + "angle_style charmm/kk", + "angle_style charmm/omp" ], "syntax": [ - "angle_style none" + "angle_style charmm" ], "args": [ [ @@ -26790,70 +25547,100 @@ export const command_docs = [ "choices": [] }, { - "arg": "none", - "type": 1, - "choices": [] + "arg": "charmm", + "type": 3, + "choices": [ + "charmm", + "charmm/intel", + "charmm/kk", + "charmm/omp" + ] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style none\n```\n", - "html_filename": "angle_none.html", - "short_description": "Using an angle style of none means angle forces and energies are not\ncomputed, even if triplets of angle atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command", - "description": "Using an angle style of none means angle forces and energies are not\ncomputed, even if triplets of angle atoms were listed in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [angle_style zero ](https://docs.lammps.org/angle_zero.html) command for a way to\ncalculate angle statistics, but compute no angle interactions.\n", - "restrictions": "none\n", - "related": "[angle_style zero ](https://docs.lammps.org/angle_zero.html)\n" + "examples": "\n```lmps\nangle_style charmm\nangle_coeff 1 300.0 107.0 50.0 3.0\n```\n", + "html_filename": "angle_charmm.html", + "short_description": "The *charmm* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2 + K_{ub} (r - r_{ub})^2\\]\nwith an additional Urey_Bradley term based on the distance \\(r\\) between\nthe first and third atoms in the angle", + "description": "The *charmm* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2 + K_{ub} (r - r_{ub})^2\\]\nwith an additional Urey_Bradley term based on the distance \\(r\\) between\nthe first and third atoms in the angle. \\(K\\), \\(\\theta_0\\),\n\\(K_{ub}\\), and \\(R_{ub}\\) are coefficients defined for each angle\ntype.\n\nSee **angle-MacKerell** for a description of the CHARMM force\nfield.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n* \\(K_{ub}\\) (energy/distance\\^2)\n* \\(r_{ub}\\) (distance)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(angle-MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [pair_style lj/charmm variants ](https://docs.lammps.org/pair_charmm.html),\n[dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html),\n[dihedral_style charmmfsw ](https://docs.lammps.org/dihedral_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" }, { "command": [ - "fix_modify AtC remove_molecule" + "temper/grem" ], "syntax": [ - "fix_modify remove_molecule " + "temper/grem N M lambda fix-ID thermostat-ID seed1 seed2 index" ], "args": [ [ { - "arg": "fix_modify", + "arg": "temper/grem", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "remove_molecule", - "type": 1, + "arg": "M", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "lambda", + "type": 2, + "choices": [] + }, + { + "arg": "fix-ID", + "type": 2, + "choices": [] + }, + { + "arg": "thermostat-ID", + "type": 2, + "choices": [] + }, + { + "arg": "seed1", + "type": 2, + "choices": [] + }, + { + "arg": "seed2", + "type": 2, + "choices": [] + }, + { + "arg": "index", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_molecule = name of the AtC sub-command\n* tag = tag for tracking a molecule \n", - "examples": "\n```lmps\nfix_modify AtC remove_molecule water\n```\n", - "html_filename": "atc_remove_molecule.html", - "short_description": "Removes tag designated for tracking a specified set of molecules", - "description": "Removes tag designated for tracking a specified set of molecules.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n- [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n- [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n" + "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* lambda = initial lambda for this ensemble\n* fix-ID = ID of *fix grem*\n* thermostat-ID = ID of the thermostat that controls kinetic temperature\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* index = which temperature (0 to N-1) I am simulating (optional) \n", + "examples": "\n```lmps\ntemper/grem 100000 1000 ${lambda} fxgREM fxnvt 0 58728\ntemper/grem 40000 100 ${lambda} fxgREM fxnpt 0 32285 ${walkers}\n```\n", + "html_filename": "temper_grem.html", + "short_description": "Run a parallel tempering or replica exchange simulation in LAMMPS\npartition mode using multiple generalized replicas (ensembles) of a\nsystem defined by [fix grem ](https://docs.lammps.org/fix_grem.html), which stands for the\ngeneralized replica exchange method (gREM) originally developed by\n**KimStraub**", + "description": "Run a parallel tempering or replica exchange simulation in LAMMPS\npartition mode using multiple generalized replicas (ensembles) of a\nsystem defined by [fix grem ](https://docs.lammps.org/fix_grem.html), which stands for the\ngeneralized replica exchange method (gREM) originally developed by\n**KimStraub**. It uses non-Boltzmann ensembles to sample over first\norder phase transitions. The is done by defining replicas with an\nenthalpy dependent effective temperature\n\nTwo or more replicas must be used. See the [temper ](https://docs.lammps.org/temper.html)\ncommand for an explanation of how to run replicas on multiple\npartitions of one or more processors.\n\nThis command is a modification of the [temper ](https://docs.lammps.org/temper.html) command and\nhas the same dependencies, restraints, and input variables which are\ndiscussed there in greater detail.\n\nInstead of temperature, this command performs replica exchanges in\nlambda as per the generalized ensemble enforced by [fix grem](https://docs.lammps.org/fix_grem.html). The desired lambda is specified by *lambda*, which is\ntypically a variable previously set in the input script, so that each\npartition is assigned a different temperature. See the [variable](https://docs.lammps.org/variable.html) command for more details. For example:\n\n```lmps\nvariable lambda world 400 420 440 460\nfix fxnvt all nvt temp 300.0 300.0 100.0\nfix fxgREM all grem ${lambda} -0.05 -50000 fxnvt\ntemper/grem 100000 100 ${lambda} fxgREM fxnvt 3847 58382\n```\nwould define 4 lambdas with constant kinetic temperature but unique\ngeneralized temperature, and assign one of them to [fix grem ](https://docs.lammps.org/fix_grem.html) used by each replica, and to the grem command.\n\nAs the gREM simulation runs for *N* timesteps, a swap between adjacent\nensembles will be attempted every *M* timesteps. If *seed1* is 0,\nthen the swap attempts will alternate between odd and even pairings.\nIf *seed1* is non-zero then it is used as a seed in a random number\ngenerator to randomly choose an odd or even pairing each time. Each\nattempted swap of temperatures is either accepted or rejected based on\na Metropolis criterion, derived for gREM by :ref:`(Kim) `, which uses\n*seed2* in the random number generator.\n\nFile management works identical to the [temper ](https://docs.lammps.org/temper.html) command.\nDump files created by this fix contain continuous trajectories and\nrequire post-processing to obtain per-replica information.\n\nThe last argument *index* in the grem command is optional and is used\nwhen restarting a run from a set of restart files (one for each\nreplica) which had previously swapped to new lambda. This is done\nusing a variable. For example if the log file listed the following for\na simulation with 5 replicas:\n\n```\n500000 2 4 0 1 3\n```\nthen a setting of\n\n```lmps\nvariable walkers world 2 4 0 1 3\n```\nwould be used to restart the run with a grem command like the example\nabove with ${walkers} as the last argument. This functionality is\nidentical to [temper ](https://docs.lammps.org/temper.html).\n\n----------\n\n**(KimStraub)** Kim, Keyes, Straub, J Chem Phys, 132, 224107 (2010). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThis command must be used with [fix grem ](https://docs.lammps.org/fix_grem.html).\n", + "related": "[fix grem ](https://docs.lammps.org/fix_grem.html), [temper ](https://docs.lammps.org/temper.html), [variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "fix wall/body/polygon" + "compute smd/plastic/strain/rate" ], "syntax": [ - "fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ..." + "compute ID group-ID smd/plastic/strain/rate" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -26868,65 +25655,65 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/body/polygon", + "arg": "smd/plastic/strain/rate", "type": 1, "choices": [] - }, - { - "arg": "k_n", - "type": 2, - "choices": [] - }, - { - "arg": "c_n", - "type": 2, - "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/plastic/strain/rate = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/plastic/strain/rate\n```\n", + "html_filename": "compute_smd_plastic_strain_rate.html", + "short_description": "Define a computation that outputs the time rate of the equivalent\nplastic strain", + "description": "Define a computation that outputs the time rate of the equivalent\nplastic strain. This command is only meaningful if a material model\nwith plasticity is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", + "related": "[smd/plastic/strain ](https://docs.lammps.org/compute_smd_plastic_strain.html),\n[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" +}, +{ + "command": [ + "compute bond" + ], + "syntax": [ + "compute ID group-ID bond" + ], + "args": [ + [ { - "arg": "c_t", - "type": 2, + "arg": "compute", + "type": 1, "choices": [] }, { - "arg": "zcylinder", - "type": 3, - "choices": [ - "xplane", - "yplane", - "zcylinder" - ] - }, - { - "arg": "args", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "values", - "type": 2, + "arg": "bond", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/body/polygon = style name of this fix command\n* k_n = normal repulsion strength (force/distance or pressure units)\n* c_n = normal damping coefficient (force/distance or pressure units)\n* c_t = tangential damping coefficient (force/distance or pressure units)\n* wallstyle = xplane or yplane or zcylinder\n* args = list of arguments for a particular style \n *        xplane or yplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n *        zcylinder args = radius \n         radius = cylinder radius (distance units) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle \n *        wiggle values = dim amplitude period \n         dim = x or y or z \n         amplitude = size of oscillation (distance units) \n         period = time of oscillation (time units) \n", - "examples": "\n```lmps\nfix 1 all wall/body/polygon 1000.0 20.0 5.0 xplane -10.0 10.0\n```\n", - "html_filename": "fix_wall_body_polygon.html", - "short_description": "This fix is for use with 2d models of body particles of style\n*rounded/polygon* ", - "description": "This fix is for use with 2d models of body particles of style\n*rounded/polygon* . It bounds the simulation domain with wall(s). All\nparticles in the group interact with the wall when they are close\nenough to touch it. The nature of the interaction between the wall\nand the polygon particles is the same as that between the polygon\nparticles themselves, which is similar to a Hookean potential. See\nthe [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using\nbody particles.\n\nThe parameters *k_n*, *c_n*, *c_t* have the same meaning and units as\nthose specified with the [pair_style body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html) command.\n\nThe *wallstyle* can be planar or cylindrical. The 2 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired. For a *zcylinder* wallstyle, the cylinder's\naxis is at x = y = 0.0, and the radius of the cylinder is specified.\n\nOptionally, the wall can be moving, if the *wiggle* keyword is\nappended.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\nparticles. The arguments to the *wiggle* keyword specify a dimension\nfor the motion, as well as it's *amplitude* and *period* . Note that\nif the dimension is in the plane of the wall, this is effectively a\nshearing motion. If the dimension is perpendicular to the wall, it is\nmore of a shaking motion. A *zcylinder* wall can only be wiggled in\nthe z dimension.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xy) that has a wall must be non-periodic.\n", - "related": "[atom_style body ](https://docs.lammps.org/atom_style.html), [pair_style body/rounded/polygon ](https://docs.lammps.org/pair_body_rounded_polygon.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* bond = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all bond\n```\n", + "html_filename": "compute_bond.html", + "short_description": "Define a computation that extracts the bond energy calculated by each\nof the bond sub-styles used in the [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html) command", + "description": "Define a computation that extracts the bond energy calculated by each\nof the bond sub-styles used in the [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html) command. These values are made accessible\nfor output or further processing by other commands. The group\nspecified for this command is ignored.\n\nThis compute is useful when using [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html)\nif you want to know the portion of the total energy contributed by one\nor more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\)\nis the number of sub_styles defined by the\n[bond_style hybrid ](https://docs.lammps.org/bond_style.html) command,\nwhich can be accessed by indices 1 through \\(N\\).\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "fix saed/vtk" + "fix nve/manifold/rattle" ], "syntax": [ - "fix ID group-ID saed/vtk Nevery Nrepeat Nfreak c_ID attribute args ... keyword args ..." + "fix ID group-ID nve/manifold/rattle tol maxit manifold manifold-args keyword value ..." ], "args": [ [ @@ -26946,95 +25733,126 @@ export const command_docs = [ "choices": [] }, { - "arg": "saed/vtk", + "arg": "nve/manifold/rattle", "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "tol", "type": 2, "choices": [] }, { - "arg": "Nrepeat", + "arg": "maxit", "type": 2, "choices": [] }, { - "arg": "Nfreak", + "arg": "manifold", "type": 2, "choices": [] }, { - "arg": "c_ID", + "arg": "manifold-args", "type": 2, "choices": [] }, { - "arg": "attribute", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/manifold/rattle = style name of this fix command\n* tol = tolerance to which Newton iteration must converge\n* maxit = maximum number of iterations to perform\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold\n* one or more keyword/value pairs may be appended \n *      keyword = every \n       every values = N \n       N = print info about iteration every N steps. N = 0 means no output \n", + "examples": "\n```lmps\nfix 1 all nve/manifold/rattle 1e-4 10 sphere 5.0\nfix step all nve/manifold/rattle 1e-8 100 ellipsoid 2.5 2.5 5.0 every 25\n```\n", + "html_filename": "fix_nve_manifold_rattle.html", + "short_description": "Perform constant NVE integration to update position and velocity for\natoms constrained to a curved surface (manifold) in the group each\ntimestep", + "description": "Perform constant NVE integration to update position and velocity for\natoms constrained to a curved surface (manifold) in the group each\ntimestep. The constraint is handled by RATTLE **Andersen1**\nwritten out for the special case of single-particle constraints as\nexplained in **Paquay2**. V is volume; E is energy. This way,\nthe dynamics of particles constrained to curved surfaces can be\nstudied. If combined with [fix langevin ](https://docs.lammps.org/fix_langevin.html), this\ngenerates Brownian motion of particles constrained to a curved\nsurface. For a list of currently supported manifolds and their\nparameters, see the [Howto manifold ](https://docs.lammps.org/Howto_manifold.html) doc page.\n\nNote that the particles must initially be close to the manifold in\nquestion. If not, RATTLE will not be able to iterate until the\nconstraint is satisfied, and an error is generated. For simple\nmanifolds this can be achieved with *region* and *create_atoms*\ncommands, but for more complex surfaces it might be more useful to\nwrite a script.\n\nThe manifold args may be equal-style variables, like so:\n\n```lmps\nvariable R equal \"ramp(5.0,3.0)\"\nfix shrink_sphere all nve/manifold/rattle 1e-4 10 sphere v_R\n```\nIn this case, the manifold parameter will change in time according to\nthe variable. This is not a problem for the time integrator as long\nas the change of the manifold is slow with respect to the dynamics of\nthe particles. Note that if the manifold has to exert work on the\nparticles because of these changes, the total energy might not be\nconserved.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Andersen1)** Andersen, J. Comp. Phys. 52, 24, (1983). \n \n**(Paquay2)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/). \n ", + "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", + "related": "[fix nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html), [fix manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html)\n" +}, +{ + "command": [ + "pair_style sw/angle/table" + ], + "syntax": [ + "pair_style style" + ], + "args": [ + [ { - "arg": "keyword", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "args", + "arg": "style", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* saed/vtk = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* c_ID = saed compute ID \n *      keyword = file or ave or start or file or *overwrite* :l \n       ave args = one or running or *window M* \n       one = output a new average value every Nfreq steps \n       running = output cumulative average of all previous Nfreq steps \n       window M = output average of M most recent Nfreq steps \n       start args = Nstart \n       Nstart = start averaging on this timestep \n       file arg = filename \n       filename = name of file to output time averages to \n", - "examples": "\n```lmps\ncompute 1 all saed 0.0251 Al O Kmax 1.70 Zone 0 0 1 dR_Ewald 0.01 c 0.5 0.5 0.5\ncompute 2 all saed 0.0251 Ni Kmax 1.70 Zone 0 0 0 c 0.05 0.05 0.05 manual echo\n\nfix 1 all saed/vtk 1 1 1 c_1 file Al2O3_001.saed\nfix 2 all saed/vtk 1 1 1 c_2 file Ni_000.saed\n```\n", - "html_filename": "fix_saed_vtk.html", - "short_description": "Time average computed intensities from [compute saed ](https://docs.lammps.org/compute_saed.html) and\nwrite output to a file in the third generation vtk image data format for\nvisualization directly in parallelized visualization software packages\nlike ParaView and VisIt", - "description": "Time average computed intensities from [compute saed ](https://docs.lammps.org/compute_saed.html) and\nwrite output to a file in the third generation vtk image data format for\nvisualization directly in parallelized visualization software packages\nlike ParaView and VisIt. Note that if no time averaging is done, this\ncommand can be used as a convenient way to simply output diffraction\nintensities at a single snapshot.\n\nTo produce output in the image data vtk format ghost data is added\noutside the *Kmax* range assigned in the compute saed. The ghost data is\nassigned a value of -1 and can be removed setting a minimum isovolume\nof 0 within the visualization software. SAED images can be created by\nvisualizing a spherical slice of the data that is centered at\nR_Ewald\\*[h k l]/norm([h k l]), where R_Ewald=1/lambda.\n\nThe group specified within this command is ignored. However, note that\nspecified values may represent calculations performed by saed computes\nwhich store their own \"group\" definitions.\n\nFix saed/vtk is designed to work only with [compute saed ](https://docs.lammps.org/compute_saed.html)\nvalues, e.g.\n\n```lmps\ncompute 3 top saed 0.0251 Al O\nfix saed/vtk 1 1 1 c_3 file Al2O3_001.saed\n```\n----------\n\nThe *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what\ntimesteps the input values will be used in order to contribute to the\naverage. The final averaged quantities are generated on timesteps\nthat are a multiple of *Nfreq* . The average is over *Nrepeat*\nquantities, computed in the preceding portion of the simulation every\n*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and\n*Nevery* must be non-zero even if *Nrepeat* is 1.\nAlso, the timesteps\ncontributing to the average value cannot overlap,\ni.e. Nrepeat\\*Nevery can not exceed Nfreq.\n\nFor example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on\ntimesteps 90,92,94,96,98,100 will be used to compute the final average\non timestep 100. Similarly for timesteps 190,192,194,196,198,200 on\ntimestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time\naveraging is done; values are simply generated on timesteps\n100,200,etc.\n\n----------\n\nThe output for fix ave/time/saed is a file written with the third generation\nvtk image data formatting. The filename assigned by the *file* keyword is\nappended with _N.vtk where N is an index (0,1,2...) to account for multiple\ndiffraction intensity outputs.\n\nBy default the header contains the following information (with example data):\n\n```\n# vtk DataFile Version 3.0 c_SAED\nImage data set\nASCII\nDATASET STRUCTURED_POINTS\nDIMENSIONS 337 219 209\nASPECT_RATIO 0.00507953 0.00785161 0.00821458\nORIGIN -0.853361 -0.855826 -0.854316\nPOINT_DATA 15424827\nSCALARS intensity float\nLOOKUP_TABLE default\n...data\n```\nIn this example, kspace is sampled across a 337 x 219 x 209 point mesh\nwhere the mesh spacing is approximately 0.005, 0.007, and 0.008\ninv(length) units in the k1, k2, and k3 directions, respectively.\nThe data is shifted by -0.85, -0.85, -0.85 inv(length) units so that\nthe origin will lie at 0, 0, 0. Here, 15,424,827 kspace points are\nsampled in total.\n\n----------\n\nAdditional optional keywords also affect the operation of this fix.\n\nThe *ave* keyword determines how the values produced every *Nfreq*\nsteps are averaged with values produced on previous steps that were\nmultiples of *Nfreq*, before they are accessed by another output\ncommand or written to a file.\n\nIf the *ave* setting is *one*, then the values produced on timesteps\nthat are multiples of *Nfreq* are independent of each other; they are\noutput as-is without further averaging.\n\nIf the *ave* setting is *running*, then the values produced on\ntimesteps that are multiples of *Nfreq* are summed and averaged in a\ncumulative sense before being output. Each output value is thus the\naverage of the value produced on that timestep with all preceding\nvalues. This running average begins when the fix is defined; it can\nonly be restarted by deleting the fix via the [unfix ](https://docs.lammps.org/unfix.html)\ncommand, or by re-defining the fix by re-specifying it.\n\nIf the *ave* setting is *window*, then the values produced on\ntimesteps that are multiples of *Nfreq* are summed and averaged within\na moving \"window\" of time, so that the last M values are used to\nproduce the output. E.g. if M = 3 and Nfreq = 1000, then the output\non step 10000 will be the average of the individual values on steps\n8000,9000,10000. Outputs on early steps will average over less than M\nvalues if they are not available.\n\nThe *start* keyword specifies what timestep averaging will begin on.\nThe default is step 0. Often input values can be 0.0 at time 0, so\nsetting *start* to a larger value can avoid including a 0.0 in a\nrunning or windowed average.\n\nThe *file* keyword allows a filename to be specified. Every *Nfreq*\nsteps, the vector of saed intensity data is written to a new file using\nthe third generation vtk format. The base of each file is assigned by\nthe *file* keyword and this string is appended with _N.vtk where N is\nan index (0,1,2...) to account for situations with multiple diffraction\nintensity outputs.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix is part of the DIFFRACTION package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "The attributes for fix_saed_vtk must match the values assigned in the\nassociated [compute_saed ](https://docs.lammps.org/compute_saed.html) command.\n", - "related": "[compute_saed ](https://docs.lammps.org/compute_saed.html)\n" + "parameters": "* style = sw/angle/table \n", + "examples": "\n```lmps\npair_style sw/angle/table\npair_coeff * * spce.sw type\n```\nUsed in example input script:\n\n```\nexamples/PACKAGES/manybody_table/in.spce_sw\n```\n", + "html_filename": "pair_sw_angle_table.html", + "short_description": "\nThe *sw/angle/table* style is a modification of the original\n[pair_style sw ](https://docs.lammps.org/pair_sw.html)", + "description": "\nThe *sw/angle/table* style is a modification of the original\n[pair_style sw ](https://docs.lammps.org/pair_sw.html). It has been developed for coarse-grained\nsimulations (of water) (**Scherer1**), but can be employed\nfor all kinds of systems. It computes a modified 3-body\n**Stillinger3** potential for the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\sum_i \\sum_{j > i} \\phi_2 (r_{ij}) +\n \\sum_i \\sum_{j \\neq i} \\sum_{k > j}\n \\phi_3 (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n \\phi_2(r_{ij}) & = A_{ij} \\epsilon_{ij} \\left[ B_{ij} (\\frac{\\sigma_{ij}}{r_{ij}})^{p_{ij}} -\n (\\frac{\\sigma_{ij}}{r_{ij}})^{q_{ij}} \\right]\n \\exp \\left( \\frac{\\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right) \\\\\n \\phi_3(r_{ij},r_{ik},\\theta_{ijk}) & = f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\n \\exp \\left( \\frac{\\gamma_{ij} \\sigma_{ij}}{r_{ij} - a_{ij} \\sigma_{ij}} \\right)\n \\exp \\left( \\frac{\\gamma_{ik} \\sigma_{ik}}{r_{ik} - a_{ik} \\sigma_{ik}} \\right) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance \\(a \\sigma\\). In contrast\nto the original *sw* style, *sw/angle/table* allows for a flexible\nthree-body term \\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\) which\nis read in as a tabulated interaction. It can be parameterized with the\ncsg_fmatch app of VOTCA as available at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca.\n\nOnly a single pair_coeff command is used with the *sw/angle/table* style\nwhich specifies a modified Stillinger-Weber potential file with\nparameters for all needed elements. These are mapped to LAMMPS atom\ntypes by specifying N_el additional arguments after the \".sw\" filename\nin the pair_coeff command, where N_el is the number of LAMMPS atom\ntypes:\n\n* \".sw\" filename\n* N_el element names = mapping of SW elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, imagine a file SiC.sw has Stillinger-Weber values for Si\nand C. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.sw Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the SW file. The final C argument maps LAMMPS atom type 4 to\nthe C element in the SW file. If a mapping value is specified as NULL,\nthe mapping is not performed. This can be used when a *sw/angle/table*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other potentials.\n\nThe (modified) Stillinger-Weber files have a \".sw\" suffix. Lines that\nare not blank or comments (starting with #) define parameters for a\ntriplet of elements. The parameters in a single entry correspond to the\ntwo-body and three-body coefficients in the formula above. Here, also\nthe suffix \".sw\" is used though the original Stillinger-Weber file\nformat is supplemented with four additional lines per parameter block to\nspecify the tabulated three-body interaction. A single entry then\ncontains:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* a\n* \\(\\lambda\\)\n* \\(\\gamma\\)\n* \\(\\cos\\theta_0\\)\n* A\n* B\n* p\n* q\n* tol\n* filename\n* keyword\n* style\n* N\n\nThe A, B, p, and q parameters are used only for two-body interactions.\nThe \\(\\lambda\\) and \\(\\cos\\theta_0\\) parameters, only used for\nthree-body interactions in the original Stillinger-Weber style, are read\nin but ignored in this modified pair style. The \\(\\epsilon\\)\nparameter is only used for two-body interactions in this modified pair\nstyle and not for the three-body terms. The \\(\\sigma\\) and *a*\nparameters are used for both two-body and three-body\ninteractions. \\(\\gamma\\) is used only in the three-body\ninteractions, but is defined for pairs of atoms. The non-annotated\nparameters are unitless.\n\nLAMMPS introduces an additional performance-optimization parameter tol\nthat is used for both two-body and three-body interactions. In the\nStillinger-Weber potential, the interaction energies become negligibly\nsmall at atomic separations substantially less than the theoretical\ncutoff distances. LAMMPS therefore defines a virtual cutoff distance\nbased on a user defined tolerance tol. The use of the virtual cutoff\ndistance in constructing atom neighbor lists can significantly reduce\nthe neighbor list sizes and therefore the computational cost. LAMMPS\nprovides a *tol* value for each of the three-body entries so that they\ncan be separately controlled. If tol = 0.0, then the standard\nStillinger-Weber cutoff is used.\n\nThe additional parameters *filename*, *keyword*, *style*, and *N* refer\nto the tabulated angular potential\n\\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\). The tabulated angular\npotential has to be of the format as used in the [angle_style table](https://docs.lammps.org/angle_table.html) command:\n\nAn interpolation tables of length *N* is created. The interpolation is\ndone in one of 2 *styles*: *linear* or *spline*. For the *linear*\nstyle, the angle is used to find 2 surrounding table values from which\nan energy or its derivative is computed by linear interpolation. For the\n*spline* style, a cubic spline coefficients are computed and stored at\neach of the *N* values in the table. The angle is used to find the\nappropriate set of coefficients which are used to evaluate a cubic\npolynomial which computes the energy or derivative.\n\nThe *filename* specifies the file containing the tabulated energy and\nderivative values of \\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\).\nThe *keyword* then specifies a section of the file. The format of this\nfile is as follows (without the parenthesized comments):\n\n```\n# Angle potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 181 FP 0 0 EQ 90.0 (N, FP, EQ parameters)\n(blank line)\n1 0.0 200.5 2.5 (index, angle, energy, derivative)\n2 1.0 198.0 2.5\n...\n181 180.0 0.0 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the Stillinger-Weber potential file. Let Nsw = *N* in the\n\".sw\" file, and Nfile = \"N\" in the tabulated angular file. What LAMMPS\ndoes is a preliminary interpolation by creating splines using the Nfile\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and derivative values at Ntable different\npoints. The resulting tables of length Nsw are then used as described\nabove, when computing energy and force for individual angles and their\natoms. This means that if you want the interpolation tables of length\nNsw to match exactly what is in the tabulated file (with effectively no\npreliminary interpolation), you should set Nsw = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the second derivatives at the innermost and\noutermost angle settings. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they are\nestimated (less accurately) by the first two and last two derivative\nvalues in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium angle value, which is used, for example, by the [fixshake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium angle is set to\n180.0.\n\nFollowing a blank line, the next N lines of the angular table file list\nthe tabulated values. On each line, the first value is the index from 1\nto N, the second value is the angle value (in degrees), the third value\nis the energy (in energy units), and the fourth is -dE/d(theta) (also in\nenergy units). The third term is the energy of the 3-atom configuration\nfor the specified angle. The last term is the derivative of the energy\nwith respect to the angle (in degrees, not radians). Thus the units of\nthe last term are still energy, not force. The angle values must\nincrease from one line to the next. The angle values must also begin\nwith 0.0 and end with 180.0, i.e. span the full range of possible\nangles.\n\nNote that one angular potential file can contain many sections, each\nwith a tabulated potential. LAMMPS reads the file section by section\nuntil it finds one that matches the specified *keyword* of appropriate\nsection of the \".sw\" file.\n\nThe Stillinger-Weber potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain entries\nfor additional elements not being used in a particular simulation;\nLAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify SW parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom in\na three-body interaction. Thus an entry for SiCC means a Si atom with 2\nC atoms as neighbors. The parameter values used for the two-body\ninteraction come from the entry where the second and third elements are\nthe same. Thus the two-body parameters for Si interacting with C, comes\nfrom the SiCC entry. The three-body angular potential\n\\(f^{\\textrm{3b}}\\left(\\theta_{ijk}\\right)\\) can in principle be\nspecific to the three elements of the configuration. However, the user\nmust ensure that it makes physically sense. Note also that the function\n\\(\\phi_3\\) contains two exponential screening factors with parameter\nvalues from the ij pair and ik pairs. So \\(\\phi_3\\) for a C atom\nbonded to a Si atom and a second C atom will depend on the three-body\nparameters for the CSiC entry, and also on the two-body parameters for\nthe CCC and CSiSi entries. Since the order of the two neighbors is\narbitrary, the three-body parameters and the tabulated angular potential\nfor entries CSiC and CCSi should be the same. Similarly, the two-body\nparameters for entries SiCC and CSiSi should also be the same. The\nparameters used only for two-body interactions (A, B, p, and q) in\nentries whose second and third element are different (e.g. SiCSi) are\nnot used for anything and can be set to 0.0 if desired. This is also\ntrue for the parameters in \\(\\phi_3\\) that are taken from the ij and\nik pairs (\\(\\sigma\\), *a*, \\(\\gamma\\))\n\nAdditional input files and reference data can be found at:\nhttps://gitlab.mpcdf.mpg.de/votca/votca/-/tree/master/csg-tutorials/spce/3body_sw\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as described\nabove from values in the potential file, but not for the tabulated\nangular potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Scherer1)** C. Scherer and D. Andrienko, Phys. Chem. Chem. Phys. 20, 22387-22394 (2018). \n \n**(Stillinger3)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style sw ](https://docs.lammps.org/pair_sw.html),\n[pair_style threebody/table ](https://docs.lammps.org/pair_threebody_table.html)\n\n\n----------\n\n.. _Stillinger3:\n\n**(Stillinger)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985).\n\n.. _Scherer1:\n\n**(Scherer1)** C. Scherer and D. Andrienko, Phys. Chem. Chem. Phys. 20, 22387-22394 (2018).\n" }, { "command": [ - "uncompute" + "comm_modify" ], "syntax": [ - "uncompute compute-ID" + "comm_modify keyword value ..." ], "args": [ [ { - "arg": "uncompute", + "arg": "comm_modify", "type": 1, "choices": [] }, { - "arg": "compute-ID", + "arg": "vel", + "type": 3, + "choices": [ + "mode", + "cutoff", + "cutoff/multi", + "group", + "reduce/multi", + "vel" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* compute-ID = ID of a previously defined compute \n", - "examples": "\n```lmps\nuncompute 2\nuncompute lower-boundary\n```\n", - "html_filename": "uncompute.html", - "short_description": "Delete a compute that was previously defined with a [compute ](https://docs.lammps.org/compute.html)\ncommand", - "description": "Delete a compute that was previously defined with a [compute ](https://docs.lammps.org/compute.html)\ncommand. This also wipes out any additional changes made to the compute\nvia the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html)\n" + "parameters": "* one or more keyword/value pairs may be appended\n* keyword = mode or cutoff or cutoff/multi or group or reduce/multi or vel \n *        mode value = *single*, *multi*, or multi/old = communicate atoms within a single or multiple distances \n *        cutoff value = Rcut (distance units) = communicate atoms from this far away \n *        cutoff/multi collection value \n         collection = atom collection or collection range (supports asterisk notation) \n         value = Rcut (distance units) = communicate atoms for selected types from this far away \n *        reduce/multi arg = none = reduce number of communicated ghost atoms for multi style \n *        *cutoff/multi/old* type value \n         type = atom type or type range (supports asterisk notation) \n         value = Rcut (distance units) = communicate atoms for selected types from this far away \n *        group value = group-ID = only communicate atoms in the group \n *        vel value = yes or no = do or do not communicate velocity info with ghost atoms \n", + "examples": "\n```lmps\ncomm_modify mode multi reduce/multi\ncomm_modify mode multi group solvent\ncomm_modify mode multi cutoff/multi 1 10.0 cutoff/multi 2*4 15.0\ncomm_modify vel yes\ncomm_modify mode single cutoff 5.0 vel yes\ncomm_modify cutoff/multi * 0.0\n```\n", + "html_filename": "comm_modify.html", + "short_description": "This command sets parameters that affect the inter-processor\ncommunication of atom information that occurs each timestep as\ncoordinates and other properties are exchanged between neighboring\nprocessors and stored as properties of ghost atoms", + "description": "This command sets parameters that affect the inter-processor\ncommunication of atom information that occurs each timestep as\ncoordinates and other properties are exchanged between neighboring\nprocessors and stored as properties of ghost atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These options apply to the currently defined comm style. When\n > you specify a [comm_style ](https://docs.lammps.org/comm_style.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) command, all communication settings\n > are restored to their default or stored values, including those\n > previously reset by a comm_modify command. Thus if your input script\n > specifies a comm_style or read_restart command, you should use the\n > comm_modify command after it. \n > \n\nThe *mode* keyword determines whether a single or multiple cutoff\ndistances are used to determine which atoms to communicate.\n\nThe default mode is *single* which means each processor acquires\ninformation for ghost atoms that are within a single distance from its\nsubdomain. The distance is by default the maximum of the neighbor\ncutoff across all atom type pairs.\n\nFor many systems this is an efficient algorithm, but for systems with\nwidely varying cutoffs for different type pairs, the *multi* or *multi/old* mode can\nbe faster. In *multi*, each atom is assigned to a collection which should\ncorrespond to a set of atoms with similar interaction cutoffs.\nSee the [neighbor ](https://docs.lammps.org/neighbor.html) command for a detailed description of collections.\nIn this case, each atom collection is assigned its own distance\ncutoff for communication purposes, and fewer atoms will be\ncommunicated. in *multi/old*, a similar technique is used but atoms\nare grouped by atom type. See the [neighbor multi ](https://docs.lammps.org/neighbor.html) and\n[neighbor multi/old ](https://docs.lammps.org/neighbor.html) commands for\nneighbor list construction options that may also be beneficial for\nsimulations of this kind. The *multi* communication mode is only compatible\nwith the *multi* neighbor style. The *multi/old* communication mode is comparable\nwith both the *multi* and *multi/old* neighbor styles.\n\nThe *cutoff* keyword allows you to extend the ghost cutoff distance\nfor communication mode *single*, which is the distance from the borders\nof a processor's subdomain at which ghost atoms are acquired from other\nprocessors. By default the ghost cutoff = neighbor cutoff = pairwise\nforce cutoff + neighbor skin. See the [neighbor ](https://docs.lammps.org/neighbor.html) command\nfor more information about the skin distance. If the specified Rcut is\ngreater than the neighbor cutoff, then extra ghost atoms will be acquired.\nIf the provided cutoff is smaller, the provided value will be ignored,\nthe ghost cutoff is set to the neighbor cutoff and a warning will be\nprinted. Specifying a cutoff value of 0.0 will reset any previous value\nto the default. If bonded interactions exist and equilibrium bond length\ninformation is available, then also a heuristic based on that bond length\nis computed. It is used as communication cutoff, if there is no pair\nstyle present and no *comm_modify cutoff* command used. Otherwise a\nwarning is printed, if this bond based estimate is larger than the\ncommunication cutoff used.\n\nThe *cutoff/multi* option is equivalent to *cutoff*, but applies to\ncommunication mode *multi* instead. Since the communication cutoffs are\ndetermined per atom collections, a collection specifier is needed and\ncutoff for one or multiple collections can be extended. Also ranges of\ncollections using the usual asterisk notation can be given. Collections\nare indexed from 1 to N where N is the total number of collections.\nNote that the arguments for *cutoff/multi* are parsed right before each\nsimulation to account for potential changes in the number of\ncollections. Custom cutoffs are preserved between runs but if\ncollections are redefined, one may want to re-specify the communication\ncutoffs. For granular pair styles,the default cutoff is set to the sum\nof the current maximum atomic radii for each collection. The\n*cutoff/multi/old* option is similar to *cutoff/multi* except it\noperates on atom types as opposed to collections.\n\nThe *reduce/multi* option applies to *multi* and sets the communication\ncutoff for a particle equal to the maximum interaction distance between particles\nin the same collection. This reduces the number of\nghost atoms that need to be communicated. This method is only compatible with the\n*multi* neighbor style and requires a half neighbor list and Newton on.\nSee the [neighbor multi ](https://docs.lammps.org/neighbor.html) command for more information.\n\nThese are simulation scenarios in which it may be useful or even\nnecessary to set a ghost cutoff > neighbor cutoff:\n\n* a single polymer chain with bond interactions, but no pairwise interactions\n* bonded interactions (e.g. dihedrals) extend further than the pairwise cutoff\n* ghost atoms beyond the pairwise cutoff are needed for some computation\n\nIn the first scenario, a pairwise potential is not defined. Thus the\npairwise neighbor cutoff will be 0.0. But ghost atoms are still\nneeded for computing bond, angle, etc interactions between atoms on\ndifferent processors, or when the interaction straddles a periodic\nboundary.\n\nThe appropriate ghost cutoff depends on the [newton bond ](https://docs.lammps.org/newton.html)\nsetting. For newton bond *off*, the distance needs to be the furthest\ndistance between any two atoms in the bond, angle, etc. E.g. the\ndistance between 1-4 atoms in a dihedral. For newton bond *on*, the\ndistance between the central atom in the bond, angle, etc and any\nother atom is sufficient. E.g. the distance between 2-4 atoms in a\ndihedral.\n\nIn the second scenario, a pairwise potential is defined, but its\nneighbor cutoff is not sufficiently long enough to enable bond, angle,\netc terms to be computed. As in the previous scenario, an appropriate\nghost cutoff should be set.\n\nIn the last scenario, a [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html) or\n[pairwise potential ](https://docs.lammps.org/pair_style.html) needs to calculate with ghost\natoms beyond the normal pairwise cutoff for some computation it\nperforms (e.g. locate neighbors of ghost atoms in a manybody pair\npotential). Setting the ghost cutoff appropriately can ensure it will\nfind the needed atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In these scenarios, if you do not set the ghost cutoff long\n > enough, and if there is only one processor in a periodic dimension\n > (e.g. you are running in serial), then LAMMPS may \"find\" the atom it\n > is looking for (e.g. the partner atom in a bond), that is on the far\n > side of the simulation box, across a periodic boundary. This will\n > typically lead to bad dynamics (i.e. the bond length is now the\n > simulation box length). To detect if this is happening, see the\n > [neigh_modify cluster ](https://docs.lammps.org/neigh_modify.html) command. \n > \n\nThe *group* keyword will limit communication to atoms in the specified\ngroup. This can be useful for models where no ghost atoms are needed\nfor some kinds of particles. All atoms (not just those in the\nspecified group) will still migrate to new processors as they move.\nThe group specified with this option must also be specified via the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html) command.\n\nThe *vel* keyword enables velocity information to be communicated with\nghost particles. Depending on the [atom_style ](https://docs.lammps.org/atom_style.html),\nvelocity info includes the translational velocity, angular velocity,\nand angular momentum of a particle. If the *vel* option is set to\n*yes*, then ghost atoms store these quantities; if *no* then they do\nnot. The *yes* setting is needed by some pair styles which require\nthe velocity state of both the I and J particles to compute a pairwise\nI,J interaction, as well as by some compute and fix commands.\n\nNote that if the [fix deform ](https://docs.lammps.org/fix_deform.html) command is being used\nwith its \"remap v\" option enabled, then the velocities for ghost atoms\n(in the fix deform group) mirrored across a periodic boundary will\nalso include components due to any velocity shift that occurs across\nthat boundary (e.g. due to dilation or shear).\n", + "restrictions": "Communication mode *multi* is currently only available for\n[comm_style ](https://docs.lammps.org/comm_style.html) *brick* .\n", + "related": "[comm_style ](https://docs.lammps.org/comm_style.html), [neighbor ](https://docs.lammps.org/neighbor.html)\n" }, { "command": [ - "fix qbmsst" + "fix deform/pressure" ], "syntax": [ - "fix ID group-ID qbmsst dir shockvel keyword value ..." + "fix ID group-ID deform/pressure N parameter style args ... keyword value ..." ], "args": [ [ @@ -27054,41 +25872,41 @@ export const command_docs = [ "choices": [] }, { - "arg": "qbmsst", + "arg": "deform/pressure", "type": 1, "choices": [] }, { - "arg": "z", - "type": 3, - "choices": [ - "x", - "y", - "z" - ] + "arg": "N", + "type": 2, + "choices": [] }, { - "arg": "shockvel", + "arg": "parameter", "type": 2, "choices": [] }, { - "arg": "T_init", + "arg": "style", + "type": 2, + "choices": [] + }, + { + "arg": "args", + "type": 2, + "choices": [] + }, + { + "arg": "normalize/pressure", "type": 3, "choices": [ - "q", - "mu", - "p0", - "v0", - "e0", - "tscale", - "damp", - "seed", - "f_max", - "N_f", - "eta", - "beta", - "T_init" + "remap", + "flip", + "units", + "couple", + "vol/balance/p", + "max/rate", + "normalize/pressure" ] }, { @@ -27098,129 +25916,229 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qbmsst = style name of this fix\n* dir = x or y or z\n* shockvel = shock velocity (strictly positive, velocity units)\n* zero or more keyword/value pairs may be appended\n* keyword = q or mu or p0 or v0 or e0 or tscale or damp or seed or f_max or N_f or eta or beta or T_init \n *        q value = cell mass-like parameter (mass\\^2/distance\\^4 units) \n *        mu value = artificial viscosity (mass/distance/time units) \n *        p0 value = initial pressure in the shock equations (pressure units) \n *        v0 value = initial simulation cell volume in the shock equations (distance\\^3 units) \n *        e0 value = initial total energy (energy units) \n *        tscale value = reduction in initial temperature (unitless fraction between 0.0 and 1.0) \n *        damp value = damping parameter (time units) inverse of friction gamma \n *        seed value = random number seed (positive integer) \n *        f_max value = upper cutoff frequency of the vibration spectrum (1/time units) \n *        N_f value = number of frequency bins (positive integer) \n *        eta value = coupling constant between the shock system and the quantum thermal bath (positive unitless) \n *        beta value = the quantum temperature is updated every beta time steps (positive integer) \n *        T_init value = quantum temperature for the initial state (temperature units) \n", - "examples": "\n```lmps\n# (liquid methane modeled with the REAX force field, real units)\nfix 1 all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 seed 35082 f_max 0.3 N_f 100 eta 1 beta 400 T_init 110\n# (quartz modeled with the BKS force field, metal units)\nfix 2 all qbmsst z 72 q 40 tscale 0.05 damp 1 seed 47508 f_max 120.0 N_f 100 eta 1.0 beta 500 T_init 300\n```\nTwo example input scripts are given, including shocked\n\\(\\alpha\\textrm{-quartz}\\) and shocked liquid methane. The input\nscript first equilibrates an initial state with the quantum thermal\nbath at the target temperature and then applies *fix qbmsst* to simulate\nshock compression with quantum nuclear correction. The following two\nfigures plot relevant quantities for shocked\n\\(\\alpha\\textrm{-quartz}\\).\n\n ![Image](JPG/qbmsst_init.jpg) \n\nFigure 1. Classical temperature\n\\(T_{cl} = \\sum \\frac{m_iv_i^2}{3Nk_B}\\) vs. time for coupling the\n\\(\\alpha\\textrm{-quartz}\\) initial state with the quantum thermal\nbath at target quantum temperature \\(T^{qm} = 300 K\\). The NpH\nensemble is used for time integration while QTB provides the colored\nrandom force. \\(T^{cl}\\) converges at the timescale of *damp*\nwhich is set to be 1 ps.\n\n ![Image](JPG/qbmsst_shock.jpg) \n\nFigure 2. Quantum temperature and pressure vs. time for simulating\nshocked \\(\\alpha\\textrm{-quartz}\\) with *fix qbmsst*\\. The shock\npropagates along the z direction. Restart of the *fix qbmsst* command\nis demonstrated in the example input script. Thermodynamic quantities\nstay continuous before and after the restart.\n", - "html_filename": "fix_qbmsst.html", - "short_description": "This command performs the Quantum-Bath coupled Multi-Scale Shock\nTechnique (QBMSST) integration", - "description": "This command performs the Quantum-Bath coupled Multi-Scale Shock\nTechnique (QBMSST) integration. See **Qi** for a detailed\ndescription of this method. QBMSST provides description of the\nthermodynamics and kinetics of shock processes while incorporating\nquantum nuclear effects. The *shockvel* setting determines the steady\nshock velocity that will be simulated along direction *dir* .\n\nQuantum nuclear effects [(fix qtb) ](https://docs.lammps.org/fix_qtb.html) can be crucial\nespecially when the temperature of the initial state is below the\nclassical limit or there is a great change in the zero point energies\nbetween the initial and final states. Theoretical post processing\nquantum corrections of shock compressed water and methane have been\nreported as much as 30% of the temperatures **Goldman1**. A\nself-consistent method that couples the shock to a quantum thermal\nbath described by a colored noise Langevin thermostat has been\ndeveloped by Qi et al **Qi** and applied to shocked methane. The\nonset of chemistry is reported to be at a pressure on the shock\nHugoniot that is 40% lower than observed with classical molecular\ndynamics.\n\nIt is highly recommended that the system be already in an equilibrium\nstate with a quantum thermal bath at temperature of *T_init*. The fix\ncommand [fix qtb ](https://docs.lammps.org/fix_qtb.html) at constant temperature *T_init* could\nbe used before applying this command to introduce self-consistent\nquantum nuclear effects into the initial state.\n\nThe parameters *q*, *mu*, *e0*, *p0*, *v0* and *tscale* are described\nin the command [fix msst ](https://docs.lammps.org/fix_msst.html). The values of *e0*, *p0*, or\n*v0* will be calculated on the first step if not specified. The\nparameter of *damp*, *f_max*, and *N_f* are described in the command\n[fix qtb ](https://docs.lammps.org/fix_qtb.html).\n\nThe *fix qbmsst* command couples the shock system to a quantum thermal\nbath with a rate that is proportional to the change of the total\nenergy of the shock system, \\(E^{tot} - E^{tot}_0\\).\nHere \\(E^{etot}\\) consists of both the system energy and a thermal\nterm, see **Qi**, and \\(E^{tot}_0 = e0\\) is the\ninitial total energy.\n\nThe *eta* (\\(\\eta\\)) parameter is a unitless coupling constant\nbetween the shock system and the quantum thermal bath. A small \\(\\eta\\)\nvalue cannot adjust the quantum temperature fast enough during the\ntemperature ramping period of shock compression while large \\(\\eta\\)\nleads to big temperature oscillation. A value of \\(\\eta\\) between 0.3 and\n1 is usually appropriate for simulating most systems under shock\ncompression. We observe that different values of \\(\\eta\\) lead to almost\nthe same final thermodynamic state behind the shock, as expected.\n\nThe quantum temperature is updated every *beta* (\\(\\beta\\)) steps\nwith an integration time interval \\(\\beta\\) times longer than the\nsimulation time step. In that case, \\(E^{tot}\\) is taken as its\naverage over the past \\(\\beta\\) steps. The temperature of the quantum\nthermal bath \\(T^{qm}\\) changes dynamically according to\nthe following equation where \\(\\Delta_t\\) is the MD time step and\n\\(\\gamma\\) is the friction constant which is equal to the inverse\nof the *damp* parameter.\n\\[\n \\frac{dT^{qm}}{dt} = \\gamma\\eta\\sum^\\beta_{l=1}\\frac{E^{tot}(t-l\\Delta t) - E^{tot}_0}{3\\beta N k_B}\\]\nThe parameter *T_init* is the initial temperature of the quantum\nthermal bath and the system before shock loading.\n\nFor all pressure styles, the simulation box stays orthorhombic in\nshape. Parrinello-Rahman boundary conditions (tilted box) are\nsupported by LAMMPS, but are not implemented for QBMSST.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nBecause the state of the random number generator is not written to\n[binary restart files ](https://docs.lammps.org/restart.html), this fix cannot be restarted\n\"exactly\" in an uninterrupted fashion. However, in a statistical\nsense, a restarted simulation should produce similar behaviors of the\nsystem as if it is not interrupted. To achieve such a restart, one\nshould write explicitly the same value for *q*, *mu*, *damp*,\n*f_max*, *N_f*, *eta*, and *beta* and set *tscale* = 0 if the system\nis compressed during the first run.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThe progress of the QBMSST can be monitored by printing the global\nscalar and global vector quantities computed by the fix.\n\nAs mentioned above, the scalar is the cumulative energy change due to\nthe fix. By monitoring the thermodynamic *econserve* output, this can\nbe used to test if the MD timestep is sufficiently small for accurate\nintegration of the dynamic equations.\n\nThe global vector contains five values in the following order. The\nvector values output by this fix are \"intensive\".\n\n[\\ *dhugoniot*, *drayleigh*, *lagrangian_speed*, *lagrangian_position*,\n*quantum_temperature*]\n\n1. *dhugoniot* is the departure from the Hugoniot (temperature units).\n2. *drayleigh* is the departure from the Rayleigh line (pressure units).\n3. *lagrangian_speed* is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).\n4. *lagrangian_position* is the computational cell position in the reference frame moving at the shock speed. This is the distance of the computational cell behind the shock front.\n5. *quantum_temperature* is the temperature of the quantum thermal bath \\(T^{qm}\\).\n\nTo print these quantities to the log file with descriptive column\nheaders, the following LAMMPS commands are suggested.\n\n```\nfix fix_id all msst z\nvariable dhug equal f_fix_id[1]\nvariable dray equal f_fix_id[2]\nvariable lgr_vel equal f_fix_id[3]\nvariable lgr_pos equal f_fix_id[4]\nvariable T_qm equal f_fix_id[5]\nthermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos v_T_qm f_fix_id\n```\nIt is worth noting that the temp keyword for the [thermo_style](https://docs.lammps.org/thermo_style.html) command prints the instantaneous classical temperature\n\\(T^{cl}\\) as described by the [fix qtb ](https://docs.lammps.org/fix_qtb.html) command.\n\n----------\n\n**(Qi)** Qi and Reed, J. Phys. Chem. A 116, 10451 (2012). \n \n**(Goldman1)** Goldman, Reed and Fried, J. Chem. Phys. 131, 204103 (2009) \n ", - "restrictions": "This fix style is part of the QTB package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll cell dimensions must be periodic. This fix can not be used with a\ntriclinic cell. The QBMSST fix has been tested only for the group-ID\nall.\n\n----------\n", - "related": "[fix qtb ](https://docs.lammps.org/fix_qtb.html), [fix msst ](https://docs.lammps.org/fix_msst.html)\n\n----------\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* deform/pressure = style name of this fix command\n* N = perform box deformation every this many timesteps\n* one or more parameter/arg sequences may be appended \n *      parameter = x or y or z or xy or xz or yz or box \n       x, y, z args = style value(s) \n       style = final or delta or scale or vel or erate or trate or volume or wiggle or variable or pressure or pressure/mean \n       pressure values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       pressure/mean values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       NOTE: All other styles are documented by the [fix deform ](https://docs.lammps.org/fix_deform.html) command \n       xy, xz, yz args = style value \n       style = final or delta or vel or erate or trate or wiggle or variable or pressure or erate/rescale \n       pressure values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       erate/rescale value = R \n       R = engineering shear strain rate (1/time units) \n       NOTE: All other styles are documented by the [fix deform ](https://docs.lammps.org/fix_deform.html) command \n       box = style value \n       style = volume or pressure \n       volume value = none = isotropically adjust system to preserve volume of system \n       pressure values = target gain \n       target = target mean pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n* zero or more keyword/value pairs may be appended\n* keyword = remap or flip or units or couple or vol/balance/p or max/rate or normalize/pressure \n *        couple value = none or xyz or xy or yz or xz \n         couple pressure values of various dimensions \n *        vol/balance/p value = yes or no \n         Modifies the behavior of the volume option to try and balance pressures \n *        max/rate value = rate \n         rate = maximum strain rate for pressure control \n *        normalize/pressure value = yes or no \n         Modifies pressure controls such that the deviation in pressure is normalized by the target pressure \n *        NOTE: All other keywords are documented by the [fix deform ](https://docs.lammps.org/fix_deform.html) command \n", + "examples": "\n```lmps\nfix 1 all deform/pressure 1 x pressure 2.0 0.1 normalize/pressure yes max/rate 0.001\nfix 1 all deform/pressure 1 x trate 0.1 y volume z volume vol/balance/p yes\nfix 1 all deform/pressure 1 x trate 0.1 y pressure/mean 0.0 1.0 z pressure/mean 0.0 1.0\n```\n", + "html_filename": "fix_deform_pressure.html", + "short_description": "\nThis fix is an extension of the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand, which allows all of its options to be used as well as new\npressure-based controls implemented by this command", + "description": "\nThis fix is an extension of the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand, which allows all of its options to be used as well as new\npressure-based controls implemented by this command.\n\nAll arguments described on the [fix deform ](https://docs.lammps.org/fix_deform.html) doc page\nalso apply to this fix unless otherwise noted below. The rest of this\ndoc page explains the arguments specific to this fix. Note that a\nsimulation can define only a single deformation command: fix deform or\nfix deform/pressure.\n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of the\nstyles and values provided by this fix.\n\nThe *pressure* style adjusts a dimension's box length to control the\ncorresponding component of the pressure tensor. This option attempts to\nmaintain a specified target pressure using a linear controller where the\nbox length \\(L\\) evolves according to the equation\n\\[\n \\frac{d L(t)}{dt} = L(t) k (P_t - P)\\]\nwhere \\(k\\) is a proportional gain constant, \\(P_t\\) is the target\npressure, and \\(P\\) is the current pressure along that dimension. This\napproach is similar to the method used to control the pressure by\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html). The target pressure\naccepts either a constant numeric value or a LAMMPS :ref:`variable `.\nNotably, this variable can be a function of time or other components of\nthe pressure tensor. By default, \\(k\\) has units of 1/(time * pressure)\nalthough this will change if the *normalize/pressure* option is set as\n**deform_normalize**. There is no proven method\nto choosing an appropriate value of \\(k\\) as it will depend on the\nspecific details of a simulation. Testing different values is recommended.\n\nBy default, there is no limit on the resulting strain rate in any dimension.\nA maximum limit can be applied using the **deform_max_rate**\noption. Akin to [fix nh ](https://docs.lammps.org/fix_nh.html), pressures in different dimensions\ncan be coupled using the **deform_couple** option. This means\nthe instantaneous pressure along coupled dimensions are averaged and the box\nstrains identically along the coupled dimensions.\n\nThe *pressure/mean* style changes a dimension's box length to maintain\na constant mean pressure defined as the trace of the pressure tensor.\nThis option has identical arguments to the *pressure* style and a similar\nfunctional equation, except the current and target pressures refer to the\nmean trace of the pressure tensor. All options for the *pressure* style\nalso apply to the *pressure/mean* style except for the\n**deform_couple** option.\n\nNote that while this style can be identical to coupled *pressure* styles,\nit is generally not the same. For instance in 2D, a coupled *pressure*\nstyle in the *x* and *y* dimensions would be equivalent to using the\n*pressure/mean* style with identical settings in each dimension. However,\nit would not be the same if settings (e.g. gain constants) were used in\nthe *x* and *y* dimensions or if the *pressure/mean* command was only applied\nalong one dimension.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of the\nstyles and values provided by this fix. Note that changing the\ntilt factors of a triclinic box does not change its volume.\n\nThe *pressure* style adjusts a tilt factor to control the corresponding\noff-diagonal component of the pressure tensor. This option attempts to\nmaintain a specified target value using a linear controller where the\ntilt factor T evolves according to the equation\n\n```\n\\frac{d T(t)}{dt} = L(t) k (P - P_t)\n```\nwhere \\(k\\) is a proportional gain constant, \\(P_t\\) is the\ntarget pressure, \\(P\\) is the current pressure, and \\(L\\) is\nthe perpendicular box length. The target pressure accepts either a\nconstant numeric value or a LAMMPS :ref:`variable\n`. Notably, this variable can be a function of time or other\ncomponents of the pressure tensor. By default, \\(k\\) has units of\n1/(time * pressure) although this will change if the\n*normalize/pessure* option is set as **deform_normalize**. There is no proven method to choosing an\nappropriate value of \\(k\\) as it will depend on the specific\ndetails of a simulation and testing different values is\nrecommended. One can also apply a maximum limit to the magnitude of\nthe applied strain using the **deform_max_rate** option.\n\nThe *erate/rescale* style operates similarly to the *erate* style with\na specified strain rate in units of 1/time. The difference is that\nthe change in the tilt factor will depend on the current length of\nthe box perpendicular to the shear direction, L, instead of the\noriginal length, L0. The tilt factor T as a function of time will\nchange as\n\n```\nT(t) = T(t-1) + L\\*erate\\* \\Delta t\n```\nwhere T(t-1) is the tilt factor on the previous timestep and \\(\\Delta t\\)\nis the timestep size. This option may be useful in scenarios where\nL changes in time.\n\n----------\n\nThe *box* parameter provides an additional control over the *x*, *y*,\nand *z* box lengths by isotropically dilating or contracting the box\nto either maintain a fixed mean pressure or volume. This isotropic\nscaling is applied after the box is deformed by the above *x*, *y*,\n*z*, *xy*, *xz*, and *yz* styles, acting as a second deformation\nstep. This parameter will change the overall strain rate in the *x*,\n*y*, or *z* dimensions. This parameter can only be used in\ncombination with the *x*, *y*, or *z* commands: *vel*, *erate*,\n*trate*, *pressure*, or *wiggle*. This is the meaning of its styles\nand values.\n\nThe *volume* style isotropically scales box lengths to maintain a constant\nbox volume in response to deformation from other parameters. This style\nmay be useful in scenarios where one wants to apply a constant deviatoric\npressure using *pressure* styles in the *x*, *y*, and *z* dimensions (\ndeforming the shape of the box), while maintaining a constant volume.\n\nThe *pressure* style isotropically scales box lengths in an attempt to\nmaintain a target mean pressure (the trace of the pressure tensor) of the\nsystem. This is accomplished by isotropically scaling all box lengths\n\\(L\\) by an additional factor of \\(k (P_t - P_m)\\) where \\(k\\)\nis the proportional gain constant, \\(P_t\\) is the target pressure, and\n\\(P_m\\) is the current mean pressure. This style may be useful in\nscenarios where one wants to apply a constant deviatoric strain rate\nusing various strain-based styles (e.g. *trate*) along the *x*, *y*, and *z*\ndimensions (deforming the shape of the box), while maintaining a mean pressure.\n\n----------\n\nThe optional keywords provided by this fix are described below.\n\nThe *normalize/pressure* keyword changes how box dimensions evolve when\nusing the *pressure* or *pressure/mean* deformation styles. If the\n*deform/normalize* value is set to *yes*, then the deviation from the\ntarget pressure is normalized by the absolute value of the target\npressure such that the proportional gain constant scales a percentage\nerror and has units of 1/time. If the target pressure is ever zero, this\nwill produce an error unless the *max/rate* keyword is defined,\ndescribed below, which will cap the divergence. \n .. _deform_max_rate:\n\nThe *max/rate* keyword sets an upper threshold, *rate*, that limits the\nmaximum magnitude of the instantaneous strain rate applied in any dimension.\nThis keyword only applies to the *pressure* and *pressure/mean* options. If\na pressure-controlled rate is used for both *box* and either *x*, *y*, or\n*z*, then this threshold will apply separately to each individual controller\nsuch that the cumulative strain rate on a box dimension may be up to twice\nthe value of *rate*.\n\n.. _deform_couple:\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together for the *pressure* option.\nThe value specified with the keyword determines which are coupled. For\nexample, *xz* means the *Pxx* and *Pzz* components of the stress tensor\nare coupled. *Xyz* means all 3 diagonal components are coupled. Coupling\nmeans two things: the instantaneous stress will be computed as an average\nof the corresponding diagonal components, and the coupled box dimensions\nwill be changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. If a *pressure*\nstyle is defined for more than one coupled dimension, the target pressures\nand gain constants must be identical. Alternatively, if a *pressure*\nstyle is only defined for one of the coupled dimensions, its settings are\ncopied to other dimensions with undefined styles. *Couple xyz* can be used\nfor a 2d simulation; the *z* dimension is simply ignored.\n\n.. _deform_balance:\n\nThe *vol/balance/p* keyword modifies the behavior of the *volume* style when\napplied to two of the *x*, *y*, and *z* dimensions. Instead of straining\nthe two dimensions in lockstep, the two dimensions are allowed to\nseparately dilate or contract in a manner to maintain a constant\nvolume while simultaneously trying to keep the pressure along each\ndimension equal using a method described in **Huang2014**.\n\n----------\n\nIf any pressure controls are used, this fix computes a temperature and\npressure each timestep. To do this, the fix creates its own computes\nof style \"temp\" and \"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the IDs of the\nnew computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp* and *thermo_press*. This means you can change the\nattributes of this fix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the\nappropriate compute-ID. It also means that changing attributes of\n*thermo_temp* or *thermo_press* will have no effect on this fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix will restore the initial box settings from [binaryrestart files ](https://docs.lammps.org/restart.html), which allows the fix to be properly continue\ndeformation, when using the start/stop options of the [run ](https://docs.lammps.org/run.html)\ncommand. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nIf any pressure controls are used, the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*temp* and *press* options are supported by this fix, unlike in\n[fix deform ](https://docs.lammps.org/fix_deform.html). You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be\nused in its temperature and pressure calculations. If you do this,\nnote that the kinetic energy derived from the compute temperature\nshould be consistent with the virial term computed using all atoms for\nthe pressure. LAMMPS will warn you if you choose to compute\ntemperature on a subset of atoms.\n\nThis fix can perform deformation over multiple runs, using the *start*\nand *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nThe *normalize/pressure* keyword changes how box dimensions evolve when\nusing the *pressure* or *pressure/mean* deformation styles. If the\n*deform/normalize* value is set to *yes*, then the deviation from the\ntarget pressure is normalized by the absolute value of the target\npressure such that the proportional gain constant scales a percentage\nerror and has units of 1/time. If the target pressure is ever zero, this\nwill produce an error unless the *max/rate* keyword is defined,\ndescribed below, which will cap the divergence. \n \nThe *max/rate* keyword sets an upper threshold, *rate*, that limits the\nmaximum magnitude of the instantaneous strain rate applied in any dimension.\nThis keyword only applies to the *pressure* and *pressure/mean* options. If\na pressure-controlled rate is used for both *box* and either *x*, *y*, or\n*z*, then this threshold will apply separately to each individual controller\nsuch that the cumulative strain rate on a box dimension may be up to twice\nthe value of *rate*. \n \nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together for the *pressure* option.\nThe value specified with the keyword determines which are coupled. For\nexample, *xz* means the *Pxx* and *Pzz* components of the stress tensor\nare coupled. *Xyz* means all 3 diagonal components are coupled. Coupling\nmeans two things: the instantaneous stress will be computed as an average\nof the corresponding diagonal components, and the coupled box dimensions\nwill be changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. If a *pressure*\nstyle is defined for more than one coupled dimension, the target pressures\nand gain constants must be identical. Alternatively, if a *pressure*\nstyle is only defined for one of the coupled dimensions, its settings are\ncopied to other dimensions with undefined styles. *Couple xyz* can be used\nfor a 2d simulation; the *z* dimension is simply ignored. \n \n**(Huang2014)** X. Huang, \"Exploring critical-state behavior using DEM\",\nDoctoral dissertation, Imperial College. (2014). https://doi.org/10.25560/25316 \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nYou cannot apply x, y, or z deformations to a dimension that is\nshrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html) command.\n\nYou cannot apply xy, yz, or xz deformations to a second dimension (y\nin xy) that is shrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html)\ncommand.\n", + "related": "[fix deform ](https://docs.lammps.org/fix_deform.html), [change_box ](https://docs.lammps.org/change_box.html)\n" }, { "command": [ - "tad" + "boundary" ], "syntax": [ - "tad N t_event T_lo T_hi delta tmax compute-ID keyword value ..." + "boundary x y z" ], "args": [ [ { - "arg": "tad", + "arg": "boundary", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "f", + "type": 3, + "choices": [ + "p", + "s", + "f" + ] + }, + { + "arg": "f", + "type": 3, + "choices": [ + "p", + "s", + "f" + ] + }, + { + "arg": "f", + "type": 3, + "choices": [ + "p", + "s", + "f" + ] + } + ] + ], + "parameters": "* x,y,z = p or s or f or *m*, one or two letters \n *        p is periodic \n *        f is non-periodic and fixed \n *        s is non-periodic and shrink-wrapped \n *        *m* is non-periodic and shrink-wrapped with a minimum value \n", + "examples": "\n```lmps\nboundary p p f\nboundary p fs p\nboundary s f fm\n```\n", + "html_filename": "boundary.html", + "short_description": "Set the style of boundaries for the global simulation box in each\ndimension", + "description": "Set the style of boundaries for the global simulation box in each\ndimension. A single letter assigns the same style to both the lower\nand upper face of the box. Two letters assigns the first style to the\nlower face and the second style to the upper face. The initial size\nof the simulation box is set by the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [create_box ](https://docs.lammps.org/create_box.html)\ncommands.\n\nThe style *p* means the box is periodic, so that particles interact\nacross the boundary, and they can exit one end of the box and re-enter\nthe other end. A periodic dimension can change in size due to\nconstant pressure boundary conditions or box deformation (see the\n[fix npt ](https://docs.lammps.org/fix_nh.html) and [fix deform ](https://docs.lammps.org/fix_deform.html) commands).\nThe *p* style must be applied to both faces of a dimension. For 2d\nsimulations the z dimension must be periodic (which is the default).\n\nThe styles *f*, *s*, and *m* mean the box is non-periodic, so that\nparticles do not interact across the boundary and do not move from one\nside of the box to the other.\n\nFor style *f*, the position of the face is fixed. If an atom moves\noutside the face it will be deleted on the next timestep that\nreneighboring occurs. This will typically generate an error unless\nyou have set the [thermo_modify lost ](https://docs.lammps.org/thermo_modify.html) option to\nallow for lost atoms.\n\nFor style *s*, the position of the face is set so as to encompass the\natoms in that dimension (shrink-wrapping), no matter how far they\nmove. Note that when the difference between the current box dimensions\nand the shrink-wrap box dimensions is large, this can lead to lost\natoms at the beginning of a run when running in parallel. This is due\nto the large change in the (global) box dimensions also causing\nsignificant changes in the individual subdomain sizes. If these\nchanges are farther than the communication cutoff, atoms will be lost.\nThis is best addressed by setting initial box dimensions to match the\nshrink-wrapped dimensions more closely, by using *m* style boundaries\n(see below).\n\nFor style *m*, shrink-wrapping occurs, but is bounded by the value\nspecified in the data or restart file or set by the\n[create_box ](https://docs.lammps.org/create_box.html) command. For example, if the upper z\nface has a value of 50.0 in the data file, the face will always be\npositioned at 50.0 or above, even if the maximum z-extent of all the\natoms becomes less than 50.0. This can be useful if you start a\nsimulation with an empty box or if you wish to leave room on one side\nof the box, e.g. for atoms to evaporate from a surface.\n\nLAMMPS also allows use of triclinic (non-orthogonal) simulation boxes.\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a\ndescription of both general and restricted triclinic boxes and how to\ndefine them. General triclinic boxes (arbitrary edge vectors **A**,\n**B**, and **C**) are converted internally to restricted triclinic\nboxes with tilt factors (xy,xz,yz) which skew an otherwise orthogonal\nbox.\n\nThe boundary command settings explained above for the 6\nfaces of an orthogonal box also apply in similar manner to the 6 faces\nof a restricted triclinic box (and thus to the corresponding 6 faces\nof a general triclinic box), with the following context.\n\nif the second dimension of a tilt factor (e.g. y for xy) is periodic,\nthen the periodicity is enforced with the tilt factor offset. This\nmeans that for y periodicity a particle which exits the lower y\nboundary is displaced in the x-direction by xy before it re-enters the\nupper y boundary. And vice versa if a particle exits the upper y\nboundary. Likewise the ghost atoms surrounding a particle near the\nlower y boundary include images of particles near the upper y-boundary\nwhich are displaced in the x-direction by xy. Similar rules apply for\nz-periodicity and the xz and/or yz tilt factors.\n\nIf the first dimension of a tilt factor is shrink-wrapped, then the\nshrink wrapping is applied to the tilted box face, to encompass the\natoms. E.g. for a positive xy tilt, the xlo and xhi faces of the box\nare planes tilting in the +y direction as y increases. The position\nof these tilted planes are adjusted dynamically to shrink-wrap around\nthe atoms to determine the xlo and xhi extents of the box.\n", + "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command\nor [read_restart ](https://docs.lammps.org/read_restart.html) command. See the\n[change_box ](https://docs.lammps.org/change_box.html) command for how to change the\nsimulation box boundaries after it has been defined.\n\nFor 2d simulations, the z dimension must be periodic.\n", + "related": "See the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command for a discussion\nof lost atoms.\n" +}, +{ + "command": [ + "fix spring/rg" + ], + "syntax": [ + "fix ID group-ID spring/rg K RG0" + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, "choices": [] }, { - "arg": "t_event", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "T_lo", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "T_hi", - "type": 2, + "arg": "spring/rg", + "type": 1, "choices": [] }, { - "arg": "delta", + "arg": "K", "type": 2, "choices": [] }, { - "arg": "tmax", + "arg": "RG0", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/rg = style name of this fix command\n* K = harmonic force constant (force/distance units)\n* RG0 = target radius of gyration to constrain to (distance units) \n *      if RG0 = NULL, use the current RG as the target value \n", + "examples": "\n```lmps\nfix 1 protein spring/rg 5.0 10.0\nfix 2 micelle spring/rg 5.0 NULL\n```\n", + "html_filename": "fix_spring_rg.html", + "short_description": "Apply a harmonic restraining force to atoms in the group to affect\ntheir central moment about the center of mass (radius of gyration)", + "description": "Apply a harmonic restraining force to atoms in the group to affect\ntheir central moment about the center of mass (radius of gyration).\nThis fix is useful to encourage a protein or polymer to fold/unfold\nand also when sampling along the radius of gyration as a reaction\ncoordinate (i.e. for protein folding).\n\nThe radius of gyration is defined as RG in the first formula. The\nenergy of the constraint and associated force on each atom is given by\nthe second and third formulas, when the group is at a different RG\nthan the target value RG0.\n\\[\\begin{align*} \n {R_G}^2 & = \\frac{1}{M}\\sum_{i}^{N}{m_{i}\\left( x_{i} -\n \\frac{1}{M}\\sum_{j}^{N}{m_{j}x_{j}} \\right)^{2}} \\\\\n E & = K\\left( R_G - R_{G0} \\right)^{2} \\\\\n F_{i} & = 2K\\frac{m_{i}}{M}\\left( 1-\\frac{R_{G0}}{R_G}\n \\right)\\left( x_{i} - \\frac{1}{M}\\sum_{j}^{N}{m_{j}x_{j}} \\right) \\end{align*} \\]\nThe (\\(x_i\\) - center-of-mass) term is computed taking into account\nperiodic boundary conditions, \\(m_i\\) is the mass of the atom, and\n*M* is the mass of the entire group. Note that K is thus a force constant\nfor the aggregate force on the group of atoms, not a per-atom force.\n\nIf \\(R_{G0}\\) is specified as NULL, then the RG of the group is computed at\nthe time the fix is specified, and that value is used as the target.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the currently used reference RG (\\(R_{G0}\\)) to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an input\nscript that reads a restart file, so that the fix continues in an\nuninterrupted fashion.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the reference\nradius of gyration \\(R_{G0}\\) used by the fix. energy change due to\nthis fix. The scalar value calculated by this fix is \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html)\n[fix drag ](https://docs.lammps.org/fix_drag.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" +}, +{ + "command": [ + "angle_style fourier/simple", + "angle_style fourier/simple/omp" + ], + "syntax": [ + "angle_style fourier/simple" + ], + "args": [ + [ + { + "arg": "angle_style", + "type": 1, + "choices": [] }, { - "arg": "compute-ID", - "type": 2, + "arg": "fourier/simple", + "type": 3, + "choices": [ + "fourier/simple", + "fourier/simple/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nangle_style fourier/simple\nangle_coeff 100.0 -1.0 1.0\n```\n", + "html_filename": "angle_fourier_simple.html", + "short_description": "The *fourier/simple* angle style uses the potential\n\\[\n E = K [ 1.0 + c \\cos ( n \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(c\\) (real)\n* \\(n\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", + "description": "The *fourier/simple* angle style uses the potential\n\\[\n E = K [ 1.0 + c \\cos ( n \\theta) ]\\]\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(c\\) (real)\n* \\(n\\) (real)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" +}, +{ + "command": [ + "pair_style tersoff/zbl", + "pair_style tersoff/zbl/gpu", + "pair_style tersoff/zbl/kk", + "pair_style tersoff/zbl/omp" + ], + "syntax": [ + "pair_style tersoff/zbl keywords values" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "neb_log", + "arg": "tersoff/zbl", "type": 3, "choices": [ - "min", - "neb", - "neb_style", - "neb_step", - "neb_log" + "tersoff/zbl", + "tersoff/zbl/gpu", + "tersoff/zbl/kk", + "tersoff/zbl/omp" ] }, { - "arg": "value", + "arg": "keywords", + "type": 2, + "choices": [] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* N = # of timesteps to run (not including dephasing/quenching)\n* t_event = timestep interval between event checks\n* T_lo = temperature at which event times are desired\n* T_hi = temperature at which MD simulation is performed\n* delta = desired confidence level for stopping criterion\n* tmax = reciprocal of lowest expected pre-exponential factor (time units)\n* compute-ID = ID of the compute used for event detection\n* zero or more keyword/value pairs may be appended\n* keyword = min or neb or neb_style or neb_step or neb_log \n *        min values = etol ftol maxiter maxeval \n         etol = stopping tolerance for energy (energy units) \n         ftol = stopping tolerance for force (force units) \n         maxiter = max iterations of minimize \n         maxeval = max number of force/energy evaluations \n *        neb values = ftol N1 N2 Nevery \n         etol = stopping tolerance for energy (energy units) \n         ftol = stopping tolerance for force (force units) \n         N1 = max # of iterations (timesteps) to run initial NEB \n         N2 = max # of iterations (timesteps) to run barrier-climbing NEB \n         Nevery = print NEB statistics every this many timesteps \n *        neb_style value = quickmin or fire \n *        neb_step value = dtneb \n         dtneb = timestep for NEB damped dynamics minimization \n *        neb_log value = file where NEB statistics are printed \n", - "examples": "\n```lmps\ntad 2000 50 1800 2300 0.01 0.01 event\ntad 2000 50 1800 2300 0.01 0.01 event &\nmin 1e-05 1e-05 100 100 &\nneb 0.0 0.01 200 200 20 &\nmin_style cg &\nneb_style fire &\nneb_log log.neb\n```\n", - "html_filename": "tad.html", - "short_description": "Run a temperature accelerated dynamics (TAD) simulation", - "description": "Run a temperature accelerated dynamics (TAD) simulation. This method\nrequires two or more partitions to perform NEB transition state\nsearches.\n\nTAD is described in **Voter2000** by Art Voter. It is\na method that uses accelerated dynamics at an elevated temperature to\ngenerate results at a specified lower temperature. A good overview of\naccelerated dynamics methods (AMD) for such systems is given in\n**Voter2002** from the same group. To quote\nfrom the review paper: \"The dynamical evolution is characterized by\nvibrational excursions within a potential basin, punctuated by\noccasional transitions between basins. The transition probability is\ncharacterized by p(t) = k\\*exp(-kt) where k is the rate constant.\"\n\nTAD is a suitable AMD method for infrequent-event systems, where in\naddition, the transition kinetics are well-approximated by harmonic\ntransition state theory (hTST). In hTST, the temperature dependence\nof transition rates follows the Arrhenius relation. As a consequence\na set of event times generated in a high-temperature simulation can be\nmapped to a set of much longer estimated times in the low-temperature\nsystem. However, because this mapping involves the energy barrier of\nthe transition event, which is different for each event, the first\nevent at the high temperature may not be the earliest event at the low\ntemperature. TAD handles this by first generating a set of possible\nevents from the current basin. After each event, the simulation is\nreflected backwards into the current basin. This is repeated until\nthe stopping criterion is satisfied, at which point the event with the\nearliest low-temperature occurrence time is selected. The stopping\ncriterion is that the confidence measure be greater than 1-\\ *delta*\n. The confidence measure is the probability that no earlier\nlow-temperature event will occur at some later time in the\nhigh-temperature simulation. hTST provides an lower bound for this\nprobability, based on the user-specified minimum pre-exponential\nfactor (reciprocal of *tmax* ).\n\nIn order to estimate the energy barrier for each event, the TAD method\ninvokes the [NEB ](https://docs.lammps.org/neb.html) method. Each NEB replica runs on a\npartition of processors. The current NEB implementation in LAMMPS\nrestricts you to having exactly one processor per replica. For more\ninformation, see the documentation for the [neb ](https://docs.lammps.org/neb.html) command. In\nthe current LAMMPS implementation of TAD, all the non-NEB TAD\noperations are performed on the first partition, while the other\npartitions remain idle. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc\npage for further discussion of multi-replica simulations.\n\nA TAD run has several stages, which are repeated each time an event is\nperformed. The logic for a TAD run is as follows:\n\n```\nwhile (time remains):\nwhile (time < tstop):\nuntil (event occurs):\nrun dynamics for t_event steps\nquench\nrun neb calculation using all replicas\ncompute tlo from energy barrier\nupdate earliest event\nupdate tstop\nreflect back into current basin\nexecute earliest event\n```\nBefore this outer loop begins, the initial potential energy basin is\nidentified by quenching (an energy minimization, see below) the\ninitial state and storing the resulting coordinates for reference.\n\nInside the inner loop, dynamics is run continuously according to\nwhatever integrator has been specified by the user, stopping every\n*t_event* steps to check if a transition event has occurred. This\ncheck is performed by quenching the system and comparing the resulting\natom coordinates to the coordinates from the previous basin.\n\nA quench is an energy minimization and is performed by whichever\nalgorithm has been defined by the [min_style ](https://docs.lammps.org/min_style.html) command;\nits default is the CG minimizer. The tolerances and limits for each\nquench can be set by the *min* keyword. Note that typically, you do\nnot need to perform a highly-converged minimization to detect a\ntransition event.\n\nThe event check is performed by a compute with the specified\n*compute-ID* . Currently there is only one compute that works with the\nTAD command, which is the [compute event/displace ](https://docs.lammps.org/compute_event_displace.html) command. Other\nevent-checking computes may be added. [Compute event/displace ](https://docs.lammps.org/compute_event_displace.html) checks whether any atom in\nthe compute group has moved further than a specified threshold\ndistance. If so, an \"event\" has occurred.\n\nThe NEB calculation is similar to that invoked by the [neb ](https://docs.lammps.org/neb.html)\ncommand, except that the final state is generated internally, instead\nof being read in from a file. The style of minimization performed by\nNEB is determined by the *neb_style* keyword and must be a damped\ndynamics minimizer. The tolerances and limits for each NEB\ncalculation can be set by the *neb* keyword. As discussed on the\n[neb ](https://docs.lammps.org/neb.html), it is often advantageous to use a larger timestep for\nNEB than for normal dynamics. Since the size of the timestep set by\nthe [timestep ](https://docs.lammps.org/timestep.html) command is used by TAD for performing\ndynamics, there is a *neb_step* keyword which can be used to set a\nlarger timestep for each NEB calculation if desired.\n\n----------\n\nA key aspect of the TAD method is setting the stopping criterion\nappropriately. If this criterion is too conservative, then many\nevents must be generated before one is finally executed. Conversely,\nif this criterion is too aggressive, high-entropy high-barrier events\nwill be over-sampled, while low-entropy low-barrier events will be\nunder-sampled. If the lowest pre-exponential factor is known fairly\naccurately, then it can be used to estimate *tmax*, and the value of\n*delta* can be set to the desired confidence level e.g. *delta* = 0.05\ncorresponds to 95% confidence. However, for systems where the dynamics\nare not well characterized (the most common case), it will be\nnecessary to experiment with the values of *delta* and *tmax* to get a\ngood trade-off between accuracy and performance.\n\nA second key aspect is the choice of *t_hi*. A larger value greatly\nincreases the rate at which new events are generated. However, too\nlarge a value introduces errors due to anharmonicity (not accounted\nfor within hTST). Once again, for any given system, experimentation is\nnecessary to determine the best value of *t_hi*.\n\n----------\n\nFive kinds of output can be generated during a TAD run: event\nstatistics, NEB statistics, thermodynamic output by each replica, dump\nfiles, and restart files.\n\nEvent statistics are printed to the screen and master log.lammps file\neach time an event is executed. The quantities are the timestep, CPU\ntime, global event number *N*, local event number *M*, event status,\nenergy barrier, time margin, *t_lo* and *delt_lo*. The timestep is\nthe usual LAMMPS timestep, which corresponds to the high-temperature\ntime at which the event was detected, in units of timestep. The CPU\ntime is the total processor time since the start of the TAD run. The\nglobal event number *N* is a counter that increments with each\nexecuted event. The local event number *M* is a counter that resets to\nzero upon entering each new basin. The event status is *E* when an\nevent is executed, and is *D* for an event that is detected, while\n*DF* is for a detected event that is also the earliest (first) event\nat the low temperature.\n\nThe time margin is the ratio of the high temperature time in the\ncurrent basin to the stopping time. This last number can be used to\njudge whether the stopping time is too short or too long (see above).\n\n*t_lo* is the low-temperature event time when the current basin was\nentered, in units of timestep. del*t_lo* is the time of each detected\nevent, measured relative to *t_lo*. *delt_lo* is equal to the\nhigh-temperature time since entering the current basin, scaled by an\nexponential factor that depends on the hi/lo temperature ratio and the\nenergy barrier for that event.\n\nOn lines for executed events, with status *E*, the global event number\nis incremented by one,\nthe local event number and time margin are reset to zero,\nwhile the global event number, energy barrier, and\n*delt_lo* match the last event with status *DF*\nin the immediately preceding block of detected events.\nThe low-temperature event time *t_lo* is incremented by *delt_lo*.\n\nNEB statistics are written to the file specified by the *neb_log*\nkeyword. If the keyword value is \"none\", then no NEB statistics are\nprinted out. The statistics are written every *Nevery* timesteps. See\nthe [neb ](https://docs.lammps.org/neb.html) command for a full description of the NEB\nstatistics. When invoked from TAD, NEB statistics are never printed to\nthe screen.\n\nBecause the NEB calculation must run on multiple partitions, LAMMPS\nproduces additional screen and log files for each partition,\ne.g. log.lammps.0, log.lammps.1, etc. For the TAD command, these\ncontain the thermodynamic output of each NEB replica. In addition, the\nlog file for the first partition, log.lammps.0, will contain\nthermodynamic output from short runs and minimizations corresponding\nto the dynamics and quench operations, as well as a line for each new\ndetected event, as described above.\n\nAfter the TAD command completes, timing statistics for the TAD run are\nprinted in each replica's log file, giving a breakdown of how much CPU\ntime was spent in each stage (NEB, dynamics, quenching, etc).\n\nAny [dump files ](https://docs.lammps.org/dump.html) defined in the input script will be written\nto during a TAD run at timesteps when an event is executed. This\nmeans the requested dump frequency in the [dump ](https://docs.lammps.org/dump.html) command\nis ignored. There will be one dump file (per dump command) created\nfor all partitions. The atom coordinates of the dump snapshot are\nthose of the minimum energy configuration resulting from quenching\nfollowing the executed event. The timesteps written into the dump\nfiles correspond to the timestep at which the event occurred and NOT\nthe clock. A dump snapshot corresponding to the initial minimum state\nused for event detection is written to the dump file at the beginning\nof each TAD run.\n\nIf the [restart ](https://docs.lammps.org/restart.html) command is used, a single restart file\nfor all the partitions is generated, which allows a TAD run to be\ncontinued by a new input script in the usual manner. The restart file\nis generated after an event is executed. The restart file contains a\nsnapshot of the system in the new quenched state, including the event\nnumber and the low-temperature time. The restart frequency specified\nin the [restart ](https://docs.lammps.org/restart.html) command is interpreted differently when\nperforming a TAD run. It does not mean the timestep interval between\nrestart files. Instead it means an event interval for executed\nevents. Thus a frequency of 1 means write a restart file every time\nan event is executed. A frequency of 10 means write a restart file\nevery 10th executed event. When an input script reads a restart file\nfrom a previous TAD run, the new script can be run on a different\nnumber of replicas or processors.\n\nNote that within a single state, the dynamics will typically\ntemporarily continue beyond the event that is ultimately chosen, until\nthe stopping criterion is satisfied. When the event is eventually\nexecuted, the timestep counter is reset to the value when the event\nwas detected. Similarly, after each quench and NEB minimization, the\ntimestep counter is reset to the value at the start of the\nminimization. This means that the timesteps listed in the replica log\nfiles do not always increase monotonically. However, the timestep\nvalues printed to the master log file, dump files, and restart files\nare always monotonically increasing.\n\n----------\n\n**(Voter2000)** Sorensen and Voter, J Chem Phys, 112, 9599 (2000) \n \n**(Voter2002)** Voter, Montalenti, Germann, Annual Review of Materials\nResearch 32, 321 (2002). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n*N* setting must be integer multiple of *t_event*.\n\nRuns restarted from restart files written during a TAD run will only\nproduce identical results if the user-specified integrator supports\nexact restarts. So [fix nvt ](https://docs.lammps.org/fix_nh.html) will produce an exact\nrestart, but [fix langevin ](https://docs.lammps.org/fix_langevin.html) will not.\n\nThis command cannot be used when any fixes are defined that keep track\nof elapsed time to perform time-dependent operations. Examples\ninclude the \"ave\" fixes such as [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html).\nAlso [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) and [fix deposit ](https://docs.lammps.org/fix_deposit.html).\n", - "related": "[compute event/displace ](https://docs.lammps.org/compute_event_displace.html),\n[min_modify ](https://docs.lammps.org/min_modify.html), [min_style ](https://docs.lammps.org/min_style.html),\n[run_style ](https://docs.lammps.org/run_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[temper ](https://docs.lammps.org/temper.html), [neb ](https://docs.lammps.org/neb.html),\n[prd ](https://docs.lammps.org/prd.html)\n" + "parameters": "* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", + "examples": "\n```lmps\npair_style tersoff/zbl\npair_coeff * * SiC.tersoff.zbl Si C Si\n```\n", + "html_filename": "pair_tersoff_zbl.html", + "short_description": "The *tersoff/zbl* style computes a 3-body Tersoff potential\n**zbl-Tersoff_1** with a close-separation pairwise modification\nbased on a Coulomb potential and the Ziegler-Biersack-Littmark\nuniversal screening function **zbl-ZBL**, giving the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = (1 - f_F(r_{ij} + \\delta)) V^{ZBL}(r_{ij} + \\delta)\n + f_F(r_{ij} + \\delta) V^{Tersoff}(r_{ij} + \\delta) \\\\\n f_F(r) & = \\frac{1}{1 + e^{-A_F(r - r_C)}}\\\\\n \\\\\n \\\\\n V^{ZBL}(r) & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_1 Z_2 \\,e^2}{r} \\phi(r/a) \\\\\n a & = \\frac{0.8854\\,a_0}{Z_{1}^{0.23} + Z_{2}^{0.23}}\\\\\n \\phi(x) & = 0.1818e^{-3.2x} + 0.5099e^{-0.9423x} + 0.2802e^{-0.4029x} + 0.02817e^{-0.2016x}\\\\\n \\\\\n \\\\\n V^{Tersoff}(r) & = f_C(r) \\left[ f_R(r) + b_{ij} f_A(r) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", + "description": "The *tersoff/zbl* style computes a 3-body Tersoff potential\n**zbl-Tersoff_1** with a close-separation pairwise modification\nbased on a Coulomb potential and the Ziegler-Biersack-Littmark\nuniversal screening function **zbl-ZBL**, giving the energy E of a\nsystem of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = (1 - f_F(r_{ij} + \\delta)) V^{ZBL}(r_{ij} + \\delta)\n + f_F(r_{ij} + \\delta) V^{Tersoff}(r_{ij} + \\delta) \\\\\n f_F(r) & = \\frac{1}{1 + e^{-A_F(r - r_C)}}\\\\\n \\\\\n \\\\\n V^{ZBL}(r) & = \\frac{1}{4\\pi\\epsilon_0} \\frac{Z_1 Z_2 \\,e^2}{r} \\phi(r/a) \\\\\n a & = \\frac{0.8854\\,a_0}{Z_{1}^{0.23} + Z_{2}^{0.23}}\\\\\n \\phi(x) & = 0.1818e^{-3.2x} + 0.5099e^{-0.9423x} + 0.2802e^{-0.4029x} + 0.02817e^{-0.2016x}\\\\\n \\\\\n \\\\\n V^{Tersoff}(r) & = f_C(r) \\left[ f_R(r) + b_{ij} f_A(r) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + \\beta^n {\\zeta_{ij}}^n \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g(\\theta_{ijk})\n \\exp \\left[ {\\lambda_3}^m (r_{ij} - r_{ik})^m \\right] \\\\\n g(\\theta) & = \\gamma_{ijk} \\left( 1 + \\frac{c^2}{d^2} -\n \\frac{c^2}{\\left[ d^2 + (\\cos \\theta - \\cos \\theta_0)^2\\right]} \\right) \\end{align*} \\]\nThe \\(f_F\\) term is a fermi-like function used to smoothly connect the ZBL\nrepulsive potential with the Tersoff potential. There are 2\nparameters used to adjust it: \\(A_F\\) and \\(r_C\\). \\(A_F\\)\ncontrols how \"sharp\"\nthe transition is between the two, and \\(r_C\\) is essentially the cutoff\nfor the ZBL potential.\n\nFor the ZBL portion, there are two terms. The first is the Coulomb\nrepulsive term, with Z1, Z2 as the number of protons in each nucleus,\ne as the electron charge (1 for metal and real units) and \\(\\epsilon_0\\)\nas the permittivity of vacuum. The second part is the ZBL universal\nscreening function, with a0 being the Bohr radius (typically 0.529\nAngstroms), and the remainder of the coefficients provided by the\noriginal paper. This screening function should be applicable to most\nsystems. However, it is only accurate for small separations\n(i.e. less than 1 Angstrom).\n\nFor the Tersoff portion, \\(f_R\\) is a two-body term and \\(f_A\\)\nincludes\nthree-body interactions. The summations in the formula are over all\nneighbors J and K of atom I within a cutoff distance = R + D.\n\n\\(\\delta\\) is an optional negative shift of the\nequilibrium bond length, as described below.\n\nOnly a single pair_coeff command is used with the *tersoff/zbl* style\nwhich specifies a Tersoff/ZBL potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff/ZBL elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values\nfor Si and C. If your LAMMPS simulation has 4 atoms types and you\nwant the first 3 to be Si, and the fourth to be C, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * SiC.tersoff Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the Tersoff/ZBL file. The final C argument maps LAMMPS\natom type 4 to the C element in the Tersoff/ZBL file. If a mapping\nvalue is specified as NULL, the mapping is not performed. This can be\nused when a *tersoff/zbl* potential is used as part of the *hybrid*\npair style. The NULL values are placeholders for atom types that will\nbe used with other potentials.\n\nTersoff/ZBL files in the *potentials* directory of the LAMMPS\ndistribution have a \".tersoff.zbl\" suffix. Lines that are not blank\nor comments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to coefficients\nin the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* m\n* \\(\\gamma\\)\n* \\(\\lambda_3\\) (1/distance units)\n* c\n* d\n* \\(\\cos\\theta_0\\) (can be a value < -1 or > 1)\n* n\n* \\(\\beta\\)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n* \\(Z_i\\)\n* \\(Z_j\\)\n* ZBLcut (distance units)\n* ZBLexpscale (1/distance units)\n\nThe n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A\nparameters are only used for\ntwo-body interactions. The m, \\(\\gamma\\), \\(\\lambda_3\\), c, d,\nand \\(\\cos\\theta_0\\)\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions. The\n\\(Z_i\\), \\(Z_j\\), ZBLcut, ZBLexpscale parameters are used in the\nZBL repulsive\nportion of the potential and in the Fermi-like function. The\nnon-annotated parameters are unitless. The value of m must be 3 or 1.\n\nThe Tersoff/ZBL potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify Tersoff parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction and it is bonded to the second atom and the\nbond is influenced by the third atom. Thus an entry for SiCC means Si\nbonded to a C with another C atom influencing the bond. Thus\nthree-body parameters for SiCSi and SiSiC entries will not, in\ngeneral, be the same. The parameters used for the two-body\ninteraction come from the entry where the second element is repeated.\nThus the two-body parameters for Si interacting with C, comes from the\nSiCC entry.\n\nThe parameters used for a particular\nthree-body interaction come from the entry with the corresponding\nthree elements. The parameters used only for two-body interactions\n(n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A)\nin entries whose second and third\nelement are different (e.g. SiCSi) are not used for anything and can\nbe set to 0.0 if desired.\n\nNote that the twobody parameters in entries such as SiCC and CSiSi\nare often the same, due to the common use of symmetric mixing rules,\nbut this is not always the case. For example, the beta and n parameters in\nTersoff_2 **zbl-Tersoff_2** are not symmetric.\n\nWe chose the above form so as to enable users to define all commonly\nused variants of the Tersoff portion of the potential. In particular,\nour form reduces to the original Tersoff form when m = 3 and gamma =\n1, while it reduces to the form of **zbl-Albe** when beta = 1\nand m = 1. Note that in the current Tersoff implementation in LAMMPS,\nm must be specified as either 3 or 1. Tersoff used a slightly\ndifferent but equivalent form for alloys, which we will refer to as\nTersoff_2 potential **zbl-Tersoff_2**.\n\nLAMMPS parameter values for Tersoff_2 can be obtained as follows:\n\\(\\gamma = \\omega_{ijk}\\), \\(\\lambda_3 = 0\\) and the value of\nm has no effect. The parameters for species i and j can be calculated\nusing the Tersoff_2 mixing rules:\n\\[\\begin{align*} \n \\lambda_1^{i,j} & = \\frac{1}{2}(\\lambda_1^i + \\lambda_1^j)\\\\\n \\lambda_2^{i,j} & = \\frac{1}{2}(\\lambda_2^i + \\lambda_2^j)\\\\\n A_{i,j} & = (A_{i}A_{j})^{1/2}\\\\\n B_{i,j} & = \\chi_{ij}(B_{i}B_{j})^{1/2}\\\\\n R_{i,j} & = (R_{i}R_{j})^{1/2}\\\\\n S_{i,j} & = (S_{i}S_{j})^{1/2}\\\\ \\end{align*} \\]\nTersoff_2 parameters R and S must be converted to the LAMMPS\nparameters R and D (R is different in both forms), using the following\nrelations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the\nTersoff_2 parameters.\n\nIn the potentials directory, the file SiCGe.tersoff provides the\nLAMMPS parameters for Tersoff's various versions of Si, as well as his\nalloy parameters for Si, C, and Ge. This file can be used for pure Si,\n(three different versions), pure C, pure Ge, binary SiC, and binary\nSiGe. LAMMPS will generate an error if this file is used with any\ncombination involving C and Ge, since there are no entries for the GeC\ninteractions (Tersoff did not publish parameters for this\ncross-interaction.) Tersoff files are also provided for the SiC alloy\n(SiC.tersoff) and the GaN (GaN.tersoff) alloys.\n\nMany thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou\nfor helping clarify how Tersoff parameters for alloys have been\ndefined in various papers. Also thanks to Ram Devanathan for\nproviding the base ZBL implementation.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose\nformula is the same as the Tersoff potential. The only modification is\nthat the original equilibrium bond length ( \\(r_0\\)) of the system\nis shifted to \\(r_0-\\delta\\). The minus sign arises because each\nradial distance \\(r\\) is replaced by \\(r+\\delta\\). More\ninformation on this option is given on the main [pair_tersoff](https://docs.lammps.org/pair_tersoff.html) page.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(zbl-Tersoff_1)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(zbl-ZBL)** J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges\nof Ions in Matter' Vol 1, 1985, Pergamon Press. \n \n**(zbl-Tersoff_2)** J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248) \n \n**(zbl-Albe)** J. Nord, K. Albe, P. Erhart and K. Nordlund, J. Phys.:\nCondens. Matter, 15, 5649(2003). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is currently not supported for the *tersoff/gpu* and\n*tersoff/kk* variants of this pair style.\n\nThe tersoff/zbl potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for [\"metal\" units ](https://docs.lammps.org/units.html). Also the\npair style supports converting potential file parameters on-the-fly\nbetween \"metal\" and \"real\" units. You can use the tersoff/zbl pair\nstyle with any LAMMPS units, but you would need to create your own\ntersoff/zbl potential file with coefficients listed in the appropriate\nunits if your simulation does not use \"metal\" or \"real\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix_modify AtC reset_atomic_reference_positions" + "pair_style lcbop" ], "syntax": [ - "fix_modify reset_atomic_reference_positions" + "pair_style lcbop" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "reset_atomic_reference_positions", + "arg": "lcbop", "type": 1, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* reset_atomic_reference_positions = name of the AtC sub-command \n", - "examples": "\n```lmps\nfix_modify AtC reset_atomic_reference_positions\n```\n", - "html_filename": "atc_reset_atomic_reference.html", - "short_description": "Resets the atomic positions ATC uses to perform point to field\noperations", - "description": "Resets the atomic positions ATC uses to perform point to field\noperations. In can be used to use perfect lattice sites in ATC but a\nthermalized or deformed lattice in LAMMPS.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "", + "examples": "\n```lmps\npair_style lcbop\npair_coeff * * ../potentials/C.lcbop C\n```\n", + "html_filename": "pair_lcbop.html", + "short_description": "The *lcbop* pair style computes the long-range bond-order potential\nfor carbon (LCBOP) of **Los**", + "description": "The *lcbop* pair style computes the long-range bond-order potential\nfor carbon (LCBOP) of **Los**. See section II in\nthat paper for the analytic equations associated with the potential.\n\nOnly a single pair_coeff command is used with the *lcbop* style which\nspecifies an LCBOP potential file with parameters for specific\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of LCBOP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has 4 atom types and you want\nthe first 3 to be C you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * C.lcbop C C C NULL\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first C argument maps LAMMPS atom type 1 to the C element in the\nLCBOP file. If a mapping value is specified as NULL, the mapping is\nnot performed. This can be used when a *lcbop* potential is used as\npart of the *hybrid* pair style. The NULL values are placeholders for\natom types that will be used with other potentials.\n\nThe parameters/coefficients for the LCBOP potential as applied to C\nare listed in the C.lcbop file to agree with the original **Los** paper. Thus the parameters are specific to this\npotential and the way it was fit, so modifying the file should be done\ncarefully.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Los)** J. H. Los and A. Fasolino, Phys. Rev. B 68, 024107\n(2003). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair potential requires the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe ``C.lcbop`` potential file provided with LAMMPS (see the potentials\ndirectory) is parameterized for [metal units ](https://docs.lammps.org/units.html). You can use\nthe LCBOP potential with any LAMMPS units, but you would need to\ncreate your own LCBOP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "related": "[pair_airebo ](https://docs.lammps.org/pair_airebo.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix lb/momentum" + "fix nve/tri" ], "syntax": [ - "fix ID group-ID lb/momentum nevery keyword values ..." + "fix ID group-ID nve/tri" ], "args": [ [ @@ -27240,46 +26158,75 @@ export const command_docs = [ "choices": [] }, { - "arg": "lb/momentum", + "arg": "nve/tri", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/tri = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/tri\n```\n", + "html_filename": "fix_nve_tri.html", + "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular momentum for triangular particles in the\ngroup each timestep", + "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular momentum for triangular particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble. See the\n[Howto spherical ](https://docs.lammps.org/Howto_spherical.html) page for an overview of\nusing triangular particles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that particles be triangles as defined by the\n[atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" +}, +{ + "command": [ + "pair_style lepton", + "pair_style lepton/omp", + "pair_style lepton", + "pair_style lepton" + ], + "syntax": [ + "pair_style style args" + ], + "args": [ + [ { - "arg": "nevery", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] + "arg": "lepton/sphere/comp", + "type": 3, + "choices": [ + "lepton", + "lepton/coul", + "lepton/sphere", + "lepton/omp", + "lepton/coul/comp", + "lepton/sphere/comp" + ] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in the [fix ](https://docs.lammps.org/fix.html) command\n* lb/momentum = style name of this fix command\n* nevery = adjust the momentum every this many timesteps\n* zero or more keyword/value pairs may be appended\n* keyword = linear \n *        linear values = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension. \n", - "examples": "\n```lmps\nfix 1 sphere lb/momentum\nfix 1 all lb/momentum linear 1 1 0\n```\n", - "html_filename": "fix_lb_momentum.html", - "short_description": "This fix is based on the [fix momentum ](https://docs.lammps.org/fix_momentum.html) command, and\nwas created to be used in place of that command, when a\nlattice-Boltzmann fluid is present", - "description": "This fix is based on the [fix momentum ](https://docs.lammps.org/fix_momentum.html) command, and\nwas created to be used in place of that command, when a\nlattice-Boltzmann fluid is present.\n\nZero the total linear momentum of the system, including both the atoms\nspecified by group-ID and the lattice-Boltzmann fluid every nevery\ntimesteps. If there are no atoms specified by group-ID only the fluid momentum is affected. This is accomplished by adjusting the particle velocities\nand the fluid velocities at each lattice site.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix only considers the linear momentum of the system. \n > \n\nBy default, the subtraction is performed for each dimension. This can\nbe changed by specifying the keyword *linear*, along with a set of\nthree flags set to 0/1 in order to exclude/ include the corresponding\ndimension.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "Can only be used if a lattice-Boltzmann fluid has been created via the\n[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) command, and must come after this\ncommand.\n\nThis fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix momentum ](https://docs.lammps.org/fix_momentum.html), [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)\n" + "parameters": "* style = lepton or lepton/coul or lepton/sphere\n* args = list of arguments for a particular style \n *     lepton args = cutoff \n      cutoff = global cutoff for the interactions (distance units) \n *     lepton/coul args = cutoff keyword \n      cutoff = global cutoff for the interactions (distance units) \n      zero or more keywords may be appended \n      keyword = ewald or pppm or msm or dispersion or tip4p \n *     lepton/sphere args = cutoff \n      cutoff = global cutoff for the interactions (distance units) \n", + "examples": "\n```lmps\npair_style lepton 2.5\n\npair_coeff * * \"k*((r-r0)^2*step(r0-r)); k=200; r0=1.5\" 2.0\npair_coeff 1 2 \"4.0*eps*((sig/r)^12 - (sig/r)^6);eps=1.0;sig=1.0\" 1.12246204830937\npair_coeff 2 2 \"eps*(2.0*(sig/r)^9 - 3.0*(sig/r)^6);eps=1.0;sig=1.0\"\npair_coeff 1 3 \"zbl(13,6,r)\"\npair_coeff 3 3 \"(1.0-switch)*zbl(6,6,r)-switch*4.0*eps*((sig/r)^6);switch=0.5*(tanh(10.0*(r-sig))+1.0);eps=0.05;sig=3.20723\"\n\npair_style lepton/coul 2.5\npair_coeff 1 1 \"qi*qj/r\" 4.0\npair_coeff 1 2 \"lj+coul; lj=4.0*eps*((sig/r)^12 - (sig/r)^6); eps=1.0; sig=1.0; coul=qi*qj/r\"\n\npair_style lepton/coul 2.5 pppm\nkspace_style pppm 1.0e-4\npair_coeff 1 1 \"qi*qj/r*erfc(alpha*r); alpha=1.067\"\n\npair_style lepton/sphere 2.5\npair_coeff 1 * \"k*((r-r0)^2*step(r0-r)); k=200; r0=radi+radj\"\npair_coeff 2 2 \"4.0*eps*((sig/r)^12 - (sig/r)^6); eps=1.0; sig=2.0*sqrt(radi*radj)\"\n```\n", + "html_filename": "pair_lepton.html", + "short_description": "\n **New in version 8Feb2023** \n\n added pair styles *lepton* and *lepton/coul*\n\n **New in version 15Jun2023** \n\n added pair style *lepton/sphere*\nPair styles *lepton*, *lepton/coul*, *lepton/sphere* compute pairwise\ninteractions between particles which depend on the distance and have a\ncutoff", + "description": "\n **New in version 8Feb2023** \n\n added pair styles *lepton* and *lepton/coul*\n\n **New in version 15Jun2023** \n\n added pair style *lepton/sphere*\nPair styles *lepton*, *lepton/coul*, *lepton/sphere* compute pairwise\ninteractions between particles which depend on the distance and have a\ncutoff. The potential function must be provided as an expression string\nusing \"r\" as the distance variable. With pair style *lepton/coul* one\nmay additionally reference the charges of the two atoms of the pair with\n\"qi\" and \"qj\", respectively. With pair style *lepton/sphere* one may\ninstead reference the radii of the two atoms of the pair with \"radi\" and\n\"radj\", respectively; this is half of the diameter that can be set in\n[data files ](https://docs.lammps.org/read_data.html) or the [set command ](https://docs.lammps.org/set.html).\n\nNote that further constants in the expressions can be defined in the\nsame string as additional expressions separated by semicolons as shown\nin the examples above.\n\nThe expression `\"200.0*(r-1.5)^2\"` represents a harmonic potential\naround the pairwise distance \\(r_0\\) of 1.5 distance units and a\nforce constant *K* of 200.0 energy units:\n\\[\n U_{ij} = K (r-r_0)^2\\]\nThe expression `\"qi*qj/r\"` represents a regular Coulombic potential with cutoff:\n\\[\n U_{ij} = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nThe expression `\"200.0*(r-(radi+radj)^2\"` represents a harmonic potential\nthat has the equilibrium distance chosen so that the radii of the two\natoms touch:\n\\[\n U_{ij} = K (r-(r_i+r_j))^2\\]\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* pair style interfaces with, evaluates this expression string at\nrun time to compute the pairwise energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect\nto \"r\" and then uses that to compute the force between the pairs of\nparticles within the given cutoff.\n\nThe following coefficients must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* cutoff (distance units)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The last coefficient is\noptional; it allows to set the cutoff for a pair of atom types to a\ndifferent value than the global cutoff.\n\nFor pair style *lepton* only the \"lj\" values of the [special_bonds](https://docs.lammps.org/special_bonds.html) settings apply in case the interacting pair is also\nconnected with a bond. The potential energy will *only* be added to the\n\"evdwl\" property.\n\nFor pair style *lepton/coul* only the \"coul\" values of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings apply in case the\ninteracting pair is also connected with a bond. The potential energy\nwill *only* be added to the \"ecoul\" property.\n\nFor pair style *lepton/sphere* only the \"lj\" values of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings apply in case the\ninteracting pair is also connected with a bond. The potential energy\nwill *only* be added to the \"evdwl\" property.\n\nIn addition to the functions listed below, both pair styles support in\naddition a custom \"zbl(zi,zj,r)\" function which computes the\nZiegler-Biersack-Littmark (ZBL) screened nuclear repulsion for\ndescribing high-energy collisions between atoms. For details of the\nfunction please see the documentation for [pair style zbl](https://docs.lammps.org/pair_zbl.html). The arguments of the function are the atomic numbers of\natom i (zi), atom j (zj) and the distance r. Please see the examples\nabove.\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nPair styles *lepton*, *lepton/coul*, and *lepton/sphere* do not support\nmixing. Thus, expressions for *all* I,J pairs must be specified\nexplicitly.\n\nOnly pair style *lepton* supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for shifting the potential energy of the pair interaction so that\nit is 0 at the cutoff, pair styles *lepton/coul* and *lepton/sphere* do *not*.\n\nThe [pair_modify table ](https://docs.lammps.org/pair_modify.html) options are not relevant for\nthe these pair styles.\n\nThese pair styles do not support the [pair_modify tail](https://docs.lammps.org/pair_modify.html) option for adding long-range tail corrections to energy\nand pressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "These pair styles are part of the LEPTON package and only enabled if\nLAMMPS was built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nPair style *lepton/coul* requires that atom atoms have a charge\nproperty, e.g. via [atom_style charge ](https://docs.lammps.org/atom_style.html).\n\nPair style *lepton/sphere* requires that atom atoms have a radius\nproperty, e.g. via [atom_style sphere ](https://docs.lammps.org/atom_style.html).\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style python ](https://docs.lammps.org/pair_python.html),\n[pair_style table ](https://docs.lammps.org/pair_table.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" }, { "command": [ - "compute property/chunk" + "fix langevin/eff" ], "syntax": [ - "compute ID group-ID property/chunk chunkID input1 input2 ..." + "fix ID group-ID langevin/eff Tstart Tstop damp seed keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -27294,96 +26241,58 @@ export const command_docs = [ "choices": [] }, { - "arg": "property/chunk", + "arg": "langevin/eff", "type": 1, "choices": [] }, { - "arg": "chunkID", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "input1", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "damp", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command that defines the chunks\n* input1,etc = one or more attributes \n *        attributes = count, id, coord1, coord2, coord3 \n         count = # of atoms in chunk \n         id = original chunk IDs before compression by [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) \n         coord123 = coordinates for spatial bins calculated by [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) \n", - "examples": "\n```lmps\ncompute 1 all property/chunk bin2d id count\ncompute 1 all property/chunk myChunks id coord1\n```\n", - "html_filename": "compute_property_chunk.html", - "short_description": "Define a computation that stores the specified attributes of chunks of\natoms", - "description": "Define a computation that stores the specified attributes of chunks of\natoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages\nfor details of how chunks can be defined and examples of how they can\nbe used to measure properties of a system.\n\nThis compute calculates and stores the specified attributes of chunks\nas global data so they can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html) and used in conjunction with other commands that\ngenerate per-chunk data, such as [compute com/chunk](https://docs.lammps.org/compute_com_chunk.html) or [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html).\n\nNote that only atoms in the specified group contribute to the\ncalculation of the *count* attribute. The [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command defines its own group; atoms will have a\nchunk ID = 0 if they are not in that group, signifying they are not\nassigned to a chunk, and will thus also not contribute to this\ncalculation. You can specify the \"all\" group for this command if you\nsimply want to include atoms with non-zero chunk IDs.\n\nThe *count* attribute is the number of atoms in the chunk.\n\nThe *id* attribute stores the original chunk ID for each chunk. It\ncan only be used if the *compress* keyword was set to *yes* for the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command referenced by\nchunkID. This means that the original chunk IDs (e.g., molecule IDs)\nwill have been compressed to remove chunk IDs with no atoms assigned\nto them. Thus a compressed chunk ID of 3 may correspond to an\noriginal chunk ID (molecule ID in this case) of 415. The *id*\nattribute will then be 415 for the third chunk.\n\nThe *coordN* attributes can only be used if a *binning* style was used\n\nin the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\nreferenced by chunkID. For *bin/1d*, *bin/2d*, and *bin/3d* styles\nthe attribute is the center point of the bin in the corresponding\ndimension. Style *bin/1d* only defines a *coord1* attribute. Style\n*bin/2d* adds a *coord2* attribute. Style *bin/3d* adds a *coord3*\nattribute.\n\nNote that if the value of the *units* keyword used in the\n[compute chunk/atom command ](https://docs.lammps.org/compute_chunk_atom.html) is *box* or\n*lattice*, the *coordN* attributes will be in distance [units](https://docs.lammps.org/units.html). If the value of the *units* keyword is *reduced*, the\n*coordN* attributes will be in unitless reduced units (0-1).\n\nThe simplest way to output the results of the compute property/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk1 all property/chunk cc1 count\ncompute myChunk2 all com/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk1 c_myChunk2[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global vector or global array depending on\nthe number of input values. The length of the vector or number of\nrows in the array is the number of chunks.\n\nThis compute calculates a global vector or global array where the\nnumber of rows = the number of chunks *Nchunk* as calculated by the\nspecified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. If a\nsingle input is specified, a global vector is produced. If two or\nmore inputs are specified, a global array is produced where the number\nof columns = the number of inputs. The vector or array can be\naccessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe vector or array values are \"intensive\". The values will be\nunitless or in the units discussed above.\n", - "restrictions": " none\n", - "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n" -}, -{ - "command": [ - "compute force/tally", - "compute heat/flux/tally", - "compute heat/flux/virial/tally", - "compute pe/tally", - "compute pe/mol/tally" - ], - "syntax": [ - "compute ID group-ID style group2-ID" - ], - "args": [ - [ - { - "arg": "compute", - "type": 1, - "choices": [] }, { - "arg": "ID", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "stress/tally", - "type": 3, - "choices": [ - "force/tally", - "heat/flux/tally", - "heat/flux/virial/tally", - "pe/tally", - "pe/mol/tally", - "stress/tally" - ] - }, - { - "arg": "group2-ID", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = force/tally or heat/flux/tally or heat/flux/virial/tally or pe/tally or pe/mol/tally or stress/tally\n* group2-ID = group ID of second (or same) group \n", - "examples": "\n```lmps\ncompute 1 lower force/tally upper\ncompute 1 left pe/tally right\ncompute 1 lower stress/tally lower\ncompute 1 subregion heat/flux/tally all\ncompute 1 liquid heat/flux/virial/tally solid\n```\n", - "html_filename": "compute_tally.html", - "short_description": "Define a computation that calculates properties between two groups of\natoms by accumulating them from pairwise non-bonded computations", - "description": "Define a computation that calculates properties between two groups of\natoms by accumulating them from pairwise non-bonded computations.\nExcept for *heat/flux/virial/tally*, the two groups can be the same.\nThis is similar to [compute group/group ](https://docs.lammps.org/compute_group_group.html)\nonly that the data is\naccumulated directly during the non-bonded force computation. The\ncomputes *force/tally*, *pe/tally*, *stress/tally*, and\n*heat/flux/tally* are primarily provided as example how to program\nadditional, more sophisticated computes using the tally callback\nmechanism. Compute *pe/mol/tally* is one such style, that can---through using\nthis mechanism---separately tally intermolecular\nand intramolecular energies. Something that would otherwise be\nimpossible without integrating this as a core functionality into\nthe base classes of LAMMPS.\n\n----------\n\nCompute *heat/flux/tally* obtains the heat flux\n(strictly speaking, heat flow) inside the first group,\nwhich is the sum of the convective contribution\ndue to atoms in the first group and the virial contribution\ndue to interaction between the first and second groups:\n\\[\n \\mathbf{Q}= \\sum_{i \\in \\text{group 1}} e_i \\mathbf{v}_i + \\frac{1}{2} \\sum_{i \\in \\text{group 1}} \\sum_{\\substack{j \\in \\text{group 2} \\\\ j \\neq i } } \\left( \\mathbf{F}_{ij} \\cdot \\mathbf{v}_j \\right) \\mathbf{r}_{ij}\\]\nWhen the second group in *heat/flux/tally* is set to \"all\",\nthe resulting values will be identical\nto that obtained by [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html),\nprovided only pairwise interactions exist.\n\nCompute *heat/flux/virial/tally* obtains the total virial heat flux\n(strictly speaking, heat flow) into the first group due to interaction\nwith the second group, and is defined as:\n\\[\n Q = \\frac{1}{2} \\sum_{i \\in \\text{group 1}} \\sum_{j \\in \\text{group 2}} \\mathbf{F}_{ij} \\cdot \\left(\\mathbf{v}_i + \\mathbf{v}_j \\right)\\]\nAlthough, the *heat/flux/virial/tally* compute\ndoes not include the convective term,\nit can be used to obtain the total heat flux over control surfaces,\nwhen there are no particles crossing over,\nsuch as is often in solid--solid and solid--liquid interfaces.\nThis would be identical to the method of planes method.\nNote that the *heat/flux/virial/tally* compute is distinctly different\nfrom the *heat/flux* and *heat/flux/tally* computes,\nthat are essentially volume averaging methods.\nThe following example demonstrates the difference:\n\n```lmps\n# System with only pairwise interactions.\n# Non-periodic boundaries in the x direction.\n# Has LeftLiquid and RightWall groups along x direction.\n\n# Heat flux over the solid-liquid interface\ncompute hflow_hfvt RightWall heat/flux/virial/tally LeftLiquid\nvariable hflux_hfvt equal c_hflow_hfvt/(ly*lz)\n\n# x component of approximate heat flux vector inside the liquid region,\n# two approaches.\n#\ncompute myKE all ke/atom\ncompute myPE all pe/atom\ncompute myStress all stress/atom NULL virial\ncompute hflow_hf LeftLiquid heat/flux myKE myPE myStress\nvariable hflux_hf equal c_hflow_hf[1]/${volLiq}\n#\ncompute hflow_hft LeftLiquid heat/flux/tally all\nvariable hflux_hft equal c_hflow_hft[1]/${volLiq}\n\n# Pressure over the solid-liquid interface, three approaches.\n#\ncompute force_gg RightWall group/group LeftLiquid\nvariable press_gg equal c_force_gg[1]/(ly*lz)\n#\ncompute force_ft RightWall force/tally LeftLiquid\ncompute rforce_ft RightWall reduce sum c_force_ft[1]\nvariable press_ft equal c_rforce_ft/(ly*lz)\n#\ncompute rforce_hfvt all reduce sum c_hflow_hfvt[1]\nvariable press_hfvt equal c_rforce_hfvt/(ly*lz)\n```\n----------\n\nThe pairwise contributions are computing via a callback that the\ncompute registers with the non-bonded pairwise force computation.\nThis limits the use to systems that have no bonds, no Kspace, and no\nmany-body interactions. On the other hand, the computation does not\nhave to compute forces or energies a second time and thus can be much\nmore efficient. The callback mechanism allows to write more complex\npairwise property computations.\n\n----------\n\n #### Output info\n\n- Compute *pe/tally* calculates a global scalar (the energy) and a per\n atom scalar (the contributions of the single atom to the global\n scalar).\n\n- Compute *pe/mol/tally* calculates a global four-element vector containing\n (in this order): *evdwl* and *ecoul* for intramolecular pairs and\n *evdwl* and *ecoul* for intermolecular pairs. Since molecules are\n identified by their molecule IDs, the partitioning does not have to be\n related to molecules, but the energies are tallied into the respective\n slots depending on whether the molecule IDs of a pair are the same or\n different.\n\n- Compute *force/tally* calculates a global scalar (the force magnitude)\n and a per atom 3-element vector (force contribution from each atom).\n\n- Compute *stress/tally* calculates a global scalar\n (average of the diagonal elements of the stress tensor) and a per atom\n vector (the six elements of stress tensor contributions from the\n individual atom).\n\n- As in [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html),\n compute *heat/flux/tally* calculates a global vector of length 6,\n where the first three components are the \\(x\\), \\(y\\), \\(z\\)\n components of the full heat flow vector,\n and the next three components are the corresponding components\n of just the convective portion of the flow (i.e., the\n first term in the equation for \\(\\mathbf{Q}\\)).\n\n- Compute *heat/flux/virial/tally* calculates a global scalar (heat flow)\n and a per atom three-element vector\n (contribution to the force acting over atoms in the first group\n from individual atoms in both groups).\n\nBoth the scalar and vector values calculated by this compute are\n\"extensive\".\n", - "restrictions": "This compute is part of the TALLY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNot all pair styles can be evaluated in a pairwise mode as required by\nthis compute. For example, 3-body and other many-body potentials, such\nas [Tersoff ](https://docs.lammps.org/pair_tersoff.html) and [Stillinger-Weber ](https://docs.lammps.org/pair_sw.html)\ncannot be used. [EAM ](https://docs.lammps.org/pair_eam.html) potentials only include the pair\npotential portion of the EAM interaction when used by this compute, not\nthe embedding term. Also bonded or Kspace interactions do not\ncontribute to this compute.\n\nThese computes are not compatible with accelerated pair styles from the\nGPU, INTEL, KOKKOS, or OPENMP packages. They will either create an error\nor print a warning when required data was not tallied in the required way\nand thus the data acquisition functions from these computes not called.\n\nWhen used with dynamic groups, a [run 0 ](https://docs.lammps.org/run.html) command needs to\nbe inserted in order to initialize the dynamic groups before accessing\nthe computes.\n", - "related": "* [compute group/group ](https://docs.lammps.org/compute_group_group.html)\n* [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/eff = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale or tally or zero \n       scale values = type ratio \n       type = atom type (1-N) \n       ratio = factor by which to scale the damping coefficient \n       tally values = no or yes \n       no = do not tally the energy added/subtracted to atoms \n       yes = do tally the energy added/subtracted to atoms \n       zero value = no or yes \n       no = do not set total random force to zero \n       yes = set total random force to zero \n", + "examples": "\n```lmps\nfix 3 boundary langevin/eff 1.0 1.0 10.0 699483\nfix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5\n```\n", + "html_filename": "fix_langevin_eff.html", + "short_description": "Apply a Langevin thermostat as described in **Schneider2**\nto a group of nuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html) model", + "description": "Apply a Langevin thermostat as described in **Schneider2**\nto a group of nuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html) model. Used with [fix nve/eff ](https://docs.lammps.org/fix_nve_eff.html),\nthis command performs Brownian dynamics (BD), since the total force on\neach atom will have the form:\n\\[\\begin{align*} \n F = & F_c + F_f + F_r \\\\\n F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\\n F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\n\\(F_c\\) is the conservative force computed via the usual\ninter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html)).\nThe \\(F_f\\) and \\(F_r\\) terms are added by this fix on a\nper-particle basis.\n\nThe operation of this fix is exactly like that described by the\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) command, except that the\nthermostatting is also applied to the radial electron velocity for\nelectron particles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix, where the simulation continues on the same as if no restart\nhad taken place. However, in a statistical sense, a restarted\nsimulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*, but only if the *tally* keyword to set to\n*yes* . See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\nNote that calculation of this quantity also requires setting the\n*tally* keyword to *yes* .\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schneider2)** Schneider and Stoll, Phys Rev B, 17, 1302 (1978). \n ", + "restrictions": " none\n\nThis fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html)\n" }, { "command": [ - "pair_style tri/lj" + "pair_style resquared", + "pair_style resquared/gpu", + "pair_style resquared/omp" ], "syntax": [ - "pair_style tri/lj cutoff" + "pair_style resquared cutoff" ], "args": [ [ @@ -27393,9 +26302,13 @@ export const command_docs = [ "choices": [] }, { - "arg": "tri/lj", - "type": 1, - "choices": [] + "arg": "resquared", + "type": 3, + "choices": [ + "resquared", + "resquared/gpu", + "resquared/omp" + ] }, { "arg": "cutoff", @@ -27404,69 +26317,69 @@ export const command_docs = [ } ] ], - "parameters": "cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style tri/lj 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\n```\n", - "html_filename": "pair_tri_lj.html", - "short_description": "Style *tri/lj* treats particles which are triangles as a set of small\nspherical particles that tile the triangle surface as explained below", - "description": "Style *tri/lj* treats particles which are triangles as a set of small\nspherical particles that tile the triangle surface as explained below.\nInteractions between two triangles, each with N1 and N2 spherical\nparticles, are calculated as the pairwise sum of N1\\*N2 Lennard-Jones\ninteractions. Interactions between a triangle with N spherical\nparticles and a point particle are treated as the pairwise sum of N\nLennard-Jones interactions. See the [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\ndoc page for the definition of Lennard-Jones interactions.\n\nThe cutoff distance for an interaction between 2 triangles, or between\na triangle and a point particle, is calculated from the position of\nthe triangle (its centroid), not between pairs of individual spheres\ncomprising the triangle. Thus an interaction is either calculated in\nits entirety or not at all.\n\nThe set of non-overlapping spherical particles that represent a\ntriangle, for purposes of this pair style, are generated in the\nfollowing manner. Assume the triangle is of type I, and sigma_II has\nbeen specified. We want a set of spheres with centers in the plane of\nthe triangle, none of them larger in diameter than sigma_II, which\ncompletely cover the triangle's area, but with minimal overlap and a\nminimal total number of spheres. This is done in a recursive manner.\nPlace a sphere at the centroid of the original triangle. Calculate\nwhat diameter it must have to just cover all 3 corner points of the\ntriangle. If that diameter is equal to or smaller than sigma_II, then\ninclude a sphere of the calculated diameter in the set of covering\nspheres. It the diameter is larger than sigma_II, then split the\ntriangle into 2 triangles by bisecting its longest side. Repeat the\nprocess on each sub-triangle, recursing as far as needed to generate a\nset of covering spheres. When finished, the original criteria are\nmet, and the set of covering spheres should be near minimal in number\nand overlap, at least for input triangles with a reasonable\naspect-ratio.\n\nThe LJ interaction between 2 spheres on different triangles of types\nI,J is computed with an arithmetic mixing of the sigma values of the 2\nspheres and using the specified epsilon value for I,J atom types.\nNote that because the sigma values for triangles spheres is computed\nusing only sigma_II values, specific to the triangles's type, this\nmeans that any specified sigma_IJ values (for I != J) are effectively\nignored.\n\nFor style *tri/lj*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* epsilon (energy units)\n* sigma (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of this pair style can be mixed. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This style is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be triangles so they participate in tri/tri or\ntri/particle interactions requires the use the [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style line/lj ](https://docs.lammps.org/pair_line_lj.html)\n" + "parameters": "* cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style resquared 10.0\npair_coeff * * 1.0 1.0 1.7 3.4 3.4 1.0 1.0 1.0\n```\n", + "html_filename": "pair_resquared.html", + "short_description": "Style *resquared* computes the RE-squared anisotropic interaction\n:ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`, **Babadi** between pairs ofellipsoidal and/or spherical Lennard-Jones particles", + "description": "Style *resquared* computes the RE-squared anisotropic interaction\n:ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`, **Babadi** between pairs ofellipsoidal and/or spherical Lennard-Jones particles. For ellipsoidalinteractions, the potential considers the ellipsoid as being comprisedof small spheres of size \\(\\sigma\\). LJ particles are a single sphere ofsize \\(\\sigma\\). The distinction is made to allow the pair style to makeefficient calculations of ellipsoid/solvent interactions.Details for the equations used are given in the references below andin `this supplementary document 0.0, then the particle is treated as an\nellipsoid (even if the 3 parameters are equal to each other).\n\nA12 specifies the energy prefactor which depends on the types of the\ntwo interacting particles.\n\nFor ellipsoid/ellipsoid interactions, the interaction is computed by\nthe formulas in the supplementary document referenced above. A12 is\nthe Hamaker constant as described in :ref:[(Everaers) ](https://docs.lammps.org/Everaers3>`. In LJunits:\\[ A_{12} = 4\\pi^2\\epsilon_{\\mathrm{LJ}}(\\rho\\sigma^3)^2\\]where \\(\\rho\\) gives the number density of the spherical particlescomposing the ellipsoids and \\(\\epsilon_{\\mathrm{LJ}}\\) determinesthe interaction strength of the spherical particles.For ellipsoid/LJ sphere interactions, the interaction is also computedby the formulas in the supplementary document referenced above. A12has a modified form (see `here output volume_integral " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "output", + "type": 1, "choices": [] }, { - "arg": "numdiff", + "arg": "volume_integral", "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "", "type": 2, "choices": [] }, { - "arg": "delta", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* numdiff = style name of this fix command\n* Nevery = calculate force by finite difference every this many timesteps\n* delta = size of atom displacements (distance units) \n", - "examples": "\n```lmps\nfix 1 all numdiff 10 1e-6\nfix 1 movegroup numdiff 100 0.01\n```\n", - "html_filename": "fix_numdiff.html", - "short_description": "Calculate forces through finite difference calculations of energy\nversus position", - "description": "Calculate forces through finite difference calculations of energy\nversus position. These forces can be compared to analytic forces\ncomputed by pair styles, bond styles, etc. This can be useful for\ndebugging or other purposes.\n\nThe group specified with the command means only atoms within the group\nhave their averages computed. Results are set to 0.0 for atoms not in\nthe group.\n\nThis fix performs a loop over all atoms in the group. For each atom\nand each component of force it adds *delta* to the position, and\ncomputes the new energy of the entire system. It then subtracts\n*delta* from the original position and again computes the new energy\nof the system. It then restores the original position. That\ncomponent of force is calculated as the difference in energy divided\nby two times *delta*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > atom displacements that are used to generate finite difference\n > approximations to the exact forces. For typical systems, a value in\n > the range of 1 part in 1e4 to 1e5 of the typical separation distance\n > between atoms in the liquid or solid state will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output forces will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output forces will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical force values should be largely\n > independent of delta. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cost of each energy evaluation is essentially the cost of an MD\n > timestep. Thus invoking this fix once for a 3d system has a cost\n > of 6N timesteps, where N is the total number of atoms in the system.\n > So this fix can be very expensive to use for large systems.\n > One expedient alternative is to define the fix for a group containing\n > only a few atoms. \n > \n\n----------\n\nThe *Nevery* argument specifies on what timesteps the force will\nbe used calculated by finite difference.\n\nThe *delta* argument specifies the size of the displacement each\natom will undergo.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html), which stores the components of\nthe force on each atom as calculated by finite difference. The\nper-atom values can only be accessed on timesteps that are multiples\nof *Nevery* since that is when the finite difference forces are\ncalculated. See the examples in *examples/numdiff* directory\nto see how this fix can be used to directly compare with\nthe analytic forces computed by LAMMPS.\n\nThe array values calculated by this compute\nwill be in force [units ](https://docs.lammps.org/units.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html), [fix numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html),\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output volume_integral = name of the AtC sub-command\n* elementset_name= name of elementset to be integrated over\n* fieldname = name of field to integrate \n", + "examples": "\n```lmps\nfix_modify AtC output volume_integral eset1 mass_density\n```\n", + "html_filename": "atc_output_volume_integral.html", + "short_description": "Performs volume integration of specified field over elementset and\noutputs resulting variable values to GLOBALS file", + "description": "Performs volume integration of specified field over elementset and\noutputs resulting variable values to GLOBALS file.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" }, { "command": [ - "fix_modify AtC time_integration" + "fix_modify AtC write_atom_weights" ], "syntax": [ - "fix_modify time_integration " + "fix_modify write_atom_weights " ], "args": [ [ @@ -27481,35 +26394,39 @@ export const command_docs = [ "choices": [] }, { - "arg": "time_integration", + "arg": "write_atom_weights", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "gear", - "fractional_step", - "verlet" - ] + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* time_integration = name of the AtC sub-command\n* descriptor = gear or fractional_step or verlet \n", - "examples": "\n```lmps\nfix_modify AtC time_integration fractional_step\n```\n", - "html_filename": "atc_time_integration.html", - "short_description": "Command to select the thermal or momentum time integration", - "description": "Command to select the thermal or momentum time integration.\n\n---------\n\nOptions for thermal time integration:\n\n*gear*\n atomic velocity update with second order Verlet, nodal temperature update\n with third or fourth order Gear, thermostats based on controlling power\n\n*fractional_step*\n atomic velocity update with second order Verlet, mixed nodal temperature\n update, 3/4 Gear for continuum and 2 Verlet for atomic contributions,\n thermostats based on controlling discrete energy changes\n\n---------\n\nOptions for momentum time integration:\n\n*verlet*\n atomic velocity update with second order Verlet, nodal temperature update\n with second order Verlet, kinetostats based on controlling force\n\n*fractional_step*\n atomic velocity update with second order Verlet, mixed nodal momentum\n update, second order Verlet for continuum and exact second order Verlet for\n atomic contributions, kinetostats based on controlling discrete\n momentum changes\n\n*gear*\n atomic velocity update with second order Verlet, nodal temperature update\n with third or fourth order Gear, kinetostats based on controlling power.\n\n---------\n", + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* write_atom_weights = name of the AtC sub-command\n* filename = name of file that atomic weights are written to\n* frequency = how often writes will occur \n", + "examples": "\n```lmps\nfix_modify AtC write_atom_weights atm_wt_file.txt 10\n```\n", + "html_filename": "atc_write_atom_weights.html", + "short_description": "Command for writing the values of atomic weights to a specified file", + "description": "Command for writing the values of atomic weights to a specified file.\n", "restrictions": "None.\n", "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix gcmc" + "fix qeq/point", + "fix qeq/shielded", + "fix qeq/slater", + "fix qeq/dynamic" ], "syntax": [ - "fix ID group-ID gcmc N X M type seed T mu displace keyword values ..." + "fix ID group-ID style Nevery cutoff tolerance maxiter qfile keyword ..." ], "args": [ [ @@ -27529,111 +26446,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "gcmc", - "type": 1, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "X", - "type": 2, - "choices": [] - }, - { - "arg": "M", - "type": 2, - "choices": [] - }, - { - "arg": "type", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] + "arg": "qeq/fire", + "type": 3, + "choices": [ + "qeq/point", + "qeq/shielded", + "qeq/slater", + "qeq/dynamic", + "qeq/fire" + ] }, { - "arg": "T", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "mu", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "displace", + "arg": "tolerance", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "maxiter", "type": 2, "choices": [] }, { - "arg": "values", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gcmc = style name of this fix command\n* N = invoke this fix every N steps\n* X = average number of GCMC exchanges to attempt every N steps\n* M = average number of MC moves to attempt every N steps\n* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used)\n* seed = random # seed (positive integer)\n* T = temperature of the ideal gas reservoir (temperature units)\n* mu = chemical potential of the ideal gas reservoir (energy units)\n* displace = maximum Monte Carlo translation distance (length units)\n* zero or more keyword/value pairs may be appended to args \n *      keyword = mol, region, maxangle, pressure, fugacity_coeff, full_energy, charge, group, grouptype, intra_energy, tfac_insert, or overlap_cutoff \n       mol value = template-ID \n       template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n       mcmoves values = Patomtrans Pmoltrans Pmolrotate \n       Patomtrans = proportion of atom translation MC moves \n       Pmoltrans = proportion of molecule translation MC moves \n       Pmolrotate = proportion of molecule rotation MC moves \n       rigid value = fix-ID \n       fix-ID = ID of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n       shake value = fix-ID \n       fix-ID = ID of [fix shake ](https://docs.lammps.org/fix_shake.html) command \n       region value = region-ID \n       region-ID = ID of region where GCMC exchanges and MC moves are allowed \n       maxangle value = maximum molecular rotation angle (degrees) \n       pressure value = pressure of the gas reservoir (pressure units) \n       fugacity_coeff value = fugacity coefficient of the gas reservoir (unitless) \n       full_energy = compute the entire system energy when performing GCMC exchanges and MC moves \n       charge value = charge of inserted atoms (charge units) \n       group value = group-ID \n       group-ID = group-ID for inserted atoms (string) \n       grouptype values = type group-ID \n       type = atom type (1-Ntypes or type label) \n       group-ID = group-ID for inserted atoms (string) \n       intra_energy value = intramolecular energy (energy units) \n       tfac_insert value = scale up/down temperature of inserted atoms (unitless) \n       overlap_cutoff value = maximum pair distance for overlap rejection (distance units) \n       max value = Maximum number of molecules allowed in the system \n       min value = Minimum number of molecules allowed in the system \n", - "examples": "\n```lmps\nfix 2 gas gcmc 10 1000 1000 2 29494 298.0 -0.5 0.01\nfix 3 water gcmc 10 100 100 0 3456543 3.0 -2.5 0.1 mol my_one_water maxangle 180 full_energy\nfix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk\n\nlabelmap atom 1 Li\nfix 2 ion gcmc 10 1000 1000 Li 29494 298.0 -0.5 0.01\n```\n", - "html_filename": "fix_gcmc.html", - "short_description": "This fix performs grand canonical Monte Carlo (GCMC) exchanges of atoms or\nmolecules with an imaginary ideal gas reservoir at the specified T and\nchemical potential (mu) as discussed in **Frenkel2**", - "description": "This fix performs grand canonical Monte Carlo (GCMC) exchanges of atoms or\nmolecules with an imaginary ideal gas reservoir at the specified T and\nchemical potential (mu) as discussed in **Frenkel2**. It\nalso attempts Monte Carlo (MC) moves (translations and molecule rotations)\nwithin the simulation cell or region. If used with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand, simulations in the grand canonical ensemble (muVT, constant\nchemical potential, constant volume, and constant temperature) can be\nperformed. Specific uses include computing isotherms in microporous\nmaterials, or computing vapor-liquid coexistence curves.\n\nEvery N timesteps the fix attempts both GCMC exchanges (insertions or\ndeletions) and MC moves of gas atoms or molecules. On those timesteps, the\naverage number of attempted GCMC exchanges is X, while the average number\nof attempted MC moves is M. For GCMC exchanges of either molecular or\natomic gasses, these exchanges can be either deletions or insertions, with\nequal probability.\n\nThe possible choices for MC moves are translation of an atom, translation\nof a molecule, and rotation of a molecule. The relative amounts of each are\ndetermined by the optional *mcmoves* keyword (see below). The default\nbehavior is as follows. If the *mol* keyword is used, only molecule\ntranslations and molecule rotations are performed with equal probability.\nConversely, if the *mol* keyword is not used, only atom translations are\nperformed. M should typically be chosen to be approximately equal to the\nexpected number of gas atoms or molecules of the given type within the\nsimulation cell or region, which will result in roughly one MC move per\natom or molecule per MC cycle.\n\nAll inserted particles are always added to two groups: the default group\n\"all\" and the fix group specified in the fix command. In addition,\nparticles are also added to any groups specified by the *group* and\n*grouptype* keywords. If inserted particles are individual atoms, they are\nassigned the atom type given by the type argument. If they are molecules,\nthe type argument has no effect and must be set to zero. Instead, the type\nof each atom in the inserted molecule is specified in the file read by the\n[molecule ](https://docs.lammps.org/molecule.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care should be taken to apply fix gcmc only to\n > a group that contains only those atoms and molecules\n > that you wish to manipulate using Monte Carlo.\n > Hence it is generally not a good idea to specify\n > the default group \"all\" in the fix command, although it is allowed. \n > \n\nThis fix cannot be used to perform GCMC insertions of gas atoms or\nmolecules other than the exchanged type, but GCMC deletions,\nand MC translations, and rotations can be performed on any atom/molecule in\nthe fix group. All atoms in the simulation cell can be moved using\nregular time integration translations, e.g. via [fix nvt ](https://docs.lammps.org/fix_nh.html),\nresulting in a hybrid GCMC+MD simulation. A smaller-than-usual\ntimestep size may be needed when running such a hybrid simulation,\nespecially if the inserted molecules are not well equilibrated.\n\nThis command may optionally use the *region* keyword to define an\nexchange and move volume. The specified region must have been\npreviously defined with a [region ](https://docs.lammps.org/region.html) command. It must be\ndefined with side = *in* . Insertion attempts occur only within the\nspecified region. For non-rectangular regions, random trial points are\ngenerated within the rectangular bounding box until a point is found\nthat lies inside the region. If no valid point is generated after 1000\ntrials, no insertion is performed, but it is counted as an attempted\ninsertion. Move and deletion attempt candidates are selected from gas\natoms or molecules within the region. If there are no candidates, no\nmove or deletion is performed, but it is counted as an attempt move or\ndeletion. If an attempted move places the atom or molecule\ncenter-of-mass outside the specified region, a new attempted move is\ngenerated. This process is repeated until the atom or molecule\ncenter-of-mass is inside the specified region.\n\nIf used with [fix nvt ](https://docs.lammps.org/fix_nh.html), the temperature of the imaginary\nreservoir, T, should be set to be equivalent to the target temperature\nused in fix nvt. Otherwise, the imaginary reservoir will not be in\nthermal equilibrium with the simulation cell. Also, it is important that\nthe temperature used by *fix nvt* is dynamically updated, which can be\nachieved as follows:\n\n```lmps\ncompute mdtemp mdatoms temp\ncompute_modify mdtemp dynamic/dof yes\nfix mdnvt mdatoms nvt temp 300.0 300.0 10.0\nfix_modify mdnvt temp mdtemp\n```\nNote that neighbor lists are re-built every timestep that this fix is\ninvoked, so you should not set N to be too small. However, periodic\nrebuilds are necessary in order to avoid dangerous rebuilds and missed\ninteractions. Specifically, avoid performing so many MC translations\nper timestep that atoms can move beyond the neighbor list skin\ndistance. See the [neighbor ](https://docs.lammps.org/neighbor.html) command for details.\n\nWhen an atom or molecule is to be inserted, its coordinates are chosen\nat a random position within the current simulation cell or region, and\nnew atom velocities are randomly chosen from the specified temperature\ndistribution given by T. The effective temperature for new atom\nvelocities can be increased or decreased using the optional keyword\n*tfac_insert* (see below). Relative coordinates for atoms in a\nmolecule are taken from the template molecule provided by the\nuser. The center of mass of the molecule is placed at the insertion\npoint. The orientation of the molecule is chosen at random by rotating\nabout this point.\n\nIndividual atoms are inserted, unless the *mol* keyword is used. It\nspecifies a *template-ID* previously defined using the\n[molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that defines the\nmolecule. The coordinates, atom types, charges, etc., as well as any\nbonding and special neighbor information for the molecule can\nbe specified in the molecule file. See the [molecule ](https://docs.lammps.org/molecule.html)\ncommand for details. The only settings required to be in this file\nare the coordinates and types of atoms in the molecule.\n\nWhen not using the *mol* keyword, you should ensure you do not delete\natoms that are bonded to other atoms, or LAMMPS will soon generate an\nerror when it tries to find bonded neighbors. LAMMPS will warn you if\nany of the atoms eligible for deletion have a non-zero molecule ID,\nbut does not check for this at the time of deletion.\n\nIf you wish to insert molecules using the *mol* keyword that will be\ntreated as rigid bodies, use the *rigid* keyword, specifying as its\nvalue the ID of a separate [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nwhich also appears in your input script.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish the new rigid molecules (and other rigid molecules) to be\n > thermostatted correctly via [fix rigid/small/nvt ](https://docs.lammps.org/fix_rigid.html) or\n > [fix rigid/small/npt ](https://docs.lammps.org/fix_rigid.html), then you need to use the\n > [fix_modify dynamic/dof yes ](https://docs.lammps.org/fix_modify.html) command for the rigid\n > fix. This is to inform that fix that the molecule count will vary\n > dynamically. \n > \n\nIf you wish to insert molecules via the *mol* keyword, that will have\ntheir bonds or angles constrained via SHAKE, use the *shake* keyword,\nspecifying as its value the ID of a separate [fix shake](https://docs.lammps.org/fix_shake.html) command which also appears in your input script.\n\nOptionally, users may specify the relative amounts of different MC\nmoves using the *mcmoves* keyword. The values *Patomtrans*,\n*Pmoltrans*, *Pmolrotate* specify the average proportion of\natom translations, molecule translations, and molecule rotations,\nrespectively. The values must be non-negative integers or real\nnumbers, with at least one non-zero value. For example, (10,30,0)\nwould result in 25% of the MC moves being atomic translations, 75%\nmolecular translations, and no molecular rotations.\n\nOptionally, users may specify the maximum rotation angle for molecular\nrotations using the *maxangle* keyword and specifying the angle in\ndegrees. Rotations are performed by generating a random point on the\nunit sphere and a random rotation angle on the range\n[0,maxangle). The molecule is then rotated by that angle about an\naxis passing through the molecule center of mass. The axis is parallel\nto the unit vector defined by the point on the unit sphere. The same\nprocedure is used for randomly rotating molecules when they are\ninserted, except that the maximum angle is 360 degrees.\n\nNote that fix gcmc does not use configurational bias MC or any other\nkind of sampling of intramolecular degrees of freedom. Inserted\nmolecules can have different orientations, but they will all have the\nsame intramolecular configuration, which was specified in the molecule\ncommand input.\n\nFor atomic gasses, inserted atoms have the specified atom type, but\ndeleted atoms are any atoms that have been inserted or that already\nbelong to the fix group. For molecular gasses, exchanged\nmolecules use the same atom types as in the template molecule supplied\nby the user. In both cases, exchanged atoms/molecules are assigned to\ntwo groups: the default group \"all\" and the fix group\n(which can also be \"all\").\n\nThe chemical potential is a user-specified input parameter defined\nas:\n\\[\n \\mu = \\mu^{id} + \\mu^{ex}\\]\nThe second term mu_ex is the excess chemical potential due to\nenergetic interactions and is formally zero for the fictitious gas\nreservoir but is non-zero for interacting systems. So, while the\nchemical potential of the reservoir and the simulation cell are equal,\nmu_ex is not, and as a result, the densities of the two are generally\nquite different. The first term mu_id is the ideal gas contribution\nto the chemical potential. mu_id can be related to the density or\npressure of the fictitious gas reservoir by:\n\\[\\begin{align*} \n \\mu^{id} = & k T \\ln{\\rho \\Lambda^3} \\\\\n = & k T \\ln{\\frac{\\phi P \\Lambda^3}{k_B T}} \\end{align*} \\]\nwhere \\(k_B\\) is the Boltzmann constant, \\(T\\) is the user-specified\ntemperature, \\(\\rho\\) is the number density, *P* is the pressure,\nand \\(\\phi\\) is the fugacity coefficient. The constant\n\\(\\Lambda\\) is required for dimensional consistency. For all unit\nstyles except *lj* it is defined as the thermal de Broglie wavelength\n\\[\n \\Lambda = \\sqrt{ \\frac{h^2}{2 \\pi m k_B T}}\\]\nwhere *h* is Planck's constant, and *m* is the mass of the exchanged atom\nor molecule. For unit style *lj*, \\(\\Lambda\\) is simply set to\nunity. Note that prior to March 2017, \\(\\Lambda\\) for unit style *lj*\nwas calculated using the above formula with *h* set to the rather specific\nvalue of 0.18292026. Chemical potential under the old definition can\nbe converted to an equivalent value under the new definition by\nsubtracting \\(3 k T \\ln(\\Lambda_{old})\\).\n\nAs an alternative to specifying mu directly, the ideal gas reservoir\ncan be defined by its pressure *P* using the *pressure* keyword, in\nwhich case the user-specified chemical potential is ignored. The user\nmay also specify the fugacity coefficient \\(\\phi\\) using the\n*fugacity_coeff* keyword, which defaults to unity.\n\nThe *full_energy* option means that the fix calculates the total\npotential energy of the entire simulated system, instead of just\nthe energy of the part that is changed. The total system\nenergy before and after the proposed GCMC exchange or MC move\nis then used in the\nMetropolis criterion to determine whether or not to accept the\nproposed change. By default, this option is off,\nin which case only\npartial energies are computed to determine the energy difference\ndue to the proposed change.\n\nThe *full_energy* option is needed for systems with complicated\npotential energy calculations, including the following:\n\n* long-range electrostatics (kspace)\n* many-body pair styles\n* hybrid pair styles\n* eam pair styles\n* tail corrections\n* need to include potential energy contributions from other fixes\n\nIn these cases, LAMMPS will automatically apply the *full_energy*\nkeyword and issue a warning message.\n\nWhen the *mol* keyword is used, the *full_energy* option also includes\nthe intramolecular energy of inserted and deleted molecules, whereas\nthis energy is not included when *full_energy* is not used. If this\nis not desired, the *intra_energy* keyword can be used to define an\namount of energy that is subtracted from the final energy when a\nmolecule is inserted, and subtracted from the initial energy when a molecule\nis deleted. For molecules that have a non-zero intramolecular energy,\nthis will ensure roughly the same behavior whether or not the\n*full_energy* option is used.\n\nInserted atoms and molecules are assigned random velocities based on\nthe specified temperature \\(T\\). Because the relative velocity of all\natoms in the molecule is zero, this may result in inserted molecules\nthat are systematically too cold. In addition, the intramolecular\npotential energy of the inserted molecule may cause the kinetic energy\nof the molecule to quickly increase or decrease after insertion. The\n*tfac_insert* keyword allows the user to counteract these effects by\nchanging the temperature used to assign velocities to inserted atoms\nand molecules by a constant factor. For a particular application, some\nexperimentation may be required to find a value of *tfac_insert* that\nresults in inserted molecules that equilibrate quickly to the correct\ntemperature.\n\nSome fixes have an associated potential energy. Examples of such fixes\ninclude: [efield ](https://docs.lammps.org/fix_efield.html), [gravity ](https://docs.lammps.org/fix_gravity.html),\n[addforce ](https://docs.lammps.org/fix_addforce.html), [langevin ](https://docs.lammps.org/fix_langevin.html),\n[restrain ](https://docs.lammps.org/fix_restrain.html), [temp/berendsen](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), and\n[wall fixes ](https://docs.lammps.org/fix_wall.html). For that energy to be included in the\ntotal potential energy of the system (the quantity used when performing\nGCMC exchange and MC moves), you MUST enable the [fix_modify](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The doc pages for\nindividual [fix ](https://docs.lammps.org/fix.html) commands specify if this should be done.\n\nUse the *charge* option to insert atoms with a user-specified point\ncharge. Note that doing so will cause the system to become non-neutral.\nLAMMPS issues a warning when using long-range electrostatics (kspace)\nwith non-neutral systems. See the [compute group/group](https://docs.lammps.org/compute_group_group.html) documentation for more details about simulating\nnon-neutral systems with kspace on.\n\nUse of this fix typically will cause the number of atoms to fluctuate,\ntherefore, you will want to use the [compute_modify dynamic/dof](https://docs.lammps.org/compute_modify.html) command to ensure that the current number of atoms is\nused as a normalizing factor each time temperature is computed. A simple\nexample of this is:\n\n```lmps\ncompute_modify thermo_temp dynamic/dof yes\n```\nA more complicated example is listed earlier on this page\nin the context of NVT dynamics.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the density of the cell is initially very small or zero, and\n > increases to a much larger density after a period of equilibration,\n > then certain quantities that are only calculated once at the start\n > (kspace parameters) may no longer be accurate. The solution is to\n > start a new simulation after the equilibrium density has been\n > reached. \n > \n\nWith some pair_styles, such as [Buckingham ](https://docs.lammps.org/pair_buck.html),\n[Born-Mayer-Huggins ](https://docs.lammps.org/pair_born.html) and [ReaxFF ](https://docs.lammps.org/pair_reaxff.html),\ntwo atoms placed close to each other may have an arbitrary large,\nnegative potential energy due to the functional form of the potential.\nWhile these unphysical configurations are inaccessible to typical\ndynamical trajectories, they can be generated by Monte Carlo moves. The\n*overlap_cutoff* keyword suppresses these moves by effectively assigning\nan infinite positive energy to all new configurations that place any\npair of atoms closer than the specified overlap cutoff distance.\n\nThe *max* and *min* keywords allow for the restriction of the number of\natoms in the simulation. They automatically reject all insertion or\ndeletion moves that would take the system beyond the set boundaries.\nShould the system already be beyond the boundary, only moves that bring\nthe system closer to the bounds may be accepted.\n\nThe *group* keyword adds all inserted atoms to the [group ](https://docs.lammps.org/group.html)\nof the group-ID value. The *grouptype* keyword adds all inserted atoms\nof the specified type to the [group ](https://docs.lammps.org/group.html) of the group-ID value.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for MC exchanges, the number of MC\nstep attempts and successes etc. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix.\n\nThis fix computes a global vector of length 8, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n #. translation attempts\n #. translation successes\n #. insertion attempts\n #. insertion successes\n #. deletion attempts\n #. deletion successes\n #. rotation attempts\n #. rotation successes\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Frenkel2)** Frenkel and Smit, Understanding Molecular Simulation,\nAcademic Press, London, 2002. \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is **required**.\n\nOnly usable for 3D simulations.\n\nThis fix can be run in parallel, but aspects of the GCMC part will not\nscale well in parallel. Currently, molecule translations and rotations\nare not supported with more than one MPI process. It is still possible\nto do parallel molecule exchange without translation and rotation moves\nby setting MC moves to zero and/or by using the *mcmoves* keyword with\n*Pmoltrans* = *Pmolrotate* = 0 .\n\n\nWhen using fix gcmc in combination with fix shake or fix rigid, only\nGCMC exchange moves are supported, so the argument *M* must be zero.\n\nWhen using fix gcmc in combination with fix rigid, deletion of the last\nremaining molecule is not allowed for technical reasons, and so the\nmolecule count will never drop below 1, regardless of the specified\nchemical potential.\n\nNote that very lengthy simulations involving insertions/deletions of\nbillions of gas molecules may run out of atom or molecule IDs and\ntrigger an error, so it is better to run multiple shorter-duration\nsimulations. Likewise, very large molecules have not been tested and\nmay turn out to be problematic.\n\nUse of multiple fix gcmc commands in the same input script can be\nproblematic if using a template molecule. The issue is that the\nuser-referenced template molecule in the second fix gcmc command may\nno longer exist since it might have been deleted by the first fix gcmc\ncommand. An existing template molecule will need to be referenced by\nthe user for each subsequent fix gcmc command.\n", - "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [neighbor ](https://docs.lammps.org/neighbor.html),\n[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix evaporate ](https://docs.lammps.org/fix_evaporate.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html)\n" -}, -{ - "command": [ - "improper_style cvff", - "improper_style cvff/intel", - "improper_style cvff/omp" - ], - "syntax": [ - "improper_style cvff" - ], - "args": [ - [ - { - "arg": "improper_style", - "type": 1, - "choices": [] + "arg": "reaxff", + "type": 3, + "choices": [ + "coul/streitz", + "reaxff" + ] }, { - "arg": "cvff", + "arg": "warn", "type": 3, "choices": [ - "cvff", - "cvff/intel", - "cvff/omp" + "alpha", + "qdamp", + "qstep", + "warn" ] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style cvff\nimproper_coeff 1 80.0 -1 4\n```\n", - "html_filename": "improper_cvff.html", - "short_description": "The *cvff* improper style uses the potential\n\\[\n E = K [1 + d \\cos (n \\phi) ]\\]\nwhere phi is the improper dihedral angle", - "description": "The *cvff* improper style uses the potential\n\\[\n E = K [1 + d \\cos (n \\phi) ]\\]\nwhere phi is the improper dihedral angle.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\nthe improper dihedral angle is between the plane of I,J,K and the\nplane of J,K,L. Note that because this is effectively a dihedral\nangle, the formula for this improper style is the same as for\n[dihedral_style harmonic ](https://docs.lammps.org/dihedral_harmonic.html).\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(d\\) (+1 or -1)\n* \\(n\\) (0,1,2,3,4,6)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = qeq/point or qeq/shielded or qeq/slater or qeq/dynamic or qeq/fire\n* Nevery = perform charge equilibration every this many steps\n* cutoff = global cutoff for charge-charge interactions (distance unit)\n* tolerance = precision to which charges will be equilibrated\n* maxiter = maximum iterations to perform charge equilibration\n* qfile = a filename with QEq parameters or coul/streitz or reaxff\n* zero or more keyword/value pairs may be appended\n* keyword = alpha or qdamp or qstep or warn \n *        alpha value = Slater type orbital exponent (qeq/slater only) \n *        qdamp value = damping factor for damped dynamics charge solver (qeq/dynamic and qeq/fire only) \n *        qstep value = time step size for damped dynamics charge solver (qeq/dynamic and qeq/fire only) \n *        warn value = do (=yes) or do not (=no) print a warning when the maximum number of iterations is reached \n", + "examples": "\n```lmps\nfix 1 all qeq/point 1 10 1.0e-6 200 param.qeq1\nfix 1 qeq qeq/shielded 1 8 1.0e-6 100 param.qeq2\nfix 1 all qeq/slater 5 10 1.0e-6 100 params alpha 0.2\nfix 1 qeq qeq/dynamic 1 12 1.0e-3 100 my_qeq\nfix 1 all qeq/fire 1 10 1.0e-3 100 my_qeq qdamp 0.2 qstep 0.1\n```\n", + "html_filename": "fix_qeq.html", + "short_description": "Perform the charge equilibration (QEq) method as described in\n**Rappe1** and formulated in **Nakano1** (also known as the matrix inversion method) and in\n**Rick1** (also known as the extended Lagrangian\nmethod) based on the electronegativity equilization principle", + "description": "Perform the charge equilibration (QEq) method as described in\n**Rappe1** and formulated in **Nakano1** (also known as the matrix inversion method) and in\n**Rick1** (also known as the extended Lagrangian\nmethod) based on the electronegativity equilization principle.\n\nThese fixes can be used with any [pair style ](https://docs.lammps.org/pair_style.html) in\nLAMMPS, so long as per-atom charges are defined. The most typical\nuse-case is in conjunction with a [pair style ](https://docs.lammps.org/pair_style.html) that\nperforms charge equilibration periodically (e.g. every timestep), such\nas the ReaxFF or Streitz-Mintmire potential. But these fixes can also\nbe used with potentials that normally assume per-atom charges are fixed,\ne.g. a [Buckingham ](https://docs.lammps.org/pair_buck.html) or [LJ/Coulombic ](https://docs.lammps.org/pair_lj.html)\npotential.\n\nBecause the charge equilibration calculation is effectively independent\nof the pair style, these fixes can also be used to perform a one-time\nassignment of charges to atoms. For example, you could define the QEq\nfix, perform a zero-timestep run via the [run ](https://docs.lammps.org/run.html) command\nwithout any pair style defined which would set per-atom charges (based\non the current atom configuration), then remove the fix via the\n[unfix ](https://docs.lammps.org/unfix.html) command before performing further dynamics.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Computing and using charge values different from published\n > values defined for a fixed-charge potential like Buckingham or CHARMM\n > or AMBER, can have a strong effect on energies and forces, and\n > produces a different model than the published versions. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) command must still be used to\n > perform charge equilibration with the [COMB potential > ](https://docs.lammps.org/pair_comb.html). The [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) command can be\n > used to perform charge equilibration with the [ReaxFF force > field ](https://docs.lammps.org/pair_reaxff.html), although fix qeq/shielded yields the same\n > results as fix qeq/reaxff if *Nevery*, *cutoff*, and *tolerance*\n > are the same. Eventually the fix qeq/reaxff command will be\n > deprecated. \n > \n\nThe QEq method minimizes the electrostatic energy of the system (or\nequalizes the derivative of energy with respect to charge of all the\natoms) by adjusting the partial charge on individual atoms based on\ninteractions with their neighbors within *cutoff* . It requires a few\nparameters in the appropriate units for each atom type which are read\nfrom a file specified by *qfile* . The file has the following format\n\n```\n1 chi eta gamma zeta qcore\n2 chi eta gamma zeta qcore\n...\nNtype chi eta gamma zeta qcore\n```\nThere have to be parameters given for every atom type. Wildcard entries\nare possible using the same type range syntax as for \"coeff\" commands\n(i.e., n\\*m, n\\*, \\*m, \\*). Later entries will overwrite previous ones.\nEmpty lines or any text following the pound sign (#) are ignored.\nEach line starts with the atom type followed by five parameters.\nOnly a subset of the parameters is used by each QEq style as described\nbelow, thus the others can be set to 0.0 if desired, but all five\nentries per line are required.\n\n* *chi* = electronegativity in energy units\n* *eta* = self-Coulomb potential in energy units\n* *gamma* = shielded Coulomb constant defined by **vanDuin** in distance units\n* *zeta* = Slater type orbital exponent defined by the **Streitz1** potential in reverse distance units\n* *qcore* = charge of the nucleus defined by the **Streitz1** potential in charge units\n\nThe fix qeq styles will print a warning if the charges are not\nequilibrated within *tolerance* by *maxiter* steps, unless the\n*warn* keyword is used with \"no\" as argument. This latter option\nmay be useful for testing and benchmarking purposes, as it allows\nto use a fixed number of QEq iterations when *tolerance* is set\nto a small enough value to always reach the *maxiter* limit. Turning\noff warnings will avoid the excessive output in that case.\n\nThe *qeq/point* style describes partial charges on atoms as point\ncharges. Interaction between a pair of charged particles is 1/r,\nwhich is the simplest description of the interaction between charges.\nOnly the *chi* and *eta* parameters from the *qfile* file are used.\nNote that Coulomb catastrophe can occur if repulsion between the pair\nof charged particles is too weak. This style solves partial charges\non atoms via the matrix inversion method. A tolerance of 1.0e-6 is\nusually a good number.\n\nThe *qeq/shielded* style describes partial charges on atoms also as\npoint charges, but uses a shielded Coulomb potential to describe the\ninteraction between a pair of charged particles. Interaction through\nthe shielded Coulomb is given by equation (13) of the :ref:`ReaxFF force\nfield ` paper. The shielding accounts for charge overlap\nbetween charged particles at small separation. This style is the same\nas [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html), and can be used with\n[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html). Only the *chi*, *eta*, and\n*gamma* parameters from the *qfile* file are used. When using the string\n*reaxff* as filename, these parameters are extracted directly from an\nactive *reaxff* pair style. This style solves partial charges on atoms\nvia the matrix inversion method. A tolerance of 1.0e-6 is usually a\ngood number.\n\nThe *qeq/slater* style describes partial charges on atoms as spherical\ncharge densities centered around atoms via the Slater 1\\ *s* orbital, so\nthat the interaction between a pair of charged particles is the product\nof two Slater 1\\ *s* orbitals. The expression for the Slater 1\\ *s*\norbital is given under equation (6) of the **Streitz1** paper. Only the *chi*, *eta*, *zeta*, and *qcore*\nparameters from the *qfile* file are used. When using the string\n*coul/streitz* as filename, these parameters are extracted directly from\nan active *coul/streitz* pair style. This style solves partial charges\non atoms via the matrix inversion method. A tolerance of 1.0e-6 is\nusually a good number. Keyword *alpha* can be used to change the Slater\ntype orbital exponent.\n\nThe *qeq/dynamic* style describes partial charges on atoms as point\ncharges that interact through 1/r, but the extended Lagrangian method is\nused to solve partial charges on atoms. Only the *chi* and *eta*\nparameters from the *qfile* file are used. Note that Coulomb\ncatastrophe can occur if repulsion between the pair of charged particles\nis too weak. A tolerance of 1.0e-3 is usually a good number. Keyword\n*qdamp* can be used to change the damping factor, while keyword *qstep*\ncan be used to change the time step size.\n\nThe **Shan** style describes the same charge model\nand charge solver as the *qeq/dynamic* style, but employs a FIRE\nminimization algorithm to solve for equilibrium charges. Keyword\n*qdamp* can be used to change the damping factor, while keyword *qstep*\ncan be used to change the time step size.\n\nNote that *qeq/point*, *qeq/shielded*, and *qeq/slater* describe\ndifferent charge models, whereas the matrix inversion method and the\nextended Lagrangian method (\\ *qeq/dynamic* and *qeq/fire* ) are\ndifferent solvers.\n\nNote that *qeq/point*, *qeq/dynamic* and *qeq/fire* styles all\ndescribe charges as point charges that interact through 1/r\nrelationship, but solve partial charges on atoms using different\nsolvers. These three styles should yield comparable results if the QEq\nparameters and *Nevery*, *cutoff*, and *tolerance* are the same.\nStyle *qeq/point* is typically faster, *qeq/dynamic* scales better on\nlarger sizes, and *qeq/fire* is faster than *qeq/dynamic* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is\n > non-trivial. Charges on atoms are not guaranteed to equilibrate with\n > arbitrary choices of these parameters. We do not develop these QEq\n > parameters. See the examples/qeq directory for some examples. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about these fixes is written to [binary restartfiles ](https://docs.lammps.org/restart.html). No global scalar or vector or per-atom quantities are\nstored by these fixes for access by various [output commands](https://docs.lammps.org/Howto_output.html). No parameter of these fixes can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\n\nThexe fixes are invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Rappe1)** A. K. Rappe and W. A. Goddard III, J Physical\nChemistry, 95, 3358-3363 (1991). \n \n**(Nakano1)** A. Nakano, Computer Physics Communications, 104, 59-69 (1997). \n \n**(Rick1)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chemical Physics\n101, 16141 (1994). \n \n**(vanDuin)** A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J\nPhysical Chemistry, 105, 9396-9049 (2001) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Streitz1)** F. H. Streitz, J. W. Mintmire, Physical Review B, 50,\n16, 11996 (1994) \n \n**(Shan)** T.-R. Shan, A. P. Thompson, S. J. Plimpton, in preparation \n ", + "restrictions": "These fixes are part of the QEQ package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese qeq fixes will ignore electric field contributions from\n[fix efield ](https://docs.lammps.org/fix_efield.html).\n", + "related": "[fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html), [fix qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html)\n" }, { "command": [ - "compute contact/atom" + "compute pair" ], "syntax": [ - "compute ID group-ID contact/atom group2-ID" + "compute ID group-ID pair pstyle [nstyle] [evalue]" ], "args": [ [ @@ -27653,36 +26529,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "contact/atom", + "arg": "pair", "type": 1, "choices": [] }, { - "arg": "group2-ID", + "arg": "pstyle", + "type": 2, + "choices": [] + }, + { + "arg": "[nstyle]", "type": 2, "choices": [] + }, + { + "arg": "blank", + "type": 3, + "choices": [ + "epair", + "evdwl", + "ecoul", + "blank" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* contact/atom = style name of this compute command\n* group2-ID = optional argument to restrict which atoms to consider for contacts (see below) \n", - "examples": "\n```lmps\ncompute 1 all contact/atom\ncompute 1 all contact/atom mygroup\n```\n", - "html_filename": "compute_contact_atom.html", - "short_description": "Define a computation that calculates the number of contacts\nfor each atom in a group", - "description": "Define a computation that calculates the number of contacts\nfor each atom in a group.\n\nThe contact number is defined for finite-size spherical particles as\nthe number of neighbor atoms which overlap the central particle,\nmeaning that their distance of separation is less than or equal to the\nsum of the radii of the two particles.\n\nThe value of the contact number will be 0.0 for atoms not in the\nspecified compute group.\n\nThe optional *group2-ID* argument allows to specify from which group atoms\ncontribute to the coordination number. Default setting is group 'all'.\n\n #### Output info\n\nThis compute calculates a per-atom vector, whose values can be\naccessed by any command that uses per-atom values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-atom vector values will be a number \\(\\ge 0.0\\), as explained\nabove.\n", - "restrictions": "This compute is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pair = style name of this compute command\n* pstyle = style name of a pair style that calculates additional values\n* nsub = *n* -instance of a sub-style, if a pair style is used multiple times in a hybrid style\n* evalue = epair or evdwl or ecoul or blank (optional) \n", + "examples": "\n```lmps\ncompute 1 all pair gauss\ncompute 1 all pair lj/cut/coul/cut ecoul\ncompute 1 all pair tersoff 2 epair\ncompute 1 all pair reaxff\n```\n", + "html_filename": "compute_pair.html", + "short_description": "Define a computation that extracts additional values calculated by a\npair style, and makes them accessible for output or further processing\nby other commands", + "description": "Define a computation that extracts additional values calculated by a\npair style, and makes them accessible for output or further processing\nby other commands.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The group specified for this command is **ignored** . \n > \n\nThe specified *pstyle* must be a pair style used in your simulation\neither by itself or as a sub-style in a [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. If the sub-style is\nused more than once, an additional number *nsub* has to be specified\nin order to choose which instance of the sub-style will be used by\nthe compute. Not specifying the number in this case will cause the\ncompute to fail.\n\nThe *evalue* setting is optional. All\npair styles tally a potential energy *epair* which may be broken into\ntwo parts: *evdwl* and *ecoul* such that *epair* = *evdwl* + *ecoul* .\nIf the pair style calculates Coulombic interactions, their energy will\nbe tallied in *ecoul* . Everything else (whether it is a Lennard-Jones\nstyle van der Waals interaction or not) is tallied in *evdwl* . If\n*evalue* is blank or specified as *epair*, then *epair* is stored\nas a global scalar by this compute. This is useful when using\n[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) if you want to know the portion\nof the total energy contributed by one sub-style. If *evalue* is\nspecified as *evdwl* or *ecoul*, then just that portion of the energy\nis stored as a global scalar.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The energy returned by the *evdwl* keyword does not include tail\n > corrections, even if they are enabled via the\n > [pair_modify ](https://docs.lammps.org/pair_modify.html) command. \n > \n\nSome pair styles tally additional quantities, e.g. a breakdown of\npotential energy into 14 components is tallied by the\n[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command. These values (1 or more)\nare stored as a global vector by this compute. See the page for\n[individual pair styles ](https://docs.lammps.org/pair_style.html) for info on these values.\n\n #### Output info\n\nThis compute calculates a global scalar which is *epair* or *evdwl* or\n*ecoul* . If the pair style supports it, it also calculates a global\nvector of length \\(\\ge\\) 1, as determined by the pair style. These values\ncan be used by any command that uses global scalar or vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe scalar and vector values calculated by this compute are\n\"extensive\".\n\nThe scalar value will be in energy [units ](https://docs.lammps.org/units.html). The vector\nvalues will typically also be in energy [units ](https://docs.lammps.org/units.html), but see\nthe page for the pair style for details.\n", + "restrictions": " none\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute bond ](https://docs.lammps.org/compute_bond.html),\n[fix pair ](https://docs.lammps.org/fix_pair.html)\n" }, { "command": [ - "fix mdi/qmmm" + "compute property/chunk" ], "syntax": [ - "fix ID group-ID mdi/qmmm mode keyword value(s) keyword value(s) ..." + "compute ID group-ID property/chunk chunkID input1 input2 ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -27697,435 +26588,427 @@ export const command_docs = [ "choices": [] }, { - "arg": "mdi/qmmm", - "type": 1, - "choices": [] - }, - { - "arg": "potential", - "type": 3, - "choices": [ - "direct", - "potential" - ] - }, - { - "arg": "elements", - "type": 3, - "choices": [ - "virial", - "add", - "every", - "connect", - "elements" - ] - }, - { - "arg": "value(s)", - "type": 2, - "choices": [] - }, - { - "arg": "elements", - "type": 3, - "choices": [ - "virial", - "add", - "every", - "connect", - "elements" - ] - }, - { - "arg": "value(s)", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mdi/qmmm = style name of this fix command\n* mode = direct or potential\n* zero or more keyword/value pairs may be appended\n* keyword = virial or add or every or connect or elements \n *        virial args = yes or no \n         yes = request virial tensor from server code \n         no = do not request virial tensor from server code \n *        connect args = yes or no \n         yes = perform a one-time connection to the MDI engine code \n         no = do not perform the connection operation \n *        elements args = N_1 N_2 ... N_ntypes \n         N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n", - "examples": "\n```lmps\nfix 1 all mdi/qmmm direct\nfix 1 all mdi/qmmm potential virial yes\nfix 1 all mdi/qmmm potential virial yes elements 13 29\n```\n", - "html_filename": "fix_mdi_qmmm.html", - "short_description": "\nThis command enables LAMMPS to act as a client with another server code\nto perform a coupled QM/MM (quantum-mechanics/molecular-mechanics)\nsimulation", - "description": "\nThis command enables LAMMPS to act as a client with another server code\nto perform a coupled QM/MM (quantum-mechanics/molecular-mechanics)\nsimulation. LAMMPS will perform classical MD (molecular mechanics\nor MM) for the (typically larger) MM portion of the system. A quantum\nmechanics code will calculate quantum energy and forces for the QM\nportion of the system. The two codes work together to calculate the\nenergy and forces due to the cross interactions between QM and MM atoms.\nThe QM server code must support use of the [MDI Library](https://molssi-mdi.github.io/MDI_Library/html/index.html) as\nexplained below.\n\nThe partitioning of the system between QM and MM atoms is as follows.\nAtoms in the specified group are QM atoms; the remaining atoms are MM\natoms. The input script should thus define this partitioning.\nSee additional information below about other requirements for an input\nscript to use this fix and perform a QM/MM simulation.\n\nThe code coupling performed by this command is done via the `MDI\nLibrary `_.\nLAMMPS runs as an MDI driver (client), and sends MDI commands to an\nexternal MDI engine code (server), in this case a QM code which has\nsupport for MDI. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html) page for more\ninformation about how LAMMPS can operate as either an MDI driver or\nengine.\n\nThe ``examples/QUANTUM`` directory has sub-directories with example\ninput scripts using this fix in tandem with different QM codes. The\nREADME files in the sub-directories explain how to download and build\nthe various QM codes. They also explain how to launch LAMMPS and the QM\ncode so that they communicate via the MDI library using either MPI or\nsockets. Any QM code that supports MDI could be used in addition to\nthose discussed in the sub-directories. See the [Howto mdi](https://docs.lammps.org/Howto_mdi.html) page for a current list (March 2022) of such QM codes.\n\nNote that an engine code can support MDI in either or both of two modes.\nIt can be used as a stand-alone code, launched at the same time as\nLAMMPS. Or it can be used as a plugin library, which LAMMPS loads. See\nthe [mdi plugin ](https://docs.lammps.org/mdi.html) command for how to trigger LAMMPS to load a\nplugin library. The ``examples/QUANTUM`` sub-directory README files\nexplains how to launch the two codes in either mode.\n\n----------\n\nThe *mode* setting determines which QM/MM coupling algorithm is used.\nLAMMPS currently supports *direct* and *potential* algorithms, based\non the *mode* setting. Both algorithms should give reasonably\naccurate results, but some QM codes support only one of the two modes.\nE.g. in the ``examples/QUANTUM`` directory, PySCF supports only *direct*,\nNWChem supports only *potential*, and LATTE currently supports\nneither, so it cannot be used for QM/MM simulations using this fix.\n\nThe *direct* option passes the coordinates and charges of each MM atom\nto the quantum code, in addition to the coordinates of each QM atom.\nThe quantum code returns forces on each QM atom as well as forces on\neach MM atom. The latter is effectively the force on MM atoms due to\nthe QM atoms.\n\nThe input script for performing a *direct* mode QM/MM simulation should\ndo the following:\n\n* delete all bonds (angles, dihedrals, etc) between QM atoms\n* set the charge on each QM atom to zero\n* define no bonds (angles, dihedrals, etc) which involve both QM and MM atoms\n* define a force field (pair, bonds, angles, optional kspace) for the entire system\n\nThe first two bullet can be performed using the [delete_bonds](https://docs.lammps.org/delete_bonds.html) and [set ](https://docs.lammps.org/set.html) commands.\n\nThe third bullet is required to have a consistent model, but is not\nchecked by LAMMPS.\n\nThe fourth bullet implies that non-bonded non-Coulombic interactions\n(e.g. van der Waals) between QM/QM and QM/MM pairs of atoms are\ncomputed by LAMMPS.\n\nSee the ``examples/QUANTUM/PySCF/in.*`` files for examples of input\nscripts for QM/MM simulations using the *direct* mode.\n\nThe *potential* option passes the coordinates of each QM atom and a\nCoulomb potential for each QM atom to the quantum code. The latter is\ncalculated by performing a Coulombics-only calculation for the entire\nsystem, subtracting all QM/QM pairwise Coulombic terms, and dividing\nthe Coulomb energy on each QM atom by the charge of the QM atom. The\npotential value represents the Coulombic influence of all the MM atoms\non each QM atom.\n\nThe quantum code returns forces and charge on each QM atom. The new\ncharges on the QM atom are used to re-calculate the MM force field,\nresulting in altered forces on the MM atoms.\n\nThe input script for performing a *potential* mode QM/MM simulation\nshould do the following:\n\n* delete all bonds (angles, dihedrals, etc) between QM atoms\n* define a hybrid pair style which includes a Coulomb-only pair sub-style\n* define no bonds (angles, dihedrals, etc) which involve both QM and MM atoms\n* define a force field (pair, bonds, angles, optional kspace) for the entire system\n\nThe first operation can be performed using the [delete_bonds](https://docs.lammps.org/delete_bonds.html) command. See the ``examples/QUANTUM/NWChem/in.*`` files\nfor examples of how to do this.\n\nThe second operation is necessary so that this fix can calculate the\nCoulomb potential for the QM atoms.\n\nThe third bullet is required to have a consistent model, but is not\nchecked by LAMMPS.\n\nThe fourth bullet implies that non-bonded non-Coulombic interactions\n(e.g. van der Waals) between QM/QM and QM/MM pairs of atoms are computed\nby LAMMPS. However, some QM codes do not want the MM code (LAMMPS) to\ncompute QM/QM van der Waals interactions. NWChem is an example. In\nthis case, the coefficients for those interactions need to be turned\noff, which typically requires the atom types for the QM atoms be\ndifferent than those for the MM atoms.\n\nSee the ``examples/QUANTUM/NWChem/in.*`` files for examples of input\nscripts for QM/MM simulations using the *potential* mode. Those scripts\nalso illustrate how to turn off QM/QM van der Waals interactions.\n\n----------\n\nThe *virial* keyword setting of yes or no determines whether LAMMPS\nwill request the QM code to also compute and return the QM\ncontribution to a stress tensor for the system which LAMMPS will\nconvert to a 6-element symmetric virial tensor.\n\nThe *connect* keyword determines whether this fix performs a one-time\nconnection to the QM code. The default is *yes*. The only time a\n*no* is needed is if this command is used multiple times in an input\nscript. E.g. if it used inside a loop which also uses the [clear](https://docs.lammps.org/clear.html) command to destroy the system (including this fix). As\nexample would be a script which loop over a series of independent QM/MM\nsimulations, e.g. each with their own data file. In this use case\n*connect no* could be used along with the [mdi connect and exit](https://docs.lammps.org/mdi.html) command to one-time initiate/terminate the connection outside\nthe loop.\n\nThe *elements* keyword allows specification of what element each\nLAMMPS atom type corresponds to. This is specified by the chemical\nsymbol of the element, e.g. C or Al or Si. A symbol must be specified\nfor each of the ntypes LAMMPS atom types. Multiple LAMMPS types can\nrepresent the same element. Ntypes is typically specified via the\n[create_box ](https://docs.lammps.org/create_box.html) command or in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nIf this keyword is specified, then this fix will send the MDI\n\">ELEMENTS\" command to the engine, to insure the two codes are\nconsistent in their definition of atomic species. If this keyword is\nnot specified, then this fix will send the MDI >TYPES command to the\nengine. This is fine if both the LAMMPS driver and the MDI engine are\ninitialized so that the atom type values are consistent in both codes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy computed by the QM code to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the QM code to the global\npressure of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyvirial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\nreturned by the QM code. The scalar value calculated by this fix is\n\"extensive\".\n\nThis fix also computes a global vector with of length 6 which contains\nthe symmetric virial tensor values returned by the QM code. It can\nlikewise be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe ordering of values in the symmetric virial tensor is as follows:\nvxx, vyy, vzz, vxy, vxz, vyz. The values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nThis fix also computes a peratom array with 3 columns which contains\nthe peratom forces returned by the QM code. It can likewise be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Note that\nfor *direct* mode this will be quantum forces on both QM and MM atoms.\nFor *potential* mode it will only be quantum forces on QM atoms; the\nforces for MM atoms will be zero.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces computed by the QM code are used during an energy\nminimization, invoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the potential energy associated with the QM forces to\n > be included in the total potential energy of the system (the\n > quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix. \n > \n\n", - "restrictions": "This command is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS as an MDI driver in conjunction with other MDI-enabled\ncodes (MD or QM codes), the [units ](https://docs.lammps.org/units.html) command should be used\nto specify *real* or *metal* units. This will ensure the correct unit\nconversions between LAMMPS and MDI units. The other code will also\nperform similar unit conversions into its preferred units.\n\nIf this fix is used in conjunction with a QM code that does not support\nperiodic boundary conditions (more specifically, a QM code that does not\nsupport the ``>CELL`` MDI command), the LAMMPS system must be fully\nnon-periodic. I.e. no dimension of the system can be periodic.\n", - "related": "[mdi plugin ](https://docs.lammps.org/mdi.html),\n[mdi engine ](https://docs.lammps.org/mdi.html),\n[fix mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html)\n" -}, -{ - "command": [ - "compute smd/vol" - ], - "syntax": [ - "compute ID group-ID smd/vol" - ], - "args": [ - [ - { - "arg": "compute", + "arg": "property/chunk", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "chunkID", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "smd/vol", - "type": 1, + "arg": "input2", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/vol = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/vol\n```\n", - "html_filename": "compute_smd_vol.html", - "short_description": "Define a computation that provides the per-particle volume and the sum\nof the per-particle volumes of the group for which the compute is defined", - "description": "Define a computation that provides the per-particle volume and the sum\nof the per-particle volumes of the group for which the compute is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will be given in [units ](https://docs.lammps.org/units.html) of\nvolume.\n\nAdditionally, the compute returns a scalar, which is the sum of the\nper-particle volumes of the group for which the compute is defined.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute smd/rho ](https://docs.lammps.org/compute_smd_rho.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command that defines the chunks\n* input1,etc = one or more attributes \n *        attributes = count, id, coord1, coord2, coord3 \n         count = # of atoms in chunk \n         id = original chunk IDs before compression by [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) \n         coord123 = coordinates for spatial bins calculated by [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) \n", + "examples": "\n```lmps\ncompute 1 all property/chunk bin2d id count\ncompute 1 all property/chunk myChunks id coord1\n```\n", + "html_filename": "compute_property_chunk.html", + "short_description": "Define a computation that stores the specified attributes of chunks of\natoms", + "description": "Define a computation that stores the specified attributes of chunks of\natoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages\nfor details of how chunks can be defined and examples of how they can\nbe used to measure properties of a system.\n\nThis compute calculates and stores the specified attributes of chunks\nas global data so they can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html) and used in conjunction with other commands that\ngenerate per-chunk data, such as [compute com/chunk](https://docs.lammps.org/compute_com_chunk.html) or [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html).\n\nNote that only atoms in the specified group contribute to the\ncalculation of the *count* attribute. The [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) command defines its own group; atoms will have a\nchunk ID = 0 if they are not in that group, signifying they are not\nassigned to a chunk, and will thus also not contribute to this\ncalculation. You can specify the \"all\" group for this command if you\nsimply want to include atoms with non-zero chunk IDs.\n\nThe *count* attribute is the number of atoms in the chunk.\n\nThe *id* attribute stores the original chunk ID for each chunk. It\ncan only be used if the *compress* keyword was set to *yes* for the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command referenced by\nchunkID. This means that the original chunk IDs (e.g., molecule IDs)\nwill have been compressed to remove chunk IDs with no atoms assigned\nto them. Thus a compressed chunk ID of 3 may correspond to an\noriginal chunk ID (molecule ID in this case) of 415. The *id*\nattribute will then be 415 for the third chunk.\n\nThe *coordN* attributes can only be used if a *binning* style was used\n\nin the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\nreferenced by chunkID. For *bin/1d*, *bin/2d*, and *bin/3d* styles\nthe attribute is the center point of the bin in the corresponding\ndimension. Style *bin/1d* only defines a *coord1* attribute. Style\n*bin/2d* adds a *coord2* attribute. Style *bin/3d* adds a *coord3*\nattribute.\n\nNote that if the value of the *units* keyword used in the\n[compute chunk/atom command ](https://docs.lammps.org/compute_chunk_atom.html) is *box* or\n*lattice*, the *coordN* attributes will be in distance [units](https://docs.lammps.org/units.html). If the value of the *units* keyword is *reduced*, the\n*coordN* attributes will be in unitless reduced units (0-1).\n\nThe simplest way to output the results of the compute property/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk1 all property/chunk cc1 count\ncompute myChunk2 all com/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk1 c_myChunk2[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global vector or global array depending on\nthe number of input values. The length of the vector or number of\nrows in the array is the number of chunks.\n\nThis compute calculates a global vector or global array where the\nnumber of rows = the number of chunks *Nchunk* as calculated by the\nspecified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. If a\nsingle input is specified, a global vector is produced. If two or\nmore inputs are specified, a global array is produced where the number\nof columns = the number of inputs. The vector or array can be\naccessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe vector or array values are \"intensive\". The values will be\nunitless or in the units discussed above.\n", + "restrictions": " none\n", + "related": "[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html)\n" }, { "command": [ - "fix_modify AtC control lumped_lambda_solve" + "fix atc" ], "syntax": [ - "fix_modify control lumped_lambda_solve " + "fix atc " ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] }, { - "arg": "control", - "type": 1, + "arg": "", + "type": 2, "choices": [] }, { - "arg": "lumped_lambda_solve", + "arg": "atc", "type": 1, "choices": [] }, { - "arg": "", + "arg": "field", "type": 3, "choices": [ - "on", - "off" + "thermal", + "two_temperature", + "hardy", + "field" ] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control lumped_lambda_solve = name of the AtC sub-command\n* on or off = Toggles state of lumped matrix \n", - "examples": "\n```lmps\nfix_modify AtC control lumped_lambda_solve on\n```\n", - "html_filename": "atc_lumped_lambda_solve.html", - "short_description": "Command select whether to use or not use lumped matrix for lambda solve", - "description": "Command select whether to use or not use lumped matrix for lambda solve.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* fixID = name of fix\n* group = name of group fix is to be applied\n* type = thermal or two_temperature or hardy or field \n *     thermal = thermal coupling with fields: temperature \n *     two_temperature = electron-phonon coupling with field: temperature and electron_temperature \n *     hardy = on-the-fly post-processing using kernel localization functions \n *     field = on-the-fly post-processing using mesh-based localization functions \n* parameter_file = name of the file with material parameters. Note: Neither hardy nor field requires a parameter file \n", + "examples": "\n```lmps\nfix AtC internal atc thermal Ar_thermal.dat\nfix AtC internal atc two_temperature Ar_ttm.mat\nfix AtC internal atc hardy\nfix AtC internal atc field\n```\n", + "html_filename": "fix_atc.html", + "short_description": "This fix is the beginning to creating a coupled FE/MD simulation and/or\nan on-the-fly estimation of continuum fields", + "description": "This fix is the beginning to creating a coupled FE/MD simulation and/or\nan on-the-fly estimation of continuum fields. The coupled versions of\nthis fix do Verlet integration and the post-processing does not. After\ninstantiating this fix, several other fix_modify commands will be\nneeded to set up the problem (i.e., define the finite element mesh and\nprescribe initial and boundary conditions).\n\n ![Image](JPG/atc_nanotube.jpg) \n\nThe following coupling example is typical, but non-exhaustive:\n\n```lmps\n# ... commands to create and initialize the MD system\n\n# initial fix to designate coupling type and group to apply it to\n# tag group physics material_file\nfix AtC internal atc thermal Ar_thermal.mat\n\n# create a uniform 12 x 2 x 2 mesh that covers region contain the group\n# nx ny nz region periodicity\nfix_modify AtC mesh create 12 2 2 mdRegion f p p\n\n# specify the control method for the type of coupling\n# physics control_type\nfix_modify AtC thermal control flux\n\n# specify the initial values for the empirical field \"temperature\"\n# field node_group value\nfix_modify AtC initial temperature all 30\n\n# create an output stream for nodal fields\n# filename output_frequency\nfix_modify AtC output atc_fe_output 100\n\nrun 1000\n```\nlikewise for this post-processing example:\n\n```lmps\n# ... commands to create and initialize the MD system\n\n# initial fix to designate post-processing and the group to apply it to\n# no material file is allowed nor required\nfix AtC internal atc hardy\n\n# for hardy fix, specific kernel function (function type and range) to # be used as a localization function\nfix AtC kernel quartic_sphere 10.0\n\n# create a uniform 1 x 1 x 1 mesh that covers region contain the group\n# with periodicity this effectively creates a system average\nfix_modify AtC mesh create 1 1 1 box p p p\n\n# change from default lagrangian map to eulerian\n# refreshed every 100 steps\nfix_modify AtC atom_element_map eulerian 100\n\n# start with no field defined\n# add mass density, potential energy density, stress and temperature\nfix_modify AtC fields add density energy stress temperature\n\n# create an output stream for nodal fields\n# filename output_frequency\nfix_modify AtC output nvtFE 100 text\n\nrun 1000\n```\nthe mesh's linear interpolation functions can be used as the localization function\nby using the field option:\n\n```lmps\nfix AtC internal atc field\nfix_modify AtC mesh create 1 1 1 box p p p\n...\n```\nNote coupling and post-processing can be combined in the same simulations using separate fixes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is not supported by\nthis fix, but this fix does add the kinetic energy imparted to atoms\nby the momentum coupling mode of the AtC package to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html).\n\nAdditional [fix_modify ](https://docs.lammps.org/fix_modify.html) options relevant to this\nfix are listed below.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\ndiscussed in the previous paragraph. The scalar value is \"extensive\".\n\nNo parameter of this fix can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is not\ninvoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "Thermal and two_temperature (coupling) types use a Verlet\ntime-integration algorithm. The hardy type does not contain its own\ntime-integrator and must be used with a separate fix that does contain\none (e.g., nve, nvt). In addition, currently:\n\n* the coupling is restricted to thermal physics\n* the FE computations are done in serial on each processor.\n\n.. _atc_fix_modify:\n", + "related": "After specifying this fix in your input script, several\n[fix_modify AtC ](https://docs.lammps.org/fix_modify.html) commands are used to setup the\nproblem (e.g., define the finite element mesh and prescribe initial and\nboundary conditions). Each of these options has its own doc page.\n\n*fix_modify* commands for setup:\n\n* [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n* [fix_modify AtC mesh quadrature ](https://docs.lammps.org/atc_mesh_quadrature.html)\n* [fix_modify AtC mesh read ](https://docs.lammps.org/atc_mesh_read.html)\n* [fix_modify AtC mesh write ](https://docs.lammps.org/atc_mesh_write.html)\n* [fix_modify AtC mesh create_nodeset ](https://docs.lammps.org/atc_mesh_create_nodeset.html)\n* [fix_modify AtC mesh add_to_nodeset ](https://docs.lammps.org/atc_mesh_add_to_nodeset.html)\n* [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n* [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n* [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n* [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n* [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n* [fix_modify AtC boundary type ](https://docs.lammps.org/atc_boundary_type.html)\n* [fix_modify AtC internal_quadrature ](https://docs.lammps.org/atc_internal_quadrature.html)\n* [fix_modify AtC time_integration ](https://docs.lammps.org/atc_time_integration.html)\n* [fix_modify AtC extrinsic electron_integration ](https://docs.lammps.org/atc_electron_integration.html)\n* [fix_modify AtC internal_element_set ](https://docs.lammps.org/atc_internal_element_set.html)\n* [fix_modify AtC decomposition ](https://docs.lammps.org/atc_decomposition.html)\n\n*fix_modify* commands for boundary and initial conditions:\n\n* [fix_modify AtC initial ](https://docs.lammps.org/atc_initial.html)\n* [fix_modify AtC fix ](https://docs.lammps.org/atc_fix.html)\n* [fix_modify AtC unfix ](https://docs.lammps.org/atc_unfix.html)\n* [fix_modify AtC fix_flux ](https://docs.lammps.org/atc_fix_flux.html)\n* [fix_modify AtC unfix_flux ](https://docs.lammps.org/atc_unfix_flux.html)\n* [fix_modify AtC source ](https://docs.lammps.org/atc_source.html)\n* [fix_modify AtC remove_source ](https://docs.lammps.org/atc_remove_source.html)\n\n*fix_modify* commands for control and filtering:\n\n* [fix_modify AtC control thermal ](https://docs.lammps.org/atc_control_thermal.html)\n* [fix_modify AtC control momentum ](https://docs.lammps.org/atc_control_momentum.html)\n* [fix_modify AtC control localized_lambda ](https://docs.lammps.org/atc_control_localized_lambda.html)\n* [fix_modify AtC control lumped_lambda_solve ](https://docs.lammps.org/atc_lumped_lambda_solve.html)\n* [fix_modify AtC control mask_direction ](https://docs.lammps.org/atc_mask_direction.html)\n* [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n* [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n* [fix_modify AtC filter type ](https://docs.lammps.org/atc_filter_type.html)\n* [fix_modify AtC equilibrium_start ](https://docs.lammps.org/atc_equilibrium_start.html)\n* [fix_modify AtC extrinsic exchange ](https://docs.lammps.org/atc_extrinsic_exchange.html)\n* [fix_modify AtC poisson_solver ](https://docs.lammps.org/atc_poisson_solver.html)\n\n*fix_modify* commands for output:\n\n* [fix_modify AtC output ](https://docs.lammps.org/atc_output.html)\n* [fix_modify AtC output nodeset ](https://docs.lammps.org/atc_output_nodeset.html)\n* [fix_modify AtC output volume_integral ](https://docs.lammps.org/atc_output_volume_integral.html)\n* [fix_modify AtC output boundary_integral ](https://docs.lammps.org/atc_output_boundary_integral.html)\n* [fix_modify AtC output contour_integral ](https://docs.lammps.org/atc_output_contour_integral.html)\n* [fix_modify AtC mesh output ](https://docs.lammps.org/atc_mesh_output.html)\n* [fix_modify AtC write_restart ](https://docs.lammps.org/atc_write_restart.html)\n* [fix_modify AtC read_restart ](https://docs.lammps.org/atc_read_restart.html)\n\n*fix_modify* commands for post-processing:\n\n* [fix_modify AtC kernel ](https://docs.lammps.org/atc_hardy_kernel.html)\n* [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n* [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n* [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n* [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n* [fix_modify AtC on_the_fly ](https://docs.lammps.org/atc_hardy_on_the_fly.html)\n* [fix_modify AtC pair/bond_interactions ](https://docs.lammps.org/atc_pair_interactions.html)\n* [fix_modify AtC sample_frequency ](https://docs.lammps.org/atc_sample_frequency.html)\n* [fix_modify AtC set ](https://docs.lammps.org/atc_set_reference_pe.html)\n\nmiscellaneous *fix_modify* commands:\n\n* [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n* [fix_modify AtC atom_weight ](https://docs.lammps.org/atc_atom_weight.html)\n* [fix_modify AtC write_atom_weights ](https://docs.lammps.org/atc_write_atom_weights.html)\n* [fix_modify AtC kernel_bandwidth ](https://docs.lammps.org/atc_kernel_bandwidth.html)\n* [fix_modify AtC reset_time ](https://docs.lammps.org/atc_reset_time.html)\n* [fix_modify AtC reset_atomic_reference_positions ](https://docs.lammps.org/atc_reset_atomic_reference.html)\n* [fix_modify AtC fe_md_boundary ](https://docs.lammps.org/atc_fe_md_boundary.html)\n* [fix_modify AtC boundary_faceset ](https://docs.lammps.org/atc_boundary_faceset.html)\n* [fix_modify AtC consistent_fe_initialization ](https://docs.lammps.org/atc_consistent_fe_initialization.html)\n* [fix_modify AtC mass_matrix ](https://docs.lammps.org/atc_mass_matrix.html)\n* [fix_modify AtC material ](https://docs.lammps.org/atc_material.html)\n* [fix_modify AtC atomic_charge ](https://docs.lammps.org/atc_atomic_charge.html)\n* [fix_modify AtC source_integration ](https://docs.lammps.org/atc_source_integration.html)\n* [fix_modify AtC temperature_definition ](https://docs.lammps.org/atc_temperature_definition.html)\n* [fix_modify AtC track_displacement ](https://docs.lammps.org/atc_track_displacement.html)\n* [fix_modify AtC boundary_dynamics ](https://docs.lammps.org/atc_boundary_dynamics.html)\n* [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n* [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n* [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n* [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n\nNote: a set of example input files with the attendant material files\nare included in the ``examples/PACKAGES/atc`` folders.\n" }, { "command": [ - "pair_style lj/smooth/linear", - "pair_style lj/smooth/linear/omp" + "read_restart" ], "syntax": [ - "pair_style lj/smooth/linear cutoff" + "read_restart file" ], "args": [ [ { - "arg": "pair_style", + "arg": "read_restart", "type": 1, "choices": [] }, { - "arg": "lj/smooth/linear", - "type": 3, - "choices": [ - "lj/smooth/linear", - "lj/smooth/linear/omp" - ] - }, - { - "arg": "cutoff", + "arg": "file", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for Lennard-Jones interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj/smooth/linear 2.5\npair_coeff * * 1.0 1.0\npair_coeff 1 1 0.3 3.0 9.0\n```\n", - "html_filename": "pair_lj_smooth_linear.html", - "short_description": "Style *lj/smooth/linear* computes a truncated and force-shifted LJ\ninteraction (aka Shifted Force Lennard-Jones) that combines the\nstandard 12/6 Lennard-Jones function and subtracts a linear term based\non the cutoff distance, so that both, the potential and the force, go\ncontinuously to zero at the cutoff \\(r_c\\) **Toxvaerd**:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional", - "description": "Style *lj/smooth/linear* computes a truncated and force-shifted LJ\ninteraction (aka Shifted Force Lennard-Jones) that combines the\nstandard 12/6 Lennard-Jones function and subtracts a linear term based\non the cutoff distance, so that both, the potential and the force, go\ncontinuously to zero at the cutoff \\(r_c\\) **Toxvaerd**:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance can be mixed. The default mix value is geometric.\nSee the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction, since it goes\nto 0.0 at the cutoff by construction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Toxvaerd)** Toxvaerd, Dyre, J Chem Phys, 134, 081102 (2011). \n ", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair lj/smooth ](https://docs.lammps.org/pair_lj_smooth.html)\n" + "parameters": "* file = name of binary restart file to read in \n", + "examples": "\n```lmps\nread_restart save.10000\nread_restart restart.*\n```\n", + "html_filename": "read_restart.html", + "short_description": "Read in a previously saved system configuration from a restart file", + "description": "Read in a previously saved system configuration from a restart file.\nThis allows continuation of a previous run. Details about what\ninformation is stored (and not stored) in a restart file is given below.\nBasically this operation will re-create the simulation box with all its\natoms and their attributes as well as some related global settings, at\nthe point in time it was written to the restart file by a previous\nsimulation. The simulation box will be partitioned into a regular 3d\ngrid of rectangular bricks, one per processor, based on the number of\nprocessors in the current simulation and the settings of the\n[processors ](https://docs.lammps.org/processors.html) command. The partitioning can later be\nchanged by the [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\n **Deprecated in version 23Jun2022** \n\nAtom coordinates that are found to be outside the simulation box when\nreading the restart will be remapped back into the box and their image\nflags updated accordingly. This previously required specifying the\n*remap* option, but that is no longer required.\n\nRestart files are saved in binary format to enable exact restarts,\nmeaning that the trajectories of a restarted run will precisely match\nthose produced by the original run had it continued on.\n\nThe binary restart file format was not designed with backward, forward,\nor cross-platform compatibility in mind, so the files are only expected\nto be read correctly by the same LAMMPS executable on the same platform.\nChanges to the architecture, compilation settings, or LAMMPS version can\nrender a restart file unreadable or it may read the data incorrectly.\nIf you want a more portable format, you can use the data file format as\ncreated by the [write_data ](https://docs.lammps.org/write_data.html) command. Binary restart\nfiles can also be converted into a data file from the command line by\nthe LAMMPS executable that wrote them using the :ref:`-restart2data\n` command line flag.\n\nSeveral things can prevent exact restarts due to round-off effects, in\nwhich case the trajectories in the 2 runs will slowly diverge. These\ninclude running on a different number of processors or changing\ncertain settings such as those set by the [newton ](https://docs.lammps.org/newton.html) or\n[processors ](https://docs.lammps.org/processors.html) commands. LAMMPS will issue a warning in\nthese cases.\n\nCertain fixes will not restart exactly, though they should provide\nstatistically similar results. These include [fix shake](https://docs.lammps.org/fix_shake.html) and [fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nCertain pair styles will not restart exactly, though they should\nprovide statistically similar results. This is because the forces\nthey compute depend on atom velocities, which are used at half-step\nvalues every timestep when forces are computed. When a run restarts,\nforces are initially evaluated with a full-step velocity, which is\ndifferent than if the run had continued. These pair styles include\n[granular pair styles ](https://docs.lammps.org/pair_gran.html), [pair dpd ](https://docs.lammps.org/pair_dpd.html), and\n[pair lubricate ](https://docs.lammps.org/pair_lubricate.html).\n\nIf a restarted run is immediately different than the run which\nproduced the restart file, it could be a LAMMPS bug, so consider\n[reporting it ](https://docs.lammps.org/Errors_bugs.html) if you think the behavior is a bug.\n\nBecause restart files are binary, they may not be portable to other\nmachines. In this case, you can use the [-restart command-lineswitch ](https://docs.lammps.org/Run_options.html) to convert a restart file to a data file.\n\nSimilar to how restart files are written (see the [write_restart](https://docs.lammps.org/write_restart.html) and [restart ](https://docs.lammps.org/restart.html) commands), the restart\nfilename can contain two wild-card characters. If a \"\\*\" appears in the\nfilename, the directory is searched for all filenames that match the\npattern where \"\\*\" is replaced with a timestep value. The file with the\nlargest timestep value is read in. Thus, this effectively means, read\nthe latest restart file. It's useful if you want your script to\ncontinue a run from where it left off. See the [run ](https://docs.lammps.org/run.html) command\nand its \"upto\" option for how to specify the run command so it does not\nneed to be changed either.\n\nIf a \"%\" character appears in the restart filename, LAMMPS expects a\nset of multiple files to exist. The [restart ](https://docs.lammps.org/restart.html) and\n[write_restart ](https://docs.lammps.org/write_restart.html) commands explain how such sets are\ncreated. Read_restart will first read a filename where \"%\" is\nreplaced by \"base\". This file tells LAMMPS how many processors\ncreated the set and how many files are in it. Read_restart then reads\nthe additional files. For example, if the restart file was specified\nas save.% when it was written, then read_restart reads the files\nsave.base, save.0, save.1, ... save.P-1, where P is the number of\nprocessors that created the restart file.\n\nNote that P could be the total number of processors in the previous\nsimulation, or some subset of those processors, if the *fileper* or\n*nfile* options were used when the restart file was written; see the\n[restart ](https://docs.lammps.org/restart.html) and [write_restart ](https://docs.lammps.org/write_restart.html) commands\nfor details. The processors in the current LAMMPS simulation share\nthe work of reading these files; each reads a roughly equal subset of\nthe files. The number of processors which created the set can be\ndifferent the number of processors in the current LAMMPS simulation.\nThis can be a fast mode of input on parallel machines that support\nparallel I/O.\n\n----------\n\nHere is the list of information included in a restart file, which\nmeans these quantities do not need to be re-specified in the input\nscript that reads the restart file, though you can redefine many of\nthese settings after the restart file is read.\n\n* [units ](https://docs.lammps.org/units.html)\n* [newton bond ](https://docs.lammps.org/newton.html) (see discussion of newton command below)\n* [atom style ](https://docs.lammps.org/atom_style.html) and [atom_modify ](https://docs.lammps.org/atom_modify.html) settings id, map, sort\n* [comm style ](https://docs.lammps.org/comm_style.html) and [comm_modify ](https://docs.lammps.org/comm_modify.html) settings mode, cutoff, vel\n* [timestep ](https://docs.lammps.org/timestep.html)\n* simulation box size and shape and [boundary ](https://docs.lammps.org/boundary.html) settings\n* atom [group ](https://docs.lammps.org/group.html) definitions\n* per-type atom settings such as [mass ](https://docs.lammps.org/mass.html)\n* per-atom attributes including their group assignments and molecular topology attributes (bonds, angles, etc)\n* force field styles ([pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html), etc)\n* force field coefficients ([pair ](https://docs.lammps.org/pair_coeff.html), [bond ](https://docs.lammps.org/bond_coeff.html), [angle ](https://docs.lammps.org/angle_coeff.html), etc) in some cases (see below)\n* [pair_modify ](https://docs.lammps.org/pair_modify.html) settings, except the compute option\n* [special_bonds ](https://docs.lammps.org/special_bonds.html) settings\n\nHere is a list of information not stored in a restart file, which\nmeans you must re-issue these commands in your input script, after\nreading the restart file.\n\n* [newton pair ](https://docs.lammps.org/newton.html) (see discussion of newton command below)\n* [fix ](https://docs.lammps.org/fix.html) commands (see below)\n* [compute ](https://docs.lammps.org/compute.html) commands (see below)\n* [variable ](https://docs.lammps.org/variable.html) commands\n* [region ](https://docs.lammps.org/region.html) commands\n* [neighbor list ](https://docs.lammps.org/neighbor.html) criteria including [neigh_modify ](https://docs.lammps.org/neigh_modify.html) settings\n* [kspace_style ](https://docs.lammps.org/kspace_style.html) and [kspace_modify ](https://docs.lammps.org/kspace_modify.html) settings\n* info for [thermodynamic ](https://docs.lammps.org/thermo_style.html), [dump ](https://docs.lammps.org/dump.html), or [restart ](https://docs.lammps.org/restart.html) output\n\nThe [newton ](https://docs.lammps.org/newton.html) command has two settings, one for pairwise\ninteractions, the other for bonded. Both settings are stored in the\nrestart file. For the bond setting, the value in the file will\noverwrite the current value (at the time the read_restart command is\nissued) and warn if the two values are not the same and the current\nvalue is not the default. For the pair setting, the value in the file\nwill not overwrite the current value (so that you can override the\nprevious run's value), but a warning is issued if the two values are\nnot the same and the current value is not the default.\n\nNote that some force field styles (pair, bond, angle, etc) do not\nstore their coefficient info in restart files. Typically these are\nmany-body or tabulated potentials which read their parameters from\nseparate files. In these cases you will need to re-specify the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [bond_coeff ](https://docs.lammps.org/bond_coeff.html), etc\ncommands in your restart input script. The doc pages for individual\nforce field styles mention if this is the case. This is also true of\n[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) (bond hybrid, angle hybrid, etc)\ncommands; they do not store coefficient info.\n\nAs indicated in the above list, the [fixes ](https://docs.lammps.org/fix.html) used for a\nsimulation are not stored in the restart file. This means the new\ninput script should specify all fixes it will use. However, note that\nsome fixes store an internal \"state\" which is written to the restart\nfile. This allows the fix to continue on with its calculations in a\nrestarted simulation. To re-enable such a fix, the fix command in the\nnew input script must be of the same style and use the same fix-ID as\nwas used in the input script that wrote the restart file.\n\nIf a match is found, LAMMPS prints a message indicating that the fix\nis being re-enabled. If no match is found before the first run or\nminimization is performed by the new script, the \"state\" information\nfor the saved fix is discarded. At the time the discard occurs,\nLAMMPS will also print a list of fixes for which the information is\nbeing discarded. See the doc pages for individual fixes for info on\nwhich ones can be restarted in this manner. Note that fixes which are\ncreated internally by other LAMMPS commands (computes, fixes, etc)\nwill have style names which are all-capitalized, and IDs which are\ngenerated internally.\n\nLikewise, the [computes ](https://docs.lammps.org/fix.html) used for a simulation are not stored\nin the restart file. This means the new input script should specify\nall computes it will use. However, some computes create a fix\ninternally to store \"state\" information that persists from timestep to\ntimestep. An example is the [compute msd ](https://docs.lammps.org/compute_msd.html) command\nwhich uses a fix to store a reference coordinate for each atom, so\nthat a displacement can be calculated at any later time. If the\ncompute command in the new input script uses the same compute-ID and\ngroup-ID as was used in the input script that wrote the restart file,\nthen it will create the same fix in the restarted run. This means the\nre-created fix will be re-enabled with the stored state information as\ndescribed in the previous paragraph, so that the compute can continue\nits calculations in a consistent manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are a handful of commands which can be used before or between\n > runs which may require a system initialization. Examples include the\n > \"balance\", \"displace_atoms\", \"delete_atoms\", \"set\" (some options),\n > and \"velocity\" (some options) commands. This is because they can\n > migrate atoms to new processors. Thus they will also discard unused\n > \"state\" information from fixes. You will know the discard has\n > occurred because a list of discarded fixes will be printed to the\n > screen and log file, as explained above. This means that if you wish\n > to retain that info in a restarted run, you must re-specify the\n > relevant fixes and computes (which create fixes) before those\n > commands are used. \n > \n\nSome pair styles, like the [granular pair styles ](https://docs.lammps.org/pair_gran.html), also\nuse a fix to store \"state\" information that persists from timestep to\ntimestep. In the case of granular potentials, it is contact\ninformation between pairs of touching particles. This info will also\nbe re-enabled in the restart script, assuming you re-use the same\ngranular pair style.\n\nLAMMPS allows bond interactions (angle, etc) to be turned off or\ndeleted in various ways, which can affect how their info is stored in\na restart file.\n\nIf bonds (angles, etc) have been turned off by the [fix shake](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command, their info\nwill be written to a restart file as if they are turned on. This means\nthey will need to be turned off again in a new run after the restart\nfile is read.\n\nBonds that are broken (e.g. by a bond-breaking potential) are written\nto the restart file as broken bonds with a type of 0. Thus these\nbonds will still be broken when the restart file is read.\n\nBonds that have been broken by the [fix bond/break](https://docs.lammps.org/fix_bond_break.html) command have disappeared from the system. No\ninformation about these bonds is written to the restart file.\n\n----------\n", + "restrictions": "none\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [read_dump ](https://docs.lammps.org/read_dump.html),\n[write_restart ](https://docs.lammps.org/write_restart.html), [restart ](https://docs.lammps.org/restart.html)\n" }, { "command": [ - "pair_style spin/magelec" + "dihedral_style" ], "syntax": [ - "pair_style spin/magelec cutoff" + "dihedral_style style" ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "spin/magelec", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] + "arg": "table/cut", + "type": 3, + "choices": [ + "none", + "zero", + "hybrid", + "charmm", + "charmmfsw", + "class2", + "cosine/shift/exp", + "cosine/squared/restricted", + "fourier", + "harmonic", + "helix", + "lepton", + "multi/harmonic", + "nharmonic", + "opls", + "spherical", + "table", + "table/cut" + ] } ] ], - "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", - "examples": "\n```lmps\npair_style spin/magelec 4.5\npair_coeff * * magelec 4.5 0.00109 1.0 1.0 1.0\n```\n", - "html_filename": "pair_spin_magelec.html", - "short_description": "Style *spin/me* computes a magneto-electric interaction between\npairs of magnetic spins", - "description": "Style *spin/me* computes a magneto-electric interaction between\npairs of magnetic spins. According to the derivation reported in\n**Katsura1**, this interaction is defined as:\n\\[\\begin{align*} \n \\vec{\\omega}_i & = -\\frac{1}{\\hbar} \\sum_{j}^{Neighb} \\vec{s}_{j}\\times\\vec{D}(r_{ij}) \\\\\n \\vec{F}_i & = -\\sum_{j}^{Neighb} \\frac{\\partial D(r_{ij})}{\\partial r_{ij}} \\left(\\vec{s}_{i}\\times \\vec{s}_{j} \\right) \\cdot \\vec{r}_{ij} \\end{align*} \\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are neighboring magnetic\nspins of two particles.\n\nFrom this magneto-electric interaction, each spin i will be submitted\nto a magnetic torque omega, and its associated atom can be submitted to a\nforce F for spin-lattice calculations (see [fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)),\nsuch as:\n\\[\\begin{align*} \n \\vec{F}^{i} & = -\\sum_{j}^{Neighbor} \\left( \\vec{s}_{i}\\times \\vec{s}_{j} \\right) \\times \\vec{E} \\\\\n \\vec{\\omega}^{i} = -\\frac{1}{\\hbar} \\sum_{j}^{Neighbor} \\vec{s}_j \\times \\left(\\vec{E}\\times r_{ij} \\right) \\end{align*} \\]\nwith h the Planck constant (in metal units) and \\(\\vec{E}\\) an\nelectric polarization vector. The norm and direction of E are giving\nthe intensity and the direction of a screened dielectric atomic\npolarization (in eV).\n\nMore details about the derivation of these torques/forces are reported in\n**Tranchida4**.\n\n----------\n\n**(Katsura1)** H. Katsura, N. Nagaosa, A.V. Balatsky. Phys. Rev. Lett., 95(5), 057205. (2005) \n \n**(Tranchida4)** Tranchida, Plimpton, Thibaudeau, and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", - "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style spin/exchange ](https://docs.lammps.org/pair_spin_exchange.html), [pair_eam ](https://docs.lammps.org/pair_eam.html),\n" + "parameters": "* style = none or zero or hybrid or charmm or charmmfsw or class2 or cosine/shift/exp or cosine/squared/restricted or fourier or harmonic or helix or lepton or multi/harmonic or nharmonic or opls or spherical or table or table/cut \n", + "examples": "\n```lmps\ndihedral_style harmonic\ndihedral_style multi/harmonic\ndihedral_style hybrid harmonic charmm\n```\n", + "html_filename": "dihedral_style.html", + "short_description": "Set the formula(s) LAMMPS uses to compute dihedral interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation", + "description": "Set the formula(s) LAMMPS uses to compute dihedral interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation. The list of dihedral quadruplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file.\n\nHybrid models where dihedrals are computed using different dihedral\npotentials can be setup using the *hybrid* dihedral style.\n\nThe coefficients associated with a dihedral style can be specified in\na data or restart file or via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand.\n\nAll dihedral potentials store their coefficient data in binary restart\nfiles which means dihedral_style and\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) commands do not need to be\nre-specified in an input script that restarts a simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for details on how to do\nthis. The one exception is that dihedral_style *hybrid* only stores\nthe list of sub-styles in the restart file; dihedral coefficients need\nto be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both a dihedral and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between four bonded atoms. \n > \n\nIn the formulas listed for each dihedral style, *phi* is the torsional\nangle defined by the quadruplet of atoms. This angle has a sign\nconvention as shown in this diagram:\n\n ![Image](JPG/dihedral_sign.jpg) \n\nwhere the \\(I,J,K,L\\) ordering of the four atoms that define the dihedral\nis from left to right.\n\nThis sign convention effects several of the dihedral styles listed\nbelow (e.g., charmm, helix) in the sense that the energy formula\ndepends on the sign of phi, which may be reflected in the value of the\ncoefficients you specify.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When comparing the formulas and coefficients for various LAMMPS\n > dihedral styles with dihedral equations defined by other force fields,\n > note that some force field implementations divide/multiply the energy\n > prefactor *K* by the multiple number of torsions that contain the\n > *J* --\\ *K* bond in an *I* --\\ *J* --\\ *K* --\\ *L* torsion. LAMMPS does\n > not do this (i.e., the listed dihedral equation applies to each individual\n > dihedral). Thus, you need to define *K* appropriately via the\n > [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command to account for this\n > difference if necessary. \n > \n\n----------\n\nHere is an alphabetic list of dihedral styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the dihedral_style command, and coefficients\nspecified by the associated [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands dihedral ` page are\nfollowed by one or more of (g,i,k,o,t) to indicate which accelerated styles\nexist.\n\n* [none ](https://docs.lammps.org/dihedral_none.html) - turn off dihedral interactions\n* [zero ](https://docs.lammps.org/dihedral_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/dihedral_hybrid.html) - define multiple styles of dihedral interactions\n\n* [charmm ](https://docs.lammps.org/dihedral_charmm.html) - CHARMM dihedral\n* [charmmfsw ](https://docs.lammps.org/dihedral_charmm.html) - CHARMM dihedral with force switching\n* [class2 ](https://docs.lammps.org/dihedral_class2.html) - COMPASS (class 2) dihedral\n* [cosine/shift/exp ](https://docs.lammps.org/dihedral_cosine_shift_exp.html) - dihedral with exponential in spring constant\n* [cosine/squared/restricted ](https://docs.lammps.org/dihedral_cosine_squared_restricted.html) - squared cosine dihedral with restricted term\n* [fourier ](https://docs.lammps.org/dihedral_fourier.html) - dihedral with multiple cosine terms\n* [harmonic ](https://docs.lammps.org/dihedral_harmonic.html) - harmonic dihedral\n* [helix ](https://docs.lammps.org/dihedral_helix.html) - helix dihedral\n* [lepton ](https://docs.lammps.org/dihedral_lepton.html) - dihedral potential from evaluating a string\n* [multi/harmonic ](https://docs.lammps.org/dihedral_multi_harmonic.html) - dihedral with 5 harmonic terms\n* [nharmonic ](https://docs.lammps.org/dihedral_nharmonic.html) - same as multi-harmonic with N terms\n* [opls ](https://docs.lammps.org/dihedral_opls.html) - OPLS dihedral\n* [quadratic ](https://docs.lammps.org/dihedral_quadratic.html) - dihedral with quadratic term in angle\n* [spherical ](https://docs.lammps.org/dihedral_spherical.html) - dihedral which includes angle terms to avoid singularities\n* [table ](https://docs.lammps.org/dihedral_table.html) - tabulated dihedral\n* [table/cut ](https://docs.lammps.org/dihedral_table.html) - tabulated dihedral with analytic cutoff\n\n----------\n", + "restrictions": "Dihedral styles can only be set for atom styles that allow dihedrals\nto be defined.\n\nMost dihedral styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual dihedral potentials tell if it is part of a package.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "compute rigid/local" + "neigh_modify" ], "syntax": [ - "compute ID group-ID rigid/local rigidID input1 input2 ..." + "neigh_modify keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "neigh_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "values", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* one or more keyword/value pairs may be listed \n *      keyword = delay or every or check or once or cluster or include or exclude or page or one or binsize or collection/type or collection/interval \n       delay value = N \n       N = delay building neighbor lists until this many steps since last build \n       every value = M \n       M = consider building neighbor lists every this many steps \n       check value = yes or no \n       yes = only build if at least one atom has moved half the skin distance or more \n       no = always build on 1st step where every and delay are conditions are satisfied \n       once value = yes or no \n       yes = only build neighbor list once at start of run and never rebuild \n       no = rebuild neighbor list according to other settings \n       cluster value = yes or no \n       yes = check bond,angle,etc neighbor list for nearby clusters \n       no = do not check bond,angle,etc neighbor list for nearby clusters \n       include value = group-ID \n       group-ID = only build pair neighbor lists for atoms in this group \n       exclude values: \n       type M N \n       M,N = exclude if one atom in pair is type M, other is type N \n       group group1-ID group2-ID \n       group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd \n       molecule/intra group-ID \n       group-ID = exclude if both atoms are in the same molecule and in group \n       molecule/inter group-ID \n       group-ID = exclude if both atoms are in different molecules and in group \n       none \n       delete all exclude settings \n       page value = N \n       N = number of pairs stored in a single neighbor page \n       one value = N \n       N = max number of neighbors of one atom \n       binsize value = size \n       size = bin size for neighbor list construction (distance units) \n       collection/type values = N arg1 ... argN \n       N = number of custom collections \n       arg = N separate lists of types (see below) \n       collection/interval values = N arg1 ... argN \n       N = number of custom collections \n       arg = N separate cutoffs for intervals (see below) \n", + "examples": "\n```lmps\nneigh_modify every 2 delay 10 check yes page 100000\nneigh_modify exclude type 2 3\nneigh_modify exclude group frozen frozen check no\nneigh_modify exclude group residue1 chain3\nneigh_modify exclude molecule/intra rigid\nneigh_modify collection/type 2 1*2,5 3*4\nneigh_modify collection/interval 2 1.0 10.0\n```\n", + "html_filename": "neigh_modify.html", + "short_description": "This command sets parameters that affect the building and use of\npairwise neighbor lists", + "description": "This command sets parameters that affect the building and use of\npairwise neighbor lists. Depending on what pair interactions and other\ncommands are defined, a simulation may require one or more neighbor\nlists.\n\nThe *every*, *delay*, *check*, and *once* options affect how often lists\nare built as a simulation runs. The *delay* setting means never build\nnew lists until at least N steps after the previous build. The *every*\nsetting means attempt to build lists every M steps (after the delay has\npassed). If the *check* setting is *no*, the lists are built on the\nfirst step that satisfies the *delay* and *every* settings. If the\n*check* setting is *yes*, then the *every* and *delay* settings\ndetermine when a build may possibly be performed, but an actual build\nonly occurs if at least one atom has moved more than half the neighbor\nskin distance (specified in the [neighbor ](https://docs.lammps.org/neighbor.html) command)\nsince the last neighbor list build.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Impact of neighbor list settings \n >The choice of neighbor list settings can have a significant impact on\n > the (parallel) performance of LAMMPS and the correctness of the\n > simulation results. Since building the neighbor lists is time\n > consuming, doing it less frequently can speed up a calculation. If\n > the lists are rebuilt too infrequently, however, interacting pairs\n > may be missing and thus the resulting pairwise interactions\n > incorrect. The optimal settings depend on many factors like the\n > properties of the simulated system (density, geometry, topology,\n > temperature, pressure), the force field parameters and settings, the\n > size of the timestep, neighbor list skin distance and more. The\n > default settings are chosen to be very conservative to guarantee\n > correctness of the simulation. They depend on the *check* flag\n > heuristics to reduce the number of neighbor list rebuilds at a minor\n > expense for executing the check. Determining the correctness of a\n > specific choice of neighbor list settings is complicated by the fact\n > that a neighbor list rebuild changes the order in which pairwise\n > interactions are computed and thus\n > - due to the limitations of floating-point math - the trajectory. \n > \n\nIf the *once* setting is yes, then the neighbor list is only built once\nat the beginning of each run, and never rebuilt, except on steps when a\nrestart file is written, or steps when a fix forces a rebuild to occur\n(e.g. fixes that create or delete atoms, such as [fix deposit](https://docs.lammps.org/fix_deposit.html) or [fix evaporate ](https://docs.lammps.org/fix_evaporate.html)). This setting\nshould only be made if you are certain atoms will not move far enough\nthat the neighbor list should be rebuilt, e.g. running a simulation of a\ncold crystal. Note that it is not that expensive to check if neighbor\nlists should be rebuilt.\n\nWhen the rRESPA integrator is used (see the [run_style ](https://docs.lammps.org/run_style.html)\ncommand), the *every* and *delay* parameters refer to the longest\n(outermost) timestep.\n\nThe *cluster* option does a sanity test every time neighbor lists are\nbuilt for bond, angle, dihedral, and improper interactions, to check\nthat each set of 2, 3, or 4 atoms is a cluster of nearby atoms. It\ndoes this by computing the distance between pairs of atoms in the\ninteraction and ensuring they are not further apart than half the\nperiodic box length. If they are, an error is generated, since the\ninteraction would be computed between far-away atoms instead of their\nnearby periodic images. The only way this should happen is if the\npairwise cutoff is so short that atoms that are part of the same\ninteraction are not communicated as ghost atoms. This is an unusual\nmodel (e.g. no pair interactions at all) and the problem can be fixed\nby use of the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command. Note\nthat to save time, the default *cluster* setting is *no*, so that this\ncheck is not performed.\n\nThe *include* option limits the building of pairwise neighbor lists to\natoms in the specified group. This can be useful for models where a\nlarge portion of the simulation is particles that do not interact with\nother particles or with each other via pairwise interactions. The\ngroup specified with this option must also be specified via the\n[atom_modify first ](https://docs.lammps.org/atom_modify.html) command. Note that specifying\n\"all\" as the group-ID effectively turns off the *include* option.\n\nThe *exclude* option turns off pairwise interactions between certain\npairs of atoms, by not including them in the neighbor list. These are\nsample scenarios where this is useful:\n\n* In crack simulations, pairwise interactions can be shut off between 2\n slabs of atoms to effectively create a crack.\n* When a large collection of atoms is treated as frozen, interactions\n between those atoms can be turned off to save needless\n computation. E.g. Using the [fix setforce ](https://docs.lammps.org/fix_setforce.html) command\n to freeze a wall or portion of a bio-molecule.\n* When one or more rigid bodies are specified, interactions within each\n body can be turned off to save needless computation. See the [fix rigid ](https://docs.lammps.org/fix_rigid.html) command for more details.\n\nThe *exclude type* option turns off the pairwise interaction if one\natom is of type M and the other of type N. M can equal N. The\n*exclude group* option turns off the interaction if one atom is in the\nfirst group and the other is the second. Group1-ID can equal\ngroup2-ID. The *exclude molecule/intra* option turns off the\ninteraction if both atoms are in the specified group and in the same\nmolecule, as determined by their molecule ID. The *exclude\nmolecule/inter* turns off the interaction between pairs of atoms that\nhave different molecule IDs and are both in the specified group.\n\nEach of the exclude options can be specified multiple times. The\n*exclude type* option is the most efficient option to use; it requires\nonly a single check, no matter how many times it has been specified.\nThe other exclude options are more expensive if specified multiple\ntimes; they require one check for each time they have been specified.\n\nNote that the exclude options only affect pairwise interactions; see\nthe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command for information on\nturning off bond interactions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Excluding pairwise interactions will not work correctly when\n > also using a long-range solver via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. LAMMPS will give a warning\n > to this effect. This is because the short-range pairwise interaction\n > needs to subtract off a term from the total energy for pairs whose\n > short-range interaction is excluded, to compensate for how the\n > long-range solver treats the interaction. This is done correctly for\n > pairwise interactions that are excluded (or weighted) via the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command. But it is not done for\n > interactions that are excluded via these neigh_modify exclude options. \n > \n\nThe *page* and *one* options affect how memory is allocated for the\nneighbor lists. For most simulations the default settings for these\noptions are fine, but if a very large problem is being run or a very\nlong cutoff is being used, these parameters can be tuned. The indices\nof neighboring atoms are stored in \"pages\", which are allocated one\nafter another as they fill up. The size of each page is set by the\n*page* value. A new page is allocated when the next atom's neighbors\ncould potentially overflow the list. This threshold is set by the\n*one* value which tells LAMMPS the maximum number of neighbor's one\natom can have.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS can crash without an error message if the number of\n > neighbors for a single particle is larger than the *page* setting,\n > which means it is much, much larger than the *one* setting. This is\n > because LAMMPS does not error check these limits for every pairwise\n > interaction (too costly), but only after all the particle's neighbors\n > have been found. This problem usually means something is very wrong\n > with the way you have setup your problem (particle spacing, cutoff\n > length, neighbor skin distance, etc). If you really expect that many\n > neighbors per particle, then boost the *one* and *page* settings\n > accordingly. \n > \n\nThe *binsize* option allows you to specify what size of bins will be\nused in neighbor list construction to sort and find neighboring atoms.\nBy default, for [neighbor style bin ](https://docs.lammps.org/neighbor.html), LAMMPS uses bins\nthat are 1/2 the size of the maximum pair cutoff. For [neighbor style multi ](https://docs.lammps.org/neighbor.html),\nthe bins are 1/2 the size of the collection interaction cutoff.\nTypically these are good values for minimizing the time for\nneighbor list construction. This setting overrides the default.\nIf you make it too big, there is little overhead due to\nlooping over bins, but more atoms are checked. If you make it too\nsmall, the optimal number of atoms is checked, but bin overhead goes\nup. If you set the binsize to 0.0, LAMMPS will use the default\nbinsize of 1/2 the cutoff.\n\nThe *collection/type* option allows you to define collections of atom\ntypes, used by the *multi* neighbor mode. By grouping atom types with\nsimilar physical size or interaction cutoff lengths, one may be able\nto improve performance by reducing\noverhead. You must first specify the number of collections N to be\ndefined followed by N lists of types. Each list consists of a series of type\nranges separated by commas. The range can be specified as a\nsingle numeric value, or a wildcard asterisk can be used to specify a range\nof values. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". For\nexample, if M = the number of atom types, then an asterisk with no numeric\nvalues means all types from 1 to M. A leading asterisk means all types\nfrom 1 to n (inclusive). A trailing asterisk means all types from n to M\n(inclusive). A middle asterisk means all types from m to n (inclusive).\nNote that all atom types must be included in exactly one of the N collections.\n\nThe *collection/interval* option provides a similar capability. This\ncommand allows a user to define collections by specifying a series of\ncutoff intervals. LAMMPS will automatically sort atoms into these\nintervals based on their type-dependent cutoffs or their finite size.\nYou must first specify the number of collections N to be defined\nfollowed by N values representing the upper cutoff of each interval.\nThis command is particularly useful for granular pair styles where the\ninteraction distance of particles depends on their radius and may not\ndepend on their atom type.\n", + "restrictions": "If the *delay* setting is non-zero, then it must be a multiple of the\n*every* setting.\n\nThe *molecule/intra* and *molecule/inter* exclusion options can only\nbe used with atom styles that define molecule IDs.\n\nThe value of the *page* setting must be at least 10x larger than the\n*one* setting. This ensures neighbor pages are not mostly empty\nspace.\n", + "related": "[neighbor ](https://docs.lammps.org/neighbor.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" +}, +{ + "command": [ + "pair_style mgpt" + ], + "syntax": [ + "pair_style mgpt" + ], + "args": [ + [ { - "arg": "rigid/local", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "rigidID", - "type": 2, - "choices": [] - }, - { - "arg": "input1", - "type": 2, - "choices": [] - }, - { - "arg": "input2", - "type": 2, + "arg": "mgpt", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rigid/local = style name of this compute command\n* rigidID = ID of fix rigid/small command or one of its variants\n* input = one or more rigid body attributes \n *        possible attributes = id, mol, mass, \n         x, y, z, xu, yu, zu, ix, iy, iz \n         vx, vy, vz, fx, fy, fz, \n         omegax, omegay, omegaz, \n         angmomx, angmomy, angmomz, \n         quatw, quati, quatj, quatk, \n         tqx, tqy, tqz, \n         inertiax, inertiay, inertiaz \n         id = atom ID of atom within body which owns body properties \n         mol = molecule ID used to define body in [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command \n         mass = total mass of body \n         x,y,z = center of mass coords of body \n         xu,yu,zu = unwrapped center of mass coords of body \n         ix,iy,iz = box image that the center of mass is in \n         vx,vy,vz = center of mass velocities \n         fx,fy,fz = force of center of mass \n         omegax,omegay,omegaz = angular velocity of body \n         angmomx,angmomy,angmomz = angular momentum of body \n         quatw,quati,quatj,quatk = quaternion components for body \n         tqx,tqy,tqz = torque on body \n         inertiax,inertiay,inertiaz = diagonalized moments of inertia of body \n", - "examples": "\n```lmps\ncompute 1 all rigid/local myRigid mol x y z\n```\n", - "html_filename": "compute_rigid_local.html", - "short_description": "Define a computation that simply stores rigid body attributes for\nrigid bodies defined by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nor one of its NVE, NVT, NPT, NPH variants", - "description": "Define a computation that simply stores rigid body attributes for\nrigid bodies defined by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command\nor one of its NVE, NVT, NPT, NPH variants. The data is stored as\nlocal data so it can be accessed by other [output commands ](https://docs.lammps.org/Howto_output.html) that process local data, such as the\n[compute reduce ](https://docs.lammps.org/compute_reduce.html) or [dump local ](https://docs.lammps.org/dump.html)\ncommands.\n\nNote that this command only works with the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command or its variants, not the fix rigid\ncommand and its variants. The ID of the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command used to define rigid bodies must\nbe specified as *rigidID* . The [fix rigid ](https://docs.lammps.org/fix_rigid.html) command is\ntypically used to define a handful of (potentially very large) rigid\nbodies. It outputs similar per-body information as this command\ndirectly from the fix as global data; see the [fix rigid ](https://docs.lammps.org/fix_rigid.html) page for details\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor. If the atom is not in the specified\n*group-ID* or is not part of a rigid body it is skipped. If it is not\nthe atom within a body that is assigned to store the body information\nit is skipped (only one atom per body is so assigned). If it is the\nassigned atom, then the info for that body is output. This means that\ninformation for \\(N\\) bodies is generated. \\(N\\) may be less than the\nnumber of bodies defined by the fix rigid command, if the atoms in some bodies\nare not in the *group-ID* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Which atom in a body owns the body info is determined internal\n > to LAMMPS; it's the one nearest the geometric center of the body.\n > Typically you should avoid this complication, by defining the group\n > associated with this fix to include/exclude entire bodies. \n > \n\nNote that as atoms and bodies migrate from processor to processor,\nthere will be no consistent ordering of the entries within the local\nvector or array from one timestep to the next.\n\nHere is an example of how to use this compute to dump rigid body info\nto a file:\n\n```lmps\ncompute 1 all rigid/local myRigid mol x y z fx fy fz\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_1[6] c_1[7]\n```\n----------\n\nThis section explains the rigid body attributes that can be specified.\n\nThe *id* attribute is the atom-ID of the atom which owns the rigid body, which is\nassigned by the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command.\n\nThe *mol* attribute is the molecule ID of the rigid body. It should\nbe the molecule ID which all of the atoms in the body belong to, since\nthat is how the [fix rigid/small ](https://docs.lammps.org/fix_rigid.html) command defines its\nrigid bodies.\n\nThe *mass* attribute is the total mass of the rigid body.\n\nThere are two options for outputting the coordinates of the center of\nmass (COM) of the body. The *x*, *y*, *z* attributes write the COM\n\"unscaled\", in the appropriate distance [units ](https://docs.lammps.org/units.html)\n(\\(\\mathring{\\textrm{A}}\\), \\(\\sigma\\), etc). Use *xu*, *yu*, *zu* if you want the COM \"unwrapped\" by\nthe image flags for each body. Unwrapped means that if the body\nCOM has passed through a periodic boundary one or more times, the value\nis generated what the COM coordinate would be if it had not been\nwrapped back into the periodic box.\n\nThe image flags for the body can be generated directly using the *ix*,\n*iy*, *iz* attributes. For periodic dimensions, they specify which\nimage of the simulation box the COM is considered to be in. An image\nof 0 means it is inside the box as defined. A value of 2 means add 2\nbox lengths to get the true value. A value of \\(-1\\) means subtract 1 box\nlength to get the true value. LAMMPS updates these flags as the rigid\nbody COMs cross periodic boundaries during the simulation.\n\nThe *vx*, *vy*, *vz*, *fx*, *fy*, *fz* attributes are components of\nthe COM velocity and force on the COM of the body.\n\nThe *omegax*, *omegay*, and *omegaz* attributes are the angular\nvelocity components of the body in the system frame around its COM.\n\nThe *angmomx*, *angmomy*, and *angmomz* attributes are the angular\nmomentum components of the body in the system frame around its COM.\n\nThe *quatw*, *quati*, *quatj*, and *quatk* attributes are the\ncomponents of the 4-vector quaternion representing the orientation of\nthe rigid body. See the [set ](https://docs.lammps.org/set.html) command for an explanation of\nthe quaternion vector.\n\nThe *tqx*, *tqy*, *tqz* attributes are components of the torque acting\non the body around its COM.\n\nThe *inertiax*, *inertiay*, *inertiaz* attributes are components of\ndiagonalized inertia tensor for the body (i.e., the three moments of inertia\nfor the body around its principal axes), as computed internally by\nLAMMPS.\n\n----------\n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of rigid bodies. If a single keyword is\nspecified, a local vector is produced. If two or more keywords are\nspecified, a local array is produced where the number of columns = the\nnumber of keywords. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector or array values will be in whatever [units ](https://docs.lammps.org/units.html) the\ncorresponding attribute is in:\n\n* id,mol = unitless\n* mass = mass units\n* x,y,z and xy,yu,zu = distance units\n* vx,vy,vz = velocity units\n* fx,fy,fz = force units\n* omegax,omegay,omegaz = radians/time units\n* angmomx,angmomy,angmomz = mass\\*distance\\ \\(^2\\)\\ /time units\n* quatw,quati,quatj,quatk = unitless\n* tqx,tqy,tqz = torque units\n* inertiax,inertiay,inertiaz = mass\\*distance\\ \\(^2\\) units\n", - "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style mgpt\npair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin Omega\ncp ~/lammps/potentials/Ta6.8x.mgpt.parmin parmin\ncp ~/lammps/potentials/Ta6.8x.mgpt.potin potin\npair_coeff * * parmin potin Omega volpress yes nbody 1234 precision double\npair_coeff * * parmin potin Omega volpress yes nbody 12\n```\n", + "html_filename": "pair_mgpt.html", + "short_description": "Within DFT quantum mechanics, generalized pseudopotential theory (GPT)\n(**Moriarty1**) provides a first-principles approach to\nmulti-ion interatomic potentials in d-band transition metals, with a\nvolume-dependent, real-space total-energy functional for the N-ion\nelemental bulk material in the form\n\\[\n E_{\\rm tot}({\\bf R}_1 \\ldots {\\bf R}_N) = NE_{\\rm vol}(\\Omega )\n + \\frac{1}{2} \\sum _{i,j} \\mbox{}^\\prime \\ v_2(ij;\\Omega )\n + \\frac{1}{6} \\sum _{i,j,k} \\mbox{}^\\prime \\ v_3(ijk;\\Omega )\n + \\frac{1}{24} \\sum _{i,j,k,l} \\mbox{}^\\prime \\ v_4(ijkl;\\Omega )\\]\nwhere the prime on each summation sign indicates the exclusion of all\nself-interaction terms from the summation", + "description": "Within DFT quantum mechanics, generalized pseudopotential theory (GPT)\n(**Moriarty1**) provides a first-principles approach to\nmulti-ion interatomic potentials in d-band transition metals, with a\nvolume-dependent, real-space total-energy functional for the N-ion\nelemental bulk material in the form\n\\[\n E_{\\rm tot}({\\bf R}_1 \\ldots {\\bf R}_N) = NE_{\\rm vol}(\\Omega )\n + \\frac{1}{2} \\sum _{i,j} \\mbox{}^\\prime \\ v_2(ij;\\Omega )\n + \\frac{1}{6} \\sum _{i,j,k} \\mbox{}^\\prime \\ v_3(ijk;\\Omega )\n + \\frac{1}{24} \\sum _{i,j,k,l} \\mbox{}^\\prime \\ v_4(ijkl;\\Omega )\\]\nwhere the prime on each summation sign indicates the exclusion of all\nself-interaction terms from the summation. The leading volume term\nE_vol as well as the two-ion central-force pair potential v_2 and the\nthree- and four-ion angular-force potentials, v_3 and v_4, depend\nexplicitly on the atomic volume Omega, but are structure independent\nand transferable to all bulk ion configurations, either ordered or\ndisordered, and with of without the presence of point and line\ndefects. The simplified model GPT or MGPT (**Moriarty2**,\n**Moriarty3**), which retains the form of E_tot and permits\nmore efficient large-scale atomistic simulations, derives from the GPT\nthrough a series of systematic approximations applied to E_vol and the\npotentials v_n that are valid for mid-period transition metals with\nnearly half-filled d bands.\n\nBoth analytic (**Moriarty2**) and matrix\n(**Moriarty3**) representations of MGPT have been developed.\nIn the more general matrix representation, which can also be applied\nto f-band actinide metals and permits both canonical and non-canonical\nd/f bands, the multi-ion potentials are evaluated on the fly during a\nsimulation through d- or f-state matrix multiplication, and the forces\nthat move the ions are determined analytically. Fast matrix-MGPT\nalgorithms have been developed independently by Glosli\n(**Glosli**, **Moriarty3**) and by Oppelstrup\n(**Oppelstrup**)\n\nThe *mgpt* pair style calculates forces, energies, and the total\nenergy per atom, E_tot/N, using the Oppelstrup matrix-MGPT algorithm.\nInput potential and control data are entered through the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Each material treated requires\ninput parmin and potin potential files, as shown in the above\nexamples, as well as specification by the user of the initial atomic\nvolume Omega through pair_coeff. At the beginning of a time step in\nany simulation, the total volume of the simulation cell V should\nalways be equal to Omega\\*N, where N is the number of metal ions\npresent, taking into account the presence of any vacancies and/or\ninterstitials in the case of a solid. In a constant-volume\nsimulation, which is the normal mode of operation for the *mgpt* pair\nstyle, Omega, V and N all remain constant throughout the simulation\nand thus are equal to their initial values. In a constant-stress\nsimulation, the cell volume V will change (slowly) as the simulation\nproceeds. After each time step, the atomic volume should be updated\nby the code as Omega = V/N. In addition, the volume term E_vol and\nthe potentials v_2, v_3 and v_4 have to be removed at the end of the\ntime step, and then respecified at the new value of Omega. In all\nsimulations, Omega must remain within the defined volume range for\nE_vol and the potentials for the given material.\n\nThe default option volpress yes in the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand includes all volume derivatives of E_tot required to calculate\nthe stress tensor and pressure correctly. The option volpress no\ndisregards the pressure contribution resulting from the volume term\nE_vol, and can be used for testing and analysis purposes. The\nadditional optional variable nbody controls the specific terms in\nE_tot that are calculated. The default option and the normal option\nfor mid-period transition and actinide metals is nbody 1234 for which\nall four terms in E_tot are retained. The option nbody 12, for\nexample, retains only the volume term and the two-ion pair potential\nterm and can be used for GPT series-end transition metals that can be\nwell described without v_3 and v_4. The nbody option can also be used\nto test or analyze the contribution of any of the four terms in E_tot\nto a given calculated property.\n\nThe *mgpt* pair style makes extensive use of matrix algebra and\nincludes optimized kernels for the BlueGene/Q architecture and the\nIntel/AMD (x86) architectures. When compiled with the appropriate\ncompiler and compiler switches (-msse3 on x86, and using the IBM XL\ncompiler on BG/Q), these optimized routines are used automatically.\nFor BG/Q machines, building with the default Makefile for that\narchitecture (e.g., \"make bgq\") should enable the optimized algebra\nroutines. For x-86 machines, there is a provided Makefile.mgptfast\nwhich enables the fast algebra routines, i.e. build LAMMPS with \"make\nmgptfast\". The user will be informed in the output files of the\nmatrix kernels in use. To further improve speed, on x86 the option\nprecision single can be added to the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand line, which improves speed (up to a factor of two) at the cost\nof doing matrix calculations with 7 digit precision instead of the\ndefault 16. For consistency the default option can be specified\nexplicitly by the option precision double.\n\nAll remaining potential and control data are contained with the parmin\nand potin files, including cutoffs, atomic mass, and other basic MGPT\nvariables. Specific MGPT potential data for the transition metals\ntantalum (Ta4 and Ta6.8x potentials), molybdenum (Mo5.2 potentials),\nand vanadium (V6.1 potentials) are contained in the LAMMPS potentials\ndirectory. The stored files are, respectively, Ta4.mgpt.parmin,\nTa4.mgpt.potin, Ta6.8x.mgpt.parmin, Ta6.8x.mgpt.potin,\nMo5.2.mgpt.parmin, Mo5.2.mgpt.potin, V6.1.mgpt.parmin, and\nV6.1.mgpt.potin . Useful corresponding informational \"README\" files\non the Ta4, Ta6.8x, Mo5.2 and V6.1 potentials are also included in the\npotentials directory. These latter files indicate the volume mesh and\nrange for each potential and give appropriate references for the\npotentials. It is expected that MGPT potentials for additional\nmaterials will be added over time.\n\nUseful example MGPT scripts are given in the examples/PACKAGES/mgpt\ndirectory. These scripts show the necessary steps to perform\nconstant-volume calculations and simulations. It is strongly\nrecommended that the user work through and understand these examples\nbefore proceeding to more complex simulations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For good performance, LAMMPS should be built with the compiler\n > flags \"-O3 -msse3 -funroll-loops\" when including this pair style. The\n > src/MAKE/OPTIONS/Makefile.mgptfast is an example machine Makefile with\n > these options included as part of a standard MPI build. Note that it\n > as provided, it will build with whatever low-level compiler (g++, icc,\n > etc) is the default for your MPI installation. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneeds to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Moriarty1)** Moriarty, Physical Review B, 38, 3199 (1988). \n \n**(Moriarty2)** Moriarty, Physical Review B, 42, 1609 (1990).\nMoriarty, Physical Review B 49, 12431 (1994). \n \n**(Moriarty3)** Moriarty, Benedict, Glosli, Hood, Orlikowski, Patel, Soderlind, Streitz, Tang, and Yang,\nJournal of Materials Research, 21, 563 (2006). \n \n**(Glosli)** Glosli, unpublished, 2005.\nStreitz, Glosli, Patel, Chan, Yates, de Supinski, Sexton and Gunnels, Journal of Physics: Conference\nSeries, 46, 254 (2006). \n \n**(Oppelstrup)** Oppelstrup, unpublished, 2015.\nOppelstrup and Moriarty, to be published. \n ", + "restrictions": "This pair style is part of the MGPT package and is only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe MGPT potentials require the [newtion ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair style interactions.\n\nThe stored parmin and potin potential files provided with LAMMPS in\nthe \"potentials\" directory are written in Rydberg atomic units, with\nenergies in Rydbergs and distances in Bohr radii. The *mgpt* pair\nstyle converts Rydbergs to Hartrees to make the potential files\ncompatible with LAMMPS electron [units ](https://docs.lammps.org/units.html).\n\nThe form of E_tot used in the *mgpt* pair style is only appropriate\nfor elemental bulk solids and liquids. This includes solids with\npoint and extended defects such as vacancies, interstitials, grain\nboundaries and dislocations. Alloys and free surfaces, however,\nrequire significant modifications, which are not included in the\n*mgpt* pair style. Likewise, the *hybrid* pair style is not allowed,\nwhere MGPT would be used for some atoms but not for others.\n\nElectron-thermal effects are not included in the standard MGPT\npotentials provided in the \"potentials\" directory, where the\npotentials have been constructed at zero electron temperature.\nPhysically, electron-thermal effects may be important in 3d (e.g., V)\nand 4d (e.g., Mo) transition metals at high temperatures near melt and\nabove. It is expected that temperature-dependent MGPT potentials for\nsuch cases will be added over time.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style sph/heatconduction", - "pair_style sph/heatconduction/gpu" + "dihedral_style fourier", + "dihedral_style fourier/intel", + "dihedral_style fourier/omp" ], "syntax": [ - "pair_style sph/heatconduction" + "dihedral_style fourier" ], "args": [ [ { - "arg": "pair_style", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "sph/heatconduction", + "arg": "fourier", "type": 3, "choices": [ - "sph/heatconduction", - "sph/heatconduction/gpu" + "fourier", + "fourier/intel", + "fourier/omp" ] } ] ], "parameters": "", - "examples": "\n```lmps\npair_style sph/heatconduction\npair_coeff * * 1.0 2.4\n```\n", - "html_filename": "pair_sph_heatconduction.html", - "short_description": "The sph/heatconduction style computes heat transport between SPH particles", - "description": "The sph/heatconduction style computes heat transport between SPH particles.\nThe transport model is the diffusion equation for the internal energy.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* D diffusion coefficient (length\\^2/time units)\n* h kernel function cutoff (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n", - "restrictions": "This pair style is part of the SPH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), pair_sph/rhosum\n" + "examples": "\n```lmps\ndihedral_style fourier\ndihedral_coeff 1 3 -0.846200 3 0.0 7.578800 1 0 0.138000 2 -180.0\n```\n", + "html_filename": "dihedral_fourier.html", + "short_description": "The *fourier* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,m} K_i [ 1.0 + \\cos ( n_i \\phi - d_i ) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(m\\) (integer >=1)\n* \\(K_1\\) (energy)\n* \\(n_1\\) (integer >= 0)\n* \\(d_1\\) (degrees)\n* [...]\n* \\(K_m\\) (energy)\n* \\(n_m\\) (integer >= 0)\n* \\(d_m\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", + "description": "The *fourier* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,m} K_i [ 1.0 + \\cos ( n_i \\phi - d_i ) ]\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(m\\) (integer >=1)\n* \\(K_1\\) (energy)\n* \\(n_1\\) (integer >= 0)\n* \\(d_1\\) (degrees)\n* [...]\n* \\(K_m\\) (energy)\n* \\(n_m\\) (integer >= 0)\n* \\(d_m\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "fix_modify AtC fe_md_boundary" + "fix msst" ], "syntax": [ - "fix_modify fe_md_boundary " + "fix ID group-ID msst dir shockvel keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "fe_md_boundary", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "msst", "type": 1, "choices": [] }, { - "arg": "", + "arg": "z", "type": 3, "choices": [ - "faceset", - "interpolate", - "no_boundary" + "x", + "y", + "z" + ] + }, + { + "arg": "shockvel", + "type": 2, + "choices": [] + }, + { + "arg": "dftb", + "type": 3, + "choices": [ + "q", + "mu", + "p0", + "v0", + "e0", + "tscale", + "beta", + "dftb" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fe_md_boundary = name of the AtC sub-command\n* faceset or interpolate or no_boundary \n", - "examples": "\n```lmps\nfix_modify AtC fe_md_boundary interpolate\n```\n", - "html_filename": "atc_fe_md_boundary.html", - "short_description": "Specifies different methods for computing fluxes between between the MD\nand FE integration regions", - "description": "Specifies different methods for computing fluxes between between the MD\nand FE integration regions. Faceset defines a faceset separating the MD\nand FE regions and uses finite element face quadrature to compute the\nflux. Interpolate uses a reconstruction scheme to approximate the flux,\nwhich is more robust but less accurate if the MD/FE boundary does\ncorrespond to a faceset. No boundary results in no fluxes between the\nsystems being computed.\n", - "restrictions": "If *faceset* is used, all the AtC non-boundary atoms must lie within and\ncompletely fill the domain enclosed by the faceset.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* msst = style name of this fix\n* dir = x or y or z\n* shockvel = shock velocity (strictly positive, distance/time units)\n* zero or more keyword value pairs may be appended\n* keyword = q or mu or p0 or v0 or e0 or tscale or beta or dftb \n *        q value = cell mass-like parameter (mass\\^2/distance\\^4 units) \n *        mu value = artificial viscosity (mass/length/time units) \n *        p0 value = initial pressure in the shock equations (pressure units) \n *        v0 value = initial simulation cell volume in the shock equations (distance\\^3 units) \n *        e0 value = initial total energy (energy units) \n *        tscale value = reduction in initial temperature (unitless fraction between 0.0 and 1.0) \n *        dftb value = yes or no for whether using MSST in conjunction with DFTB+ \n *        beta value = scale factor for improved energy conservation \n", + "examples": "\n```lmps\nfix 1 all msst y 100.0 q 1.0e5 mu 1.0e5\nfix 2 all msst z 50.0 q 1.0e4 mu 1.0e4 v0 4.3419e+03 p0 3.7797e+03 e0 -9.72360e+02 tscale 0.01\nfix 1 all msst y 100.0 q 1.0e5 mu 1.0e5 dftb yes beta 0.5\n```\n", + "html_filename": "fix_msst.html", + "short_description": "This command performs the Multi-Scale Shock Technique (MSST)\nintegration to update positions and velocities each timestep to mimic\na compressive shock wave passing over the system", + "description": "This command performs the Multi-Scale Shock Technique (MSST)\nintegration to update positions and velocities each timestep to mimic\na compressive shock wave passing over the system. See **Reed**\nfor a detailed description of this method. The MSST varies the cell\nvolume and temperature in such a way as to restrain the system to the\nshock Hugoniot and the Rayleigh line. These restraints correspond to\nthe macroscopic conservation laws dictated by a shock\nfront. *shockvel* determines the steady shock velocity that will be\nsimulated.\n\nTo perform a simulation, choose a value of *q* that provides volume\ncompression on the timescale of 100 fs to 1 ps. If the volume is not\ncompressing, either the shock speed is chosen to be below the material\nsound speed or *p0* has been chosen inaccurately. Volume compression\nat the start can be sped up by using a non-zero value of *tscale* . Use\nthe smallest value of *tscale* that results in compression.\n\nUnder some special high-symmetry conditions, the pressure (volume)\nand/or temperature of the system may oscillate for many cycles even\nwith an appropriate choice of mass-like parameter *q* . Such\noscillations have physical significance in some cases. The optional\n*mu* keyword adds an artificial viscosity that helps break the system\nsymmetry to equilibrate to the shock Hugoniot and Rayleigh line more\nrapidly in such cases.\n\nThe keyword *tscale* is a factor between 0 and 1 that determines what\nfraction of thermal kinetic energy is converted to compressive strain\nkinetic energy at the start of the simulation. Setting this parameter\nto a non-zero value may assist in compression at the start of\nsimulations where it is slow to occur.\n\nIf keywords *e0*, *p0*,or *v0* are not supplied, these quantities will\nbe calculated on the first step, after the energy specified by\n*tscale* is removed. The value of *e0* is not used in the dynamical\nequations, but is used in calculating the deviation from the Hugoniot.\n\nThe keyword *beta* is a scaling term that can be added to the MSST\nionic equations of motion to account for drift in the conserved\nquantity during long timescale simulations, similar to a Berendsen\nthermostat. See **Reed** and **Goldman2** for more\ndetails. The value of *beta* must be between 0.0 and 1.0 inclusive.\nA value of 0.0 means no contribution, a value of 1.0 means a full\ncontribution.\n\nValues of shockvel less than a critical value determined by the\nmaterial response will not have compressive solutions. This will be\nreflected in lack of significant change of the volume in the MSST.\n\nFor all pressure styles, the simulation box stays orthogonal in shape.\nParrinello-Rahman boundary conditions (tilted box) are supported by\nLAMMPS, but are not implemented for MSST.\n\nThis fix computes a temperature and pressure and potential energy each\ntimestep. To do this, the fix creates its own computes of style \"temp\"\n\"pressure\", and \"pe\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_MSST_temp all temp\ncompute fix-ID_MSST_press all pressure fix-ID_MSST_temp\n\ncompute fix-ID_MSST_pe all pe\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the IDs of the\nnew computes are the fix-ID + \"_MSST_temp\" or \"MSST_press\" or\n\"_MSST_pe\". The group for the new computes is \"all\".\n\n----------\n\nThe *dftb* keyword is to allow this fix to be used when LAMMPS is\nbeing driven by DFTB+, a density-functional tight-binding code. If the\nkeyword *dftb* is used with a value of *yes*, then the MSST equations\nare altered to account for the electron entropy contribution to the\nHugonio relations and total energy. See **Reed2** and\n**Goldman2** for details on this contribution. In this case,\nyou must define a [fix external ](https://docs.lammps.org/fix_external.html) command in your\ninput script, which is used to callback to DFTB+ during the LAMMPS\ntimestepping. DFTB+ will communicate its info to LAMMPS via that fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of all internal variables to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThe progress of the MSST can be monitored by printing the global\nscalar and global vector quantities computed by the fix.\n\nAs mentioned above, the scalar is the cumulative energy change due to\nthe fix. By monitoring the thermodynamic *econserve* output, this can\nbe used to test if the MD timestep is sufficiently small for accurate\nintegration of the dynamic equations.\n\nThe global vector contains four values in the following order. The\nvector values output by this fix are \"intensive\".\n\n[\\ *dhugoniot*, *drayleigh*, *lagrangian_speed*,\n*lagrangian_position*]\n\n1. *dhugoniot* is the departure from the Hugoniot (temperature units).\n2. *drayleigh* is the departure from the Rayleigh line (pressure units).\n3. *lagrangian_speed* is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).\n4. *lagrangian_position* is the computational cell position in the reference frame moving at the shock speed. This is usually a good estimate of distance of the computational cell behind the shock front.\n\nTo print these quantities to the log file with descriptive column\nheaders, the following LAMMPS commands are suggested:\n\n```lmps\nfix msst all msst z\nvariable dhug equal f_msst[1]\nvariable dray equal f_msst[2]\nvariable lgr_vel equal f_msst[3]\nvariable lgr_pos equal f_msst[4]\nthermo_style custom step temp ke pe lz pzz econserve v_dhug v_dray v_lgr_vel v_lgr_pos f_msst\n```\n\n**(Reed)** Reed, Fried, and Joannopoulos, Phys. Rev. Lett., 90, 235503\n(2003). \n \n**(Goldman2)** Goldman, Srinivasan, Hamel, Fried, Gaus, and Elstner,\nJ. Phys. Chem. C, 117, 7885 (2013). \n \n**(Reed2)** Reed, J. Phys. Chem. C, 116, 2205 (2012). \n ", + "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll cell dimensions must be periodic. This fix can not be used with a\ntriclinic cell. The MSST fix has been tested only for the group-ID\nall.\n", + "related": "[fix nphug ](https://docs.lammps.org/fix_nphug.html), [fix deform ](https://docs.lammps.org/fix_deform.html)\n" }, { "command": [ - "angle_style harmonic", - "angle_style harmonic/intel", - "angle_style harmonic/kk", - "angle_style harmonic/omp" + "compute smd/ulsph/num/neighs" ], "syntax": [ - "angle_style harmonic" + "compute ID group-ID smd/ulsph/num/neighs" ], "args": [ [ { - "arg": "angle_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "harmonic", - "type": 3, - "choices": [ - "harmonic", - "harmonic/intel", - "harmonic/kk", - "harmonic/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "smd/ulsph/num/neighs", + "type": 1, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style harmonic\nangle_coeff 1 300.0 107.0\n```\n", - "html_filename": "angle_harmonic.html", - "short_description": "The *harmonic* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", - "description": "The *harmonic* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/num/neighs = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/ulsph/num/neighs\n```\n", + "html_filename": "compute_smd_ulsph_num_neighs.html", + "short_description": "Define a computation that returns the number of neighbor particles\ninside of the smoothing kernel radius for particles interacting via\nthe updated Lagrangian SPH pair style", + "description": "Define a computation that returns the number of neighbor particles\ninside of the smoothing kernel radius for particles interacting via\nthe updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute returns a per-particle vector, which can be accessed by\nany command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given dimensionless, see [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", + "related": "[compute smd/tlsph/num/neighs ](https://docs.lammps.org/compute_smd_tlsph_num_neighs.html)\n" }, { "command": [ - "units" + "dihedral_style charmm", + "dihedral_style charmm/intel", + "dihedral_style charmm/kk", + "dihedral_style charmm/omp", + "dihedral_style charmmfsw", + "dihedral_style charmmfsw/kk" ], "syntax": [ - "units style" + "dihedral_style style" ], "args": [ [ { - "arg": "units", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "nano", + "arg": "charmmfsw/kk", "type": 3, "choices": [ - "lj", - "real", - "metal", - "si", - "cgs", - "electron", - "micro", - "nano" + "charmm", + "charmmfsw", + "charmm/intel", + "charmm/kk", + "charmm/omp", + "charmmfsw/kk" ] } ] ], - "parameters": "* style = lj or real or metal or si or cgs or electron or micro or nano \n", - "examples": "\n```lmps\nunits metal\nunits lj\n```\n", - "html_filename": "units.html", - "short_description": "This command sets the style of units used for a simulation", - "description": "This command sets the style of units used for a simulation. It\ndetermines the units of all quantities specified in the input script\nand data file, as well as quantities output to the screen, log file,\nand dump files. Typically, this command is used at the very beginning\nof an input script.\n\nFor all units except *lj*, LAMMPS uses physical constants from\nwww.physics.nist.gov. For the definition of kcal in real units,\nLAMMPS uses the thermochemical calorie = 4.184 J.\n\nThe choice you make for units simply sets some internal conversion\nfactors within LAMMPS. This means that any simulation you perform for\none choice of units can be duplicated with any other unit setting\nLAMMPS supports. In this context \"duplicate\" means the particles will\nhave identical trajectories and all output generated by the simulation\nwill be identical. This will be the case for some number of timesteps\nuntil round-off effects accumulate, since the conversion factors for\ntwo different unit systems are not identical to infinite precision.\n\nTo perform the same simulation in a different set of units you must\nchange all the unit-based input parameters in your input script and\nother input files (data file, potential files, etc) correctly to the\nnew units. And you must correctly convert all output from the new\nunits to the old units when comparing to the original results. That\nis often not simple to do.\n\nPotential or table files may have a ``UNITS:`` tag included in the\nfirst line indicating the unit style those files were created for.\nIf the tag exists, its value will be compared to the chosen unit style\nand LAMMPS will stop with an error message if there is a mismatch.\nIn some select cases and for specific combinations of unit styles,\nLAMMPS is capable of automatically converting potential parameters\nfrom a file. In those cases, a warning message signaling that an\nautomatic conversion has happened is printed to the screen.\n\n----------\n\nFor style *lj*, all quantities are unitless. Without loss of\ngenerality, LAMMPS sets the fundamental quantities mass, \\(\\sigma\\),\n\\(\\epsilon\\), and the Boltzmann constant \\(k_B = 1\\). The\nmasses, distances, energies you specify are multiples of these\nfundamental values. The formulas relating the reduced or unitless\nquantity (with an asterisk) to the same quantity with units is also\ngiven. Thus you can use the mass, \\(\\sigma\\), and \\(\\epsilon\\)\nvalues for a specific material and convert the results from a unitless\nLJ simulation into physical quantities. Please note that using\nthese three properties as base, your unit of time has to conform\nto the relation \\(\\epsilon = \\frac{m \\sigma^2}{\\tau^2}\\) since\nenergy is a derived unit (in SI units you equivalently have the relation\n\\(1\\mathsf{J} = 1\\frac{\\mathsf{kg}\\cdot\\mathsf{m}^2}{\\mathsf{s}^2}\\)).\n\n* mass = mass or \\(m\\), where \\(M^* = \\frac{M}{m}\\)\n* distance = \\(\\sigma\\), where \\(x^* = \\frac{x}{\\sigma}\\)\n* time = \\(\\tau\\), where \\(\\tau^* = \\tau \\sqrt{\\frac{\\epsilon}{m \\sigma^2}}\\)\n* energy = \\(\\epsilon\\), where \\(E^* = \\frac{E}{\\epsilon}\\)\n* velocity = \\(\\frac{\\sigma}{\\tau}\\), where \\(v^* = v \\frac{\\tau}{\\sigma}\\)\n* force = \\(\\frac{\\epsilon}{\\sigma}\\), where \\(f^* = f \\frac{\\sigma}{\\epsilon}\\)\n* torque = \\(\\epsilon\\), where \\(t^* = \\frac{t}{\\epsilon}\\)\n* temperature = reduced LJ temperature, where \\(T^* = \\frac{T k_B}{\\epsilon}\\)\n* pressure = reduced LJ pressure, where \\(p^* = p \\frac{\\sigma^3}{\\epsilon}\\)\n* dynamic viscosity = reduced LJ viscosity, where \\(\\eta^* = \\eta \\frac{\\sigma^3}{\\epsilon\\tau}\\)\n* charge = reduced LJ charge, where \\(q^* = q \\frac{1}{\\sqrt{4 \\pi \\varepsilon_0 \\sigma \\epsilon}}\\)\n* dipole = reduced LJ dipole, moment where \\(\\mu^* = \\mu \\frac{1}{\\sqrt{4 \\pi \\varepsilon_0 \\sigma^3 \\epsilon}}\\)\n* electric field = force/charge, where \\(E^* = E \\frac{\\sqrt{4 \\pi \\varepsilon_0 \\sigma \\epsilon} \\sigma}{\\epsilon}\\)\n* density = mass/volume, where \\(\\rho^* = \\rho \\frac{\\sigma^{dim}}{m}\\)\n\nNote that for LJ units, the default mode of thermodynamic output via\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command is to normalize all\nextensive quantities by the number of atoms. E.g. potential energy is\nextensive because it is summed over atoms, so it is output as\nenergy/atom. Temperature is intensive since it is already normalized\nby the number of atoms, so it is output as-is. This behavior can be\nchanged via the [thermo_modify norm ](https://docs.lammps.org/thermo_modify.html) command.\n\nFor style *real*, these are the units:\n\n* mass = grams/mole\n* distance = Angstroms\n* time = femtoseconds\n* energy = kcal/mol\n* velocity = Angstroms/femtosecond\n* force = (kcal/mol)/Angstrom\n* torque = kcal/mol\n* temperature = Kelvin\n* pressure = atmospheres\n* dynamic viscosity = Poise\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge\\*Angstroms\n* electric field = volts/Angstrom\n* density = g/cm\\^dim\n\nFor style *metal*, these are the units:\n\n* mass = grams/mole\n* distance = Angstroms\n* time = picoseconds\n* energy = eV\n* velocity = Angstroms/picosecond\n* force = eV/Angstrom\n* torque = eV\n* temperature = Kelvin\n* pressure = bars\n* dynamic viscosity = Poise\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge\\*Angstroms\n* electric field = volts/Angstrom\n* density = gram/cm\\^dim\n\nFor style *si*, these are the units:\n\n* mass = kilograms\n* distance = meters\n* time = seconds\n* energy = Joules\n* velocity = meters/second\n* force = Newtons\n* torque = Newton-meters\n* temperature = Kelvin\n* pressure = Pascals\n* dynamic viscosity = Pascal\\*second\n* charge = Coulombs (1.6021765e-19 is a proton)\n* dipole = Coulombs\\*meters\n* electric field = volts/meter\n* density = kilograms/meter\\^dim\n\nFor style *cgs*, these are the units:\n\n* mass = grams\n* distance = centimeters\n* time = seconds\n* energy = ergs\n* velocity = centimeters/second\n* force = dynes\n* torque = dyne-centimeters\n* temperature = Kelvin\n* pressure = dyne/cm\\^2 or barye = 1.0e-6 bars\n* dynamic viscosity = Poise\n* charge = statcoulombs or esu (4.8032044e-10 is a proton)\n* dipole = statcoul-cm = 10\\^18 debye\n* electric field = statvolt/cm or dyne/esu\n* density = grams/cm\\^dim\n\nFor style *electron*, these are the units:\n\n* mass = atomic mass units\n* distance = Bohr\n* time = femtoseconds\n* energy = Hartrees\n* velocity = Bohr/atomic time units [1.03275e-15 seconds]\n* force = Hartrees/Bohr\n* temperature = Kelvin\n* pressure = Pascals\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole moment = Debye\n* electric field = volts/cm\n\nFor style *micro*, these are the units:\n\n* mass = picograms\n* distance = micrometers\n* time = microseconds\n* energy = picogram-micrometer\\^2/microsecond\\^2\n* velocity = micrometers/microsecond\n* force = picogram-micrometer/microsecond\\^2\n* torque = picogram-micrometer\\^2/microsecond\\^2\n* temperature = Kelvin\n* pressure = picogram/(micrometer-microsecond\\^2)\n* dynamic viscosity = picogram/(micrometer-microsecond)\n* charge = picocoulombs (1.6021765e-7 is a proton)\n* dipole = picocoulomb-micrometer\n* electric field = volt/micrometer\n* density = picograms/micrometer\\^dim\n\nFor style *nano*, these are the units:\n\n* mass = attograms\n* distance = nanometers\n* time = nanoseconds\n* energy = attogram-nanometer\\^2/nanosecond\\^2\n* velocity = nanometers/nanosecond\n* force = attogram-nanometer/nanosecond\\^2\n* torque = attogram-nanometer\\^2/nanosecond\\^2\n* temperature = Kelvin\n* pressure = attogram/(nanometer-nanosecond\\^2)\n* dynamic viscosity = attogram/(nanometer-nanosecond)\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge-nanometer\n* electric field = volt/nanometer\n* density = attograms/nanometer\\^dim\n\nThe units command also sets the timestep size and neighbor skin\ndistance to default values for each style:\n\n* For style *lj* these are dt = 0.005 \\(\\tau\\) and skin = 0.3 \\(\\sigma\\).\n* For style *real* these are dt = 1.0 femtoseconds and skin = 2.0 Angstroms.\n* For style *metal* these are dt = 0.001 picoseconds and skin = 2.0 Angstroms.\n* For style *si* these are dt = 1.0e-8 seconds and skin = 0.001 meters.\n* For style *cgs* these are dt = 1.0e-8 seconds and skin = 0.1 centimeters.\n* For style *electron* these are dt = 0.001 femtoseconds and skin = 2.0 Bohr.\n* For style *micro* these are dt = 2.0 microseconds and skin = 0.1 micrometers.\n* For style *nano* these are dt = 0.00045 nanoseconds and skin = 0.1 nanometers.\n", - "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n", - "related": "none\n" + "parameters": "* style = charmm or charmmfsw \n", + "examples": "\n```lmps\ndihedral_style charmm\ndihedral_style charmmfsw\ndihedral_coeff 1 0.2 1 180 1.0\ndihedral_coeff 2 1.8 1 0 1.0\ndihedral_coeff 1 3.1 2 180 0.5\n```\n", + "html_filename": "dihedral_charmm.html", + "short_description": "The *charmm* and *charmmfsw* dihedral styles use the potential\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nSee **dihedral-MacKerell** for a description of the CHARMM\nforce field", + "description": "The *charmm* and *charmmfsw* dihedral styles use the potential\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nSee **dihedral-MacKerell** for a description of the CHARMM\nforce field. This dihedral style can also be used for the AMBER force\nfield (see comment on weighting factors below). See\n**dihedral-Cornell** for a description of the AMBER force\nfield.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newer *charmmfsw* style was released in March 2017. We\n > recommend it be used instead of the older *charmm* style when running\n > a simulation with the CHARMM force field, either with long-range\n > Coulombics or a Coulombic cutoff, via the [pair_style lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) and [pair_style lj/charmmfsw/coul/charmmfsh ](https://docs.lammps.org/pair_charmm.html) commands respectively.\n > Otherwise the older *charmm* style is fine to use. See the discussion\n > below and more details on the [pair_style charmm ](https://docs.lammps.org/pair_charmm.html) doc\n > page. \n > \n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(n\\) (integer >= 0)\n* \\(d\\) (integer value of degrees)\n* weighting factor (1.0, 0.5, or 0.0)\n\nThe weighting factor is required to correct for double counting\npairwise non-bonded Lennard-Jones interactions in cyclic systems or\nwhen using the CHARMM dihedral style with non-CHARMM force fields.\nWith the CHARMM dihedral style, interactions between the first and fourth\natoms in a dihedral are skipped during the normal non-bonded force\ncomputation and instead evaluated as part of the dihedral using\nspecial epsilon and sigma values specified with the\n[pair_coeff ](https://docs.lammps.org/pair_charmm.html) command of pair styles that contain\n\"lj/charmm\" (e.g. [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html))\nIn 6-membered rings, the same 1-4 interaction would be computed twice\n(once for the clockwise 1-4 pair in dihedral 1-2-3-4 and once in the\ncounterclockwise dihedral 1-6-5-4) and thus the weighting factor has\nto be 0.5 in this case. In 4-membered or 5-membered rings, the 1-4\ndihedral also is counted as a 1-2 or 1-3 interaction when going around\nthe ring in the opposite direction and thus the weighting factor is\n0.0, as the 1-2 and 1-3 exclusions take precedence.\n\nNote that this dihedral weighting factor is unrelated to the scaling\nfactor specified by the [special bonds ](https://docs.lammps.org/special_bonds.html) command\nwhich applies to all 1-4 interactions in the system. For CHARMM force\nfields, the special_bonds 1-4 interaction scaling factor should be set\nto 0.0. Since the corresponding 1-4 non-bonded interactions are\ncomputed with the dihedral. This means that if any of the weighting\nfactors defined as dihedral coefficients (fourth coeff above) are\nnon-zero, then you must use a pair style with \"lj/charmm\" and set the\nspecial_bonds 1-4 scaling factor to 0.0 (which is the\ndefault). Otherwise 1-4 non-bonded interactions in dihedrals will be\ncomputed twice.\n\nFor simulations using the CHARMM force field with a Coulombic cutoff,\nthe difference between the *charmm* and *charmmfsw* styles is in the\ncomputation of the 1-4 non-bond interactions, though only if the\ndistance between the two atoms is within the switching region of the\npairwise potential defined by the corresponding CHARMM pair style,\ni.e. within the outer cutoff specified for the pair style. The\n*charmmfsw* style should only be used when using the corresponding\n[pair_style lj/charmmfsw/coul/charmmfsw ](https://docs.lammps.org/pair_charmm.html) or\n[pair_style lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) commands. Use\nthe *charmm* style with the older [pair_style ](https://docs.lammps.org/pair_charmm.html)\ncommands that have just \"charmm\" in their style name. See the\ndiscussion on the [CHARMM pair_style ](https://docs.lammps.org/pair_charmm.html) page for\ndetails.\n\nNote that for AMBER force fields, which use pair styles with \"lj/cut\",\nthe special_bonds 1-4 scaling factor should be set to the AMBER\ndefaults (1/2 and 5/6) and all the dihedral weighting factors (fourth\ncoeff above) must be set to 0.0. In this case, you can use any pair\nstyle you wish, since the dihedral does not need any Lennard-Jones\nparameter information and will not compute any 1-4 non-bonded\ninteractions. Likewise the *charmm* or *charmmfsw* styles are\nidentical in this case since no 1-4 non-bonded interactions are\ncomputed.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(dihedral-MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem B, 102, 3586 (1998). \n \n**(dihedral-Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,\nSpellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). \n ", + "restrictions": "When using run_style [respa ](https://docs.lammps.org/run_style.html), these dihedral styles\nmust be assigned to the same r-RESPA level as *pair* or *outer* .\n\nWhen used in combination with CHARMM pair styles, the 1-4\n[special_bonds ](https://docs.lammps.org/special_bonds.html) scaling factors must be set to 0.0.\nOtherwise non-bonded contributions for these 1-4 pairs will be\ncomputed multiple times.\n\nThese dihedral styles can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html),\n[pair_style lj/charmm variants ](https://docs.lammps.org/pair_charmm.html),\n[angle_style charmm ](https://docs.lammps.org/angle_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" }, { "command": [ - "fix viscous", - "fix viscous/kk" + "compute erotate/rigid" ], "syntax": [ - "fix ID group-ID viscous gamma keyword values ..." + "compute ID group-ID erotate/rigid fix-ID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -28140,145 +27023,211 @@ export const command_docs = [ "choices": [] }, { - "arg": "viscous", - "type": 3, - "choices": [ - "viscous", - "viscous/kk" - ] + "arg": "erotate/rigid", + "type": 1, + "choices": [] }, { - "arg": "gamma", + "arg": "fix-ID", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/rigid = style name of this compute command\n* fix-ID = ID of rigid body fix \n", + "examples": "\n```lmps\ncompute 1 all erotate/rigid myRigid\n```\n", + "html_filename": "compute_erotate_rigid.html", + "short_description": "Define a computation that calculates the rotational kinetic energy of\na collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants", + "description": "Define a computation that calculates the rotational kinetic energy of\na collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants.\n\nThe rotational energy of each rigid body is computed as\n\\(\\frac12 I \\omega_\\text{body}^2\\),\nwhere \\(I\\) is the inertia tensor for the rigid body and\n\\(\\omega_\\text{body}\\) is its angular velocity vector.\nBoth \\(I\\) and \\(\\omega_\\text{body}\\) are in the frame of\nreference of the rigid body (i.e., \\(I\\) is diagonal).\n\nThe *fix-ID* should be the ID of one of the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommands which defines the rigid bodies. The group specified in the\ncompute command is ignored. The rotational energy of all the rigid\nbodies defined by the fix rigid command in included in the calculation.\n\n #### Output info\n\nThis compute calculates a global scalar (the summed rotational energy\nof all the rigid bodies). This value can be used by any command that\nuses a global scalar value from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute ke/rigid ](https://docs.lammps.org/compute_ke_rigid.html)\n" +}, +{ + "command": [ + "angle_write" + ], + "syntax": [ + "angle_write atype N file keyword" + ], + "args": [ + [ + { + "arg": "angle_write", + "type": 1, + "choices": [] }, { - "arg": "keyword", + "arg": "atype", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "file", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* viscous = style name of this fix command\n* gamma = damping coefficient (force/velocity units)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale \n       scale values = type ratio \n       type = atom type (1-N) \n       ratio = factor to scale the damping coefficient by \n", - "examples": "\n```lmps\nfix 1 flow viscous 0.1\nfix 1 damp viscous 0.5 scale 3 2.5\n```\n", - "html_filename": "fix_viscous.html", - "short_description": "Add a viscous damping force to atoms in the group that is proportional\nto the velocity of the atom", - "description": "Add a viscous damping force to atoms in the group that is proportional\nto the velocity of the atom. The added force can be thought of as a\nfrictional interaction with implicit solvent, i.e. the no-slip Stokes\ndrag on a spherical particle. In granular simulations this can be\nuseful for draining the kinetic energy from the system in a controlled\nfashion. If used without additional thermostatting (to add kinetic\nenergy to the system), it has the effect of slowly (or rapidly)\nfreezing the system; hence it can also be used as a simple energy\nminimization technique.\n\nThe damping force \\(F_i\\) is given by \\(F_i = - \\gamma v_i\\).\nThe larger the coefficient, the faster the kinetic energy is reduced.\nIf the optional keyword *scale* is used, \\(\\gamma\\) can scaled up or\ndown by the specified factor for atoms of that type. It can be used\nmultiple times to adjust \\(\\gamma\\) for several atom types.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should specify gamma in force/velocity units. This is not\n > the same as mass/time units, at least for some of the LAMMPS\n > [units ](https://docs.lammps.org/units.html) options like \"real\" or \"metal\" that are not\n > self-consistent. \n > \n\nIn a Brownian dynamics context, \\(\\gamma = \\frac{k_B T}{D}\\), where\n\\(k_B =\\) Boltzmann's constant, \\(T\\) = temperature, and *D* =\nparticle diffusion coefficient. *D* can be written as \\(\\frac{k_B\nT}{3 \\pi \\eta d}\\), where \\(\\eta =\\) dynamic viscosity of the\nfrictional fluid and d = diameter of particle. This means \\(\\gamma\n= 3 \\pi \\eta d\\), and thus is proportional to the viscosity of the fluid\nand the particle diameter.\n\nIn the current implementation, rather than have the user specify a\nviscosity, \\(\\gamma\\) is specified directly in force/velocity units.\nIf needed, \\(\\gamma\\) can be adjusted for atoms of different sizes\n(i.e. \\(\\sigma\\)) by using the *scale* keyword.\n\nNote that Brownian dynamics models also typically include a randomized\nforce term to thermostat the system at a chosen temperature. The\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) command does this. It has the same\nviscous damping term as fix viscous and adds a random force to each\natom. The random force term is proportional to the square root of the\nchosen thermostatting temperature. Thus if you use fix langevin with a\ntarget \\(T = 0\\), its random force term is zero, and you are\nessentially performing the same operation as fix viscous. Also note\nthat the gamma of fix viscous is related to the damping parameter of\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), however the former is specified in\nunits of force/velocity and the latter in units of time, so that it can\nmore easily be used as a thermostat.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying forces. Default is the outermost level.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n", - "restrictions": "none\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html),\n[fix damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html)\n" + "parameters": "* atype = angle type\n* N = # of values\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values \n", + "examples": "\n```lmps\nangle_write 1 500 table.txt Harmonic_1\nangle_write 3 1000 table.txt Harmonic_3\n```\n", + "html_filename": "angle_write.html", + "short_description": "\nWrite energy and force values to a file as a function of angle for the\ncurrently defined angle potential", + "description": "\nWrite energy and force values to a file as a function of angle for the\ncurrently defined angle potential. Force in this context means the\nforce with respect to the angle, not the force on individual atoms.\nThis is useful for plotting the potential function or otherwise\ndebugging its values. The resulting file can also be used as input for\nuse with [angle style table ](https://docs.lammps.org/angle_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed for angles ranging from 0\ndegrees to 180 degrees for 3 interacting atoms forming an angle type\natype, using the appropriate [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncoefficients. N evenly spaced angles are used.\n\nFor example, for N = 6, values are computed at \\(\\theta = 0, 36,\n72, 108, 144, 180\\).\n\nThe file is written in the format used as input for the\n[angle_style table ](https://docs.lammps.org/angle_table.html) option with *keyword* as the\nsection name. Each line written to the file lists an index number\n(1-N), an angle (in degrees), an energy (in energy units), and a force\n(in force units per radians^2). In case a new file is created, the\nfirst line will be a comment with a \"DATE:\" and \"UNITS:\" tag with the\ncurrent date and [units ](https://docs.lammps.org/units.html) settings. For subsequent\ninvocations of the *angle_write* command for the same file, data will be\nappended and the current units settings will be compared to the data\nfrom the header, if present. The *angle_write* will refuse to add a\ntable to an existing file if the units are not the same.\n", + "restrictions": "All force field coefficients for angle and other kinds of interactions\nmust be set before this command can be invoked.\n\nThe table of the angle energy and force data data is created by using a\nseparate, internally created, new LAMMPS instance with a dummy system of\n3 atoms for which the angle potential energy is computed after\ntransferring the angle style and coefficients and arranging the 3 atoms\ninto the corresponding geometries. The angle force is then determined\nfrom the potential energies through numerical differentiation. As a\nconsequence of this approach, not all angle styles are compatible. The\nfollowing conditions must be met:\n\n- The angle style must be able to write its coefficients to a data file.\n This condition excludes for example [angle style hybrid ](https://docs.lammps.org/angle_hybrid.html) and\n [angle style table ](https://docs.lammps.org/angle_table.html).\n- The potential function must not have any terms that depend on geometry\n properties other than the angle. This condition excludes for example\n [angle style class2 ](https://docs.lammps.org/angle_class2.html) all angle types for\n [angle style charmm ](https://docs.lammps.org/angle_charmm.html) that have non-zero\n Urey-Bradley terms. Please note that the *write_angle* command has no\n way of checking for this condition, so the resulting tables may be\n bogus if the requirement is not met. It is thus recommended to make\n careful tests for any created tables.\n", + "related": "[angle_style table ](https://docs.lammps.org/angle_table.html), [bond_write ](https://docs.lammps.org/bond_write.html),\n[dihedral_write ](https://docs.lammps.org/dihedral_write.html), [angle_style ](https://docs.lammps.org/angle_style.html),\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute efield/wolf/atom" + "balance" ], "syntax": [ - "compute ID group-ID efield/wolf/atom alpha keyword val" + "balance thresh style args ... keyword args ..." ], "args": [ [ { - "arg": "compute", + "arg": "balance", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "thresh", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "rcb", + "type": 3, + "choices": [ + "x", + "y", + "z", + "shift", + "rcb" + ] + }, + { + "arg": "args", "type": 2, "choices": [] }, { - "arg": "efield/wolf/atom", + "arg": "out", + "type": 3, + "choices": [ + "weight", + "out" + ] + }, + { + "arg": "args", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* thresh = imbalance threshold that must be exceeded to perform a re-balance\n* one style/arg pair can be used (or multiple for x, y, z )\n* style = x or y or z or shift or rcb \n *        x args = uniform or Px-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in x dimension \n         numbers = Px-1 ascending values between 0 and 1, Px - # of processors in x dimension \n         x can be specified together with y or z \n *        y args = uniform or Py-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in y dimension \n         numbers = Py-1 ascending values between 0 and 1, Py - # of processors in y dimension \n         y can be specified together with x or z \n *        z args = uniform or Pz-1 numbers between 0 and 1 \n         uniform = evenly spaced cuts between processors in z dimension \n         numbers = Pz-1 ascending values between 0 and 1, Pz - # of processors in z dimension \n         z can be specified together with x or y \n *        shift args = dimstr Niter stopthresh \n         dimstr = sequence of letters containing \"x\" or \"y\" or \"z\", each not more than once \n         Niter = # of times to iterate within each dimension of dimstr sequence \n         stopthresh = stop balancing when this imbalance threshold is reached \n *        rcb args = none \n* zero or more keyword/arg pairs may be appended\n* keyword = weight or out \n *        weight style args = use weighted particle counts for the balancing \n         style = group or neigh or time or var or store \n         group args = Ngroup group1 weight1 group2 weight2 ... \n         Ngroup = number of groups with assigned weights \n         group1, group2, ... = group IDs \n         weight1, weight2, ... = corresponding weight factors \n         neigh factor = compute weight based on number of neighbors \n         factor = scaling factor (> 0) \n         time factor = compute weight based on time spend computing \n         factor = scaling factor (> 0) \n         var name = take weight from atom-style variable \n         name = name of the atom-style variable \n         store name = store weight in custom atom property defined by [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command \n         name = atom property name (without d\\_ prefix) \n *        *sort* arg = no or yes \n *        out arg = filename \n         filename = write each processor's subdomain to a file \n", + "examples": "\n```lmps\nbalance 0.9 x uniform y 0.4 0.5 0.6\nbalance 1.2 shift xz 5 1.1\nbalance 1.0 shift xz 5 1.1\nbalance 1.1 rcb\nbalance 1.0 shift x 10 1.1 weight group 2 fast 0.5 slow 2.0\nbalance 1.0 shift x 10 1.1 weight time 0.8 weight neigh 0.5 weight store balance\nbalance 1.0 shift x 20 1.0 out tmp.balance\n```\n", + "html_filename": "balance.html", + "short_description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of atoms\nor particles and thus indirectly the computational cost (load) more\nevenly across processors", + "description": "This command adjusts the size and shape of processor subdomains\nwithin the simulation box, to attempt to balance the number of atoms\nor particles and thus indirectly the computational cost (load) more\nevenly across processors. The load balancing is \"static\" in the sense\nthat this command performs the balancing once, before or between\nsimulations. The processor subdomains will then remain static during\nthe subsequent run. To perform \"dynamic\" balancing, see the [fixbalance ](https://docs.lammps.org/fix_balance.html) command, which can adjust processor subdomain\nsizes and shapes on-the-fly during a [run ](https://docs.lammps.org/run.html).\n\nLoad-balancing is typically most useful if the particles in the\nsimulation box have a spatially-varying density distribution or when\nthe computational cost varies significantly between different\nparticles. E.g. a model of a vapor/liquid interface, or a solid with\nan irregular-shaped geometry containing void regions, or [hybridpair style simulations ](https://docs.lammps.org/pair_hybrid.html) which combine pair styles with\ndifferent computational cost. In these cases, the LAMMPS default of\ndividing the simulation box volume into a regular-spaced grid of 3d\nbricks, with one equal-volume subdomain per processor, may assign\nnumbers of particles per processor in a way that the computational\neffort varies significantly. This can lead to poor performance when\nthe simulation is run in parallel.\n\nThe balancing can be performed with or without per-particle weighting.\nWith no weighting, the balancing attempts to assign an equal number of\nparticles to each processor. With weighting, the balancing attempts\nto assign an equal aggregate computational weight to each processor,\nwhich typically induces a different number of atoms assigned to each\nprocessor. Details on the various weighting options and examples for\nhow they can be used are **weighted_balance**.\n\nNote that the [processors ](https://docs.lammps.org/processors.html) command allows some\ncontrol over how the box volume is split across processors.\nSpecifically, for a Px by Py by Pz grid of processors, it allows\nchoice of Px, Py, and Pz, subject to the constraint that Px \\* Py \\*\nPz = P, the total number of processors. This is sufficient to achieve\ngood load-balance for some problems on some processor counts.\nHowever, all the processor subdomains will still have the same shape\nand same volume.\n\nThe requested load-balancing operation is only performed if the\ncurrent \"imbalance factor\" in particles owned by each processor\nexceeds the specified *thresh* parameter. The imbalance factor is\ndefined as the maximum number of particles (or weight) owned by any\nprocessor, divided by the average number of particles (or weight) per\nprocessor. Thus an imbalance factor of 1.0 is perfect balance.\n\nAs an example, for 10000 particles running on 10 processors, if the\nmost heavily loaded processor has 1200 particles, then the factor is\n1.2, meaning there is a 20% imbalance. Note that a re-balance can be\nforced even if the current balance is perfect (1.0) be specifying a\n*thresh* < 1.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Balancing is performed even if the imbalance factor does not\n > exceed the *thresh* parameter if a \"grid\" style is specified when the\n > current partitioning is \"tiled\". The meaning of \"grid\" vs \"tiled\" is\n > explained below. This is to allow forcing of the partitioning to\n > \"grid\" so that the [comm_style brick ](https://docs.lammps.org/comm_style.html) command can then\n > be used to replace a current [comm_style tiled ](https://docs.lammps.org/comm_style.html)\n > setting. \n > \n\nWhen the balance command completes, it prints statistics about the\nresult, including the change in the imbalance factor and the change in\nthe maximum number of particles on any processor. For \"grid\" methods\n(defined below) that create a logical 3d grid of processors, the\npositions of all cutting planes in each of the 3 dimensions (as\nfractions of the box length) are also printed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This command attempts to minimize the imbalance factor, as\n > defined above. But depending on the method a perfect balance (1.0)\n > may not be achieved. For example, \"grid\" methods (defined below) that\n > create a logical 3d grid cannot achieve perfect balance for many\n > irregular distributions of particles. Likewise, if a portion of the\n > system is a perfect lattice, e.g. the initial system is generated by\n > the [create_atoms ](https://docs.lammps.org/create_atoms.html) command, then \"grid\" methods may\n > be unable to achieve exact balance. This is because entire lattice\n > planes will be owned or not owned by a single processor. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The imbalance factor is also an estimate of the maximum speed-up\n > you can hope to achieve by running a perfectly balanced simulation\n > versus an imbalanced one. In the example above, the 10000 particle\n > simulation could run up to 20% faster if it were perfectly balanced,\n > versus when imbalanced. However, computational cost is not strictly\n > proportional to particle count, and changing the relative size and\n > shape of processor subdomains may lead to additional computational\n > and communication overheads, e.g. in the PPPM solver used via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command. Thus you should benchmark\n > the run times of a simulation before and after balancing. \n > \n\n----------\n\nThe method used to perform a load balance is specified by one of the\nlisted styles (or more in the case of *x*,\\ *y*,\\ *z* ), which are\ndescribed in detail below. There are 2 kinds of styles.\n\nThe *x*, *y*, *z*, and *shift* styles are \"grid\" methods which\nproduce a logical 3d grid of processors. They operate by changing the\ncutting planes (or lines) between processors in 3d (or 2d), to adjust\nthe volume (area in 2d) assigned to each processor, as in the\nfollowing 2d diagram where processor subdomains are shown and\nparticles are colored by the processor that owns them.\n \n | | | | \n |---|---|---| \n | ![Image](img/balance_uniform.jpg) | ![Image](img/balance_nonuniform.jpg) | ![Image](img/balance_rcb.jpg) | \n\n\nThe leftmost diagram is the default partitioning of the simulation box\nacross processors (one sub-box for each of 16 processors); the middle\ndiagram is after a \"grid\" method has been applied. The *rcb* style is\na \"tiling\" method which does not produce a logical 3d grid of\nprocessors. Rather it tiles the simulation domain with rectangular\nsub-boxes of varying size and shape in an irregular fashion so as to\nhave equal numbers of particles (or weight) in each sub-box, as in the\nrightmost diagram above.\n\nThe \"grid\" methods can be used with either of the [comm_style](https://docs.lammps.org/comm_style.html) command options, *brick* or *tiled* . The \"tiling\"\nmethods can only be used with [comm_style tiled ](https://docs.lammps.org/comm_style.html).\nNote that it can be useful to use a \"grid\" method with\n[comm_style tiled ](https://docs.lammps.org/comm_style.html) to return the domain partitioning\nto a logical 3d grid of processors so that \"comm_style brick\" can\nafterwords be specified for subsequent [run ](https://docs.lammps.org/run.html) commands.\n\nWhen a \"grid\" method is specified, the current domain partitioning can\nbe either a logical 3d grid or a tiled partitioning. In the former\ncase, the current logical 3d grid is used as a starting point and\nchanges are made to improve the imbalance factor. In the latter case,\nthe tiled partitioning is discarded and a logical 3d grid is created\nwith uniform spacing in all dimensions. This becomes the starting\npoint for the balancing operation.\n\nWhen a \"tiling\" method is specified, the current domain partitioning\n(\"grid\" or \"tiled\") is ignored, and a new partitioning is computed\nfrom scratch.\n\n----------\n\nThe *x*, *y*, and *z* styles invoke a \"grid\" method for balancing, as\ndescribed above. Note that any or all of these 3 styles can be\nspecified together, one after the other, but they cannot be used with\nany other style. This style adjusts the position of cutting planes\nbetween processor subdomains in specific dimensions. Only the\nspecified dimensions are altered.\n\nThe *uniform* argument spaces the planes evenly, as in the left\ndiagrams above. The *numeric* argument requires listing Ps-1 numbers\nthat specify the position of the cutting planes. This requires\nknowing Ps = Px or Py or Pz = the number of processors assigned by\nLAMMPS to the relevant dimension. This assignment is made (and the\nPx, Py, Pz values printed out) when the simulation box is created by\nthe \"create_box\" or \"read_data\" or \"read_restart\" command and is\ninfluenced by the settings of the [processors ](https://docs.lammps.org/processors.html)\ncommand.\n\nEach of the numeric values must be between 0 and 1, and they must be\nlisted in ascending order. They represent the fractional position of\nthe cutting place. The left (or lower) edge of the box is 0.0, and\nthe right (or upper) edge is 1.0. Neither of these values is\nspecified. Only the interior Ps-1 positions are specified. Thus is\nthere are 2 processors in the x dimension, you specify a single value\nsuch as 0.75, which would make the left processor's subdomain 3x\nlarger than the right processor's subdomain.\n\n----------\n\nThe *shift* style invokes a \"grid\" method for balancing, as\ndescribed above. It changes the positions of cutting planes between\nprocessors in an iterative fashion, seeking to reduce the imbalance\nfactor, similar to how the [fix balance shift ](https://docs.lammps.org/fix_balance.html)\ncommand operates.\n\nThe *dimstr* argument is a string of characters, each of which must be\nan \"x\" or \"y\" or \"z\". Each character can appear zero or one time,\nsince there is no advantage to balancing on a dimension more than\nonce. You should normally only list dimensions where you expect there\nto be a density variation in the particles.\n\nBalancing proceeds by adjusting the cutting planes in each of the\ndimensions listed in *dimstr*, one dimension at a time. For a single\ndimension, the balancing operation (described below) is iterated on up\nto *Niter* times. After each dimension finishes, the imbalance factor\nis re-computed, and the balancing operation halts if the *stopthresh*\ncriterion is met.\n\nA re-balance operation in a single dimension is performed using a\nrecursive multisectioning algorithm, where the position of each\ncutting plane (line in 2d) in the dimension is adjusted independently.\nThis is similar to a recursive bisectioning for a single value, except\nthat the bounds used for each bisectioning take advantage of\ninformation from neighboring cuts if possible. At each iteration, the\ncount of particles on either side of each plane is tallied. If the\ncounts do not match the target value for the plane, the position of\nthe cut is adjusted to be halfway between a low and high bound. The\nlow and high bounds are adjusted on each iteration, using new count\ninformation, so that they become closer together over time. Thus as\nthe recursion progresses, the count of particles on either side of the\nplane gets closer to the target value.\n\nAfter the balanced plane positions are determined, if any pair of\nadjacent planes are closer together than the neighbor skin distance\n(as specified by the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command), then\nthe plane positions are shifted to separate them by at least this\namount. This is to prevent particles being lost when dynamics are run\nwith processor subdomains that are too narrow in one or more\ndimensions.\n\nOnce the re-balancing is complete and final processor subdomains\nassigned, particles are migrated to their new owning processor, and\nthe balance procedure ends.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >At each re-balance operation, the bisectioning for each cutting\n > plane (line in 2d) typically starts with low and high bounds separated\n > by the extent of a processor's subdomain in one dimension. The size\n > of this bracketing region shrinks by 1/2 every iteration. Thus if\n > *Niter* is specified as 10, the cutting plane will typically be\n > positioned to 1 part in 1000 accuracy (relative to the perfect target\n > position). For *Niter* = 20, it will be accurate to 1 part in a\n > million. Thus there is no need to set *Niter* to a large value.\n > LAMMPS will check if the threshold accuracy is reached (in a\n > dimension) is less iterations than *Niter* and exit early. However,\n > *Niter* should also not be set too small, since it will take roughly\n > the same number of iterations to converge even if the cutting plane is\n > initially close to the target value. \n > \n\n----------\n\nThe *rcb* style invokes a \"tiled\" method for balancing, as described\nabove. It performs a recursive coordinate bisectioning (RCB) of the\nsimulation domain. The basic idea is as follows.\n\nThe simulation domain is cut into 2 boxes by an axis-aligned cut in\none of the dimensions, leaving one new sub-box on either side of the\ncut. Which dimension is chosen for the cut depends on the particle\n(weight) distribution within the parent box. Normally the longest\ndimension of the box is cut, but if all (or most) of the particles are\nat one end of the box, a cut may be performed in another dimension to\ninduce sub-boxes that are more cube-ish (3d) or square-ish (2d) in\nshape.\n\nAfter the cut is made, all the processors are also partitioned into 2\ngroups, half assigned to the box on the lower side of the cut, and\nhalf to the box on the upper side. (If the processor count is odd,\none side gets an extra processor.) The cut is positioned so that the\nnumber of (weighted) particles in the lower box is exactly the number\nthat the processors assigned to that box should own for load balance\nto be perfect. This also makes load balance for the upper box\nperfect. The positioning of the cut is done iteratively, by a\nbisectioning method (median search). Note that counting particles on\neither side of the cut requires communication between all processors\nat each iteration.\n\nThat is the procedure for the first cut. Subsequent cuts are made\nrecursively, in exactly the same manner. The subset of processors\nassigned to each box make a new cut in one dimension of that box,\nsplitting the box, the subset of processors, and the particles in the\nbox in two. The recursion continues until every processor is assigned\na sub-box of the entire simulation domain, and owns the (weighted)\nparticles in that sub-box.\n\n----------\n\n.. _weighted_balance:\n\nThis subsection describes how to perform weighted load balancing\nusing the *weight* keyword.\n\nBy default, all particles have a weight of 1.0, which means each\nparticle is assumed to require the same amount of computation during a\ntimestep. There are, however, scenarios where this is not a good\nassumption. Measuring the computational cost for each particle\naccurately would be impractical and slow down the computation.\nInstead the *weight* keyword implements several ways to influence the\nper-particle weights empirically by properties readily available or\nusing the user's knowledge of the system. Note that the absolute\nvalue of the weights are not important; only their relative ratios\naffect which particle is assigned to which processor. A particle with\na weight of 2.5 is assumed to require 5x more computational than a\nparticle with a weight of 0.5. For all the options below the weight\nassigned to a particle must be a positive value; an error will be be\ngenerated if a weight is <= 0.0.\n\nBelow is a list of possible weight options with a short description of\ntheir usage and some example scenarios where they might be applicable.\nIt is possible to apply multiple weight flags and the weightings they\ninduce will be combined through multiplication. Most of the time,\nhowever, it is sufficient to use just one method.\n\nThe *group* weight style assigns weight factors to specified\n[groups ](https://docs.lammps.org/group.html) of particles. The *group* style keyword is\nfollowed by the number of groups, then pairs of group IDs and the\ncorresponding weight factor. If a particle belongs to none of the\nspecified groups, its weight is not changed. If it belongs to\nmultiple groups, its weight is the product of the weight factors.\n\nThis weight style is useful in combination with pair style\n[hybrid ](https://docs.lammps.org/pair_hybrid.html), e.g. when combining a more costly many-body\npotential with a fast pairwise potential. It is also useful when\nusing [run_style respa ](https://docs.lammps.org/run_style.html) where some portions of the\nsystem have many bonded interactions and others none. It assumes that\nthe computational cost for each group remains constant over time.\nThis is a purely empirical weighting, so a series test runs to tune\nthe assigned weight factors for optimal performance is recommended.\n\nThe *neigh* weight style assigns the same weight to each particle\nowned by a processor based on the total count of neighbors in the\nneighbor list owned by that processor. The motivation is that more\nneighbors means a higher computational cost. The style does not use\nneighbors per atom to assign a unique weight to each atom, because\nthat value can vary depending on how the neighbor list is built.\n\nThe *factor* setting is applied as an overall scale factor to the\n*neigh* weights which allows adjustment of their impact on the\nbalancing operation. The specified *factor* value must be positive.\nA value > 1.0 will increase the weights so that the ratio of max\nweight to min weight increases by *factor* . A value < 1.0 will\ndecrease the weights so that the ratio of max weight to min weight\ndecreases by *factor* . In both cases the intermediate weight values\nincrease/decrease proportionally as well. A value = 1.0 has no effect\non the *neigh* weights. As a rule of thumb, we have found a *factor*\nof about 0.8 often results in the best performance, since the number\nof neighbors is likely to overestimate the ideal weight.\n\nThis weight style is useful for systems where there are different\ncutoffs used for different pairs of interactions, or the density\nfluctuates, or a large number of particles are in the vicinity of a\nwall, or a combination of these effects. If a simulation uses\nmultiple neighbor lists, this weight style will use the first suitable\nneighbor list it finds. It will not request or compute a new list. A\nwarning will be issued if there is no suitable neighbor list available\nor if it is not current, e.g. if the balance command is used before a\n[run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command is used, in which\ncase the neighbor list may not yet have been built. In this case no\nweights are computed. Inserting a [run 0 post no ](https://docs.lammps.org/run.html) command\nbefore issuing the *balance* command, may be a workaround for this\ncase, as it will induce the neighbor list to be built.\n\nThe *time* weight style uses [timer data ](https://docs.lammps.org/timer.html) to estimate\nweights. It assigns the same weight to each particle owned by a\nprocessor based on the total computational time spent by that\nprocessor. See details below on what time window is used. It uses\nthe same timing information as is used for the [MPI task timingbreakdown ](https://docs.lammps.org/Run_output.html), namely, for sections *Pair*, *Bond*,\n*Kspace*, and *Neigh* . The time spent in those portions of the\ntimestep are measured for each MPI rank, summed, then divided by the\nnumber of particles owned by that processor. I.e. the weight is an\neffective CPU time/particle averaged over the particles on that\nprocessor.\n\nThe *factor* setting is applied as an overall scale factor to the\n*time* weights which allows adjustment of their impact on the\nbalancing operation. The specified *factor* value must be positive.\nA value > 1.0 will increase the weights so that the ratio of max\nweight to min weight increases by *factor* . A value < 1.0 will\ndecrease the weights so that the ratio of max weight to min weight\ndecreases by *factor* . In both cases the intermediate weight values\nincrease/decrease proportionally as well. A value = 1.0 has no effect\non the *time* weights. As a rule of thumb, effective values to use\nare typically between 0.5 and 1.2. Note that the timer quantities\nmentioned above can be affected by communication which occurs in the\nmiddle of the operations, e.g. pair styles with intermediate exchange\nof data witin the force computation, and likewise for KSpace solves.\n\nWhen using the *time* weight style with the *balance* command, the\ntiming data is taken from the preceding run command, i.e. the timings\nare for the entire previous run. For the *fix balance* command the\ntiming data is for only the timesteps since the last balancing\noperation was performed. If timing information for the required\nsections is not available, e.g. at the beginning of a run, or when the\n[timer ](https://docs.lammps.org/timer.html) command is set to either *loop* or *off*, a warning\nis issued. In this case no weights are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *time* weight style is the most generic option, and should\n > be tried first, unless the *group* style is easily applicable.\n > However, since the computed cost function is averaged over all\n > particles on a processor, the weights may not be highly accurate.\n > This style can also be effective as a secondary weight in combination\n > with either *group* or *neigh* to offset some of inaccuracies in\n > either of those heuristics. \n > \n\nThe *var* weight style assigns per-particle weights by evaluating an\n[atom-style variable ](https://docs.lammps.org/variable.html) specified by *name* . This is\nprovided as a more flexible alternative to the *group* weight style,\nallowing definition of a more complex heuristics based on information\n(global and per atom) available inside of LAMMPS. For example,\natom-style variables can reference the position of a particle, its\nvelocity, the volume of its Voronoi cell, etc.\n\nThe *store* weight style does not compute a weight factor. Instead it\nstores the current accumulated weights in a custom per-atom vector\nspecified by *name* . This must be a vector defined as *d_name* via\nthe [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command. This means\nthe values in the vector can be read as part of a data file with the\n[read_data ](https://docs.lammps.org/read_data.html) command or specified with the [set](https://docs.lammps.org/set.html) command. These weights can also be output in a [dump](https://docs.lammps.org/dump.html) file, so this is a way to examine, debug, or visualize the\nper-particle weights used during the load-balancing operation.\n\nNote that the name of the custom per-atom vector is specified just\nas *name*, not as *d_name* as it is for other commands that use\ndifferent kinds of custom atom vectors or arrays as arguments.\n\n----------\n\nThe *sort* keyword determines whether the communication of per-atom\ndata to other processors during load-balancing will be random or\ndeterministic. Random is generally faster; deterministic will ensure\nthe new ordering of atoms on each processor is the same each time the\nsame simulation is run. This can be useful for debugging purposes.\nSince the balance command is a one-time operation, the default is\n*yes* to perform sorting.\n\nThe *out* keyword writes a text file to the specified *filename* with\nthe results of the balancing operation. The file contains the bounds\nof the subdomain for each processor after the balancing operation\ncompletes. The format of the file is compatible with the\n[Pizza.py ](https://lammps.github.io/pizza) *mdump* tool which has support for manipulating and\nvisualizing mesh files. An example is shown here for a balancing by 4\nprocessors for a 2d problem:\n\n```\nITEM: TIMESTEP\n0\nITEM: NUMBER OF NODES\n16\nITEM: BOX BOUNDS\n0 10\n0 10\n0 10\nITEM: NODES\n1 1 0 0 0\n2 1 5 0 0\n3 1 5 5 0\n4 1 0 5 0\n5 1 5 0 0\n6 1 10 0 0\n7 1 10 5 0\n8 1 5 5 0\n9 1 0 5 0\n10 1 5 5 0\n11 1 5 10 0\n12 1 10 5 0\n13 1 5 5 0\n14 1 10 5 0\n15 1 10 10 0\n16 1 5 10 0\nITEM: TIMESTEP\n0\nITEM: NUMBER OF SQUARES\n4\nITEM: SQUARES\n1 1 1 2 3 4\n2 1 5 6 7 8\n3 1 9 10 11 12\n4 1 13 14 15 16\n```\nThe coordinates of all the vertices are listed in the NODES section, 5\nper processor. Note that the 4 subdomains share vertices, so there\nwill be duplicate nodes in the list.\n\nThe \"SQUARES\" section lists the node IDs of the 4 vertices in a\nrectangle for each processor (1 to 4).\n\nFor a 3d problem, the syntax is similar with 8 vertices listed for\neach processor, instead of 4, and \"SQUARES\" replaced by \"CUBES\".\n\n----------\n\nThis subsection describes how to perform weighted load balancing\nusing the *weight* keyword. \n ", + "restrictions": "For 2d simulations, the *z* style cannot be used. Nor can a \"z\"\nappear in *dimstr* for the *shift* style.\n\nBalancing through recursive bisectioning (\\ *rcb* style) requires\n[comm_style tiled ](https://docs.lammps.org/comm_style.html)\n", + "related": "[group ](https://docs.lammps.org/group.html), [processors ](https://docs.lammps.org/processors.html),\n[fix balance ](https://docs.lammps.org/fix_balance.html), [comm_style ](https://docs.lammps.org/comm_style.html)\n\n.. _pizza: https://lammps.github.io/pizza\n" +}, +{ + "command": [ + "compute ke" + ], + "syntax": [ + "compute ID group-ID ke" + ], + "args": [ + [ + { + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "alpha", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "cutoff", - "type": 3, - "choices": [ - "limit", - "cutoff" - ] + "arg": "group-ID", + "type": 2, + "choices": [] }, { - "arg": "val", - "type": 2, + "arg": "ke", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* efield/atom/wolf = style name of this compute command\n* alpha = damping parameter (inverse distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = limit or cutoff \n *      limit group2-ID = limit computing the electric field contributions to a group (default: all) \n *      cutoff value = set cutoff for computing contributions to this value (default: maximum cutoff of pair style) \n", - "examples": "\n```lmps\ncompute 1 all efield/wolf/atom 0.2\ncompute 1 mols efield/wolf/atom 0.25 limit water cutoff 10.0\n```\n", - "html_filename": "compute_efield_wolf_atom.html", - "short_description": "\nDefine a computation that approximates the electric field at each atom in a group", - "description": "\nDefine a computation that approximates the electric field at each atom in a group.\n\\[\n \\vec{E}_i = \\frac{\\vec{F}coul_i}{q_i} = \\sum_{j \\neq i} \\frac{q_j}{r_{ij}^2} \\qquad r < r_c\\]\nThe electric field at the position of the atom *i* is the coulomb force\non a unit charge at that point, which is equivalent to dividing the\nCoulomb force by the charge of the individual atom.\n\nIn this compute the electric field is approximated as the derivative of\nthe potential energy using the Wolf summation method, described in\n**Wolf4**, given by:\n\\[ E_i = \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erfc}(\\alpha r_{ij})}{r_{ij}} +\n \\frac{1}{2} \\sum_{j \\neq i}\n \\frac{q_i q_j {\\rm erf}(\\alpha r_{ij})}{r_{ij}} \\qquad r < r_c\\]\nwhere \\(\\alpha\\) is the damping parameter, and *erf()* and *erfc()*\nare error-function and complementary error-function terms. This\npotential is essentially a short-range, spherically-truncated,\ncharge-neutralized, force-shifted, pairwise *1/r* summation. With a\nmanipulation of adding and subtracting a self term (for i = j) to the\nfirst and second term on the right-hand-side, respectively, and a small\nenough \\(\\alpha\\) damping parameter, the second term shrinks and the\npotential becomes a rapidly-converging real-space summation. With a\nlong enough cutoff and small enough \\(\\alpha\\) parameter, the\nelectric field calculated by the Wolf summation method approaches that\ncomputed using the Ewald sum.\n\nThe value of the electric field components will be 0.0 for atoms not in\nthe specified compute group.\n\nWhen the *limit* keyword is used, only contributions from atoms in the\nselected group will be considered, otherwise contributions from all\natoms within the cutoff are included.\n\nWhen the *cutoff* keyword is used, the cutoff used for the electric\nfield approximation can be set explicitly. By default it is the largest\ncutoff of any pair style force computation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Computational Efficiency \n >This compute will loop over a full neighbor list just like a pair\n > style does when computing forces, thus it can be quite time-consuming\n > and slow down a calculation significantly when its data is used in\n > every time step. The [compute efield/atom > ](https://docs.lammps.org/compute_efield_atom.html) command of the DIELECTRIC package is more\n > efficient in comparison, since the electric field data is collected\n > and stored as part of the force computation at next to no extra\n > computational cost. \n > \n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe vector contains 3 values per atom which are the x-, y-, and\nz-direction electric field components in force units.\n\n**(Wolf4)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", - "related": "[pair_style coul/wolf ](https://docs.lammps.org/pair_coul.html),\n[compute efield/atom ](https://docs.lammps.org/compute_efield_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all ke\n```\n", + "html_filename": "compute_ke.html", + "short_description": "Define a computation that calculates the translational kinetic energy\nof a group of particles", + "description": "Define a computation that calculates the translational kinetic energy\nof a group of particles.\n\nThe kinetic energy of each particle is computed as \\(\\frac{1}{2} m\nv^2\\), where *m* and *v* are the mass and velocity of the particle,\nrespectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" kinetic energy, calculated by the simple\nformula above. For thermodynamic output, the *ke* keyword infers\nkinetic energy from the temperature of the system with\n\\(\\frac{1}{2} k_B T\\) of energy for each degree of freedom. For the\ndefault temperature computation via the [compute temp](https://docs.lammps.org/compute_temp.html) command, these are the same.\nHowever, different computes that calculate temperature can subtract out\ndifferent non-thermal components of velocity and/or include different degrees\nof freedom (translational, rotational, etc.).\n\n #### Output info\n\nThis compute calculates a global scalar (the summed KE). This value\ncan be used by any command that uses a global scalar value from a\ncompute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute erotate/sphere ](https://docs.lammps.org/compute_erotate_sphere.html)\n" }, { "command": [ - "pair_style coul/shield" + "bond_style zero" ], "syntax": [ - "pair_style coul/shield cutoff tap_flag" + "bond_style zero keyword" ], "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "coul/shield", + "arg": "zero", "type": 1, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] - }, - { - "arg": "tap_flag", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style coul/shield 16.0 1\npair_coeff 1 2 0.70\n```\n", - "html_filename": "pair_coul_shield.html", - "short_description": "Style *coul/shield* computes a Coulomb interaction for boron and\nnitrogen atoms located in different layers of hexagonal boron\nnitride", - "description": "Style *coul/shield* computes a Coulomb interaction for boron and\nnitrogen atoms located in different layers of hexagonal boron\nnitride. This potential is designed be used in combination with\nthe pair style [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential is intended for electrostatic interactions between\n > two different layers of hexagonal boron nitride. Therefore, to avoid\n > interaction within the same layers, each layer should have a separate\n > molecule id and is recommended to use the \"full\" atom style, so that\n > charge and molecule ID information is included. \n > \n\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\frac{\\kappa q_i q_j}{\\sqrt[3]{r_{ij}^3+(1/\\lambda_{ij})^3}}\\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere Tap(\\(r_{ij}\\)) is the taper function which provides a continuous cutoff\n(up to third derivative) for inter-atomic separations larger than \\(r_c\\)\n**Leven3**, **Leven4** and **Maaravi1**.\nHere \\(\\lambda\\) is the shielding parameter that\neliminates the short-range singularity of the classical mono-polar\nelectrostatic interaction expression **Maaravi1**.\n\nThe shielding parameter \\(\\lambda\\) (1/distance units) must be defined for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as\nin the example above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\nThe global cutoff (\\(r_c\\)) specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support parameter mixing. Coefficients must\nbe given explicitly for each type of particle pairs.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) *table* option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\n*tail* option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Leven3)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Leven4)** I. Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016). \n \n**(Maaravi1)** T. Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html)\n" + "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", + "examples": "\n```lmps\nbond_style zero\nbond_style zero nocoeff\nbond_coeff *\nbond_coeff * 2.14\n```\n", + "html_filename": "bond_zero.html", + "short_description": "Using an bond style of zero means bond forces and energies are not\ncomputed, but the geometry of bond pairs is still accessible to other\ncommands", + "description": "Using an bond style of zero means bond forces and energies are not\ncomputed, but the geometry of bond pairs is still accessible to other\ncommands.\n\nAs an example, the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html)\ncommand can be used to compute distances for the list of pairs of bond\natoms listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no bond style is defined, this command cannot be used.\n\nThe optional *nocoeff* flag allows to read data files with a BondCoeff\nsection for any bond style. Similarly, any bond_coeff commands\nwill only be checked for the bond type number and the rest ignored.\n\nNote that the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command must be used for\nall bond types. If specified, there can be only one value, which is\ngoing to be used to assign an equilibrium distance, e.g. for use with\n[fix shake ](https://docs.lammps.org/fix_shake.html).\n", + "restrictions": " none\n", + "related": "[bond_style none ](https://docs.lammps.org/bond_none.html)\n" }, { "command": [ - "compute temp/sphere" + "fix nvt/sllod/eff" ], "syntax": [ - "compute ID group-ID temp/sphere keyword value ..." + "fix ID group-ID nvt/sllod/eff keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -28293,17 +27242,14 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/sphere", + "arg": "nvt/sllod/eff", "type": 1, "choices": [] }, { - "arg": "dof", - "type": 3, - "choices": [ - "bias", - "dof" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { "arg": "value", @@ -28312,20 +27258,22 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/sphere = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", - "examples": "\n```lmps\ncompute 1 all temp/sphere\ncompute myTemp mobile temp/sphere bias tempCOM\ncompute myTemp mobile temp/sphere dof rotate\n```\n", - "html_filename": "compute_temp_sphere.html", - "short_description": "Define a computation that calculates the temperature of a group of\nspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy", - "description": "Define a computation that calculates the temperature of a group of\nspherical particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nBoth point and finite-size particles can be included in the group.\nPoint particles do not rotate, so they have only three translational\ndegrees of freedom. For 3d spherical particles, each has six degrees of\nfreedom (three translational, three rotational). For 2d spherical particles,\neach has three degrees of freedom (two translational, one rotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all finite-size\n > spherical particles in your model will freely rotate, sampling all\n > their rotational DOF. It is possible to use a combination of\n > interaction potentials and fixes that induce no torque or otherwise\n > constrain some of all of your particles so that this is not the case.\n > Then there are less DOF and you should use the [compute_modify > extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust the DOF accordingly. \n > \n\nThe translational kinetic energy is computed the same as is described\nby the [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational\nkinetic energy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\) is\nthe moment of inertia for a sphere and \\(\\omega\\) is the particle's angular\nvelocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute. The formula for the components of the\ntensor is the same as the above formulas, except that \\(v^2\\) and\n\\(\\omega^2\\) are replaced by \\(v_x v_y\\) and \\(\\omega_x\n\\omega_y\\) for the \\(xy\\) component. The six components of the\nvector are ordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\),\n\\(xz\\), \\(yz\\).\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) and \\(\\omega^2\\) are replaced by \\(v_x v_y\\)\nand \\(\\omega_x \\omega_y\\) for the \\(xy\\) component, and so on.\nNote that because it lacks the 1/2 factor, these tensor components are\ntwice those of the traditional kinetic energy tensor. The six\ncomponents of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out translational degrees-of-freedom due to fixes\nthat constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups\nof atoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees of freedom can be altered using the\n*extra/dof* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom.\nA setting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres, or point\nparticles with radius = 0.0.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/asphere ](https://docs.lammps.org/compute_temp.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sllod/eff = style name of this fix command\n* zero or more keyword/value pairs may be appended \n *      keyword = psllod \n       psllod value = no or yes = use SLLOD or p-SLLOD variant, respectively \n* additional thermostat related keyword/value pairs from the [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) command may be appended, too. \n", + "examples": "\n```lmps\nfix 1 all nvt/sllod/eff temp 300.0 300.0 0.1\nfix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2\n```\n", + "html_filename": "fix_nvt_sllod_eff.html", + "short_description": "Perform constant NVT integration to update positions and velocities each\ntimestep for nuclei and electrons in the group for the [electronforce field ](https://docs.lammps.org/pair_eff.html) model, using a Nose/Hoover temperature\nthermostat", + "description": "Perform constant NVT integration to update positions and velocities each\ntimestep for nuclei and electrons in the group for the [electronforce field ](https://docs.lammps.org/pair_eff.html) model, using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThe operation of this fix is exactly like that described by the\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) command, except that the radius and\nradial velocity of electrons are also updated and thermostatted.\nLikewise the temperature calculated by the fix, using the compute it\ncreates (as discussed in the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) doc\npage), is performed with a [compute temp/deform/eff](https://docs.lammps.org/compute_temp_deform_eff.html) command that includes the eFF contribution to\nthe temperature from the electron radial velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix works best without Nose-Hoover chain thermostats, i.e. using\ntchain = 1. Setting tchain to larger values can result in poor\nequilibration.\n", + "related": "[fix nve/eff ](https://docs.lammps.org/fix_nve_eff.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html), [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), [fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp/deform/eff ](https://docs.lammps.org/compute_temp_deform_eff.html)\n" }, { "command": [ - "fix lb/fluid" + "fix qeq/reaxff", + "fix qeq/reaxff/kk", + "fix qeq/reaxff/omp" ], "syntax": [ - "fix ID group-ID lb/fluid nevery viscosity density keyword values ..." + "fix ID group-ID qeq/reaxff Nevery cutlo cuthi tolerance params args" ], "args": [ [ @@ -28345,75 +27293,65 @@ export const command_docs = [ "choices": [] }, { - "arg": "lb/fluid", - "type": 1, + "arg": "qeq/reaxff", + "type": 3, + "choices": [ + "qeq/reaxff", + "qeq/reaxff/kk", + "qeq/reaxff/omp" + ] + }, + { + "arg": "Nevery", + "type": 2, "choices": [] }, { - "arg": "nevery", + "arg": "cutlo", "type": 2, "choices": [] }, { - "arg": "viscosity", + "arg": "cuthi", "type": 2, "choices": [] }, { - "arg": "density", + "arg": "tolerance", "type": 2, "choices": [] }, { - "arg": "sw", - "type": 3, - "choices": [ - "dx", - "dm", - "noise", - "stencil", - "read_restart", - "write_restart", - "zwall_velocity", - "pressurebcx", - "bodyforce", - "D3Q19", - "dumpxdmf", - "linearInit", - "dof", - "scaleGamma", - "a0", - "npits", - "wp", - "sw" - ] + "arg": "params", + "type": 2, + "choices": [] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* lb/fluid = style name of this fix command\n* nevery = update the lattice-Boltzmann fluid every this many timesteps (should normally be 1)\n* viscosity = the fluid viscosity (units of mass/(time\\*length)).\n* density = the fluid density.\n* zero or more keyword/value pairs may be appended\n* keyword = dx or dm or noise or stencil or read_restart or write_restart or zwall_velocity or pressurebcx or bodyforce or D3Q19 or dumpxdmf or linearInit or dof or scaleGamma or a0 or npits or wp or sw \n *        dx values = dx_LB = the lattice spacing. \n *        dm values = dm_LB = the lattice-Boltzmann mass unit. \n *        noise values = Temperature seed \n         Temperature = fluid temperature. \n         seed = random number generator seed (positive integer) \n *        stencil values = 2 (trilinear stencil, the default), 3 (3-point immersed boundary stencil), or 4 (4-point Keys' interpolation stencil) \n *        read_restart values = restart file = name of the restart file to use to restart a fluid run. \n *        write_restart values = N = write a restart file every N MD timesteps. \n *        zwall_velocity values = velocity_bottom velocity_top = velocities along the y-direction of the bottom and top walls (located at z=zmin and z=zmax). \n *        pressurebcx values = pgradav = imposes a pressure jump at the (periodic) x-boundary of pgradav*Lx*1000. \n *        bodyforce values = bodyforcex bodyforcey bodyforcez = the x,y and z components of a constant body force added to the fluid. \n *        D3Q19 values = none (used to switch from the default D3Q15, 15 velocity lattice, to the D3Q19, 19 velocity lattice). \n *        dumpxdmf values = N file timeI \n         N = output the force and torque every N timesteps \n         file = output file name \n         timeI = 1 (use simulation time to index xdmf file), 0 (use output frame number to index xdmf file) \n *        linearInit values = none = initialize density and velocity using linear interpolation (default is uniform density, no velocities) \n *        dof values = dof = specify the number of degrees of freedom for temperature calculation \n *        scaleGamma values = type gammaFactor \n         type = atom type (1-N) \n         gammaFactor = factor to scale the setGamma gamma value by, for the specified atom type. \n *        a0 values = a_0_real = the square of the speed of sound in the fluid. \n *        npits values = npits h_p l_p l_pp l_e \n         npits = number of pit regions \n         h_p = z-height of pit regions (floor to bottom of slit) \n         l_p = x-length of pit regions \n         l_pp = x-length of slit regions between consecutive pits \n         l_e = x-length of slit regions at ends \n *        wp values = w_p = y-width of slit regions (defaults to full width if not present or if sw active) \n *        sw values = none (turns on y-sidewalls (in xz plane) if npits option active) \n", - "examples": "\n```lmps\nfix 1 all lb/fluid 1 1.0 0.0009982071 dx 1.2 dm 0.001\nfix 1 all lb/fluid 1 1.0 0.0009982071 dx 1.2 dm 0.001 noise 300.0 2761\nfix 1 all lb/fluid 1 1.0 1.0 dx 4.0 dm 10.0 dumpxdmf 500 fflow 0 pressurebcx 0.01 npits 2 20 40 5 0 wp 30\n```\n", - "html_filename": "fix_lb_fluid.html", - "short_description": "\nImplement a lattice-Boltzmann fluid on a uniform mesh covering the\nLAMMPS simulation domain", - "description": "\nImplement a lattice-Boltzmann fluid on a uniform mesh covering the\nLAMMPS simulation domain. Note that this fix was updated in 2022 and is\nnot backward compatible with the previous version. If you need the\nprevious version, please download an older version of LAMMPS. The MD\nparticles described by *group-ID* apply a velocity dependent force to\nthe fluid.\n\nThe lattice-Boltzmann algorithm solves for the fluid motion governed by\nthe Navier Stokes equations,\n\\[\\begin{align*} \n \\partial_t \\rho + \\partial_{\\beta}\\left(\\rho u_{\\beta}\\right)= & 0 \\\\\n \\partial_t\\left(\\rho u_{\\alpha}\\right) + \\partial_{\\beta}\\left(\\rho u_{\\alpha} u_{\\beta}\\right) = & \\partial_{\\beta}\\sigma_{\\alpha \\beta} + F_{\\alpha} + \\partial_{\\beta}\\left(\\eta_{\\alpha \\beta \\gamma \\nu}\\partial_{\\gamma} u_{\\nu}\\right) \\end{align*} \\]\nwith,\n\\[\n \\eta_{\\alpha \\beta \\gamma \\nu} = \\eta\\left[\\delta_{\\alpha \\gamma}\\delta_{\\beta \\nu} + \\delta_{\\alpha \\nu}\\delta_{\\beta \\gamma} - \\frac{2}{3}\\delta_{\\alpha \\beta}\\delta_{\\gamma \\nu}\\right] + \\Lambda \\delta_{\\alpha \\beta}\\delta_{\\gamma \\nu}\\]\nwhere \\(\\rho\\) is the fluid density, *u* is the local\nfluid velocity, \\(\\sigma\\) is the stress tensor, *F* is a local external\nforce, and \\(\\eta\\) and \\(\\Lambda\\) are the shear and bulk viscosities\nrespectively. Here, we have implemented\n\\[\n \\sigma_{\\alpha \\beta} = -P_{\\alpha \\beta} = -\\rho a_0 \\delta_{\\alpha \\beta}\\]\nwith \\(a_0\\) set to \\(\\frac{1}{3} \\frac{dx}{dt}^2\\) by default.\nYou should not normally need to change this default.\n\nThe algorithm involves tracking the time evolution of a set of partial\ndistribution functions which evolve according to a velocity discretized\nversion of the Boltzmann equation,\n\\[\n \\left(\\partial_t + e_{i\\alpha}\\partial_{\\alpha}\\right)f_i = -\\frac{1}{\\tau}\\left(f_i - f_i^{eq}\\right) + W_i\\]\nwhere the first term on the right hand side represents a single time\nrelaxation towards the equilibrium distribution function, and\n\\(\\tau\\) is a parameter physically related to the viscosity. On a\ntechnical note, we have implemented a 15 velocity model (D3Q15) as\ndefault; however, the user can switch to a 19 velocity model (D3Q19)\nthrough the use of the *D3Q19* keyword. Physical variables are then\ndefined in terms of moments of the distribution functions,\n\\[\\begin{align*} \n \\rho = & \\displaystyle\\sum\\limits_{i} f_i \\\\\n \\rho u_{\\alpha} = & \\displaystyle\\sum\\limits_{i} f_i e_{i\\alpha} \\end{align*} \\]\nFull details of the lattice-Boltzmann algorithm used can be found in\n**fluid-Denniston**.\n\nThe fluid is coupled to the MD particles described by *group-ID* through\na velocity dependent force. The contribution to the fluid force on a\ngiven lattice mesh site j due to MD particle \\(\\alpha\\) is\ncalculated as:\n\\[\n {\\bf F}_{j \\alpha} = \\gamma \\left({\\bf v}_n - {\\bf u}_f \\right) \\zeta_{j\\alpha}\\]\nwhere \\(\\mathbf{v}_n\\) is the velocity of the MD particle,\n\\(\\mathbf{u}_f\\) is the fluid velocity interpolated to the particle\nlocation, and \\(\\gamma\\) is the force coupling constant. This\nforce, as with most forces in LAMMPS, and hence the velocities, are\ncalculated at the half-time step. \\(\\zeta\\) is a weight assigned to\nthe grid point, obtained by distributing the particle to the nearest\nlattice sites.\n\nThe force coupling constant, \\(\\gamma\\), is calculated\naccording to\n\\[\n \\gamma = \\frac{2m_um_v}{m_u+m_v}\\left(\\frac{1}{\\Delta t}\\right)\\]\nHere, \\(m_v\\) is the mass of the MD particle, \\(m_u\\) is a\nrepresentative fluid mass at the particle location, and \\(\\Delta t\\)\nis the time step. The fluid mass \\(m_u\\) that the MD particle\ninteracts with is calculated internally. This coupling is chosen to\nconstrain the particle and associated fluid velocity to match at the end\nof the time step. As with other constraints, such as [shake](https://docs.lammps.org/fix_shake.html), this constraint can remove degrees of freedom from the\nsimulation which are accounted for internally in the algorithm.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >While this fix applies the force of the particles on the fluid, it\n > does not apply the force of the fluid to the particles. There is\n > only one option to include this hydrodynamic force on the particles,\n > and that is through the use of the [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html)\n > fix. This fix adds the hydrodynamic force to the total force acting\n > on the particles, after which any of the built-in LAMMPS integrators\n > can be used to integrate the particle motion. If the\n > [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) fix is NOT used to add the\n > hydrodynamic force to the total force acting on the particles, this\n > physically corresponds to a situation in which an infinitely massive\n > particle is moving through the fluid (since collisions between the\n > particle and the fluid do not act to change the particle's velocity).\n > In this case, setting *scaleGamma* to -1 for the corresponding\n > particle type will explicitly take this limit (of infinite particle\n > mass) in computing the force coupling for the fluid force. \n > \n\n----------\n\nPhysical parameters describing the fluid are specified through\n*viscosity* and *density*. These parameters should all be given in\nterms of the mass, distance, and time units chosen for the main LAMMPS\nrun, as they are scaled by the LB timestep, lattice spacing, and mass\nunit, inside the fix.\n\nThe *dx* keyword allows the user to specify a value for the LB grid\nspacing and the *dm* keyword allows the user to specify the LB mass\nunit. Inside the fix, parameters are scaled by the lattice-Boltzmann\ntimestep, \\(dt_{LB}\\), grid spacing, \\(dx_{LB}\\), and mass unit,\n\\(dm_{LB}\\). \\(dt_{LB}\\) is set equal to\n\\(\\mathrm{nevery}\\cdot dt_{MD}\\), where \\(dt_{MD}\\) is the MD\ntimestep. By default, \\(dm_{LB}\\) is set equal to 1.0, and\n\\(dx_{LB}\\) is chosen so that \\(\\frac{\\tau}{dt} = \\frac{3\\eta\ndt}{\\rho dx^2}\\) is approximately equal to 1.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care must be taken when choosing both a value for \\(dx_{LB}\\),\n > and a simulation domain size. This fix uses the same subdivision of\n > the simulation domain among processors as the main LAMMPS program. In\n > order to uniformly cover the simulation domain with lattice sites, the\n > lengths of the individual LAMMPS subdomains must all be evenly\n > divisible by \\(dx_{LB}\\). If the simulation domain size is cubic,\n > with equal lengths in all dimensions, and the default value for\n > \\(dx_{LB}\\) is used, this will automatically be satisfied. \n > \n\nIf the *noise* keyword is used, followed by a positive temperature\nvalue, and a positive integer random number seed, the thermal LB algorithm\nof **Adhikari** is used.\n\nIf the keyword *stencil* is used, the value sets the number of\ninterpolation points used in each direction. For this, the user has the\nchoice between a trilinear stencil (*stencil* 2), which provides a\nsupport of 8 lattice sites, or the 3-point immersed boundary method\nstencil (*stencil* 3), which provides a support of 27 lattice sites, or\nthe 4-point Keys' interpolation stencil (stencil 4), which provides a\nsupport of 64 lattice sites. The trilinear stencil is the default as it\nis better suited for simulation of objects close to walls or other\nobjects, due to its smaller support. The 3-point stencil provides\nsmoother motion of the lattice and is suitable for particles not likely\nto be to close to walls or other objects.\n\nIf the keyword *write_restart* is used, followed by a positive integer,\nN, a binary restart file is printed every N LB timesteps. This restart\nfile only contains information about the fluid. Therefore, a LAMMPS\nrestart file should also be written in order to print out full details\nof the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a large number of lattice grid points are used, the restart\n > files may become quite large. \n > \n\nIn order to restart the fluid portion of the simulation, the keyword\n*read_restart* is specified, followed by the name of the binary\nlb_fluid restart file to be used.\n\nIf the *zwall_velocity* keyword is used y-velocities are assigned to\nthe lower and upper walls. This keyword requires the presence of\nwalls in the z-direction. This is set by assigning fixed boundary\nconditions in the z-direction. If fixed boundary conditions are\npresent in the z-direction, and this keyword is not used, the walls\nare assumed to be stationary.\n\nIf the *pressurebcx* keyword is used, a pressure jump (implemented by a\nstep jump in density) is imposed at the (periodic) x-boundary. The\nvalue set specifies what would be the resulting equilibrium average\npressure gradient in the x-direction if the system had a constant\ncross-section (i.e. resistance to flow). It is converted to a pressure\njump by multiplication by the system size in the x-direction. As this\nvalue should normally be quite small, it is also assumed to be scaled\nby 1000.\n\nIf the *bodyforce* keyword is used, a constant body force is added to\nthe fluid, defined by it's x, y and z components.\n\nIf the keyword *D3Q19* is used, the 19 velocity (D3Q19) lattice is\nused by the lattice-Boltzmann algorithm. By default, the 15 velocity\n(D3Q15) lattice is used.\n\nIf the *dumpxdmf* keyword is used, followed by a positive integer, N,\nand a file name, the fluid densities and velocities at each lattice site\nare output to an xdmf file every N timesteps. This is a binary file\nformat that can be read by visualization packages such as [Paraview](https://www.paraview.org/) . The xdmf file format contains a time\nindex for each frame dump and the value timeI = 1 uses simulation time\nwhile 0 uses the output frame number to index xdmf file. The later can\nbe useful if the [dump vtk ](https://docs.lammps.org/dump_vtk.html) command is used to output\nthe particle positions at the same timesteps and you want to visualize\nboth the fluid and particle data together in [Paraview](https://www.paraview.org/) .\n\nThe *scaleGamma* keyword allows the user to scale the \\(\\gamma\\)\nvalue by a factor, gammaFactor, for a given atom type. Setting\n*scaleGamma* to -1 for the corresponding particle type will explicitly\ntake the limit of infinite particle mass in computing the force coupling\nfor the fluid force (see note above).\n\nIf the *a0* keyword is used, the value specified is used for the square\nof the speed of sound in the fluid. If this keyword is not present, the\nspeed of sound squared is set equal to\n\\(\\frac{1}{3}\\left(\\frac{dx_{LB}}{dt_{LB}}\\right)^2\\). Setting\n\\(a0 > (\\frac{dx_{LB}}{dt_{LB}})^2\\) is not allowed, as this may\nlead to instabilities. As the speed of sound should usually be much\nlarger than any fluid velocity of interest, its value does not normally\nhave a significant impact on the results. As such, it is usually best\nto use the default for this option.\n\nThe *npits* keyword (followed by integer arguments: npits, h_p, l_p,\nl_pp, l_e) sets the fluid domain to the pits geometry. These arguments\nshould only be used if you actually want something more complex than a\nrectangular/cubic geometry. The npits value sets the number of pits\nregions (arranged along x). The remaining arguments are sizes measured\nin multiples of dx_lb: h_p is the z-height of the pit regions, l_p is\nthe x-length of the pit regions, l_pp is the length of the region\nbetween consecutive pits (referred to as a \"slit\" region), and l_e is\nthe x-length of the slit regions at each end of the channel. The pit\ngeometry must fill the system in the x-direction but can be longer, in\nwhich case it is truncated (which enables asymmetric entrance/exit end\nsections). The additional *wp* keyword allows the width (in\ny-direction) of the pit to be specified (the default is full width) and\nthe *sw* keyword indicates that there should be sidewalls in the\ny-direction (default is periodic in y-direction). These parameters are\nillustrated below::\n\n Sideview (in xz plane) of pit geometry:\n ______________________________________________________________________\n slit slit slit ^\n |\n <---le---><---------lp-------><---lpp---><-------lp--------><---le---> hs = (Nbz-1) - hp\n |\n __________ __________ __________ v\n | | | | ^ z\n | | | | | |\n | pit | | pit | hp +-x\n | | | | |\n |__________________| |__________________| v\n\n Endview (in yz plane) of pit geometry (no sw so wp is active):\n _____________________\n ^\n |\n hs\n |\n _____________________ v\n | | ^\n | | | z\n |<---wp--->| hp |\n | | | +-y\n |__________| v\n\n\n----------\n\nFor further details, as well as descriptions and results of several test\nruns, see **fluid-Denniston**. Please include a\ncitation to this paper if the lb_fluid fix is used in work contributing\nto published research.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nDue to the large size of the fluid data, this fix writes it's own\nbinary restart files, if requested, independent of the main LAMMPS\n[binary restart files ](https://docs.lammps.org/restart.html); no information about *lb_fluid*\nis written to the main LAMMPS [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThe fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the current\ntemperature of the group of particles described by *group-ID* along with\nthe fluid constrained to move with them. The temperature is computed via\nthe kinetic energy of the group and fluid constrained to move with them\nand the total number of degrees of freedom (calculated internally). If\nthe particles are not integrated independently (such as via [fixNVE ](https://docs.lammps.org/fix_nve.html)) but have additional constraints imposed on them (such as\nvia integration using [fix rigid ](https://docs.lammps.org/fix_rigid.html)) the degrees of\nfreedom removed from these additional constraints will not be properly\naccounted for. In this case, the user can specify the total degrees of\nfreedom independently using the *dof* keyword.\n\nThe fix also computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). There are 5 entries in\nthe array. The first entry is the temperature of the fluid, the second\nentry is the total mass of the fluid plus particles, the third through\nfifth entries give the x, y, and z total momentum of the fluid plus\nparticles.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(fluid-Denniston)** Denniston, C., Afrasiabian, N., Cole-Andre, M.G., Mackay, F. E., Ollila, S.T.T., and Whitehead, T., LAMMPS lb/fluid fix version 2: Improved Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 275 (2022) [108318](https://doi.org/10.1016/j.cpc.2022.108318) . \n \n**(Adhikari)** Adhikari, R., Stratford, K., Cates, M. E., and Wagner, A. J., Fluctuating lattice Boltzmann, Europhys. Lett. 71 (2005) 473-479. \n ", - "restrictions": "This fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix can only be used with an orthogonal simulation domain.\n\nThe boundary conditions for the fluid are specified independently to the\nparticles. However, these should normally be specified consistently via\nthe main LAMMPS [boundary ](https://docs.lammps.org/boundary.html) command (p p p, p p f, and p\nf f are the only consistent possibilities). Shrink-wrapped boundary\nconditions are not permitted with this fix.\n\nThis fix must be used before any of [fix lb/viscous](https://docs.lammps.org/fix_lb_viscous.html) and [fix lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html) as the\nfluid needs to be initialized before any of these routines try to access\nits properties. In addition, in order for the hydrodynamic forces to be\nadded to the particles, this fix must be used in conjunction with the\n[lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) fix.\n\nThis fix needs to be used in conjunction with a standard LAMMPS\nintegrator such as [fix NVE ](https://docs.lammps.org/fix_nve.html) or [fix rigid](https://docs.lammps.org/fix_rigid.html).\n", - "related": "[fix lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html), [fix lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qeq/reaxff = style name of this fix command\n* Nevery = perform QEq every this many steps\n* cutlo,cuthi = lo and hi cutoff for Taper radius\n* tolerance = precision to which charges will be equilibrated\n* params = reaxff or a filename\n* one or more keywords or keyword/value pairs may be appended \n *      keyword = dual or maxiter or nowarn \n       dual = process S and T matrix in parallel (only for qeq/reaxff/omp) \n       maxiter N = limit the number of iterations to N \n       nowarn = do not print a warning message if the maximum number of iterations was reached \n", + "examples": "\n```lmps\nfix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff\nfix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 param.qeq maxiter 500\n```\n", + "html_filename": "fix_qeq_reaxff.html", + "short_description": "Perform the charge equilibration (QEq) method as described in\n**Rappe2** and formulated in **Nakano2**", + "description": "Perform the charge equilibration (QEq) method as described in\n**Rappe2** and formulated in **Nakano2**. It is typically used in conjunction with the ReaxFF force\nfield model as implemented in the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)\ncommand, but it can be used with any potential in LAMMPS, so long as it\ndefines and uses charges on each atom. The [fix qeq/comb](https://docs.lammps.org/fix_qeq_comb.html) command should be used to perform charge equilibration\nwith the [COMB potential ](https://docs.lammps.org/pair_comb.html). For more technical details\nabout the charge equilibration performed by fix qeq/reaxff, see the\n**qeq-Aktulga** paper.\n\nThe QEq method minimizes the electrostatic energy of the system by\nadjusting the partial charge on individual atoms based on interactions\nwith their neighbors. It requires some parameters for each atom type.\nIf the *params* setting above is the word \"reaxff\", then these are\nextracted from the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command and\nthe ReaxFF force field file it reads in. If a file name is specified\nfor *params*, then the parameters are taken from the specified file\nand the file must contain one line for each atom type. The latter\nform must be used when performing QeQ with a non-ReaxFF potential.\nEach line should be formatted as follows:\n\n```\nitype chi eta gamma\n```\nwhere *itype* is the atom type from 1 to Ntypes, *chi* denotes the\nelectronegativity in eV, *eta* denotes the self-Coulomb\npotential in eV, and *gamma* denotes the valence orbital\nexponent. Note that these 3 quantities are also in the ReaxFF\npotential file, except that eta is defined here as twice the eta value\nin the ReaxFF file. Note that unlike the rest of LAMMPS, the units\nof this fix are hard-coded to be A, eV, and electronic charge.\n\nThe optional *dual* keyword allows to perform the optimization\nof the S and T matrices in parallel. This is only supported for\nthe *qeq/reaxff/omp* style. Otherwise they are processed separately.\nThe *qeq/reaxff/kk* style always solves the S and T matrices in\nparallel.\n\nThe optional *maxiter* keyword allows changing the max number\nof iterations in the linear solver. The default value is 200.\n\nThe optional *nowarn* keyword silences the warning message printed\nwhen the maximum number of iterations was reached. This can be\nuseful for comparing serial and parallel results where having the\nsame fixed number of QEq iterations is desired, which can be achieved\nby using a very small tolerance and setting *maxiter* to the desired\nnumber of iterations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). This fix computes a global scalar (the number of\niterations) for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Rappe2)** Rappe and Goddard III, Journal of Physical Chemistry, 95,\n3358-3363 (1991). \n \n**(Nakano2)** Nakano, Computer Physics Communications, 104, 59-69 (1997). \n \n**(qeq-Aktulga)** Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,\n245-259 (2012). \n ", + "restrictions": "This fix is part of the REAXFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix does not correctly handle interactions involving multiple\nperiodic images of the same atom. Hence, it should not be used for\nperiodic cell dimensions less than 10 Angstroms.\n\nThis fix may be used in combination with [fix efield ](https://docs.lammps.org/fix_efield.html)\nand will apply the external electric field during charge equilibration,\nbut there may be only one fix efield instance used and the electric field\nvector may only have components in non-periodic directions. Equal-style\nvariables can be used for electric field vector components without any further\nsettings. Atom-style variables can be used for spatially-varying electric field\nvector components, but the resulting electric potential must be specified\nas an atom-style variable using the *potential* keyword for `fix efield`.\n", + "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html)\n" }, { "command": [ - "fix spring" + "compute temp/body" ], "syntax": [ - "fix ID group-ID spring keyword values" + "compute ID group-ID temp/body keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -28428,39 +27366,39 @@ export const command_docs = [ "choices": [] }, { - "arg": "spring", + "arg": "temp/body", "type": 1, "choices": [] }, { - "arg": "couple", + "arg": "dof", "type": 3, "choices": [ - "tether", - "couple" + "bias", + "dof" ] }, { - "arg": "values", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring = style name of this fix command\n* keyword = tether or couple \n *        tether values = K x y z R0 \n         K = spring constant (force/distance units) \n         x,y,z = point to which spring is tethered \n         R0 = equilibrium distance from tether point (distance units) \n *        couple values = group-ID2 K x y z R0 \n         group-ID2 = 2nd group to couple to fix group with a spring \n         K = spring constant (force/distance units) \n         x,y,z = direction of spring \n         R0 = equilibrium distance of spring (distance units) \n", - "examples": "\n```lmps\nfix pull ligand spring tether 50.0 0.0 0.0 0.0 0.0\nfix pull ligand spring tether 50.0 0.0 0.0 0.0 5.0\nfix pull ligand spring tether 50.0 NULL NULL 2.0 3.0\nfix 5 bilayer1 spring couple bilayer2 100.0 NULL NULL 10.0 0.0\nfix longitudinal pore spring couple ion 100.0 NULL NULL -20.0 0.0\nfix radial pore spring couple ion 100.0 0.0 0.0 NULL 5.0\n```\n", - "html_filename": "fix_spring.html", - "short_description": "Apply a spring force to a group of atoms or between two groups of\natoms", - "description": "Apply a spring force to a group of atoms or between two groups of\natoms. This is useful for applying an umbrella force to a small\nmolecule or lightly tethering a large group of atoms (e.g. all the\nsolvent or a large molecule) to the center of the simulation box so\nthat it does not wander away over the course of a long simulation. It\ncan also be used to hold the centers of mass of two groups of atoms at\na given distance or orientation with respect to each other.\n\nThe *tether* style attaches a spring between a fixed point *x,y,z* and\nthe center of mass of the fix group of atoms. The equilibrium\nposition of the spring is R0. At each timestep the distance R from\nthe center of mass of the group of atoms to the tethering point is\ncomputed, taking account of wrap-around in a periodic simulation box.\nA restoring force of magnitude K (R - R0) Mi / M is applied to each\natom in the group where *K* is the spring constant, Mi is the mass of\nthe atom, and M is the total mass of all atoms in the group. Note\nthat *K* thus represents the spring constant for the total force on\nthe group of atoms, not for a spring applied to each atom.\n\nThe *couple* style links two groups of atoms together. The first\ngroup is the fix group; the second is specified by group-ID2. The\ngroups are coupled together by a spring that is at equilibrium when\nthe two groups are displaced by a vector *x,y,z* with respect to each\nother and at a distance R0 from that displacement. Note that *x,y,z*\nis the equilibrium displacement of group-ID2 relative to the fix\ngroup. Thus (1,1,0) is a different spring than (-1,-1,0). When the\nrelative positions and distance between the two groups are not in\nequilibrium, the same spring force described above is applied to atoms\nin each of the two groups.\n\nFor both the *tether* and *couple* styles, any of the x,y,z values can\nbe specified as NULL which means do not include that dimension in the\ndistance calculation or force application.\n\nThe first example above pulls the ligand towards the point (0,0,0).\nThe second example holds the ligand near the surface of a sphere of\nradius 5 around the point (0,0,0). The third example holds the ligand\na distance 3 away from the z=2 plane (on either side).\n\nThe fourth example holds 2 bilayers a distance 10 apart in z. For the\nlast two examples, imagine a pore (a slab of atoms with a cylindrical\nhole cut out) oriented with the pore axis along z, and an ion moving\nwithin the pore. The fifth example holds the ion a distance of -20\nbelow the z = 0 center plane of the pore (umbrella sampling). The\nlast example holds the ion a distance 5 away from the pore axis\n(assuming the center-of-mass of the pore in x,y is the pore axis).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The center of mass of a group of atoms is calculated in\n > \"unwrapped\" coordinates using atom image flags, which means that the\n > group can straddle a periodic boundary. See the [dump ](https://docs.lammps.org/dump.html) doc\n > page for a discussion of unwrapped coordinates. It also means that a\n > spring connecting two groups or a group and the tether point can cross\n > a periodic boundary and its length be calculated correctly. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the spring to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the spring energy\n= 0.5 \\* K \\* r\\^2.\n\nThis fix also computes global 4-vector which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The first 3 quantities\nin the vector are xyz components of the total force added to the group\nof atoms by the spring. In the case of the *couple* style, it is the\nforce on the fix group (group-ID) or the negative of the force on the\nsecond group (group-ID2). The fourth quantity in the vector is the\nmagnitude of the force added by the spring, as a positive value if\n(r-R0) > 0 and a negative value if (r-R0) < 0. This sign convention\ncan be useful when using the spring force to compute a potential of\nmean force (PMF).\n\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the spring energy to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this\n > fix. \n > \n\n", - "restrictions": " none\n", - "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html), [fix smd ](https://docs.lammps.org/fix_smd.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/body = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = bias or dof \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        dof value = all or rotate \n         all = compute temperature of translational and rotational degrees of freedom \n         rotate = compute temperature of just rotational degrees of freedom \n", + "examples": "\n```lmps\ncompute 1 all temp/body\ncompute myTemp mobile temp/body bias tempCOM\ncompute myTemp mobile temp/body dof rotate\n```\n", + "html_filename": "compute_temp_body.html", + "short_description": "Define a computation that calculates the temperature of a group of\nbody particles, including a contribution from both their\ntranslational and rotational kinetic energy", + "description": "Define a computation that calculates the temperature of a group of\nbody particles, including a contribution from both their\ntranslational and rotational kinetic energy. This differs from the\nusual [compute temp ](https://docs.lammps.org/compute_temp.html) command, which assumes point\nparticles with only translational kinetic energy.\n\nOnly body particles can be included in the group. For 3d particles,\neach has 6 degrees of freedom (3 translational, 3 rotational). For 2d\nbody particles, each has 3 degrees of freedom (2 translational, 1\nrotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This choice for degrees of freedom (DOF) assumes that all body\n > particles in your model will freely rotate, sampling all their\n > rotational DOF. It is possible to use a combination of interaction\n > potentials and fixes that induce no torque or otherwise constrain\n > some of all of your particles so that this is not the case. Then\n > there are less DOF and you should use the [compute_modify > extra/dof ](https://docs.lammps.org/compute_modify.html) command to adjust the DOF accordingly. \n > \n\nThe translational kinetic energy is computed the same as is described\nby the [compute temp ](https://docs.lammps.org/compute_temp.html) command. The rotational\nkinetic energy is computed as \\(\\frac12 I \\omega^2\\), where \\(I\\)\nis the moment of inertia tensor for the aspherical particle and \\(\\omega\\)\nis its angular velocity, which is computed from its angular momentum.\n\nA kinetic energy tensor, stored as a 6-element vector, is also calculated by\nthis compute. The formula for the components of the tensor is the same as the\nabove formula, except that \\(v^2\\) and \\(\\omega^2\\) are\nreplaced by \\(v_x v_y\\) and \\(\\omega_x \\omega_y\\) for the\nmath:`xy` component, and the appropriate elements of the inertia tensor are\nused. The six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic/dof* option of\nthe [compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the\ncase.\n\nThis compute subtracts out translational degrees-of-freedom due to\nfixes that constrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the\ntemperature of groups of atoms that include these constraints will be\ncomputed correctly. If needed, the subtracted degrees-of-freedom can\nbe altered using the *extra/dof* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This allows\ncompute temp/sphere to compute its thermal temperature after the\ntranslational kinetic energy components have been altered in a\nprescribed way (e.g., to remove a flow velocity profile). Thermostats\nthat use this compute will work with this bias term. See the doc\npages for individual computes that calculate a temperature and the doc\npages for fixes that perform thermostatting for more details.\n\nFor the *dof* keyword, a setting of *all* calculates a temperature\nthat includes both translational and rotational degrees of freedom. A\nsetting of *rotate* calculates a temperature that includes only\nrotational degrees of freedom.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html).\nThe vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the BODY package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires that atoms store angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" }, { "command": [ - "compute pe" + "compute smd/triangle/vertices" ], "syntax": [ - "compute ID group-ID pe keyword ..." + "compute ID group-ID smd/triangle/vertices" ], "args": [ [ @@ -28480,51 +27418,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "pe", + "arg": "smd/triangle/vertices", "type": 1, "choices": [] - }, - { - "arg": "fix", - "type": 3, - "choices": [ - "pair", - "bond", - "angle", - "dihedral", - "improper", - "kspace", - "fix" - ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pe = style name of this compute command\n* zero or more keywords may be appended\n* keyword = pair or bond or angle or dihedral or improper or kspace or fix \n", - "examples": "\n```lmps\ncompute 1 all pe\ncompute molPE all pe bond angle dihedral improper\n```\n", - "html_filename": "compute_pe.html", - "short_description": "Define a computation that calculates the potential energy of the\nentire system of atoms", - "description": "Define a computation that calculates the potential energy of the\nentire system of atoms. The specified group must be \"all\". See the\n[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command if you want per-atom\nenergies. These per-atom values could be summed for a group of atoms\nvia the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe energy is calculated by the various pair, bond, etc. potentials\ndefined for the simulation. If no extra keywords are listed, then the\npotential energy is the sum of pair, bond, angle, dihedral, improper,\n\\(k\\)-space (long-range), and fix energy (i.e., it is as though all the\nkeywords were listed). If any extra keywords are listed, then only\nthose components are summed to compute the potential energy.\n\nThe \\(k\\)-space contribution requires 1 extra FFT each timestep the energy\nis calculated, if using the PPPM solver via the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html) command. Thus it can increase the cost of the\nPPPM calculation if it is needed on a large fraction of the simulation\ntimesteps.\n\nVarious fixes can contribute to the total potential energy of the\nsystem if the *fix* contribution is included. See the doc pages for\n[individual fixes ](https://docs.lammps.org/fix.html) for details of which ones compute a\npotential energy.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be\n > specified if a fix is to contribute potential energy to this command. \n > \n\nA compute of this style with the ID of \"thermo_pe\" is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_pe all pe\n```\nSee the \"thermo_style\" command for more details.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the potential energy). This\nvalue can be used by any command that uses a global scalar value from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/triangle/vertices = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/triangle/vertices\n```\n", + "html_filename": "compute_smd_triangle_vertices.html", + "short_description": "Define a computation that returns the coordinates of the vertices\ncorresponding to the triangle-elements of a mesh created by the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)", + "description": "Define a computation that returns the coordinates of the vertices\ncorresponding to the triangle-elements of a mesh created by the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html).\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute returns a per-particle vector of vectors, which can be\naccessed by any command that uses per-particle values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-particle vector has nine entries, (x1/y1/z1), (x2/y2/z2), and\n(x3/y3/z3) corresponding to the first, second, and third vertex of\neach triangle.\n\nIt is only meaningful to use this compute for a group of particles\nwhich is created via the [fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) command.\n\nThe output of this compute can be used with the dump2vtk_tris tool to\ngenerate a VTK representation of the smd/wall_surface mesh for\nvisualization purposes.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of distance.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix smd/move/tri/surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html),\n[fix smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html)\n" }, { "command": [ - "fix nvt", - "fix nvt/gpu", - "fix nvt/intel", - "fix nvt/kk", - "fix nvt/omp", - "fix npt", - "fix npt/gpu", - "fix npt/intel", - "fix npt/kk", - "fix npt/omp", - "fix nph", - "fix nph/kk", - "fix nph/omp" + "fix poems" ], "syntax": [ - "fix ID group-ID style_name keyword value ..." + "fix ID group-ID poems keyword values" ], "args": [ [ @@ -28544,257 +27457,234 @@ export const command_docs = [ "choices": [] }, { - "arg": "nph/omp", + "arg": "poems", + "type": 1, + "choices": [] + }, + { + "arg": "molecule", "type": 3, "choices": [ - "nvt", - "npt", - "nph", - "nvt/gpu", - "nvt/intel", - "nvt/kk", - "nvt/omp", - "npt/gpu", - "npt/intel", - "npt/kk", - "npt/omp", - "nph/kk", - "nph/omp" + "group", + "file", + "molecule" ] }, { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = nvt or npt or nph\n* one or more keyword/value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or ptemp or dilate or scalexy or scaleyz or scalexz or flip or fixedpoint or update \n       temp values = Tstart Tstop Tdamp \n       Tstart,Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       pchain value = N \n       N length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = M \n       M = number of sub-cycles to perform on thermostat \n       ploop value = M \n       M = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = Df \n       Df = drag factor added to barostat/thermostat (0.0 = no drag) \n       ptemp value = Ttarget \n       Ttarget = target temperature for barostat \n       dilate value = dilate-group-ID \n       dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n       scalexy value = yes or no = scale xy with ly \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       fixedpoint values = x y z \n       x,y,z = perform barostat dilation/contraction around this point (distance units) \n       update value = dipole or dipole/dlm \n       dipole = update dipole orientation (only for sphere variants) \n       dipole/dlm = use DLM integrator to update dipole orientation (only for sphere variants) \n", - "examples": "\n```lmps\nfix 1 all nvt temp 300.0 300.0 100.0\nfix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0\nfix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\n", - "html_filename": "fix_nh.html", - "short_description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the canonical (nvt),\nisothermal-isobaric (npt), and isenthalpic (nph) ensembles", - "description": "These commands perform time integration on Nose-Hoover style\nnon-Hamiltonian equations of motion which are designed to generate\npositions and velocities sampled from the canonical (nvt),\nisothermal-isobaric (npt), and isenthalpic (nph) ensembles. This\nupdates the position and velocity for atoms in the group each\ntimestep.\n\nThe thermostatting and barostatting is achieved by adding some dynamic\nvariables which are coupled to the particle velocities\n(thermostatting) and simulation domain dimensions (barostatting). In\naddition to basic thermostatting and barostatting, these fixes can\nalso create a chain of thermostats coupled to the particle thermostat,\nand another chain of thermostats coupled to the barostat\nvariables. The barostat can be coupled to the overall box volume, or\nto individual dimensions, including the *xy*, *xz* and *yz* tilt\ndimensions. The external pressure of the barostat can be specified as\neither a scalar pressure (isobaric ensemble) or as components of a\nsymmetric stress tensor (constant stress ensemble). When used\ncorrectly, the time-averaged temperature and stress tensor of the\nparticles will match the target values specified by Tstart/Tstop and\nPstart/Pstop.\n\nThe equations of motion used are those of Shinoda et al in\n**nh-Shinoda**, which combine the hydrostatic equations of\nMartyna, Tobias and Klein in **nh-Martyna** with the strain\nenergy proposed by Parrinello and Rahman in\n**nh-Parrinello**. The time integration schemes closely\nfollow the time-reversible measure-preserving Verlet and rRESPA\nintegrators derived by Tuckerman et al in **nh-Tuckerman**.\n\n----------\n\nThe thermostat parameters for fix styles *nvt* and *npt* are specified\nusing the *temp* keyword. Other thermostat-related keywords are\n*tchain*, *tloop* and *drag*, which are discussed below.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles. The translational degrees of freedom can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature at each timestep is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command). The atoms in the\nfix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. Note that this is NOT the same as 100 time units for\n > most [units ](https://docs.lammps.org/units.html) settings. A simple way to ensure this, is\n > via using an [immediate variable ](https://docs.lammps.org/variable.html) expression accessing\n > the thermo property 'dt', which is the length of the time step. Example: \n > \n\n\n```lmps\nfix 1 all nvt temp 300.0 300.0 $(100.0*dt)\n```\n----------\n\nThe barostat parameters for fix styles *npt* and *nph* is specified\nusing one or more of the *iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*,\n*xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify all 6 components of an external stress tensor, and\nto couple various of these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation.\n\nOther barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *drag*, and *dilate*, which are discussed below.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z*, *xy*, *xz*, *yz*\nkeywords, which correspond to the 6 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. If\nthe *xy* keyword is used, the xy tilt factor will change. A box\ndimension will not change if that component is not specified, although\nyou have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover barostat will not work well for arbitrary values\n > of *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\nThe relaxation rate of the barostat is set by its inertia \\(W\\):\n\\[\n W = (N + 1) k_B T_{\\rm target} P_{\\rm damp}^2\\]\nwhere \\(N\\) is the number of atoms, \\(k_B\\) is the Boltzmann constant,\nand \\(T_{\\rm target}\\) is the target temperature of the barostat **nh-Martyna**.\nIf a thermostat is defined, \\(T_{\\rm target}\\) is the target temperature\nof the thermostat. If a thermostat is not defined, \\(T_{\\rm target}\\)\nis set to the current temperature of the system when the barostat is initialized.\nIf this temperature is too low the simulation will quit with an error.\nNote: in previous versions of LAMMPS, \\(T_{\\rm target}\\) would default to\na value of 1.0 for *lj* units and 300.0 otherwise if the system had a temperature\nof exactly zero.\n\nIf a thermostat is not specified by this fix, \\(T_{\\rm target}\\) can be\nmanually specified using the *Ptemp* parameter. This may be useful if the\nbarostat is initialized when the current temperature does not reflect the\nsteady state temperature of the system. This keyword may also be useful in\nathermal simulations where the temperature is not well defined.\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. This option should\nbe used with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin. Also note that for atoms not in the fix\ngroup, a separate time integration fix like [fix nve ](https://docs.lammps.org/fix_nve.html) or\n[fix nvt ](https://docs.lammps.org/fix_nh.html) can be used on them, independent of whether they\nare dilated or not.\n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Pstart Pstop Pdamp\" is the same as\nspecifying these 7 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\nxy 0.0 0.0 Pdamp\nyz 0.0 0.0 Pdamp\nxz 0.0 0.0 Pdamp\ncouple none\n```\n----------\n\nIn some cases (e.g. for solids) the pressure (volume) and/or\ntemperature of the system can oscillate undesirably when a Nose/Hoover\nbarostat and thermostat is applied. The optional *drag* keyword will\ndamp these oscillations, although it alters the Nose/Hoover equations.\nA value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.\nA non-zero value adds a drag term; the larger the value specified, the\ngreater the damping effect. Performing a short run and monitoring the\npressure and temperature is the best way to determine if the drag term\nis working. Typically a value between 0.2 to 2.0 is sufficient to\ndamp oscillations after a few periods. Note that use of the drag\nkeyword will interfere with energy conservation and will also change\nthe distribution of positions and velocities so that they do not\ncorrespond to the nominal NVT, NPT, or NPH ensembles.\n\nAn alternative way to control initial oscillations is to use chain\nthermostats. The keyword *tchain* determines the number of thermostats\nin the particle thermostat. A value of 1 corresponds to the original\nNose-Hoover thermostat. The keyword *pchain* specifies the number of\nthermostats in the chain thermostatting the barostat degrees of\nfreedom. A value of 0 corresponds to no thermostatting of the\nbarostat variables.\n\nThe *mtk* keyword controls whether or not the correction terms due to\nMartyna, Tuckerman, and Klein are included in the equations of motion\n**nh-Martyna**. Specifying *no* reproduces the original\nHoover barostat, whose volume probability distribution function\ndiffers from the true NPT and NPH ensembles by a factor of 1/V. Hence\nusing *yes* is more correct, but in many cases the difference is\nnegligible.\n\nThe keyword *tloop* can be used to improve the accuracy of integration\nscheme at little extra cost. The initial and final updates of the\nthermostat variables are broken up into *tloop* sub-steps, each of\nlength *dt* /\\ *tloop* . This corresponds to using a first-order\nSuzuki-Yoshida scheme **nh-Tuckerman**. The keyword *ploop*\ndoes the same thing for the barostat thermostat.\n\nThe keyword *nreset* controls how often the reference dimensions used\nto define the strain energy are reset. If this keyword is not used,\nor is given a value of zero, then the reference dimensions are set to\nthose of the initial simulation domain and are never changed. If the\nsimulation domain changes significantly during the simulation, then\nthe final average pressure tensor will differ significantly from the\nspecified values of the external stress tensor. A value of *nstep*\nmeans that every *nstep* timesteps, the reference dimensions are set\nto those of the current simulation domain.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when barostatting triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *flip* keyword allows the tilt factors for a triclinic box to\nexceed half the distance of the parallel box length, as discussed\nbelow. If the *flip* value is set to *yes*, the bound is enforced by\nflipping the box when it is exceeded. If the *flip* value is set to\n*no*, the tilt will continue to change without flipping. Note that if\napplied stress induces large deformations (e.g. in a liquid), this\nmeans the box shape can tilt dramatically and LAMMPS will run less\nefficiently, due to the large volume of communication needed to\nacquire ghost atoms around a processor's irregular-shaped subdomain.\nFor extreme values of tilt, LAMMPS may also lose atoms and generate an\nerror.\n\nThe *fixedpoint* keyword specifies the fixed point for barostat volume\nchanges. By default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle trajectories are unaffected by the\nchosen value, except for a time-dependent constant translation of\npositions.\n\nIf the *update* keyword is used with the *dipole* value, then the\norientation of the dipole moment of each particle is also updated\nduring the time integration. This option should be used for models\nwhere a dipole moment is assigned to finite-size particles,\ne.g. spheroids via use of the [atom_style hybrid sphere dipole ](https://docs.lammps.org/atom_style.html) command.\n\nThe default dipole orientation integrator can be changed to the\nDullweber-Leimkuhler-McLachlan integration scheme\n**nh-Dullweber** when using *update* with the value\n*dipole/dlm* . This integrator is symplectic and time-reversible,\ngiving better energy conservation and allows slightly longer timesteps\nat only a small additional computational cost.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using a barostat coupled to tilt dimensions *xy*, *xz*, *yz* can\n > sometimes result in arbitrarily large values of the tilt dimensions,\n > i.e. a dramatically deformed simulation box. LAMMPS allows the tilt\n > factors to grow a small amount beyond the normal limit of half the box\n > length (0.6 times the box length), and then performs a box \"flip\" to\n > an equivalent periodic cell. See the discussion of the *flip* keyword\n > above, to allow this bound to be exceeded, if desired. \n > \n\nThe flip operation is described in more detail in the page for\n[fix deform ](https://docs.lammps.org/fix_deform.html). Both the barostat dynamics and the atom\ntrajectories are unaffected by this operation. However, if a tilt\nfactor is incremented by a large amount (1.5 times the box length) on\na single timestep, LAMMPS can not accommodate this event and will\nterminate the simulation with an error. This error typically indicates\nthat there is something badly wrong with how the simulation was\nconstructed, such as specifying values of *Pstart* that are too far\nfrom the current stress value, or specifying a timestep that is too\nlarge. Triclinic barostatting should be used with care. This also is\ntrue for other barostat styles, although they tend to be more\nforgiving of insults. In particular, it is important to recognize that\nequilibrium liquids can not support a shear stress and that\nequilibrium solids can not support shear stresses that exceed the\nyield stress.\n\nOne exception to this rule is if the first dimension in the tilt factor\n(x for xy) is non-periodic. In that case, the limits on the tilt\nfactor are not enforced, since flipping the box in that dimension does\nnot change the atom positions due to non-periodicity. In this mode,\nif you tilt the system to extreme angles, the simulation will simply\nbecome inefficient due to the highly skewed simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, these fixes\n > perform thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > fix nvt and fix npt should not normally be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)\n > commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nThese fixes compute a temperature and pressure each timestep. To do\nthis, the thermostat and barostat fixes create their own computes of\nstyle \"temp\" and \"pressure\", as if one of these sets of commands had\nbeen issued:\n\nFor fix nvt:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nFor fix npt and fix nph:\n\n```lmps\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nFor fix nvt, the group for the new temperature compute is the same as\nthe fix group. For fix npt and fix nph, the group for both the new\ntemperature and pressure compute is \"all\" since pressure is computed\nfor the entire system. In the case of fix nph, the temperature\ncompute is not used for thermostatting, but just for a kinetic-energy\ncontribution to the pressure. See the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html)\ncommands for details. Note that the IDs of the new computes are the\nfix-ID + underscore + \"temp\" or fix_ID + underscore + \"press\".\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of these\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Or you can print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate\ncompute-ID. It also means that changing attributes of *thermo_temp*\nor *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\nThese fixes can be used with either the *verlet* or *respa*\n[integrators ](https://docs.lammps.org/run_style.html). When using one of the barostat fixes\nwith *respa*, LAMMPS uses an integrator constructed\naccording to the following factorization of the Liouville propagator\n(for two rRESPA levels):\n\\[\\begin{align*} \n \\exp \\left(\\mathrm{i} L \\Delta t \\right) = & \\hat{E}\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right) \\\\\n &\\times \\left[\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_1 \\frac{\\Delta t}{n} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 1} \\frac{\\Delta t}{2n} \\right)\n \\exp \\left(\\mathrm{i} L_{2}^{(1)} \\frac{\\Delta t}{2n} \\right)\n \\right]^n \\\\\n &\\times\n \\exp \\left(\\mathrm{i} L_{2}^{(2)} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\epsilon , 2} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}part} \\frac{\\Delta t}{2} \\right)\n \\exp \\left(\\mathrm{i} L_{\\rm T\\textrm{-}baro} \\frac{\\Delta t}{2} \\right) \\\\\n &+ \\mathcal{O} \\left(\\Delta t^3 \\right) \\end{align*} \\]\nThis factorization differs somewhat from that of Tuckerman et al, in\nthat the barostat is only updated at the outermost rRESPA level,\nwhereas Tuckerman's factorization requires splitting the pressure into\npieces corresponding to the forces computed at each rRESPA level. In\ntheory, the latter method will exhibit better numerical stability. In\npractice, because Pdamp is normally chosen to be a large multiple of\nthe outermost rRESPA timestep, the barostat dynamics are not the\nlimiting factor for numerical stability. Both factorizations are\ntime-reversible and can be shown to preserve the phase space measure\nof the underlying non-Hamiltonian equations of motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This implementation has been shown to conserve linear momentum\n > up to machine precision under NVT dynamics. Under NPT dynamics,\n > for a system with zero initial total linear momentum, the total\n > momentum fluctuates close to zero. It may occasionally undergo brief\n > excursions to non-negligible values, before returning close to zero.\n > Over long simulations, this has the effect of causing the center-of-mass\n > to undergo a slow random walk. This can be mitigated by resetting\n > the momentum at infrequent intervals using the\n > [fix momentum ](https://docs.lammps.org/fix_momentum.html) command. \n > \n\n----------\n\nThe fix npt and fix nph commands can be used with rigid bodies or\nmixtures of rigid bodies and non-rigid particles (e.g. solvent). But\nthere are also [fix rigid/npt ](https://docs.lammps.org/fix_rigid.html) and [fix rigid/nph ](https://docs.lammps.org/fix_rigid.html) commands, which are typically a more natural\nchoice. See the page for those commands for more discussion of\nthe various ways to do this.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by these fixes. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure, as described above.\nIf you do this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order in\n > which the keywords are specified is important. Note that a [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own temperature compute as\n > an argument when it is specified. The *temp* keyword will override\n > this (for the pressure compute being used by fix npt), but only if the\n > *temp* keyword comes after the *press* keyword. If the *temp* keyword\n > comes before the *press* keyword, then the new pressure compute\n > specified by the *press* keyword will be unaffected by the *temp*\n > setting. \n > \n\nThe cumulative energy change in the system imposed by these fixes, via\neither thermostatting and/or barostatting, is included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes compute also compute a global vector of quantities, which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nvector values are \"intensive\".\n\nThe vector stores internal Nose/Hoover thermostat and barostat\nvariables. The number and meaning of the vector values depends on\nwhich fix is used and the settings for keywords *tchain* and *pchain*,\nwhich specify the number of Nose/Hoover chains for the thermostat and\nbarostat. If no thermostatting is done, then *tchain* is 0. If no\nbarostatting is done, then *pchain* is 0. In the following list,\n\"ndof\" is 0, 1, 3, or 6, and is the number of degrees of freedom in\nthe barostat. Its value is 0 if no barostat is used, else its value\nis 6 if any off-diagonal stress tensor component is barostatted, else\nits value is 1 if *couple xyz* is used or *couple xy* for a 2d\nsimulation, otherwise its value is 3.\n\nThe order of values in the global vector and their meaning is as\nfollows. The notation means there are tchain values for eta, followed\nby tchain for eta_dot, followed by ndof for omega, etc:\n\n* eta[tchain] = particle thermostat displacements (unitless)\n* eta_dot[tchain] = particle thermostat velocities (1/time units)\n* omega[ndof] = barostat displacements (unitless)\n* omega_dot[ndof] = barostat velocities (1/time units)\n* etap[pchain] = barostat thermostat displacements (unitless)\n* etap_dot[pchain] = barostat thermostat velocities (1/time units)\n* PE_eta[tchain] = potential energy of each particle thermostat displacement (energy units)\n* KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity (energy units)\n* PE_omega[ndof] = potential energy of each barostat displacement (energy units)\n* KE_omega_dot[ndof] = kinetic energy of each barostat velocity (energy units)\n* PE_etap[pchain] = potential energy of each barostat thermostat displacement (energy units)\n* KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)\n* PE_strain[1] = scalar strain energy (energy units)\n\nThese fixes can ramp their external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of\nhow to do this.\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(nh-Shinoda)** Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). \n \n**(nh-Martyna)** Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994). \n \n**(nh-Parrinello)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n \n**(nh-Tuckerman)** Tuckerman, Alejandre, Lopez-Rendon, Jochim, and\nMartyna, J Phys A: Math Gen, 39, 5629 (2006). \n \n**(nh-Dullweber)** Dullweber, Leimkuhler and McLachlan, J Chem Phys, 107,\n5840 (1997). \n ", - "restrictions": "*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. *Z*, *xz*, and *yz*, cannot be\nbarostatted for 2D simulations. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final Tstop cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n\nThese fixes can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise they can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[run_style ](https://docs.lammps.org/run_style.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* poems = style name of this fix command\n* keyword = group or file or molecule \n *        group values = list of group IDs \n *        molecule values = none \n *        file values = filename \n", + "examples": "\n```lmps\nfix 3 fluid poems group clump1 clump2 clump3\nfix 3 fluid poems file cluster.list\n```\n", + "html_filename": "fix_poems.html", + "short_description": "Treats one or more sets of atoms as coupled rigid bodies", + "description": "Treats one or more sets of atoms as coupled rigid bodies. This means\nthat each timestep the total force and torque on each rigid body is\ncomputed and the coordinates and velocities of the atoms are updated\nso that the collection of bodies move as a coupled set. This can be\nuseful for treating a large biomolecule as a collection of connected,\ncoarse-grained particles.\n\nThe coupling, associated motion constraints, and time integration is\nperformed by the software package `Parallelizable Open source\nEfficient Multibody Software (POEMS)` which computes the constrained\nrigid-body motion of articulated (jointed) multibody systems\n**Anderson**. POEMS was written and is distributed by\nProf Kurt Anderson, his graduate student Rudranarayan Mukherjee, and\nother members of his group at Rensselaer Polytechnic Institute (RPI).\nRudranarayan developed the LAMMPS/POEMS interface. For copyright\ninformation on POEMS and other details, please refer to the documents\nin the poems directory distributed with LAMMPS.\n\nThis fix updates the positions and velocities of the rigid atoms with\na constant-energy time integration, so you should not update the same\natoms via other fixes (e.g. nve, nvt, npt, temp/rescale, langevin).\n\nEach body must have a non-degenerate inertia tensor, which means if\nmust contain at least 3 non-collinear atoms. Which atoms are in which\nbodies can be defined via several options.\n\nFor option *group*, each of the listed groups is treated as a rigid\nbody. Note that only atoms that are also in the fix group are\nincluded in each rigid body.\n\nFor option *molecule*, each set of atoms in the group with a different\nmolecule ID is treated as a rigid body.\n\nFor option *file*, sets of atoms are read from the specified file and\neach set is treated as a rigid body. Each line of the file specifies\na rigid body in the following format:\n\nID type atom1-ID atom2-ID atom3-ID ...\n\nID as an integer from 1 to M (the number of rigid bodies). Type is\nany integer; it is not used by the fix poems command. The remaining\narguments are IDs of atoms in the rigid body, each typically from 1 to\nN (the number of atoms in the system). Only atoms that are also in\nthe fix group are included in each rigid body. Blank lines and lines\nthat begin with '#' are skipped.\n\nA connection between a pair of rigid bodies is inferred if one atom is\ncommon to both bodies. The POEMS solver treats that atom as a\nspherical joint with 3 degrees of freedom. Currently, a collection of\nbodies can only be connected by joints as a linear chain. The entire\ncollection of rigid bodies can represent one or more chains. Other\nconnection topologies (tree, ring) are not allowed, but will be added\nlater. Note that if no joints exist, it is more efficient to use the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command to simulate the system.\n\nWhen the poems fix is defined, it will print out statistics on the\ntotal # of clusters, bodies, joints, atoms involved. A cluster in\nthis context means a set of rigid bodies connected by joints.\n\nFor computational efficiency, you should turn off pairwise and bond\ninteractions within each rigid body, as they no longer contribute to\nthe motion. The \"neigh_modify exclude\" and \"delete_bonds\" commands\ncan be used to do this if each rigid body is a group.\n\nFor computational efficiency, you should only define one fix poems\nwhich includes all the desired rigid bodies. LAMMPS will allow\nmultiple poems fixes to be defined, but it is more expensive.\n\nThe degrees-of-freedom removed by coupled rigid bodies are accounted\nfor in temperature and pressure computations. Similarly, the rigid\nbody contribution to the pressure virial is also accounted for. The\nlatter is only correct if forces within the bodies have been turned\noff, and there is only a single fix poems defined.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the added forces and torques\non atoms to both the global pressure and per-atom stress of the system\nvia the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *bodyforces* option is supported by\nthis fix style to set whether per-body forces and torques are computed\nearly or late in a timestep, i.e. at the post-force stage or at the\nfinal-integrate stage, respectively.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this\nfix can be used with the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. This fix is not invoked during [energy minimization](https://docs.lammps.org/minimize.html).\n\n**(Anderson)** Anderson, Mukherjee, Critchley, Ziegler, and Lipton\n\"POEMS: Parallelizable Open-source Efficient Multibody Software \",\nEngineering With Computers (2006). ([link to paper](https://doi.org/10.1007/s00366-006-0026-x)) \n ", + "restrictions": "This fix is part of the :ref:`POEMS ` package. It is only\nenabled if LAMMPS was built with that package, which also requires the\nPOEMS library be built and linked with LAMMPS. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html) exclude\n" }, { "command": [ - "fix_modify AtC mesh nodeset_to_elementset" + "pair_style pod", + "pair_style pod/kk" ], "syntax": [ - "fix_modify mesh nodeset_to_elementset " + "pair_style pod" ], "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "nodeset_to_elementset", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] + "arg": "pod", + "type": 3, + "choices": [ + "pod", + "pod/kk" + ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh nodeset_to_elementset = name of the AtC sub-command\n* nodeset_id = id of desired nodeset from which to create the elementset\n* elementset_id = id to assign to the collection of FE elements\n* = flag to choose either the maximal or minimal elementset \n", - "examples": "\n```lmps\nfix_modify AtC mesh nodeset_to_elementset myNodeset myElementset min\n```\n", - "html_filename": "atc_mesh_nodeset_to_elementset.html", - "short_description": "Command to create an elementset from an existing nodeset", - "description": "Command to create an elementset from an existing nodeset. Either the\nminimal element set of elements with all nodes in the set, or maximal\nelement set with all elements with at least one node in the set, can be\ncreated.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n- [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style pod\npair_coeff * * Ta_param.pod Ta_coefficients.pod Ta\n```\n", + "html_filename": "pair_pod.html", + "short_description": "\nPair style *pod* defines the proper orthogonal descriptor (POD)\npotential **Nguyen20222b**,\n**Nguyen20232b**, **Nguyen20242b**,\nand **Nguyen20243b**", + "description": "\nPair style *pod* defines the proper orthogonal descriptor (POD)\npotential **Nguyen20222b**,\n**Nguyen20232b**, **Nguyen20242b**,\nand **Nguyen20243b**. The [fitpod](https://docs.lammps.org/fitpod_command.html) is used to fit the POD potential.\n\nOnly a single pair_coeff command is used with the *pod* style which\nspecifies a POD parameter file followed by a coefficient file, a\nprojection matrix file, and a centroid file.\n\nThe POD parameter file (``Ta_param.pod``) can contain blank and comment\nlines (start with #) anywhere. Each non-blank non-comment line must\ncontain one keyword/value pair. See [fitpod ](https://docs.lammps.org/fitpod_command.html) for\nthe description of all the keywords that can be assigned in the\nparameter file.\n\nThe coefficient file (``Ta_coefficients.pod``) contains coefficients for\nthe POD potential. The top of the coefficient file can contain any\nnumber of blank and comment lines (start with #), but follows a strict\nformat after that. The first non-blank non-comment line must contain:\n\n* model_coefficients: *ncoeff* *nproj* *ncentroid*\n\nThis is followed by *ncoeff* coefficients, *nproj* projection matrix entries,\nand *ncentroid* centroid coordinates, one per line. The coefficient\nfile is generated after training the POD potential using [fitpod](https://docs.lammps.org/fitpod_command.html).\n\nAs an example, if a LAMMPS indium phosphide simulation has 4 atoms\ntypes, with the first two being indium and the third and fourth being\nphophorous, the pair_coeff command would look like this:\n\n```lmps\npair_coeff * * pod InP_param.pod InP_coefficients.pod In In P P\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe two filenames are for the parameter and coefficient files, respectively.\nThe two trailing 'In' arguments map LAMMPS atom types 1 and 2 to the\nPOD 'In' element. The two trailing 'P' arguments map LAMMPS atom types\n3 and 4 to the POD 'P' element.\n\nIf a POD mapping value is specified as NULL, the mapping is not\nperformed. This can be used when a *pod* potential is used as part of\nthe *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nExamples about training and using POD potentials are found in the\ndirectory lammps/examples/PACKAGES/pod and the Github repo https://github.com/cesmix-mit/pod-examples.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Nguyen20222b)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232b)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242b)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243b)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", + "restrictions": "This style is part of the ML-POD package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fitpod ](https://docs.lammps.org/fitpod_command.html),\n[compute pod/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute podd/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/local ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/global ](https://docs.lammps.org/compute_pod_atom.html)\n" }, { "command": [ - "improper_style zero" + "compute sph/rho/atom" ], "syntax": [ - "improper_style zero [nocoeff]" + "compute ID group-ID sph/rho/atom" ], "args": [ [ { - "arg": "improper_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "zero", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "[nocoeff]", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "sph/rho/atom", + "type": 1, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style zero\nimproper_style zero nocoeff\nimproper_coeff *\n```\n", - "html_filename": "improper_zero.html", - "short_description": "Using an improper style of zero means improper forces and energies are\nnot computed, but the geometry of improper quadruplets is still\naccessible to other commands", - "description": "Using an improper style of zero means improper forces and energies are\nnot computed, but the geometry of improper quadruplets is still\naccessible to other commands.\n\nAs an example, the [compute improper/local ](https://docs.lammps.org/compute_improper_local.html) command can be used to\ncompute the chi values for the list of quadruplets of improper atoms\nlisted in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand. If no improper style is defined, this command cannot be\nused.\n\nThe optional *nocoeff* flag allows to read data files with a ImproperCoeff\nsection for any improper style. Similarly, any improper_coeff commands\nwill only be checked for the improper type number and the rest ignored.\n\nNote that the [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command must be\nused for all improper types, though no additional values are\nspecified.\n", - "restrictions": " none\n", - "related": "none\n\n\n[improper_style none ](https://docs.lammps.org/improper_none.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* sph/rho/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all sph/rho/atom\n```\n", + "html_filename": "compute_sph_rho_atom.html", + "short_description": "Define a computation that calculates the per-atom SPH density for each\natom in a group, i.e", + "description": "Define a computation that calculates the per-atom SPH density for each\natom in a group, i.e. a Smooth-Particle Hydrodynamics density.\n\nThe SPH density is the mass density of an SPH particle, calculated by\nkernel function interpolation using \"pair style sph/rhosum\".\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in\nLAMMPS.\n\nThe value of the SPH density will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in mass/volume [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the SPH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "fix_modify AtC initial" + "compute pe" ], "syntax": [ - "fix_modify initial " + "compute ID group-ID pe keyword ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "initial", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, + "arg": "pe", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "fix", "type": 3, "choices": [ - "constant", - "function" + "pair", + "bond", + "angle", + "dihedral", + "improper", + "kspace", + "fix" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* initial = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply initial condition\n* constant or function = value or name of function followed by its parameters \n", - "examples": "\n```lmps\nfix_modify AtC initial temperature groupNAME 10.\n```\n", - "html_filename": "atc_initial.html", - "short_description": "Sets the initial values for the specified field at the specified nodes", - "description": "Sets the initial values for the specified field at the specified nodes.\n", - "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pe = style name of this compute command\n* zero or more keywords may be appended\n* keyword = pair or bond or angle or dihedral or improper or kspace or fix \n", + "examples": "\n```lmps\ncompute 1 all pe\ncompute molPE all pe bond angle dihedral improper\n```\n", + "html_filename": "compute_pe.html", + "short_description": "Define a computation that calculates the potential energy of the\nentire system of atoms", + "description": "Define a computation that calculates the potential energy of the\nentire system of atoms. The specified group must be \"all\". See the\n[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command if you want per-atom\nenergies. These per-atom values could be summed for a group of atoms\nvia the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe energy is calculated by the various pair, bond, etc. potentials\ndefined for the simulation. If no extra keywords are listed, then the\npotential energy is the sum of pair, bond, angle, dihedral, improper,\n\\(k\\)-space (long-range), and fix energy (i.e., it is as though all the\nkeywords were listed). If any extra keywords are listed, then only\nthose components are summed to compute the potential energy.\n\nThe \\(k\\)-space contribution requires 1 extra FFT each timestep the energy\nis calculated, if using the PPPM solver via the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html) command. Thus it can increase the cost of the\nPPPM calculation if it is needed on a large fraction of the simulation\ntimesteps.\n\nVarious fixes can contribute to the total potential energy of the\nsystem if the *fix* contribution is included. See the doc pages for\n[individual fixes ](https://docs.lammps.org/fix.html) for details of which ones compute a\npotential energy.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) command must also be\n > specified if a fix is to contribute potential energy to this command. \n > \n\nA compute of this style with the ID of \"thermo_pe\" is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_pe all pe\n```\nSee the \"thermo_style\" command for more details.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the potential energy). This\nvalue can be used by any command that uses a global scalar value from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html)\n" }, { "command": [ - "pair_style cosine/squared" + "angle_coeff" ], "syntax": [ - "pair_style cosine/squared cutoff" + "angle_coeff N args" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_coeff", "type": 1, "choices": [] }, { - "arg": "cosine/squared", - "type": 1, + "arg": "N", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff for cosine-squared interactions (distance units) \n *    pair_coeff I J eps sigma \n *    pair_coeff I J eps sigma cutoff \n *    pair_coeff I J eps sigma wca \n *    pair_coeff I J eps sigma cutoff wca \n* I, J = a particle type\n* eps = interaction strength, i.e. the depth of the potential minimum (energy units)\n* sigma = distance of the potential minimum from 0\n* cutoff = the cutoff distance for this pair type, if different from global (distance units)\n* wca = if specified a Weeks-Chandler-Andersen potential (with eps strength and minimum at sigma) is added, otherwise not \n", - "examples": "\n```lmps\npair_style cosine/squared 3.0\npair_coeff * * 1.0 1.3\npair_coeff 1 3 1.0 1.3 2.0\npair_coeff 1 3 1.0 1.3 wca\npair_coeff 1 3 1.0 1.3 2.0 wca\n```\n", - "html_filename": "pair_cosine_squared.html", - "short_description": "Style *cosine/squared* computes a potential of the form\n\\[\\begin{align*} \n E =\n \\begin{cases}\n -\\epsilon& \\quad r < \\sigma \\\\\n -\\epsilon\\cos\\left(\\frac{\\pi\\left(r - \\sigma\\right)}{2\\left(r_c - \\sigma\\right)}\\right)^2&\\quad \\sigma \\leq r < r_c \\\\\n 0& \\quad r \\geq r_c\n \\end{cases} \\end{align*} \\]\nbetween two point particles, where (\\(\\sigma, -\\epsilon\\)) is the\nlocation of the (rightmost) minimum of the potential, as explained in\nthe syntax section above", - "description": "Style *cosine/squared* computes a potential of the form\n\\[\\begin{align*} \n E =\n \\begin{cases}\n -\\epsilon& \\quad r < \\sigma \\\\\n -\\epsilon\\cos\\left(\\frac{\\pi\\left(r - \\sigma\\right)}{2\\left(r_c - \\sigma\\right)}\\right)^2&\\quad \\sigma \\leq r < r_c \\\\\n 0& \\quad r \\geq r_c\n \\end{cases} \\end{align*} \\]\nbetween two point particles, where (\\(\\sigma, -\\epsilon\\)) is the\nlocation of the (rightmost) minimum of the potential, as explained in\nthe syntax section above.\n\nThis potential was first used in **CKD** for a coarse-grained lipid\nmembrane model. It is generally very useful as a non-specific\ninteraction potential because it is fully adjustable in depth and width\nwhile joining the minimum at (sigma, -epsilon) and zero at (cutoff, 0)\nsmoothly, requiring no shifting and causing no related artifacts, tail\nenergy calculations etc. This evidently requires *cutoff* to be larger\nthan *sigma* .\n\nIf the *wca* option is used then a Weeks-Chandler-Andersen potential\n**WCA** is added to the above specified cosine-squared potential,\nspecifically the following:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n 2\\left(\\frac{\\sigma}{r}\\right)^6 + 1\\right]\n , \\quad r < \\sigma\n\nIn this case, and this case only, the \\(\\sigma\\) parameter can be equal to\n*cutoff* (\\(\\sigma =\\) cutoff) which will result in ONLY the WCA potential\nbeing used (and print a warning), so the minimum will be attained at\n(sigma, 0). This is a convenience feature that enables a purely\nrepulsive potential to be used without a need to define an additional\npair style and use the hybrid styles.\n\nThe energy and force of this pair style for parameters epsilon = 1.0,\nsigma = 1.0, cutoff = 2.5, with and without the WCA potential, are shown\nin the graphs below:\n\n ![Image](JPG/pair_cosine_squared_graphs.jpg) \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nMixing is not supported for this style.\n\nThe *shift*, *table* and *tail* options are not relevant for this style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(CKD)** \"Cooke, Kremer and Deserno, Phys. Rev. E, 72, 011506 (2005)\" \n \n**(WCA)** \"Weeks, Chandler and Andersen, J. Chem. Phys., 54, 5237 (1971)\" \n ", - "restrictions": "The *cosine/squared* style is part of the EXTRA-PAIR package. It is only\nenabled if LAMMPS is build with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n" + "parameters": "* N = numeric angle type (see asterisk form below), or type label\n* args = coefficients for one or more angle types \n", + "examples": "\n```lmps\nangle_coeff 1 300.0 107.0\nangle_coeff * 5.0\nangle_coeff 2*10 5.0\n\nlabelmap angle 1 hydroxyl\nangle_coeff hydroxyl 300.0 107.0\n```\n", + "html_filename": "angle_coeff.html", + "short_description": "Specify the angle force field coefficients for one or more angle types", + "description": "Specify the angle force field coefficients for one or more angle types.\nThe number and meaning of the coefficients depends on the angle style.\nAngle coefficients can also be set in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple angle types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of angle types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using an [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command can\noverride a previous setting for the same angle type. For example,\nthese commands set the coeffs for all angle types, then overwrite the\ncoeffs for just angle type 2:\n\n```lmps\nangle_coeff * 200.0 107.0 1.2\nangle_coeff 2 50.0 107.0\n```\nA line in a data file that specifies angle coefficients uses the exact\nsame format as the arguments of the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand in an input script, except that wild-card asterisks should not\nbe used since coefficients for all \\(N\\) types must be listed in the\nfile. For example, under the \"Angle Coeffs\" section of a data file, the\nline that corresponds to the first example above would be listed as\n\n```\n1 300.0 107.0\n```\nThe [angle_style class2 ](https://docs.lammps.org/angle_class2.html) is an exception to this\nrule, in that an additional argument is used in the input script to\nallow specification of the cross-term coefficients. See its doc page\nfor details.\n\n----------\n\nThe list of all angle styles defined in LAMMPS is given on the\n[angle_style ](https://docs.lammps.org/angle_style.html) doc page. They are also listed in more\ncompact form on the :ref:`Commands angle ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAn angle style must be defined before any angle coefficients are\nset, either in the input script or in a data file.\n", + "related": "[angle_style ](https://docs.lammps.org/angle_style.html)\n" }, { "command": [ - "delete_atoms" + "fix nvt/sllod", + "fix nvt/sllod/intel", + "fix nvt/sllod/omp", + "fix nvt/sllod/kk" ], "syntax": [ - "delete_atoms style args keyword value ..." + "fix ID group-ID nvt/sllod keyword value ..." ], "args": [ [ { - "arg": "delete_atoms", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "variable", - "type": 3, - "choices": [ - "group", - "region", - "overlap", - "random", - "variable" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "mol", + "arg": "nvt/sllod", "type": 3, "choices": [ - "compress", - "bond", - "mol" + "nvt/sllod", + "nvt/sllod/intel", + "nvt/sllod/omp", + "nvt/sllod/kk" ] }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, { "arg": "value", "type": 2, @@ -28802,89 +27692,95 @@ export const command_docs = [ } ] ], - "parameters": "* style = group or region or overlap or random or variable \n *        group args = group-ID \n *        region args = region-ID \n *        overlap args = cutoff group1-ID group2-ID \n         cutoff = delete one atom from pairs of atoms within the cutoff (distance units) \n         group1-ID = one atom in pair must be in this group \n         group2-ID = other atom in pair must be in this group \n *        random args = ranstyle value eflag group-ID region-ID seed \n         ranstyle = fraction or count \n         for fraction: \n         value = fraction (0.0 to 1.0) of eligible atoms to delete \n         eflag = no for fast approximate deletion, yes for exact deletion \n         for count: \n         value = number of atoms to delete \n         eflag = no for warning if count > eligible atoms, yes for error \n         group-ID = group within which to perform deletions \n         region-ID = region within which to perform deletions \n         or NULL to only impose the group criterion \n         seed = random number seed (positive integer) \n *        variable args = variable-name \n* zero or more keyword/value pairs may be appended\n* keyword = compress or bond or mol \n *        compress value = no or yes \n *        bond value = no or yes \n *        mol value = no or yes \n", - "examples": "\n```lmps\ndelete_atoms group edge\ndelete_atoms region sphere compress no\ndelete_atoms overlap 0.3 all all\ndelete_atoms overlap 0.5 solvent colloid\ndelete_atoms random fraction 0.1 yes all cube 482793 bond yes\ndelete_atoms random fraction 0.3 no polymer NULL 482793 bond yes\ndelete_atoms random count 500 no ions NULL 482793\ndelete_atoms variable checkers\n```\n", - "html_filename": "delete_atoms.html", - "short_description": "Delete the specified atoms", - "description": "Delete the specified atoms. This command can be used, for example, to\ncarve out voids from a block of material or to delete created atoms\nthat are too close to each other (e.g., at a grain boundary).\n\nFor style *group*, all atoms belonging to the group are deleted.\n\nFor style *region*, all atoms in the region volume are deleted.\nAdditional atoms can be deleted if they are in a molecule for which\none or more atoms were deleted within the region; see the *mol*\nkeyword discussion below.\n\nFor style *overlap* pairs of atoms whose distance of separation is\nwithin the specified cutoff distance are searched for, and one of the\ntwo atoms is deleted. Only pairs where one of the two atoms is in the\nfirst group specified and the other atom is in the second group are\nconsidered. The atom that is in the first group is the one that is\ndeleted.\n\nNote that it is OK for the two group IDs to be the same (e.g., group\n*all* ), or for some atoms to be members of both groups. In these\ncases, either atom in the pair may be deleted. Also note that if\nthere are atoms which are members of both groups, the only guarantee\nis that at the end of the deletion operation, enough deletions will\nhave occurred that no atom pairs within the cutoff will remain\n(subject to the group restriction). There is no guarantee that the\nminimum number of atoms will be deleted, or that the same atoms will\nbe deleted when running on different numbers of processors.\n\nFor style *random* a subset of eligible atoms are deleted. Which\natoms to delete are chosen randomly using the specified random number\n*seed*. Which atoms are deleted may vary when running on different\nnumbers of processors.\n\nFor *ranstyle* = *fraction*, the specified fractional *value* (0.0 to\n1.0) of eligible atoms are deleted. If *eflag* is set to *no*, then\nthe number of deleted atoms will be approximate, but the operation\nwill be fast. If *eflag* is set to *yes*, then the number deleted\nwill match the requested fraction, but for large systems the selection\nof deleted atoms may take additional time to determine.\n\nFor *ranstyle* = *count*, the specified integer *value* is the number\nof eligible atoms are deleted. If *eflag* is set to *no*, then if the\nrequested number is larger then the number of eligible atoms, a\nwarning is issued and only the eligible atoms are deleted instead of\nthe requested *value*. If *eflag* is set to *yes*, an error is\ntriggered instead and LAMMPS will exit. For large systems the\nselection of atoms to delete may take additional time to determine,\nthe same as for requesting an exact fraction with *pstyle* =\n*fraction*.\n\nWhich atoms are eligible for deletion for style *random* is determined\nby the specified *group-ID* and *region-ID*. To be eligible, an atom\nmust be in both the specified group and region. If *group-ID* = all,\nthere is effectively no group criterion. If *region-ID* is specified\nas NULL, no region criterion is imposed.\n\nFor style *variable*, all atoms for which the atom-style variable with\nthe given name evaluates to non-zero will be deleted. Additional atoms\ncan be deleted if they are in a molecule for which one or more atoms\nwere deleted within the region; see the *mol* keyword discussion below.\nThis option allows complex selections of atoms not covered by the\nother options listed above.\n\n----------\n\nHere is the meaning of the optional keywords.\n\nIf the *compress* keyword is set to *yes*, then after atoms are\ndeleted, then atom IDs are re-assigned so that they run from 1 to the\nnumber of atoms in the system. Note that this is not done for\nmolecular systems (see the [atom_style ](https://docs.lammps.org/atom_style.html) command),\nregardless of the *compress* setting, since it would foul up the bond\nconnectivity that has already been assigned. However, the\n[reset_atoms id ](https://docs.lammps.org/reset_atoms.html) command can be used after this\ncommand to accomplish the same thing.\n\nNote that the re-assignment of IDs is not really a compression, where\ngaps in atom IDs are removed by decrementing atom IDs that are larger.\nInstead the IDs for all atoms are erased, and new IDs are assigned so\nthat the atoms owned by individual processors have consecutive IDs, as\nthe [create_atoms ](https://docs.lammps.org/create_atoms.html) command explains.\n\nA molecular system with fixed bonds, angles, dihedrals, or improper\ninteractions, is one where the topology of the interactions is\ntypically defined in the data file read by the [read_data](https://docs.lammps.org/read_data.html) command, and where the interactions themselves are\ndefined with the [bond_style ](https://docs.lammps.org/bond_style.html), [angle_style](https://docs.lammps.org/angle_style.html), etc. commands. If you delete atoms from such a system,\nyou must be careful not to end up with bonded interactions that are\nstored by remaining atoms but which include deleted atoms. This will\ncause LAMMPS to generate a \"missing atoms\" error when the bonded\ninteraction is computed. The *bond* and *mol* keywords offer two ways\nto do that.\n\nIt the *bond* keyword is set to *yes* then any bond or angle or\ndihedral or improper interaction that includes a deleted atom is also\nremoved from the lists of such interactions stored by non-deleted\natoms. Note that simply deleting interactions due to dangling bonds\n(e.g., at a surface) may result in a inaccurate or invalid model for\nthe remaining atoms.\n\nIt the *mol* keyword is set to *yes*, then for every atom that is\ndeleted, all other atoms in the same molecule (with the same molecule\nID) will also be deleted. This is not done for atoms with molecule ID\n= 0, since such an ID is assumed to flag isolated atoms that are not\npart of molecules.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The molecule deletion operation is invoked after all individual\n > atoms have been deleted using the rules described above for each\n > style. This means additional atoms may be deleted that are not in the\n > group or region, that are not required by the overlap cutoff\n > criterion, or that will create a higher fraction of porosity than was\n > requested. \n > \n\n", - "restrictions": "The *overlap* styles requires inter-processor communication to acquire\nghost atoms and build a neighbor list. This means that your system\nmust be ready to perform a simulation before using this command (force\nfields setup, atom masses set, etc.). Since a neighbor list is used to\nfind overlapping atom pairs, it also means that you must define a\n[pair style ](https://docs.lammps.org/pair_style.html) with the minimum force cutoff distance\nbetween any pair of atoms types (plus the [neighbor ](https://docs.lammps.org/neighbor.html)\nskin) \\(\\ge\\) the specified overlap cutoff.\n\nIf the [special_bonds ](https://docs.lammps.org/special_bonds.html) command is used with a\nsetting of 0, then a pair of bonded atoms (1--2, 1--3, or 1--4) will not\nappear in the neighbor list, and thus will not be considered for\ndeletion by the *overlap* styles. You probably do not want to\ndelete one atom in a bonded pair anyway.\n\nThe *bond yes* option cannot be used with molecular systems defined\nusing molecule template files via the [molecule ](https://docs.lammps.org/molecule.html) and\n[atom_style template ](https://docs.lammps.org/atom_style.html) commands.\n", - "related": "[create_atoms ](https://docs.lammps.org/create_atoms.html), [reset_atoms id ](https://docs.lammps.org/reset_atoms.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sllod = style name of this fix command\n* zero or more keyword/value pairs may be appended \n *     keyword = psllod \n      psllod value = no or yes = use SLLOD or p-SLLOD variant, respectively \n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html)\n command can be appended \n", + "examples": "\n```lmps\nfix 1 all nvt/sllod temp 300.0 300.0 100.0\nfix 1 all nvt/sllod temp 300.0 300.0 100.0 drag 0.2\n```\n", + "html_filename": "fix_nvt_sllod.html", + "short_description": "Perform constant NVT integration to update positions and velocities\neach timestep for atoms in the group using a Nose/Hoover temperature\nthermostat", + "description": "Perform constant NVT integration to update positions and velocities\neach timestep for atoms in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis thermostat is used for a simulation box that is changing size\nand/or shape, for example in a non-equilibrium MD (NEMD) simulation.\nThe size/shape change is induced by use of the [fix deform](https://docs.lammps.org/fix_deform.html) command, so each point in the simulation box can be\nthought of as having a \"streaming\" velocity. This position-dependent\nstreaming velocity is subtracted from each atom's actual velocity to\nyield a thermal velocity which is used for temperature computation and\nthermostatting. For example, if the box is being sheared in x,\nrelative to y, then points at the bottom of the box (low y) have a\nsmall x velocity, while points at the top of the box (hi y) have a\nlarge x velocity. These velocities do not contribute to the thermal\n\"temperature\" of the atom.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >[Fix deform ](https://docs.lammps.org/fix_deform.html) has an option for remapping either\n > atom coordinates or velocities to the changing simulation box. To use\n > fix nvt/sllod, fix deform should NOT remap atom positions, because fix\n > nvt/sllod adjusts the atom positions and velocities to create a\n > velocity profile that matches the changing box size/shape. Fix deform\n > SHOULD remap atom velocities when atoms cross periodic boundaries\n > since that is consistent with maintaining the velocity profile created\n > by fix nvt/sllod. LAMMPS will give an error if this setting is not\n > consistent. \n > \n\nThe SLLOD equations of motion, originally proposed by Hoover and Ladd\n(see **Evans3**), were proven to be equivalent\nto Newton's equations of motion for shear flow by :ref:`(Evans and\nMorriss) `. They were later shown to generate the desired\nvelocity gradient and the correct production of work by stresses for all\nforms of homogeneous flow by **Daivis**.\n\nFor the default (*psllod* = *no*), the LAMMPS implementation adheres to\nthe standard SLLOD equations of motion, as defined by :ref:`(Evans and\nMorriss) `. The option *psllod* = *yes* invokes the slightly\ndifferent SLLOD variant first introduced by **Tuckerman** as g-SLLOD and later by **Edwards** as\np-SLLOD. In all cases, the equations of motion are coupled to a\nNose/Hoover chain thermostat in a velocity Verlet formulation, closely\nfollowing the implementation used for the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A recent (2017) book by **Todd-sllod**\n > discusses use of the SLLOD method and non-equilibrium MD (NEMD)\n > thermostatting generally, for both simple and complex fluids,\n > e.g. molecular systems. The latter can be tricky to do correctly. \n > \n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/deform\", as if this command had\nbeen issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/deform\n```\nSee the [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Evans3)** Evans and Morriss, Phys Rev A, 30, 1528 (1984). \n \n**(Daivis)** Daivis and Todd, J Chem Phys, 124, 194103 (2006). \n \n**(Tuckerman)** Tuckerman, Mundy, Balasubramanian, and Klein, J Chem Phys 106, 5615 (1997). \n \n**(Edwards)** Edwards, Baig, and Keffer, J Chem Phys 124, 194104 (2006). \n \n**(Todd-sllod)** Todd and Daivis, Nonequilibrium Molecular Dynamics (book),\nCambridge University Press, (2017) https://doi.org/10.1017/9781139017848. \n ", + "restrictions": "This fix works best without Nose-Hoover chain thermostats, i.e. using\n*tchain* = 1. Setting *tchain* to larger values can result in poor\nequilibration.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\n" }, { "command": [ - "pair_style atm" + "fix tune/kspace" ], "syntax": [ - "pair_style atm cutoff cutoff_triple" + "fix ID group-ID tune/kspace N" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "atm", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cutoff_triple", + "arg": "tune/kspace", + "type": 1, + "choices": [] + }, + { + "arg": "N", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = cutoff for each pair in 3-body interaction (distance units)\n* cutoff_triple = additional cutoff applied to product of 3 pairwise distances (distance units) \n", - "examples": "\n```lmps\npair_style atm 4.5 2.5\npair_coeff * * * 0.072\n\npair_style hybrid/overlay lj/cut 6.5 atm 4.5 2.5\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 1 1 atm 1 0.064\npair_coeff 1 1 atm 2 0.080\npair_coeff 1 2 atm 2 0.100\npair_coeff 2 2 atm 2 0.125\n```\n", - "html_filename": "pair_atm.html", - "short_description": "The *atm* style computes a 3-body **Axilrod**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\nu\\frac{1+3\\cos\\gamma_1\\cos\\gamma_2\\cos\\gamma_3}{r_{12}^3r_{23}^3r_{31}^3} \\\\ \\end{align*} \\]\nwhere \\(\\nu\\) is the three-body interaction strength", - "description": "The *atm* style computes a 3-body **Axilrod**\npotential for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\nu\\frac{1+3\\cos\\gamma_1\\cos\\gamma_2\\cos\\gamma_3}{r_{12}^3r_{23}^3r_{31}^3} \\\\ \\end{align*} \\]\nwhere \\(\\nu\\) is the three-body interaction strength. The distances\nbetween pairs of atoms \\(r_{12}\\), \\(r_{23}\\), \\(r_{31}\\) and the angles \\(\\gamma_1\\), \\(\\gamma_2\\),\n\\(\\gamma_3\\) are as shown in this diagram:\n\n ![Image](JPG/pair_atm_dia.jpg) \n\nNote that for the interaction between a triplet of atoms \\(I,J,K\\), there\nis no \"central\" atom. The interaction is symmetric with respect to\npermutation of the three atoms. Thus the \\(\\nu\\) value is\nthe same for all those permutations of the atom types of \\(I,J,K\\)\nand needs to be specified only once, as discussed below.\n\nThe *atm* potential is typically used in combination with a two-body\npotential using the [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand as in the example above.\n\nThe potential for a triplet of atom is calculated only if all 3 distances\n\\(r_{12}\\), \\(r_{23}\\), \\(r_{31}\\) between the three atoms satisfy\n\\(r_{IJ} < \\text{cutoff}\\). In addition, the product of the 3 distances\n\\(r_{12} r_{23} r_{31}\\) < cutoff_triple \\(^3\\) is required, which\nexcludes from calculation the triplets with small contribution to the\ninteraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the restart files read by the\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) = atom type of the third atom (1 to \\(N_{\\text{types}}\\))\n* \\(\\nu\\) = prefactor (energy/distance\\^9 units)\n\n\\(K\\) can be specified in one of two ways. An explicit numeric value\nor type label can be used, as in the second example above. LAMMPS\nsets the coefficients for the other 5 symmetric interactions to the same\nvalues. E.g. if \\(I = 1\\), \\(J = 2\\), \\(K = 3\\), then these 6\nvalues are set to the specified \\(\\nu\\): \\(\\nu_{123}\\),\n\\(\\nu_{132}\\), \\(\\nu_{213}\\), \\(\\nu_{231}\\), \\(\\nu_{312}\\),\n\\(\\nu_{321}\\). This enforces the symmetry discussed above.\n\nA wildcard asterisk can be used for K to set the coefficients for\nmultiple triplets of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If \\(N\\) equals the number of atom types, then an asterisk with\nno numeric values means all types from 1 to \\(N\\). A leading asterisk\nmeans all types from 1 to \\(n\\) (inclusive). A trailing asterisk means\nall types from \\(n\\) to \\(N\\) (inclusive). A middle asterisk means all types\nfrom \\(m\\) to \\(n\\) (inclusive). Note that only type triplets with \\(J \\leq K\\) are\nconsidered; if asterisks imply type triplets where \\(K < J\\), they are\nignored.\n\nNote that a pair_coeff command can override a previous setting for the\nsame \\(I,J,K\\) triplet. For example, these commands set \\(\\nu\\) for all \\(I,J.K\\)\ntriplets, then overwrite nu for just the \\(I,J,K = 2,3,4\\) triplet:\n\n```lmps\npair_coeff * * * 0.25\npair_coeff 2 3 4 0.1\n```\nNote that for a simulation with a single atom type, only a single\nentry is required, e.g.\n\n```lmps\npair_coeff 1 1 1 0.25\n```\nFor a simulation with two atom types, four pair_coeff commands will\nspecify all possible nu values:\n\n```lmps\npair_coeff 1 1 1 nu1\npair_coeff 1 1 2 nu2\npair_coeff 1 2 2 nu3\npair_coeff 2 2 2 nu4\n```\nFor a simulation with three atom types, ten pair_coeff commands will\nspecify all possible nu values:\n\n```lmps\npair_coeff 1 1 1 nu1\npair_coeff 1 1 2 nu2\npair_coeff 1 1 3 nu3\npair_coeff 1 2 2 nu4\npair_coeff 1 2 3 nu5\npair_coeff 1 3 3 nu6\npair_coeff 2 2 2 nu7\npair_coeff 2 2 3 nu8\npair_coeff 2 3 3 nu9\npair_coeff 3 3 3 nu10\n```\nBy default the \\(\\nu\\) value for all triplets is set to 0.0. Thus it is\nnot required to provide pair_coeff commands that enumerate triplet\ninteractions for all \\(K\\) types. If some \\(I,J,K\\) combination is not\nspecified, then there will be no 3-body ATM interactions for that\ncombination and all its permutations. However, as with all pair\nstyles, it is required to specify a pair_coeff command for all \\(I,J\\)\ncombinations, else an error will result.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be specified\nin an input script that reads a restart file. However, if the *atm* potential\nis used in combination with other potentials using the [pair_stylehybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command then pair_coeff commands need to be\nre-specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, and *outer* keywords.\n\n----------\n\n**(Axilrod)**\nAxilrod and Teller, J Chem Phys, 11, 299 (1943);\nMuto, Nippon Sugaku-Buturigakkwaishi 17, 629 (1943). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tune/kspace = style name of this fix command\n* N = invoke this fix every N steps \n", + "examples": "\n```lmps\nfix 2 all tune/kspace 100\n```\n", + "html_filename": "fix_tune_kspace.html", + "short_description": "This fix tests each kspace style (Ewald, PPPM, and MSM), and\nautomatically selects the fastest style to use for the remainder\nof the run", + "description": "This fix tests each kspace style (Ewald, PPPM, and MSM), and\nautomatically selects the fastest style to use for the remainder\nof the run. If the fastest style is Ewald or PPPM, the fix also\nadjusts the Coulombic cutoff towards optimal speed. Future versions\nof this fix will automatically select other kspace parameters\nto use for maximum simulation speed. The kspace parameters may\ninclude the style, cutoff, grid points in each direction, order,\nEwald parameter, MSM parallelization cut-point, MPI tasks to use, etc.\n\nThe rationale for this fix is to provide the user with\nas-fast-as-possible simulations that include long-range electrostatics\n(kspace) while meeting the user-prescribed accuracy requirement. A\nsimple heuristic could never capture the optimal combination of\nparameters for every possible run-time scenario. But by performing\nshort tests of various kspace parameter sets, this fix allows\nparameters to be tailored specifically to the user's machine, MPI\nranks, use of threading or accelerators, the simulated system, and the\nsimulation details. In addition, it is possible that parameters could\nbe evolved with the simulation on-the-fly, which is useful for systems\nthat are dynamically evolving (e.g. changes in box size/shape or\nnumber of particles).\n\nWhen this fix is invoked, LAMMPS will perform short timed tests of\nvarious parameter sets to determine the optimal parameters. Tests are\nperformed on-the-fly, with a new test initialized every N steps. N should\nbe chosen large enough so that adequate CPU time lapses between tests,\nthereby providing statistically significant timings. But N should not be\nchosen to be so large that an unfortunate parameter set test takes an\ninordinate amount of wall time to complete. An N of 100 for most problems\nseems reasonable. Once an optimal parameter set is found, that set is\nused for the remainder of the run.\n\nThis fix uses heuristics to guide it's selection of parameter sets to test,\nbut the actual timed results will be used to decide which set to use in the\nsimulation.\n\nIt is not necessary to discard trajectories produced using sub-optimal\nparameter sets, or a mix of various parameter sets, since the user-prescribed\naccuracy will have been maintained throughout. However, some users may prefer\nto use this fix only to discover the optimal parameter set for a given setup\nthat can then be used on subsequent production runs.\n\nThis fix starts with kspace parameters that are set by the user with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) and [kspace_modify ](https://docs.lammps.org/kspace_modify.html)\ncommands. The prescribed accuracy will be maintained by this fix throughout\nthe simulation.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the KSPACE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDo not set \"neigh_modify once yes\" or else this fix will never be\ncalled. Reneighboring is required.\n\nThis fix is not compatible with a hybrid pair style, long-range dispersion,\nTIP4P water support, or long-range point dipole support.\n", + "related": "[kspace_style ](https://docs.lammps.org/kspace_style.html), [boundary ](https://docs.lammps.org/boundary.html)\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html), [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html), [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html), [pair_style lj/long ](https://docs.lammps.org/pair_lj_long.html), [pair_style lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html),\n[pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n" }, { "command": [ - "pair_style lcbop" + "bond_style mesocnt" ], "syntax": [ - "pair_style lcbop" + "bond_style mesocnt" ], "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "lcbop", + "arg": "mesocnt", "type": 1, "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\npair_style lcbop\npair_coeff * * ../potentials/C.lcbop C\n```\n", - "html_filename": "pair_lcbop.html", - "short_description": "The *lcbop* pair style computes the long-range bond-order potential\nfor carbon (LCBOP) of **Los**", - "description": "The *lcbop* pair style computes the long-range bond-order potential\nfor carbon (LCBOP) of **Los**. See section II in\nthat paper for the analytic equations associated with the potential.\n\nOnly a single pair_coeff command is used with the *lcbop* style which\nspecifies an LCBOP potential file with parameters for specific\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of LCBOP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, if your LAMMPS simulation has 4 atom types and you want\nthe first 3 to be C you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * C.lcbop C C C NULL\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first C argument maps LAMMPS atom type 1 to the C element in the\nLCBOP file. If a mapping value is specified as NULL, the mapping is\nnot performed. This can be used when a *lcbop* potential is used as\npart of the *hybrid* pair style. The NULL values are placeholders for\natom types that will be used with other potentials.\n\nThe parameters/coefficients for the LCBOP potential as applied to C\nare listed in the C.lcbop file to agree with the original **Los** paper. Thus the parameters are specific to this\npotential and the way it was fit, so modifying the file should be done\ncarefully.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Los)** J. H. Los and A. Fasolino, Phys. Rev. B 68, 024107\n(2003). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair potential requires the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe ``C.lcbop`` potential file provided with LAMMPS (see the potentials\ndirectory) is parameterized for [metal units ](https://docs.lammps.org/units.html). You can use\nthe LCBOP potential with any LAMMPS units, but you would need to\ncreate your own LCBOP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", - "related": "[pair_airebo ](https://docs.lammps.org/pair_airebo.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "examples": "\n```lmps\nbond_style mesocnt\nbond_coeff 1 C 10 10 20.0\nbond_coeff 4 custom 800.0 10.0\n```\n", + "html_filename": "bond_mesocnt.html", + "short_description": "\nThe *mesocnt* bond style is a wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", + "description": "\nThe *mesocnt* bond style is a wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the\nusual 1/2 factor is included in \\(K\\). The style implements\nparameterization presets of \\(K\\) for mesoscopic simulations of\ncarbon nanotubes based on the atomistic simulations of\n**Srivastava_1**.\n\nOther presets can be readily implemented in the future.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* preset = *C* or *custom*\n* additional parameters depending on preset\n\nPreset *C* is for carbon nanotubes, and the additional parameters are:\n\n* chiral index \\(n\\) (unitless)\n* chiral index \\(m\\) (unitless)\n* \\(r_0\\) (distance)\n\nPreset *custom* is simply a direct wrapper for the [harmonic](https://docs.lammps.org/bond_harmonic.html) style, and the additional parameters are:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n**(Srivastava_1)** Zhigilei, Wei and Srivastava, Phys. Rev. B 71, 165417\n(2005). \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\nand MESONT packages. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "pair_style edpd", - "pair_style edpd/gpu", - "pair_style mdpd", - "pair_style mdpd/gpu", - "pair_style mdpd/rhosum" + "pair_style lj/long/coul/long", + "pair_style lj/long/coul/long/intel", + "pair_style lj/long/coul/long/omp", + "pair_style lj/long/coul/long/opt", + "pair_style lj/long/tip4p/long", + "pair_style lj/long/tip4p/long/omp" ], "syntax": [ "pair_style style args" @@ -28897,15 +27793,15 @@ export const command_docs = [ "choices": [] }, { - "arg": "mdpd/gpu", + "arg": "lj/long/tip4p/long/omp", "type": 3, "choices": [ - "edpd", - "mdpd", - "mdpd/rhosum", - "tdpd", - "edpd/gpu", - "mdpd/gpu" + "lj/long/coul/long", + "lj/long/tip4p/long", + "lj/long/coul/long/intel", + "lj/long/coul/long/omp", + "lj/long/coul/long/opt", + "lj/long/tip4p/long/omp" ] }, { @@ -28915,69 +27811,60 @@ export const command_docs = [ } ] ], - "parameters": "* style = edpd or mdpd or mdpd/rhosum or tdpd\n* args = list of arguments for a particular style \n *        edpd args = cutoff seed \n         cutoff = global cutoff for eDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, eDPD will use current time as the seed) \n *        mdpd args = T cutoff seed \n         T = temperature (temperature units) \n         cutoff = global cutoff for mDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, mDPD will use current time as the seed) \n *        mdpd/rhosum args = \n *        tdpd args = T cutoff seed \n         T = temperature (temperature units) \n         cutoff = global cutoff for tDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, tDPD will use current time as the seed) \n", - "examples": "\n```lmps\npair_style edpd 1.58 9872598\npair_coeff * * 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10 kappa -0.44 -3.21 5.04 0.00\n\npair_style hybrid/overlay mdpd/rhosum mdpd 1.0 1.0 65689\npair_coeff 1 1 mdpd/rhosum 0.75\npair_coeff 1 1 mdpd -40.0 25.0 18.0 1.0 0.75\n\npair_style tdpd 1.0 1.58 935662\npair_coeff * * 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0 3.0 1.0E-5 2.0\n```\n", - "html_filename": "pair_mesodpd.html", - "short_description": "The *edpd* style computes the pairwise interactions and heat fluxes\nfor eDPD particles following the formulations in\n**Li2014_JCP** and **Li2015_CC**", - "description": "The *edpd* style computes the pairwise interactions and heat fluxes\nfor eDPD particles following the formulations in\n**Li2014_JCP** and **Li2015_CC**. The time\nevolution of an eDPD particle is governed by the conservation of\nmomentum and energy given by\n\\[\n \\frac{\\mathrm{d}^2 \\mathbf{r}_i}{\\mathrm{d} t^2}=\n \\frac{\\mathrm{d} \\mathbf{v}_i}{\\mathrm{d} t}\n =\\mathbf{F}_{i}=\\sum_{i\\neq j}(\\mathbf{F}_{ij}^{C}+\\mathbf{F}_{ij}^{D}+\\mathbf{F}_{ij}^{R}) \\\\\n C_v\\frac{\\mathrm{d} T_i}{\\mathrm{d} t}= q_{i} = \\sum_{i\\neq j}(q_{ij}^{C}+q_{ij}^{V}+q_{ij}^{R}),\\]\nwhere the three components of \\(F_{i}\\) including the conservative\nforce \\(F_{ij}^C\\), dissipative force \\(F_{ij}^D\\) and random\nforce \\(F_{ij}^R\\) are expressed as\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^{C} & = \\alpha_{ij}{\\omega_{C}}(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\\\\n \\omega_{C}(r) & = 1 - r/r_c \\\\\n \\alpha_{ij} & = A\\cdot k_B(T_i + T_j)/2 \\\\\n \\omega_{D}(r) & = \\omega^2_{R}(r) = (1-r/r_c)^s \\\\\n \\sigma_{ij}^2 & = 4\\gamma k_B T_i T_j/(T_i + T_j) \\end{align*} \\]\nin which the exponent of the weighting function *s* can be defined as a\ntemperature-dependent variable. The heat flux between particles\naccounting for the collisional heat flux \\(q^C\\), viscous heat flux\n\\(q^V\\), and random heat flux \\(q^R\\) are given by\n\\[\\begin{align*} \n q_i^C & = \\sum_{j \\ne i} k_{ij} \\omega_{CT}(r_{ij}) \\left( \\frac{1}{T_i} - \\frac{1}{T_j} \\right) \\\\\n q_i^V & = \\frac{1}{2 C_v}\\sum_{j \\ne i}{ \\left\\{ \\omega_D(r_{ij})\\left[\\gamma_{ij} \\left( \\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij} \\right)^2 - \\frac{\\left( \\sigma _{ij} \\right)^2}{m}\\right] - \\sigma _{ij} \\omega_R(r_{ij})\\left( \\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij} \\right){\\xi_{ij}} \\right\\} } \\\\\n q_i^R & = \\sum_{j \\ne i} \\beta _{ij} \\omega_{RT}(r_{ij}) d {t^{ - 1/2}} \\xi_{ij}^e \\\\\n \\omega_{CT}(r) & =\\omega_{RT}^2(r)=\\left(1-r/r_{ct}\\right)^{s_T} \\\\\n k_{ij} & =C_v^2\\kappa(T_i + T_j)^2/4k_B \\\\\n \\beta_{ij}^2 & = 2k_Bk_{ij} \\end{align*} \\]\nwhere the mesoscopic heat friction \\(\\kappa\\) is given by\n\\[\n \\kappa = \\frac{315k_B\\upsilon }{2\\pi \\rho C_v r_{ct}^5}\\frac{1}{Pr},\\]\nwith \\(\\upsilon\\) being the kinematic viscosity. For more details,\nsee Eq.(15) in **Li2014_JCP**.\n\nThe following coefficients must be defined in eDPD system for each\npair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above.\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* power_f (positive real)\n* cutoff (distance units)\n* kappa (thermal conductivity units)\n* power_T (positive real)\n* cutoff_T (distance units)\n* optional keyword = power or kappa\n\nThe keyword *power* or *kappa* is optional. Both \"power\" and \"kappa\"\nrequire 4 parameters \\(c_1, c_2, c_3, c_4\\) showing the temperature\ndependence of the exponent \\(s(T) = \\mathrm{power}_f ( 1+c_1\n(T-1) + c_2 (T-1)^2 + c_3 (T-1)^3 + c_4 (T-1)^4 )\\) and of the mesoscopic\nheat friction \\(s_T(T) = \\kappa (1 + c_1 (T-1) + c_2 (T-1)^2 + c_3\n(T-1)^3 + c_4 (T-1)^4)\\). If the keyword *power* or *kappa* is not\nspecified, the eDPD system will use constant power_f and\n\\(\\kappa\\), which is independent to temperature changes.\n\n----------\n\nThe *mdpd/rhosum* style computes the local particle mass density\n\\(\\rho\\) for mDPD particles by kernel function interpolation.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* cutoff (distance units)\n\n----------\n\nThe *mdpd* style computes the many-body interactions between mDPD\nparticles following the formulations in\n**Li2013_POF**. The dissipative and random forces are in\nthe form same as the classical DPD, but the conservative force is\nlocal density dependent, which are given by\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^C & = Aw_c(r_{ij})\\mathbf{e}_{ij} + B(\\rho_i+\\rho_j)w_d(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\end{align*} \\]\nwhere the first term in \\(F_C\\) with a negative coefficient \\(A\n< 0\\) stands for an attractive force within an interaction range\n\\(r_c\\), and the second term with \\(B > 0\\) is the\ndensity-dependent repulsive force within an interaction range\n\\(r_d\\).\n\nThe following coefficients must be defined for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* A (force units)\n* B (force units)\n* \\(\\gamma\\) (force/velocity units)\n* cutoff_c (distance units)\n* cutoff_d (distance units)\n\n----------\n\nThe *tdpd* style computes the pairwise interactions and chemical\nconcentration fluxes for tDPD particles following the formulations in\n**Li2015_JCP**. The time evolution of a tDPD particle is\ngoverned by the conservation of momentum and concentration given by\n\\[\\begin{align*} \n \\frac{\\mathrm{d}^2 \\mathbf{r}_i}{\\mathrm{d} t^2} & = \\frac{\\mathrm{d} \\mathbf{v}_i}{\\mathrm{d} t}=\\mathbf{F}_{i}=\\sum_{i\\neq j}(\\mathbf{F}_{ij}^{C}+\\mathbf{F}_{ij}^{D}+\\mathbf{F}_{ij}^{R}) \\\\\n \\frac{\\mathrm{d} C_{i}}{\\mathrm{d} t} & = Q_{i} = \\sum_{i\\neq j}(Q_{ij}^{D}+Q_{ij}^{R}) + Q_{i}^{S} \\end{align*} \\]\nwhere the three components of \\(F_{i}\\) including the conservative\nforce \\(F_{ij}^C\\), dissipative force \\(F_{ij}^C\\) and random\nforce \\(F_{ij}^C\\) are expressed as\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^{C} & = A{\\omega_{C}}(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\\\\n \\omega_{C}(r) & = 1 - r/r_c \\\\\n \\omega_{D}(r) & = \\omega^2_{R}(r) = (1-r/r_c)^{\\rm power_f} \\\\\n \\sigma^2 = 2\\gamma k_B T \\end{align*} \\]\nThe concentration flux between two tDPD particles includes the Fickian\nflux \\(Q_{ij}^D\\) and random flux \\(Q_{ij}^R\\), which are given\nby\n\\[\\begin{align*} \n Q_{ij}^D & = -\\kappa_{ij} w_{DC}(r_{ij}) \\left( C_i - C_j \\right) \\\\\n Q_{ij}^R & = \\epsilon_{ij}\\left( C_i + C_j \\right) w_{RC}(r_{ij}) \\xi_{ij} \\\\\n w_{DC}(r_{ij}) & =w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^{\\rm power_{cc}} \\\\\n \\epsilon_{ij}^2 & = m_s^2\\kappa_{ij}\\rho \\end{align*} \\]\nwhere the parameters kappa and epsilon determine the strength of the\nFickian and random fluxes. \\(m_s\\) is the mass of a single solute\nmolecule. In general, \\(m_s\\) is much smaller than the mass of a\ntDPD particle *m* . For more details, see **Li2015_JCP**.\n\nThe following coefficients must be defined for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* power_f (positive real)\n* cutoff (distance units)\n* cutoff_CC (distance units)\n* \\(\\kappa_i\\) (diffusivity units)\n* \\(\\epsilon_i\\) (diffusivity units)\n* power_cc_i (positive real)\n\nThe last 3 values must be repeated Nspecies times, so that values for\neach of the Nspecies chemical species are specified, as indicated by\nthe \"I\" suffix. In the first pair_coeff example above for pair_style\ntdpd, Nspecies = 1. In the second example, Nspecies = 2, so 3\nadditional coeffs are specified (for species 2).\n\n----------\n\n #### Example scripts\n\nThere are example scripts for using all these pair styles in\nexamples/PACKAGES/mesodpd. The example for an eDPD simulation models heat\nconduction with source terms analog of periodic Poiseuille flow\nproblem. The setup follows Fig.12 in **Li2014_JCP**. The\noutput of the short eDPD simulation (about 2 minutes on a single core)\ngives a temperature and density profiles as\n\n ![Image](JPG/examples_edpd.jpg) \n\nThe example for a mDPD simulation models the oscillations of a liquid\ndroplet started from a liquid film. The mDPD parameters are adopted\nfrom **Li2013_POF**. The short mDPD run (about 2 minutes\non a single core) generates a particle trajectory which can\nbe visualized as follows.\n\n ![Image](JPG/examples_mdpd.gif) \n\n\n\n ![Image](JPG/examples_mdpd_first.jpg) \n\n\n ![Image](JPG/examples_mdpd_last.jpg) \n\nThe first image is the initial state of the simulation. If you\nclick it a GIF movie should play in your browser. The second image\nis the final state of the simulation.\n\nThe example for a tDPD simulation computes the effective diffusion\ncoefficient of a tDPD system using a method analogous to the periodic\nPoiseuille flow. The tDPD system is specified with two chemical\nspecies, and the setup follows Fig.1 in\n**Li2015_JCP**. The output of the short tDPD simulation\n(about one and a half minutes on a single core) gives the\nconcentration profiles of the two chemical species as\n\n ![Image](JPG/examples_tdpd.jpg) \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support\nmixing. Thus, coefficients for all I,J pairs must be specified explicitly.\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options.\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not write\ninformation to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Li2014_JCP)** Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys,\n265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003. \n \n**(Li2015_CC)** Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040\n(2015). DOI: 10.1039/C5CC01684C. \n \n**(Li2013_POF)** Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013).\nDOI: 10.1063/1.4812366. \n \n**(Li2015_JCP)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys,\n143: 014101 (2015). DOI: 10.1063/1.4923254. \n \n**(Li2015_JCP)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys,\n143: 014101 (2015). DOI: 10.1063/1.4923254. \n ", - "restrictions": "The pair styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* are part of\nthe DPD-MESO package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html),\n[fix mvv/edpd ](https://docs.lammps.org/fix_mvv_dpd.html), [fix mvv/tdpd ](https://docs.lammps.org/fix_mvv_dpd.html),\n[fix edpd/source ](https://docs.lammps.org/fix_dpd_source.html), [fix tdpd/source ](https://docs.lammps.org/fix_dpd_source.html),\n[compute edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html),\n[compute tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html)\n" + "parameters": "* style = lj/long/coul/long or lj/long/tip4p/long\n* args = list of arguments for a particular style \n *      lj/long/coul/long args = flag_lj flag_coul cutoff (cutoff2) \n       flag_lj = long or cut or off \n       long = use Kspace long-range summation for dispersion 1/r\\^6 term \n       cut = use a cutoff on dispersion 1/r\\^6 term \n       off = omit disperion 1/r\\^6 term entirely \n       flag_coul = long or off \n       long = use Kspace long-range summation for Coulombic 1/r term \n       off = omit Coulombic term \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/long/tip4p/long args = flag_lj flag_coul otype htype btype atype qdist cutoff (cutoff2) \n       flag_lj = long or cut \n       long = use Kspace long-range summation for dispersion 1/r\\^6 term \n       cut = use a cutoff \n       flag_coul = long or off \n       long = use Kspace long-range summation for Coulombic 1/r term \n       off = omit Coulombic term \n       otype,htype = atom types for TIP4P O and H \n       btype,atype = bond and angle types for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style lj/long/coul/long cut off 2.5\npair_style lj/long/coul/long cut long 2.5 4.0\npair_style lj/long/coul/long long long 2.5 4.0\npair_coeff * * 1 1\npair_coeff 1 1 1 3 4\n\npair_style lj/long/tip4p/long long long 1 2 7 8 0.15 12.0\npair_style lj/long/tip4p/long long long 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", + "html_filename": "pair_lj_long.html", + "short_description": "Style *lj/long/coul/long* computes the standard 12/6 Lennard-Jones potential:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\\]\nwith \\(\\epsilon\\) and \\(\\sigma\\) being the usual Lennard-Jones\npotential parameters, plus the Coulomb potential, given by:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\) are the charges on\nthe 2 atoms, \\(\\epsilon\\) is the dielectric constant which can be set by\nthe [dielectric ](https://docs.lammps.org/dielectric.html) command, and \\(r_c\\) is the cutoff", + "description": "Style *lj/long/coul/long* computes the standard 12/6 Lennard-Jones potential:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\\]\nwith \\(\\epsilon\\) and \\(\\sigma\\) being the usual Lennard-Jones\npotential parameters, plus the Coulomb potential, given by:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\) are the charges on\nthe 2 atoms, \\(\\epsilon\\) is the dielectric constant which can be set by\nthe [dielectric ](https://docs.lammps.org/dielectric.html) command, and \\(r_c\\) is the cutoff. If\none cutoff is specified in the pair_style command, it is used for both\nthe LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nThe purpose of this pair style is to capture long-range interactions\nresulting from both attractive 1/r\\^6 Lennard-Jones and Coulombic 1/r\ninteractions. This is done by use of the *flag_lj* and *flag_coul*\nsettings. The **Veld2** paper has more details on when it is\nappropriate to include long-range 1/r\\^6 interactions, using this\npotential.\n\nStyle *lj/long/tip4p/long* implements the TIP4P water model of\n**Jorgensen4**, which introduces a massless site located a\nshort distance away from the oxygen atom along the bisector of the HOH\nangle. The atomic types of the oxygen and hydrogen atoms, the bond\nand angle types for OH and HOH interactions, and the distance to the\nmassless charge site are specified as pair_style arguments.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more\ninformation on how to use the TIP4P pair style. Note that the\nneighbor list cutoff for Coulomb interactions is effectively extended\nby a distance 2\\*qdist when using the TIP4P pair style, to account for\nthe offset distance of the fictitious charges on O atoms in water\nmolecules. Thus it is typically best in an efficiency sense to use a\nLJ cutoff >= Coulombic cutoff + 2\\*qdist, to shrink the size of the\nneighbor list. This leads to slightly larger cost for the long-range\ncalculation, so you can test the trade-off for your model.\n\nIf *flag_lj* is set to *long*, no cutoff is used on the LJ 1/r\\^6\ndispersion term. The long-range portion can be calculated by using\nthe [kspace_style ewald/disp or pppm/disp ](https://docs.lammps.org/kspace_style.html) commands.\nThe specified LJ cutoff then determines which portion of the LJ\ninteractions are computed directly by the pair potential versus which\npart is computed in reciprocal space via the Kspace style. If\n*flag_lj* is set to *cut*, the LJ interactions are simply cutoff, as\nwith [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html).\n\nIf *flag_coul* is set to *long*, no cutoff is used on the Coulombic\ninteractions. The long-range portion can calculated by using any of\nseveral [kspace_style ](https://docs.lammps.org/kspace_style.html) command options such as\n*pppm* or *ewald* . Note that if *flag_lj* is also set to long, then\nthe *ewald/disp* or *pppm/disp* Kspace style needs to be used to\nperform the long-range calculations for both the LJ and Coulombic\ninteractions. If *flag_coul* is set to *off*, Coulombic interactions\nare not computed.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at 2\\^(1/6)\nsigma.\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nNote that if you are using *flag_lj* set to *long*, you\ncannot specify a LJ cutoff for an atom type pair, since only one\nglobal LJ cutoff is allowed. Similarly, if you are using *flag_coul*\nset to *long*, you cannot specify a Coulombic cutoff for an atom type\npair, since only one global Coulombic cutoff is allowed.\n\nFor *lj/long/tip4p/long* only the LJ cutoff can be specified\nsince a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff\nspecified in the pair_style command.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable for use in\nfree energy calculations, is part of the FEP package and is documented with\nthe [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is\nonly available if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/long pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Lennard-Jones portion of the pair\ninteraction, assuming *flag_lj* is *cut* .\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\ntable/disp options since they can tabulate the short-range portion of\nthe long-range Coulombic and dispersion interactions.\n\nThes pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the\nLennard-Jones portion of the energy and pressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThe pair lj/long/coul/long styles support the use of the *inner*,\n*middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html)\ncommand, meaning the pairwise forces can be partitioned by distance at\ndifferent levels of the rRESPA hierarchy. See the\n[run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Veld2)** In 't Veld, Ismail, Grest, J Chem Phys, 127, 144711 (2007). \n \n**(Jorgensen4)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", + "restrictions": "These styles are part of the KSPACE package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute pressure/alchemy" + "log" ], "syntax": [ - "compute ID group-ID pressure/alchemy fix-ID" + "log file keyword" ], "args": [ [ { - "arg": "compute", + "arg": "log", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "pressure/alchemy", - "type": 1, - "choices": [] - }, - { - "arg": "fix-ID", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure/alchemy = style name of this compute command\n* fix-ID = ID of [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command \n", - "examples": "\n```lmps\nfix trans all alchemy\ncompute mixed all pressure/alchemy trans\nthermo_modify press mixed\n```\n", - "html_filename": "compute_pressure_alchemy.html", - "short_description": "\nDefine a compute style that makes the \"mixed\" system pressure available\nfor a system that uses the [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command to\ntransform one topology to another", - "description": "\nDefine a compute style that makes the \"mixed\" system pressure available\nfor a system that uses the [fix alchemy ](https://docs.lammps.org/fix_alchemy.html) command to\ntransform one topology to another. This can be used in combination with\neither [thermo_modify press ](https://docs.lammps.org/thermo_modify.html) or [fix_modifypress ](https://docs.lammps.org/fix_modify.html) to output and access a pressure consistent with the\nsimulated combined two topology system.\n\nThe actual pressure is determined with [compute pressure](https://docs.lammps.org/compute_pressure.html) commands that are internally used by [fixalchemy ](https://docs.lammps.org/fix_alchemy.html) for each topology individually and then combined.\nThis command just extracts the information from the fix.\n\nThe ``examples/PACKAGES/alchemy`` folder contains an example input for this command.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the pressure) and a global\nvector of length 6 (the pressure tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe ordering of values in the symmetric pressure tensor is as follows:\n\\(p_{xx},\\) \\(p_{yy},\\) \\(p_{zz},\\) \\(p_{xy},\\)\n\\(p_{xz},\\) \\(p_{yz}.\\)\n\nThe scalar and vector values calculated by this compute are \"intensive\".\nThe scalar and vector values will be in pressure [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the REPLICA package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix alchemy ](https://docs.lammps.org/fix_alchemy.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* file = name of new logfile\n* keyword = append if output should be appended to logfile (optional) \n", + "examples": "\n```lmps\nlog log.equil\nlog log.equil append\n```\n", + "html_filename": "log.html", + "short_description": "This command closes the current LAMMPS log file, opens a new file with\nthe specified name, and begins logging information to it", + "description": "This command closes the current LAMMPS log file, opens a new file with\nthe specified name, and begins logging information to it. If the\nspecified file name is *none*, then no new log file is opened. If the\noptional keyword *append* is specified, then output will be appended\nto an existing log file, instead of overwriting it.\n\nIf multiple processor partitions are being used, the file name should\nbe a variable, so that different processors do not attempt to write to\nthe same log file.\n\nThe file \"log.lammps\" is the default log file for a LAMMPS run. The\nname of the initial log file can also be set by the [-log command-line switch ](https://docs.lammps.org/Run_options.html).\n", + "restrictions": " none\n", + "related": "none\n" }, { "command": [ - "region" + "fix polarize/bem/gmres", + "fix polarize/bem/icc" ], "syntax": [ - "region ID style args keyword arg ..." + "fix ID group-ID style nevery tolerance" ], "args": [ [ { - "arg": "region", + "arg": "fix", "type": 1, "choices": [] }, @@ -28987,155 +27874,190 @@ export const command_docs = [ "choices": [] }, { - "arg": "intersect", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "polarize/functional", "type": 3, "choices": [ - "delete", - "block", - "cone", - "cylinder", - "ellipsoid", - "plane", - "prism", - "sphere", - "union", - "intersect" + "polarize/bem/gmres", + "polarize/bem/icc", + "polarize/functional" ] }, { - "arg": "args", + "arg": "nevery", "type": 2, "choices": [] }, { - "arg": "open", - "type": 3, - "choices": [ - "side", - "units", - "move", - "rotate", - "open" - ] + "arg": "tolerance", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = polarize/bem/gmres or polarize/bem/icc or polarize/functional\n* nevery = this fixed is invoked every this many timesteps\n* tolerance = the relative tolerance for the iterative solver to stop \n", + "examples": "\n```lmps\nfix 2 interface polarize/bem/gmres 5 0.0001\nfix 1 interface polarize/bem/icc 1 0.0001\nfix 3 interface polarize/functional 1 0.0001\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", + "html_filename": "fix_polarize.html", + "short_description": "These fixes compute induced charges at the interface between two\nimpermeable media with different dielectric constants", + "description": "These fixes compute induced charges at the interface between two\nimpermeable media with different dielectric constants. The interfaces\nneed to be discretized into vertices, each representing a boundary\nelement. The vertices are treated as if they were regular atoms or\nparticles. [atom_style dielectric ](https://docs.lammps.org/atom_style.html) should be used\nsince it defines the additional properties of each interface particle\nsuch as interface normal vectors, element areas, and local dielectric\nmismatch. These fixes also require the use of [pair_style](https://docs.lammps.org/pair_style.html) and [kspace_style ](https://docs.lammps.org/kspace_style.html) with the\n*dielectric* suffix. At every time step, given a configuration of the\nphysical charges in the system (such as atoms and charged particles)\nthese fixes compute and update the charge of the interface\nparticles. The interfaces are allowed to move during the simulation if\nthe appropriate time integrators are also set (for example, with\n[fix_rigid ](https://docs.lammps.org/fix_rigid.html)).\n\nConsider an interface between two media: one with dielectric constant of\n78 (water), the other of 4 (silica). The interface is discretized into\n2000 boundary elements, each represented by an interface\nparticle. Suppose that each interface particle has a normal unit vector\npointing from the silica medium to water. The dielectric difference\nalong the normal vector is then 78 - 4 = 74, the mean dielectric value\nis (78 + 4) / 2 = 41. Each boundary element also has its area and the\nlocal mean curvature, which is used by these fixes for computing a\ncorrection term in the local electric field. To model charged\ninterfaces, an interface particle will have a non-zero charge value,\ncoming from its area and surface charge density, and its local dielectric\nconstant set to the mean dielectric value.\n\nFor non-interface particles such as atoms and charged particles, the\ninterface normal vectors, element area, and dielectric mismatch are\nirrelevant and unused. Their local dielectric value is used internally\nto rescale their given charge when computing the Coulombic\ninteractions. For instance, to simulate a cation carrying a charge of +2\n(in simulation charge units) in an implicit solvent with a dielectric\nconstant of 40, the cation's charge should be set to +2 and its local\ndielectric constant property (defined in the [atom_style dielectric](https://docs.lammps.org/atom_style.html)) should be set to 40; there is no need to manually rescale\ncharge. This will produce the proper force for any [pair_style](https://docs.lammps.org/pair_style.html) with the dielectric suffix. It is assumed that the\nparticles cannot pass through the interface during the simulation\nbecause the value of the local dielectric constant property does not\nchange.\n\nThere are some example scripts for using these fixes with LAMMPS in the\n``examples/PACKAGES/dielectric`` directory. The README file therein\ncontains specific details on the system setup. Note that the example\ndata files show the additional fields (columns) needed for\n[atom_style dielectric ](https://docs.lammps.org/atom_style.html) beyond the conventional fields\n*id*, *mol*, *type*, *q*, *x*, *y*, and *z*.\n\n----------\n\nFor fix *polarize/bem/gmres* and fix *polarize/bem/icc* the induced\ncharges of the atoms in the specified group, which are the vertices on\nthe interface, are computed using the equation:\n\\[\n \\sigma_b(\\mathbf{s}) = \\dfrac{1 - \\bar{\\epsilon}}{\\bar{\\epsilon}}\n \\sigma_f(\\mathbf{s}) - \\epsilon_0 \\dfrac{\\Delta \\epsilon}{\\bar{\\epsilon}}\n \\mathbf{E}(\\mathbf{s}) \\cdot \\mathbf{n}(\\mathbf{s})\\]\n* \\(\\sigma_b\\) is the induced charge density at the interface vertex \\(\\mathbf{s}\\).\n* \\(\\bar{\\epsilon}\\) is the mean dielectric constant at the interface vertex: \\(\\bar{\\epsilon} = (\\epsilon_1 + \\epsilon_2)/2\\).\n* \\(\\Delta \\epsilon\\) is the dielectric constant difference at the interface vertex: \\(\\Delta \\epsilon = \\epsilon_1 - \\epsilon_2\\)\n* \\(\\sigma_f\\) is the free charge density at the interface vertex\n* \\(\\mathbf{E}(\\mathbf{s})\\) is the electrical field at the vertex\n* \\(\\mathbf{n}(\\mathbf{s})\\) is the unit normal vector at the vertex pointing from medium with \\(\\epsilon_2\\) to that with \\(\\epsilon_1\\)\n\nFix *polarize/bem/gmres* employs the Generalized Minimum Residual\n(GMRES) as described in **Barros** to solve\n\\(\\sigma_b\\).\n\nFix *polarize/bem/icc* employs the successive over-relaxation algorithm\nas described in **Tyagi** to solve \\(\\sigma_b\\).\n\nThe iterative solvers would terminate either when the maximum relative\nchange in the induced charges in consecutive iterations is below the set\ntolerance, or when the number of iterations reaches *iter_max* (see\nbelow).\n\nFix *polarize/functional* employs the energy functional variation\napproach as described in **Jadhao** to solve\n\\(\\sigma_b\\).\n\nThe induced charges computed by these fixes are stored in the *q_scaled* field,\nand can be accessed as in the following example:\n\n```lmps\ncompute qs all property/atom q_scaled\ndump 1 all custom 1000 all.txt id type q x y z c_qs\n```\nNote that the *q* field is the regular atom charges, which do not change\nduring the simulation. For interface particles, *q_scaled* is the sum\nof the real charge, divided by the local dielectric constant *epsilon*,\nand their induced charges. For non-interface particles, *q_scaled* is\nthe real charge, divided by the local dielectric constant *epsilon*.\n\nMore details on the implementation of these fixes and their recommended\nuse are described in **NguyenTD**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) command provides the ability to modify certain\nsettings:\n\n```\n*itr_max* arg\narg = maximum number of iterations for convergence\n*dielectrics* ediff emean epsilon area charge\nediff = dielectric difference or NULL\nemean = dielectric mean or NULL\nepsilon = local dielectric value or NULL\narea = element area or NULL\ncharge = real interface charge or NULL\n*kspace* arg = yes or no\n*rand* max seed\nmax = range of random induced charges to be generated\nseed = random number seed to use when generating random charge\n*mr* arg\narg = maximum number of q-vectors to use when solving (GMRES only)\n*omega* arg\narg = relaxation parameter to use when iterating (ICC only)\n```\nThe *itr_max* keyword sets the max number of iterations to be used for\nsolving each step.\n\nThe *dielectrics* keyword allows properties of the atoms in group\n*group-ID* to be modified. Values passed to any of the arguments\n(*ediff*, *emean*, *epsilon*, *area*, *charge*) will override existing\nvalues for all atoms in the group *group-ID*. Passing NULL to any of\nthese arguments will preserve the existing value. Note that setting the\nproperties of the interface this way will change the properties of all\natoms associated with the fix (all atoms in *group-ID*), so multiple fix\nand fix_modify commands would be needed to change the properties of two\ndifferent interfaces to different values (one fix and fix_modify for\neach interface group).\n\nThe *kspace* keyword turns on long range interactions.\n\nIf the arguments of the *rand* keyword are set, then the atoms subject\nto this fix will be assigned a random initial charge in a uniform\ndistribution from -*max*/2 to *max*/2, using random number seed *seed*.\n\nThe *mr* keyword only applies to *style* = *polarize/bem/gmres*. It is\nthe maximum number of q-vectors to use when solving for the surface\ncharge.\n\nThe *omega* keyword only applies when using *style* =\n*polarize/bem/icc*. It is a relaxation parameter defined in\n**Tyagi** that should generally be set between 0 and 2.\n\nNote that the local dielectric constant (epsilon) can also be set\nindependently using the [set ](https://docs.lammps.org/set.html) command.\n\n----------\n\n*polarize/bem/gmres* or *polarize/bem/icc* compute a global 2-element\nvector which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first element is the number of iterations when the\nsolver terminates (of which the upper bound is set by *iter_max*). The\nsecond element is the RMS error.\n\n**(Barros)** Barros, Sinkovits, Luijten, J. Chem. Phys, 140, 064903 (2014) \n \n**(Tyagi)** Tyagi, Suzen, Sega, Barbosa, Kantorovich, Holm, J Chem Phys, 132, 154112 (2010) \n \n**(Jadhao)** Jadhao, Solis, Olvera de la Cruz, J Chem Phys, 138, 054119 (2013) \n \n**(NguyenTD)** Nguyen, Li, Bagchi, Solis, Olvera de la Cruz, Comput Phys Commun 241, 80-19 (2019) \n ", + "restrictions": "These fixes are part of the DIELECTRIC package. They are only enabled\nif LAMMPS was built with that package, which requires that also the\nKSPACE package is installed. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nNote that the *polarize/bem/gmres* and *polarize/bem/icc* fixes only\nsupport [units ](https://docs.lammps.org/units.html) *lj*, *real*, *metal*, *si* and *nano* at\nthe moment.\n\nNote that *polarize/functional* does not yet support charged interfaces.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix polarize ](https://docs.lammps.org/fix_polarize.html), [read_data ](https://docs.lammps.org/read_data.html),\n[pair_style lj/cut/coul/long/dielectric ](https://docs.lammps.org/pair_dielectric.html),\n[kspace_style pppm/dielectric ](https://docs.lammps.org/kspace_style.html),\n[compute efield/atom ](https://docs.lammps.org/compute_efield_atom.html)\n" +}, +{ + "command": [ + "quit" + ], + "syntax": [ + "quit status" + ], + "args": [ + [ + { + "arg": "quit", + "type": 1, + "choices": [] }, { - "arg": "arg", + "arg": "status", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the region\n* style = delete or block or cone or cylinder or ellipsoid or plane or prism or sphere or union or intersect \n *        delete = no args \n *        block args = xlo xhi ylo yhi zlo zhi \n         xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all dimensions (distance units) \n         xlo,xhi,ylo,yhi,zlo,zhi can be a variable \n *        cone args = dim c1 c2 radlo radhi lo hi \n         dim = x or y or z = axis of cone \n         c1,c2 = coords of cone axis in other 2 dimensions (distance units) \n         radlo,radhi = cone radii at lo and hi end (distance units) \n         lo,hi = bounds of cone in dim (distance units) \n         c1,c2,radlo,radhi,lo,hi can be a variable (see below) \n *        cylinder args = dim c1 c2 radius lo hi \n         dim = x or y or z = axis of cylinder \n         c1,c2 = coords of cylinder axis in other 2 dimensions (distance units) \n         radius = cylinder radius (distance units) \n         c1,c2, and radius can be a variable (see below) \n         lo,hi = bounds of cylinder in dim (distance units) \n *        ellipsoid args = x y z a b c \n         x,y,z = center of ellipsoid (distance units) \n         a,b,c = half the length of the principal axes of the ellipsoid (distance units) \n         x,y,z,a,b and c can be a variable (see below) \n *        plane args = px py pz nx ny nz \n         px,py,pz = point on the plane (distance units) \n         nx,ny,nz = direction normal to plane (distance units) \n *        prism args = xlo xhi ylo yhi zlo zhi xy xz yz \n         xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism (distance units) \n         xy = distance to tilt y in x direction (distance units) \n         xz = distance to tilt z in x direction (distance units) \n         yz = distance to tilt z in y direction (distance units) \n *        sphere args = x y z radius \n         x,y,z = center of sphere (distance units) \n         radius = radius of sphere (distance units) \n         x,y,z, and radius can be a variable (see below) \n *        union args = N reg-ID1 reg-ID2 ... \n         N = # of regions to follow, must be 2 or greater \n         reg-ID1,reg-ID2, ... = IDs of regions to join together \n *        intersect args = N reg-ID1 reg-ID2 ... \n         N = # of regions to follow, must be 2 or greater \n         reg-ID1,reg-ID2, ... = IDs of regions to intersect \n* zero or more keyword/arg pairs may be appended\n* keyword = side or units or move or rotate or open \n *        side value = in or out \n         in = the region is inside the specified geometry \n         out = the region is outside the specified geometry \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n *        move args = v_x v_y v_z \n         v_x,v_y,v_z = equal-style variables for x,y,z displacement of region over time (distance units) \n *        rotate args = v_theta Px Py Pz Rx Ry Rz \n         v_theta = equal-style variable for rotaton of region over time (in radians) \n         Px,Py,Pz = origin for axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n *        open value = integer from 1-6 corresponding to face index (see below) \n* accelerated styles (with same args) = block/kk \n", - "examples": "\n```lmps\nregion 1 block -3.0 5.0 INF 10.0 INF INF\nregion 2 sphere 0.0 0.0 0.0 5 side out\nregion void cylinder y 2 3 5 -5.0 EDGE units box\nregion 1 prism 0 10 0 10 0 10 2 0 0\nregion outside union 4 side1 side2 side3 side4\nregion 2 sphere 0.0 0.0 0.0 5 side out move v_left v_up NULL\nregion openbox block 0 10 0 10 0 10 open 5 open 6 units box\nregion funnel cone z 10 10 2 5 0 10 open 1 units box\n```\n", - "html_filename": "region.html", - "short_description": "This command defines a geometric region of space", - "description": "This command defines a geometric region of space. Various other\ncommands use regions. For example, the region can be filled with\natoms via the [create_atoms ](https://docs.lammps.org/create_atoms.html) command. Or a bounding\nbox around the region, can be used to define the simulation box via\nthe [create_box ](https://docs.lammps.org/create_box.html) command. Or the atoms in the region\ncan be identified as a group via the [group ](https://docs.lammps.org/group.html) command, or\ndeleted via the [delete_atoms ](https://docs.lammps.org/delete_atoms.html) command. Or the\nsurface of the region can be used as a boundary wall via the [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) command.\n\nCommands which use regions typically test whether an atom's position\nis contained in the region or not. For this purpose, coordinates\nexactly on the region boundary are considered to be interior to the\nregion. This means, for example, for a spherical region, an atom on\nthe sphere surface would be part of the region if the sphere were\ndefined with the *side in* keyword, but would not be part of the\nregion if it were defined using the *side out* keyword. See more\ndetails on the *side* keyword below.\n\nNormally, regions in LAMMPS are \"static\", meaning their geometric\nextent does not change with time. If the *move* or *rotate* keyword\nis used, as described below, the region becomes \"dynamic\", meaning\nit's location or orientation changes with time. This may be useful,\nfor example, when thermostatting a region, via the compute temp/region\ncommand, or when the fix wall/region command uses a region surface as\na bounding wall on particle motion, i.e. a rotating container.\n\nThe *delete* style removes the named region. Since there is little\noverhead to defining extra regions, there is normally no need to do\nthis, unless you are defining and discarding large numbers of regions\nin your input script.\n\nThe lo/hi values for *block* or *cone* or *cylinder* or *prism* styles\ncan be specified as EDGE or INF. EDGE means they extend all the way\nto the global simulation box boundary. Note that this is the current\nbox boundary; if the box changes size during a simulation, the region\ndoes not. INF means a large negative or positive number (1.0e20), so\nit should encompass the simulation box even if it changes size. If a\nregion is defined before the simulation box has been created (via\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands), then an EDGE or INF\nparameter cannot be used. For a *prism* region, a non-zero tilt\nfactor in any pair of dimensions cannot be used if both the lo/hi\nvalues in either of those dimensions are INF. E.g. if the xy tilt is\nnon-zero, then xlo and xhi cannot both be INF, nor can ylo and yhi.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Regions in LAMMPS do not get wrapped across periodic boundaries,\n > as specified by the [boundary ](https://docs.lammps.org/boundary.html) command. For example, a\n > spherical region that is defined so that it overlaps a periodic\n > boundary is not treated as 2 half-spheres, one on either side of the\n > simulation box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Regions in LAMMPS are always 3d geometric objects, regardless of\n > whether the [dimension ](https://docs.lammps.org/dimension.html) of a simulation is 2d or 3d.\n > Thus when using regions in a 2d simulation, you should be careful to\n > define the region so that its intersection with the 2d x-y plane of\n > the simulation has the 2d geometric extent you want. \n > \n\nFor style *cone*, an axis-aligned cone is defined which is like a\n*cylinder* except that two different radii (one at each end) can be\ndefined. Either of the radii (but not both) can be 0.0.\n\nFor style *cone* and *cylinder*, the c1,c2 params are coordinates in\nthe 2 other dimensions besides the cylinder axis dimension. For dim =\nx, c1/c2 = y/z; for dim = y, c1/c2 = x/z; for dim = z, c1/c2 = x/y.\nThus the third example above specifies a cylinder with its axis in the\ny-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and\nextending in the y-direction from -5.0 to the upper box boundary.\n\nFor style *ellipsoid*, an axis-aligned ellipsoid is defined. The\nellipsoid has its center at (x,y,z) and is defined by 3 axis-aligned\nvectors given by A = (a,0,0); B = (0,b,0); C = (0,0,c). Note that\nalthough the ellipsoid is specified as axis-aligned it can be rotated\nvia the optional *rotate* keyword.\n\nFor style *plane*, a plane is defined which contain the point\n(px,py,pz) and has a normal vector (nx,ny,nz). The normal vector does\nnot have to be of unit length. The \"inside\" of the plane is the\nhalf-space in the direction of the normal vector; see the discussion\nof the *side* option below.\n\nFor style *prism*, a parallelepiped is defined (it's too hard to spell\nparallelepiped in an input script!). The parallelepiped has its\n\"origin\" at (xlo,ylo,zlo) and is defined by 3 edge vectors starting\nfrom the origin given by A = (xhi-xlo,0,0); B = (xy,yhi-ylo,0); C =\n(xz,yz,zhi-zlo). *Xy,xz,yz* can be 0.0 or positive or negative values\nand are called \"tilt factors\" because they are the amount of\ndisplacement applied to faces of an originally orthogonal box to\ntransform it into the parallelepiped.\n\nA prism region that will be used with the [create_box ](https://docs.lammps.org/create_box.html)\ncommand to define a triclinic simulation box must have tilt factors\n(xy,xz,yz) that do not skew the box more than half the distance of\ncorresponding the parallel box length. For example, if xlo = 2 and\nxhi = 12, then the x box length is 10 and the xy tilt factor must be\nbetween -5 and 5. Similarly, both xz and yz must be between\n-(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a limitation,\nsince if the maximum tilt factor is 5 (as in this example), then\nconfigurations with tilt = ..., -15, -5, 5, 15, 25, ... are all\ngeometrically equivalent.\n\nFor style *sphere*, a sphere is defined with its center at (x,y,z)\nand with radius as its radius.\n\nThe *radius* value for styles *sphere* and *cylinder*, and the\nparameters a,b,c for style *ellipsoid*, can each be specified as an\nequal-style [variable ](https://docs.lammps.org/variable.html). Likewise, for style *sphere*\nand *ellipsoid* the x-, y-, and z- coordinates of the center of the\nsphere/ellipsoid can be specified as an equal-style variable. And for\nstyle *cylinder* the two center positions c1 and c2 for the location\nof the cylinder axes can be specified as a equal-style variable. For style *cone*\nall properties can be defined via equal-style variables.\n\nIf the value is a variable, it should be specified as v_name, where\nname is the variable name. In this case, the variable will be\nevaluated each timestep, and its value used to determine the radius of\nthe region.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent radius or have\na time dependent position of the sphere or cylinder region.\n\nSee the [Howto tricilinc ](https://docs.lammps.org/Howto_triclinic.html) page for a\ngeometric description of triclinic boxes, as defined by LAMMPS, and\nhow to transform these parameters to and from other commonly used\ntriclinic representations.\n\nThe *union* style creates a region consisting of the volume of all the\nlisted regions combined. The *intersect* style creates a region\nconsisting of the volume that is common to all the listed regions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *union* and *intersect* regions operate by invoking methods\n > from their list of sub-regions. Thus you cannot delete the\n > sub-regions after defining a *union* or *intersection* region. \n > \n\n----------\n\nThe *side* keyword determines whether the region is considered to be\ninside or outside of the specified geometry. Using this keyword in\nconjunction with *union* and *intersect* regions, complex geometries\ncan be built up. For example, if the interior of two spheres were\neach defined as regions, and a *union* style with *side* = out was\nconstructed listing the region-IDs of the 2 spheres, the resulting\nregion would be all the volume in the simulation box that was outside\nboth of the spheres.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the region for any argument above listed as having distance\nunits. It also affects the scaling of the velocity vector specified\nwith the *vel* keyword, the amplitude vector specified with the\n*wiggle* keyword, and the rotation point specified with the *rotate*\nkeyword, since they each involve a distance metric.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings which are used as follows:\n\n* For style *block*, the lattice spacing in dimension x is applied to\n xlo and xhi, similarly the spacings in dimensions y,z are applied to\n ylo/yhi and zlo/zhi.\n* For style *cone*, the lattice spacing in argument *dim* is applied to\n lo and hi. The spacings in the two radial dimensions are applied to\n c1 and c2. The two cone radii are scaled by the lattice\n spacing in the dimension corresponding to c1.\n* For style *cylinder*, the lattice spacing in argument *dim* is applied\n to lo and hi. The spacings in the two radial dimensions are applied\n to c1 and c2. The cylinder radius is scaled by the lattice\n spacing in the dimension corresponding to c1.\n* For style *ellipsoid*, the lattice spacing in dimensions x,y,z are\n applied to the ellipsoid center x,y,z. The spacing in dimensions\n x,y,z are applied to the ellipsoid radii a,b,c respectively.\n* For style *plane*, the lattice spacing in dimension x is applied to\n px and nx, similarly the spacings in dimensions y,z are applied to\n py/ny and pz/nz.\n* For style *prism*, the lattice spacing in dimension x is applied to\n xlo and xhi, similarly for ylo/yhi and zlo/zhi. The lattice spacing\n in dimension x is applied to xy and xz, and the spacing in dimension y\n to yz.\n* For style *sphere*, the lattice spacing in dimensions x,y,z are\n applied to the sphere center x,y,z. The spacing in dimension x is\n applied to the sphere radius.\n\n----------\n\nIf the *move* or *rotate* keywords are used, the region is \"dynamic\",\nmeaning its location or orientation changes with time. These keywords\ncannot be used with a *union* or *intersect* style region. Instead,\nthe keywords should be used to make the individual sub-regions of the\n*union* or *intersect* region dynamic. Normally, each sub-region\nshould be \"dynamic\" in the same manner (e.g. rotate around the same\npoint), though this is not a requirement.\n\nThe *move* keyword allows one or more [equal-style variables ](https://docs.lammps.org/variable.html) to be used to specify the x,y,z displacement\nof the region, typically as a function of time. A variable is\nspecified as v_name, where name is the variable name. Any of the\nthree variables can be specified as NULL, in which case no\ndisplacement is calculated in that dimension.\n\nNote that equal-style variables can specify formulas with various\nmathematical functions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand keywords for the simulation box parameters and timestep and\nelapsed time. Thus it is easy to specify a region displacement that\nchange as a function of time or spans consecutive runs in a continuous\nfashion. For the latter, see the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command and the *elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, these commands would displace a region from its initial\nposition, in the positive x direction, effectively at a constant\nvelocity:\n\n```lmps\nvariable dx equal ramp(0,10)\nregion 2 sphere 10.0 10.0 0.0 5 move v_dx NULL NULL\n```\nNote that the initial displacement is 0.0, though that is not required.\n\nEither of these variables would \"wiggle\" the region back and forth in\nthe y direction:\n\n```lmps\nvariable dy equal swiggle(0,5,100)\nvariable dysame equal 5*sin(2*PI*elaplong*dt/100)\nregion 2 sphere 10.0 10.0 0.0 5 move NULL v_dy NULL\n```\nThe *rotate* keyword rotates the region around a rotation axis *R* =\n(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The rotation\nangle is calculated, presumably as a function of time, by a variable\nspecified as v_theta, where theta is the variable name. The variable\nshould generate its result in radians. The direction of rotation for\nthe region around the rotation axis is consistent with the right-hand\nrule: if your right-hand thumb points along *R*, then your fingers\nwrap around the axis in the direction of rotation.\n\nThe *move* and *rotate* keywords can be used together. In this case,\nthe displacement specified by the *move* keyword is applied to the *P*\npoint of the *rotate* keyword.\n\n----------\n\nThe *open* keyword can be used (multiple times) to indicate that one\nor more faces of the region are ignored for purposes of particle/wall\ninteractions. This keyword is only relevant for regions used by the\n*fix wall/region* and *fix wall/gran/region* commands. It can be used\nto create \"open\" containers where only some of the region faces are\nwalls. For example, a funnel can be created with a *cone* style\nregion that has an open face at the smaller radius for particles to\nflow out, or at the larger radius for pouring particles into the cone,\nor both.\n\nNote that using the *open* keyword partly overrides the *side*\nkeyword, since both exterior and interior surfaces of an open region\nare tested for particle contacts. The exception to this is a *union*\nor *intersect* region which includes an open sub-region. In that case\nthe *side* keyword is still used to define the union/intersect region\nvolume, and the *open* settings are only applied to the individual\nsub-regions that use them.\n\nThe indices specified as part of the *open* keyword have the following\nmeanings:\n\nFor style *block*, indices 1-6 correspond to the xlo, xhi, ylo, yhi,\nzlo, zhi surfaces of the block. I.e. 1 is the yz plane at x = xlo, 2\nis the yz-plane at x = xhi, 3 is the xz plane at y = ylo, 4 is the xz\nplane at y = yhi, 5 is the xy plane at z = zlo, 6 is the xy plane at z\n= zhi). In the second-to-last example above, the region is a box open\nat both xy planes.\n\nFor style *prism*, values 1-6 have the same mapping as for style\n*block* . I.e. in an untilted *prism*, *open* indices correspond to\nthe xlo, xhi, ylo, yhi, zlo, zhi surfaces.\n\nFor style *cylinder*, index 1 corresponds to the flat end cap at the\nlow coordinate along the cylinder axis, index 2 corresponds to the\nhigh-coordinate flat end cap along the cylinder axis, and index 3 is\nthe curved cylinder surface. For example, a *cylinder* region with\n*open 1 open 2* keywords will be open at both ends (e.g. a section of\npipe), regardless of the cylinder orientation.\n\nFor style *cone*, the mapping is the same as for style *cylinder* .\nIndex 1 is the low-coordinate flat end cap, index 2 is the\nhigh-coordinate flat end cap, and index 3 is the curved cone surface.\nIn the last example above, a *cone* region is defined along the z-axis\nthat is open at the zlo value (e.g. for use as a funnel).\n\nFor all other styles, the *open* keyword is ignored. As indicated\nabove, this includes the *intersect* and *union* regions, though their\nsub-regions can be defined with the *open* keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently, only *block* style regions are supported by Kokkos. The\n > code using the region (such as a fix or compute) must also be\n > supported by Kokkos or no acceleration will occur. \n > \n\n----------\n", - "restrictions": "A prism cannot be of 0.0 thickness in any dimension; use a small z\nthickness for 2d simulations. For 2d simulations, the xz and yz\nparameters must be 0.0.\n", - "related": "[lattice ](https://docs.lammps.org/lattice.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), [group ](https://docs.lammps.org/group.html)\n" + "parameters": "status = numerical exit status (optional) \n", + "examples": "\n```lmps\nquit\nif \"$n > 10000\" then \"quit 1\"\n```\n", + "html_filename": "quit.html", + "short_description": "This command causes LAMMPS to exit, after shutting down all output\ncleanly", + "description": "This command causes LAMMPS to exit, after shutting down all output\ncleanly.\n\nIt can be used as a debug statement in an input script, to terminate\nthe script at some intermediate point.\n\nIt can also be used as an invoked command inside the \"then\" or \"else\"\nportion of an [if ](https://docs.lammps.org/if.html) command.\n\nThe optional status argument is an integer which signals the return\nstatus to a program calling LAMMPS. A return status of 0 usually\nindicates success. A status != 0 is failure, where the specified\nvalue can be used to distinguish the kind of error, e.g. where in the\ninput script the quit was invoked. If not specified, a status of 0 is\nreturned.\n", + "restrictions": " none\n", + "related": "[if ](https://docs.lammps.org/if.html)\n" }, { "command": [ - "angle_style cosine/squared", - "angle_style cosine/squared/omp" + "pair_style coul/diel", + "pair_style coul/diel/omp" ], "syntax": [ - "angle_style cosine/squared" + "pair_style coul/diel cutoff" ], "args": [ [ { - "arg": "angle_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "cosine/squared", + "arg": "coul/diel", "type": 3, "choices": [ - "cosine/squared", - "cosine/squared/omp" + "coul/diel", + "coul/diel/omp" ] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine/squared\nangle_coeff 2*4 75.0 100.0\n```\n", - "html_filename": "angle_cosine_squared.html", - "short_description": "The *cosine/squared* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2\\]\n, which is commonly used in the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor", - "description": "The *cosine/squared* angle style uses the potential\n\\[\n E = K [\\cos(\\theta) - \\cos(\\theta_0)]^2\\]\n, which is commonly used in the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field,\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\)\nis a prefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nSee **cosine-Mayo** for a description of the DREIDING force field.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(cosine-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "cutoff = global cutoff (distance units) \n", + "examples": "\n```lmps\npair_style coul/diel 3.5\npair_coeff 1 4 78. 1.375 0.112\n```\n", + "html_filename": "pair_coul_diel.html", + "short_description": "Style *coul/diel* computes a Coulomb correction for implicit solvent\nion interactions in which the dielectric permittivity is distance dependent", + "description": "Style *coul/diel* computes a Coulomb correction for implicit solvent\nion interactions in which the dielectric permittivity is distance dependent.\nThe dielectric permittivity epsilon_D(r) connects to limiting regimes:\nOne limit is defined by a small dielectric permittivity (close to vacuum)\nat or close to contact separation between the ions. At larger separations\nthe dielectric permittivity reaches a bulk value used in the regular Coulomb\ninteraction coul/long or coul/cut.\nThe transition is modeled by a hyperbolic function which is incorporated\nin the Coulomb correction term for small ion separations as follows\n\\[\\begin{align*} \n E = & \\frac{Cq_iq_j}{\\epsilon r} \\left( \\frac{\\epsilon}{\\epsilon_D(r)}-1\\right) \\qquad r < r_c \\\\\n \\epsilon_D(r) = & \\frac{5.2+\\epsilon}{2} + \\frac{\\epsilon-5.2}{2}\\tanh\\left(\\frac{r-r_{me}}{\\sigma_e}\\right) \\end{align*} \\]\nwhere \\(r_{me}\\) is the inflection point of \\(\\epsilon_D(r)\\) and \\(\\sigma_e\\) is a slope\ndefining length scale. C is the same Coulomb conversion factor as in the\npair_styles coul/cut, coul/long, and coul/debye. In this way the Coulomb\ninteraction between ions is corrected at small distances r. The lower\nlimit of epsilon_D(r->0)=5.2 due to dielectric saturation **Stiles**\nwhile the Coulomb interaction reaches its bulk limit by setting\n\\(\\epsilon_D(r \\to \\infty) = \\epsilon\\), the bulk value of the solvent which is 78\nfor water at 298K.\n\nExamples of the use of this type of Coulomb interaction include implicit\nsolvent simulations of salt ions\n**Lenart1** and of ionic surfactants **Jusufi1**.\nNote that this potential is only reasonable for implicit solvent simulations\nand in combination with coul/cut or coul/long. It is also usually combined\nwith gauss/cut, see **Lenart1** or **Jusufi1**.\n\nThe following coefficients must be defined for each pair of atom\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (no units)\n* \\(r_{me}\\) (distance units)\n* \\(\\sigma_e\\) (distance units)\n\nThe global cutoff (\\(r_c\\)) specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support parameter mixing. Coefficients must\nbe given explicitly for each type of particle pairs.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Gauss-potential portion of the pair\ninteraction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Stiles)** Stiles , Hubbard, and Kayser, J Chem Phys, 77,\n6189 (1982). \n \n**(Lenart1)** Lenart , Jusufi, and Panagiotopoulos, J Chem Phys, 126,\n044509 (2007). \n \n**(Jusufi1)** Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,\n13783 (2008). \n ", + "restrictions": "This style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair_style gauss/cut ](https://docs.lammps.org/pair_gauss.html)\n" }, { "command": [ - "compute property/grid" + "pair_style lj/cut/sphere" ], "syntax": [ - "compute ID group-ID property/grid Nx Ny Nz input1 input2 ..." + "pair_style style args" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = lj/cut/sphere\n* args = list of arguments for a particular style \n *      lj/cut/sphere args = cutoff ratio \n       cutoff = global cutoff ratio for Lennard Jones interactions (unitless) \n", + "examples": "\n```lmps\npair_style lj/cut/sphere 2.5\npair_coeff * * 1.0\npair_coeff 1 1 1.1 2.8\n```\n", + "html_filename": "pair_lj_cut_sphere.html", + "short_description": "\nThe *lj/cut/sphere* style compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma_{ij}}{r}\\right)^{12} -\n \\left(\\frac{\\sigma_{ij}}{r}\\right)^6 \\right] \\qquad r < r_c * \\sigma_{ij}\\]\n\\(r_c\\) is the cutoff ratio", + "description": "\nThe *lj/cut/sphere* style compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma_{ij}}{r}\\right)^{12} -\n \\left(\\frac{\\sigma_{ij}}{r}\\right)^6 \\right] \\qquad r < r_c * \\sigma_{ij}\\]\n\\(r_c\\) is the cutoff ratio.\n\nThis is the same potential function used by the [lj/cut](https://docs.lammps.org/pair_lj.html) pair style, but the \\(\\sigma_{ij}\\) parameter is not\nset as a per-type parameter via the [pair_coeff command](https://docs.lammps.org/pair_coeff.html). Instead it is calculated individually for each pair\nusing the per-atom diameter attribute of [atom_style sphere](https://docs.lammps.org/atom_style.html) for the two atoms as \\(\\sigma_{i}\\) and\n\\(\\sigma_{j}\\); \\(\\sigma_{ij}\\) is then computed by the mixing\nrule for pair coefficients as set by the [pair_modify mix](https://docs.lammps.org/pair_modify.html) command (defaults to geometric mixing). The cutoff is\nnot specified as a distance, but as ratio that is internally\nmultiplied by \\(\\sigma_{ij}\\) to obtain the actual cutoff for each\npair of atoms.\n\nNote that \\(\\sigma_{ij}\\) is defined in the LJ formula above as the\nzero-crossing distance for the potential, *not* as the energy minimum which\nis at \\(2^{\\frac{1}{6}} \\sigma_{ij}\\).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on cutoffs, neighbor lists, and efficiency \n >If your system is mildly polydisperse, meaning the ratio of the\n > diameter of the largest particle to the smallest is less than 2.0,\n > then the neighbor lists built by the code should be reasonably\n > efficient. Which means they will not contain too many particle\n > pairs that do not interact. However, if your system is highly\n > polydisperse (ratio > 2.0), the neighbor list build and force\n > computations may be inefficient. There are two ways to try and\n > speed up the simulations.\n >\n > The first is to assign atoms to different atom types so that atoms of\n > each type are similar in size. E.g. if particle diameters range from\n > 1 to 5 use 4 atom types, ensuring atoms of type 1 have diameters from\n > 1.0-2.0, type 2 from 2.0-3.0, etc. This will reduce the number of\n > non-interacting pairs in the neighbor lists and thus reduce the time\n > spent on computing pairwise interactions.\n >\n > The second is to use the [neighbor multi ](https://docs.lammps.org/neighbor.html) command\n > which enabled a different algorithm for building neighbor lists. This\n > will also require that you assign multiple atom types according to\n > diameters, but will in addition use a more efficient size-dependent\n > strategy to construct the neighbor lists and thus reduce the time\n > spent on building neighbor lists.\n >\n > Here are example input script commands using both ideas for a\n > highly polydisperse system:\n >\n > >\n > units lj\n > atom_style sphere\n > lattice fcc 0.8442\n > region box block 0 10 0 10 0 10\n > create_box 2 box\n > create_atoms 1 box\n >\n > # create atoms with random diameters from bimodal distribution\n > variable switch atom random(0.0,1.0,345634)\n > variable diam atom (v_switch<0.75)*normal(0.4,0.075,325)+(v_switch>=0.7)*normal(1.2,0.2,453)\n > set group all diameter v_diam\n >\n > # assign type 2 to atoms with diameter > 0.6\n > variable large atom (2.0*radius)>0.6\n > group large variable large\n > set group large type 2\n >\n > pair_style lj/cut/sphere 2.5\n > pair_coeff * * 1.0\n >\n > neighbor 0.3 multi\n >\n > Using multiple atom types speeds up the calculation for this example\n > by more than a factor of 2, and using the multi-style neighbor list\n > build causes an additional speedup of about 20 percent. \n > \n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* LJ cutoff ratio (unitless) (optional)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff ratio specified in the [pair_style command ](https://docs.lammps.org/pair_style.html) is\nused.\n\nIf a repulsive only LJ interaction is desired, the coefficient for the cutoff\nratio should be set to the minimum of the LJ potential using ``$(2.0^(1.0/6.0))``\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon coefficients and cutoff\nratio for the *lj/cut/sphere* pair style can be mixed. The default mixing\nstyle is *geometric*. See the [pair_modify command ](https://docs.lammps.org/pair_modify.html)\nfor details.\n\nThe *lj/cut/sphere* pair style supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for the energy of the Lennard-Jones portion of the pair interaction.\n\nThe *lj/cut/sphere* pair style does *not* support the [pair_modify](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range tail corrections to\nthe energy and pressure.\n\nThe *lj/cut/sphere* pair style writes its information to [binaryrestart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not\nneed to be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does *not* support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "The *lj/cut/sphere* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n\nThe *lj/cut/sphere* pair style does not support the *sixthpower* mixing rule.\n\n----------\n", + "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n* [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\n* [pair_style lj/expnd/sphere ](https://docs.lammps.org/pair_lj_expand_sphere.html)\n" +}, +{ + "command": [ + "compute ke/rigid" + ], + "syntax": [ + "compute ID group-ID ke/rigid fix-ID" + ], + "args": [ + [ { - "arg": "property/grid", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "Nx", - "type": 2, - "choices": [] - }, - { - "arg": "Ny", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "Nz", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "input1", - "type": 2, + "arg": "ke/rigid", + "type": 1, "choices": [] }, { - "arg": "input2", + "arg": "fix-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/grid = style name of this compute command\n* Nx, Ny, Nz = grid size in each dimension\n* input1,etc = one or more attributes \n *        attributes = id, ix, iy, iz, x, y, z, xs, ys, zs, xc, yc, zc, xsc, ysc, zsc \n         id = ID of grid cell, x fastest, y next, z slowest \n         proc = processor ID (0 to Nprocs-1) which owns the grid cell \n         ix,iy,iz = grid indices in each dimension (1 to N inclusive) \n         x,y,z = coords of lower left corner of grid cell \n         xs,ys,zs = scaled coords of lower left corner of grid cell (0.0 to 1.0) \n         xc,yc,zc = coords of center point of grid cell \n         xsc,ysc,zsc = scaled coords of center point of grid cell (0.0 to 1.0) \n", - "examples": "\n```lmps\ncompute 1 all property/grid 10 10 20 id ix iy iz\ncompute 1 all property/grid 100 100 1 id xc yc zc\n```\n", - "html_filename": "compute_property_grid.html", - "short_description": "Define a computation that stores the specified attributes of a\ndistributed grid", - "description": "Define a computation that stores the specified attributes of a\ndistributed grid. In LAMMPS, distributed grids are regular 2d or 3d\ngrids which overlay a 2d or 3d simulation domain. Each processor owns\nthe grid cells whose center points lie within its subdomain. See the\n[Howto grid ](https://docs.lammps.org/Howto_grid.html) doc page for details of how distributed\ngrids can be defined by various commands and referenced.\n\nThis compute stores the specified attributes of grids as per-grid data\nso they can be accessed by other [output commands ](https://docs.lammps.org/Howto_output.html)\nsuch as [dump grid ](https://docs.lammps.org/dump.html).\n\n*Nx*, *Ny*, and *Nz* define the size of the grid. For a 2d simulation\n*Nz* must be 1. When this compute is used by [dump grid ](https://docs.lammps.org/dump.html),\nto output per-grid values from other computes of fixes, the grid size\nspecified for this command must be consistent with the grid sizes\nused by the other commands.\n\nThe *id* attribute is the grid ID for each grid cell. For a global\ngrid of size Nx by Ny by Nz (in 3d simulations) the grid IDs range\nfrom 1 to Nx*Ny*Nz. They are ordered with the X index of the 3d grid\nvarying fastest, then Y, then Z slowest. For 2d grids (in 2d\nsimulations), the grid IDs range from 1 to Nx*Ny, with X varying\nfastest and Y slowest.\n\nThe *proc* attribute is the ID of the processor which owns the grid\ncell. Processor IDs range from 0 to Nprocs - 1, where Nprocs is the\nnumber of processors the simulation is running on. Each grid cell is\nowned by a single processor.\n\nThe *ix*, *iy*, *iz* attributes are the indices of a grid cell in\neach dimension. They range from 1 to Nx inclusive in the X dimension,\nand similar for Y and Z.\n\nThe *x*, *y*, *z* attributes are the coordinates of the lower left\ncorner point of each grid cell.\n\nThe *xs*, *ys*, *zs* attributes are also coordinates of the lower left\ncorner point of each grid cell, except in scaled coordinates, where\nthe lower-left corner of the entire simulation box is (0,0,0) and the\nupper right corner is (1,1,1).\n\nThe *xc*, *yc*, *zc* attributes are the coordinates of the center\npoint of each grid cell.\n\nThe *xsc*, *ysc*, *zsc* attributes are also coordinates of the center\npoint each grid cell, except in scaled coordinates, where the\nlower-left corner of the entire simulation box is (0,0,0) and the upper\nright corner is (1,1,1).\n\nFor [triclinic simulation boxes ](https://docs.lammps.org/Howto_triclinic.html), the grid\npoint coordinates for (x,y,z) and (xc,yc,zc) will reflect the\ntriclinic geometry. For (xs,yz,zs) and (xsc,ysc,zsc), the coordinates\nare the same for orthogonal versus triclinic boxes.\n\n #### Output info\n\nThis compute calculates a per-grid vector or array depending on the\nnumber of input values. The length of the vector or number of array\nrows (distributed across all processors) is Nx * Ny * Nz. For access\nby other commands, the name of the single grid produced by this\ncommand is \"grid\". The name of its per-grid data is \"data\".\n\nThe (x,y,z) and (xc,yc,zc) coordinates are in distance [units](https://docs.lammps.org/units.html).\n", - "restrictions": "For 2d simulations, the attributes which refer to\nthe Z dimension cannot be used.\n", - "related": "[dump grid ](https://docs.lammps.org/dump.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke = style name of this compute command\n* fix-ID = ID of rigid body fix \n", + "examples": "\n```lmps\ncompute 1 all ke/rigid myRigid\n```\n", + "html_filename": "compute_ke_rigid.html", + "short_description": "Define a computation that calculates the translational kinetic energy\nof a collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants", + "description": "Define a computation that calculates the translational kinetic energy\nof a collection of rigid bodies, as defined by one of the\n[fix rigid ](https://docs.lammps.org/fix_rigid.html) command variants.\n\nThe kinetic energy of each rigid body is computed as\n\\(\\frac12 M V_\\text{cm}^2\\),\nwhere \\(M\\) is the total mass of the rigid body, and \\(V_\\text{cm}\\)\nis its center-of-mass velocity.\n\nThe *fix-ID* should be the ID of one of the [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommands which defines the rigid bodies. The group specified in the\ncompute command is ignored. The kinetic energy of all the rigid\nbodies defined by the fix rigid command in included in the\ncalculation.\n\n #### Output info\n\nThis compute calculates a global scalar (the summed KE of all the\nrigid bodies). This value can be used by any command that uses a\nglobal scalar value from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute erotate/rigid ](https://docs.lammps.org/compute_erotate_rigid.html)\n" }, { "command": [ - "fix atc" + "fix pafi" ], "syntax": [ - "fix atc " + "fix ID group-ID pafi compute-ID Temp Tdamp seed keyword values..." ], "args": [ [ @@ -29145,155 +28067,169 @@ export const command_docs = [ "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "atc", + "arg": "pafi", "type": 1, "choices": [] }, { - "arg": "field", + "arg": "compute-ID", + "type": 2, + "choices": [] + }, + { + "arg": "Temp", + "type": 2, + "choices": [] + }, + { + "arg": "Tdamp", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "com", "type": 3, "choices": [ - "thermal", - "two_temperature", - "hardy", - "field" + "overdamped", + "com" ] }, { - "arg": "", + "arg": "values...", "type": 2, "choices": [] } ] ], - "parameters": "* fixID = name of fix\n* group = name of group fix is to be applied\n* type = thermal or two_temperature or hardy or field \n *     thermal = thermal coupling with fields: temperature \n *     two_temperature = electron-phonon coupling with field: temperature and electron_temperature \n *     hardy = on-the-fly post-processing using kernel localization functions \n *     field = on-the-fly post-processing using mesh-based localization functions \n* parameter_file = name of the file with material parameters. Note: Neither hardy nor field requires a parameter file \n", - "examples": "\n```lmps\nfix AtC internal atc thermal Ar_thermal.dat\nfix AtC internal atc two_temperature Ar_ttm.mat\nfix AtC internal atc hardy\nfix AtC internal atc field\n```\n", - "html_filename": "fix_atc.html", - "short_description": "This fix is the beginning to creating a coupled FE/MD simulation and/or\nan on-the-fly estimation of continuum fields", - "description": "This fix is the beginning to creating a coupled FE/MD simulation and/or\nan on-the-fly estimation of continuum fields. The coupled versions of\nthis fix do Verlet integration and the post-processing does not. After\ninstantiating this fix, several other fix_modify commands will be\nneeded to set up the problem (i.e., define the finite element mesh and\nprescribe initial and boundary conditions).\n\n ![Image](JPG/atc_nanotube.jpg) \n\nThe following coupling example is typical, but non-exhaustive:\n\n```lmps\n# ... commands to create and initialize the MD system\n\n# initial fix to designate coupling type and group to apply it to\n# tag group physics material_file\nfix AtC internal atc thermal Ar_thermal.mat\n\n# create a uniform 12 x 2 x 2 mesh that covers region contain the group\n# nx ny nz region periodicity\nfix_modify AtC mesh create 12 2 2 mdRegion f p p\n\n# specify the control method for the type of coupling\n# physics control_type\nfix_modify AtC thermal control flux\n\n# specify the initial values for the empirical field \"temperature\"\n# field node_group value\nfix_modify AtC initial temperature all 30\n\n# create an output stream for nodal fields\n# filename output_frequency\nfix_modify AtC output atc_fe_output 100\n\nrun 1000\n```\nlikewise for this post-processing example:\n\n```lmps\n# ... commands to create and initialize the MD system\n\n# initial fix to designate post-processing and the group to apply it to\n# no material file is allowed nor required\nfix AtC internal atc hardy\n\n# for hardy fix, specific kernel function (function type and range) to # be used as a localization function\nfix AtC kernel quartic_sphere 10.0\n\n# create a uniform 1 x 1 x 1 mesh that covers region contain the group\n# with periodicity this effectively creates a system average\nfix_modify AtC mesh create 1 1 1 box p p p\n\n# change from default lagrangian map to eulerian\n# refreshed every 100 steps\nfix_modify AtC atom_element_map eulerian 100\n\n# start with no field defined\n# add mass density, potential energy density, stress and temperature\nfix_modify AtC fields add density energy stress temperature\n\n# create an output stream for nodal fields\n# filename output_frequency\nfix_modify AtC output nvtFE 100 text\n\nrun 1000\n```\nthe mesh's linear interpolation functions can be used as the localization function\nby using the field option:\n\n```lmps\nfix AtC internal atc field\nfix_modify AtC mesh create 1 1 1 box p p p\n...\n```\nNote coupling and post-processing can be combined in the same simulations using separate fixes.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is not supported by\nthis fix, but this fix does add the kinetic energy imparted to atoms\nby the momentum coupling mode of the AtC package to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html).\n\nAdditional [fix_modify ](https://docs.lammps.org/fix_modify.html) options relevant to this\nfix are listed below.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\ndiscussed in the previous paragraph. The scalar value is \"extensive\".\n\nNo parameter of this fix can be used with the\n*start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This fix is not\ninvoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "Thermal and two_temperature (coupling) types use a Verlet\ntime-integration algorithm. The hardy type does not contain its own\ntime-integrator and must be used with a separate fix that does contain\none (e.g., nve, nvt). In addition, currently:\n\n* the coupling is restricted to thermal physics\n* the FE computations are done in serial on each processor.\n\n.. _atc_fix_modify:\n", - "related": "After specifying this fix in your input script, several\n[fix_modify AtC ](https://docs.lammps.org/fix_modify.html) commands are used to setup the\nproblem (e.g., define the finite element mesh and prescribe initial and\nboundary conditions). Each of these options has its own doc page.\n\n*fix_modify* commands for setup:\n\n* [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n* [fix_modify AtC mesh quadrature ](https://docs.lammps.org/atc_mesh_quadrature.html)\n* [fix_modify AtC mesh read ](https://docs.lammps.org/atc_mesh_read.html)\n* [fix_modify AtC mesh write ](https://docs.lammps.org/atc_mesh_write.html)\n* [fix_modify AtC mesh create_nodeset ](https://docs.lammps.org/atc_mesh_create_nodeset.html)\n* [fix_modify AtC mesh add_to_nodeset ](https://docs.lammps.org/atc_mesh_add_to_nodeset.html)\n* [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n* [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n* [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n* [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n* [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n* [fix_modify AtC boundary type ](https://docs.lammps.org/atc_boundary_type.html)\n* [fix_modify AtC internal_quadrature ](https://docs.lammps.org/atc_internal_quadrature.html)\n* [fix_modify AtC time_integration ](https://docs.lammps.org/atc_time_integration.html)\n* [fix_modify AtC extrinsic electron_integration ](https://docs.lammps.org/atc_electron_integration.html)\n* [fix_modify AtC internal_element_set ](https://docs.lammps.org/atc_internal_element_set.html)\n* [fix_modify AtC decomposition ](https://docs.lammps.org/atc_decomposition.html)\n\n*fix_modify* commands for boundary and initial conditions:\n\n* [fix_modify AtC initial ](https://docs.lammps.org/atc_initial.html)\n* [fix_modify AtC fix ](https://docs.lammps.org/atc_fix.html)\n* [fix_modify AtC unfix ](https://docs.lammps.org/atc_unfix.html)\n* [fix_modify AtC fix_flux ](https://docs.lammps.org/atc_fix_flux.html)\n* [fix_modify AtC unfix_flux ](https://docs.lammps.org/atc_unfix_flux.html)\n* [fix_modify AtC source ](https://docs.lammps.org/atc_source.html)\n* [fix_modify AtC remove_source ](https://docs.lammps.org/atc_remove_source.html)\n\n*fix_modify* commands for control and filtering:\n\n* [fix_modify AtC control thermal ](https://docs.lammps.org/atc_control_thermal.html)\n* [fix_modify AtC control momentum ](https://docs.lammps.org/atc_control_momentum.html)\n* [fix_modify AtC control localized_lambda ](https://docs.lammps.org/atc_control_localized_lambda.html)\n* [fix_modify AtC control lumped_lambda_solve ](https://docs.lammps.org/atc_lumped_lambda_solve.html)\n* [fix_modify AtC control mask_direction ](https://docs.lammps.org/atc_mask_direction.html)\n* [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n* [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n* [fix_modify AtC filter type ](https://docs.lammps.org/atc_filter_type.html)\n* [fix_modify AtC equilibrium_start ](https://docs.lammps.org/atc_equilibrium_start.html)\n* [fix_modify AtC extrinsic exchange ](https://docs.lammps.org/atc_extrinsic_exchange.html)\n* [fix_modify AtC poisson_solver ](https://docs.lammps.org/atc_poisson_solver.html)\n\n*fix_modify* commands for output:\n\n* [fix_modify AtC output ](https://docs.lammps.org/atc_output.html)\n* [fix_modify AtC output nodeset ](https://docs.lammps.org/atc_output_nodeset.html)\n* [fix_modify AtC output volume_integral ](https://docs.lammps.org/atc_output_volume_integral.html)\n* [fix_modify AtC output boundary_integral ](https://docs.lammps.org/atc_output_boundary_integral.html)\n* [fix_modify AtC output contour_integral ](https://docs.lammps.org/atc_output_contour_integral.html)\n* [fix_modify AtC mesh output ](https://docs.lammps.org/atc_mesh_output.html)\n* [fix_modify AtC write_restart ](https://docs.lammps.org/atc_write_restart.html)\n* [fix_modify AtC read_restart ](https://docs.lammps.org/atc_read_restart.html)\n\n*fix_modify* commands for post-processing:\n\n* [fix_modify AtC kernel ](https://docs.lammps.org/atc_hardy_kernel.html)\n* [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n* [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n* [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n* [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n* [fix_modify AtC on_the_fly ](https://docs.lammps.org/atc_hardy_on_the_fly.html)\n* [fix_modify AtC pair/bond_interactions ](https://docs.lammps.org/atc_pair_interactions.html)\n* [fix_modify AtC sample_frequency ](https://docs.lammps.org/atc_sample_frequency.html)\n* [fix_modify AtC set ](https://docs.lammps.org/atc_set_reference_pe.html)\n\nmiscellaneous *fix_modify* commands:\n\n* [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n* [fix_modify AtC atom_weight ](https://docs.lammps.org/atc_atom_weight.html)\n* [fix_modify AtC write_atom_weights ](https://docs.lammps.org/atc_write_atom_weights.html)\n* [fix_modify AtC kernel_bandwidth ](https://docs.lammps.org/atc_kernel_bandwidth.html)\n* [fix_modify AtC reset_time ](https://docs.lammps.org/atc_reset_time.html)\n* [fix_modify AtC reset_atomic_reference_positions ](https://docs.lammps.org/atc_reset_atomic_reference.html)\n* [fix_modify AtC fe_md_boundary ](https://docs.lammps.org/atc_fe_md_boundary.html)\n* [fix_modify AtC boundary_faceset ](https://docs.lammps.org/atc_boundary_faceset.html)\n* [fix_modify AtC consistent_fe_initialization ](https://docs.lammps.org/atc_consistent_fe_initialization.html)\n* [fix_modify AtC mass_matrix ](https://docs.lammps.org/atc_mass_matrix.html)\n* [fix_modify AtC material ](https://docs.lammps.org/atc_material.html)\n* [fix_modify AtC atomic_charge ](https://docs.lammps.org/atc_atomic_charge.html)\n* [fix_modify AtC source_integration ](https://docs.lammps.org/atc_source_integration.html)\n* [fix_modify AtC temperature_definition ](https://docs.lammps.org/atc_temperature_definition.html)\n* [fix_modify AtC track_displacement ](https://docs.lammps.org/atc_track_displacement.html)\n* [fix_modify AtC boundary_dynamics ](https://docs.lammps.org/atc_boundary_dynamics.html)\n* [fix_modify AtC add_species ](https://docs.lammps.org/atc_add_species.html)\n* [fix_modify AtC add_molecule ](https://docs.lammps.org/atc_add_molecule.html)\n* [fix_modify AtC remove_species ](https://docs.lammps.org/atc_remove_species.html)\n* [fix_modify AtC remove_molecule ](https://docs.lammps.org/atc_remove_molecule.html)\n\nNote: a set of example input files with the attendant material files\nare included in the ``examples/PACKAGES/atc`` folders.\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* pafi = style name of this fix command\n* compute-ID = ID of a [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) that holds data used by this fix\n* Temp = desired temperature (temperature units)\n* Tdamp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* keyword = overdamped or com \n *        overdamped value = yes or no or 1 or 0 \n         yes or 1 = Brownian (overdamped) integration in hyperplane \n         no or 0 = Langevin integration in hyperplane \n *        com value = yes or no or 1 or 0 \n         yes or 1 = zero linear momentum, fixing center or mass (recommended) \n         no or 0 = do not zero linear momentum, allowing center of mass drift \n", + "examples": "\n```lmps\ncompute pa all property/atom d_nx d_ny d_nz d_dnx d_dny d_dnz d_ddnx d_ddny d_ddnz\nrun 0 post no\nfix hp all pafi pa 500.0 0.01 434 overdamped yes\n```\n", + "html_filename": "fix_pafi.html", + "short_description": "Perform Brownian or Langevin integration whilst constraining the system to lie\nin some hyperplane, which is expected to be the tangent plane to some reference\npathway in a solid state system", + "description": "Perform Brownian or Langevin integration whilst constraining the system to lie\nin some hyperplane, which is expected to be the tangent plane to some reference\npathway in a solid state system. The instantaneous value of a modified force\nprojection is also calculated, whose time integral can be shown to be equal to\nthe true free energy gradient along the minimum free energy path local to the reference pathway.\nA detailed discussion of the projection technique can be found in **Swinburne**.\n\nThis fix can be used with LAMMPS as demonstrated in examples/PACKAGES/pafi,\nthough it is primarily intended to be coupled with the PAFI C++ code, developed\nat [https://github.com/tomswinburne/pafi](https://github.com/tomswinburne/pafi),\nwhich distributes multiple LAMMPS workers in parallel to compute and collate\nhyperplane-constrained averages, allowing the calculation of free energy barriers and pathways.\n\nA [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) must be provided with 9 fields per atom coordinate,\nwhich in order are the x,y,z coordinates of a configuration on the reference path,\nthe x,y,z coordinates of the path tangent (derivative of path position with path coordinate)\nand the x,y,z coordinates of the change in tangent (derivative of path tangent with path coordinate).\n\nA 4-element vector is also calculated by this fix. The 4 components are the\nmodified projected force, its square, the expected projection of the minimum\nfree energy path tangent on the reference path tangent and the minimum image\ndistance between the current configuration and the reference configuration,\nprojected along the path tangent. This latter value should be essentially zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When com=yes/1, which is recommended, the provided tangent vector must also\n > have zero center of mass. This can be achieved by subtracting from each\n > coordinate of the path tangent the average x,y,z value. The PAFI C++ code\n > (see above) can generate these paths for use in LAMMPS. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When overdamped=yes/1, the Tdamp parameter should be around 5-10 times smaller\n > than that used in typical Langevin integration.\n > See [fix langevin ](https://docs.lammps.org/fix_langevin.html) for typical values. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix produces a global vector each timestep which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\n**(Swinburne)** Swinburne and Marinica, Physical Review Letters, 120, 1 (2018) \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "none" }, { "command": [ - "fix oneway" + "fix_modify AtC mesh quadrature" ], "syntax": [ - "fix ID group-ID oneway N region-ID direction" + "fix_modify mesh quatrature " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "oneway", + "arg": "mesh", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "region-ID", - "type": 2, + "arg": "quatrature", + "type": 1, "choices": [] }, { - "arg": "z", + "arg": "", "type": 3, "choices": [ - "x", - "-x", - "y", - "-y", - "z" + "nodal", + "gauss1", + "gauss2", + "gauss3", + "face" ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* oneway = style name of this fix command\n* N = apply this fix every this many timesteps\n* region-ID = ID of region where fix is active\n* direction = x or -x or y or -y or z or -z = coordinate and direction of the oneway constraint \n", - "examples": "\n```lmps\nfix 1 ions oneway 10 semi -x\nfix 2 all oneway 1 left -z\nfix 3 all oneway 1 right z\n```\n", - "html_filename": "fix_oneway.html", - "short_description": "Enforce that particles in the group and in a given region can only\nmove in one direction", - "description": "Enforce that particles in the group and in a given region can only\nmove in one direction. This is done by reversing a particle's\nvelocity component, if it has the wrong sign in the specified\ndimension. The effect is that the particle moves in one direction\nonly.\n\nThis can be used, for example, as a simple model of a semi-permeable\nmembrane, or as an implementation of Maxwell's demon.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) command\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh quadrature = name of the AtC sub-command\n* quad = nodal or gauss1 or gauss2 or gauss3 or face \n", + "examples": "\n```lmps\nfix_modify AtC mesh quadrature face\n```\n", + "html_filename": "atc_mesh_quadrature.html", + "short_description": "(Re-)assigns the quadrature style for an existing mesh", + "description": "(Re-)assigns the quadrature style for an existing mesh. When a mesh is\ncreated its quadrature method defaults to gauss2. Use this call to\nchange it after the fact.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n" }, { "command": [ - "print" + "fix_modify AtC output nodeset" ], "syntax": [ - "print string keyword value" + "fix_modify output nodeset " ], "args": [ [ { - "arg": "print", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "string", + "arg": "", "type": 2, "choices": [] }, { - "arg": "universe", - "type": 3, - "choices": [ - "file", - "append", - "screen", - "universe" - ] + "arg": "output", + "type": 1, + "choices": [] }, { - "arg": "value", + "arg": "nodeset", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* string = text string to print, which may contain variables\n* zero or more keyword/value pairs may be appended\n* keyword = file or append or screen or universe \n *        file value = filename \n *        append value = filename \n *        screen value = yes or no \n *        universe value = yes or no \n", - "examples": "\n```lmps\nprint \"Done with equilibration\" file info.dat\nprint Vol=$v append info.dat screen no\nprint \"The system volume is now $v\"\nprint 'The system volume is now $v'\nprint \"NEB calculation 1 complete\" screen no universe yes\nprint \"\"\"\nSystem volume = $v\n #### System temperature = $t\n```\n", - "html_filename": "print.html", - "short_description": "Print a text string to the screen and logfile", - "description": "Print a text string to the screen and logfile. The text string must\nbe a single argument, so if it is one line but more than one word, it\nshould be enclosed in single or double quotes. To generate multiple\nlines of output, the string can be enclosed in triple quotes, as in\nthe last example above. If the text string contains variables, they\nwill be evaluated and their current values printed.\n\n **New in version 15Jun2023** \n\n support for vector style variables\nSee the [variable ](https://docs.lammps.org/variable.html) command for a description of\n*equal* and *vector* style variables which are typically the most\nuseful ones to use with the print command. Equal- and vector-style\nvariables can calculate formulas involving mathematical operations,\natom properties, group properties, thermodynamic properties, global\nvalues calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html),\nor references to other [variables ](https://docs.lammps.org/variable.html). Vector-style\nvariables are printed in a bracketed, comma-separated format,\ne.g. [1,2,3,4] or [12.5,2,4.6,10.1].\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, the text string can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on the [variable > ](https://docs.lammps.org/variable.html) doc page. This is a convenient way to evaluate a\n > formula immediately without using the variable command to define a\n > named variable and then use that variable in the text string. The\n > formula can include a trailing colon and format string which\n > determines the precision with which the numeric value is output.\n > This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nIf you want the print command to be executed multiple times (with\nchanging variable values), there are 3 options. First, consider using\nthe [fix print ](https://docs.lammps.org/fix_print.html) command, which will print a string\nperiodically during a simulation. Second, the print command can be\nused as an argument to the *every* option of the [run ](https://docs.lammps.org/run.html)\ncommand. Third, the print command could appear in a section of the\ninput script that is looped over (see the [jump ](https://docs.lammps.org/jump.html) and\n[next ](https://docs.lammps.org/next.html) commands).\n\nIf the *file* or *append* keyword is used, a filename is specified to\nwhich the output will be written. If *file* is used, then the\nfilename is overwritten if it already exists. If *append* is used,\nthen the filename is appended to if it already exists, or created if\nit does not exist.\n\nIf the *screen* keyword is used, output to the screen and logfile can\nbe turned on or off as desired.\n\nIf the *universe* keyword is used, output to the global screen and\nlogfile can be turned on or off as desired. In multi-partition\ncalculations, the *screen* option and the corresponding output only\napply to the screen and logfile of the individual partition.\n", - "restrictions": " none\n", - "related": "[fix print ](https://docs.lammps.org/fix_print.html), [variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output nodeset = name of the AtC sub-command\n* nodeset_name= name of nodeset to be operated on\n* operation = sum\n\n * sum = creates nodal sum over nodes in specified nodeset \n", + "examples": "\n```lmps\nfix_modify AtC output nodeset nset1 sum\n```\n", + "html_filename": "atc_output_nodeset.html", + "short_description": "Performs operation over the nodes belonging to specified nodeset and\noutputs resulting variable values to GLOBALS file", + "description": "Performs operation over the nodes belonging to specified nodeset and\noutputs resulting variable values to GLOBALS file.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" }, { "command": [ - "fix flow/gauss" + "fix brownian", + "fix brownian/sphere" ], "syntax": [ - "fix ID group-ID flow/gauss xflag yflag zflag keyword" + "fix ID group-ID style_name temp seed keyword args" ], "args": [ [ @@ -29313,61 +28249,64 @@ export const command_docs = [ "choices": [] }, { - "arg": "flow/gauss", - "type": 1, - "choices": [] - }, - { - "arg": "1", + "arg": "brownian/asphere", "type": 3, "choices": [ - "0", - "1" + "brownian", + "brownian/sphere", + "brownian/asphere" ] }, { - "arg": "1", - "type": 3, - "choices": [ - "0", - "1" - ] + "arg": "temp", + "type": 2, + "choices": [] }, { - "arg": "1", + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "planar_rotation", "type": 3, "choices": [ - "0", - "1" + "rng", + "dipole", + "gamma_r_eigen", + "gamma_t_eigen", + "gamma_r", + "gamma_t", + "rotation_temp", + "planar_rotation" ] }, { - "arg": "keyword", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* flow/gauss = style name of this fix command\n* xflag,yflag,zflag = 0 or 1 \n *          0 = do not conserve current in this dimension \n *          1 = conserve current in this dimension \n* zero or more keyword/value pairs may be appended\n* keyword = energy \n *        energy value = no or yes \n         no = do not compute work done by this fix \n         yes = compute work done by this fix \n", - "examples": "\n```lmps\nfix GD fluid flow/gauss 1 0 0\nfix GD fluid flow/gauss 1 1 1 energy yes\n```\n", - "html_filename": "fix_flow_gauss.html", - "short_description": "This fix implements the Gaussian dynamics (GD) method to simulate a\nsystem at constant mass flux **Strong**", - "description": "This fix implements the Gaussian dynamics (GD) method to simulate a\nsystem at constant mass flux **Strong**. GD is a\nnonequilibrium molecular dynamics simulation method that can be used\nto study fluid flows through pores, pipes, and channels. In its\noriginal implementation GD was used to compute the pressure required\nto achieve a fixed mass flux through an opening. The flux can be\nconserved in any combination of the directions, x, y, or z, using\nxflag,yflag,zflag. This fix does not initialize a net flux through a\nsystem, it only conserves the center-of-mass momentum that is present\nwhen the fix is declared in the input script. Use the\n[velocity ](https://docs.lammps.org/velocity.html) command to generate an initial center-of-mass\nmomentum.\n\nGD applies an external fluctuating gravitational field that acts as a\ndriving force to keep the system away from equilibrium. To maintain\nsteady state, a profile-unbiased thermostat must be implemented to\ndissipate the heat that is added by the driving force. [Computetemp/profile ](https://docs.lammps.org/compute_temp_profile.html) can be used to implement a\nprofile-unbiased thermostat.\n\nA common use of this fix is to compute a pressure drop across a pipe,\npore, or membrane. The pressure profile can be computed in LAMMPS with\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) and [fixave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), or with the hardy method in [fix atc](https://docs.lammps.org/fix_atc.html). Note that the simple [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) method is only accurate away from\ninhomogeneities in the fluid, such as fixed wall atoms. Further, the\ncomputed pressure profile must be corrected for the acceleration\napplied by GD before computing a pressure drop or comparing it to\nother methods, such as the pump method **Zhu**. The\npressure correction is discussed and described in **Strong**.\n\nFor a complete example including the considerations discussed\nabove, see the examples/PACKAGES/flow_gauss directory.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only the flux of the atoms in group-ID will be conserved. If the\n > velocities of the group-ID atoms are coupled to the velocities of\n > other atoms in the simulation, the flux will not be conserved. For\n > example, in a simulation with fluid atoms and harmonically constrained\n > wall atoms, if a single thermostat is applied to group *all*, the\n > fluid atom velocities will be coupled to the wall atom velocities, and\n > the flux will not be conserved. This issue can be avoided by\n > thermostatting the fluid and wall groups separately. \n > \n\nAdding an acceleration to atoms does work on the system. This added\nenergy can be optionally subtracted from the potential energy for the\nthermodynamic output (see below) to check that the timestep is small\nenough to conserve energy. Since the applied acceleration is\nfluctuating in time, the work cannot be computed from a potential. As\na result, computing the work is slightly more computationally\nexpensive than usual, so it is not performed by default. To invoke the\nwork calculation, use the *energy* keyword. The\n[fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option also invokes the work\ncalculation, and overrides an *energy no* setting here. If neither\n*energy yes* or *fix_modify energy yes* are set, the global scalar\ncomputed by the fix will return zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to check energy conservation, any other fixes that do\n > work on the system must have *fix_modify energy yes* set as well. This\n > includes thermostat fixes and any constraints that hold the positions\n > of wall atoms fixed, such as [fix spring/self ](https://docs.lammps.org/fix_spring_self.html). \n > \n\nIf this fix is used in a simulation with the [rRESPA ](https://docs.lammps.org/run_style.html)\nintegrator, the applied acceleration must be computed and applied at\nthe same rRESPA level as the interactions between the flowing fluid\nand the obstacle. The rRESPA level at which the acceleration is\napplied can be changed using the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*respa* option discussed below. If the flowing fluid and the obstacle\ninteract through multiple interactions that are computed at different\nrRESPA levels, then there must be a separate flow/gauss fix for each\nlevel. For example, if the flowing fluid and obstacle interact through\npairwise and long-range Coulomb interactions, which are computed at\nrRESPA levels 3 and 4, respectively, then there must be two separate\nflow/gauss fixes, one that specifies *fix_modify respa 3* and one with\n*fix_modify respa 4*.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy added by the fix to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows the user to set at which level of the [rRESPA](https://docs.lammps.org/run_style.html) integrator the fix computes and adds the external\nacceleration. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the negative of the work done on the\nsystem, see the discussion above. It is only calculated if the\n*energy* keyword is enabled or [fix_modify energy yes](https://docs.lammps.org/fix_modify.html) is set.\n\nThe vector is the total force that this fix applied to the group of\natoms on the current timestep. The scalar and vector values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Strong)** Strong and Eaves, J. Phys. Chem. B 121, 189 (2017). \n \n**(Zhu)** Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002). \n \n**(Strong)** Strong and Eaves, J. Phys. Chem. B 121, 189 (2017). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html),\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html),\n[velocity ](https://docs.lammps.org/velocity.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = brownian or brownian/sphere or brownian/asphere\n* temp = temperature\n* seed = random number generator seed\n* one or more keyword/value pairs may be appended\n* keyword = rng or dipole or gamma_r_eigen or gamma_t_eigen or gamma_r or gamma_t or rotation_temp or planar_rotation \n *      rng value = uniform or gaussian or none \n       uniform = use uniform random number generator \n       gaussian = use gaussian random number generator \n       none = turn off noise \n *      dipole value = mux and muy and muz for brownian/asphere \n       mux, muy, and muz = update orientation of dipole having direction (mux,muy,muz) in body frame of rigid body \n *      gamma_r_eigen values = gr1 and gr2 and gr3 for brownian/asphere \n       gr1, gr2, and gr3 = diagonal entries of body frame rotational friction tensor \n *      gamma_r values = gr for brownian/sphere \n       gr = magnitude of the (isotropic) rotational friction tensor \n *      gamma_t_eigen values = gt1 and gt2 and gt3 for brownian/asphere \n       gt1, gt2, and gt3 = diagonal entries of body frame translational friction tensor \n *      gamma_t values = gt for brownian and brownian/sphere \n       gt = magnitude of the (isotropic) translational friction tensor \n *      rotation_temp values = T for brownian/sphere and brownian/asphere \n       T = rotation temperature, which can be different then temp when out of equilibrium \n *      planar_rotation values = none (constrains rotational diffusion to be in xy plane if in 3D) \n", + "examples": "\n```lmps\nfix 1 all brownian 1.0 12908410 gamma_t 1.0\nfix 1 all brownian 1.0 12908410 gamma_t 3.0 rng gaussian\nfix 1 all brownian/sphere 1.0 1294019 gamma_t 3.0 gamma_r 1.0\nfix 1 all brownian/sphere 1.0 19581092 gamma_t 1.0 gamma_r 0.3 rng none\nfix 1 all brownian/asphere 1.0 1294019 gamma_t_eigen 1.0 2.0 3.0 gamma_r_eigen 4.0 7.0 8.0 rng gaussian\nfix 1 all brownian/asphere 1.0 1294019 gamma_t_eigen 1.0 2.0 3.0 gamma_r_eigen 4.0 7.0 8.0 dipole 1.0 0.0 0.0\n```\n", + "html_filename": "fix_brownian.html", + "short_description": "Perform Brownian Dynamics time integration to update position, velocity,\ndipole orientation (for spheres) and quaternion orientation (for\nellipsoids, with optional dipole update as well) of all particles in the\nfix group in each timestep", + "description": "Perform Brownian Dynamics time integration to update position, velocity,\ndipole orientation (for spheres) and quaternion orientation (for\nellipsoids, with optional dipole update as well) of all particles in the\nfix group in each timestep. Brownian Dynamics uses Newton's laws of\nmotion in the limit that inertial forces are negligible compared to\nviscous forces. The stochastic equation of motion for the center of mass\npositions is\n\\[\n d\\mathbf{r} = \\boldsymbol{\\gamma}_t^{-1}\\mathbf{F}dt\n + \\sqrt{2k_B T}\\boldsymbol{\\gamma}_t^{-1/2}d\\mathbf{W}_t,\\]\nin the lab-frame (i.e., \\(\\boldsymbol{\\gamma}_t\\) is not diagonal, but\nonly depends on orientation and so the noise is still additive).\n\nThe rotational motion for the spherical and ellipsoidal particles is not\nas simple an expression, but is chosen to replicate the Boltzmann\ndistribution for the case of conservative torques (see **Ilie1** or **Delong1**).\n\nFor the style *brownian*, only the positions of the particles are\nupdated. This is therefore suitable for point particle simulations.\n\nFor the style *brownian/sphere*, the positions of the particles are\nupdated, and a dipole slaved to the spherical orientation is also\nupdated. This style therefore requires the hybrid atom style\n[atom_style dipole ](https://docs.lammps.org/atom_style.html) and [atom_style sphere](https://docs.lammps.org/atom_style.html). The equation of motion for the dipole is\n\\[\n \\boldsymbol{\\mu}(t+dt) = \\frac{\\boldsymbol{\\mu}(t) + \\boldsymbol{\\omega} \\times \\boldsymbol{\\mu}dt\n }{|\\boldsymbol{\\mu}(t) + \\boldsymbol{\\omega} \\times \\boldsymbol{\\mu}|}\\]\nwhich correctly reproduces a Boltzmann distribution of orientations and\nrotational diffusion moments (see **Ilie1**) when\n\\[\n \\boldsymbol{\\omega} = \\frac{\\mathbf{T}}{\\gamma_r} + \\sqrt{\\frac{2 k_B T_{rot}}{\\gamma_r}\\frac{d\\mathbf{W}}{dt}},\\]\nwith \\(d\\mathbf{W}\\) being a random number with zero mean and variance \\(dt\\)\nand \\(T_{rot}\\) is *rotation_temp*.\n\nFor the style *brownian/asphere*, the center of mass positions and the\nquaternions of ellipsoidal particles are updated. This fix style is\nsuitable for equations of motion where the rotational and translational\nfriction tensors can be diagonalized in a certain (body) reference\nframe. In this case, the rotational equation of motion is updated via\nthe quaternion\n\\[\n \\mathbf{q}(t+dt) = \\frac{\\mathbf{q}(t) + d\\mathbf{q}}{\\lVert\\mathbf{q}(t) + d\\mathbf{q}\\rVert}\\]\nwhich correctly reproduces a Boltzmann distribution of orientations and rotational\ndiffusion moments [see **Ilie1**] when the quaternion step is given by\n\\[\n d\\mathbf{q} = \\boldsymbol{\\Psi}\\boldsymbol{\\omega}dt\\]\nwhere \\(\\boldsymbol{\\Psi}\\) has rows \\((-q_1,-q_2,-q_3)\\),\n\\((q_0,-q_3,q_2)\\), \\((q_3,q_0,-q_1)\\), and \\((-q_2,q_1,q_0)\\).\n\\(\\boldsymbol{\\omega}\\) is evaluated in the body frame of reference where the\nfriction tensor is diagonal. See **Delong1** for more details of\na similar algorithm.\n\n\n---------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This integrator does not by default assume a relationship between the\n > rotational and translational friction tensors, though such a\n > relationship should exist in the case of no-slip boundary conditions\n > between the particles and the surrounding (implicit) solvent. For example,\n > in the case of spherical particles, the condition\n > \\(\\gamma_t=3\\gamma_r/\\sigma^2\\) must be explicitly accounted for\n > by setting *gamma_t* to 3x and *gamma_r* to x (where \\(\\sigma\\)\n > is the sphere's diameter). A similar (though more complex)\n > relationship holds for ellipsoids and rod-like particles. The\n > translational diffusion and rotational diffusion are given by\n > *temp/gamma_t* and *rotation_temp/gamma_r*. \n > \n\n---------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Temperature computation using the [compute temp ](https://docs.lammps.org/compute_temp.html)\n > will not correctly compute the temperature of these overdamped dynamics\n > since we are explicitly neglecting inertial effects. Furthermore,\n > this time integrator does not add the stochastic terms or viscous\n > terms to the force and/or torques. Rather, they are just added in to\n > the equations of motion to update the degrees of freedom. \n > \n\n---------\n\n\nIf the *rng* keyword is used with the *uniform* value, then the noise\nis generated from a uniform distribution (see\n**Dunweg7** for why this works). This is the same method\nof noise generation as used in [fix_langevin ](https://docs.lammps.org/fix_langevin.html).\n\nIf the *rng* keyword is used with the *gaussian* value, then the noise\nis generated from a Gaussian distribution. Typically this added\ncomplexity is unnecessary, and one should be fine using the *uniform*\nvalue for reasons argued in **Dunweg7**.\n\nIf the *rng* keyword is used with the *none* value, then the noise\nterms are set to zero.\n\nThe *gamma_t* keyword sets the (isotropic) translational viscous damping.\nRequired for (and only compatible with) *brownian* and *brownian/sphere*.\nThe units of *gamma_t* are mass/time.\n\nThe *gamma_r* keyword sets the (isotropic) rotational viscous damping.\nRequired for (and only compatible with) *brownian/sphere*.\nThe units of *gamma_r* are mass*length**2/time.\n\nThe *gamma_r_eigen*, and *gamma_t_eigen* keywords are the eigenvalues of\nthe rotational and viscous damping tensors (having the same units as\ntheir isotropic counterparts). Required for (and only compatible with)\n*brownian/asphere*. For a 2D system, the first two values of\n*gamma_r_eigen* must be *inf* (only rotation in *x* --\\ *y* plane), and the third\nvalue of *gamma_t_eigen* must be *inf* (only diffusion in the *x* --\\ *y* plane).\n\nIf the *dipole* keyword is used, then the dipole moments of the particles\nare updated as described above. Only compatible with *brownian/asphere*\n(as *brownian/sphere* updates dipoles automatically).\n\nIf the *rotation_temp* keyword is used, then the rotational diffusion\nwill be occur at this prescribed temperature instead of *temp*. Only\ncompatible with *brownian/sphere* and *brownian/asphere*.\n\nIf the *planar_rotation* keyword is used, then rotation is constrained\nto the *x* -- *y* plane in a 3D simulation. Only compatible with\n*brownian/sphere* and *brownian/asphere* in 3D.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *brownian/asphere*, the components *gamma_t_eigen* = (x,x,x) and\n > *gamma_r_eigen* = (y,y,y), the dynamics will replicate those of the\n > *brownian/sphere* style with *gamma_t* = x and *gamma_r* = y. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Ilie1)** Ilie, Briels, den Otter, Journal of Chemical Physics, 142, 114103 (2015). \n \n**(Delong1)** Delong, Usabiaga, Donev, Journal of Chemical Physics. 143, 144107 (2015) \n \n**(Ilie1)** Ilie, Briels, den Otter, Journal of Chemical Physics, 142, 114103 (2015). \n \n**(Dunweg7)** Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991). \n ", + "restrictions": "The style *brownian/sphere* fix requires that atoms store torque and\nangular velocity (omega) as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The style *brownian/asphere* fix requires that\natoms store torque and quaternions as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command. If the *dipole* keyword is used, they\nmust also store a dipole moment as defined by the [atom_styledipole ](https://docs.lammps.org/atom_style.html) command.\n\nThis fix is part of the BROWNIAN package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[fix propel/self ](https://docs.lammps.org/fix_propel_self.html),\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n" }, { "command": [ - "dump image", - "dump movie" + "fix plumed" ], "syntax": [ - "dump ID group-ID style N file color diameter keyword value ..." + "fix ID group-ID plumed keyword value ..." ], "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -29382,53 +28321,16 @@ export const command_docs = [ "choices": [] }, { - "arg": "local", - "type": 3, - "choices": [ - "image", - "cfg", - "dcd", - "xtc", - "xyz", - "local" - ] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "file", - "type": 2, - "choices": [] - }, - { - "arg": "color", - "type": 2, - "choices": [] - }, - { - "arg": "diameter", - "type": 2, + "arg": "plumed", + "type": 1, "choices": [] }, { - "arg": "gmap", - "type": 3, - "choices": [ - "acolor", - "adiam", - "amap", - "gmap", - "backcolor", - "bcolor", - "bdiam", - "bitrate", - "boxcolor", - "color", - "framerate", - "gmap" + "arg": "outfile", + "type": 3, + "choices": [ + "plumedfile", + "outfile" ] }, { @@ -29438,20 +28340,21 @@ export const command_docs = [ } ] ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* style = image or movie = style of dump command (other styles such as atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write image to\n* color = atom attribute that determines color of each atom\n* diameter = atom attribute that determines size of each atom\n* zero or more keyword/value pairs may be appended\n* keyword = atom or adiam or bond or grid or line or tri or body or fix or size or view or center or up or zoom or box or axes or subbox or shiny or fsaa or ssao \n *        atom = yes or no = do or do not draw atoms \n *        adiam size = numeric value for atom diameter (distance units) \n *        bond values = color width = color and width of bonds \n         color = atom or type or none \n         width = number or atom or type or none \n         number = numeric value for bond width (distance units) \n *        grid = per-grid value to use when coloring each grid cell \n         per-grid value = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n         gname = name of grid defined by compute or fix \n         dname = name of data field defined by compute or fix \n         c_ID = per-grid vector calculated by a compute with ID \n         c_ID[I] = Ith column of per-grid array calculated by a compute with ID \n         f_ID = per-grid vector calculated by a fix with ID \n         f_ID[I] = Ith column of per-grid array calculated by a fix with ID \n *        line = color width \n         color = type \n         width = numeric value for line width (distance units) \n *        tri = color tflag width \n         color = type \n         tflag = 1 for just triangle, 2 for just tri edges, 3 for both \n         width = numeric value for tringle edge width (distance units) \n *        body = color bflag1 bflag2 \n         color = type \n         bflag1,bflag2 = 2 numeric flags to affect how bodies are drawn \n *        fix = fixID color fflag1 fflag2 \n         fixID = ID of fix that generates objects to draw \n         color = type \n         fflag1,fflag2 = 2 numeric flags to affect how fix objects are drawn \n *        size values = width height = size of images \n         width = width of image in # of pixels \n         height = height of image in # of pixels \n *        view values = theta phi = view of simulation box \n         theta = view angle from +z axis (degrees) \n         phi = azimuthal view angle (degrees) \n         theta or phi can be a variable (see below) \n *        center values = flag Cx Cy Cz = center point of image \n         flag = s for static, d for dynamic \n         Cx,Cy,Cz = center point of image as fraction of box dimension (0.5 = center of box) \n         Cx,Cy,Cz can be variables (see below) \n *        up values = Ux Uy Uz = direction that is \"up\" in image \n         Ux,Uy,Uz = components of up vector \n         Ux,Uy,Uz can be variables (see below) \n *        zoom value = zfactor = size that simulation box appears in image \n         zfactor = scale image size by factor > 1 to enlarge, factor < 1 to shrink \n         zfactor can be a variable (see below) \n *        box values = yes/no diam = draw outline of simulation box \n         yes/no = do or do not draw simulation box lines \n         diam = diameter of box lines as fraction of shortest box length \n *        axes values = axes length diam = draw xyz axes \n         axes = yes or no = do or do not draw xyz axes lines next to simulation box \n         length = length of axes lines as fraction of respective box lengths \n         diam = diameter of axes lines as fraction of shortest box length \n *        subbox values = lines diam = draw outline of processor subdomains \n         lines = yes or no = do or do not draw subdomain lines \n         diam = diameter of subdomain lines as fraction of shortest box length \n *        shiny value = sfactor = shinyness of spheres and cylinders \n         sfactor = shinyness of spheres and cylinders from 0.0 to 1.0 \n *        fsaa arg = yes/no \n         yes/no = do or do not apply anti-aliasing \n *        ssao value = shading seed dfactor = SSAO depth shading \n         shading = yes or no = turn depth shading on/off \n         seed = random # seed (positive integer) \n         dfactor = strength of shading from 0.0 to 1.0 \n.. _dump_modify_image:\n\n #### dump_modify options for dump image/movie\n *    dump_modify dump-ID keyword values ... \n* these keywords apply only to the image and movie styles and are documented on this page\n* keyword = acolor or adiam or amap or gmap or backcolor or bcolor or bdiam or bitrate or boxcolor or color or framerate or gmap\n* see the [dump modify ](https://docs.lammps.org/dump_modify.html) doc page for more general keywords \n *        acolor args = type color \n         type = atom type (numeric or type label) or range of numeric types (see below) \n         color = name of color or color1/color2/... \n *        adiam args = type diam \n         type = atom type (numeric or type label) or range of numeric types (see below) \n         diam = diameter of atoms of that type (distance units) \n *        amap args = lo hi style delta N entry1 entry2 ... entryN \n         lo = number or min = lower bound of range of color map \n         hi = number or max = upper bound of range of color map \n         style = 2 letters = c or d or s plus a or f \n         c for continuous \n         d for discrete \n         s for sequential \n         a for absolute \n         f for fractional \n         delta = binsize (only used for style s, otherwise ignored) \n         binsize = range is divided into bins of this width \n         N = # of subsequent entries \n         entry = value color (for continuous style) \n         value = number or min or max = single value within range \n         color = name of color used for that value \n         entry = lo hi color (for discrete style) \n         lo/hi = number or min or max = lower/upper bound of subset of range \n         color = name of color used for that subset of values \n         entry = color (for sequential style) \n         color = name of color used for a bin of values \n *        backcolor arg = color \n         color = name of color for background \n *        bcolor args = type color \n         type = bond type (numeric or type label) or range of numeric types (see below) \n         color = name of color or color1/color2/... \n *        bdiam args = type diam \n         type = bond type (numeric or type label) or range of numeric types (see below) \n         diam = diameter of bonds of that type (distance units) \n *        bitrate arg = rate \n         rate = target bitrate for movie in kbps \n *        boxcolor arg = color \n         color = name of color for simulation box lines and processor subdomain lines \n *        color args = name R G B \n         name = name of color \n         R,G,B = red/green/blue numeric values from 0.0 to 1.0 \n *        framerate arg = fps \n         fps = frames per second for movie \n *        gmap args = identical to amap args \n", - "examples": "\n```lmps\ndump d0 all image 100 dump.*.jpg type type\ndump d1 mobile image 500 snap.*.png element element ssao yes 4539 0.6\ndump d2 all image 200 img-*.ppm type type zoom 2.5 adiam 1.5 size 1280 720\ndump m0 all movie 1000 movie.mpg type type size 640 480\ndump m1 all movie 1000 movie.avi type type size 640 480\ndump m2 all movie 100 movie.m4v type type zoom 1.8 adiam v_value size 1280 720\n\ndump_modify 1 amap min max cf 0.0 3 min green 0.5 yellow max blue boxcolor red\n\nlabelmap atom 1 C 2 H 3 O 4 N\ndump_modify 1 acolor C gray acolor H white acolor O red acolor N blue\n```\n", - "html_filename": "dump_image.html", - "short_description": "Dump a high-quality rendered image of the atom configuration every \\(N\\)\ntimesteps and save the images either as a sequence of JPEG or PNG or\nPPM files, or as a single movie file", - "description": "Dump a high-quality rendered image of the atom configuration every \\(N\\)\ntimesteps and save the images either as a sequence of JPEG or PNG or\nPPM files, or as a single movie file. The options for this command as\nwell as the [dump_modify ](https://docs.lammps.org/dump_modify.html) command control what is\nincluded in the image or movie and how it appears. A series of such\nimages can easily be manually converted into an animated movie of your\nsimulation or the process can be automated without writing the\nintermediate files using the dump movie style; see further details\nbelow. Other dump styles store snapshots of numerical data associated\nwith atoms in various formats, as discussed on the [dump ](https://docs.lammps.org/dump.html)\ndoc page.\n\nNote that a set of images or a movie can be made after a simulation\nhas been run, using the [rerun ](https://docs.lammps.org/rerun.html) command to read snapshots\nfrom an existing dump file, and using these dump commands in the rerun\nscript to generate the images/movie.\n\nHere are two sample images, rendered as \\(1024\\times 1024\\) JPEG files.\n \n | | | \n |---|---| \n | ![Image](img/dump1.jpg) | ![Image](img/dump2.jpg) | \n\n\nOnly atoms in the specified group are rendered in the image. The\n[dump_modify region and thresh ](https://docs.lammps.org/dump_modify.html) commands can also\nalter what atoms are included in the image.\nThe filename suffix determines whether a JPEG, PNG, or PPM file is\ncreated with the *image* dump style. If the suffix is \".jpg\" or\n\".jpeg\", then a [JPEG format ](https://jpeg.org/jpeg/) file is created, if the\nsuffix is \".png\", then a [PNG format](png_format_) is created, else\na [PPM (aka NETPBM) format ](https://en.wikipedia.org/wiki/Netpbm) file is created.\nThe JPEG and PNG files are binary; PPM has a text mode header followed\nby binary data. JPEG images have lossy compression, PNG has lossless\ncompression, and PPM files are uncompressed but can be compressed with\ngzip, if LAMMPS has been compiled with -DLAMMPS_GZIP and a \".gz\" suffix\nis used.\n.. _png_format: https://en.wikipedia.org/wiki/Portable_Network_Graphics\nSimilarly, the format of the resulting movie is chosen with the *movie*\ndump style. This is handled by the underlying FFmpeg converter and thus\ndetails have to be looked up in the [FFmpeg documentation](https://ffmpeg.org/). Typical examples are: .avi, .mpg, .m4v, .mp4,\n.mkv, .flv, .mov, .gif Additional settings of the movie compression like\n*bitrate* and *framerate* can be set using the dump_modify command as\ndescribed below.\n\nTo write out JPEG and PNG format files, you must build LAMMPS with\nsupport for the corresponding JPEG or PNG library. To convert images\ninto movies, LAMMPS has to be compiled with the -DLAMMPS_FFMPEG\nflag. See the [Build settings ](https://docs.lammps.org/Build_settings.html) page for\ndetails.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > in the image may be slightly outside the simulation box. \n > \n\n----------\n\nDumps are performed on timesteps that are a multiple of \\(N\\) (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of \\(N\\). This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which\ncan be useful if the dump command is invoked after a minimization\nended on an arbitrary timestep. \\(N\\) can be changed between runs by\nusing the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\n\nDump *image* filenames must contain a wildcard character \"\\*\" so that\none image file per snapshot is written. The \"\\*\" character is replaced\nwith the timestep value. For example, tmp.dump.\\*.jpg becomes\ntmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note\nthat the [dump_modify pad ](https://docs.lammps.org/dump_modify.html) command can be used to\nensure all timestep numbers are the same length (e.g., 00010), which\ncan make it easier to convert a series of images into a movie in the\ncorrect ordering.\n\nDump *movie* filenames on the other hand, must not have any wildcard\ncharacter since only one file combining all images into a single\nmovie will be written by the movie encoder.\n\n----------\n\nThe *color* and *diameter* settings determine the color and size of\natoms rendered in the image. They can be any atom attribute defined\nfor the [dump custom ](https://docs.lammps.org/dump.html) command, including *type* and\n*element* . This includes per-atom quantities calculated by a\n[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or [variable ](https://docs.lammps.org/variable.html),\nwhich are prefixed by \"c\\_\", \"f\\_\", or \"v\\_\", respectively. Note that the\n*diameter* setting can be overridden with a numeric value applied to\nall atoms by the optional *adiam* keyword.\n\nIf *type* is specified for the *color* setting, then the color of each\natom is determined by its atom type. By default the mapping of types\nto colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types \\(> 6\\). This mapping can be changed by the\n\"dump_modify acolor\" command, as described below.\n\nIf *type* is specified for the *diameter* setting then the diameter of\neach atom is determined by its atom type. By default all types have\ndiameter 1.0. This mapping can be changed by the \"dump_modify adiam\"\ncommand, as described below.\n\nIf *element* is specified for the *color* and/or *diameter* setting,\nthen the color and/or diameter of each atom is determined by which\nelement it is, which in turn is specified by the element-to-type\nmapping specified by the \"dump_modify element\" command, as described\nbelow. By default every atom type is C (carbon). Every element has a\ncolor and diameter associated with it, which is the same as the colors\nand sizes used by the [AtomEye ](http://li.mit.edu/Archive/Graphics/A/) visualization package.\n\nIf other atom attributes are used for the *color* or *diameter*\nsettings, they are interpreted in the following way.\n\nIf \"vx\", for example, is used as the *color* setting, then the color\nof the atom will depend on the x-component of its velocity. The\nassociation of a per-atom value with a specific color is determined by\na \"color map\", which can be specified via the dump_modify amap\ncommand, as described below. The basic idea is that the\natom-attribute will be within a range of values, and every value\nwithin the range is mapped to a specific color. Depending on how the\ncolor map is defined, that mapping can take place via interpolation so\nthat a value of -3.2 is halfway between \"red\" and \"blue\", or\ndiscretely so that the value of -3.2 is \"orange\".\n\nIf \"vx\", for example, is used as the *diameter* setting, then the atom\nwill be rendered using the x-component of its velocity as the\ndiameter. If the per-atom value <= 0.0, them the atom will not be\ndrawn. Note that finite-size spherical particles, as defined by\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) define a per-particle radius or\ndiameter, which can be used as the *diameter* setting.\n\n----------\n\nThe various keywords listed above control how the image is rendered.\nAs listed below, all of the keywords have defaults, most of which you\nwill likely not need to change. As described below, the dump modify\ncommand also has options specific to the dump image style,\nparticularly for assigning colors to atoms, bonds, and other image\nfeatures.\n\n----------\n\nThe *atom* keyword allow you to turn off the drawing of all atoms, if\nthe specified value is *no* . Note that this will not turn off the\ndrawing of particles that are represented as lines, triangles, or\nbodies, as discussed below. These particles can be drawn separately\nif the *line*, *tri*, or *body* keywords are used.\n\nThe *adiam* keyword allows you to override the *diameter* setting to\nset a single numeric *size* . All atoms will be drawn with that\ndiameter, e.g. 1.5, which is in whatever distance [units ](https://docs.lammps.org/units.html)\nthe input script defines, e.g. Angstroms.\n\n----------\n\nThe *bond* keyword allows to you to alter how bonds are drawn. A bond\nis only drawn if both atoms in the bond are being drawn due to being\nin the specified group and due to other selection criteria\n(e.g. region, threshold settings of the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) command). By default, bonds are drawn\nif they are defined in the input data file as read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. Using *none* for both the bond\n*color* and *width* value will turn off the drawing of all bonds.\n\nIf *atom* is specified for the bond *color* value, then each bond is\ndrawn in 2 halves, with the color of each half being the color of the\natom at that end of the bond.\n\nIf *type* is specified for the *color* value, then the color of each\nbond is determined by its bond type. By default the mapping of bond\ntypes to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for bond types > 6. This mapping can be changed by\nthe \"dump_modify bcolor\" command, as described below.\n\nThe bond *width* value can be a numeric value or *atom* or *type* (or\n*none* as indicated above).\n\nIf a numeric value is specified, then all bonds will be drawn as\ncylinders with that diameter, e.g. 1.0, which is in whatever distance\n[units ](https://docs.lammps.org/units.html) the input script defines, e.g. Angstroms.\n\nIf *atom* is specified for the *width* value, then each bond\nwill be drawn with a width corresponding to the minimum diameter\nof the two atoms in the bond.\n\nIf *type* is specified for the *width* value then the diameter of each\nbond is determined by its bond type. By default all types have\ndiameter 0.5. This mapping can be changed by the \"dump_modify bdiam\" command,\nas described below.\n\n----------\n\nThe *line* keyword can be used when [atom_style line ](https://docs.lammps.org/atom_style.html)\nis used to define particles as line segments, and will draw them as\nlines. If this keyword is not used, such particles will be drawn as\nspheres, the same as if they were regular atoms. The only setting\ncurrently allowed for the *color* value is *type*, which will color\nthe lines according to the atom type of the particle. By default the\nmapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\nThe line *width* can only be a numeric value, which specifies that all\nlines will be drawn as cylinders with that diameter, e.g. 1.0, which\nis in whatever distance [units ](https://docs.lammps.org/units.html) the input script defines,\ne.g. Angstroms.\n\n----------\n\nThe *tri* keyword can be used when [atom_style tri ](https://docs.lammps.org/atom_style.html) is\nused to define particles as triangles, and will draw them as triangles\nor edges (3 lines) or both, depending on the setting for *tflag* . If\nedges are drawn, the *width* setting determines the diameters of the\nline segments. If this keyword is not used, triangle particles will\nbe drawn as spheres, the same as if they were regular atoms. The only\nsetting currently allowed for the *color* value is *type*, which will\ncolor the triangles according to the atom type of the particle. By\ndefault the mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *body* keyword can be used when [atom_style body ](https://docs.lammps.org/atom_style.html)\nis used to define body particles with internal state\n(e.g. sub-particles), and will drawn them in a manner specific to the\nbody style. If this keyword is not used, such particles will be drawn\nas spheres, the same as if they were regular atoms.\n\nThe [Howto body ](https://docs.lammps.org/Howto_body.html) page describes the body styles\nLAMMPS currently supports, and provides more details as to the kind of\nbody particles they represent and how they are drawn by this dump\nimage command. For all the body styles, individual atoms can be\neither a body particle or a usual point (non-body) particle. Non-body\nparticles will be drawn the same way they would be as a regular atom.\nThe *bflag1* and *bflag2* settings are numerical values which are\npassed to the body style to affect how the drawing of a body particle\nis done. See the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a\ndescription of what these parameters mean for each body style.\n\nThe only setting currently allowed for the *color* value is *type*,\nwhich will color the body particles according to the atom type of the\nparticle. By default the mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *fix* keyword can be used with a [fix ](https://docs.lammps.org/fix.html) that produces\nobjects to be drawn.\n\nThe *fflag1* and *fflag2* settings are numerical values which are\npassed to the fix to affect how the drawing of its objects is done.\nSee the individual fix page for a description of what these\nparameters mean for a particular fix.\n\nThe only setting currently allowed for the *color* value is *type*,\nwhich will color the fix objects according to their type. By default\nthe mapping of types to colors is as follows:\n\n* type 1 = red\n* type 2 = green\n* type 3 = blue\n* type 4 = yellow\n* type 5 = aqua\n* type 6 = cyan\n\nand repeats itself for types > 6. There is not yet an option to\nchange this via the dump_modify command.\n\n----------\n\nThe *size* keyword sets the width and height of the created images,\ni.e. the number of pixels in each direction.\n\n----------\n\nThe *view*, *center*, *up*, and *zoom* values determine how\n3d simulation space is mapped to the 2d plane of the image. Basically\nthey control how the simulation box appears in the image.\n\nAll of the *view*, *center*, *up*, and *zoom* values can be\nspecified as numeric quantities, whose meaning is explained below.\nAny of them can also be specified as an [equal-style variable ](https://docs.lammps.org/variable.html),\nby using v_name as the value, where \"name\" is\nthe variable name. In this case the variable will be evaluated on the\ntimestep each image is created to create a new value. If the\nequal-style variable is time-dependent, this is a means of changing\nthe way the simulation box appears from image to image, effectively\ndoing a pan or fly-by view of your simulation.\n\nThe *view* keyword determines the viewpoint from which the simulation\nbox is viewed, looking towards the *center* point. The *theta* value\nis the vertical angle from the +z axis, and must be an angle from 0 to\n180 degrees. The *phi* value is an azimuthal angle around the z axis\nand can be positive or negative. A value of 0.0 is a view along the\n+x axis, towards the *center* point. If *theta* or *phi* are\nspecified via variables, then the variable values should be in\ndegrees.\n\nThe *center* keyword determines the point in simulation space that\nwill be at the center of the image. *Cx*, *Cy*, and *Cz* are\nspecified as fractions of the box dimensions, so that (0.5,0.5,0.5) is\nthe center of the simulation box. These values do not have to be\nbetween 0.0 and 1.0, if you want the simulation box to be offset from\nthe center of the image. Note, however, that if you choose strange\nvalues for *Cx*, *Cy*, or *Cz* you may get a blank image. Internally,\n*Cx*, *Cy*, and *Cz* are converted into a point in simulation space.\nIf *flag* is set to \"s\" for static, then this conversion is done once,\nat the time the dump command is issued. If *flag* is set to \"d\" for\ndynamic then the conversion is performed every time a new image is\ncreated. If the box size or shape is changing, this will adjust the\ncenter point in simulation space.\n\nThe *up* keyword determines what direction in simulation space will be\n\"up\" in the image. Internally it is stored as a vector that is in the\nplane perpendicular to the view vector implied by the *theta* and\n*pni* values, and which is also in the plane defined by the view\nvector and user-specified up vector. Thus this internal vector is\ncomputed from the user-specified *up* vector as\n\n```\nup_internal = view cross (up cross view)\n```\nThis means the only restriction on the specified *up* vector is that\nit cannot be parallel to the *view* vector, implied by the *theta* and\n*phi* values.\n\nThe *zoom* keyword scales the size of the simulation box as it appears\nin the image. The default *zfactor* value of 1 should display an\nimage mostly filled by the atoms in the simulation box. A *zfactor* >\n1 will make the simulation box larger; a *zfactor* < 1 will make it\nsmaller. *Zfactor* must be a value > 0.0.\n\n----------\n\nThe *box* keyword determines if and how the simulation box boundaries\nare rendered as thin cylinders in the image. If *no* is set, then the\nbox boundaries are not drawn and the *diam* setting is ignored. If\n*yes* is set, the 12 edges of the box are drawn, with a diameter that\nis a fraction of the shortest box length in x,y,z (for 3d) or x,y (for\n2d). The color of the box boundaries can be set with the \"dump_modify\nboxcolor\" command.\n\nThe *axes* keyword determines if and how the coordinate axes are\nrendered as thin cylinders in the image. If *no* is set, then the\naxes are not drawn and the *length* and *diam* settings are ignored.\nIf *yes* is set, 3 thin cylinders are drawn to represent the x,y,z\naxes in colors red,green,blue. The origin of these cylinders will be\noffset from the lower left corner of the box by 10%. The *length*\nsetting determines how long the cylinders will be as a fraction of the\nrespective box lengths. The *diam* setting determines their thickness\nas a fraction of the shortest box length in x,y,z (for 3d) or x,y (for\n2d).\n\nThe *subbox* keyword determines if and how processor subdomain\nboundaries are rendered as thin cylinders in the image. If *no* is\nset (default), then the subdomain boundaries are not drawn and the\n*diam* setting is ignored. If *yes* is set, the 12 edges of each\nprocessor subdomain are drawn, with a diameter that is a fraction of\nthe shortest box length in x,y,z (for 3d) or x,y (for 2d). The color\nof the subdomain boundaries can be set with the \"dump_modify\nboxcolor\" command.\n\n----------\n\nThe *shiny* keyword determines how shiny the objects rendered in the\nimage will appear. The *sfactor* value must be a value 0.0 <=\n*sfactor* <= 1.0, where *sfactor* = 1 is a highly reflective surface\nand *sfactor* = 0 is a rough non-shiny surface.\n\nThe *fsaa* keyword can be used with the dump image command to improve\nthe image quality by enabling full scene anti-aliasing. Internally the\nimage is rendered at twice the width and height and then scaled down by\ncomputing the average of each 2x2 block of pixels to produce a single\npixel in the final image at the original size. This produces images with\nsmoother, less ragged edges. The application of this algorithm can\nincrease the cost of computing the image by about 3x or more.\n\nThe *ssao* keyword turns on/off a screen space ambient occlusion (SSAO)\nmodel for depth shading. If *yes* is set, then atoms further away from\nthe viewer are darkened via a randomized process, which is perceived as\ndepth. The strength of the effect can be scaled by the *dfactor*\nparameter. If *no* is set, no depth shading is performed. The\ncalculation of this effect can increase the cost of computing the image\nsubstantially by 5x or more, especially with larger images. When used\nin combination with the *fsaa* keyword the computational cost of depth\nshading is particularly large.\n\n----------\n\n #### Image Quality Settings\n\nThe two keywords *fsaa* and *ssao* can be used to improve the image\nquality at the expense of additional computational cost to render the\nimages. The images below show from left to right the same render with\ndefault settings, with *fsaa* added, with *ssao* added, and with both\nkeywords added.\n \n | | | | | \n |---|---|---|---| \n | ![Image](JPG/image.default.png) | ![Image](JPG/image.fsaa.png) | ![Image](JPG/image.ssao.png) | ![Image](JPG/image.both.png) | \n\n\n----------\n\nA series of JPEG, PNG, or PPM images can be converted into a movie\nfile and then played as a movie using commonly available tools. Using\ndump style *movie* automates this step and avoids the intermediate\nstep of writing (many) image snapshot file. But LAMMPS has to be\ncompiled with -DLAMMPS_FFMPEG and an FFmpeg executable have to be\ninstalled.\n\nTo manually convert JPEG, PNG or PPM files into an animated GIF or\nMPEG or other movie file you can use:\n\n* a) Use the ImageMagick convert program.\n\n```bash\nconvert *.jpg foo.gif\nconvert -loop 1 *.ppm foo.mpg\n\nAnimated GIF files from ImageMagick are not optimized. You can use\na program like gifsicle to optimize and thus massively shrink them.\nMPEG files created by ImageMagick are in MPEG-1 format with a rather\ninefficient compression and low quality compared to more modern\ncompression styles like MPEG-4, H.264, VP8, VP9, H.265 and so on.\n```\n* b) Use QuickTime.\n\n Select \"Open Image Sequence\" under the File menu Load the images into\n QuickTime to animate them Select \"Export\" under the File menu Save the\n movie as a QuickTime movie (\\*.mov) or in another format. QuickTime\n can generate very high quality and efficiently compressed movie\n files. Some of the supported formats require to buy a license and some\n are not readable on all platforms until specific runtime libraries are\n installed.\n\n* c) Use FFmpeg\n\n FFmpeg is a command line tool that is available on many platforms and\n allows extremely flexible encoding and decoding of movies.\n\n```bash\ncat snap.*.jpg | ffmpeg -y -f image2pipe -c:v mjpeg -i - -b:v 2000k movie.m4v\ncat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi\n\nFront ends for FFmpeg exist for multiple platforms. For more\ninformation see the [FFmpeg homepage](https://ffmpeg.org/)\n```\n----------\n\nPlay the movie:\n\n* a) Use your browser to view an animated GIF movie.\n\n Select \"Open File\" under the File menu\n Load the animated GIF file\n\n* b) Use the freely available mplayer or ffplay tool to view a\n movie. Both are available for multiple OSes and support a large\n variety of file formats and decoders.\n\n```bash\nmplayer foo.mpg\nffplay bar.avi\n```\n* c) Use the [Pizza.py](https://lammps.github.io/pizza)\n [animate tool](https://lammps.github.io/pizza/doc/animate.html),\n which works directly on a series of image files.\n\n```python\na = animate(\"foo*.jpg\")\n```\n* d) QuickTime and other Windows- or macOS-based media players can\n obviously play movie files directly. Similarly for corresponding tools\n bundled with Linux desktop environments. However, due to licensing\n issues with some file formats, the formats may require installing\n additional libraries, purchasing a license, or may not be\n supported.\n\n----------\n\n #### Dump_modify keywords for dump image and dump movie\n\nThe following dump_modify keywords apply only to the dump image and\ndump movie styles. Any keyword that works with dump image also works\nwith dump movie, since the movie is simply a collection of images.\nSome of the keywords only affect the dump movie style. The\ndescriptions give details.\n\n----------\n\nThe *acolor* keyword can be used with the dump image command, when its\natom color setting is *type*, to set the color that atoms of each type\nwill be drawn in the image.\n\nThe specified *type* should be a type label or integer from 1 to Ntypes\n= the number of atom types. For numeric types, a wildcard asterisk can\nbe used in place of or in conjunction with the *type* argument to\nspecify a range of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If N = the number of atom types, then an asterisk with\nno numeric values means all types from 1 to N. A leading asterisk\nmeans all types from 1 to n (inclusive). A trailing asterisk means all\ntypes from n to N (inclusive). A middle asterisk means all types from\nm to n (inclusive).\n\nThe specified *color* can be a single color which is any of the 140\npre-defined colors (see below) or a color name defined by the\n\"dump_modify color\" command, as described below. Or it can be two or\nmore colors separated by a \"/\" character, e.g. red/green/blue. In the\nformer case, that color is assigned to all the specified atom types.\nIn the latter case, the list of colors are assigned in a round-robin\nfashion to each of the specified atom types.\n\n----------\n\nThe *adiam* keyword can be used with the dump image command, when its\natom diameter setting is *type*, to set the size that atoms of each\ntype will be drawn in the image. The specified *type* should be a type\nlabel or integer from 1 to Ntypes. As with the *acolor* keyword, a\nwildcard asterisk can be used as part of the *type* argument to specify\na range of numeric atom types. The specified *diam* is the size in\nwhatever distance [units ](https://docs.lammps.org/units.html) the input script is using, e.g.\nAngstroms.\n\n----------\n\nThe *amap* keyword can be used with the dump image command, with its\n*atom* keyword, when its atom setting is an atom-attribute, to setup a\ncolor map. The color map is used to assign a specific RGB\n(red/green/blue) color value to an individual atom when it is drawn,\nbased on the atom's attribute, which is a numeric value, e.g. its\nx-component of velocity if the atom-attribute \"vx\" was specified.\n\nThe basic idea of a color map is that the atom-attribute will be\nwithin a range of values, and that range is associated with a series\nof colors (e.g. red, blue, green). An atom's specific value (vx =\n-3.2) can then mapped to the series of colors (e.g. halfway between\nred and blue), and a specific color is determined via an interpolation\nprocedure.\n\nThere are many possible options for the color map, enabled by the\n*amap* keyword. Here are the details.\n\nThe *lo* and *hi* settings determine the range of values allowed for\nthe atom attribute. If numeric values are used for *lo* and/or *hi*,\nthen values that are lower/higher than that value are set to the\nvalue. I.e. the range is static. If *lo* is specified as *min* or\n*hi* as *max* then the range is dynamic, and the lower and/or\nupper bound will be calculated each time an image is drawn, based\non the set of atoms being visualized.\n\nThe *style* setting is two letters, such as \"ca\". The first letter is\neither \"c\" for continuous, \"d\" for discrete, or \"s\" for sequential.\nThe second letter is either \"a\" for absolute, or \"f\" for fractional.\n\nA continuous color map is one in which the color changes continuously\nfrom value to value within the range. A discrete color map is one in\nwhich discrete colors are assigned to sub-ranges of values within the\nrange. A sequential color map is one in which discrete colors are\nassigned to a sequence of sub-ranges of values covering the entire\nrange.\n\nAn absolute color map is one in which the values to which colors are\nassigned are specified explicitly as values within the range. A\nfractional color map is one in which the values to which colors are\nassigned are specified as a fractional portion of the range. For\nexample if the range is from -10.0 to 10.0, and the color red is to be\nassigned to atoms with a value of 5.0, then for an absolute color map\nthe number 5.0 would be used. But for a fractional map, the number\n0.75 would be used since 5.0 is 3/4 of the way from -10.0 to 10.0.\n\nThe *delta* setting must be specified for all styles, but is only used\nfor the sequential style; otherwise the value is ignored. It\nspecifies the bin size to use within the range for assigning\nconsecutive colors to. For example, if the range is from \\(-10.0\\) to\n\\(10.0\\) and a *delta* of \\(1.0\\) is used, then 20 colors will be\nassigned to the range. The first will be from\n\\(-10.0 \\le \\text{color1} < -9.0\\), then second from\n\\(-9.0 \\le color2 < -8.0\\), etc.\n\nThe *N* setting is how many entries follow. The format of the entries\ndepends on whether the color map style is continuous, discrete or\nsequential. In all cases the *color* setting can be any of the 140\npre-defined colors (see below) or a color name defined by the\ndump_modify color option.\n\nFor continuous color maps, each entry has a *value* and a *color* .\nThe *value* is either a number within the range of values or *min* or\n*max* . The *value* of the first entry must be *min* and the *value*\nof the last entry must be *max* . Any entries in between must have\nincreasing values. Note that numeric values can be specified either\nas absolute numbers or as fractions (0.0 to 1.0) of the range,\ndepending on the \"a\" or \"f\" in the style setting for the color map.\n\nHere is how the entries are used to determine the color of an individual\natom, given the value \\(X\\) of its atom attribute. \\(X\\) will\nfall between 2 of the entry values. The color of the atom is linearly\ninterpolated (in each of the RGB values) between the 2 colors associated\nwith those entries. For example, if \\(X = -5.0\\) and the two\nsurrounding entries are \"red\" at \\(-10.0\\) and \"blue\" at\n\\(0.0\\), then the atom's color will be halfway between \"red\" and\n\"blue\", which happens to be \"purple\".\n\nFor discrete color maps, each entry has a *lo* and *hi* value and a\n*color* . The *lo* and *hi* settings are either numbers within the\nrange of values or *lo* can be *min* or *hi* can be *max* . The *lo*\nand *hi* settings of the last entry must be *min* and *max* . Other\nentries can have any *lo* and *hi* values and the sub-ranges of\ndifferent values can overlap. Note that numeric *lo* and *hi* values\ncan be specified either as absolute numbers or as fractions (0.0 to 1.0)\nof the range, depending on the \"a\" or \"f\" in the style setting for the\ncolor map.\n\nHere is how the entries are used to determine the color of an individual\natom, given the value X of its atom attribute. The entries are scanned\nfrom first to last. The first time that *lo* <= X <= *hi*, X is\nassigned the color associated with that entry. You can think of the\nlast entry as assigning a default color (since it will always be matched\nby X), and the earlier entries as colors that override the default.\nAlso note that no interpolation of a color RGB is done. All atoms will\nbe drawn with one of the colors in the list of entries.\n\nFor sequential color maps, each entry has only a *color* . Here is how\nthe entries are used to determine the color of an individual atom,\ngiven the value X of its atom attribute. The range is partitioned\ninto N bins of width *binsize* . Thus X will fall in a specific bin\nfrom 1 to N, say the Mth bin. If it falls on a boundary between 2\nbins, it is considered to be in the higher of the 2 bins. Each bin is\nassigned a color from the E entries. If E < N, then the colors are\nrepeated. For example if 2 entries with colors red and green are\nspecified, then the odd numbered bins will be red and the even bins\ngreen. The color of the atom is the color of its bin. Note that the\nsequential color map is really a shorthand way of defining a discrete\ncolor map without having to specify where all the bin boundaries are.\n\nHere is an example of using a sequential color map to color all the\natoms in individual molecules with a different color. See the\nexamples/pour/in.pour.2d.molecule input script for an example of how\nthis is used.\n\n```lmps\nvariable colors string &\n\"red green blue yellow white &\npurple pink orange lime gray\"\nvariable mol atom mol%10\ndump 1 all image 250 image.*.jpg v_mol type &\nzoom 1.6 adiam 1.5\ndump_modify 1 pad 5 amap 0 10 sa 1 10 ${colors}\n```\nIn this case, 10 colors are defined, and molecule IDs are\nmapped to one of the colors, even if there are 1000s of molecules.\n\n----------\n\nThe *backcolor* sets the background color of the images. The color\nname can be any of the 140 pre-defined colors (see below) or a color\nname defined by the dump_modify color option.\n\n----------\n\nThe *bcolor* keyword can be used with the dump image command, with its\n*bond* keyword, when its color setting is *type*, to set the color\nthat bonds of each type will be drawn in the image.\n\nThe specified *type* should be a type label or integer from 1 to\n\\(N\\), where \\(N\\) is the number of bond types. For numeric\ntypes, a wildcard asterisk can be used in place of or in conjunction\nwith the *type* argument to specify a range of bond types. This takes\nthe form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number\nof bond types, then an asterisk with no numerical values means all\ntypes from 1 to \\(N\\). A leading asterisk means all types from 1\nto n (inclusive). A trailing asterisk means all types from m to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe specified *color* can be a single color which is any of the 140\npre-defined colors (see below) or a color name defined by the\ndump_modify color option. Or it can be two or more colors separated\nby a \"/\" character (e.g., red/green/blue). In the former case, that\ncolor is assigned to all the specified bond types. In the latter\ncase, the list of colors are assigned in a round-robin fashion to each\nof the specified bond types.\n\n----------\n\nThe *bdiam* keyword can be used with the dump image command, with its\n*bond* keyword, when its *diam* setting is *type*, to set the diameter\nthat bonds of each type will be drawn in the image. The specified\n*type* should be a type label or integer from 1 to Nbondtypes. As with\nthe *bcolor* keyword, a wildcard asterisk can be used as part of the\n*type* argument to specify a range of numeric bond types. The\nspecified *diam* is the size in whatever distance [units ](https://docs.lammps.org/units.html)\nyou are using (e.g., Angstroms).\n\n----------\n\nThe *bitrate* keyword can be used with the [dump movie](https://docs.lammps.org/dump_image.html) command to define the size of the resulting movie file\nand its quality via setting how many kbits per second are to be used\nfor the movie file. Higher bitrates require less compression and will\nresult in higher quality movies. The quality is also determined by\nthe compression format and encoder. The default setting is 2000\nkbit/s, which will result in average quality with older compression\nformats.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all movie file formats supported by dump movie allow the\n > bitrate to be set. If not, the setting is silently ignored. \n > \n\n----------\n\nThe *boxcolor* keyword sets the color of the simulation box drawn\naround the atoms in each image as well as the color of processor\nsubdomain boundaries. See the \"dump image box\" command for how to\nspecify that a box be drawn via the *box* keyword, and the subdomain\nboundaries via the *subbox* keyword. The color name can be any of the\n140 pre-defined colors (see below) or a color name defined by the\ndump_modify color option.\n\n----------\n\nThe *color* keyword allows definition of a new color name, in addition\nto the 140-predefined colors (see below), and associates three\nred/green/blue RGB values with that color name. The color name can\nthen be used with any other dump_modify keyword that takes a color\nname as a value. The RGB values should each be floating point values\nbetween 0.0 and 1.0 inclusive.\n\nWhen a color name is converted to RGB values, the user-defined color\nnames are searched first, then the 140 pre-defined color names. This\nmeans you can also use the *color* keyword to overwrite one of the\npre-defined color names with new RBG values.\n\n----------\n\nThe *framerate* keyword can be used with the [dump movie](https://docs.lammps.org/dump_image.html) command to define the duration of the resulting movie\nfile. Movie files written by the dump *movie* command have a default\nframe rate of 24 frames per second and the images generated will be\nconverted at that rate. Thus a sequence of 1000 dump images will\nresult in a movie of about 42 seconds. To make a movie run longer you\ncan either generate images more frequently or lower the frame rate.\nTo speed a movie up, you can do the inverse. Using a frame rate\nhigher than 24 is not recommended, as it will result in simply\ndropping the rendered images. It is more efficient to dump images less\nfrequently.\n\n----------\n\nThe *gmap* keyword can be used with the dump image command, with its\n*grid* keyword, to setup a color map. The color map is used to assign\na specific RGB (red/green/blue) color value to an individual grid cell\nwhen it is drawn, based on the grid cell value, which is a numeric\nquantity specified with the *grid* keyword.\n\nThe arguments for the *gmap* keyword are identical to those for the\n*amap* keyword (for atom coloring) described above.\n\n----------\n", - "restrictions": "To write JPEG images, you must use the -DLAMMPS_JPEG switch when\nbuilding LAMMPS and link with a JPEG library. To write PNG images, you\nmust use the -DLAMMPS_PNG switch when building LAMMPS and link with a\nPNG library.\n\nTo write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when\nbuilding LAMMPS and have the FFmpeg executable available on the\nmachine where LAMMPS is being run. Typically its name is lowercase\n(i.e., \"ffmpeg\").\n\nSee the [Build settings ](https://docs.lammps.org/Build_settings.html) page for details.\n\nNote that since FFmpeg is run as an external program via a pipe,\nLAMMPS has limited control over its execution and no knowledge about\nerrors and warnings printed by it. Those warnings and error messages\nwill be printed to the screen only. Due to the way image data are\ncommunicated to FFmpeg, it will often print the message\n\n```\npipe:: Input/output error\n```\nwhich can be safely ignored. Other warnings\nand errors have to be addressed according to the FFmpeg documentation.\nOne known issue is that certain movie file formats (e.g., MPEG level 1\nand 2 format streams) have video bandwidth limits that can be crossed\nwhen rendering too large of image sizes. Typical warnings look like\nthis:\n\n```\n[mpeg @ 0x98b5e0] packet too large, ignoring buffer limits to mux it\n[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018\n[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018\n```\nIn this case it is recommended either to reduce the size of the image\nor to encode in a different format that is also supported by your copy of\nFFmpeg and which does not have this limitation (e.g., .avi, .mkv, mp4).\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* plumed = style name of this fix command\n* keyword = plumedfile or outfile \n *        plumedfile arg = name of PLUMED input file to use (default: NULL) \n *        outfile arg = name of file on which to write the PLUMED log (default: NULL) \n", + "examples": "\n```lmps\nfix pl all plumed plumedfile plumed.dat outfile p.log\n```\n", + "html_filename": "fix_plumed.html", + "short_description": "This fix instructs LAMMPS to call the [PLUMED ](https://www.plumed.org/) library, which\nallows one to perform various forms of trajectory analysis on the fly\nand to also use methods such as umbrella sampling and metadynamics to\nenhance the sampling of phase space", + "description": "This fix instructs LAMMPS to call the [PLUMED ](https://www.plumed.org/) library, which\nallows one to perform various forms of trajectory analysis on the fly\nand to also use methods such as umbrella sampling and metadynamics to\nenhance the sampling of phase space.\n\nThe documentation included here only describes the fix plumed command\nitself. This command is LAMMPS specific, whereas most of the\nfunctionality implemented in PLUMED will work with a range of MD codes,\nand when PLUMED is used as a stand alone code for analysis. The full\n[documentation for PLUMED ](https://www.plumed.org/doc.html) is available online and included\nin the PLUMED source code. The PLUMED library development is hosted at\n[https://github.com/plumed/plumed2](https://github.com/plumed/plumed2)\nA detailed discussion of the code can be found in **Tribello**.\n\nThere is an example input for using this package with LAMMPS in the\nexamples/PACKAGES/plumed directory.\n\n----------\n\nThe command to make LAMMPS call PLUMED during a run requires two keyword\nvalue pairs pointing to the PLUMED input file and an output file for the\nPLUMED log. The user must specify these arguments every time PLUMED is\nto be used. Furthermore, the fix plumed command should appear in the\nLAMMPS input file **after** relevant input parameters (e.g. the timestep)\nhave been set.\n\nThe *group-ID* entry is ignored. LAMMPS will always pass all the atoms\nto PLUMED and there can only be one instance of the plumed fix at a\ntime. The way the plumed fix is implemented ensures that the minimum\namount of information required is communicated. Furthermore, PLUMED\nsupports multiple, completely independent collective variables, multiple\nindependent biases and multiple independent forms of analysis. There is\nthus really no restriction in functionality by only allowing only one\nplumed fix in the LAMMPS input.\n\nThe *plumedfile* keyword allows the user to specify the name of the\nPLUMED input file. Instructions as to what should be included in a\nplumed input file can be found in the [documentation for PLUMED](plumeddocs_)\n\nThe *outfile* keyword allows the user to specify the name of a file in\nwhich to output the PLUMED log. This log file normally just repeats the\ninformation that is contained in the input file to confirm it was\ncorrectly read and parsed. The names of the files in which the results\nare stored from the various analysis options performed by PLUMED will\nbe specified by the user in the PLUMED input file.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nWhen performing a restart of a calculation that involves PLUMED you\nmust include a RESTART command in the PLUMED input file as detailed in\nthe [PLUMED documentation ](https://www.plumed.org/doc.html). When the restart command\nis found in the PLUMED input PLUMED will append to the files that were\ngenerated in the run that was performed previously. No part of the\nPLUMED restart data is included in the LAMMPS restart files.\nFurthermore, any history dependent bias potentials that were\naccumulated in previous calculations will be read in when the RESTART\ncommand is included in the PLUMED input.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy change from the biasing force added by\nPLUMED to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution from the biasing force to the global\npressure of the system via the [compute pressure](https://docs.lammps.org/compute_pressure.html) command. This can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the PLUMED\nenergy mentioned above. The scalar value calculated by this fix is\n\"extensive\".\n\nNote that other quantities of interest can be output by commands that\nare native to PLUMED.\n\n**(Tribello)** G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014) \n ", + "restrictions": "This fix is part of the PLUMED package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be one fix plumed command active at a time.\n", + "related": "[fix smd ](https://docs.lammps.org/fix_smd.html)\n[fix colvars ](https://docs.lammps.org/fix_colvars.html)\n" }, { "command": [ - "fix wall/region" + "fix shardlow", + "fix shardlow/kk" ], "syntax": [ - "fix ID group-ID wall/region region-ID style args ... cutoff" + "fix ID group-ID shardlow" ], "args": [ [ @@ -29471,53 +28374,70 @@ export const command_docs = [ "choices": [] }, { - "arg": "wall/region", - "type": 1, - "choices": [] - }, + "arg": "shardlow", + "type": 3, + "choices": [ + "shardlow", + "shardlow/kk" + ] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* shardlow = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all shardlow\n```\n", + "html_filename": "fix_shardlow.html", + "short_description": "Specifies that the Shardlow splitting algorithm (SSA) is to be used to\nintegrate the DPD equations of motion", + "description": "Specifies that the Shardlow splitting algorithm (SSA) is to be used to\nintegrate the DPD equations of motion. The SSA splits the integration\ninto a stochastic and deterministic integration step. The fix\n*shardlow* performs the stochastic integration step and must be used\nin conjunction with a deterministic integrator (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html)). The stochastic\nintegration of the dissipative and random forces is performed prior to\nthe deterministic integration of the conservative force. Further\ndetails regarding the method are provided in **Lisal** and\n**Larentzos1sh**.\n\nThe fix *shardlow* must be used with the [pair_style dpd/fdt ](https://docs.lammps.org/pair_style.html) or [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command to properly initialize the\nfluctuation-dissipation theorem parameter(s) sigma (and kappa, if\nnecessary).\n\nNote that numerous variants of DPD can be specified by choosing an\nappropriate combination of the integrator and [pair_style dpd/fdt ](https://docs.lammps.org/pair_style.html) command. DPD under isothermal conditions can\nbe specified by using fix *shardlow*, fix *nve* and pair_style\n*dpd/fdt* . DPD under isoenergetic conditions can be specified by\nusing fix *shardlow*, fix *nve* and pair_style *dpd/fdt/energy* . DPD\nunder isobaric conditions can be specified by using fix shardlow, fix\n*nph* and pair_style *dpd/fdt* . DPD under isoenthalpic conditions can\nbe specified by using fix shardlow, fix *nph* and pair_style\n*dpd/fdt/energy* . Examples of each DPD variant are provided in the\nexamples/PACKAGES/dpd-react directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Lisal)** M. Lisal, J.K. Brennan, J. Bonet Avalos, \"Dissipative\nparticle dynamics as isothermal, isobaric, isoenergetic, and\nisoenthalpic conditions using Shardlow-like splitting algorithms.\",\nJ. Chem. Phys., 135, 204105 (2011). \n \n**(Larentzos1sh)** J.P. Larentzos, J.K. Brennan, J.D. Moore, M. Lisal and\nW.D. Mattson, \"Parallel Implementation of Isothermal and Isoenergetic\nDissipative Particle Dynamics Using Shardlow-Like Splitting\nAlgorithms\", Comput. Phys. Commun., 185, 1987-1998 (2014). \n ", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is currently limited to orthogonal simulation cell\ngeometries.\n\nThis fix must be used with an additional fix that specifies time\nintegration, e.g. [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html).\n\nThe Shardlow splitting algorithm requires the sizes of the subdomain\nlengths to be larger than twice the cutoff+skin. Generally, the\ndomain decomposition is dependent on the number of processors\nrequested.\n", + "related": "[pair_style dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html), [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html)\n" +}, +{ + "command": [ + "pair_modify" + ], + "syntax": [ + "pair_modify keyword values ..." + ], + "args": [ + [ { - "arg": "region-ID", - "type": 2, + "arg": "pair_modify", + "type": 1, "choices": [] }, { - "arg": "morse", + "arg": "tabinner", "type": 3, "choices": [ - "lj93", - "lj126", - "lj1043", - "colloid", - "harmonic", - "morse" + "pair", + "shift", + "mix", + "table", + "table/disp", + "tabinner" ] }, { - "arg": "args", - "type": 2, - "choices": [] - }, - { - "arg": "cutoff", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/region = style name of this fix command\n* region-ID = region whose boundary will act as wall\n* style = lj93 or lj126 or lj1043 or colloid or harmonic or morse\n* args for styles lj93 or lj126 or lj1043 or colloid or harmonic = \n *         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n *         sigma = size factor for wall-particle interaction (distance units) \n* args for style morse = \n *         D_0 = depth of the potential (energy units) \n *         alpha = width parameter (1/distance units) \n *         r_0 = distance of the potential minimum from wall position (distance units) \n* cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n", - "examples": "\n```lmps\nfix wall all wall/region mySphere lj93 1.0 1.0 2.5\nfix wall all wall/region mySphere harmonic 1.0 0.0 2.5\nfix wall all wall/region box_top morse 1.0 1.0 1.5 3.0\n```\n", - "html_filename": "fix_wall_region.html", - "short_description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding wall which interacts with nearby particles according to\nthe specified style", - "description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding wall which interacts with nearby particles according to\nthe specified style.\n\nThe distance between a particle and the surface is the distance to the\nnearest point on the surface and the force the wall exerts on the\nparticle is along the direction between that point and the particle,\nwhich is the direction normal to the surface at that point. Note that\nif the region surface is comprised of multiple \"faces\", then each face\ncan exert a force on the particle if it is close enough. E.g. for\n[region_style block ](https://docs.lammps.org/region.html), a particle in the interior, near a\ncorner of the block, could feel wall forces from 1, 2, or 3 faces of\nthe block.\n\nRegions are defined using the [region ](https://docs.lammps.org/region.html) command. Note that\nthe region volume can be interior or exterior to the bounding surface,\nwhich will determine in which direction the surface interacts with\nparticles, i.e. the direction of the surface normal. The surface of\nthe region only exerts forces on particles \"inside\" the region; if a\nparticle is \"outside\" the region it will generate an error, because it\nhas moved through the wall.\n\nRegions can either be primitive shapes (block, sphere, cylinder, etc)\nor combinations of primitive shapes specified via the *union* or\n*intersect* region styles. These latter styles can be used to\nconstruct particle containers with complex shapes. Regions can also\nchange over time via the [region ](https://docs.lammps.org/region.html) command keywords (move)\nand *rotate* . If such a region is used with this fix, then the of\nregion surface will move over time in the corresponding manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [region ](https://docs.lammps.org/region.html) command doc page,\n > regions in LAMMPS do not get wrapped across periodic boundaries. It\n > is up to you to ensure that periodic or non-periodic boundaries are\n > specified appropriately via the [boundary ](https://docs.lammps.org/boundary.html) command when\n > using a region as a wall that bounds particle motion. This also means\n > that if you embed a region in your simulation box and want it to\n > repulse particles from its surface (using the \"side out\" option in the\n > [region ](https://docs.lammps.org/region.html) command), that its repulsive force will not be\n > felt across a periodic boundary. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For primitive regions with sharp corners and/or edges (e.g. a\n > block or cylinder), wall/particle forces are computed accurately for\n > both interior and exterior regions. For *union* and *intersect*\n > regions, additional sharp corners and edges may be present due to the\n > intersection of the surfaces of 2 or more primitive volumes. These\n > corners and edges can be of two types: concave or convex. Concave\n > points/edges are like the corners of a cube as seen by particles in\n > the interior of a cube. Wall/particle forces around these features\n > are computed correctly. Convex points/edges are like the corners of a\n > cube as seen by particles exterior to the cube, i.e. the points jut\n > into the volume where particles are present. LAMMPS does NOT compute\n > the location of these convex points directly, and hence wall/particle\n > forces in the cutoff volume around these points suffer from\n > inaccuracies. The basic problem is that the outward normal of the\n > surface is not continuous at these points. This can cause particles\n > to feel no force (they don't \"see\" the wall) when in one location,\n > then move a distance epsilon, and suddenly feel a large force because\n > they now \"see\" the wall. In a worst-case scenario, this can blow\n > particles out of the simulation box. Thus, as a general rule you\n > should not use the fix wall/gran/region command with *union* or\n > *interesect* regions that have convex points or edges resulting from\n > the union/intersection (convex points/edges in the union/intersection\n > due to a single sub-region are still OK). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Similarly, you should not define *union* or *intersert* regions\n > for use with this command that share an overlapping common face that\n > is part of the overall outer boundary (interior boundary is OK), even\n > if the face is smooth. E.g. two regions of style block in a *union*\n > region, where the two blocks overlap on one or more of their faces.\n > This is because LAMMPS discards points that are part of multiple\n > sub-regions when calculating wall/particle interactions, to avoid\n > double-counting the interaction. Having two coincident faces could\n > cause the face to become invisible to the particles. The solution is\n > to make the two faces differ by epsilon in their position. \n > \n\nThe energy of wall-particle interactions depends on the specified\nstyle.\n\nFor style *lj93*, the energy E is given by the 9/3 potential:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\frac{2}{15} \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^3 \\right]\n \\qquad r < r_c\n\nFor style *lj126*, the energy E is given by the 12/6 potential:\n\\[.. math::\\]\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj1043*, the energy E is given by the 10/4/3 potential:\n\\[.. math::\\]\n E = 2 \\pi \\epsilon \\left[ \\frac{2}{5} \\left(\\frac{\\sigma}{r}\\right)^{10} -\n \\left(\\frac{\\sigma}{r}\\right)^4 -\n \\frac{\\sqrt(2)\\sigma^3}{3\\left(r+\\left(0.61/\\sqrt(2)\\right)\\sigma\\right)^3}\\right]\n \\qquad r < r_c\n\nFor style *colloid*, the energy E is given by an integrated form of\nthe [pair_style colloid ](https://docs.lammps.org/pair_colloid.html) potential:\n\\[\\begin{align*} \n E = & \\epsilon \\left[ \\frac{\\sigma^{6}}{7560}\n \\left(\\frac{6R-D}{D^{7}} + \\frac{D+8R}{(D+2R)^{7}} \\right) \\right. \\\\\n & \\left. - \\frac{1}{6} \\left(\\frac{2R(D+R) + D(D+2R)\n \\left[ \\ln D - \\ln (D+2R) \\right]}{D(D+2R)} \\right) \\right] \\qquad r < r_c \\end{align*} \\]\nFor style *wall/harmonic*, the energy E is given by a harmonic spring\npotential (the distance parameter is ignored):\n\\[\n E = \\epsilon \\quad (r - r_c)^2 \\qquad r < r_c\\]\nFor style *wall/morse*, the energy E is given by the Morse potential:\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\nUnlike other styles, this requires three parameters (\\(D_0\\),\n\\(\\alpha\\), and \\(r_0\\) in this order) instead of two like\nfor the other wall styles.\n\nIn all cases, *r* is the distance from the particle to the region\nsurface, and Rc is the *cutoff* distance at which the particle and\nsurface no longer interact. The cutoff is always the last argument.\nThe energy of the wall potential is shifted so that the wall-particle\ninteraction energy is 0.0 at the cutoff distance.\n\nFor a full description of these wall styles, see fix_style\n[wall ](https://docs.lammps.org/fix_wall.html)\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and the region\nwall to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the interaction between atoms\nand the region wall to both the global pressure and per-atom stress of\nthe system via the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former\ncan be accessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault setting for this fix is [fix_modify virial no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar energy and a global 3-length vector\nof forces, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar energy is the sum of energy interactions\nfor all particles interacting with the wall represented by the region\nsurface. The 3 vector quantities are the x,y,z components of the\ntotal force acting on the wall due to the particles. The scalar and\nvector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", - "restrictions": " none\n", - "related": "[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/lj126 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/lj1043 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/colloid ](https://docs.lammps.org/fix_wall.html),\n[fix wall/harmonic ](https://docs.lammps.org/fix_wall.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html)\n" + "parameters": "* one or more keyword/value pairs may be listed\n* keyword = pair or shift or mix or table or table/disp or tabinner\n or tabinner/disp or tail or compute or nofdotr or special or\n compute/tally or neigh/trim \n *        pair value = sub-style N \n         sub-style = sub-style of [pair hybrid ](https://docs.lammps.org/pair_hybrid.html) \n         N = which instance of sub-style (1 to M), only specify if sub-style is used multiple times \n *        mix value = geometric or arithmetic or sixthpower \n *        shift value = yes or no \n *        table value = N \n         2\\^N = # of values in table \n *        table/disp value = N \n         2\\^N = # of values in table \n *        tabinner value = cutoff \n         cutoff = inner cutoff at which to begin table (distance units) \n *        tabinner/disp value = cutoff \n         cutoff = inner cutoff at which to begin table (distance units) \n *        tail value = yes or no \n *        compute value = yes or no \n *        nofdotr value = none \n *        special values = which wt1 wt2 wt3 \n         which = lj/coul or lj or coul \n         w1,w2,w3 = 1-2, 1-3, 1-4 weights from 0.0 to 1.0 inclusive \n *        compute/tally value = yes or no \n *        neigh/trim value = yes or no \n", + "examples": "\n```lmps\npair_modify shift yes mix geometric\npair_modify tail yes\npair_modify table 12\npair_modify pair lj/cut compute no\npair_modify pair tersoff compute/tally no\npair_modify pair lj/cut/coul/long 1 special lj/coul 0.0 0.0 0.0\npair_modify pair lj/cut/coul/long special lj 0.0 0.0 0.5 special coul 0.0 0.0 0.8333333\n```\n", + "html_filename": "pair_modify.html", + "short_description": "Modify the parameters of the currently defined pair style", + "description": "Modify the parameters of the currently defined pair style. If the\npair style is [hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), then the\nspecified parameters are by default modified for all the hybrid sub-styles.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior for hybrid pair styles can be changed by using the *pair*\n > keyword, which allows selection of a specific sub-style to apply all\n > remaining keywords to.\n > The *special* and *compute/tally* keywords can **only** be\n > used in conjunction with the *pair* keyword. See further details about\n > these 3 keywords below. \n > \n\nThe *mix* keyword affects pair coefficients for interactions between\natoms of type I and J, when I != J and the coefficients are not\nexplicitly set in the input script. Note that coefficients for I = J\nmust be set explicitly, either in the input script via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command or in the \"Pair Coeffs\" or \"PairIJ Coeffs\"\nsections of the [data file ](https://docs.lammps.org/read_data.html). For some pair styles it is not\nnecessary to specify coefficients when I != J, since a \"mixing\" rule\nwill create them from the I,I and J,J settings. The pair_modify\n*mix* value determines what formulas are used to compute the mixed\ncoefficients. In each case, the cutoff distance is mixed the same way\nas sigma.\n\nNote that not all pair styles support mixing and some mix options are\nnot available for certain pair styles. Also, there are additional\nrestrictions when using [pair style hybrid or hybrid/overlay](https://docs.lammps.org/pair_hybrid.html). See the page for individual pair styles for those\nrestrictions. Note also that the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nalso can be used to directly set coefficients for a specific I != J\npairing, in which case no mixing is performed. If possible, LAMMPS will\nprint an informational message about how many of the mixed pair\ncoefficients were generated and which mixing rule was applied.\n\n- mix *geometric*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\sqrt{\\epsilon_i \\epsilon_j} \\\\\n \\sigma_{ij} = & \\sqrt{\\sigma_i \\sigma_j} \\end{align*} \\]\n- mix *arithmetic*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\sqrt{\\epsilon_i \\epsilon_j} \\\\\n \\sigma_{ij} = & \\frac{1}{2} (\\sigma_i + \\sigma_j) \\end{align*} \\]\n- mix *sixthpower*\n\\[\\begin{align*} \n \\epsilon_{ij} = & \\frac{2 \\sqrt{\\epsilon_i \\epsilon_j} \\sigma_i^3 \\sigma_j^3}{\\sigma_i^6 + \\sigma_j^6} \\\\\n \\sigma_{ij} = & \\left(\\frac{1}{2} (\\sigma_i^6 + \\sigma_j^6) \\right)^{\\frac{1}{6}} \\end{align*} \\]\nThe *shift* keyword determines whether a Lennard-Jones potential is\nshifted at its cutoff to 0.0. If so, this adds an energy term to each\npairwise interaction which will be included in the thermodynamic\noutput, but does not affect pair forces or atom trajectories. See the\ndoc page for individual pair styles to see which ones support this\noption.\n\nThe *table* and *table/disp* keywords apply to pair styles with a\nlong-range Coulombic term or long-range dispersion term respectively;\nsee the page for individual styles to see which potentials support\nthese options. If N is non-zero, a table of length 2\\^N is\npre-computed for forces and energies, which can shrink their\ncomputational cost by up to a factor of 2. The table is indexed via a\nbit-mapping technique **Wolff1** and a linear\ninterpolation is performed between adjacent table values. In our\nexperiments with different table styles (lookup, linear, spline), this\nmethod typically gave the best performance in terms of speed and\naccuracy.\n\nThe choice of table length is a tradeoff in accuracy versus speed. A\nlarger N yields more accurate force computations, but requires more\nmemory which can slow down the computation due to cache misses. A\nreasonable value of N is between 8 and 16. The default value of 12\n(table of length 4096) gives approximately the same accuracy as the\nno-table (N = 0) option. For N = 0, forces and energies are computed\ndirectly, using a polynomial fit for the needed erfc() function\nevaluation, which is what earlier versions of LAMMPS did. Values\ngreater than 16 typically slow down the simulation and will not\nimprove accuracy; values from 1 to 8 give unreliable results.\n\nThe *tabinner* and *tabinner/disp* keywords set an inner cutoff above\nwhich the pairwise computation is done by table lookup (if tables are\ninvoked), for the corresponding Coulombic and dispersion tables\ndiscussed with the *table* and *table/disp* keywords. The smaller the\ncutoff is set, the less accurate the table becomes (for a given number\nof table values), which can require use of larger tables. The default\ncutoff value is sqrt(2.0) distance units which means nearly all\npairwise interactions are computed via table lookup for simulations\nwith \"real\" units, but some close pairs may be computed directly\n(non-table) for simulations with \"lj\" units.\n\nWhen the *tail* keyword is set to *yes*, certain pair styles will\nadd a long-range VanderWaals tail \"correction\" to the energy and\npressure. These corrections are bookkeeping terms which do not affect\ndynamics, unless a constant-pressure simulation is being performed.\nSee the page for individual styles to see which support this\noption. These corrections are included in the calculation and\nprinting of thermodynamic quantities (see the [thermo_style](https://docs.lammps.org/thermo_style.html) command). Their effect will also be included in\nconstant NPT or NPH simulations where the pressure influences the\nsimulation box dimensions (e.g. the [fix npt ](https://docs.lammps.org/fix_nh.html) and\n[fix nph ](https://docs.lammps.org/fix_nh.html) commands). The formulas used for the\nlong-range corrections come from equation 5 of **Sun**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The tail correction terms are computed at the beginning of each\n > run, using the current atom counts of each atom type. If atoms are\n > deleted (or lost) or created during a simulation, e.g. via the\n > [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) command, the correction factors are not\n > re-computed. If you expect the counts to change dramatically, you\n > can break a run into a series of shorter runs so that the\n > correction factors are re-computed more frequently. \n > \n\nSeveral additional assumptions are inherent in using tail corrections,\nincluding the following:\n\n* The simulated system is a 3d bulk homogeneous liquid. This option\n should not be used for systems that are non-liquid, 2d, have a slab\n geometry (only 2d periodic), or inhomogeneous.\n* G(r), the radial distribution function (rdf), is unity beyond the\n cutoff, so a fairly large cutoff should be used (i.e. 2.5 sigma for\n an LJ fluid), and it is probably a good idea to verify this\n assumption by checking the rdf. The rdf is not exactly unity beyond\n the cutoff for each pair of interaction types, so the tail\n correction is necessarily an approximation.\n\n The tail corrections are computed at the beginning of each\n simulation run. If the number of atoms changes during the run,\n e.g. due to atoms leaving the simulation domain, or use of the\n [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) command, then the corrections are not\n updated to reflect the changed atom count. If this is a large\n effect in your simulation, you should break the long run into\n several short runs, so that the correction factors are re-computed\n multiple times.\n\n* Thermophysical properties obtained from calculations with this\n option enabled will not be thermodynamically consistent with the\n truncated force-field that was used. In other words, atoms do not\n feel any LJ pair interactions beyond the cutoff, but the energy and\n pressure reported by the simulation include an estimated\n contribution from those interactions.\n\nThe *compute* keyword allows pairwise computations to be turned off,\neven though a [pair_style ](https://docs.lammps.org/pair_style.html) is defined. This is not\nuseful for running a real simulation, but can be useful for debugging\npurposes or for performing a [rerun ](https://docs.lammps.org/rerun.html) simulation, when you\nonly wish to compute partial forces that do not include the pairwise\ncontribution.\n\nTwo examples are as follows. First, this option allows you to perform\na simulation with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) with only a\nsubset of the hybrid sub-styles enabled. Second, this option allows\nyou to perform a simulation with only long-range interactions but no\nshort-range pairwise interactions. Doing this by simply not defining\na pair style will not work, because the [kspace_style](https://docs.lammps.org/kspace_style.html) command requires a Kspace-compatible pair style be\ndefined.\n\nThe *nofdotr* keyword allows to disable an optimization that computes\nthe global stress tensor from the total forces and atom positions\nrather than from summing forces between individual pairs of atoms.\n\n----------\n\nThe *pair* keyword can only be used with the [hybrid andhybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) pair styles. If used, it must appear\nfirst in the list of keywords.\n\nIts meaning is that all the following parameters will only be modified\nfor the specified sub-style. If the sub-style is defined multiple\ntimes, then an additional numeric argument *N* must also be specified,\nwhich is a number from 1 to M where M is the number of times the\nsub-style was listed in the [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html)\ncommand. The extra number indicates which instance of the sub-style\nthe remaining keywords will be applied to.\n\nThe *special* and *compute/tally* keywords can **only** be used in\nconjunction with the *pair* keyword and they must directly follow it.\nI.e. any other keyword, must appear after *pair*, *special*, and\n*compute/tally*.\n\nThe *special* keyword overrides the global [special_bonds ](https://docs.lammps.org/special_bonds.html)\n1-2, 1-3, 1-4 exclusion settings (weights) for the sub-style selected\nby the *pair* keyword.\n\nSimilar to the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, it takes\n4 arguments. The *which* argument can be *lj* to change only the\nnon-Coulomb weights (e.g. Lennard-Jones or Buckingham), *coul* to change\nonly the Coulombic settings, or *lj/coul* to change both to the same\nvalues. The *wt1,wt2,wt3* values are numeric weights from 0.0 to 1.0\ninclusive, for the 1-2, 1-3, and 1-4 bond topology neighbors, respectively.\nThe *special* keyword can be used multiple times, e.g. to set the *lj*\nand *coul* settings to different values.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *special* keyword is not compatible with pair styles from the\n > GPU or the INTEL package and attempting to use it will cause\n > an error. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Weights of exactly 0.0 or 1.0 in the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command have implications on the neighbor list construction, which\n > means that they cannot be overridden by using the *special* keyword.\n > One workaround for this restriction is to use the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command with weights like 1.0e-10 or 0.999999999 instead of 0.0 or 1.0,\n > respectively, which enables to reset each them to any value between 0.0\n > and 1.0 inclusively. Otherwise you can set **all** global weights to\n > an arbitrary number between 0.0 or 1.0, like 0.5, and then you have\n > to override **all** *special* settings for **all** sub-styles which use\n > the 1-2, 1-3, and 1-4 exclusion weights in their force/energy computation. \n > \n\nThe *compute/tally* keyword disables or enables registering [compute\\*/tally ](https://docs.lammps.org/compute_tally.html) computes for the sub-style specified by\nthe *pair* keyword. Use *no* to disable, or *yes* to enable.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"pair_modify pair compute/tally\" command must be issued\n > **before** the corresponding compute style is defined. \n > \n\n\nThe *neigh/trim* keyword controls whether an explicit cutoff is set for\neach neighbor list request issued by individual pair sub-styles when\nusing [pair hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). When this keyword is\nset to *no*, then the cutoff of each pair sub-style neighbor list will\nbe set equal to the largest cutoff, even if a shorter cutoff is\nspecified for a particular sub-style. If possible the neighbor list\nwill be copied directly from another list. When this keyword is set to\n*yes* then the cutoff of the neighbor list will be explicitly set to the\nvalue requested by the pair sub-style, and if possible the list will be\ncreated by trimming neighbors from another list with a longer cutoff,\notherwise a new neighbor list will be created with the specified cutoff.\nThe *yes* option can be faster when there are multiple pair styles with\ndifferent cutoffs since the number of pair-wise distance checks between\nneighbors is reduced (but the time required to build the neighbor lists\nis increased). The *no* option could be faster when two or more neighbor\nlists have similar (but not exactly the same) cutoffs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"pair_modify neigh/trim\" command *only* applies when there are\n > multiple pair sub-styles for the same atoms with different cutoffs,\n > i.e. when using pair style hybrid/overlay. If you have different\n > cutoffs for different pairs for atoms type, the [neighbor style > multi ](https://docs.lammps.org/neighbor.html) should be used to create optimized neighbor lists. \n > \n\n----------\n\n**(Wolff1)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n \n**(Sun)** Sun, J Phys Chem B, 102, 7338-7364 (1998). \n ", + "restrictions": "You cannot use *shift* yes with *tail* yes, since those are\nconflicting options. You cannot use *tail* yes with 2d simulations.\nYou cannot use *special* with pair styles from the GPU or\nINTEL package.\n", + "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html),\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [thermo_style ](https://docs.lammps.org/thermo_style.html),\n[compute \\*/tally ](https://docs.lammps.org/compute_tally.html), [neighbor multi ](https://docs.lammps.org/neighbor.html)\n" }, { "command": [ - "fix rheo/pressure" + "fix controller" ], "syntax": [ - "fix ID group-ID rheo/pressure type1 pstyle1 args1 ... typeN pstyleN argsN" + "fix ID group-ID controller Nevery alpha Kp Ki Kd pvar setpoint cvar" ], "args": [ [ @@ -29537,164 +28457,213 @@ export const command_docs = [ "choices": [] }, { - "arg": "rheo/pressure", + "arg": "controller", "type": 1, "choices": [] }, { - "arg": "type1", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "pstyle1", + "arg": "alpha", "type": 2, "choices": [] }, { - "arg": "args1", + "arg": "Kp", "type": 2, "choices": [] }, { - "arg": "typeN", + "arg": "Ki", + "type": 2, + "choices": [] + }, + { + "arg": "Kd", + "type": 2, + "choices": [] + }, + { + "arg": "pvar", "type": 2, "choices": [] }, { - "arg": "pstyleN", + "arg": "setpoint", "type": 2, "choices": [] }, { - "arg": "argsN", + "arg": "cvar", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rheo/pressure = style name of this fix command\n* one or more types and pressure styles must be appended\n* types = lists of types (see below)\n* pstyle = linear or taitwater or cubic \n *        linear args = none \n *        taitwater args = none \n *        cubic args = cubic prefactor \\(A_3\\) (pressure/density\\^2) \n", - "examples": "\n```lmps\nfix 1 all rheo/pressure * linear\nfix 1 all rheo/pressure 1 linear 2 cubic 10.0\n```\n", - "html_filename": "fix_rheo_pressure.html", - "short_description": "\nThis fix defines a pressure equation of state for RHEO particles", - "description": "\nThis fix defines a pressure equation of state for RHEO particles. One can\ndefine different equations of state for different atom types. An equation\nmust be specified for every atom type.\n\nOne first defines the atom *types*. A wild-card asterisk can be used in place\nof or in conjunction with the *types* argument to set the coefficients for\nmultiple pairs of atom types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\"\nor \"m\\*n\". If \\(N\\) is the number of atom types, then an asterisk with\nno numeric values means all types from 1 to \\(N\\). A leading asterisk\nmeans all types from 1 to n (inclusive). A trailing asterisk means all types\nfrom m to \\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe *types* definition is followed by the pressure style, *pstyle*. Current\noptions *linear*, *taitwater*, and *cubic*. Style *linear* is a linear\nequation of state with a particle pressure \\(P\\) calculated as\n\\[\n P = c (\\rho - \\rho_0)\\]\nwhere \\(c\\) is the speed of sound, \\(\\rho_0\\) is the equilibrium density,\nand \\(\\rho\\) is the current density of a particle. The numerical values of\n\\(c\\) and \\(\\rho_0\\) are set in [fix rheo ](https://docs.lammps.org/fix_rheo.html). Style *cubic*\nis a cubic equation of state which has an extra argument \\(A_3\\),\n\\[\n P = c ((\\rho - \\rho_0) + A_3 (\\rho - \\rho_0)^3) .\\]\nStyle *taitwater* is Tait's equation of state:\n\\[\n P = \\frac{c^2 \\rho_0}{7} \\biggl[\\left(\\frac{\\rho}{\\rho_0}\\right)^{7} - 1\\biggr].\\]\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix must be used with an atom style that includes density\nsuch as atom_style rheo or rheo/thermal. This fix must be used in\nconjunction with [fix rheo ](https://docs.lammps.org/fix_rheo.html). The fix group must be\nset to all. Only one instance of fix rheo/pressure can be defined.\n\nThis fix is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[pair rheo ](https://docs.lammps.org/pair_rheo.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* controller = style name of this fix command\n* Nevery = invoke controller every this many timesteps\n* alpha = coupling constant for PID equation (see units discussion below)\n* Kp = proportional gain in PID equation (unitless)\n* Ki = integral gain in PID equation (unitless)\n* Kd = derivative gain in PID equation (unitless)\n* pvar = process variable of form c_ID, c_ID[I], f_ID, f_ID[I], or v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID \n *        v_name = value calculated by an equal-style variable with name \n* setpoint = desired value of process variable (same units as process variable)\n* cvar = name of control variable \n", + "examples": "\n```lmps\nfix 1 all controller 100 1.0 0.5 0.0 0.0 c_thermo_temp 1.5 tcontrol\nfix 1 all controller 100 0.2 0.5 0 100.0 v_pxxwall 1.01325 xwall\nfix 1 all controller 10000 0.2 0.5 0 2000 v_avpe -3.785 tcontrol\n```\n", + "html_filename": "fix_controller.html", + "short_description": "This fix enables control of a LAMMPS simulation using a control loop\nfeedback mechanism known as a proportional-integral-derivative (PID)\ncontroller", + "description": "This fix enables control of a LAMMPS simulation using a control loop\nfeedback mechanism known as a proportional-integral-derivative (PID)\ncontroller. The basic idea is to define a \"process variable\" which is\na quantity that can be monitored during a running simulation. A\ndesired target value is chosen for the process variable. A \"control\nvariable\" is also defined which is an adjustable attribute of the\nrunning simulation, which the process variable will respond to. The\nPID controller continuously adjusts the control variable based on the\ndifference between the process variable and the target.\n\nHere are examples of ways in which this fix can be used. The\nexamples/pid directory contains a script that implements the simple\nthermostat.\n\n| | | |\n|---|---|---|\n| Goal | process variable | control variable |\n| Simple thermostat | instantaneous T | thermostat target T |\n| Find melting temperature | average PE per atom | thermostat target T |\n| Control pressure in non-periodic system | force on wall | position of wall |\n| | | |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this fix to work, the control variable must actually induce\n > a change in a running LAMMPS simulation. Typically this will only\n > occur if there is some other command (e.g. a thermostat fix) which\n > uses the control variable as an input parameter. This could be done\n > directly or indirectly, e.g. the other command uses a variable as\n > input whose formula uses the control variable. The other command\n > should alter its behavior dynamically as the variable changes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If there is a command you think could be used in this fashion,\n > but does not currently allow a variable as an input parameter, please\n > notify the LAMMPS developers. It is often not difficult to enable a\n > command to use a variable as an input parameter. \n > \n\nThe group specified with this command is ignored. However, note that\nthe process variable may be defined by calculations performed by\ncomputes and fixes which store their own \"group\" definitions.\n\nThe PID controller is invoked once each *Nevery* timesteps.\n\nThe PID controller is implemented as a discretized version of\nthe following dynamic equation:\n\\[\n \\frac{dc}{dt} = -\\alpha (K_p e + K_i \\int_0^t e \\, dt + K_d \\frac{de}{dt} )\\]\nwhere *c* is the continuous time analog of the control variable,\n*e* =\\ *pvar* -\\ *setpoint* is the error in the process variable, and\n\\(\\alpha\\), \\(K_p\\), \\(K_i\\) , and \\(K_d\\) are constants\nset by the corresponding\nkeywords described above. The discretized version of this equation is:\n\\[\n c_n = c_{n-1} -\\alpha \\left( K_p \\tau e_n + K_i \\tau^2 \\sum_{i=1}^n e_i + K_d (e_n - e_{n-1}) \\right)\\]\nwhere \\(\\tau = \\mathtt{Nevery} \\cdot \\mathtt{timestep}\\) is the time\ninterval between updates,\nand the subscripted variables indicate the values of *c* and *e* at\nsuccessive updates.\n\nFrom the first equation, it is clear that if the three gain values\n\\(K_p\\), \\(K_i\\), \\(K_d\\) are dimensionless constants,\nthen \\(\\alpha\\) must have\nunits of [unit *cvar* ]/[unit *pvar* ]/[unit time] e.g. [ eV/K/ps\n]. The advantage of this unit scheme is that the value of the\nconstants should be invariant under a change of either the MD timestep\nsize or the value of *Nevery* . Similarly, if the LAMMPS [unit style ](https://docs.lammps.org/units.html) is changed, it should only be necessary to change\nthe value of \\(\\alpha\\) to reflect this, while leaving \\(K_p\\),\n\\(K_i\\), and \\(K_d\\) unaltered.\n\nWhen choosing the values of the four constants, it is best to first\npick a value and sign for \\(\\alpha\\) that is consistent with the\nmagnitudes and signs of *pvar* and *cvar* . The magnitude of \\(K_p\\)\nshould then be tested over a large positive range keeping \\(K_i = K_d =0\\).\nA good value for \\(K_p\\) will produce a fast response in *pvar*,\nwithout overshooting the *setpoint* . For many applications, proportional\nfeedback is sufficient, and so \\(K_i = K_d =0\\) can be used. In cases\nwhere there is a substantial lag time in the response of *pvar* to a change\nin *cvar*, this can be counteracted by increasing \\(K_d\\). In situations\nwhere *pvar* plateaus without reaching *setpoint*, this can be\ncounteracted by increasing \\(K_i\\). In the language of Charles Dickens,\n\\(K_p\\) represents the error of the present, \\(K_i\\) the error of\nthe past, and \\(K_d\\) the error yet to come.\n\nBecause this fix updates *cvar*, but does not initialize its value,\nthe initial value \\(c_0\\) is that assigned by the user in the input script via\nthe [internal-style variable ](https://docs.lammps.org/variable.html) command. This value is\nused (by every other LAMMPS command that uses the variable) until this\nfix performs its first update of *cvar* after *Nevery* timesteps. On\nthe first update, the value of the derivative term is set to zero,\nbecause the value of \\(e_{n-1}\\) is not yet defined.\n\n----------\n\nThe process variable *pvar* can be specified as the output of a\n[compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation of a\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity.\n\nIf *pvar* begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script and which generates a global\nscalar or vector. See the individual [compute ](https://docs.lammps.org/compute.html) doc page\nfor details. If no bracketed integer is appended, the scalar\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith value of the vector calculated by the compute is\nused. Users can also write code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf *pvar* begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script and which generates a global\nscalar or vector. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when fix controller\nreferences the values, or else an error results. If no bracketed integer\nis appended, the scalar calculated by the fix is used. If a bracketed\ninteger is appended, the Ith value of the vector calculated by the fix\nis used. Users can also write code for their own fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf *pvar* begins with \"v\\_\", a variable name must follow which has been\npreviously defined in the input script. Only equal-style variables\ncan be referenced. See the [variable ](https://docs.lammps.org/variable.html) command for\ndetails. Note that variables of style *equal* define a formula which\ncan reference individual atom properties or thermodynamic keywords, or\nthey can invoke other computes, fixes, or variables when they are\nevaluated, so this is a very general means of specifying the process\nvariable.\n\nThe target value *setpoint* for the process variable must be a numeric\nvalue, in whatever units *pvar* is defined for.\n\nThe control variable *cvar* must be the name of an [internal-style variable ](https://docs.lammps.org/variable.html) previously defined in the input script. Note\nthat it is not specified with a \"v\\_\" prefix, just the name of the\nvariable. It must be an internal-style variable, because this fix\nupdates its value directly. Note that other commands can use an\nequal-style versus internal-style variable interchangeably.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix produces a global vector with 3 values which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The values can be\naccessed on any timestep, though they are only updated on timesteps\nthat are a multiple of *Nevery* .\n\nThe three values are the most recent updates made to the control\nvariable by each of the 3 terms in the PID equation above. The first\nvalue is the proportional term, the second is the integral term, the\nthird is the derivative term.\n\nThe units of the vector values will be whatever units the control\nvariable is in. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" }, { "command": [ - "fix drude/transform/direct" + "pair_style ylz" ], "syntax": [ - "fix ID group-ID style keyword value ..." + "pair_style ylz cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "ylz", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style ylz 2.6\npair_coeff * * 1.0 1.0 4 3 0.0 2.6\n```\n", + "html_filename": "pair_ylz.html", + "short_description": "\nThe *ylz* (Yuan-Li-Zhang) style computes an anisotropic interaction\nbetween pairs of coarse-grained particles considering the relative\nparticle orientations", + "description": "\nThe *ylz* (Yuan-Li-Zhang) style computes an anisotropic interaction\nbetween pairs of coarse-grained particles considering the relative\nparticle orientations. This potential was originally developed as a\nparticle-based solvent-free model for biological membranes\n**Yuan**. Unlike [pair_style gayberne](https://docs.lammps.org/pair_gayberne.html), whose orientation dependence is strictly derived from\nthe closest distance between two ellipsoidal rigid bodies, the\norientation-dependence of this pair style is mathematically defined such\nthat the particles can self-assemble into one-particle-thick fluid\nmembranes. The potential of this pair style is described by:\n\\[\n U ( \\mathbf{r}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ) =\\left\\{\\begin{matrix} {u}_R(r)+\\left [ 1-\\phi (\\mathbf{\\hat{r}}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ) \\right ]\\epsilon, ~~ r<{r}_{min} \\\\ {u}_A(r)\\phi (\\mathbf{\\hat{r}}_{ij}, \\mathbf{n}_i, \\mathbf{n}_j ),~~ {r}_{min} ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >only the Drude core atoms need to be in the group specified for\n > this fix. A Drude electron will be transformed together with its core\n > even if it is not itself in the group. It is safe to include Drude\n > electrons or non-polarizable atoms in the group. The non-polarizable\n > atoms will simply not be transformed. \n > \n\n----------\n\nThis fix does NOT perform time integration. It only transform masses,\ncoordinates, velocities and forces. Thus you must use separate time\nintegration fixes, like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix npt ](https://docs.lammps.org/fix_nh.html) to actually update the velocities and positions of\natoms. In order to thermalize the reduced degrees of freedom at\ndifferent temperatures, two Nose-Hoover thermostats must be defined,\nacting on two distinct groups.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *fix drude/transform/direct* command must appear before any\n > Nose-Hoover thermostatting fixes. The *fix drude/transform/inverse*\n > command must appear after any Nose-Hoover thermostatting fixes. \n > \n\nExample:\n\n```lmps\nfix fDIRECT all drude/transform/direct\nfix fNVT gCORES nvt temp 300.0 300.0 100\nfix fNVT gDRUDES nvt temp 1.0 1.0 100\nfix fINVERSE all drude/transform/inverse\ncompute TDRUDE all temp/drude\nthermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]\n```\nIn this example, *gCORES* is the group of the atom cores and *gDRUDES*\nis the group of the Drude particles (electrons). The centers of mass\nof the Drude oscillators will be thermostatted at 300.0 and the\ninternal degrees of freedom will be thermostatted at 1.0. The\ntemperatures of cores and Drude particles, in center-of-mass and\nrelative coordinates, are calculated using [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n\nIn addition, if you want to use a barostat to simulate a system at\nconstant pressure, only one of the Nose-Hoover fixes must be *npt*,\nthe other one should be *nvt* . You must add a *compute temp/com* and a\n*fix_modify* command so that the temperature of the *npt* fix be just\nthat of its group (the Drude cores) but the pressure be the overall\npressure *thermo_press*.\n\nExample:\n\n```lmps\ncompute cTEMP_CORE gCORES temp/com\nfix fDIRECT all drude/transform/direct\nfix fNPT gCORES npt temp 298.0 298.0 100 iso 1.0 1.0 500\nfix_modify fNPT temp cTEMP_CORE press thermo_press\nfix fNVT gDRUDES nvt temp 5.0 5.0 100\nfix fINVERSE all drude/transform/inverse\n```\nIn this example, *gCORES* is the group of the atom cores and *gDRUDES*\nis the group of the Drude particles. The centers of mass of the Drude\noscillators will be thermostatted at 298.0 and the internal degrees of\nfreedom will be thermostatted at 5.0. The whole system will be\nbarostatted at 1.0.\n\nIn order to avoid the flying ice cube problem (irreversible transfer\nof linear momentum to the center of mass of the system), you may need\nto add a *fix momentum* command:\n\n```lmps\nfix fMOMENTUM all momentum 100 linear 1 1 1\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\n**(Lamoureux1)** Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003). \n ", - "restrictions": " none\n", - "related": "[fix drude ](https://docs.lammps.org/fix_drude.html),\n[fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/strain/rate = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/strain/rate\n```\n", + "html_filename": "compute_smd_tlsph_strain_rate.html", + "short_description": "Define a computation that calculates the rate of the strain tensor for\nparticles interacting via the Total-Lagrangian SPH pair style", + "description": "Define a computation that calculates the rate of the strain tensor for\nparticles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nTotal-Lagrangian SPH pair style.\n", + "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html), [compute smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" }, { "command": [ - "clear" + "pair_style morse", + "pair_style morse/gpu", + "pair_style morse/omp", + "pair_style morse/opt", + "pair_style morse/kk", + "pair_style morse/smooth/linear", + "pair_style morse/smooth/linear/omp" ], "syntax": [ - "clear" + "pair_style style args" ], "args": [ [ { - "arg": "clear", + "arg": "pair_style", "type": 1, "choices": [] + }, + { + "arg": "morse/smooth/linear/omp", + "type": 3, + "choices": [ + "morse", + "morse/smooth/linear", + "morse/soft", + "morse/gpu", + "morse/omp", + "morse/opt", + "morse/kk", + "morse/smooth/linear/omp" + ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\n# (commands for 1st simulation)\nclear\n# (commands for 2nd simulation)\n```\n", - "html_filename": "clear.html", - "short_description": "This command deletes all atoms, restores all settings to their default\nvalues, and frees all memory allocated by LAMMPS", - "description": "This command deletes all atoms, restores all settings to their default\nvalues, and frees all memory allocated by LAMMPS. Once a clear command\nhas been executed, it is almost as if LAMMPS were starting over, with\nonly the exceptions noted below. This command enables multiple jobs to\nbe run sequentially from one input script.\n\nThese settings are not affected by a clear command: the working\ndirectory ([shell ](https://docs.lammps.org/shell.html) command), log file status ([log](https://docs.lammps.org/log.html) command), echo status ([echo ](https://docs.lammps.org/echo.html) command), and input\nscript variables except for *atomfile* style variables ([variable](https://docs.lammps.org/variable.html) command).\n", - "restrictions": "none\n", - "related": "none\n" + "parameters": "* style = morse or morse/smooth/linear or morse/soft\n* args = list of arguments for a particular style \n *     morse args = cutoff \n      cutoff = global cutoff for Morse interactions (distance units) \n *     morse/smooth/linear args = cutoff \n      cutoff = global cutoff for Morse interactions (distance units) \n", + "examples": "\n```lmps\npair_style morse 2.5\npair_style morse/smooth/linear 2.5\npair_coeff * * 100.0 2.0 1.5\npair_coeff 1 1 100.0 2.0 1.5 3.0\n```\n", + "html_filename": "pair_morse.html", + "short_description": "Style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", + "description": "Style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global morse\ncutoff is used.\n\n----------\n\nThe *morse/smooth/linear* variant is similar to the lj/smooth/linear\nvariant in that it adds to the potential a shift and a linear term\nso that both, potential energy and force, go to zero at the cut-off:\n\\[\\begin{align*} \n \\phi\\left(r\\right) & = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right] \\qquad r < r_c \\\\\n E\\left(r\\right) & = \\phi\\left(r\\right) - \\phi\\left(r_c\\right) - \\left(r - r_c\\right) \\left.\\frac{d\\phi}{d r} \\right|_{r=r_c} \\qquad r < r_c \\end{align*} \\]\nThe syntax of the pair_style and pair_coeff commands are the same for\nthe *morse* and *morse/smooth/linear* styles.\n\n----------\n\nA version of the *morse* style with a soft core, *morse/soft*,\nsuitable for use in free energy calculations, is part of the FEP\npackage and is documented with the [pair_style */soft](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is only available if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNone of these pair styles support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nAll of these pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table options are not relevant for\nthe Morse pair styles.\n\nNone of these pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nAll of these pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "The *morse/smooth/linear* pair style is only enabled if LAMMPS was\nbuilt with the EXTRA-PAIR package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\n" }, { "command": [ - "fix nvt/sphere", - "fix nvt/sphere/omp" + "thermo_modify" ], "syntax": [ - "fix ID group-ID nvt/sphere keyword value ..." + "thermo_modify keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "thermo_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "nvt/sphere", + "arg": "triclinic/general", "type": 3, "choices": [ - "nvt/sphere", - "nvt/sphere/omp" + "lost", + "lost/bond", + "warn", + "norm", + "flush", + "line", + "colname", + "format", + "temp", + "press", + "triclinic/general" ] }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, { "arg": "value", "type": 2, @@ -29702,77 +28671,66 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sphere = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n* NOTE: additional thermostat and dipole related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all nvt/sphere temp 300.0 300.0 100.0\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 disc\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 drag 0.2\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 update dipole\n```\n", - "html_filename": "fix_nvt_sphere.html", - "short_description": "Perform constant NVT integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover temperature thermostat", - "description": "Perform constant NVT integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover temperature thermostat. V is volume; T\nis temperature. This creates a system trajectory consistent with the\ncanonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the spherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/sphere\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/sphere\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", - "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix npt_sphere ](https://docs.lammps.org/fix_npt_sphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* one or more keyword/value pairs may be listed\n* keyword = lost or lost/bond or warn or norm or flush or line or colname or format or temp or press or triclinic/general \n *        lost value = error or warn or ignore \n *        lost/bond value = error or warn or ignore \n *        warn value = ignore or reset or default or a number \n *        norm value = yes or no \n *        flush value = yes or no \n *        line value = one or multi or yaml \n *        colname values = ID string, or default \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a thermo keyword or reference to compute, fix, property or variable. \n *        format values = line string, int string, float string, ID string, or none \n         string = C-style format string \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or an integer range such as 2*6 (negative values are not allowed) \n         or a thermo keyword or reference to compute, fix, property or variable. \n *        temp value = compute ID that calculates a temperature \n *        press value = compute ID that calculates a pressure \n *        triclinic/general arg = yes or no \n", + "examples": "\n```lmps\nthermo_modify lost ignore flush yes\nthermo_modify temp myTemp format 3 %15.8g\nthermo_modify temp myTemp format line \"%ld %g %g %15.8g\"\nthermo_modify line multi format float %g\nthermo_modify line yaml format none\nthermo_modify colname 1 Timestep colname -2 Pressure colname f_1[1] AvgDensity\n```\n", + "html_filename": "thermo_modify.html", + "short_description": "Set options for how thermodynamic information is computed and printed by\nLAMMPS", + "description": "Set options for how thermodynamic information is computed and printed by\nLAMMPS.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These options apply to the *currently defined* thermo style. When\n > you specify a [thermo_style ](https://docs.lammps.org/thermo_style.html) command, all\n > thermodynamic settings are restored to their default values,\n > including those previously reset by a thermo_modify command. Thus if\n > your input script specifies a thermo_style command, you should use\n > the thermo_modify command **after** it. \n > \n\nThe *lost* keyword determines whether LAMMPS checks for lost atoms each\ntime it computes thermodynamics and what it does if atoms are lost. An\natom can be \"lost\" if it moves across a non-periodic simulation box\n[boundary ](https://docs.lammps.org/boundary.html) or if it moves more than a box length outside\nthe simulation domain (or more than a processor subdomain length)\nbefore reneighboring occurs. The latter case is typically due to bad\ndynamics (e.g., too large a time step and/or huge forces and velocities). If\nthe value is *ignore*, LAMMPS does not check for lost atoms. If the\nvalue is *error* or *warn*, LAMMPS checks and either issues an error or\nwarning. The simulation will exit with an error and continue with a warning.\nA warning will only be issued once, the first time an atom is lost.\nThis can be a useful debugging option.\n\nThe *lost/bond* keyword determines whether LAMMPS throws an error or\nnot if an atom in a bonded interaction (bond, angle, etc) cannot be\nfound when it creates bonded neighbor lists. By default this is a\nfatal error. However in some scenarios it may be desirable to only\nissue a warning or ignore it and skip the computation of the missing\nbond, angle, etc. An example would be when gas molecules in a vapor\nare drifting out of the box through a fixed boundary condition (see\nthe [boundary ](https://docs.lammps.org/boundary.html) command). In this case one atom may be\ndeleted before the rest of the molecule is, on a later timestep.\n\nThe *warn* keyword allows you to control whether LAMMPS will print\nwarning messages and how many of them. Most warning messages are only\nprinted by MPI rank 0. They are usually pointing out important issues\nthat should be investigated, but LAMMPS cannot determine for\ncertain whether they are an indication of an error.\n\nSome warning messages are printed during a run (or immediately before)\neach time a specific MPI rank encounters the issue (e.g., bonds that are\nstretched too far or dihedrals in extreme configurations). These number\nof these can quickly blow up the size of the log file and screen output.\nThus, a limit of 100 warning messages is applied by default. The warning\ncount is applied to the entire input unless reset with a ``thermo_modify\nwarn reset`` command. If there are more warnings than the limit, LAMMPS\nwill print one final warning that it will not print any additional\nwarning messages.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The warning limit is enforced on either the per-processor count or\n > the total count across all processors. For efficiency reasons,\n > however, the total count is only updated at steps with thermodynamic\n > output. Thus when running on a large number of processors in\n > parallel, the total number of warnings printed can be significantly\n > larger than the given limit. \n > \n\nAny number after the keyword *warn* will change the warning limit\naccordingly. With the value *ignore* all warnings will be suppressed,\nwith the value *always* no limit will be applied and warnings will\nalways be printed, with the value *reset* the internal warning counter\nwill be reset to zero, and with the value *default*, the counter is\nreset and the limit set to 100. An example usage of either *reset* or\n*default* would be to re-enable warnings that were disabled or have\nreached the limit during equilibration, where the warnings would be\nacceptable while the system is still adjusting, but then change to all\nwarnings for the production run, where they would indicate problems that\nwould require a closer look at what is causing them.\n\nThe *norm* keyword determines whether various thermodynamic output\nvalues are normalized by the number of atoms or not, depending on\nwhether it is set to *yes* or *no* . Different unit styles have\ndifferent defaults for this setting (see below). Even if *norm* is set\nto *yes*, a value is only normalized if it is an \"extensive\" quantity,\nmeaning that it scales with the number of atoms in the system. For the\nthermo keywords described by the page for the [thermo_style](https://docs.lammps.org/thermo_style.html) command, all energy-related keywords are extensive, such\nas *pe* or *ebond* or *enthalpy* . Other keywords such as *temp* or\n*press* are \"intensive\" meaning their value is independent (in a\nstatistical sense) of the number of atoms in the system and thus are\nnever normalized. For thermodynamic output values extracted from fixes\nand computes in a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command, the\npage for the individual [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html)\nlists whether the value is \"extensive\" or \"intensive\" and thus whether\nit is normalized. Thermodynamic output values calculated by a variable\nformula are assumed to be \"intensive\" and thus are never normalized.\nYou can always include a divide by the number of atoms in the variable\nformula if this is not the case.\n\nThe *flush* keyword invokes a flush operation after thermodynamic info\nis written to the screen and log file. This ensures the output is\nupdated and not buffered (by the application) even if LAMMPS halts\nbefore the simulation completes. Please note that this does not affect\nbuffering by the OS or devices, so you may still lose data in case the\nsimulation stops due to a hardware failure.\n\nThe *line* keyword determines whether thermodynamics will be output as a\nseries of numeric values on one line (\"one\"), in a multi-line format\nwith 3 quantities with text strings per line and a dashed-line header\ncontaining the timestep and CPU time (\"multi\"), or in a YAML format\nblock (\"yaml\"). This modify option overrides the *one*, *multi*, or\n*yaml* thermo_style settings.\n\nThe *colname* keyword can be used to change the default header keyword\nfor a column or field of thermodynamic output. The setting for *ID\nstring* replaces the default text with the provided string. *ID* can be\na positive integer when it represents the column number counting from\nthe left, a negative integer when it represents the column number from\nthe right (i.e., \\(-1\\) is the last column/keyword), or a thermo keyword\n(or compute, fix, property, or variable reference) and then it replaces the\nstring for that specific thermo keyword.\n\nThe *colname* keyword can be used multiple times. If multiple *colname*\nsettings refer to the same keyword, the last setting has precedence. A\nsetting of *default* clears all previous settings, reverting all values\nto their default values.\n\nThe *format* keyword can be used to change the default numeric format of\nany of quantities the [thermo_style ](https://docs.lammps.org/thermo_style.html) command\noutputs. All the specified format strings are C-style formats (i.e., as\nused by the C/C++ printf() command). The *line* keyword takes a single\nargument which is the format string for the entire line of thermo\noutput, with \\(N\\) fields, which you must enclose in quotes if it is more\nthan one field. The *int* and *float* keywords take a single format\nargument and are applied to all integer or floating-point quantities\noutput. The setting for *ID string* also takes a single format argument\nthat is used for the indexed value in each line. The interpretation is\nthe same as for *colname* (i.e., a positive integer is the n-th value\ncorresponding to the n-th thermo keyword, a negative integer is counting\nbackwards, and a string matches the entry with the thermo keyword).\nFor example, the fifth column is output in high precision for\n\"format 5 %20.15g\", and the pair energy for \"format epair %20.15g\".\nThe *ID* field can be a range, such as \"3\\*6\", \"*\", \"2*\", or \"\\*3\";\nin such cases, all fields in the range (inclusive) are set to the specified\nformat string. Ranges containing negative numbers are not supported.\n\nThe *format* keyword can be used multiple times. The precedence is\nthat for each value in a line of output, the *ID* format (if specified)\nis used, else the *int* or *float* setting (if specified) is used,\nelse the *line* setting (if specified) for that value is used, else\nthe default setting is used. A setting of *none* clears all previous\nsettings, reverting all values to their default format.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The thermo output values *step* and *atoms* are stored internally as\n > 8-byte signed integers, rather than the usual 4-byte signed integers.\n > When specifying the *format int* option you can use a \"%d\"-style\n > format identifier in the format string and LAMMPS will convert this\n > to the corresponding 8-byte form when it is applied to those\n > keywords. However, when specifying the *line* option or *format ID\n > string* option for *step* and *natoms*, you should specify a format\n > string appropriate for an 8-byte signed integer (i.e., one with \"%ld\"\n > or \"%lld\", depending on the platform). \n > \n\nThe *temp* keyword is used to determine how thermodynamic temperature is\ncalculated, which is used by all thermo quantities that require a\ntemperature (\"temp\", \"press\", \"ke\", \"etotal\", \"enthalpy\", \"pxx\", etc).\nThe specified compute ID must have been previously defined by the user\nvia the [compute ](https://docs.lammps.org/compute.html) command and it must be a style of\ncompute that calculates a temperature. As described in the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command, thermo output uses a default\ncompute for temperature with ID = *thermo_temp*. This option allows the\nuser to override the default.\n\nThe *press* keyword is used to determine how thermodynamic pressure is\ncalculated, which is used by all thermo quantities that require a\npressure (\"press\", \"enthalpy\", \"pxx\", etc). The specified compute ID\nmust have been previously defined by the user via the [compute](https://docs.lammps.org/compute.html) command and it must be a style of compute that calculates a\npressure. As described in the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand, thermo output uses a default compute for pressure with ID =\n*thermo_press*. This option allows the user to override the default.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The *temp*\n > keyword will override this (for the pressure compute being used by\n > thermodynamics), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe *triclinic/general* keyword can only be used with a value of *yes*\nif the simulation box was created as a general triclinic box. See the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed\nexplanation of orthogonal, restricted triclinic, and general triclinic\nsimulation boxes.\n\nIf this keyword is *yes*, the output of the simulation box edge\nvectors and the pressure tensor components for the system are\naffected. These are specified by the *avec,bvec,cvec* and\n*pxx,pyy,pzz,pxy,pxz,pyz* keywords of the [thermo_style](https://docs.lammps.org/thermo_style.html) command. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n", + "restrictions": "none\n", + "related": "[thermo ](https://docs.lammps.org/thermo.html), [thermo_style ](https://docs.lammps.org/thermo_style.html)\n" }, { "command": [ - "variable" + "dihedral_style table", + "dihedral_style table/omp", + "dihedral_style table/cut" ], "syntax": [ - "variable name style args ..." + "dihedral_style style interpolation Ntable" ], "args": [ [ { - "arg": "variable", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "name", - "type": 2, - "choices": [] - }, - { - "arg": "atom", + "arg": "table/omp", "type": 3, "choices": [ - "delete", - "atomfile", - "file", - "format", - "getenv", - "index", - "internal", - "loop", - "python", - "string", - "timer", - "uloop", - "universe", - "world", - "equal", - "vector", - "atom" + "table", + "table/cut", + "table/omp" ] }, { - "arg": "args", + "arg": "interpolation", + "type": 2, + "choices": [] + }, + { + "arg": "Ntable", "type": 2, "choices": [] } ] ], - "parameters": "* name = name of variable to define\n* style = delete or atomfile or file or format or getenv or index or internal or loop or python or string or timer or uloop or universe or world or equal or vector or atom \n *        delete = no args \n *        atomfile arg = filename \n *        file arg = filename \n *        format args = vname fstr \n         vname = name of equal-style variable to evaluate \n         fstr = C-style format string \n *        getenv arg = one string \n *        index args = one or more strings \n *        internal arg = numeric value \n *        loop args = N \n         N = integer size of loop, loop from 1 to N inclusive \n *        loop args = N pad \n         N = integer size of loop, loop from 1 to N inclusive \n         pad = all values will be same length, e.g. 001, 002, ..., 100 \n *        loop args = N1 N2 \n         N1,N2 = loop from N1 to N2 inclusive \n *        loop args = N1 N2 pad \n         N1,N2 = loop from N1 to N2 inclusive \n         pad = all values will be same length, e.g. 050, 051, ..., 100 \n *        python arg = function \n *        string arg = one string \n *        timer arg = no arguments \n *        uloop args = N \n         N = integer size of loop \n *        uloop args = N pad \n         N = integer size of loop \n         pad = all values will be same length, e.g. 001, 002, ..., 100 \n *        universe args = one or more strings \n *        world args = one string for each partition of processors \n *        equal or vector or atom args = one formula containing numbers, thermo keywords, math operations, built-in functions, atom values and vectors, compute/fix/variable references \n         numbers = 0.0, 100, -5.4, 2.8e-4, etc \n         constants = PI, version, on, off, true, false, yes, no \n         thermo keywords = vol, ke, press, etc from [thermo_style ](https://docs.lammps.org/thermo_style.html) \n         math operators = (), -x, x+y, x-y, x\\*y, x/y, x\\^y, x%y, \n         x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \\|\\| y, x \\|\\^ y, !x \n         math functions = sqrt(x), exp(x), ln(x), log(x), abs(x), \n         sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), \n         random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), \n         ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), \n         logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), \n         vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) \n         group functions = count(group), mass(group), charge(group), \n         xcm(group,dim), vcm(group,dim), fcm(group,dim), \n         bound(group,dir), gyration(group), ke(group), \n         angmom(group,dim), torque(group,dim), \n         inertia(group,dimdim), omega(group,dim) \n         region functions = count(group,region), mass(group,region), charge(group,region), \n         xcm(group,dim,region), vcm(group,dim,region), fcm(group,dim,region), \n         bound(group,dir,region), gyration(group,region), ke(group,reigon), \n         angmom(group,dim,region), torque(group,dim,region), \n         inertia(group,dimdim,region), omega(group,dim,region) \n         special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout() \n         feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id) \n         atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] \n         atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz \n         custom atom property = i_name, d_name, i_name[i], d_name[i], i2_name[i], d2_name[i], i2_name[i][j], d_name[i][j] \n         compute references = c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] \n         fix references = f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] \n         variable references = v_name, v_name[i] \n         vector initialization = [1,3,7,10] (for vector variables only) \n", - "examples": "\n```lmps\nvariable x index run1 run2 run3 run4 run5 run6 run7 run8\nvariable LoopVar loop $n\nvariable beta equal temp/3.0\nvariable b1 equal x[234]+0.5*vol\nvariable b1 equal \"x[234] + 0.5*vol\"\nvariable b equal xcm(mol1,x)/2.0\nvariable b equal c_myTemp\nvariable b atom x*y/vol\nvariable foo string myfile\nvariable foo internal 3.5\nvariable myPy python increase\nvariable f file values.txt\nvariable temp world 300.0 310.0 320.0 ${Tfinal}\nvariable x universe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\nvariable x uloop 15 pad\nvariable str format x %.6g\nvariable myvec vector [1,3,7,10]\nvariable x delete\n```\n\n```lmps\nvariable start timer\nother commands\nvariable stop timer\nprint \"Elapsed time: $(v_stop-v_start:%.6f)\"\n```\n", - "html_filename": "variable.html", - "short_description": "This command assigns one or more strings to a variable name for\nevaluation later in the input script or during a simulation", - "description": "This command assigns one or more strings to a variable name for\nevaluation later in the input script or during a simulation.\n\nVariables can thus be useful in several contexts. A variable can be\ndefined and then referenced elsewhere in an input script to become\npart of a new input command. For variable styles that store multiple\nstrings, the [next ](https://docs.lammps.org/next.html) command can be used to increment which\nstring is assigned to the variable. Variables of style *equal* store\na formula which when evaluated produces a single numeric value which\ncan be output either directly (see the [print ](https://docs.lammps.org/print.html), [fixprint ](https://docs.lammps.org/fix_print.html), and [run every ](https://docs.lammps.org/run.html) commands) or as part of\nthermodynamic output (see the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand), or used as input to an averaging fix (see the [fixave/time ](https://docs.lammps.org/fix_ave_time.html) command). Variables of style *vector* store\na formula which produces a vector of such values which can be used as\ninput to various averaging fixes, or elements of which can be part of\nthermodynamic output. Variables of style *atom* store a formula which\nwhen evaluated produces one numeric value per atom which can be output\nto a dump file (see the [dump custom ](https://docs.lammps.org/dump.html) command) or used as\ninput to an averaging fix (see the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) and [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) commands).\nVariables of style *atomfile* can be used anywhere in an input script\nthat atom-style variables are used; they get their per-atom values\nfrom a file rather than from a formula. Variables of style *python*\ncan be hooked to Python functions using code you provide, so that the\nvariable gets its value from the evaluation of the Python code.\nVariables of style *internal* are used by a few commands which set\ntheir value directly.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc\n > page, an input script can use \"immediate\" variables, specified as\n > $(formula) with parenthesis, where the numeric formula has the same\n > syntax as equal-style variables described on this page. This is a\n > convenient way to evaluate a formula immediately without using the\n > variable command to define a named variable and then evaluate that\n > variable. The formula can include a trailing colon and format\n > string which determines the precision with which the numeric value\n > is generated. This is also explained on the [Commands parse > ](https://docs.lammps.org/Commands_parse.html) doc page. \n > \n\nIn the discussion that follows, the \"name\" of the variable is the\narbitrary string that is the first argument in the variable command.\nThis name can only contain alphanumeric characters and underscores.\nThe \"string\" is one or more of the subsequent arguments. The \"string\"\ncan be simple text as in the first example above, it can contain other\nvariables as in the second example, or it can be a formula as in the third\nexample. The \"value\" is the numeric quantity resulting from\nevaluation of the string. Note that the same string can generate\ndifferent values when it is evaluated at different times during a\nsimulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When an input script line is encountered that defines a variable\n > of style *equal* or *vector* or *atom* or *python* that contains a\n > formula or Python code, the formula is NOT immediately evaluated. It\n > will be evaluated every time when the variable is **used** instead. If\n > you simply want to evaluate a formula in place you can use as\n > so-called. See the section below about \"Immediate Evaluation of\n > Variables\" for more details on the topic. This is also true of a\n > *format* style variable since it evaluates another variable when it is\n > invoked. \n > \n\nVariables of style *equal* and *vector* and *atom* can be used as\ninputs to various other commands which evaluate their formulas as\nneeded, e.g. at different timesteps during a [run ](https://docs.lammps.org/run.html). In\nthis context, variables of style *timer* or *internal* or *python* can\nbe used in place of an equal-style variable, with the following two\ncaveats.\n\nFirst, internal-style variables can be used except by commands that\nset the value stored by the internal variable. When the LAMMPS\ncommand evaluates the internal-style variable, it will use the value\nset (internally) by another command. Second, python-style variables\ncan be used so long as the associated Python function, as defined by\nthe [python ](https://docs.lammps.org/python.html) command, returns a numeric value. When the\nLAMMPS command evaluates the python-style variable, the Python\nfunction will be executed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a variable command is encountered in the input script and\n > the variable name has already been specified, the command is ignored.\n > This means variables can NOT be re-defined in an input script (with\n > two exceptions, read further). This is to allow an input script to be\n > processed multiple times without resetting the variables; see the\n > [jump ](https://docs.lammps.org/jump.html) or [include ](https://docs.lammps.org/include.html) commands. It also means\n > that using the [command-line switch ](https://docs.lammps.org/Run_options.html) -var will\n > override a corresponding index variable setting in the input script. \n > \n\nThere are two exceptions to this rule. First, variables of style\n*string*, *getenv*, *internal*, *equal*, *vector*, *atom*, and\n*python* ARE redefined each time the command is encountered. This\nallows these style of variables to be redefined multiple times in an\ninput script. In a loop, this means the formula associated with an\n*equal* or *atom* style variable can change if it contains a\nsubstitution for another variable, e.g. $x or v_x.\n\nSecond, as described below, if a variable is iterated on to the end of\nits list of strings via the [next ](https://docs.lammps.org/next.html) command, it is removed\nfrom the list of active variables, and is thus available to be\nre-defined in a subsequent variable command. The *delete* style does\nthe same thing.\n\nVariables are **not** deleted by the [clear ](https://docs.lammps.org/clear.html) command with\nthe exception of atomfile-style variables.\n\n----------\n\nThe [Commands parse ](https://docs.lammps.org/Commands_parse.html) page explains how\noccurrences of a variable name in an input script line are replaced by\nthe variable's string. The variable name can be referenced as $x if\nthe name \"x\" is a single character, or as ${LoopVar} if the name\n\"LoopVar\" is one or more characters.\n\nAs described below, for variable styles *index*, *loop*, *file*,\n*universe*, and *uloop*, which string is assigned to a variable can be\nincremented via the [next ](https://docs.lammps.org/next.html) command. When there are no more\nstrings to assign, the variable is exhausted and a flag is set that\ncauses the next [jump ](https://docs.lammps.org/jump.html) command encountered in the input\nscript to be skipped. This enables the construction of simple loops\nin the input script that are iterated over and then exited from.\n\nAs explained above, an exhausted variable can be re-used in an input\nscript. The *delete* style also removes the variable, the same as if\nit were exhausted, allowing it to be redefined later in the input\nscript or when the input script is looped over. This can be useful\nwhen breaking out of a loop via the [if ](https://docs.lammps.org/if.html) and [jump ](https://docs.lammps.org/jump.html)\ncommands before the variable would become exhausted. For example,\n\n```lmps\nlabel loop\nvariable a loop 5\nprint \"A = $a\"\nif \"$a > 2\" then \"jump in.script break\"\nnext a\njump in.script loop\nlabel break\nvariable a delete\n```\n----------\n\nThe next sections describe in how all the various variable styles are\ndefined and what they store. The styles are listed alphabetically,\nexcept for the *equal* and *vector* and *atom* styles, which are\nexplained together after all the others.\n\nMany of the styles store one or more strings. Note that a single\nstring can contain spaces (multiple words), if it is enclosed in\nquotes in the variable command. When the variable is substituted for\nin another input script command, its returned string will then be\ninterpreted as multiple arguments in the expanded command.\n\n----------\n\nFor the *atomfile* style, a filename is provided which contains one or\nmore sets of values, to assign on a per-atom basis to the variable.\nThe format of the file is described below.\n\nWhen an atomfile-style variable is defined, the file is opened and the\nfirst set of per-atom values are read and stored with the variable.\nThis means the variable can then be evaluated as many times as desired\nand will return those values. There are two ways to cause the next\nset of per-atom values from the file to be read: use the\n[next ](https://docs.lammps.org/next.html) command or the next() function in an atom-style\nvariable, as discussed below. Unlike most variable styles, which\nremain defined, atomfile-style variables are **deleted** during a\n[clear ](https://docs.lammps.org/clear.html) command.\n\nThe rules for formatting the file are as follows. Each time a set of\nper-atom values is read, a non-blank line is searched for in the file.\nThe file is read line by line but only up to 254 characters are used.\nThe rest are ignored. A comment character \"#\" can be used anywhere\non a line and all text following and the \"#\" character are ignored;\ntext starting with the comment character is stripped. Blank lines\nare skipped. The first non-blank line is expected to contain a single\ninteger number as the count *N* of per-atom lines to follow. *N* can\nbe the total number of atoms in the system or less, indicating that data\nfor a subset is read. The next N lines must consist of two numbers,\nthe atom-ID of the atom for which a value is set followed by a floating\npoint number with the value. The atom-IDs may be listed in any order.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Every time a set of per-atom lines is read, the value of the atomfile\n > variable for **all** atoms is first initialized to 0.0. Thus values\n > for atoms whose ID do not appear in the set in the file will remain\n > at 0.0. \n > \n\nBelow is a small example for the atomfile variable file format:\n\n```\n# first set\n4\n# atom-ID value\n3 1\n4 -4\n1 0.5\n2 -0.5\n\n# second set\n2\n\n2 1.0\n4 -1.0\n```\n----------\n\nFor the *file* style, a filename is provided which contains a list of\nstrings to assign to the variable, one per line. The strings can be\nnumeric values if desired. See the discussion of the next() function\nbelow for equal-style variables, which will convert the string of a\nfile-style variable into a numeric value in a formula.\n\nWhen a file-style variable is defined, the file is opened and the\nstring on the first line is read and stored with the variable. This\nmeans the variable can then be evaluated as many times as desired and\nwill return that string. There are two ways to cause the next string\nfrom the file to be read: use the [next ](https://docs.lammps.org/next.html) command or the\nnext() function in an equal- or atom-style variable, as discussed\nbelow.\n\nThe rules for formatting the file are as follows. A comment character\n\"#\" can be used anywhere on a line; text starting with the comment\ncharacter is stripped. Blank lines are skipped. The first \"word\" of\na non-blank line, delimited by white-space, is the \"string\" assigned\nto the variable.\n\n----------\n\nFor the *format* style, an equal-style or compatible variable is\nspecified along with a C-style format string, e.g. \"%f\" or \"%.10g\",\nwhich must be appropriate for formatting a double-precision\nfloating-point value and may not have extra characters. The default\nformat is \"%.15g\". This variable style allows an equal-style variable\nto be formatted precisely when it is evaluated.\n\nNote that if you simply wish to print a variable value with desired\nprecision to the screen or logfile via the [print ](https://docs.lammps.org/print.html) or\n[fix print ](https://docs.lammps.org/fix_print.html) commands, you can also do this by\nspecifying an \"immediate\" variable with a trailing colon and format\nstring, as part of the string argument of those commands. This is\nexplained on the [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page.\n\n----------\n\nFor the *getenv* style, a single string is assigned to the variable\nwhich should be the name of an environment variable. When the\nvariable is evaluated, it returns the value of the environment\nvariable, or an empty string if it not defined. This style of\nvariable can be used to adapt the behavior of LAMMPS input scripts via\nenvironment variable settings, or to retrieve information that has\nbeen previously stored with the [shell putenv ](https://docs.lammps.org/shell.html) command.\nNote that because environment variable settings are stored by the\noperating systems, they persist even if the corresponding *getenv*\nstyle variable is deleted, and also are set for sub-shells executed\nby the [shell ](https://docs.lammps.org/shell.html) command.\n\n----------\n\nFor the *index* style, one or more strings are specified. Initially,\nthe first string is assigned to the variable. Each time a\n[next ](https://docs.lammps.org/next.html) command is used with the variable name, the next\nstring is assigned. All processors assign the same string to the\nvariable.\n\nIndex-style variables with a single string value can also be set by\nusing the [command-line switch -var ](https://docs.lammps.org/Run_options.html).\n\n----------\n\nFor the *internal* style a numeric value is provided. This value will\nbe assigned to the variable until a LAMMPS command sets it to a new\nvalue. There are currently only two LAMMPS commands that require\n*internal* variables as inputs, because they reset them:\n[create_atoms ](https://docs.lammps.org/create_atoms.html) and [fix controller](https://docs.lammps.org/fix_controller.html). As mentioned above, an internal-style variable can\nbe used in place of an equal-style variable anywhere else in an input\nscript, e.g. as an argument to another command that allows for\nequal-style variables.\n\n----------\n\nThe *loop* style is identical to the *index* style except that the\nstrings are the integers from 1 to N inclusive, if only one argument N\nis specified. This allows generation of a long list of runs\n(e.g. 1000) without having to list N strings in the input script.\nInitially, the string \"1\" is assigned to the variable. Each time a\n[next ](https://docs.lammps.org/next.html) command is used with the variable name, the next\nstring (\"2\", \"3\", etc) is assigned. All processors assign the same\nstring to the variable. The *loop* style can also be specified with\ntwo arguments N1 and N2. In this case the loop runs from N1 to N2\ninclusive, and the string N1 is initially assigned to the variable.\nN1 <= N2 and N2 >= 0 is required.\n\n----------\n\nFor the *python* style a Python function name is provided. This needs\nto match a function name specified in a [python ](https://docs.lammps.org/python.html) command\nwhich returns a value to this variable as defined by its *return*\nkeyword. For example these two commands would be self-consistent:\n\n```lmps\nvariable foo python myMultiply\npython myMultiply return v_foo format f file funcs.py\n```\nThe two commands can appear in either order so long as both are\nspecified before the Python function is invoked for the first time.\n\nEach time the variable is evaluated, the associated Python function is\ninvoked, and the value it returns is also returned by the variable.\nSince the Python function can use other LAMMPS variables as input, or\nquery interal LAMMPS quantities to perform its computation, this means\nthe variable can return a different value each time it is evaluated.\n\nThe type of value stored in the variable is determined by the *format*\nkeyword of the [python ](https://docs.lammps.org/python.html) command. It can be an integer\n(i), floating point (f), or string (s) value. As mentioned above, if\nit is a numeric value (integer or floating point), then the\npython-style variable can be used in place of an equal-style variable\nanywhere in an input script, e.g. as an argument to another command\nthat allows for equal-style variables.\n\n----------\n\nFor the *string* style, a single string is assigned to the variable.\nTwo differences between this style and using the *index* style exist:\na variable with *string* style can be redefined, e.g. by another command later\nin the input script, or if the script is read again in a loop. The other\ndifference is that *string* performs variable substitution even if the\nstring parameter is quoted.\n\n----------\n\nThe *uloop* style is identical to the *universe* style except that the\nstrings are the integers from 1 to N. This allows generation of long\nlist of runs (e.g. 1000) without having to list N strings in the input\nscript.\n\n----------\n\nFor the *universe* style, one or more strings are specified. There\nmust be at least as many strings as there are processor partitions or\n\"worlds\". LAMMPS can be run with multiple partitions via the\n[-partition command-line switch ](https://docs.lammps.org/Run_options.html). This variable\ncommand initially assigns one string to each world. When a\n[next ](https://docs.lammps.org/next.html) command is encountered using this variable, the first\nprocessor partition to encounter it, is assigned the next available\nstring. This continues until all the variable strings are consumed.\nThus, this command can be used to run 50 simulations on 8 processor\npartitions. The simulations will be run one after the other on\nwhatever partition becomes available, until they are all finished.\nUniverse-style variables are incremented using the files\n\"tmp.lammps.variable\" and \"tmp.lammps.variable.lock\" which you will\nsee in your directory during such a LAMMPS run.\n\n----------\n\nFor the *world* style, one or more strings are specified. There must\nbe one string for each processor partition or \"world\". LAMMPS can be\nrun with multiple partitions via the [-partition command-lineswitch ](https://docs.lammps.org/Run_options.html). This variable command assigns one string to\neach world. All processors in the world are assigned the same string.\nThe next command cannot be used with equal-style variables, since\nthere is only one value per world. This style of variable is useful\nwhen you wish to run different simulations on different partitions, or\nwhen performing a parallel tempering simulation (see the [temper](https://docs.lammps.org/temper.html) command), to assign different temperatures to different\npartitions.\n\n----------\n\nFor the *equal* and *vector* and *atom* styles, a single string is\nspecified which represents a formula that will be evaluated afresh\neach time the variable is used. If you want spaces in the string,\nenclose it in double quotes so the parser will treat it as a single\nargument. For *equal* -style variables the formula computes a scalar\nquantity, which becomes the value of the variable whenever it is\nevaluated. For *vector* -style variables the formula must compute a\nvector of quantities, which becomes the value of the variable whenever\nit is evaluated. The calculated vector can be of length one, but it\ncannot be a simple scalar value like that produced by an equal-style\ncompute. I.e. the formula for a vector-style variable must have at\nleast one quantity in it that refers to a global vector produced by a\ncompute, fix, or other vector-style variable. For *atom* -style\nvariables the formula computes one quantity for each atom whenever it\nis evaluated.\n\nNote that *equal*, *vector*, and *atom* variables can produce\ndifferent values at different stages of the input script or at\ndifferent times during a run. For example, if an *equal* variable is\nused in a [fix print ](https://docs.lammps.org/fix_print.html) command, different values could\nbe printed each timestep it was invoked. If you want a variable to be\nevaluated immediately, so that the result is stored by the variable\ninstead of the string, see the section below on \"Immediate Evaluation\nof Variables\".\n\nThe next command cannot be used with *equal* or *vector* or *atom*\nstyle variables, since there is only one string.\n\nThe formula for an *equal*, *vector*, or *atom* variable can contain a\nvariety of quantities. The syntax for each kind of quantity is\nsimple, but multiple quantities can be nested and combined in various\nways to build up formulas of arbitrary complexity. For example, this\nis a valid (though strange) variable formula:\n\n```lmps\nvariable x equal \"pe + c_MyTemp / vol^(1/3)\"\n```\nSpecifically, a formula can contain numbers, constants, thermo\nkeywords, math operators, math functions, group functions, region\nfunctions, special functions, feature functions, atom values, atom\nvectors, custom atom properties, compute references, fix references, and references to other\nvariables.\n\n| | |\n|---|---|\n| Number | 0.2, 100, 1.0e20, -15.4, etc |\n| Constant | PI, version, on, off, true, false, yes, no |\n| Thermo keywords | vol, pe, ebond, etc |\n| Math operators | (), -x, x+y, x-y, x\\*y, x/y, x\\^y, x%y, x == y, x != y, x < y, x <= y, x > y, x >= y, x && y, x \\|\\| y, x \\|\\^ y, !x |\n| Math functions | sqrt(x), exp(x), ln(x), log(x), abs(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x), random(x,y,z), normal(x,y,z), ceil(x), floor(x), round(x), ternary(x,y,z), ramp(x,y), stagger(x,y), logfreq(x,y,z), logfreq2(x,y,z), logfreq3(x,y,z), stride(x,y,z), stride2(x,y,z,a,b,c), vdisplace(x,y), swiggle(x,y,z), cwiggle(x,y,z) |\n| Group functions | count(ID), mass(ID), charge(ID), xcm(ID,dim), vcm(ID,dim), fcm(ID,dim), bound(ID,dir), gyration(ID), ke(ID), angmom(ID,dim), torque(ID,dim), inertia(ID,dimdim), omega(ID,dim) |\n| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |\n| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label), is_timeout() |\n| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |\n| Atom values | id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] |\n| Atom vectors | id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q |\n| Custom atom properties | i_name, d_name, i_name[i], d_name[i], i2_name[i], d2_name[i], i2_name[i][j], d_name[i][j] |\n| Compute references | c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i] |\n| Fix references | f_ID, f_ID[i], f_ID[i][j], F_ID, F_ID[i] |\n| Other variables | v_name, v_name[i] |\n\nMost of the formula elements produce a scalar value. Some produce a\nglobal or per-atom vector of values. Global vectors can be produced\nby computes or fixes or by other vector-style variables. Per-atom\nvectors are produced by atom vectors, computes or fixes which output a\nper-atom vector or array, and variables that are atom-style variables.\nMath functions that operate on scalar values produce a scalar value;\nmath function that operate on global or per-atom vectors do so\nelement-by-element and produce a global or per-atom vector.\n\nA formula for equal-style variables cannot use any formula element\nthat produces a global or per-atom vector. A formula for a\nvector-style variable can use formula elements that produce either a\nscalar value or a global vector value, but cannot use a formula\nelement that produces a per-atom vector. A formula for an atom-style\nvariable can use formula elements that produce either a scalar value\nor a per-atom vector, but not one that produces a global vector.\n\nAtom-style variables are evaluated by other commands that define a\n[group ](https://docs.lammps.org/group.html) on which they operate, e.g. a [dump ](https://docs.lammps.org/dump.html)\nor [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) command. When they\ninvoke the atom-style variable, only atoms in the group are included\nin the formula evaluation. The variable evaluates to 0.0 for atoms\nnot in the group.\n\n----------\n\nNumbers, constants, and thermo keywords\n---------------------------------------\n\nNumbers can contain digits, scientific notation\n(3.0e20,3.0e-20,3.0E20,3.0E-20), and leading minus signs.\n\nConstants are set at compile time and cannot be changed. *PI* will\nreturn the number 3.14159265358979323846; *on*, *true* or *yes* will\nreturn 1.0; *off*, *false* or *no* will return 0.0; *version* will\nreturn a numeric version code of the current LAMMPS version (e.g.\nversion 2 Sep 2015 will return the number 20150902). The corresponding\nvalue for newer versions of LAMMPS will be larger, for older versions\nof LAMMPS will be smaller. This can be used to have input scripts\nadapt automatically to LAMMPS versions, when non-backwards compatible\nsyntax changes are introduced. Here is an illustrative example (which\nwill not work, since the *version* has been introduced more recently):\n\n```lmps\nif $(version<20140513) then \"communicate vel yes\" else \"comm_modify vel yes\"\n```\nThe thermo keywords allowed in a formula are those defined by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command. Thermo keywords\nthat require a [compute ](https://docs.lammps.org/compute.html) to calculate their values such\nas \"temp\" or \"press\", use computes stored and invoked by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. This means that you can\nonly use those keywords in a variable if the style you are using with\nthe thermo_style command (and the thermo keywords associated with that\nstyle) also define and use the needed compute. Note that some thermo\nkeywords use a compute indirectly to calculate their value (e.g. the\nenthalpy keyword uses temp, pe, and pressure). If a variable is\nevaluated directly in an input script (not during a run), then the\nvalues accessed by the thermo keyword must be current. See the\ndiscussion below about \"Variable Accuracy\".\n\n----------\n\nMath Operators\n--------------\n\nMath operators are written in the usual way, where the \"x\" and \"y\" in\nthe examples can themselves be arbitrarily complex formulas, as in the\nexamples above. In this syntax, \"x\" and \"y\" can be scalar values or\nper-atom vectors. For example, \"ke/natoms\" is the division of two\nscalars, where \"vy+vz\" is the element-by-element sum of two per-atom\nvectors of y and z velocities.\n\nOperators are evaluated left to right and have the usual C-style\nprecedence: unary minus and unary logical NOT operator \"!\" have the\nhighest precedence, exponentiation \"\\^\" is next; multiplication and\ndivision and the modulo operator \"%\" are next; addition and\nsubtraction are next; the 4 relational operators \"<\", \"<=\", \">\", and\n\">=\" are next; the two remaining relational operators \"==\" and \"!=\"\nare next; then the logical AND operator \"&&\"; and finally the logical\nOR operator \"||\" and logical XOR (exclusive or) operator \"\\|^\" have the\nlowest precedence. Parenthesis can be used to group one or more\nportions of a formula and/or enforce a different order of evaluation\nthan what would occur with the default precedence.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because a unary minus is higher precedence than exponentiation,\n > the formula \"-2\\^2\" will evaluate to 4, not -4. This convention is\n > compatible with some programming languages, but not others. As\n > mentioned, this behavior can be easily overridden with parenthesis;\n > the formula \"-(2\\^2)\" will evaluate to -4. \n > \n\nThe 6 relational operators return either a 1.0 or 0.0 depending on\nwhether the relationship between x and y is TRUE or FALSE. For\nexample the expression x<10.0 in an atom-style variable formula will\nreturn 1.0 for all atoms whose x-coordinate is less than 10.0, and 0.0\nfor the others. The logical AND operator will return 1.0 if both its\narguments are non-zero, else it returns 0.0. The logical OR operator\nwill return 1.0 if either of its arguments is non-zero, else it\nreturns 0.0. The logical XOR operator will return 1.0 if one of its\narguments is zero and the other non-zero, else it returns 0.0. The\nlogical NOT operator returns 1.0 if its argument is 0.0, else it\nreturns 0.0.\n\nThese relational and logical operators can be used as a masking or\nselection operation in a formula. For example, the number of atoms\nwhose properties satisfy one or more criteria could be calculated by\ntaking the returned per-atom vector of ones and zeroes and passing it\nto the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\n----------\n\nMath Functions\n--------------\n\nMath functions are specified as keywords followed by one or more\nparenthesized arguments \"x\", \"y\", \"z\", each of which can themselves be\narbitrarily complex formulas. In this syntax, the arguments can\nrepresent scalar values or global vectors or per-atom vectors. In the\nlatter case, the math operation is performed on each element of the\nvector. For example, \"sqrt(natoms)\" is the sqrt() of a scalar, where\n\"sqrt(y\\*z)\" yields a per-atom vector with each element being the\nsqrt() of the product of one atom's y and z coordinates.\n\nMost of the math functions perform obvious operations. The ln() is\nthe natural log; log() is the base 10 log.\n\nThe random(x,y,z) function takes 3 arguments: x = lo, y = hi, and z =\nseed. It generates a uniform random number between lo and hi. The\nnormal(x,y,z) function also takes 3 arguments: x = mu, y = sigma, and\nz = seed. It generates a Gaussian variate centered on mu with\nvariance sigma\\^2. In both cases the seed is used the first time the\ninternal random number generator is invoked, to initialize it. For\nequal-style and vector-style variables, every processor uses the same\nseed so that they each generate the same sequence of random numbers.\nFor atom-style variables, a unique seed is created for each processor,\nbased on the specified seed. This effectively generates a different\nrandom number for each atom being looped over in the atom-style\nvariable.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Internally, there is just one random number generator for all\n > equal-style and vector-style variables and another one for all\n > atom-style variables. If you define multiple variables (of each\n > style) which use the random() or normal() math functions, then the\n > internal random number generators will only be initialized once, which\n > means only one of the specified seeds will determine the sequence of\n > generated random numbers. \n > \n\nThe ceil(), floor(), and round() functions are those in the C math\nlibrary. Ceil() is the smallest integer not less than its argument.\nFloor() if the largest integer not greater than its argument. Round()\nis the nearest integer to its argument.\n\nThe ternary(x,y,z) function is the equivalent of the ternary operator\n(? and :) in C or C++. It takes 3 arguments. The first argument is a\nconditional. The result of the function is y if x evaluates to true\n(non-zero). The result is z if x evaluates to false (zero).\n\nThe ramp(x,y) function uses the current timestep to generate a value\nlinearly interpolated between the specified x,y values over the course\nof a run, according to this formula:\n\n```\nvalue = x + (y-x) \\* (timestep-startstep) / (stopstep-startstep)\n```\nThe run begins on startstep and ends on stopstep. Startstep and\nstopstep can span multiple runs, using the *start* and *stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for\ndetails of how to do this. If called in between runs or during a\n[run 0 ](https://docs.lammps.org/run.html) command, the ramp(x,y) function will return the\nvalue of x.\n\nThe stagger(x,y) function uses the current timestep to generate a new\ntimestep. X,y > 0 and x > y are required. The generated timesteps\nincrease in a staggered fashion, as the sequence\nx,x+y,2x,2x+y,3x,3x+y,etc. For any current timestep, the next\ntimestep in the sequence is returned. Thus if stagger(1000,100) is\nused in a variable by the [dump_modify every ](https://docs.lammps.org/dump_modify.html)\ncommand, it will generate the sequence of output timesteps:\n\n```\n100,1000,1100,2000,2100,3000,etc\n```\nThe logfreq(x,y,z) function uses the current timestep to generate a\nnew timestep. X,y,z > 0 and y < z are required. The generated\ntimesteps are on a base-z logarithmic scale, starting with x, and the\ny value is how many of the z-1 possible timesteps within one\nlogarithmic interval are generated. I.e. the timesteps follow the\nsequence\nx,2x,3x,...y\\*x,x\\*z,2x\\*z,3x\\*z,...y\\*x\\*z,x\\*z\\^2,2x\\*z\\^2,etc. For\nany current timestep, the next timestep in the sequence is returned.\nThus if logfreq(100,4,10) is used in a variable by the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it will generate this\nsequence of output timesteps:\n\n```\n100,200,300,400,1000,2000,3000,4000,10000,20000,etc\n```\nThe logfreq2(x,y,z) function is similar to logfreq, except a single\nlogarithmic interval is divided into y equally-spaced timesteps and\nall of them are output. Y < z is not required. Thus, if\nlogfreq2(100,18,10) is used in a variable by the [dump_modifyevery ](https://docs.lammps.org/dump_modify.html) command, then the interval between 100 and 1000\nis divided as 900/18 = 50 steps, and it will generate the sequence of\noutput timesteps:\n\n```\n100,150,200,...950,1000,1500,2000,...9500,10000,15000,etc\n```\nThe logfreq3(x,y,z) function generates y points between x and z (inclusive),\nthat are separated by a multiplicative ratio: (z/x)\\^(1/(y-1)). Constraints\nare: x,z > 0, y > 1, z-x >= y-1. For eg., if logfreq3(10,25,1000) is used in\na variable by the [fix print ](https://docs.lammps.org/fix_print.html) command, then the interval\nbetween 10 and 1000 is divided into 24 parts with a multiplicative\nseparation of ~1.21, and it will generate the following sequence of output\ntimesteps:\n\n```\n10, 13, 15, 18, 22, 27, 32,...384, 465, 563, 682, 826, 1000\n```\nThe stride(x,y,z) function uses the current timestep to generate a new\ntimestep. X,y >= 0 and z > 0 and x <= y are required. The generated\ntimesteps increase in increments of z, from x to y, i.e. it generates\nthe sequence x,x+z,x+2z,...,y. If y-x is not a multiple of z, then\nsimilar to the way a for loop operates, the last value will be one\nthat does not exceed y. For any current timestep, the next timestep\nin the sequence is returned. Thus if stride(1000,2000,100) is used\nin a variable by the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it\nwill generate the sequence of output timesteps:\n\n```\n1000,1100,1200, ... ,1900,2000\n```\nThe stride2(x,y,z,a,b,c) function is similar to the stride() function\nexcept it generates two sets of strided timesteps, one at a coarser\nlevel and one at a finer level. Thus it is useful for debugging,\ne.g. to produce output every timestep at the point in simulation when\na problem occurs. X,y >= 0 and z > 0 and x <= y are required, as are\na,b >= 0 and c > 0 and a < b. Also, a >= x and b <= y are required so\nthat the second stride is inside the first. The generated timesteps\nincrease in increments of z, starting at x, until a is reached. At\nthat point the timestep increases in increments of c, from a to b,\nthen after b, increments by z are resumed until y is reached. For any\ncurrent timestep, the next timestep in the sequence is returned. Thus\nif stride2(1000,2000,100,1350,1360,1) is used in a variable by the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, it will generate the\nsequence of output timesteps:\n\n```\n1000,1100,1200,1300,1350,1351,1352, ... 1359,1360,1400,1500, ... ,2000\n```\nThe vdisplace(x,y) function takes 2 arguments: x = value0 and y =\nvelocity, and uses the elapsed time to change the value by a linear\ndisplacement due to the applied velocity over the course of a run,\naccording to this formula:\n\n```\nvalue = value0 + velocity\\*(timestep-startstep)\\*dt\n```\nwhere dt = the timestep size.\n\nThe run begins on startstep. Startstep can span multiple runs, using\nthe *start* keyword of the [run ](https://docs.lammps.org/run.html) command. See the [run](https://docs.lammps.org/run.html) command for details of how to do this. Note that the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) keyword elaplong = timestep-startstep.\nIf used between runs this function will return\nthe value according to the end of the last run or the value of x if\nused before *any* runs. This function assumes the length of the time\nstep does not change and thus may not be used in combination with\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html).\n\nThe swiggle(x,y,z) and cwiggle(x,y,z) functions each take 3 arguments:\nx = value0, y = amplitude, z = period. They use the elapsed time to\noscillate the value by a sin() or cos() function over the course of a\nrun, according to one of these formulas, where omega = 2 PI / period:\n\n```\nvalue = value0 + Amplitude \\* sin(omega\\*(timestep-startstep)\\*dt)\nvalue = value0 + Amplitude \\* (1 - cos(omega\\*(timestep-startstep)\\*dt))\n```\nwhere dt = the timestep size.\n\nThe run begins on startstep. Startstep can span multiple runs, using\nthe *start* keyword of the [run ](https://docs.lammps.org/run.html) command. See the [run](https://docs.lammps.org/run.html) command for details of how to do this. Note that the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) keyword elaplong = timestep-startstep.\nIf used between runs these functions will return\nthe value according to the end of the last run or the value of x if\nused before *any* runs. These functions assume the length of the time\nstep does not change and thus may not be used in combination with\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html).\n\n----------\n\nGroup and Region Functions\n--------------------------\n\nGroup functions are specified as keywords followed by one or two\nparenthesized arguments. The first argument *ID* is the group-ID.\nThe *dim* argument, if it exists, is *x* or *y* or *z* . The *dir*\nargument, if it exists, is *xmin*, *xmax*, *ymin*, *ymax*, *zmin*, or\n*zmax* . The *dimdim* argument, if it exists, is *xx* or *yy* or *zz*\nor *xy* or *yz* or *xz* .\n\nThe group function count() is the number of atoms in the group. The\ngroup functions mass() and charge() are the total mass and charge of\nthe group. Xcm() and vcm() return components of the position and\nvelocity of the center of mass of the group. Fcm() returns a\ncomponent of the total force on the group of atoms. Bound() returns\nthe min/max of a particular coordinate for all atoms in the group.\nGyration() computes the radius-of-gyration of the group of atoms. See\nthe [compute gyration ](https://docs.lammps.org/compute_gyration.html) command for a definition\nof the formula. Angmom() returns components of the angular momentum\nof the group of atoms around its center of mass. Torque() returns\ncomponents of the torque on the group of atoms around its center of\nmass, based on current forces on the atoms. Inertia() returns one of\n6 components of the symmetric inertia tensor of the group of atoms\naround its center of mass, ordered as Ixx,Iyy,Izz,Ixy,Iyz,Ixz.\nOmega() returns components of the angular velocity of the group of\natoms around its center of mass.\n\nRegion functions are specified exactly the same way as group functions\nexcept they take an extra final argument *IDR* which is the region ID.\nThe function is computed for all atoms that are in both the group and\nthe region. If the group is \"all\", then the only criteria for atom\ninclusion is that it be in the region.\n\n----------\n\nSpecial Functions\n-----------------\n\nSpecial functions take specific kinds of arguments, meaning their\narguments cannot be formulas themselves.\n\nThe sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), and\nrsort(x) functions each take 1 argument which is of the form \"c_ID\" or\n\"c_ID[N]\" or \"f_ID\" or \"f_ID[N]\" or \"v_name\". The first two are\ncomputes and the second two are fixes; the ID in the reference should be\nreplaced by the ID of a compute or fix defined elsewhere in the input\nscript. The compute or fix must produce either a global vector or\narray. If it produces a global vector, then the notation without \"[N]\"\nshould be used. If it produces a global array, then the notation with\n\"[N]\" should be used, where N is an integer, to specify which column of\nthe global array is being referenced. The last form of argument\n\"v_name\" is for a vector-style variable where \"name\" is replaced by the\nname of the variable.\n\nThe sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions\noperate on a global vector of inputs and reduce it to a single scalar\nvalue. This is analogous to the operation of the [compute reduce](https://docs.lammps.org/compute_reduce.html) command, which performs similar operations on per-atom\nand local vectors.\n\nThe sort(x) and rsort(x) functions operate on a global vector of inputs\nand return a global vector of the same length.\n\nThe sum() function calculates the sum of all the vector elements. The\nmin() and max() functions find the minimum and maximum element\nrespectively. The ave() function is the same as sum() except that it\ndivides the result by the length of the vector.\n\nThe trap() function is the same as sum() except the first and last\nelements are multiplied by a weighting factor of 1/2 when performing\nthe sum. This effectively implements an integration via the\ntrapezoidal rule on the global vector of data. I.e. consider a set of\npoints, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),\n..., (N,VN), where the Vi are the values in the global vector of\nlength N. The integral from 1 to N of these points is trap(). When\nappropriately normalized by the timestep size, this function is useful\nfor calculating integrals of time-series data, like that generated by\nthe [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command.\n\nThe slope() function uses linear regression to fit a line to the set\nof points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),\n..., (N,VN), where the Vi are the values in the global vector of\nlength N. The returned value is the slope of the line. If the line\nhas a single point or is vertical, it returns 1.0e20.\n\nThe sort(x) and rsort(x) functions sort the data of the input vector by\ntheir numeric value: sort(x) sorts in ascending order, rsort(x) sorts\nin descending order.\n\nThe gmask(x) function takes 1 argument which is a group ID. It\ncan only be used in atom-style variables. It returns a 1 for\natoms that are in the group, and a 0 for atoms that are not.\n\nThe rmask(x) function takes 1 argument which is a region ID. It can\nonly be used in atom-style variables. It returns a 1 for atoms that\nare in the geometric region, and a 0 for atoms that are not.\n\nThe grmask(x,y) function takes 2 arguments. The first is a group ID,\nand the second is a region ID. It can only be used in atom-style\nvariables. It returns a 1 for atoms that are in both the group and\nregion, and a 0 for atoms that are not in both.\n\nThe next(x) function takes 1 argument which is a variable ID (not\n\"v_foo\", just \"foo\"). It must be for a file-style or atomfile-style\nvariable. Each time the next() function is invoked (i.e. each time\nthe equal-style or atom-style variable is evaluated), the following\nsteps occur.\n\nFor file-style variables, the current string value stored by the\nfile-style variable is converted to a numeric value and returned by\nthe function. And the next string value in the file is read and\nstored. Note that if the line previously read from the file was not a\nnumeric string, then it will typically evaluate to 0.0, which is\nlikely not what you want.\n\nFor atomfile-style variables, the current per-atom values stored by\nthe atomfile-style variable are returned by the function. And the\nnext set of per-atom values in the file is read and stored.\n\nSince file-style and atomfile-style variables read and store the first\nline of the file or first set of per-atoms values when they are\ndefined in the input script, these are the value(s) that will be\nreturned the first time the next() function is invoked. If next() is\ninvoked more times than there are lines or sets of lines in the file,\nthe variable is deleted, similar to how the [next ](https://docs.lammps.org/next.html) command\noperates.\n\nThe is_file(name) function is a test whether *name* is a (readable) file\nand returns 1 in this case, otherwise it returns 0. For that *name*\nis taken as a literal string and must not have any blanks in it.\n\nThe is_os(name) function is a test whether *name* is part of the OS\ninformation that LAMMPS collects and provides in the\n:cpp:func:`platform::os_info() ` function.\nThe argument *name* is interpreted as a regular expression as documented\nfor the :cpp:func:`utils::strmatch() `\nfunction. This allows to adapt LAMMPS inputs to the OS it runs on:\n\n```lmps\nif $(is_os(^Windows)) then &\n\"shell copy ${input_dir}\\some_file.txt .\" &\nelse &\n\"shell cp ${input_dir}/some_file.txt .\"\n```\nThe extract_setting(name) function enables access to basic settings for\nthe LAMMPS executable and the running simulation via calling the\n:cpp:func:`lammps_extract_setting` library function. For example, the\nnumber of processors (MPI ranks) being used by the simulation or the MPI\nprocess ID (for this processor) can be queried, or the number of atom\ntypes, bond types and so on. For the full list of available keywords\n*name* and their meaning, see the documentation for extract_setting()\nvia the link in this paragraph.\n\nThe label2type(kind,label) function converts type labels into numeric\ntypes, using label maps created by the [labelmap ](https://docs.lammps.org/labelmap.html) or\n[read_data ](https://docs.lammps.org/read_data.html) commands. The first argument is the label\nmap kind (atom, bond, angle, dihedral, or improper) and the second\nargument is the label. The function returns the corresponding numeric\ntype or triggers an error if the queried label does not exist.\n\nThe is_typelabel(kind,label) function has the same arguments as\nlabel2type(), but returns 1 if the type label has been assigned,\notherwise it returns 0. This function can be used to check if a\nparticular type label already exists in the simulation.\n\nThe is_timeout() function returns 1 when the [timer timeout](https://docs.lammps.org/timer.html) has expired otherwise it returns 0. This function can be used\nto check inputs in combination with the [if command ](https://docs.lammps.org/if.html) to\nexecute commands after the timer has expired. Example:\n\n```lmps\nvariable timeout equal is_timeout()\ntimer timeout 0:10:00 every 10\nrun 10000\nif ${timeout} then \"print 'Timer has expired'\"\n```\n----------\n\nFeature Functions\n-----------------\n\nFeature functions allow probing of the running LAMMPS executable for\nwhether specific features are available, active, or defined. All 3 of\nthe functions take two arguments, a *category* and a category-specific\nsecond argument. Both are strings and thus cannot be formulas\nthemselves; only $-style immediate variable expansion is possible.\nThe return value of the functions is either 1.0 or 0.0 depending on\nwhether the function evaluates to true or false, respectively.\n\nThe *is_available(category,name)* function queries whether a specific\nfeature is available in the LAMMPS executable that is being run, i.e\nwhether it was included or enabled at compile time.\n\nThis supports the following categories: *command*, *compute*, *fix*,\n*pair_style* and *feature* . For all the categories except *feature*\nthe *name* is a style name, e.g. *nve* for the *fix* category. Note\nthat many LAMMPS input script commands such as *create_atoms* are\nactually instances of a command style which LAMMPS defines, as opposed\nto built-in commands. For all of these styles except *command*,\nappending of active suffixes is also tried before reporting failure.\n\nThe *feature* category checks the availability of the following\ncompile-time enabled features: GZIP support, PNG support, JPEG support,\nFFMPEG support, and C++ exceptions for error handling. Corresponding\nnames are *gzip*, *png*, *jpeg*, *ffmpeg* and *exceptions* .\n\nExample: Only dump in a given format if the compiled binary supports it.\n\n```lmps\nif \"$(is_available(feature,png))\" then \"print 'PNG supported'\" else \"print 'PNG not supported'\"\nif \"$(is_available(feature,ffmpeg)\" then \"dump 3 all movie 25 movie.mp4 type type zoom 1.6 adiam 1.0\"\n```\nThe *is_active(category,feature)* function queries whether a specific\nfeature is currently active within LAMMPS. The features are grouped\nby categories. Supported categories and features are:\n\n* *package* : features = *gpu* or *intel* or *kokkos* or *omp*\n* *newton* : features = *pair* or *bond* or *any*\n* *pair* : features = *single* or *respa* or *manybody* or *tail* or *shift*\n* *comm_style* : features = *brick* or *tiled*\n* *min_style* : features = a minimizer style name\n* *run_style* : features = a run style name\n* *atom_style* : features = an atom style name\n* *pair_style* : features = a pair style name\n* *bond_style* : features = a bond style name\n* *angle_style* : features = an angle style name\n* *dihedral_style* : features = a dihedral style name\n* *improper_style* : features = an improper style name\n* *kspace_style* : features = a kspace style name\n\nMost of the settings are self-explanatory. For the *package*\ncategory, a package may have been included in the LAMMPS build, but\nnot have enabled by any input script command, and hence be inactive.\nThe *single* feature in the *pair* category checks whether the\ncurrently defined pair style supports a Pair::single() function as\nneeded by compute group/group and others features or LAMMPS.\nSimilarly, the *respa* feature checks whether the inner/middle/outer\nmode of r-RESPA is supported by the current pair style.\n\nFor the categories with *style* in their name, only a single instance\nof the style is ever active at any time in a LAMMPS simulation. Thus\nthe check is whether the currently active style matches the specified\nname. This check is also done using suffix flags, if available and\nenabled.\n\nExample 1: Disable use of suffix for PPPM when using GPU package\n(i.e. run it on the CPU concurrently while running the pair style on\nthe GPU), but do use the suffix otherwise (e.g. with OPENMP).\n\n```lmps\npair_style lj/cut/coul/long 14.0\nif $(is_active(package,gpu)) then \"suffix off\"\nkspace_style pppm\n```\nExample 2: Use r-RESPA with inner/outer cutoff, if supported by the\ncurrent pair style, otherwise fall back to using r-RESPA with simply\nthe pair keyword and reducing the outer time step.\n\n```lmps\ntimestep $(2.0*(1.0+2.0*is_active(pair,respa)))\nif $(is_active(pair,respa)) then \"run_style respa 4 3 2 2 improper 1 inner 2 5.5 7.0 outer 3 kspace 4\" else \"run_style respa 3 3 2 improper 1 pair 2 kspace 3\"\n```\nThe *is_defined(category,id)* function checks whether an instance of a\nstyle or variable with a specific ID or name is currently defined\nwithin LAMMPS. The supported categories are *compute*, *dump*,\n*fix*, *group*, *region*, and *variable*. Each of these styles (as\nwell as the variable command) can be specified multiple times within\nLAMMPS, each with a unique *id*. This function checks whether the\nspecified *id* exists. For category *variable\", the *id* is the\nvariable name.\n\n----------\n\nAtom Values and Vectors\n-----------------------\n\nAtom values take an integer argument I from 1 to N, where I is the\natom-ID, e.g. x[243], which means use the x coordinate of the atom\nwith ID = 243. Or they can take a variable name, specified as v_name,\nwhere name is the name of the variable, like x[v_myIndex]. The\nvariable can be of any style except *vector* or *atom* or *atomfile*\nvariables. The variable is evaluated and the result is expected to be\nnumeric and is cast to an integer (i.e. 3.4 becomes 3), to use an\nindex, which must be a value from 1 to N. Note that a \"formula\"\ncannot be used as the argument between the brackets, e.g. x[243+10]\nor x[v_myIndex+1] are not allowed. To do this a single variable can\nbe defined that contains the needed formula.\n\nNote that the 0 < atom-ID <= N, where N is the largest atom ID\nin the system. If an ID is specified for an atom that does not\ncurrently exist, then the generated value is 0.0.\n\nAtom vectors generate one value per atom, so that a reference like\n\"vx\" means the x-component of each atom's velocity will be used when\nevaluating the variable.\n\nThe meaning of the different atom values and vectors is mostly\nself-explanatory. *Mol* refers to the molecule ID of an atom, and is\nonly defined if an [atom_style ](https://docs.lammps.org/atom_style.html) is being used that\ndefines molecule IDs.\n\nNote that many other atom attributes can be used as inputs to a\nvariable by using the [compute property/atom](https://docs.lammps.org/compute_property_atom.html) command and then referencing that compute.\n\n----------\n\nCustom atom properties\n----------------------\n\nCustom atom properties refer to per-atom integer and floating point\nvectors or arrays that have been added via the [fix property/atom](https://docs.lammps.org/fix_property_atom.html) command. When that command is used specific\nnames are given to each attribute which are the \"name\" portion of\nthese references. References beginning with *i* and *d* refer to\ninteger and floating point properties respectively. Per-atom vectors\nare referenced by *i_name* and *d_name*; per-atom arrays are\nreferenced by *i2_name* and *d2_name*.\n\nThe various allowed references to integer custom atom properties in\nthe variable formulas for equal-, vector-, and atom-style variables\nare listed in the following table. References to floating point\ncustom atom properties are the same; just replace the leading \"i\" with\n\"d\".\n\n| | | |\n|---|---|---|\n| equal | i_name[I] | element of per-atom vector (I = atom ID) |\n| equal | i2_name[I][J] | element of per-atom array (I = atom ID) |\n| vector | i_name[I] | element of per-atom vector (I = atom ID) |\n| vector | i2_name[I][J] | element of per-atom array (I = atom ID) |\n| atom | i_name | per-atom vector |\n| atom | i2_name[I] | column of per-atom array |\n\nThe I and J indices in these custom atom property references can be\nintegers or can be a variable name, specified as v_name, where name is\nthe name of the variable. The rules for this syntax are the same as\nfor indices in the \"Atom Values and Vectors\" discussion above.\n\n----------\n\nCompute References\n------------------\n\nCompute references access quantities calculated by a [compute](https://docs.lammps.org/compute.html). The ID in the reference should be replaced by the ID of a\ncompute defined elsewhere in the input script.\n\nAs discussed on the page for the [compute ](https://docs.lammps.org/compute.html) command,\ncomputes can produce global, per-atom, local, and per-grid values.\nOnly global and per-atom values can be used in a variable. Computes\ncan also produce scalars (global only), vectors, and arrays. See the\ndoc pages for individual computes to see what different kinds of data\nthey produce.\n\nAn equal-style variable can only use scalar values, either from global\nor per-atom data. In the case of per-atom data, this would be a value\nfor a specific atom.\n\nA vector-style variable can use scalar values (same as for equal-style\nvariables), or global vectors of values. The latter can also be a\ncolumn of a global array.\n\nAtom-style variables can use scalar values (same as for equal-style\nvariables), or per-atom vectors of values. The latter can also be a\ncolumn of a per-atom array.\n\nThe various allowed compute references in the variable formulas for\nequal-, vector-, and atom-style variables are listed in the following\ntable:\n\n| | | |\n|---|---|---|\n| equal | c_ID | global scalar |\n| equal | c_ID[I] | element of global vector |\n| equal | c_ID[I][J] | element of global array |\n| equal | C_ID[I] | element of per-atom vector (I = atom ID) |\n| equal | C_ID[I][J] | element of per-atom array (I = atom ID) |\n| vector | c_ID | global vector |\n| vector | c_ID[I] | column of global array |\n| atom | c_ID | per-atom vector |\n| atom | c_ID[I] | column of per-atom array |\n\nNote that if an equal-style variable formula wishes to access per-atom\ndata from a compute, it must use capital \"C\" as the ID prefix and not\nlower-case \"c\".\n\nAlso note that if a vector- or atom-style variable formula needs to\naccess a scalar value from a compute (i.e. the 5 kinds of values in\nthe first 5 lines of the table), it can not do so directly. Instead,\nit can use a reference to an equal-style variable which stores the\nscalar value from the compute.\n\nThe I and J indices in these compute references can be integers or can\nbe a variable name, specified as v_name, where name is the name of the\nvariable. The rules for this syntax are the same as for indices in\nthe \"Atom Values and Vectors\" discussion above.\n\nIf a variable containing a compute is evaluated directly in an input\nscript (not during a run), then the values accessed by the compute\nshould be current. See the discussion below about \"Variable\nAccuracy\".\n\n----------\n\nFix References\n--------------\n\nFix references access quantities calculated by a [fix ](https://docs.lammps.org/fix.html).\nThe ID in the reference should be replaced by the ID of a fix defined\nelsewhere in the input script.\n\nAs discussed on the page for the [fix ](https://docs.lammps.org/fix.html) command, fixes can\nproduce global, per-atom, local, and per-grid values. Only global and\nper-atom values can be used in a variable. Fixes can also produce\nscalars (global only), vectors, and arrays. See the doc pages for\nindividual fixes to see what different kinds of data they produce.\n\nAn equal-style variable can only use scalar values, either from global\nor per-atom data. In the case of per-atom data, this would be a value\nfor a specific atom.\n\nA vector-style variable can use scalar values (same as for equal-style\nvariables), or global vectors of values. The latter can also be a\ncolumn of a global array.\n\nAtom-style variables can use scalar values (same as for equal-style\nvariables), or per-atom vectors of values. The latter can also be a\ncolumn of a per-atom array.\n\nThe allowed fix references in variable formulas for equal-, vector-,\nand atom-style variables are listed in the following table:\n\n| | | |\n|---|---|---|\n| equal | f_ID | global scalar |\n| equal | f_ID[I] | element of global vector |\n| equal | f_ID[I][J] | element of global array |\n| equal | F_ID[I] | element of per-atom vector (I = atom ID) |\n| equal | F_ID[I][J] | element of per-atom array (I = atom ID) |\n| vector | f_ID | global vector |\n| vector | f_ID[I] | column of global array |\n| atom | f_ID | per-atom vector |\n| atom | f_ID[I] | column of per-atom array |\n\nNote that if an equal-style variable formula wishes to access per-atom\ndata from a fix, it must use capital \"F\" as the ID prefix and not\nlower-case \"f\".\n\nAlso note that if a vector- or atom-style variable formula needs to\naccess a scalar value from a fix (i.e. the 5 kinds of values in the\nfirst 5 lines of the table), it can not do so directly. Instead, it\ncan use a reference to an equal-style variable which stores the scalar\nvalue from the fix.\n\nThe I and J indices in these fix references can be integers or can be\na variable name, specified as v_name, where name is the name of the\nvariable. The rules for this syntax are the same as for indices in\nthe \"Atom Values and Vectors\" discussion above.\n\nNote that some fixes only generate quantities on certain timesteps.\nIf a variable attempts to access the fix on non-allowed timesteps, an\nerror is generated. For example, the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand may only generate averaged quantities every 100 steps. See\nthe doc pages for individual fix commands for details.\n\nIf a variable containing a fix is evaluated directly in an input\nscript (not during a run), then the values accessed by the fix should\nbe current. See the discussion below about \"Variable Accuracy\".\n\n----------\n\nVariable References\n-------------------\n\nVariable references access quantities stored or calculated by other\nvariables, which will cause those variables to be evaluated. The name\nin the reference should be replaced by the name of a variable defined\nelsewhere in the input script.\n\nAs discussed on this doc page, equal-style variables generate a single\nglobal numeric value, vector-style variables generate a vector of\nglobal numeric values, and atom-style and atomfile-style variables\ngenerate a per-atom vector of numeric values. All other variables\nstore one or more strings.\n\nThe formula for an equal-style variable can use any style of variable\nincluding a vector_style or atom-style or atomfile-style. For these\n3 styles, a subscript must be used to access a single value from\nthe vector-, atom-, or atomfile-style variable. If a string-storing\nvariable is used, the string is converted to a numeric value. Note\nthat this will typically produce a 0.0 if the string is not a numeric\nstring, which is likely not what you want.\n\nThe formula for a vector-style variable can use any style of variable,\nincluding atom-style or atomfile-style variables. For these 2 styles,\na subscript must be used to access a single value from the atom-, or\natomfile-style variable.\n\nThe formula for an atom-style variable can use any style of variable,\nincluding other atom-style or atomfile-style variables. If it uses a\nvector-style variable, a subscript must be used to access a single\nvalue from the vector-style variable.\n\nThe allowed variable references in variable formulas for equal-,\nvector-, and atom-style variables are listed in the following table.\nNote that there is no ambiguity as to what a reference means, since\nreferenced variables produce only a global scalar or global vector or\nper-atom vector.\n\n| | | |\n|---|---|---|\n| equal | v_name | global scalar from an equal-style variable |\n| equal | v_name[I] | element of global vector from a vector-style variable |\n| equal | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n| vector | v_name | global scalar from an equal-style variable |\n| vector | v_name | global vector from a vector-style variable |\n| vector | v_name[I] | element of global vector from a vector-style variable |\n| vector | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n| atom | v_name | global scalar from an equal-style variable |\n| atom | v_name | per-atom vector from an atom-style or atomfile-style variable |\n| atom | v_name[I] | element of global vector from a vector-style variable |\n| atom | v_name[I] | element of per-atom vector (I = atom ID) from an atom- or atomfile-style variable |\n\nFor the I index, an integer can be specified or a variable name,\nspecified as v_name, where name is the name of the variable. The\nrules for this syntax are the same as for indices in the \"Atom Values\nand Vectors\" discussion above.\n\n----------\n\nVector Initialization\n---------------------\n\n*Vector*-style variables only can be initialized with a special\nsyntax, instead of using a formula. The syntax is a bracketed,\ncomma-separated syntax like the following:\n\n```lmps\nvariable myvec vector [1,3.5,7,10.2]\n```\nThe 3rd argument formula is replaced by the vector values in brackets,\nseparated by commas. This example creates a 4-length vector with\nspecific numeric values, each of which can be specified as an integer\nor floating point value. Note that while whitespace can be added\nbefore or after individual values, no other mathematical operations\ncan be specified. E.g. \"3*10\" or \"3*v_abc\" are not valid vector\nelements, nor is \"10*[1,2,3,4]\" valid for the entire vector.\n\nUnlike vector variables specified with formulas, this vector variable\nis static; its length and values never changes. Its values can be\nused in other commands (including vector-style variables specified\nwith formulas) via the usual syntax for accessing individual vector\nelements or the entire vector.\n\n----------\n\n #### Immediate Evaluation of Variables\n\nIf you want an equal-style variable to be evaluated immediately, it\nmay be the case that you do not need to define a variable at all. See\nthe [Commands parse ](https://docs.lammps.org/Commands_parse.html) page for info on how to\nuse \"immediate\" variables in an input script, specified as $(formula)\nwith parenthesis, where the formula has the same syntax as equal-style\nvariables described on this page. This effectively evaluates a\nformula immediately without using the variable command to define a\nnamed variable.\n\nMore generally, there is a difference between referencing a variable\nwith a leading $ sign (e.g. $x or ${abc}) versus with a leading \"v\\_\"\n(e.g. v_x or v_abc). The former can be used in any input script\ncommand, including a variable command. The input script parser\nevaluates the reference variable immediately and substitutes its value\ninto the command. As explained on the [Commands parse](https://docs.lammps.org/Commands_parse.html) doc page, you can also use un-named \"immediate\"\nvariables for this purpose. For example, a string like this\n$((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates the\nstring between the parenthesis as an equal-style variable formula.\n\nReferencing a variable with a leading \"v\\_\" is an optional or required\nkind of argument for some commands (e.g. the [fix ave/chunk](https://docs.lammps.org/fix_ave_chunk.html) or [dump custom ](https://docs.lammps.org/dump.html) or [thermo_style](https://docs.lammps.org/thermo_style.html) commands) if you wish it to evaluate a variable\nperiodically during a run. It can also be used in a variable formula\nif you wish to reference a second variable. The second variable will\nbe evaluated whenever the first variable is evaluated.\n\nAs an example, suppose you use this command in your input script to\ndefine the variable \"v\" as\n\n```lmps\nvariable v equal vol\n```\nbefore a run where the simulation box size changes. You might think\nthis will assign the initial volume to the variable \"v\". That is not\nthe case. Rather it assigns a formula which evaluates the volume\n(using the thermo_style keyword \"vol\") to the variable \"v\". If you\nuse the variable \"v\" in some other command like [fix ave/time](https://docs.lammps.org/fix_ave_time.html) then the current volume of the box will be evaluated\ncontinuously during the run.\n\nIf you want to store the initial volume of the system, you can do it\nthis way:\n\n```lmps\nvariable v equal vol\nvariable v0 equal $v\n```\nThe second command will force \"v\" to be evaluated (yielding the\ninitial volume) and assign that value to the variable \"v0\". Thus the\ncommand\n\n```lmps\nthermo_style custom step v_v v_v0\n```\nwould print out both the current and initial volume periodically\nduring the run.\n\nNote that it is a mistake to enclose a variable formula in double\nquotes if it contains variables preceded by $ signs. For example,\n\n```lmps\nvariable vratio equal \"${vfinal}/${v0}\"\n```\nThis is because the quotes prevent variable substitution (explained on\nthe [Commands parse ](https://docs.lammps.org/Commands_parse.html) doc page), and thus an error\nwill occur when the formula for \"vratio\" is evaluated later.\n\n----------\n\n #### Variable Accuracy\n\nObviously, LAMMPS attempts to evaluate variables which contain\nformulas (\\ *equal* and *vector* and *atom* style variables)\naccurately whenever the evaluation is performed. Depending on what is\nincluded in the formula, this may require invoking a [compute](https://docs.lammps.org/compute.html), either directly or indirectly via a thermo keyword, or\naccessing a value previously calculated by a compute, or accessing a\nvalue calculated and stored by a [fix ](https://docs.lammps.org/fix.html). If the compute is\none that calculates the energy or pressure of the system, then the\ncorresponding energy or virial quantities need to be tallied during\nthe evaluation of the interatomic potentials (pair, bond, etc) on any\ntimestep that the variable needs the tallies. An input script can\nalso request variables be evaluated before or after or in between\nruns, e.g. by including them in a [print ](https://docs.lammps.org/print.html) command.\n\nLAMMPS keeps track of all of this as it performs a [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) simulation, as well as in between\nsimulations. An error will be generated if you attempt to evaluate a\nvariable when LAMMPS knows it cannot produce accurate values. For\nexample, if a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command prints\na variable which accesses values stored by a [fix ave/time](https://docs.lammps.org/fix_ave_time.html) command and the timesteps on which thermo output is\ngenerated are not multiples of the averaging frequency used in the fix\ncommand, then an error will occur.\n\nHowever, there are two special cases to be aware when a variable\nrequires invocation of a compute (directly or indirectly). The first\nis if the variable is evaluated before the first [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) command in the input script. In this case,\nLAMMPS will generate an error. This is because many computes require\ninitializations which have not yet taken place. One example is the\ncalculation of degrees of freedom for temperature computes. Another\nexample are the computes mentioned above which require tallying of\nenergy or virial quantities; these values are not tallied until the\nfirst simulation begins.\n\nThe second special case is when a variable that depends on a compute\nis evaluated in between [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommands. It is possible for other input script commands issued\nfollowing the previous run, but before the variable is evaluated, to\nchange the system. For example, the [delete_atoms ](https://docs.lammps.org/delete_atoms.html)\ncommand could be used to remove atoms. Since the compute will not\nre-initialize itself until the next simulation or it may depend on\nenergy/virial computations performed before the system was changed, it\nwill potentially generate an incorrect answer when evaluated. Note\nthat LAMMPS will not generate an error in this case; the evaluated\nvariable may simply be incorrect.\n\nThe way to get around both of these special cases is to perform a\n0-timestep run before evaluating the variable. For example, these\ncommands\n\n```lmps\n# delete_atoms random fraction 0.5 yes all NULL 49839\n# run 0 post no\nvariable t equal temp # this thermo keyword invokes a temperature compute\nprint \"Temperature of system = $t\"\nrun 1000\n```\nwill generate an error if the \"run 1000\" command is the first\nsimulation in the input script. If there were a previous run, these\ncommands will print the correct temperature of the system. But if the\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html) command is uncommented, the printed\ntemperature will be incorrect, because information stored by\ntemperature compute is no longer valid.\n\nBoth these issues are resolved, if the \"run 0\" command is uncommented.\nThis is because the \"run 0\" simulation will initialize (or\nre-initialize) the temperature compute correctly.\n\n----------\n", - "restrictions": "Indexing any formula element by global atom ID, such as an atom value,\nrequires the [atom style ](https://docs.lammps.org/atom_style.html) to use a global mapping in\norder to look up the vector indices. By default, only atom styles\nwith molecular information create global maps. The [atom_modifymap ](https://docs.lammps.org/atom_modify.html) command can override the default, e.g. for\natomic-style atom styles.\n\nAll *universe* - and *uloop* -style variables defined in an input\nscript must have the same number of values.\n", - "related": "[next ](https://docs.lammps.org/next.html), [jump ](https://docs.lammps.org/jump.html), [include ](https://docs.lammps.org/include.html),\n[temper ](https://docs.lammps.org/temper.html), [fix print ](https://docs.lammps.org/fix_print.html), [print ](https://docs.lammps.org/print.html)\n" + "parameters": "* style = table or table/cut\n* interpolation = linear or spline = method of interpolation\n* Ntable = size of the internal lookup table \n", + "examples": "\n```lmps\ndihedral_style table spline 400\ndihedral_style table linear 1000\ndihedral_coeff 1 file.table DIH_TABLE1\ndihedral_coeff 2 file.table DIH_TABLE2\n\ndihedral_style table/cut spline 400\ndihedral_style table/cut linear 1000\ndihedral_coeff 1 aat 1.0 177 180 file.table DIH_TABLE1\ndihedral_coeff 2 aat 0.5 170 180 file.table DIH_TABLE2\n```\n", + "html_filename": "dihedral_table.html", + "short_description": "The *table* and *table/cut* dihedral styles create interpolation tables\nof length *Ntable* from dihedral potential and derivative values listed\nin a file(s) as a function of the dihedral angle \"phi\"", + "description": "The *table* and *table/cut* dihedral styles create interpolation tables\nof length *Ntable* from dihedral potential and derivative values listed\nin a file(s) as a function of the dihedral angle \"phi\". The files are\nread by the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command. For\ndihedral style *table/cut* additionally an analytic cutoff that is\nquadratic in the bond-angle (theta) is applied in order to regularize\nthe dihedral interaction.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and derivative values at each of\n*Ntable* dihedral angles. During a simulation, these tables are used\nto interpolate energy and force values on individual atoms as\nneeded. The interpolation is done in one of 2 styles: *linear* or\n*spline* .\n\nFor the *linear* style, the dihedral angle (phi) is used to find 2\nsurrounding table values from which an energy or its derivative is\ncomputed by linear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored at each of the *Ntable* evenly-spaced values in the\ninterpolated table. For a given dihedral angle (phi), the appropriate\ncoefficients are chosen from this list, and a cubic polynomial is used\nto compute the energy and the derivative at this angle.\n\nFor dihedral style *table* the following coefficients must be defined\nfor each dihedral type via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and derivative\nvalues. The keyword specifies which section of the file to read. The\nformat of this file is the same for both dihedral styles and described\nbelow.\n\nFor dihedral style *table/cut* the following coefficients must be\ndefined for each dihedral type via the [dihedral_coeff](https://docs.lammps.org/dihedral_coeff.html) command as in the example above.\n\n* style (= aat)\n* cutoff prefactor (unitless)\n* cutoff angle1 (degrees)\n* cutoff angle2 (degrees)\n* filename\n* keyword\n\nThe cutoff dihedral style uses a tabulated dihedral interaction with a\ncutoff function:\n\\[\\begin{align*} \n f(\\theta) & = K \\qquad\\qquad\\qquad\\qquad\\qquad\\qquad \\theta < \\theta_1 \\\\\n f(\\theta) & = K \\left(1-\\frac{(\\theta - \\theta_1)^2}{(\\theta_2 - \\theta_1)^2}\\right) \\qquad \\theta_1 < \\theta < \\theta_2 \\end{align*} \\]\nThe cutoff includes a prefactor *K* to the cutoff function \\(f(\\theta)\\).\nWhile this value would ordinarily be 1, there may be situations where the value\ncould be different.\n\nThe cutoff \\(\\theta_1\\) specifies the angle (in degrees) below which\nthe dihedral interaction is unmodified, i.e. the cutoff function is 1.\n\nThe cutoff function is applied between \\(\\theta_1\\) and\n\\(\\theta_2\\), which is the angle at which the cutoff function drops\nto zero. The value of zero effectively \"turns off\" the dihedral\ninteraction.\n\nThe filename specifies a file containing tabulated energy and derivative\nvalues. The keyword specifies which section of the file to read. The\nformat of this file is the same for both dihedral styles and described\nbelow.\n\n----------\n\nSuitable tables for use with this dihedral style can be created using\nthe Python code in the ``tools/tabulate`` folder of the LAMMPS source\ncode distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments). It can begin with one or more comment\nor blank lines.\n\n```\n# Table of the potential and its negative derivative\n\nDIH_TABLE1 (keyword is the first text on line)\nN 30 DEGREES (N, NOF, DEGREES, RADIANS, CHECKU/F)\n(blank line)\n1 -168.0 -1.40351172223 0.0423346818422\n2 -156.0 -1.70447981034 0.00811786522531\n3 -144.0 -1.62956100432 -0.0184129719987\n...\n30 180.0 -0.707106781187 0.0719306095245\n\n# Example 2: table of the potential. Forces omitted\n\nDIH_TABLE2\nN 30 NOF CHECKU testU.dat CHECKF testF.dat\n\n1 -168.0 -1.40351172223\n2 -156.0 -1.70447981034\n3 -144.0 -1.62956100432\n...\n30 180.0 -0.707106781187\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command. The next line lists (in\nany order) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nFollowing a blank line, the next N lines list the tabulated values. On\neach line, the first value is the index from 1 to N, the second value is\nthe angle value, the third value is the energy (in energy units), and\nthe fourth is -dE/d(phi) also in energy units). The third term is the\nenergy of the 4-atom configuration for the specified angle. The fourth\nterm (when present) is the negative derivative of the energy with\nrespect to the angle (in degrees, or radians depending on whether the\nuser selected DEGREES or RADIANS). Thus the units of the last term\nare still energy, not force. The dihedral angle values must increase\nfrom one line to the next.\n\nDihedral table splines are cyclic. There is no discontinuity at 180\ndegrees (or at any other angle). Although in the examples above, the\nangles range from -180 to 180 degrees, in general, the first angle in\nthe list can have any value (positive, zero, or negative). However\nthe *range* of angles represented in the table must be *strictly* less\nthan 360 degrees (2pi radians) to avoid angle overlap. (You may not\nsupply entries in the table for both 180 and -180, for example.) If\nthe user's table covers only a narrow range of dihedral angles,\nstrange numerical behavior can occur in the large remaining gap.\n\n**Parameters:**\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the N\nspecified in the [dihedral_style table ](https://docs.lammps.org/dihedral_style.html) command.\nLet *Ntable* is the number of table entries requested dihedral_style\ncommand, and let *Nfile* be the parameter following \"N\" in the\ntabulated file (\"30\" in the sparse example above). What LAMMPS does\nis a preliminary interpolation by creating splines using the *Nfile*\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and derivative values at *Ntable* different\npoints (which are evenly spaced over a 360 degree range, even if the\nangles in the file are not). The resulting tables of length *Ntable*\nare then used as described above, when computing energy and force for\nindividual dihedral angles and their atoms. This means that if you\nwant the interpolation tables of length *Ntable* to match exactly what\nis in the tabulated file (with effectively nopreliminary\ninterpolation), you should set *Ntable* = *Nfile* . To ensure the\nnodal points in the user's file are aligned with the interpolated\ntable entries, the angles in the table should be integer multiples of\n360/\\ *Ntable* degrees, or 2\\*PI/\\ *Ntable* radians (depending on your\nchoice of angle units).\n\nThe optional \"NOF\" keyword allows the user to omit the forces\n(negative energy derivatives) from the table file (normally located in\nthe fourth column). In their place, forces will be calculated\nautomatically by differentiating the potential energy function\nindicated by the third column of the table (using either linear or\nspline interpolation).\n\nThe optional \"DEGREES\" keyword allows the user to specify angles in\ndegrees instead of radians (default).\n\nThe optional \"RADIANS\" keyword allows the user to specify angles in\nradians instead of degrees. (Note: This changes the way the forces\nare scaled in the fourth column of the data file.)\n\nThe optional \"CHECKU\" keyword is followed by a filename. This allows\nthe user to save all of the *Ntable* different entries in the\ninterpolated energy table to a file to make sure that the interpolated\nfunction agrees with the user's expectations. (Note: You can\ntemporarily increase the *Ntable* parameter to a high value for this\npurpose. \"\\ *Ntable* \" is explained above.)\n\nThe optional \"CHECKF\" keyword is analogous to the \"CHECKU\" keyword.\nIt is followed by a filename, and it allows the user to check the\ninterpolated force table. This option is available even if the user\nselected the \"NOF\" option.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds one\nthat matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese dihedral styles write the settings for the \"dihedral_style table\"\nor \"dihedral_style table/cut\" command to [binary restart files](https://docs.lammps.org/restart.html), so a dihedral_style command does not need to specified in an\ninput script that reads a restart file. However, the coefficient\ninformation loaded from the table file(s) is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, suitable\ndihedral_coeff commands do need to be specified in the restart input\nscript after reading the restart file.\n", + "restrictions": "The *table* dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. The *table/cut* dihedral style can only be used if\nLAMMPS was built with the EXTRA-MOLECULE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "fix bond/break" + "fix qeq/comb", + "fix qeq/comb/omp" ], "syntax": [ - "fix ID group-ID bond/break Nevery bondtype Rmax keyword values ..." + "fix ID group-ID qeq/comb Nevery precision keyword value ..." ], "args": [ [ @@ -29792,9 +28750,12 @@ export const command_docs = [ "choices": [] }, { - "arg": "bond/break", - "type": 1, - "choices": [] + "arg": "qeq/comb", + "type": 3, + "choices": [ + "qeq/comb", + "qeq/comb/omp" + ] }, { "arg": "Nevery", @@ -29802,103 +28763,173 @@ export const command_docs = [ "choices": [] }, { - "arg": "bondtype", + "arg": "precision", "type": 2, "choices": [] }, { - "arg": "Rmax", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "value", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qeq/comb = style name of this fix command\n* Nevery = perform charge equilibration every this many steps\n* precision = convergence criterion for charge equilibration\n* zero or more keyword/value pairs may be appended\n* keyword = file \n *        file value = filename \n         filename = name of file to write QEQ equilibration info to \n", + "examples": "\n```lmps\nfix 1 surface qeq/comb 10 0.0001\n```\n", + "html_filename": "fix_qeq_comb.html", + "short_description": "Perform charge equilibration (QeQ) in conjunction with the COMB\n(Charge-Optimized Many-Body) potential as described in\n**COMB_1** and **COMB_2**", + "description": "Perform charge equilibration (QeQ) in conjunction with the COMB\n(Charge-Optimized Many-Body) potential as described in\n**COMB_1** and **COMB_2**. It performs the charge\nequilibration portion of the calculation using the so-called QEq\nmethod, whereby the charge on each atom is adjusted to minimize the\nenergy of the system. This fix can only be used with the COMB\npotential; see the [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) command for a QeQ\ncalculation that can be used with any potential.\n\nOnly charges on the atoms in the specified group are equilibrated.\nThe fix relies on the pair style (COMB in this case) to calculate the\nper-atom electronegativity (effective force on the charges). An\nelectronegativity equalization calculation (or QEq) is performed in an\niterative fashion, which in parallel requires communication at each\niteration for processors to exchange charge information about nearby\natoms with each other. See **Rappe_and_Goddard** and\n**Rick_and_Stuart** for details.\n\nDuring a run, charge equilibration is performed every *Nevery* time\nsteps. Charge equilibration is also always enforced on the first step\nof each run. The *precision* argument controls the tolerance for the\ndifference in electronegativity for all atoms during charge\nequilibration. *Precision* is a trade-off between the cost of\nperforming charge equilibration (more iterations) and accuracy.\n\nIf the *file* keyword is used, then information about each\nequilibration calculation is written to the specified file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to solve the self-consistent equations for electronegativity\n > equalization, LAMMPS imposes the additional constraint that all the\n > charges in the fix group must add up to zero. The initial charge\n > assignments should also satisfy this constraint. LAMMPS will print a\n > warning if that is not the case. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is performing charge equilibration. Default is\nthe outermost level.\n\nThis fix produces a per-atom vector which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The vector stores the gradient\nof the charge on each atom. The per-atom values be accessed on any\ntimestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix can be invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(COMB_1)** J. Yu, S. B. Sinnott, S. R. Phillpot, Phys Rev B, 75, 085311 (2007), \n \n**(COMB_2)** T.-R. Shan, B. D. Devine, T. W. Kemper, S. B. Sinnott, S. R.\nPhillpot, Phys Rev B, 81, 125328 (2010). \n \n**(Rappe_and_Goddard)** A. K. Rappe, W. A. Goddard, J Phys Chem 95, 3358\n(1991). \n \n**(Rick_and_Stuart)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys\n101, 16141 (1994). \n ", + "restrictions": "This fix command currently only supports [pair style *comb* ](https://docs.lammps.org/pair_comb.html).\n", + "related": "[pair_style comb ](https://docs.lammps.org/pair_comb.html)\n" +}, +{ + "command": [ + "fix_modify AtC on_the_fly" + ], + "syntax": [ + "fix_modify on_the_fly " + ], + "args": [ + [ + { + "arg": "fix_modify", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "on_the_fly", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "bond", + "kernel" + ] + }, + { + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] + } + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* on_the_fly = name of the AtC sub-command\n* bond or kernel = specifies on-the-fly calculation of bond or kernel matrix elements\n* on or off = activate or discontinue on-the-fly mode \n", + "examples": "\n```lmps\nfix_modify AtC on_the_fly bond on\nfix_modify AtC on_the_fly kernel\nfix_modify AtC on_the_fly kernel off\n```\n", + "html_filename": "atc_hardy_on_the_fly.html", + "short_description": "Overrides normal mode of pre-calculating and storing bond pair-to-node a\nnd kernel atom-to-node matrices", + "description": "Overrides normal mode of pre-calculating and storing bond pair-to-node a\nnd kernel atom-to-node matrices. If activated, it will calculate elements\nof these matrices during repeated calls of field computations\n(i.e. \"on-the-fly\") and not store them for future use. The *on* flag is\noptional - if omitted, on_the_fly will be activated for the specified\nmatrix. Can be deactivated using the *off* flag.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", + "related": "- :ref:`fix_modify AtC command overview `\n" +}, +{ + "command": [ + "pair_style lj/gromacs", + "pair_style lj/gromacs/gpu", + "pair_style lj/gromacs/kk", + "pair_style lj/gromacs/omp", + "pair_style lj/gromacs/coul/gromacs", + "pair_style lj/gromacs/coul/gromacs/kk", + "pair_style lj/gromacs/coul/gromacs/omp" + ], + "syntax": [ + "pair_style style args" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "lj/gromacs/coul/gromacs/omp", + "type": 3, + "choices": [ + "lj/gromacs", + "lj/gromacs/coul/gromacs", + "lj/gromacs/gpu", + "lj/gromacs/kk", + "lj/gromacs/omp", + "lj/gromacs/coul/gromacs/kk", + "lj/gromacs/coul/gromacs/omp" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bond/break = style name of this fix command\n* Nevery = attempt bond breaking every this many steps\n* bondtype = type of bonds to break (integer or type label)\n* Rmax = bond longer than Rmax can break (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = prob \n *        prob values = fraction seed \n         fraction = break a bond with this probability if otherwise eligible \n         seed = random number seed (positive integer) \n", - "examples": "\n```lmps\nfix 5 all bond/break 10 2 1.2\nfix 5 polymer bond/break 1 1 2.0 prob 0.5 49829\n```\n", - "html_filename": "fix_bond_break.html", - "short_description": "Break bonds between pairs of atoms as a simulation runs according to\nspecified criteria", - "description": "Break bonds between pairs of atoms as a simulation runs according to\nspecified criteria. This can be used to model the dissolution of a\npolymer network due to stretching of the simulation box or other\ndeformations. In this context, a bond means an interaction between a\npair of atoms computed by the [bond_style ](https://docs.lammps.org/bond_style.html) command.\nOnce the bond is broken it will be permanently deleted, as will all\nangle, dihedral, and improper interactions that bond is part of.\n\nThis is different than a [pair-wise ](https://docs.lammps.org/pair_style.html) bond-order\npotential such as Tersoff or AIREBO which infers bonds and many-body\ninteractions based on the current geometry of a small cluster of atoms\nand effectively creates and destroys bonds and higher-order many-body\ninteractions from timestep to timestep as atoms move.\n\nA check for possible bond breakage is performed every *Nevery*\ntimesteps. If two bonded atoms \\(i\\) and \\(j\\) are farther than the\ndistance *Rmax* from each other, the bond is of type *bondtype*, and both\n\\(i\\) and \\(j\\) are in the specified fix group, then the bond between\n\\(i\\) and \\(j\\) is labeled as a \"possible\" bond to break.\n\nIf several bonds involving an atom are stretched, it may have multiple\npossible bonds to break. Every atom checks its list of possible bonds\nto break and labels the longest such bond as its \"sole\" bond to break.\nAfter this is done, if atom \\(i\\) is bonded to atom \\(j\\) in its sole\nbond, and atom \\(j\\) is bonded to atom \\(j\\) in its sole bond, then the\nbond between \\(i\\) and \\(j\\) is \"eligible\" to be broken.\n\nNote that these rules mean an atom will only be part of at most one\nbroken bond on a given time step. It also means that if atom \\(i\\) chooses\natom \\(j\\) as its sole partner, but atom \\(j\\) chooses atom \\(k\\)\nas its sole partner (because \\(R_{jk} > R_{ij}\\)), then this means atom\n\\(i\\) will not be part of a broken bond on this time step, even if it has\nother possible bond partners.\n\nThe *prob* keyword can effect whether an eligible bond is actually\nbroken. The *fraction* setting must be a value between 0.0 and 1.0.\nA uniform random number between 0.0 and 1.0 is generated and the\neligible bond is only broken if the random number is less than *fraction*.\n\nWhen a bond is broken, data structures within LAMMPS that store bond\ntopologies are updated to reflect the breakage. Likewise, if the bond\nis part of a 3-body (angle) or 4-body (dihedral, improper)\ninteraction, that interaction is removed as well. These changes\ntypically affect pair-wise interactions between atoms that used to be\npart of bonds, angles, etc.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One data structure that is not updated when a bond breaks are\n > the molecule IDs stored by each atom. Even though one molecule\n > becomes two molecules due to the broken bond, all atoms in both new\n > molecules retain their original molecule IDs. \n > \n\nComputationally, each time step this fix is invoked, it loops over all\nthe bonds in the system and computes distances between pairs of bonded\natoms. It also communicates between neighboring processors to\ncoordinate which bonds are broken. Moreover, if any bonds are broken,\nneighbor lists must be immediately updated on the same time step. This\nis to ensure that any pair-wise interactions that should be turned \"on\"\ndue to a bond breaking, because they are no longer excluded by the\npresence of the bond and the settings of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command, will be immediately\nrecognized. All of these operations increase the cost of a time step.\nThus, you should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the [dump local ](https://docs.lammps.org/dump.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Breaking a bond typically alters the energy of a system. You\n > should be careful not to choose bond breaking criteria that induce a\n > dramatic change in energy. For example, if you define a very stiff\n > harmonic bond and break it when two atoms are separated by a distance\n > far from the equilibrium bond length, then the two atoms will be\n > dramatically released when the bond is broken. More generally, you\n > may need to thermostat your system to compensate for energy changes\n > resulting from broken bonds (as well as angles, dihedrals, and impropers). \n > \n\nSee the [Howto ](https://docs.lammps.org/Howto_broken_bonds.html) page on broken bonds for more\ninformation on related features in LAMMPS.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes two statistics, which it stores in a global vector of\nlength 2. This vector can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix are \"intensive\".\n\nThe two quantities in the global vector are\n\n (1) number of bonds broken on the most recent breakage time step\n (2) cumulative number of bonds broken\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[fix bond/create ](https://docs.lammps.org/fix_bond_create.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" + "parameters": "* style = lj/gromacs or lj/gromacs/coul/gromacs\n* args = list of arguments for a particular style \n *      lj/gromacs args = inner outer \n       inner, outer = global switching cutoffs for Lennard Jones \n *      lj/gromacs/coul/gromacs args = inner outer (inner2) (outer2) \n       inner, outer = global switching cutoffs for Lennard Jones (and Coulombic if only 2 args) \n       inner2, outer2 = global switching cutoffs for Coulombic (optional) \n", + "examples": "\n```lmps\npair_style lj/gromacs 9.0 12.0\npair_coeff * * 100.0 2.0\npair_coeff 2 2 100.0 2.0 8.0 10.0\n\npair_style lj/gromacs/coul/gromacs 9.0 12.0\npair_style lj/gromacs/coul/gromacs 8.0 10.0 7.0 9.0\npair_coeff * * 100.0 2.0\n```\n", + "html_filename": "pair_gromacs.html", + "short_description": "The *lj/gromacs* styles compute shifted LJ and Coulombic interactions\nwith an additional switching function S(r) that ramps the energy and force\nsmoothly to zero between an inner and outer cutoff", + "description": "The *lj/gromacs* styles compute shifted LJ and Coulombic interactions\nwith an additional switching function S(r) that ramps the energy and force\nsmoothly to zero between an inner and outer cutoff. It is a commonly\nused potential in the [GROMACS](https://www.gromacs.org) MD code and for\nthe coarse-grained models of **Marrink**.\n\\[\\begin{align*} \n E_{LJ} = & 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right] + S_{LJ}(r)\n \\qquad r < r_c \\\\\n E_C = & \\frac{C q_i q_j}{\\epsilon r} + S_C(r) \\qquad r < r_c \\\\\n S(r) = & C \\qquad r < r_1 \\\\\n S(r) = & \\frac{A}{3} (r - r_1)^3 + \\frac{B}{4} (r - r_1)^4 + C \\qquad r_1 < r < r_c \\\\\n A = & (-3 E'(r_c) + (r_c - r_1) E''(r_c))/(r_c - r_1)^2 \\\\\n B = & (2 E'(r_c) - (r_c - r_1) E''(r_c))/(r_c - r_1)^3 \\\\\n C = & -E(r_c) + \\frac{1}{2} (r_c - r_1) E'(r_c) - \\frac{1}{12} (r_c - r_1)^2 E''(r_c) \\end{align*} \\]\n\\(r_1\\) is the inner cutoff; \\(r_c\\) is the outer cutoff. The\ncoefficients A, B, and C are computed by LAMMPS to perform the shifting\nand smoothing. The function S(r) is actually applied once to each term\nof the LJ formula and once to the Coulombic formula, so there are 2 or 3\nsets of A,B,C coefficients depending on which pair_style is used. The\nboundary conditions applied to the smoothing function are as follows:\n\\(S'(r_1) = S''(r_1) = 0, S(r_c) = -E(r_c), S'(r_c) = -E'(r_c)\\),\nand \\(S''(r_c) = -E''(r_c)\\), where E(r) is the corresponding term\nin the LJ or Coulombic potential energy function. Single and double\nprimes denote first and second derivatives with respect to r,\nrespectively.\n\nThe inner and outer cutoff for the LJ and Coulombic terms can be the\nsame or different depending on whether 2 or 4 arguments are used in\nthe pair_style command. The inner LJ cutoff must be > 0, but the\ninner Coulombic cutoff can be >= 0.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* inner (distance units)\n* outer (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{1/6} \\sigma\\).\n\nThe last 2 coefficients are optional inner and outer cutoffs for style\n*lj/gromacs* . If not specified, the global *inner* and *outer* values\nare used.\n\nThe last 2 coefficients cannot be used with style\n*lj/gromacs/coul/gromacs* because this force field does not allow\nvarying cutoffs for individual atom pairs; all pairs use the global\ncutoff(s) specified in the pair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nNone of the GROMACS pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option, since the Lennard-Jones\nportion of the pair interaction is already smoothed to 0.0 at the\ncutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nNone of the GROMACS pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding long-range tail\ncorrections to energy and pressure, since there are no corrections for\na potential that goes to 0.0 at the cutoff.\n\nAll of the GROMACS pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nAll of the GROMACS pair styles can only be used via the *pair*\nkeyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not\nsupport the *inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Marrink)** Marrink, de Vries, Mark, J Phys Chem B, 108, 750-760 (2004). \n ", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "angle_style" + "echo" ], "syntax": [ - "angle_style style" + "echo style" ], "args": [ [ { - "arg": "angle_style", + "arg": "echo", "type": 1, "choices": [] }, { - "arg": "table", + "arg": "both", "type": 3, "choices": [ "none", - "zero", - "hybrid", - "amoeba", - "charmm", - "class2", - "class2/p6", - "cosine", - "cosine/buck6d", - "cosine/delta", - "cosine/periodic", - "cosine/shift", - "cosine/shift/exp", - "cosine/squared", - "cosine/squared/restricted", - "cross", - "dipole", - "fourier", - "fourier/simple", - "gaussian", - "harmonic", - "lepton", - "mm3", - "quartic", - "spica", - "table" + "screen", + "log", + "both" ] } ] ], - "parameters": "* style = none or zero or hybrid or amoeba or charmm or class2 or class2/p6 or cosine or cosine/buck6d or cosine/delta or cosine/periodic or cosine/shift or cosine/shift/exp or cosine/squared or cosine/squared/restricted or cross or dipole or fourier or fourier/simple or gaussian or harmonic or lepton or mm3 or quartic or spica or table \n", - "examples": "\n```lmps\nangle_style harmonic\nangle_style charmm\nangle_style hybrid harmonic cosine\n```\n", - "html_filename": "angle_style.html", - "short_description": "Set the formula(s) LAMMPS uses to compute angle interactions between\ntriplets of atoms, which remain in force for the duration of the\nsimulation", - "description": "Set the formula(s) LAMMPS uses to compute angle interactions between\ntriplets of atoms, which remain in force for the duration of the\nsimulation. The list of angle triplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file.\n\nHybrid models where angles are computed using different angle\npotentials can be setup using the *hybrid* angle style.\n\nThe coefficients associated with a angle style can be specified in a\ndata or restart file or via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nAll angle potentials store their coefficient data in binary restart\nfiles which means angle_style and [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommands do not need to be re-specified in an input script that\nrestarts a simulation. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for details on how to do this. The one exception is that\nangle_style *hybrid* only stores the list of sub-styles in the restart\nfile; angle coefficients need to be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both an angle and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between 3 bonded atoms. \n > \n\nIn the formulas listed for each angle style, *theta* is the angle\nbetween the three atoms in the angle.\n\n----------\n\nHere is an alphabetic list of angle styles defined in LAMMPS. Click on\nthe style to display the formula it computes and coefficients\nspecified by the associated [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the angle_style command, and coefficients\nspecified by the associated [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands angle ` page are followed by one or more\nof (g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [none ](https://docs.lammps.org/angle_none.html) - turn off angle interactions\n* [zero ](https://docs.lammps.org/angle_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/angle_hybrid.html) - define multiple styles of angle interactions\n\n* [amoeba ](https://docs.lammps.org/angle_amoeba.html) - AMOEBA angle\n* [charmm ](https://docs.lammps.org/angle_charmm.html) - CHARMM angle\n* [class2 ](https://docs.lammps.org/angle_class2.html) - COMPASS (class 2) angle\n* [class2/p6 ](https://docs.lammps.org/angle_class2.html) - COMPASS (class 2) angle expanded to 6th order\n* [cosine ](https://docs.lammps.org/angle_cosine.html) - angle with cosine term\n* [cosine/buck6d ](https://docs.lammps.org/angle_cosine_buck6d.html) - same as cosine with Buckingham term between 1-3 atoms\n* [cosine/delta ](https://docs.lammps.org/angle_cosine_delta.html) - angle with difference of cosines\n* [cosine/periodic ](https://docs.lammps.org/angle_cosine_periodic.html) - DREIDING angle\n* [cosine/shift ](https://docs.lammps.org/angle_cosine_shift.html) - angle cosine with a shift\n* [cosine/shift/exp ](https://docs.lammps.org/angle_cosine_shift_exp.html) - cosine with shift and exponential term in spring constant\n* [cosine/squared ](https://docs.lammps.org/angle_cosine_squared.html) - angle with cosine squared term\n* [cosine/squared/restricted ](https://docs.lammps.org/angle_cosine_squared_restricted.html) - angle with restricted cosine squared term\n* [cross ](https://docs.lammps.org/angle_cross.html) - cross term coupling angle and bond lengths\n* [dipole ](https://docs.lammps.org/angle_dipole.html) - angle that controls orientation of a point dipole\n* [fourier ](https://docs.lammps.org/angle_fourier.html) - angle with multiple cosine terms\n* [fourier/simple ](https://docs.lammps.org/angle_fourier_simple.html) - angle with a single cosine term\n* [gaussian ](https://docs.lammps.org/angle_gaussian.html) - multi-centered Gaussian-based angle potential\n* [harmonic ](https://docs.lammps.org/angle_harmonic.html) - harmonic angle\n* [lepton ](https://docs.lammps.org/angle_lepton.html) - angle potential from evaluating a string\n* [mesocnt ](https://docs.lammps.org/angle_mesocnt.html) - piecewise harmonic and linear angle for bending-buckling of nanotubes\n* [mm3 ](https://docs.lammps.org/angle_mm3.html) - anharmonic angle\n* [quartic ](https://docs.lammps.org/angle_quartic.html) - angle with cubic and quartic terms\n* [spica ](https://docs.lammps.org/angle_spica.html) - harmonic angle with repulsive SPICA pair style between 1-3 atoms\n* [table ](https://docs.lammps.org/angle_table.html) - tabulated by angle\n\n----------\n", - "restrictions": "Angle styles can only be set for atom_styles that allow angles to be\ndefined.\n\nMost angle styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual bond potentials tell if it is part of a package.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* style = none or screen or log or both \n", + "examples": "\n```lmps\necho both\necho log\n```\n", + "html_filename": "echo.html", + "short_description": "This command determines whether LAMMPS echoes each input script\ncommand to the screen and/or log file as it is read and processed", + "description": "This command determines whether LAMMPS echoes each input script\ncommand to the screen and/or log file as it is read and processed. If\nan input script has errors, it can be useful to look at echoed output\nto see the last command processed.\n\nThe [command-line switch ](https://docs.lammps.org/Run_options.html) -echo can be used in place\nof this command.\n", + "restrictions": " none\n", + "related": "none\n" }, { - "command": [ - "fix shardlow", - "fix shardlow/kk" + "command": [ + "compute ackland/atom" ], "syntax": [ - "fix ID group-ID shardlow" + "compute ID group-ID ackland/atom keyword/value" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -29913,117 +28944,95 @@ export const command_docs = [ "choices": [] }, { - "arg": "shardlow", - "type": 3, - "choices": [ - "shardlow", - "shardlow/kk" - ] + "arg": "ackland/atom", + "type": 1, + "choices": [] + }, + { + "arg": "keyword/value", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* shardlow = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all shardlow\n```\n", - "html_filename": "fix_shardlow.html", - "short_description": "Specifies that the Shardlow splitting algorithm (SSA) is to be used to\nintegrate the DPD equations of motion", - "description": "Specifies that the Shardlow splitting algorithm (SSA) is to be used to\nintegrate the DPD equations of motion. The SSA splits the integration\ninto a stochastic and deterministic integration step. The fix\n*shardlow* performs the stochastic integration step and must be used in\nconjunction with a deterministic integrator (e.g. [fix nve](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html)). The stochastic integration of\nthe dissipative and random forces is performed prior to the\ndeterministic integration of the conservative force. Further details\nregarding the method are provided in **Lisal** and\n**Larentzos1sh**.\n\nThe fix *shardlow* must be used with the [pair_style dpd/fdt](https://docs.lammps.org/pair_style.html) or [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command\nto properly initialize the fluctuation-dissipation theorem parameter(s)\nsigma (and kappa, if necessary).\n\nNote that numerous variants of DPD can be specified by choosing an\nappropriate combination of the integrator and [pair_style dpd/fdt](https://docs.lammps.org/pair_style.html) command. DPD under isothermal conditions can be specified\nby using fix *shardlow*, fix *nve* and pair_style *dpd/fdt* . DPD\nunder isoenergetic conditions can be specified by using fix *shardlow*,\nfix *nve* and pair_style *dpd/fdt/energy* . DPD under isobaric\nconditions can be specified by using fix shardlow, fix *nph* and\npair_style *dpd/fdt* . DPD under isoenthalpic conditions can be\nspecified by using fix shardlow, fix *nph* and pair_style\n*dpd/fdt/energy* . Examples of each DPD variant are provided in the\nexamples/PACKAGES/dpd-react directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Lisal)** M. Lisal, J.K. Brennan, J. Bonet Avalos, J. Chem. Phys., 135, 204105 (2011). \n \n**(Larentzos1sh)** J.P. Larentzos, J.K. Brennan, J.D. Moore, M. Lisal and W.D. Mattson, Comput. Phys. Commun., 185, 1987-1998 (2014). \n ", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is currently limited to orthogonal simulation cell\ngeometries.\n\nThis fix must be used with an additional fix that specifies time\nintegration, e.g. [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html).\n\nThe Shardlow splitting algorithm requires the sizes of the subdomain\nlengths to be larger than twice the cutoff+skin. Generally, the\ndomain decomposition is dependent on the number of processors\nrequested.\n", - "related": "[pair_style dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html), [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ackland/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = legacy \n *        legacy args = yes or no = use ( yes ) or do not use ( no ) legacy Ackland algorithm implementation \n", + "examples": "\n```lmps\ncompute 1 all ackland/atom\ncompute 1 all ackland/atom legacy yes\n```\n", + "html_filename": "compute_ackland_atom.html", + "short_description": "Defines a computation that calculates the local lattice structure\naccording to the formulation given in **Ackland**", + "description": "Defines a computation that calculates the local lattice structure\naccording to the formulation given in **Ackland**.\nHistorically, LAMMPS had two, slightly different implementations of\nthe algorithm from the paper. With the *legacy* keyword, it is\npossible to switch between the pre-2015 (\\ *legacy yes*\\ ) and post-2015\nimplementation (\\ *legacy no*\\ ). The post-2015 variant is the default.\n\nIn contrast to the [centro-symmetry parameter ](https://docs.lammps.org/compute_centro_atom.html) this method is stable against\ntemperature boost, because it is based not on the distance between\nparticles but the angles. Therefore statistical fluctuations are\naveraged out a little more. A comparison with the Common Neighbor\nAnalysis metric is made in the paper.\n\nThe result is a number which is mapped to the following different\nlattice structures:\n\n* 0 = UNKNOWN\n* 1 = BCC\n* 2 = FCC\n* 3 = HCP\n* 4 = ICO\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each of\nwhich computes this quantity.-\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\n**(Ackland)** Ackland, Jones, Phys Rev B, 73, 054104 (2006). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe per-atom vector values will be unitless since they are the\nintegers defined above.\n", + "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" }, { "command": [ - "fix_modify AtC mesh create" + "compute dihedral/local" ], "syntax": [ - "fix_modify mesh create " + "compute ID group-ID dihedral/local value1 value2 ... keyword args ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "create", + "arg": "dihedral/local", "type": 1, "choices": [] }, { - "arg": "", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "", + "arg": "args", "type": 2, "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] - }, - { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create = name of the AtC sub-command\n* nx ny nz = number of elements in x-, y-, and z-direction\n* region-ID = ID of region that is to be meshed\n* f or p = periodicity flags for x-, y-, and z-direction \n", - "examples": "\n```lmps\nfix_modify AtC mesh create 10 1 1 feRegion p p p\n```\n", - "html_filename": "atc_mesh_create.html", - "short_description": "Creates a uniform mesh in a rectangular region", - "description": "Creates a uniform mesh in a rectangular region.\n", - "restrictions": "Creates only uniform rectangular grids in a rectangular region\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh quadrature ](https://docs.lammps.org/atc_mesh_quadrature.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dihedral/local = style name of this compute command\n* one or more values may be appended\n* value = phi or v_name \n *        phi = tabulate dihedral angles \n *        v_name = equal-style variable with name (see below) \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *        set args = phi name \n         phi = only currently allowed arg \n         name = name of variable to set with phi \n", + "examples": "\n```lmps\ncompute 1 all dihedral/local phi\ncompute 1 all dihedral/local phi v_cos set phi p\n```\n", + "html_filename": "compute_dihedral_local.html", + "short_description": "Define a computation that calculates properties of individual dihedral\ninteractions", + "description": "Define a computation that calculates properties of individual dihedral\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of dihedral angles in the system, modified\nby the group parameter as explained below.\n\nThe value *phi* (\\(\\phi\\)) is the dihedral angle, as defined in the diagram\non the [dihedral_style ](https://docs.lammps.org/dihedral_style.html) doc page.\n\nThe value *v_name* can be used together with the *set* keyword to compute a\nuser-specified function of the dihedral angle \\(\\phi\\). The *name*\nspecified for the *v_name* value is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on\na variable which will store the angle \\(\\phi\\). This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with \\(\\phi\\).\n\nNote that the value of \\(\\phi\\) for each angle which stored in the internal\nvariable is in radians, not degrees.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the \\(\\cos\\phi\\) and \\(\\cos^2\\phi\\) of every dihedral\nangle in the system and output the statistics in various ways:\n\n```lmps\nvariable p internal 0.0\nvariable cos equal cos(v_p)\nvariable cossq equal cos(v_p)*cos(v_p)\n\ncompute 1 all property/local datom1 datom2 datom3 datom4 dtype\ncompute 2 all dihedral/local phi v_cos v_cossq set phi p\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the angle (\\(\\phi\\)),\n\\(\\cos(\\phi)\\), and \\(\\cos^2(\\phi)\\) for every dihedral in the system.\nThe [thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the average of\nthose quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwith thermo output. And the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the cosine(angle) values and write them to a file.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their dihedrals. A dihedral will\nonly be included if all four atoms in the dihedral are in the specified\ncompute group.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, dihedral output from the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local dtype datom1 datom2 datom3 datom4\ncompute 2 all dihedral/local phi\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_1[5] c_2[1]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of dihedrals. If a single value is specified, a\nlocal vector is produced. If two or more values are specified, a\nlocal array is produced where the number of columns is equal to the number of\nvalues. The vector or array can be accessed by any command that uses\nlocal values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *phi* will be in degrees.\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" }, { "command": [ - "compute smd/plastic/strain/rate" + "fix flow/gauss" ], "syntax": [ - "compute ID group-ID smd/plastic/strain/rate" + "fix ID group-ID flow/gauss xflag yflag zflag keyword" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -30038,230 +29047,182 @@ export const command_docs = [ "choices": [] }, { - "arg": "smd/plastic/strain/rate", + "arg": "flow/gauss", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/plastic/strain/rate = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/plastic/strain/rate\n```\n", - "html_filename": "compute_smd_plastic_strain_rate.html", - "short_description": "Define a computation that outputs the time rate of the equivalent\nplastic strain", - "description": "Define a computation that outputs the time rate of the equivalent\nplastic strain. This command is only meaningful if a material model\nwith plasticity is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", - "related": "[smd/plastic/strain ](https://docs.lammps.org/compute_smd_plastic_strain.html),\n[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" -}, -{ - "command": [ - "pair_style lepton", - "pair_style lepton/omp", - "pair_style lepton", - "pair_style lepton" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, - "choices": [] + "arg": "1", + "type": 3, + "choices": [ + "0", + "1" + ] }, { - "arg": "lepton/sphere/comp", + "arg": "1", "type": 3, "choices": [ - "lepton", - "lepton/coul", - "lepton/sphere", - "lepton/omp", - "lepton/coul/comp", - "lepton/sphere/comp" + "0", + "1" ] }, { - "arg": "args", + "arg": "1", + "type": 3, + "choices": [ + "0", + "1" + ] + }, + { + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* style = lepton or lepton/coul or lepton/sphere\n* args = list of arguments for a particular style \n *     lepton args = cutoff \n      cutoff = global cutoff for the interactions (distance units) \n *     lepton/coul args = cutoff keyword \n      cutoff = global cutoff for the interactions (distance units) \n      zero or more keywords may be appended \n      keyword = ewald or pppm or msm or dispersion or tip4p \n *     lepton/sphere args = cutoff \n      cutoff = global cutoff for the interactions (distance units) \n", - "examples": "\n```lmps\npair_style lepton 2.5\n\npair_coeff * * \"k*((r-r0)^2*step(r0-r)); k=200; r0=1.5\" 2.0\npair_coeff 1 2 \"4.0*eps*((sig/r)^12 - (sig/r)^6);eps=1.0;sig=1.0\" 1.12246204830937\npair_coeff 2 2 \"eps*(2.0*(sig/r)^9 - 3.0*(sig/r)^6);eps=1.0;sig=1.0\"\npair_coeff 1 3 \"zbl(13,6,r)\"\npair_coeff 3 3 \"(1.0-switch)*zbl(6,6,r)-switch*4.0*eps*((sig/r)^6);switch=0.5*(tanh(10.0*(r-sig))+1.0);eps=0.05;sig=3.20723\"\n\npair_style lepton/coul 2.5\npair_coeff 1 1 \"qi*qj/r\" 4.0\npair_coeff 1 2 \"lj+coul; lj=4.0*eps*((sig/r)^12 - (sig/r)^6); eps=1.0; sig=1.0; coul=qi*qj/r\"\n\npair_style lepton/coul 2.5 pppm\nkspace_style pppm 1.0e-4\npair_coeff 1 1 \"qi*qj/r*erfc(alpha*r); alpha=1.067\"\n\npair_style lepton/sphere 2.5\npair_coeff 1 * \"k*((r-r0)^2*step(r0-r)); k=200; r0=radi+radj\"\npair_coeff 2 2 \"4.0*eps*((sig/r)^12 - (sig/r)^6); eps=1.0; sig=2.0*sqrt(radi*radj)\"\n```\n", - "html_filename": "pair_lepton.html", - "short_description": "\n **New in version 8Feb2023** \n\n added pair styles *lepton* and *lepton/coul*\n\n **New in version 15Jun2023** \n\n added pair style *lepton/sphere*\nPair styles *lepton*, *lepton/coul*, *lepton/sphere* compute pairwise\ninteractions between particles which depend on the distance and have a\ncutoff", - "description": "\n **New in version 8Feb2023** \n\n added pair styles *lepton* and *lepton/coul*\n\n **New in version 15Jun2023** \n\n added pair style *lepton/sphere*\nPair styles *lepton*, *lepton/coul*, *lepton/sphere* compute pairwise\ninteractions between particles which depend on the distance and have a\ncutoff. The potential function must be provided as an expression string\nusing \"r\" as the distance variable. With pair style *lepton/coul* one\nmay additionally reference the charges of the two atoms of the pair with\n\"qi\" and \"qj\", respectively. With pair style *lepton/sphere* one may\ninstead reference the radii of the two atoms of the pair with \"radi\" and\n\"radj\", respectively; this is half of the diameter that can be set in\n[data files ](https://docs.lammps.org/read_data.html) or the [set command ](https://docs.lammps.org/set.html).\n\nNote that further constants in the expressions can be defined in the\nsame string as additional expressions separated by semicolons as shown\nin the examples above.\n\nThe expression `\"200.0*(r-1.5)^2\"` represents a harmonic potential\naround the pairwise distance \\(r_0\\) of 1.5 distance units and a\nforce constant *K* of 200.0 energy units:\n\\[\n U_{ij} = K (r-r_0)^2\\]\nThe expression `\"qi*qj/r\"` represents a regular Coulombic potential with cutoff:\n\\[\n U_{ij} = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nThe expression `\"200.0*(r-(radi+radj)^2\"` represents a harmonic potential\nthat has the equilibrium distance chosen so that the radii of the two\natoms touch:\n\\[\n U_{ij} = K (r-(r_i+r_j))^2\\]\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* pair style interfaces with, evaluates this expression string at\nrun time to compute the pairwise energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect\nto \"r\" and then uses that to compute the force between the pairs of\nparticles within the given cutoff.\n\nThe following coefficients must be defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* cutoff (distance units)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The last coefficient is\noptional; it allows to set the cutoff for a pair of atom types to a\ndifferent value than the global cutoff.\n\nFor pair style *lepton* only the \"lj\" values of the [special_bonds](https://docs.lammps.org/special_bonds.html) settings apply in case the interacting pair is also\nconnected with a bond. The potential energy will *only* be added to the\n\"evdwl\" property.\n\nFor pair style *lepton/coul* only the \"coul\" values of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings apply in case the\ninteracting pair is also connected with a bond. The potential energy\nwill *only* be added to the \"ecoul\" property.\n\nFor pair style *lepton/sphere* only the \"lj\" values of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings apply in case the\ninteracting pair is also connected with a bond. The potential energy\nwill *only* be added to the \"evdwl\" property.\n\nIn addition to the functions listed below, both pair styles support in\naddition a custom \"zbl(zi,zj,r)\" function which computes the\nZiegler-Biersack-Littmark (ZBL) screened nuclear repulsion for\ndescribing high-energy collisions between atoms. For details of the\nfunction please see the documentation for [pair style zbl](https://docs.lammps.org/pair_zbl.html). The arguments of the function are the atomic numbers of\natom i (zi), atom j (zj) and the distance r. Please see the examples\nabove.\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nPair styles *lepton*, *lepton/coul*, and *lepton/sphere* do not support\nmixing. Thus, expressions for *all* I,J pairs must be specified\nexplicitly.\n\nOnly pair style *lepton* supports the [pair_modify shift ](https://docs.lammps.org/pair_modify.html)\noption for shifting the potential energy of the pair interaction so that\nit is 0 at the cutoff, pair styles *lepton/coul* and *lepton/sphere* do *not*.\n\nThe [pair_modify table ](https://docs.lammps.org/pair_modify.html) options are not relevant for\nthe these pair styles.\n\nThese pair styles do not support the [pair_modify tail](https://docs.lammps.org/pair_modify.html) option for adding long-range tail corrections to energy\nand pressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "These pair styles are part of the LEPTON package and only enabled if\nLAMMPS was built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nPair style *lepton/coul* requires that atom atoms have a charge\nproperty, e.g. via [atom_style charge ](https://docs.lammps.org/atom_style.html).\n\nPair style *lepton/sphere* requires that atom atoms have a radius\nproperty, e.g. via [atom_style sphere ](https://docs.lammps.org/atom_style.html).\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style python ](https://docs.lammps.org/pair_python.html),\n[pair_style table ](https://docs.lammps.org/pair_table.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* flow/gauss = style name of this fix command\n* xflag,yflag,zflag = 0 or 1 \n *          0 = do not conserve current in this dimension \n *          1 = conserve current in this dimension \n* zero or more keyword/value pairs may be appended\n* keyword = energy \n *        energy value = no or yes \n         no = do not compute work done by this fix \n         yes = compute work done by this fix \n", + "examples": "\n```lmps\nfix GD fluid flow/gauss 1 0 0\nfix GD fluid flow/gauss 1 1 1 energy yes\n```\n", + "html_filename": "fix_flow_gauss.html", + "short_description": "This fix implements the Gaussian dynamics (GD) method to simulate a\nsystem at constant mass flux **Strong**", + "description": "This fix implements the Gaussian dynamics (GD) method to simulate a\nsystem at constant mass flux **Strong**. GD is a\nnonequilibrium molecular dynamics simulation method that can be used\nto study fluid flows through pores, pipes, and channels. In its\noriginal implementation GD was used to compute the pressure required\nto achieve a fixed mass flux through an opening. The flux can be\nconserved in any combination of the directions, x, y, or z, using\nxflag,yflag,zflag. This fix does not initialize a net flux through a\nsystem, it only conserves the center-of-mass momentum that is present\nwhen the fix is declared in the input script. Use the\n[velocity ](https://docs.lammps.org/velocity.html) command to generate an initial center-of-mass\nmomentum.\n\nGD applies an external fluctuating gravitational field that acts as a\ndriving force to keep the system away from equilibrium. To maintain\nsteady state, a profile-unbiased thermostat must be implemented to\ndissipate the heat that is added by the driving force. [Computetemp/profile ](https://docs.lammps.org/compute_temp_profile.html) can be used to implement a\nprofile-unbiased thermostat.\n\nA common use of this fix is to compute a pressure drop across a pipe,\npore, or membrane. The pressure profile can be computed in LAMMPS with\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) and [fixave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), or with the hardy method in [fix atc](https://docs.lammps.org/fix_atc.html). Note that the simple [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) method is only accurate away from\ninhomogeneities in the fluid, such as fixed wall atoms. Further, the\ncomputed pressure profile must be corrected for the acceleration\napplied by GD before computing a pressure drop or comparing it to\nother methods, such as the pump method **Zhu**. The\npressure correction is discussed and described in **Strong**.\n\nFor a complete example including the considerations discussed\nabove, see the examples/PACKAGES/flow_gauss directory.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only the flux of the atoms in group-ID will be conserved. If the\n > velocities of the group-ID atoms are coupled to the velocities of\n > other atoms in the simulation, the flux will not be conserved. For\n > example, in a simulation with fluid atoms and harmonically constrained\n > wall atoms, if a single thermostat is applied to group *all*, the\n > fluid atom velocities will be coupled to the wall atom velocities, and\n > the flux will not be conserved. This issue can be avoided by\n > thermostatting the fluid and wall groups separately. \n > \n\nAdding an acceleration to atoms does work on the system. This added\nenergy can be optionally subtracted from the potential energy for the\nthermodynamic output (see below) to check that the timestep is small\nenough to conserve energy. Since the applied acceleration is\nfluctuating in time, the work cannot be computed from a potential. As\na result, computing the work is slightly more computationally\nexpensive than usual, so it is not performed by default. To invoke the\nwork calculation, use the *energy* keyword. The\n[fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option also invokes the work\ncalculation, and overrides an *energy no* setting here. If neither\n*energy yes* or *fix_modify energy yes* are set, the global scalar\ncomputed by the fix will return zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In order to check energy conservation, any other fixes that do\n > work on the system must have *fix_modify energy yes* set as well. This\n > includes thermostat fixes and any constraints that hold the positions\n > of wall atoms fixed, such as [fix spring/self ](https://docs.lammps.org/fix_spring_self.html). \n > \n\nIf this fix is used in a simulation with the [rRESPA ](https://docs.lammps.org/run_style.html)\nintegrator, the applied acceleration must be computed and applied at\nthe same rRESPA level as the interactions between the flowing fluid\nand the obstacle. The rRESPA level at which the acceleration is\napplied can be changed using the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*respa* option discussed below. If the flowing fluid and the obstacle\ninteract through multiple interactions that are computed at different\nrRESPA levels, then there must be a separate flow/gauss fix for each\nlevel. For example, if the flowing fluid and obstacle interact through\npairwise and long-range Coulomb interactions, which are computed at\nrRESPA levels 3 and 4, respectively, then there must be two separate\nflow/gauss fixes, one that specifies *fix_modify respa 3* and one with\n*fix_modify respa 4*.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy added by the fix to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows the user to set at which level of the [rRESPA](https://docs.lammps.org/run_style.html) integrator the fix computes and adds the external\nacceleration. Default is the outermost level.\n\nThis fix computes a global scalar and a global 3-vector of forces,\nwhich can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar is the negative of the work done on the\nsystem, see the discussion above. It is only calculated if the\n*energy* keyword is enabled or [fix_modify energy yes](https://docs.lammps.org/fix_modify.html) is set.\n\nThe vector is the total force that this fix applied to the group of\natoms on the current timestep. The scalar and vector values\ncalculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Strong)** Strong and Eaves, J. Phys. Chem. B 121, 189 (2017). \n \n**(Zhu)** Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002). \n \n**(Strong)** Strong and Eaves, J. Phys. Chem. B 121, 189 (2017). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html),\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html),\n[velocity ](https://docs.lammps.org/velocity.html)\n" }, { "command": [ - "fix_modify AtC rates" + "fix lb/viscous" ], "syntax": [ - "fix_modify rates " + "fix ID group-ID lb/viscous" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "rates", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "add", - "delete" - ] - }, - { - "arg": "", - "type": 2, + "arg": "lb/viscous", + "type": 1, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* rates = name of the AtC sub-command\n* add or delete = select whether to add or delete calculation of rates for the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by :ref:`(Eshelby) `\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", - "examples": "\n```lmps\nfix_modify AtC rates add temperature velocity stress\nfix_modify AtC rates delete stress\n```\n", - "html_filename": "atc_hardy_rates.html", - "short_description": "Requests calculation and output of rates (time derivatives) of the\nfields from the AtC transfer class", - "description": "Requests calculation and output of rates (time derivatives) of the\nfields from the AtC transfer class. For Eulerian analysis (see\n[fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)) these\nrates are the partial time derivatives of the nodal fields, not the full\n(material) time derivatives.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html).\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_fields.html)\n- [fix_modify AtC fields ](https://docs.lammps.org/atc_hardy_gradients.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* lb/viscous = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 flow lb/viscous\n```\n", + "html_filename": "fix_lb_viscous.html", + "short_description": "This fix is similar to the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, and\nis to be used in place of that command when a lattice-Boltzmann fluid\nis present using the [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)", + "description": "This fix is similar to the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command, and\nis to be used in place of that command when a lattice-Boltzmann fluid\nis present using the [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html). This should be used in conjunction with one of the built-in LAMMPS integrators, such as [fix NVE ](https://docs.lammps.org/fix_nve.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html).\n\nThis fix adds a viscous force to each atom to cause it move with the same velocity as the fluid (an equal and opposite force is applied to the fluid via [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)). When [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) is called with the noise option, the atoms will also experience random forces which will thermalize them to the same temperature as the fluid. In this way, the combination of this fix with [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) and a LAMMPS integrator like [fix NVE ](https://docs.lammps.org/fix_nve.html) is analogous to [fix langevin ](https://docs.lammps.org/fix_langevin.html) except here the fluid is explicit. The temperature of the particles can be monitored via the scalar output of [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html).\n\n----------\n\nFor details of this fix, as well as descriptions and results of several\ntest runs, see **fluid-Denniston2**. Please include a citation to\nthis paper if this fix is used in work contributing to published\nresearch.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nAs described in the [fix viscous ](https://docs.lammps.org/fix_viscous.html) documentation:\n\n\"No information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\"\n\n**(fluid-Denniston2)** Denniston, C., Afrasiabian, N., Cole-Andre, M.G., Mackay, F. E., Ollila, S.T.T., and Whitehead, T., LAMMPS lb/fluid fix version 2: Improved Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 275 (2022) [108318](https://doi.org/10.1016/j.cpc.2022.108318) . \n ", + "restrictions": "This fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCan only be used if a lattice-Boltzmann fluid has been created via the\n[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) command, and must come after this\ncommand.\n", + "related": "[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)\n" }, { "command": [ - "angle_style hybrid", - "angle_style hybrid/kk" + "fix wall/gran", + "fix wall/gran/kk" ], "syntax": [ - "angle_style hybrid style1 style2 ..." + "fix ID group-ID wall/gran fstyle fstyle_params wallstyle args keyword values ..." ], "args": [ [ { - "arg": "angle_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "hybrid", - "hybrid/kk" - ] - }, - { - "arg": "style1", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style1,style2 = list of one or more angle styles \n", - "examples": "\n```lmps\nangle_style hybrid harmonic cosine\nangle_coeff 1 harmonic 80.0 30.0\nangle_coeff 2* cosine 50.0\n```\n", - "html_filename": "angle_hybrid.html", - "short_description": "The *hybrid* style enables the use of multiple angle styles in one\nsimulation", - "description": "The *hybrid* style enables the use of multiple angle styles in one\nsimulation. An angle style is assigned to each angle type. For\nexample, angles in a polymer flow (of angle type 1) could be computed\nwith a *harmonic* potential and angles in the wall boundary (of angle\ntype 2) could be computed with a *cosine* potential. The assignment\nof angle type to style is made via the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand or in the data file.\n\nIn the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands, the name of an angle style must be added\nafter the angle type, with the remaining coefficients being those\nappropriate to that style. In the example above, the 2 angle_coeff\ncommands set angles of angle type 1 to be computed with a *harmonic*\npotential with coefficients 80.0, 30.0 for \\(K\\), \\(\\theta_0\\). All other angle\ntypes \\((2 - N)\\) are computed with a *cosine* potential with coefficient\n50.0 for \\(K\\).\n\nIf angle coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"cosine\", must be added after the angle type, for each\nline in the \"Angle Coeffs\" section, e.g.\n\n```\nAngle Coeffs\n\n1 harmonic 80.0 30.0\n2 cosine 50.0\n...\n```\nIf *class2* is one of the angle hybrid styles, the same rule holds for\nspecifying additional BondBond (and BondAngle) coefficients either via\nthe input script or in the data file. I.e. *class2* must be added to\neach line after the angle type. For lines in the BondBond (or\nBondAngle) section of the data file for angle types that are not\n*class2*, you must use an angle style of *skip* as a placeholder, e.g.\n\n```\nBondBond Coeffs\n\n1 skip\n2 class2 3.6512 1.0119 1.0119\n...\n```\nNote that it is not necessary to use the angle style *skip* in the\ninput script, since BondBond (or BondAngle) coefficients need not be\nspecified at all for angle types that are not *class2* .\n\nAn angle style of *none* with no additional coefficients can be used\nin place of an angle style, either in a input script [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand or in the data file, if you desire to turn off interactions\nfor specific angle types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other angle styles, the hybrid angle style does not store angle\ncoefficient info for individual sub-styles in [binary restart files](https://docs.lammps.org/restart.html) or [data files ](https://docs.lammps.org/write_data.html). Thus when restarting a\nsimulation, you need to re-specify the angle_coeff commands.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" -}, -{ - "command": [ - "fix gravity", - "fix gravity/omp", - "fix gravity/kk" - ], - "syntax": [ - "fix ID group gravity magnitude style args" - ], - "args": [ - [ + }, { - "arg": "fix", - "type": 1, - "choices": [] + "arg": "wall/gran", + "type": 3, + "choices": [ + "wall/gran", + "wall/gran/kk" + ] }, { - "arg": "ID", + "arg": "fstyle", "type": 2, "choices": [] }, { - "arg": "group", + "arg": "fstyle_params", "type": 2, "choices": [] }, { - "arg": "gravity", + "arg": "zcylinder", "type": 3, "choices": [ - "gravity", - "gravity/omp", - "gravity/kk" + "xplane", + "yplane", + "zplane", + "zcylinder" ] }, { - "arg": "magnitude", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "vector", + "arg": "temperature", "type": 3, "choices": [ - "chute", - "spherical", - "gradient", - "vector" + "wiggle", + "shear", + "contacts", + "temperature" ] }, { - "arg": "args", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gravity = style name of this fix command\n* magnitude = size of acceleration (force/mass units)\n* magnitude can be a variable (see below)\n* style = chute or spherical or gradient or vector \n *        chute args = angle \n         angle = angle in +x away from -z or -y axis in 3d/2d (in degrees) \n         angle can be a variable (see below) \n *        spherical args = phi theta \n         phi = azimuthal angle from +x axis (in degrees) \n         theta = angle from +z or +y axis in 3d/2d (in degrees) \n         phi or theta can be a variable (see below) \n *        vector args = x y z \n         x y z = vector direction to apply the acceleration \n         x or y or z can be a variable (see below) \n", - "examples": "\n```lmps\nfix 1 all gravity 1.0 chute 24.0\nfix 1 all gravity v_increase chute 24.0\nfix 1 all gravity 1.0 spherical 0.0 -180.0\nfix 1 all gravity 10.0 spherical v_phi v_theta\nfix 1 all gravity 100.0 vector 1 1 0\n```\n", - "html_filename": "fix_gravity.html", - "short_description": "Impose an additional acceleration on each particle in the group", - "description": "Impose an additional acceleration on each particle in the group. This\nfix is typically used with granular systems to include a \"gravity\"\nterm acting on the macroscopic particles. More generally, it can\nrepresent any kind of driving field, e.g. a pressure gradient inducing\na Poiseuille flow in a fluid. Note that this fix operates differently\nthan the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command. The addforce fix\nadds the same force to each atom, independent of its mass. This\ncommand imparts the same acceleration to each atom (force/mass).\n\nThe *magnitude* of the acceleration is specified in force/mass units.\nFor granular systems (LJ units) this is typically 1.0. See the\n[units ](https://docs.lammps.org/units.html) command for details.\n\nStyle *chute* is typically used for simulations of chute flow where\nthe specified *angle* is the chute angle, with flow occurring in the +x\ndirection. For 3d systems, the tilt is away from the z axis; for 2d\nsystems, the tilt is away from the y axis.\n\nStyle *spherical* allows an arbitrary 3d direction to be specified for\nthe acceleration vector. *Phi* and *theta* are defined in the usual\nspherical coordinates. Thus for acceleration acting in the -z\ndirection, *theta* would be 180.0 (or -180.0). *Theta* = 90.0 and\n*phi* = -90.0 would mean acceleration acts in the -y direction. For\n2d systems, *phi* is ignored and *theta* is an angle in the xy plane\nwhere *theta* = 0.0 is the y-axis.\n\nStyle *vector* imposes an acceleration in the vector direction given\nby (x,y,z). Only the direction of the vector is important; it's\nlength is ignored. For 2d systems, the *z* component is ignored.\n\nAny of the quantities *magnitude*, *angle*, *phi*, *theta*, *x*, *y*,\n*z* which define the gravitational magnitude and direction, can be\nspecified as an equal-style [variable ](https://docs.lammps.org/variable.html). If the value is\na variable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated each\ntimestep, and its value used to determine the quantity. You should\nensure that the variable calculates a result in the appropriate units,\ne.g. force/mass or degrees.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent gravitational\nfield.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the gravitational potential energy of the system to\nthe global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). This scalar is the\ngravitational potential energy of the particles in the defined field,\nnamely mass \\* (g dot x) for each particles, where x and mass are the\nparticles position and mass, and g is the gravitational field. The\nscalar value calculated by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[atom_style sphere ](https://docs.lammps.org/atom_style.html), [fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/gran = style name of this fix command\n* fstyle = style of force interactions between particles and wall \n *        possible choices: hooke, hooke/history, hertz/history, granular \n* fstyle_params = parameters associated with force interaction style \n *        For *hooke*, *hooke/history*, and *hertz/history*, fstyle_params are: \n         Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) \n         Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below) \n         gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below) \n         gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) \n         xmu = static yield criterion (unitless value between 0.0 and 1.0e4) \n         dampflag = 0 or 1 if tangential damping force is excluded or included \n         optional keyword = *limit_damping*, limit damping to prevent attractive interaction \n *        For *granular*, fstyle_params are set using the same syntax as for the pair_coeff command of [pair_style granular ](https://docs.lammps.org/pair_granular.html) \n* wallstyle = xplane or yplane or zplane or zcylinder\n* args = list of arguments for a particular style \n *        xplane or yplane or zplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n *        zcylinder args = radius \n         radius = cylinder radius (distance units) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle or shear or contacts or temperature \n        wiggle values = dim amplitude period \n        dim = x or y or z \n        amplitude = size of oscillation (distance units) \n        period = time of oscillation (time units) \n        shear values = dim vshear \n        dim = x or y or z \n        vshear = magnitude of shear velocity (velocity units) \n *       contacts value = none \n        generate contact information for each particle \n *       temperature value = temperature \n        specify temperature of wall \n", + "examples": "\n```lmps\nfix 1 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0\nfix 1 all wall/gran hooke/history 200000.0 NULL 50.0 NULL 0.5 0 zplane 0.0 NULL\nfix 2 all wall/gran hooke 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0\nfix 3 all wall/gran granular hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping velocity region myBox\nfix 4 all wall/gran granular jkr 1e5 1500.0 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall region myCone\nfix 5 all wall/gran granular dmt 1e5 0.2 0.3 10.0 tangential mindlin NULL 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall damping tsuji heat 10 region myCone temperature 1.0\nfix 6 all wall/gran hooke 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0 contacts\n```\n", + "html_filename": "fix_wall_gran.html", + "short_description": "Bound the simulation domain of a granular system with a frictional\nwall", + "description": "Bound the simulation domain of a granular system with a frictional\nwall. All particles in the group interact with the wall when they are\nclose enough to touch it.\n\nThe nature of the wall/particle interactions are determined by the\n*fstyle* setting. It can be any of the styles defined by the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) or the more general\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) commands. Currently the\noptions are *hooke*, *hooke/history*, or *hertz/history* for the\nformer, and *granular* with all the possible options of the associated\n*pair_coeff* command for the latter. The equation for the force\nbetween the wall and particles touching it is the same as the\ncorresponding equation on the [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) and\n[pair_style granular ](https://docs.lammps.org/pair_granular.html) doc pages, in the limit of\none of the two particles going to infinite radius and mass (flat wall).\nSpecifically, delta = radius - r = overlap of particle with wall, m_eff\n= mass of particle, and the effective radius of contact = RiRj/Ri+Rj is\nset to the radius of the particle.\n\nThe parameters *Kn*, *Kt*, *gamma_n*, *gamma_t*, *xmu*, *dampflag*,\nand the optional keyword *limit_damping*\nhave the same meaning and units as those specified with the\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html) commands. This means a NULL can be\nused for either *Kt* or *gamma_t* as described on that page. If a\nNULL is used for *Kt*, then a default value is used where *Kt* = 2/7\n*Kn* . If a NULL is used for *gamma_t*, then a default value is used\nwhere *gamma_t* = 1/2 *gamma_n*.\n\nAll the model choices for cohesion, tangential friction, rolling\nfriction and twisting friction supported by the [pair_style granular ](https://docs.lammps.org/pair_granular.html) through its *pair_coeff* command are also\nsupported for walls. These are discussed in greater detail on the doc\npage for [pair_style granular ](https://docs.lammps.org/pair_granular.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When *fstyle* *granular* is specified, the associated *fstyle_params* are taken as\n > those for a wall/particle interaction. For example, for the *hertz/material* normal\n > contact model with \\(E = 960\\) and \\(\\nu = 0.2\\), the effective Young's\n > modulus for a wall/particle interaction is computed as\n > \\(E_{eff} = \\frac{960}{2(1-0.2^2)} = 500\\). Any pair coefficients defined by\n > [pair_style granular ](https://docs.lammps.org/pair_granular.html) are not taken into consideration. To\n > model different wall/particle interactions for particles of different material\n > types, the user may define multiple fix wall/gran commands operating on separate\n > groups (e.g. based on particle type) each with a different wall/particle effective\n > Young's modulus. \n > \n\nNote that you can choose a different force styles and/or different\nvalues for the wall/particle coefficients than for particle/particle\ninteractions. E.g. if you wish to model the wall as a different\nmaterial.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the page for [pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html),\n > versions of LAMMPS before 9Jan09 used a different equation for\n > Hertzian interactions. This means Hertizian wall/particle\n > interactions have also changed. They now include a sqrt(radius) term\n > which was not present before. Also the previous versions used Kn and\n > Kt from the pairwise interaction and hardwired dampflag to 1, rather\n > than letting them be specified directly. This means you can set the\n > values of the wall/particle coefficients appropriately in the current\n > code to reproduce the results of a previous Hertzian monodisperse\n > calculation. For example, for the common case of a monodisperse\n > system with particles of diameter 1, Kn, Kt, gamma_n, and gamma_s\n > should be set sqrt(2.0) larger than they were previously. \n > \n\nThe effective mass *m_eff* in the formulas listed on the [pair_style granular ](https://docs.lammps.org/pair_gran.html) page is the mass of the particle for\nparticle/wall interactions (mass of wall is infinite). If the\nparticle is part of a rigid body, its mass is replaced by the mass of\nthe rigid body in those formulas. This is determined by searching for\na [fix rigid ](https://docs.lammps.org/fix_rigid.html) command (or its variants).\n\nThe *wallstyle* can be planar or cylindrical. The 3 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired. For a *zcylinder* wallstyle, the cylinder's\naxis is at x = y = 0.0, and the radius of the cylinder is specified.\n\nOptionally, the wall can be moving, if the *wiggle* or *shear*\nkeywords are appended. Both keywords cannot be used together.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\ngranular particles. The arguments to the *wiggle* keyword specify a\ndimension for the motion, as well as it's *amplitude* and *period* .\nNote that if the dimension is in the plane of the wall, this is\neffectively a shearing motion. If the dimension is perpendicular to\nthe wall, it is more of a shaking motion. A *zcylinder* wall can only\nbe wiggled in the z dimension.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\nFor the *shear* keyword, the wall moves continuously in the specified\ndimension with velocity *vshear* . The dimension must be tangential to\nwalls with a planar *wallstyle*, e.g. in the *y* or *z* directions for\nan *xplane* wall. For *zcylinder* walls, a dimension of *z* means the\ncylinder is moving in the z-direction along it's axis. A dimension of\n*x* or *y* means the cylinder is spinning around the z-axis, either in\nthe clockwise direction for *vshear* > 0 or counter-clockwise for\n*vshear* < 0. In this case, *vshear* is the tangential velocity of\nthe wall at whatever *radius* has been defined.\n\nThe *temperature* keyword is used to assign a temperature to the wall.\nThe following value can either be a numeric value or an equal-style\n[variable ](https://docs.lammps.org/variable.html). If the value is a variable, it should be\nspecified as v_name, where name is the variable name. In this case, the\nvariable will be evaluated each timestep, and its value used to determine\nthe temperature. This option must be used in conjunction with a heat\nconduction model defined in [pair_style granular ](https://docs.lammps.org/pair_granular.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) to store temperature and a\nheat flow, and [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) to integrate heat\nflow.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the shear friction state of atoms interacting with the\nwall to [binary restart files ](https://docs.lammps.org/restart.html), so that a simulation can\ncontinue correctly if granular potentials with shear \"history\" effects\nare being used. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nIf the :code:`contacts` option is used, this fix generates a per-atom array\nwith 8 columns as output, containing the contact information for owned\nparticles (nlocal on each processor). All columns in this per-atom array will\nbe zero if no contact has occurred. The values of these columns are listed in\nthe following table:\n\n| | | | | | | | | | | |\n|---|---|---|---|---|---|---|---|---|---|---|\n| Index | Value | Units |\n+=======+====================================================+================+\n| 1 | 1.0 if particle is in contact with wall, | |\n| | 0.0 otherwise | |\n| 2 | Force \\(f_x\\) exerted by the wall | force units |\n| 3 | Force \\(f_y\\) exerted by the wall | force units |\n| 4 | Force \\(f_z\\) exerted by the wall | force units |\n| 5 | \\(x\\)-coordinate of contact point on wall | distance units |\n| 6 | \\(y\\)-coordinate of contact point on wall | distance units |\n| 7 | \\(z\\)-coordinate of contact point on wall | distance units |\n| 8 | Radius \\(r\\) of atom | distance units |\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo parameter of this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xyz) that has a granular wall must be non-periodic.\n", + "related": "[fix move ](https://docs.lammps.org/fix_move.html),\n[fix wall/gran/region ](https://docs.lammps.org/fix_wall_gran_region.html),\n[pair_style gran/\\* ](https://docs.lammps.org/pair_gran.html)\n[pair_style granular ](https://docs.lammps.org/pair_granular.html)\n" }, { "command": [ - "fix manifoldforce" + "compute vcm/chunk" ], "syntax": [ - "fix ID group-ID manifoldforce manifold manifold-args ..." + "compute ID group-ID vcm/chunk chunkID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -30276,36 +29237,32 @@ export const command_docs = [ "choices": [] }, { - "arg": "manifoldforce", + "arg": "vcm/chunk", "type": 1, "choices": [] }, { - "arg": "manifold", - "type": 2, - "choices": [] - }, - { - "arg": "manifold-args", + "arg": "chunkID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold \n", - "examples": "\n```lmps\nfix constrain all manifoldforce sphere 5.0\n```\n", - "html_filename": "fix_manifoldforce.html", - "short_description": "This fix subtracts each time step from the force the component along\nthe normal of the specified [manifold ](https://docs.lammps.org/Howto_manifold.html)", - "description": "This fix subtracts each time step from the force the component along\nthe normal of the specified [manifold ](https://docs.lammps.org/Howto_manifold.html). This can be\nused in combination with [minimize ](https://docs.lammps.org/minimize.html) to remove overlap\nbetween particles while keeping them (roughly) constrained to the\ngiven manifold, e.g. to set up a run with [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html). I have found that\nonly *hftn* and *quickmin* with a very small time step perform\nadequately though.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n", - "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly use this with *min_style hftn* or *min_style quickmin*. If not,\nthe constraints will not be satisfied very well at all. A warning is\ngenerated if the *min_style* is incompatible but no error.\n\n----------\n", - "related": "[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html), [fix nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* vcm/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid vcm/chunk molchunk\n```\n", + "html_filename": "compute_vcm_chunk.html", + "short_description": "Define a computation that calculates the center-of-mass velocity for\nmultiple chunks of atoms", + "description": "Define a computation that calculates the center-of-mass velocity for\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule or atoms\nin a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages for details of how chunks can be\ndefined and examples of how they can be used to measure properties of a system.\n\nThis compute calculates the \\((x,y,z)\\) components of the center-of-mass\nvelocity for each chunk. This is done by summing mass\\*velocity for\neach atom in the chunk and dividing the sum by the total mass of the\nchunk.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nThe simplest way to output the results of the compute vcm/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all vcm/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of\ncolumns is 3 for the \\((x,y,z)\\) center-of-mass velocity coordinates of\neach chunk. These values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nvelocity [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "none\n", + "related": "none\n" }, { "command": [ - "fix lineforce" + "fix rx", + "fix rx/kk" ], "syntax": [ - "fix ID group-ID lineforce x y z" + "fix ID group-ID rx file localTemp matrix solver minSteps ..." ], "args": [ [ @@ -30325,247 +29282,236 @@ export const command_docs = [ "choices": [] }, { - "arg": "lineforce", - "type": 1, + "arg": "rx", + "type": 3, + "choices": [ + "rx", + "rx/kk" + ] + }, + { + "arg": "file", + "type": 2, "choices": [] }, { - "arg": "x", + "arg": "localTemp", "type": 2, "choices": [] }, { - "arg": "y", + "arg": "matrix", "type": 2, "choices": [] }, { - "arg": "z", + "arg": "solver", + "type": 2, + "choices": [] + }, + { + "arg": "minSteps", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* lineforce = style name of this fix command\n* x y z = direction of line as a 3-vector \n", - "examples": "\n```lmps\nfix hold boundary lineforce 0.0 1.0 1.0\n```\n", - "html_filename": "fix_lineforce.html", - "short_description": "Adjust the forces on each atom in the group so that only the component\nof force along the linear direction specified by the vector (x,y,z)\nremains", - "description": "Adjust the forces on each atom in the group so that only the component\nof force along the linear direction specified by the vector (x,y,z)\nremains. This is done by subtracting out components of force in the\nplane perpendicular to the line.\n\nIf the initial velocity of the atom is 0.0 (or along the line), then\nit should continue to move along the line thereafter.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n", - "restrictions": " none\n", - "related": "[fix planeforce ](https://docs.lammps.org/fix_planeforce.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rx = style name of this fix command\n* file = filename containing the reaction kinetic equations and Arrhenius parameters\n* localTemp = none,lucy = no local temperature averaging or local temperature defined through Lucy weighting function\n* matrix = *sparse, dense* format for the stoichiometric matrix\n* solver = lammps_rk4,rkf45 = rk4 is an explicit fourth order Runge-Kutta method; rkf45 is an adaptive fourth-order Runge-Kutta-Fehlberg method\n* minSteps = # of steps for rk4 solver or minimum # of steps for rkf45 (rk4 or rkf45)\n* maxSteps = maximum number of steps for the rkf45 solver (rkf45 only)\n* relTol = relative tolerance for the rkf45 solver (rkf45 only)\n* absTol = absolute tolerance for the rkf45 solver (rkf45 only)\n* diag = Diagnostics frequency for the rkf45 solver (optional, rkf45 only) \n", + "examples": "\n```lmps\nfix 1 all rx kinetics.rx none dense lammps_rk4\nfix 1 all rx kinetics.rx none sparse lammps_rk4 1\nfix 1 all rx kinetics.rx lucy sparse lammps_rk4 10\nfix 1 all rx kinetics.rx none dense rkf45 1 100 1e-6 1e-8\nfix 1 all rx kinetics.rx none dense rkf45 1 100 1e-6 1e-8 -1\n```\n", + "html_filename": "fix_rx.html", + "short_description": "Fix *rx* solves the reaction kinetic ODEs for a given reaction set that is\ndefined within the file associated with this command", + "description": "Fix *rx* solves the reaction kinetic ODEs for a given reaction set that is\ndefined within the file associated with this command.\n\nFor a general reaction such that\n\\[\n \\nu_{A}A + \\nu_{B}B \\rightarrow \\nu_{C}C\\]\nthe reaction rate equation is defined to be of the form\n\\[\n r = k(T)[A]^{\\nu_{A}}[B]^{\\nu_{B}}\\]\nIn the current implementation, the exponents are defined to be equal\nto the stoichiometric coefficients. A given reaction set consisting\nof *n* reaction equations will contain a total of *m* species. A set\nof *m* ordinary differential equations (ODEs) that describe the change\nin concentration of a given species as a function of time are then\nconstructed based on the *n* reaction rate equations.\n\nThe ODE systems are solved over the full DPD timestep *dt* using either a fourth\norder Runge-Kutta *rk4* method with a fixed step-size *h*, specified\nby the *lammps_rk4* keyword, or a fourth order Runge-Kutta-Fehlberg (rkf45) method\nwith an adaptive step-size for *h* . The number of ODE steps per DPD timestep\nfor the rk4 method is optionally specified immediately after the rk4\nkeyword. The ODE step-size is set as *dt/num_steps*. Smaller\nstep-sizes tend to yield more accurate results but there is not\ncontrol on the error. For error control, use the rkf45 ODE solver.\n\nThe rkf45 method adjusts the step-size so that the local truncation error is held\nwithin the specified absolute and relative tolerances. The initial step-size *h0*\ncan be specified by the user or estimated internally. It is recommended that the user\nspecify *h0* since this will generally reduced the number of ODE integration steps\nrequired. *h0* is defined as *dt / min_steps* if min_steps >= 1. If min_steps == 0,\n*h0* is estimated such that an explicit Euler method would likely produce\nan acceptable solution. This is generally overly conservative for the fourth-order\nmethod and users are advised to specify *h0* as some fraction of the DPD timestep.\nFor small DPD timesteps, only one step may be necessary depending upon the tolerances.\nNote that more than min_steps ODE steps may be taken depending upon the ODE stiffness\nbut no more than max_steps will be taken. If max_steps is reached, an error warning\nis printed and the simulation is stopped.\n\nAfter each ODE step, the solution error *e* is tested and weighted using the absTol\nand relTol values. The error vector is weighted as *e* / (relTol \\* \\|\\ *u* \\| + absTol)\nwhere *u* is the solution vector. If the norm of the error is <= 1, the solution is\naccepted, *h* is increased by a proportional amount, and the next ODE step is begun.\nOtherwise, *h* is shrunk and the ODE step is repeated.\n\nRun-time diagnostics are available for the rkf45 ODE solver. The frequency\n(in timesteps) that diagnostics are reported is controlled by the last (optional)\n12th argument. A negative frequency means that diagnostics are reported once at the\nend of each run. A positive value N means that the diagnostics are reported once\nper N timesteps.\n\nThe diagnostics report the average # of integrator steps and RHS function evaluations\nand run-time per ODE as well as the average/RMS/min/max per process. If the\nreporting frequency is 1, the RMS/min/max per ODE are also reported. The per ODE\nstatistics can be used to adjust the tolerance and min/max step parameters. The\nstatistics per MPI process can be useful to examine any load imbalance caused by the\nadaptive ODE solver. (Some DPD particles can take longer to solve than others. This\ncan lead to an imbalance across the MPI processes.)\n\n----------\n\nThe filename specifies a file that contains the entire set of reaction\nkinetic equations and corresponding Arrhenius parameters. The format of\nthis file is described below.\n\nThere is no restriction on the total number or reaction equations that\nare specified. The species names are arbitrary string names that are\nassociated with the species concentrations. Each species in a given\nreaction must be preceded by it's stoichiometric coefficient. The\nonly delimiters that are recognized between the species are either a\n*+* or *=* character. The *=* character corresponds to an\nirreversible reaction. After specifying the reaction, the reaction\nrate constant is determined through the temperature dependent\nArrhenius equation:\n\\[\n k = AT^{n}e^{\\frac{-E_{a}}{k_{B}T}}\\]\nwhere *A* is the Arrhenius factor in time units or concentration/time\nunits, *n* is the unitless exponent of the temperature dependence, and\n\\(E_a\\) is the activation energy in energy units. The temperature\ndependence can be removed by specifying the exponent as zero.\n\nThe internal temperature of the coarse-grained particles can be used\nin constructing the reaction rate constants at every DPD timestep by\nspecifying the keyword *none* . Alternatively, the keyword *lucy* can\nbe specified to compute a local-average particle internal temperature\nfor use in the reaction rate constant expressions. The local-average\nparticle internal temperature is defined as:\n\\[\n \\theta_i^{-1} = \\frac{\\sum_{j=1}\\omega_{Lucy}\\left(r_{ij}\\right)\\theta_j^{-1}}{\\sum_{j=1}\\omega_{Lucy}\\left(r_{ij}\\right)}\\]\nwhere the Lucy function is expressed as:\n\\[\n \\omega_{Lucy}\\left(r_{ij}\\right) = \\left( 1 + \\frac{3r_{ij}}{r_c} \\right) \\left( 1 - \\frac{r_{ij}}{r_c} \\right)^3\\]\nThe self-particle interaction is included in the above equation.\n\nThe stoichiometric coefficients for the reaction mechanism are stored\nin either a sparse or dense matrix format. The dense matrix should only be\nused for small reaction mechanisms. The sparse matrix should be used when there\nare many reactions (e.g., more than 5). This allows the number of reactions and\nspecies to grow while keeping the computational cost tractable. The matrix\nformat can be specified as using either the *sparse* or *dense* keywords.\nIf all stoichiometric coefficients for a reaction are small integers (whole\nnumbers <= 3), a fast exponential function is used. This can save significant\ncomputational time so users are encouraged to use integer coefficients\nwhere possible.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Rxn equations and parameters (one or more comment or blank lines)\n\n1.0 hcn + 1.0 no2 = 1.0 no + 0.5 n2 + 0.5 h2 + 1.0 co 2.49E+01 0.0 1.34 (rxn equation, A, n, Ea)\n1.0 hcn + 1.0 no = 1.0 co + 1.0 n2 + 0.5 h2 2.16E+00 0.0 1.52\n...\n1.0 no + 1.0 co = 0.5 n2 + 1.0 co2 1.66E+06 0.0 0.69\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections.\n\nFollowing a blank line, the next N lines list the N reaction\nequations. Each species within the reaction equation is specified\nthrough its stoichiometric coefficient and a species tag. Reactant\nspecies are specified on the left-hand side of the equation and\nproduct species are specified on the right-hand side of the equation.\nAfter specifying the reactant and product species, the final three\narguments of each line represent the Arrhenius parameter *A*, the\ntemperature exponent *n*, and the activation energy *Ea* .\n\nNote that the species tags that are defined in the reaction equations\nare used by the [fix eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html) command to\ndefine the thermodynamic properties of each species. Furthermore, the\nnumber of species molecules (i.e., concentration) can be specified\neither with the [set ](https://docs.lammps.org/set.html) command using the \"d\\_\" prefix or by\nreading directly the concentrations from a data file. For the latter\ncase, the [read_data ](https://docs.lammps.org/read_data.html) command with the fix keyword\nshould be specified, where the fix-ID will be the \"fix rx[ID with a](SPECIES\") suffix, e.g.\n\nfix foo all rx reaction.file ...\nread_data data.dpd fix foo_SPECIES NULL Species\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThis command can only be used with a constant energy or constant\nenthalpy DPD simulation.\n", + "related": "[fix eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html),\n[fix shardlow ](https://docs.lammps.org/fix_shardlow.html),\n[pair dpd/fdt/energy ](https://docs.lammps.org/pair_dpd_fdt.html)\n" }, { "command": [ - "fix spring/self" + "pair_style saip/metal" ], "syntax": [ - "fix ID group-ID spring/self K dir" + "pair_style [hybrid/overlay ...] saip/metal cutoff tap_flag" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "[hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "...]", "type": 2, "choices": [] }, { - "arg": "spring/self", + "arg": "saip/metal", "type": 1, "choices": [] }, { - "arg": "K", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "dir", + "arg": "tap_flag", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/self = style name of this fix command\n* K = spring constant (force/distance units)\n* dir = xyz, xy, xz, yz, x, y, or z (optional, default: xyz) \n", - "examples": "\n```lmps\nfix tether boundary-atoms spring/self 10.0\nfix zrest move spring/self 10.0 z\n```\n", - "html_filename": "fix_spring_self.html", - "short_description": "Apply a spring force independently to each atom in the group to tether\nit to its initial position", - "description": "Apply a spring force independently to each atom in the group to tether\nit to its initial position. The initial position for each atom is its\nlocation at the time the fix command was issued. At each timestep,\nthe magnitude of the force on each atom is -Kr, where r is the\ndisplacement of the atom from its current position to its initial\nposition. The distance r correctly takes into account any crossings\nof periodic boundary by the atom since it was in its initial\nposition.\n\nWith the (optional) dir flag, one can select in which direction the\nspring force is applied. By default, the restraint is applied in all\ndirections, but it can be limited to the xy-, xz-, yz-plane and the\nx-, y-, or z-direction, thus restraining the atoms to a line or a\nplane, respectively.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of tethered atoms to\n[binary restart files ](https://docs.lammps.org/restart.html), so that the spring effect will\nbe the same in a restarted simulation. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the per-atom springs to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is an energy which is\nthe sum of the spring energy for each atom, where the per-atom energy\nis 0.5 \\* K \\* r\\^2. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the per-atom spring energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": " none\n", - "related": "[fix drag ](https://docs.lammps.org/fix_drag.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix smd ](https://docs.lammps.org/fix_smd.html), [fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style hybrid/overlay saip/metal 16.0 1\npair_coeff * * saip/metal CHAu.ILP Au C H\n\npair_style hybrid/overlay eam rebo saip/metal 16.0\npair_coeff 1 1 eam Au_u3.eam Au NULL NULL\npair_coeff * * rebo CH.rebo NULL C H\npair_coeff * * saip/metal CHAu.ILP Au C H\n```\n", + "html_filename": "pair_saip_metal.html", + "short_description": "\nThe *saip/metal* style computes the registry-dependent interlayer\npotential (ILP) potential for hetero-junctions formed with hexagonal\n2D materials and metal surfaces, as described in **Ouyang6**", + "description": "\nThe *saip/metal* style computes the registry-dependent interlayer\npotential (ILP) potential for hetero-junctions formed with hexagonal\n2D materials and metal surfaces, as described in **Ouyang6**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To account for the isotropic nature of the isolated gold atom\n > electron cloud, their corresponding normal vectors (`{\\bf n}_i`) are\n > assumed to lie along the interatomic vector `{\\bf r}_ij`. Notably, this\n > assumption is suitable for many bulk material surfaces, for\n > example, for systems possessing s-type valence orbitals or\n > metallic surfaces, whose valence electrons are mostly\n > delocalized, such that their Pauli repulsion with the electrons\n > of adjacent surfaces are isotropic. Caution should be used in\n > the case of very small gold contacts, for example, nano-clusters,\n > where edge effects may become relevant. \n > \n\nThe parameter file (e.g. CHAu.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. BNCH.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair saip/metal\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Ouyang6)** W. Ouyang, O. Hod, and R. Guerra, J. Chem. Theory Comput. 17, 7215 (2021). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe CHAu.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom CHAu.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" }, { "command": [ - "fix smd/setvel" + "run_style" ], "syntax": [ - "fix ID group-ID smd/setvel vx vy vz keyword value ..." + "run_style style args" ], "args": [ [ { - "arg": "fix", + "arg": "run_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "respa/omp", + "type": 3, + "choices": [ + "verlet", + "verlet/split", + "respa", + "respa/omp" + ] }, { - "arg": "group-ID", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = verlet or verlet/split or respa or respa/omp \n *        verlet args = none \n *        verlet/split args = none \n *        respa args = N n1 n2 ... keyword values ... \n         N = # of levels of rRESPA \n         n1, n2, ... = loop factors between rRESPA levels (N-1 values) \n         zero or more keyword/value pairings may be appended to the loop factors \n         keyword = bond or angle or dihedral or improper or \n         pair or inner or middle or outer or hybrid or kspace \n         bond value = M \n         M = which level (1-N) to compute bond forces in \n         angle value = M \n         M = which level (1-N) to compute angle forces in \n         dihedral value = M \n         M = which level (1-N) to compute dihedral forces in \n         improper value = M \n         M = which level (1-N) to compute improper forces in \n         pair value = M \n         M = which level (1-N) to compute pair forces in \n         inner values = M cut1 cut2 \n         M = which level (1-N) to compute pair inner forces in \n         cut1 = inner cutoff between pair inner and \n         pair middle or outer (distance units) \n         cut2 = outer cutoff between pair inner and \n         pair middle or outer (distance units) \n         middle values = M cut1 cut2 \n         M = which level (1-N) to compute pair middle forces in \n         cut1 = inner cutoff between pair middle and pair outer (distance units) \n         cut2 = outer cutoff between pair middle and pair outer (distance units) \n         outer value = M \n         M = which level (1-N) to compute pair outer forces in \n         hybrid values = M1 M2 ... (as many values as there are hybrid sub-styles \n         M1 = which level (1-N) to compute the first pair_style hybrid sub-style in \n         M2 = which level (1-N) to compute the second pair_style hybrid sub-style in \n         M3,etc \n         kspace value = M \n         M = which level (1-N) to compute kspace forces in \n", + "examples": "\n```lmps\nrun_style verlet\nrun_style respa 4 2 2 2 bond 1 dihedral 2 pair 3 kspace 4\nrun_style respa 4 2 2 2 bond 1 dihedral 2 inner 3 5.0 6.0 outer 4 kspace 4\nrun_style respa 3 4 2 bond 1 hybrid 2 2 1 kspace 3\n```\n", + "html_filename": "run_style.html", + "short_description": "Choose the style of time integrator used for molecular dynamics\nsimulations performed by LAMMPS", + "description": "Choose the style of time integrator used for molecular dynamics\nsimulations performed by LAMMPS.\n\nThe *verlet* style is the velocity form of the\nStoermer-Verlet time integration algorithm (velocity-Verlet)\n\n----------\n\nThe *verlet/split* style is also a velocity-Verlet integrator, but it\nsplits the force calculation within each timestep over 2 partitions of\nprocessors. See the [-partition command-line switch ](https://docs.lammps.org/Run_options.html)\nfor info on how to run LAMMPS with multiple partitions.\n\nSpecifically, this style performs all computation except the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) portion of the force field on the\nfirst partition. This include the [pair style ](https://docs.lammps.org/pair_style.html),\n[bond style ](https://docs.lammps.org/bond_style.html), [neighbor list building](https://docs.lammps.org/neighbor.html), [fixes ](https://docs.lammps.org/fix.html) including time integration, and output.\nThe [kspace_style ](https://docs.lammps.org/kspace_style.html) portion of the calculation is\nperformed on the second partition.\n\nThis can lead to a significant speedup, if the number of processors can\nbe easily increased and the fraction of time is spent in computing\nKspace interactions is significant, too. The two partitions may have a\ndifferent number of processors. This is most useful for the PPPM\nkspace_style when its performance on a large number of processors\ndegrades due to the cost of communication in its 3d FFTs. In this\nscenario, splitting your P total processors into 2 subsets of\nprocessors, P1 in the first partition and P2 in the second partition,\ncan enable your simulation to run faster. This is because the\nlong-range forces in PPPM can be calculated at the same time as pairwise\nand bonded forces are being calculated *and* the parallel 3d FFTs can be\nfaster to compute when running on fewer processors. Please note that\nthe scenario of using fewer MPI processes to reduce communication\noverhead can also be implemented through using MPI with OpenMP threads\nvia the INTEL, KOKKOS, or OPENMP package. This alternative option is\ntypically more effective in case of a fixed number of available\nprocessors and less complex to execute.\n\nTo use the *verlet/split* style, you must define 2 partitions with the\n[-partition command-line switch ](https://docs.lammps.org/Run_options.html), where partition P1\nis either the same size or an integer multiple of the size of the\npartition P2. Typically having P1 be 3x larger than P2 is a good\nchoice, since the (serial) performance of LAMMPS is often best if the\ntime spent in the ``Pair`` computation versus ``Kspace`` is a 3:1 split.\nThe 3d processor layouts in each partition must overlay in the following\nsense. If P1 is a Px1 by Py1 by Pz1 grid, and P2 = Px2 by Py2 by Pz2,\nthen Px1 must be an integer multiple of Px2, and similarly for Py1 a\nmultiple of Py2, and Pz1 a multiple of Pz2.\n\nTypically the best way to do this is to let the first partition choose\nits own optimal layout, then require the second partition's layout to\nmatch the integer multiple constraint. See the\n[processors ](https://docs.lammps.org/processors.html) command with its *part* keyword for a way\nto control this, e.g.\n\n```lmps\nprocessors * * * part 1 2 multiple\n```\nYou can also use the [partition ](https://docs.lammps.org/partition.html) command to explicitly\nspecify the processor layout on each partition. E.g. for 2 partitions\nof 60 and 15 processors each:\n\n```lmps\npartition yes 1 processors 3 4 5\npartition yes 2 processors 3 1 5\n```\nWhen you run in 2-partition mode with the *verlet/split* style, the\nthermodynamic data for the entire simulation will be output to the log\nand screen file of the first partition, which are log.lammps.0 and\nscreen.0 by default; see the [-plog and -pscreen command-lineswitches ](https://docs.lammps.org/Run_options.html) to change this. The log and screen file for the\nsecond partition will not contain thermodynamic output beyond the first\ntimestep of the run.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for\nperformance details of the speed-up offered by the *verlet/split*\nstyle. One important performance consideration is the assignment of\nlogical processors in the 2 partitions to the physical cores of a\nparallel machine. The [processors ](https://docs.lammps.org/processors.html) command has\noptions to support this, and strategies are discussed in [Section5 ](https://docs.lammps.org/Speed.html) of the manual.\n\n----------\n\nThe *respa* style implements the rRESPA multi-timescale integrator\n**Tuckerman3** with N hierarchical levels, where level\n1 is the innermost loop (shortest timestep) and level N is the outermost\nloop (largest timestep). The loop factor arguments specify what the\nlooping factor is between levels. N1 specifies the number of iterations\nof level 1 for a single iteration of level 2, N2 is the iterations of\nlevel 2 per iteration of level 3, etc. N-1 looping parameters must be\nspecified.\n\nThus with a 4-level respa setting of \"2 2 2\" for the 3 loop factors, you\ncould choose to have bond interactions computed 8x per large timestep,\nangle interactions computed 4x, pair interactions computed 2x, and\nlong-range interactions once per large timestep.\n\nThe [timestep ](https://docs.lammps.org/timestep.html) command sets the large timestep for the\noutermost rRESPA level. Thus if the 3 loop factors are \"2 2 2\" for\n4-level rRESPA, and the outer timestep is set to 4.0 fs, then the inner\ntimestep would be 8x smaller or 0.5 fs. All other LAMMPS commands that\nspecify number of timesteps (e.g. [thermo ](https://docs.lammps.org/thermo.html) for thermo\noutput every N steps, [neigh_modify delay/every ](https://docs.lammps.org/neigh_modify.html)\nparameters, [dump ](https://docs.lammps.org/dump.html) every N steps, etc) refer to the\noutermost timesteps.\n\nThe rRESPA keywords enable you to specify at what level of the hierarchy\nvarious forces will be computed. If not specified, the defaults are\nthat bond forces are computed at level 1 (innermost loop), angle forces\nare computed where bond forces are, dihedral forces are computed where\nangle forces are, improper forces are computed where dihedral forces\nare, pair forces are computed at the outermost level, and kspace forces\nare computed where pair forces are. The inner, middle, outer forces\nhave no defaults.\n\nFor fixes that support it, the rRESPA level at which a given fix is\nactive, can be selected through the [fix_modify ](https://docs.lammps.org/fix_modify.html)\ncommand.\n\nThe *inner* and *middle* keywords take additional arguments for cutoffs\nthat are used by the pairwise force computations. If the 2 cutoffs for\n*inner* are 5.0 and 6.0, this means that all pairs up to 6.0 apart are\ncomputed by the inner force. Those between 5.0 and 6.0 have their force\ngo ramped to 0.0 so the overlap with the next regime (middle or outer)\nis smooth. The next regime (middle or outer) will compute forces for\nall pairs from 5.0 outward, with those from 5.0 to 6.0 having their\nvalue ramped in an inverse manner.\n\nNote that you can use *inner* and *outer* without using *middle* to\nsplit the pairwise computations into two portions instead of three.\nUnless you are using a very long pairwise cutoff, a 2-way split is often\nfaster than a 3-way split, since it avoids too much duplicate\ncomputation of pairwise interactions near the intermediate cutoffs.\n\nAlso note that only a few pair potentials support the use of the *inner*\nand *middle* and *outer* keywords. If not, only the *pair* keyword can\nbe used with that pair style, meaning all pairwise forces are computed\nat the same rRESPA level. See the doc pages for individual pair styles\nfor details.\n\nAnother option for using pair potentials with rRESPA is with the\n*hybrid* keyword, which requires the use of the [pair_style hybridor hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. In this scenario, different\nsub-styles of the hybrid pair style are evaluated at different rRESPA\nlevels. This can be useful, for example, to set different timesteps for\nhybrid coarse-grained/all-atom models. The *hybrid* keyword requires as\nmany level assignments as there are hybrid sub-styles, which assigns\neach sub-style to a rRESPA level, following their order of definition in\nthe pair_style command. Since the *hybrid* keyword operates on pair\nstyle computations, it is mutually exclusive with either the *pair* or\nthe *inner* /\\ *middle* /\\ *outer* keywords.\n\nWhen using rRESPA (or for any MD simulation) care must be taken to\nchoose a timestep size(s) that ensures the Hamiltonian for the chosen\nensemble is conserved. For the constant NVE ensemble, total energy\nmust be conserved. Unfortunately, it is difficult to know *a priori*\nhow well energy will be conserved, and a fairly long test simulation\n(~10 ps) is usually necessary in order to verify that no long-term\ndrift in energy occurs with the trial set of parameters.\n\nWith that caveat, a few rules-of-thumb may be useful in selecting\n*respa* settings. The following applies mostly to biomolecular\nsimulations using the CHARMM or a similar all-atom force field, but\nthe concepts are adaptable to other problems. Without SHAKE, bonds\ninvolving hydrogen atoms exhibit high-frequency vibrations and require\na timestep on the order of 0.5 fs in order to conserve energy. The\nrelatively inexpensive force computations for the bonds, angles,\nimpropers, and dihedrals can be computed on this innermost 0.5 fs\nstep. The outermost timestep cannot be greater than 4.0 fs without\nrisking energy drift. Smooth switching of forces between the levels\nof the rRESPA hierarchy is also necessary to avoid drift, and a 1-2\nAngstrom \"healing distance\" (the distance between the outer and inner\ncutoffs) works reasonably well. We thus recommend the following\nsettings for use of the *respa* style without SHAKE in biomolecular\nsimulations:\n\n```lmps\ntimestep 4.0\nrun_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4\n```\nWith these settings, users can expect good energy conservation and\nroughly a 2.5 fold speedup over the *verlet* style with a 0.5 fs\ntimestep.\n\nIf SHAKE is used with the *respa* style, time reversibility is lost,\nbut substantially longer time steps can be achieved. For biomolecular\nsimulations using the CHARMM or similar all-atom force field, bonds\ninvolving hydrogen atoms exhibit high frequency vibrations and require\na time step on the order of 0.5 fs in order to conserve energy.\nThese high frequency modes also limit the outer time step sizes since\nthe modes are coupled. It is therefore desirable to use SHAKE with\nrespa in order to freeze out these high frequency motions and increase\nthe size of the time steps in the respa hierarchy. The following\nsettings can be used for biomolecular simulations with SHAKE and\nrRESPA:\n\n```lmps\nfix 2 all shake 0.000001 500 0 m 1.0 a 1\ntimestep 4.0\nrun_style respa 2 2 inner 1 4.0 5.0 outer 2\n```\nWith these settings, users can expect good energy conservation and\nroughly a 1.5 fold speedup over the *verlet* style with SHAKE and a\n2.0 fs timestep.\n\nFor non-biomolecular simulations, the *respa* style can be\nadvantageous if there is a clear separation of time scales - fast and\nslow modes in the simulation. For example, a system of slowly-moving\ncharged polymer chains could be setup as follows:\n\n```lmps\ntimestep 4.0\nrun_style respa 2 8\n```\nThis is two-level rRESPA with an 8x difference between the short and\nlong timesteps. The bonds, angles, dihedrals will be computed every\n0.5 fs (assuming real units), while the pair and kspace interactions\nwill be computed once every 4 fs. These are the default settings for\neach kind of interaction, so no additional keywords are necessary.\n\nEven a LJ system can benefit from rRESPA if the interactions are\ndivided by the inner, middle and outer keywords. A 2-fold or more\nspeedup can be obtained while maintaining good energy conservation.\nIn real units, for a pure LJ fluid at liquid density, with a sigma of\n3.0 Angstroms, and epsilon of 0.1 kcal/mol, the following settings\nseem to work well:\n\n```lmps\ntimestep 36.0\nrun_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3\n```\n----------\n\nThe *respa/omp* style is a variant of *respa* adapted for use with\npair, bond, angle, dihedral, improper, or kspace styles with an *omp*\nsuffix. It is functionally equivalent to *respa* but performs\nadditional operations required for managing *omp* styles. For more on\n*omp* styles see the [Speed omp ](https://docs.lammps.org/Speed_omp.html) doc page. Accelerated\nstyles take the same arguments and should produce the same results,\nexcept for round-off and precision issues.\n\nYou can specify *respa/omp* explicitly in your input script, or you\ncan use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you\ninvoke LAMMPS, or you can use the [suffix ](https://docs.lammps.org/suffix.html) command in\nyour input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n----------\n\n**(Tuckerman3)** Tuckerman, Berne and Martyna, J Chem Phys, 97, p 1990\n(1992). \n ", + "restrictions": "The *verlet/split* style can only be used if LAMMPS was built with the\nREPLICA package. Correspondingly the *respa/omp* style is available\nonly if the OPENMP package was included. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nRun style *verlet/split* is not compatible with kspace styles from\nthe INTEL package and it is not compatible with any TIP4P styles.\n\nWhenever using rRESPA, the user should experiment with trade-offs in\nspeed and accuracy for their system, and verify that they are\nconserving energy to adequate precision.\n", + "related": "[timestep ](https://docs.lammps.org/timestep.html), [run ](https://docs.lammps.org/run.html)\n" +}, +{ + "command": [ + "compute temp/region" + ], + "syntax": [ + "compute ID group-ID temp/region region-ID" + ], + "args": [ + [ { - "arg": "smd/setvel", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "vx", - "type": 2, - "choices": [] - }, - { - "arg": "vy", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "vz", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, + "arg": "temp/region", + "type": 1, "choices": [] }, { - "arg": "value", + "arg": "region-ID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/setvel = style name of this fix command\n* vx,vy,vz = velocity component values\n* any of vx,vy,vz can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region particles must be in to have their velocities set \n", - "examples": "\n```lmps\nfix top_velocity top_group smd/setvel 1.0 0.0 0.0\n```\n", - "html_filename": "fix_smd_setvel.html", - "short_description": "Set each component of velocity on each particle in the group to the specified\nvalues vx,vy,vz, regardless of the forces acting on the particle", - "description": "Set each component of velocity on each particle in the group to the specified\nvalues vx,vy,vz, regardless of the forces acting on the particle. This command can\nbe used to impose velocity boundary conditions.\n\nAny of the vx,vy,vz values can be specified as NULL which means do not\nalter the velocity component in that dimension.\n\nThis fix is indented to be used together with a time integration fix.\n\nAny of the 3 quantities defining the velocity components can be specified\nas an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html), namely *vx*,\n*vy*, *vz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\nforce component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent velocity field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent velocity\nfield with optional time-dependence as well.\n\nIf the *region* keyword is used, the particle must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have its velocity set by this command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor minimization\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms. The vector values calculated by this fix\nare \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/region = style name of this compute command\n* region-ID = ID of region to use for choosing atoms \n", + "examples": "\n```lmps\ncompute mine flow temp/region boundary\n```\n", + "html_filename": "compute_temp_region.html", + "short_description": "Define a computation that calculates the temperature of a group of atoms in a\ngeometric region", + "description": "Define a computation that calculates the temperature of a group of atoms in a\ngeometric region. This can be useful for thermostatting one portion of the\nsimulation box. For example, a McDLT simulation where one side is cooled, and\nthe other side is heated. A compute of this style can be used by any command\nthat computes a temperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)).\n\nNote that a *region* -style temperature can be used to thermostat with\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) or\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), but should probably not be used with\nNose--Hoover style fixes ([fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\nor [fix nph ](https://docs.lammps.org/fix_nh.html)) if the degrees of freedom included in the computed\ntemperature vary with time.\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE = is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in both the group and region, \\(k_B\\) is\nthe Boltzmann constant, and \\(T\\) temperature.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the computation of a pressure\ntensor. The formula for the components of the tensor is the same as\nthe above formula, except that \\(v^2\\) is replaced by \\(v_x v_y\\)\nfor the \\(xy\\) component, and so on. The six components of the vector are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is calculated each\ntime the temperature is evaluated since it is assumed atoms can\nenter/leave the region. Thus there is no need to use the *dynamic*\noption of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command for this\ncompute style.\n\nThe removal of atoms outside the region by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed, which in\nthis case is the velocity of any atoms outside the region. If this\ncompute is used with a fix command that performs thermostatting then\nthis bias will be subtracted from each atom, thermostatting of the\nremaining thermal velocity will be performed, and the bias will be\nadded back in. Thermostatting fixes that work in this way include\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html). This means that when this compute\nis used to calculate the temperature for any of the thermostatting\nfixes via the [fix modify temp ](https://docs.lammps.org/fix_modify.html) command, the thermostat\nwill operate only on atoms that are currently in the geometric region.\n\nUnlike other compute styles that calculate temperature, this compute\ndoes not subtract out degrees-of-freedom due to fixes that constrain\nmotion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is because those degrees of freedom\n(e.g., a constrained bond) could apply to sets of atoms that straddle\nthe region boundary, and hence the concept is somewhat ill-defined.\nIf needed the number of subtracted degrees of freedom can be set\nexplicitly using the *extra* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html).\nThe vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "compute orientorder/atom", - "compute orientorder/atom/kk" + "angle_style quartic", + "angle_style quartic/omp" ], "syntax": [ - "compute ID group-ID orientorder/atom keyword values ..." + "angle_style quartic" ], "args": [ [ { - "arg": "compute", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "orientorder/atom", + "arg": "quartic", "type": 3, "choices": [ - "orientorder/atom", - "orientorder/atom/kk" + "quartic", + "quartic/omp" ] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* orientorder/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff or nnn or degrees or wl or wl/hat or components or chunksize \n       cutoff value = distance cutoff \n       nnn value = number of nearest neighbors \n       degrees values = nlvalues, l1, l2,... \n       wl value = yes or no \n       wl/hat value = yes or no \n       components value = ldegree \n       chunksize value = number of atoms in each pass \n", - "examples": "\n```lmps\ncompute 1 all orientorder/atom\ncompute 1 all orientorder/atom degrees 5 4 6 8 10 12 nnn NULL cutoff 1.5\ncompute 1 all orientorder/atom wl/hat yes\ncompute 1 all orientorder/atom components 6\n```\n", - "html_filename": "compute_orientorder_atom.html", - "short_description": "Define a computation that calculates a set of bond-orientational\norder parameters \\(Q_\\ell\\) for each atom in a group", - "description": "Define a computation that calculates a set of bond-orientational\norder parameters \\(Q_\\ell\\) for each atom in a group. These order parameters\nwere introduced by **Steinhardt** as a way to\ncharacterize the local orientational order in atomic structures.\nFor each atom, \\(Q_\\ell\\) is a real number defined as follows:\n\\[\\begin{align*} \n \\bar{Y}_{\\ell m} = & \\frac{1}{nnn}\\sum_{j = 1}^{nnn} Y_{\\ell m}\\bigl( \\theta( {\\bf r}_{ij} ), \\phi( {\\bf r}_{ij} ) \\bigr) \\\\\n Q_\\ell = & \\sqrt{\\frac{4 \\pi}{2 \\ell + 1} \\sum_{m = -\\ell }^{m = \\ell } \\bar{Y}_{\\ell m} \\bar{Y}^*_{\\ell m}} \\end{align*} \\]\nThe first equation defines the local order parameters as averages\nof the spherical harmonics \\(Y_{\\ell m}\\) for each neighbor.\nThese are complex number components of the 3D analog of the 2D order\nparameter \\(q_n\\), which is implemented as LAMMPS compute\n[hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html).\nThe summation is over the *nnn* nearest\nneighbors of the central atom. The angles \\(\\theta\\) and \\(\\phi\\) are\nthe standard spherical polar angles\ndefining the direction of the bond vector \\(r_{ij}\\).\nThe phase and sign of \\(Y_{\\ell m}\\) follow the standard conventions,\nso that \\(\\mathrm{sign}(Y_{\\ell\\ell}(0,0)) = (-1)^\\ell\\).\nThe second equation defines \\(Q_\\ell\\), which is a\nrotationally invariant non-negative amplitude obtained by summing\nover all the components of degree \\(\\ell\\).\n\nThe optional keyword *cutoff* defines the distance cutoff\nused when searching for neighbors. The default value, also\nthe maximum allowable value, is the cutoff specified\nby the pair style.\n\nThe optional keyword *nnn* defines the number of nearest\nneighbors used to calculate \\(Q_\\ell\\). The default value is 12.\nIf the value is NULL, then all neighbors up to the\nspecified distance cutoff are used.\n\nThe optional keyword *degrees* defines the list of order parameters to\nbe computed. The first argument *nlvalues* is the number of order\nparameters. This is followed by that number of non-negative integers giving the\ndegree of each order parameter. Because \\(Q_2\\) and all odd-degree order\nparameters are zero for atoms in cubic crystals (see\n**Steinhardt**), the default order parameters are \\(Q_4\\),\n\\(Q_6\\), \\(Q_8\\), \\(Q_{10}\\), and \\(Q_{12}\\). For the FCC\ncrystal with *nnn* =12,\n\\[ Q_4 = \\sqrt{\\frac{7}{192}} \\approx 0.19094\\]\nThe numerical values of all order\nparameters up to \\(Q_{12}\\) for a range of commonly encountered\nhigh-symmetry structures are given in Table I of **Mickel**,\nand these can be reproduced with this compute.\n\nThe optional keyword *wl* will output the third-order invariants \\(W_\\ell\\)\n(see Eq. 1.4 in **Steinhardt**) for the same degrees as\nfor the \\(Q_\\ell\\) parameters. For the FCC crystal with *nnn* = 12,\n\\[\n W_4 = -\\sqrt{\\frac{14}{143}} \\left(\\frac{49}{4096}\\right) \\pi^{-3/2} \\approx -0.0006722136\\]\nThe optional keyword *wl/hat* will output the normalized third-order\ninvariants \\(\\hat{W}_\\ell\\) (see Eq. 2.2 in **Steinhardt**)\nfor the same degrees as for the \\(Q_\\ell\\) parameters. For the FCC crystal\nwith *nnn* =12,\n\\[\n \\hat{W}_4 = -\\frac{7}{3} \\sqrt{\\frac{2}{429}} \\approx -0.159317\\]\nThe numerical values of \\(\\hat{W}_\\ell\\) for a range of commonly\nencountered high-symmetry structures are given in Table I of\n**Steinhardt**, and these can be reproduced with this keyword.\n\nThe optional keyword *components* will output the components of the\n*normalized* complex vector\n\\(\\hat{Y}_{\\ell m} = \\bar{Y}_{\\ell m}/|\\bar{Y}_{\\ell m}|\\)\nof degree *ldegree*, which must be included in the list of order parameters to\nbe computed. This option can be used in conjunction with\n[compute coord_atom ](https://docs.lammps.org/compute_coord_atom.html) to calculate the ten Wolde's\ncriterion to identify crystal-like particles, as discussed in\n**tenWolde2**.\n\nThe optional keyword *chunksize* is only applicable when using the\nthe KOKKOS package and is ignored otherwise. This keyword controls\nthe number of atoms in each pass used to compute the bond-orientational\norder parameters and is used to avoid running out of memory. For example\nif there are 32768 atoms in the simulation and the *chunksize*\nis set to 16384, the parameter calculation will be broken up\ninto two passes.\n\nThe value of \\(Q_\\ell\\) is set to zero for atoms not in the\nspecified compute group, as well as for atoms that have less than\n*nnn* neighbors within the distance cutoff, unless *nnn* is NULL.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the order parameter. This\n > difficulty can be circumvented by writing a dump file, and using the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the order parameter for\n > snapshots in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with *nlvalues* columns,\ngiving the \\(Q_\\ell\\) values for each atom, which are real numbers in the\nrange \\(0 \\le Q_\\ell \\le 1\\).\n\nIf the keyword *wl* is set to yes, then the \\(W_\\ell\\) values for each\natom will be added to the output array, which are real numbers.\n\nIf the keyword *wl/hat* is set to yes, then the \\(\\hat{W}_\\ell\\)\nvalues for each atom will be added to the output array, which are real numbers.\n\nIf the keyword *components* is set, then the real and imaginary parts\nof each component of *normalized* \\(\\hat{Y}_{\\ell m}\\) will be added to the\noutput array in the following order:\n\\(\\Re(\\hat{Y}_{-m}),\\) \\(\\Im(\\hat{Y}_{-m}),\\)\n\\(\\Re(\\hat{Y}_{-m+1}),\\) \\(\\Im(\\hat{Y}_{-m+1}), \\dotsc,\\)\n\\(\\Re(\\hat{Y}_m),\\) \\(\\Im(\\hat{Y}_m).\\)\n\nIn summary, the per-atom array will contain *nlvalues* columns, followed by\nan additional *nlvalues* columns if *wl* is set to yes, followed by\nan additional *nlvalues* columns if *wl/hat* is set to yes, followed\nby an additional 2\\*(2\\* *ldegree* +1) columns if the *components*\nkeyword is set.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Steinhardt)** P. Steinhardt, D. Nelson, and M. Ronchetti,\nPhys. Rev. B 28, 784 (1983). \n \n**(Steinhardt)** P. Steinhardt, D. Nelson, and M. Ronchetti,\nPhys. Rev. B 28, 784 (1983). \n \n**(Mickel)** W. Mickel, S. C. Kapfer, G. E. Schroeder-Turkand, K. Mecke,\nJ. Chem. Phys. 138, 044501 (2013). \n \n**(tenWolde2)** P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,\nJ. Chem. Phys. 104, 9932 (1996). \n ", - "restrictions": "none\n", - "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html), [compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html), [compute hexorder/atom ](https://docs.lammps.org/compute_hexorder_atom.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style quartic\nangle_coeff 1 129.1948 56.8726 -25.9442 -14.2221\n```\n", + "html_filename": "angle_quartic.html", + "short_description": "The *quartic* angle style uses the potential\n\\[\n E = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4 (\\theta - \\theta_0)^4\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", + "description": "The *quartic* angle style uses the potential\n\\[\n E = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4 (\\theta - \\theta_0)^4\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "atom_style" + "pair_coeff" ], "syntax": [ - "atom_style style args" + "pair_coeff I J args" ], "args": [ [ { - "arg": "atom_style", + "arg": "pair_coeff", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "amoeba", - "angle", - "atomic", - "body", - "bond", - "charge", - "dielectric", - "dipole", - "edpd", - "electron", - "ellipsoid", - "full", - "line", - "mdpd", - "molecular", - "oxdna", - "peri", - "smd", - "sph", - "sphere", - "bpm/sphere", - "spin", - "tdpd", - "tri", - "template", - "wavepacket", - "hybrid" - ] + "arg": "I", + "type": 2, + "choices": [] + }, + { + "arg": "J", + "type": 2, + "choices": [] }, { "arg": "args", @@ -30574,237 +29520,202 @@ export const command_docs = [ } ] ], - "parameters": "* style = amoeba or angle or atomic or body or bond or charge or dielectric or dipole or dpd or edpd or electron or ellipsoid or full or line or mdpd or molecular or oxdna or peri or smd or sph or sphere or bpm/sphere or spin or tdpd or tri or template or wavepacket or hybrid \n *        args = none for any style except the following \n         body args = bstyle bstyle-args \n         bstyle = style of body particles \n         bstyle-args = additional arguments specific to the bstyle \n         see the [Howto body ](https://docs.lammps.org/Howto_body.html) doc \n         page for details \n         sphere arg = 0/1 (optional) for static/dynamic particle radii \n         bpm/sphere arg = 0/1 (optional) for static/dynamic particle radii \n         tdpd arg = Nspecies \n         Nspecies = # of chemical species \n         template arg = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n         hybrid args = list of one or more sub-styles, each with their args \n* accelerated styles (with same args) = angle/kk or atomic/kk or bond/kk or charge/kk or full/kk or molecular/kk or spin/kk \n", - "examples": "\n```lmps\natom_style atomic\natom_style bond\natom_style full\natom_style body nparticle 2 10\natom_style hybrid charge bond\natom_style hybrid charge body nparticle 2 5\natom_style spin\natom_style template myMols\natom_style hybrid template twomols charge\natom_style tdpd 2\n```\n", - "html_filename": "atom_style.html", - "short_description": "The *atom_style* command selects which per-atom attributes are\nassociated with atoms in a LAMMPS simulation and thus stored and\ncommunicated with those atoms as well as read from and stored in data\nand restart files", - "description": "The *atom_style* command selects which per-atom attributes are\nassociated with atoms in a LAMMPS simulation and thus stored and\ncommunicated with those atoms as well as read from and stored in data\nand restart files. Different models (e.g. [pair styles](https://docs.lammps.org/pair_style.html)) require access to specific per-atom attributes and thus\nrequire a specific atom style. For example, to compute Coulomb\ninteractions, the atom must have a \"charge\" (aka \"q\") attribute.\n\nA number of distinct atom styles exist that combine attributes. Some\natom styles are a superset of other atom styles. Further attributes\nmay be added to atoms either via using a hybrid style which provides a\nunion of the attributes of the sub-styles, or via the [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html) command. The *atom_style* command\nmust be used before a simulation is setup via a [read_data](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or [create_box](https://docs.lammps.org/create_box.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Many of the atom styles discussed here are only enabled if LAMMPS was\n > built with a specific package, as listed below in the Restrictions\n > section. \n > \n\nOnce a style is selected and the simulation box defined, it cannot be\nchanged but only augmented with the [fix property/atom](https://docs.lammps.org/fix_property_atom.html) command. So one should select an atom style\ngeneral enough to encompass all attributes required. E.g. with atom\nstyle *bond*, it is not possible to define angles and use angle styles.\n\nIt is OK to use a style more general than needed, though it may be\nslightly inefficient because it will allocate and communicate\nadditional unused data.\n\n #### Atom style attributes\n\nThe atom style *atomic* has the minimum subset of per-atom attributes\nand is also the default setting. It encompasses the following per-atom\nattributes (name of the vector or array in the [Atom class](https://docs.lammps.org/Classes_atom.html) is given in parenthesis): atom-ID (tag), type (type),\nposition (x), velocities (v), forces (f), image flags (image), group\nmembership (mask). Since all atom styles are a superset of atom style\n*atomic* , they all include these attributes.\n\nThis table lists all the available atom styles, which attributes they\nprovide, which [package ](https://docs.lammps.org/Packages.html) is required to use them, and\nwhat the typical applications are that use them. See the\n[read_data ](https://docs.lammps.org/read_data.html), [create_atoms ](https://docs.lammps.org/create_atoms.html), and\n[set ](https://docs.lammps.org/set.html) commands for details on how to set these various\nquantities. More information about many of the styles is provided in\nthe Additional Information section below.\n\n | | | | | \n |---|---|---|---|\n Atom style | Attributes | Required package | Applications|\n *amoeba* | *full* + \"1-5 special neighbor data\" | :ref:`AMOEBA ` | AMOEBA/HIPPO force fields|\n *angle* | *bond* + \"angle data\" | :ref:`MOLECULE ` | bead-spring polymers with stiffness|\n *atomic* | tag, type, x, v, f, image, mask | | atomic liquids, solids, metals|\n *body* | *atomic* + radius, rmass, angmom, torque, body | :ref:`BODY ` | arbitrary bodies, see [body howto ](https://docs.lammps.org/Howto_body.html)|\n *bond* | *atomic* + molecule, nspecial, special + \"bond data\" | :ref:`MOLECULE ` | bead-spring polymers|\n *bpm/sphere* | *bond* + radius, rmass, omega, torque, quat | :ref:`BPM ` | granular bonded particle models, see [BPM howto ](https://docs.lammps.org/Howto_bpm.html)|\n *charge* | *atomic* + q | | atomic systems with charges|\n *dielectric* | *full* + mu, area, ed, em, epsilon, curvature, q_scaled | :ref:`DIELECTRIC ` | systems with surface polarization|\n *dipole* | *charge* + mu | :ref:`DIPOLE ` | atomic systems with charges and point dipoles|\n *dpd* | *atomic* + rho + \"reactive DPD data\" | :ref:`DPD-REACT ` | reactive DPD|\n *edpd* | *atomic* + \"eDPD data\" | :ref:`DPD-MESO ` | Energy conservative DPD (eDPD)|\n *electron* | *charge* + espin, eradius, ervel, erforce | :ref:`EFF ` | Electron force field systems|\n *ellipsoid* | *atomic* + rmass, angmom, torque, ellipsoid | | aspherical particles|\n *full* | *molecular* + q | :ref:`MOLECULE ` | molecular force fields|\n *line* | *atomic* + molecule, radius, rmass, omega, torque, line | | 2-d rigid body particles|\n *mdpd* | *atomic* + rho, drho, vest | :ref:`DPD-MESO ` | Many-body DPD (mDPD)|\n *molecular* | *angle* + \"dihedral and improper data\" | :ref:`MOLECULE ` | apolar and uncharged molecules|\n *oxdna* | *atomic* + id5p | :ref:`CG-DNA ` | coarse-grained DNA and RNA models|\n *peri* | *atomic* + rmass, vfrac, s0, x0 | :ref:`PERI ` | mesoscopic Peridynamics models|\n *smd* | *atomic* + molecule, radius, rmass + \"smd data\" | :ref:`MACHDYN ` | Smooth Mach Dynamics models|\n *rheo* | *atomic* + rho, status | :ref:`RHEO ` | solid and fluid RHEO particles|\n *rheo/thermal* | *atomic* + rho, status, energy, temperature | :ref:`RHEO ` | RHEO particles with temperature|\n *sph* | *atomic* + \"sph data\" | :ref:`SPH ` | Smoothed particle hydrodynamics models|\n *sphere* | *atomic* + radius, rmass, omega, torque | | finite size spherical particles, e.g. granular models|\n *spin* | *atomic* + \"magnetic moment data\" | :ref:`SPIN ` | magnetic particles|\n *tdpd* | *atomic* + cc, cc_flux, vest | :ref:`DPD-MESO ` | Transport DPD (tDPD)|\n *template* | *atomic* + molecule, molindex, molatom | :ref:`MOLECULE ` | molecular systems where attributes are taken from [molecule files ](https://docs.lammps.org/molecule.html)|\n *tri* | *sphere* + molecule, angmom, tri | | 3-d triangulated rigid body LJ particles|\n \n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is possible to add some attributes, such as a molecule ID and\n > charge, to atom styles that do not have them built in using the\n > [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command. This command\n > also allows new custom-named attributes consisting of extra integer\n > or floating-point values or vectors to be added to atoms. See the\n > [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) page for examples of\n > cases where this is useful and details on how to initialize,\n > access, and output these custom values. \n > \n\n----------\n\n #### Particle size and mass\n\nAll of the atom styles define point particles unless they (1) define\nfinite-size spherical particles via the *radius* attribute, or (2)\ndefine finite-size aspherical particles (e.g. the *body*, *ellipsoid*,\n*line*, and *tri* styles). Most of these styles can also be used with\nmixtures of point and finite-size particles.\n\nNote that the *radius* property may need to be provided as a\n*diameter* (e.g. in [molecule files ](https://docs.lammps.org/molecule.html) or [datafiles ](https://docs.lammps.org/read_data.html)). See the [Howto spherical ](https://docs.lammps.org/Howto_spherical.html)\npage for an overview of using finite-size spherical and aspherical\nparticle models with LAMMPS.\n\nUnless an atom style defines the per-atom *rmass* attribute, particle\nmasses are defined on a per-type basis, using the [mass ](https://docs.lammps.org/mass.html)\ncommand. This means each particle's mass is indexed by its atom\n*type*.\n\nA few styles define the per-atom *rmass* attribute which can also be\nadded using the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nIn this case each particle stores its own mass. Atom styles that have\na per-atom rmass may define it indirectly through setting particle\ndiameter and density on a per-particle basis. If both per-type mass\nand per-atom *rmass* are defined (e.g. in a hybrid style), the\nper-atom mass will take precedence in any operation which which works\nwith both flavors of mass.\n\n----------\n\n #### Additional information about specific atom styles\n\nFor the *body* style, the particles are arbitrary bodies with internal\nattributes defined by the \"style\" of the bodies, which is specified by\nthe *bstyle* argument. Body particles can represent complex entities,\nsuch as surface meshes of discrete points, collections of\nsub-particles, deformable objects, etc.\n\nThe [Howto body ](https://docs.lammps.org/Howto_body.html) page describes the body styles\nLAMMPS currently supports, and provides more details as to the kind of\nbody particles they represent. For all styles, each body particle\nstores moments of inertia and a quaternion 4-vector, so that its\norientation and position can be time integrated due to forces and\ntorques.\n\nNote that there may be additional arguments required along with the\n*bstyle* specification, in the atom_style body command. These\narguments are described on the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page.\n\nFor the *dielectric* style, each particle can be either a physical\nparticle (e.g. an ion), or an interface particle representing a\nboundary element between two regions of different dielectric\nconstant. For interface particles, in addition to the properties\nassociated with atom_style full, each particle also should be assigned\na unit dipole vector (mu) representing the direction of the induced\ndipole moment at each interface particle, an area (area/patch), the\ndifference and mean of the dielectric constants of two sides of the\ninterface along the direction of the normal vector (ed and em), the\nlocal dielectric constant at the boundary element (epsilon), and a\nmean local curvature (curv). Physical particles must be assigned\nthese values, as well, but only their local dielectric constants will\nbe used; see documentation for associated [pair styles](https://docs.lammps.org/pair_dielectric.html) and [fixes ](https://docs.lammps.org/fix_polarize.html). The distinction\nbetween the physical and interface particles is only meaningful when\n[fix polarize ](https://docs.lammps.org/fix_polarize.html) commands are applied to the\ninterface particles. This style is part of the DIELECTRIC package.\n\nFor the *dipole* style, a point dipole vector mu is defined for each\npoint particle. Note that if you wish the particles to be finite-size\nspheres as in a Stockmayer potential for a dipolar fluid, so that the\nparticles can rotate due to dipole-dipole interactions, then you need\nto use the command `atom_style hybrid sphere dipole`, which will\nassign both a diameter and dipole moment to each particle. This also\nrequires using an integrator with a \"/sphere\" suffix like [fixnve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) or [fix nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html)\nand the \"update dipole\" or \"update dlm\" parameters to the fix\ncommands.\n\nThe *dpd* style is for reactive dissipative particle dynamics (DPD)\nparticles. Note that it is part of the DPD-REACT package, and is not\nrequired for use with the [pair_style dpd or dpd/stat ](https://docs.lammps.org/pair_dpd.html)\ncommands, which only require the attributes from atom_style *atomic*.\nAtom_style *dpd* extends DPD particle properties with internal\ntemperature (dpdTheta), internal conductive energy (uCond), internal\nmechanical energy (uMech), and internal chemical energy (uChem).\n\nThe *edpd* style is for energy-conserving dissipative particle\ndynamics (eDPD) particles which store a temperature (edpd_temp), and\nheat capacity (edpd_cv).\n\nFor the *electron* style, the particles representing electrons are 3d\nGaussians with a specified position and bandwidth or uncertainty in\nposition, which is represented by the eradius = electron size.\n\nFor the *ellipsoid* style, particles can be ellipsoids which each\nstores a shape vector with the 3 diameters of the ellipsoid and a\nquaternion 4-vector with its orientation. Each particle stores a flag\nin the ellipsoid vector which indicates whether it is an ellipsoid (1)\nor a point particle (0).\n\nFor the *line* style, particles can be are idealized line segments\nwhich store a per-particle mass and length and orientation (i.e. the\nend points of the line segment). Each particle stores a flag in the\nline vector which indicates whether it is a line segment (1) or a\npoint particle (0).\n\nThe *mdpd* style is for many-body dissipative particle dynamics (mDPD)\nparticles which store a density (rho) for considering density-dependent\nmany-body interactions.\n\nThe *oxdna* style is for coarse-grained nucleotides and stores the\n3'-to-5' polarity of the nucleotide strand, which is set through\nthe bond topology in the data file. The first (second) atom in a\nbond definition is understood to point towards the 3'-end (5'-end)\nof the strand.\n\nFor the *peri* style, the particles are spherical and each stores a\nper-particle mass and volume.\n\nThe *smd* style is for Smooth Particle Mach dynamics. Both fluids and\nsolids can be modeled. Particles store the mass and volume of an\nintegration point, a kernel diameter used for calculating the field\nvariables (e.g. stress and deformation) and a contact radius for\ncalculating repulsive forces which prevent individual physical bodies\nfrom penetrating each other.\n\nThe *sph* style is for smoothed particle hydrodynamics (SPH) particles\nwhich store a density (rho), energy (esph), and heat capacity (cv).\n\nFor the *spin* style, a magnetic spin is associated with each atom.\nThose spins have a norm (their magnetic moment) and a direction.\n\nThe *tdpd* style is for transport dissipative particle dynamics (tDPD)\nparticles which store a set of chemical concentration. An integer\n\"cc_species\" is required to specify the number of chemical species\ninvolved in a tDPD system.\n\nThe *wavepacket* style is similar to the *electron* style, but the\nelectrons may consist of several Gaussian wave packets, summed up with\ncoefficients cs= (cs_re,cs_im). Each of the wave packets is treated\nas a separate particle in LAMMPS, wave packets belonging to the same\nelectron must have identical *etag* values.\n\nThe *sphere* and *bpm/sphere* styles allow particles to be either point\nparticles or finite-size particles. If the *radius* attribute is >\n0.0, the particle is a finite-size sphere. If the diameter = 0.0, it\nis a point particle. Note that by using the *disc* keyword with the\n[fix nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt/sphere](https://docs.lammps.org/fix_nvt_sphere.html), [fix nph/sphere ](https://docs.lammps.org/fix_nph_sphere.html), [fixnpt/sphere ](https://docs.lammps.org/fix_npt_sphere.html) commands for the *sphere* style, spheres\ncan be effectively treated as 2d discs for a 2d simulation if desired.\nSee also the [set density/disc ](https://docs.lammps.org/set.html) command. These styles also\ntake an optional 0 or 1 argument. A value of 0 means the radius of\neach sphere is constant for the duration of the simulation (this is\nthe default). A value of 1 means the radii may vary dynamically\nduring the simulation, e.g. due to use of the [fix adapt](https://docs.lammps.org/fix_adapt.html) command.\n\nThe *template* style allows molecular topology (bonds,angles,etc) to be\ndefined via a molecule template using the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. The template stores one or more molecules with a single copy\nof the topology info (bonds,angles,etc) of each. Individual atoms only\nstore a template index and template atom to identify which molecule and\nwhich atom-within-the-molecule they represent. Using the *template*\nstyle instead of the *bond*, *angle*, *molecular* styles can save memory\nfor systems comprised of a large number of small molecules, all of a\nsingle type (or small number of types). See the paper by Grime and\nVoth, in **Grime**, for examples of how this can be\nadvantageous for large-scale coarse-grained systems. The\n``examples/template`` directory has a few demo inputs and examples\nshowing the use of the *template* atom style versus *molecular*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *template* style with a [molecule template > ](https://docs.lammps.org/molecule.html) that contains multiple molecules, you should ensure the\n > atom types, bond types, angle_types, etc in all the molecules are\n > consistent. E.g. if one molecule represents H2O and another CO2,\n > then you probably do not want each molecule file to define two atom\n > types and a single bond type, because they will conflict with each\n > other when a mixture system of H2O and CO2 molecules is defined,\n > e.g. by the [read_data ](https://docs.lammps.org/read_data.html) command. Rather the H2O\n > molecule should define atom types 1 and 2, and bond type 1. And\n > the CO2 molecule should define atom types 3 and 4 (or atom types 3\n > and 2 if a single oxygen type is desired), and bond type 2. \n > \n\nFor the *tri* style, particles can be planar triangles which each\nstores a per-particle mass and size and orientation (i.e. the corner\npoints of the triangle). Each particle stores a flag in the tri\nvector which indicates whether it is a triangle (1) or a point\nparticle (0).\n\n----------\n\nTypically, simulations require only a single (non-hybrid) atom style.\nIf some atoms in the simulation do not have all the properties defined\nby a particular style, use the simplest style that defines all the\nneeded properties by any atom. For example, if some atoms in a\nsimulation are charged, but others are not, use the *charge* style.\nIf some atoms have bonds, but others do not, use the *bond* style.\n\nThe only scenario where the *hybrid* style is needed is if there is no\nsingle style which defines all needed properties of all atoms. For\nexample, as mentioned above, if you want dipolar particles which will\nrotate due to torque, you need to use \"atom_style hybrid sphere\ndipole\". When a hybrid style is used, atoms store and communicate the\nunion of all quantities implied by the individual styles.\n\nWhen using the *hybrid* style, you cannot combine the *template* style\nwith another molecular style that stores bond, angle, etc info on a\nper-atom basis.\n\nLAMMPS can be extended with new atom styles as well as new body styles;\nsee the corresponding manual page on [modifying & extending LAMMPS](https://docs.lammps.org/Modify_atom.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Grime)** Grime and Voth, to appear in J Chem Theory & Computation\n(2014). \n ", - "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n\nMany of the styles listed above are only enabled if LAMMPS was built\nwith a specific package, as listed below. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info. The table above lists which package\nis required for individual atom styles.\n", - "related": "[read_data ](https://docs.lammps.org/read_data.html), [pair_style ](https://docs.lammps.org/pair_style.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html), [set ](https://docs.lammps.org/set.html)\n" + "parameters": "* I,J = numeric atom types (see asterisk form below), or type labels\n* args = coefficients for one or more pairs of atom types \n", + "examples": "\n```lmps\npair_coeff 1 2 1.0 1.0 2.5\npair_coeff 2 * 1.0 1.0\npair_coeff 3* 1*2 1.0 1.0 2.5\npair_coeff * * 1.0 1.0\npair_coeff * * nialhjea 1 1 2\npair_coeff * 3 morse.table ENTRY1\npair_coeff 1 2 lj/cut 1.0 1.0 2.5 # (for pair_style hybrid)\n\nlabelmap atom 1 C\nlabelmap atom 2 H\npair_coeff C H 1.0 1.0 2.5\n```\n", + "html_filename": "pair_coeff.html", + "short_description": "Specify the pairwise force field coefficients for one or more pairs of\natom types", + "description": "Specify the pairwise force field coefficients for one or more pairs of\natom types. The number and meaning of the coefficients depends on the\npair style. Pair coefficients can also be set in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\nI and J can be specified in one of several ways. Explicit numeric\nvalues can be used for each, as in the first example above. Or, one\nor both of the types in the I,J pair can be a type label, which is an\nalphanumeric string defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command\nor in a section of a data file read by the [read_data](https://docs.lammps.org/read_data.html) command, and which converts internally to a numeric type.\nInternally, LAMMPS will set coefficients for the symmetric J,I\ninteraction to the same values as the I,J interaction.\n\nFor numeric values only, a wildcard asterisk can be used in place of or\nin conjunction with the I,J arguments to set the coefficients for\nmultiple pairs of atom types. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types, then an\nasterisk with no numeric values means all types from 1 to \\(N\\). A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to \\(N\\) (inclusive). A middle\nasterisk means all types from m to n (inclusive). For the asterisk\nsyntax, only type pairs with I <= J are considered; if asterisks imply\ntype pairs where J < I, they are ignored. Again internally, LAMMPS will\nset the coefficients for the symmetric J,I interactions to the same\nvalues as the I <= J interactions.\n\nNote that a pair_coeff command can override a previous setting for the\nsame I,J pair. For example, these commands set the coeffs for all I,J\npairs, then overwrite the coeffs for just the I,J = 2,3 pair:\n\n```lmps\npair_coeff * * 1.0 1.0 2.5\npair_coeff 2 3 2.0 1.0 1.12\n```\nA line in a data file that specifies pair coefficients uses the exact\nsame format as the arguments of the pair_coeff command in an input\nscript, with the exception of the I,J type arguments. In each line of\nthe \"Pair Coeffs\" section of a data file, only a single type I is\nspecified, which sets the coefficients for type I interacting with\ntype I. This is because the section has exactly \\(N\\) lines, where\n\\(N\\) is the number of atom types. For this reason, the wild-card\nasterisk should also not be used as part of the I argument. Thus in a\ndata file, the line corresponding to the first example above would be\nlisted as\n\n```\n2 1.0 1.0 2.5\n```\nFor many potentials, if coefficients for type pairs with I != J are\nnot set explicitly by a pair_coeff command, the values are inferred\nfrom the I,I and J,J settings by mixing rules; see the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) command for a discussion. Details on\nthis option as it pertains to individual potentials are described on\nthe page for the potential.\n\nMany pair styles, typically for many-body potentials, use tabulated\npotential files as input, when specifying the pair_coeff command.\nPotential files provided with LAMMPS are in the potentials directory\nof the distribution. For some potentials, such as EAM, other archives\nof suitable files can be found on the Web. They can be used with\nLAMMPS so long as they are in the format LAMMPS expects, as discussed\non the individual doc pages. The first line of potential files may\ncontain metadata with upper case tags followed their value. These may\nbe parsed and used by LAMMPS. Currently supported are the \"DATE:\"\ntag and the ``UNITS:`` tag. For pair styles that have been programmed\nto support the metadata, the value of the \"DATE:\" tag is printed to\nthe screen and logfile so that the version of a potential file can be\nlater identified. The ``UNITS:`` tag indicates the [units ](https://docs.lammps.org/units.html)\nsetting required for this particular potential file. If the potential\nfile was created for a different sets of units, LAMMPS will terminate\nwith an error. If the potential file does not contain the tag, no\ncheck will be made and it is the responsibility of the user to determine\nthat the unit style is correct.\n\nIn some select cases and for specific combinations of unit styles,\nLAMMPS is capable of automatically converting potential parameters\nfrom a file. In those cases, a warning message signaling that an\nautomatic conversion has happened is printed to the screen.\n\nWhen a pair_coeff command using a potential file is specified, LAMMPS\nlooks for the potential file in 2 places. First it looks in the\nlocation specified. E.g. if the file is specified as \"niu3.eam\", it\nis looked for in the current working directory. If it is specified as\n\"../potentials/niu3.eam\", then it is looked for in the potentials\ndirectory, assuming it is a sister directory of the current working\ndirectory. If the file is not found, it is then looked for in one of\nthe directories specified by the ``LAMMPS_POTENTIALS`` environment variable.\nThus if this is set to the potentials directory in the LAMMPS distribution,\nthen you can use those files from anywhere on your system, without\ncopying them into your working directory. Environment variables are\nset in different ways for different shells. Here are example settings\nfor\n\ncsh, tcsh:\n\n```tcsh\nsetenv LAMMPS_POTENTIALS /path/to/lammps/potentials\n```\nbash:\n\n```bash\nexport LAMMPS_POTENTIALS=/path/to/lammps/potentials\n```\nWindows:\n\n```console\nset LAMMPS_POTENTIALS=\"C:\\\\Path to LAMMPS\\\\Potentials\"\n```\nThe ``LAMMPS_POTENTIALS`` environment variable may contain paths\nto multiple folders, if they are separated by \";\" on Windows and\n\":\" on all other operating systems, just like the ``PATH`` and\nsimilar environment variables.\n\n----------\n\nThe alphabetic list of pair styles defined in LAMMPS is given on the\n[pair_style ](https://docs.lammps.org/pair_style.html) doc page. They are also listed in more\ncompact form on the [Commands pair ](https://docs.lammps.org/Commands_pair.html) doc page.\n\nClick on the style to display the formula it computes and its\ncoefficients as specified by the associated pair_coeff command.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", + "related": "[pair_style ](https://docs.lammps.org/pair_style.html), [pair_modify ](https://docs.lammps.org/pair_modify.html),\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[pair_write ](https://docs.lammps.org/pair_write.html)\n" }, { "command": [ - "reset_timestep" + "fix_modify AtC internal_element_set" ], "syntax": [ - "reset_timestep N keyword values ..." + "fix_modify internal_element_set " ], "args": [ [ { - "arg": "reset_timestep", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "", "type": 2, "choices": [] }, { - "arg": "keyword", - "type": 2, + "arg": "internal_element_set", + "type": 1, "choices": [] }, { - "arg": "values", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* N = timestep number\n* zero or more keyword/value pairs may be appended\n* keyword = time \n *      time value = atime \n       atime = accumulated simulation time \n", - "examples": "\n```lmps\nreset_timestep 0\nreset_timestep 4000000\nreset_timestep 1000 time 100.0\n```\n", - "html_filename": "reset_timestep.html", - "short_description": "Set the timestep counter to the specified value", - "description": "Set the timestep counter to the specified value. This command\nusually comes after the timestep has been set by reading a restart\nfile via the [read_restart ](https://docs.lammps.org/read_restart.html) command, or a previous\nsimulation run or minimization advanced the timestep.\n\nThe optional *time* keyword allows to also set the accumulated\nsimulation time. This is usually the number of timesteps times\nthe size of the timestep, but when using variable size timesteps\nwith [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) it can differ.\n\nThe [read_data ](https://docs.lammps.org/read_data.html) and [create_box ](https://docs.lammps.org/create_box.html)\ncommands set the timestep to 0; the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand sets the timestep to the value it had when the restart file\nwas written. The same applies to the accumulated simulation time.\n", - "restrictions": "This command cannot be used when any fixes are defined that keep track\nof elapsed time to perform certain kinds of time-dependent operations.\nExamples are the [fix deposit ](https://docs.lammps.org/fix_deposit.html) and [fix dt/reset](https://docs.lammps.org/fix_dt_reset.html) commands. The former adds atoms on specific timesteps.\nThe latter keeps track of accumulated time.\n\nVarious fixes use the current timestep to calculate related quantities.\nIf the timestep is reset, this may produce unexpected behavior, but\nLAMMPS allows the fixes to be defined even if the timestep is reset.\nFor example, commands which thermostat the system, e.g. [fix nvt](https://docs.lammps.org/fix_nh.html), allow you to specify a target temperature which ramps from\nTstart to Tstop which may persist over several runs. If you change the\ntimestep, you may induce an instantaneous change in the target\ntemperature.\n\nResetting the timestep clears flags for [computes ](https://docs.lammps.org/compute.html) that\nmay have calculated some quantity from a previous run. This means these\nquantity cannot be accessed by a variable in between runs until a new\nrun is performed. See the [variable ](https://docs.lammps.org/variable.html) command for more\ndetails.\n", - "related": "[rerun ](https://docs.lammps.org/rerun.html), [timestep ](https://docs.lammps.org/timestep.html),\n[fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* internal_element_set = name of the AtC sub-command\n* element_set_name = name of element set defining internal region, or off \n", + "examples": "\n```lmps\nfix_modify AtC internal_element_set myElementSet\nfix_modify AtC internal_element_set off\n```\n", + "html_filename": "atc_internal_element_set.html", + "short_description": "Enables AtC to base the region for internal atoms to be an element\nset", + "description": "Enables AtC to base the region for internal atoms to be an element\nset. If no ghost atoms are used, all the AtC atoms must be constrained\nto remain in this element set by the user, e.g., with walls. If boundary\natoms are used in conjunction with Eulerian atom maps AtC will partition\nall atoms of a boundary or internal type to be of type internal if they\nare in the internal region or to be of type boundary otherwise.\n", + "restrictions": "If boundary atoms are used in conjunction with Eulerian atom maps, the\nEulerian reset frequency must be an integer multiple of the Lammps\nreneighbor frequency.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC boundary type ](https://docs.lammps.org/atc_boundary_type.html)\n" }, { "command": [ - "fix colvars" + "pair_style spin/neel" ], "syntax": [ - "fix ID group-ID colvars configfile keyword value ..." + "pair_style spin/neel cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "colvars", + "arg": "spin/neel", "type": 1, "choices": [] }, { - "arg": "configfile", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 3, - "choices": [ - "output", - "input", - "unwrap", - "tstat", - "seed" - ] - }, - { - "arg": "value", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* *ID*, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* \"colvars\" = style name of this fix command\n* configfile = configuration file for Colvars (use \"*none*\" to provide it inline)\n* keyword = output or input or unwrap or tstat or seed \n *      output value = state filename/prefix for Colvars (default: \"out\") \n *      input value = input state filename/prefix for Colvars (optional, default: \"NULL\") \n *      unwrap value = \"yes\" or \"no\" (default: \"yes\") \n *      tstat value = fix ID of thermostat applied to relevant atoms (default: \"NULL\") \n *      seed value = seed for random number generator (default: 1966) \n", - "examples": "\n```lmps\n# Create the fix using a config file, set prefix for its output files\nfix Colvars all colvars colvars.inp output ${JOB}\n\n# Communicate the LAMMPS target temperature to the Colvars module\nfix_modify Colvars tstat NPT\n\n# Add a new restraint specific to this LAMMPS run\nfix_modify Colvars config \"\"\"\nharmonic {\nname restraint\ncolvars distance1 distance2\ncenters ${ref1} ${ref2}\nforceConstant ${kappa}\n}\"\"\"\n```\n", - "html_filename": "fix_colvars.html", - "short_description": "This fix interfaces LAMMPS to the collective variables [Colvars](https://docs.lammps.org/https://colvars.github.io>`_ library, which allows to acceleratesampling of rare events and the computation of free energy surfacesand potentials of mean force (PMFs) for any set of collectivevariables using a variety of sampling methods (e.g", - "description": "This fix interfaces LAMMPS to the collective variables [Colvars](https://docs.lammps.org/https://colvars.github.io>`_ library, which allows to acceleratesampling of rare events and the computation of free energy surfacesand potentials of mean force (PMFs) for any set of collectivevariables using a variety of sampling methods (e.g. umbrella-sampling,metadynamics, ABF...).This documentation describes only the \"fix colvars\" command itself in aLAMMPS script. The Colvars library is fully documented in the included`PDF manual output equil1 tstat NVT\nrun \nunfix nvt\nfix NPT all n ...\nfix_modify Colvars tstat NPT\nfix_modify Colvars output equil2\n```\n(2) Call one of the scripting functions provided by the Colvars module\n itself (a full list is available in the Colvars doc). The arguments\n to these functions are provided as strings and passed to Colvars.\n\n LAMMPS variables referenced by their string representation\n \"${variable}\" will be expanded immediately. Note also that this\n variable expansion *will also happen within quotes*, similar to what\n the [mdi ](https://docs.lammps.org/mdi.html) command provides. This feature makes it\n possible to use the values of certain LAMMPS variables in Colvars\n configuration strings. For example, to synchronize the LAMMPS and\n Colvars dump frequencies:\n\n```lmps\nvariable freq index 10000\ndump myDump all atom/zstd ${freq} dump.atom.zstd\nfix_modify Colvars config \"colvarsTrajFrequency ${freq}\"\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Although it is possible to use [fix_modify ](https://docs.lammps.org/fix_modify.html) at any\n > time, its results will only reflect the state of the Colvars module\n > at the end of the most recent \"run\" or \"minimize\" command. Any new\n > configuration added via \"fix_modify Colvars configfile\" or\n > \"fix_modify Colvars config\" will only be loaded when the simulation\n > resumes. Configuration files or strings will be parsed in the same\n > sequence as they were provided in the LAMMPS script.\n >\n >\n > \n > \n\n\n**(Fiorin)** Fiorin, Klein, Henin, Mol. Phys. 111, 3345 (2013) https://doi.org/10.1080/00268976.2013.813594 \n ", - "restrictions": "This fix is provided by the COLVARS package and is only available if\nLAMMPS was built with that package (default in most builds). Some of\nthe features also require code available from the LEPTON package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere can only be one Colvars instance defined at a time. Since the\ninterface communicates only the minimum required amount of information,\nand the Colvars module itself can handle an arbitrary number of\ncollective variables, this is not a limitation of functionality.\n", - "related": "[fix smd ](https://docs.lammps.org/fix_smd.html), [fix spring ](https://docs.lammps.org/fix_spring.html),\n[fix plumed ](https://docs.lammps.org/fix_plumed.html)\n\n----------\n\n.. _Fiorin:\n\n**(Fiorin)** Fiorin, Klein, Henin, Mol. Phys. 111, 3345 (2013) https://doi.org/10.1080/00268976.2013.813594\n\n.. _Colvars_LAMMPS_doc:\n\nhttps://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html\n" + "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", + "examples": "\n```lmps\npair_style spin/neel 4.0\npair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652\npair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0\n```\n", + "html_filename": "pair_spin_neel.html", + "short_description": "Style *spin/neel* computes the Neel pair anisotropy model\nbetween pairs of magnetic spins:\n\\[\n \\mathcal{H}_{N\\acute{e}el}=-\\sum_{{ i,j=1,i\\neq j}}^N g_1(r_{ij})\\left(({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})({\\mathbf{e}}_{ij}\n \\cdot {\\mathbf{s}}_{j})-\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n +q_1(r_{ij})\\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3}\\right)\n \\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n + q_2(r_{ij}) \\Big( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{j})^3 + ({\\mathbf{e}}_{ij}\\cdot\n {\\mathbf{s}}_{j}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^3\\Big)\\]\nwhere \\(\\mathbf{s}_i\\) and \\(\\mathbf{s}_j\\) are two neighboring magnetic spins of two particles,\n\\(r_{ij} = \\vert \\mathbf{r}_i - \\mathbf{r}_j \\vert\\) is the inter-atomic distance between the two particles,\n\\(\\mathbf{e}_{ij} = \\frac{\\mathbf{r}_i - \\mathbf{r}_j}{\\vert \\mathbf{r}_i - \\mathbf{r}_j\\vert}\\) is their normalized separation vector and \\(g_1\\),\n\\(q_1\\) and \\(q_2\\) are three functions defining the intensity of the dipolar\nand quadrupolar contributions, with:\n\\[\\begin{align*} \n g_1(r_{ij}) &= g(r_{ij}) + \\frac{12}{35} q(r_{ij}) \\\\\n q_1(r_{ij}) &= \\frac{9}{5} q(r_{ij}) \\\\\n q_2(r_{ij}) &= - \\frac{2}{5} q(r_{ij}) \\end{align*} \\]\nWith the functions \\(g(r_{ij})\\) and \\(q(r_{ij})\\) defined and fitted according to\nthe same Bethe-Slater function used to fit the exchange interaction:\n\\[\n {J}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2 \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right) e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients defined in the\nassociated \"pair_coeff\" command", + "description": "Style *spin/neel* computes the Neel pair anisotropy model\nbetween pairs of magnetic spins:\n\\[\n \\mathcal{H}_{N\\acute{e}el}=-\\sum_{{ i,j=1,i\\neq j}}^N g_1(r_{ij})\\left(({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})({\\mathbf{e}}_{ij}\n \\cdot {\\mathbf{s}}_{j})-\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n +q_1(r_{ij})\\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3}\\right)\n \\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n + q_2(r_{ij}) \\Big( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{j})^3 + ({\\mathbf{e}}_{ij}\\cdot\n {\\mathbf{s}}_{j}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^3\\Big)\\]\nwhere \\(\\mathbf{s}_i\\) and \\(\\mathbf{s}_j\\) are two neighboring magnetic spins of two particles,\n\\(r_{ij} = \\vert \\mathbf{r}_i - \\mathbf{r}_j \\vert\\) is the inter-atomic distance between the two particles,\n\\(\\mathbf{e}_{ij} = \\frac{\\mathbf{r}_i - \\mathbf{r}_j}{\\vert \\mathbf{r}_i - \\mathbf{r}_j\\vert}\\) is their normalized separation vector and \\(g_1\\),\n\\(q_1\\) and \\(q_2\\) are three functions defining the intensity of the dipolar\nand quadrupolar contributions, with:\n\\[\\begin{align*} \n g_1(r_{ij}) &= g(r_{ij}) + \\frac{12}{35} q(r_{ij}) \\\\\n q_1(r_{ij}) &= \\frac{9}{5} q(r_{ij}) \\\\\n q_2(r_{ij}) &= - \\frac{2}{5} q(r_{ij}) \\end{align*} \\]\nWith the functions \\(g(r_{ij})\\) and \\(q(r_{ij})\\) defined and fitted according to\nthe same Bethe-Slater function used to fit the exchange interaction:\n\\[\n {J}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2 \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right) e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients defined in the\nassociated \"pair_coeff\" command.\n\nThe coefficients \\(a\\), \\(b\\), and \\(d\\) need to be fitted so that the function\nabove matches with the values of the magneto-elastic constant of the\nmaterials at stake.\n\nExamples and more explanations about this function and its\nparameterization are reported in **Tranchida6**. More\nexamples of parameterization will be provided in future work.\n\nFrom this DM interaction, each spin \\(i\\) will be submitted to a magnetic\ntorque \\(\\mathbf{\\omega}\\) and its associated atom to a force \\(\\mathbf{F}\\) (for spin-lattice\ncalculations only).\n\nMore details about the derivation of these torques/forces are reported\nin **Tranchida6**.\n\n----------\n\n**(Tranchida6)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", + "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" }, { "command": [ - "pair_style bpm/spring" + "improper_style class2", + "improper_style class2/omp", + "improper_style class2/kk" ], "syntax": [ - "pair_style bpm/spring" + "improper_style class2" ], "args": [ [ { - "arg": "pair_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "bpm/spring", - "type": 1, - "choices": [] + "arg": "class2", + "type": 3, + "choices": [ + "class2", + "class2/omp", + "class2/kk" + ] } ] ], "parameters": "", - "examples": "\n```lmps\npair_style bpm/spring\npair_coeff * * 1.0 1.0 1.0\npair_coeff 1 1 1.0 1.0 1.0\n```\n", - "html_filename": "pair_bpm_spring.html", - "short_description": "\nStyle *bpm/spring* computes pairwise forces with the formula\n\\[\n F = k (r - r_c)\\]\nwhere \\(k\\) is a stiffness and \\(r_c\\) is the cutoff length", - "description": "\nStyle *bpm/spring* computes pairwise forces with the formula\n\\[\n F = k (r - r_c)\\]\nwhere \\(k\\) is a stiffness and \\(r_c\\) is the cutoff length.\nAn additional damping force is also applied to interacting\nparticles. The force is proportional to the difference in the\nnormal velocity of particles\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, \\(\\vec{v}\\) is the velocity difference\nbetween the two particles, and \\(w\\) is a smoothing factor.\nThis smoothing factor is constructed such that damping forces go to zero\nas particles come out of contact to avoid discontinuities. It is\ngiven by\n\\[\n w = 1.0 - \\left( \\frac{r}{r_c} \\right)^8 .\\]\nThis pair style is designed for use in a spring-based bonded particle\nmodel. It mirrors the construction of the [bpm/spring](https://docs.lammps.org/bond_bpm_spring.html) bond style.\n\nThis pair interaction is always applied to pairs of non-bonded particles\nthat are within the interaction distance. For pairs of bonded particles\nthat are within the interaction distance, there is the option to either\ninclude this pair interaction and overlay the pair force over the bond\nforce or to exclude this pair interaction such that the two particles\nonly interact via the bond force. See discussion of the *overlay/pair*\noption for BPM bond styles and the [special_bonds ](https://docs.lammps.org/special_bonds.html)\ncommand in the [how to ](https://docs.lammps.org/Howto_bpm.html) page on BPMs for more details.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(k\\) (force/distance units)\n* \\(r_c\\) (distance units)\n* \\(\\gamma\\) (force/velocity units)\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is always mixed via a\n*geometric* rule. The cutoff is mixed according to the pair_modify\nmix value. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option, since the pair interaction goes to 0.0 at the cutoff.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [bond bpm/spring ](https://docs.lammps.org/bond_bpm_spring.html)\n" + "examples": "\n```lmps\nimproper_style class2\nimproper_coeff 1 100.0 0\nimproper_coeff * aa 0.0 0.0 0.0 115.06 130.01 115.06\n```\n", + "html_filename": "improper_class2.html", + "short_description": "The *class2* improper style uses the potential\n\\[\\begin{align*} \n E = & E_i + E_{aa} \\\\\n E_i = & K [ \\frac{\\chi_{ijkl} + \\chi_{kjli} + \\chi_{ljik}}{3} - \\chi_0 ]^2 \\\\\n E_{aa} = & M_1 (\\theta_{ijk} - \\theta_1) (\\theta_{kjl} - \\theta_3) + \\\\\n & M_2 (\\theta_{ijk} - \\theta_1) (\\theta_{ijl} - \\theta_2) + \\\\\n & M_3 (\\theta_{ijl} - \\theta_2) (\\theta_{kjl} - \\theta_3) \\end{align*} \\]\nwhere \\(E_i\\) is the improper term and \\(E_{aa}\\) is an\nangle-angle term", + "description": "The *class2* improper style uses the potential\n\\[\\begin{align*} \n E = & E_i + E_{aa} \\\\\n E_i = & K [ \\frac{\\chi_{ijkl} + \\chi_{kjli} + \\chi_{ljik}}{3} - \\chi_0 ]^2 \\\\\n E_{aa} = & M_1 (\\theta_{ijk} - \\theta_1) (\\theta_{kjl} - \\theta_3) + \\\\\n & M_2 (\\theta_{ijk} - \\theta_1) (\\theta_{ijl} - \\theta_2) + \\\\\n & M_3 (\\theta_{ijl} - \\theta_2) (\\theta_{kjl} - \\theta_3) \\end{align*} \\]\nwhere \\(E_i\\) is the improper term and \\(E_{aa}\\) is an\nangle-angle term. The 3 \\(\\chi\\) terms in \\(E_i\\) are an\naverage over 3 out-of-plane angles.\n\nThe 4 atoms in an improper quadruplet (listed in the data file read by\nthe [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L.\n\\(\\chi_{ijkl}\\) refers to the angle between the plane of I,J,K and\nthe plane of J,K,L, and the bond JK lies in both planes. Similarly for\n\\(\\chi_{kjli}\\) and \\(\\chi_{ljik}\\).\nNote that atom J appears in the common bonds (JI, JK, JL) of all 3 X\nterms. Thus J (the second atom in the quadruplet) is the atom of\nsymmetry in the 3 \\(\\chi\\) angles.\n\nThe subscripts on the various \\(\\theta\\)\\ s refer to different\ncombinations of 3 atoms (I,J,K,L) used to form a particular angle.\nE.g. \\(\\theta_{ijl}\\) is the angle formed by atoms I,J,L with J\nin the middle. \\(\\theta_1\\), \\(\\theta_2\\), \\(\\theta_3\\)\nare the equilibrium positions of those angles. Again,\natom J (the second atom in the quadruplet) is the atom of symmetry in the\ntheta angles, since it is always the center atom.\n\nSince atom J is the atom of symmetry, normally the bonds J-I, J-K, J-L\nwould exist for an improper to be defined between the 4 atoms, but\nthis is not required.\n\nSee **improper-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_i\\) and \\(E_{aa}\\) formulas must be\ndefined for each\nimproper type via the [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as\nin the example above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nThese are the 2 coefficients for the \\(E_i\\) formula:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n\\(\\chi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\nFor the \\(E_{aa}\\) formula, each line in a [improper_coeff](https://docs.lammps.org/improper_coeff.html) command in the input script lists 7 coefficients,\nthe first of which is *aa* to indicate they are AngleAngle\ncoefficients. In a data file, these coefficients should be listed\nunder a *AngleAngle Coeffs* heading and you must leave out the *aa*,\ni.e. only list 6 coefficients after the improper type.\n\n* *aa*\n* \\(M_1\\) (energy)\n* \\(M_2\\) (energy)\n* \\(M_3\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n* \\(\\theta_3\\) (degrees)\n\nThe \\(\\theta\\) values are specified in degrees, but LAMMPS\nconverts them to radians internally; hence the hence the various\n\\(M\\) are effectively energy per radian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(improper-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nCLASS2 package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "compute adf" + "create_atoms" ], "syntax": [ - "compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ..." + "create_atoms type style args keyword values ..." ], "args": [ [ { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "adf", + "arg": "create_atoms", "type": 1, "choices": [] }, { - "arg": "Nbin", - "type": 2, - "choices": [] - }, - { - "arg": "itype1", - "type": 2, - "choices": [] - }, - { - "arg": "jtype1", - "type": 2, - "choices": [] - }, - { - "arg": "ktype1", + "arg": "type", "type": 2, "choices": [] }, { - "arg": "Rjinner1", - "type": 2, - "choices": [] + "arg": "random", + "type": 3, + "choices": [ + "box", + "region", + "single", + "mesh", + "random" + ] }, { - "arg": "Rjouter1", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "Rkinner1", - "type": 2, - "choices": [] + "arg": "units", + "type": 3, + "choices": [ + "mol", + "basis", + "ratio", + "subset", + "remap", + "var", + "set", + "radscale", + "meshmode", + "rotate", + "overlap", + "maxtry", + "units" + ] }, { - "arg": "Rkouter1", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* adf = style name of this compute command\n* Nbin = number of ADF bins\n* itypeN = central atom type for Nth ADF histogram (see asterisk form below)\n* jtypeN = J atom type for Nth ADF histogram (see asterisk form below)\n* ktypeN = K atom type for Nth ADF histogram (see asterisk form below)\n* RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units)\n* RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units)\n* RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units)\n* RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units)\n* zero or one keyword/value pairs may be appended\n* keyword = ordinate \n *        ordinate value = degree or radian or cosine \n         Choose the ordinate parameter for the histogram \n", - "examples": "\n```lmps\ncompute 1 fluid adf 32 1 1 1 0.0 1.2 0.0 1.2 &\n1 1 2 0.0 1.2 0.0 1.5 &\n1 2 2 0.0 1.5 0.0 1.5 &\n2 1 1 0.0 1.2 0.0 1.2 &\n2 1 2 0.0 1.5 2.0 3.5 &\n2 2 2 2.0 3.5 2.0 3.5\ncompute 1 fluid adf 32 1*2 1*2 1*2 0.5 3.5\ncompute 1 fluid adf 32\n```\n", - "html_filename": "compute_adf.html", - "short_description": "Define a computation that calculates one or more angular distribution functions\n(ADF) for a group of particles", - "description": "Define a computation that calculates one or more angular distribution functions\n(ADF) for a group of particles. Each ADF is calculated in histogram form\nby measuring the angle formed by a central atom and two neighbor atoms and\nbinning these angles into *Nbin* bins.\nOnly neighbors for which *Rinner* < *R* < *Router* are counted, where\n*Rinner* and *Router* are specified separately for the first and second\nneighbor atom in each requested ADF.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses a neighbor list, it also means\n > those pairs will not be included in the ADF. This does not apply when\n > using long-range coulomb interactions (\\ *coul/long*, *coul/msm*,\n > *coul/wolf* or similar. One way to get around this would be to set\n > special_bond scaling factors to very tiny numbers that are not exactly\n > zero (e.g. 1.0e-50). Another workaround is to write a dump file, and\n > use the [rerun ](https://docs.lammps.org/rerun.html) command to compute the ADF for snapshots in\n > the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you request any outer cutoff *Router* > force cutoff, or if no\n > pair style is defined, e.g. the [rerun ](https://docs.lammps.org/rerun.html) command is being used to\n > post-process a dump file of snapshots you must ensure ghost atom information\n > out to the largest value of *Router* + *skin* is communicated, via the\n > [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command, else the ADF computation\n > cannot be performed, and LAMMPS will give an error message. The *skin* value\n > is what is specified with the [neighbor ](https://docs.lammps.org/neighbor.html) command. \n > \n\nThe *itypeN*,\\ *jtypeN*,\\ *ktypeN* settings can be specified in one of two\nways. An explicit numeric value can be used, as in the first example\nabove. Or a wild-card asterisk can be used to specify a range of atom\ntypes as in the second example above.\nThis takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the\nnumber of atom types, then an asterisk with no numeric values means\nall types from 1 to N. A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from n to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nIf *itypeN*, *jtypeN*, and *ktypeN* are single values, as in the first example\nabove, this means that the ADF is computed where atoms of type *itypeN*\nare the central atom, and neighbor atoms of type *jtypeN* and *ktypeN*\nare forming the angle. If any of *itypeN*, *jtypeN*, or *ktypeN*\nrepresent a range of values via\nthe wild-card asterisk, as in the second example above, this means that the\nADF is computed where atoms of any of the range of types represented\nby *itypeN* are the central atom, and the angle is formed by two neighbors,\none neighbor in the range of types represented by *jtypeN* and another neighbor\nin the range of types represented by *ktypeN* .\n\nIf no *itypeN*, *jtypeN*, *ktypeN* settings are specified, then\nLAMMPS will generate a single ADF for all atoms in the group.\nThe inner cutoff is set to zero and the outer cutoff is set\nto the force cutoff. If no pair_style is specified, there is no\nforce cutoff and LAMMPS will give an error message. Note that\nin most cases, generating an ADF for all atoms is not a good thing.\nSuch an ADF is both uninformative and\nextremely expensive to compute. For example, with liquid water\nwith a 10 A force cutoff, there are 80,000 angles per atom.\nIn addition, most of the interesting angular structure occurs for\nneighbors that are the closest to the central atom, involving\njust a few dozen angles.\n\nAngles for each ADF are generated by double-looping over the list of\nneighbors of each central atom I,\njust as they would be in the force calculation for\na three-body potential such as [Stillinger-Weber ](https://docs.lammps.org/pair_sw.html).\nThe angle formed by central atom I and neighbor atoms J and K is included in an\nADF if the following criteria are met:\n\n* atoms I,J,K are all in the specified compute group\n* the distance between atoms I,J is between Rjinner and Rjouter\n* the distance between atoms I,K is between Rkinner and Rkouter\n* the type of the I atom matches itypeN (one or a range of types)\n* atoms I,J,K are distinct\n* the type of the J atom matches jtypeN (one or a range of types)\n* the type of the K atom matches ktypeN (one or a range of types)\n\nEach unique angle satisfying the above criteria is counted only once, regardless\nof whether either or both of the neighbor atoms making up the\nangle appear in both the J and K lists.\nIt is OK if a particular angle is included in more than\none individual histogram, due to the way the *itypeN*, *jtypeN*, *ktypeN*\narguments are specified.\n\nThe first ADF value for a bin is calculated from the histogram count by\ndividing by the total number of triples satisfying the criteria,\nso that the integral of the ADF w.r.t. angle is 1, i.e. the ADF\nis a probability density function.\n\nThe second ADF value is reported as a cumulative sum of\nall bins up to the current bins, averaged\nover atoms of type *itypeN* . It represents the\nnumber of angles per central atom with angle less\nthan or equal to the angle of the current bin,\nanalogous to the coordination\nnumber radial distribution function.\n\nThe *ordinate* optional keyword determines\nwhether the bins are of uniform angular size from zero\nto 180 (\\ *degree* ), zero to Pi (\\ *radian* ), or the\ncosine of the angle uniform in the range [-1,1] (\\ *cosine* ).\n*cosine* has the advantage of eliminating the *acos()* function\ncall, which speeds up the compute by 2-3x, and it is also preferred\non physical grounds, because the for uniformly distributed particles\nin 3D, the angular probability density w.r.t dtheta is\nsin(theta)/2, while for d(cos(theta)), it is 1/2,\nRegardless of which ordinate is chosen, the first column of ADF\nvalues is normalized w.r.t. the range of that ordinate, so that\nthe integral is 1.\n\nThe simplest way to output the results of the compute adf calculation\nto a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for\nexample:\n\n```lmps\ncompute myADF all adf 32 2 2 2 0.5 3.5 0.5 3.5\nfix 1 all ave/time 100 1 100 c_myADF[*] file tmp.adf mode vector\n```\n #### Output info\n\nThis compute calculates a global array with the number of rows =\n*Nbins* and the number of columns = \\(1 + 2 \\times\\) *Ntriples*, where *Ntriples*\nis the number of I,J,K triples specified. The first column has the bin\ncoordinate (angle-related ordinate at midpoint of bin). Each subsequent column has\nthe two ADF values for a specific set of (\\ *itypeN*,\\ *jtypeN*,\\ *ktypeN* )\ninteractions, as described above. These values can be used\nby any command that uses a global values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe array values calculated by this compute are all \"intensive\".\n\nThe first column of array values is the angle-related ordinate, either\nthe angle in degrees or radians, or the cosine of the angle. Each\nsubsequent pair of columns gives the first and second kinds of ADF\nfor a specific set of (\\ *itypeN*,\\ *jtypeN*,\\ *ktypeN* ). The values\nin the first ADF column are normalized numbers \\(\\ge 0.0\\),\nwhose integral w.r.t. the ordinate is 1,\ni.e. the first ADF is a normalized probability distribution.\nThe values in the second ADF column are also numbers \\(\\ge 0.0\\).\nThey are the cumulative density distribution of angles per atom.\nBy definition, this ADF is monotonically increasing from zero to\na maximum value equal to the average total number of\nangles per atom satisfying the ADF criteria.\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default, the ADF is not computed for distances longer than the\nlargest force cutoff, since the neighbor list creation will only contain\npairs up to that distance (plus neighbor list skin). If you use outer\ncutoffs larger than that, you must use [neighbor style 'bin' or'nsq' ](https://docs.lammps.org/neighbor.html).\n\nIf you want an ADF for a larger outer cutoff, you can also use the\n[rerun ](https://docs.lammps.org/rerun.html) command to post-process a dump file, use [pairstyle zero ](https://docs.lammps.org/pair_zero.html) and set the force cutoff to be larger in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary and with pair style zero you are not computing any forces, and\nsince you are not running dynamics you are not changing the model that\ngenerated the trajectory.\n\nThe ADF is not computed for neighbors outside the force cutoff,\nsince processors (in parallel) don't know about atom coordinates for\natoms further away than that distance. If you want an ADF for larger\ndistances, you can use the [rerun ](https://docs.lammps.org/rerun.html) command to post-process\na dump file and set the cutoff for the potential to be longer in the\nrerun script. Note that in the rerun context, the force cutoff is\narbitrary, since you are not running dynamics and thus are not changing\nyour model.\n", - "related": "[compute rdf ](https://docs.lammps.org/compute_rdf.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html), [compute_modify ](https://docs.lammps.org/compute_modify.html)\n" + "parameters": "* type = atom type (1-Ntypes or type label) of atoms to create (offset for molecule creation)\n* style = box or region or single or mesh or random \n *        box args = none \n *        region args = region-ID \n         region-ID = particles will only be created if contained in the region \n *        single args = x y z \n         x,y,z = coordinates of a single particle (distance units) \n *        mesh args = STL-file \n         STL-file = file with triangle mesh in STL format \n *        random args = N seed region-ID \n         N = number of particles to create \n         seed = random # seed (positive integer) \n         region-ID = create atoms within this region, use NULL for entire simulation box \n* zero or more keyword/value pairs may be appended\n* keyword = mol or basis or ratio or subset or remap or var or set or radscale or meshmode or rotate or overlap or maxtry or units \n *        mol values = template-ID seed \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n         seed = random # seed (positive integer) \n *        basis values = M itype \n         M = which basis atom \n         itype = atom type (1-Ntypes or type label) to assign to this basis atom \n *        ratio values = frac seed \n         frac = fraction of lattice sites (0 to 1) to populate randomly \n         seed = random # seed (positive integer) \n *        subset values = Nsubset seed \n         Nsubset = # of lattice sites to populate randomly \n         seed = random # seed (positive integer) \n *        remap value = yes or no \n *        var value = name = variable name to evaluate for test of atom creation \n *        set values = dim name \n         dim = x or y or z \n         name = name of variable to set with x, y, or z atom position \n *        radscale value = factor \n         factor = scale factor for setting atom radius \n *        meshmode values = mode arg \n         mode = bisect or qrand \n         bisect arg = radthresh \n         radthresh = threshold value for mesh to determine when to split triangles (distance units) \n         qrand arg = density \n         density = minimum number density for atoms place on mesh triangles (inverse distance squared units) \n *        rotate values = theta Rx Ry Rz \n         theta = rotation angle for single molecule (degrees) \n         Rx,Ry,Rz = rotation vector for single molecule \n *        overlap value = Doverlap \n         Doverlap = only insert if at least this distance from all existing atoms \n *        maxtry value = Ntry \n         Ntry = number of attempts to insert a particle before failure \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", + "examples": "\n```lmps\ncreate_atoms 1 box\n\nlabelmap atom 1 Pt\ncreate_atoms Pt box\n\nlabelmap atom 1 C 2 Si\ncreate_atoms C region regsphere basis Si C\n\ncreate_atoms 3 region regsphere basis 2 3\ncreate_atoms 3 region regsphere basis 2 3 ratio 0.5 74637\ncreate_atoms 3 single 0 0 5\ncreate_atoms 1 box var v set x xpos set y ypos\ncreate_atoms 2 random 50 12345 NULL overlap 2.0 maxtry 50\ncreate_atoms 1 mesh open_box.stl meshmode qrand 0.1 units box\ncreate_atoms 1 mesh funnel.stl meshmode bisect 4.0 units box radscale 0.9\n```\n", + "html_filename": "create_atoms.html", + "short_description": "This command creates atoms (or molecules) within the simulation box,\neither on a lattice, or at random points, or on a surface defined by a\ntriangulated mesh", + "description": "This command creates atoms (or molecules) within the simulation box,\neither on a lattice, or at random points, or on a surface defined by a\ntriangulated mesh. Or it creates a single atom (or molecule) at a\nspecified point. It is an alternative to reading in atom coordinates\nexplicitly via a [read_data ](https://docs.lammps.org/read_data.html) or [read_restart](https://docs.lammps.org/read_restart.html) command.\n\nTo use this command a simulation box must already exist, which is\ntypically created via the [create_box ](https://docs.lammps.org/create_box.html) command.\nBefore using this command, a lattice must typically also be defined\nusing the [lattice ](https://docs.lammps.org/lattice.html) command, unless you specify the\n*single* or *mesh* style with units = box or the *random* style. To\ncreate atoms on a lattice for general triclinic boxes, see the\ndiscussion below.\n\nFor the remainder of this doc page, a created atom or molecule is\nreferred to as a \"particle\".\n\nIf created particles are individual atoms, they are assigned the\nspecified atom *type*, though this can be altered via the *basis*\nkeyword as discussed below. If molecules are being created, the type\nof each atom in the created molecule is specified in a specified file\nread by the [molecule ](https://docs.lammps.org/molecule.html) command, and those values are\nadded to the specified atom *type* (e.g., if *type* = 2 and the file\nspecifies atom types 1, 2, and 3, then each created molecule will have\natom types 3, 4, and 5).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You cannot use this command to create atoms that are outside the\n > simulation box; they will just be ignored by LAMMPS. This is true\n > even if you are using shrink-wrapped box boundaries, as specified\n > by the [boundary ](https://docs.lammps.org/boundary.html) command. However, you can first\n > use the [change_box ](https://docs.lammps.org/change_box.html) command to temporarily\n > expand the box, then add atoms via create_atoms, then finally use\n > change_box command again if needed to re-shrink-wrap the new atoms.\n > See the [change_box ](https://docs.lammps.org/change_box.html) doc page for an example of\n > how to do this, using the create_atoms *single* style to insert a\n > new atom outside the current simulation box. \n > \n\n----------\n\nFor the *box* style, the create_atoms command fills the entire\nsimulation box with particles on the lattice. If your simulation box\nis periodic, you should ensure its size is a multiple of the lattice\nspacings, to avoid unwanted atom overlaps at the box boundaries. If\nyour box is periodic and a multiple of the lattice spacing in a\nparticular dimension, LAMMPS is careful to put exactly one particle at\nthe boundary (on either side of the box), not zero or two.\n\nFor the *region* style, a geometric volume is filled with particles on\nthe lattice. This volume is what is both inside the simulation box\nand also consistent with the region volume. See the [region](https://docs.lammps.org/region.html) command for details. Note that a region can be specified so\nthat its \"volume\" is either inside or outside its geometric boundary.\nAlso note that if a region is the same size as a periodic simulation\nbox (in some dimension), LAMMPS does NOT implement the same logic\ndescribed above for the *box* style, to ensure exactly one particle at\nperiodic boundaries. If this is desired, you should either use the\n*box* style, or tweak the region size to get precisely the particles\nyou want.\n\n----------\n\nIf the simulation box is formulated as a general triclinic box defined\nby arbitrary edge vectors **A**, **B**, **C**, then the *box* and\n*region* styles will create atoms on a lattice commensurate with those\nedge vectors. See the [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc\npage for a detailed explanation of orthogonal, restricted triclinic,\nand general triclinic simulation boxes. As with the [create_box](https://docs.lammps.org/create_box.html) command, the [lattice ](https://docs.lammps.org/lattice.html) command used by\nthis command must be of style *custom* and use its *triclinic/general*\noption. The *a1, *a2*, *a3* settings of the [lattice ](https://docs.lammps.org/lattice.html)\ncommand define the edge vectors of a unit cell of the general\ntriclinic lattice. The [create_box ](https://docs.lammps.org/create_box.html) command creates\na simulation box which replicates that unit cell along each of the\n**A**, **B**, **C** edge vectors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS allows specification of general triclinic simulation boxes\n > as a convenience for users who may be converting data from\n > solid-state crystallographic representations or from DFT codes for\n > input to LAMMPS. However, as explained on the\n > [Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally,\n > LAMMPS only uses restricted triclinic simulation boxes. This means\n > the box created by the [create_box ](https://docs.lammps.org/create_box.html) command as\n > well as the atoms created by this command with their per-atom\n > information (e.g. coordinates, velocities) are converted (rotated)\n > from general to restricted triclinic form when the two commands are\n > invoked. The ` doc page also discusses other\n > LAMMPS commands which can input/output general triclinic\n > representations of the simulation box and per-atom data. \n > \n\nThe *box* style will fill the entire general triclinic box with\nparticles on the lattice, as explained above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *region* style also operates as explained above, but the check\n > for particles inside the region is performed *after* the particle\n > coordinates have been converted to the restricted triclinic box.\n > This means the region must also be defined with respect to the\n > restricted triclinic box, not the general triclinic box. \n > \n\nIf the simulation box is general triclinic, the *single*, *random*,\nand *mesh* styles described next operate on the box *after* it has\nbeen converted to restricted triclinic. So all the settings for those\nstyles should be made in that context.\n\n----------\n\nFor the *single* style, a single particle is added to the system at\nthe specified coordinates. This can be useful for debugging purposes\nor to create a tiny system with a handful of particles at specified\npositions. For a 2d simulation the specified z coordinate must be\n0.0.\n\nThe *porosity* style has been renamed to *random* with added functionality.\n\nFor the *random* style, *N* particles are added to the system at\nrandomly generated coordinates, which can be useful for generating an\namorphous system. For 2d simulations, the z coordinates of all added\natoms will be 0.0.\n\nThe particles are created one by one using the specified random number\n*seed*, resulting in the same set of particle coordinates, independent\nof how many processors are being used in the simulation. Unless the\n*overlap* keyword is specified, particles created by the *random*\nstyle will typically be highly overlapped. Various additional\ncriteria can be used to accept or reject a random particle insertion;\nsee the keyword discussion below. Multiple attempts per particle are\nmade (see the *maxtry* keyword) until the insertion is either\nsuccessful or fails. If this command fails to add all requested *N*\nparticles, a warning will be output.\n\nIf the *region-ID* argument is specified as NULL, then the randomly\ncreated particles will be anywhere in the simulation box. If a\n*region-ID* is specified, a geometric volume is filled that is both\ninside the simulation box and is also consistent with the region\nvolume. See the [region ](https://docs.lammps.org/region.html) command for details. Note\nthat a region can be specified so that its \"volume\" is either inside\nor outside its geometric boundary.\n\nNote that the create_atoms command adds particles to those that\nalready exist. This means it can be used to add particles to a system\npreviously read in from a data or restart file. Or the create_atoms\ncommand can be used multiple times, to add multiple sets of particles\nto the simulation. For example, grain boundaries can be created, by\ninterleaving the create_atoms command with [lattice ](https://docs.lammps.org/lattice.html)\ncommands specifying different orientations.\n\nWhen this command is used, care should be taken to ensure the\nresulting system does not contain particles that are highly\noverlapped. Such overlaps will cause many interatomic potentials to\ncompute huge energies and forces, leading to bad dynamics. There are\nseveral strategies to avoid this problem:\n\n* Use the [delete_atoms overlap ](https://docs.lammps.org/delete_atoms.html) command after\n create_atoms. For example, this strategy can be used to overlay and\n surround a large protein molecule with a volume of water molecules,\n then delete water molecules that overlap with the protein atoms.\n\n* For the *random* style, use the optional *overlap* keyword to avoid\n overlaps when each new particle is created.\n\n* Before running dynamics on an overlapped system, perform an\n [energy minimization ](https://docs.lammps.org/minimize.html). Or run initial dynamics with\n [pair_style soft ](https://docs.lammps.org/pair_soft.html) or with [fix nve/limit ](https://docs.lammps.org/fix_nve_limit.html) to un-overlap the particles, before running normal\n dynamics.\n\n ![Image](img/marble_race.jpg) \n\n\nFor the *mesh* style, a file with a triangle mesh in [STL format](https://en.wikipedia.org/wiki/STL_(file_format)) is read and one or\nmore particles are placed into the area of each triangle. The reader\nsupports both ASCII and binary files conforming to the format on the\nWikipedia page. Binary STL files (e.g. as frequently offered for\n3d-printing) can also be first converted to ASCII for editing with the\n:ref:`stl_bin2txt tool `. The use of the *units box* option\nis required. There are two algorithms available for placing atoms:\n*bisect* and *qrand*. They can be selected via the *meshmode* option;\n*bisect* is the default. If the atom style allows it, the radius will\nbe set to a value depending on the algorithm and the value of the\n*radscale* parameter (see below), and the atoms created from the mesh\nare assigned a new molecule ID.\n\nIn *bisect* mode a particle is created at the center of each triangle\nunless the average distance of the triangle vertices from its center is\nlarger than the *radthresh* value (default is lattice spacing in\nx-direction). In case the average distance is over the threshold, the\ntriangle is recursively split into two halves along the the longest side\nuntil the threshold is reached. There will be at least one sphere per\ntriangle. The value of *radthresh* is set as an argument to *meshmode\nbisect*. The average distance of the vertices from the center is also\nused to set the radius.\n\nIn *qrand* mode a quasi-random sequence is used to distribute particles\non mesh triangles using an approach by **Roberts2019**.\nParticles are added to the triangle until the minimum number density is\nmet or exceeded such that every triangle will have at least one\nparticle. The minimum number density is set as an argument to the\n*qrand* option. The radius will be set so that the sum of the area of\nthe radius of the particles created in place of a triangle will be equal\nto the area of that triangle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The atom placement algorithms in the *mesh* style benefit from meshes\n > where triangles are close to equilateral. It is therefore\n > recommended to pre-process STL files to optimize the mesh\n > accordingly. There are multiple open source and commercial software\n > tools available with the capability to generate optimized meshes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In most cases the atoms created in *mesh* style will become an\n > immobile or rigid object that would not be time integrated or moved\n > by [fix move ](https://docs.lammps.org/fix_move.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). For\n > computational efficiency *and* to avoid undesired contributions to\n > pressure and potential energy due to close contacts, it is usually\n > beneficial to exclude computing interactions between the created\n > particles using [neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html). \n > \n\n----------\n\nIndividual atoms are inserted by this command, unless the *mol*\nkeyword is used. It specifies a *template-ID* previously defined\nusing the [molecule ](https://docs.lammps.org/molecule.html) command, which reads a file that\ndefines the molecule. The coordinates, atom types, charges, etc, as\nwell as any bond/angle/etc and special neighbor information for the\nmolecule can be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in this file are the coordinates and types of atoms in\nthe molecule.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are using the *mol* keyword in combination with the\n > [atom style template ](https://docs.lammps.org/atom_style.html) command, they must use\n > the same molecule template-ID. \n > \n\nUsing a lattice to add molecules, e.g. via the *box* or *region* or\n*single* styles, is exactly the same as adding atoms on lattice\npoints, except that entire molecules are added at each point, i.e. on\nthe point defined by each basis atom in the unit cell as it tiles the\nsimulation box or region. This is done by placing the geometric\ncenter of the molecule at the lattice point, and (by default) giving\nthe molecule a random orientation about the point. The random *seed*\nspecified with the *mol* keyword is used for this operation, and the\nrandom numbers generated by each processor are different. This means\nthe coordinates of individual atoms (in the molecules) will be\ndifferent when running on different numbers of processors, unlike when\natoms are being created in parallel.\n\nNote that with random rotations, it may be important to use a lattice\nwith a large enough spacing that adjacent molecules will not overlap,\nregardless of their relative orientations. See the description of the\n*rotate* keyword below, which overrides the default random orientation\nand inserts all molecules at a specified orientation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the [create_box ](https://docs.lammps.org/create_box.html) command is used to create\n > the simulation box, followed by the create_atoms command with its\n > *mol* option for adding molecules, then you typically need to use the\n > optional keywords allowed by the [create_box ](https://docs.lammps.org/create_box.html) command\n > for extra bonds (angles,etc) or extra special neighbors. This is\n > because by default, the [create_box ](https://docs.lammps.org/create_box.html) command sets up a\n > non-molecular system that does not allow molecules to be added. \n > \n\n----------\n\nThis is the meaning of the other optional keywords.\n\nThe *basis* keyword is only used when atoms (not molecules) are being\ncreated. It specifies an atom type that will be assigned to specific\nbasis atoms as they are created. See the [lattice ](https://docs.lammps.org/lattice.html)\ncommand for specifics on how basis atoms are defined for the unit cell\nof the lattice. By default, all created atoms are assigned the\nargument *type* as their atom type.\n\nThe *ratio* and *subset* keywords can be used in conjunction with the\n*box* or *region* styles to limit the total number of particles\ninserted. The lattice defines a set of *Nlatt* eligible sites for\ninserting particles, which may be limited by the *region* style or the\n*var* and *set* keywords. For the *ratio* keyword, only the specified\nfraction of them (\\(0 \\le f \\le 1\\)) will be assigned particles.\nFor the *subset* keyword only the specified *Nsubset* of them will be\nassigned particles. In both cases the assigned lattice sites are\nchosen randomly. An iterative algorithm is used that ensures the\ncorrect number of particles are inserted, in a perfectly random\nfashion. Which lattice sites are selected will change with the number\nof processors used.\n\nThe *remap* keyword only applies to the *single* style. If it is set\nto *yes*, then if the specified position is outside the simulation\nbox, it will mapped back into the box, assuming the relevant\ndimensions are periodic. If it is set to *no*, no remapping is done\nand no particle is created if its position is outside the box.\n\nThe *var* and *set* keywords can be used together to provide a\ncriterion for accepting or rejecting the addition of an individual\natom, based on its coordinates. They apply to all styles except\n*single*. The *name* specified for the *var* keyword is the name of\nan [equal-style variable ](https://docs.lammps.org/variable.html) that should evaluate to a\nzero or non-zero value based on one or two or three variables that\nwill store the *x*, *y*, or *z* coordinates of an atom (one variable per\ncoordinate). If used, these other variables must be\n[internal-style variables ](https://docs.lammps.org/variable.html) defined in the input\nscript; their initial numeric value can be anything. They must be\ninternal-style variables, because this command resets their values\ndirectly. The *set* keyword is used to identify the names of these\nother variables, one variable for the *x*-coordinate of a created atom,\none for *y*, and one for *z*.\n\n ![Image](img/sinusoid.jpg) \n\nWhen an atom is created, its \\((x,y,z)\\) coordinates become the values for\nany *set* variable that is defined. The *var* variable is then\nevaluated. If the returned value is 0.0, the atom is not created. If\nit is non-zero, the atom is created.\n\nAs an example, these commands can be used in a 2d simulation, to\ncreate a sinusoidal surface. Note that the surface is \"rough\" due to\nindividual lattice points being \"above\" or \"below\" the mathematical\nexpression for the sinusoidal curve. If a finer lattice were used,\nthe sinusoid would appear to be \"smoother\". Also note the use of the\n\"xlat\" and \"ylat\" [thermo_style ](https://docs.lammps.org/thermo_style.html) keywords, which\nconverts lattice spacings to distance.\n(Click on the image for a larger version)\n\n\n```lmps\ndimension 2\nvariable x equal 100\nvariable y equal 25\nlattice hex 0.8442\nregion box block 0 $x 0 $y -0.5 0.5\ncreate_box 1 box\n\nvariable xx internal 0.0\nvariable yy internal 0.0\nvariable v equal \"(0.2*v_y*ylat * cos(v_xx/xlat * 2.0*PI*4.0/v_x) + 0.5*v_y*ylat - v_yy) > 0.0\"\ncreate_atoms 1 box var v set x xx set y yy\nwrite_dump all atom sinusoid.lammpstrj\n```\n-----\n\nThe *rotate* keyword allows specification of the orientation\nat which molecules are inserted. The axis of rotation is\ndetermined by the rotation vector \\((R_x,R_y,R_z)\\) that goes through the\ninsertion point. The specified *theta* determines the angle of\nrotation around that axis. Note that the direction of rotation for\nthe atoms around the rotation axis is consistent with the right-hand\nrule: if your right-hand's thumb points along *R*, then your fingers\nwrap around the axis in the direction of rotation.\n\nThe *radscale* keyword only applies to the *mesh* style and adjusts the\nradius of created particles (see above), provided this is supported by\nthe atom style. Its value is a prefactor (must be \\(>\\) 0.0, default is\n1.0) that is applied to the atom radius inferred from the size of the\nindividual triangles in the triangle mesh that the particle corresponds\nto.\n\nThe *overlap* keyword only applies to the *random* style. It prevents\nnewly created particles from being created closer than the specified\n*Doverlap* distance from any other particle. If particles have finite\nsize (see [atom_style sphere ](https://docs.lammps.org/atom_style.html) for example) *Doverlap*\nshould be specified large enough to include the particle size in the\nnon-overlapping criterion. If molecules are being randomly inserted, then\nan insertion is only accepted if each particle in the molecule meets the\noverlap criterion with respect to other particles (not including particles\nin the molecule itself).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Checking for overlaps is a costly \\(\\mathcal{O}(N(N+M))\\) operation for\n > inserting *N* new particles into a system with *M* existing particles.\n > This is because distances to all *M* existing particles are computed for\n > each new particle that is added. Thus the intended use of this\n > keyword is to add relatively small numbers of particles to systems\n > that remain at a relatively low density even after the new\n > particles are created. Careful use of the *maxtry* keyword in\n > combination with *overlap* is recommended. See the discussion\n > above about systems with overlapped particles for alternate\n > strategies that allow for overlapped insertions. \n > \n\n\nThe *maxtry* keyword only applies to the *random* style. It limits\nthe number of attempts to generate valid coordinates for a single new\nparticle that satisfy all requirements imposed by the *region*, *var*,\nand *overlap* keywords. The default is 10 attempts per particle\nbefore the loop over the requested *N* particles advances to the next\nparticle. Note that if insertion success is unlikely (e.g., inserting\nnew particles into a dense system using the *overlap* keyword),\nsetting the *maxtry* keyword to a large value may result in this\ncommand running for a long time.\n\n ![Image](img/overlap.png) \n\nHere is an example for the *random* style using these commands\n\n```lmps\nunits lj\ndimension 2\nregion box block 0 50 0 50 -0.5 0.5\ncreate_box 1 box\ncreate_atoms 1 random 2000 13487 NULL overlap 1.0 maxtry 50\npair_style lj/cut 2.5\npair_coeff 1 1 1.0 1.0 2.5\n```\nto produce a system as shown in the image with 1520 particles (out of\n2000 requested) that are moderately dense and which have no overlaps\nsufficient to prevent the LJ pair_style from running properly (because\nthe overlap criterion is 1.0). The create_atoms command ran for 0.3 s\non a single CPU core.\n(Click on the image for a larger version)\n\n-----\n\nThe *units* keyword determines the meaning of the distance units used\nby parameters for various styles. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command (e.g.,\n\\(\\mathring{\\textrm{A}}\\) for units = *real* or *metal* . A *lattice* value means\nthe distance units are in lattice spacings. These are affected settings:\n\n* for *single* style: coordinates of the particle created\n* for *random* style: overlap distance *Doverlap* by the *overlap* keyword\n* for *mesh* style: *bisect* threshold value for *meshmode* = *bisect*\n* for *mesh* style: *radthresh* value for *meshmode* = *bisect*\n* for *mesh* style: *density* value for *meshmode* = *qrand*\n\nSince *density* represents an area (distance ^2), the lattice spacing\nfactor is also squared.\n\n----------\n\nAtom IDs are assigned to created atoms in the following way. The\ncollection of created atoms are assigned consecutive IDs that start\nimmediately following the largest atom ID existing before the\ncreate_atoms command was invoked. This is done by the processor's\ncommunicating the number of atoms they each own, the first processor\nnumbering its atoms from \\(1\\) to \\(N_1\\), the second processor from\n\\(N_1+1\\) to \\(N_2\\), and so on, where \\(N_1\\) is the number of\natoms owned by the first processor, \\(N_2\\) is the number owned by the\nsecond processor, and so forth. Thus, when the same simulation is performed on\ndifferent numbers of processors, there is no guarantee a particular created\natom will be assigned the same ID in both simulations. If molecules are being\ncreated, molecule IDs are assigned to created molecules in a similar fashion.\n\nAside from their ID, atom type, and \\(xyz\\) position, other properties of\ncreated atoms are set to default values, depending on which quantities\nare defined by the chosen [atom style ](https://docs.lammps.org/atom_style.html). See the\n[atom style ](https://docs.lammps.org/atom_style.html) command for more details. See the\n[set ](https://docs.lammps.org/set.html) and [velocity ](https://docs.lammps.org/velocity.html) commands for info on\nhow to change these values.\n\n* charge = 0.0\n* dipole moment magnitude = 0.0\n* diameter = 1.0\n* shape = 0.0 0.0 0.0\n* density = 1.0\n* volume = 1.0\n* velocity = 0.0 0.0 0.0\n* angular velocity = 0.0 0.0 0.0\n* angular momentum = 0.0 0.0 0.0\n* quaternion = (1,0,0,0)\n* bonds, angles, dihedrals, impropers = none\n\nIf molecules are being created, these defaults can be overridden by\nvalues specified in the file read by the [molecule ](https://docs.lammps.org/molecule.html)\ncommand. That is, the file typically defines bonds (angles, etc.) between\natoms in the molecule, and can optionally define charges on each atom.\n\nNote that the *sphere* atom style sets the default particle diameter to\n1.0 as well as the density. This means the mass for the particle is not\n1.0, but is \\(\\frac{\\pi}{6} d^3 = 0.5236\\), where \\(d\\) is the\ndiameter. When using the *mesh* style, the particle diameter is adjusted from\nthe size of the individual triangles in the triangle mesh.\n\nNote that the *ellipsoid* atom style sets the default particle shape\nto (0.0 0.0 0.0) and the density to 1.0, which means it is a point\nparticle, not an ellipsoid, and has a mass of 1.0.\n\nNote that the *peri* style sets the default volume and density to 1.0\nand thus also set the mass for the particle to 1.0.\n\nThe [set ](https://docs.lammps.org/set.html) command can be used to override many of these\ndefault settings.\n\n----------\n\n**(Roberts2019)** R. Roberts (2019) \"Evenly Distributing Points in a Triangle.\" Extreme Learning.\n``_ \n ", + "restrictions": "An [atom_style ](https://docs.lammps.org/atom_style.html) must be previously defined to use this\ncommand.\n\nA rotation vector specified for a single molecule must be in\nthe z-direction for a 2d model.\n\nFor [molecule templates ](https://docs.lammps.org/molecule.html) that are created from multiple\nfiles, i.e. contain multiple molecule *sets*, only the first set is\nused. To create multiple molecules the files currently need to be\nmerged and different molecule IDs assigned with a Molecules section.\n", + "related": "[lattice ](https://docs.lammps.org/lattice.html), [region ](https://docs.lammps.org/region.html),\n[create_box ](https://docs.lammps.org/create_box.html), [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html)\n" }, { "command": [ - "compute pod/atom", - "compute podd/atom", - "compute pod/local" + "fix tmd" ], "syntax": [ - "compute ID group-ID pod/atom param.pod coefficients.pod", - "compute ID group-ID podd/atom param.pod coefficients.pod", - "compute ID group-ID pod/local param.pod coefficients.pod", - "compute ID group-ID pod/global param.pod coefficients.pod" + "fix ID group-ID tmd rho_final file1 N file2" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -30819,56 +29730,85 @@ export const command_docs = [ "choices": [] }, { - "arg": "pod/atom", + "arg": "tmd", "type": 1, "choices": [] }, { - "arg": "param.pod", + "arg": "rho_final", "type": 2, "choices": [] }, { - "arg": "coefficients.pod", + "arg": "file1", "type": 2, "choices": [] - } - ], - [ - { - "arg": "compute", - "type": 1, - "choices": [] }, { - "arg": "ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "file2", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tmd = style name of this fix command\n* rho_final = desired value of rho at the end of the run (distance units)\n* file1 = filename to read target structure from\n* N = dump TMD statistics every this many timesteps, 0 = no dump\n* file2 = filename to write TMD statistics to (only needed if N > 0) \n", + "examples": "\n```lmps\nfix 1 all nve\nfix 2 tmdatoms tmd 1.0 target_file 100 tmd_dump_file\n```\n", + "html_filename": "fix_tmd.html", + "short_description": "Perform targeted molecular dynamics (TMD) on a group of atoms", + "description": "Perform targeted molecular dynamics (TMD) on a group of atoms. A\nholonomic constraint is used to force the atoms to move towards (or away\nfrom) the target configuration. The parameter \"rho\" is monotonically\ndecreased (or increased) from its initial value to rho_final at the end\nof the run.\n\nRho has distance units and is a measure of the root-mean-squared\ndistance (RMSD) between the current configuration of the atoms in the\ngroup and the target coordinates listed in file1. Thus a value of\nrho_final = 0.0 means move the atoms all the way to the final\nstructure during the course of the run.\n\nThe target file1 can be ASCII text or a gzipped text file (detected by\na .gz suffix). The format of the target file1 is as follows:\n\n```\n0.0 25.0 xlo xhi\n0.0 25.0 ylo yhi\n0.0 25.0 zlo zhi\n125 24.97311 1.69005 23.46956 0 0 -1\n126 1.94691 2.79640 1.92799 1 0 0\n127 0.15906 3.46099 0.79121 1 0 0\n...\n```\nThe first 3 lines may or may not be needed, depending on the format of\nthe atoms to follow. If image flags are included with the atoms, the\nfirst 3 lo/hi lines **must** appear in the file. If image flags are not\nincluded, the first 3 lines **must not** appear. The 3 lines contain the\nsimulation box dimensions for the atom coordinates, in the same format\nas in a LAMMPS data file (see the [read_data ](https://docs.lammps.org/read_data.html) command).\n\nThe remaining lines each contain an atom ID and its target x,y,z\ncoordinates. The atom lines (all or none of them) can optionally be\nfollowed by 3 integer values: nx,ny,nz.For periodic dimensions, they\nspecify which image of the box the atom is considered to be in, i.e. a\nvalue of N (positive or negative) means add N times the box length to\nthe coordinate to get the true value. Those 3 integers either must\nbe given for all atoms or none.\n\nThe atom lines can be listed in any order, but every atom in the group\nmust be listed in the file. Atoms not in the fix group may also be\nlisted; they will be ignored.\n\nComments starting with '#' and empty lines may be included as well.\n\nTMD statistics are written to file2 every N timesteps, unless N is\nspecified as 0, which means no statistics.\n\nThe atoms in the fix tmd group should be integrated (via a fix nve,\nnvt, npt) along with other atoms in the system.\n\nRestarts can be used with a fix tmd command. For example, imagine a\n10000 timestep run with a rho_initial = 11 and a rho_final = 1. If a\nrestart file was written after 2000 time steps, then the configuration\nin the file would have a rho value of 9. A new 8000 time step run\ncould be performed with the same rho_final = 1 to complete the\nconformational change at the same transition rate. Note that for\nrestarted runs, the name of the TMD statistics file should be changed\nto prevent it being overwritten.\n\nFor more information about TMD, see **Schlitter1** and\n**Schlitter2**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its rho parameter over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schlitter1)** Schlitter, Swegat, Mulders, \"Distance-type reaction\ncoordinates for modelling activated processes\", J Molecular Modeling,\n7, 171-177 (2001). \n \n**(Schlitter2)** Schlitter and Klahn, \"The free energy of a reaction\ncoordinate at multiple constraints: a concise formulation\", Molecular\nPhysics, 101, 3439-3443 (2003). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll TMD fixes must be listed in the input script after all integrator\nfixes (nve, nvt, npt) are applied. This ensures that atoms are moved\nbefore their positions are corrected to comply with the constraint.\n\nAtoms that have a TMD fix applied should not be part of a group to\nwhich a SHAKE fix is applied. This is because LAMMPS assumes there\nare not multiple competing holonomic constraints applied to the same\natoms.\n\nTo read gzipped target files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n", + "related": "none\n" +}, +{ + "command": [ + "improper_coeff" + ], + "syntax": [ + "improper_coeff N args" + ], + "args": [ + [ { - "arg": "podd/atom", - "type": 2, + "arg": "improper_coeff", + "type": 1, "choices": [] }, { - "arg": "param.pod", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "coefficients.pod", + "arg": "args", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* N = numeric improper type (see asterisk form below), or type label\n* args = coefficients for one or more improper types \n", + "examples": "\n```lmps\nimproper_coeff 1 300.0 0.0\nimproper_coeff * 80.2 -1 2\nimproper_coeff *4 80.2 -1 2\n\nlabelmap improper 1 benzene\nimproper_coeff benzene 300.0 0.0\n```\n", + "html_filename": "improper_coeff.html", + "short_description": "Specify the improper force field coefficients for one or more improper\ntypes", + "description": "Specify the improper force field coefficients for one or more improper\ntypes. The number and meaning of the coefficients depends on the\nimproper style. Improper coefficients can also be set in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple improper types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) = the number of improper types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using an improper_coeff command can override a previous\nsetting for the same improper type. For example, these commands set the\ncoeffs for all improper types, then overwrite the coeffs for just\nimproper type 2:\n\n```lmps\nimproper_coeff * 300.0 0.0\nimproper_coeff 2 50.0 0.0\n```\nA line in a data file that specifies improper coefficients uses the\nexact same format as the arguments of the improper_coeff command in an\ninput script, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For\nexample, under the \"Improper Coeffs\" section of a data file, the line\nthat corresponds to the first example above would be listed as\n\n```\n1 300.0 0.0\n```\nThe [improper_style class2 ](https://docs.lammps.org/improper_class2.html) is an exception to\nthis rule, in that an additional argument is used in the input script\nto allow specification of the cross-term coefficients. See its doc\npage for details.\n\n----------\n\nThe list of all improper styles defined in LAMMPS is given on the\n[improper_style ](https://docs.lammps.org/improper_style.html) doc page. They are also listed\nin more compact form on the :ref:`Commands improper ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\nimproper_coeff command.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAn improper style must be defined before any improper coefficients are\nset, either in the input script or in a data file.\n", + "related": "[improper_style ](https://docs.lammps.org/improper_style.html)\n" +}, +{ + "command": [ + "fix wall/body/polyhedron" + ], + "syntax": [ + "fix ID group-ID wall/body/polyhedron k_n c_n c_t wallstyle args keyword values ..." + ], + "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -30883,98 +29823,94 @@ export const command_docs = [ "choices": [] }, { - "arg": "pod/local", - "type": 2, + "arg": "wall/body/polyhedron", + "type": 1, "choices": [] }, { - "arg": "param.pod", + "arg": "k_n", "type": 2, "choices": [] }, { - "arg": "coefficients.pod", + "arg": "c_n", "type": 2, "choices": [] - } - ], - [ - { - "arg": "compute", - "type": 1, - "choices": [] }, { - "arg": "ID", + "arg": "c_t", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] + "arg": "zplane", + "type": 3, + "choices": [ + "xplane", + "yplane", + "zplane" + ] }, { - "arg": "pod/global", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "param.pod", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "coefficients.pod", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pod/atom = style name of this compute command\n* param.pod = the parameter file specifies parameters of the POD descriptors\n* coefficients.pod = the coefficient file specifies coefficients of the POD potential \n", - "examples": "\n```lmps\ncompute d all pod/atom Ta_param.pod\ncompute dd all podd/atom Ta_param.pod\ncompute ldd all pod/local Ta_param.pod\ncompute gdd all podd/global Ta_param.pod\ncompute d all pod/atom Ta_param.pod Ta_coefficients.pod\ncompute dd all podd/atom Ta_param.pod Ta_coefficients.pod\ncompute ldd all pod/local Ta_param.pod Ta_coefficients.pod\ncompute gdd all podd/global Ta_param.pod Ta_coefficients.pod\n```\n", - "html_filename": "compute_pod_atom.html", - "short_description": "\nDefine a computation that calculates a set of quantities related to the\nPOD descriptors of the atoms in a group", - "description": "\nDefine a computation that calculates a set of quantities related to the\nPOD descriptors of the atoms in a group. These computes are used\nprimarily for calculating the dependence of energy and force components\non the linear coefficients in the [pod pair_style ](https://docs.lammps.org/pair_pod.html),\nwhich is useful when training a POD potential to match target data. POD\ndescriptors of an atom are characterized by the radial and angular\ndistribution of neighbor atoms. The detailed mathematical definition is\ngiven in the papers by **Nguyen20222c**,\n**Nguyen20232c**, **Nguyen20242c**,\nand **Nguyen20243c**.\n\nCompute *pod/atom* calculates the per-atom POD descriptors.\n\nCompute *podd/atom* calculates derivatives of the per-atom POD\ndescriptors with respect to atom positions.\n\nCompute *pod/local* calculates the per-atom POD descriptors and their\nderivatives with respect to atom positions.\n\nCompute *pod/global* calculates the global POD descriptors and their\nderivatives with respect to atom positions.\n\nExamples how to use Compute POD commands are found in the directory\n``examples/PACKAGES/pod``.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >All of these compute styles produce *very* large per-atom output\n > arrays that scale with the total number of atoms in the system.\n > This will result in *very* large memory consumption for systems\n > with a large number of atoms. \n > \n\n----------\n\n #### Output info\n\nCompute *pod/atom* produces an 2D array of size \\(N \\times M\\),\nwhere \\(N\\) is the number of atoms and \\(M\\) is the number of\ndescriptors. Each column corresponds to a particular POD descriptor.\n\nCompute *podd/atom* produces an 2D array of size \\(N \\times (M * 3\nN)\\). Each column corresponds to a particular derivative of a POD\ndescriptor.\n\nCompute *pod/local* produces an 2D array of size \\((1 + 3N) \\times\n(M * N)\\). The first row contains the per-atom descriptors, and the last\n3N rows contain the derivatives of the per-atom descriptors with respect\nto atom positions.\n\nCompute *pod/global* produces an 2D array of size \\((1 + 3N) \\times\n(M)\\). The first row contains the global descriptors, and the last 3N\nrows contain the derivatives of the global descriptors with respect to\natom positions.\n\n**(Nguyen20222c)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232c)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242c)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243c)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", - "restrictions": "These computes are part of the ML-POD package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fitpod ](https://docs.lammps.org/fitpod_command.html),\n[pair_style pod ](https://docs.lammps.org/pair_pod.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/body/polyhedron = style name of this fix command\n* k_n = normal repulsion strength (force/distance units or pressure units - see discussion below)\n* c_n = normal damping coefficient (force/distance units or pressure units - see discussion below)\n* c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below)\n* wallstyle = xplane or yplane or zplane\n* args = list of arguments for a particular style \n *        xplane or yplane or zplane args = lo hi \n         lo,hi = position of lower and upper plane (distance units), either can be NULL) \n* zero or more keyword/value pairs may be appended to args\n* keyword = wiggle \n *        wiggle values = dim amplitude period \n         dim = x or y or z \n         amplitude = size of oscillation (distance units) \n         period = time of oscillation (time units) \n", + "examples": "\n```lmps\nfix 1 all wall/body/polyhedron 1000.0 20.0 5.0 xplane -10.0 10.0\n```\n", + "html_filename": "fix_wall_body_polyhedron.html", + "short_description": "This fix is for use with 3d models of body particles of style\n*rounded/polyhedron* ", + "description": "This fix is for use with 3d models of body particles of style\n*rounded/polyhedron* . It bounds the simulation domain with wall(s).\nAll particles in the group interact with the wall when they are close\nenough to touch it. The nature of the interaction between the wall\nand the polygon particles is the same as that between the polygon\nparticles themselves, which is similar to a Hookean potential. See\nthe [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details on using\nbody particles.\n\nThe parameters *k_n*, *c_n*, *c_t* have the same meaning and units as\nthose specified with the [pair_style body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html) command.\n\nThe *wallstyle* can be planar or cylindrical. The 3 planar options\nspecify a pair of walls in a dimension. Wall positions are given by\n*lo* and *hi* . Either of the values can be specified as NULL if a\nsingle wall is desired.\n\nOptionally, the wall can be moving, if the *wiggle* keyword is appended.\n\nFor the *wiggle* keyword, the wall oscillates sinusoidally, similar to\nthe oscillations of particles which can be specified by the [fix move ](https://docs.lammps.org/fix_move.html) command. This is useful in packing simulations of\nparticles. The arguments to the *wiggle* keyword specify a dimension\nfor the motion, as well as it's *amplitude* and *period* . Note that\nif the dimension is in the plane of the wall, this is effectively a\nshearing motion. If the dimension is perpendicular to the wall, it is\nmore of a shaking motion.\n\nEach timestep, the position of a wiggled wall in the appropriate *dim*\nis set according to this equation:\n\n```\nposition = coord + A - A cos (omega \\* delta)\n```\nwhere *coord* is the specified initial position of the wall, *A* is\nthe *amplitude*, *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. The velocity of the wall is set\nto the derivative of this expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter\nof this fix can be used with the *start/stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAny dimension (xyz) that has a wall must be non-periodic.\n", + "related": "[atom_style body ](https://docs.lammps.org/atom_style.html), [pair_style body/rounded/polyhedron ](https://docs.lammps.org/pair_body_rounded_polyhedron.html)\n" }, { "command": [ - "thermo" + "dihedral_style none" ], "syntax": [ - "thermo N" + "dihedral_style none" ], "args": [ [ { - "arg": "thermo", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "none", + "type": 1, "choices": [] } ] ], - "parameters": "* N = output thermodynamics every N timesteps\n* N can be a variable (see below) \n", - "examples": "\n```lmps\nthermo 100\n```\n", - "html_filename": "thermo.html", - "short_description": "Compute and print thermodynamic info (e.g", - "description": "Compute and print thermodynamic info (e.g. temperature, energy,\npressure) on timesteps that are a multiple of N and at the beginning\nand end of a simulation. A value of 0 will only print thermodynamics\nat the beginning and end.\n\nThe content and format of what is printed is controlled by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) and\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html) commands.\n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is\nthe variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the next timestep at which thermodynamic\ninfo will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the variable\nshould return timestep values. See the stagger() and logfreq() and\nstride() math functions for [equal-style variables ](https://docs.lammps.org/variable.html), as\nexamples of useful functions to use in this context. Other similar math\nfunctions could easily be added as options for [equal-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, the following commands will output thermodynamic info at\ntimesteps 0, 10, 20, 30, 100, 200, 300, 1000, 2000, *etc*:\n\n```lmps\nvariable s equal logfreq(10,3,10)\nthermo v_s\n```\n", + "parameters": "", + "examples": "\n```lmps\ndihedral_style none\n```\n", + "html_filename": "dihedral_none.html", + "short_description": "Using a dihedral style of none means dihedral forces and energies are\nnot computed, even if quadruplets of dihedral atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command", + "description": "Using a dihedral style of none means dihedral forces and energies are\nnot computed, even if quadruplets of dihedral atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [dihedral_style zero ](https://docs.lammps.org/dihedral_zero.html) command for a way to\ncalculate dihedral statistics, but compute no dihedral interactions.\n", "restrictions": " none\n", - "related": "[thermo_style ](https://docs.lammps.org/thermo_style.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n" + "related": "[dihedral_style zero ](https://docs.lammps.org/dihedral_zero.html)\n" }, { "command": [ - "fix npt/sphere", - "fix npt/sphere/omp" + "fix wall/piston" ], "syntax": [ - "fix ID group-ID npt/sphere keyword value ..." + "fix ID group-ID wall/piston face ... keyword value ..." ], "args": [ [ @@ -30994,18 +29930,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "npt/sphere", - "type": 3, - "choices": [ - "npt/sphere", - "npt/sphere/omp" - ] + "arg": "wall/piston", + "type": 1, + "choices": [] }, { - "arg": "keyword", + "arg": "face", "type": 2, "choices": [] }, + { + "arg": "units", + "type": 3, + "choices": [ + "pos", + "vel", + "ramp", + "temp", + "units" + ] + }, { "arg": "value", "type": 2, @@ -31013,46 +29957,60 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n npt/sphere = style name of this fix command\n zero or more keyword/value pairs may be appended\n* keyword = disc \n *      disc value = none = treat particles as 2d discs, not spheres \n* NOTE: additional thermostat and barostat and dipole related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", - "examples": "\n```lmps\nfix 1 all npt/sphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 disc\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 update dipole\nfix 2 water npt/sphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_npt_sphere.html", - "short_description": "Perform constant NPT integration to update position, velocity, and\nangular velocity each timestep for finite-sizex spherical particles in\nthe group using a Nose/Hoover temperature thermostat and Nose/Hoover\npressure barostat", - "description": "Perform constant NPT integration to update position, velocity, and\nangular velocity each timestep for finite-sizex spherical particles in\nthe group using a Nose/Hoover temperature thermostat and Nose/Hoover\npressure barostat. P is pressure; T is temperature. This creates a\nsystem trajectory consistent with the isothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the spherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*, *iso*,\n*aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/sphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/sphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note\nthat the IDs of the new computes are the fix-ID + underscore + \"temp\"\nor fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp* and *thermo_press*. This means you can change the\nattributes of this fix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the\nappropriate compute-ID. It also means that changing attributes of\n*thermo_temp* or *thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure. If you do this, note that\nthe kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", - "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n [fix nvt_sphere ](https://docs.lammps.org/fix_nvt_sphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/piston = style name of this fix command\n* face = zlo\n* zero or more keyword/value pairs may be appended\n* keyword = pos or vel or ramp or temp or units \n *        pos args = z \n         z = z coordinate at which the piston begins (distance units) \n *        vel args = vz \n         vz = final velocity of the piston (velocity units) \n *        ramp = use a linear velocity ramp from 0 to vz \n *        temp args = target damp seed extent \n         target = target velocity for region immediately ahead of the piston \n         damp = damping parameter (time units) \n         seed = random number seed for langevin kicks \n         extent = extent of thermostatted region (distance units) \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n..\n FIXME: There are several \"undocumented\" key words for this fix: *rough*,\n *rampNL1*, *rampNL2*, *rampNL3*, *rampNL4*, and *rampNL5*. \n", + "examples": "\n```lmps\nfix xwalls all wall/piston zlo\nfix walls all wall/piston zlo pos 1.0 vel 10.0 units box\nfix top all wall/piston zlo vel 10.0 ramp\n```\n", + "html_filename": "fix_wall_piston.html", + "short_description": "Bound the simulation with a moving wall which reflect particles in the\nspecified group and drive the system with an effective infinite-mass\npiston capable of driving shock waves", + "description": "Bound the simulation with a moving wall which reflect particles in the\nspecified group and drive the system with an effective infinite-mass\npiston capable of driving shock waves.\n\nA momentum mirror technique is used, which means that if an atom (or\nthe wall) moves such that an atom is outside the wall on a timestep by\na distance delta (e.g. due to [fix nve ](https://docs.lammps.org/fix_nve.html)), then it is put\nback inside the face by the same delta, and the velocity relative to\nthe moving wall is flipped in z. For instance, a stationary particle\nhit with a piston wall with velocity vz, will end the timestep with a\nvelocity of 2\\*vz.\n\nCurrently the *face* keyword can only be *zlo* . This creates a piston\nmoving in the positive z direction. Particles with z coordinate less\nthan the wall position are reflected to a z coordinate greater than\nthe wall position. If the piston velocity is vpz and the particle\nvelocity before reflection is vzi, the particle velocity after\nreflection is -vzi + 2\\*vpz.\n\nThe initial position of the wall can be specified by the *pos* keyword.\n\nThe final velocity of the wall can be specified by the *vel* keyword\n\nThe *ramp* keyword will cause the wall/piston to adjust the velocity\nlinearly from zero velocity to *vel* over the course of the run. If\nthe *ramp* keyword is omitted then the wall/piston moves at a constant\nvelocity defined by *vel* .\n\nThe *temp* keyword will cause the region immediately in front of the\nwall/piston to be thermostatted with a Langevin thermostat. This\nregion moves with the piston. The damping and kicking are measured in\nthe reference frame of the piston. So, a temperature of zero would\nmean all particles were moving at exactly the speed of the\nwall/piston.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe face that has the wall/piston must be boundary type 's'\n(shrink-wrapped). The opposing face can be\nany boundary type other than periodic.\n\nA wall/piston should not be used with rigid bodies such as those\ndefined by a \"fix rigid\" command. This is because the wall/piston\ndisplaces atoms directly rather than exerting a force on them.\n", + "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall.html) command, [fix append/atoms ](https://docs.lammps.org/fix_append_atoms.html) command\n" }, { "command": [ - "pair_style srp" + "fix nve/dotc/langevin" ], "syntax": [ - "pair_style srp cutoff btype dist keyword value ...", - "pair_style srp/react cutoff btype dist react-id keyword value ..." + "fix ID group-ID nve/dotc/langevin Tstart Tstop damp seed keyword value" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "srp", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "nve/dotc/langevin", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "btype", + "arg": "Tstop", "type": 2, "choices": [] }, { - "arg": "dist", + "arg": "damp", + "type": 2, + "choices": [] + }, + { + "arg": "seed", "type": 2, "choices": [] }, @@ -31066,35 +30024,80 @@ export const command_docs = [ "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/dotc/langevin = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* keyword = angmom \n *        angmom value = factor \n         factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below \n", + "examples": "\n```lmps\nfix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10\nfix 1 all nve/dotc/langevin 0.1 0.1 78.9375 457145 angmom 10\n```\n", + "html_filename": "fix_nve_dotc_langevin.html", + "short_description": "Apply a rigid-body Langevin-type integrator of the kind \"Langevin C\"\nas described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack5>`to a group of atoms, which models an interaction with an implicit backgroundsolvent", + "description": "Apply a rigid-body Langevin-type integrator of the kind \"Langevin C\"\nas described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack5>`to a group of atoms, which models an interaction with an implicit backgroundsolvent. This command performs Brownian dynamics (BD)via a technique that splits the integration into a deterministic Hamiltonianpart and the Ornstein-Uhlenbeck process for noise and damping.The quaternion degrees of freedom are updated though an evolutionoperator which performs a rotation in quaternion space, preservesthe quaternion norm and is akin to **Miller5**.In terms of syntax this command has been closely modelled on the[fix langevin ](https://docs.lammps.org/fix_langevin.html) and its *angmom* option. But it combinesthe [fix nve ](https://docs.lammps.org/fix_nve.html) and the [fix langevin ](https://docs.lammps.org/fix_langevin.html) inone single command. The main feature is improved stabilityover the standard integrator, permitting slightly larger timestep sizes.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >Unlike the [fix langevin ](https://docs.lammps.org/fix_langevin.html) this command performs > also time integration of the translational and quaternion degrees of freedom. > The total force on each atom will have the form:\\[\\begin{align*} F = & F_c + F_f + F_r \\\\ F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\ F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\\(F_c\\) is the conservative force computed via the usualinter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html),[bond_style ](https://docs.lammps.org/bond_style.html), etc). The \\(F_f\\) and \\(F_r\\)terms are implicitly taken into account by this fix on a per-particlebasis.\\(F_f\\) is a frictional drag or viscous damping term proportional tothe particle's velocity. The proportionality constant for each atom iscomputed as \\(\\frac{m}{\\mathrm{damp}}\\), where *m* is the mass ofthe particle and damp is the damping factor specified by the user.\\(F_r\\) is a force due to solvent atoms at a temperature \\(T\\)randomly bumping into the particle. As derived from thefluctuation/dissipation theorem, its magnitude as shown above isproportional to \\(\\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}}\\), where\\(k_B\\) is the Boltzmann constant, \\(T\\) is the desired temperature,*m* is the mass of the particle, *dt* is the timestep size, and damp isthe damping factor. Random numbers are used to randomize the directionand magnitude of this force as described in **Dunweg5**,where a uniform random number is used (instead of a Gaussian randomnumber) for speed.----------*Tstart* and *Tstop* have to be constant values, i.e. they cannotbe variables. If used together with the oxDNA force field forcoarse-grained simulation of DNA please note that T = 0.1 in oxDNA unitscorresponds to T = 300 K.The *damp* parameter is specified in time units and determines howrapidly the temperature is relaxed. For example, a value of 0.03means to relax the temperature in a timespan of (roughly) 0.03 timeunits \\(\\tau\\) (see the [units ](https://docs.lammps.org/units.html) command).The damp factor can be thought of as inversely related to theviscosity of the solvent, i.e. a small relaxation time implies ahigh-viscosity solvent and vice versa. See the discussion about gammaand viscosity in the documentation for the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command for more details.Note that the value 78.9375 in the second example above correspondsto a diffusion constant, which is about an order of magnitude largerthan realistic ones. This has been used to sample configurations fasterin Brownian dynamics simulations.The random # *seed* must be a positive integer. A Marsaglia randomnumber generator is used. Each processor uses the input seed togenerate its own unique seed and its own stream of random numbers.Thus the dynamics of the system will not be identical on two runs ondifferent numbers of processors.The keyword/value option has to be used in the following way:This fix has to be used together with the *angmom* keyword. Theparticles are always considered to have a finite size.The keyword *angmom* enables thermostatting of the rotational degrees offreedom in addition to the usual translational degrees of freedom.The scale factor after the *angmom* keyword gives the ratio of therotational to the translational friction coefficient.An example input file can be found in examples/PACKAGES/cgdna/examples/duplex2/.Further details of the implementation and stability of the integrators are contained in **Henrich5**.The preprint version of the article can be found `here ` package and the MOLECULE and ASPHERE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nve/dot ](https://docs.lammps.org/fix_nve_dot.html), [bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html)\n" +}, +{ + "command": [ + "compute temp/ramp" + ], + "syntax": [ + "compute ID group-ID temp/ramp vdim vlo vhi dim clo chi keyword value ..." + ], + "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "srp/react", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "btype", + "arg": "temp/ramp", + "type": 1, + "choices": [] + }, + { + "arg": "vz", + "type": 3, + "choices": [ + "vx", + "vy", + "vz" + ] + }, + { + "arg": "vlo", + "type": 2, + "choices": [] + }, + { + "arg": "vhi", "type": 2, "choices": [] }, { - "arg": "dist", + "arg": "z", + "type": 3, + "choices": [ + "x", + "y", + "z" + ] + }, + { + "arg": "clo", "type": 2, "choices": [] }, { - "arg": "react-id", + "arg": "chi", "type": 2, "choices": [] }, @@ -31110,63 +30113,71 @@ export const command_docs = [ } ] ], - "parameters": "* cutoff = global cutoff for SRP interactions (distance units)\n* btype = bond type (numeric, type label, or wildcard) to apply SRP interactions to\n* distance = min or mid\n* react-id = id of either fix bond/break or fix bond/create\n* zero or more keyword/value pairs may be appended\n* keyword = exclude \n *        *bptype* value = atom type (numeric or type label) for bond particles \n *        exclude value = yes or no \n", - "examples": "\n```lmps\npair_style hybrid dpd 1.0 1.0 12345 srp 0.8 1 mid exclude yes\npair_coeff 1 1 dpd 60.0 4.5 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp 100.0 0.8\n\npair_style hybrid dpd 1.0 1.0 12345 srp 0.8 * min exclude yes\npair_coeff 1 1 dpd 60.0 50 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp 40.0\n\nfix create all bond/create 100 1 2 1.0 1 prob 0.2 19852\npair_style hybrid dpd 1.0 1.0 12345 srp/react 0.8 * min create exclude yes\npair_coeff 1 1 dpd 60.0 50 1.0\npair_coeff 1 2 none\npair_coeff 2 2 srp/react 40.0\n\npair_style hybrid srp 0.8 2 mid\npair_coeff 1 1 none\npair_coeff 1 2 none\npair_coeff 2 2 srp 100.0 0.8\n\nlabelmap bond 1 C-C\npair_style hybrid srp 0.8 C-C mid\n```\nDescription\n\n\nStyle *srp* computes a soft segmental repulsive potential (SRP) that\nacts between pairs of bonds. This potential is useful for preventing\nbonds from passing through one another when a soft non-bonded\npotential acts between beads in, for example, DPD polymer chains. An\nexample input script that uses this command is provided in\nexamples/PACKAGES/srp.\n\nBonds of specified type *btype* interact with one another through a\nbond-pairwise potential, such that the force on bond *i* due to bond\n*j* is as follows\n\\[\n F^{\\mathrm{SRP}}_{ij} = C(1-r/r_c)\\hat{r}_{ij} \\qquad r < r_c\\]\nwhere *r* and \\(\\hat{r}_{ij}\\) are the distance and unit vector\nbetween the two bonds. Note that *btype* can be specified as an\nasterisk \"\\*\", which case the interaction is applied to all bond types.\nThe *mid* option computes *r* and \\(\\hat{r}_{ij}\\) from the midpoint\ndistance between bonds. The *min* option computes *r* and\n\\(\\hat{r}_{ij}\\) from the minimum distance between bonds. The force\nacting on a bond is mapped onto the two bond atoms according to the\nlever rule,\n\\[\\begin{align*} \n F_{i1}^{\\mathrm{SRP}} & = F^{\\mathrm{SRP}}_{ij}(L) \\\\\n F_{i2}^{\\mathrm{SRP}} & = F^{\\mathrm{SRP}}_{ij}(1-L) \\end{align*} \\]\nwhere *L* is the normalized distance from the atom to the point of\nclosest approach of bond *i* and *j* . The *mid* option takes *L* as\n0.5 for each interaction as described in **Sirk2**.\n\nThe following coefficients must be defined via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart file read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* *C* (force units)\n* \\(r_c\\) (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Pair style srp considers each bond of type *btype* to be a\n > fictitious \"particle\" of type *bptype*, where *bptype* is either the\n > largest atom type in the system, or the type set by the *bptype* flag.\n > Any actual existing particles with this atom type will be deleted at\n > the beginning of a run. This means you must specify the number of\n > types in your system accordingly; usually to be one larger than what\n > would normally be the case, e.g. via the [create_box ](https://docs.lammps.org/create_box.html)\n > or by changing the header in your [data file ](https://docs.lammps.org/read_data.html). The\n > fictitious \"bond particles\" are inserted at the beginning of the run,\n > and serve as placeholders that define the position of the bonds. This\n > allows neighbor lists to be constructed and pairwise interactions to\n > be computed in almost the same way as is done for actual particles.\n > Because bonds interact only with other bonds, [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) should be used to turn off interactions\n > between atom type *bptype* and all other types of atoms. An error\n > will be flagged if [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) is not used. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nThe optional *exclude* keyword determines if forces are computed\nbetween first neighbor (directly connected) bonds. For a setting of\n*no*, first neighbor forces are computed; for *yes* they are not\ncomputed. A setting of *no* cannot be used with the *min* option for\ndistance calculation because the minimum distance between directly\nconnected bonds is zero.\n\nPair style *srp* turns off normalization of thermodynamic properties\nby particle number, as if the command [thermo_modify norm no ](https://docs.lammps.org/thermo_modify.html) had been issued.\n\nThe pairwise energy associated with style *srp* is shifted to be zero\nat the cutoff distance \\(r_c\\).\n\n----------\n\nPair style *srp/react* interfaces the pair style *srp* with the\nbond breaking and formation mechanisms provided by fix *bond/break*\nand fix *bond/create*, respectively. When using this pair style, whenever a\nbond breaking (or formation) reaction occurs, the corresponding fictitious\nparticle is deleted (or inserted) during the same simulation time step as\nthe reaction. This is useful in the simulation of reactive systems involving\nlarge polymeric molecules **Palkar** where the segmental repulsive\npotential is necessary to minimize topological violations, and also needs to be\nturned on and off according to the progress of the reaction.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy term is already shifted to be 0.0 at the\ncutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes global and per-atom information to [binary restart files ](https://docs.lammps.org/restart.html). Pair srp should be used with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), thus the pair_coeff commands need to be\nspecified in the input script when reading a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Sirk2)** Sirk TW, Sliozberg YR, Brennan JK, Lisal M, Andzelm JW, J\nChem Phys, 136 (13) 134903, 2012. \n \n**(Palkar)** Palkar V, Kuksenok O, J. Phys. Chem. B, 126 (1), 336-346, 2022 \n ", - "html_filename": "pair_srp.html", - "short_description": "", - "description": "", - "restrictions": "This pair style is part of the MISC package. It is only enabled\nif LAMMPS was built with that package. See the Making LAMMPS section\nfor more info.\n\nThis pair style must be used with [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html).\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) command to be *on*\nfor non-bonded interactions.\n\nThis pair style is not compatible with [rigid body integrators ](https://docs.lammps.org/fix_rigid.html)\n", - "related": "[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair dpd ](https://docs.lammps.org/pair_dpd.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/ramp = style name of this compute command\n* vdim = vx or vy or vz\n* vlo,vhi = subtract velocities between vlo and vhi (velocity units)\n* dim = x or y or z\n* clo,chi = lower and upper bound of domain to subtract from (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = units \n *      units value = lattice or box \n", + "examples": "\n```lmps\ncompute 2nd middle temp/ramp vx 0 8 y 2 12 units lattice\n```\n", + "html_filename": "compute_temp_ramp.html", + "short_description": "Define a computation that calculates the temperature of a group of atoms,\nafter subtracting out an ramped velocity profile before computing the kinetic\nenergy", + "description": "Define a computation that calculates the temperature of a group of atoms,\nafter subtracting out an ramped velocity profile before computing the kinetic\nenergy. A compute of this style can be used by any command that computes a\ntemperature (e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe meaning of the arguments for this command which define the\nvelocity ramp are the same as for the [velocity ramp ](https://docs.lammps.org/velocity.html)\ncommand which was presumably used to impose the velocity.\n\nAfter the ramp velocity has been subtracted from the specified\ndimension for each atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nThe *units* keyword determines the meaning of the distance units used\nfor coordinates (*clo*, *chi*) and velocities (*vlo*, *vhi*). A *box* value\nselects standard distance units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand (e.g., \\(\\mathring{\\textrm{A}}\\) for units = real or metal). A\n*lattice* value means the distance units are in lattice spacings (i.e.,\nvelocity in lattice spacings per unit time). The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\n\nA kinetic energy tensor, stored as a six-element vector, is also calculated by\nthis compute for use in the computation of a pressure tensor. The formula for\nthe components of the tensor is the same as the above formula, except that\n\\(v^2\\) is replaced by \\(v_x v_y\\) for the \\(xy\\) component, and\nso on. The six components of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be constant\nfor the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the ramped velocity component by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/profie ](https://docs.lammps.org/compute_temp_profile.html), [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "angle_style table", - "angle_style table/omp" + "fix alchemy" ], "syntax": [ - "angle_style table style N" + "fix ID group-ID alchemy v_name" ], "args": [ [ { - "arg": "angle_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "table", - "type": 3, - "choices": [ - "table", - "table/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "style", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "alchemy", + "type": 1, + "choices": [] + }, + { + "arg": "v_name", "type": 2, "choices": [] } ] ], - "parameters": "* style = linear or spline = method of interpolation\n* N = use N values in table \n", - "examples": "\n```lmps\nangle_style table linear 1000\nangle_coeff 3 file.table ENTRY1\n```\n", - "html_filename": "angle_table.html", - "short_description": "Style *table* creates interpolation tables of length *N* from angle\npotential and derivative values listed in a file(s) as a function of\nangle The files are read by the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand", - "description": "Style *table* creates interpolation tables of length *N* from angle\npotential and derivative values listed in a file(s) as a function of\nangle The files are read by the [angle_coeff ](https://docs.lammps.org/angle_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and derivative values at each of\n*N* angles. During a simulation, these tables are used to interpolate\nenergy and force values on individual atoms as needed. The\ninterpolation is done in one of 2 styles: *linear* or *spline* .\n\nFor the *linear* style, the angle is used to find 2 surrounding table\nvalues from which an energy or its derivative is computed by linear\ninterpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The angle is used to\nfind the appropriate set of coefficients which are used to evaluate a\ncubic polynomial which computes the energy or derivative.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and\nderivative values. The keyword specifies a section of the file. The\nformat of this file is described below.\n\n----------\n\nSuitable tables for use with this angle style can be created by LAMMPS\nitself from existing angle styles using the [angle_write](https://docs.lammps.org/angle_write.html) command. This can be useful to have a template file for\ntesting the angle style settings and to build a compatible custom file.\nAnother option to generate tables is the Python code in the\n``tools/tabulate`` folder of the LAMMPS source code distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Angle potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 181 FP 0 0 EQ 90.0 (N, FP, EQ parameters)\n(blank line)\n1 0.0 200.5 2.5 (index, angle, energy, derivative)\n2 1.0 198.0 2.5\n...\n181 180.0 0.0 0.0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command. The next line lists (in any\norder) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [angle_style table ](https://docs.lammps.org/angle_style.html) command. Let\nNtable = *N* in the angle_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and derivative\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual angles and their atoms. This means that if you\nwant the interpolation tables of length Ntable to match exactly what\nis in the tabulated file (with effectively no preliminary\ninterpolation), you should set Ntable = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the second derivatives at the innermost and\noutermost angle settings. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they\nare estimated (less accurately) by the first two and last two\nderivative values in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium angle value, which is used, for example, by the [fix shake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium angle is\nset to 180.0.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe angle value (in degrees), the third value is the energy (in energy\nunits), and the fourth is -dE/d(theta) (also in energy units). The third\nterm is the energy of the 3-atom configuration for the specified\nangle. The last term is the derivative of the energy with respect to\nthe angle (in degrees, not radians). Thus the units of the last term\nare still energy, not force. The angle values must increase from one\nline to the next. The angle values must also begin with 0.0 and end\nwith 180.0, i.e. span the full range of possible angles.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis angle style writes the settings for the \"angle_style table\"\ncommand to [binary restart files ](https://docs.lammps.org/restart.html), so a angle_style\ncommand does not need to specified in an input script that reads a\nrestart file. However, the coefficient information is not stored in\nthe restart file, since it is tabulated in the potential files. Thus,\nangle_coeff commands do need to be specified in the restart input\nscript.\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_write ](https://docs.lammps.org/angle_write.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* alchemy = style name of this fix command\n* v_name = variable with name that determines the \\(\\lambda_R\\) value \n", + "examples": "\n```lmps\nfix trans all alchemy v_ramp\n```\n", + "html_filename": "fix_alchemy.html", + "short_description": "\nThis fix command enables an \"alchemical transformation\" to be performed\nbetween two systems, whereby one system slowly transforms into the other\nover the course of a molecular dynamics run", + "description": "\nThis fix command enables an \"alchemical transformation\" to be performed\nbetween two systems, whereby one system slowly transforms into the other\nover the course of a molecular dynamics run. This is useful for\nmeasuring thermodynamic differences between two different systems. It\nalso allows transformations that are not easily possible with the\n[pair style hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html), [fix adapt](https://docs.lammps.org/fix_adapt.html) or [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) commands.\n\nExample inputs are included in the ``examples/PACKAGES/alchemy``\ndirectory for (a) transforming a pure copper system into a\ncopper/aluminum bronze alloy and (b) transforming two water molecules\nin a box of water into a hydronium and a hydroxyl ion.\n\nThe two systems must be defined as [separate replica](https://docs.lammps.org/Howto_replica.html) and run in separate partitions of processors using the\n[-partition ](https://docs.lammps.org/Run_options.html) command-line switch. Exactly two\npartitions must be specified, and each partition must use the same number\nof processors and the same domain decomposition.\n\nBecause the forces applied to the atoms are the same mix of the forces\nfrom each partition and the simulation starts with the same atom\npositions across both partitions, they will generate the same trajectory\nof coordinates for each atom, and the same simulation box size and\nshape. The latter two conditions are *enforced* by this fix; it\nexchanges coordinates and box information between the replicas. This is\nnot strictly required, but since MD simulations are an example of a\nchaotic system, even the tiniest random difference will eventually grow\nexponentially into an unwanted divergence.\n\nOtherwise, the properties of each atom (type, charge, bond and angle\npartners, etc.), as well as energy and forces between interacting atoms\n(pair, bond, angle styles, etc.) can be different in the two systems.\n\nThis can be initialized in the same input script by using commands which\nonly apply to one or the other replica. The example scripts use a\nworld-style [variable ](https://docs.lammps.org/variable.html) command along with\n[if/then/else ](https://docs.lammps.org/if.html) commands for this purpose. The\n[partition ](https://docs.lammps.org/partition.html) command can also be used.\n\n```lmps\ncreate_box 2 box\ncreate_atoms 1 box\npair_style eam/alloy\npair_coeff * * AlCu.eam.alloy Cu Al\n\n# replace 5% of copper with aluminum on the second partition only\n\nvariable name world pure alloy\nif \"${name} == alloy\" then &\n\"set type 1 type/fraction 2 0.05 6745234\"\n```\nBoth replicas must define an instance of this fix, but with a different\n*v_name* variable. The named variable must be an equal-style or\nequivalent [variable ](https://docs.lammps.org/variable.html). The two variables should be\ndefined so that one ramps *down* from 1.0 to 0.0 for the *first* replica\n(*R=0*) and the other ramps *up* from 0.0 to 1.0 for the *second*\nreplica (*R=1*). A simple way is to do this is linearly, which can be\ndone using the ramp() function of the [variable ](https://docs.lammps.org/variable.html)\ncommand. You could also define a variable which returns a value between\n0.0 and 1.0 as a non-linear function of the timestep. Here is a linear\nexample:\n\n```lmps\npartition yes 1 variable ramp equal ramp(1.0,0.0)\npartition yes 2 variable ramp equal ramp(0.0,1.0)\nfix 2 all alchemy v_ramp\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For an alchemical transformation, the two variables should sum to\n > exactly 1.0 at any timestep. LAMMPS does *NOT* check that this is\n > the case. \n > \n\nIf you use the ``ramp()`` function to define the two variables, this fix\ncan easily be used across successive runs in the same input script by\nensuring each instance of the [run ](https://docs.lammps.org/run.html) command specifies the\nappropriate *start* or *stop* options.\n\nAt each timestep of an MD run, the two instances of this fix evaluate\ntheir respective variables as a \\(\\lambda_R\\) factor, where *R* = 0\nor 1 for each replica. The forces used by each system for the\npropagation of their atoms is set to the sum of the forces for the two\nsystems, each scaled by their respective \\(\\lambda_R\\) factor. Thus,\nduring the MD run, the system will transform incrementally from the\nfirst system to the second system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As mentioned above, the coordinates of the atoms and box size/shape\n > must be exactly the same in the two replicas. Therefore, it is\n > generally not a good idea to initialize the two replicas by reading\n > different data files or creating them individually from scratch.\n > Rather, a single system should be initialized and then desired\n > modifications applied to the system to either replica. If your\n > input script somehow induces the two systems to become different\n > (e.g. by performing [atom_modify sort ](https://docs.lammps.org/atom_modify.html)\n > differently, or by adding or depositing a different number of atoms),\n > then LAMMPS will detect the mismatch and generate an error. This is\n > done by ensuring that each step the number and ordering of atoms is\n > identical within each pair of processors in the two replicas. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix stores a global scalar (the current value of \\(\\lambda_R\\))\nand a global vector of length 3 which contains the potential energy of\nthe first partition, the second partition and the combined value,\nrespectively. The global scalar is unitless and \"intensive\", the vector\nis in [energy units ](https://docs.lammps.org/units.html) and \"extensive\". These values can be\nused by any command that uses a global value from a fix as input. See\nthe [output howto ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the REPLICA package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere may be only one instance of this fix in use at a time within\neach replica.\n", + "related": "[compute pressure/alchemy ](https://docs.lammps.org/compute_pressure_alchemy.html) command,\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command, [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html)\ncommand, [pair_style hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html) command.\n" }, { "command": [ - "fix halt" + "fix wall/lj93", + "fix wall/lj93/kk", + "fix wall/lj126", + "fix wall/lj1043", + "fix wall/colloid", + "fix wall/harmonic", + "fix wall/lepton", + "fix wall/morse" ], "syntax": [ - "fix ID group-ID halt N attribute operator avalue keyword value ..." + "fix ID group-ID style [tabstyle] [N] face args ... keyword value ..." ], "args": [ [ @@ -31186,45 +30197,59 @@ export const command_docs = [ "choices": [] }, { - "arg": "halt", - "type": 1, - "choices": [] + "arg": "wall/lj93/kk", + "type": 3, + "choices": [ + "wall/lj93", + "wall/lj126", + "wall/lj1043", + "wall/colloid", + "wall/harmonic", + "wall/lepton", + "wall/morse", + "wall/table", + "wall/lj93/kk" + ] }, { - "arg": "N", + "arg": "[tabstyle]", "type": 2, "choices": [] }, { - "arg": "v_name", - "type": 3, - "choices": [ - "bondmax", - "tlimit", - "v_name" - ] + "arg": "[N]", + "type": 2, + "choices": [] }, { - "arg": "\"\\|\\^\"", + "arg": "zhi", "type": 3, "choices": [ - "\"<\"", - "\">\"", - "\"\\|\\^\"" + "xlo", + "xhi", + "ylo", + "yhi", + "zlo", + "zhi" ] }, { - "arg": "avalue", + "arg": "harmonic", "type": 2, - "choices": [] + "choices": [ + "lj126", + "lj1043", + "colloid", + "harmonic" + ] }, { - "arg": "path", + "arg": "pbc", "type": 3, "choices": [ - "error", - "message", - "path" + "units", + "fld", + "pbc" ] }, { @@ -31234,25 +30259,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* halt = style name of this fix command\n* N = check halt condition every N steps\n* attribute = bondmax or tlimit or v_name \n *        bondmax = length of longest bond in the system (in length units) \n *        tlimit = elapsed CPU time (in seconds) \n *        diskfree = free disk space (in MBytes) \n *        v_name = name of [equal-style variable ](https://docs.lammps.org/variable.html) \n* operator = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" or \"\\|\\^\"\n* avalue = numeric value to compare attribute to\n* zero or more keyword/value pairs may be appended\n* keyword = error or message or path \n *        error value = hard or soft or continue \n *        message value = yes or no \n *        path value = path to check for free space (may be in quotes) \n", - "examples": "\n```lmps\nfix 10 all halt 1 bondmax > 1.5\nfix 10 all halt 10 v_myCheck != 0 error soft\nfix 10 all halt 100 diskfree < 100000.0 path \"dump storage/.\"\n```\n", - "html_filename": "fix_halt.html", - "short_description": "Check a condition every N steps during a simulation run", - "description": "Check a condition every N steps during a simulation run. N must be >=1.\nIf the condition is met, exit the run. In this context a \"run\" can be\ndynamics or minimization iterations, as specified by the [run](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe specified group-ID is ignored by this fix.\n\nThe specified *attribute* can be one of the options listed above, namely\n*bondmax*, *tlimit*, *diskfree*, or an [equal-style variable](https://docs.lammps.org/variable.html) referenced as *v_name*, where \"name\" is the name of a\nvariable that has been defined previously in the input script.\n\nThe *bondmax* attribute will loop over all bonds in the system,\ncompute their current lengths, and set *attribute* to the longest bond\ndistance.\n\nThe *tlimit* attribute queries the elapsed CPU time (in seconds) since\nthe current run began, and sets *attribute* to that value. This is an\nalternative way to limit the length of a simulation run, similar to\nthe [timer ](https://docs.lammps.org/timer.html) timeout command. There are two differences in\nusing this method versus the timer command option. The first is that\nthe clock starts at the beginning of the current run (not when the\ntimer or fix command is specified), so that any setup time for the run\nis not included in the elapsed time. The second is that the timer\ninvocation and syncing across all processors (via MPI_Allreduce) is\nnot performed once every *N* steps by this command. Instead it is\nperformed (typically) only a small number of times and the elapsed\ntimes are used to predict when the end-of-the-run will be. Both of\nthese attributes can be useful when performing benchmark calculations\nfor a desired length of time with minimal overhead. For example, if\na run is performing 1000s of timesteps/sec, the overhead for syncing\nthe timer frequently across a large number of processors may be\nnon-negligible.\n\nThe *diskfree* attribute will check for available disk space (in\nMBytes) on supported operating systems. By default it will\ncheck the file system of the current working directory. This\ncan be changed with the optional *path* keyword, which will take\nthe path to a file or folder on the file system to be checked\nas argument. This path must be given with single or double quotes,\nif it contains blanks or other special characters (like \\$).\n\nEqual-style variables evaluate to a numeric value. See the\n[variable ](https://docs.lammps.org/variable.html) command for a description. They calculate\nformulas which can involve mathematical operations, atom properties,\ngroup properties, thermodynamic properties, global values calculated\nby a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html), or references to other\n[variables ](https://docs.lammps.org/variable.html). Thus they are a very general means of\ncomputing some attribute of the current system. For example, the\nfollowing \"bondmax\" variable will calculate the same quantity as the\nhstyle = bondmax option.\n\n```lmps\ncompute bdist all bond/local dist\ncompute bmax all reduce max c_bdist\nvariable bondmax equal c_bmax\n```\nThus these two versions of a fix halt command will do the same thing:\n\n```lmps\nfix 10 all halt 1 bondmax > 1.5\nfix 10 all halt 1 v_bondmax > 1.5\n```\nThe version with \"bondmax\" will just run somewhat faster, due to less\noverhead in computing bond lengths and not storing them in a separate\ncompute.\n\nA variable can be used to implement a large variety of conditions,\nincluding to stop when a specific file exists. Example:\n\n```lmps\nvariable exit equal is_file(EXIT)\nfix 10 all halt 100 v_exit != 0 error soft\n```\nWill stop the current run command when a file ``EXIT`` is created\nin the current working directory. The condition can be cleared\nby removing the file through the [shell ](https://docs.lammps.org/shell.html) command.\n\nThe choice of operators listed above are the usual comparison\noperators. The XOR operation (exclusive or) is also included as \"\\|\\^\".\nIn this context, XOR means that if either the attribute or avalue is\n0.0 and the other is non-zero, then the result is \"true\". Otherwise\nit is \"false\".\n\nThe specified *avalue* must be a numeric value.\n\n----------\n\nThe optional *error* keyword determines how the current run is halted.\nIf its value is *hard*, then LAMMPS will stop with an error message.\n\nIf its value is *soft*, LAMMPS will exit the current run, but continue\nto execute subsequent commands in the input script. However,\nadditional [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) commands will be\nskipped. For example, this allows a script to output the current\nstate of the system, e.g. via a [write_dump ](https://docs.lammps.org/write_dump.html) or\n[write_restart ](https://docs.lammps.org/write_restart.html) command.\n\nIf its value is *continue*, the behavior is the same as for *soft*,\nexcept subsequent [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) commands\nare executed. This allows your script to remedy the condition that\ntriggered the halt, if necessary. Note that you may wish use the\n[unfix ](https://docs.lammps.org/unfix.html) command on the fix halt ID, so that the same\ncondition is not immediately triggered in a subsequent run.\n\nThe optional *message* keyword determines whether a message is printed\nto the screen and logfile when the halt condition is triggered. If\n*message* is set to yes, a one line message with the values that\ntriggered the halt is printed. If *message* is set to no, no message\nis printed; the run simply exits. The latter may be desirable for\npost-processing tools that extract thermodynamic information from log\nfiles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n", - "restrictions": "The *diskfree* attribute is currently only supported on Linux, macOS, and \\*BSD.\n", - "related": "[variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = wall/lj93 or wall/lj126 or wall/lj1043 or wall/colloid or wall/harmonic or wall/lepton or wall/morse or wall/table\n* tabstyle = linear or spline = method of table interpolation (only applies to wall/table)\n* N = use N values in linear or spline interpolation (only applies to wall/table)\n* one or more face/arg pairs may be appended\n* face = xlo or xhi or ylo or yhi or zlo or zhi\n\n.. spacer\n\n* args for styles lj93 or lj126 or lj1043 or colloid or harmonic \n *          args = coord epsilon sigma cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n           epsilon can be a variable (see below) \n *          sigma = size factor for wall-particle interaction (distance units) \n           sigma can be a variable (see below) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style lepton \n *          args = coord expression cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          expression = Lepton expression for the potential (energy units) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style morse \n *          args = coord D_0 alpha r_0 cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          D_0 = depth of the potential (energy units) \n           D_0 can be a variable (see below) \n *          alpha = width factor for wall-particle interaction (1/distance units) \n           alpha can be a variable (see below) \n *          r_0 = distance of the potential minimum from the face of region (distance units) \n           r_0 can be a variable (see below) \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* args for style table \n *          args = coord filename keyword cutoff \n *          coord = position of wall = EDGE or constant or variable \n           EDGE = current lo or hi edge of simulation box \n           constant = number like 0.0 or -30.0 (distance units) \n           variable = [equal-style variable ](https://docs.lammps.org/variable.html) like v_x or v_wiggle \n *          filename = file containing tabulated energy and force values \n *          keyword = section identifier to select a specific table in table file \n *          cutoff = distance from wall at which wall-particle interactions are cut off (distance units) \n* zero or more keyword/value pairs may be appended\n* keyword = units or fld or pbc \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n *        fld value = yes or no \n         yes = invoke the wall constraint to be compatible with implicit FLD \n         no = invoke the wall constraint in the normal way \n *        pbc value = yes or no \n         yes = allow periodic boundary in a wall dimension \n         no = require non-perioidic boundaries in any wall dimension \n", + "examples": "\n```lmps\nfix wallhi all wall/lj93 xlo -1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/lj93 xhi EDGE 1.0 1.0 2.5\nfix wallhi all wall/harmonic xhi EDGE 100.0 0.0 4.0 units box\nfix wallhi all wall/morse xhi EDGE 1.0 1.0 1.0 2.5 units box\nfix wallhi all wall/lj126 v_wiggle 23.2 1.0 1.0 2.5\nfix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858\nfix xwall mobile wall/table spline 200 EDGE -5.0 walltab.dat HARMONIC 4.0\nfix xwalls mobile wall/lepton xlo -5.0 \"k*(r-rc)^2;k=100.0\" 4.0 xhi 5.0 \"k*(r-rc)^2;k=100.0\" 4.0\n```\n", + "html_filename": "fix_wall.html", + "short_description": "Bound the simulation domain on one or more of its faces with a flat\nwall that interacts with the atoms in the group by generating a force\non the atom in a direction perpendicular to the wall", + "description": "Bound the simulation domain on one or more of its faces with a flat\nwall that interacts with the atoms in the group by generating a force\non the atom in a direction perpendicular to the wall. The energy of\nwall-particle interactions depends on the style.\n\nFor style *wall/lj93*, the energy E is given by the 9-3 Lennard-Jones potential:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\frac{2}{15} \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^3 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj126*, the energy E is given by the 12-6 Lennard-Jones potential:\n\\[.. math::\\]\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj1043*, the energy E is given by the 10-4-3 Lennard-Jones potential:\n\\[.. math::\\]\n E = 2 \\pi \\epsilon \\left[ \\frac{2}{5} \\left(\\frac{\\sigma}{r}\\right)^{10} -\n \\left(\\frac{\\sigma}{r}\\right)^4 -\n \\frac{\\sqrt(2)\\sigma^3}{3\\left(r+\\left(0.61/\\sqrt(2)\\right)\\sigma\\right)^3}\\right]\n \\qquad r < r_c\n\nFor style *wall/colloid*, the energy E is given by an integrated form\nof the [pair_style colloid ](https://docs.lammps.org/pair_colloid.html) potential:\n\\[\\begin{align*} \n E = & \\epsilon \\left[ \\frac{\\sigma^{6}}{7560}\n \\left(\\frac{6R-D}{D^{7}} + \\frac{D+8R}{(D+2R)^{7}} \\right) \\right. \\\\\n & \\left. - \\frac{1}{6} \\left(\\frac{2R(D+R) + D(D+2R)\n \\left[ \\ln D - \\ln (D+2R) \\right]}{D(D+2R)} \\right) \\right] \\qquad r < r_c \\end{align*} \\]\nFor style *wall/harmonic*, the energy E is given by a repulsive-only harmonic\nspring potential:\n\\[.. math::\\]\n E = \\epsilon \\quad (r - r_c)^2 \\qquad r < r_c\n\nFor style *wall/morse*, the energy E is given by a Morse potential:\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\n\nFor style *wall/lepton*, the energy E is provided as an Lepton\nexpression string using \"r\" as the distance variable. The `Lepton\nlibrary `_, that the *wall/lepton*\nstyle interfaces with, evaluates this expression string at run time to\ncompute the wall-particle energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect\nto \"r\" and then uses that to compute the force between the wall and\natoms in the fix group. The Lepton expression must be either enclosed\nin quotes or must not contain any whitespace so that LAMMPS recognizes\nit as a single keyword.\n\nOptionally, the expression may use \"rc\" to refer to the cutoff distance\nfor the given wall. Further constants in the expression can be defined\nin the same string as additional expressions separated by semicolons.\nThe expression \"k*(r-rc)^2;k=100.0\" represents a repulsive-only harmonic\nspring as in fix *wall/harmonic* with a force constant *K* (same as\n\\(\\epsilon\\) above) of 100 energy units. More details on the Lepton\nexpression strings are given below.\n\nFor style *wall/table*, the energy E and forces are determined from\ninterpolation tables listed in one or more files as a function of\ndistance. The interpolation tables are used to evaluate energy and\nforces between particles and the wall similar to how analytic formulas\nare used for the other wall styles.\n\nThe interpolation tables are created as a pre-computation by fitting\ncubic splines to the file values and interpolating energy and force\nvalues at each of *N* distances. During a simulation, the tables are\nused to interpolate energy and force values as needed for each wall and\nparticle separated by a distance *R* . The interpolation is done in\none of two styles: *linear* or *spline* .\n\nFor the *linear* style, the distance *R* is used to find the 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored for each of the *N* values in the table, one set of splines for\nenergy, another for force. Note that these splines are different than\nthe ones used to pre-compute the *N* values. Those splines were fit\nto the *Nfile* values in the tabulated file, where often *Nfile* <\n*N* . The distance *R* is used to find the appropriate set of spline\ncoefficients which are used to evaluate a cubic polynomial which\ncomputes the energy or force.\n\nFor each wall a filename and a keyword must be provided as in the\nexamples above. The filename specifies a file containing tabulated\nenergy and force values. The keyword specifies a section of the file.\nThe format of this file is described below.\n\nIn all cases, *r* is the distance from the particle to the wall at\nposition *coord*, and \\(r_c\\) is the *cutoff* distance at which the\nparticle and wall no longer interact. The energy of the wall\npotential is shifted so that the wall-particle interaction energy is\n0.0 at the cutoff distance.\n\nUp to 6 walls or faces can be specified in a single command: *xlo*,\n*xhi*, *ylo*, *yhi*, *zlo*, *zhi* . A *lo* face interacts with\nparticles near the lower side of the simulation box in that dimension.\nA *hi* face interacts with particles near the upper side of the\nsimulation box in that dimension.\n\nThe position of each wall can be specified in one of 3 ways: as the\nEDGE of the simulation box, as a constant value, or as a variable. If\nEDGE is used, then the corresponding boundary of the current\nsimulation box is used. If a numeric constant is specified then the\nwall is placed at that position in the appropriate dimension (x, y, or\nz). In both the EDGE and constant cases, the wall will never move.\nIf the wall position is a variable, it should be specified as v_name,\nwhere name is an [equal-style variable ](https://docs.lammps.org/variable.html) name. In this\ncase the variable is evaluated each timestep and the result becomes\nthe current position of the reflecting wall. Equal-style variables\ncan specify formulas with various mathematical functions, and include\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the simulation\nbox parameters and timestep and elapsed time. Thus it is easy to\nspecify a time-dependent wall position. See examples below.\n\nFor the *wall/lj93* and *wall/lj126* and *wall/lj1043* styles,\n\\(\\epsilon\\) and \\(\\sigma\\) are the usual Lennard-Jones\nparameters, which determine the strength and size of the particle as it\ninteracts with the wall. Epsilon has energy units. Note that this\n\\(\\epsilon\\) and \\(\\sigma\\) may be different than any\n\\(\\epsilon\\) or \\(\\sigma\\) values defined for a pair style that\ncomputes particle-particle interactions.\n\nThe *wall/lj93* interaction is derived by integrating over a 3d\nhalf-lattice of Lennard-Jones 12/6 particles. The *wall/lj126*\ninteraction is effectively a harder, more repulsive wall interaction.\nThe *wall/lj1043* interaction is yet a different form of wall\ninteraction, described in Magda et al in **Magda**.\n\nFor the *wall/colloid* style, *R* is the radius of the colloid particle,\n*D* is the distance from the surface of the colloid particle to the wall\n(r-R), and \\(\\sigma\\) is the size of a constituent LJ particle\ninside the colloid particle and wall. Note that the cutoff distance Rc\nin this case is the distance from the colloid particle center to the\nwall. The prefactor \\(\\epsilon\\) can be thought of as an effective\nHamaker constant with energy units for the strength of the colloid-wall\ninteraction. More specifically, the \\(\\epsilon\\) prefactor is\n\\(4\\pi^2 \\rho_{wall} \\rho_{colloid} \\epsilon \\sigma^6\\), where\n\\(\\epsilon\\) and \\(\\sigma\\) are the LJ parameters for the\nconstituent LJ particles. \\(\\rho_{wall}\\) and \\(\\rho_{colloid}\\)\nare the number density of the constituent particles, in the wall and\ncolloid respectively, in units of 1/volume.\n\nThe *wall/colloid* interaction is derived by integrating over\nconstituent LJ particles of size \\(\\sigma\\) within the colloid\nparticle and a 3d half-lattice of Lennard-Jones 12/6 particles of size\n\\(\\sigma\\) in the wall. As mentioned in the preceding paragraph,\nthe density of particles in the wall and colloid can be different, as\nspecified by the \\(\\epsilon\\) prefactor.\n\nFor the *wall/harmonic* style, \\(\\epsilon\\) is effectively the spring\nconstant K, and has units (energy/distance\\^2). The input parameter\n\\(\\sigma\\) is ignored. The minimum energy position of the harmonic\nspring is at the *cutoff* . This is a repulsive-only spring since the\ninteraction is truncated at the *cutoff*\n\nFor the *wall/morse* style, the three parameters are in this order:\n\\(D_0\\) the depth of the potential, \\(\\alpha\\) the width\nparameter, and \\(r_0\\) the location of the minimum. \\(D_0\\) has\nenergy units, \\(\\alpha\\) inverse distance units, and \\(r_0\\)\ndistance units.\n\nFor any wall that supports them, the \\(\\epsilon\\) and/or\n\\(\\sigma\\) and/or \\(\\alpha\\) parameter can be specified as an\n[equal-style variable ](https://docs.lammps.org/variable.html), in which case it should be\nspecified as v_name, where name is the variable name. As with a\nvariable wall position, the variable is evaluated each timestep and the\nresult becomes the current epsilon or sigma of the wall. Equal-style\nvariables can specify formulas with various mathematical functions, and\ninclude [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify a time-dependent wall interaction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For all of the styles, you must ensure that r is always > 0 for\n > all particles in the group, or LAMMPS will generate an error. This\n > means you cannot start your simulation with particles at the wall\n > position *coord* (r = 0) or with particles on the wrong side of the\n > wall (r < 0). For the *wall/lj93* and *wall/lj126* styles, the energy\n > of the wall/particle interaction (and hence the force on the particle)\n > blows up as r -> 0. The *wall/colloid* style is even more\n > restrictive, since the energy blows up as D = r-R -> 0. This means\n > the finite-size particles of radius R must be a distance larger than R\n > from the wall position *coord* . The *harmonic* style is a softer\n > potential and does not blow up as r -> 0, but you must use a large\n > enough \\(\\epsilon\\) that particles always reamin on the correct side of\n > the wall (r > 0). \n > \n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant or\nvariable is used. It is not relevant when EDGE is used to specify a\nface position. In the variable case, the variable is assumed to\nproduce a value compatible with the *units* setting you specify.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\nThe *fld* keyword can be used with a *yes* setting to invoke the wall\nconstraint before pairwise interactions are computed. This allows an\nimplicit FLD model using [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\nto include the wall force in its calculations. If the setting is *no*,\nwall forces are imposed after pairwise interactions, in the usual\nmanner.\n\nThe *pbc* keyword can be used with a *yes* setting to allow walls to be\nspecified in a periodic dimension. See the [boundary ](https://docs.lammps.org/boundary.html)\ncommand for options on simulation box boundaries. The default for *pbc*\nis *no*, which means the system must be non-periodic when using a wall.\nBut you may wish to use a periodic box. E.g. to allow some particles to\ninteract with the wall via the fix group-ID, and others to pass through\nit and wrap around a periodic box. In this case you should ensure that\nthe wall is sufficiently far enough away from the box boundary. If you\ndo not, then particles may interact with both the wall and with periodic\nimages on the other side of the box, which is probably not what you\nwant.\n\n----------\n\nHere are examples of variable definitions that move the wall position\nin a time-dependent fashion using equal-style\n[variables ](https://docs.lammps.org/variable.html). The wall interaction parameters (epsilon,\nsigma) could be varied with additional variable definitions.\n\n```lmps\nvariable ramp equal ramp(0,10)\nfix 1 all wall xlo v_ramp 1.0 1.0 2.5\n\nvariable linear equal vdisplace(0,20)\nfix 1 all wall xlo v_linear 1.0 1.0 2.5\n\nvariable wiggle equal swiggle(0.0,5.0,3.0)\nfix 1 all wall xlo v_wiggle 1.0 1.0 2.5\n\nvariable wiggle equal cwiggle(0.0,5.0,3.0)\nfix 1 all wall xlo v_wiggle 1.0 1.0 2.5\n```\nThe *ramp(lo,hi)* function adjusts the wall position linearly from *lo* to\n*hi* over the course of a run. The *vdisplace(c0,velocity)* function does\nsomething similar using the equation *position = c0 + velocity\\*delta*,\nwhere *delta* is the elapsed time.\n\nThe *swiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, where *omega = 2 PI\n/ period*\\ :\n\n```\nposition = c0 + A sin(omega\\*delta)\n```\nThe *cwiggle(c0,A,period)* function causes the wall position to\noscillate sinusoidally according to this equation, which will have an\ninitial wall velocity of 0.0, and thus may impose a gentler\nperturbation on the particles:\n\n```\nposition = c0 + A (1 - cos(omega\\*delta))\n```\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n #### Table file format\n\nSuitable tables for use with fix *wall/table* can be created by the\nPython code in the ``tools/tabulate`` folder of the LAMMPS source code\ndistribution.\n\nThe format of a tabulated file is as follows (without the parenthesized\ncomments):\n\n```\n# Tabulated wall potential UNITS: real\n\nHARMONIC (keyword is the first text on a line)\nN 100 FP 200 200\n(blank line)\n1 0.04 1568.16 792.00 (index, distance to wall, energy, force)\n2 0.08 1536.64 784.00\n3 0.12 1505.44 776.00\n...\n99 3.96 0.16 8.00\n100 4.00 0 0\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which identifies\nthe section. The line can contain additional text, but the initial text\nmust match the argument specified in the fix *wall/table* command. The\nnext line lists (in any order) one or more parameters for the table.\nEach parameter is a keyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the fix *wall/table* command. Let Ntable = *N* in the fix\ncommand, and Nfile = \"N\" in the tabulated file. What LAMMPS does is a\npreliminary interpolation by creating splines using the Nfile tabulated\nvalues as nodal points. It uses these to interpolate as needed to\ngenerate energy and force values at Ntable different points. The\nresulting tables of length Ntable are then used as described above, when\ncomputing energy and force for wall-particle interactions. This means that\nif you want the interpolation tables of length Ntable to match exactly\nwhat is in the tabulated file (with effectively no preliminary\ninterpolation), you should set Ntable = Nfile.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and all the\nspecified walls to the global potential energy of the system as part\nof [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting\nfor this fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the interaction between atoms\nand all the specified walls to both the global pressure and per-atom\nstress of the system via the [compute pressure](https://docs.lammps.org/compute_pressure.html) and [compute stress/atom](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be accessed by\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify virial no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar energy and a global vector of forces,\nwhich can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNote that the scalar energy is the sum of interactions with all defined\nwalls. If you want the energy on a per-wall basis, you need to use\nmultiple fix wall commands. The length of the vector is equal to the\nnumber of walls defined by the fix. Each vector value is the normal\nforce on a specific wall. Note that an outward force on a wall will be\na negative value for *lo* walls and a positive value for *hi* walls.\nThe scalar and vector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy*\n > option for this fix. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Magda)** Magda, Tirrell, Davis, J Chem Phys, 83, 1888-1901 (1985);\nerratum in JCP 84, 2901 (1986). \n ", + "restrictions": "Fix *wall/lepton* is part of the LEPTON package and only enabled if\nLAMMPS was built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html),\n[fix wall/region ](https://docs.lammps.org/fix_wall_region.html)\n" }, { "command": [ - "fix nve/dotc/langevin" + "compute smd/ulsph/stress" ], "syntax": [ - "fix ID group-ID nve/dotc/langevin Tstart Tstop damp seed keyword value" + "compute ID group-ID smd/ulsph/stress" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -31267,61 +30292,102 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/dotc/langevin", + "arg": "smd/ulsph/stress", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/stress = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/ulsph/stress\n```\n", + "html_filename": "compute_smd_ulsph_stress.html", + "short_description": "Define a computation that outputs the Cauchy stress tensor", + "description": "Define a computation that outputs the Cauchy stress tensor.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of pressure.\n\nThe per-particle vector has 7 entries. The first six entries\ncorrespond to the xx, yy, zz, xy, xz, yz components of the symmetric\nCauchy stress tensor. The seventh entry is the second invariant of the\nstress tensor, i.e., the von Mises equivalent stress.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", + "related": "[compute smd/ulsph/strain ](https://docs.lammps.org/compute_smd_ulsph_strain.html), [compute smd/ulsph/strain/rate ](https://docs.lammps.org/compute_smd_ulsph_strain_rate.html) [compute smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" +}, +{ + "command": [ + "dimension" + ], + "syntax": [ + "dimension N" + ], + "args": [ + [ { - "arg": "Tstart", - "type": 2, + "arg": "dimension", + "type": 1, "choices": [] }, { - "arg": "Tstop", - "type": 2, - "choices": [] - }, + "arg": "3", + "type": 3, + "choices": [ + "2", + "3" + ] + } + ] + ], + "parameters": "* N = 2 or 3 \n", + "examples": "\n```lmps\ndimension 2\n```\n", + "html_filename": "dimension.html", + "short_description": "Set the dimensionality of the simulation", + "description": "Set the dimensionality of the simulation. By default LAMMPS runs 3d\nsimulations. To run a 2d simulation, this command should be used\nprior to setting up a simulation box via the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands.\nRestart files also store this setting.\n\nSee the discussion on the [Howto 2d ](https://docs.lammps.org/Howto_2d.html) page for\nadditional instructions on how to run 2d simulations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Some models in LAMMPS treat particles as finite-size spheres or\n > ellipsoids, as opposed to point particles. In 2d, the particles will\n > still be spheres or ellipsoids, not circular disks or ellipses,\n > meaning their moment of inertia will be the same as in 3d. \n > \n\n", + "restrictions": "This command must be used before the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n", + "related": "[fix enforce2d ](https://docs.lammps.org/fix_enforce2d.html)\n" +}, +{ + "command": [ + "compute smd/ulsph/strain" + ], + "syntax": [ + "compute ID group-ID smd/ulsph/strain" + ], + "args": [ + [ { - "arg": "damp", - "type": 2, + "arg": "compute", + "type": 1, "choices": [] }, { - "arg": "seed", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "smd/ulsph/strain", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/dotc/langevin = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* keyword = angmom \n *        angmom value = factor \n         factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below \n", - "examples": "\n```lmps\nfix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10\nfix 1 all nve/dotc/langevin 0.1 0.1 78.9375 457145 angmom 10\n```\n", - "html_filename": "fix_nve_dotc_langevin.html", - "short_description": "Apply a rigid-body Langevin-type integrator of the kind \"Langevin C\"\nas described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack5>`to a group of atoms, which models an interaction with an implicit backgroundsolvent", - "description": "Apply a rigid-body Langevin-type integrator of the kind \"Langevin C\"\nas described in :ref:[(Davidchack) ](https://docs.lammps.org/Davidchack5>`to a group of atoms, which models an interaction with an implicit backgroundsolvent. This command performs Brownian dynamics (BD)via a technique that splits the integration into a deterministic Hamiltonianpart and the Ornstein-Uhlenbeck process for noise and damping.The quaternion degrees of freedom are updated though an evolutionoperator which performs a rotation in quaternion space, preservesthe quaternion norm and is akin to **Miller5**.In terms of syntax this command has been closely modelled on the[fix langevin ](https://docs.lammps.org/fix_langevin.html) and its *angmom* option. But it combinesthe [fix nve ](https://docs.lammps.org/fix_nve.html) and the [fix langevin ](https://docs.lammps.org/fix_langevin.html) inone single command. The main feature is improved stabilityover the standard integrator, permitting slightly larger timestep sizes.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >Unlike the [fix langevin ](https://docs.lammps.org/fix_langevin.html) this command performs > also time integration of the translational and quaternion degrees of freedom. > The total force on each atom will have the form:\\[\\begin{align*} F = & F_c + F_f + F_r \\\\ F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\ F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\\(F_c\\) is the conservative force computed via the usualinter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html),[bond_style ](https://docs.lammps.org/bond_style.html), etc). The \\(F_f\\) and \\(F_r\\)terms are implicitly taken into account by this fix on a per-particlebasis.\\(F_f\\) is a frictional drag or viscous damping term proportional tothe particle's velocity. The proportionality constant for each atom iscomputed as \\(\\frac{m}{\\mathrm{damp}}\\), where *m* is the mass ofthe particle and damp is the damping factor specified by the user.\\(F_r\\) is a force due to solvent atoms at a temperature \\(T\\)randomly bumping into the particle. As derived from thefluctuation/dissipation theorem, its magnitude as shown above isproportional to \\(\\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}}\\), where\\(k_B\\) is the Boltzmann constant, \\(T\\) is the desired temperature,*m* is the mass of the particle, *dt* is the timestep size, and damp isthe damping factor. Random numbers are used to randomize the directionand magnitude of this force as described in **Dunweg5**,where a uniform random number is used (instead of a Gaussian randomnumber) for speed.----------*Tstart* and *Tstop* have to be constant values, i.e. they cannotbe variables. If used together with the oxDNA force field forcoarse-grained simulation of DNA please note that T = 0.1 in oxDNA unitscorresponds to T = 300 K.The *damp* parameter is specified in time units and determines howrapidly the temperature is relaxed. For example, a value of 0.03means to relax the temperature in a timespan of (roughly) 0.03 timeunits \\(\\tau\\) (see the [units ](https://docs.lammps.org/units.html) command).The damp factor can be thought of as inversely related to theviscosity of the solvent, i.e. a small relaxation time implies ahigh-viscosity solvent and vice versa. See the discussion about gammaand viscosity in the documentation for the [fix viscous ](https://docs.lammps.org/fix_viscous.html) command for more details.Note that the value 78.9375 in the second example above correspondsto a diffusion constant, which is about an order of magnitude largerthan realistic ones. This has been used to sample configurations fasterin Brownian dynamics simulations.The random # *seed* must be a positive integer. A Marsaglia randomnumber generator is used. Each processor uses the input seed togenerate its own unique seed and its own stream of random numbers.Thus the dynamics of the system will not be identical on two runs ondifferent numbers of processors.The keyword/value option has to be used in the following way:This fix has to be used together with the *angmom* keyword. Theparticles are always considered to have a finite size.The keyword *angmom* enables thermostatting of the rotational degrees offreedom in addition to the usual translational degrees of freedom.The scale factor after the *angmom* keyword gives the ratio of therotational to the translational friction coefficient.An example input file can be found in examples/PACKAGES/cgdna/examples/duplex2/.Further details of the implementation and stability of the integrators are contained in **Henrich5**.The preprint version of the article can be found `here ` package and the MOLECULE and ASPHERE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nve/dot ](https://docs.lammps.org/fix_nve_dot.html), [bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/strain = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/ulsph/strain\n```\n", + "html_filename": "compute_smd_ulsph_strain.html", + "short_description": "Define a computation that outputs the logarithmic strain tensor", + "description": "Define a computation that outputs the logarithmic strain tensor. for\nparticles interacting via the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle tensor, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n\nThe per-particle tensor values will be given dimensionless, see\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", + "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" }, { "command": [ - "fix sgcmc" + "compute omega/chunk" ], "syntax": [ - "fix ID group-ID sgcmc every_nsteps swap_fraction temperature deltamu ..." + "compute ID group-ID omega/chunk chunkID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -31336,120 +30402,139 @@ export const command_docs = [ "choices": [] }, { - "arg": "sgcmc", + "arg": "omega/chunk", "type": 1, "choices": [] }, { - "arg": "every_nsteps", - "type": 2, - "choices": [] - }, - { - "arg": "swap_fraction", - "type": 2, - "choices": [] - }, - { - "arg": "temperature", - "type": 2, - "choices": [] - }, - { - "arg": "deltamu", + "arg": "chunkID", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* sgcmc = style name of this fix command\n* every_nsteps = number of MD steps between MC cycles\n* swap_fraction = fraction of a full MC cycle carried out at each call (a value of 1.0 will perform as many trial moves as there are atoms)\n* temperature = temperature that enters Boltzmann factor in Metropolis criterion (usually the same as MD temperature)\n* deltamu = `N-1` chemical potential differences \\(\\mu_1-\\mu_2, \\ldots, \\mu_1-\\mu_N\\) (`N` is the number of atom types)\n* Zero or more keyword/value pairs may be appended to fix definition line: \n *      keyword = variance or randseed or window_moves or window_size \n       variance kappa conc1 [conc2] ... [concN] \n       kappa = variance constraint parameter \n       `c_2`, `c_3`,..., `c_N` = `N-1` target concentration fractions \n       randseed N \n       N = seed for pseudo random number generator \n       window_moves N \n       N = number of times sampling window is moved during one MC cycle \n       window_size frac \n       frac = size of sampling window (must be between 0.5 and 1.0) \n", - "examples": "\n```lmps\nfix mc all sgcmc 50 0.1 400.0 -0.55\nfix vc all sgcmc 20 0.2 700.0 -0.7 randseed 324234 variance 2000.0 0.05\nfix 2 all sgcmc 20 0.1 700.0 -0.7 window_moves 20\n```\n", - "html_filename": "fix_sgcmc.html", - "short_description": "\nThis command allows to carry out parallel hybrid molecular\ndynamics/Monte Carlo (MD/MC) simulations using the algorithms described\nin **Sadigh1**", - "description": "\nThis command allows to carry out parallel hybrid molecular\ndynamics/Monte Carlo (MD/MC) simulations using the algorithms described\nin **Sadigh1**. Simulations can be carried out in either\nthe semi-grand canonical (SGC) or variance constrained semi-grand\ncanonical (VC-SGC) ensemble **Sadigh2**. Only atom type\nswaps are performed by the SGCMC fix. Relaxations are accounted for by\nthe molecular dynamics integration steps.\n\nThis fix can be used with standard multi-element EAM potentials\n([pair styles eam/alloy or eam/fs ](https://docs.lammps.org/pair_eam.html))\n\nThe SGCMC fix can handle Finnis/Sinclair type EAM potentials where\n\\(\\rho(r)\\) is atom-type specific, such that different elements can\ncontribute differently to the total electron density at an atomic site\ndepending on the identity of the element at that atomic site.\n\n------------\n\nIf this fix is applied, the regular MD simulation will be interrupted in\ndefined intervals to carry out a fraction of a Monte Carlo (MC)\ncycle. The interval is set using the parameter *every_nsteps* which\ndetermines how many MD integrator steps are taken between subsequent\ncalls to the MC routine.\n\nIt is possible to carry out pure lattice MC simulations by setting\n*every_nsteps* to 1 and not defining an integration fix such as NVE,\nNPT etc. In that case, the particles will not move and only the MC\nroutine will be called to perform atom type swaps.\n\nThe parameter *swap_fraction* determines how many MC trial steps are carried\nout every time the MC routine is entered. It is measured in units of full MC\ncycles where one full cycle, *swap_fraction=1*, corresponds to as many MC\ntrial steps as there are atoms.\n\n------------\n\nThe parameter *temperature* specifies the temperature that is used\nto evaluate the Metropolis acceptance criterion. While it usually\nshould be set to the same value as the MD temperature there are cases\nwhen it can be useful to use two different values for at least part of\nthe simulation, e.g., to speed up equilibration at low temperatures.\n\n------------\n\nThe parameter *deltamu* is used to set the chemical potential differences\nin the SGC MC algorithm (see Eq. 16 in **Sadigh1**).\nThe `N-1` differences are defined as \\(\\mu_1-\\mu_2, \\ldots, \\mu_1-\\mu_N\\),\nwhere `N` is the number of atom types.\n\n------------\n\nThe variance-constrained SGC MC algorithm is activated if the keyword\n*variance* is used. In that case the fix parameter *deltamu* determines\nthe effective average constraint in the parallel VC-SGC MC algorithm\n(parameter \\(\\delta\\mu_0\\) in Eq. (20) of **Sadigh1**). The parameter *kappa* specifies the variance constraint\n(see Eqs. (20-21) in **Sadigh1**).\nThe parameter *conc* sets the `N-1` target atomic concentration\nfractions (parameter \\(c_0\\) in Eqs. (20-21) of **Sadigh1**)\n\\(0 \\le c_2, \\ldots, c_N \\le 1\\), with\n\\(c_1 = 1 - \\Sigma_{i=2}^N c_i\\).\nWhen the simulation includes `N` atom types (elements),\n`N-1` concentration values must be specified.\n\n------------\n\nThere are several technical parameters that can be set via optional flags.\n\n*randseed* is expected to be a positive integer number and is used\nto initialize the random number generator on each processor.\n\n*window_size* controls the size of the sampling window in a parallel MC\nsimulation. The size has to lie between 0.5 and 1.0. Normally, this\nparameter should be left unspecified which instructs the code to choose\nthe optimal window size automatically (see Sect. III.B and Figure 6 in\n**Sadigh1** for details).\n\nThe number of times the window is moved during a MC cycle is set using\nthe parameter *window_moves* (see Sect. III.B in **Sadigh1** for details).\n\n------------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to restart files.\n\nThe MC routine keeps track of the global concentration(s) as well as the\nnumber of accepted and rejected trial swaps during each MC step. These\nvalues are provided by the sgcmc fix in the form of a global vector that\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html)\ncomponents of the vector represent the following quantities:\n\n* 1 = The absolute number of accepted trial swaps during the last MC step\n* 2 = The absolute number of rejected trial swaps during the last MC step\n* 3 = Current global concentration `c_1` (= number of atoms of type 1 / total number of atoms)\n* 4 = Current global concentration `c_2` (= number of atoms of type 2 / total number of atoms)\n* ...\n* N+2 = Current global concentration `c_N` (= number of atoms of type *N* / total number of atoms)\n\nThe vector values calculated by this fix are \"intensive\".\n\n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n \n**(Sadigh2)** B. Sadigh and P. Erhart, Phys. Rev. B **86**, 134204 (2012) \n \n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n \n**(Sadigh1)** B. Sadigh, P. Erhart, A. Stukowski, A. Caro, E. Martinez, and L. Zepeda-Ruiz, Phys. Rev. B **85**, 184203 (2012) \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis fix style requires an [atom style ](https://docs.lammps.org/atom_style.html) with per atom\ntype masses.\n\nAt present the fix provides optimized subroutines for EAM type\npotentials (see above) that calculate potential energy changes due to\n*local* atom type swaps very efficiently. Other potentials are\nsupported by using the generic potential functions. This, however, will\nlead to exceedingly slow simulations since it implies that the\nenergy of the *entire* system is recomputed at each MC trial step. If\nother potentials are to be used it is strongly recommended to modify and\noptimize the existing generic potential functions for this purpose.\nAlso, the generic energy calculation can not be used for parallel\nexecution i.e. it only works with a single MPI process.\n\n------------\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* omega/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid omega/chunk molchunk\n```\n", + "html_filename": "compute_omega_chunk.html", + "short_description": "Define a computation that calculates the angular velocity (omega) of\nmultiple chunks of atoms", + "description": "Define a computation that calculates the angular velocity (omega) of\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the three components of the angular velocity\nvector for each chunk via the formula\n\\(\\vec L = \\mathrm{I}\\cdot \\vec\\omega\\), where \\(\\vec L\\) is the\nangular momentum vector of the chunk, \\(\\mathrm{I}\\) is its moment of\ninertia tensor, and \\(\\omega\\) is the angular velocity of the chunk.\nThe calculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's angular\n > velocity in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute omega/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all omega/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is 3 for the three\n(*x*, *y*, *z*) components of the angular velocity for each chunk.\nThese values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nvelocity/distance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[variable omega() function ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "dihedral_style class2", - "dihedral_style class2/omp", - "dihedral_style class2/kk" + "pair_style polymorphic" ], "syntax": [ - "dihedral_style class2" + "pair_style polymorphic" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "class2", - "type": 3, - "choices": [ - "class2", - "class2/omp", - "class2/kk" - ] + "arg": "polymorphic", + "type": 1, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style class2\ndihedral_coeff 1 100 75 100 70 80 60\ndihedral_coeff * mbt 3.5945 0.1704 -0.5490 1.5228\ndihedral_coeff * ebt 0.3417 0.3264 -0.9036 0.1368 0.0 -0.8080 1.0119 1.1010\ndihedral_coeff 2 at 0.0 -0.1850 -0.7963 -2.0220 0.0 -0.3991 110.2453 105.1270\ndihedral_coeff * aat -13.5271 110.2453 105.1270\ndihedral_coeff * bb13 0.0 1.0119 1.1010\n```\n", - "html_filename": "dihedral_class2.html", - "short_description": "The *class2* dihedral style uses the potential\n\\[\\begin{align*} \n E = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\\\\n E_d = & \\sum_{n=1}^{3} K_n [ 1 - \\cos (n \\phi - \\phi_n) ] \\\\\n E_{mbt} = & (r_{jk} - r_2) [ A_1 \\cos (\\phi) + A_2 \\cos (2\\phi) + A_3 \\cos (3\\phi) ] \\\\\n E_{ebt} = & (r_{ij} - r_1) [ B_1 \\cos (\\phi) + B_2 \\cos (2\\phi) + B_3 \\cos (3\\phi) ] + \\\\\n & (r_{kl} - r_3) [ C_1 \\cos (\\phi) + C_2 \\cos (2\\phi) + C_3 \\cos (3\\phi) ] \\\\\n E_{at} = & (\\theta_{ijk} - \\theta_1) [ D_1 \\cos (\\phi) + D_2 \\cos (2\\phi) + D_3 \\cos (3\\phi) ] + \\\\\n & (\\theta_{jkl} - \\theta_2) [ E_1 \\cos (\\phi) + E_2 \\cos (2\\phi) + E_3 \\cos (3\\phi) ] \\\\\n E_{aat} = & M (\\theta_{ijk} - \\theta_1) (\\theta_{jkl} - \\theta_2) \\cos (\\phi) \\\\\n E_{bb13} = & N (r_{ij} - r_1) (r_{kl} - r_3) \\end{align*} \\]\nwhere \\(E_d\\) is the dihedral term, \\(E_{mbt}\\) is a middle-bond-torsion term,\n\\(E_{ebt}\\) is an end-bond-torsion term, \\(E_{at}\\) is an angle-torsion term, \\(E_{aat}\\)\nis an angle-angle-torsion term, and \\(E_{bb13}\\) is a bond-bond-13 term", - "description": "The *class2* dihedral style uses the potential\n\\[\\begin{align*} \n E = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\\\\n E_d = & \\sum_{n=1}^{3} K_n [ 1 - \\cos (n \\phi - \\phi_n) ] \\\\\n E_{mbt} = & (r_{jk} - r_2) [ A_1 \\cos (\\phi) + A_2 \\cos (2\\phi) + A_3 \\cos (3\\phi) ] \\\\\n E_{ebt} = & (r_{ij} - r_1) [ B_1 \\cos (\\phi) + B_2 \\cos (2\\phi) + B_3 \\cos (3\\phi) ] + \\\\\n & (r_{kl} - r_3) [ C_1 \\cos (\\phi) + C_2 \\cos (2\\phi) + C_3 \\cos (3\\phi) ] \\\\\n E_{at} = & (\\theta_{ijk} - \\theta_1) [ D_1 \\cos (\\phi) + D_2 \\cos (2\\phi) + D_3 \\cos (3\\phi) ] + \\\\\n & (\\theta_{jkl} - \\theta_2) [ E_1 \\cos (\\phi) + E_2 \\cos (2\\phi) + E_3 \\cos (3\\phi) ] \\\\\n E_{aat} = & M (\\theta_{ijk} - \\theta_1) (\\theta_{jkl} - \\theta_2) \\cos (\\phi) \\\\\n E_{bb13} = & N (r_{ij} - r_1) (r_{kl} - r_3) \\end{align*} \\]\nwhere \\(E_d\\) is the dihedral term, \\(E_{mbt}\\) is a middle-bond-torsion term,\n\\(E_{ebt}\\) is an end-bond-torsion term, \\(E_{at}\\) is an angle-torsion term, \\(E_{aat}\\)\nis an angle-angle-torsion term, and \\(E_{bb13}\\) is a bond-bond-13 term.\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are equilibrium angles and \\(r_1\\), \\(r_2\\), and\n\\(r_3\\) are equilibrium bond lengths.\n\nSee **dihedral-Sun** for a description of the COMPASS class2 force field.\n\nCoefficients for the \\(E_d\\), \\(E_{mbt}\\), \\(E_{ebt}\\),\n\\(E_{at}\\), \\(E_{aat}\\), and \\(E_{bb13}\\) formulas must be\ndefined for each dihedral type via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand as in the example above, or in the data file\nor restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 6 coefficients for the \\(E_d\\) formula:\n\n* \\(K_1\\) (energy)\n* \\(\\phi_1\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(\\phi_2\\) (degrees)\n* \\(K_3\\) (energy)\n* \\(phi_3\\) (degrees)\n\nFor the \\(E_{mbt}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n5 coefficients, the first of which is *mbt* to indicate they are\nMiddleBondTorsion coefficients. In a data file, these coefficients\nshould be listed under a *MiddleBondTorsion Coeffs* heading and you\nmust leave out the *mbt*, i.e. only list 4 coefficients after the\ndihedral type.\n\n* *mbt*\n* \\(A_1\\) (energy/distance)\n* \\(A_2\\) (energy/distance)\n* \\(A_3\\) (energy/distance)\n* \\(r_2\\) (distance)\n\nFor the \\(E_{ebt}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n9 coefficients, the first of which is *ebt* to indicate they are\nEndBondTorsion coefficients. In a data file, these coefficients\nshould be listed under a *EndBondTorsion Coeffs* heading and you must\nleave out the *ebt*, i.e. only list 8 coefficients after the dihedral\ntype.\n\n* *ebt*\n* \\(B_1\\) (energy/distance)\n* \\(B_2\\) (energy/distance)\n* \\(B_3\\) (energy/distance)\n* \\(C_1\\) (energy/distance)\n* \\(C_2\\) (energy/distance)\n* \\(C_3\\) (energy/distance)\n* \\(r_1\\) (distance)\n* \\(r_3\\) (distance)\n\nFor the \\(E_{at}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n9 coefficients, the first of which is *at* to indicate they are\nAngleTorsion coefficients. In a data file, these coefficients should\nbe listed under a *AngleTorsion Coeffs* heading and you must leave out\nthe *at*, i.e. only list 8 coefficients after the dihedral type.\n\n* *at*\n* \\(D_1\\) (energy)\n* \\(D_2\\) (energy)\n* \\(D_3\\) (energy)\n* \\(E_1\\) (energy)\n* \\(E_2\\) (energy)\n* \\(E_3\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are specified in degrees, but\nLAMMPS converts them to radians internally; hence the various\n\\(D\\) and \\(E\\) are effectively energy per radian.\n\nFor the \\(E_{aat}\\) formula, each line in a [dihedral_coeff](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists 4 coefficients,\nthe first of which is *aat* to indicate they are AngleAngleTorsion\ncoefficients. In a data file, these coefficients should be listed\nunder a *AngleAngleTorsion Coeffs* heading and you must leave out the\n*aat*, i.e. only list 3 coefficients after the dihedral type.\n\n* *aat*\n* \\(M\\) (energy)\n* \\(\\theta_1\\) (degrees)\n* \\(\\theta_2\\) (degrees)\n\n\\(\\theta_1\\) and \\(\\theta_2\\) are specified in degrees, but\nLAMMPS converts them to radians internally; hence \\(M\\) is\neffectively energy per radian\\^2.\n\nFor the \\(E_{bb13}\\) formula, each line in a\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command in the input script lists\n4 coefficients, the first of which is *bb13* to indicate they are\nBondBond13 coefficients. In a data file, these coefficients should be\nlisted under a *BondBond13 Coeffs* heading and you must leave out the\n*bb13*, i.e. only list 3 coefficients after the dihedral type.\n\n* *bb13*\n* \\(N\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_3\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(dihedral-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nCLASS2 package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "style = polymorphic \n", + "examples": "\n```lmps\npair_style polymorphic\npair_coeff * * FeCH_BOP_I.poly Fe C H\npair_coeff * * TlBr_msw.poly Tl Br\npair_coeff * * CuTa_eam.poly Cu Ta\npair_coeff * * GaN_tersoff.poly Ga N\npair_coeff * * GaN_sw.poly Ga N\n```\n", + "html_filename": "pair_polymorphic.html", + "short_description": "The *polymorphic* pair style computes a 3-body free-form potential\n(**Zhou3**) for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2}\\sum_{i=1}^{i=N}\\sum_{j=1}^{j=N}\\left[\\left(1-\\delta_{ij}\\right)\\cdot U_{IJ}\\left(r_{ij}\\right)-\\left(1-\\eta_{ij}\\right)\\cdot F_{IJ}\\left(X_{ij}\\right)\\cdot V_{IJ}\\left(r_{ij}\\right)\\right] \\\\\n X_{ij} & = \\sum_{k=i_1,k\\neq j}^{i_N}W_{IK}\\left(r_{ik}\\right)\\cdot G_{JIK}\\left(\\cos\\theta_{jik}\\right)\\cdot P_{JIK}\\left(\\Delta r_{jik}\\right) \\\\\n \\Delta r_{jik} & = r_{ij}-\\xi_{IJ}\\cdot r_{ik} \\end{align*} \\]\nwhere I, J, K represent species of atoms i, j, and k, \\(i_1, ...,\ni_N\\) represents a list of *i* 's neighbors, \\(\\delta_{ij}\\) is a\nDirac constant (i.e., \\(\\delta_{ij} = 1\\) when \\(i = j\\), and\n\\(\\delta_{ij} = 0\\) otherwise), \\(\\eta_{ij}\\) is similar\nconstant that can be set either to \\(\\eta_{ij} = \\delta_{ij}\\) or\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\) depending on the potential type,\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\)\nare pair functions, \\(G_{JIK}(\\cos\\theta_{jik})\\) is an angular\nfunction, \\(P_{JIK}(\\Delta r_{jik})\\) is a function of atomic\nspacing differential \\(\\Delta r_{jik} = r_{ij} - \\xi_{IJ} \\cdot\nr_{ik}\\) with \\(\\xi_{IJ}\\) being a pair-dependent parameter, and\n\\(F_{IJ}(X_{ij})\\) is a function of the local environment variable\n\\(X_{ij}\\)", + "description": "The *polymorphic* pair style computes a 3-body free-form potential\n(**Zhou3**) for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2}\\sum_{i=1}^{i=N}\\sum_{j=1}^{j=N}\\left[\\left(1-\\delta_{ij}\\right)\\cdot U_{IJ}\\left(r_{ij}\\right)-\\left(1-\\eta_{ij}\\right)\\cdot F_{IJ}\\left(X_{ij}\\right)\\cdot V_{IJ}\\left(r_{ij}\\right)\\right] \\\\\n X_{ij} & = \\sum_{k=i_1,k\\neq j}^{i_N}W_{IK}\\left(r_{ik}\\right)\\cdot G_{JIK}\\left(\\cos\\theta_{jik}\\right)\\cdot P_{JIK}\\left(\\Delta r_{jik}\\right) \\\\\n \\Delta r_{jik} & = r_{ij}-\\xi_{IJ}\\cdot r_{ik} \\end{align*} \\]\nwhere I, J, K represent species of atoms i, j, and k, \\(i_1, ...,\ni_N\\) represents a list of *i* 's neighbors, \\(\\delta_{ij}\\) is a\nDirac constant (i.e., \\(\\delta_{ij} = 1\\) when \\(i = j\\), and\n\\(\\delta_{ij} = 0\\) otherwise), \\(\\eta_{ij}\\) is similar\nconstant that can be set either to \\(\\eta_{ij} = \\delta_{ij}\\) or\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\) depending on the potential type,\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\)\nare pair functions, \\(G_{JIK}(\\cos\\theta_{jik})\\) is an angular\nfunction, \\(P_{JIK}(\\Delta r_{jik})\\) is a function of atomic\nspacing differential \\(\\Delta r_{jik} = r_{ij} - \\xi_{IJ} \\cdot\nr_{ik}\\) with \\(\\xi_{IJ}\\) being a pair-dependent parameter, and\n\\(F_{IJ}(X_{ij})\\) is a function of the local environment variable\n\\(X_{ij}\\). This generic potential is fully defined once the\nconstants \\(\\eta_{ij}\\) and \\(\\xi_{IJ}\\), and the six functions\n\\(U_{IJ}(r_{ij})\\), \\(V_{IJ}(r_{ij})\\), \\(W_{IK}(r_{ik})\\),\n\\(G_{JIK}(\\cos\\theta_{jik})\\), \\(P_{JIK}(\\Delta r_{jik})\\), and\n\\(F_{IJ}(X_{ij})\\) are given. Here LAMMPS uses a global parameter\n\\(\\eta\\) to represent \\(\\eta_{ij}\\). When \\(\\eta = 1\\),\n\\(\\eta_{ij} = 1 - \\delta_{ij}\\), otherwise \\(\\eta_{ij} =\n\\delta_{ij}\\). Additionally, \\(\\eta = 3\\) indicates that the function\n\\(P_{JIK}(\\Delta r)\\) depends on species I, J and K, otherwise\n\\(P_{JIK}(\\Delta r) = P_{IK}(\\Delta r)\\) only depends on species I\nand K. Note that these six functions are all one dimensional, and hence\ncan be provided in a tabular form. This allows users to design different\npotentials solely based on a manipulation of these functions. For\ninstance, the potential reduces to a Stillinger-Weber potential\n(**SW**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = A_{IJ}\\cdot\\epsilon_{IJ}\\cdot \\left(\\frac{\\sigma_{IJ}}{r}\\right)^q\\cdot \\left[B_{IJ}\\cdot \\left(\\frac{\\sigma_{IJ}}{r}\\right)^{p-q}-1\\right]\\cdot exp\\left(\\frac{\\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\sqrt{\\lambda_{IJ}\\cdot \\epsilon_{IJ}}\\cdot exp\\left(\\frac{\\gamma_{IJ}\\cdot \\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n F_{IJ}\\left(X\\right) & = -X \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = \\sqrt{\\lambda_{IJ}\\cdot \\epsilon_{IJ}}\\cdot exp\\left(\\frac{\\gamma_{IJ}\\cdot \\sigma_{IJ}}{r-a_{IJ}\\cdot \\sigma_{IJ}}\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\left(\\cos\\theta+\\frac{1}{3}\\right)^2 \\end{align*} \\]\nThe potential reduces to a Tersoff potential (**Tersoff**\nor **poly-Albe**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = \\frac{D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{2S_{IJ}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\frac{S_{IJ}\\cdot D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{\\frac{2}{S_{IJ}}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = \\left(1+X\\right)^{-\\frac{1}{2}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = exp\\left(2\\mu_{IK}\\cdot \\Delta r\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\gamma_{IK}\\left[1+\\frac{c_{IK}^2}{d_{IK}^2}-\\frac{c_{IK}^2}{d_{IK}^2+\\left(h_{IK}+\\cos\\theta\\right)^2}\\right] \\end{align*} \\]\nwhere\n\\[\n f_{c,IJ}\\left(r\\right)=\\left\\{\\begin{array}{l}\n 1, r\\leq R_{IJ}-D_{IJ} \\\\\n \\frac{1}{2}+\\frac{1}{2}cos\\left[\\frac{\\pi\\left(r+D_{IJ}-R_{IJ}\\right)}{2D_{IJ}}\\right], R_{IJ}-D_{IJ} < r < R_{IJ}+D_{IJ} \\\\\n 0, r \\geq R_{IJ}+D_{IJ}\n \\end{array}\\right.\\]\nThe potential reduces to a modified Stillinger-Weber potential\n(**Zhou3**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = \\varphi_{R,IJ}\\left(r\\right)-\\varphi_{A,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = u_{IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = -X \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = u_{IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = g_{JIK}\\left(\\cos\\theta\\right) \\end{align*} \\]\nThe potential reduces to a Rockett-Tersoff potential (**Wang3**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 2~or~\\eta = 0),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = A_{IJ}exp\\left(-\\lambda_{1,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right)f_{ca,IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = \\left\\{\\begin{array}{l}B_{IJ}exp\\left(-\\lambda_{2,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right)+ \\\\ A_{IJ}exp\\left(-\\lambda_{1,IJ}\\cdot r\\right)f_{c,IJ}\\left(r\\right) \\left[1-f_{ca,IJ}\\left(r\\right)\\right]\\end{array} \\right\\} \\\\\n F_{IJ}\\left(X\\right) & = \\left[1+\\left(\\beta_{IJ}X\\right)^{n_{IJ}}\\right]^{-\\frac{1}{2n_{IJ}}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = exp\\left(\\lambda_{3,IK}\\cdot \\Delta r^3\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = 1+\\frac{c_{IK}^2}{d_{IK}^2}-\\frac{c_{IK}^2}{d_{IK}^2+\\left(h_{IK}+\\cos\\theta\\right)^2} \\end{align*} \\]\nwhere \\(f_{ca,IJ}(r)\\) is similar to the \\(f_{c,IJ}(r)\\) defined\nabove:\n\\[\n f_{ca,IJ}\\left(r\\right)=\\left\\{\\begin{array}{l}\n 1, r\\leq R_{a,IJ}-D_{a,IJ} \\\\\n \\frac{1}{2}+\\frac{1}{2}cos\\left[\\frac{\\pi\\left(r+D_{a,IJ}-R_{a,IJ}\\right)}{2D_{a,IJ}}\\right], R_{a,IJ}-D_{a,IJ} < r < R_{a,IJ}+D_{a,IJ} \\\\\n 0, r \\geq R_{a,IJ}+D_{a,IJ}\n \\end{array}\\right.\\]\nThe potential becomes the embedded atom method (**poly-Daw**)\nif we set\n\\[\\begin{align*} \n \\eta_{ij} & = 1-\\delta_{ij} (\\eta = 1),\\xi_{IJ}=0 \\\\\n U_{IJ}\\left(r\\right) & = \\phi_{IJ}\\left(r\\right) \\\\\n V_{IJ}\\left(r\\right) & = 1 \\\\\n F_{II}\\left(X\\right) & = -2F_I\\left(X\\right) \\\\\n P_{JIK}\\left(\\Delta r\\right) & = P_{IK}\\left(\\Delta r\\right) = 1 \\\\\n W_{IJ}\\left(r\\right) & = f_{J}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = 1 \\end{align*} \\]\nIn the embedded atom method case, \\(\\phi_{IJ}(r)\\) is the pair\nenergy, \\(F_I(X)\\) is the embedding energy, *X* is the local\nelectron density, and \\(f_J(r)\\) is the atomic electron density\nfunction.\n\nThe potential reduces to another type of Tersoff potential (**Zhou4**) if we set\n\\[\\begin{align*} \n \\eta_{ij} & = \\delta_{ij} (\\eta = 3),\\xi_{IJ}=1 \\\\\n U_{IJ}\\left(r\\right) & = \\frac{D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{2S_{IJ}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\cdot T_{IJ}\\left(r\\right)+V_{ZBL,IJ}\\left(r\\right)\\left[1-T_{IJ}\\left(r\\right)\\right] \\\\\n V_{IJ}\\left(r\\right) & = \\frac{S_{IJ}\\cdot D_{e,IJ}}{S_{IJ}-1}\\cdot exp\\left[-\\beta_{IJ}\\sqrt{\\frac{2}{S_{IJ}}}\\left(r-r_{e,IJ}\\right)\\right]\\cdot f_{c,IJ}\\left(r\\right) \\cdot T_{IJ}\\left(r\\right) \\\\\n F_{IJ}\\left(X\\right) & = \\left(1+X\\right)^{-\\frac{1}{2}} \\\\\n P_{JIK}\\left(\\Delta r\\right) & = \\omega_{JIK} \\cdot exp\\left(\\alpha_{JIK}\\cdot \\Delta r\\right) \\\\\n W_{IJ}\\left(r\\right) & = f_{c,IJ}\\left(r\\right) \\\\\n G_{JIK}\\left(\\cos\\theta\\right) & = \\gamma_{JIK}\\left[1+\\frac{c_{JIK}^2}{d_{JIK}^2}-\\frac{c_{JIK}^2}{d_{JIK}^2+\\left(h_{JIK}+\\cos\\theta\\right)^2}\\right] \\\\\n T_{IJ}\\left(r\\right) & = \\frac{1}{1+exp\\left[-b_{f,IJ}\\left(r-r_{f,IJ}\\right)\\right]} \\\\\n V_{ZBL,IJ}\\left(r\\right) & = 14.4 \\cdot \\frac{Z_I \\cdot Z_J}{r}\\sum_{k=1}^{4}\\mu_k \\cdot exp\\left[-\\nu_k \\left(Z_I^{0.23}+Z_J^{0.23}\\right) r\\right] \\end{align*} \\]\nwhere \\(f_{c,IJ}(r)\\) is the same as defined above. This Tersoff\npotential differs from the one above because the \\(P_{JIK}(\\Delta\nr)\\) function is now dependent on all three species I, J, and K.\n\nIf the tabulated functions are created using the parameters of\nStillinger-Weber, Tersoff, and EAM potentials, the polymorphic pair\nstyle will produce the same global properties (energies and stresses)\nand the same forces as the [sw ](https://docs.lammps.org/pair_sw.html), [tersoff](https://docs.lammps.org/pair_tersoff.html), and [eam ](https://docs.lammps.org/pair_eam.html) pair styles. The polymorphic\npair style also produces the same per-atom properties (energies and\nstresses) as the corresponding [tersoff ](https://docs.lammps.org/pair_tersoff.html) and\n[eam ](https://docs.lammps.org/pair_eam.html) pair styles. However, due to a different\npartitioning of global properties to per-atom properties, the\npolymorphic pair style will produce different per-atom properties\n(energies and stresses) as the [sw ](https://docs.lammps.org/pair_sw.html) pair style. This does\nnot mean that polymorphic pair style is different from the sw pair\nstyle. It just means that the definitions of the atom energies and atom\nstresses are different.\n\nOnly a single pair_coeff command is used with the polymorphic pair style\nwhich specifies a potential file for all needed elements. These are\nmapped to LAMMPS atom types by specifying N additional arguments after\nthe filename in the pair_coeff command, where N is the number of LAMMPS\natom types:\n\n* filename\n* N element names = mapping of polymorphic potential elements to atom types\n\nSee the pair_coeff page for alternate ways to specify the path for\nthe potential file. Several files for polymorphic potentials are\nincluded in the potentials directory of the LAMMPS distribution. They\nhave a \"poly\" suffix.\n\nAs an example, imagine the GaN_tersoff.poly file has tabulated functions\nfor Ga-N tersoff potential. If your LAMMPS simulation has 4 atom types and\nyou want the first 3 to be Ga, and the fourth to be N, you would use the\nfollowing pair_coeff command:\n\n```lmps\npair_coeff * * GaN_tersoff.poly Ga Ga Ga N\n```\nThe first two arguments must be \\* \\* to span all pairs of LAMMPS atom\ntypes. The first three Ga arguments map LAMMPS atom types 1,2,3 to the\nGa element in the polymorphic file. The final N argument maps LAMMPS\natom type 4 to the N element in the polymorphic file. If a mapping value\nis specified as NULL, the mapping is not performed. This can be used\nwhen an polymorphic potential is used as part of the hybrid pair\nstyle. The NULL values are placeholders for atom types that will be used\nwith other potentials.\n\nPotential files in the potentials directory of the LAMMPS distribution\nhave a \".poly\" suffix. At the beginning of the files, an unlimited\nnumber of lines starting with '#' are used to describe the potential and\nare ignored by LAMMPS. The next line lists two numbers:\n\n```\nntypes eta\n```\nHere *ntypes* represent total number of species defined in the potential\nfile, \\(\\eta = 1\\) reduces to embedded atom method, \\(\\eta = 3\\)\nassumes a three species dependent \\(P_{JIK}(\\Delta r)\\) function,\nand all other values of \\(\\eta\\) assume a two species dependent\n\\(P_{JK}(\\Delta r)\\) function. The value of *ntypes* must equal the\ntotal number of different species defined in the pair_coeff command. The\nnext *ntypes* lines each lists two numbers and a character string\nrepresenting atomic number, atomic mass, and name of the species of the\nntypes elements:\n\n```\natomic-number atomic-mass element-name(1)\natomic-number atomic-mass element-name(2)\n...\natomic-number atomic-mass element-name(ntypes)\n```\nThe next line contains four numbers:\n\n```\nnr ntheta nx xmax\n```\nHere nr is total number of tabular points for radial functions U, V, W,\nP, ntheta is total number of tabular points for the angular function G,\nnx is total number of tabular points for the function F, xmax is a\nmaximum value of the argument of function F. Note that the pair\nfunctions \\(U_{IJ}(r)\\), \\(V_{IJ}(r)\\), \\(W_{IJ}(r)\\) are\nuniformly tabulated between 0 and cutoff distance of the IJ pair,\n\\(G_{JIK}(\\cos\\theta)\\) is uniformly tabulated between -1 and 1,\n\\(P_{JIK}(\\Delta r)\\) is uniformly tabulated between -rcmax and\nrcmax where rcmax is the maximum cutoff distance of all pairs, and\n\\(F_{IJ}(X)\\) is uniformly tabulated between 0 and xmax. Linear\nextrapolation is assumed if actual simulations exceed these ranges.\n\nThe next ntypes\\*(ntypes+1)/2 lines contain two numbers:\n\n```\ncut xi(1)\ncut xi(2)\n...\ncut xi(ntypes\\*(ntypes+1)/2)\n```\nHere cut means the cutoff distance of the pair functions, \"xi\" is\n\\(\\xi\\) as defined in the potential functions above. The\nntypes\\*(ntypes+1)/2 lines are related to the pairs according to the\nsequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then ij\n(cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ..., ntypes\n(i.e., the sequence of the ij pairs follows 11, 22, ..., 12, 13, 14,\n..., 23, 24, ...).\n\nIn the final blocks of the potential file, U, V, W, P, G, and F\nfunctions are listed sequentially. First, U functions are given for each\nof the ntypes\\*(ntypes+1)/2 pairs according to the sequence described\nabove. For each of the pairs, nr values are listed. Next, similar arrays\nare given for V and W functions. If P functions depend only on pair\nspecies, i.e., \\(\\eta \\neq 3\\), then P functions are also listed the\nsame way the next. If P functions depend on three species, i.e.,\n\\(\\eta = 3\\), then P functions are listed for all the\nntypes*ntypes*ntypes IJK triplets in a natural sequence I from 1 to\nntypes, J from 1 to ntypes, and K from 1 to ntypes (i.e., IJK = 111,\n112, 113, ..., 121, 122, 123 ..., 211, 212, ...). Next, G functions are\nlisted for all the ntypes*ntypes*ntypes IJK triplets similarly. For each\nof the G functions, ntheta values are listed. Finally, F functions are\nlisted for all the ntypes*(ntypes+1)/2 pairs in the same sequence as\ndescribed above. For each of the F functions, nx values are listed.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write their information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n----------\n\n**(Zhou3)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015). \n \n**(SW)** F. H. Stillinger, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985). \n \n**(Tersoff)** J. Tersoff, Phys. Rev. B, 39, 5566 (1989). \n \n**(poly-Albe)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, 66, 035205 (2002). \n \n**(Wang3)** J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991). \n \n**(poly-Daw)** M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984). \n \n**(Zhou4)** X. W. Zhou, M. E. Foster, J. A. Ronevich, and C. W. San Marchi, J. Comp. Chem., 41, 1299 (2020). \n ", + "restrictions": "If using create_atoms command, atomic masses must be defined in the\ninput script. If using read_data, atomic masses must be defined in the\natomic structure data file.\n\nThis pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair potential requires the [newton ](https://docs.lammps.org/newton.html) setting to be\n\"on\" for pair interactions.\n\nThe potential files provided with LAMMPS (see the potentials directory)\nare parameterized for metal [units ](https://docs.lammps.org/units.html). You can use any LAMMPS\nunits, but you would need to create your own potential files.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n\n----------\n\n.. _Zhou3:\n\n**(Zhou3)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).\n\n.. _Zhou4:\n\n**(Zhou4)** X. W. Zhou, M. E. Foster, J. A. Ronevich, and C. W. San Marchi, J. Comp. Chem., 41, 1299 (2020).\n\n.. _SW:\n\n**(SW)** F. H. Stillinger, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985).\n\n.. _Tersoff:\n\n**(Tersoff)** J. Tersoff, Phys. Rev. B, 39, 5566 (1989).\n\n.. _poly-Albe:\n\n**(Albe)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, 66, 035205 (2002).\n\n.. _Wang3:\n\n**(Wang)** J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991).\n\n.. _poly-Daw:\n\n**(Daw)** M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984).\n" }, { "command": [ - "pair_style born/gauss" + "fix_modify AtC mesh add_to_nodeset" ], "syntax": [ - "pair_style born/gauss cutoff" + "fix_modify mesh add_to_nodeset " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "born/gauss", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "mesh", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "add_to_nodeset", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* born/gauss = name of the pair style\n* cutoff = global cutoff (distance units) \n", - "examples": "\n```lmps\npair_style born/gauss 10.0\npair_coeff 1 1 8.2464e13 12.48 0.042644277 0.44 3.56\n```\n", - "html_filename": "pair_born_gauss.html", - "short_description": "\nPair style *born/gauss* computes pairwise interactions from a combination of a Born-Mayer\nrepulsive term and a Gaussian attractive term according to **Bomont**:\n\\[\n E = A_0 \\exp \\left( -\\alpha r \\right) - A_1 \\exp\\left[ -\\beta \\left(r - r_0 \\right)^2 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "\nPair style *born/gauss* computes pairwise interactions from a combination of a Born-Mayer\nrepulsive term and a Gaussian attractive term according to **Bomont**:\n\\[\n E = A_0 \\exp \\left( -\\alpha r \\right) - A_1 \\exp\\left[ -\\beta \\left(r - r_0 \\right)^2 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(A_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(A_1\\) (energy units)\n* \\(\\beta\\) (1/(distance units)^2)\n* \\(r_0\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all I,J\npairs must be specified explicitly.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table options are not relevant for\nthis pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bomont)** Bomont, Bretonnet, J. Chem. Phys. 124, 054504 (2006) \n ", - "restrictions": "This pair style is only enabled if LAMMPS was built with the EXTRA-PAIR\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style born ](https://docs.lammps.org/pair_born.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_nodeset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains the desired nodes to be added \n", + "examples": "\n```lmps\nfix_modify AtC mesh add_to_nodeset lbc -12.1 -11.9 -12 12 -12 12\n```\n", + "html_filename": "atc_mesh_add_to_nodeset.html", + "short_description": "Command to add nodes to an already existing FE nodeset", + "description": "Command to add nodes to an already existing FE nodeset.\n", + "restrictions": "None\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_nodeset ](https://docs.lammps.org/atc_mesh_create_nodeset.html)\n" }, { "command": [ - "group" + "compute inertia/chunk" ], "syntax": [ - "group ID style args" + "compute ID group-ID inertia/chunk chunkID" ], "args": [ [ { - "arg": "group", + "arg": "compute", "type": 1, "choices": [] }, @@ -31459,333 +30544,296 @@ export const command_docs = [ "choices": [] }, { - "arg": "static", - "type": 3, - "choices": [ - "delete", - "clear", - "empty", - "region", - "type", - "id", - "molecule", - "variable", - "include", - "subtract", - "union", - "intersect", - "dynamic", - "static" - ] + "arg": "group-ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "inertia/chunk", + "type": 1, + "choices": [] + }, + { + "arg": "chunkID", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-defined name of the group\n* style = delete or clear or empty or region or type or id or molecule or variable or include or subtract or union or intersect or dynamic or static \n *        delete = no args \n *        clear = no args \n *        empty = no args \n *        region args = region-ID \n *        type or id or molecule \n         args = list of one or more atom types (1-Ntypes or type label), atom IDs, or molecule IDs \n         any numeric entry in list can be a sequence formatted as A:B or A:B:C where \n         A = starting index, B = ending index, \n         C = increment between indices, 1 if not specified \n         args = logical value \n         logical = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" \n         value = an atom type (1-Ntypes or type label) or atom ID or molecule ID (depending on *style* ) \n         args = logical value1 value2 \n         logical = \"<>\" \n         value1,value2 = atom types or atom IDs or molecule IDs (depending on *style* ) \n *        variable args = variable-name \n *        include args = molecule \n         molecule = add atoms to group with same molecule ID as atoms already in group \n *        subtract args = two or more group IDs \n *        union args = one or more group IDs \n *        intersect args = two or more group IDs \n *        dynamic args = parent-ID keyword value ... \n         one or more keyword/value pairs may be appended \n         keyword = region or var or property or every \n         region value = region-ID \n         var value = name of variable \n         property value = name of custom integer or floating point vector \n         every value = N = update group every this many timesteps \n *        static = no args \n", - "examples": "\n```lmps\ngroup edge region regstrip\ngroup water type 3 4\ngroup water type OW HT\ngroup sub id 10 25 50\ngroup sub id 10 25 50 500:1000\ngroup sub id 100:10000:10\ngroup sub id <= 150\ngroup polyA molecule <> 50 250\ngroup hienergy variable eng\ngroup hienergy include molecule\ngroup boundary subtract all a2 a3\ngroup boundary union lower upper\ngroup boundary intersect upper flow\ngroup boundary delete\ngroup mine dynamic all region myRegion every 100\n```\n", - "html_filename": "group.html", - "short_description": "Identify a collection of atoms as belonging to a group", - "description": "Identify a collection of atoms as belonging to a group. The group ID\ncan then be used in other commands such as [fix ](https://docs.lammps.org/fix.html),\n[compute ](https://docs.lammps.org/compute.html), [dump ](https://docs.lammps.org/dump.html), or [velocity ](https://docs.lammps.org/velocity.html)\nto act on those atoms together.\n\nIf the group ID already exists, the group command adds the specified\natoms to the group.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >By default groups are static, meaning the atoms are permanently\n > assigned to the group. For example, if the *region* style is used to\n > assign atoms to a group, the atoms will remain in the group even if\n > they later move out of the region. As explained below, the *dynamic*\n > style can be used to make a group dynamic so that a periodic\n > determination is made as to which atoms are in the group. Since many\n > LAMMPS commands operate on groups of atoms, you should think carefully\n > about whether making a group dynamic makes sense for your model. \n > \n\nA group with the ID *all* is predefined. All atoms belong to this group.\nThis group cannot be deleted, or made dynamic.\n\nThe *delete* style removes the named group and un-assigns all atoms\nthat were assigned to that group. Since there is a restriction (see\nbelow) that no more than 32 groups can be defined at any time, the\n*delete* style allows you to remove groups that are no longer needed,\nso that more can be specified. You cannot delete a group if it has\nbeen used to define a current [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html)\nor [dump ](https://docs.lammps.org/dump.html).\n\nThe *clear* style un-assigns all atoms that were assigned to that\ngroup. This may be dangerous to do during a simulation run\n(e.g., using the [run every ](https://docs.lammps.org/run.html) command if a fix or compute or\nother operation expects the atoms in the group to remain constant), but\nLAMMPS does not check for this.\n\nThe *empty* style creates an empty group, which is useful for commands\nlike [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) or with complex scripts that add atoms\nto a group.\n\nThe *region* style puts all atoms in the region volume into the group.\nNote that this is a static one-time assignment. The atoms remain\nassigned (or not assigned) to the group even in they later move out of\nthe region volume.\n\nThe *type*, *id*, and *molecule* styles put all atoms with the\nspecified atom types, atom IDs, or molecule IDs into the group. These\nthree styles can use arguments specified in one of two formats.\n\nThe first format is a list of values (types or IDs). For example, the\nsecond command in the examples above puts all atoms of type 3 or 4 into\nthe group named *water* . Each numeric entry in the list can be a\ncolon-separated sequence ``A:B`` or ``A:B:C``, as in two of the examples\nabove. A \"sequence\" generates a sequence of values (types or IDs),\nwith an optional increment. The first example with ``500:1000`` has the\ndefault increment of 1 and would add all atom IDs from 500 to 1000\n(inclusive) to the group sub, along with 10, 25, and 50 since they also\nappear in the list of values. The second example with ``100:10000:10``\nuses an increment of 10 and would thus would add atoms IDs\n\\(100, 110, 120, \\dots, 9990, 10000\\) to the group sub.\n\nThe second format is a *logical* followed by one or two values (type\nor ID). The 7 valid logicals are listed above. All the logicals\nexcept ``<>`` take a single argument. The third example above adds all\natoms with IDs from 1 to 150 to the group named *sub* . The logical ``<>``\nmeans \"between\" and takes 2 arguments. The fourth example above adds all\natoms belonging to molecules with IDs from 50 to 250 (inclusive) to\nthe group named polyA. For the *type* style, type labels are converted into\nnumeric types before being evaluated.\n\nThe *variable* style evaluates a variable to determine which atoms to\nadd to the group. It must be an [atom-style variable ](https://docs.lammps.org/variable.html)\npreviously defined in the input script. If the variable evaluates\nto a non-zero value for a particular atom, then that atom is added\nto the specified group.\n\nAtom-style variables can specify formulas that include thermodynamic\nquantities, per-atom values such as atom coordinates, or per-atom\nquantities calculated by computes, fixes, or other variables. They\ncan also include Boolean logic where two numeric values are compared to\nyield a 1 or 0 (effectively a true or false). Thus, using the\n*variable* style is a general way to flag specific atoms to include\nor exclude from a group.\n\nFor example, these lines define a variable \"eatom\" that calculates the\npotential energy of each atom and includes it in the group if its\npotential energy is above the threshold value \\(-3.0\\).\n\n```lmps\ncompute 1 all pe/atom\ncompute 2 all reduce sum c_1\nthermo_style custom step temp pe c_2\nrun 0\n\nvariable eatom atom \"c_1 > -3.0\"\ngroup hienergy variable eatom\n```\nNote that these lines\n\n```lmps\ncompute 2 all reduce sum c_1\nthermo_style custom step temp pe c_2\nrun 0\n```\nare necessary to ensure that the \"eatom\" variable is current when the\ngroup command invokes it. Because the eatom variable computes the\nper-atom energy via the pe/atom compute, it will only be current if a\nrun has been performed which evaluated pairwise energies, and the\npe/atom compute was actually invoked during the run. Printing the\nthermodynamic info for compute 2 ensures that this is the case, since\nit sums the pe/atom compute values (in the reduce compute) to output\nthem to the screen. See the \"Variable Accuracy\" section of the\n[variable ](https://docs.lammps.org/variable.html) page for more details on ensuring that\nvariables are current when they are evaluated between runs.\n\nThe *include* style with its arg *molecule* adds atoms to a group that\nhave the same molecule ID as atoms already in the group. The molecule\nID = 0 is ignored in this operation, since it is assumed to flag\nisolated atoms that are not part of molecules. An example of where\nthis operation is useful is if the *region* style has been used\npreviously to add atoms to a group that are within a geometric region.\nIf molecules straddle the region boundary, then atoms outside the\nregion that are part of molecules with atoms inside the region will\nnot be in the group. Using the group command a second time with *include\nmolecule* will add those atoms that are outside the region to the\ngroup.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *include molecule* operation is relatively expensive in a\n > parallel sense. This is because it requires communication of relevant\n > molecule IDs between all the processors and each processor to loop\n > over its atoms once per processor, to compare its atoms to the list of\n > molecule IDs from every other processor. Hence it scales as N, rather\n > than N/P as most of the group operations do, where N is the number of\n > atoms, and P is the number of processors. \n > \n\nThe *subtract* style takes a list of two or more existing group names\nas arguments. All atoms that belong to the first group, but not to any\nof the other groups are added to the specified group.\n\nThe *union* style takes a list of one or more existing group names as\narguments. All atoms that belong to any of the listed groups are\nadded to the specified group.\n\nThe *intersect* style takes a list of two or more existing group names\nas arguments. Atoms that belong to every one of the listed groups are\nadded to the specified group.\n\n----------\n\nThe *dynamic* style flags an existing or new group as dynamic. This\nmeans atoms will be (re)assigned to the group periodically as a\nsimulation runs. This is in contrast to static groups where atoms are\npermanently assigned to the group. The way the assignment occurs is\nas follows. Only atoms in the group specified as the parent group via\nthe parent-ID are assigned to the dynamic group before the following\nconditions are applied.\n\nIf the *region* keyword is used, atoms not in the specified region are\nremoved from the dynamic group.\n\nIf the *var* keyword is used, the variable name must be an atom-style\nor atomfile-style variable. The variable is evaluated and atoms whose\nper-atom values are 0.0, are removed from the dynamic group.\n\nIf the *property* keyword is used, the name refers to a custom integer\nor floating point per-atom vector defined via the [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html) command. This means the values in\nthe vector can be read as part of a data file with the [read_data](https://docs.lammps.org/read_data.html) command or specified with the [set ](https://docs.lammps.org/set.html) command.\nOr accessed and changed via the [library interface to LAMMPS](https://docs.lammps.org/Howto_library.html), or by styles you add to LAMMPS (pair, fix, compute,\netc) which access the custom vector and modify its values. Which\nmeans the values can be modified between or during simulations. Atoms\nwhose values in the custom vector are zero are removed from the\ndynamic group. Note that the name of the custom per-atom vector is\nspecified just as *name*, not as *i_name* or *d_name* as it is for\nother commands that use different kinds of custom atom vectors or\narrays as arguments.\n\nThe assignment of atoms to a dynamic group is done at the beginning of\neach run and on every timestep that is a multiple of *N* , which is\nthe argument for the *every* keyword (\\(N = 1\\) is the default). For an\nenergy minimization, via the [minimize ](https://docs.lammps.org/minimize.html) command, an\nassignment is made at the beginning of the minimization, but not\nduring the iterations of the minimizer.\n\nThe point in the timestep at which atoms are assigned to a dynamic\ngroup is after interatomic forces have been computed, but before any\nfixes which alter forces or otherwise update the system have been\ninvoked. This means that atom positions have been updated, neighbor\nlists and ghost atoms are current, and both intermolecular and\nintramolecular forces have been calculated based on the new\ncoordinates. Thus the region criterion, if applied, should be\naccurate. Also, any computes invoked by an atom-style variable should\nuse updated information for that timestep (e.g., potential energy/atom\nor coordination number/atom). Similarly, fixes or computes which are\ninvoked after that point in the timestep, should operate on the new\ngroup of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the *region* keyword is used to determine what atoms are in\n > the dynamic group, atoms can move outside of the simulation box\n > between reneighboring events. Thus if you want to include all atoms\n > on the left side of the simulation box, you probably want to set the\n > left boundary of the region to be outside the simulation box by some\n > reasonable amount (e.g., up to the cutoff of the potential), else they\n > may be excluded from the dynamic region. \n > \n\nHere is an example of using a dynamic group to shrink the set of atoms\nbeing integrated by using a spherical region with a variable radius\n(shrinking from 18 to 5 over the course of the run). This could be\nused to model a quench of the system, freezing atoms outside the\nshrinking sphere, then converting the remaining atoms to a static\ngroup and running further.\n\n```lmps\nvariable nsteps equal 5000\nvariable rad equal 18-(step/v_nsteps)*(18-5)\nregion ss sphere 20 20 0 v_rad\ngroup mobile dynamic all region ss\nfix 1 mobile nve\nrun ${nsteps}\ngroup mobile static\nrun ${nsteps}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All fixes and computes take a group ID as an argument, but they do\n > not all allow for use of a dynamic group. If you get an error\n > message that this is not allowed, but feel that it should be for the\n > fix or compute in question, then please post your reasoning to the\n > [LAMMPS forum at MatSci](https://matsci.org/c/lammps-development/42)\n > and we can look into changing it. The same applies if you come\n > across inconsistent behavior when dynamic groups are allowed. \n > \n\nThe *static* style removes the setting for a dynamic group, converting\nit to a static group (the default). The atoms in the static group are\nthose currently in the dynamic group.\n\n----------\n", - "restrictions": "There can be no more than 32 groups defined at one time, including\n\"all\".\n\nThe parent group of a dynamic group cannot itself be a dynamic group.\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [fix ](https://docs.lammps.org/fix.html), [region ](https://docs.lammps.org/region.html),\n[velocity ](https://docs.lammps.org/velocity.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* inertia/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid inertia/chunk molchunk\n```\n", + "html_filename": "compute_inertia_chunk.html", + "short_description": "Define a computation that calculates the inertia tensor for multiple\nchunks of atoms", + "description": "Define a computation that calculates the inertia tensor for multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the six components of the symmetric inertia\ntensor for each chunk, ordered\n\\(I_{xx},I_{yy},I_{zz},I_{xy},I_{yz},I_{xz}\\).\nThe calculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's inertia\n > tensor in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute inertia/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all inertia/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nThe number of columns is 6, one for each of the 6 components of the inertia\ntensor for each chunk, ordered as listed above. These values can be accessed\nby any command that uses global array values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe array values are \"intensive\". The array values will be in\nmass\\*distance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[variable inertia() function ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "pair_style brownian", - "pair_style brownian/omp", - "pair_style brownian/poly", - "pair_style brownian/poly/omp" + "improper_style" ], "syntax": [ - "pair_style style mu flaglog flagfld cutinner cutoff t_target seed flagHI flagVF" + "improper_style style" ], "args": [ [ { - "arg": "pair_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "brownian/poly/omp", + "arg": "harmonic", "type": 3, "choices": [ - "brownian", - "brownian/poly", - "brownian/omp", - "brownian/poly/omp" + "none", + "hybrid", + "class2", + "cvff", + "harmonic" ] - }, - { - "arg": "mu", - "type": 2, - "choices": [] - }, - { - "arg": "flaglog", - "type": 2, - "choices": [] - }, + } + ] + ], + "parameters": "* style = none or hybrid or class2 or cvff or harmonic \n", + "examples": "\n```lmps\nimproper_style harmonic\nimproper_style cvff\nimproper_style hybrid cvff harmonic\n```\n", + "html_filename": "improper_style.html", + "short_description": "Set the formula(s) LAMMPS uses to compute improper interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation", + "description": "Set the formula(s) LAMMPS uses to compute improper interactions\nbetween quadruplets of atoms, which remain in force for the duration\nof the simulation. The list of improper quadruplets is read in by a\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) command\nfrom a data or restart file. Note that the ordering of the 4 atoms in\nan improper quadruplet determines the definition of the improper\nangle used in the formula for each style. See the doc pages of\nindividual styles for details.\n\nHybrid models where impropers are computed using different improper\npotentials can be setup using the *hybrid* improper style.\n\nThe coefficients associated with an improper style can be specified in\na data or restart file or via the [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nAll improper potentials store their coefficient data in binary restart\nfiles which means improper_style and\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) commands do not need to be\nre-specified in an input script that restarts a simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for details on how to do\nthis. The one exception is that improper_style *hybrid* only stores\nthe list of sub-styles in the restart file; improper coefficients need\nto be re-specified.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When both an improper and pair style is defined, the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command often needs to be used to\n > turn off (or weight) the pairwise interaction that would otherwise\n > exist between a group of 4 bonded atoms. \n > \n\n----------\n\nHere is an alphabetic list of improper styles defined in LAMMPS.\nClick on the style to display the formula it computes and coefficients\nspecified by the associated [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nClick on the style to display the formula it computes, any additional\narguments specified in the improper_style command, and coefficients\nspecified by the associated [improper_coeff ](https://docs.lammps.org/improper_coeff.html)\ncommand.\n\nThere are also additional accelerated pair styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the :ref:`Commands improper ` page are followed by one or\nmore of (g,i,k,o,t) to indicate which accelerated styles exist.\n\n* [none ](https://docs.lammps.org/improper_none.html) - turn off improper interactions\n* [zero ](https://docs.lammps.org/improper_zero.html) - topology but no interactions\n* [hybrid ](https://docs.lammps.org/improper_hybrid.html) - define multiple styles of improper interactions\n\n* [amoeba ](https://docs.lammps.org/improper_amoeba.html) - AMOEBA out-of-plane improper\n* [class2 ](https://docs.lammps.org/improper_class2.html) - COMPASS (class 2) improper\n* [cossq ](https://docs.lammps.org/improper_cossq.html) - improper with a cosine squared term\n* [cvff ](https://docs.lammps.org/improper_cvff.html) - CVFF improper\n* [distance ](https://docs.lammps.org/improper_distance.html) - improper based on distance between atom planes\n* [distharm ](https://docs.lammps.org/improper_distharm.html) - improper that is harmonic in the out-of-plane distance\n* [fourier ](https://docs.lammps.org/improper_fourier.html) - improper with multiple cosine terms\n* [harmonic ](https://docs.lammps.org/improper_harmonic.html) - harmonic improper\n* [inversion/harmonic ](https://docs.lammps.org/improper_inversion_harmonic.html) - harmonic improper with Wilson-Decius out-of-plane definition\n* [ring ](https://docs.lammps.org/improper_ring.html) - improper which prevents planar conformations\n* [umbrella ](https://docs.lammps.org/improper_umbrella.html) - DREIDING improper\n\n[sqdistharm ](https://docs.lammps.org/improper_sqdistharm.html) - improper that is harmonic in the square of the out-of-plane distance\n\n----------\n", + "restrictions": "Improper styles can only be set for atom_style choices that allow\nimpropers to be defined.\n\nMost improper styles are part of the MOLECULE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual improper potentials tell if it is part of a package.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" +}, +{ + "command": [ + "fix_modify AtC mesh write" + ], + "syntax": [ + "fix_modify mesh write " + ], + "args": [ + [ { - "arg": "flagfld", - "type": 2, + "arg": "fix_modify", + "type": 1, "choices": [] }, { - "arg": "cutinner", + "arg": "", "type": 2, "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "t_target", - "type": 2, + "arg": "write", + "type": 1, "choices": [] }, { - "arg": "seed", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] }, { - "arg": "flagHI", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] }, { - "arg": "flagVF", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] } ] ], - "parameters": "* style = brownian or brownian/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 log terms in the lubrication approximation on/off\n* flagfld = 0/1 to include/exclude Fast Lubrication Dynamics effects\n* cutinner = inner cutoff distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* t_target = target temp of the system (temperature units)\n* seed = seed for the random number generator (positive integer)\n* flagHI (optional) = 0/1 to include/exclude 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to include/exclude volume fraction corrections in the long-range isotropic terms \n", - "examples": "\n```lmps\npair_style brownian 1.5 1 1 2.01 2.5 2.0 5878567 # (assuming radius = 1)\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n```\n", - "html_filename": "pair_brownian.html", - "short_description": "Styles *brownian* and *brownian/poly* compute Brownian forces and\ntorques on finite-size spherical particles", - "description": "Styles *brownian* and *brownian/poly* compute Brownian forces and\ntorques on finite-size spherical particles. The former requires\nmonodisperse spherical particles; the latter allows for polydisperse\nspherical particles.\n\nThese pair styles are designed to be used with either the\n[pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html) or [pair_stylelubricateU ](https://docs.lammps.org/pair_lubricateU.html) commands to provide thermostatting when\ndissipative lubrication forces are acting. Thus the parameters *mu*,\n*flaglog*, *flagfld*, *cutinner*, and *cutoff* should be specified\nconsistent with the settings in the lubrication pair styles. For\ndetails, refer to either of the lubrication pair styles.\n\nThe *t_target* setting is used to specify the target temperature of\nthe system. The random number *seed* is used to generate random\nnumbers for the thermostatting procedure.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for these\npair styles can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "These styles are part of the COLLOID package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly spherical monodisperse particles are allowed for pair_style\nbrownian.\n\nOnly spherical particles are allowed for pair_style brownian/poly.\n\nThese pair styles are only compatible with the following wall fixes:\ndoc:`fix wall/lj93, fix wall/lj126, fix wall/lj1043, fix wall/colloid,\nfix wall/harmonic, fix wall/lepton, fix wall/morse, fix wall/table\n`.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html), [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh write = name of the AtC sub-command\n* filename = name of the file containing the mesh to be write \n", + "examples": "\n```lmps\nfix_modify AtC mesh write myMesh.mesh\n```\n", + "html_filename": "atc_mesh_write.html", + "short_description": "Writes a mesh to a text file", + "description": "Writes a mesh to a text file.\n", + "restrictions": "None\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n- [fix_modify AtC mesh read ](https://docs.lammps.org/atc_mesh_read.html)\n" }, { "command": [ - "dihedral_style hybrid", - "dihedral_style hybrid/kk" + "fix store/state" ], "syntax": [ - "dihedral_style hybrid style1 style2 ..." + "fix ID group-ID store/state N input1 input2 ... keyword value ..." ], "args": [ [ { - "arg": "dihedral_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "hybrid", - "hybrid/kk" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "style1", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "store/state", + "type": 1, + "choices": [] + }, + { + "arg": "N", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style1,style2 = list of one or more dihedral styles \n", - "examples": "\n```lmps\ndihedral_style hybrid harmonic helix\ndihedral_coeff 1 harmonic 6.0 1 3\ndihedral_coeff 2* helix 10 10 10\n```\n", - "html_filename": "dihedral_hybrid.html", - "short_description": "The *hybrid* style enables the use of multiple dihedral styles in one\nsimulation", - "description": "The *hybrid* style enables the use of multiple dihedral styles in one\nsimulation. An dihedral style is assigned to each dihedral type. For\nexample, dihedrals in a polymer flow (of dihedral type 1) could be\ncomputed with a *harmonic* potential and dihedrals in the wall\nboundary (of dihedral type 2) could be computed with a *helix*\npotential. The assignment of dihedral type to style is made via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command or in the data file.\n\nIn the dihedral_coeff commands, the name of a dihedral style must be\nadded after the dihedral type, with the remaining coefficients being\nthose appropriate to that style. In the example above, the 2\ndihedral_coeff commands set dihedrals of dihedral type 1 to be\ncomputed with a *harmonic* potential with coefficients 6.0, 1, 3 for\nK, d, n. All other dihedral types (2-N) are computed with a *helix*\npotential with coefficients 10, 10, 10 for A, B, C.\n\nIf dihedral coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"helix\", must be added after the dihedral type, for\neach line in the \"Dihedral Coeffs\" section, e.g.\n\n```\nDihedral Coeffs\n\n1 harmonic 6.0 1 3\n2 helix 10 10 10\n...\n```\nIf *class2* is one of the dihedral hybrid styles, the same rule holds\nfor specifying additional AngleTorsion (and EndBondTorsion, etc)\ncoefficients either via the input script or in the data file.\nI.e. *class2* must be added to each line after the dihedral type. For\nlines in the AngleTorsion (or EndBondTorsion, etc) Coeffs section of the data\nfile for dihedral types that are not *class2*, you must use an\ndihedral style of *skip* as a placeholder, e.g.\n\n```\nAngleTorsion Coeffs\n\n1 skip\n2 class2 1.0 1.0 1.0 3.0 3.0 3.0 30.0 50.0\n...\n```\nNote that it is not necessary to use the dihedral style *skip* in the\ninput script, since AngleTorsion (or EndBondTorsion, etc) coefficients\nneed not be specified at all for dihedral types that are not *class2* .\n\nA dihedral style of *none* with no additional coefficients can be used\nin place of a dihedral style, either in a input script dihedral_coeff\ncommand or in the data file, if you desire to turn off interactions\nfor specific dihedral types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other dihedral styles, the hybrid dihedral style does not store\ndihedral coefficient info for individual sub-styles in [binaryrestart files ](https://docs.lammps.org/restart.html) or [data files ](https://docs.lammps.org/write_data.html). Thus when\nrestarting a simulation, you need to re-specify the dihedral_coeff\ncommands.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" -}, -{ - "command": [ - "dihedral_style table", - "dihedral_style table/omp", - "dihedral_style table/cut" - ], - "syntax": [ - "dihedral_style style interpolation Ntable" - ], - "args": [ - [ + }, { - "arg": "dihedral_style", - "type": 1, + "arg": "input1", + "type": 2, "choices": [] }, { - "arg": "table/omp", - "type": 3, - "choices": [ - "table", - "table/cut", - "table/omp" - ] + "arg": "input2", + "type": 2, + "choices": [] }, { - "arg": "interpolation", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "Ntable", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* style = table or table/cut\n* interpolation = linear or spline = method of interpolation\n* Ntable = size of the internal lookup table \n", - "examples": "\n```lmps\ndihedral_style table spline 400\ndihedral_style table linear 1000\ndihedral_coeff 1 file.table DIH_TABLE1\ndihedral_coeff 2 file.table DIH_TABLE2\n\ndihedral_style table/cut spline 400\ndihedral_style table/cut linear 1000\ndihedral_coeff 1 aat 1.0 177 180 file.table DIH_TABLE1\ndihedral_coeff 2 aat 0.5 170 180 file.table DIH_TABLE2\n```\n", - "html_filename": "dihedral_table.html", - "short_description": "The *table* and *table/cut* dihedral styles create interpolation tables\nof length *Ntable* from dihedral potential and derivative values listed\nin a file(s) as a function of the dihedral angle \"phi\"", - "description": "The *table* and *table/cut* dihedral styles create interpolation tables\nof length *Ntable* from dihedral potential and derivative values listed\nin a file(s) as a function of the dihedral angle \"phi\". The files are\nread by the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command. For\ndihedral style *table/cut* additionally an analytic cutoff that is\nquadratic in the bond-angle (theta) is applied in order to regularize\nthe dihedral interaction.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and derivative values at each of\n*Ntable* dihedral angles. During a simulation, these tables are used\nto interpolate energy and force values on individual atoms as\nneeded. The interpolation is done in one of 2 styles: *linear* or\n*spline* .\n\nFor the *linear* style, the dihedral angle (phi) is used to find 2\nsurrounding table values from which an energy or its derivative is\ncomputed by linear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored at each of the *Ntable* evenly-spaced values in the\ninterpolated table. For a given dihedral angle (phi), the appropriate\ncoefficients are chosen from this list, and a cubic polynomial is used\nto compute the energy and the derivative at this angle.\n\nFor dihedral style *table* the following coefficients must be defined\nfor each dihedral type via the [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\ncommand as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and derivative\nvalues. The keyword specifies which section of the file to read. The\nformat of this file is the same for both dihedral styles and described\nbelow.\n\nFor dihedral style *table/cut* the following coefficients must be\ndefined for each dihedral type via the [dihedral_coeff](https://docs.lammps.org/dihedral_coeff.html) command as in the example above.\n\n* style (= aat)\n* cutoff prefactor (unitless)\n* cutoff angle1 (degrees)\n* cutoff angle2 (degrees)\n* filename\n* keyword\n\nThe cutoff dihedral style uses a tabulated dihedral interaction with a\ncutoff function:\n\\[\\begin{align*} \n f(\\theta) & = K \\qquad\\qquad\\qquad\\qquad\\qquad\\qquad \\theta < \\theta_1 \\\\\n f(\\theta) & = K \\left(1-\\frac{(\\theta - \\theta_1)^2}{(\\theta_2 - \\theta_1)^2}\\right) \\qquad \\theta_1 < \\theta < \\theta_2 \\end{align*} \\]\nThe cutoff includes a prefactor *K* to the cutoff function \\(f(\\theta)\\).\nWhile this value would ordinarily be 1, there may be situations where the value\ncould be different.\n\nThe cutoff \\(\\theta_1\\) specifies the angle (in degrees) below which\nthe dihedral interaction is unmodified, i.e. the cutoff function is 1.\n\nThe cutoff function is applied between \\(\\theta_1\\) and\n\\(\\theta_2\\), which is the angle at which the cutoff function drops\nto zero. The value of zero effectively \"turns off\" the dihedral\ninteraction.\n\nThe filename specifies a file containing tabulated energy and derivative\nvalues. The keyword specifies which section of the file to read. The\nformat of this file is the same for both dihedral styles and described\nbelow.\n\n----------\n\nSuitable tables for use with this dihedral style can be created using\nthe Python code in the ``tools/tabulate`` folder of the LAMMPS source\ncode distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments). It can begin with one or more comment\nor blank lines.\n\n```\n# Table of the potential and its negative derivative\n\nDIH_TABLE1 (keyword is the first text on line)\nN 30 DEGREES (N, NOF, DEGREES, RADIANS, CHECKU/F)\n(blank line)\n1 -168.0 -1.40351172223 0.0423346818422\n2 -156.0 -1.70447981034 0.00811786522531\n3 -144.0 -1.62956100432 -0.0184129719987\n...\n30 180.0 -0.707106781187 0.0719306095245\n\n# Example 2: table of the potential. Forces omitted\n\nDIH_TABLE2\nN 30 NOF CHECKU testU.dat CHECKF testF.dat\n\n1 -168.0 -1.40351172223\n2 -156.0 -1.70447981034\n3 -144.0 -1.62956100432\n...\n30 180.0 -0.707106781187\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command. The next line lists (in\nany order) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nFollowing a blank line, the next N lines list the tabulated values. On\neach line, the first value is the index from 1 to N, the second value is\nthe angle value, the third value is the energy (in energy units), and\nthe fourth is -dE/d(phi) also in energy units). The third term is the\nenergy of the 4-atom configuration for the specified angle. The fourth\nterm (when present) is the negative derivative of the energy with\nrespect to the angle (in degrees, or radians depending on whether the\nuser selected DEGREES or RADIANS). Thus the units of the last term\nare still energy, not force. The dihedral angle values must increase\nfrom one line to the next.\n\nDihedral table splines are cyclic. There is no discontinuity at 180\ndegrees (or at any other angle). Although in the examples above, the\nangles range from -180 to 180 degrees, in general, the first angle in\nthe list can have any value (positive, zero, or negative). However\nthe *range* of angles represented in the table must be *strictly* less\nthan 360 degrees (2pi radians) to avoid angle overlap. (You may not\nsupply entries in the table for both 180 and -180, for example.) If\nthe user's table covers only a narrow range of dihedral angles,\nstrange numerical behavior can occur in the large remaining gap.\n\n**Parameters:**\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the N\nspecified in the [dihedral_style table ](https://docs.lammps.org/dihedral_style.html) command.\nLet *Ntable* is the number of table entries requested dihedral_style\ncommand, and let *Nfile* be the parameter following \"N\" in the\ntabulated file (\"30\" in the sparse example above). What LAMMPS does\nis a preliminary interpolation by creating splines using the *Nfile*\ntabulated values as nodal points. It uses these to interpolate as\nneeded to generate energy and derivative values at *Ntable* different\npoints (which are evenly spaced over a 360 degree range, even if the\nangles in the file are not). The resulting tables of length *Ntable*\nare then used as described above, when computing energy and force for\nindividual dihedral angles and their atoms. This means that if you\nwant the interpolation tables of length *Ntable* to match exactly what\nis in the tabulated file (with effectively nopreliminary\ninterpolation), you should set *Ntable* = *Nfile* . To ensure the\nnodal points in the user's file are aligned with the interpolated\ntable entries, the angles in the table should be integer multiples of\n360/\\ *Ntable* degrees, or 2\\*PI/\\ *Ntable* radians (depending on your\nchoice of angle units).\n\nThe optional \"NOF\" keyword allows the user to omit the forces\n(negative energy derivatives) from the table file (normally located in\nthe fourth column). In their place, forces will be calculated\nautomatically by differentiating the potential energy function\nindicated by the third column of the table (using either linear or\nspline interpolation).\n\nThe optional \"DEGREES\" keyword allows the user to specify angles in\ndegrees instead of radians (default).\n\nThe optional \"RADIANS\" keyword allows the user to specify angles in\nradians instead of degrees. (Note: This changes the way the forces\nare scaled in the fourth column of the data file.)\n\nThe optional \"CHECKU\" keyword is followed by a filename. This allows\nthe user to save all of the *Ntable* different entries in the\ninterpolated energy table to a file to make sure that the interpolated\nfunction agrees with the user's expectations. (Note: You can\ntemporarily increase the *Ntable* parameter to a high value for this\npurpose. \"\\ *Ntable* \" is explained above.)\n\nThe optional \"CHECKF\" keyword is analogous to the \"CHECKU\" keyword.\nIt is followed by a filename, and it allows the user to check the\ninterpolated force table. This option is available even if the user\nselected the \"NOF\" option.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds one\nthat matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese dihedral styles write the settings for the \"dihedral_style table\"\nor \"dihedral_style table/cut\" command to [binary restart files](https://docs.lammps.org/restart.html), so a dihedral_style command does not need to specified in an\ninput script that reads a restart file. However, the coefficient\ninformation loaded from the table file(s) is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, suitable\ndihedral_coeff commands do need to be specified in the restart input\nscript after reading the restart file.\n", - "restrictions": "The *table* dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. The *table/cut* dihedral style can only be used if\nLAMMPS was built with the EXTRA-MOLECULE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* store/state = style name of this fix command\n* N = store atom attributes every N steps, N = 0 for initial store only\n* input = one or more atom attributes \n *        possible attributes = id, mol, type, mass, \n         x, y, z, xs, ys, zs, xu, yu, zu, xsu, ysu, zsu, ix, iy, iz, \n         vx, vy, vz, fx, fy, fz, \n         q, mux, muy, muz, mu, \n         radius, diameter, omegax, omegay, omegaz, \n         angmomx, angmomy, angmomz, tqx, tqy, tqz, \n         c_ID, c_ID[I], f_ID, f_ID[I], v_name, \n         d_name, i_name, i2_name[I], d2_name[I], \n         id = atom ID \n         mol = molecule ID \n         type = atom type \n         mass = atom mass \n         x,y,z = unscaled atom coordinates \n         xs,ys,zs = scaled atom coordinates \n         xu,yu,zu = unwrapped atom coordinates \n         xsu,ysu,zsu = scaled unwrapped atom coordinates \n         ix,iy,iz = box image that the atom is in \n         vx,vy,vz = atom velocities \n         fx,fy,fz = forces on atoms \n         q = atom charge \n         mux,muy,muz = orientation of dipolar atom \n         mu = magnitued of dipole moment of atom \n         radius,diameter = radius.diameter of spherical particle \n         omegax,omegay,omegaz = angular velocity of spherical particle \n         angmomx,angmomy,angmomz = angular momentum of aspherical particle \n         tqx,tqy,tqz = torque on finite-size particles \n         c_ID = per-atom vector calculated by a compute with ID \n         c_ID[I] = Ith column of per-atom array calculated by a compute with ID \n         f_ID = per-atom vector calculated by a fix with ID \n         f_ID[I] = Ith column of per-atom array calculated by a fix with ID \n         v_name = per-atom vector calculated by an atom-style variable with name \n         i_name = custom integer vector with name \n         d_name = custom floating point vector with name \n         i2_name[I] = Ith column of custom integer array with name \n         d2_name[I] = Ith column of custom floating-point array with name \n* zero or more keyword/value pairs may be appended\n* keyword = com \n *        com value = yes or no \n", + "examples": "\n```lmps\nfix 1 all store/state 0 x y z\nfix 1 all store/state 0 xu yu zu com yes\nfix 2 all store/state 1000 vx vy vz\n```\n", + "html_filename": "fix_store_state.html", + "short_description": "Define a fix that stores attributes for each atom in the group at the\ntime the fix is defined", + "description": "Define a fix that stores attributes for each atom in the group at the\ntime the fix is defined. If *N* is 0, then the values are never\nupdated, so this is a way of archiving an atom attribute at a given\ntime for future use in a calculation or output. See the discussion of\n[output commands ](https://docs.lammps.org/Howto_output.html) that take fixes as inputs.\n\nIf *N* is not zero, then the attributes will be updated every *N*\nsteps.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Actually, only atom attributes specified by keywords like *xu*\n > or *vy* or *radius* are initially stored immediately at the point in\n > your input script when the fix is defined. Attributes specified by a\n > compute, fix, or variable are not initially stored until the first run\n > following the fix definition begins. This is because calculating\n > those attributes may require quantities that are not defined in\n > between runs. \n > \n\nThe list of possible attributes is the same as that used by the\n[dump custom ](https://docs.lammps.org/dump.html) command, which describes their meaning.\n\nIf the *com* keyword is set to *yes* then the *xu*, *yu*, and *zu*\ninputs store the position of each atom relative to the center-of-mass\nof the group of atoms, instead of storing the absolute position.\n\nThe requested values are stored in a per-atom vector or array as\ndiscussed below. Zeroes are stored for atoms not in the specified\ngroup.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the per-atom values it stores to [binary restartfiles ](https://docs.lammps.org/restart.html), so that the values can be restored when a simulation\nis restarted. See the [read_restart ](https://docs.lammps.org/read_restart.html) command for\ninfo on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >When reading data from a restart file, this fix command has to be specified\n > **exactly** the same way as before. LAMMPS will only check whether a\n > fix is of the same style and has the same fix ID and in case of a match\n > will then try to initialize the fix with the data stored in the binary\n > restart file. If the fix store/state command does not match exactly,\n > data can be corrupted or LAMMPS may crash. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nIf a single input is specified, this fix produces a per-atom vector.\nIf multiple inputs are specified, a per-atom array is produced where\nthe number of columns for each atom is the number of inputs. These\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nper-atom values be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html), [compute property/atom ](https://docs.lammps.org/compute_property_atom.html),\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html), [variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "newton" + "fix_modify AtC mesh delete_elements" ], "syntax": [ - "newton flag", - "newton flag1 flag2" + "fix_modify mesh delete_elements " ], "args": [ [ { - "arg": "newton", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "flag", + "arg": "", "type": 2, "choices": [] - } - ], - [ + }, { - "arg": "newton", + "arg": "mesh", "type": 1, "choices": [] }, { - "arg": "flag1", - "type": 2, + "arg": "delete_elements", + "type": 1, "choices": [] }, { - "arg": "flag2", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* flag = on or off for both pairwise and bonded interactions\n* flag1 = on or off for pairwise interactions\n* flag2 = on or off for bonded interactions \n", - "examples": "\n```lmps\nnewton off\nnewton on off\n```\n", - "html_filename": "newton.html", - "short_description": "This command turns Newton's third law *on* or *off* for pairwise and\nbonded interactions", - "description": "This command turns Newton's third law *on* or *off* for pairwise and\nbonded interactions. For most problems, setting Newton's third law to\n*on* means a modest savings in computation at the cost of two times\nmore communication. Whether this is faster depends on problem size,\nforce cutoff lengths, a machine's compute/communication ratio, and how\nmany processors are being used.\n\nSetting the pairwise newton flag to *off* means that if two\ninteracting atoms are on different processors, both processors compute\ntheir interaction and the resulting force information is not\ncommunicated. Similarly, for bonded interactions, newton *off* means\nthat if a bond, angle, dihedral, or improper interaction contains\natoms on 2 or more processors, the interaction is computed by each\nprocessor.\n\nLAMMPS should produce the same answers for any newton flag settings,\nexcept for round-off issues.\n\nWith [run_style ](https://docs.lammps.org/run_style.html) *respa* and only bonded interactions\n(bond, angle, etc) computed in the innermost timestep, it may be\nfaster to turn newton *off* for bonded interactions, to avoid extra\ncommunication in the innermost loop.\n", - "restrictions": "The newton bond setting cannot be changed after the simulation box is\ndefined by a [read_data ](https://docs.lammps.org/read_data.html) or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", - "related": "[run_style ](https://docs.lammps.org/run_style.html) respa\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_elementset = name of the AtC sub-command\n* id = id of the element set \n", + "examples": "\n```lmps\nfix_modify AtC mesh delete_elements gap\n```\n", + "html_filename": "atc_mesh_delete_elements.html", + "short_description": "Deletes a group of elements from the mesh", + "description": "Deletes a group of elements from the mesh.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_elementset ](https://docs.lammps.org/atc_mesh_create_elementset.html)\n- [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n" }, { "command": [ - "kim" + "compute xrd" ], "syntax": [ - "kim sub-command args" + "compute ID group-ID xrd lambda type1 type2 ... typeN keyword value ..." ], "args": [ [ { - "arg": "kim", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "sub-command", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* sub-command = :ref:`init ` or :ref:`interactions ` or\n :ref:`query ` or :ref:`param ` or :ref:`property `\n\n* args = arguments used by a particular sub-command \n", - "examples": "\n```lmps\nkim init args\nkim interactions args\nkim query args\nkim param args\nkim property args\n```\n", - "html_filename": "kim_commands.html", - "short_description": "The *kim command* includes a set of sub-commands that allow LAMMPS\nusers to use interatomic models (IM) (potentials and force fields) and\ntheir predictions for various physical properties archived in the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org) repository", - "description": "The *kim command* includes a set of sub-commands that allow LAMMPS\nusers to use interatomic models (IM) (potentials and force fields) and\ntheir predictions for various physical properties archived in the\n[Open Knowledgebase of Interatomic Models (OpenKIM)](https://openkim.org) repository.\n\nUsing OpenKIM provides LAMMPS users with immediate access to a large\nnumber of verified IMs and their predictions. OpenKIM IMs have\nmultiple benefits including `reliability, reproducibility and\nconvenience `_.\n\nThere are two types of IMs archived in OpenKIM: \n 1. The first type is called a *KIM Portable Model* (PM). A KIM PM is an\n independent computer implementation of an IM written in one of the languages\n supported by KIM (C, C++, Fortran) that conforms to the KIM Application\n Programming Interface ([KIM API](https://openkim.org/kim-api/)) Portable\n Model Interface (PMI) standard. A KIM PM will work seamlessly with any\n simulation code that supports the KIM API/PMI standard (including LAMMPS; see\n [complete list of supported codes](https://openkim.org/projects-using-kim/)).\n2. The second type is called a *KIM Simulator Model* (SM). A KIM SM is an IM\n that is implemented natively within a simulation code (\\ *simulator* ) that\n supports the KIM API Simulator Model Interface (SMI); in this case LAMMPS. A\n separate SM package is archived in OpenKIM for each parameterization of the\n IM, which includes all of the necessary parameter files, LAMMPS commands, and\n metadata (supported species, units, etc.) needed to run the IM in LAMMPS.\n\nWith these two IM types, OpenKIM can archive and test almost all IMs that can be\nused by LAMMPS. (It is easy to contribute new IMs to OpenKIM, see the\n[upload instructions](https://openkim.org/doc/repository/adding-content/).)\n\nOpenKIM IMs are uniquely identified by a\n[KIM ID](https://openkim.org/doc/schema/kim-ids/).\nThe extended KIM ID consists of\na human-readable prefix identifying the type of IM, authors, publication year,\nand supported species, separated by two underscores from the KIM ID itself,\nwhich begins with an IM code\n(\\ *MO* for a KIM Portable Model, and *SM* for a KIM Simulator Model)\nfollowed by a unique 12-digit code and a 3-digit version identifier.\nBy convention SM prefixes begin with *Sim_* to readily identify them.\n\n```\nSW_StillingerWeber_1985_Si__MO_405512056662_005\nSim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001\n```\nEach OpenKIM IM has a dedicated \"Model Page\" on [OpenKIM](https://openkim.org)\nproviding all the information on the IM including a title, description,\nauthorship and citation information, test and verification check results,\nvisualizations of results, a wiki with documentation and user comments, and\naccess to raw files, and other information.\nThe URL for the Model Page is constructed from the\n[extended KIM ID](https://openkim.org/doc/schema/kim-ids/) of the IM:\n\n```\nhttps://openkim.org/id/extended_KIM_ID\n```\nFor example, for the Stillinger-Weber potential listed above the Model Page is\nlocated at:\n\n```\n[https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005)\n```\nSee the\n[current list of KIM PMs and SMs archived in OpenKIM](https://openkim.org/browse/models/by-species).\nThis list is sorted by species and can be filtered to display only IMs for\ncertain species combinations.\n\nSee [Obtaining KIM Models](https://openkim.org/doc/usage/obtaining-models) to\nlearn how to install a pre-built binary of the OpenKIM Repository of Models.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is also possible to locally install IMs not archived in OpenKIM,\n > in which case their names do not have to conform to the KIM ID format. \n > \n\n #### Using OpenKIM IMs with LAMMPS (*kim init*, *kim interactions*)\n\nTwo sub-commands are employed when using OpenKIM IMs in LAMMPS, one to select\nthe IM and perform necessary initialization (\\ *kim init*\\ ), and the second to\nset up the IM for use by executing any necessary LAMMPS commands\n(\\ *kim interactions*\\ ). Both are required.\n\nSyntax\n------\n\n```lmps\nkim init model user_units unitarg\nkim interactions typeargs\n```\n.. _typeargs_options:\n\n* model = name of the KIM interatomic model (the KIM ID for models archived in\n OpenKIM)\n* user_units = the LAMMPS [units ](https://docs.lammps.org/units.html) style assumed in the LAMMPS\n input script\n* unitarg = *unit_conversion_mode* (optional)\n* typeargs = atom type to species mapping (one entry per atom type) or\n *fixed_types* for models with a preset fixed mapping\n\nExamples\n--------\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\nkim interactions Si\n\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001 real\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_001 metal unit_conversion_mode\nkim interactions C H O\n\nkim init Sim_LAMMPS_IFF_PCFF_HeinzMishraLinEmami_2015Ver1v5_FccmetalsMineralsSolventsPolymers__SM_039297821658_000 real\nkim interactions fixed_types\n```\nSee the *examples/kim* directory for example input scripts that use KIM PMs\nand KIM SMs.\n\n.. _kim_init:\n\nOpenKIM IM Initialization (*kim init*)\n--------------------------------------\n\nThe *kim* command followed by *init* sub-command must be issued **before**\nthe simulation box is created (normally at the top of the file). This command\nsets the OpenKIM IM that will be used and may issue additional commands changing\nLAMMPS default settings that are required for using the selected IM (such as\n[units ](https://docs.lammps.org/units.html) or [atom_style ](https://docs.lammps.org/atom_style.html)). If needed, those\nsettings can be overridden, however, typically a script containing a *kim init*\ncommand would not include *units* and *atom_style* commands.\n\nThe required arguments of *kim init* are the *model* name of the IM to be used\nin the simulation (for an IM archived in OpenKIM this is its\n[extended KIM ID](https://openkim.org/doc/schema/kim-ids/), and the\n*user_units*, which are the LAMMPS [units style ](https://docs.lammps.org/units.html) used in the input\nscript. (Any dimensioned numerical values in the input script and values read in\nfrom files are expected to be in the *user_units* system.)\n\nThe selected IM can be either a **IM_types**. For a KIM\nSM, the *kim init* command verifies that the SM is designed to work with LAMMPS\n(and not another simulation code). In addition, the LAMMPS version used for\ndefining the SM and the LAMMPS version being currently run are printed to help\ndiagnose any incompatible changes to input script or command syntax between the\ntwo LAMMPS versions.\n\nBased on the selected model *kim init* may modify the\n[atom_style ](https://docs.lammps.org/atom_style.html). Some SMs have requirements for this setting.\nIf this is the case, then *atom_style* will be set to the required style.\nOtherwise, the value is left unchanged (which in the absence of an *atom_style*\ncommand in the input script is the\n[default atom_style value ](https://docs.lammps.org/atom_style.html)).\n\nRegarding units, the *kim init* behaves in different ways depending on whether\nor not *unit conversion mode* is activated as indicated by the optional\n*unitarg* argument.\nIf unit conversion mode is **not** active, then *user_units* must either match\nthe required units of the IM or the IM must be able to adjust its units to\nmatch. (The latter is only possible with some KIM PMs; SMs can never adjust\ntheir units.) If a match is possible, the LAMMPS [units ](https://docs.lammps.org/units.html) command is\ncalled to set the units to *user_units* . If the match fails, the simulation\nis terminated with an error. The *kim init* command also sets the\ndefault value for the [skin ](https://docs.lammps.org/neighbor.html) (extra distance beyond force\ncutoff) as 2.0 Angstroms and sets the default value for the\n[timestep ](https://docs.lammps.org/timestep.html) size as 1.0 femtosecond.\n\nHere is an example of a LAMMPS script to compute the cohesive energy of a\nface-centered cubic (fcc) lattice for the MEAM potential by Pascuet and\nFernandez (2015) for Al.\n\n```lmps\nkim init Sim_LAMMPS_MEAM_PascuetFernandez_2015_Al__SM_811588957187_000 metal\nboundary p p p\nlattice fcc 4.049\nregion simbox block 0 1 0 1 0 1 units lattice\ncreate_box 1 simbox\ncreate_atoms 1 box\nmass 1 26.981539\nkim interactions Al\nrun 0\nvariable Ec equal (pe/count(all))\nprint \"Cohesive Energy = ${Ec} eV\"\n```\nThe above script will end with an error in the *kim init* line if the IM is\nchanged to another potential for Al that does not work with *metal* units. To\naddress this, *kim init* offers the *unit_conversion_mode* as shown below.\n\nIf unit conversion mode *is* active, then *kim init* calls the LAMMPS\n[units ](https://docs.lammps.org/units.html) command to set the units to the IM's required or preferred\nunits. Conversion factors between the IM's units and the *user_units* are\ndefined for all [physical quantities ](https://docs.lammps.org/units.html) (mass, distance, etc.).\n(Note that converting to or from the \"lj\" unit style is not supported.)\nThese factors are stored as [internal style variables ](https://docs.lammps.org/variable.html) with the\nfollowing standard names:\n\n```\n_u_mass\n_u_distance\n_u_time\n_u_energy\n_u_velocity\n_u_force\n_u_torque\n_u_temperature\n_u_pressure\n_u_viscosity\n_u_charge\n_u_dipole\n_u_efield\n_u_density\n```\nIf desired, the input script can be designed to work with these conversion\nfactors so that the script will work without change with any OpenKIM IM.\n(This approach is used in the\n[OpenKIM Testing Framework](https://openkim.org/doc/evaluation/kim-tests/).)\n\nFor example, the script given above for the cohesive energy of fcc Al can be\nrewritten to work with any IM regardless of units. The following script\nconstructs an fcc lattice with a lattice parameter defined in meters, computes\nthe total energy, and prints the cohesive energy in Joules regardless of the\nunits of the IM.\n\n```lmps\nkim init Sim_LAMMPS_MEAM_PascuetFernandez_2015_Al__SM_811588957187_000 si unit_conversion_mode\nboundary p p p\nlattice fcc $(4.049e-10*v__u_distance)\nregion simbox block 0 1 0 1 0 1 units lattice\ncreate_box 1 simbox\ncreate_atoms 1 box\nmass 1 $(4.480134e-26*v__u_mass)\nkim interactions Al\nneighbor $(2e-10*v__u_distance) bin\nrun 0\nvariable Ec_in_J equal (pe/count(all))/v__u_energy\nprint \"Cohesive Energy = ${Ec_in_J} J\"\n```\nNote the multiplication by `v__u_distance` and `v__u_mass` to convert from SI\nunits (specified in the *kim init* command) to whatever units the IM uses (metal\nin this case), and the division by `v__u_energy` to convert from the IM's energy\nunits to SI units (Joule). This script will work correctly for any IM for Al\n(KIM PM or SM) selected by the *kim init* command.\n\nCare must be taken to apply unit conversion to dimensional variables read in\nfrom a file. For example, if a configuration of atoms is read in from a dump\nfile using the [read_dump ](https://docs.lammps.org/read_dump.html) command, the following can be done\nto convert the box and all atomic positions to the correct units:\n\n```lmps\nchange_box all x scale ${_u_distance} &\ny scale ${_u_distance} &\nz scale ${_u_distance} &\nxy final $(xy*v__u_distance) &\nxz final $(xz*v__u_distance) &\nyz final $(yz*v__u_distance) &\nremap\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unit conversion will only work if the conversion factors are placed in all\n > appropriate places in the input script. It is up to the user to do this\n > correctly. \n > \n\n.. _interactions:\n\nOpenKIM IM Execution (*kim interactions*)\n-----------------------------------------\n\nThe second and final step in using an OpenKIM IM is to execute the\n*kim interactions* command. This command must be preceded by a *kim init*\ncommand and a command that defines the number of atom types *N* (such as\n[create_box ](https://docs.lammps.org/create_box.html)).\nThe *kim interactions* command has one argument *typeargs* . This argument\ncontains either a list of *N* chemical species, which defines a mapping between\natom types in LAMMPS to the available species in the OpenKIM IM, or the keyword\n*fixed_types* for models that have a preset fixed mapping (i.e. the mapping\nbetween LAMMPS atom types and chemical species is defined by the model and\ncannot be changed). In the latter case, the user must consult the model\ndocumentation to see how many atom types there are and how they map to the\nchemical species.\n\nFor example, consider an OpenKIM IM that supports Si and C species. If the\nLAMMPS simulation has four atom types, where the first three are Si, and the\nfourth is C, the following *kim interactions* command would be used:\n\n```lmps\nkim interactions Si Si Si C\n```\nAlternatively, for a model with a fixed mapping the command would be:\n\n```lmps\nkim interactions fixed_types\n```\nThe *kim interactions* command performs all the necessary steps to set up the\nOpenKIM IM selected in the *kim init* command. The specific actions depend on\nwhether the IM is a KIM PM or a KIM SM. For a KIM PM, a\n[pair_style kim ](https://docs.lammps.org/pair_kim.html) command is executed followed by the appropriate\n*pair_coeff* command. For example, for the Ercolessi and Adams (1994) KIM PM\nfor Al set by the following commands:\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\n...\n... box specification lines skipped\n...\nkim interactions Al\n```\nthe *kim interactions* command executes the following LAMMPS input commands:\n\n```lmps\npair_style kim EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005\npair_coeff * * Al\n```\nFor a KIM SM, the generated input commands may be more complex and require that\nLAMMPS is built with the required packages included for the type of potential\nbeing used. The set of commands to be executed is defined in the SM\nspecification file, which is part of the SM package. For example, for the\nStrachan et al. (2003) ReaxFF SM set by the following commands:\n\n```lmps\nkim init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real\n...\n... box specification lines skipped\n...\nkim interactions C H N O\n```\nthe *kim interactions* command executes the following LAMMPS input commands:\n\n```lmps\npair_style reaxff lmp_control safezone 2.0 mincap 100\npair_coeff * * ffield.reax.rdx C H N O\nfix reaxqeq all qeq/reaxff 1 0.0 10.0 1.0e-6 param.qeq\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The files *lmp_control*, *ffield.reax.rdx* and *param.qeq* are specific to\n > the Strachan et al. (2003) ReaxFF parameterization and are archived as part\n > of the SM package in OpenKIM. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Parameters like cutoff radii and charge tolerances, which have an effect on\n > IM predictions, are also included in the SM definition ensuring\n > reproducibility. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using *kim init* and *kim interactions* to select and set up an OpenKIM\n > IM, other LAMMPS commands for the same functions (such as pair_style,\n > pair_coeff, bond_style, bond_coeff, fixes related to charge equilibration,\n > etc.) should normally not appear in the input script. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim interactions* must be called each time after the\n > [change_box ](https://docs.lammps.org/change_box.html) command to provide the correct settings (it\n > should be called with the same **typeargs_options** as the\n > first call.) The reason is that changing a periodic boundary to a\n > non-periodic one, or in general, using the *change_box* command after the\n > interactions are set via *kim interactions* or *pair_coeff* commands might\n > affect some of the settings. For example, SM models containing Coulombic\n > terms in the interactions require different settings if a periodic boundary\n > changes to a non-periodic one. In other cases, the second call to\n > *kim interactions* does not affect any other settings. \n > \n\n.. _query:\n\n #### Using OpenKIM Web Queries in LAMMPS (*kim query*)\n\nThe *kim query* command performs a web query to retrieve the predictions of an\nIM set by *kim init* for material properties archived in\n[OpenKIM](https://openkim.org).\n\nSyntax\n------\n\n```lmps\nkim query variable formatarg query_function queryargs\n```\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list* or *split* or *index* (optional)\n\n```\n*list* = returns a single string with a list of space separated values\n(e.g. \"1.0 2.0 3.0\"), which is placed in a LAMMPS variable as\ndefined by the *variable* argument. [default]\n*split* = returns the values separately in new variables with names based\non the prefix specified in *variable* and a number appended to\nindicate which element in the list of values is in the variable\n*index* = returns a variable style index that can be incremented via the\nnext command. This enables the construction of simple loops\n```\n* query_function = name of the OpenKIM web API query function to be used\n* queryargs = a series of *keyword=value* pairs that represent the web query;\n supported keywords depend on the query function\n\nExamples\n--------\n\n```lmps\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nkim query model index get_available_models species=[Al] potential_type=[eam]\n```\nThe result of the query is stored in one or more\n[string style variables ](https://docs.lammps.org/variable.html) as determined by the optional\n*formatarg* argument. For the \"list\"\nsetting of *formatarg* (or if *formatarg* is not specified), the result is\nreturned as a space-separated list of values in *variable* . The *formatarg*\nkeyword \"split\" separates the result values into individual variables of the\nform *prefix_I*, where *prefix* is set to the *kim query* *variable* argument\nand *I* ranges from 1 to the number of returned values. The number and order of\nthe returned values is determined by the type of query performed. The\n*formatarg* keyword \"index\" returns a [variable style index ](https://docs.lammps.org/variable.html)\nthat can be incremented via the [next ](https://docs.lammps.org/next.html) command. This enables the\nconstruction of simple loops over the returned values by the type of query\nperformed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim query* only supports queries that return a single result or an array of\n > values. More complex queries that return a JSON structure are not currently\n > supported. An attempt to use *kim query* in such cases will generate an\n > error. \n > \n\nThe second required argument *query_function* is the name of the query function\nto be called (e.g. *get_lattice_constant_cubic* ). All following\n[arguments ](https://docs.lammps.org/Commands_parse.html) are parameters handed over to the web query in\nthe format *keyword=value*, where *value* is always an array of one or more\ncomma-separated items in brackets. The list of supported keywords and the type\nand format of their values depend on the query function used. The current list\nof query functions is available on the OpenKIM webpage at\n[https://openkim.org/doc/usage/kim-query](https://openkim.org/doc/usage/kim-query).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All query functions, except *get_available_models*, require the\n > *model* keyword, which identifies the IM whose predictions are being queried.\n > *kim query* automatically generates the *model* keyword based on the IM set\n > in by *kim init*, and it can be overwritten if specified as an argument to\n > the *kim query*\\ . Where *kim init* is not specified, the *model* keyword\n > must be provided as an argument to the *kim query*\\ . \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each *query_function* is associated with a default method (implemented as a\n > [KIM Test](https://openkim.org/doc/evaluation/kim-tests/)) used to compute\n > this property. In cases where there are multiple methods in OpenKIM for\n > computing a property, a *method* keyword can be provided to select the method\n > of choice. See the\n > [query documentation](https://openkim.org/doc/usage/kim-query) to see which\n > methods are available for a given *query_function* . \n > \n\n*kim query* Usage Examples and Further Clarifications\n-----------------------------------------------------\n\nThe data obtained by *kim query* commands can be used as part of the setup or\nanalysis phases of LAMMPS simulations. Some examples are given below.\n\n**Define an equilibrium fcc crystal**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\nboundary p p p\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nlattice fcc ${a0}\n...\n```\n\n```lmps\nunits metal\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom] model=[EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005]\nlattice fcc ${a0}\n...\n```\nThe *kim query* command retrieves from [OpenKIM](https://openkim.org) the\nequilibrium lattice constant predicted by the Ercolessi and Adams (1994)\npotential for the fcc structure and places it in variable *a0* . This variable\nis then used on the next line to set up the crystal. By using *kim query*, the\nuser is saved the trouble and possible error of tracking this value down, or of\nhaving to perform an energy minimization to find the equilibrium lattice\nconstant.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In *unit_conversion_mode* the results obtained from a *kim query* would need\n > to be converted to the appropriate units system. For example, in the above\n > script, the lattice command would need to be changed to:\n > \"lattice fcc $(v_a0*v__u_distance)\". \n > \n\n**Define an equilibrium hcp crystal**\n\n```lmps\nkim init EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000 metal\nboundary p p p\nkim query latconst split get_lattice_constant_hexagonal crystal=[hcp] species=[Zr] units=[angstrom]\nlattice custom ${latconst_1} a1 0.5 -0.866025 0 a2 0.5 0.866025 0 a3 0 0 $(latconst_2/latconst_1) &\nbasis 0.333333 0.666666 0.25 basis 0.666666 0.333333 0.75\n...\n```\nIn this case the *kim query* returns two arguments (since the hexagonal close\npacked (hcp) structure has two independent lattice constants). The *formatarg*\nkeyword \"split\" places the two values into the variables *latconst_1* and\n*latconst_2* . (These variables are created if they do not already exist.)\n\n**Define a crystal at finite temperature accounting for thermal expansion**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\nboundary p p p\nkim query a0 get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom]\nkim query alpha get_linear_thermal_expansion_coefficient_cubic crystal=[fcc] species=[Al] units=[1/K] temperature=[293.15] temperature_units=[K]\nvariable DeltaT equal 300\nlattice fcc $(v_a0*v_alpha*v_DeltaT)\n...\n```\nAs in the previous example, the equilibrium lattice constant is obtained for the\nErcolessi and Adams (1994) potential. However, in this case the crystal is\nscaled to the appropriate lattice constant at room temperature (293.15 K) by\nusing the linear thermal expansion constant predicted by the potential.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When passing numerical values as arguments (as in the case of the temperature\n > in the above example) it is also possible to pass a tolerance indicating how\n > close to the value is considered a match. If no tolerance is passed a default\n > value is used. If multiple results are returned (indicating that the\n > tolerance is too large), *kim query* will return an error. See the\n > [query documentation](https://openkim.org/doc/usage/kim-query) to see which\n > numerical arguments and tolerances are available for a given\n > *query_function* . \n > \n\n**Compute defect formation energy**\n\n```lmps\nkim init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal\n...\n... Build fcc crystal containing some defect and compute the total energy\n... which is stored in the variable *Etot*\n...\nkim query Ec get_cohesive_energy_cubic crystal=[fcc] species=[Al] units=[eV]\nvariable Eform equal ${Etot} - count(all)*${Ec}\n...\n```\nThe defect formation energy *Eform* is computed by subtracting the ideal fcc\ncohesive energy of the atoms in the system from *Etot* . The ideal fcc\ncohesive energy of the atoms is obtained from\n[OpenKIM](https://openkim.org) for the Ercolessi and Adams (1994) potential.\n\n**Retrieve equilibrium fcc crystal of all EAM potentials that support a specific species**\n\n```lmps\nkim query model index get_available_models species=[Al] potential_type=[eam]\nlabel model_loop\nkim query latconst get_lattice_constant_cubic crystal=[fcc] species=[Al] units=[angstrom] model=[${model}]\nprint \"FCC lattice constant (${model} potential) = ${latconst}\"\n...\n... do something with current value of latconst\n...\nnext model\njump SELF model_loop\n```\nIn this example, the *index* mode of *formatarg* is used. The first *kim query*\nreturns the list of all available EAM potentials that support the *Al* species\nand archived in [OpenKIM](https://openkim.org). The result of the query\noperation is stored in the LAMMPS variable *model* as an index *variable* .\nThis variable is used later to access the values one at a time within a loop as\nshown in the example. The second *kim query* command retrieves from\n[OpenKIM](https://openkim.org) the equilibrium lattice constant predicted by\neach potential for the fcc structure and places it in variable *latconst* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*kim query* commands return results archived in\n > [OpenKIM](https://openkim.org). These results are obtained using programs\n > for computing material properties (KIM Tests and KIM Test Drivers) that were\n > contributed to OpenKIM. In order to give credit to Test developers, the\n > number of times results from these programs are queried is tracked. No other\n > information about the nature of the query or its source is recorded. \n > \n\n.. _param:\n\n #### Accessing KIM Model Parameters from LAMMPS (*kim param*)\n\nAll IMs are functional forms containing a set of parameters. These parameters'\nvalues are typically selected to best reproduce a training set of quantum\nmechanical calculations or available experimental data. For example, a\nLennard-Jones potential intended to model argon might have the values of its two\nparameters, epsilon, and sigma, fit to the dimer dissociation energy or\nthermodynamic properties at a critical point of the phase diagram.\n\nNormally a user employing an IM should not modify its parameters since, as noted\nabove, these are selected to reproduce material properties. However, there are\ncases where accessing and modifying IM parameters is desired, such as for\nassessing uncertainty, fitting an IM, or working with an ensemble of IMs. As\nexplained **IM_types**, IMs archived in OpenKIM are either Portable\nModels (PMs) or Simulator Models (SMs). KIM PMs are complete independent\nimplementations of an IM, whereas KIM SMs are wrappers to an IM implemented\nwithin LAMMPS. Two different mechanisms are provided for accessing IM\nparameters in these two cases:\n\n* For a KIM PM, the *kim param* command can be used to *get* and *set* the\n values of the PM's parameters as explained below.\n* For a KIM SM, the user should consult the documentation page for the specific\n IM and follow instructions there for how to modify its parameters (if\n possible).\n\nThe *kim param get* and *kim param set* commands provide an interface to access\nand change the parameters of a KIM PM that \"publishes\" its parameters and makes\nthem publicly available (see the\n[KIM API documentation](https://kim-api.readthedocs.io/en/devel/features.html)\nfor details).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *kim param set/get* command must be preceded by a *kim interactions*\n > command (or alternatively by a *pair_style kim* and *pair_coeff* commands).\n > The *kim param set* command may be used wherever a *pair_coeff* command may\n > occur. \n > \n\nSyntax\n------\n\n```lmps\nkim param get param_name index_range variable formatarg\nkim param set param_name index_range values\n```\n.. _formatarg_options:\n\n* param_name = name of a KIM portable model parameter (which is published by the\n PM and available for access). The specific string used to identify a parameter\n is defined by the PM. For example, for the\n [Stillinger-Weber (SW) potential in OpenKIM](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\n the parameter names are *A, B, p, q, sigma, gamma, cutoff, lambda, costheta0*\n* index_range = KIM portable model parameter index range (an integer for a\n single element, or pair of integers separated by a colon for a range of\n elements)\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list* or *split* or *explicit* (optional)\n\n```\n*list* = returns a single string with a list of space separated values\n(e.g. \"1.0 2.0 3.0\"), which is placed in a LAMMPS variable as\ndefined by the *variable* argument\n*split* = returns the values separately in new variables with names based\non the prefix specified in *variable* and a number appended to\nindicate which element in the list of values is in the variable\n*explicit* = returns the values separately in one more more variable names\nprovided as arguments that precede *formatarg* (default)\n* values = new value(s) to replace the current value(s) of a KIM portable model\nparameter\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The list of all the parameters that a PM exposes for access/mutation are\n > automatically written to the lammps log file when *kim init* is called. \n > \n\nEach published parameter of a KIM PM takes the form of an array of numerical\nvalues. The array can contain one element for a single-valued parameter, or a\nset of values. For example, the\n[multispecies SW potential for the Zn-Cd-Hg-S-Se-Te system](https://openkim.org/id/SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002)\nhas the same parameter names as the\n[single-species SW potential](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\nbut each parameter array contains 21 entries that correspond to the parameter\nvalues used for each pairwise combination of the model's six supported species\n(this model does not have parameters specific to individual ternary combinations\nof its supported species).\n\nThe *index_range* argument may either be an integer referring to a specific\nelement within the array associated with the parameter specified by\n*param_name*, or a pair of integers separated by a colon that refer to a slice\nof this array. In both cases, one-based indexing is used to refer to the\nentries of the array.\n\nThe result of a *get* operation for a specific *index_range* is stored in\none or more [LAMMPS string style variables ](https://docs.lammps.org/variable.html) as determined by the\noptional *formatarg* argument **formatarg_options** If\nnot specified, the default for *formatarg* is \"explicit\" for the *kim param*\ncommand.\n\nFor the case where the result is an array with multiple values (i.e.\n*index_range* contains a range), the optional \"split\" or \"explicit\" *formatarg*\nkeywords can be used to separate the results into multiple variables; see the\nexamples below. Multiple parameters can be retrieved with a single call to\n*kim param get* by repeating the argument list following *get* .\n\nFor a *set* operation, the *values* argument contains the new value(s) for the\nelement(s) of the parameter specified by *index_range* . For the case where\nmultiple values are being set, *values* contains a set of values separated by\nspaces. Multiple parameters can be set with a single call to *kim param set* by\nrepeating the argument list following *set* .\n\n*kim param* Usage Examples and Further Clarifications\n-----------------------------------------------------\n\nExamples of getting and setting KIM PM parameters with further clarifications\nare provided below.\n\n**Getting a scalar parameter**\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\n...\nkim interactions Si\nkim param get A 1 VARA\n```\nor\n\n```lmps\n...\npair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005\npair_coeff * * Si\nkim param get A 1 VARA\n```\nIn these cases, the value of the SW *A* parameter is retrieved and placed in the\nLAMMPS variable *VARA* . The variable *VARA* can be used in the remainder of\nthe input script in the same manner as any other LAMMPS variable.\n\n**Getting multiple scalar parameters with a single call**\n\n```lmps\n...\nkim interactions Si\nkim param get A 1 VARA B 1 VARB\n```\nIn this example, it is shown how to retrieve the *A* and *B* parameters of the\nSW potential and store them in the LAMMPS variables *VARA* and *VARB* .\n\n**Getting a range of values from a parameter**\n\nThere are several options when getting a range of values from a parameter\ndetermined by the *formatarg* argument.\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Te Zn Se\nkim param get lambda 7:9 LAM_TeTe LAM_TeZn LAM_TeSe\n```\nIn this case, *formatarg* is not specified and therefore the default\n\"explicit\" mode is used. (The behavior would be the same if the word\n*explicit* were added after *LAM_TeSe* .) Elements 7, 8 and 9 of parameter\nlambda retrieved by the *get* operation are placed in the LAMMPS variables\n*LAM_TeTe*, *LAM_TeZn* and *LAM_TeSe*, respectively.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the above example, elements 7-9 of the lambda parameter correspond to\n > Te-Te, Te-Zm and Te-Se interactions. This can be determined by visiting the\n > [model page for the specified potential](https://openkim.org/id/SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002)\n > and looking at its parameter file linked to at the bottom of the page (file\n > with .param ending) and consulting the README documentation provided with the\n > driver for the PM being used. A link to the driver is provided at the top of\n > the model page. \n > \n\n\n```lmps\n...\nkim interactions Te Zn Se\nkim param get lambda 15:17 LAMS list\nvariable LAM_VALUE index ${LAMS}\nlabel loop_on_lambda\n...\n... do something with the current value of lambda\n...\nnext LAM_VALUE\njump SELF loop_on_lambda\n```\nIn this case, the \"list\" mode of *formatarg* is used. The result of the *get*\noperation is stored in the LAMMPS variable *LAMS* as a string containing the\nthree retrieved values separated by spaces, e.g \"1.0 2.0 3.0\". This can be used\nin LAMMPS with an *index* variable to access the values one at a time within a\nloop as shown in the example. At each iteration of the loop *LAM_VALUE*\ncontains the current value of lambda.\n\n```lmps\n...\nkim interactions Te Zn Se\nkim param get lambda 15:17 LAM split\n```\nIn this case, the \"split\" mode of *formatarg* is used. The three values\nretrieved by the *get* operation are stored in the three LAMMPS variables\n*LAM_15*, *LAM_16* and *LAM_17* . The provided name \"LAM\" is used as prefix\nand the location in the lambda array is appended to create the variable names.\n\n**Setting a scalar parameter**\n\n```lmps\nkim init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal\n...\nkim interactions Si\nkim param set gamma 1 2.6\n```\nHere, the SW potential's gamma parameter is set to 2.6. Note that the *get*\nand *set* commands work together, so that a *get* following a *set* operation\nwill return the new value that was set. For example,\n\n```lmps\n...\nkim interactions Si\nkim param get gamma 1 ORIG_GAMMA\nkim param set gamma 1 2.6\nkim param get gamma 1 NEW_GAMMA\n...\nprint \"original gamma = ${ORIG_GAMMA}, new gamma = ${NEW_GAMMA}\"\n```\nHere, *ORIG_GAMMA* will contain the original gamma value for the SW potential,\nwhile *NEW_GAMMA* will contain the value 2.6.\n\n**Setting multiple scalar parameters with a single call**\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Cd Te\nvariable VARG equal 2.6\nvariable VARS equal 2.0951\nkim param set gamma 1 ${VARG} sigma 3 ${VARS}\n```\nIn this case, the first element of the *gamma* parameter and third element of\nthe *sigma* parameter are set to 2.6 and 2.0951, respectively. This example\nalso shows how LAMMPS variables can be used when setting parameters.\n\n**Setting a range of values of a parameter**\n\n```lmps\nkim init SW_ZhouWardMartin_2013_CdTeZnSeHgS__MO_503261197030_002 metal\n...\nkim interactions Cd Te Zn Se Hg S\nkim param set sigma 2:6 2.35214 2.23869 2.04516 2.43269 1.80415\n```\nIn this case, elements 2 through 6 of the parameter *sigma* are set to the\nvalues 2.35214, 2.23869, 2.04516, 2.43269 and 1.80415 in order.\n\n.. _property:\n\n #### Writing material properties in standard KIM Property Instance format (*kim property*)\n\nThe OpenKIM system includes a\ncollection of Tests (material property calculation codes), Models (interatomic\npotentials), Predictions, and Reference Data (DFT or experiments).\nSpecifically, a KIM Test is a computation that when coupled with a KIM Model\ngenerates the prediction of that model for a specific material property\nrigorously defined by a KIM Property Definition (see the\n[KIM Properties Framework](https://openkim.org/doc/schema/properties-framework/)_\nfor further details). A prediction of a material property for a given model is\na specific numerical realization of a property definition, referred to as a\n\"Property Instance.\" The objective of the *kim property* command is to make it\neasy to output material properties in a standardized, machine readable, format\nthat can be easily ingested by other programs. Additionally, it aims to make it\nas easy as possible to convert a LAMMPS script that computes a material property\ninto a KIM Test that can then be uploaded to\n[openkim.org](https://openkim.org)\n\nA developer interested in creating a KIM Test using a LAMMPS script should first\ndetermine whether a property definition that applies to their calculation\nalready exists in OpenKIM by searching the [properties page](https://openkim.org/properties). If none exists, it is possible to use a\nlocally defined property definition contained in a file until it can be\nuploaded to the official repository (see below). Once one or more applicable\nproperty definitions have been identified, the *kim property create*,\n*kim property modify*, *kim property remove*, and *kim property destroy*,\ncommands provide an interface to create, set, modify, remove, and destroy\ninstances of them within a LAMMPS script.\n\nSyntax\n------\n\n```lmps\nkim property create instance_id property_id\nkim property modify instance_id key key_name key_name_key key_name_value\nkim property remove instance_id key key_name\nkim property destroy instance_id\nkim property dump file\n```\n* instance_id = a positive integer identifying the KIM property instance;\n (note that the results file can contain multiple property instances)\n* property_id = identifier of a\n [KIM Property Definition](https://openkim.org/properties), which can be (1)\n a property short name, (2) the full unique ID of the property (including the\n contributor and date), (3) a file name corresponding to a local property\n definition file\n* key_name = one of the keys belonging to the specified KIM property definition\n* key_name_key = a key belonging to a key-value pair (standardized in the\n [KIM Properties Framework](https://openkim.org/doc/schema/properties-framework)_)\n* key_name_value = value to be associated with a key_name_key in a key-value\n pair\n* file = name of a file to write the currently defined set of KIM property\n instances to\n\nExamples of each of the three *property_id* cases are shown below,\n\n```lmps\nkim property create 1 atomic-mass\nkim property create 2 cohesive-energy-relation-cubic-crystal\n```\n\n```lmps\nkim property create 1 tag:brunnels@noreply.openkim.org,2016-05-11:property/atomic-mass\nkim property create 2 tag:staff@noreply.openkim.org,2014-04-15:property/cohesive-energy-relation-cubic-crystal\n```\n\n```lmps\nkim property create 1 new-property.edn\nkim property create 2 /home/mary/marys-kim-properties/dissociation-energy.edn\n```\nIn the last example, \"new-property.edn\" and\n\"/home/mary/marys-kim-properties/dissociation-energy.edn\" are the names of files\nthat contain user-defined (local) property definitions.\n\nA KIM property instance takes the form of a \"map\", i.e. a set of key-value\npairs akin to Perl's hash, Python's dictionary, or Java's Hashtable. It\nconsists of a set of property key names, each of which is referred to here by\nthe *key_name* argument, that are defined as part of the relevant KIM Property\nDefinition and include only lowercase alphanumeric characters and dashes. The\nvalue paired with each property key is itself a map whose possible keys are\ndefined as part of the [KIM Properties Framework](https://openkim.org/doc/schema/properties-framework)_; these keys are\nreferred to by the *key_name_key* argument and their associated values by the\n*key_name_value* argument. These values may either be scalars or arrays,\nas stipulated in the property definition.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Each map assigned to a *key_name* must contain the *key_name_key*\n > \"source-value\" and an associated *key_name_value* of the appropriate\n > type (as defined in the relevant KIM Property Definition). For keys that\n > are defined as having physical units, the \"source-unit\" *key_name_key* must\n > also be given a string value recognized by\n > [GNU units](https://www.gnu.org/software/units/). \n > \n\nOnce a *kim property create* command has been given to instantiate a property\ninstance, maps associated with the property's keys can be edited using the\n*kim property modify* command. In using this command, the special keyword\n\"key\" should be given, followed by the property key name and the key-value pair\nin the map associated with the key that is to be set. For example, the\n[atomic-mass](https://openkim.org/properties/show/2016-05-11/brunnels@noreply.openkim.org/atomic-mass)\nproperty definition consists of two property keys named \"mass\" and \"species.\"\nAn instance of this property could be created like so:\n\n```lmps\nkim property create 1 atomic-mass\nkim property modify 1 key species source-value Al\nkim property modify 1 key mass source-value 26.98154\nkim property modify 1 key mass source-unit amu\n```\nor, equivalently,\n\n```lmps\nkim property create 1 atomic-mass\nkim property modify 1 key species source-value Al &\nkey mass source-value 26.98154 &\nsource-unit amu\n```\n*kim property* Usage Examples and Further Clarifications\n--------------------------------------------------------\n\n**Create**\n\n```lmps\nkim property create instance_id property_id\n```\nThe *kim property create* command takes as input a property instance ID and the\nproperty definition name, and creates an initial empty property instance data\nstructure. For example,\n\n```lmps\nkim property create 1 atomic-mass\nkim property create 2 cohesive-energy-relation-cubic-crystal\n```\ncreates an empty property instance of the \"atomic-mass\" property definition\nwith instance ID 1 and an empty instance of the\n\"cohesive-energy-relation-cubic-crystal\" property with ID 2. A list of\npublished property definitions in OpenKIM can be found on the [properties page](https://openkim.org/properties).\n\nOne can also provide the name of a file in the current working directory or the\npath of a file containing a valid property definition. For example,\n\n```lmps\nkim property create 1 new-property.edn\n```\nwhere \"new-property.edn\" refers to a file name containing a new property\ndefinition that does not exist in OpenKIM.\n\nIf the *property_id* given cannot be found in OpenKIM and no file of this name\ncontaining a valid property definition can be found, this command will produce\nan error with an appropriate message. Calling *kim property create* with the\nsame instance ID multiple times will also produce an error.\n\n**Modify**\n\n```lmps\nkim property modify instance_id key key_name key_name_key key_name_value\n```\nThe *kim property modify* command incrementally builds the property instance\nby receiving property definition keys along with associated arguments. Each\n*key_name* is associated with a map containing one or more key-value pairs (in\nthe form of *key_name_key*-*key_name_value* pairs). For example,\n\n```lmps\nkim property modify 1 key species source-value Al\nkim property modify 1 key mass source-value 26.98154\nkim property modify 1 key mass source-unit amu\n```\nwhere the special keyword \"key\" is followed by a *key_name* (\"species\" or\n\"mass\" in the above) and one or more key-value pairs. These key-value pairs\nmay continue until either another \"key\" keyword is given or the end of the\ncommand line is reached. Thus, the above could equivalently be written as\n\n```lmps\nkim property modify 1 key species source-value Al &\nkey mass source-value 26.98154 &\nkey mass source-unit amu\n```\nAs an example of modifying multiple key-value pairs belonging to the map of a\nsingle property key, the following command modifies the map of the\n\"cohesive-potential-energy\" property key to contain the key \"source-unit\" which\nis assigned a value of \"eV\" and the key \"digits\" which is assigned a value of\n5,\n\n```lmps\nkim property modify 2 key cohesive-potential-energy source-unit eV digits 5\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The relevant data types of the values in the map are handled automatically\n > based on the specification of the key in the KIM Property Definition. In\n > the example above, this means that the value \"eV\" will automatically be\n > interpreted as a string while the value 5 will be interpreted as an integer. \n > \n\nThe values contained in maps can either be scalars, as in all of the examples\nabove, or arrays depending on which is stipulated in the corresponding Property\nDefinition. For one-dimensional arrays, a single one-based index must be\nsupplied that indicates which element of the array is to be modified. For\nmultidimensional arrays, multiple indices must be given depending on the\ndimensionality of the array.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All array indexing used by *kim property modify* is one-based, i.e. the\n > indices are enumerated 1, 2, 3, ... \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The dimensionality of arrays are defined in the the corresponding Property\n > Definition. The extent of each dimension of an array can either be a\n > specific finite number or indefinite and determined at run time. If\n > an array has a fixed extent, attempting to modify an out-of-range index will\n > fail with an error message. \n > \n\nFor example, the \"species\" property key of the\n[cohesive-energy-relation-cubic-crystal](https://openkim.org/properties/show/2014-04-15/staff@noreply.openkim.org/cohesive-energy-relation-cubic-crystal)\nproperty is a one-dimensional array that can contain any number of entries\nbased on the number of atoms in the unit cell of a given cubic crystal. To\nassign an array containing the string \"Al\" four times to the \"source-value\" key\nof the \"species\" property key, we can do so by issuing:\n\n```lmps\nkim property modify 2 key species source-value 1 Al\nkim property modify 2 key species source-value 2 Al\nkim property modify 2 key species source-value 3 Al\nkim property modify 2 key species source-value 4 Al\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >No declaration of the number of elements in this array was given;\n > *kim property modify* will automatically handle memory management to allow\n > an arbitrary number of elements to be added to the array. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the event that *kim property modify* is used to set the value of an\n > array index without having set the values of all lesser indices, they will\n > be assigned default values based on the data type associated with the key in\n > the map:\n >\n > > :columns: 2\n >\n > * Data type\n > * Default value\n > * int\n > * 0\n > * float\n > * 0.0\n > * string\n > * \\\"\\\"\n > * file\n > * \\\"\\\"\n >\n > For example, doing the following:\n >\n > >\n > kim property create 2 cohesive-energy-relation-cubic-crystal\n > kim property modify 2 key species source-value 4 Al\n >\n > will result in the \"source-value\" key in the map for the property key\n > \"species\" being assigned the array [\"\", \"\", \"\", \"Al\"]. \n > \n\nFor convenience, the index argument provided may refer to an inclusive range of\nindices by specifying two integers separated by a colon (the first integer must\nbe less than or equal to the second integer, and no whitespace should be\nincluded). Thus, the snippet above could equivalently be written:\n\n```lmps\nkim property modify 2 key species source-value 1:4 Al Al Al Al\n```\nCalling this command with a non-positive index, e.g.\n``kim property modify 2 key species source-value 0 Al``, or an incorrect\nnumber of input arguments, e.g.\n``kim property modify 2 key species source-value 1:4 Al Al``, will result in an\nerror.\n\nAs an example of modifying multidimensional arrays, consider the \"basis-atoms\"\nkey in the [cohesive-energy-relation-cubic-crystal](https://openkim.org/properties/show/2014-04-15/staff@noreply.openkim.org/cohesive-energy-relation-cubic-crystal)\nproperty definition. This is a two-dimensional array containing the fractional\ncoordinates of atoms in the unit cell of the cubic crystal. In the case of,\ne.g. a conventional fcc unit cell, the \"source-value\" key in the map associated\nwith this key should be assigned the following value:\n\n```text\n[[0.0, 0.0, 0.0],\n[0.5, 0.5, 0.0],\n[0.5, 0.0, 0.5],\n[0.0, 0.5, 0.5]]\n```\nWhile each of the twelve components could be set individually, we can instead\nset each row at a time using colon notation:\n\n```lmps\nkim property modify 2 key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0\nkim property modify 2 key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0\nkim property modify 2 key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5\nkim property modify 2 key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5\n```\nWhere the first index given refers to a row and the second index refers to a\ncolumn. We could, instead, choose to set each column at a time like so:\n\n```lmps\nkim property modify 2 key basis-atom-coordinates source-value 1:4 1 0.0 0.5 0.5 0.0 &\nkey basis-atom-coordinates source-value 1:4 2 0.0 0.5 0.0 0.5 &\nkey basis-atom-coordinates source-value 1:4 3 0.0 0.0 0.5 0.5\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Multiple calls of *kim property modify* made for the same instance ID\n > can be combined into a single invocation, meaning the following are\n > both valid:\n >\n > >\n > kim property modify 2 key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0 &\n > key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0 &\n > key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5 &\n > key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5\n >\n > >\n > kim property modify 2 key short-name source-value 1 fcc &\n > key species source-value 1:4 Al Al Al Al &\n > key a source-value 1:5 3.9149 4.0000 4.032 4.0817 4.1602 &\n > source-unit angstrom &\n > digits 5 &\n > key basis-atom-coordinates source-value 1 1:3 0.0 0.0 0.0 &\n > key basis-atom-coordinates source-value 2 1:3 0.5 0.5 0.0 &\n > key basis-atom-coordinates source-value 3 1:3 0.5 0.0 0.5 &\n > key basis-atom-coordinates source-value 4 1:3 0.0 0.5 0.5 \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For multidimensional arrays, only one colon-separated range is allowed\n > in the index listing. Therefore,\n >\n > >\n > kim property modify 2 key basis-atom-coordinates 1 1:3 0.0 0.0 0.0\n >\n > is valid but\n >\n > >\n > kim property modify 2 key basis-atom-coordinates 1:2 1:3 0.0 0.0 0.0 0.0 0.0 0.0\n >\n > is not. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After one sets a value in a map with the *kim property modify* command,\n > additional calls will overwrite the previous value. \n > \n\n**Remove**\n\n```lmps\nkim property remove instance_id key key_name\n```\nThe *kim property remove* command can be used to remove a property key from a\nproperty instance. For example,\n\n```lmps\nkim property remove 2 key basis-atom-coordinates\n```\n**Destroy**\n\n```lmps\nkim property destroy instance_id\n```\nThe *kim property destroy* command deletes a previously created property\ninstance ID. For example,\n\n```lmps\nkim property destroy 2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If this command is called with an instance ID that does not exist, no\n > error is raised. \n > \n\n**Dump**\n\nThe *kim property dump* command can be used to write the content of all\ncurrently defined property instances to a file:\n\n```lmps\nkim property dump file\n```\nFor example,\n\n```lmps\nkim property dump results.edn\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Issuing the *kim property dump* command clears all existing property\n > instances from memory. \n > \n\n #### Citation of OpenKIM IMs\n\nWhen publishing results obtained using OpenKIM IMs researchers are\nrequested to cite the OpenKIM project **kim-mainpaper**,\nKIM API **kim-api**, and the specific IM codes used in\nthe simulations, in addition to the relevant scientific references for\nthe IM. The citation format for an IM is displayed on its page on\n[OpenKIM](https://openkim.org) along with the corresponding BibTex\nfile, and is automatically added to the LAMMPS citation reminder.\n\nCiting the IM software (KIM infrastructure and specific PM or SM codes) used in\nthe simulation gives credit to the researchers who developed them and enables\nopen source efforts like OpenKIM to function.\n\nThere are two types of IMs archived in OpenKIM: \n \n* model = name of the KIM interatomic model (the KIM ID for models archived in\n OpenKIM)\n* user_units = the LAMMPS :doc:`units ` style assumed in the LAMMPS\n input script\n* unitarg = *unit_conversion_mode* (optional)\n* typeargs = atom type to species mapping (one entry per atom type) or\n *fixed_types* for models with a preset fixed mapping \n \n* param_name = name of a KIM portable model parameter (which is published by the\n PM and available for access). The specific string used to identify a parameter\n is defined by the PM. For example, for the\n [Stillinger-Weber (SW) potential in OpenKIM](https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005),\n the parameter names are *A, B, p, q, sigma, gamma, cutoff, lambda, costheta0*\n* index_range = KIM portable model parameter index range (an integer for a\n single element, or pair of integers separated by a colon for a range of\n elements)\n* variable(s) = single name or list of names of (string style) LAMMPS\n variable(s) where a query result or parameter get result is stored. Variables\n that do not exist will be created by the command\n* formatarg = *list* or *split* or *explicit* (optional) \n \n**(kim-mainpaper)** Tadmor, Elliott, Sethna, Miller and Becker, JOM, 63, 17 (2011).\ndoi: [https://doi.org/10.1007/s11837-011-0102-6](https://doi.org/10.1007/s11837-011-0102-6) \n \n**(kim-api)** Elliott, Tadmor and Bernstein, [https://openkim.org/kim-api](https://openkim.org/kim-api) (2011)\ndoi: [https://doi.org/10.25950/FF8F563A](https://doi.org/10.25950/FF8F563A) \n ", - "restrictions": "The *kim* command is part of the KIM package. It is only enabled if\nLAMMPS is built with that package. A requirement for the KIM package,\nis the KIM API library that must be downloaded from the [OpenKIM website](https://openkim.org/kim-api/) and installed before LAMMPS is\ncompiled. When installing LAMMPS from binary, the kim-api package is a\ndependency that is automatically downloaded and installed. The *kim\nquery* command requires the *libcurl* library to be installed. The *kim\nproperty* command requires *Python* 3.6 or later and the *kim-property*\npython package to be installed. See the KIM section of the\n[Packages details ](https://docs.lammps.org/Packages_details.html) for details.\n\nFurthermore, when using *kim* command to run KIM SMs, any packages required by\nthe native potential being used or other commands or fixes that it invokes must\nbe installed.\n", - "related": "[pair_style kim ](https://docs.lammps.org/pair_kim.html)\n\n----------\n\n.. _kim-mainpaper:\n\n**(Tadmor)** Tadmor, Elliott, Sethna, Miller and Becker, JOM, 63, 17 (2011).\ndoi: [https://doi.org/10.1007/s11837-011-0102-6](https://doi.org/10.1007/s11837-011-0102-6)\n\n.. _kim-api:\n\n**(Elliott)** Elliott, Tadmor and Bernstein, [https://openkim.org/kim-api](https://openkim.org/kim-api) (2011)\ndoi: [https://doi.org/10.25950/FF8F563A](https://doi.org/10.25950/FF8F563A)\n" -}, -{ - "command": [ - "dynamical_matrix" - ], - "syntax": [ - "dynamical_matrix group-ID style gamma args keyword value ..." - ], - "args": [ - [ + }, { - "arg": "dynamical_matrix", + "arg": "xrd", "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "lambda", "type": 2, "choices": [] }, { - "arg": "eskm", - "type": 3, - "choices": [ - "regular", - "eskm" - ] - }, - { - "arg": "gamma", + "arg": "type1", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "type2", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "typeN", "type": 2, "choices": [] }, + { + "arg": "echo", + "type": 3, + "choices": [ + "2Theta", + "c", + "LP", + "manual", + "echo" + ] + }, { "arg": "value", "type": 2, @@ -31793,20 +30841,20 @@ export const command_docs = [ } ] ], - "parameters": "* group-ID = ID of group of atoms to displace\n* style = regular or eskm\n* gamma = finite different displacement length (distance units)\n* one or more keyword/arg pairs may be appended \n *        keyword = file or binary \n         file name = name of output file for the dynamical matrix \n         binary arg = yes or no or gzip \n", - "examples": "\n```lmps\ndynamical_matrix 1 regular 0.000001\ndynamical_matrix 1 eskm 0.000001\ndynamical_matrix 3 regular 0.00004 file dynmat.dat\ndynamical_matrix 5 eskm 0.00000001 file dynamical.dat binary yes\n```\n", - "html_filename": "dynamical_matrix.html", - "short_description": "Calculate the dynamical matrix by finite difference of the selected group,\n\\[\n D = \\frac{\\Phi_{ij}^{\\alpha\\beta}}{\\sqrt{M_i M_j}}\\]\nwhere D is the dynamical matrix and \\(\\Phi\\) is the force constant\nmatrix defined by\n\\[\n \\Phi_{ij}^{\\alpha\\beta} = \\frac{\\partial^2 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta}}\\]\nThe output for the dynamical matrix is printed three elements at a time", - "description": "Calculate the dynamical matrix by finite difference of the selected group,\n\\[\n D = \\frac{\\Phi_{ij}^{\\alpha\\beta}}{\\sqrt{M_i M_j}}\\]\nwhere D is the dynamical matrix and \\(\\Phi\\) is the force constant\nmatrix defined by\n\\[\n \\Phi_{ij}^{\\alpha\\beta} = \\frac{\\partial^2 U}{\\partial x_{i,\\alpha} \\partial x_{j,\\beta}}\\]\nThe output for the dynamical matrix is printed three elements at a time.\nThe three elements are the three \\(\\beta\\) elements for a respective\ni/\\(\\alpha\\)/j combination. Each line is printed in order of j\nincreasing first, \\(\\alpha\\) second, and i last.\n\nIf the style eskm is selected, the dynamical matrix will be in units of\ninverse squared femtoseconds. These units will then conveniently leave\nfrequencies in THz.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "The command collects an array of nine times the number of atoms in a group\non every single MPI rank, so the memory requirements can be very significant\nfor large systems.\n\nThis command is part of the PHONON package. It is only enabled if\nLAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix phonon ](https://docs.lammps.org/fix_phonon.html), [fix numdiff ](https://docs.lammps.org/fix_numdiff.html),\n\n[compute hma ](https://docs.lammps.org/compute_hma.html) uses an analytic formulation of the\nHessian provided by a pair_style's Pair::single_hessian() function,\nif implemented.\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* xrd = style name of this compute command\n* lambda = wavelength of incident radiation (length units)\n* type1 type2 ... typeN = chemical symbol of each atom type (see valid options below)\n* zero or more keyword/value pairs may be appended\n* keyword = 2Theta or c or LP or manual or echo \n *        2Theta values = Min2Theta Max2Theta \n         Min2Theta,Max2Theta = minimum and maximum 2 theta range to explore \n         (radians or degrees) \n *        c values = c1 c2 c3 \n         c1,c2,c3 = parameters to adjust the spacing of the reciprocal \n         lattice nodes in the h, k, and l directions respectively \n *        LP value = switch to apply Lorentz-polarization factor \n         0/1 = off/on \n *        manual = flag to use manual spacing of reciprocal lattice points \n         based on the values of the c parameters \n *        echo = flag to provide extra output for debugging purposes \n", + "examples": "\n```lmps\ncompute 1 all xrd 1.541838 Al O 2Theta 0.087 0.87 c 1 1 1 LP 1 echo\ncompute 2 all xrd 1.541838 Al O 2Theta 10 100 c 0.05 0.05 0.05 LP 1 manual\n\nfix 1 all ave/histo/weight 1 1 1 0.087 0.87 250 c_1[1] c_1[2] mode vector file Rad2Theta.xrd\nfix 2 all ave/histo/weight 1 1 1 10 100 250 c_2[1] c_2[2] mode vector file Deg2Theta.xrd\n```\n", + "html_filename": "compute_xrd.html", + "short_description": "Define a computation that calculates X-ray diffraction intensity as described\nin **xrd-Coleman** on a mesh of reciprocal lattice nodes defined\nby the entire simulation domain (or manually) using a simulated radiation\nof wavelength *lambda*", + "description": "Define a computation that calculates X-ray diffraction intensity as described\nin **xrd-Coleman** on a mesh of reciprocal lattice nodes defined\nby the entire simulation domain (or manually) using a simulated radiation\nof wavelength *lambda*.\n\nThe X-ray diffraction intensity, \\(I\\), at each reciprocal lattice point,\n\\(k\\), is computed from the structure factor, \\(F\\), using the\nequations:\n\\[\\begin{align*} \n I &= L_p(\\theta)\\frac{F^{*}F}{N} \\\\\n F(\\mathbf{k}) &= \\sum_{j=1}^{N}f_j(\\theta)exp(2\\pi i \\mathbf{k}\\cdot \\mathbf{r}_j) \\\\\n L_p(\\theta) &= \\frac{1+\\cos^2(2\\theta)}{\\cos(\\theta)\\sin^2(\\theta)} \\\\\n \\frac{\\sin(\\theta)}{\\lambda} &= \\frac{\\left\\lVert\\mathbf{k}\\right\\rVert}{2} \\end{align*} \\]\nHere, \\(\\mathbf{k}\\) is the location of the reciprocal lattice node,\n\\(r_j\\) is the position of each atom, \\(f_j\\) are atomic\nscattering factors, *Lp* is the Lorentz-polarization factor, and\n\\(\\theta\\) is the scattering angle of diffraction. The\nLorentz-polarization factor can be turned off using the optional *LP*\nkeyword.\n\nDiffraction intensities are calculated on a three-dimensional mesh of\nreciprocal lattice nodes. The mesh spacing is defined either (a) by the\nentire simulation domain or (b) manually using selected values as shown\nin the 2D diagram below.\n\n ![Image](img/xrd_mesh.png) \n\nFor a mesh defined by the simulation domain, a rectilinear grid is\nconstructed with spacing \\(c A^{-1}\\) along each reciprocal lattice\naxis, where \\(A\\) is a matrix containing the vectors corresponding\nto the edges of the simulation cell. If one or two directions has\nnon-periodic boundary conditions, then the spacing in these directions\nis defined from the average of the (inversed) box lengths with periodic\nboundary conditions. Meshes defined by the simulation domain must\ncontain at least one periodic boundary.\n\nIf the *manual* flag is included, the mesh of reciprocal lattice nodes\nwill be defined using the *c* values for the spacing along each\nreciprocal lattice axis. Note that manual mapping of the reciprocal\nspace mesh is good for comparing diffraction results from multiple\nsimulations; however, it can reduce the likelihood that Bragg\nreflections will be satisfied unless small spacing parameters\n(\\(< 0.05~\\mathring{\\textrm{A}}^{-1}\\)) are implemented.\nMeshes with manual spacing do not require a periodic boundary.\n\nThe limits of the reciprocal lattice mesh are determined by range of\nscattering angles explored. The *2Theta* parameter allows the user\nto reduce the scattering angle range to only the region of interest\nwhich reduces the cost of the computation.\n\nThe atomic scattering factor, \\(f_j\\), accounts for the reduction in\ndiffraction intensity due to Compton scattering. Compute xrd uses\nanalytical approximations of the atomic scattering factors that vary\nfor each atom type (type1 type2 ... typeN) and angle of diffraction.\nThe analytic approximation is computed using the formula\n**Colliex**:\n\\[\n f_j\\left ( \\frac{\\sin(\\theta)}{\\lambda} \\right )=\\sum_{i=1}^{4}\n a_i \\exp\\left ( -b_i \\frac{\\sin^{2}(\\theta)}{\\lambda^{2}} \\right )+c\\]\nCoefficients parameterized by **Peng** are assigned for each\natom type designating the chemical symbol and charge of each atom\ntype. Valid chemical symbols for compute xrd are:\n\n| | | | | |\n|---|---|---|---|---|\n| H | He1- | He | Li | Li1+ |\n| Be | Be2+ | B | C | Cval |\n| N | O | O1- | F | F1- |\n| Ne | Na | Na1+ | Mg | Mg2+ |\n| Al | Al3+ | Si | Sival | Si4+ |\n| P | S | Cl | Cl1- | Ar |\n| K | Ca | Ca2+ | Sc | Sc3+ |\n| Ti | Ti2+ | Ti3+ | Ti4+ | V |\n| V2+ | V3+ | V5+ | Cr | Cr2+ |\n| Cr3+ | Mn | Mn2+ | Mn3+ | Mn4+ |\n| Fe | Fe2+ | Fe3+ | Co | Co2+ |\n| Co | Ni | Ni2+ | Ni3+ | Cu |\n| Cu1+ | Cu2+ | Zn | Zn2+ | Ga |\n| Ga3+ | Ge | Ge4+ | As | Se |\n| Br | Br1- | Kr | Rb | Rb1+ |\n| Sr | Sr2+ | Y | Y3+ | Zr |\n| Zr4+ | Nb | Nb3+ | Nb5+ | Mo |\n| Mo3+ | Mo5+ | Mo6+ | Tc | Ru |\n| Ru3+ | Ru4+ | Rh | Rh3+ | Rh4+ |\n| Pd | Pd2+ | Pd4+ | Ag | Ag1+ |\n| Ag2+ | Cd | Cd2+ | In | In3+ |\n| Sn | Sn2+ | Sn4+ | Sb | Sb3+ |\n| Sb5+ | Te | I | I1- | Xe |\n| Cs | Cs1+ | Ba | Ba2+ | La |\n| La3+ | Ce | Ce3+ | Ce4+ | Pr |\n| Pr3+ | Pr4+ | Nd | Nd3+ | Pm |\n| Pm3+ | Sm | Sm3+ | Eu | Eu2+ |\n| Eu3+ | Gd | Gd3+ | Tb | Tb3+ |\n| Dy | Dy3+ | Ho | Ho3+ | Er |\n| Er3+ | Tm | Tm3+ | Yb | Yb2+ |\n| Yb3+ | Lu | Lu3+ | Hf | Hf4+ |\n| Ta | Ta5+ | W | W6+ | Re |\n| Os | Os4+ | Ir | Ir3+ | Ir4+ |\n| Pt | Pt2+ | Pt4+ | Au | Au1+ |\n| Au3+ | Hg | Hg1+ | Hg2+ | Tl |\n| Tl1+ | Tl3+ | Pb | Pb2+ | Pb4+ |\n| Bi | Bi3+ | Bi5+ | Po | At |\n| Rn | Fr | Ra | Ra2+ | Ac |\n| Ac3+ | Th | Th4+ | Pa | U |\n| U3+ | U4+ | U6+ | Np | Np3+ |\n| Np4+ | Np6+ | Pu | Pu3+ | Pu4+ |\n| Pu6+ | Am | Cm | Bk | Cf |\n\nIf the *echo* keyword is specified, compute xrd will provide extra\nreporting information to the screen.\n\n #### Output info\n\nThis compute calculates a global array. The number of rows in the\narray is the number of reciprocal lattice nodes that are explored\nwhich by the mesh. The global array has two columns.\n\nThe first column contains the diffraction angle in the units (radians\nor degrees) provided with the *2Theta* values. The second column contains\nthe computed diffraction intensities as described above.\n\nThe array can be accessed by any command that uses global values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nAll array values calculated by this compute are \"intensive\".\n\n**(xrd-Coleman)** Coleman, Spearot, Capolungo, MSMSE, 21, 055020\n(2013). \n \n**(Colliex)** Colliex et al. International Tables for Crystallography\nVolume C: Mathematical and Chemical Tables, 249-429 (2004). \n \n**(Peng)** Peng, Ren, Dudarev, Whelan, Acta Crystallogr. A, 52, 257-76\n(1996). \n ", + "restrictions": "This compute is part of the DIFFRACTION package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe compute_xrd command does not work for triclinic cells.\n", + "related": "[fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[compute saed ](https://docs.lammps.org/compute_saed.html)\n" }, { "command": [ - "fix rheo/oxidation" + "fix" ], "syntax": [ - "fix ID group-ID rheo/oxidation cut btype rsurf" + "fix ID group-ID style args" ], "args": [ [ @@ -31826,41 +30874,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "rheo/oxidation", - "type": 1, - "choices": [] - }, - { - "arg": "cut", - "type": 2, - "choices": [] - }, - { - "arg": "btype", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "rsurf", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rheo/oxidation = style name of this fix command\n* cut = maximum bond length (distance units)\n* btype = type of bonds created\n* rsurf = distance from surface to create bonds (distance units) \n", - "examples": "\n```lmps\nfix 1 all rheo/oxidation 1.5 2 0.0\nfix 1 all rheo/oxidation 1.0 1 2.0\n```\n", - "html_filename": "fix_rheo_oxidation.html", - "short_description": "\nThis fix dynamically creates bonds on the surface of fluids to\nrepresent physical processes such as oxidation", - "description": "\nThis fix dynamically creates bonds on the surface of fluids to\nrepresent physical processes such as oxidation. It is intended\nfor use with bond style [bond rheo/shell ](https://docs.lammps.org/bond_rheo_shell.html).\n\nEvery timestep, particles check neighbors within a distance of *cut*.\nThis distance must be smaller than the kernel length defined in\n[fix rheo ](https://docs.lammps.org/fix_rheo.html). Bonds of type *btype* are created between\na fluid particle and either a fluid or solid neighbor. The fluid particles\nmust also be on the fluid surface, or within a distance of *rsurf* from\nthe surface. This process is further described in\n**howto_rheo_clemmer2**.\n\nIf used in conjunction with solid bodies, such as those generated\nby the *react* option of [fix rheo/thermal ](https://docs.lammps.org/fix_rheo_thermal.html),\nit is recommended to use a [hybrid bond style ](https://docs.lammps.org/bond_hybrid.html)\nwith different bond types for solid and oxide bonds.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(howto_rheo_clemmer2)** Clemmer, Pierce, O'Connor, Nevins, Jones, Lechman, Tencer, Appl. Math. Model., 130, 310-326 (2024). \n ", - "restrictions": "This fix must be used with the bond style [rheo/shell ](https://docs.lammps.org/bond_rheo_shell.html)\nand [fix rheo ](https://docs.lammps.org/fix_rheo.html) with surface detection enabled.\n\nThis fix is part of the RHEO package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n", - "related": "[fix rheo ](https://docs.lammps.org/fix_rheo.html),\n[bond rheo/shell ](https://docs.lammps.org/bond_rheo_shell.html),\n[compute rheo/property/atom ](https://docs.lammps.org/compute_rheo_property_atom.html)\n" + "parameters": "* ID = user-assigned name for the fix\n* group-ID = ID of the group of atoms to apply the fix to\n* style = one of a long list of possible style names (see below)\n* args = arguments used by a particular style \n", + "examples": "\n```lmps\nfix 1 all nve\nfix 3 all nvt temp 300.0 300.0 0.01\nfix mine top setforce 0.0 NULL 0.0\n```\n", + "html_filename": "fix.html", + "short_description": "Set a fix that will be applied to a group of atoms", + "description": "Set a fix that will be applied to a group of atoms. In LAMMPS, a\n\"fix\" is any operation that is applied to the system during\ntimestepping or minimization. Examples include updating of atom\npositions and velocities due to time integration, controlling\ntemperature, applying constraint forces to atoms, enforcing boundary\nconditions, computing diagnostics, etc. There are hundreds of fixes\ndefined in LAMMPS and new ones can be added; see the\n[Modify ](https://docs.lammps.org/Modify.html) page for details.\n\nFixes perform their operations at different stages of the timestep.\nIf two or more fixes operate at the same stage of the timestep, they are\ninvoked in the order they were specified in the input script.\n\nThe ID of a fix can only contain alphanumeric characters and\nunderscores.\n\nFixes can be deleted with the [unfix ](https://docs.lammps.org/unfix.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [unfix ](https://docs.lammps.org/unfix.html) command is the only way to turn off a\n > fix; simply specifying a new fix with a similar style will not turn\n > off the first one. This is especially important to realize for\n > integration fixes. For example, using a [fix nve ](https://docs.lammps.org/fix_nve.html)\n > command for a second run after using a [fix nvt ](https://docs.lammps.org/fix_nh.html) command\n > for the first run will not cancel out the NVT time integration\n > invoked by the \"fix nvt\" command. Thus, two time integrators would be\n > in place! \n > \n\nIf you specify a new fix with the same ID and style as an existing\nfix, the old fix is deleted and the new one is created (presumably\nwith new settings). This is the same as if an \"unfix\" command were\nfirst performed on the old fix, except that the new fix is kept in the\nsame order relative to the existing fixes as the old one originally\nwas. Note that this operation also wipes out any additional changes\nmade to the old fix via the [fix_modify ](https://docs.lammps.org/fix_modify.html) command.\n\nThe [fix modify ](https://docs.lammps.org/fix_modify.html) command allows settings for some\nfixes to be reset. See the page for individual fixes for details.\n\nSome fixes store an internal \"state\" which is written to binary\nrestart files via the [restart ](https://docs.lammps.org/restart.html) or\n[write_restart ](https://docs.lammps.org/write_restart.html) commands. This allows the fix to\ncontinue on with its calculations in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file. See the doc pages\nfor individual fixes for info on which ones can be restarted.\n\n----------\n\nSome fixes calculate and store any of four *styles* of quantities:\nglobal, per-atom, local, or per-grid.\n\nA global quantity is one or more system-wide values, e.g. the energy\nof a wall interacting with particles. A per-atom quantity is one or\nmore values per atom, e.g. the original coordinates of each atom at\ntime 0. Per-atom values are set to 0.0 for atoms not in the specified\nfix group. Local quantities are calculated by each processor based on\nthe atoms it owns, but there may be zero or more per atom, e.g. values\nfor each bond. Per-grid quantities are calculated on a regular 2d or\n3d grid which overlays a 2d or 3d simulation domain. The grid points\nand the data they store are distributed across processors; each\nprocessor owns the grid points which fall within its subdomain.\n\nAs a general rule of thumb, fixes that produce per-atom quantities\nhave the word \"atom\" at the end of their style, e.g. *ave/atom* .\nFixes that produce local quantities have the word \"local\" at the end\nof their style, e.g. *store/local* . Fixes that produce per-grid\nquantities have the word \"grid\" at the end of their style,\ne.g. *ave/grid* .\n\nGlobal, per-atom, local, and per-grid quantities can also be of three\n*kinds*: a single scalar value (global only), a vector of values, or a\n2d array of values. For per-atom, local, and per-grid quantities, a\n\"vector\" means a single value for each atom, each local entity\n(e.g. bond), or grid cell. Likewise an \"array\", means multiple values\nfor each atom, each local entity, or each grid cell.\n\nNote that a single fix can produce any combination of global,\nper-atom, local, or per-grid values. Likewise it can produce any\ncombination of scalar, vector, or array output for each style. The\nexception is that for per-atom, local, and per-grid output, either a\nvector or array can be produced, but not both. The doc page for each\nfix explains the values it produces, if any.\n\nWhen a fix output is accessed by another input script command it is\nreferenced via the following bracket notation, where ID is the ID of\nthe fix:\n\n| | |\n|---|---|\n| f_ID | entire scalar, vector, or array |\n| f_ID[I] | one element of vector, one column of array |\n| f_ID[I][J] | one element of array |\n\nIn other words, using one bracket reduces the dimension of the\nquantity once (vector \\(\\to\\) scalar, array \\(\\to\\) vector).\nUsing two brackets reduces the dimension twice (array \\(\\to\\)\nscalar). Thus, for example, a command that uses global scalar fix\nvalues as input can also process elements of a vector or array.\nDepending on the command, this can either be done directly using the\nsyntax in the table, or by first defining a [variable ](https://docs.lammps.org/variable.html)\nof the appropriate style to store the quantity, then using the\nvariable as an input to the command.\n\nNote that commands and [variables ](https://docs.lammps.org/variable.html) which take fix\noutputs as input typically do not allow for all styles and kinds of\ndata (e.g., a command may require global but not per-atom values, or\nit may require a vector of values, not a scalar). This means there is\ntypically no ambiguity about referring to a fix output as c_ID even if\nit produces, for example, both a scalar and vector. The doc pages for\nvarious commands explain the details, including how any ambiguities\nare resolved.\n\n----------\n\nIn LAMMPS, the values generated by a fix can be used in several ways:\n\n* Global values can be output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) or [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n Alternatively, the values can be referenced in an\n [equal-style variable ](https://docs.lammps.org/variable.html) command.\n* Per-atom values can be output via the [dump custom ](https://docs.lammps.org/dump.html) command,\n or they can be time-averaged via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html)\n command or reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command. Alternatively, per-atom values can be referenced in an\n [atom-style variable ](https://docs.lammps.org/variable.html).\n* Local values can be reduced by the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n command or histogrammed by the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html) command.\n They can also be output by the [dump local ](https://docs.lammps.org/dump.html) command.\n\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for a summary of\nvarious LAMMPS output options, many of which involve fixes.\n\nThe results of fixes that calculate global quantities can be either\n\"intensive\" or \"extensive\" values. Intensive means the value is\nindependent of the number of atoms in the simulation\n(e.g., temperature). Extensive means the value scales with the number of\natoms in the simulation (e.g., total rotational kinetic energy).\n[Thermodynamic output ](https://docs.lammps.org/thermo_style.html) will normalize extensive\nvalues by the number of atoms in the system, depending on the\n\"thermo_modify norm\" setting. It will not normalize intensive values.\nIf a fix value is accessed in another way (e.g., by a\n[variable ](https://docs.lammps.org/variable.html)), you may want to know whether it is an\nintensive or extensive value. See the page for individual fix styles\nfor further info.\n\n----------\n\nEach fix style has its own page that describes its arguments and\nwhat it does, as listed below. Here is an alphabetical list of fix\nstyles available in LAMMPS. They are also listed in more compact form\non the [Commands fix ](https://docs.lammps.org/Commands_fix.html) doc page.\n\nThere are also additional accelerated fix styles included in the\nLAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.\nThe individual style names on the [Commands fix ](https://docs.lammps.org/Commands_fix.html) doc\npage are followed by one or more of (g,i,k,o,t) to indicate which\naccelerated styles exist.\n\n* [accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html) - apply cosine-shaped acceleration to atoms\n* [acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html) - apply ACKS2 charge equilibration\n* [adapt ](https://docs.lammps.org/fix_adapt.html) - change a simulation parameter over time\n* [adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) - enhanced version of fix adapt\n* [addforce ](https://docs.lammps.org/fix_addforce.html) - add a force to each atom\n* [addtorque ](https://docs.lammps.org/fix_addtorque.html) - add a torque to a group of atoms\n* [alchemy ](https://docs.lammps.org/fix_alchemy.html) - perform an \"alchemical transformation\" between two partitions\n* [amoeba/bitorsion ](https://docs.lammps.org/fix_amoeba_bitorsion.html) - torsion/torsion terms in AMOEBA force field\n* [amoeba/pitorsion ](https://docs.lammps.org/fix_amoeba_pitorsion.html) - 6-body terms in AMOEBA force field\n* [append/atoms ](https://docs.lammps.org/fix_append_atoms.html) - append atoms to a running simulation\n* [atc ](https://docs.lammps.org/fix_atc.html) - initiates a coupled MD/FE simulation\n* [atom/swap ](https://docs.lammps.org/fix_atom_swap.html) - Monte Carlo atom type swapping\n* [ave/atom ](https://docs.lammps.org/fix_ave_atom.html) - compute per-atom time-averaged quantities\n* [ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) - compute per-chunk time-averaged quantities\n* [ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) - compute/output time correlations\n* [ave/correlate/long ](https://docs.lammps.org/fix_ave_correlate_long.html) - alternative to [ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) that allows efficient calculation over long time windows\n* [ave/grid ](https://docs.lammps.org/fix_ave_grid.html) - compute per-grid time-averaged quantities\n* [ave/histo ](https://docs.lammps.org/fix_ave_histo.html) - compute/output time-averaged histograms\n* [ave/histo/weight ](https://docs.lammps.org/fix_ave_histo.html) - weighted version of fix ave/histo\n* [ave/time ](https://docs.lammps.org/fix_ave_time.html) - compute/output global time-averaged quantities\n* [aveforce ](https://docs.lammps.org/fix_aveforce.html) - add an averaged force to each atom\n* [balance ](https://docs.lammps.org/fix_balance.html) - perform dynamic load-balancing\n* [brownian ](https://docs.lammps.org/fix_brownian.html) - overdamped translational brownian motion\n* [brownian/asphere ](https://docs.lammps.org/fix_brownian.html) - overdamped translational and rotational brownian motion for ellipsoids\n* [brownian/sphere ](https://docs.lammps.org/fix_brownian.html) - overdamped translational and rotational brownian motion for spheres\n* [bocs ](https://docs.lammps.org/fix_bocs.html) - NPT style time integration with pressure correction\n* [bond/break ](https://docs.lammps.org/fix_bond_break.html) - break bonds on the fly\n* [bond/create ](https://docs.lammps.org/fix_bond_create.html) - create bonds on the fly\n* [bond/create/angle ](https://docs.lammps.org/fix_bond_create.html) - create bonds on the fly with angle constraints\n* [bond/react ](https://docs.lammps.org/fix_bond_react.html) - apply topology changes to model reactions\n* [bond/swap ](https://docs.lammps.org/fix_bond_swap.html) - Monte Carlo bond swapping\n* [box/relax ](https://docs.lammps.org/fix_box_relax.html) - relax box size during energy minimization\n* [charge/regulation ](https://docs.lammps.org/fix_charge_regulation.html) - Monte Carlo sampling of charge regulation\n* [cmap ](https://docs.lammps.org/fix_cmap.html) - CMAP torsion/torsion terms in CHARMM force field\n* [colvars ](https://docs.lammps.org/fix_colvars.html) - interface to the collective variables \"Colvars\" library\n* [controller ](https://docs.lammps.org/fix_controller.html) - apply control loop feedback mechanism\n* [damping/cundall ](https://docs.lammps.org/fix_damping_cundall.html) - Cundall non-viscous damping for granular simulations\n* [deform ](https://docs.lammps.org/fix_deform.html) - change the simulation box size/shape\n* [deform/pressure ](https://docs.lammps.org/fix_deform_pressure.html) - change the simulation box size/shape with additional loading conditions\n* [deposit ](https://docs.lammps.org/fix_deposit.html) - add new atoms above a surface\n* [dpd/energy ](https://docs.lammps.org/fix_dpd_energy.html) - constant energy dissipative particle dynamics\n* [drag ](https://docs.lammps.org/fix_drag.html) - drag atoms towards a defined coordinate\n* [drude ](https://docs.lammps.org/fix_drude.html) - part of Drude oscillator polarization model\n* [drude/transform/direct ](https://docs.lammps.org/fix_drude_transform.html) - part of Drude oscillator polarization model\n* [drude/transform/inverse ](https://docs.lammps.org/fix_drude_transform.html) - part of Drude oscillator polarization model\n* [dt/reset ](https://docs.lammps.org/fix_dt_reset.html) - reset the timestep based on velocity, forces\n* [edpd/source ](https://docs.lammps.org/fix_dpd_source.html) - add heat source to eDPD simulations\n* [efield ](https://docs.lammps.org/fix_efield.html) - impose electric field on system\n* [efield/tip4p ](https://docs.lammps.org/fix_efield.html) - impose electric field on system with TIP4P molecules\n* [ehex ](https://docs.lammps.org/fix_ehex.html) - enhanced heat exchange algorithm\n* [electrode/conp ](https://docs.lammps.org/fix_electrode.html) - impose electric potential\n* [electrode/conq ](https://docs.lammps.org/fix_electrode.html) - impose total electric charge\n* [electrode/thermo ](https://docs.lammps.org/fix_electrode.html) - apply thermo-potentiostat\n* [electron/stopping ](https://docs.lammps.org/fix_electron_stopping.html) - electronic stopping power as a friction force\n* [electron/stopping/fit ](https://docs.lammps.org/fix_electron_stopping.html) - electronic stopping power as a friction force\n* [enforce2d ](https://docs.lammps.org/fix_enforce2d.html) - zero out *z*-dimension velocity and force\n* [eos/cv ](https://docs.lammps.org/fix_eos_cv.html) - applies a mesoparticle equation of state to relate the particle internal energy to the particle internal temperature\n* [eos/table ](https://docs.lammps.org/fix_eos_table.html) - applies a tabulated mesoparticle equation of state to relate the particle internal energy to the particle internal temperature\n* [eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html) - applies a tabulated mesoparticle equation of state to relate the concentration-dependent particle internal energy to the particle internal temperature\n* [evaporate ](https://docs.lammps.org/fix_evaporate.html) - remove atoms from simulation periodically\n* [external ](https://docs.lammps.org/fix_external.html) - callback to an external driver program\n* [ffl ](https://docs.lammps.org/fix_ffl.html) - apply a Fast-Forward Langevin equation thermostat\n* [filter/corotate ](https://docs.lammps.org/fix_filter_corotate.html) - implement corotation filter to allow larger timesteps with r-RESPA\n* [flow/gauss ](https://docs.lammps.org/fix_flow_gauss.html) - Gaussian dynamics for constant mass flux\n* [freeze ](https://docs.lammps.org/fix_freeze.html) - freeze atoms in a granular simulation\n* [gcmc ](https://docs.lammps.org/fix_gcmc.html) - grand canonical insertions/deletions\n* [gld ](https://docs.lammps.org/fix_gld.html) - generalized Langevin dynamics integrator\n* [gle ](https://docs.lammps.org/fix_gle.html) - generalized Langevin equation thermostat\n* [gravity ](https://docs.lammps.org/fix_gravity.html) - add gravity to atoms in a granular simulation\n* [grem ](https://docs.lammps.org/fix_grem.html) - implements the generalized replica exchange method\n* [halt ](https://docs.lammps.org/fix_halt.html) - terminate a dynamics run or minimization\n* [heat ](https://docs.lammps.org/fix_heat.html) - add/subtract momentum-conserving heat\n* [heat/flow ](https://docs.lammps.org/fix_heat_flow.html) - plain time integration of heat flow with per-atom temperature updates\n* [hyper/global ](https://docs.lammps.org/fix_hyper_global.html) - global hyperdynamics\n* [hyper/local ](https://docs.lammps.org/fix_hyper_local.html) - local hyperdynamics\n* [imd ](https://docs.lammps.org/fix_imd.html) - implements the \"Interactive MD\" (IMD) protocol\n* [indent ](https://docs.lammps.org/fix_indent.html) - impose force due to an indenter\n* [ipi ](https://docs.lammps.org/fix_ipi.html) - enable LAMMPS to run as a client for i-PI path-integral simulations\n* [langevin ](https://docs.lammps.org/fix_langevin.html) - Langevin temperature control\n* [langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html) - Langevin temperature control of Drude oscillators\n* [langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html) - Langevin temperature control for the electron force field model\n* [langevin/spin ](https://docs.lammps.org/fix_langevin_spin.html) - Langevin temperature control for a spin or spin-lattice system\n* [lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) - lattice-Boltzmann fluid on a uniform mesh\n* [lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html) - [fix momentum ](https://docs.lammps.org/fix_momentum.html) replacement for use with a lattice-Boltzmann fluid\n* [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) - [fix viscous ](https://docs.lammps.org/fix_viscous.html) replacement for use with a lattice-Boltzmann fluid\n* [lineforce ](https://docs.lammps.org/fix_lineforce.html) - constrain atoms to move in a line\n* [manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html) - restrain atoms to a manifold during minimization\n* [mdi/qm ](https://docs.lammps.org/fix_mdi_qm.html) - LAMMPS operates as a client for a quantum code via the MolSSI Driver Interface (MDI)\n* [mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html) - LAMMPS operates as client for QM/MM simulation with a quantum code via the MolSSI Driver Interface (MDI)\n* [meso/move ](https://docs.lammps.org/fix_meso_move.html) - move mesoscopic SPH/SDPD particles in a prescribed fashion\n* [mol/swap ](https://docs.lammps.org/fix_mol_swap.html) - Monte Carlo atom type swapping with a molecule\n* [momentum ](https://docs.lammps.org/fix_momentum.html) - zero the linear and/or angular momentum of a group of atoms\n* [momentum/chunk ](https://docs.lammps.org/fix_momentum.html) - zero the linear and/or angular momentum of a chunk of atoms\n* [move ](https://docs.lammps.org/fix_move.html) - move atoms in a prescribed fashion\n* [msst ](https://docs.lammps.org/fix_msst.html) - multi-scale shock technique (MSST) integration\n* [mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) - DPD using the modified velocity-Verlet integration algorithm\n* [mvv/edpd ](https://docs.lammps.org/fix_mvv_dpd.html) - constant energy DPD using the modified velocity-Verlet algorithm\n* [mvv/tdpd ](https://docs.lammps.org/fix_mvv_dpd.html) - constant temperature DPD using the modified velocity-Verlet algorithm\n* [neb ](https://docs.lammps.org/fix_neb.html) - nudged elastic band (NEB) spring forces\n* [neb/spin ](https://docs.lammps.org/fix_neb_spin.html) - nudged elastic band (NEB) spring forces for spins\n* [nonaffine/displacement ](https://docs.lammps.org/fix_nonaffine_displacement.html) - calculate nonaffine displacement of atoms\n* [nph ](https://docs.lammps.org/fix_nh.html) - constant NPH time integration via Nose/Hoover\n* [nph/asphere ](https://docs.lammps.org/fix_nph_asphere.html) - NPH for aspherical particles\n* [nph/body ](https://docs.lammps.org/fix_nph_body.html) - NPH for body particles\n* [nph/eff ](https://docs.lammps.org/fix_nh_eff.html) - NPH for nuclei and electrons in the electron force field model\n* [nph/sphere ](https://docs.lammps.org/fix_nph_sphere.html) - NPH for spherical particles\n* [nphug ](https://docs.lammps.org/fix_nphug.html) - constant-stress Hugoniostat integration\n* [npt ](https://docs.lammps.org/fix_nh.html) - constant NPT time integration via Nose/Hoover\n* [npt/asphere ](https://docs.lammps.org/fix_npt_asphere.html) - NPT for aspherical particles\n* [npt/body ](https://docs.lammps.org/fix_npt_body.html) - NPT for body particles\n* [npt/cauchy ](https://docs.lammps.org/fix_npt_cauchy.html) - NPT with Cauchy stress\n* [npt/eff ](https://docs.lammps.org/fix_nh_eff.html) - NPT for nuclei and electrons in the electron force field model\n* [npt/sphere ](https://docs.lammps.org/fix_npt_sphere.html) - NPT for spherical particles\n* [npt/uef ](https://docs.lammps.org/fix_nh_uef.html) - NPT style time integration with diagonal flow\n* [numdiff ](https://docs.lammps.org/fix_numdiff.html) - numerically approximate atomic forces using finite energy differences\n* [numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html) - numerically approximate virial stress tensor using finite energy differences\n* [nve ](https://docs.lammps.org/fix_nve.html) - constant NVE time integration\n* [nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html) - NVE for aspherical particles\n* [nve/asphere/noforce ](https://docs.lammps.org/fix_nve_asphere_noforce.html) - NVE for aspherical particles without forces\n* [nve/awpmd ](https://docs.lammps.org/fix_nve_awpmd.html) - NVE for the Antisymmetrized Wave Packet Molecular Dynamics model\n* [nve/body ](https://docs.lammps.org/fix_nve_body.html) - NVE for body particles\n* [nve/dot ](https://docs.lammps.org/fix_nve_dot.html) - rigid body constant energy time integrator for coarse grain models\n* [nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) - Langevin style rigid body time integrator for coarse grain models\n* [nve/eff ](https://docs.lammps.org/fix_nve_eff.html) - NVE for nuclei and electrons in the electron force field model\n* [nve/limit ](https://docs.lammps.org/fix_nve_limit.html) - NVE with limited step length\n* [nve/line ](https://docs.lammps.org/fix_nve_line.html) - NVE for line segments\n* [nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html) - NVE time integration for atoms constrained to a curved surface (manifold)\n* [nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html) - NVE without forces (update positions only)\n* [nve/sphere ](https://docs.lammps.org/fix_nve_sphere.html) - NVE for spherical particles\n* [nve/bpm/sphere ](https://docs.lammps.org/fix_nve_bpm_sphere.html) - NVE for spherical particles used in the BPM package\n* [nve/spin ](https://docs.lammps.org/fix_nve_spin.html) - NVE for a spin or spin-lattice system\n* [nve/tri ](https://docs.lammps.org/fix_nve_tri.html) - NVE for triangles\n* [nvk ](https://docs.lammps.org/fix_nvk.html) - constant kinetic energy time integration\n* [nvt ](https://docs.lammps.org/fix_nh.html) - NVT time integration via Nose/Hoover\n* [nvt/asphere ](https://docs.lammps.org/fix_nvt_asphere.html) - NVT for aspherical particles\n* [nvt/body ](https://docs.lammps.org/fix_nvt_body.html) - NVT for body particles\n* [nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) - NVE for nuclei and electrons in the electron force field model\n* [nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html) - NVT time integration for atoms constrained to a curved surface (manifold)\n* [nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) - NVT for NEMD with SLLOD equations\n* [nvt/sllod/eff ](https://docs.lammps.org/fix_nvt_sllod_eff.html) - NVT for NEMD with SLLOD equations for the electron force field model\n* [nvt/sphere ](https://docs.lammps.org/fix_nvt_sphere.html) - NVT for spherical particles\n* [nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) - NVT style time integration with diagonal flow\n* [oneway ](https://docs.lammps.org/fix_oneway.html) - constrain particles on move in one direction\n* [orient/bcc ](https://docs.lammps.org/fix_orient.html) - add grain boundary migration force for BCC\n* [orient/fcc ](https://docs.lammps.org/fix_orient.html) - add grain boundary migration force for FCC\n* [orient/eco ](https://docs.lammps.org/fix_orient_eco.html) - add generalized grain boundary migration force\n* [pafi ](https://docs.lammps.org/fix_pafi.html) - constrained force averages on hyper-planes to compute free energies (PAFI)\n* [pair ](https://docs.lammps.org/fix_pair.html) - access per-atom info from pair styles\n* [phonon ](https://docs.lammps.org/fix_phonon.html) - calculate dynamical matrix from MD simulations\n* [pimd/langevin ](https://docs.lammps.org/fix_pimd.html) - Feynman path-integral molecular dynamics with stochastic thermostat\n* [pimd/nvt ](https://docs.lammps.org/fix_pimd.html) - Feynman path-integral molecular dynamics with Nose-Hoover thermostat\n* [planeforce ](https://docs.lammps.org/fix_planeforce.html) - constrain atoms to move in a plane\n* [plumed ](https://docs.lammps.org/fix_plumed.html) - wrapper on PLUMED free energy library\n* [poems ](https://docs.lammps.org/fix_poems.html) - constrain clusters of atoms to move as coupled rigid bodies\n* [polarize/bem/gmres ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with generalized minimum residual (GMRES)\n* [polarize/bem/icc ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with the successive over-relaxation algorithm\n* [polarize/functional ](https://docs.lammps.org/fix_polarize.html) - compute induced charges at the interface between impermeable media with different dielectric constants with the energy variational approach\n* [pour ](https://docs.lammps.org/fix_pour.html) - pour new atoms/molecules into a granular simulation domain\n* [precession/spin ](https://docs.lammps.org/fix_precession_spin.html) - apply a precession torque to each magnetic spin\n* [press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html) - pressure control by Berendsen barostat\n* [press/langevin ](https://docs.lammps.org/fix_press_langevin.html) - pressure control by Langevin barostat\n* [print ](https://docs.lammps.org/fix_print.html) - print text and variables during a simulation\n* [propel/self ](https://docs.lammps.org/fix_propel_self.html) - model self-propelled particles\n* [property/atom ](https://docs.lammps.org/fix_property_atom.html) - add customized per-atom values\n* [python/invoke ](https://docs.lammps.org/fix_python_invoke.html) - call a Python function during a simulation\n* [python/move ](https://docs.lammps.org/fix_python_move.html) - move particles using a Python function during a simulation run\n* [qbmsst ](https://docs.lammps.org/fix_qbmsst.html) - quantum bath multi-scale shock technique time integrator\n* [qeq/comb ](https://docs.lammps.org/fix_qeq_comb.html) - charge equilibration for COMB potential\n* [qeq/dynamic ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via dynamic method\n* [qeq/fire ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via FIRE minimizer\n* [qeq/point ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via point method\n* [qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) - charge equilibration for ReaxFF potential\n* [qeq/shielded ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via shielded method\n* [qeq/slater ](https://docs.lammps.org/fix_qeq.html) - charge equilibration via Slater method\n* [qmmm ](https://docs.lammps.org/fix_qmmm.html) - functionality to enable a quantum mechanics/molecular mechanics coupling\n* [qtb ](https://docs.lammps.org/fix_qtb.html) - implement quantum thermal bath scheme\n* [rattle ](https://docs.lammps.org/fix_shake.html) - RATTLE constraints on bonds and/or angles\n* [reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html) - write out ReaxFF bond information\n* [reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html) - write out ReaxFF molecule information\n* [recenter ](https://docs.lammps.org/fix_recenter.html) - constrain the center-of-mass position of a group of atoms\n* [restrain ](https://docs.lammps.org/fix_restrain.html) - constrain a bond, angle, dihedral\n* [rhok ](https://docs.lammps.org/fix_rhok.html) - add bias potential for long-range ordered systems\n* [rigid ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NVE integration\n* [rigid/meso ](https://docs.lammps.org/fix_rigid_meso.html) - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body\n* [rigid/nph ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NPH integration\n* [rigid/nph/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NPH integration\n* [rigid/npt ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NPT integration\n* [rigid/npt/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NPT integration\n* [rigid/nve ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration\n* [rigid/nve/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with alternate NVE integration\n* [rigid/nvt ](https://docs.lammps.org/fix_rigid.html) - constrain one or more clusters of atoms to move as a rigid body with NVT integration\n* [rigid/nvt/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NVT integration\n* [rigid/small ](https://docs.lammps.org/fix_rigid.html) - constrain many small clusters of atoms to move as a rigid body with NVE integration\n* [rx ](https://docs.lammps.org/fix_rx.html) - solve reaction kinetic ODEs for a defined reaction set\n* [saed/vtk ](https://docs.lammps.org/fix_saed_vtk.html) - time-average the intensities from [compute saed ](https://docs.lammps.org/compute_saed.html)\n* [setforce ](https://docs.lammps.org/fix_setforce.html) - set the force on each atom\n* [setforce/spin ](https://docs.lammps.org/fix_setforce.html) - set magnetic precession vectors on each atom\n* [sgcmc ](https://docs.lammps.org/fix_sgcmc.html) - fix for hybrid semi-grand canonical MD/MC simulations\n* [shake ](https://docs.lammps.org/fix_shake.html) - SHAKE constraints on bonds and/or angles\n* [shardlow ](https://docs.lammps.org/fix_shardlow.html) - integration of DPD equations of motion using the Shardlow splitting\n* [smd ](https://docs.lammps.org/fix_smd.html) - applied a steered MD force to a group\n* [smd/adjust_dt ](https://docs.lammps.org/fix_smd_adjust_dt.html) - calculate a new stable time increment for use with SMD integrators\n* [smd/integrate_tlsph ](https://docs.lammps.org/fix_smd_integrate_tlsph.html) - explicit time integration with total Lagrangian SPH pair style\n* [smd/integrate_ulsph ](https://docs.lammps.org/fix_smd_integrate_ulsph.html) - explicit time integration with updated Lagrangian SPH pair style\n* [smd/move_tri_surf ](https://docs.lammps.org/fix_smd_move_triangulated_surface.html) - update position and velocity near rigid surfaces using SPH integrators\n* [smd/setvel ](https://docs.lammps.org/fix_smd_setvel.html) - sets each velocity component, ignoring forces, for Smooth Mach Dynamics\n* [smd/wall_surface ](https://docs.lammps.org/fix_smd_wall_surface.html) - create a rigid wall with a triangulated surface for use in Smooth Mach Dynamics\n* [sph ](https://docs.lammps.org/fix_sph.html) - time integration for SPH/DPDE particles\n* [sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html) - update energy and density but not position or velocity in Smooth Particle Hydrodynamics\n* [spring ](https://docs.lammps.org/fix_spring.html) - apply harmonic spring force to group of atoms\n* [spring/chunk ](https://docs.lammps.org/fix_spring_chunk.html) - apply harmonic spring force to each chunk of atoms\n* [spring/rg ](https://docs.lammps.org/fix_spring_rg.html) - spring on radius of gyration of group of atoms\n* [spring/self ](https://docs.lammps.org/fix_spring_self.html) - spring from each atom to its origin\n* [srd ](https://docs.lammps.org/fix_srd.html) - stochastic rotation dynamics (SRD)\n* [store/force ](https://docs.lammps.org/fix_store_force.html) - store force on each atom\n* [store/state ](https://docs.lammps.org/fix_store_state.html) - store attributes for each atom\n* [tdpd/source ](https://docs.lammps.org/fix_dpd_source.html) - add external concentration source\n* [temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) - temperature control by Berendsen thermostat\n* [temp/csld ](https://docs.lammps.org/fix_temp_csvr.html) - canonical sampling thermostat with Langevin dynamics\n* [temp/csvr ](https://docs.lammps.org/fix_temp_csvr.html) - canonical sampling thermostat with Hamiltonian dynamics\n* [temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) - temperature control by velocity rescaling\n* [temp/rescale/eff ](https://docs.lammps.org/fix_temp_rescale_eff.html) - temperature control by velocity rescaling in the electron force field model\n* [tfmc ](https://docs.lammps.org/fix_tfmc.html) - perform force-bias Monte Carlo with time-stamped method\n* [tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html) - NVT time integration for Drude polarizable model via temperature-grouped Nose-Hoover\n* [tgnpt/drude ](https://docs.lammps.org/fix_tgnh_drude.html) - NPT time integration for Drude polarizable model via temperature-grouped Nose-Hoover\n* [thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html) - Mueller-Plathe kinetic energy exchange for thermal conductivity calculation\n* [ti/spring ](https://docs.lammps.org/fix_ti_spring.html) - perform thermodynamic integration between a solid and an Einstein crystal\n* [tmd ](https://docs.lammps.org/fix_tmd.html) - guide a group of atoms to a new configuration\n* [ttm ](https://docs.lammps.org/fix_ttm.html) - two-temperature model for electronic/atomic coupling (replicated grid)\n* [ttm/grid ](https://docs.lammps.org/fix_ttm.html) - two-temperature model for electronic/atomic coupling (distributed grid)\n* [ttm/mod ](https://docs.lammps.org/fix_ttm.html) - enhanced two-temperature model with additional options\n* [tune/kspace ](https://docs.lammps.org/fix_tune_kspace.html) - auto-tune \\(k\\)-space parameters\n* [vector ](https://docs.lammps.org/fix_vector.html) - accumulate a global vector every *N* timesteps\n* [viscosity ](https://docs.lammps.org/fix_viscosity.html) - Mueller-Plathe momentum exchange for viscosity calculation\n* [viscous ](https://docs.lammps.org/fix_viscous.html) - viscous damping for granular simulations\n* [viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html) - viscous damping on angular velocity for granular simulations\n* [wall/body/polygon ](https://docs.lammps.org/fix_wall_body_polygon.html) - time integration for body particles of style [rounded/polygon ](https://docs.lammps.org/Howto_body.html)\n* [wall/body/polyhedron ](https://docs.lammps.org/fix_wall_body_polyhedron.html) - time integration for body particles of style [rounded/polyhedron ](https://docs.lammps.org/Howto_body.html)\n* [wall/colloid ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones wall interacting with finite-size particles\n* [wall/ees ](https://docs.lammps.org/fix_wall_ees.html) - wall for ellipsoidal particles\n* [wall/flow ](https://docs.lammps.org/fix_wall_flow.html) - flow boundary conditions\n* [wall/gran ](https://docs.lammps.org/fix_wall_gran.html) - frictional wall(s) for granular simulations\n* [wall/gran/region ](https://docs.lammps.org/fix_wall_gran_region.html) - [fix wall/region ](https://docs.lammps.org/fix_wall_region.html) equivalent for use with granular particles\n* [wall/harmonic ](https://docs.lammps.org/fix_wall.html) - harmonic spring wall\n* [wall/lj1043 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 10--4--3 wall\n* [wall/lj126 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 12--6 wall\n* [wall/lj93 ](https://docs.lammps.org/fix_wall.html) - Lennard-Jones 9--3 wall\n* [wall/lepton ](https://docs.lammps.org/fix_wall.html) - Custom Lepton expression wall\n* [wall/morse ](https://docs.lammps.org/fix_wall.html) - Morse potential wall\n* [wall/piston ](https://docs.lammps.org/fix_wall_piston.html) - moving reflective piston wall\n* [wall/reflect ](https://docs.lammps.org/fix_wall_reflect.html) - reflecting wall(s)\n* [wall/reflect/stochastic ](https://docs.lammps.org/fix_wall_reflect_stochastic.html) - reflecting wall(s) with finite temperature\n* [wall/region ](https://docs.lammps.org/fix_wall_region.html) - use region surface as wall\n* [wall/region/ees ](https://docs.lammps.org/fix_wall_ees.html) - use region surface as wall for ellipsoidal particles\n* [wall/srd ](https://docs.lammps.org/fix_wall_srd.html) - slip/no-slip wall for SRD particles\n* [wall/table ](https://docs.lammps.org/fix_wall.html) - Tabulated potential wall wall\n* [widom ](https://docs.lammps.org/fix_widom.html) - Widom insertions of atoms or molecules\n", + "restrictions": "Some fix styles are part of specific packages. They are only enabled\nif LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info. The doc pages for\nindividual fixes tell if it is part of a package.\n", + "related": "[unfix ](https://docs.lammps.org/unfix.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "fix_modify AtC internal_quadrature" + "fix_modify AtC boundary_faceset" ], "syntax": [ - "fix_modify internal_quadrature [region]" + "fix_modify boundary_faceset " ], "args": [ [ @@ -31875,468 +30913,518 @@ export const command_docs = [ "choices": [] }, { - "arg": "internal_quadrature", + "arg": "boundary_faceset", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 3, "choices": [ - "on", - "off" + "is", + "add" ] }, { - "arg": "[region]", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* internal_quadrature = name of the AtC sub-command\n* on or off = select whether internal quadrature is enabled or not\n* region = treat finite elements as within MD region (optional) \n", - "examples": "\n```lmps\nfix_modify AtC internal_quadrature off\n```\n", - "html_filename": "atc_internal_quadrature.html", - "short_description": "Command to use or not use atomic quadrature on internal elements fully\nfilled with atoms", - "description": "Command to use or not use atomic quadrature on internal elements fully\nfilled with atoms. By turning the internal quadrature off these elements\ndo not contribute to the governing PDE and the fields at the internal\nnodes follow the weighted averages of the atomic data.\n\nOptional region tag specifies which finite element nodes will be treated\nas being within the MD region. This option is only valid with\ninternal_quadrature off.\n", - "restrictions": "", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary_faceset = name of the AtC sub-command\n* is or add = select whether to select or add a faceset\n* faceset_name = name of the faceset \n", + "examples": "\n```lmps\nfix_modify AtC boundary_faceset is obndy\n```\n", + "html_filename": "atc_boundary_faceset.html", + "short_description": "This command species the faceset name when using a faceset to compute\nthe MD/FE boundary fluxes", + "description": "This command species the faceset name when using a faceset to compute\nthe MD/FE boundary fluxes. The faceset must already exist.\n", + "restrictions": "This is only valid when *fe_md_boundary* is set to *faceset* .\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fe_md_boundary ](https://docs.lammps.org/atc_fe_md_boundary.html)\n- [fix_modify AtC mesh create_faceset box ](https://docs.lammps.org/atc_mesh_create_faceset_box.html)\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" }, { "command": [ - "angle_style cosine/periodic", - "angle_style cosine/periodic/omp" + "fix_modify AtC output contour_integral" ], "syntax": [ - "angle_style cosine/periodic" + "fix_modify output contour_integral faceset [axis [x|y|z]]" ], "args": [ [ { - "arg": "angle_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "cosine/periodic", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "output", + "type": 1, + "choices": [] + }, + { + "arg": "contour_integral", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "faceset", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "[axis", + "type": 1, + "choices": [] + }, + { + "arg": "[x|y|z]]", "type": 3, "choices": [ - "cosine/periodic", - "cosine/periodic/omp" + "x", + "y", + "z" ] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style cosine/periodic\nangle_coeff * 75.0 1 6\n```\n", - "html_filename": "angle_cosine_periodic.html", - "short_description": "The *cosine/periodic* angle style uses the following potential, which may be\nparticularly used for organometallic systems where \\(n\\) = 4 might be used\nfor an octahedral complex and \\(n\\) = 3 might be used for a trigonal\ncenter:\n\\[\n E = \\frac{2.0}{n^2} * C \\left[ 1 - B(-1)^n\\cos\\left( n\\theta\\right) \\right]\\]\nwhere \\(C\\), \\(B\\) and \\(n\\) are coefficients defined for each angle type", - "description": "The *cosine/periodic* angle style uses the following potential, which may be\nparticularly used for organometallic systems where \\(n\\) = 4 might be used\nfor an octahedral complex and \\(n\\) = 3 might be used for a trigonal\ncenter:\n\\[\n E = \\frac{2.0}{n^2} * C \\left[ 1 - B(-1)^n\\cos\\left( n\\theta\\right) \\right]\\]\nwhere \\(C\\), \\(B\\) and \\(n\\) are coefficients defined for each angle type.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(C\\) (energy)\n* \\(B\\) = 1 or -1\n* \\(n\\) = 1, 2, 3, 4, 5 or 6 for periodicity\n\nNote that the prefactor \\(C\\) is specified as coefficient and not the overall force\nconstant \\(K = \\frac{2 C}{n^2}\\). When \\(B = 1\\), it leads to a minimum for the\nlinear geometry. When \\(B = -1\\), it leads to a maximum for the linear geometry.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output contour_integral = name of the AtC sub-command\n* fieldname = name of hardy field\n* faceset = required keyword\n* name = name of faceset\n* *axis x* or *axis y* or *axis z* = (optional) \n", + "examples": "\n```lmps\nfix_modify AtC output contour_integral stress faceset loop1\n```\n", + "html_filename": "atc_output_contour_integral.html", + "short_description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file", + "description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file.\n", + "restrictions": "Must be used with the hardy/field type of [fix atc ](https://docs.lammps.org/fix_atc.html)\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style eim", - "pair_style eim/omp" + "fix_modify AtC material" ], "syntax": [ - "pair_style style" + "fix_modify material " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "material", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* style = eim \n", - "examples": "\n```lmps\npair_style eim\npair_coeff * * Na Cl ../potentials/ffield.eim Na Cl\npair_coeff * * Na Cl ffield.eim Na Na Na Cl\npair_coeff * * Na Cl ../potentials/ffield.eim Cl NULL Na\n```\n", - "html_filename": "pair_eim.html", - "short_description": "Style *eim* computes pairwise interactions for ionic compounds\nusing embedded-ion method (EIM) potentials **Zhou2**", - "description": "Style *eim* computes pairwise interactions for ionic compounds\nusing embedded-ion method (EIM) potentials **Zhou2**. The\nenergy of the system E is given by\n\\[\n E = \\frac{1}{2} \\sum_{i=1}^{N} \\sum_{j=i_1}^{i_N} \\phi_{ij} \\left(r_{ij}\\right) + \\sum_{i=1}^{N}E_i\\left(q_i,\\sigma_i\\right)\\]\nThe first term is a double pairwise sum over the J neighbors of all I\natoms, where \\(\\phi_{ij}\\) is a pair potential. The second term sums over\nthe embedding energy E_i of atom I, which is a function of its charge\nq_i and the electrical potential \\(\\sigma_i\\) at its location. E_i, q_i,\nand \\(sigma_i\\) are calculated as\n\\[\\begin{align*} \n q_i = & \\sum_{j=i_1}^{i_N} \\eta_{ji}\\left(r_{ij}\\right) \\\\\n \\sigma_i = & \\sum_{j=i_1}^{i_N} q_j \\cdot \\psi_{ij} \\left(r_{ij}\\right) \\\\\n E_i\\left(q_i,\\sigma_i\\right) = & \\frac{1}{2} \\cdot q_i \\cdot \\sigma_i \\end{align*} \\]\nwhere \\(\\eta_{ji}\\) is a pairwise function describing electron flow from atom\nI to atom J, and \\(\\psi_{ij}\\) is another pairwise function. The multi-body\nnature of the EIM potential is a result of the embedding energy term.\nA complete list of all the pair functions used in EIM is summarized\nbelow\n\\[\\begin{align*} \n \\phi_{ij}\\left(r\\right) = & \\left\\{ \\begin{array}{lr}\n \\left[\\frac{E_{b,ij}\\beta_{ij}}{\\beta_{ij}-\\alpha_{ij}}\\exp\\left(-\\alpha_{ij} \\frac{r-r_{e,ij}}{r_{e,ij}}\\right)-\\frac{E_{b,ij}\\alpha_{ij}}{\\beta_{ij}-\\alpha_{ij}}\\exp\\left(-\\beta_{ij} \\frac{r-r_{e,ij}}{r_{e,ij}}\\right)\\right]f_c\\left(r,r_{e,ij},r_{c,\\phi,ij}\\right),& p_{ij}=1 \\\\\n \\left[\\frac{E_{b,ij}\\beta_{ij}}{\\beta_{ij}-\\alpha_{ij}} \\left(\\frac{r_{e,ij}}{r}\\right)^{\\alpha_{ij}} -\\frac{E_{b,ij}\\alpha_{ij}}{\\beta_{ij}-\\alpha_{ij}} \\left(\\frac{r_{e,ij}}{r}\\right)^{\\beta_{ij}}\\right]f_c\\left(r,r_{e,ij},r_{c,\\phi,ij}\\right),& p_{ij}=2\n \\end{array}\n \\right.\\\\\n \\eta_{ji} = & A_{\\eta,ij}\\left(\\chi_j-\\chi_i\\right)f_c\\left(r,r_{s,\\eta,ij},r_{c,\\eta,ij}\\right) \\\\\n \\psi_{ij}\\left(r\\right) = & A_{\\psi,ij}\\exp\\left(-\\zeta_{ij}r\\right)f_c\\left(r,r_{s,\\psi,ij},r_{c,\\psi,ij}\\right) \\\\\n f_{c}\\left(r,r_p,r_c\\right) = & 0.510204 \\cdot \\mathrm{erfc}\\left[\\frac{1.64498\\left(2r-r_p-r_c\\right)}{r_c-r_p}\\right] - 0.010204 \\end{align*} \\]\nHere \\(E_b, r_e, r_(c,\\phi), \\alpha, \\beta, A_(\\psi), \\zeta, r_(s,\\psi),\nr_(c,\\psi), A_(\\eta), r_(s,\\eta), r_(c,\\eta), \\chi,\\) and pair function type\n*p* are parameters, with subscripts *ij* indicating the two species of\natoms in the atomic pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even though the EIM potential is treating atoms as charged ions,\n > you should not use a LAMMPS [atom_style ](https://docs.lammps.org/atom_style.html) that stores a\n > charge on each atom and thus requires you to assign a charge to each\n > atom, e.g. the *charge* or *full* atom styles. This is because the\n > EIM potential infers the charge on an atom from the equation above for\n > q_i; you do not assign charges explicitly. \n > \n\n----------\n\nAll the EIM parameters are listed in a potential file which is\nspecified by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. This is an\nASCII text file in a format described below. The \"ffield.eim\" file\nincluded in the \"potentials\" directory of the LAMMPS distribution\ncurrently includes nine elements Li, Na, K, Rb, Cs, F, Cl, Br, and I.\nA system with any combination of these elements can be modeled. This\nfile is parameterized in terms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike other potentials, cutoffs for EIM potentials are not\nset in the pair_style or pair_coeff command; they are specified in the\nEIM potential file itself. Likewise, the EIM potential file lists\natomic masses; thus you do not need to use the [mass ](https://docs.lammps.org/mass.html)\ncommand to specify them.\n\nOnly a single pair_coeff command is used with the *eim* style which\nspecifies an EIM potential file and the element(s) to extract\ninformation for. The EIM elements are mapped to LAMMPS atom types by\nspecifying N additional arguments after the filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* Elem1, Elem2, ...\n* EIM potential file\n* N element names = mapping of EIM elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example like one of those above, suppose you want to model a\nsystem with Na and Cl atoms. If your LAMMPS simulation has 4 atoms\ntypes and you want the first 3 to be Na, and the fourth to be Cl, you would\nuse the following pair_coeff command:\n\n```lmps\npair_coeff * * Na Cl ffield.eim Na Na Na Cl\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe filename is the EIM potential file. The Na and Cl arguments\n(before the file name) are the two elements for which info will be\nextracted from the potential file. The first three trailing Na\narguments map LAMMPS atom types 1,2,3 to the EIM Na element. The\nfinal Cl argument maps LAMMPS atom type 4 to the EIM Cl element.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *eim* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\nThe ffield.eim file in the *potentials* directory of the LAMMPS\ndistribution is formatted as follows:\n\nLines starting with # are comments and are ignored by LAMMPS. Lines\nstarting with \"global:\" include three global values. The first value\ndivides the cations from anions, i.e., any elements with\nelectronegativity above this value are viewed as anions, and any\nelements with electronegativity below this value are viewed as\ncations. The second and third values are related to the cutoff\nfunction - i.e. the 0.510204, 1.64498, and 0.010204 shown in the above\nequation can be derived from these values.\n\nLines starting with \"element:\" are formatted as follows: name of\nelement, atomic number, atomic mass, electronic negativity, atomic\nradius (LAMMPS ignores it), ionic radius (LAMMPS ignores it), cohesive\nenergy (LAMMPS ignores it), and q0 (must be 0).\n\nLines starting with \"pair:\" are entered as: element 1, element 2,\nr_(c,phi), r_(c,phi) (redundant for historical reasons), E_b, r_e,\nalpha, beta, r_(c,eta), A_(eta), r_(s,eta), r_(c,psi), A_(psi), zeta,\nr_(s,psi), and p.\n\nThe lines in the file can be in any order; LAMMPS extracts the info it\nneeds.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Zhou2)** Zhou, submitted for publication (2010). Please contact\nXiaowang Zhou (Sandia) for details via email at xzhou at sandia.gov. \n ", - "restrictions": "This style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* material = name of the AtC sub-command\n* elementset_name = name of the elementset\n* material_id = ID of the material \n", + "examples": "\n```lmps\nfix_modify AtC material gap_region 1\n```\n", + "html_filename": "atc_material.html", + "short_description": "Sets the material model in *elementset_name* to be of type *material_id* ", + "description": "Sets the material model in *elementset_name* to be of type *material_id* .\n", + "restrictions": "The element set must already be created and the material must be\nspecified in the material file given the the atc fix on construction\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style coul/slater", - "pair_style coul/slater/cut", - "pair_style coul/slater/long", - "pair_style coul/slater/long/gpu" + "velocity" ], "syntax": [ - "pair_style coul/slater/cut lambda cutoff", - "pair_style coul/slater/long lambda cutoff" + "velocity group-ID style args keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "velocity", "type": 1, "choices": [] }, { - "arg": "coul/slater/cut", - "type": 2, - "choices": [] - }, - { - "arg": "lambda", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cutoff", - "type": 2, - "choices": [] - } - ], - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] + "arg": "zero", + "type": 3, + "choices": [ + "create", + "set", + "scale", + "ramp", + "zero" + ] }, { - "arg": "coul/slater/long", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "lambda", - "type": 2, - "choices": [] + "arg": "units", + "type": 3, + "choices": [ + "dist", + "sum", + "mom", + "rot", + "temp", + "bias", + "loop", + "rigid", + "units" + ] }, { - "arg": "cutoff", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "lambda = decay length of the charge (distance units)\ncutoff = cutoff (distance units) \n", - "examples": "\n```lmps\npair_style coul/slater/cut 1.0 3.5\npair_coeff * *\npair_coeff 2 2 2.5\n\npair_style coul/slater/long 1.0 12.0\npair_coeff * *\npair_coeff 1 1 5.0\n```\n", - "html_filename": "pair_coul_slater.html", - "short_description": "Styles *coul/slater/** compute electrostatic interactions in mesoscopic models\nwhich employ potentials without explicit excluded-volume interactions", - "description": "Styles *coul/slater/** compute electrostatic interactions in mesoscopic models\nwhich employ potentials without explicit excluded-volume interactions.\nThe goal is to prevent artificial ionic pair formation by including a charge\ndistribution in the Coulomb potential, following the formulation of\n**Melchor**:\n\\[\n E = \\frac{Cq_iq_j}{\\epsilon r} \\left( 1- \\left( 1 + \\frac{r_{ij}}{\\lambda} exp\\left( -2r_{ij}/\\lambda \\right) \\right) \\right) \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff distance and \\(\\lambda\\) is the decay length of the charge.\nC is the same Coulomb conversion factor as in the pair_styles coul/cut and coul/long. In this way the Coulomb\ninteraction between ions is corrected at small distances r.\nFor the *coul/slater/cut* style, the potential energy for distances larger than the cutoff is zero,\nwhile for the *coul/slater/long*, the long-range interactions are computed either by the Ewald or the PPPM technique.\n\nPhenomena that can be captured at a mesoscopic level using this type of electrostatic\ninteractions include the formation of polyelectrolyte-surfactant aggregates,\ncharge stabilization of colloidal suspensions, and the formation of\ncomplexes driven by charged species in biological systems. **Vaiwala**.\n\nThe cutoff distance is optional. If it is not used,\nthe default global value specified in the pair_style command is used.\nFor each pair of atom types, a specific cutoff distance can be defined via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(r_c\\) (distance units)\n\nThe global decay length of the charge (\\(\\lambda\\)) specified in the pair_style command is used for all pairs.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*coul/slater* styles can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift and table options are not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n**(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \n \n**(Vaiwala)** Vaiwala, Jadhav, and Thaokar, J Chem Phys, 146, 124904 (2017). \n ", - "restrictions": "The *coul/slater/long* style requires the long-range solvers included in the KSPACE package.\n\nThese styles are part of the EXTRA-PAIR package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style, hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n" + "parameters": "* group-ID = ID of group of atoms whose velocity will be changed\n* style = create or set or scale or ramp or zero \n *        create args = temp seed \n         temp = temperature value (temperature units) \n         seed = random # seed (positive integer) \n *        set args = vx vy vz \n         vx,vy,vz = velocity value or NULL (velocity units) \n         any of vx,vy,vz can be a variable (see below) \n *        scale arg = temp \n         temp = temperature value (temperature units) \n *        ramp args = vdim vlo vhi dim clo chi \n         vdim = vx or vy or vz \n         vlo,vhi = lower and upper velocity value (velocity units) \n         dim = x or y or z \n         clo,chi = lower and upper coordinate bound (distance units) \n *        zero arg = linear or angular \n         linear = zero the linear momentum \n         angular = zero the angular momentum \n* zero or more keyword/value pairs may be appended\n* keyword = dist or sum or mom or rot or temp or bias or loop or rigid or units \n *        dist value = uniform or gaussian \n *        sum value = no or yes \n *        mom value = no or yes \n *        rot value = no or yes \n *        temp value = temperature compute ID \n *        bias value = no or yes \n *        loop value = all or local or geom \n *        rigid value = fix-ID \n         fix-ID = ID of rigid body fix \n *        units value = box or lattice \n", + "examples": "\n```lmps\nvelocity all create 300.0 4928459 rot yes dist gaussian\nvelocity border set NULL 4.0 v_vz sum yes units box\nvelocity flow scale 300.0\nvelocity flow ramp vx 0.0 5.0 y 5 25 temp mytemp\nvelocity all zero linear\n```\n", + "html_filename": "velocity.html", + "short_description": "Set or change the velocities of a group of atoms in one of several\nstyles", + "description": "Set or change the velocities of a group of atoms in one of several\nstyles. For each style, there are required arguments and optional\nkeyword/value parameters. Not all options are used by each style.\nEach option has a default as listed below.\n\nThe *create* style generates an ensemble of velocities using a random\nnumber generator with the specified seed at the specified temperature.\n\nThe *set* style sets the velocities of all atoms in the group to the\nspecified values. If any component is specified as NULL, then it is\nnot set. Any of the vx,vy,vz velocity components can be specified as\nan equal-style or atom-style [variable ](https://docs.lammps.org/variable.html). If the value\nis a variable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated, and its\nvalue used to determine the velocity component. Note that if a\nvariable is used, the velocity it calculates must be in box units, not\nlattice units; see the discussion of the *units* keyword below.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters or other parameters.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent\nvelocity field.\n\nThe *scale* style computes the current temperature of the group of\natoms and then rescales the velocities to the specified temperature.\n\nThe *ramp* style is similar to that used by the [computetemp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) command. Velocities ramped uniformly\nfrom vlo to vhi are applied to dimension vx, or vy, or vz. The value\nassigned to a particular atom depends on its relative coordinate value\n(in dim) from clo to chi. For the example above, an atom with\ny-coordinate of 10 (1/4 of the way from 5 to 25), would be assigned a\nx-velocity of 1.25 (1/4 of the way from 0.0 to 5.0). Atoms outside\nthe coordinate bounds (less than 5 or greater than 25 in this case),\nare assigned velocities equal to vlo or vhi (0.0 or 5.0 in this case).\n\nThe *zero* style adjusts the velocities of the group of atoms so that\nthe aggregate linear or angular momentum is zero. No other changes\nare made to the velocities of the atoms. If the *rigid* option is\nspecified (see below), then the zeroing is performed on individual\nrigid bodies, as defined by the [fix rigid or fix rigid/small](https://docs.lammps.org/fix_rigid.html) commands. In other words, zero linear will set the\nlinear momentum of each rigid body to zero, and zero angular will set\nthe angular momentum of each rigid body to zero. This is done by\nadjusting the velocities of the atoms in each rigid body.\n\nAll temperatures specified in the velocity command are in temperature\nunits; see the [units ](https://docs.lammps.org/units.html) command. The units of velocities and\ncoordinates depend on whether the *units* keyword is set to *box* or\n*lattice*, as discussed below.\n\nFor all styles, no atoms are assigned z-component velocities if the\nsimulation is 2d; see the [dimension ](https://docs.lammps.org/dimension.html) command.\n\n----------\n\nThe keyword/value options are used in the following ways by the\nvarious styles.\n\nThe *dist* keyword is used by *create* . The ensemble of generated\nvelocities can be a *uniform* distribution from some minimum to\nmaximum value, scaled to produce the requested temperature. Or it can\nbe a *gaussian* distribution with a mean of 0.0 and a sigma scaled to\nproduce the requested temperature.\n\nThe *sum* keyword is used by all styles, except *zero* . The new\nvelocities will be added to the existing ones if sum = yes, or will\nreplace them if sum = no.\n\nThe *mom* and *rot* keywords are used by *create* . If mom = yes, the\nlinear momentum of the newly created ensemble of velocities is zeroed;\nif rot = yes, the angular momentum is zeroed.\n\n----------\n\nIf specified, the *temp* keyword is used by *create* and *scale* to\nspecify a [compute ](https://docs.lammps.org/compute.html) that calculates temperature in a\ndesired way, e.g. by first subtracting out a velocity bias, as\ndiscussed on the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) doc page.\nIf this keyword is not specified, *create* and *scale* calculate\ntemperature using a compute that is defined internally as follows:\n\n```lmps\ncompute velocity_temp group-ID temp\n```\nwhere group-ID is the same ID used in the velocity command. i.e. the\ngroup of atoms whose velocity is being altered. This compute is\ndeleted when the velocity command is finished. See the [computetemp ](https://docs.lammps.org/compute_temp.html) command for details. If the calculated\ntemperature should have degrees-of-freedom removed due to fix\nconstraints (e.g. SHAKE or rigid-body constraints), then the\nappropriate fix command must be specified before the velocity command\nis issued.\n\nThe *bias* keyword with a *yes* setting is used by *create* and\n*scale*, but only if the *temp* keyword is also used to specify a\n[compute ](https://docs.lammps.org/compute.html) that calculates temperature in a desired way.\nIf the temperature compute also calculates a velocity bias, the bias\nis subtracted from atom velocities before the *create* and *scale*\noperations are performed. After the operations, the bias is added\nback to the atom velocities. See the [Howto thermostat](https://docs.lammps.org/Howto_thermostat.html) page for more discussion of temperature computes\nwith biases. Note that the velocity bias is only applied to atoms in\nthe temperature compute specified with the *temp* keyword.\n\nAs an example, assume atoms are currently streaming in a flow\ndirection (which could be separately initialized with the *ramp*\nstyle), and you wish to initialize their thermal velocity to a desired\ntemperature. In this context thermal velocity means the per-particle\nvelocity that remains when the streaming velocity is subtracted. This\ncan be done using the *create* style with the *temp* keyword\nspecifying the ID of a [compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) or\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html) command, and the\n*bias* keyword set to a *yes* value.\n\n----------\n\nThe *loop* keyword is used by *create* in the following ways.\n\nIf loop = all, then each processor loops over all atoms in the\nsimulation to create velocities, but only stores velocities for atoms\nit owns. This can be a slow loop for a large simulation. If atoms\nwere read from a data file, the velocity assigned to a particular atom\nwill be the same, independent of how many processors are being used.\nThis will not be the case if atoms were created using the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command, since atom IDs will likely\nbe assigned to atoms differently.\n\nIf loop = local, then each processor loops over only its atoms to\nproduce velocities. The random number seed is adjusted to give a\ndifferent set of velocities on each processor. This is a fast loop,\nbut the velocity assigned to a particular atom will depend on which\nprocessor owns it. Thus the results will always be different when a\nsimulation is run on a different number of processors.\n\nIf loop = geom, then each processor loops over only its atoms. For\neach atom a unique random number seed is created, based on the atom's\nxyz coordinates. A velocity is generated using that seed. This is a\nfast loop and the velocity assigned to a particular atom will be the\nsame, independent of how many processors are used. However, the set\nof generated velocities may be more correlated than if the *all* or\n*local* keywords are used.\n\nNote that the *loop geom* keyword will not necessarily assign\nidentical velocities for two simulations run on different machines.\nThis is because the computations based on xyz coordinates are\nsensitive to tiny differences in the double-precision value for a\ncoordinate as stored on a particular machine.\n\n----------\n\nThe *rigid* keyword only has meaning when used with the *zero* style.\nIt allows specification of a fix-ID for one of the [rigid-bodyfix ](https://docs.lammps.org/fix_rigid.html) variants which defines a set of rigid bodies. The\nzeroing of linear or angular momentum is then performed for each rigid\nbody defined by the fix, as described above.\n\nThe *units* keyword is used by *set* and *ramp* . If units = box,\nthe velocities and coordinates specified in the velocity command are\nin the standard units described by the [units ](https://docs.lammps.org/units.html) command\n(e.g. Angstroms/fs for real units). If units = lattice, velocities\nare in units of lattice spacings per time (e.g. spacings/fs) and\ncoordinates are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\n\n----------\n", + "restrictions": "Assigning a temperature via the *create* style to a system with\n[rigid bodies ](https://docs.lammps.org/fix_rigid.html) or [SHAKE constraints](https://docs.lammps.org/fix_shake.html) may not have the desired outcome for two reasons. First,\nthe velocity command can be invoked before all of the relevant fixes\nare created and initialized and the number of adjusted degrees of\nfreedom (DOFs) is known. Thus it is not possible to compute the\ntarget temperature correctly. Second, the assigned velocities may be\npartially canceled when constraints are first enforced, leading to a\ndifferent temperature than desired. A workaround for this is to\nperform a [run 0 ](https://docs.lammps.org/run.html) command, which ensures all DOFs are\naccounted for properly, and then rescale the temperature to the\ndesired value before performing a simulation. For example:\n\n```lmps\nvelocity all create 300.0 12345\nrun 0 # temperature may not be 300K\nvelocity all scale 300.0 # now it should be\n```\n", + "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix shake ](https://docs.lammps.org/fix_shake.html),\n[lattice ](https://docs.lammps.org/lattice.html)\n" }, { "command": [ - "fix setforce", - "fix setforce/kk", - "fix setforce/spin" + "pair_style lj/switch3/coulgauss/long" ], "syntax": [ - "fix ID group-ID setforce fx fy fz keyword value ..." + "pair_style style args" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "setforce", + "arg": "mm3/switch3/coulgauss/long", "type": 3, "choices": [ - "setforce", - "setforce/kk" + "lj/switch3/coulgauss/long", + "mm3/switch3/coulgauss/long" ] }, { - "arg": "fx", - "type": 2, - "choices": [] - }, - { - "arg": "fy", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = lj/switch3/coulgauss/long or mm3/switch3/coulgauss/long\n* args = list of arguments for a particular style \n *      lj/switch3/coulgauss/long args = cutoff (cutoff2) width \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n       width = width parameter of the smoothing function (distance units) \n *      mm3/switch3/coulgauss/long args = cutoff (cutoff2) width \n       cutoff = global cutoff for MM3 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n       width = width parameter of the smoothing function (distance units) \n", + "examples": "\n```lmps\npair_style lj/switch3/coulgauss/long 12.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style lj/switch3/coulgauss/long 12.0 10.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style mm3/switch3/coulgauss/long 12.0 3.0\npair_coeff 1 0.2 2.5 1.2\n\npair_style mm3/switch3/coulgauss/long 12.0 10.0 3.0\npair_coeff 1 0.2 2.5 1.2\n```\n", + "html_filename": "pair_lj_switch3_coulgauss_long.html", + "short_description": "The *lj/switch3/coulgauss* style evaluates the LJ\nvdW potential\n\\[\n E = 4\\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12}-\\left(\\frac{\\sigma}{r}\\right)^{6} \\right]\\]\nThe *mm3/switch3/coulgauss/long* style evaluates the MM3\nvdW potential :ref:`(Allinger) `\n\\[\\begin{align*} \n E & = \\epsilon_{ij} \\left[ -2.25 \\left(\\frac{r_{v,ij}}{r_{ij}}\\right)^6 + 1.84(10)^5 \\exp\\left[-12.0 r_{ij}/r_{v,ij}\\right] \\right] S_3(r_{ij}) \\\\\n r_{v,ij} & = r_{v,i} + r_{v,j} \\\\\n \\epsilon_{ij} & = \\sqrt{\\epsilon_i \\epsilon_j} \\end{align*} \\]\nBoth potentials go smoothly to zero at the cutoff r_c as defined by the\nswitching function\n\\[.", + "description": "The *lj/switch3/coulgauss* style evaluates the LJ\nvdW potential\n\\[\n E = 4\\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12}-\\left(\\frac{\\sigma}{r}\\right)^{6} \\right]\\]\nThe *mm3/switch3/coulgauss/long* style evaluates the MM3\nvdW potential :ref:`(Allinger) `\n\\[\\begin{align*} \n E & = \\epsilon_{ij} \\left[ -2.25 \\left(\\frac{r_{v,ij}}{r_{ij}}\\right)^6 + 1.84(10)^5 \\exp\\left[-12.0 r_{ij}/r_{v,ij}\\right] \\right] S_3(r_{ij}) \\\\\n r_{v,ij} & = r_{v,i} + r_{v,j} \\\\\n \\epsilon_{ij} & = \\sqrt{\\epsilon_i \\epsilon_j} \\end{align*} \\]\nBoth potentials go smoothly to zero at the cutoff r_c as defined by the\nswitching function\n\\[.. math::\\]\n S_3(r) = \\left\\lbrace \\begin{array}{ll}\n 1 & \\quad\\mathrm{if}\\quad r < r_\\mathrm{c} - w \\\\\n 3x^2 - 2x^3 & \\quad\\mathrm{if}\\quad r < r_\\mathrm{c} \\quad\\mathrm{with\\quad} x=\\frac{r_\\mathrm{c} - r}{w} \\\\\n 0 & \\quad\\mathrm{if}\\quad r >= r_\\mathrm{c}\n \\end{array} \\right.\n\nwhere w is the width defined in the arguments. This potential\nis combined with Coulomb interaction between Gaussian charge densities:\n\\[\n E = \\frac{q_i q_j \\mathrm{erf}\\left( r/\\sqrt{\\gamma_1^2+\\gamma_2^2} \\right) }{\\epsilon r_{ij}}\\]\nwhere \\(q_i\\) and \\(q_j\\) are the charges on the 2 atoms,\n\\(\\epsilon\\) is the dielectric constant which can be set by the\n[dielectric ](https://docs.lammps.org/dielectric.html) command, \\(\\gamma_i\\) and\n\\(\\gamma_j\\) are the widths of the Gaussian charge distribution and\nerf() is the error-function. This style has to be used in conjunction\nwith the [kspace_style ](https://docs.lammps.org/kspace_style.html) command\n\nIf one cutoff is specified it is used for both the vdW and Coulomb\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the vdW terms, and the second is the cutoff for the Coulombic term.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n* \\(\\gamma\\) (distance)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/long pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nShifting the potential energy is not necessary because the switching\nfunction ensures that the potential is zero at the cut-off.\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\noptions since they can tabulate the short-range portion of the\nlong-range Coulombic interactions.\n\nThes pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the\nLennard-Jones portion of the energy and pressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n", + "restrictions": "These styles are part of the YAFF package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "pair_style python" + ], + "syntax": [ + "pair_style python cutoff" + ], + "args": [ + [ { - "arg": "fz", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, + "arg": "python", + "type": 1, "choices": [] }, { - "arg": "value", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* setforce = style name of this fix command\n* fx,fy,fz = force component values\n* any of fx,fy,fz can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", - "examples": "\n```lmps\nfix freeze indenter setforce 0.0 0.0 0.0\nfix 2 edge setforce NULL 0.0 0.0\nfix 1 edge setforce/spin 0.0 0.0 0.0\nfix 2 edge setforce NULL 0.0 v_oscillate\n```\n", - "html_filename": "fix_setforce.html", - "short_description": "Set each component of force on each atom in the group to the specified\nvalues fx,fy,fz", - "description": "Set each component of force on each atom in the group to the specified\nvalues fx,fy,fz. This erases all previously computed forces on the\natom, though additional fixes could add new forces. This command can\nbe used to freeze certain atoms in the simulation by zeroing their\nforce, either for running dynamics or performing an energy\nminimization. For dynamics, this assumes their initial velocity is\nalso zero.\n\nAny of the fx,fy,fz values can be specified as NULL which means do not\nalter the force component in that dimension.\n\nAny of the 3 quantities defining the force components can be specified\nas an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html), namely *fx*,\n*fy*, *fz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\nforce component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent force field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent force\nfield with optional time-dependence as well.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nStyle *spin* suffix sets the components of the magnetic precession\nvectors instead of the mechanical forces. This also erases all\npreviously computed magnetic precession vectors on the atom, though\nadditional magnetic fixes could add new forces.\n\nThis command can be used to freeze the magnetic moment of certain\natoms in the simulation by zeroing their precession vector.\n\nAll options defined above remain valid, they just apply to the magnetic\nprecession vectors instead of the forces.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The region keyword is supported by Kokkos, but a Kokkos-enabled\n > region must be used. See the region [region ](https://docs.lammps.org/region.html) command for\n > more information. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is setting the forces to the desired values; on all\nother levels, the force is set to 0.0 for the atoms in the fix group,\nso that setforce values are not counted multiple times. Default is to\nto override forces at the outermost level.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command, but you cannot set\nforces to any value besides zero when performing a minimization. Use\nthe [fix addforce ](https://docs.lammps.org/fix_addforce.html) command if you want to apply a\nnon-zero force to atoms during a minimization.\n", - "restrictions": "Fix *setforce/spin* is part of the SPIN package. It is only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html), [fix aveforce ](https://docs.lammps.org/fix_aveforce.html)\n" + "parameters": "cutoff = global cutoff for interactions in python potential classes \n", + "examples": "\n```lmps\npair_style python 2.5\npair_coeff * * py_pot.LJCutMelt lj\n\npair_style python 10.0\npair_coeff * * py_pot.HarmonicCut A B\n\npair_style hybrid/overlay coul/long 12.0 python 12.0\npair_coeff * * coul/long\npair_coeff * * python py_pot.LJCutSPCE OW NULL\n```\n", + "html_filename": "pair_python.html", + "short_description": "The *python* pair style provides a way to define pairwise additive\npotential functions as python script code that is loaded into LAMMPS\nfrom a python file which must contain specific python class definitions", + "description": "The *python* pair style provides a way to define pairwise additive\npotential functions as python script code that is loaded into LAMMPS\nfrom a python file which must contain specific python class definitions.\nThis allows to rapidly evaluate different potential functions without\nhaving to modify and re-compile LAMMPS. Due to python being an\ninterpreted language, however, the performance of this pair style is\ngoing to be significantly slower (often between 20x and 100x) than\ncorresponding compiled code. This penalty can be significantly reduced\nthrough generating tabulations from the python code through the\n[pair_write ](https://docs.lammps.org/pair_write.html) command, which is supported by this style.\n\nOnly a single [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command is used with the\n*python* pair style which specifies a python class inside a python module\nor a file that LAMMPS will look up in the current directory, a folder\npointed to by the ``LAMMPS_POTENTIALS`` environment variable or somewhere\nin your python path. A single python module can hold multiple python pair\nclass definitions. The class definitions itself have to follow specific\nrules that are explained below.\n\nAtom types in the python class are specified through symbolic\nconstants, typically strings. These are mapped to LAMMPS atom types by\nspecifying N additional arguments after the class name in the\npair_coeff command, where N must be the number of currently defined\natom types:\n\nAs an example, imagine a file *py_pot.py* has a python potential class\nnames *LJCutMelt* with parameters and potential functions for a two\nLennard-Jones atom types labeled as 'LJ1' and 'LJ2'. In your LAMMPS\ninput and you would have defined 3 atom types, out of which the first\ntwo are supposed to be using the 'LJ1' parameters and the third the\n'LJ2' parameters, then you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * py_pot.LJCutMelt LJ1 LJ1 LJ2\n```\nThe first two arguments **must** be \\* \\* so as to span all LAMMPS atom\ntypes. The first two LJ1 arguments map LAMMPS atom types 1 and 2 to\nthe LJ1 atom type in the LJCutMelt class of the py_pot.py file. The\nfinal LJ2 argument maps LAMMPS atom type 3 to the LJ2 atom type the\npython file. If a mapping value is specified as NULL, the mapping is\nnot performed, any pair interaction with this atom type will be\nskipped. This can be used when a *python* potential is used as part of\nthe *hybrid* or *hybrid/overlay* pair style. The NULL values are then\nplaceholders for atom types that will be used with other potentials.\n\n----------\n\nThe python potential file has to start with the following code:\n\n```python\nfrom __future__ import print_function\n\nclass LAMMPSPairPotential(object):\ndef __init__(self):\nself.pmap=dict()\nself.units='lj'\ndef map_coeff(self,name,ltype):\nself.pmap[ltype]=name\ndef check_units(self,units):\nif (units != self.units):\nraise Exception(\"Conflicting units: %s vs. %s\" % (self.units,units))\n```\nAny classes with definitions of specific potentials have to be derived\nfrom this class and should be initialize in a similar fashion to the\nexample given below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The class constructor has to set up a data structure containing\n > the potential parameters supported by this class. It should also\n > define a variable *self.units* containing a string matching one of the\n > options of LAMMPS' [units ](https://docs.lammps.org/units.html) command, which is used to\n > verify, that the potential definition in the python class and in the\n > LAMMPS input match. \n > \n\nHere is an example for a single type Lennard-Jones potential class\n*LJCutMelt* in reduced units, which defines an atom type *lj* for\nwhich the parameters epsilon and sigma are both 1.0:\n\n```python\nclass LJCutMelt(LAMMPSPairPotential):\ndef __init__(self):\nsuper(LJCutMelt,self).__init__()\n# set coeffs: 48*eps*sig**12, 24*eps*sig**6,\n# 4*eps*sig**12, 4*eps*sig**6\nself.units = 'lj'\nself.coeff = {'lj' : {'lj' : (48.0,24.0,4.0,4.0)}}\n```\nThe class also has to provide two methods for the computation of the\npotential energy and forces, which have be named *compute_force*,\nand *compute_energy*, which both take 3 numerical arguments:\n\n* rsq = the square of the distance between a pair of atoms (float)\n* itype = the (numerical) type of the first atom\n* jtype = the (numerical) type of the second atom\n\nThis functions need to compute the (scaled) force and the energy,\nrespectively, and use the result as return value. The functions need\nto use the *pmap* dictionary to convert the LAMMPS atom type number\nto the symbolic value of the internal potential parameter data structure.\nFollowing the *LJCutMelt* example, here are the two functions:\n\n```python\ndef compute_force(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr2inv = 1.0/rsq\nr6inv = r2inv*r2inv*r2inv\nlj1 = coeff[0]\nlj2 = coeff[1]\nreturn (r6inv * (lj1*r6inv - lj2))*r2inv\n\ndef compute_energy(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr2inv = 1.0/rsq\nr6inv = r2inv*r2inv*r2inv\nlj3 = coeff[2]\nlj4 = coeff[3]\nreturn (r6inv * (lj3*r6inv - lj4))\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >for consistency with the C++ pair styles in LAMMPS, the\n > *compute_force* function follows the conventions of the Pair::single()\n > methods and does not return the pairwise force directly, but the force\n > divided by the distance between the two atoms, so this value only needs\n > to be multiplied by delta x, delta y, and delta z to conveniently obtain\n > the three components of the force vector between these two atoms. \n > \n\nBelow is a more complex example using *real* units and defines an interaction\nequivalent to:\n\n```lmps\nunits real\npair_style harmonic/cut\npair_coeff 1 1 0.2 9.0\npair_coeff 2 2 0.4 9.0\n```\nThis uses the default geometric mixing. The equivalent input with pair\nstyle *python* is:\n\n```lmps\nunits real\npair_style python 10.0\npair_coeff * * py_pot.Harmonic A B\n```\nNote that while for pair style *harmonic/cut* the cutoff is implicitly\nset to the minimum of the harmonic potential, for pair style python a\nglobal cutoff must be set and it must be equal or larger to the implicit\ncutoff of the potential in python, which has to explicitly return zero\nforce and energy beyond the cutoff. Also, the mixed parameters have to\nbe explicitly provided. The corresponding python code is:\n\n```python\nclass Harmonic(LAMMPSPairPotential):\ndef __init__(self):\nsuper(Harmonic,self).__init__()\nself.units = 'real'\n# set coeffs: K, r0\nself.coeff = {'A' : {'A' : (0.2,9.0),\n'B' : (math.sqrt(0.2*0.4),9.0)},\n'B' : {'A' : (math.sqrt(0.2*0.4),9.0),\n'B' : (0.4,9.0)}}\n\ndef compute_force(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr = math.sqrt(rsq)\ndelta = coeff[1]-r\nif (r < coeff[1]):\nreturn 2.0*delta*coeff[0]/r\nelse:\nreturn 0.0\n\ndef compute_energy(self,rsq,itype,jtype):\ncoeff = self.coeff[self.pmap[itype]][self.pmap[jtype]]\nr = math.sqrt(rsq)\ndelta = coeff[1]-r\nif (r < coeff[1]):\nreturn delta*delta*coeff[0]\nelse:\nreturn 0.0\n```\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Performance Impact \n >The evaluation of scripted python code will slow down the computation\n > of pairwise interactions quite significantly. However, this performance\n > penalty can be worked around through using the python pair style not\n > for the actual simulation, but to generate tabulated potentials using\n > the [pair_write ](https://docs.lammps.org/pair_write.html) command. This will also enable\n > GPU or multi-thread acceleration through the GPU, KOKKOS, or OPENMP\n > package versions of the *table* pair style. Please see below for a\n > LAMMPS input example demonstrating how to build a table file: \n > \n\n\n```lmps\npair_style python 2.5\npair_coeff * * py_pot.LJCutMelt lj\nshell rm -f lj.table\npair_write 1 1 2000 rsq 0.01 2.5 lj.table lj\n```\nNote that it is strongly recommended to try to **delete** the potential\ntable file before generating it. Since the *pair_write* command will\nalways **append** to a table file, while pair style table will use the\n**first match** . Thus when changing the potential function in the python\nclass, the table pair style will still read the old variant unless the\ntable file is first deleted.\n\nAfter switching the pair style to *table*, the potential tables need\nto be assigned to the LAMMPS atom types like this:\n\n```lmps\npair_style table linear 2000\npair_coeff 1 1 lj.table lj\n```\nThis can also be done for more complex systems. Please see the\n*examples/python* folders for a few more examples.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nMixing of potential parameters has to be handled inside the provided\npython module. The python pair style simply assumes that force and\nenergy computation can be correctly performed for all pairs of atom\ntypes as they are mapped to the atom type labels inside the python\npotential class.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This pair style is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_write ](https://docs.lammps.org/pair_write.html),\n[pair style table ](https://docs.lammps.org/pair_table.html)\n" }, { "command": [ - "timer" + "angle_style dipole", + "angle_style dipole/omp" ], "syntax": [ - "timer args" + "angle_style dipole" ], "args": [ [ { - "arg": "timer", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "every", + "arg": "dipole", "type": 3, "choices": [ - "off", - "loop", - "normal", - "full", - "sync", - "nosync", - "timeout", - "every" + "dipole", + "dipole/omp" ] } ] ], - "parameters": "* args = one or more of off or loop or normal or full or sync or nosync or timeout or every \n *      off = do not collect or print any timing information \n *      loop = collect only the total time for the simulation loop \n *      normal = collect timer information broken down by sections (default) \n *      full = like normal but also include CPU and thread utilization \n *      sync = explicitly synchronize MPI tasks between sections \n *      nosync = do not synchronize MPI tasks between sections (default) \n *      timeout elapse = set wall time limit to elapse \n *      every Ncheck = perform timeout check every Ncheck steps \n", - "examples": "\n```lmps\ntimer full sync\ntimer timeout 2:00:00 every 100\ntimer loop\n```\n", - "html_filename": "timer.html", - "short_description": "Select the level of detail at which LAMMPS performs its CPU timings", - "description": "Select the level of detail at which LAMMPS performs its CPU timings.\nMultiple keywords can be specified with the *timer* command. For\nkeywords that are mutually exclusive, the last one specified takes\nprecedence.\n\nDuring a simulation run LAMMPS collects information about how much\ntime is spent in different sections of the code and thus can provide\ninformation for determining performance and load imbalance problems.\nThis can be done at different levels of detail and accuracy. For more\ninformation about the timing output, see the [Run output ](https://docs.lammps.org/Run_output.html) doc page.\n\nThe *off* setting will turn all time measurements off. The *loop*\nsetting will only measure the total time for a run and not collect any\ndetailed per section information. With the *normal* setting, timing\ninformation for portions of the timestep (pairwise calculations,\nneighbor list construction, output, etc) are collected as well as\ninformation about load imbalances for those sections across\nprocessors. The *full* setting adds information about CPU\nutilization and thread utilization, when multi-threading is enabled.\n\nWith the *sync* setting, all MPI tasks are synchronized at each timer\ncall which measures load imbalance for each section more accurately,\nthough it can also slow down the simulation by prohibiting overlapping\nindependent computations on different MPI ranks Using the *nosync*\nsetting (which is the default) turns this synchronization off.\n\nWith the *timeout* keyword a wall time limit can be imposed, that\naffects the [run ](https://docs.lammps.org/run.html) and [minimize ](https://docs.lammps.org/minimize.html) commands.\nThis can be convenient when calculations have to comply with execution\ntime limits, e.g. when running under a batch system when you want to\nmaximize the utilization of the batch time slot, especially for runs\nwhere the time per timestep varies much and thus it becomes difficult\nto predict how many steps a simulation can perform for a given wall time\nlimit. This also applies for difficult to converge minimizations.\nThe timeout *elapse* value should be somewhat smaller than the maximum\nwall time requested from the batch system, as there is usually\nsome overhead to launch jobs, and it is advisable to write\nout a restart after terminating a run due to a timeout.\n\nThe timeout timer starts when the command is issued. When the time\nlimit is reached, the run or energy minimization will exit on the\nnext step or iteration that is a multiple of the *Ncheck* value\nwhich can be set with the *every* keyword. Default is checking\nevery 10 steps. After the timer timeout has expired all subsequent\nrun or minimize commands in the input script will be skipped.\nThe remaining time or timer status can be accessed with the\n[thermo ](https://docs.lammps.org/thermo_style.html) variable *timeremain*, which will be\nzero, if the timeout is inactive (default setting), it will be\nnegative, if the timeout time is expired and positive if there\nis time remaining and in this case the value of the variable are\nthe number of seconds remaining.\n\nWhen the *timeout* key word is used a second time, the timer is\nrestarted with a new time limit. The timeout *elapse* value can\nbe specified as *off* or *unlimited* to impose a no timeout condition\n(which is the default). The *elapse* setting can be specified as\na single number for seconds, two numbers separated by a colon (MM:SS)\nfor minutes and seconds, or as three numbers separated by colons for\nhours, minutes, and seconds (H:MM:SS).\n\nThe *every* keyword sets how frequently during a run or energy\nminimization the wall clock will be checked. This check count applies\nto the outer iterations or time steps during minimizations or [r-RESPA runs ](https://docs.lammps.org/run_style.html), respectively. Checking for timeout too often,\ncan slow a calculation down. Checking too infrequently can make the\ntimeout measurement less accurate, with the run being stopped later\nthan desired.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using the *full* and *sync* options provides the most detailed\n > and accurate timing information, but can also have a negative\n > performance impact due to the overhead of the many required system\n > calls. It is thus recommended to use these settings only when testing\n > tests to identify performance bottlenecks. For calculations with few\n > atoms or a very large number of processors, even the *normal* setting\n > can have a measurable negative performance impact. In those cases you\n > can just use the *loop* or *off* setting. \n > \n\n", - "restrictions": " none\n", - "related": "[run post no ](https://docs.lammps.org/run.html), [kspace_modify fftbench ](https://docs.lammps.org/kspace_modify.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style dipole\nangle_coeff 6 2.1 180.0\n```\n", + "html_filename": "angle_dipole.html", + "short_description": "The *dipole* angle style is used to control the orientation of a dipolar\natom within a molecule **Orsi**", + "description": "The *dipole* angle style is used to control the orientation of a dipolar\natom within a molecule **Orsi**. Specifically, the *dipole* angle\nstyle restrains the orientation of a point dipole \\(\\mu_j\\) (embedded in atom\n\\(j\\)) with respect to a reference (bond) vector\n\\(\\vec{r}_{ij} = \\vec{r}_i - \\vec{r}_j\\), where \\(i\\) is another atom of\nthe same molecule (typically, \\(i\\) and \\(j\\) are also covalently bonded).\n\nIt is convenient to define an angle gamma between the 'free' vector \\(\\vec{\\mu}_j\\)\nand the reference (bond) vector \\(\\vec{r}_{ij}\\):\n\\[\n \\cos\\gamma = \\frac{\\vec{\\mu}_j\\cdot\\vec{r}_{ij}}{\\mu_j\\,r_{ij}}\\]\nThe *dipole* angle style uses the potential:\n\\[\n E = K (\\cos\\gamma - \\cos\\gamma_0)^2\\]\nwhere \\(K\\) is a rigidity constant and gamma0 is an equilibrium (reference)\nangle.\n\nThe torque on the dipole can be obtained by differentiating the\npotential using the 'chain rule' as in appendix C.3 of\n**Allen1**:\n\\[\n \\vec{T}_j = \\frac{2K(\\cos\\gamma - \\cos\\gamma_0)}{\\mu_j\\,r_{ij}}\\, \\vec{r}_{ij} \\times \\vec{\\mu}_j\\]\nExample: if \\(\\gamma_0\\) is set to 0 degrees, the torque generated by\nthe potential will tend to align the dipole along the reference\ndirection defined by the (bond) vector \\(\\vec{r}_{ij}\\) (in other words, \\(\\vec{\\mu}_j\\) is\nrestrained to point towards atom \\(i\\)).\n\nThe dipolar torque \\(\\vec{T}_j\\) must be counterbalanced in order to conserve\nthe local angular momentum. This is achieved via an additional force\ncouple generating a torque equivalent to the opposite of \\(\\vec{T}_j\\):\n\\[\\begin{align*} \n -\\vec{T}_j & = \\vec{r}_{ij} \\times \\vec{F}_i \\\\\n \\vec{F}_j & = -\\vec{F}_i \\end{align*} \\]\nwhere \\(\\vec{F}_i\\) and \\(\\vec{F}_j\\) are applied on atoms \\(i\\)\nand \\(j\\), respectively.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\gamma_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n**(Orsi)** Orsi & Essex, The ELBA force field for coarse-grain modeling of\nlipid membranes, PloS ONE 6(12): e28637, 2011. \n \n**(Allen1)** Allen & Tildesley, Computer Simulation of Liquids,\nClarendon Press, Oxford, 1987. \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nDIPOLE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the \"Angles\" section of the data file, the atom ID \\(j\\)\n > defining the direction of the dipole vector to restrain must come\n > before the atom ID of the reference atom \\(i\\). A third atom ID \\(k\\) must\n > also be provided to comply with the requirement of a valid angle\n > definition. This atom ID \\(k\\) should be chosen to be that of an atom\n > bonded to atom \\(i\\) to avoid errors with \"lost angle atoms\" when running\n > in parallel. Since the LAMMPS code checks for valid angle definitions,\n > cannot use the same atom ID of either \\(i\\) or \\(j\\) (this was allowed\n > and recommended with older LAMMPS versions). \n > \n\nThe [newton ](https://docs.lammps.org/newton.html) command for intramolecular interactions must be \"on\"\n(which is the default except when using some accelerator packages).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This angle style should **NOT** be used with fix shake. \n > \n\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_hybrid ](https://docs.lammps.org/angle_hybrid.html)\n" }, { "command": [ - "compute pair/local" + "temper/npt" ], "syntax": [ - "compute ID group-ID pair/local value1 value2 ... keyword args ..." + "temper/npt N M temp fix-ID seed1 seed2 pressure index" ], "args": [ [ { - "arg": "compute", + "arg": "temper/npt", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "pair/local", - "type": 1, + "arg": "M", + "type": 2, "choices": [] }, { - "arg": "value1", + "arg": "temp", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "fix-ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "seed1", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "seed2", + "type": 2, + "choices": [] + }, + { + "arg": "pressure", + "type": 2, + "choices": [] + }, + { + "arg": "index", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pair/local = style name of this compute command\n* one or more values may be appended\n* value = dist or dx or dy or dz or eng or force or fx or fy or fz or p1 or p2 or ... \n *        dist = pairwise distance \n *        dx, dy, dz = components of pairwise distance \n *        eng = pairwise energy \n *        force = pairwise force \n *        fx, fy, fz = components of pairwise force \n *        p1, p2, ... = pair style specific quantities for allowed N values \n* zero or more keyword/arg pairs may be appended\n* keyword = cutoff \n *        cutoff arg = type or radius \n", - "examples": "\n```lmps\ncompute 1 all pair/local eng\ncompute 1 all pair/local dist eng force\ncompute 1 all pair/local dist eng fx fy fz\ncompute 1 all pair/local dist fx fy fz p1 p2 p3\n```\n", - "html_filename": "compute_pair_local.html", - "short_description": "Define a computation that calculates properties of individual pairwise\ninteractions", - "description": "Define a computation that calculates properties of individual pairwise\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of pairwise interactions in the system.\n\nThe local data stored by this command is generated by looping over the\npairwise neighbor list. Info about an individual pairwise interaction\nwill only be included if both atoms in the pair are in the specified\ncompute group, and if the current pairwise distance is less than the\nforce cutoff distance for that interaction, as defined by the\n[pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands.\n\nThe value *dist* is the distance between the pair of atoms.\nThe values *dx*, *dy*, and *dz* are the \\((x,y,z)\\) components of the\n*distance* between the pair of atoms. This value is always the\ndistance from the atom of higher to the one with the lower atom ID.\n\nThe value *eng* is the interaction energy for the pair of atoms.\n\nThe value *force* is the force acting between the pair of atoms, which\nis positive for a repulsive force and negative for an attractive\nforce. The values *fx*, *fy*, and *fz* are the \\((x,y,z)\\) components of\n*force* on atom I. For pair styles that apply non-central forces,\nsuch as [granular pair styles ](https://docs.lammps.org/pair_gran.html), these values only include\nthe \\((x,y,z)\\) components of the normal force component.\n\nA pair style may define additional pairwise quantities which can be\naccessed as *p1* to *pN*, where \\(N\\) is defined by the pair style.\nMost pair styles do not define any additional quantities, so \\(N = 0\\).\nAn example of ones that do are the [granular pair styles ](https://docs.lammps.org/pair_gran.html)\nwhich calculate the tangential force between two particles and return\nits components and magnitude acting on atom \\(I\\) for\n\\(N \\in \\{1,2,3,4\\}\\). See individual pair styles for details.\n\nWhen using *pN* with pair style *hybrid*, the output will be the Nth\nquantity from the sub-style that computes the pairwise interaction\n(based on atom types). If that sub-style does not define a *pN*,\nthe output will be 0.0. The maximum allowed \\(N\\) is the maximum number\nof quantities provided by any sub-style.\n\nWhen using *pN* with pair style *hybrid/overlay* the quantities\nfrom all sub-styles that provide them are concatenated together\ninto one long list. For example, if there are 3 sub-styles and\n2 of them have additional output (with 3 and 4 quantities,\nrespectively), then 7 values (\\ *p1* up to *p7* ) are defined.\nThe values *p1* to *p3* refer to quantities defined by the first\nof the two sub-styles. Values *p4* to *p7* refer to quantities\nfrom the second of the two sub-styles. If the referenced *pN*\nis not computed for the specific pairwise interaction (based on\natom types), then the output will be 0.0.\n\nThe value *dist*, *dx*, *dy* and *dz* will be in distance [units ](https://docs.lammps.org/units.html).\nThe value *eng* will be in energy [units ](https://docs.lammps.org/units.html).\nThe values *force*, *fx*, *fy*, and *fz* will be in force [units ](https://docs.lammps.org/units.html).\nThe values *pN* will be in whatever units the pair style defines.\n\nThe optional *cutoff* keyword determines how the force cutoff distance\nfor an interaction is determined. For the default setting of *type*,\nthe pairwise cutoff defined by the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand for the types of the two atoms is used. For the *radius*\nsetting, the sum of the radii of the two particles is used as a\ncutoff. For example, this is appropriate for granular particles which\nonly interact when they are overlapping, as computed by\n[granular pair styles ](https://docs.lammps.org/pair_gran.html).\nNote that if a granular model defines atom\ntypes such that all particles of a specific type are monodisperse\n(same diameter), then the two settings are effectively identical.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, pair output from the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local patom1 patom2\ncompute 2 all pair/local dist eng force\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_2[1] c_2[2] c_2[3]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pairs, if two atoms I,J are involved in 1--2, 1--3, and 1--4\n > interactions within the molecular topology, their pairwise interaction\n > may be turned off, and thus they may not appear in the neighbor list,\n > and will not be part of the local data created by this command. More\n > specifically, this will be true of I,J pairs with a weighting factor\n > of 0.0; pairs with a non-zero weighting factor are included. The\n > weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. An exception is if\n > long-range Coulombics are being computed via the\n > [kspace_style ](https://docs.lammps.org/kspace_style.html) command, then atom pairs with\n > weighting factors of zero are still included in the neighbor list, so\n > that a portion of the long-range interaction contribution can be\n > computed in the pair style. Hence in that case, those atom pairs will\n > be part of the local data created by this command. \n > \n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of keywords. The length of the vector or number of rows in the\narray is the number of pairs. If a single keyword is specified, a\nlocal vector is produced. If two or more keywords are specified, a\nlocal array is produced where the number of columns = the number of\nkeywords. The vector or array can be accessed by any command that\nuses local values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *dist* will be in distance [units ](https://docs.lammps.org/units.html). The\noutput for *eng* will be in energy [units ](https://docs.lammps.org/units.html). The output for\n*force*, *fx*, *fy*, and *fz* will be in force [units ](https://docs.lammps.org/units.html).\nThe output for *pN* will be in whatever units the pair style defines.\n", - "restrictions": " none\n", - "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" + "parameters": "* N = total # of timesteps to run\n* M = attempt a tempering swap every this many steps\n* temp = initial temperature for this ensemble\n* fix-ID = ID of the fix that will control temperature and pressure during the run\n* seed1 = random # seed used to decide on adjacent temperature to partner with\n* seed2 = random # seed for Boltzmann factor in Metropolis swap\n* pressure = setpoint pressure for the ensemble\n* index = which temperature (0 to N-1) I am simulating (optional) \n", + "examples": "\n```lmps\ntemper/npt 100000 100 $t nptfix 0 58728 1\ntemper/npt 2500000 1000 300 nptfix 0 32285 $p\ntemper/npt 5000000 2000 $t nptfix 0 12523 1 $w\n```\n", + "html_filename": "temper_npt.html", + "short_description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system in the isothermal-isobaric (NPT)\nensemble", + "description": "Run a parallel tempering or replica exchange simulation using multiple\nreplicas (ensembles) of a system in the isothermal-isobaric (NPT)\nensemble. The command temper/npt works like [temper ](https://docs.lammps.org/temper.html) but\nrequires running replicas in the NPT ensemble instead of the canonical\n(NVT) ensemble and allows for pressure to be set in the ensembles.\nThese multiple ensembles can run in parallel at different temperatures\nor different pressures. The acceptance criteria for temper/npt is\nspecific to the NPT ensemble and can be found in references\n**Okabe2** and **Mori2**.\n\nApart from the difference in acceptance criteria and the specification\nof pressure, this command works much like the [temper ](https://docs.lammps.org/temper.html)\ncommand. See the documentation on [temper ](https://docs.lammps.org/temper.html) for information\non how the parallel tempering is handled in general.\n\n----------\n\n**(Okabe2)** T. Okabe, M. Kawata, Y. Okamoto, M. Masuhiro, Chem. Phys. Lett., 335, 435-439 (2001). \n \n**(Mori2)** Y. Mori, Y. Okamoto, J. Phys. Soc. Jpn., 7, 074003 (2010). \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThis command should be used with a fix that maintains the\nisothermal-isobaric (NPT) ensemble.\n", + "related": "[temper ](https://docs.lammps.org/temper.html), [variable ](https://docs.lammps.org/variable.html), [fix_npt ](https://docs.lammps.org/fix_nh.html)\n" }, { "command": [ - "dihedral_coeff" + "pair_style oxrna2/excv", + "pair_style oxrna2/stk", + "pair_style oxrna2/hbond", + "pair_style oxrna2/xstk", + "pair_style oxrna2/coaxstk" ], "syntax": [ - "dihedral_coeff N args" + "pair_style style1" ], "args": [ [ { - "arg": "dihedral_coeff", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "args", + "arg": "style1", "type": 2, "choices": [] } ] ], - "parameters": "* N = numeric dihedral type (see asterisk form below) or alphanumeric type label\n* args = coefficients for one or more dihedral types \n", - "examples": "\n```lmps\ndihedral_coeff 1 80.0 1 3\ndihedral_coeff * 80.0 1 3 0.5\ndihedral_coeff 2* 80.0 1 3 0.5\n\nlabelmap dihedral 1 backbone\ndihedral_coeff backbone 80.0 1 3\n```\n", - "html_filename": "dihedral_coeff.html", - "short_description": "Specify the dihedral force field coefficients for one or more dihedral\ntypes", - "description": "Specify the dihedral force field coefficients for one or more dihedral\ntypes. The number and meaning of the coefficients depends on the\ndihedral style. Dihedral coefficients can also be set in the data file\nread by the [read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of two ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be\nan alphanumeric type label, which is a string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a corresponding section of a\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple dihedral types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of dihedral types,\nthen an asterisk with no numeric values means all types from 1 to\n\\(N\\). A leading asterisk means all types from 1 to n (inclusive).\nA trailing asterisk means all types from n to \\(N\\) (inclusive). A\nmiddle asterisk means all types from m to n (inclusive).\n\nNote that using a dihedral_coeff command can override a previous setting\nfor the same dihedral type. For example, these commands set the coeffs\nfor all dihedral types, then overwrite the coeffs for just dihedral type\n2:\n\n```lmps\ndihedral_coeff * 80.0 1 3\ndihedral_coeff 2 200.0 1 3\n```\nA line in a data file that specifies dihedral coefficients uses the exact\nsame format as the arguments of the dihedral_coeff command in an input\nscript, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For example,\nunder the \"Dihedral Coeffs\" section of a data file, the line that\ncorresponds to the first example above would be listed as\n\n```\n1 80.0 1 3\n```\nThe [dihedral_style class2 ](https://docs.lammps.org/dihedral_class2.html) is an exception to\nthis rule, in that an additional argument is used in the input script\nto allow specification of the cross-term coefficients. See its doc\npage for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When comparing the formulas and coefficients for various LAMMPS\n > dihedral styles with dihedral equations defined by other force fields,\n > note that some force field implementations divide/multiply the energy\n > prefactor *K* by the multiple number of torsions that contain the\n > *J* --\\ *K* bond in an *I* -\\ *J* -\\ *K* -\\ *L* torsion. LAMMPS does\n > not do this (i.e., the listed dihedral equation applies to each individual\n > dihedral). Thus, you need to define *K* appropriately to account for this\n > difference, if necessary. \n > \n\n----------\n\nThe list of all dihedral styles defined in LAMMPS is given on the\n[dihedral_style ](https://docs.lammps.org/dihedral_style.html) doc page. They are also listed\nin more compact form on the :ref:`Commands dihedral ` doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\ndihedral_coeff command.\n\n----------\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nA dihedral style must be defined before any dihedral coefficients are\nset, either in the input script or in a data file.\n", - "related": "[dihedral_style ](https://docs.lammps.org/dihedral_style.html)\n" + "parameters": "* style1 = *hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh*\n\n* style2 = oxrna2/excv or oxrna2/stk or oxrna2/hbond or oxrna2/xstk or oxrna2/coaxstk or oxrna2/dh\n* args = list of arguments for these particular styles \n *      oxrna2/stk args = seq T xi kappa 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 \n       seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       xi = 1.40206 (LJ units) or 8.35864576375849 (real units), temperature-independent coefficient in stacking strength \n       kappa = 2.77 (LJ units) or 0.005504556 (real units), coefficient of linear temperature dependence in stacking strength \n *      oxrna2/hbond args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 \n       seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) \n       eps = 0.870439 (LJ units) or 5.18928666388042 (real units), average hydrogen bonding strength between A-U and C-G Watson-Crick and G-U wobble base pairs, 0 between all other pairs \n *      oxrna2/dh args = T rhos qeff \n       T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) \n       rhos = salt concentration (mole per litre) \n       qeff = 1.02455 (effective charge in elementary charges) \n", + "examples": "\n```lmps\n# LJ units\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65\npair_coeff * * oxrna2/hbond seqdep 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 3 4 oxrna2/hbond seqdep 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxrna2/xstk 59.9626 0.5 0.6 0.42 0.58 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68\npair_coeff * * oxrna2/coaxstk 80 0.5 0.6 0.42 0.58 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65\npair_coeff * * oxrna2/dh 0.1 0.5 1.02455\n\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv oxrna2_lj.cgdna\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff * * oxrna2/xstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/dh 0.1 0.5 oxrna2_lj.cgdna\n\n# Real units\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576\npair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65\npair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45\npair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68\npair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65\npair_coeff * * oxrna2/dh 300.0 0.5 1.02455\n\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv oxrna2_real.cgdna\npair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2_real.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_real.cgdna\npair_coeff * * oxrna2/xstk oxrna2_real.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_real.cgdna\npair_coeff * * oxrna2/dh 300.0 0.5 oxrna2_real.cgdna\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coefficients in the above examples are provided in forms\n > compatible with both *units lj* and *units real* (see documentation\n > of [units ](https://docs.lammps.org/units.html)). These can also be read from a potential\n > file with correct unit style by specifying the name of the\n > file. Several potential files for each unit style are included in the\n > ``potentials`` directory of the LAMMPS distribution.\n >\n > \n > \n\n", + "html_filename": "pair_oxrna2.html", + "short_description": "The *oxrna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of RNA", + "description": "The *oxrna2* pair styles compute the pairwise-additive parts of the\noxDNA force field for coarse-grained modelling of RNA. The effective\ninteraction between the nucleotides consists of potentials for the\nexcluded volume interaction *oxrna2/excv*, the stacking *oxrna2/stk*,\ncross-stacking *oxrna2/xstk* and coaxial stacking interaction\n*oxrna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxrna2/dh* as\nwell as the hydrogen-bonding interaction *oxrna2/hbond* between\ncomplementary pairs of nucleotides on opposite strands. Average sequence\nor sequence-dependent stacking and base-pairing strengths are supported\n:ref:[(Sulc2) ](https://docs.lammps.org/Sulc32>`. Quasi-unique base-pairing between nucleotidescan be achieved by using more complementary pairs of atom types like 5-8and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents thehybridization of in principle complementary bases within Ntypes/4 basesup and down along the backbone.The exact functional form of the pair styles is rather complex. Theindividual potentials consist of products of modulation factors, whichthemselves are constructed from a number of more basic potentials(Morse, Lennard-Jones, harmonic angle and distance) as well as quadraticsmoothing and modulation terms. We refer to **Sulc31** andthe original oxDNA publications :ref:`(Ouldridge-DPhil)` and **Ouldridge3** for a detaileddescription of the oxRNA2 force field.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used together with the related oxDNA2 > bond style *oxrna2/fene* for the connectivity of the phosphate > backbone (see also documentation of [bond_style oxrna2/fene > ](https://docs.lammps.org/bond_oxdna.html)). Most of the coefficients in the above example have to > be kept fixed and cannot be changed without reparameterizing the > entire model. Exceptions are the first four coefficients after > *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 and > corresponding *real unit* equivalents in the above examples), the > first coefficient after *oxrna2/hbond* (seq=seqdep in the above > example) and the three coefficients after *oxrna2/dh* (T=0.1, > rhos=0.5, qeff=1.02455 in the above example). When using a Langevin > thermostat e.g. through [fix langevin ](https://docs.lammps.org/fix_langevin.html) or > [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html) the temperature > coefficients have to be matched to the one used in the fix. > > ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >These pair styles have to be used with the *atom_style hybrid bond > ellipsoid oxdna* (see documentation of [atom_style > ](https://docs.lammps.org/atom_style.html)). The *atom_style oxdna* stores the 3'-to-5' polarity > of the nucleotide strand, which is set through the bond topology in > the data file. The first (second) atom in a bond definition is > understood to point towards the 3'-end (5'-end) of the strand. > Example input and data files for DNA duplexes can be found in``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. A simple pythonsetup tool which creates single straight or helical DNA strands, DNAduplexes or arrays of DNA duplexes can be found in``examples/PACKAGES/cgdna/util/``.Please cite **Henrich3** in any publication that usesthis implementation. The article contains general information on themodel, its implementation and performance as well as the structure ofthe data and input file. The preprint version of the article can befound `here \n```\nIf potential customization is required, the potential file reading can\nbe mixed with the manual specification of the potential parameters. For\nexample, the following command:\n\n```lmps\npair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh\npair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32\npair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna\npair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna\npair_coeff * * oxrna2/xstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna\npair_coeff * * oxrna2/dh 0.1 0.5 1.02455\n```\nwill read the excluded volume and Debye-Hueckel effective charge *qeff*\nparameters from the manual specification and all others from the\npotential file *oxrna2_lj.cgdna*.\n\nThere are sample potential files for each unit style in the\n``potentials`` directory of the LAMMPS distribution. The potential file\nunit system must align with the units defined via the [units](https://docs.lammps.org/units.html) command. For conversion between different *LJ* and *real* unit\nsystems for oxDNA, the python tool *lj2real.py* located in the\n``examples/PACKAGES/cgdna/util/`` directory can be used. This tool\nassumes similar file structure to the examples found in\n``examples/PACKAGES/cgdna/examples/``.\n\n----------\n\n**(Sulc32)** P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012). \n \n**(Sulc31)** P. Sulc, F. Romano, T. E. Ouldridge, et al., J. Chem. Phys. 140, 235102 (2014). \n \n**(Ouldridge3)** T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011). \n \n**(Henrich3)** O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018). \n ", + "restrictions": "These pair styles can only be used if LAMMPS was built with the\nCG-DNA package and the MOLECULE and ASPHERE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[bond_style oxrna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[bond_style oxdna/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna/excv ](https://docs.lammps.org/pair_oxdna.html),\n[bond_style oxdna2/fene ](https://docs.lammps.org/bond_oxdna.html), [pair_style oxdna2/excv ](https://docs.lammps.org/pair_oxdna2.html),\n[atom_style oxdna ](https://docs.lammps.org/atom_style.html), [fix nve/dotc/langevin ](https://docs.lammps.org/fix_nve_dotc_langevin.html)\n" }, { "command": [ - "replicate" + "fix nph/sphere", + "fix nph/sphere/omp" ], "syntax": [ - "replicate nx ny nz keyword ..." + "fix ID group-ID nph/sphere args keyword value ..." ], "args": [ [ { - "arg": "replicate", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "nx", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "ny", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "nz", + "arg": "nph/sphere", + "type": 3, + "choices": [ + "nph/sphere", + "nph/sphere/omp" + ] + }, + { + "arg": "args", "type": 2, "choices": [] }, { - "arg": "bond/periodic", - "type": 3, - "choices": [ - "bbox", - "bond/periodic" - ] + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "nx,ny,nz = replication factors in each dimension\n\n* zero or more keywords may be appended\n* keyword = bbox or bond/periodic \n *        bbox = use a bounding-box algorithm which is faster for large proc counts \n *        bond/periodic = use an algorithm that correctly replicates periodic bond loops \n", - "examples": "For examples of replicating simple linear polymer chains (periodic or\nnon-periodic) or periodic carbon nanotubes, see examples/replicate.\n\n```lmps\nreplicate 2 3 2\nreplicate 2 3 2 bbox\nreplicate 2 3 2 bond/periodic\n```\n", - "html_filename": "replicate.html", - "short_description": "Replicate the current system one or more times in each dimension", - "description": "Replicate the current system one or more times in each dimension. For\nexample, replication factors of 2,2,2 will create a simulation with 8x\nas many atoms by doubling the size of the simulation box in each\ndimension. A replication factor of 1 leaves the simulation domain\nunchanged in that dimension.\n\nWhen the new simulation box is created it is partitioned into a\nregular 3d grid of rectangular bricks, one per processor, based on the\nnumber of processors being used and the settings of the\n[processors ](https://docs.lammps.org/processors.html) command. The partitioning can be\nchanged by subsequent [balance ](https://docs.lammps.org/balance.html) or [fix balance](https://docs.lammps.org/fix_balance.html) commands.\n\nAll properties of each atom are replicated (except per-atom fix data,\nsee the Restrictions section below). This includes their velocities,\nwhich may or may not be desirable. New atom IDs are assigned to new\natoms, as are new molecule IDs. Bonds and other topology interactions\nare created between pairs of new atoms as well as between old and new\natoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The bond discussion which follows only refers to models with\n > permanent covalent bonds typically defined in LAMMPS via a data\n > file. It is not relevant to systems modeled with many-body\n > potentials which can define bonds on-the-fly, based on the current\n > positions of nearby atoms, e.g. models using the [AIREBO > ](https://docs.lammps.org/pair_airebo.html) or [ReaxFF ](https://docs.lammps.org/pair_reaxff.html) potentials. \n > \n\nIf the *bond/periodic* keyword is not specified, bond replication is\ndone by using the image flag for each atom to \"unwrap\" it out of the\nperiodic box before replicating it. After replication is performed,\natoms outside the new periodic box are wrapped back into it. This\nassigns correct images flags to all atoms in the system. For this to\nwork, all original atoms in the original simulation box must have\nconsistent image flags. This means that if two atoms have a bond\nbetween them which crosses a periodic boundary, their respective image\nflags will differ by 1 in that dimension.\n\nImage flag consistency is not possible if a system has a periodic bond\nloop, meaning there is a chain of bonds which crosses an entire\ndimension and re-connects to itself across a periodic boundary. In\nthis case you MUST use the *bond/periodic* keyword to correctly\nreplicate the system. This option zeroes the image flags for all\natoms and uses a different algorithm to find new (nearby) bond\nneighbors in the replicated system. In the final replicated system\nall image flags are zero (in each dimension).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check for image flag consistency before performing\n > the replication (it does issue a warning about this before a\n > simulation is run). If the original image flags are inconsistent,\n > the replicated system will also have inconsistent image flags, but\n > will otherwise be correctly replicated. This is NOT the case if\n > there is a periodic bond loop. See the next note. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check for periodic bond loops. If you use the\n > *bond/periodic* keyword for a system without periodic bond loops,\n > the system will be correctly replicated, but image flag information\n > will be lost (which may or may not be important to your model). If\n > you do not use the *bond/periodic* keyword for a system with\n > periodic bond loops, the replicated system will have invalid bonds\n > (typically very long), resulting in bad dynamics. \n > \n\nIf possible, the *bbox* keyword should be used when running on a large\nnumber of processors, as it can result in a substantial speed-up for\nthe replication operation. It uses a bounding box to only check atoms\nin replicas that overlap with each processor's new subdomain when\nassigning atoms to processors. It also preserves image flag\ninformation. The only drawback to the *bbox* option is that it\nrequires a temporary use of more memory. Each processor must be able\nto store all atoms (and their per-atom data) in the original system,\nbefore it is replicated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The algorithm used by the *bond/periodic* keyword builds on the\n > algorithm used by the *bbox* keyword and thus has the same memory\n > requirements. If you specify only the *bond/peridoic* keyword it\n > will internally set the *bbox* keyword as well. \n > \n\n----------\n", - "restrictions": "A 2d simulation cannot be replicated in the z dimension.\n\nIf a simulation is non-periodic in a dimension, care should be used\nwhen replicating it in that dimension, as it may generate atoms nearly\non top of each other.\n\nIf the current simulation was read in from a restart file (before a\nrun is performed), there must not be any fix information stored in the\nfile for individual atoms. Similarly, no fixes can be defined at the\ntime the replicate command is used that require vectors of atom\ninformation to be stored. This is because the replicate command does\nnot know how to replicate that information for new atoms it creates.\n\nTo work around this restriction two options are possible. (1) Fixes\nwhich use the stored data in the restart file can be defined before\nreplication and then deleted via the [unfix ](https://docs.lammps.org/unfix.html) command and\nre-defined after it. Or (2) the restart file can be converted to a\ndata file (which deletes the stored fix information) and fixes defined\nafter the replicate command. In both these scenarios, the per-atom\nfix information in the restart file is lost.\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nph/sphere = style name of this fix command\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n* additional barostat related keyword/value pairs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nph/sphere iso 0.0 0.0 1000.0\nfix 2 all nph/sphere x 5.0 5.0 1000.0\nfix 2 all nph/sphere x 5.0 5.0 1000.0 disc\nfix 2 all nph/sphere x 5.0 5.0 1000.0 drag 0.2\nfix 2 water nph/sphere aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_nph_sphere.html", + "short_description": "Perform constant NPH integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover pressure barostat", + "description": "Perform constant NPH integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover pressure barostat. P is pressure; H is\nenthalpy. This creates a system trajectory consistent with the\nisenthalpic ensemble.\n\nThis fix differs from the [fix nph ](https://docs.lammps.org/fix_nh.html) command, which assumes\npoint particles and only updates their position and velocity.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the barostat are specified by keywords\nand values documented with the [fix nph ](https://docs.lammps.org/fix_nh.html) command. See,\nfor example, discussion of the *aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPH integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/sphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/sphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover barostat to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nph ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", + "related": "[fix nph ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html), [fix nvt_sphere ](https://docs.lammps.org/fix_nvt_sphere.html), [fix npt_sphere ](https://docs.lammps.org/fix_npt_sphere.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "pair_style coul/cut/dielectric", - "pair_style coul/long/dielectric", - "pair_style lj/cut/coul/cut/dielectric", - "pair_style lj/cut/coul/cut/dielectric/omp", - "pair_style lj/cut/coul/debye/dielectric", - "pair_style lj/cut/coul/debye/dielectric/omp", - "pair_style lj/cut/coul/long/dielectric", - "pair_style lj/cut/coul/long/dielectric/omp", - "pair_style lj/cut/coul/msm/dielectric" + "angle_style cosine/delta", + "angle_style cosine/delta/omp" ], "syntax": [ - "pair_style style args" + "angle_style cosine/delta" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "lj/cut/coul/long/dielectric/omp", + "arg": "cosine/delta", "type": 3, "choices": [ - "lj/cut/coul/cut/dielectric", - "lj/cut/coul/long/dielectric", - "lj/cut/coul/msm/dielectric", - "lj/long/coul/msm/dielectric", - "lj/cut/coul/cut/dielectric/omp", - "lj/cut/coul/long/dielectric/omp" + "cosine/delta", + "cosine/delta/omp" ] - }, - { - "arg": "args", - "type": 2, - "choices": [] } ] ], - "parameters": "* style = lj/cut/coul/cut/dielectric or lj/cut/coul/long/dielectric or lj/cut/coul/msm/dielectric or lj/long/coul/msm/dielectric\n* args = list of arguments for a particular style \n", - "examples": "\n```lmps\npair_style coul/cut/dielectric 10.0\npair_coeff * *\npair_coeff 1 1 9.0\n\npair_style lj/cut/coul/cut/dielectric 10.0\npair_style lj/cut/coul/cut/dielectric 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/coul/long/dielectric 10.0\npair_style lj/cut/coul/long/dielectric 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/dielectric/in.confined\nexamples/PACKAGES/dielectric/in.nopbc\n```\n", - "html_filename": "pair_dielectric.html", - "short_description": "All these pair styles are derived from the corresponding pair styles\nwithout the *dielectric* suffix", - "description": "All these pair styles are derived from the corresponding pair styles\nwithout the *dielectric* suffix. In addition to computing atom forces\nand energies, these pair styles compute the electric field vector at\neach atom, which are intended to be used by the [fix polarize](https://docs.lammps.org/fix_polarize.html) commands to compute induced charges at interfaces\nbetween two regions of different dielectric constant.\n\nThese pair styles should be used with [atom_style dielectric](https://docs.lammps.org/atom_style.html).\n\nThe styles lj/cut/coul/long/dielectric, lj/cut/coul/msm/dielectric, and\nlj/long/coul/long/dielectric should be used with their kspace style\ncounterparts, namely, pppm/dielectric, pppm/disp/dielectric, and\nmsm/dielectric, respectively.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distances for this pair style can be mixed. The default mix\nalgorithm is *geometric* . See the [pair_modify ](https://docs.lammps.org/pair_modify.html)\"\ncommand for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThese pair styles write its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n", - "restrictions": "These styles are part of the DIELECTRIC package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix polarize ](https://docs.lammps.org/fix_polarize.html), [read_data ](https://docs.lammps.org/read_data.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/delta\nangle_coeff 2*4 75.0 100.0\n```\n", + "html_filename": "angle_cosine_delta.html", + "short_description": "The *cosine/delta* angle style uses the potential\n\\[\n E = K [1 - \\cos(\\theta - \\theta_0)]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", + "description": "The *cosine/delta* angle style uses the potential\n\\[\n E = K [1 - \\cos(\\theta - \\theta_0)]\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html), [angle_style cosine/squared ](https://docs.lammps.org/angle_cosine_squared.html)\n" }, { "command": [ - "fix nve/spin" + "compute viscosity/cos" ], "syntax": [ - "fix ID group-ID nve/spin keyword values" + "compute ID group-ID viscosity/cos" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -32351,36 +31439,27 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/spin", + "arg": "viscosity/cos", "type": 1, "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/spin = style name of this fix command\n* keyword = lattice \n *        lattice value = moving or frozen \n         moving = integrate both spin and atomic degress of freedom \n         frozen = integrate spins on a fixed lattice \n", - "examples": "\n```lmps\nfix 3 all nve/spin lattice moving\nfix 1 all nve/spin lattice frozen\n```\n", - "html_filename": "fix_nve_spin.html", - "short_description": "Perform a symplectic integration for the spin or spin-lattice system", - "description": "Perform a symplectic integration for the spin or spin-lattice system.\n\nThe *lattice* keyword defines if the spins are integrated on a lattice\nof fixed atoms (lattice = frozen), or if atoms are moving\n(lattice = moving).\nThe first case corresponds to a spin dynamics calculation, and\nthe second to a spin-lattice calculation.\nBy default a spin-lattice integration is performed (lattice = moving).\n\nThe *nve/spin* fix applies a Suzuki-Trotter decomposition to\nthe equations of motion of the spin lattice system, following the scheme:\n\n ![Image](JPG/fix_integration_spin_stdecomposition.jpg) \n\naccording to the implementation reported in **Omelyan1**.\n\nA sectoring method enables this scheme for parallel calculations.\nThe implementation of this sectoring algorithm is reported\nin **Tranchida1**.\n\n----------\n\n**(Omelyan1)** Omelyan, Mryglod, and Folk. Phys. Rev. Lett.\n86(5), 898. (2001). \n \n**(Tranchida1)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", - "restrictions": "This fix style can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nTo use the spin algorithm, it is necessary to define a map with\nthe atom_modify command. Typically, by adding the command:\n\n```lmps\natom_modify map array\n```\nbefore you create the simulation box. Note that the keyword \"hash\"\ninstead of \"array\" is also valid.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [fix nve ](https://docs.lammps.org/fix_nve.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* viscosity/cos = style name of this compute command \n", + "examples": "\n```lmps\nunits real\ncompute cos all viscosity/cos\nvariable V equal c_cos[7]\nvariable A equal 0.02E-5 # A/fs^2\nvariable density equal density\nvariable lz equal lz\nvariable reciprocalViscosity equal v_V/${A}/v_density*39.4784/v_lz/v_lz*100 # 1/(Pa*s)\n```\n", + "html_filename": "compute_viscosity_cos.html", + "short_description": "Define a computation that calculates the velocity amplitude of a group of atoms\nwith an cosine-shaped velocity profile and the temperature of them\nafter subtracting out the velocity profile before computing the kinetic energy", + "description": "Define a computation that calculates the velocity amplitude of a group of atoms\nwith an cosine-shaped velocity profile and the temperature of them\nafter subtracting out the velocity profile before computing the kinetic energy.\nA compute of this style can be used by any command that computes a temperature\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThis command together with [fix_accelerate/cos](https://docs.lammps.org/fix_accelerate_cos.html)\nenables viscosity calculation with periodic perturbation method,\nas described by **Hess1**.\nAn acceleration along the \\(x\\)-direction is applied to the simulation\nsystem by using [fix_accelerate/cos](https://docs.lammps.org/fix_accelerate_cos.html) command.\nThe acceleration is a periodic function along the \\(z\\)-direction:\n\\[\n a_{x}(z) = A \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nwhere \\(A\\) is the acceleration amplitude, \\(l_z\\) is the\n\\(z\\)-length of the simulation box. At steady state, the acceleration\ngenerates a velocity profile:\n\\[\n v_{x}(z) = V \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nThe generated velocity amplitude \\(V\\) is related to the\nshear viscosity \\(\\eta\\) by\n\\[\n V = \\frac{A \\rho}{\\eta}\\left(\\frac{l_{z}}{2 \\pi}\\right)^{2},\\]\nand it can be obtained from ensemble average of the velocity profile via\n\\[\n V = \\frac{\\sum\\limits_i 2 m_{i} v_{i, x} \\cos \\left(\\frac{2 \\pi z_i}{l_{z}}\\right)}{\\sum\\limits_i m_{i}}\\]\nwhere \\(m_i\\), \\(v_{i,x}\\) and \\(z_i\\) are the mass,\n\\(x\\)-component velocity, and \\(z\\)-coordinate of a particle,\nrespectively.\n\nAfter the cosine-shaped collective velocity in the \\(x\\)-direction has been\nsubtracted for each atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the computation of a pressure\ntensor. The formula for the components of the tensor is the same as\nthe above formula, except that \\(v^2\\) is replaced by \\(v_x v_y\\) for\nthe \\(xy\\) component, and so on. The six components of the vector are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\nHowever, in order to get meaningful result, the group ID of this compute should\nbe all.\n\nThe removal of the cosine-shaped velocity component by this command is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees of freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means that the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees of freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a discussion of\ndifferent ways to compute temperature and perform thermostatting.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 7, which can be accessed by indices 1--7.\nThe first six elements of the vector are the KE tensor,\nand the seventh is the cosine-shaped velocity amplitude \\(V\\),\nwhich can be used to calculate the reciprocal viscosity, as shown in the example.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nfirst six elements of vector values are \"extensive\",\nand the seventh element of vector values is \"intensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html).\nThe first six elements of vector values will be in energy [units ](https://docs.lammps.org/units.html).\nThe seventh element of vector value will be in velocity [units ](https://docs.lammps.org/units.html).\n\n**(Hess1)** Hess, B. The Journal of Chemical Physics 2002, 116 (1), 209-217. \n ", + "restrictions": "This command is only available when LAMMPS was built with the MISC package.\nSince this compute depends on [fix accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html)\nwhich can only work for 3d systems, it cannot be used for 2d systems.\n", + "related": "[fix accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html)\n" }, { "command": [ - "fix rhok" + "fix reaxff/species", + "fix reaxff/species/kk" ], "syntax": [ - "fix ID group-ID rhok nx ny nz K a" + "fix ID group-ID reaxff/species Nevery Nrepeat Nfreq filename keyword value ..." ], "args": [ [ @@ -32400,99 +31479,154 @@ export const command_docs = [ "choices": [] }, { - "arg": "rhok", - "type": 1, - "choices": [] + "arg": "reaxff/species", + "type": 3, + "choices": [ + "reaxff/species", + "reaxff/species/kk" + ] }, { - "arg": "nx", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "ny", + "arg": "Nrepeat", "type": 2, "choices": [] }, { - "arg": "nz", + "arg": "Nfreq", "type": 2, "choices": [] }, { - "arg": "K", + "arg": "filename", "type": 2, "choices": [] }, { - "arg": "a", + "arg": "delete_rate_limit", + "type": 3, + "choices": [ + "cutoff", + "element", + "position", + "delete", + "delete_rate_limit" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nx, ny, nz = k-vector of collective density field\n* K = spring constant of bias potential\n* a = anchor point of bias potential \n", - "examples": "\n```lmps\nfix bias all rhok 16 0 0 4.0 16.0\nfix 1 all npt temp 0.8 0.8 4.0 z 2.2 2.2 8.0\n# output of 4 values from fix rhok: U_bias rho_k_RE rho_k_IM \\|rho_k\\|\nthermo_style custom step temp pzz lz f_bias f_bias[1] f_bias[2] f_bias[3]\n```\n", - "html_filename": "fix_rhok.html", - "short_description": "The fix applies a force to atoms given by the potential\n\\[\\begin{align*} \n U = & \\frac{1}{2} K (|\\rho_{\\vec{k}}| - a)^2 \\\\\n \\rho_{\\vec{k}} = & \\sum_j^N \\exp(-i\\vec{k} \\cdot \\vec{r}_j )/\\sqrt{N} \\\\\n \\vec{k} = & (2\\pi n_x /L_x , 2\\pi n_y /L_y , 2\\pi n_z/L_z ) \\end{align*} \\]\nas described in **Pedersen**", - "description": "The fix applies a force to atoms given by the potential\n\\[\\begin{align*} \n U = & \\frac{1}{2} K (|\\rho_{\\vec{k}}| - a)^2 \\\\\n \\rho_{\\vec{k}} = & \\sum_j^N \\exp(-i\\vec{k} \\cdot \\vec{r}_j )/\\sqrt{N} \\\\\n \\vec{k} = & (2\\pi n_x /L_x , 2\\pi n_y /L_y , 2\\pi n_z/L_z ) \\end{align*} \\]\nas described in **Pedersen**.\n\nThis field, which biases configurations with long-range order, can be\nused to study crystal-liquid interfaces and determine melting\ntemperatures **Pedersen**.\n\nAn example of using the interface pinning method is located in the\n*examples/PACKAGES/rhok* directory.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy calculated by the fix to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed in the preceding paragraph. The scalar stored by\nthis fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Pedersen)** Pedersen, J. Chem. Phys., 139, 104102 (2013). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[thermo_style ](https://docs.lammps.org/thermo_style.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* reaxff/species = style name of this command\n* Nevery = sample bond-order every this many timesteps\n* Nrepeat = # of bond-order samples used for calculating averages\n* Nfreq = calculate average bond-order every this many timesteps\n* filename = name of output file\n* zero or more keyword/value pairs may be appended\n* keyword = cutoff or element or position or delete or delete_rate_limit \n *        cutoff value = I J Cutoff \n         I, J = atom types (see asterisk form below) \n         Cutoff = Bond-order cutoff value for this pair of atom types \n *        element value = Element1, Element2, ... \n *        position value = posfreq filepos \n         posfreq = write position files every this many timestep \n         filepos = name of position output file \n *        delete value = filedel keyword value \n         filedel = name of delete species output file \n         keyword = specieslist or masslimit \n         specieslist value = Nspecies Species1 Species2 ... \n         Nspecies = number of species in list \n         masslimit value = massmin massmax \n         massmin = minimum molecular weight of species to delete \n         massmax = maximum molecular weight of species to delete \n *        delete_rate_limit value = Nlimit Nsteps \n         Nlimit = maximum number of deletions allowed to occur within interval \n         Nsteps = the interval (number of timesteps) over which to count deletions \n", + "examples": "\n```lmps\nfix 1 all reaxff/species 10 10 100 species.out\nfix 1 all reaxff/species 1 2 20 species.out cutoff 1 1 0.40 cutoff 1 2*3 0.55\nfix 1 all reaxff/species 1 100 100 species.out element Au O H position 1000 AuOH.pos\nfix 1 all reaxff/species 1 100 100 species.out delete species.del masslimit 0 50\n```\n", + "html_filename": "fix_reaxff_species.html", + "short_description": "Write out the chemical species information computed by the ReaxFF\npotential specified by [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html)", + "description": "Write out the chemical species information computed by the ReaxFF\npotential specified by [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html).\nBond-order values (either averaged or instantaneous, depending on\nvalue of *Nrepeat* ) are used to determine chemical bonds. Every\n*Nfreq* timesteps, chemical species information is written to\n*filename* as a two line output. The first line is a header\ncontaining labels. The second line consists of the following:\ntimestep, total number of molecules, total number of distinct species,\nnumber of molecules of each species. In this context, \"species\" means\na unique molecule. The chemical formula of each species is given in\nthe first line.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >In order to compute averaged data, it is required that there are no\n > neighbor list rebuilds for at least Nrepeat\\*Nevery steps preceding\n > each *Nfreq* step. For that reason, fix *reaxff/species* may\n > change your neighbor list settings. Reneighboring will occur no\n > more frequently than every Nrepeat\\*Nevery timesteps, and will\n > occur less frequently if *Nfreq* is not a multiple of\n > Nrepeat\\*Nevery. There will be a warning message showing the new\n > settings. Having a *Nfreq* setting that is larger than what is\n > required for correct computation of the ReaxFF force field\n > interactions, in combination with certain *Nrepeat* and *Nevery*\n > settings, can thus lead to incorrect results. For typical ReaxFF\n > calculations, reneighboring only every 100 steps is already quite a\n > low frequency. \n > \n\nIf the filename ends with \".gz\", the output file is written in gzipped\nformat. A gzipped dump file will be about 3x smaller than the text version,\nbut will also take longer to write.\n\n **New in version 15Jun2023** \n\n Support for wildcards added\nOptional keyword *cutoff* can be assigned to change the minimum\nbond-order values used in identifying chemical bonds between pairs of\natoms. Bond-order cutoffs should be carefully chosen, as bond-order\ncutoffs that are too small may include too many bonds (which will result\nin an error), while cutoffs that are too large will result in fragmented\nmolecules. The default cutoff of 0.3 usually gives good results. A\nwildcard asterisk can be used in place of or in conjunction with the I,J\narguments to set the bond-order cutoff for multiple pairs of atom types.\nThis takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of atom types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from n to\n\\(N\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe optional keyword *element* can be used to specify the chemical\nsymbol printed for each LAMMPS atom type. The number of symbols must\nmatch the number of LAMMPS atom types and each symbol must consist of\n1 or 2 alphanumeric characters. By default, these symbols are the same\nas the chemical identity of each LAMMPS atom type, as specified by the\n[ReaxFF pair_coeff ](https://docs.lammps.org/pair_reaxff.html) command and the ReaxFF force\nfield file.\n\nThe optional keyword *position* writes center-of-mass positions of\neach identified molecules to file *filepos* every *posfreq* timesteps.\nThe first line contains information on timestep, total number of\nmolecules, total number of distinct species, and box dimensions. The\nsecond line is a header containing labels. From the third line\ndownward, each molecule writes a line of output containing the\nfollowing information: molecule ID, number of atoms in this molecule,\nchemical formula, total charge, and center-of-mass xyz positions of\nthis molecule. The xyz positions are in fractional coordinates\nrelative to the box dimensions.\n\nFor the keyword *position*, the *filepos* is the name of the output\nfile. It can contain the wildcard character \"\\*\". If the \"\\*\"\ncharacter appears in *filepos*, then one file per snapshot is written\nat *posfreq* and the \"\\*\" character is replaced with the timestep\nvalue. For example, AuO.pos.\\* becomes AuO.pos.0, AuO.pos.1000, etc.\n\nThe optional keyword *delete* enables the periodic removal of molecules\nfrom the system **Delete**. Criteria for deletion can\nbe either a list of specific chemical formulae or a range of molecular\nweights. Molecules are deleted every *Nfreq* timesteps, and bond\nconnectivity is determined using the *Nevery* and *Nrepeat* keywords. The\n*filedel* argument is the name of the output file that records the species\nthat are removed from the system. The *specieslist* keyword permits\nspecific chemical species to be deleted. The *Nspecies* argument specifies\nhow many species are eligible for deletion and is followed by a list of\nchemical formulae, whose strings are compared to species identified by this\nfix. For example, \"specieslist 2 CO CO2\" deletes molecules that are\nidentified as \"CO\" and \"CO2\" in the species output file. When using the\n*specieslist* keyword, the *filedel* file has the following format: the\nfirst line lists the chemical formulae eligible for deletion, and each\nadditional line contains the timestep on which a molecule deletion occurs\nand the number of each species deleted on that timestep. The *masslimit*\nkeyword permits deletion of molecules with molecular weights between\n*massmin* and *massmax*. When using the *masslimit* keyword, each line of\nthe *filedel* file contains the timestep on which deletions occurs,\nfollowed by how many of each species are deleted (with quantities preceding\nchemical formulae). The *specieslist* and *masslimit* keywords cannot both\nbe used in the same *reaxff/species* fix. The *delete_rate_limit* keyword\ncan enforce an upper limit on the overall rate of molecule deletion. The\nnumber of deletion occurrences is limited to Nlimit within an interval of\nNsteps timesteps. Nlimit can be specified with an equal-style\n[variable ](https://docs.lammps.org/variable.html). When using the *delete_rate_limit* keyword, no\ndeletions are permitted to occur within the first Nsteps timesteps of the\nfirst run (after reading a either a data or restart file).\n\n----------\n\nThe *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what\ntimesteps the bond-order values are sampled to get the average bond\norder. The species analysis is performed using the average bond-order\non timesteps that are a multiple of *Nfreq* . The average is over\n*Nrepeat* bond-order samples, computed in the preceding portion of the\nsimulation every *Nevery* timesteps. *Nfreq* must be a multiple of\n*Nevery* and *Nevery* must be non-zero even if *Nrepeat* is 1.\nAlso, the timesteps\ncontributing to the average bond-order cannot overlap,\ni.e. Nrepeat\\*Nevery can not exceed Nfreq.\n\nFor example, if Nevery=2, Nrepeat=6, and Nfreq=100, then bond-order\nvalues on timesteps 90,92,94,96,98,100 will be used to compute the\naverage bond-order for the species analysis output on timestep 100.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix computes both a global vector of length 2 and a per-atom vector,\neither of which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\nThe values in the global vector are \"intensive\".\n\nThe 2 values in the global vector are as follows:\n\n* 1 = total number of molecules\n* 2 = total number of distinct species\n\nThe per-atom vector stores the molecule ID for each atom as identified\nby the fix. If an atom is not in a molecule, its ID will be 0.\nFor atoms in the same molecule, the molecule ID for all of them\nwill be the same and will be equal to the smallest atom ID of\nany atom in the molecule.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Delete)** Jacob R. Gissinger, Scott R. Zavada, Joseph G. Smith, Josh Kemppainen, Ivan Gallegos, Gregory M. Odegard, Emilie J. Siochi, and Kristopher E. Wise, Carbon, 202, 336-347 (2023). \n ", + "restrictions": "The \"fix reaxff/species\" requires that [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) is used.\nThis fix is part of the REAXFF package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo write gzipped species files, you must compile LAMMPS with the -DLAMMPS_GZIP option.\n", + "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html)\n" }, { "command": [ - "compute temp", - "compute temp/kk" + "bond_style bpm/spring" ], "syntax": [ - "compute ID group-ID temp" + "bond_style bpm/spring keyword value attribute1 attribute2 ..." ], "args": [ [ { - "arg": "compute", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "bpm/spring", + "type": 1, + "choices": [] + }, + { + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "value", "type": 2, "choices": [] }, { - "arg": "temp", + "arg": "attribute1", + "type": 2, + "choices": [] + }, + { + "arg": "attribute2", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* optional keyword = overlay/pair or store/local or smooth or break \n *        store/local values = fix_ID N attributes ... \n         * fix_ID = ID of associated internal fix to store data \n         * N = prepare data for output every this many timesteps \n         * attributes = zero or more of the below attributes may be appended \n         *id1, id2* = IDs of 2 atoms in the bond \n         time = the timestep the bond broke \n         *x, y, z* = the center of mass position of the 2 atoms when the bond broke (distance units) \n         *x/ref, y/ref, z/ref* = the initial center of mass position of the 2 atoms (distance units) \n *        overlay/pair value = yes or no \n         bonded particles will still interact with pair forces \n *        smooth value = yes or no \n         smooths bond forces near the breaking point \n *        *normalize* value = yes or no \n         normalizes bond forces by the reference length \n *        break value = yes or no \n         indicates whether bonds break during a run \n", + "examples": "\n```lmps\nbond_style bpm/spring\nbond_coeff 1 1.0 0.05 0.1\n\nbond_style bpm/spring myfix 1000 time id1 id2\ndump 1 all local 1000 dump.broken f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", + "html_filename": "bond_bpm_spring.html", + "short_description": "\nThe *bpm/spring* bond style computes forces based on\ndeviations from the initial reference state of the two atoms", + "description": "\nThe *bpm/spring* bond style computes forces based on\ndeviations from the initial reference state of the two atoms. The\nreference state is stored by each bond when it is first computed in\nthe setup of a run. Data is then preserved across run commands and is\nwritten to [binary restart files ](https://docs.lammps.org/restart.html) such that restarting\nthe system will not reset the reference state of a bond.\n\nThis bond style only applies central-body forces which conserve the\ntranslational and rotational degrees of freedom of a bonded set of\nparticles based on a model described by Clemmer and Robbins\n**fragment-Clemmer**. The force has a magnitude of\n\\[\n F = k (r - r_0) w\\]\nwhere \\(k\\) is a stiffness, \\(r\\) is the current distance\nand \\(r_0\\) is the initial distance between the two particles, and\n\\(w\\) is an optional smoothing factor discussed below. Bonds will\nbreak at a strain of \\(\\epsilon_c\\). This is done by setting\nthe bond type to 0 such that forces are no longer computed.\n\nAn additional damping force is applied to the bonded\nparticles. This forces is proportional to the difference in the\nnormal velocity of particles using a similar construction as\ndissipative particle dynamics **Groot4**:\n\\[\n F_D = - \\gamma w (\\hat{r} \\bullet \\vec{v})\\]\nwhere \\(\\gamma\\) is the damping strength, \\(\\hat{r}\\) is the\nradial normal vector, and \\(\\vec{v}\\) is the velocity difference\nbetween the two particles.\n\nThe smoothing factor \\(w\\) can be added or removed by setting the\n*smooth* keyword to *yes* or *no*, respectively. It is constructed such\nthat forces smoothly go to zero, avoiding discontinuities, as bonds\napproach the critical strain\n\\[\n w = 1.0 - \\left( \\frac{r - r_0}{r_0 \\epsilon_c} \\right)^8 .\\]\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(k\\) (force/distance units)\n* \\(\\epsilon_c\\) (unit less)\n* \\(\\gamma\\) (force/velocity units)\n\nIf the *normalize* keyword is set to *yes*, the elastic bond force will be\nnormalized by \\(r_0\\) such that \\(k\\) must be given in force units.\n\nBy default, pair forces are not calculated between bonded particles.\nPair forces can alternatively be overlaid on top of bond forces by setting\nthe *overlay/pair* keyword to *yes*. These settings require specific\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings described in the\nrestrictions. Further details can be found in the [how to ](https://docs.lammps.org/Howto_bpm.html)\npage on BPMs.\n\nIf the *break* keyword is set to *no*, LAMMPS assumes bonds should not break\nduring a simulation run. This will prevent some unnecessary calculation.\nHowever, if a bond reaches a strain greater than \\(\\epsilon_c\\),\nit will trigger an error.\n\nIf the *store/local* keyword is used, an internal fix will track bonds that\nbreak during the simulation. Whenever a bond breaks, data is processed\nand transferred to an internal fix labeled *fix_ID*. This allows the\nlocal data to be accessed by other LAMMPS commands. Following this optional\nkeyword, a list of one or more attributes is specified. These include the\nIDs of the two atoms in the bond. The other attributes for the two atoms\ninclude the timestep during which the bond broke and the current/initial\ncenter of mass position of the two atoms.\n\nData is continuously accumulated over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\nNote that when unbroken bonds are dumped to a file via the\n[dump local ](https://docs.lammps.org/dump.html) command, bonds with type 0 (broken bonds)\nare not included.\nThe [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command can also be used to\nquery the status of broken bonds or permanently delete them, e.g.:\n\n```lmps\ndelete_bonds all stats\ndelete_bonds all bond 0 remove\n```\n----------\n\n #### Restart and other info\n\nThis bond style writes the reference state of each bond to\n[binary restart files ](https://docs.lammps.org/restart.html). Loading a restart\nfile will properly restore bonds. However, the reference state is NOT\nwritten to data files. Therefore reading a data file will not\nrestore bonds and will cause their reference states to be redefined.\n\nIf the *store/local* option is used, an internal fix will calculate\na local vector or local array depending on the number of input values.\nThe length of the vector or number of rows in the array is the number\nof recorded, broken bonds. If a single input is specified, a local\nvector is produced. If two or more inputs are specified, a local array\nis produced where the number of columns = the number of inputs. The\nvector or array can be accessed by any command that uses local values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page\nfor an overview of LAMMPS output options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\nThe single() function of this bond style returns 0.0 for the energy\nof a bonded interaction, since energy is not conserved in these\ndissipative potentials. The single() function also calculates an\nextra bond quantity, the initial distance \\(r_0\\). This\nextra quantity can be accessed by the\n[compute bond/local ](https://docs.lammps.org/compute_bond_local.html) command as *b1* .\n\n**(fragment-Clemmer)** Clemmer and Robbins, Phys. Rev. Lett. (2022). \n \n**(Groot4)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n ", + "restrictions": "This bond style is part of the BPM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nBy default if pair interactions between bonded atoms are to be disabled,\nthis bond style requires setting\n\n```lmps\nspecial_bonds lj 0 1 1 coul 1 1 1\n```\nand [newton ](https://docs.lammps.org/newton.html) must be set to bond off. If the *overlay/pair*\nkeyword is set to *yes*, this bond style alternatively requires setting\n\n```lmps\nspecial_bonds lj/coul 1 1 1\n```\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [pair bpm/spring ](https://docs.lammps.org/pair_bpm_spring.html)\n" +}, +{ + "command": [ + "pair_style edip", + "pair_style edip/omp", + "pair_style edip/multi" + ], + "syntax": [ + "pair_style style" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] + }, + { + "arg": "edip/omp", "type": 3, "choices": [ - "temp", - "temp/kk" + "edip", + "edip/multi", + "edip/omp" ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all temp\ncompute myTemp mobile temp\n```\n", - "html_filename": "compute_temp.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms", - "description": "Define a computation that calculates the temperature of a group of\natoms. A compute of this style can be used by any command that\ncomputes a temperature, e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\netc.\n\nThe temperature is calculated by the formula\n\\[\n T = \\frac{2 E_\\mathrm{kin}}{N_\\mathrm{DOF} k_B} \\quad \\mathrm{with} \\quad\n E_\\mathrm{kin} = \\sum^{N_\\mathrm{atoms}}_{i=1} \\frac{1}{2} m_i v^2_i \\quad \\mathrm{and} \\quad\n N_\\mathrm{DOF} = n_\\mathrm{dim} N_\\mathrm{atoms} - n_\\mathrm{dim} - N_\\mathrm{fix DOFs}\\]\nwhere \\(E_\\mathrm{kin}\\) is the total kinetic energy of the group of\natoms, \\(n_\\mathrm{dim}\\) is the dimensionality of the simulation\n(i.e. either 2 or 3), \\(N_\\mathrm{atoms}\\) is the number of atoms in\nthe group, \\(N_\\mathrm{fix DOFs}\\) is the number of degrees of\nfreedom removed by fix commands (see below), \\(k_B\\) is the\nBoltzmann constant, and \\(T\\) is the resulting computed temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\nBy default this *extra* component is initialized to\n\\(n_\\mathrm{dim}\\) (as shown in the formula above) to represent the\ndegrees of freedom removed from a system due to its translation\ninvariance due to periodic boundary conditions.\n\nA compute of this style with the ID of \"thermo_temp\" is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_temp all temp\n```\nSee the \"thermo_style\" command for more details.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length six (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html),\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* style = edip or edip/multi \n", + "examples": "\n```lmps\npair_style edip\npair_coeff * * Si.edip Si\n```\n", + "html_filename": "pair_edip.html", + "short_description": "The *edip* and *edip/multi* styles compute a 3-body **EDIP**\npotential which is popular for modeling silicon materials where\nit can have advantages over other models such as the\n[Stillinger-Weber ](https://docs.lammps.org/pair_sw.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\npotentials", + "description": "The *edip* and *edip/multi* styles compute a 3-body **EDIP**\npotential which is popular for modeling silicon materials where\nit can have advantages over other models such as the\n[Stillinger-Weber ](https://docs.lammps.org/pair_sw.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\npotentials. The *edip* style has been programmed for single element\npotentials, while *edip/multi* supports multi-element EDIP runs.\n\nIn EDIP, the energy E of a system of atoms is\n\\[\\begin{align*} \n E = & \\sum_{j \\ne i} \\phi_{2}(R_{ij}, Z_{i}) + \\sum_{j \\ne i} \\sum_{k \\ne i,k > j} \\phi_{3}(R_{ij}, R_{ik}, Z_{i}) \\\\\n \\phi_{2}(r, Z) = & A\\left[\\left(\\frac{B}{r}\\right)^{\\rho} - e^{-\\beta Z^2}\\right]exp{\\left(\\frac{\\sigma}{r-a}\\right)} \\\\\n \\phi_{3}(R_{ij}, R_{ik}, Z_i) = & exp{\\left(\\frac{\\gamma}{R_{ij}-a}\\right)}exp{\\left(\\frac{\\gamma}{R_{ik}-a}\\right)}h(cos\\theta_{ijk},Z_i) \\\\\n Z_i = & \\sum_{m \\ne i} f(R_{im}) \\qquad\n f(r) = \\begin{cases}\n 1 & \\quad ra\n \\end{cases} \\\\\n h(l,Z) = & \\lambda [(1-e^{-Q(Z)(l+\\tau(Z))^2}) + \\eta Q(Z)(l+\\tau(Z))^2 ] \\\\\n Q(Z) = & Q_0 e^{-\\mu Z} \\qquad \\tau(Z) = u_1 + u_2 (u_3 e^{-u_4 Z} - e^{-2u_4 Z}) \\end{align*} \\]\nwhere \\(\\phi_2\\) is a two-body term and \\(\\phi_3\\) is a\nthree-body term. The summations in the formula are over all neighbors J\nand K of atom I within a cutoff distance = a. Both terms depend on the\nlocal environment of atom I through its effective coordination number\ndefined by Z, which is unity for a cutoff distance < c and gently goes\nto 0 at distance = a.\n\nOnly a single pair_coeff command is used with the *edip* style which\nspecifies a EDIP potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of EDIP elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file Si.edip has EDIP values for Si.\n\nEDIP files in the *potentials* directory of the LAMMPS\ndistribution have a \".edip\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formula above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* A (energy units)\n* B (distance units)\n* cutoffA (distance units)\n* cutoffC (distance units)\n* \\(\\alpha\\)\n* \\(\\beta\\)\n* \\(\\eta\\)\n* \\(\\gamma\\) (distance units)\n* \\(lambda\\) (energy units)\n* \\(\\mu\\)\n* \\(\\tau\\)\n* \\(\\sigma\\) (distance units)\n* Q0\n* u1\n* u2\n* u3\n* u4\n\nThe A, B, beta, sigma parameters are used only for two-body interactions.\nThe eta, gamma, lambda, mu, Q0 and all u1 to u4 parameters are used only\nfor three-body interactions. The alpha and cutoffC parameters are used\nfor the coordination environment function only.\n\nThe EDIP potential file must contain entries for all the\nelements listed in the pair_coeff command. It can also contain\nentries for additional elements not being used in a particular\nsimulation; LAMMPS ignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify EDIP parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAt the moment, only a single element parameterization is\nimplemented. However, the author is not aware of other\nmulti-element EDIP parameterization. If you know any and\nyou are interest in that, please contact the author of\nthe EDIP package.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(EDIP)** J F Justo et al, Phys Rev B 58, 2539 (1998). \n ", + "restrictions": "This pair style can only be used if LAMMPS was built with the\nMANYBODY package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe EDIP potential files provided with LAMMPS (see the potentials directory)\nare parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the EDIP potential with any LAMMPS units, but you would need\nto create your own EDIP potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute ke/eff" + "fix qmmm" ], "syntax": [ - "compute ID group-ID ke/eff" + "fix ID group-ID qmmm" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -32507,111 +31641,148 @@ export const command_docs = [ "choices": [] }, { - "arg": "ke/eff", + "arg": "qmmm", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/eff = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all ke/eff\n```\n", - "html_filename": "compute_ke_eff.html", - "short_description": "Define a computation that calculates the kinetic energy of motion of a\ngroup of eFF particles (nuclei and electrons), as modeled with the\n[electronic force field ](https://docs.lammps.org/pair_eff.html)", - "description": "Define a computation that calculates the kinetic energy of motion of a\ngroup of eFF particles (nuclei and electrons), as modeled with the\n[electronic force field ](https://docs.lammps.org/pair_eff.html).\n\nThe kinetic energy for each nucleus is computed as \\(\\frac{1}{2} m\nv^2\\) and the kinetic energy for each electron is computed as\n\\(\\frac{1}{2}(m_e v^2 + \\frac{3}{4} m_e s^2)\\), where \\(m\\)\ncorresponds to the nuclear mass, \\(m_e\\) to the electron mass, \\(v\\)\nto the translational velocity of each particle, and \\(s\\) to the radial\nvelocity of the electron, respectively.\n\nThere is a subtle difference between the quantity calculated by this\ncompute and the kinetic energy calculated by the *ke* or *etotal*\nkeyword used in thermodynamic output, as specified by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command. For this compute, kinetic\nenergy is \"translational\" and \"radial\" (only for electrons) kinetic\nenergy, calculated by the simple formula above. For thermodynamic\noutput, the *ke* keyword infers kinetic energy from the temperature of\nthe system with \\(\\frac{1}{2} k_B T\\) of energy for each degree of\nfreedom. For the eFF temperature computation via the [computetemp_eff ](https://docs.lammps.org/compute_temp_eff.html) command, these are the same. But\ndifferent computes that calculate temperature can subtract out different\nnon-thermal components of velocity and/or include other degrees of\nfreedom.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The temperature in eFF models should be monitored via\n > the [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command, which can be\n > printed with thermodynamic output by using the\n > [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command, as shown in the following\n > example: \n > \n\n\n```lmps\ncompute effTemp all temp/eff\nthermo_style custom step etotal pe ke temp press\nthermo_modify temp effTemp\n```\nSee [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html).\n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qmmm = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 qmol qmmm\n```\n", + "html_filename": "fix_qmmm.html", + "short_description": "This fix provides functionality to enable a quantum\nmechanics/molecular mechanics (QM/MM) coupling of LAMMPS to a quantum\nmechanical code", + "description": "This fix provides functionality to enable a quantum\nmechanics/molecular mechanics (QM/MM) coupling of LAMMPS to a quantum\nmechanical code. The current implementation only supports an ONIOM\nstyle mechanical coupling to the [Quantum ESPRESSO ](https://www.quantum-espresso.org) plane\nwave DFT package. Electrostatic coupling is in preparation and the\ninterface has been written in a manner that coupling to other QM codes\nshould be possible without changes to LAMMPS itself.\n\nThe interface code for this is in the lib/qmmm directory of the LAMMPS\ndistribution and is being made available at this early stage of\ndevelopment in order to encourage contributions for interfaces to\nother QM codes. This will allow the LAMMPS side of the implementation\nto be adapted if necessary before being finalized.\n\nDetails about how to use this fix are currently documented in the\ndescription of the QM/MM interface code itself in lib/qmmm/README.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global scalar or vector or per-atom\nquantities are stored by this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This\nfix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the QMMM package. It is only enabled if\nLAMMPS was built with that package. It also requires building a\nlibrary provided with LAMMPS. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe fix is only functional when LAMMPS is built as a library and\nlinked with a compatible QM program and a QM/MM front end into a QM/MM\nexecutable. See the lib/qmmm/README file for details.\n", "related": "none\n" }, { "command": [ - "fix reaxff/bonds", - "fix reaxff/bonds/kk" + "improper_style none" ], "syntax": [ - "fix ID group-ID reaxff/bonds Nevery filename" + "improper_style none" ], "args": [ [ { - "arg": "fix", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "none", + "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nimproper_style none\n```\n", + "html_filename": "improper_none.html", + "short_description": "Using an improper style of none means improper forces and energies are\nnot computed, even if quadruplets of improper atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command", + "description": "Using an improper style of none means improper forces and energies are\nnot computed, even if quadruplets of improper atoms were listed in the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nSee the [improper_style zero ](https://docs.lammps.org/improper_zero.html) command for a way to\ncalculate improper statistics, but compute no improper interactions.\n", + "restrictions": " none\n", + "related": "[improper_style zero ](https://docs.lammps.org/improper_zero.html)\n" +}, +{ + "command": [ + "pair_style smd/hertz" + ], + "syntax": [ + "pair_style smd/hertz scale_factor" + ], + "args": [ + [ { - "arg": "group-ID", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "reaxff/bonds", - "type": 3, - "choices": [ - "reaxff/bonds", - "reaxff/bonds/kk" - ] - }, - { - "arg": "Nevery", - "type": 2, + "arg": "smd/hertz", + "type": 1, "choices": [] }, { - "arg": "filename", + "arg": "scale_factor", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* reax/bonds = style name of this fix command\n* Nevery = output interval in timesteps\n* filename = name of output file \n", - "examples": "\n```lmps\nfix 1 all reaxff/bonds 100 bonds.reaxff\n```\n", - "html_filename": "fix_reaxff_bonds.html", - "short_description": "Write out the bond information computed by the ReaxFF potential specified\nby [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) in the exact same format as the\noriginal stand-alone ReaxFF code of Adri van Duin", - "description": "Write out the bond information computed by the ReaxFF potential specified\nby [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) in the exact same format as the\noriginal stand-alone ReaxFF code of Adri van Duin. The bond information\nis written to *filename* on timesteps that are multiples of *Nevery*,\nincluding timestep 0. For time-averaged chemical species analysis,\nplease see the [fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html) command.\n\nThe specified group-ID is ignored by this fix.\n\nThe format of the output file should be reasonably self-explanatory.\nThe meaning of the column header abbreviations is as follows:\n\n* id = atom id\n* type = atom type\n* nb = number of bonds\n* id_1 = atom id of first bond\n* id_nb = atom id of Nth bond\n* mol = molecule id\n* bo_1 = bond order of first bond\n* bo_nb = bond order of Nth bond\n* abo = atom bond order (sum of all bonds)\n* nlp = number of lone pairs\n* q = atomic charge\n\nIf the filename ends with \".gz\", the output file is written in gzipped\nformat. A gzipped dump file will be about 3x smaller than the text\nversion, but will also take longer to write.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "The fix reaxff/bonds command requires that the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) is invoked. This fix is part of the\nREAXFF package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nTo write gzipped bond files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option.\n", - "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style smd/hertz 1.0\npair_coeff 1 1 \n```\n", + "html_filename": "pair_smd_hertz.html", + "short_description": "The *smd/hertz* style calculates contact forces between SPH particles\nbelonging to different physical bodies", + "description": "The *smd/hertz* style calculates contact forces between SPH particles\nbelonging to different physical bodies.\n\nThe contact forces are calculated using a Hertz potential, which\nevaluates the overlap between two particles (whose spatial extents are\ndefined via its contact radius). The effect is that a particles\ncannot penetrate into each other. The parameter \nhas units of pressure and should equal roughly one half of the Young's\nmodulus (or bulk modulus in the case of fluids) of the material model\nassociated with the SPH particles.\n\nThe parameter *scale_factor* can be used to scale the particles'\ncontact radii. This can be useful to control how close particles can\napproach each other. Usually, *scale_factor* =1.0.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "comm_style" + "compute group/group" ], "syntax": [ - "comm_style style" + "compute ID group-ID group/group group2-ID keyword value ..." ], "args": [ [ { - "arg": "comm_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "tiled", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "group/group", + "type": 1, + "choices": [] + }, + { + "arg": "group2-ID", + "type": 2, + "choices": [] + }, + { + "arg": "molecule", "type": 3, "choices": [ - "brick", - "tiled" + "pair", + "kspace", + "boundary", + "molecule" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* style = brick or tiled \n", - "examples": "\n```lmps\ncomm_style brick\ncomm_style tiled\n```\n", - "html_filename": "comm_style.html", - "short_description": "This command sets the style of inter-processor communication of atom\ninformation that occurs each timestep as coordinates and other\nproperties are exchanged between neighboring processors and stored as\nproperties of ghost atoms", - "description": "This command sets the style of inter-processor communication of atom\ninformation that occurs each timestep as coordinates and other\nproperties are exchanged between neighboring processors and stored as\nproperties of ghost atoms.\n\nFor the default *brick* style, the domain decomposition used by LAMMPS\nto partition the simulation box must be a regular 3d grid of bricks,\none per processor. Each processor communicates with its 6 Cartesian\nneighbors in the grid to acquire information for nearby atoms.\n\nFor the *tiled* style, a more general domain decomposition can be\nused, as triggered by the [balance ](https://docs.lammps.org/balance.html) or [fix balance ](https://docs.lammps.org/fix_balance.html) commands. The simulation box can be\npartitioned into non-overlapping rectangular-shaped \"tiles\" or varying\nsizes and shapes. Again there is one tile per processor. To acquire\ninformation for nearby atoms, communication must now be done with a\nmore complex pattern of neighboring processors.\n\nNote that this command does not actually define a partitioning of the\nsimulation box (a domain decomposition), rather it determines what\nkinds of decompositions are allowed and the pattern of communication\nused to enable the decomposition. A decomposition is created when the\nsimulation box is first created, via the [create_box ](https://docs.lammps.org/create_box.html)\nor [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands. For both the *brick* and *tiled* styles, the initial\ndecomposition will be the same, as described by\n[create_box ](https://docs.lammps.org/create_box.html) and [processors ](https://docs.lammps.org/processors.html)\ncommands. The decomposition can be changed via the\n[balance ](https://docs.lammps.org/balance.html) or [fix balance ](https://docs.lammps.org/fix_balance.html) commands.\n", - "restrictions": "none\n", - "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html), [processors ](https://docs.lammps.org/processors.html),\n[balance ](https://docs.lammps.org/balance.html), [fix balance ](https://docs.lammps.org/fix_balance.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* group/group = style name of this compute command\n* group2-ID = group ID of second (or same) group\n* zero or more keyword/value pairs may be appended\n* keyword = pair or kspace or boundary or molecule \n *        pair value = yes or no \n *        kspace value = yes or no \n *        boundary value = yes or no \n *        molecule value = off or inter or intra \n", + "examples": "\n```lmps\ncompute 1 lower group/group upper\ncompute 1 lower group/group upper kspace yes\ncompute mine fluid group/group wall\n```\n", + "html_filename": "compute_group_group.html", + "short_description": "Define a computation that calculates the total energy and force\ninteraction between two groups of atoms: the compute group and the\nspecified group2", + "description": "Define a computation that calculates the total energy and force\ninteraction between two groups of atoms: the compute group and the\nspecified group2. The two groups can be the same.\n\nIf the *pair* keyword is set to *yes*, which is the default, then the\nthe interaction energy will include a pair component which is defined\nas the pairwise energy between all pairs of atoms where one atom in\nthe pair is in the first group and the other is in the second group.\nLikewise, the interaction force calculated by this compute will\ninclude the force on the compute group atoms due to pairwise\ninteractions with atoms in the specified group2.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The energies computed by the *pair* keyword do not include tail\n > corrections, even if they are enabled via the\n > [pair_modify ](https://docs.lammps.org/pair_modify.html) command. \n > \n\nIf the *molecule* keyword is set to *inter* or *intra* than an\nadditional check is made based on the molecule IDs of the two atoms in\neach pair before including their pairwise interaction energy and\nforce. For the *inter* setting, the two atoms must be in different\nmolecules. For the *intra* setting, the two atoms must be in the same\nmolecule.\n\nIf the *kspace* keyword is set to *yes*, which is not the default, and\nif a [kspace_style ](https://docs.lammps.org/kspace_style.html) is defined, then the interaction\nenergy will include a Kspace component which is the long-range\nCoulombic energy between all the atoms in the first group and all the\natoms in the second group. Likewise, the interaction force calculated by\nthis compute will include the force on the compute group atoms due to\nlong-range Coulombic interactions with atoms in the specified group2.\n\nNormally the long-range Coulombic energy converges only when the net\ncharge of the unit cell is zero. However, one can assume the net\ncharge of the system is neutralized by a uniform background plasma,\nand a correction to the system energy can be applied to reduce\nartifacts. For more information see :ref:[(Bogusz) ](https://docs.lammps.org/Bogusz>`. If the*boundary* keyword is set to *yes*, which is the default, and *kspace*contributions are included, then this energy correction term will beadded to the total group-group energy. This correction term does notaffect the force calculation and will be zero if one or both of thegroups are charge neutral. This energy correction term is the same asthat included in the regular Ewald and PPPM routines.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >The *molecule* setting only affects the group/group > contributions calculated by the *pair* keyword. It does not affect > the group/group contributions calculated by the *kspace* keyword. > This compute does not calculate any bond or angle or dihedral orimproper interactions between atoms in the two groups.----------The pairwise contributions to the group-group interactions arecalculated by looping over a neighbor list. The Kspace contributionto the group-group interactions require essentially the same amount ofwork (FFTs, Ewald summation) as computing long-range forces for theentire system. Thus it can be costly to invoke this compute toofrequently.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >If you have a bonded system, then the settings of > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise > interactions between atoms in the same bond, angle, or dihedral. This is > the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, > and means those pairwise interactions do not appear in the neighbor list. > Because this compute uses a neighbor list, it also means those pairs will > not be included in the group/group interaction. This does not apply when > using long-range Coulomb interactions > (\\ *coul/long*, *coul/msm*, *coul/wolf* or similar). One way to get > around this would be to set *special_bond* scaling factors to very tiny > numbers that are not exactly zero (e.g., \\(1.0 \\times 10^{-50}\\)). > Another workaround would be to write a dump file and use the > [rerun ](https://docs.lammps.org/rerun.html) command to compute the group/group interactions for > snapshots in the dump file. The rerun script can use a > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in the > neighbor list. > If you desire a breakdown of the interactions into a pairwise andKspace component, simply invoke the compute twice with the appropriateyes/no settings for the *pair* and *kspace* keywords. This is no morecostly than using a single compute with both keywords set to *yes* .The individual contributions can be summed in a[variable ](https://docs.lammps.org/variable.html) if desired.This `document ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the pitorsion terms forces to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", - "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a\n[read_restart ](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the AMOEBA package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" + "parameters": "pymodule.CLASS = use class CLASS in module/file pymodule to compute how to move atoms \n", + "examples": "\n```lmps\nfix 1 all python/move py_nve.NVE\nfix 1 all python/move py_nve.NVE_OPT\n```\n", + "html_filename": "fix_python_move.html", + "short_description": "The *python/move* fix style provides a way to define ways how particles\nare moved during an MD run from python script code, that is loaded from\na file into LAMMPS and executed at the various steps where other fixes\ncan be executed", + "description": "The *python/move* fix style provides a way to define ways how particles\nare moved during an MD run from python script code, that is loaded from\na file into LAMMPS and executed at the various steps where other fixes\ncan be executed. This python script must contain specific python class\ndefinitions.\n\nThis allows to implement complex position updates and also modified\ntime integration methods. Due to python being an interpreted language,\nhowever, the performance of this fix can be moderately to significantly\nslower than the corresponding C++ code. For specific cases, this\nperformance penalty can be limited through effective use of NumPy.\n\n----------\n\nThe python module file has to start with the following code:\n\n```python\nfrom __future__ import print_function\nimport lammps\nimport ctypes\nimport traceback\nimport numpy as np\n#\nclass LAMMPSFix(object):\ndef __init__(self, ptr, group_name=\"all\"):\nself.lmp = lammps.lammps(ptr=ptr)\nself.group_name = group_name\n#\nclass LAMMPSFixMove(LAMMPSFix):\ndef __init__(self, ptr, group_name=\"all\"):\nsuper(LAMMPSFixMove, self).__init__(ptr, group_name)\n#\ndef init(self):\npass\n#\ndef initial_integrate(self, vflag):\npass\n#\ndef final_integrate(self):\npass\n#\ndef initial_integrate_respa(self, vflag, ilevel, iloop):\npass\n#\ndef final_integrate_respa(self, ilevel, iloop):\npass\n#\ndef reset_dt(self):\npass\n```\nAny classes implementing new atom motion functionality have to be\nderived from the **LAMMPSFixMove** class, overriding the available\nmethods as needed.\n\nExamples for how to do this are in the *examples/python* folder.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This pair style is part of the PYTHON package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix python/invoke ](https://docs.lammps.org/fix_python_invoke.html)\n" }, { "command": [ - "pair_style lj96/cut", - "pair_style lj96/cut/gpu", - "pair_style lj96/cut/omp" + "dihedral_style helix", + "dihedral_style helix/omp" ], "syntax": [ - "pair_style lj96/cut cutoff" + "dihedral_style helix" ], "args": [ [ { - "arg": "pair_style", + "arg": "dihedral_style", "type": 1, "choices": [] }, { - "arg": "lj96/cut", + "arg": "helix", "type": 3, "choices": [ - "lj96/cut", - "lj96/cut/gpu", - "lj96/cut/omp" + "helix", + "helix/omp" ] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* cutoff = global cutoff for lj96/cut interactions (distance units) \n", - "examples": "\n```lmps\npair_style lj96/cut 2.5\npair_coeff * * 1.0 1.0 4.0\npair_coeff 1 1 1.0 1.0\n```\n", - "html_filename": "pair_lj96.html", - "short_description": "The *lj96/cut* style compute a 9/6 Lennard-Jones potential, instead\nof the standard 12/6 potential, given by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "The *lj96/cut* style compute a 9/6 Lennard-Jones potential, instead\nof the standard 12/6 potential, given by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global LJ\ncutoff specified in the pair_style command is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + } + ] + ], + "parameters": "", + "examples": "\n```lmps\ndihedral_style helix\ndihedral_coeff 1 80.0 100.0 40.0\n```\n", + "html_filename": "dihedral_helix.html", + "short_description": "The *helix* dihedral style uses the potential\n\\[\n E = A [1 - \\cos(\\theta)] + B [1 + \\cos(3 \\theta)] +\n C [1 + \\cos(\\theta + \\frac{\\pi}{4})]\\]\nThis coarse-grain dihedral potential is described in **Guo**", + "description": "The *helix* dihedral style uses the potential\n\\[\n E = A [1 - \\cos(\\theta)] + B [1 + \\cos(3 \\theta)] +\n C [1 + \\cos(\\theta + \\frac{\\pi}{4})]\\]\nThis coarse-grain dihedral potential is described in **Guo**.\nFor dihedral angles in the helical region, the energy function is\nrepresented by a standard potential consisting of three minima, one\ncorresponding to the trans (t) state and the other to gauche states\n(g+ and g-). The paper describes how the \\(A\\), \\(B\\) and,\n\\(C\\) parameters are chosen so as to balance secondary (largely\ndriven by local interactions) and\ntertiary structure (driven by long-range interactions).\n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A\\) (energy)\n* \\(B\\) (energy)\n* \\(C\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Guo)** Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996). \n ", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" }, { "command": [ - "compute dipole" + "compute smd/vol" ], "syntax": [ - "compute ID group-ID style arg" + "compute ID group-ID smd/vol" ], "args": [ [ @@ -32710,78 +31869,74 @@ export const command_docs = [ "choices": [] }, { - "arg": "dipole/tip4p", - "type": 3, - "choices": [ - "dipole", - "dipole/tip4p" - ] - }, - { - "arg": "arg", - "type": 2, + "arg": "smd/vol", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = dipole or dipole/tip4p\n* arg = mass or geometry = use COM or geometric center for charged chunk correction (optional) \n", - "examples": "\n```lmps\ncompute 1 fluid dipole\ncompute dw water dipole geometry\ncompute dw water dipole/tip4p\n```\n", - "html_filename": "compute_dipole.html", - "short_description": "Define a computation that calculates the dipole vector and total dipole\nfor a group of atoms", - "description": "Define a computation that calculates the dipole vector and total dipole\nfor a group of atoms.\n\nThese computes calculate the x,y,z coordinates of the dipole vector and\nthe total dipole moment for the atoms in the compute group. This\nincludes all effects due to atoms passing through periodic boundaries.\nFor a group with a net charge the resulting dipole is made position\nindependent by subtracting the position vector of the center of mass or\ngeometric center times the net charge from the computed dipole\nvector. Both per-atom charges and per-atom dipole moments, if present,\ncontribute to the computed dipole.\n\nCompute *dipole/tip4p* includes adjustments for the charge carrying\npoint M in molecules with TIP4P water geometry. The corresponding\nparameters are extracted from the pair style.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the dipole in \"unwrapped\"\n > form, by using the image flags associated with each atom. See the\n > [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\"\n > coordinates. See the Atoms section of the [read_data > ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and how they are\n > set for each atom. You can reset the image flags (e.g., to 0) before\n > invoking this compute by using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThese computes calculate a global scalar containing the magnitude of the\ncomputed dipole moment and a global vector of length 3 with the dipole\nvector. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview\nof LAMMPS output options.\n\nThe computed values are \"intensive\". The array values will be in\ndipole units (i.e., charge [units ](https://docs.lammps.org/units.html) times distance\n[units ](https://docs.lammps.org/units.html)).\n", - "restrictions": "Compute style *dipole/tip4p* is part of the EXTRA-COMPUTE package. It is\nonly enabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCompute style *dipole/tip4p* can only be used with tip4p pair styles.\n", - "related": "[compute dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/vol = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/vol\n```\n", + "html_filename": "compute_smd_vol.html", + "short_description": "Define a computation that provides the per-particle volume and the sum\nof the per-particle volumes of the group for which the fix is defined", + "description": "Define a computation that provides the per-particle volume and the sum\nof the per-particle volumes of the group for which the fix is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will be given in [units ](https://docs.lammps.org/units.html) of\nvolume.\n\nAdditionally, the compute returns a scalar, which is the sum of the\nper-particle volumes of the group for which the fix is defined.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute smd/rho ](https://docs.lammps.org/compute_smd_rho.html)\n" }, { "command": [ - "fix_modify AtC reset_time" + "fix temp/csvr" ], "syntax": [ - "fix_modify reset_time " + "fix ID group-ID temp/csvr Tstart Tstop Tdamp seed", + "fix ID group-ID temp/csld Tstart Tstop Tdamp seed" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "reset_time", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "temp/csvr", "type": 1, "choices": [] }, { - "arg": "", + "arg": "Tstart", + "type": 2, + "choices": [] + }, + { + "arg": "Tstop", + "type": 2, + "choices": [] + }, + { + "arg": "Tdamp", + "type": 2, + "choices": [] + }, + { + "arg": "seed", "type": 2, "choices": [] } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* reset_time = name of the AtC sub-command\n* value = new time value \n", - "examples": "\n```lmps\nfix_modify AtC reset_time 0.0\n```\n", - "html_filename": "atc_reset_time.html", - "short_description": "Resets the simulation time counter", - "description": "Resets the simulation time counter.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "compute msd/chunk" - ], - "syntax": [ - "compute ID group-ID msd/chunk chunkID" - ], - "args": [ + ], [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -32796,194 +31951,240 @@ export const command_docs = [ "choices": [] }, { - "arg": "msd/chunk", - "type": 1, + "arg": "temp/csld", + "type": 2, "choices": [] }, { - "arg": "chunkID", + "arg": "Tstart", + "type": 2, + "choices": [] + }, + { + "arg": "Tstop", + "type": 2, + "choices": [] + }, + { + "arg": "Tdamp", + "type": 2, + "choices": [] + }, + { + "arg": "seed", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 all msd/chunk molchunk\n```\n", - "html_filename": "compute_msd_chunk.html", - "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) for multiple chunks of atoms", - "description": "Define a computation that calculates the mean-squared displacement\n(MSD) for multiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFour quantities are calculated by this compute for each chunk. The\nfirst 3 quantities are the squared *dx*, *dy*, and *dz* displacements of the\ncenter-of-mass. The fourth component is the total squared displacement\n(i.e., \\(dx^2 + dy^2 + dz^2\\)) of the center-of-mass. These calculations\ninclude all effects due to atoms passing through periodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\nThe slope of the mean-squared displacement (MSD) versus time is\nproportional to the diffusion coefficient of the diffusing chunks.\n\nThe displacement of the center-of-mass of the chunk is from its\noriginal center-of-mass position, calculated on the timestep this\ncompute command was first invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The number of chunks *Nchunk* calculated by the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command must remain constant\n > each time this compute is invoked, so that the displacement for each chunk\n > from its original position can be computed consistently. If *Nchunk*\n > does not remain constant, an error will be generated. If needed, you\n > can enforce a constant *Nchunk* by using the *nchunk once* or *ids once*\n > options when specifying the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\n > command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This compute stores the original position (of the\n > center-of-mass) of each chunk. When a displacement is calculated on a\n > later timestep, it is assumed that the same atoms are assigned to the\n > same chunk ID. However LAMMPS has no simple way to ensure this is the\n > case, though you can use the *ids once* option when specifying the\n > [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. Note that if\n > this is not the case, the MSD calculation does not have a sensible\n > meaning. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The initial coordinates of the atoms in each chunk are stored in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-chunk\n > quantities will also have the same ID, and thus be initialized\n > correctly with chunk reference positions from the restart file. \n > \n\nThe simplest way to output the results of the compute msd/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all msd/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nThe number of columns = 4 for *dx*, *dy*, *dz*, and the total displacement.\nThese values can be accessed by any command that uses global array values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/csvr or temp/csld = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run \n *        Tstart can be a variable (see below) \n* Tdamp = temperature damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer) \n", + "examples": "\n```lmps\nfix 1 all temp/csvr 300.0 300.0 100.0 54324\nfix 1 all temp/csld 100.0 300.0 10.0 123321\n```\n", + "html_filename": "fix_temp_csvr.html", + "short_description": "Adjust the temperature with a canonical sampling thermostat that uses\nglobal velocity rescaling with Hamiltonian dynamics (\\ *temp/csvr* )\n**Bussi1**, or Langevin dynamics (\\ *temp/csld* )\n**Bussi2**", + "description": "Adjust the temperature with a canonical sampling thermostat that uses\nglobal velocity rescaling with Hamiltonian dynamics (\\ *temp/csvr* )\n**Bussi1**, or Langevin dynamics (\\ *temp/csld* )\n**Bussi2**. In the case of *temp/csvr* the thermostat is\nsimilar to the empirical Berendsen thermostat in\n[temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), but chooses the actual\nscaling factor from a suitably chosen (gaussian) distribution rather\nthan having it determined from the time constant directly. In the case\nof *temp/csld* the velocities are updated to a linear combination of\nthe current velocities with a gaussian distribution of velocities at\nthe desired temperature. Both thermostats are applied every timestep.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration for finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with these fixes. The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (tau or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command).\n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, these fixes do NOT\n > perform time integration. They only modify velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, these fixes should not\n > normally be used on atoms that also have their temperature controlled\n > by another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThese fixes compute a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if this command had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID + underscore + \"temp\",\nand the group for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nAn important feature of these thermostats is that they have an\nassociated effective energy that is a constant of motion. The\neffective energy is the total energy (kinetic + potential) plus the\naccumulated kinetic energy changes due to the thermostat. The latter\nquantity is the global scalar computed by these fixes. This feature is\nuseful to check the integration of the equations of motion against\ndiscretization errors. In other words, the conservation of the\neffective energy can be used to choose an appropriate integration\n[timestep ](https://docs.lammps.org/timestep.html). This is similar to the usual paradigm of\nchecking the conservation of the total energy in the microcanonical\nensemble.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes write the cumulative global energy change and the random\nnumber generator states to [binary restart files ](https://docs.lammps.org/restart.html). See\nthe [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe selected fix continues in an uninterrupted fashion. The random\nnumber generator state can only be restored when the number of\nprocessors remains unchanged from what is recorded in the restart\nfile.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by these\nfixes. You can use it to assign a temperature [compute](https://docs.lammps.org/compute.html) you have defined to these fixes which will be used in its\nthermostatting procedure, as described above. For consistency, the\ngroup used by these fixes and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by these fixes is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes can ramp their target temperature over multiple runs,\nusing the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\nSee the [run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n \n \n**(Bussi2)** Bussi, Donadio and Parrinello, J. Chem. Phys. 126, 014101(2007) \n ", + "restrictions": "Fix *temp/csld* is not compatible with [fix shake ](https://docs.lammps.org/fix_shake.html).\n\nThese fixes are part of the EXTRA-FIX package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)\n" }, { "command": [ - "special_bonds" + "angle_style cosine/shift/exp", + "angle_style cosine/shift/exp/omp" ], "syntax": [ - "special_bonds keyword values ..." + "angle_style cosine/shift/exp" ], "args": [ [ { - "arg": "special_bonds", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "one/five", + "arg": "cosine/shift/exp", "type": 3, "choices": [ - "amber", - "charmm", - "dreiding", - "fene", - "lj/coul", - "lj", - "coul", - "angle", - "dihedral", - "one/five" + "cosine/shift/exp", + "cosine/shift/exp/omp" ] - }, - { - "arg": "values", - "type": 2, - "choices": [] } ] ], - "parameters": "* one or more keyword/value pairs may be appended\n* keyword = amber or charmm or dreiding or fene or lj/coul or lj or coul or angle or dihedral or one/five \n *        amber values = none \n *        charmm values = none \n *        dreiding values = none \n *        fene values = none \n *        lj/coul values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Lennard-Jones and Coulombic interactions \n *        lj values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Lennard-Jones interactions \n *        coul values = w1,w2,w3 \n         w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions \n *        angle value = yes or no \n *        dihedral value = yes or no \n *        one/five value = yes or no \n", - "examples": "\n```lmps\nspecial_bonds amber\nspecial_bonds charmm\nspecial_bonds fene dihedral no\nspecial_bonds lj/coul 0.0 0.0 0.5 angle yes dihedral yes\nspecial_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes\n```\n", - "html_filename": "special_bonds.html", - "short_description": "Set weighting coefficients for pairwise energy and force contributions\nbetween pairs of atoms that are also permanently bonded to each other,\neither directly or via one or two intermediate bonds", - "description": "Set weighting coefficients for pairwise energy and force contributions\nbetween pairs of atoms that are also permanently bonded to each other,\neither directly or via one or two intermediate bonds. These weighting\nfactors are used by nearly all [pair styles ](https://docs.lammps.org/pair_style.html) in\nLAMMPS that compute simple pairwise interactions. Permanent bonds\nbetween atoms are specified by defining the bond topology in the data\nfile read by the [read_data ](https://docs.lammps.org/read_data.html) command. Typically a\n[bond_style ](https://docs.lammps.org/bond_style.html) command is also used to define a bond\npotential. The rationale for using these weighting factors is that\nthe interaction between a pair of bonded atoms is all (or mostly)\nspecified by the bond, angle, dihedral potentials, and thus the\nnon-bonded Lennard-Jones or Coulombic interaction between the pair of\natoms should be excluded (or reduced by a weighting factor).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These weighting factors are NOT used by [pair styles > ](https://docs.lammps.org/pair_style.html) that compute many-body interactions, since the\n > \"bonds\" that result from such interactions are not permanent, but\n > are created and broken dynamically as atom conformations change.\n > Examples of pair styles in this category are EAM, MEAM,\n > Stillinger-Weber, Tersoff, COMB, AIREBO, and ReaxFF. In fact, it\n > generally makes no sense to define permanent bonds between atoms\n > that interact via these potentials, though such bonds may exist\n > elsewhere in your system, e.g. when using the [pair_style > hybrid ](https://docs.lammps.org/pair_hybrid.html) command. Thus LAMMPS ignores special_bonds\n > settings when many-body potentials are calculated. Please note,\n > that the existence of explicit bonds for atoms that are described\n > by a many-body potential will alter the neighbor list and thus can\n > render the computation of those interactions invalid, since those\n > pairs are not only used to determine direct pairwise interactions\n > but also neighbors of neighbors and more. The recommended course\n > of action is to remove such bonds, or - if that is not possible -\n > use a special bonds setting of 1.0 1.0 1.0. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike some commands in LAMMPS, you cannot use this command\n > multiple times in an incremental fashion: e.g. to first set the LJ\n > settings and then the Coulombic ones. Each time you use this\n > command it sets all the coefficients to default values and only\n > overrides the one you specify, so you should set all the options\n > you need each time you use it. See more details at the bottom of\n > this page. \n > \n\nThe Coulomb factors are applied to any Coulomb (charge interaction)\nterm that the potential calculates. The LJ factors are applied to the\nremaining terms that the potential calculates, whether they represent\nLJ interactions or not. The weighting factors are a scaling\nprefactor on the energy and force between the pair of atoms.\n\nA value of 1.0 means include the full interaction without flagging the\npair as a \"special pair\"; a value of 0.0 means exclude the pair\ncompletely from the neighbor list, except for pair styles that require a\n[kspace style ](https://docs.lammps.org/kspace_style.html) and pair styles [amoeba](https://docs.lammps.org/pair_amoeba.html), [hippo ](https://docs.lammps.org/pair_amoeba.html), [thole ](https://docs.lammps.org/pair_thole.html),\n[coul/exclude ](https://docs.lammps.org/pair_coul.html), and pair styles that include\n\"coul/dsf\" or \"coul/wolf\".\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To include pairs that would otherwise be excluded (so they are\n > included in the neighbor list for certain analysis compute styles),\n > you can use a very small but non-zero value like 1.0e-100 instead of\n > 0.0. Due to using floating-point math, the computed force, energy,\n > and virial contributions from the pairs will be too small to cause\n > differences. \n > \n\nThe first of the 3 coefficients (LJ or Coulombic) is the weighting\nfactor on 1-2 atom pairs, which are pairs of atoms directly bonded to\neach other. The second coefficient is the weighting factor on 1-3\natom pairs which are those separated by 2 bonds (e.g. the two H atoms\nin a water molecule). The third coefficient is the weighting factor\non 1-4 atom pairs which are those separated by 3 bonds (e.g. the first\nand fourth atoms in a dihedral interaction). Thus if the 1-2\ncoefficient is set to 0.0, then the pairwise interaction is\neffectively turned off for all pairs of atoms bonded to each other.\nIf it is set to 1.0, then that interaction will be at full strength.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For purposes of computing weighted pairwise interactions, 1-3\n > and 1-4 interactions are not defined from the list of angles or\n > dihedrals used by the simulation. Rather, they are inferred\n > topologically from the set of bonds specified when the simulation is\n > defined from a data or restart file (see [read_data ](https://docs.lammps.org/read_data.html) or\n > [read_restart ](https://docs.lammps.org/read_restart.html) commands). Thus the set of\n > 1-2,1-3,1-4 interactions that the weights apply to is the same whether\n > angle and dihedral potentials are computed or not, and remains the\n > same even if bonds are constrained, or turned off, or removed during a\n > simulation. \n > \n\nThe two exceptions to this rule are (a) if the *angle* or *dihedral*\nkeywords are set to *yes* (see below), or (b) if the\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) command is used with the *special*\noption that re-computes the 1-2,1-3,1-4 topologies after bonds are\ndeleted; see the [delete_bonds ](https://docs.lammps.org/delete_bonds.html) command for more\ndetails.\n\nThe *amber* keyword sets the 3 coefficients to 0.0, 0.0, 0.5 for LJ\ninteractions and to 0.0, 0.0, 0.8333 for Coulombic interactions, which\nis the default for a commonly used version of the AMBER force field,\nwhere the last value is really 5/6. See **Cornell** for a\ndescription of the AMBER force field.\n\nThe *charmm* keyword sets the 3 coefficients to 0.0, 0.0, 0.0 for both\nLJ and Coulombic interactions, which is the default for a commonly\nused version of the CHARMM force field. Note that in pair styles\n*lj/charmm/coul/charmm* and *lj/charmm/coul/long* the 1-4 coefficients\nare defined explicitly, and these pairwise contributions are computed\nas part of the charmm dihedral style - see the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) and [dihedral_style ](https://docs.lammps.org/dihedral_style.html)\ncommands for more information. See **MacKerell** for a\ndescription of the CHARMM force field.\n\nThe *dreiding* keyword sets the 3 coefficients to 0.0, 0.0, 1.0 for both\nLJ and Coulombic interactions, which is the default for the Dreiding\nforce field, as discussed in **Mayo**.\n\nThe *fene* keyword sets the 3 coefficients to 0.0, 1.0, 1.0 for both\nLJ and Coulombic interactions, which is consistent with a\ncoarse-grained polymer model with [FENE bonds ](https://docs.lammps.org/bond_fene.html). See\n**Kremer** for a description of FENE bonds.\n\nThe *lj/coul*, *lj*, and *coul* keywords allow the 3 coefficients to\nbe set explicitly. The *lj/coul* keyword sets both the LJ and\nCoulombic coefficients to the same 3 values. The *lj* and *coul*\nkeywords only set either the LJ or Coulombic coefficients. Use both\nof them if you wish to set the LJ coefficients to different values\nthan the Coulombic coefficients.\n\nThe *angle* keyword allows the 1-3 weighting factor to be ignored for\nindividual atom pairs if they are not listed as the first and last\natoms in any angle defined in the simulation or as 1,3 or 2,4 atoms in\nany dihedral defined in the simulation. For example, imagine the 1-3\nweighting factor is set to 0.5 and you have a linear molecule with 4\natoms and bonds as follows: 1-2-3-4. If your data file defines 1-2-3\nas an angle, but does not define 2-3-4 as an angle or 1-2-3-4 as a\ndihedral, then the pairwise interaction between atoms 1 and 3 will\nalways be weighted by 0.5, but different force fields use different\nrules for weighting the pairwise interaction between atoms 2 and 4.\nIf the *angle* keyword is specified as *yes*, then the pairwise\ninteraction between atoms 2 and 4 will be unaffected (full weighting\nof 1.0). If the *angle* keyword is specified as *no* which is the\ndefault, then the 2,4 interaction will also be weighted by 0.5.\n\nThe *dihedral* keyword allows the 1-4 weighting factor to be ignored\nfor individual atom pairs if they are not listed as the first and last\natoms in any dihedral defined in the simulation. For example, imagine\nthe 1-4 weighting factor is set to 0.5 and you have a linear molecule\nwith 5 atoms and bonds as follows: 1-2-3-4-5. If your data file\ndefines 1-2-3-4 as a dihedral, but does not define 2-3-4-5 as a\ndihedral, then the pairwise interaction between atoms 1 and 4 will\nalways be weighted by 0.5, but different force fields use different\nrules for weighting the pairwise interaction between atoms 2 and 5.\nIf the *dihedral* keyword is specified as *yes*, then the pairwise\ninteraction between atoms 2 and 5 will be unaffected (full weighting\nof 1.0). If the *dihedral* keyword is specified as *no* which is the\ndefault, then the 2,5 interaction will also be weighted by 0.5.\n\nThe *one/five* keyword enable calculation and storage of a list of 1-5\nneighbors in the molecular topology for each atom. It is required by\nsome pair styles, such as [pair_style amoeba ](https://docs.lammps.org/pair_style.html) and\n[pair_style hippo ](https://docs.lammps.org/pair_style.html).\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS stores and maintains a data structure with a list of the\n > first, second, and third neighbors of each atom (within the bond\n > topology of the system). If new bonds are created (or molecules\n > added containing atoms with more special neighbors), the size of\n > this list needs to grow. Note that adding a single bond always\n > adds a new first neighbor but may also induce \\*many\\* new second\n > and third neighbors, depending on the molecular topology of your\n > system. Using the *extra/special/per/atom* keyword to either\n > [read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html)\n > reserves empty space in the list for this N additional first,\n > second, or third neighbors to be added. If you do not do this, you\n > may get an error when bonds (or molecules) are added. \n > \n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you reuse this command in an input script, you should set all\n > the options you need each time. This command cannot be used a second\n > time incrementally. E.g. these two commands: \n > \n\n\n```lmps\nspecial_bonds lj 0.0 1.0 1.0\nspecial_bonds coul 0.0 0.0 1.0\n```\nare not the same as\n\n```lmps\nspecial_bonds lj 0.0 1.0 1.0 coul 0.0 0.0 1.0\n```\nIn the first case you end up with (after the second command):\n\n```\nLJ: 0.0 0.0 0.0\nCoul: 0.0 0.0 1.0\n```\nwhile only in the second case do you get the desired settings of:\n\n```\nLJ: 0.0 1.0 1.0\nCoul: 0.0 0.0 1.0\n```\nThis happens because the LJ (and Coul) settings are reset to their\ndefault values before modifying them, each time the *special_bonds*\ncommand is issued.\n\n**(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,\nSpellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). \n \n**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). \n \n**(Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n \n**(Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", - "restrictions": "none\n", - "related": "[delete_bonds ](https://docs.lammps.org/delete_bonds.html), [fix bond/create ](https://docs.lammps.org/fix_bond_create.html)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/shift/exp\nangle_coeff * 10.0 45.0 2.0\n```\n", + "html_filename": "angle_cosine_shift_exp.html", + "short_description": "The *cosine/shift/exp* angle style uses the potential\n\\[\n E = -U_{\\text{min}} \\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad \\text{with} \\quad U(\\theta,\\theta_0) = -0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{\\text{min}}\\), \\(\\theta\\), and \\(a\\) are defined for each angle type", + "description": "The *cosine/shift/exp* angle style uses the potential\n\\[\n E = -U_{\\text{min}} \\frac{e^{-a U(\\theta,\\theta_0)}-1}{e^a-1} \\quad \\text{with} \\quad U(\\theta,\\theta_0) = -0.5 \\left(1+\\cos(\\theta-\\theta_0) \\right)\\]\nwhere \\(U_{\\text{min}}\\), \\(\\theta\\), and \\(a\\) are defined for each angle type.\n\nThe potential is bounded between \\([-U_{\\text{min}}, 0]\\) and the minimum is\nlocated at the angle \\(\\theta_0\\). The a parameter can be both positive or\nnegative and is used to control the spring constant at the\nequilibrium.\n\nThe spring constant is given by \\(k = A \\exp(A) U_{\\text{min}} / [2 (\\exp(a)-1)]\\).\nFor \\(a > 3\\), \\(\\frac{k}{U_{\\text{min}}} = \\frac{a}{2}\\) to better than 5% relative error. For negative\nvalues of the \\(a\\) parameter, the spring constant is essentially zero,\nand anharmonic terms takes over. The potential is furthermore well\nbehaved in the limit \\(a \\rightarrow 0\\), where it has been implemented to linear\norder in \\(a\\) for \\(a < 0.001\\). In this limit the potential reduces to the\ncosineshifted potential.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_min\\) (energy)\n* \\(\\theta\\) (angle)\n* \\(A\\) (real number)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html),\n[angle_style cosine/shift ](https://docs.lammps.org/angle_cosine_shift.html),\n[dihedral_style cosine/shift/exp ](https://docs.lammps.org/dihedral_cosine_shift_exp.html)\n" }, { "command": [ - "pair_style hybrid", - "pair_style hybrid/kk", - "pair_style hybrid/omp", - "pair_style hybrid/molecular", - "pair_style hybrid/overlay", - "pair_style hybrid/overlay/kk", - "pair_style hybrid/overlay/omp", - "pair_style hybrid/scaled" + "fitpod" ], "syntax": [ - "pair_style hybrid style1 args style2 args ...", - "pair_style hybrid/molecular factor1 style1 args factor2 style 2 args", - "pair_style hybrid/overlay style1 args style2 args ...", - "pair_style hybrid/scaled factor1 style1 args factor2 style 2 args ..." + "fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod" ], "args": [ [ { - "arg": "pair_style", + "arg": "fitpod", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "hybrid", - "hybrid/kk", - "hybrid/omp" - ] - }, - { - "arg": "style1", - "type": 2, - "choices": [] - }, - { - "arg": "args", + "arg": "Ta_param.pod", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "Ta_data.pod", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "Ta_coefficients.pod", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* fitpod = style name of this command\n* Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs)\n* Ta_data.pod = an input file that specifies DFT data used to fit a POD potential\n* Ta_coefficients.pod (optional) = an input file that specifies trainable coefficients of a POD potential \n", + "examples": "\n```lmps\nfitpod Ta_param.pod Ta_data.pod\nfitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod\n```\n", + "html_filename": "fitpod_command.html", + "short_description": "\nFit a machine-learning interatomic potential (ML-IAP) based on proper\northogonal descriptors (POD); please see **Nguyen20222a**, **Nguyen20232a**, **Nguyen20242a**, and **Nguyen20243a** for details", + "description": "\nFit a machine-learning interatomic potential (ML-IAP) based on proper\northogonal descriptors (POD); please see **Nguyen20222a**, **Nguyen20232a**, **Nguyen20242a**, and **Nguyen20243a** for details.\nThe fitted POD potential can be used to run MD simulations via\n[pair_style pod ](https://docs.lammps.org/pair_pod.html).\n\nTwo input files are required for this command. The first input file\ndescribes a POD potential parameter settings, while the second input\nfile specifies the DFT data used for the fitting procedure. All keywords\nexcept *species* have default values. If a keyword is not set in the\ninput file, its default value is used. The table below has one-line\ndescriptions of all the keywords that can be used in the first input\nfile (i.e. ``Ta_param.pod``)\n\n | | | | | \n |---|---|---|---|\n Keyword | Default | Type | Description|\n species | (none) | STRING | Chemical symbols for all elements in the system and have to match XYZ training files.|\n pbc | 1 1 1 | INT | three integer constants specify boundary conditions|\n rin | 0.5 | REAL | a real number specifies the inner cut-off radius|\n rcut | 5.0 | REAL | a real number specifies the outer cut-off radius|\n bessel_polynomial_degree | 4 | INT | the maximum degree of Bessel polynomials|\n inverse_polynomial_degree | 8 | INT | the maximum degree of inverse radial basis functions|\n number_of_environment_clusters | 1 | INT | the number of clusters for environment-adaptive potentials|\n number_of_principal_components | 2 | INT | the number of principal components for dimensionality reduction|\n onebody | 1 | BOOL | turns on/off one-body potential|\n twobody_number_radial_basis_functions | 8 | INT | number of radial basis functions for two-body potential|\n threebody_number_radial_basis_functions | 6 | INT | number of radial basis functions for three-body potential|\n threebody_angular_degree | 5 | INT | angular degree for three-body potential|\n fourbody_number_radial_basis_functions | 4 | INT | number of radial basis functions for four-body potential|\n fourbody_angular_degree | 3 | INT | angular degree for four-body potential|\n fivebody_number_radial_basis_functions | 0 | INT | number of radial basis functions for five-body potential|\n fivebody_angular_degree | 0 | INT | angular degree for five-body potential|\n sixbody_number_radial_basis_functions | 0 | INT | number of radial basis functions for six-body potential|\n sixbody_angular_degree | 0 | INT | angular degree for six-body potential|\n sevenbody_number_radial_basis_functions | 0 | INT | number of radial basis functions for seven-body potential|\n \nNote that both the number of radial basis functions and angular degree\nmust decrease as the body order increases. The next table describes all\nkeywords that can be used in the second input file (i.e. ``Ta_data.pod``\nin the example above):\n\n | | | | | \n |---|---|---|---|\n Keyword | Default | Type | Description|\n file_format | extxyz | STRING | only the extended xyz format (extxyz) is currently supported|\n file_extension | xyz | STRING | extension of the data files|\n path_to_training_data_set | (none) | STRING | specifies the path to training data files in double quotes|\n path_to_test_data_set | \"\" | STRING | specifies the path to test data files in double quotes|\n path_to_environment_configuration_set | \"\" | STRING | specifies the path to environment configuration files in double quotes|\n fraction_training_data_set | 1.0 | REAL | a real number (<= 1.0) specifies the fraction of the training set used to fit POD|\n randomize_training_data_set | 0 | BOOL | turns on/off randomization of the training set|\n fraction_test_data_set | 1.0 | REAL | a real number (<= 1.0) specifies the fraction of the test set used to validate POD|\n randomize_test_data_set | 0 | BOOL | turns on/off randomization of the test set|\n fitting_weight_energy | 100.0 | REAL | a real constant specifies the weight for energy in the least-squares fit|\n fitting_weight_force | 1.0 | REAL | a real constant specifies the weight for force in the least-squares fit|\n fitting_regularization_parameter | 1.0e-10 | REAL | a real constant specifies the regularization parameter in the least-squares fit|\n error_analysis_for_training_data_set | 0 | BOOL | turns on/off error analysis for the training data set|\n error_analysis_for_test_data_set | 0 | BOOL | turns on/off error analysis for the test data set|\n basename_for_output_files | pod | STRING | a basename string added to the output files|\n precision_for_pod_coefficients | 8 | INT | number of digits after the decimal points for numbers in the coefficient file|\n \nAll keywords except *path_to_training_data_set* have default values. If\na keyword is not set in the input file, its default value is used. After\nsuccessful training, a number of output files are produced, if enabled:\n\n* ``_training_errors.pod`` reports the errors in energy and forces for the training data set\n* ``_training_analysis.pod`` reports detailed errors for all training configurations\n* ``_test_errors.pod`` reports errors for the test data set\n* ``_test_analysis.pod`` reports detailed errors for all test configurations\n* ``_coefficients.pod`` contains the coefficients of the POD potential\n\nAfter training the POD potential, ``Ta_param.pod`` and\n``_coefficients.pod`` are the two files needed to use the POD\npotential in LAMMPS. See [pair_style pod ](https://docs.lammps.org/pair_pod.html) for using the\nPOD potential. Examples about training and using POD potentials are\nfound in the directory lammps/examples/PACKAGES/pod and the Github repo\nhttps://github.com/cesmix-mit/pod-examples.\n\nLoss Function Group Weights\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe *group_weights* keyword in the ``data.pod`` file is responsible for\nweighting certain groups of configurations in the loss function. For\nexample:\n\n```lmps\ngroup_weights table\nDisplaced_A15 100.0 1.0\nDisplaced_BCC 100.0 1.0\nDisplaced_FCC 100.0 1.0\nElastic_BCC 100.0 1.0\nElastic_FCC 100.0 1.0\nGSF_110 100.0 1.0\nGSF_112 100.0 1.0\nLiquid 100.0 1.0\nSurface 100.0 1.0\nVolume_A15 100.0 1.0\nVolume_BCC 100.0 1.0\nVolume_FCC 100.0 1.0\n```\nThis will apply an energy weight of ``100.0`` and a force weight of\n``1.0`` for all groups in the ``Ta`` example. The groups are named by\ntheir respective filename. If certain groups are left out of this table,\nthen the globally defined weights from the ``fitting_weight_energy`` and\n``fitting_weight_force`` keywords will be used.\n\n #### POD Potential\n\nWe consider a multi-element system of *N* atoms with \\(N_{\\rm e}\\)\nunique elements. We denote by \\(\\boldsymbol r_n\\) and \\(Z_n\\)\nposition vector and type of an atom *n* in the system,\nrespectively. Note that we have \\(Z_n \\in \\{1, \\ldots, N_{\\rm e}\n\\}\\), \\(\\boldsymbol R = (\\boldsymbol r_1, \\boldsymbol r_2, \\ldots,\n\\boldsymbol r_N) \\in \\mathbb{R}^{3N}\\), and \\(\\boldsymbol Z = (Z_1,\nZ_2, \\ldots, Z_N) \\in \\mathbb{N}^{N}\\). The total energy of the\nPOD potential is expressed as \\(E(\\boldsymbol R, \\boldsymbol Z) =\n\\sum_{i=1}^N E_i(\\boldsymbol R_i, \\boldsymbol Z_i)\\), where\n\\[\n E_i(\\boldsymbol R_i, \\boldsymbol Z_i) \\ = \\ \\sum_{m=1}^M c_m \\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\]\nHere \\(c_m\\) are trainable coefficients and\n\\(\\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\) are per-atom\nPOD descriptors. Summing the per-atom descriptors over \\(i\\) yields\nthe global descriptors \\(d_m(\\boldsymbol R, \\boldsymbol Z) =\n\\sum_{i=1}^N \\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\). It\nthus follows that \\(E(\\boldsymbol R, \\boldsymbol Z) = \\sum_{m=1}^M\nc_m d_m(\\boldsymbol R, \\boldsymbol Z)\\).\n\nThe per-atom POD descriptors include one, two, three, four, five, six,\nand seven-body descriptors, which can be specified in the first input\nfile. Furthermore, the per-atom POD descriptors also depend on the\nnumber of environment clusters specified in the first input file.\nPlease see **Nguyen20242a** and **Nguyen20243a** for the detailed description of the per-atom POD\ndescriptors.\n\n #### Training\n\nA POD potential is trained using the least-squares regression against\ndensity functional theory (DFT) data. Let \\(J\\) be the number of\ntraining configurations, with \\(N_j\\) being the number of atoms in\nthe j-th configuration. The training configurations are extracted from\nthe extended XYZ files located in a directory (i.e.,\npath_to_training_data_set in the second input file). Let\n\\(\\{E^{\\star}_j\\}_{j=1}^{J}\\) and \\(\\{\\boldsymbol\nF^{\\star}_j\\}_{j=1}^{J}\\) be the DFT energies and forces for \\(J\\)\nconfigurations. Next, we calculate the global descriptors and their\nderivatives for all training configurations. Let \\(d_{jm}, 1 \\le m\n\\le M\\), be the global descriptors associated with the j-th\nconfiguration, where \\(M\\) is the number of global descriptors. We\nthen form a matrix \\(\\boldsymbol A \\in \\mathbb{R}^{J \\times M}\\)\nwith entries \\(A_{jm} = d_{jm}/ N_j\\) for \\(j=1,\\ldots,J\\) and\n\\(m=1,\\ldots,M\\). Moreover, we form a matrix \\(\\boldsymbol B\n\\in \\mathbb{R}^{\\mathcal{N} \\times M}\\) by stacking the derivatives of\nthe global descriptors for all training configurations from top to\nbottom, where \\(\\mathcal{N} = 3\\sum_{j=1}^{J} N_j\\).\n\nThe coefficient vector \\(\\boldsymbol c\\) of the POD potential is\nfound by solving the following least-squares problem\n\\[\n {\\min}_{\\boldsymbol c \\in \\mathbb{R}^{M}} \\ w_E \\|\\boldsymbol A \\boldsymbol c - \\bar{\\boldsymbol E}^{\\star} \\|^2 + w_F \\|\\boldsymbol B \\boldsymbol c + \\boldsymbol F^{\\star} \\|^2 + w_R \\|\\boldsymbol c \\|^2,\\]\nwhere \\(w_E\\) and \\(w_F\\) are weights for the energy\n(*fitting_weight_energy*) and force (*fitting_weight_force*),\nrespectively; and \\(w_R\\) is the regularization parameter\n(*fitting_regularization_parameter*). Here \\(\\bar{\\boldsymbol\nE}^{\\star} \\in \\mathbb{R}^{J}\\) is a vector of with entries\n\\(\\bar{E}^{\\star}_j = E^{\\star}_j/N_j\\) and \\(\\boldsymbol\nF^{\\star}\\) is a vector of \\(\\mathcal{N}\\) entries obtained by\nstacking \\(\\{\\boldsymbol F^{\\star}_j\\}_{j=1}^{J}\\) from top to\nbottom.\n\n #### Validation\n\nPOD potential can be validated on a test dataset in a directory\nspecified by setting path_to_test_data_set in the second input file. It\nis possible to validate the POD potential after the training is\ncomplete. This is done by providing the coefficient file as an input to\n[fitpod ](https://docs.lammps.org/fitpod_command.html), for example,\n\n```lmps\nfitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod\n```\n\n**(Nguyen20222a)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232a)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242a)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243a)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n \n**(Nguyen20242a)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243a)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", + "restrictions": "This command is part of the ML-POD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_style pod ](https://docs.lammps.org/pair_pod.html),\n[compute pod/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute podd/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/local ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/global ](https://docs.lammps.org/compute_pod_atom.html)\n" +}, +{ + "command": [ + "fix setforce", + "fix setforce/kk", + "fix setforce/spin" + ], + "syntax": [ + "fix ID group-ID setforce fx fy fz keyword value ..." + ], + "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "hybrid/molecular", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "factor1", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "style1", - "type": 2, - "choices": [] + "arg": "setforce", + "type": 3, + "choices": [ + "setforce", + "setforce/kk" + ] }, { - "arg": "args", + "arg": "fx", "type": 2, "choices": [] }, { - "arg": "factor2", + "arg": "fy", "type": 2, "choices": [] }, { - "arg": "style", + "arg": "fz", "type": 2, "choices": [] }, { - "arg": "2", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "value", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* setforce = style name of this fix command\n* fx,fy,fz = force component values\n* any of fx,fy,fz can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", + "examples": "\n```lmps\nfix freeze indenter setforce 0.0 0.0 0.0\nfix 2 edge setforce NULL 0.0 0.0\nfix 1 edge setforce/spin 0.0 0.0 0.0\nfix 2 edge setforce NULL 0.0 v_oscillate\n```\n", + "html_filename": "fix_setforce.html", + "short_description": "Set each component of force on each atom in the group to the specified\nvalues fx,fy,fz", + "description": "Set each component of force on each atom in the group to the specified\nvalues fx,fy,fz. This erases all previously computed forces on the\natom, though additional fixes could add new forces. This command can\nbe used to freeze certain atoms in the simulation by zeroing their\nforce, either for running dynamics or performing an energy\nminimization. For dynamics, this assumes their initial velocity is\nalso zero.\n\nAny of the fx,fy,fz values can be specified as NULL which means do not\nalter the force component in that dimension.\n\nAny of the 3 quantities defining the force components can be specified\nas an equal-style or atom-style [variable ](https://docs.lammps.org/variable.html), namely *fx*,\n*fy*, *fz* . If the value is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to determine the\nforce component.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent force field.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent force\nfield with optional time-dependence as well.\n\nIf the *region* keyword is used, the atom must also be in the\nspecified geometric [region ](https://docs.lammps.org/region.html) in order to have force added\nto it.\n\n----------\n\nStyle *spin* suffix sets the components of the magnetic precession\nvectors instead of the mechanical forces. This also erases all\npreviously computed magnetic precession vectors on the atom, though\nadditional magnetic fixes could add new forces.\n\nThis command can be used to freeze the magnetic moment of certain\natoms in the simulation by zeroing their precession vector.\n\nAll options defined above remain valid, they just apply to the magnetic\nprecession vectors instead of the forces.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The region keyword is supported by Kokkos, but a Kokkos-enabled\n > region must be used. See the region [region ](https://docs.lammps.org/region.html) command for\n > more information. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthis fix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is setting the forces to the desired values; on all\nother levels, the force is set to 0.0 for the atoms in the fix group,\nso that setforce values are not counted multiple times. Default is to\nto override forces at the outermost level.\n\nThis fix computes a global 3-vector of forces, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). This is the total\nforce on the group of atoms before the forces on individual atoms are\nchanged by the fix. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command, but you cannot set\nforces to any value besides zero when performing a minimization. Use\nthe [fix addforce ](https://docs.lammps.org/fix_addforce.html) command if you want to apply a\nnon-zero force to atoms during a minimization.\n", + "restrictions": "Fix *setforce/spin* is part of the SPIN package. It is only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix addforce ](https://docs.lammps.org/fix_addforce.html), [fix aveforce ](https://docs.lammps.org/fix_aveforce.html)\n" +}, +{ + "command": [ + "bond_style harmonic/shift/cut", + "bond_style harmonic/shift/cut/omp" + ], + "syntax": [ + "bond_style harmonic/shift/cut" + ], + "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "hybrid/overlay", - "type": 2, + "arg": "harmonic/shift/cut", + "type": 3, + "choices": [ + "harmonic/shift/cut", + "harmonic/shift/cut/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nbond_style harmonic/shift/cut\nbond_coeff 5 10.0 0.5 1.0\n```\n", + "html_filename": "bond_harmonic_shift_cut.html", + "short_description": "The *harmonic/shift/cut* bond style is a shifted harmonic bond that\nuses the potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and rc the critical distance", + "description": "The *harmonic/shift/cut* bond style is a shifted harmonic bond that\nuses the potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and rc the critical distance.\nThe bond potential is zero for distances \\(r > r_c\\). The potential is \\(-U_{\\text{min}}\\)\nat \\(r_0\\) and zero at \\(r_c\\). The spring constant is \\(k = U_{\\text{min}} / [ 2 (r_0-r_c)^2]\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n* \\(r_0\\) (distance)\n* \\(r_c\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_harmonic ](https://docs.lammps.org/bond_harmonic.html),\n[bond_style harmonic/shift ](https://docs.lammps.org/bond_harmonic_shift.html)\n" +}, +{ + "command": [ + "pair_style eff/cut" + ], + "syntax": [ + "pair_style eff/cut cutoff keyword args ..." + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "style1", - "type": 2, + "arg": "eff/cut", + "type": 1, "choices": [] }, { - "arg": "args", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "keyword", "type": 2, "choices": [] }, @@ -32992,268 +32193,373 @@ export const command_docs = [ "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* cutoff = global cutoff for Coulombic interactions\n* zero or more keyword/value pairs may be appended \n *      keyword = limit/eradius or pressure/evirials or ecp \n       limit/eradius args = none \n       pressure/evirials args = none \n       ecp args = type element type element ... \n       type = LAMMPS atom type (1 to Ntypes) \n       element = element symbol (e.g. H, Si) \n", + "examples": "\n```lmps\npair_style eff/cut 39.7\npair_style eff/cut 40.0 limit/eradius\npair_style eff/cut 40.0 limit/eradius pressure/evirials\npair_style eff/cut 40.0 ecp 1 Si 3 C\npair_coeff * *\npair_coeff 2 2 20.0\npair_coeff 1 s 0.320852 2.283269 0.814857\npair_coeff 3 p 22.721015 0.728733 1.103199 17.695345 6.693621\n```\n", + "html_filename": "pair_eff.html", + "short_description": "This pair style contains a LAMMPS implementation of the electron Force\nField (eFF) potential currently under development at Caltech, as\ndescribed in **Jaramillo-Botero**", + "description": "This pair style contains a LAMMPS implementation of the electron Force\nField (eFF) potential currently under development at Caltech, as\ndescribed in **Jaramillo-Botero**. The eFF for Z<6\nwas first introduced by **Su** in 2007. It has been extended to\nhigher Zs by using effective core potentials (ECPs) that now cover up\nto second and third row p-block elements of the periodic table.\n\neFF can be viewed as an approximation to QM wave packet dynamics and\nFermionic molecular dynamics, combining the ability of electronic\nstructure methods to describe atomic structure, bonding, and chemistry\nin materials, and of plasma methods to describe nonequilibrium\ndynamics of large systems with a large number of highly excited\nelectrons. Yet, eFF relies on a simplification of the electronic\nwave function in which electrons are described as floating Gaussian\nwave packets whose position and size respond to the various dynamic\nforces between interacting classical nuclear particles and spherical\nGaussian electron wave packets. The wave function is taken to be a\nHartree product of the wave packets. To compensate for the lack of\nexplicit antisymmetry in the resulting wave function, a spin-dependent\nPauli potential is included in the Hamiltonian. Substituting this\nwave function into the time-dependent Schrodinger equation produces\nequations of motion that correspond - to second order - to classical\nHamiltonian relations between electron position and size, and their\nconjugate momenta. The N-electron wave function is described as a\nproduct of one-electron Gaussian functions, whose size is a dynamical\nvariable and whose position is not constrained to a nuclear\ncenter. This form allows for straightforward propagation of the\nwave function, with time, using a simple formulation from which the\nequations of motion are then integrated with conventional MD\nalgorithms. In addition to this spin-dependent Pauli repulsion\npotential term between Gaussians, eFF includes the electron kinetic\nenergy from the Gaussians. These two terms are based on\nfirst-principles quantum mechanics. On the other hand, nuclei are\ndescribed as point charges, which interact with other nuclei and\nelectrons through standard electrostatic potential forms.\n\nThe full Hamiltonian (shown below), contains then a standard\ndescription for electrostatic interactions between a set of\ndelocalized point and Gaussian charges which include, nuclei-nuclei\n(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a\nmixed QM-classical mechanics method rather than a conventional force\nfield method (in which electron motions are averaged out into ground\nstate nuclear motions, i.e a single electronic state, and particle\ninteractions are described via empirically parameterized interatomic\npotential functions). This makes eFF uniquely suited to simulate\nmaterials over a wide range of temperatures and pressures where\nelectronically excited and ionized states of matter can occur and\ncoexist. Furthermore, the interactions between particles -nuclei and\nelectrons- reduce to the sum of a set of effective pairwise potentials\nin the eFF formulation. The *eff/cut* style computes the pairwise\nCoulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),\nand the quantum-derived Pauli (E_PR) and Kinetic energy interactions\npotentials between electrons (E_KE) for a total energy expression\ngiven as,\n\\[\n U\\left(R,r,s\\right) = E_{NN} \\left( R \\right) + E_{Ne} \\left( {R,r,s} \\right) + E_{ee} \\left( {r,s} \\right) + E_{KE} \\left( {r,s} \\right) + E_{PR} \\left( { \\uparrow \\downarrow ,S} \\right)\\]\nThe individual terms are defined as follows:\n\\[\\begin{align*} \n E_{KE} = & \\frac{\\hbar^2 }{{m_{e} }}\\sum\\limits_i {\\frac{3}{{2s_i^2 }}} \\\\\n E_{NN} = & \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i < j} {\\frac{{Z_i Z_j }}{{R_{ij} }}} \\\\\n E_{Ne} = & - \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i,j} {\\frac{{Z_i }}{{R_{ij} }}Erf\\left( {\\frac{{\\sqrt 2 R_{ij} }}{{s_j }}} \\right)} \\\\\n E_{ee} = & \\frac{1}{{4\\pi \\varepsilon _0 }}\\sum\\limits_{i < j} {\\frac{1}{{r_{ij} }}Erf\\left( {\\frac{{\\sqrt 2 r_{ij} }}{{\\sqrt {s_i^2 + s_j^2 } }}} \\right)} \\\\\n E_{Pauli} = & \\sum\\limits_{\\sigma _i = \\sigma _j } {E\\left( { \\uparrow \\uparrow } \\right)_{ij}} + \\sum\\limits_{\\sigma _i \\ne \\sigma _j } {E\\left( { \\uparrow \\downarrow } \\right)_{ij}} \\\\ \\end{align*} \\]\nwhere, s_i correspond to the electron sizes, the sigmas i's to the\nfixed spins of the electrons, Z_i to the charges on the nuclei, R_ij\nto the distances between the nuclei or the nuclei and electrons, and\nr_ij to the distances between electrons. For additional details see\n**Jaramillo-Botero**.\n\nThe overall electrostatics energy is given in Hartree units of energy\nby default and can be modified by an energy-conversion constant,\naccording to the units chosen (see [electron_units ](https://docs.lammps.org/units.html)). The\ncutoff Rc, given in Bohrs (by default), truncates the interaction\ndistance. The recommended cutoff for this pair style should follow\nthe minimum image criterion, i.e. half of the minimum unit cell\nlength.\n\nStyle *eff/long* (not yet available) computes the same interactions as\nstyle *eff/cut* except that an additional damping factor is applied so\nit can be used in conjunction with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\noption. The Coulombic cutoff specified for this style means that\npairwise interactions within this distance are computed directly;\ninteractions outside that distance are computed in reciprocal space.\n\nThis potential is designed to be used with [atom_style electron ](https://docs.lammps.org/atom_style.html) definitions, in order to handle the\ndescription of systems with interacting nuclei and explicit electrons.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *eff/cut*, the cutoff coefficient is optional. If it is not used\n(as in some of the examples above), the default global value specified\nin the pair_style command is used.\n\nFor *eff/long* (not yet available) no cutoff will be specified for an\nindividual I,J type pair via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\nAll type pairs use the same global cutoff specified in the pair_style\ncommand.\n\n----------\n\nThe *limit/eradius* and *pressure/evirials* keywords are optional.\nNeither or both must be specified. If not specified they are unset.\n\nThe *limit/eradius* keyword is used to restrain electron size from\nbecoming excessively diffuse at very high temperatures were the\nGaussian wave packet representation breaks down, and from expanding as\nfree particles to infinite size. If unset, electron radius is free to\nincrease without bounds. If set, a restraining harmonic potential of\nthe form E = 1/2k_ss\\^2 for s > L_box/2, where k_s = 1 Hartrees/Bohr\\^2,\nis applied on the electron radius.\n\nThe *pressure/evirials* keyword is used to control between two types\nof pressure computation: if unset, the computed pressure does not\ninclude the electronic radial virials contributions to the total\npressure (scalar or tensor). If set, the computed pressure will\ninclude the electronic radial virial contributions to the total\npressure (scalar and tensor).\n\nThe *ecp* keyword is used to associate an ECP representation for a\nparticular atom type. The ECP captures the orbital overlap between a\ncore pseudo particle and valence electrons within the Pauli repulsion.\nA list of type:element-symbol pairs may be provided for all ECP\nrepresentations, after the \"ecp\" keyword.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Default ECP parameters are provided for C, N, O, Al, and Si.\n > Users can modify these using the pair_coeff command as exemplified\n > above. For this, the User must distinguish between two different\n > functional forms supported, one that captures the orbital overlap\n > assuming the s-type core interacts with an s-like valence electron\n > (s-s) and another that assumes the interaction is s-p. For systems\n > that exhibit significant p-character (e.g. C, N, O) the s-p form is\n > recommended. The \"s\" ECP form requires 3 parameters and the \"p\" 5\n > parameters. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >there are two different pressures that can be reported for eFF\n > when defining this pair_style, one (default) that considers electrons\n > do not contribute radial virial components (i.e. electrons treated as\n > incompressible 'rigid' spheres) and one that does. The radial\n > electronic contributions to the virials are only tallied if the\n > flexible pressure option is set, and this will affect both global and\n > per-atom quantities. In principle, the true pressure of a system is\n > somewhere in between the rigid and the flexible eFF pressures, but,\n > for most cases, the difference between these two pressures will not be\n > significant over long-term averaged runs (i.e. even though the energy\n > partitioning changes, the total energy remains similar). \n > \n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This implementation of eFF gives a reasonably accurate description\n > for systems containing nuclei from Z = 1-6 in \"all electron\"\n > representations. For systems with increasingly non-spherical\n > electrons, Users should use the ECP representations. ECPs are now\n > supported and validated for most of the second and third row elements of\n > the p-block. Predefined parameters are provided for C, N, O, Al, and\n > Si. The ECP captures the orbital overlap between the core and valence\n > electrons (i.e. Pauli repulsion) with one of the functional forms: \n > \n\n\\[\\begin{align*} \n E_{Pauli(ECP_s)} = & p_1\\exp\\left(-\\frac{p_2r^2}{p_3+s^2} \\right) \\\\\n E_{Pauli(ECP_p)} = & p_1\\left( \\frac{2}{p_2/s+s/p_2} \\right)\\left( r-p_3s\\right)^2\\exp \\left[ -\\frac{p_4\\left( r-p_3s \\right)^2}{p_5+s^2} \\right] \\end{align*} \\]\nWhere the first form correspond to core interactions with s-type valence\nelectrons and the second to core interactions with p-type valence\nelectrons.\n\nThe current version adds full support for models with fixed-core and\nECP definitions. to enable larger timesteps (i.e. by avoiding the\nhigh frequency vibrational modes -translational and radial- of the 2 s\nelectrons), and in the ECP case to reduce the increased orbital\ncomplexity in higher Z elements (up to Z<18). A fixed-core should be\ndefined with a mass that includes the corresponding nuclear mass plus\nthe 2 s electrons in atomic mass units (2x5.4857990943e-4), and a\nradius equivalent to that of minimized 1s electrons (see examples\nunder /examples/PACKAGES/eff/fixed-core). An pseudo-core should be\ndescribed with a mass that includes the corresponding nuclear mass,\nplus all the core electrons (i.e no outer shell electrons), and a\nradius equivalent to that of a corresponding minimized full-electron\nsystem. The charge for a pseudo-core atom should be given by the\nnumber of outer shell electrons.\n\nIn general, eFF excels at computing the properties of materials in\nextreme conditions and tracing the system dynamics over multi-picosecond\ntimescales; this is particularly relevant where electron excitations\ncan change significantly the nature of bonding in the system. It can\ncapture with surprising accuracy the behavior of such systems because\nit describes consistently and in an unbiased manner many different\nkinds of bonds, including covalent, ionic, multicenter, ionic, and\nplasma, and how they interconvert and/or change when they become\nexcited. eFF also excels in computing the relative thermochemistry of\nisodemic reactions and conformational changes, where the bonds of the\nreactants are of the same type as the bonds of the products. eFF\nassumes that kinetic energy differences dominate the overall exchange\nenergy, which is true when the electrons present are nearly spherical\nand nodeless and valid for covalent compounds such as dense hydrogen,\nhydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth\nmetals (e.g. beryllium) and semimetals such as boron; and various\ncompounds containing ionic and/or multicenter bonds, such as boron\ndihydride.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff distance for the\n*eff/cut* style can be mixed. The default mix value is *geometric* .\nSee the \"pair_modify\" command for details.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is not relevant for\nthese pair styles.\n\nThe *eff/long* (not yet available) style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option for tabulation of the\nshort-range portion of the long-range Coulombic interaction.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Jaramillo-Botero)** Jaramillo-Botero, Su, Qi, Goddard, Large-scale,\nLong-term Non-adiabatic Electron Molecular Dynamics for Describing\nMaterial Properties and Phenomena in Extreme Environments, J Comp\nChem, 32, 497-512 (2011). \n \n**(Su)** Su and Goddard, Excited Electron Dynamics Modeling of Warm\nDense Matter, Phys Rev Lett, 99:185003 (2007). \n ", + "restrictions": "These pair styles will only be enabled if LAMMPS is built with the\nEFF package. It will only be enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThese pair styles require that particles store electron attributes\nsuch as radius, radial velocity, and radial force, as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html). The *electron* atom style does all of\nthis.\n\nThes pair styles require you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "fix rigid/meso" + ], + "syntax": [ + "fix ID group-ID rigid/meso bodystyle args keyword values ..." + ], + "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "hybrid/scaled", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "factor1", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "style1", - "type": 2, + "arg": "rigid/meso", + "type": 1, "choices": [] }, + { + "arg": "group", + "type": 3, + "choices": [ + "single", + "molecule", + "group" + ] + }, { "arg": "args", "type": 2, "choices": [] }, { - "arg": "factor2", + "arg": "infile", + "type": 3, + "choices": [ + "reinit", + "force", + "torque", + "infile" + ] + }, + { + "arg": "values", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rigid/meso = style name of this fix command\n* bodystyle = single or molecule or group \n *        single args = none \n *        molecule args = none \n *        *custom* args = i_propname or v_varname \n         i_propname = an integer property defined via fix property/atom \n         v_varname = an atom-style or atomfile-style variable \n *        group args = N groupID1 groupID2 ... \n         N = # of groups \n         groupID1, groupID2, ... = list of N group IDs \n* zero or more keyword/value pairs may be appended\n* keyword = reinit or force or torque or infile \n *        reinit = yes or no \n *        force values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass force is active \n *        torque values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass torque is active \n *        infile filename \n         filename = file with per-body values of mass, center-of-mass, moments of inertia \n", + "examples": "\n```lmps\nfix 1 ellipsoid rigid/meso single\nfix 1 rods rigid/meso molecule\nfix 1 spheres rigid/meso single force 1 off off on\nfix 1 particles rigid/meso molecule force 1*5 off off off force 6*10 off off on\nfix 2 spheres rigid/meso group 3 sphere1 sphere2 sphere3 torque * off off off\n```\n", + "html_filename": "fix_rigid_meso.html", + "short_description": "Treat one or more sets of mesoscopic SPH/SDPD particles as independent\nrigid bodies", + "description": "Treat one or more sets of mesoscopic SPH/SDPD particles as independent\nrigid bodies. This means that each timestep the total force and torque\non each rigid body is computed as the sum of the forces and torques on\nits constituent particles. The coordinates and velocities of the\nparticles in each body are then updated so that the body moves and\nrotates as a single entity using the methods described in the paper by\n**Miller**. Density and internal energy of the particles will\nalso be updated. This is implemented by creating internal data structures\nfor each rigid body and performing time integration on these data\nstructures. Positions and velocities of the constituent particles are\nregenerated from the rigid body data structures in every time step. This\nrestricts which operations and fixes can be applied to rigid bodies. See\nbelow for a detailed discussion.\n\nThe operation of this fix is exactly like that described by the\n[fix rigid/nve ](https://docs.lammps.org/fix_rigid.html) command, except that particles' density,\ninternal energy and extrapolated velocity are also updated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not update the particles in rigid bodies via other\n > time-integration fixes (e.g. [fix sph ](https://docs.lammps.org/fix_sph.html), [fix > sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)), or you will have conflicting\n > updates to positions and velocities resulting in unphysical\n > behavior in most cases. When performing a hybrid simulation with\n > some atoms in rigid bodies, and some not, a separate time\n > integration fix like [fix sph ](https://docs.lammps.org/fix_sph.html) should be used for\n > the non-rigid particles. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes are overkill if you simply want to hold a collection of\n > particles stationary or have them move with a constant velocity. To\n > hold particles stationary use [fix sph/stationary > ](https://docs.lammps.org/fix_sph_stationary.html) instead. If you would like to move particles\n > with a constant velocity use [fix meso/move ](https://docs.lammps.org/fix_meso_move.html). \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The aggregate properties of each rigid body are\n > calculated at the start of a simulation run and are maintained in\n > internal data structures. The properties include the position and\n > velocity of the center-of-mass of the body, its moments of inertia, and\n > its angular momentum. This is done using the properties of the\n > constituent particles of the body at that point in time (or see the *infile*\n > keyword option). Thereafter, changing these properties of individual\n > particles in the body will have no effect on a rigid body's dynamics, unless\n > they effect any computation of per-particle forces or torques. If the\n > keyword *reinit* is set to *yes* (the default), the rigid body data\n > structures will be recreated at the beginning of each *run* command;\n > if the keyword *reinit* is set to *no*, the rigid body data structures\n > will be built only at the very first *run* command and maintained for\n > as long as the rigid fix is defined. For example, you might think you\n > could displace the particles in a body or add a large velocity to each particle\n > in a body to make it move in a desired direction before a second run is\n > performed, using the [set ](https://docs.lammps.org/set.html) or\n > [displace_atoms ](https://docs.lammps.org/displace_atoms.html) or [velocity ](https://docs.lammps.org/velocity.html)\n > commands. But these commands will not affect the internal attributes\n > of the body unless *reinit* is set to *yes* . With *reinit* set to *no*\n > (or using the *infile* option, which implies *reinit* *no* ) the position\n > and velocity of individual particles in the body will be reset when time\n > integration starts again. \n > \n\n----------\n\nEach rigid body must have two or more particles. A particle can belong\nto at most one rigid body. Which particles are in which bodies can be\ndefined via several options.\n\nFor bodystyle *single* the entire fix group of particles is treated as\none rigid body.\n\nFor bodystyle *molecule*, particles are grouped into rigid bodies by their\nrespective molecule IDs: each set of particles in the fix group with the\nsame molecule ID is treated as a different rigid body. Note that particles\nwith a molecule ID = 0 will be treated as a single rigid body. For a\nsystem with solvent (typically this is particles with molecule ID = 0)\nsurrounding rigid bodies, this may not be what you want. Thus you\nshould be careful to use a fix group that only includes particles you\nwant to be part of rigid bodies.\n\nBodystyle *custom* is similar to bodystyle *molecule* except that it\nis more flexible in using other per-atom properties to define the sets\nof particles that form rigid bodies. An integer vector defined by the\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command can be used. Or an\n[atom-style or atomfile-style variable ](https://docs.lammps.org/variable.html) can be used; the\nfloating-point value produced by the variable is rounded to an\ninteger. As with bodystyle *molecule*, each set of particles in the fix\ngroups with the same integer value is treated as a different rigid\nbody. Since fix property/atom vectors and atom-style variables\nproduce values for all particles, you should be careful to use a fix group\nthat only includes particles you want to be part of rigid bodies.\n\nFor bodystyle *group*, each of the listed groups is treated as a\nseparate rigid body. Only particles that are also in the fix group are\nincluded in each rigid body.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To compute the initial center-of-mass position and other\n > properties of each rigid body, the image flags for each particle in the\n > body are used to \"unwrap\" the particle coordinates. Thus you must\n > ensure that these image flags are consistent so that the unwrapping\n > creates a valid rigid body (one where the particles are close together)\n > , particularly if the particles in a single rigid body straddle a\n > periodic boundary. This means the input data file or restart file must\n > define the image flags for each particle consistently or that you have\n > used the [set ](https://docs.lammps.org/set.html) command to specify them correctly. If a\n > dimension is non-periodic then the image flag of each particle must be\n > 0 in that dimension, else an error is generated. \n > \n\nBy default, each rigid body is acted on by other particles which induce\nan external force and torque on its center of mass, causing it to\ntranslate and rotate. Components of the external center-of-mass force\nand torque can be turned off by the *force* and *torque* keywords.\nThis may be useful if you wish a body to rotate but not translate, or\nvice versa, or if you wish it to rotate or translate continuously\nunaffected by interactions with other particles. Note that if you\nexpect a rigid body not to move or rotate by using these keywords, you\nmust ensure its initial center-of-mass translational or angular\nvelocity is 0.0. Otherwise the initial translational or angular\nmomentum, the body has, will persist.\n\nAn xflag, yflag, or zflag set to *off* means turn off the component of\nforce or torque in that dimension. A setting of *on* means turn on\nthe component, which is the default. Which rigid body(s) the settings\napply to is determined by the first argument of the *force* and\n*torque* keywords. It can be an integer M from 1 to Nbody, where\nNbody is the number of rigid bodies defined. A wild-card asterisk can\nbe used in place of, or in conjunction with, the M argument to set the\nflags for multiple rigid bodies. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If N = the number of rigid bodies, then an asterisk\nwith no numeric values means all bodies from 1 to N. A leading\nasterisk means all bodies from 1 to n (inclusive). A trailing\nasterisk means all bodies from n to N (inclusive). A middle asterisk\nmeans all bodies from m to n (inclusive). Note that you can use the\n*force* or *torque* keywords as many times as you like. If a\nparticular rigid body has its component flags set multiple times, the\nsettings from the final keyword are used.\n\nFor computational efficiency, you should typically define one fix\nrigid/meso command which includes all the desired rigid bodies. LAMMPS\nwill allow multiple rigid/meso fixes to be defined, but it is more\nexpensive.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *reinit* keyword determines, whether the rigid body properties\nare re-initialized between run commands. With the option *yes* (the\ndefault) this is done, with the option *no* this is not done. Turning\noff the re-initialization can be helpful to protect rigid bodies against\nunphysical manipulations between runs or when properties cannot be\neasily re-computed (e.g. when read from a file). When using the *infile*\nkeyword, the *reinit* option is automatically set to *no* .\n\n----------\n\nThe *infile* keyword allows a file of rigid body attributes to be read\nin from a file, rather then having LAMMPS compute them. There are 5\nsuch attributes: the total mass of the rigid body, its center-of-mass\nposition, its 6 moments of inertia, its center-of-mass velocity, and\nthe 3 image flags of the center-of-mass position. For rigid bodies\nconsisting of point particles or non-overlapping finite-size\nparticles, LAMMPS can compute these values accurately. However, for\nrigid bodies consisting of finite-size particles which overlap each\nother, LAMMPS will ignore the overlaps when computing these 4\nattributes. The amount of error this induces depends on the amount of\noverlap. To avoid this issue, the values can be pre-computed\n(e.g. using Monte Carlo integration).\n\nThe format of the file is as follows. Note that the file does not\nhave to list attributes for every rigid body integrated by fix rigid.\nOnly bodies which the file specifies will have their computed\nattributes overridden. The file can contain initial blank lines or\ncomment lines starting with \"#\" which are ignored. The first\nnon-blank, non-comment line should list N = the number of lines to\nfollow. The N successive lines contain the following information:\n\n```\nID1 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\nID2 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n...\nIDN masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n```\nThe rigid body IDs are all positive integers. For the *single*\nbodystyle, only an ID of 1 can be used. For the *group* bodystyle,\nIDs from 1 to Ng can be used where Ng is the number of specified\ngroups. For the *molecule* bodystyle, use the molecule ID for the\natoms in a specific rigid body as the rigid body ID.\n\nThe masstotal and center-of-mass coordinates (xcm,ycm,zcm) are\nself-explanatory. The center-of-mass should be consistent with what\nis calculated for the position of the rigid body with all its atoms\nunwrapped by their respective image flags. If this produces a\ncenter-of-mass that is outside the simulation box, LAMMPS wraps it\nback into the box.\n\nThe 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the\nvalues consistent with the current orientation of the rigid body\naround its center of mass. The values are with respect to the\nsimulation box XYZ axes, not with respect to the principal axes of the\nrigid body itself. LAMMPS performs the latter calculation internally.\n\nThe (vxcm,vycm,vzcm) values are the velocity of the center of mass.\nThe (lx,ly,lz) values are the angular momentum of the body. The\n(vxcm,vycm,vzcm) and (lx,ly,lz) values can simply be set to 0 if you\nwish the body to have no initial motion.\n\nThe (ixcm,iycm,izcm) values are the image flags of the center of mass\nof the body. For periodic dimensions, they specify which image of the\nsimulation box the body is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of -1 means subtract 1 box length to\nget the true value. LAMMPS updates these flags as the rigid bodies\ncross periodic boundaries during the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the *infile* keyword and write restart\n > files during a simulation, then each time a restart file is written,\n > the fix also write an auxiliary restart file with the name\n > rfile.rigid, where \"rfile\" is the name of the restart file,\n > e.g. tmp.restart.10000 and tmp.restart.10000.rigid. This auxiliary\n > file is in the same format described above. Thus it can be used in a\n > new input script that restarts the run and re-specifies a rigid fix\n > using an *infile* keyword and the appropriate filename. Note that the\n > auxiliary file will contain one line for every rigid body, even if the\n > original file only listed a subset of the rigid bodies. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information is written to [binary restart files ](https://docs.lammps.org/restart.html).\nIf the *infile* keyword is used, an auxiliary file is written out\nwith rigid body information each time a restart file is written, as\nexplained above for the *infile* keyword.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe number of rows in the array is equal to the number of rigid\nbodies. The number of columns is 28. Thus for each rigid body, 28\nvalues are stored: the xyz coords of the center of mass (COM), the xyz\ncomponents of the COM velocity, the xyz components of the force acting\non the COM, the components of the 4-vector quaternion representing the\norientation of the rigid body, the xyz components of the angular velocity\nof the body around its COM, the xyz components of the torque acting on the\nCOM, the 3 principal components of the moment of inertia, the xyz components\nof the angular momentum of the body around its COM, and the xyz image\nflags of the COM.\n\nThe center of mass (COM) for each body is similar to unwrapped\ncoordinates written to a dump file. It will always be inside (or\nslightly outside) the simulation box. The image flags have the same\nmeaning as image flags for particle positions (see the \"dump\" command).\nThis means you can calculate the unwrapped COM by applying the image\nflags to the COM, the same as when unwrapped coordinates are written\nto a dump file.\n\nThe force and torque values in the array are not affected by the\n*force* and *torque* keywords in the fix rigid command; they reflect\nvalues before any changes are made by those keywords.\n\nThe ordering of the rigid bodies (by row in the array) is as follows.\nFor the *single* keyword there is just one rigid body. For the\n*molecule* keyword, the bodies are ordered by ascending molecule ID.\nFor the *group* keyword, the list of group IDs determines the ordering\nof bodies.\n\nThe array values calculated by this fix are \"intensive\", meaning they\nare independent of the number of particles in the simulation.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Miller)** Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,\nJ Chem Phys, 116, 8649 (2002). \n ", + "restrictions": "This fix is part of the DPD-SMOOTH package and also depends on the RIGID\npackage. It is only enabled if LAMMPS was built with both packages. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store density and internal energy as\ndefined by the [atom_style sph ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be mesoscopic SPH/SDPD particles.\n", + "related": "[fix meso/move ](https://docs.lammps.org/fix_meso_move.html), [fix rigid ](https://docs.lammps.org/fix_rigid.html),\n[neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html)\n" +}, +{ + "command": [ + "compute stress/atom" + ], + "syntax": [ + "compute ID group-ID style temp-ID keyword ..." + ], + "args": [ + [ + { + "arg": "compute", + "type": 1, + "choices": [] }, { - "arg": "style", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "2", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "centroid/stress/atom", + "type": 3, + "choices": [ + "stress/atom", + "centroid/stress/atom" + ] + }, + { + "arg": "temp-ID", "type": 2, "choices": [] + }, + { + "arg": "virial", + "type": 3, + "choices": [ + "ke", + "pair", + "bond", + "angle", + "dihedral", + "improper", + "kspace", + "fix", + "virial" + ] } ] ], - "parameters": "* style1,style2 = list of one or more pair styles and their arguments\n* factor1,factor2 = scale factors for pair styles, may be a variable \n", - "examples": "\n```lmps\npair_style hybrid lj/cut/coul/cut 10.0 eam lj/cut 5.0\npair_coeff 1*2 1*2 eam niu3\npair_coeff 3 3 lj/cut/coul/cut 1.0 1.0\npair_coeff 1*2 3 lj/cut 0.5 1.2\n\npair_style hybrid/overlay lj/cut 2.5 coul/long 2.0\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * coul/long\n\npair_style hybrid/scaled 0.5 tersoff 0.5 sw\npair_coeff * * tersoff Si.tersoff Si\npair_coeff * * sw Si.sw Si\n\npair_style hybrid/molecular lj/cut 2.5 lj/cut 2.5\npair_coeff * * lj/cut 1 1.0 1.0\npair_coeff * * lj/cut 2 1.5 1.0\n\nvariable one equal ramp(1.0,0.0)\nvariable two equal 1.0-v_one\npair_style hybrid/scaled v_one lj/cut 2.5 v_two morse 2.5\npair_coeff 1 1 lj/cut 1.0 1.0 2.5\npair_coeff 1 1 morse 1.0 1.0 1.0 2.5\n```\n", - "html_filename": "pair_hybrid.html", - "short_description": "The *hybrid*, *hybrid/overlay*, *hybrid/molecular*, and *hybrid/scaled*\nstyles enable the use of multiple pair styles in one simulation", - "description": "The *hybrid*, *hybrid/overlay*, *hybrid/molecular*, and *hybrid/scaled*\nstyles enable the use of multiple pair styles in one simulation. With\nthe *hybrid* style, exactly one pair style is assigned to each pair of\natom types. With the *hybrid/overlay* and *hybrid/scaled* styles, one\nor more pair styles can be assigned to each pair of atom types. With\nthe hybrid/molecular style, pair styles are assigned to either intra-\nor inter-molecular interactions.\n\nThe assignment of pair styles to type pairs is made via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. The major difference between\nthe *hybrid/overlay* and *hybrid/scaled* styles is that the\n*hybrid/scaled* adds a scale factor for each sub-style contribution to\nforces, energies and stresses. Because of the added complexity, the\n*hybrid/scaled* style has more overhead and thus may be slower than\n*hybrid/overlay*.\n\nThe *hybrid/molecular* pair style accepts *only* two sub-styles: the\nfirst is assigned to intra-molecular interactions (i.e. both atoms\nhave the same molecule ID), the second to inter-molecular interactions\n(i.e. interacting atoms have different molecule IDs).\n\nHere are two examples of hybrid simulations. The *hybrid* style could\nbe used for a simulation of a metal droplet on a LJ surface. The metal\natoms interact with each other via an *eam* potential, the surface atoms\ninteract with each other via a *lj/cut* potential, and the metal/surface\ninteraction is also computed via a *lj/cut* potential. The\n*hybrid/overlay* style could be used as in the second example above,\nwhere multiple potentials are superimposed in an additive fashion to\ncompute the interaction between atoms. In this example, using *lj/cut*\nand *coul/long* together gives the same result as if the\n*lj/cut/coul/long* potential were used by itself. In this case, it\nwould be more efficient to use the single combined potential, but in\ngeneral any combination of pair potentials can be used together in to\nproduce an interaction that is not encoded in any single pair_style\nfile, e.g. adding Coulombic forces between granular particles. Another\nlimitation of using the *hybrid/overlay* variant, that it does not generate\n*lj/cut* parameters for mixed atom types from a mixing rule due to\nrestrictions discussed below.\n\nIf the *hybrid/scaled* style is used instead of *hybrid/overlay*,\ncontributions from sub-styles are weighted by their scale factors, which\nmay be fractional or even negative. Furthermore the scale factors may\nbe variables that may change during a simulation. This enables\nswitching smoothly between two different pair styles or two different\nparameter sets during a run in a similar fashion as could be done\nwith [fix adapt ](https://docs.lammps.org/fix_adapt.html) or [fix alchemy ](https://docs.lammps.org/fix_alchemy.html).\n\nAll pair styles that will be used are listed as \"sub-styles\" following\nthe *hybrid* or *hybrid/overlay* keyword, in any order. In case of the\n*hybrid/scaled* pair style, each sub-style is prefixed with a scale\nfactor. The scale factor is either a floating point number or an equal\nstyle (or equivalent) variable. Each sub-style's name is followed by\nits usual arguments, as illustrated in the examples above. See the doc\npages of the individual pair styles for a listing and explanation of the\nappropriate arguments for them.\n\nNote that an individual pair style can be used multiple times as a\nsub-style. For efficiency reasons this should only be done if your\nmodel requires it. E.g. if you have different regions of Si and C atoms\nand wish to use a Tersoff potential for pure Si for one set of atoms,\nand a Tersoff potential for pure C for the other set (presumably with\nsome third potential for Si-C interactions), then the sub-style\n*tersoff* could be listed twice. But if you just want to use a\nLennard-Jones or other pairwise potential for several different atom\ntype pairs in your model, then you should just list the sub-style once\nand use the pair_coeff command to assign parameters for the different\ntype pairs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There is one exception to this option to list an individual\n > pair style multiple times: GPU-enabled pair styles in the GPU package.\n > This is because the GPU package currently assumes that only one\n > instance of a pair style is being used. \n > \n\nIn the pair_coeff commands, the name of a pair style must be added\nafter the I,J type specification, with the remaining coefficients\nbeing those appropriate to that style. If the pair style is used\nmultiple times in the pair_style command, then an additional numeric\nargument must also be specified which is a number from 1 to M where M\nis the number of times the sub-style was listed in the pair style\ncommand. The extra number indicates which instance of the sub-style\nthese coefficients apply to.\n\nFor example, consider a simulation with 3 atom types: types 1 and 2\nare Ni atoms, type 3 are LJ atoms with charges. The following\ncommands would set up a hybrid simulation:\n\n```lmps\npair_style hybrid eam/alloy lj/cut/coul/cut 10.0 lj/cut 8.0\npair_coeff * * eam/alloy nialhjea Ni Ni NULL\npair_coeff 3 3 lj/cut/coul/cut 1.0 1.0\npair_coeff 1*2 3 lj/cut 0.8 1.3\n```\nAs an example of using the same pair style multiple times, consider a\nsimulation with 2 atom types. Type 1 is Si, type 2 is C. The\nfollowing commands would model the Si atoms with Tersoff, the C atoms\nwith Tersoff, and the cross-interactions with Lennard-Jones:\n\n```lmps\npair_style hybrid lj/cut 2.5 tersoff tersoff\npair_coeff * * tersoff 1 Si.tersoff Si NULL\npair_coeff * * tersoff 2 C.tersoff NULL C\npair_coeff 1 2 lj/cut 1.0 1.5\n```\nIt is not recommended to read pair coefficients for a hybrid style from a \"Pair Coeffs\"\nor \"PairIJ Coeffs\" section of a data file via the [read_data ](https://docs.lammps.org/read_data.html) command,\nsince those sections expect a fixed number of lines, either one line per atom type or\none line pair pair of atom types, respectively. When reading from a data file, the\nlines of the \"Pair Coeffs\" and \"PairIJ Coeffs\" are changed in the same way as the *pair_coeff*\ncommand, i.e. the name of the pair style to which the parameters apply must follow the\natom type (or atom types), e.g.\n\n```\nPair Coeffs\n\n1 lj/cut/coul/cut 1.0 1.0\n...\n\nPairIJ Coeffs\n\n1 1 lj/cut/coul/cut 1.0 1.0\n...\n```\nNote that the pair_coeff command for some potentials such as\n[pair_style eam/alloy ](https://docs.lammps.org/pair_eam.html) includes a mapping specification\nof elements to all atom types, which in the hybrid case, can include\natom types not assigned to the *eam/alloy* potential. The NULL\nkeyword is used by many such potentials (eam/alloy, Tersoff, AIREBO,\netc), to denote an atom type that will be assigned to a different\nsub-style.\n\nFor the *hybrid* style, each atom type pair I,J is assigned to exactly\none sub-style. Just as with a simulation using a single pair style,\nif you specify the same atom type pair in a second pair_coeff command,\nthe previous assignment will be overwritten.\n\nFor the *hybrid/overlay* and *hybrid/scaled* styles, each atom type pair\nI,J can be assigned to one or more sub-styles. If you specify the same\natom type pair in a second pair_coeff command with a new sub-style, then\nthe second sub-style is added to the list of potentials that will be\ncalculated for two interacting atoms of those types. If you specify the\nsame atom type pair in a second pair_coeff command with a sub-style that\nhas already been defined for that pair of atoms, then the new pair\ncoefficients simply override the previous ones, as in the normal usage\nof the pair_coeff command. E.g. these two sets of commands are the\nsame:\n\n```lmps\npair_style lj/cut 2.5\npair_coeff * * 1.0 1.0\npair_coeff 2 2 1.5 0.8\n\npair_style hybrid/overlay lj/cut 2.5\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 2 2 lj/cut 1.5 0.8\n```\nCoefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as described above, or in the\n\"Pair Coeffs\" or \"PairIJ Coeffs\" section of the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command, or by mixing as described below.\n\nFor all of the *hybrid*, *hybrid/overlay*, and *hybrid/scaled* styles,\nevery atom type pair I,J (where I <= J) must be assigned to at least one\nsub-style via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file read by the [read_data](https://docs.lammps.org/read_data.html), or by mixing as described below. Also all sub-styles\nmust be used at least once in a [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >With hybrid pair styles the use of mixing to generate pair\n > coefficients is significantly limited compared to the individual pair\n > styles. LAMMPS **never** performs mixing of parameters from\n > different sub-styles, **even** if they use the same type of\n > coefficients, e.g. contain a Lennard-Jones potential variant. Those\n > parameters must be provided explicitly. Also for *hybrid/overlay*\n > and *hybrid/scaled* mixing is **only** performed for pairs of atom\n > types for which only a single pair style is assigned.\n >\n > Thus it is strongly recommended to provide all mixed terms\n > explicitly. For non-hybrid styles those could be generated and\n > written out using the [write_coeff command ](https://docs.lammps.org/write_coeff.html) and\n > then edited as needed to comply with the requirements for hybrid\n > styles as explained above. \n > \n\nIf you want there to be no interactions between a particular pair of\natom types, you have 3 choices. You can assign the pair of atom types\nto some sub-style and use the [neigh_modify exclude type ](https://docs.lammps.org/neigh_modify.html)\ncommand. You can assign it to some sub-style and set the coefficients\nso that there is effectively no interaction (e.g. epsilon = 0.0 in a LJ\npotential). Or, for *hybrid*, *hybrid/overlay*, or *hybrid/scaled*\nsimulations, you can use this form of the pair_coeff command in your\ninput script or the \"PairIJ Coeffs\" section of your data file:\n\n```lmps\npair_coeff 2 3 none\n```\nor this form in the \"Pair Coeffs\" section of the data file:\n\n```\n3 none\n```\nIf an assignment to *none* is made in a simulation with the\n*hybrid/overlay* or *hybrid/scaled* pair style, it wipes out all\nprevious assignments of that pair of atom types to sub-styles.\n\nNote that you may need to use an [atom_style ](https://docs.lammps.org/atom_style.html) hybrid\ncommand in your input script, if atoms in the simulation will need\nattributes from several atom styles, due to using multiple pair\nstyles with different requirements.\n\n----------\n\nDifferent force fields (e.g. CHARMM vs. AMBER) may have different rules\nfor applying exclusions or weights that change the strength of pairwise\nnon-bonded interactions between pairs of atoms that are also 1-2, 1-3,\nand 1-4 neighbors in the molecular bond topology. This is normally a\nglobal setting defined the [special_bonds ](https://docs.lammps.org/special_bonds.html) command.\nHowever, different weights can be assigned to different hybrid\nsub-styles via the [pair_modify special ](https://docs.lammps.org/pair_modify.html) command.\nThis allows multiple force fields to be used in a model of a hybrid\nsystem, however, there is no consistent approach to determine parameters\nautomatically for the interactions **between** atoms of the two force\nfields, thus this approach this is only recommended when particles\ndescribed by the different force fields do not mix.\n\nHere is an example for combining CHARMM and AMBER: The global *amber*\nsetting sets the 1-4 interactions to non-zero scaling factors and\nthen overrides them with 0.0 only for CHARMM:\n\n```lmps\nspecial_bonds amber\npair_style hybrid lj/charmm/coul/long 8.0 10.0 lj/cut/coul/long 10.0\npair_modify pair lj/charmm/coul/long special lj/coul 0.0 0.0 0.0\n```\nThis input achieves the same effect:\n\n```lmps\nspecial_bonds 0.0 0.0 0.1\npair_style hybrid lj/charmm/coul/long 8.0 10.0 lj/cut/coul/long 10.0\npair_modify pair lj/cut/coul/long special lj 0.0 0.0 0.5\npair_modify pair lj/cut/coul/long special coul 0.0 0.0 0.83333333\npair_modify pair lj/charmm/coul/long special lj/coul 0.0 0.0 0.0\n```\nHere is an example for combining Tersoff with OPLS/AA based on\na data file that defines bonds for all atoms where - for the\nTersoff part of the system - the force constants for the bonded\ninteractions have been set to 0. Note the global settings are\neffectively *lj/coul 0.0 0.0 0.5* as required for OPLS/AA:\n\n```lmps\nspecial_bonds lj/coul 1e-20 1e-20 0.5\npair_style hybrid tersoff lj/cut/coul/long 12.0\npair_modify pair tersoff special lj/coul 1.0 1.0 1.0\n```\nFor use with the various [compute \\*/tally ](https://docs.lammps.org/compute_tally.html)\ncomputes, the [pair_modify compute/tally ](https://docs.lammps.org/pair_modify.html)\ncommand can be used to selectively turn off processing of\nthe compute tally styles, for example, if those pair styles\n(e.g. many-body styles) do not support this feature.\n\nSee the [pair_modify ](https://docs.lammps.org/pair_modify.html) page for details on\nthe specific syntax, requirements and restrictions.\n\n----------\n\nThe potential energy contribution to the overall system due to an\nindividual sub-style can be accessed and output via the [computepair ](https://docs.lammps.org/compute_pair.html) command. Note that in the case of pair style\n*hybrid/scaled* this is the **unscaled** potential energy of the\nselected sub-style.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Several of the potentials defined via the pair_style command in\n > LAMMPS are really many-body potentials, such as Tersoff, AIREBO, MEAM,\n > ReaxFF, etc. The way to think about using these potentials in a\n > hybrid setting is as follows. \n > \n\nA subset of atom types is assigned to the many-body potential with a\nsingle [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, using \"\\* \\*\" to include\nall types and the NULL keywords described above to exclude specific\ntypes not assigned to that potential. If types 1,3,4 were assigned in\nthat way (but not type 2), this means that all many-body interactions\nbetween all atoms of types 1,3,4 will be computed by that potential.\nPair_style hybrid allows interactions between type pairs 2-2, 1-2,\n2-3, 2-4 to be specified for computation by other pair styles. You\ncould even add a second interaction for 1-1 to be computed by another\npair style, assuming pair_style hybrid/overlay is used.\n\nBut you should not, as a general rule, attempt to exclude the many-body\ninteractions for some subset of the type pairs within the set of 1,3,4\ninteractions, e.g. exclude 1-1 or 1-3 interactions. That is not\nconceptually well-defined for many-body interactions, since the\npotential will typically calculate energies and foces for small groups\nof atoms, e.g. 3 or 4 atoms, using the neighbor lists of the atoms to\nfind the additional atoms in the group.\n\nHowever, you can still use the pair_coeff none setting or the\n[neigh_modify exclude ](https://docs.lammps.org/neigh_modify.html) command to exclude certain\ntype pairs from the neighbor list that will be passed to a many-body\nsub-style. This will alter the calculations made by a many-body\npotential beyond the specific pairs, since it builds its list of 3-body,\n4-body, etc interactions from the pair lists. You will need to think\n**carefully** as to whether excluding such pairs produces a physically\nmeaningful result for your model.\n\nFor example, imagine you have two atom types in your model, type 1 for\natoms in one surface, and type 2 for atoms in the other, and you wish\nto use a Tersoff potential to compute interactions within each\nsurface, but not between the surfaces. Then either of these two command\nsequences would implement that model:\n\n```lmps\npair_style hybrid tersoff\npair_coeff * * tersoff SiC.tersoff C C\npair_coeff 1 2 none\n\npair_style tersoff\npair_coeff * * SiC.tersoff C C\nneigh_modify exclude type 1 2\n```\nEither way, only neighbor lists with 1-1 or 2-2 interactions would be\npassed to the Tersoff potential, which means it would compute no\n3-body interactions containing both type 1 and 2 atoms.\n\nHere is another example to use 2 many-body potentials together in an\noverlapping manner using hybrid/overlay. Imagine you have CNT (C atoms)\non a Si surface. You want to use Tersoff for Si/Si and Si/C\ninteractions, and AIREBO for C/C interactions. Si atoms are type 1; C\natoms are type 2. Something like this will work:\n\n```lmps\npair_style hybrid/overlay tersoff airebo 3.0\npair_coeff * * tersoff SiC.tersoff.custom Si C\npair_coeff * * airebo CH.airebo NULL C\n```\nNote that to prevent the Tersoff potential from computing C/C\ninteractions, you would need to **modify** the SiC.tersoff potential\nfile to turn off C/C interaction, i.e. by setting the appropriate\ncoefficients to 0.0.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since the *hybrid*, *hybrid/overlay*, *hybrid/scaled* styles\n > delegate computation to the individual sub-styles, the suffix\n > versions of the *hybrid* and *hybrid/overlay* styles are used to\n > propagate the corresponding suffix to all sub-styles, if those\n > versions exist. Otherwise the non-accelerated version will be used.\n > The individual accelerated sub-styles are part of the GPU, KOKKOS,\n > INTEL, OPENMP, and OPT packages, respectively. They are only\n > enabled if LAMMPS was built with those packages. See the\n > [Build package ](https://docs.lammps.org/Build_package.html) page for more info. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nAny pair potential settings made via the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) command are passed along to all\nsub-styles of the hybrid potential.\n\nFor atom type pairs I,J and I != J, if the sub-style assigned to I,I and\nJ,J is the same, and if the sub-style allows for mixing, then the\ncoefficients for I,J can be mixed. This means you do not have to\nspecify a pair_coeff command for I,J since the I,J type pair will be\nassigned automatically to the sub-style defined for both I,I and J,J and\nits coefficients generated by the mixing rule used by that sub-style.\nFor the *hybrid/overlay* and *hybrid/scaled* style, there is an\nadditional requirement that both the I,I and J,J pairs are assigned to a\nsingle sub-style. If this requirement is not met, no I,J coeffs will be\ngenerated, even if the sub-styles support mixing, and I,J pair\ncoefficients must be explicitly defined.\n\nSee the [pair_modify ](https://docs.lammps.org/pair_modify.html) command for\ndetails of mixing rules. See the See the page for the sub-style to\nsee if allows for mixing.\n\nThe hybrid pair styles supports the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options for an I,J pair interaction, if the\nassociated sub-style supports it.\n\nFor the hybrid pair styles, the list of sub-styles and their respective\nsettings are written to [binary restart files ](https://docs.lammps.org/restart.html), so a\n[pair_style ](https://docs.lammps.org/pair_style.html) command does not need to specified in an\ninput script that reads a restart file. However, the coefficient\ninformation is not stored in the restart file. The same is true for\n[data files ](https://docs.lammps.org/write_data.html). Thus, pair_coeff commands need to be\nre-specified in the restart input script. For pair style\n*hybrid/scaled* also the names of any variables used as scale factors\nare restored, but not the variables themselves, so those may need to be\nredefined when continuing from a restart.\n\nThese pair styles support the use of the *inner*, *middle*, and\n*outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, if\ntheir sub-styles do.\n", - "restrictions": "When using a long-range Coulombic solver (via the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command) with a hybrid pair_style,\none or more sub-styles will be of the \"long\" variety,\ne.g. *lj/cut/coul/long* or *buck/coul/long* . You must ensure that the\nshort-range Coulombic cutoff used by each of these long pair styles is\nthe same or else LAMMPS will generate an error.\n\nPair style *hybrid/scaled* currently only works for non-accelerated\npair styles and pair styles from the OPT package.\n\nPair style *hybrid/molecular* is not compatible with manybody potentials.\n\nWhen using pair styles from the GPU package they must not be listed\nmultiple times. LAMMPS will detect this and abort.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/atom or centroid/stress/atom\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial \n", + "examples": "\n```lmps\ncompute 1 mobile stress/atom NULL\ncompute 1 mobile stress/atom myRamp\ncompute 1 all stress/atom NULL pair bond\ncompute 1 all centroid/stress/atom NULL bond dihedral improper\n```\n", + "html_filename": "compute_stress_atom.html", + "short_description": "Define a computation that computes per-atom stress tensor for each\natom in a group", + "description": "Define a computation that computes per-atom stress tensor for each\natom in a group. In case of compute *stress/atom*, the tensor for\neach atom is symmetric with 6 components and is stored as a 6-element\nvector in the following order: \\(xx\\), \\(yy\\), \\(zz\\),\n\\(xy\\), \\(xz\\), \\(yz\\). In case of compute\n*centroid/stress/atom*, the tensor for each atom is asymmetric with 9\ncomponents and is stored as a 9-element vector in the following order:\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\), \\(yx\\), \\(zx\\), \\(zy\\). See the [computepressure ](https://docs.lammps.org/compute_pressure.html) command if you want the stress tensor\n(pressure) of the entire system.\n\nThe stress tensor for atom \\(I\\) is given by the following\nformula, where \\(a\\) and \\(b\\) take on values \\(x\\),\n\\(y\\), \\(z\\) to generate the components of the tensor:\n\\[\n S_{ab} = - m v_a v_b - W_{ab}\\]\nThe first term is a kinetic energy contribution for atom \\(I\\).\nSee details below on how the specified *temp-ID* can affect the\nvelocities used in this calculation. The second term is the virial\ncontribution due to intra and intermolecular interactions, where the\nexact computation details are determined by the compute style.\n\nIn case of compute *stress/atom*, the virial contribution is:\n\\[\\begin{align*} \n W_{ab} & = \\frac{1}{2} \\sum_{n = 1}^{N_p} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) + \\frac{1}{2} \\sum_{n = 1}^{N_b} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b}) \\\\\n & + \\frac{1}{3} \\sum_{n = 1}^{N_a} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b}) + \\frac{1}{4} \\sum_{n = 1}^{N_d} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) \\\\\n & + \\frac{1}{4} \\sum_{n = 1}^{N_i} (r_{1_a} F_{1_b} + r_{2_a} F_{2_b} + r_{3_a} F_{3_b} + r_{4_a} F_{4_b}) + {\\rm Kspace}(r_{i_a},F_{i_b}) + \\sum_{n = 1}^{N_f} r_{i_a} F_{i_b} \\end{align*} \\]\nThe first term is a pairwise energy contribution where \\(n\\) loops\nover the \\(N_p\\) neighbors of atom \\(I\\), \\(\\mathbf{r}_1\\)\nand \\(\\mathbf{r}_2\\) are the positions of the 2 atoms in the\npairwise interaction, and \\(\\mathbf{F}_1\\) and\n\\(\\mathbf{F}_2\\) are the forces on the 2 atoms resulting from the\npairwise interaction. The second term is a bond contribution of\nsimilar form for the \\(N_b\\) bonds which atom \\(I\\) is part\nof. There are similar terms for the \\(N_a\\) angle, \\(N_d\\)\ndihedral, and \\(N_i\\) improper interactions atom \\(I\\) is part\nof. There is also a term for the KSpace contribution from long-range\nCoulombic interactions, if defined. Finally, there is a term for the\n\\(N_f\\) [fixes ](https://docs.lammps.org/fix.html) that apply internal constraint forces\nto atom \\(I\\). Currently, only the [fix shake ](https://docs.lammps.org/fix_shake.html)\nand [fix rigid ](https://docs.lammps.org/fix_rigid.html) commands contribute to this term. As\nthe coefficients in the formula imply, a virial contribution produced\nby a small set of atoms (e.g. 4 atoms in a dihedral or 3 atoms in a\nTersoff 3-body interaction) is assigned in equal portions to each atom\nin the set. E.g. 1/4 of the dihedral virial to each of the 4 atoms,\nor 1/3 of the fix virial due to SHAKE constraints applied to atoms in\na water molecule via the [fix shake ](https://docs.lammps.org/fix_shake.html) command.\nAs an exception, the virial contribution from\nconstraint forces in [fix rigid ](https://docs.lammps.org/fix_rigid.html) on each atom\nis computed from the constraint force acting on the corresponding atom\nand its position, i.e. the total virial is not equally distributed.\n\nIn case of compute *centroid/stress/atom*, the virial contribution is:\n\\[\\begin{align*} \n W_{ab} & = \\sum_{n = 1}^{N_p} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_b} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_a} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_d} r_{I0_a} F_{I_b} + \\sum_{n = 1}^{N_i} r_{I0_a} F_{I_b} \\\\\n & + {\\rm Kspace}(r_{i_a},F_{i_b}) + \\sum_{n = 1}^{N_f} r_{i_a} F_{i_b} \\end{align*} \\]\nAs with compute *stress/atom*, the first, second, third, fourth and\nfifth terms are pairwise, bond, angle, dihedral and improper\ncontributions, but instead of assigning the virial contribution\nequally to each atom, only the force \\(\\mathbf{F}_I\\) acting on\natom \\(I\\) due to the interaction and the relative position\n\\(\\mathbf{r}_{I0}\\) of the atom \\(I\\) to the geometric center\nof the interacting atoms, i.e. centroid, is used. As the geometric\ncenter is different for each interaction, the \\(\\mathbf{r}_{I0}\\)\nalso differs. The sixth term, Kspace contribution,\nis computed identically to compute *stress/atom*.\nThe seventh term is handed differently depending on\nif the constraint forces are due to [fix shake ](https://docs.lammps.org/fix_shake.html)\nor [fix rigid ](https://docs.lammps.org/fix_rigid.html).\nIn case of SHAKE constraints, each distance constraint is\nhanded as a pairwise interaction.\nE.g. in case of a water molecule, two OH and one HH distance\nconstraints are treated as three pairwise interactions.\nIn case of [fix rigid ](https://docs.lammps.org/fix_rigid.html),\nall constraint forces in the molecule are treated\nas a single many-body interaction with a single centroid position.\nIn case of water molecule, the formula expression would become\nidentical to that of the three-body angle interaction.\nAlthough the total system virial is the same as\ncompute *stress/atom*, compute *centroid/stress/atom* is know to\nresult in more consistent heat flux values for angle, dihedrals,\nimproper and constraint force contributions\nwhen computed via [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html).\n\nIf no extra keywords are listed, the kinetic contribution *and* all\nof the virial contribution terms are included in the per-atom stress\ntensor. If any extra keywords are listed, only those terms are\nsummed to compute the tensor. The *virial* keyword means include all\nterms except the kinetic energy *ke* .\n\nNote that the stress for each atom is due to its interaction with all\nother atoms in the simulation, not just with other atoms in the group.\n\nDetails of how compute *stress/atom* obtains the virial for individual\natoms for either pairwise or many-body potentials, and including the\neffects of periodic boundary conditions is discussed in\n**Thompson2**. The basic idea for many-body\npotentials is to treat each component of the force computation between\na small cluster of atoms in the same manner as in the formula above\nfor bond, angle, dihedral, etc interactions. Namely the quantity\n\\(\\mathbf{r} \\cdot \\mathbf{F}\\) is summed over the atoms in the\ninteraction, with the \\(r\\) vectors unwrapped by periodic\nboundaries so that the cluster of atoms is close together. The total\ncontribution for the cluster interaction is divided evenly among those\natoms.\n\nDetails of how compute *centroid/stress/atom* obtains the virial for\nindividual atoms are given in **Surblys1** and\n**Surblys2**, where the\nidea is that the virial of the atom \\(I\\) is the result of only\nthe force \\(\\mathbf{F}_I\\) on the atom due to the interaction and\nits positional vector \\(\\mathbf{r}_{I0}\\), relative to the\ngeometric center of the interacting atoms, regardless of the number of\nparticipating atoms. The periodic boundary treatment is identical to\nthat of compute *stress/atom*, and both of them reduce to identical\nexpressions for two-body interactions, i.e. computed values for\ncontributions from bonds and two-body pair styles, such as\n[Lennard-Jones ](https://docs.lammps.org/pair_lj.html), will be the same, while contributions\nfrom angles, dihedrals and impropers will be different.\n\nThe [dihedral_style charmm ](https://docs.lammps.org/dihedral_charmm.html) style calculates\npairwise interactions between 1-4 atoms. The virial contribution of\nthese terms is included in the pair virial, not the dihedral virial.\n\nThe KSpace contribution is calculated using the method in\n**Heyes2** for the Ewald method and by the methodology\ndescribed in **Sirk1** for PPPM. The choice of KSpace\nsolver is specified by the [kspace_style pppm ](https://docs.lammps.org/kspace_style.html)\ncommand. Note that for PPPM, the calculation requires 6 extra FFTs\neach timestep that per-atom stress is calculated. Thus it can\nsignificantly increase the cost of the PPPM calculation if it is\nneeded on a large fraction of the simulation timesteps.\n\nThe *temp-ID* argument can be used to affect the per-atom velocities\nused in the kinetic energy contribution to the total stress. If the\nkinetic energy is not included in the stress, than the temperature\ncompute is not used and can be specified as NULL. If the kinetic\nenergy is included and you wish to use atom velocities as-is, then\n*temp-ID* can also be specified as NULL. If desired, the specified\ntemperature compute can be one that subtracts off a bias to leave each\natom with only a thermal velocity to use in the formula above, e.g. by\nsubtracting a background streaming velocity. See the doc pages for\nindividual [compute commands ](https://docs.lammps.org/compute.html) to determine which ones\ninclude a bias.\n\n----------\n\nNote that as defined in the formula, per-atom stress is the negative\nof the per-atom pressure tensor. It is also really a stress\\*volume\nformulation, meaning the computed quantity is in units of\npressure\\*volume. It would need to be divided by a per-atom volume to\nhave units of stress (pressure), but an individual atom's volume is\nnot well defined or easy to compute in a deformed solid or a liquid.\nSee the [compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) command for\none possible way to estimate a per-atom volume.\n\nThus, if the diagonal components of the per-atom stress tensor are\nsummed for all atoms in the system and the sum is divided by\n\\(dV\\), where \\(d\\) = dimension and \\(V\\) is the volume of\nthe system, the result should be \\(-P\\), where \\(P\\) is the\ntotal pressure of the system.\n\nThese lines in an input script for a 3d system should yield that\nresult. I.e. the last 2 columns of thermo output will be the same:\n\n```lmps\ncompute peratom all stress/atom NULL\ncompute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]\nvariable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)\nthermo_style custom step temp etotal press v_press\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The per-atom stress does not include any Lennard-Jones tail\n > corrections to the pressure added by the [pair_modify tail yes > ](https://docs.lammps.org/pair_modify.html) command, since those are contributions to the global\n > system pressure. \n > \n\nThe compute stress/atom can be used in a number of ways. Here is an\nexample to compute a 1-d pressure profile in x-direction across the\ncomplete simulation box. You will need to adjust the number of bins and the\nselections for time averaging to your specific simulation. This assumes\nthat the dimensions of the simulation cell does not change.\n\n```lmps\n# set number of bins\nvariable nbins index 20\nvariable fraction equal 1.0/v_nbins\n# define bins as chunks\ncompute cchunk all chunk/atom bin/1d x lower ${fraction} units reduced\ncompute stress all stress/atom NULL\n# apply conversion to pressure early since we have no variable style for processing chunks\nvariable press atom -(c_stress[1]+c_stress[2]+c_stress[3])/(3.0*vol*${fraction})\ncompute binpress all reduce/chunk cchunk sum v_press\nfix avg all ave/time 10 40 400 c_binpress mode vector file ave_stress.txt\n```\n #### Output info\n\nCompute *stress/atom* calculates a per-atom array with 6 columns,\nwhich can be accessed by indices 1-6 by any command that uses per-atom\nvalues from a compute as input. Compute *centroid/stress/atom*\nproduces a per-atom array with 9 columns, but otherwise can be used in\nan identical manner to compute *stress/atom*. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe ordering of the 6 columns for *stress/atom* is as follows: xx, yy,\nzz, xy, xz, yz. The ordering of the 9 columns for\n*centroid/stress/atom* is as follows: xx, yy, zz, xy, xz, yz, yx, zx,\nzy.\n\nThe per-atom array values will be in pressure\\*volume [units](https://docs.lammps.org/units.html) as discussed above.\n\n**(Thompson2)** Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009). \n \n**(Surblys1)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019). \n \n**(Surblys2)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021). \n \n**(Heyes2)** Heyes, Phys Rev B, 49, 755 (1994). \n \n**(Sirk1)** Sirk, Moore, Brown, J Chem Phys, 138, 064505 (2013). \n ", + "restrictions": "Currently, compute *centroid/stress/atom* does not support pair styles\nwith many-body interactions ([EAM ](https://docs.lammps.org/pair_eam.html) is an exception,\nsince its computations are performed pairwise), nor granular pair\nstyles with pairwise forces which are not aligned with the vector\nbetween the pair of particles. All bond styles are supported. All\nangle, dihedral, improper styles are supported with the exception of\nINTEL and KOKKOS variants of specific styles. It also does not\nsupport models with long-range Coulombic or dispersion forces,\ni.e. the kspace_style command in LAMMPS. It also does not implement the\nfollowing fixes which add rigid-body constraints:\n[fix rigid/* ](https://docs.lammps.org/fix_rigid.html) and the OpenMP accelerated version of [fix rigid/small ](https://docs.lammps.org/fix_rigid.html),\nwhile all other [fix rigid/*/small ](https://docs.lammps.org/fix_rigid.html) are implemented.\n\nLAMMPS will generate an error if one of these options is included in\nyour model. Extension of centroid stress calculations to these force\nand fix styles is planned for the future.\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "bond_style nonlinear", - "bond_style nonlinear/omp" + "mass" ], "syntax": [ - "bond_style nonlinear" + "mass I value" ], "args": [ [ { - "arg": "bond_style", + "arg": "mass", "type": 1, "choices": [] }, { - "arg": "nonlinear", - "type": 3, - "choices": [ - "nonlinear", - "nonlinear/omp" - ] + "arg": "I", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style nonlinear\nbond_coeff 2 100.0 1.1 1.4\n```\n", - "html_filename": "bond_nonlinear.html", - "short_description": "The *nonlinear* bond style uses the potential\n\\[\n E = \\frac{\\epsilon (r - r_0)^2}{ [ \\lambda^2 - (r - r_0)^2 ]}\\]\nto define an anharmonic spring **Rector** of equilibrium\nlength \\(r_0\\) and maximum extension lamda", - "description": "The *nonlinear* bond style uses the potential\n\\[\n E = \\frac{\\epsilon (r - r_0)^2}{ [ \\lambda^2 - (r - r_0)^2 ]}\\]\nto define an anharmonic spring **Rector** of equilibrium\nlength \\(r_0\\) and maximum extension lamda.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(\\epsilon\\) (energy)\n* \\(r_0\\) (distance)\n* \\(\\lambda\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Rector)** Rector, Van Swol, Henderson, Molecular Physics, 82, 1009 (1994). \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the EXTRA-MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" + "parameters": "* I = atom type (see asterisk form below), or type label\n* value = mass \n", + "examples": "\n```lmps\nmass 1 1.0\nmass * 62.5\nmass 2* 62.5\n\nlabelmap atom 1 C\nmass C 12.01\n```\n", + "html_filename": "mass.html", + "short_description": "Set the mass for all atoms of one or more atom types", + "description": "Set the mass for all atoms of one or more atom types. Per-type mass\nvalues can also be set in the [read_data ](https://docs.lammps.org/read_data.html) data file\nusing the \"Masses\" keyword. See the [units ](https://docs.lammps.org/units.html) command for\nwhat mass units to use.\n\nThe I index can be specified in one of several ways. An explicit\nnumeric value can be used, as in the first example above. Or I can be\na type label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command, and which converts\ninternally to a numeric type. Or a wild-card asterisk can be used to\nset the mass for multiple atom types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\", where m and n are numbers. If N = the\nnumber of atom types, then an asterisk with no numeric values means\nall types from 1 to N. A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from n to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nA line in a [data file ](https://docs.lammps.org/read_data.html) that follows the \"Masses\"\nkeyword specifies mass using the same format as the arguments of the\nmass command in an input script, except that no wild-card asterisk can\nbe used. For example, under the \"Masses\" section of a data file, the\nline that corresponds to the first example above would be listed as\n\n```\n1 1.0\n```\nNote that the mass command can only be used if the [atom style ](https://docs.lammps.org/atom_style.html) requires per-type atom mass to be set.\nCurrently, all but the *sphere* and *ellipsoid* and *peri* styles do.\nThey require mass to be set for individual particles, not types.\nPer-atom masses are defined in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command, or set to default values by the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command. Per-atom masses can also be\nset to new values by the [set mass ](https://docs.lammps.org/set.html) or [set density ](https://docs.lammps.org/set.html)\ncommands.\n\nAlso note that [pair_style eam ](https://docs.lammps.org/pair_eam.html) and [pair_style bop ](https://docs.lammps.org/pair_bop.html) commands define the masses of atom types in their\nrespective potential files, in which case the mass command is normally\nnot used.\n\nIf you define a [hybrid atom style ](https://docs.lammps.org/atom_style.html) which includes one\n(or more) sub-styles which require per-type mass and one (or more)\nsub-styles which require per-atom mass, then you must define both.\nHowever, in this case the per-type mass will be ignored; only the\nper-atom mass will be used by LAMMPS.\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAll masses must be defined before a simulation is run. They must also\nall be defined before a [velocity ](https://docs.lammps.org/velocity.html) or [fix shake ](https://docs.lammps.org/fix_shake.html) command is used.\n\nThe mass assigned to any type or atom must be > 0.0.\n", + "related": "none\n" }, { "command": [ - "compute dilatation/atom" + "pair_style lj/smooth", + "pair_style lj/smooth/gpu", + "pair_style lj/smooth/omp" ], "syntax": [ - "compute ID group-ID dilatation/atom" + "pair_style lj/smooth Rin Rc" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "lj/smooth", + "type": 3, + "choices": [ + "lj/smooth", + "lj/smooth/gpu", + "lj/smooth/omp" + ] }, { - "arg": "group-ID", + "arg": "Rin", "type": 2, "choices": [] }, { - "arg": "dilatation/atom", - "type": 1, + "arg": "Rc", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in compute command\n* dilatation/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all dilatation/atom\n```\n", - "html_filename": "compute_dilatation_atom.html", - "short_description": "Define a computation that calculates the per-atom dilatation for each\natom in a group", - "description": "Define a computation that calculates the per-atom dilatation for each\natom in a group. This is a quantity relevant for [Peridynamicsmodels ](https://docs.lammps.org/pair_peri.html). See [this document ](https://docs.lammps.org/PDF/PDLammps_overview.pdf)\nfor an overview of LAMMPS commands for Peridynamics modeling.\n\nFor small deformation, dilatation of is the measure of the volumetric\nstrain.\n\nThe dilatation \\(\\theta\\) for each peridynamic particle \\(i\\) is\ncalculated as a sum over its neighbors with unbroken bonds, where the\ncontribution of the \\(ij\\) pair is a function of the change in bond\nlength (versus the initial length in the reference state), the volume\nfraction of the particles and an influence function. See the\n[Peridynamics Howto ](https://docs.lammps.org/Howto_peri.html) for a formal definition of\ndilatation.\n\nThis command can only be used with a subset of the Peridynamic\n[pair styles ](https://docs.lammps.org/pair_peri.html): *peri/lps*, *peri/ves*, and *peri/eps*.\n\nThe dilatation value will be 0.0 for atoms not in the specified\ncompute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values are unitless numbers \\((\\theta \\ge 0.0)\\).\n", - "restrictions": "This compute is part of the PERI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute damage/atom ](https://docs.lammps.org/compute_damage_atom.html),\n[compute plasticity/atom ](https://docs.lammps.org/compute_plasticity_atom.html)\n" + "parameters": "* Rin = inner cutoff beyond which force smoothing will be applied (distance units)\n* Rc = outer cutoff for lj/smooth interactions (distance units) \n", + "examples": "\n```lmps\npair_style lj/smooth 8.0 10.0\npair_coeff * * 10.0 1.5\npair_coeff 1 1 20.0 1.3 7.0 9.0\n```\n", + "html_filename": "pair_lj_smooth.html", + "short_description": "Style *lj/smooth* computes a LJ interaction with a force smoothing\napplied between the inner and outer cutoff", + "description": "Style *lj/smooth* computes a LJ interaction with a force smoothing\napplied between the inner and outer cutoff.\n\\[\\begin{align*} \n E & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_{in} \\\\\n F & = C_1 + C_2 (r - r_{in}) + C_3 (r - r_{in})^2 + C_4 (r - r_{in})^3\n \\qquad r_{in} < r < r_c \\end{align*} \\]\nThe polynomial coefficients C1, C2, C3, C4 are computed by LAMMPS to\ncause the force to vary smoothly from the inner cutoff \\(r_{in}\\) to the\nouter cutoff \\(r_c\\).\n\nAt the inner cutoff the force and its first derivative\nwill match the non-smoothed LJ formula. At the outer cutoff the force\nand its first derivative will be 0.0. The inner cutoff cannot be 0.0.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >this force smoothing causes the energy to be discontinuous both\n > in its values and first derivative. This can lead to poor energy\n > conservation and may require the use of a thermostat. Plot the energy\n > and force resulting from this formula via the\n > [pair_write ](https://docs.lammps.org/pair_write.html) command to see the effect. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* \\(r_{in}\\) (distance units)\n* \\(r_c\\) (distance units)\n\nThe last 2 coefficients are optional inner and outer cutoffs. If not\nspecified, the global values for \\(r_{in}\\) and \\(r_c\\) are used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon, sigma, Rin\ncoefficients and the cutoff distance for this pair style can be mixed.\nRin is a cutoff value and is mixed like the cutoff. The other\ncoefficients are mixed according to the pair_modify mix option. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure, since the energy of the pair interaction is smoothed to 0.0\nat the cutoff.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair lj/smooth/linear ](https://docs.lammps.org/pair_lj_smooth_linear.html)\n" +}, +{ + "command": [ + "angle_style amoeba" + ], + "syntax": [ + "angle_style amoeba" + ], + "args": [ + [ + { + "arg": "angle_style", + "type": 1, + "choices": [] + }, + { + "arg": "amoeba", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nangle_style amoeba\nangle_coeff * 75.0 -25.0 1.0 0.3 0.02 0.003\nangle_coeff * ba 3.6551 24.895 1.0119 1.5228\nangle_coeff * ub -7.6 1.5537\n```\n", + "html_filename": "angle_amoeba.html", + "short_description": "The *amoeba* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{ba} + E_{ub} \\\\\n E_a & = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6 \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\\\\n E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2 \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{ba}\\) is a bond-angle\nterm, \\(E_{UB}\\) is a Urey-Bradley bond term, \\(\\theta_0\\) is\nthe equilibrium angle, \\(r_1\\) and \\(r_2\\) are the equilibrium\nbond lengths, and \\(r_{ub}\\) is the equilibrium Urey-Bradley bond\nlength", + "description": "The *amoeba* angle style uses the potential\n\\[\\begin{align*} \n E & = E_a + E_{ba} + E_{ub} \\\\\n E_a & = K_2\\left(\\theta - \\theta_0\\right)^2 + K_3\\left(\\theta - \\theta_0\\right)^3 + K_4\\left(\\theta - \\theta_0\\right)^4 + K_5\\left(\\theta - \\theta_0\\right)^5 + K_6\\left(\\theta - \\theta_0\\right)^6 \\\\\n E_{ba} & = N_1 (r_{ij} - r_1) (\\theta - \\theta_0) + N_2(r_{jk} - r_2)(\\theta - \\theta_0) \\\\\n E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2 \\end{align*} \\]\nwhere \\(E_a\\) is the angle term, \\(E_{ba}\\) is a bond-angle\nterm, \\(E_{UB}\\) is a Urey-Bradley bond term, \\(\\theta_0\\) is\nthe equilibrium angle, \\(r_1\\) and \\(r_2\\) are the equilibrium\nbond lengths, and \\(r_{ub}\\) is the equilibrium Urey-Bradley bond\nlength.\n\nThese formulas match how the Tinker MD code performs its angle\ncalculations for the AMOEBA and HIPPO force fields. See the\n[Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) page for more information about\nthe implementation of AMOEBA and HIPPO in LAMMPS.\n\nNote that the \\(E_a\\) and \\(E_{ba}\\) formulas are identical to\nthose used for the [angle_style class2/p6 ](https://docs.lammps.org/angle_class2.html)\ncommand, however there is no bond-bond cross term formula for\n\\(E_{bb}\\). Additionally, there is a \\(E_{UB}\\) term for a\nUrey-Bradley bond. It is effectively a harmonic bond between the I\nand K atoms of angle IJK, even though that bond is not enumerated in\nthe \"Bonds\" section of the data file.\n\nThere are also two ways that Tinker computes the angle \\(\\theta\\)\nin the \\(E_a\\) formula. The first is the standard way of treating\nIJK as an \"in-plane\" angle. The second is an \"out-of-plane\" method\nwhich Tinker may use if the center atom J in the angle is bonded to\none additional atom in addition to I and K. In this case, all 4 atoms\nare used to compute the \\(E_a\\) formula, resulting in forces on\nall 4 atoms. In the Tinker PRM file, these 2 options are denoted by\n*angle* versus *anglep* entries in the \"Angle Bending Parameters\"\nsection of the PRM force field file. The *pflag* coefficient\ndescribed below selects between the 2 options.\n\n----------\n\n\nCoefficients for the \\(E_a\\), \\(E_{bb}\\), and \\(E_{ub}\\)\nformulas must be defined for each angle type via the [angle_coeff](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands.\n\nThese are the 8 coefficients for the \\(E_a\\) formula:\n\n* pflag = 0 or 1\n* ubflag = 0 or 1\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n* \\(K_5\\) (energy)\n* \\(K_6\\) (energy)\n\nA pflag value of 0 vs 1 selects between the \"in-plane\" and\n\"out-of-plane\" options described above. Ubflag is 1 if there is a\nUrey-Bradley term associated with this angle type, else it is 0.\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) values are effectively\nenergy per radian\\^2 or radian\\^3 or radian\\^4 or radian\\^5 or\nradian\\^6.\n\nFor the \\(E_{ba}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 5 coefficients, the\nfirst of which is \"ba\" to indicate they are BondAngle coefficients.\nIn a data file, these coefficients should be listed under a \"BondAngle\nCoeffs\" heading and you must leave out the \"ba\", i.e. only list 4\ncoefficients after the angle type.\n\n* ba\n* \\(N_1\\) (energy/distance\\^2)\n* \\(N_2\\) (energy/distance\\^2)\n* \\(r_1\\) (distance)\n* \\(r_2\\) (distance)\n\nThe \\(\\theta_0\\) value in the \\(E_{ba}\\) formula is not specified,\nsince it is the same value from the \\(E_a\\) formula.\n\nFor the \\(E_{ub}\\) formula, each line in a [angle_coeff](https://docs.lammps.org/angle_coeff.html) command in the input script lists 3 coefficients, the\nfirst of which is \"ub\" to indicate they are UreyBradley coefficients.\nIn a data file, these coefficients should be listed under a\n\"UreyBradley Coeffs\" heading and you must leave out the \"ub\",\ni.e. only list 2 coefficients after the angle type.\n\n* ub\n* \\(K_{ub}\\) (energy/distance\\^2)\n* \\(r_{ub}\\) (distance)\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the AMOEBA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page for\nmore info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "fix wall/flow", - "fix wall/flow/kk" + "fix_modify AtC mesh create_elementset" ], "syntax": [ - "fix ID group-ID wall/flow axis vflow T seed N coords ... keyword value" + "fix_modify mesh create_elementset " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "wall/flow", - "type": 3, - "choices": [ - "wall/flow", - "wall/flow/kk" - ] - }, - { - "arg": "axis", - "type": 2, + "arg": "create_elementset", + "type": 1, "choices": [] }, { - "arg": "vflow", + "arg": "", "type": 2, "choices": [] }, { - "arg": "T", + "arg": "", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "", "type": 2, "choices": [] }, { - "arg": "coords", + "arg": "", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/flow = style name of this fix command\n* axis = flow axis (*x*, *y*, or *z*)\n* vflow = generated flow velocity in axis direction (velocity units)\n* T = flow temperature (temperature units)\n* seed = random seed for stochasticity (positive integer)\n* N = number of walls\n* coords = list of N wall positions along the axis direction in ascending order (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = wall positions are defined in lattice units \n         box = the wall positions are defined in simulation box units \n", - "examples": "\n```lmps\nfix 1 all wall/flow x 0.4 1.5 593894 4 2.0 4.0 6.0 8.0\n```\n", - "html_filename": "fix_wall_flow.html", - "short_description": "\nThis fix implements flow boundary conditions (FBC) introduced in\n**fbc-Pavlov1** and **fbc-Pavlov2**", - "description": "\nThis fix implements flow boundary conditions (FBC) introduced in\n**fbc-Pavlov1** and **fbc-Pavlov2**.\nThe goal is to generate a stationary flow with a shifted Maxwell\nvelocity distribution:\n\\[\n f_a(v_a) \\propto \\exp{\\left(-\\frac{m (v_a-v_{\\text{flow}})^2}{2 kB T}\\right)}\\]\nwhere \\(v_a\\) is the component of velocity along the specified\n*axis* argument (a = x,y,z), \\(v_{\\text{flow}}\\) is the flow\nvelocity specified as the *vflow* argument, *T* is the specified flow\ntemperature, *m* is the particle mass, and *kB* is the Boltzmann\nconstant.\n\nThis is achieved by defining a series of *N* transparent walls along\nthe flow *axis* direction. Each wall is at the specified position\nlisted in the *coords* argument. Note that an additional transparent\nwall is defined by the code at the boundary of the (periodic)\nsimulation domain in the *axis* direction. So there are effectively\nN+1 walls.\n\nEach time a particle in the specified group passes through one of the\ntransparent walls, its velocity is re-assigned. Particles not in the\ngroup do not interact with the wall. This can be used, for example, to\nadd obstacles composed of atoms, or to simulate a solution of complex\nmolecules in a one-atom liquid (note that the fix has been tested for\none-atom systems only).\n\nConceptually, the velocity re-assignment represents creation of a new\nparticle within the system with simultaneous removal of the particle\nwhich passed through the wall. The velocity components in directions\nparallel to the wall are re-assigned according to the standard Maxwell\nvelocity distribution for the specified temperature *T*. The velocity\ncomponent perpendicular to the wall is re-assigned according to the\nshifted Maxwell distribution defined above:\n\\[\n f_{\\text{a generated}}(v_a) \\propto v_a f_a(v_a)\\]\nIt can be shown that for an ideal-gas scenario this procedure makes\nthe velocity distribution of particles between walls exactly as\ndesired.\n\nSince in most cases simulated systems are not an ideal gas, multiple\nwalls can be defined, since a single wall may not be sufficient for\nmaintaining a stationary flow without \"congestion\" which can manifest\nitself as regions in the flow with increased particle density located\nupstream from static obstacles.\n\nFor the same reason, the actual temperature and velocity of the\ngenerated flow may differ from what is requested. The degree of\ndiscrepancy is determined by how different from an ideal gas the\nsimulated system is. Therefore, a calibration procedure may be\nrequired for such a system as described in **fbc-Pavlov2**.\n\nNote that the interactions between particles on different sides of a\ntransparent wall are not disabled or neglected. Likewise particle\npositions are not altered by the velocity reassignment. This removes\nthe need to modify the force field to work correctly in cases when a\nparticle is close to a wall.\n\nFor example, if particle positions were uniformly redistributed across\nthe surface of a wall, two particles could end up too close to each\nother, potentially causing the simulation to explode. However due to\nthis compromise, some collective phenomena such as regions with\nincreased/decreased density or collective movements are not fully\nremoved when particles cross a wall. This unwanted consequence can\nalso be potentially mitigated by using more multiple walls.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the specified flow has a high velocity, a lost atoms error can\n > occur (see [error messages ](https://docs.lammps.org/Errors_messages.html)). If this\n > happens, you should ensure the checks for neighbor list rebuilds,\n > set via the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command, are as\n > conservative as possible (every timestep if needed). Those are the\n > default settings. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(fbc-Pavlov1)** Pavlov, Kolotinskii, Stegailov, \"GPU-Based Molecular Dynamics of Turbulent Liquid Flows with OpenMM\", Proceedings of PPAM-2022, LNCS (Springer), vol. 13826, pp. 346-358 (2023) \n \n**(fbc-Pavlov2)** Pavlov, Galigerov, Kolotinskii, Nikolskiy, Stegailov, \"GPU-based Molecular Dynamics of Fluid Flows: Reaching for Turbulence\", Int. J. High Perf. Comp. Appl., (2024) \n \n**(fbc-Pavlov2)** Pavlov, Galigerov, Kolotinskii, Nikolskiy, Stegailov, \"GPU-based Molecular Dynamics of Fluid Flows: Reaching for Turbulence\", Int. J. High Perf. Comp. Appl., (2024) \n ", - "restrictions": "Fix *wall_flow* is part of the EXTRA-FIX package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFlow boundary conditions should not be used with rigid bodies such as\nthose defined by a \"fix rigid\" command.\n\nThis fix can only be used with periodic boundary conditions along the\nflow axis. The size of the box in this direction must not change. Also,\nthe fix is designed to work only in an orthogonal simulation box.\n", - "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall.html) command\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_elementset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains only the desired elements \n", + "examples": "\n```lmps\nfix_modify AtC mesh create_elementset middle -4.1 4.1 -100 100 -100 1100\n```\n", + "html_filename": "atc_mesh_create_elementset.html", + "short_description": "Command to assign an id to a set of FE elements to be used subsequently\nin defining material and mesh-based operations", + "description": "Command to assign an id to a set of FE elements to be used subsequently\nin defining material and mesh-based operations.\n", + "restrictions": "Only viable for rectangular grids.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n- [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n" }, { "command": [ - "fix qmmm" + "pair_style granular" ], "syntax": [ - "fix ID group-ID qmmm" + "pair_style granular cutoff" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "granular", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] - }, - { - "arg": "qmmm", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qmmm = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 qmol qmmm\n```\n", - "html_filename": "fix_qmmm.html", - "short_description": "This fix provides functionality to enable a quantum\nmechanics/molecular mechanics (QM/MM) coupling of LAMMPS to a quantum\nmechanical code", - "description": "This fix provides functionality to enable a quantum\nmechanics/molecular mechanics (QM/MM) coupling of LAMMPS to a quantum\nmechanical code. The current implementation only supports an ONIOM\nstyle mechanical coupling to the [Quantum ESPRESSO ](https://www.quantum-espresso.org) plane\nwave DFT package. Electrostatic coupling is in preparation and the\ninterface has been written in a manner that coupling to other QM codes\nshould be possible without changes to LAMMPS itself.\n\nThe interface code for this is in the lib/qmmm directory of the LAMMPS\ndistribution and is being made available at this early stage of\ndevelopment in order to encourage contributions for interfaces to\nother QM codes. This will allow the LAMMPS side of the implementation\nto be adapted if necessary before being finalized.\n\nDetails about how to use this fix are currently documented in the\ndescription of the QM/MM interface code itself in lib/qmmm/README.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global scalar or vector or per-atom\nquantities are stored by this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html). No parameter of this fix can be used\nwith the *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command. This\nfix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the QMMM package. It is only enabled if\nLAMMPS was built with that package. It also requires building a\nlibrary provided with LAMMPS. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe fix is only functional when LAMMPS is built as a library and\nlinked with a compatible QM program and a QM/MM front end into a QM/MM\nexecutable. See the lib/qmmm/README file for details.\n", - "related": "none\n" + "parameters": "* cutoff = global cutoff (optional). See discussion below. \n", + "examples": "\n```lmps\npair_style granular\npair_coeff * * hooke 1000.0 50.0 tangential linear_nohistory 1.0 0.4 damping mass_velocity\n\npair_style granular\npair_coeff * * hooke 1000.0 50.0 tangential linear_history 500.0 1.0 0.4 damping mass_velocity\n\npair_style granular\npair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 limit_damping\n\npair_style granular\npair_coeff * * hertz/material 1e8 0.3 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji\n\npair_style granular\npair_coeff 1 * jkr 1000.0 500.0 0.3 10 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall\npair_coeff 2 2 hertz 200.0 100.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall\n\npair_style granular\npair_coeff 1 1 dmt 1000.0 50.0 0.3 0.0 tangential mindlin NULL 0.5 0.5 rolling sds 500.0 200.0 0.5 twisting marshall\npair_coeff 2 2 dmt 1000.0 50.0 0.3 10.0 tangential mindlin NULL 0.5 0.1 rolling sds 500.0 200.0 0.1 twisting marshall\n\npair_style granular\npair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 heat area 0.1\n```\n", + "html_filename": "pair_granular.html", + "short_description": "The *granular* styles support a variety of options for the normal,\ntangential, rolling and twisting forces resulting from contact between\ntwo granular particles", + "description": "The *granular* styles support a variety of options for the normal,\ntangential, rolling and twisting forces resulting from contact between\ntwo granular particles. This expands on the options offered by the\n[pair gran/\\* ](https://docs.lammps.org/pair_gran.html) pair styles. The total computed forces\nand torques are the sum of various models selected for the normal,\ntangential, rolling and twisting modes of motion.\n\nAll model choices and parameters are entered in the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, as described below. Unlike\ne.g. [pair gran/hooke ](https://docs.lammps.org/pair_gran.html), coefficient values are not\nglobal, but can be set to different values for different combinations\nof particle types, as determined by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand. If the contact model choice is the same for two particle\ntypes, the mixing for the cross-coefficients can be carried out\nautomatically. This is shown in the last example, where model\nchoices are the same for type 1 - type 1 as for type 2 - type2\ninteractions, but coefficients are different. In this case, the\nmixed coefficients for type 1 - type 2 interactions can be determined from\nmixing rules discussed below. For additional flexibility,\ncoefficients as well as model forms can vary between particle types,\nas shown in the fourth example: type 1 - type 1 interactions are based\non a Johnson-Kendall-Roberts normal contact model and 2-2 interactions\nare based on a DMT cohesive model (see below). In that example, 1-1\nand 2-2 interactions have different model forms, in which case mixing of\ncoefficients cannot be determined, so 1-2 interactions must be\nexplicitly defined via the *pair_coeff 1 \\** command, otherwise an\nerror would result.\n\n----------\n\nThe first required keyword for the *pair_coeff* command is the normal\ncontact model. Currently supported options for normal contact models\nand their required arguments are:\n\n1. *hooke* : \\(k_n\\), \\(\\eta_{n0}\\) (or \\(e\\))\n2. *hertz* : \\(k_n\\), \\(\\eta_{n0}\\) (or \\(e\\))\n3. *hertz/material* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\)\n4. *dmt* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\), \\(\\gamma\\)\n5. *jkr* : E, \\(\\eta_{n0}\\) (or \\(e\\)), \\(\\nu\\), \\(\\gamma\\)\n\nHere, \\(k_n\\) is spring stiffness (with units that depend on model\nchoice, see below); \\(\\eta_{n0}\\) is a damping prefactor (or, in its\nplace a coefficient of restitution \\(e\\), depending on the choice of\ndamping mode, see below); E is Young's modulus in units of\n*force* /\\ *length* \\^2, i.e. *pressure* ; \\(\\nu\\) is Poisson's ratio and\n\\(\\gamma\\) is a surface energy density, in units of\n*energy* /\\ *length* \\^2.\n\nFor the *hooke* model, the normal, elastic component of force acting\non particle *i* due to contact with particle *j* is given by:\n\\[\n \\mathbf{F}_{ne, Hooke} = k_n \\delta_{ij} \\mathbf{n}\\]\nWhere \\(\\delta_{ij} = R_i + R_j - \\|\\mathbf{r}_{ij}\\|\\) is the particle\noverlap, \\(R_i, R_j\\) are the particle radii, \\(\\mathbf{r}_{ij} = \\mathbf{r}_i - \\mathbf{r}_j\\) is the vector separating the two\nparticle centers (note the i-j ordering so that \\(\\mathbf{F}_{ne}\\) is\npositive for repulsion), and \\(\\mathbf{n} = \\frac{\\mathbf{r}_{ij}}{\\|\\mathbf{r}_{ij}\\|}\\). Therefore,\nfor *hooke*, the units of the spring constant \\(k_n\\) are\n*force* /\\ *distance*, or equivalently *mass* /*time\\^2*.\n\nFor the *hertz* model, the normal component of force is given by:\n\\[\n \\mathbf{F}_{ne, Hertz} = k_n R_{eff}^{1/2}\\delta_{ij}^{3/2} \\mathbf{n}\\]\nHere, \\(R_{eff} = R = \\frac{R_i R_j}{R_i + R_j}\\) is the effective\nradius, denoted for simplicity as *R* from here on. For *hertz*, the\nunits of the spring constant \\(k_n\\) are *force* /\\ *length* \\^2, or\nequivalently *pressure* .\n\nFor the *hertz/material* model, the force is given by:\n\\[\n \\mathbf{F}_{ne, Hertz/material} = \\frac{4}{3} E_{eff} R^{1/2}\\delta_{ij}^{3/2} \\mathbf{n}\\]\nHere, \\(E_{eff} = E = \\left(\\frac{1-\\nu_i^2}{E_i} + \\frac{1-\\nu_j^2}{E_j}\\right)^{-1}\\)\nis the effective Young's modulus, with \\(\\nu_i, \\nu_j\\) the Poisson ratios\nof the particles of types *i* and *j*. \\(E_{eff}\\) is denoted as *E* from here on.\nNote that if the elastic modulus and the shear modulus of the two particles are the\nsame, the *hertz/material* model is equivalent to the *hertz* model with\n\\(k_n = 4/3 E\\)\n\nThe *dmt* model corresponds to the\n**DMT1975** cohesive model, where the force\nis simply Hertz with an additional attractive cohesion term:\n\\[\n \\mathbf{F}_{ne, dmt} = \\left(\\frac{4}{3} E R^{1/2}\\delta_{ij}^{3/2} - 4\\pi\\gamma R\\right)\\mathbf{n}\\]\nThe *jkr* model is the **JKR1971** model,\nwhere the force is computed as:\n\\[\n \\mathbf{F}_{ne, jkr} = \\left(\\frac{4Ea^3}{3R} - 2\\pi a^2\\sqrt{\\frac{4\\gamma E}{\\pi a}}\\right)\\mathbf{n}\\]\nHere, \\(a\\) is the radius of the contact zone, related to the overlap\n\\(\\delta\\) according to:\n\\[\n \\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\]\nLAMMPS internally inverts the equation above to solve for *a* in terms\nof \\(\\delta\\), then solves for the force in the previous\nequation. Additionally, note that the JKR model allows for a tensile\nforce beyond contact (i.e. for \\(\\delta < 0\\)), up to a maximum of\n\\(3\\pi\\gamma R\\) (also known as the 'pull-off' force). Note that this\nis a hysteretic effect, where particles that are not contacting\ninitially will not experience force until they come into contact\n\\(\\delta \\geq 0\\); as they move apart and (\\(\\delta < 0\\)), they\nexperience a tensile force up to \\(3\\pi\\gamma R\\), at which point they\nlose contact.\n\n----------\n\nIn addition, the normal force is augmented by a damping term of the\nfollowing general form:\n\\[\n \\mathbf{F}_{n,damp} = -\\eta_n \\mathbf{v}_{n,rel}\\]\nHere, \\(\\mathbf{v}_{n,rel} = (\\mathbf{v}_j - \\mathbf{v}_i) \\cdot \\mathbf{n}\\ \\mathbf{n}\\) is the component of relative velocity along\n\\(\\mathbf{n}\\).\n\nThe optional *damping* keyword to the *pair_coeff* command followed by\na keyword determines the model form of the damping factor \\(\\eta_n\\),\nand the interpretation of the \\(\\eta_{n0}\\) or \\(e\\) coefficients\nspecified as part of the normal contact model settings. The *damping*\nkeyword and corresponding model form selection may be appended\nanywhere in the *pair coeff* command. Note that the choice of damping\nmodel affects both the normal and tangential damping (and depending on\nother settings, potentially also the twisting damping). The options\nfor the damping model currently supported are:\n\n1. *velocity*\n2. *mass_velocity*\n3. *viscoelastic*\n4. *tsuji*\n5. *coeff_restitution*\n\nIf the *damping* keyword is not specified, the *viscoelastic* model is\nused by default.\n\nFor *damping velocity*, the normal damping is simply equal to the\nuser-specified damping coefficient in the *normal* model:\n\\[\n \\eta_n = \\eta_{n0}\\]\nHere, \\(\\eta_{n0}\\) is the damping coefficient specified for the normal\ncontact model, in units of *mass* /\\ *time* .\n\nFor *damping mass_velocity*, the normal damping is given by:\n\\[\n \\eta_n = \\eta_{n0} m_{eff}\\]\nHere, \\(\\eta_{n0}\\) is the damping coefficient specified for the normal\ncontact model, in units of 1/\\ *time* and\n\\(m_{eff} = m_i m_j/(m_i + m_j)\\) is the effective mass.\nUse *damping mass_velocity* to reproduce the damping behavior of\n*pair gran/hooke/\\**.\n\nThe *damping viscoelastic* model is based on the viscoelastic\ntreatment of **Brill1996**, where the normal\ndamping is given by:\n\\[\n \\eta_n = \\eta_{n0}\\ a m_{eff}\\]\nHere, *a* is the contact radius, given by \\(a =\\sqrt{R\\delta}\\)\nfor all models except *jkr*, for which it is given implicitly according\nto \\(\\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\). For *damping viscoelastic*,\n\\(\\eta_{n0}\\) is in units of 1/(\\ *time* \\*\\ *distance* ).\n\nThe *tsuji* model is based on the work of **Tsuji1992**.\nHere, the damping coefficient specified as part of the normal model is interpreted\nas a restitution coefficient \\(e\\). The damping constant \\(\\eta_n\\) is\ngiven by:\n\\[\n \\eta_n = \\alpha (m_{eff}k_n)^{1/2}\\]\nFor normal contact models based on material parameters, \\(k_n = 4/3Ea\\). This\ndamping model is not compatible with cohesive normal models such as *JKR* or *DMT*.\nThe parameter \\(\\alpha\\) is related to the restitution coefficient *e*\naccording to:\n\\[\n \\alpha = 1.2728-4.2783e+11.087e^2-22.348e^3+27.467e^4-18.022e^5+4.8218e^6\\]\nThe dimensionless coefficient of restitution \\(e\\) specified as part\nof the normal contact model parameters should be between 0 and 1, but\nno error check is performed on this.\n\nThe *coeff_restitution* model is useful when a specific normal coefficient of\nrestitution \\(e\\) is required. In these models, the normal coefficient of\nrestitution \\(e\\) is specified as an input. Following the approach of\n**Brill1996**, when using the *hooke* normal model,\n*coeff_restitution* calculates the damping coefficient as:\n\\[\n \\eta_n = \\sqrt{\\frac{4m_{eff}k_n}{1+\\left( \\frac{\\pi}{\\log(e)}\\right)^2}} ,\\]\nFor any other normal model, e.g. the *hertz* and *hertz/material* models, the damping\ncoefficient is:\n\\[\n \\eta_n = -2\\sqrt{\\frac{5}{6}}\\frac{\\log(e)}{\\sqrt{\\pi^2+(\\log(e))^2}}(R_{eff} \\delta_{ij})^{\\frac{1}{4}}\\sqrt{\\frac{3}{2}k_n m_{eff}} ,\\]\nwhere \\(k_n = \\frac{4}{3} E_{eff}\\) for the *hertz/material* model. Since\n*coeff_restitution* accounts for the effective mass, effective radius, and\npairwise overlaps (except when used with the *hooke* normal model) when calculating\nthe damping coefficient, it accurately reproduces the specified coefficient of\nrestitution for both monodisperse and polydisperse particle pairs. This damping\nmodel is not compatible with cohesive normal models such as *JKR* or *DMT*.\n\nThe total normal force is computed as the sum of the elastic and\ndamping components:\n\\[\n \\mathbf{F}_n = \\mathbf{F}_{ne} + \\mathbf{F}_{n,damp}\\]\n----------\n\nThe *pair_coeff* command also requires specification of the tangential\ncontact model. The required keyword *tangential* is expected, followed\nby the model choice and associated parameters. Currently supported\ntangential model choices and their expected parameters are as follows:\n\n1. *linear_nohistory* : \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n2. *linear_history* : \\(k_t\\), \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n3. *mindlin* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n4. *mindlin/force* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n5. *mindlin_rescale* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n6. *mindlin_rescale/force* : \\(k_t\\) or NULL, \\(x_{\\gamma,t}\\), \\(\\mu_s\\)\n\nHere, \\(x_{\\gamma,t}\\) is a dimensionless multiplier for the normal\ndamping \\(\\eta_n\\) that determines the magnitude of the tangential\ndamping, \\(\\mu_t\\) is the tangential (or sliding) friction\ncoefficient, and \\(k_t\\) is the tangential stiffness coefficient.\n\nFor *tangential linear_nohistory*, a simple velocity-dependent Coulomb\nfriction criterion is used, which mimics the behavior of the *pair\ngran/hooke* style. The tangential force \\(\\mathbf{F}_t\\) is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|\\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nThe tangential damping force \\(\\mathbf{F}_\\mathrm{t,damp}\\) is given by:\n\\[\n \\mathbf{F}_\\mathrm{t,damp} = -\\eta_t \\mathbf{v}_{t,rel}\\]\nThe tangential damping prefactor \\(\\eta_t\\) is calculated by scaling\nthe normal damping \\(\\eta_n\\) (see above):\n\\[\n \\eta_t = -x_{\\gamma,t} \\eta_n\\]\nThe normal damping prefactor \\(\\eta_n\\) is determined by the choice\nof the *damping* keyword, as discussed above. Thus, the *damping*\nkeyword also affects the tangential damping. The parameter\n\\(x_{\\gamma,t}\\) is a scaling coefficient. Several works in the\nliterature use \\(x_{\\gamma,t} = 1\\) (**Marshall2009**,\n**Tsuji1992**, **Silbert2001**). The relative\ntangential velocity at the point of contact is given by\n\\(\\mathbf{v}_{t, rel} = \\mathbf{v}_{t} - (R_i\\mathbf{\\Omega}_i + R_j\\mathbf{\\Omega}_j) \\times \\mathbf{n}\\), where \\(\\mathbf{v}_{t} = \\mathbf{v}_r - \\mathbf{v}_r\\cdot\\mathbf{n}\\ \\mathbf{n}\\),\n\\(\\mathbf{v}_r = \\mathbf{v}_j - \\mathbf{v}_i\\) .\nThe direction of the applied force is \\(\\mathbf{t} = \\mathbf{v_{t,rel}}/\\|\\mathbf{v_{t,rel}}\\|\\) .\n\nThe normal force value \\(F_{n0}\\) used to compute the critical force\ndepends on the form of the contact model. For non-cohesive models\n(\\ *hertz*, *hertz/material*, *hooke* ), it is given by the magnitude of\nthe normal force:\n\\[\n F_{n0} = \\|\\mathbf{F}_n\\|\\]\nFor cohesive models such as *jkr* and *dmt*, the critical force is\nadjusted so that the critical tangential force approaches \\(\\mu_t F_{pulloff}\\), see **Marshall2009**, equation 43, and\n**Thornton1991**. For both models, \\(F_{n0}\\) takes the\nform:\n\\[\n F_{n0} = \\|\\mathbf{F}_{ne} + 2 F_{pulloff}\\|\\]\nWhere \\(F_{pulloff} = 3\\pi \\gamma R\\) for *jkr*, and\n\\(F_{pulloff} = 4\\pi \\gamma R\\) for *dmt* .\n\nThe remaining tangential options all use accumulated tangential\ndisplacement (i.e. contact history), except for the options\n*mindlin/force* and *mindlin_rescale/force*, that use accumulated\ntangential force instead, and are discussed further below.\nThe accumulated tangential displacement is discussed in details below\nin the context of the *linear_history* option. The same treatment of\nthe accumulated displacement applies to the other options as well.\n\nFor *tangential linear_history*, the tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|-k_t\\mathbf{\\xi} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nHere, \\(\\mathbf{\\xi}\\) is the tangential displacement accumulated\nduring the entire duration of the contact:\n\\[\n \\mathbf{\\xi} = \\int_{t0}^t \\mathbf{v}_{t,rel}(\\tau) \\mathrm{d}\\tau\\]\nThis accumulated tangential displacement must be adjusted to account\nfor changes in the frame of reference of the contacting pair of\nparticles during contact. This occurs due to the overall motion of the\ncontacting particles in a rigid-body-like fashion during the duration\nof the contact. There are two modes of motion that are relevant: the\n'tumbling' rotation of the contacting pair, which changes the\norientation of the plane in which tangential displacement occurs; and\n'spinning' rotation of the contacting pair about the vector connecting\ntheir centers of mass (\\(\\mathbf{n}\\)). Corrections due to the\nformer mode of motion are made by rotating the accumulated\ndisplacement into the plane that is tangential to the contact vector\nat each step, or equivalently removing any component of the tangential\ndisplacement that lies along \\(\\mathbf{n}\\), and rescaling to\npreserve the magnitude. This follows the discussion in\n**Luding2008**, see equation 17 and relevant discussion in that\nwork:\n\\[\n \\mathbf{\\xi} = \\left(\\mathbf{\\xi'} - (\\mathbf{n} \\cdot \\mathbf{\\xi'})\\mathbf{n}\\right) \\frac{\\|\\mathbf{\\xi'}\\|}{\\|\\mathbf{\\xi'} - (\\mathbf{n}\\cdot\\mathbf{\\xi'})\\mathbf{n}\\|}\\]\nHere, \\(\\mathbf{\\xi'}\\) is the accumulated displacement prior to the\ncurrent time step and \\(\\mathbf{\\xi}\\) is the corrected\ndisplacement. Corrections to the displacement due to the second mode\nof motion described above (rotations about \\(\\mathbf{n}\\)) are not\ncurrently implemented, but are expected to be minor for most\nsimulations.\n\nFurthermore, when the tangential force exceeds the critical force, the\ntangential displacement is re-scaled to match the value for the\ncritical force (see **Luding2008**, equation 20 and related\ndiscussion):\n\\[\n \\mathbf{\\xi} = -\\frac{1}{k_t}\\left(\\mu_t F_{n0}\\mathbf{t} - \\mathbf{F}_{t,damp}\\right)\\]\nThe tangential force is added to the total normal force (elastic plus\ndamping) to produce the total force on the particle. The tangential\nforce also acts at the contact point (defined as the center of the\noverlap region) to induce a torque on each particle according to:\n\\[\n \\mathbf{\\tau}_i = -(R_i - 0.5 \\delta) \\mathbf{n} \\times \\mathbf{F}_t\\]\n\\[\n \\mathbf{\\tau}_j = -(R_j - 0.5 \\delta) \\mathbf{n} \\times \\mathbf{F}_t\\]\nFor *tangential mindlin*, the **Mindlin1949** no-slip solution\nis used which differs from the *linear_history* option by an additional factor\nof \\(a\\), the radius of the contact region. The tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|-k_t a \\mathbf{\\xi} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nHere, \\(a\\) is the radius of the contact region, given by \\(a =\\sqrt{R\\delta}\\)\nfor all normal contact models, except for *jkr*, where it is given\nimplicitly by \\(\\delta = a^2/R - 2\\sqrt{\\pi \\gamma a/E}\\), see\ndiscussion above. To match the Mindlin solution, one should set\n\\(k_t = 8G_{eff}\\), where \\(G_{eff}\\) is the effective shear modulus given by:\n\\[\n G_{eff} = \\left(\\frac{2-\\nu_i}{G_i} + \\frac{2-\\nu_j}{G_j}\\right)^{-1}\\]\nwhere \\(G_i\\) is the shear modulus of a particle of type \\(i\\), related to Young's\nmodulus \\(E_i\\) and Poisson's ratio \\(\\nu_i\\) by \\(G_i = E_i/(2(1+\\nu_i))\\).\nThis can also be achieved by specifying *NULL* for \\(k_t\\), in which case a\nnormal contact model that specifies material parameters \\(E_i\\) and\n\\(\\nu_i\\) is required (e.g. *hertz/material*, *dmt* or *jkr* ). In this\ncase, mixing of the shear modulus for different particle types *i* and\n*j* is done according to the formula above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The radius of the contact region \\(a\\) depends on the normal overlap.\n > As a result, the tangential force for *mindlin* can change due to\n > a variation in normal overlap, even with no change in tangential displacement. \n > \n\nFor *tangential mindlin/force*, the accumulated elastic tangential force\ncharacterizes the contact history, instead of the accumulated tangential\ndisplacement. This prevents the dependence of the tangential force on the\nnormal overlap as noted above. The tangential force is given by:\n\\[\n \\mathbf{F}_t = -\\min(\\mu_t F_{n0}, \\|\\mathbf{F}_{te} + \\mathbf{F}_\\mathrm{t,damp}\\|) \\mathbf{t}\\]\nThe increment of the elastic component of the tangential force\n\\(\\mathbf{F}_{te}\\) is given by:\n\\[\n \\mathrm{d}\\mathbf{F}_{te} = -k_t a \\mathbf{v}_{t,rel} \\mathrm{d}\\tau\\]\nThe changes in frame of reference of the contacting pair of particles during\ncontact are accounted for by the same formula as above, replacing the\naccumulated tangential displacement \\(\\xi\\), by the accumulated tangential\nelastic force \\(F_{te}\\). When the tangential force exceeds the critical\nforce, the tangential force is directly re-scaled to match the value for\nthe critical force:\n\\[\n \\mathbf{F}_{te} = - \\mu_t F_{n0}\\mathbf{t} + \\mathbf{F}_{t,damp}\\]\nThe same rules as those described for *mindlin* apply regarding the tangential\nstiffness and mixing of the shear modulus for different particle types.\n\nThe *mindlin_rescale* option uses the same form as *mindlin*, but the\nmagnitude of the tangential displacement is re-scaled as the contact\nunloads, i.e. if \\(a < a_{t_{n-1}}\\):\n\\[\n \\mathbf{\\xi} = \\mathbf{\\xi_{t_{n-1}}} \\frac{a}{a_{t_{n-1}}}\\]\nHere, \\(t_{n-1}\\) indicates the value at the previous time\nstep. This rescaling accounts for the fact that a decrease in the\ncontact area upon unloading leads to the contact being unable to\nsupport the previous tangential loading, and spurious energy is\ncreated without the rescaling above (**WaltonPC** ).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For *mindlin*, a decrease in the tangential force already occurs as the\n > contact unloads, due to the dependence of the tangential force on the normal\n > force described above. By re-scaling \\(\\xi\\), *mindlin_rescale*\n > effectively re-scales the tangential force twice, i.e., proportionally to\n > \\(a^2\\). This peculiar behavior results from use of the accumulated\n > tangential displacement to characterize the contact history. Although\n > *mindlin_rescale* remains available for historic reasons and backward\n > compatibility purposes, it should be avoided in favor of *mindlin_rescale/force*. \n > \n\nThe *mindlin_rescale/force* option uses the same form as *mindlin/force*,\nbut the magnitude of the tangential elastic force is re-scaled as the contact\nunloads, i.e. if \\(a < a_{t_{n-1}}\\):\n\\[\n \\mathbf{F}_{te} = \\mathbf{F}_{te, t_{n-1}} \\frac{a}{a_{t_{n-1}}}\\]\nThis approach provides a better approximation of the **Mindlin1953**\nlaws and is more consistent than *mindlin_rescale*. See discussions in\n**Thornton2013**, particularly equation 18(b) of that\nwork and associated discussion, and **AgnolinRoux2007**,\nparticularly Appendix A.\n\n----------\n\nThe optional *rolling* keyword enables rolling friction, which resists\npure rolling motion of particles. The options currently supported are:\n\n1. *none*\n2. *sds* : \\(k_{roll}\\), \\(\\gamma_{roll}\\), \\(\\mu_{roll}\\)\n\nIf the *rolling* keyword is not specified, the model defaults to *none* .\n\nFor *rolling sds*, rolling friction is computed via a\nspring-dashpot-slider, using a 'pseudo-force' formulation, as detailed\nby **Luding2008**. Unlike the formulation in\n**Marshall2009**, this allows for the required adjustment of\nrolling displacement due to changes in the frame of reference of the\ncontacting pair. The rolling pseudo-force is computed analogously to\nthe tangential force:\n\\[\n \\mathbf{F}_{roll,0} = k_{roll} \\mathbf{\\xi}_{roll} - \\gamma_{roll} \\mathbf{v}_{roll}\\]\nHere, \\(\\mathbf{v}_{roll} = -R(\\mathbf{\\Omega}_i - \\mathbf{\\Omega}_j) \\times \\mathbf{n}\\) is the relative rolling\nvelocity, as given in **Wang2015** and\n**Luding2008**. This differs from the expressions given by **Kuhn2004** and used in **Marshall2009**; see **Wang2015** for details. The rolling displacement is given by:\n\\[\n \\mathbf{\\xi}_{roll} = \\int_{t_0}^t \\mathbf{v}_{roll} (\\tau) \\mathrm{d} \\tau\\]\nA Coulomb friction criterion truncates the rolling pseudo-force if it\nexceeds a critical value:\n\\[\n \\mathbf{F}_{roll} = \\min(\\mu_{roll} F_{n,0}, \\|\\mathbf{F}_{roll,0}\\|)\\mathbf{k}\\]\nHere, \\(\\mathbf{k} = \\mathbf{v}_{roll}/\\|\\mathbf{v}_{roll}\\|\\) is the direction of\nthe pseudo-force. As with tangential displacement, the rolling\ndisplacement is rescaled when the critical force is exceeded, so that\nthe spring length corresponds the critical force. Additionally, the\ndisplacement is adjusted to account for rotations of the frame of\nreference of the two contacting particles in a manner analogous to the\ntangential displacement.\n\nThe rolling pseudo-force does not contribute to the total force on\neither particle (hence 'pseudo'), but acts only to induce an equal and\nopposite torque on each particle, according to:\n\\[\n \\tau_{roll,i} = R \\mathbf{n} \\times \\mathbf{F}_{roll}\\]\n\\[\n \\tau_{roll,j} = -\\tau_{roll,i}\\]\n----------\n\nThe optional *twisting* keyword enables twisting friction, which\nresists rotation of two contacting particles about the vector\n\\(\\mathbf{n}\\) that connects their centers. The options currently\nsupported are:\n\n1. *none*\n2. *sds* : \\(k_{twist}\\), \\(\\gamma_{twist}\\), \\(\\mu_{twist}\\)\n3. *marshall*\n\nIf the *twisting* keyword is not specified, the model defaults to *none* .\n\nFor both *twisting sds* and *twisting marshall*, a history-dependent\nspring-dashpot-slider is used to compute the twisting torque. Because\ntwisting displacement is a scalar, there is no need to adjust for\nchanges in the frame of reference due to rotations of the particle\npair. The formulation in **Marshall2009** therefore provides\nthe most straightforward treatment:\n\\[\n \\tau_{twist,0} = -k_{twist}\\xi_{twist} - \\gamma_{twist}\\Omega_{twist}\\]\nHere \\(\\xi_{twist} = \\int_{t_0}^t \\Omega_{twist} (\\tau) \\mathrm{d}\\tau\\) is the twisting angular displacement, and\n\\(\\Omega_{twist} = (\\mathbf{\\Omega}_i - \\mathbf{\\Omega}_j) \\cdot \\mathbf{n}\\) is the relative twisting angular velocity. The torque\nis then truncated according to:\n\\[\n \\tau_{twist} = \\min(\\mu_{twist} F_{n,0}, \\tau_{twist,0})\\]\nSimilar to the sliding and rolling displacement, the angular\ndisplacement is rescaled so that it corresponds to the critical value\nif the twisting torque exceeds this critical value:\n\\[\n \\xi_{twist} = \\frac{1}{k_{twist}} (\\mu_{twist} F_{n,0}sgn(\\Omega_{twist}) - \\gamma_{twist}\\Omega_{twist})\\]\nFor *twisting sds*, the coefficients \\(k_{twist}, \\gamma_{twist}\\)\nand \\(\\mu_{twist}\\) are simply the user input parameters that follow\nthe *twisting sds* keywords in the *pair_coeff* command.\n\nFor *twisting_marshall*, the coefficients are expressed in terms of\nsliding friction coefficients, as discussed in\n**Marshall2009** (see equations 32 and 33 of that work):\n\\[\n k_{twist} = 0.5k_ta^2\\]\n\\[\n \\eta_{twist} = 0.5\\eta_ta^2\\]\n\\[\n \\mu_{twist} = \\frac{2}{3}a\\mu_t\\]\nFinally, the twisting torque on each particle is given by:\n\\[\n \\mathbf{\\tau}_{twist,i} = \\tau_{twist}\\mathbf{n}\\]\n\\[\n \\mathbf{\\tau}_{twist,j} = -\\mathbf{\\tau}_{twist,i}\\]\n----------\n\nIf two particles are moving away from each other while in contact, there\nis a possibility that the particles could experience an effective attractive\nforce due to damping. If the optional *limit_damping* keyword is used, this option\nwill zero out the normal component of the force if there is an effective\nattractive force. This keyword cannot be used with the JKR or DMT models.\n\n----------\n\nThe optional *heat* keyword enables heat conduction. The options currently\nsupported are:\n\n1. *none*\n2. *radius* : \\(k_{s}\\)\n3. *area* : \\(h_{s}\\)\n\nIf the *heat* keyword is not specified, the model defaults to *none*.\n\nFor *heat* *radius*, the heat\n\\(Q\\) conducted between two particles is given by\n\\[\n Q = 2 k_{s} a \\Delta T\\]\nwhere \\(\\Delta T\\) is the difference in the two particles' temperature,\n\\(k_{s}\\) is a non-negative numeric value for the conductivity (in units\nof power/(length*temperature)), and \\(a\\) is the radius of the contact and\ndepends on the normal force model. This is the model proposed by\n**VargasMcCarthy2001**.\n\nFor *heat* *area*, the heat\n\\(Q\\) conducted between two particles is given by\n\\[\n Q = h_{s} A \\Delta T\\]\nwhere \\(\\Delta T\\) is the difference in the two particles' temperature,\n\\(h_{s}\\) is a non-negative numeric value for the heat transfer\ncoefficient (in units of power/(area*temperature)), and \\(A=\\pi a^2\\) is\nthe area of the contact and depends on the normal force model.\n\nNote that the option *none* must either be used in all or none of of the\n*pair_coeff* calls. See [fix heat/flow ](https://docs.lammps.org/fix_heat_flow.html) and\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) for more information on this\noption.\n\n----------\n\nThe *granular* pair style can reproduce the behavior of the\n*pair gran/\\** styles with the appropriate settings (some very\nminor differences can be expected due to corrections in\ndisplacement history frame-of-reference, and the application\nof the torque at the center of the contact rather than\nat each particle). The first example above\nis equivalent to *pair gran/hooke 1000.0 NULL 50.0 50.0 0.4 1*\\ .\nThe second example is equivalent to\n*pair gran/hooke/history 1000.0 500.0 50.0 50.0 0.4 1*\\ .\nThe third example is equivalent to\n*pair gran/hertz/history 1000.0 500.0 50.0 50.0 0.4 1 limit_damping*\\ .\n\n----------\n\nLAMMPS automatically sets pairwise cutoff values for *pair_style\ngranular* based on particle radii (and in the case of *jkr* pull-off\ndistances). In the vast majority of situations, this is adequate.\nHowever, a cutoff value can optionally be appended to the *pair_style\ngranular* command to specify a global cutoff (i.e. a cutoff for all\natom types). Additionally, the optional *cutoff* keyword can be passed\nto the *pair_coeff* command, followed by a cutoff value. This will\nset a pairwise cutoff for the atom types in the *pair_coeff* command.\nThese options may be useful in some rare cases where the automatic\ncutoff determination is not sufficient, e.g. if particle diameters\nare being modified via the *fix adapt* command. In that case, the\nglobal cutoff specified as part of the *pair_style granular* command\nis applied to all atom types, unless it is overridden for a given atom\ntype combination by the *cutoff* value specified in the *pair coeff*\ncommand. If *cutoff* is only specified in the *pair coeff* command\nand no global cutoff is appended to the *pair_style granular* command,\nthen LAMMPS will use that cutoff for the specified atom type\ncombination, and automatically set pairwise cutoffs for the remaining\natom types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for granular pair styles.\n\nMixing of coefficients is carried out using geometric averaging for\nmost quantities, e.g. if friction coefficient for type 1-type 1\ninteractions is set to \\(\\mu_1\\), and friction coefficient for type\n2-type 2 interactions is set to \\(\\mu_2\\), the friction coefficient\nfor type1-type2 interactions is computed as \\(\\sqrt{\\mu_1\\mu_2}\\)\n(unless explicitly specified to a different value by a *pair_coeff 1 2\n...* command). The exception to this is elastic modulus, only\napplicable to *hertz/material*, *dmt* and *jkr* normal contact\nmodels. In that case, the effective elastic modulus is computed as:\n\\[\n E_{eff,ij} = \\left(\\frac{1-\\nu_i^2}{E_i} + \\frac{1-\\nu_j^2}{E_j}\\right)^{-1}\\]\nIf the *i-j* coefficients \\(E_{ij}\\) and \\(\\nu_{ij}\\) are\nexplicitly specified, the effective modulus is computed as:\n\\[\n E_{eff,ij} = \\left(\\frac{1-\\nu_{ij}^2}{E_{ij}} + \\frac{1-\\nu_{ij}^2}{E_{ij}}\\right)^{-1}\\]\nor\n\\[\n E_{eff,ij} = \\frac{E_{ij}}{2(1-\\nu_{ij}^2)}\\]\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of these pair styles returns 0.0 for the energy\nof a pairwise interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe pairwise interaction force. However, the single() function also\ncalculates 13 extra pairwise quantities. The first 3 are the\ncomponents of the tangential force between particles I and J, acting\non particle I. The fourth is the magnitude of this tangential force.\nThe next 3 (5-7) are the components of the rolling torque acting on\nparticle I. The next entry (8) is the magnitude of the rolling torque.\nThe next entry (9) is the magnitude of the twisting torque acting\nabout the vector connecting the two particle centers.\nThe next 3 (10-12) are the components of the vector connecting\nthe centers of the two particles (x_I - x_J). The last quantity (13)\nis the heat flow between the two particles, set to 0 if no heat model\nis active.\n\nThese extra quantities can be accessed by the [compute pair/local ](https://docs.lammps.org/compute_pair_local.html) command, as *p1*, *p2*, ...,\n*p12* .\n\n----------\n\n**Derjaguin et al, 1975)** Derjaguin, B. V., Muller, V. M., & Toporov,\nY. P. (1975). Effect of contact deformations on the adhesion of\nparticles. Journal of Colloid and interface science, 53(2), 314-326. \n \n**(JKR1971)** Johnson, K. L., Kendall, K., & Roberts,\nA. D. (1971). Surface energy and the contact of elastic\nsolids. Proc. R. Soc. Lond. A, 324(1558), 301-313. \n \n**(Brill1996)** Brilliantov, N. V., Spahn, F., Hertzsch,\nJ. M., & Poschel, T. (1996). Model for collisions in granular\ngases. Physical review E, 53(5), 5382. \n \n**(Tsuji1992)** Tsuji, Y., Tanaka, T., & Ishida,\nT. (1992). Lagrangian numerical simulation of plug flow of\ncohesionless particles in a horizontal pipe. Powder technology, 71(3),\n239-250. \n \n**(Marshall2009)** Marshall, J. S. (2009). Discrete-element modeling\nof particulate aerosol flows. Journal of Computational Physics,\n228(5), 1541-1561. \n \n**(Tsuji1992)** Tsuji, Y., Tanaka, T., & Ishida,\nT. (1992). Lagrangian numerical simulation of plug flow of\ncohesionless particles in a horizontal pipe. Powder technology, 71(3),\n239-250. \n \n**(Silbert2001)** Silbert, L. E., Ertas, D., Grest, G. S., Halsey,\nT. C., Levine, D., & Plimpton, S. J. (2001). Granular flow down an\ninclined plane: Bagnold scaling and rheology. Physical Review E,\n64(5), 051302. \n \n**(Thornton1991)** Thornton, C. (1991). Interparticle sliding in the\npresence of adhesion. J. Phys. D: Appl. Phys. 24 1942 \n \n**(Luding2008)** Luding, S. (2008). Cohesive, frictional powders:\ncontact models for tension. Granular matter, 10(4), 235. \n \n**(Mindlin1949)** Mindlin, R. D. (1949). Compliance of elastic bodies\nin contact. J. Appl. Mech., ASME 16, 259-268. \n \n**(WaltonPC)** Walton, O.R., Personal Communication \n \n**(Mindlin1953)** Mindlin, R.D., & Deresiewicz, H (1953).\nElastic Spheres in Contact under Varying Oblique Force.\nJ. Appl. Mech., ASME 20, 327-344. \n \n**(Thornton2013)** Thornton, C., Cummins, S. J., & Cleary,\nP. W. (2013). An investigation of the comparative behavior of\nalternative contact force models during inelastic collisions. Powder\nTechnology, 233, 30-46. \n \n**(AgnolinRoux2007)** Agnolin, I. & Roux, J-N. (2007).\nInternal states of model isotropic granular packings.\nI. Assembling process, geometry, and contact networks. Phys. Rev. E, 76, 061302. \n \n**(Wang2015)** Wang, Y., Alonso-Marroquin, F., & Guo,\nW. W. (2015). Rolling and sliding in 3-D discrete element\nmodels. Particuology, 23, 49-55. \n \n**(Kuhn2004)** Kuhn, M. R., & Bagi, K. (2004). Contact\nrolling and deformation in granular media. International journal of\nsolids and structures, 41(21), 5793-5820. \n \n**(VargasMcCarthy2001)** Vargas, W.L. and McCarthy, J.J. (2001).\nHeat conduction in granular materials.\nAIChE Journal, 47(5), 1052-1059. \n ", + "restrictions": "This pair style is part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires that atoms store per-particle radius,\ntorque, and angular velocity (omega) as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html).\n\nThis pair style requires you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html)\ncommand so that velocities are stored by ghost atoms.\n\nThis pair style will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though it should provide\nstatistically similar results. This is because the forces it\ncomputes depend on atom velocities and the atom velocities have\nbeen propagated half a timestep between the force computation and\nwhen the restart is written, due to using Velocity Verlet time\nintegration. See the [read_restart ](https://docs.lammps.org/read_restart.html) command\nfor more details.\n\nAccumulated values for individual contacts are saved to restart\nfiles but are not saved to data files. Therefore, forces may\ndiffer significantly when a system is reloaded using the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n[pair gran/\\* ](https://docs.lammps.org/pair_gran.html)\n" }, { "command": [ - "fix numdiff/virial" + "compute pressure" ], "syntax": [ - "fix ID group-ID numdiff/virial Nevery delta" + "compute ID group-ID pressure temp-ID keyword ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -33268,250 +32574,257 @@ export const command_docs = [ "choices": [] }, { - "arg": "numdiff/virial", + "arg": "pressure", "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "temp-ID", "type": 2, "choices": [] }, { - "arg": "delta", - "type": 2, - "choices": [] + "arg": "pair/hybrid", + "type": 3, + "choices": [ + "ke", + "pair", + "bond", + "angle", + "dihedral", + "improper", + "kspace", + "fix", + "virial", + "pair/hybrid" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* numdiff/virial = style name of this fix command\n* Nevery = calculate virial by finite difference every this many timesteps\n* delta = magnitude of strain fields (dimensionless) \n", - "examples": "\n```lmps\nfix 1 all numdiff/stress 10 1e-6\n```\n", - "html_filename": "fix_numdiff_virial.html", - "short_description": "\nCalculate the virial stress tensor through a finite difference calculation of\nenergy versus strain", - "description": "\nCalculate the virial stress tensor through a finite difference calculation of\nenergy versus strain. These values can be compared to the analytic virial\ntensor computed by pair styles, bond styles, etc. This can be useful for\ndebugging or other purposes. The specified group must be \"all\".\n\nThis fix applies linear strain fields of magnitude *delta* to all the\natoms relative to a point at the center of the box. The\nstrain fields are in six different directions, corresponding to the\nsix Cartesian components of the stress tensor defined by LAMMPS.\nFor each direction it applies the strain field in both the positive\nand negative senses, and the new energy of the entire system\nis calculated after each. The difference in these two energies\ndivided by two times *delta*, approximates the corresponding\ncomponent of the virial stress tensor, after applying\na suitable unit conversion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is important to choose a suitable value for delta, the magnitude of\n > strains that are used to generate finite difference\n > approximations to the exact virial stress. For typical systems, a value in\n > the range of 1 part in 1e5 to 1e6 will be sufficient.\n > However, the best value will depend on a multitude of factors\n > including the stiffness of the interatomic potential, the thermodynamic\n > state of the material being probed, and so on. The only way to be sure\n > that you have made a good choice is to do a sensitivity study on a\n > representative atomic configuration, sweeping over a wide range of\n > values of delta. If delta is too small, the output values will vary\n > erratically due to truncation effects. If delta is increased beyond a\n > certain point, the output values will start to vary smoothly with\n > delta, due to growing contributions from higher order derivatives. In\n > between these two limits, the numerical virial values should be largely\n > independent of delta. \n > \n\n----------\n\nThe *Nevery* argument specifies on what timesteps the force will\nbe used calculated by finite difference.\n\nThe *delta* argument specifies the size of the displacement each\natom will undergo.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a global vector which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html), which stores the components of\nthe virial stress tensor as calculated by finite difference. The\nglobal vector can only be accessed on timesteps that are multiples\nof *Nevery* since that is when the finite difference virial is\ncalculated. See the examples in *examples/numdiff* directory\nto see how this fix can be used to directly compare with\nthe analytic virial stress tensor computed by LAMMPS.\n\nThe order of the virial stress tensor components is *xx*, *yy*, *zz*,\n*yz*, *xz*, and *xy*, consistent with Voigt notation. Note that\nthe vector produced by [compute pressure ](https://docs.lammps.org/compute_pressure.html)\nuses a different ordering, with *yz* and *xy* swapped.\n\nThe vector values calculated by this compute are\n\"intensive\". The vector values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energyminimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix numdiff ](https://docs.lammps.org/fix_numdiff.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure = style name of this compute command\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial or pair/hybrid \n", + "examples": "\n```lmps\ncompute 1 all pressure thermo_temp\ncompute 1 all pressure NULL pair bond\ncompute 1 all pressure NULL pair/hybrid lj/cut\n```\n", + "html_filename": "compute_pressure.html", + "short_description": "Define a computation that calculates the pressure of the entire system\nof atoms", + "description": "Define a computation that calculates the pressure of the entire system\nof atoms. The specified group must be \"all\". See the\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) command if you want per-atom\npressure (stress). These per-atom values could be summed for a group\nof atoms via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe pressure is computed by the formula\n\\[\n P = \\frac{N k_B T}{V} + \\frac{1}{V d}\\sum_{i=1}^{N'} \\vec r_i \\cdot \\vec f_i\\]\nwhere *N* is the number of atoms in the system (see discussion of DOF\nbelow), \\(k_B\\) is the Boltzmann constant, \\(T\\) is the\ntemperature, *d* is the dimensionality of the system (2 for 2d, 3 for\n3d), and *V* is the system volume (or area in 2d). The second term is\nthe virial, equal to \\(-dU/dV\\), computed for all pairwise as well\nas 2-body, 3-body, 4-body, many-body, and long-range interactions, where\n\\(\\vec r_i\\) and \\(\\vec f_i\\) are the position and force vector\nof atom *i*, and the dot indicates the dot product (scalar product).\nThis is computed in parallel for each subdomain and then summed over\nall parallel processes. Thus \\(N'\\) necessarily includes atoms from\nneighboring subdomains (so-called ghost atoms) and the position and\nforce vectors of ghost atoms are thus included in the summation. Only\nwhen running in serial and without periodic boundary conditions is\n\\(N' = N\\) the number of atoms in the system. [Fixes ](https://docs.lammps.org/fix.html)\nthat impose constraints (e.g., the [fix shake ](https://docs.lammps.org/fix_shake.html) command)\nmay also contribute to the virial term.\n\nA symmetric pressure tensor, stored as a 6-element vector, is also\ncalculated by this compute. The six components of the vector are\nordered \\(xx,\\) \\(yy,\\) \\(zz,\\) \\(xy,\\) \\(xz,\\) \\(yz.\\)\nThe equation for the \\((I,J)\\) components (where \\(I\\) and \\(J\\)\nare \\(x\\), \\(y\\), or \\(z\\)) is similar to the above formula,\nexcept that the first term uses components of the kinetic energy tensor and the\nsecond term uses components of the virial tensor:\n\\[\n P_{IJ} = \\frac{1}{V}\\sum_{k=1}^{N} m_k v_{k_I} v_{k_J} +\n \\frac{1}{V}\\sum_{k=1}^{N'} r_{k_I} f_{k_J}.\\]\nIf no extra keywords are listed, the entire equations above are\ncalculated. This includes a kinetic energy (temperature) term and the\nvirial as the sum of pair, bond, angle, dihedral, improper, kspace\n(long-range), and fix contributions to the force on each atom. If any\nextra keywords are listed, then only those components are summed to\ncompute temperature or ke and/or the virial. The *virial* keyword\nmeans include all terms except the kinetic energy *ke* .\n\nThe *pair/hybrid* keyword means to only include contribution\nfrom a sub-style in a *hybrid* or *hybrid/overlay* pair style.\n\nDetails of how LAMMPS computes the virial efficiently for the entire\nsystem, including for many-body potentials and accounting for the\neffects of periodic boundary conditions are discussed in\n**Thompson1**.\n\nThe temperature and kinetic energy tensor is not calculated by this\ncompute, but rather by the temperature compute specified with the\ncommand. If the kinetic energy is not included in the pressure, than\nthe temperature compute is not used and can be specified as NULL.\nNormally the temperature compute used by compute pressure should\ncalculate the temperature of all atoms for consistency with the virial\nterm, but any compute style that calculates temperature can be used\n(e.g., one that excludes frozen atoms or other degrees of freedom).\n\nNote that if desired the specified temperature compute can be one that\nsubtracts off a bias to calculate a temperature using only the thermal\nvelocity of the atoms (e.g., by subtracting a background streaming\nvelocity).\nSee the doc pages for individual [compute commands ](https://docs.lammps.org/compute.html) to determine\nwhich ones include a bias.\n\nAlso note that the \\(N\\) in the first formula above is really\ndegrees-of-freedom divided by \\(d\\) = dimensionality, where the DOF value\nis calculated by the temperature compute.\nSee the various [compute temperature ](https://docs.lammps.org/compute.html) styles for details.\n\nA compute of this style with the ID of thermo_press is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_press all pressure thermo_temp\n```\nwhere thermo_temp is the ID of a similarly defined compute of style\n\"temp\". See the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for more details.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the pressure) and a global\nvector of length 6 (pressure tensor), which can be accessed by indices\n1--6. These values can be used by any command that uses global scalar\nor vector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe ordering of values in the symmetric pressure tensor is as follows:\n\\(p_{xx},\\) \\(p_{yy},\\) \\(p_{zz},\\) \\(p_{xy},\\)\n\\(p_{xz},\\) \\(p_{yz}.\\)\n\nThe scalar and vector values calculated by this compute are\n\"intensive\". The scalar and vector values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\n**(Thompson1)** Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009). \n ", + "restrictions": " none\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n[thermo_style ](https://docs.lammps.org/thermo_style.html), [fix numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html),\n" }, { "command": [ - "fix planeforce" + "fix_modify AtC track_displacement" ], "syntax": [ - "fix ID group-ID planeforce x y z" + "fix_modify track_displacement " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "planeforce", + "arg": "track_displacement", "type": 1, "choices": [] }, { - "arg": "x", - "type": 2, - "choices": [] - }, - { - "arg": "y", - "type": 2, - "choices": [] - }, - { - "arg": "z", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* planeforce = style name of this fix command\n* x y z = 3-vector that is normal to the plane \n", - "examples": "\n```lmps\nfix hold boundary planeforce 1.0 0.0 0.0\n```\n", - "html_filename": "fix_planeforce.html", - "short_description": "Adjust the forces on each atom in the group so that only the\ncomponents of force in the plane specified by the normal vector\n(x,y,z) remain", - "description": "Adjust the forces on each atom in the group so that only the\ncomponents of force in the plane specified by the normal vector\n(x,y,z) remain. This is done by subtracting out the component of\nforce perpendicular to the plane.\n\nIf the initial velocity of the atom is 0.0 (or in the plane), then it\nshould continue to move in the plane thereafter.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n", - "restrictions": " none\n", - "related": "[fix lineforce ](https://docs.lammps.org/fix_lineforce.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* track_displacement = name of the AtC sub-command\n* on or off = (undocumented) \n", + "examples": "\n```lmps\nfix_modify AtC track_displacement on\n```\n", + "html_filename": "atc_track_displacement.html", + "short_description": "Determines whether displacement is tracked or not", + "description": "Determines whether displacement is tracked or not. For solids problems\nthis is a useful quantity, but for fluids it is not relevant.\n", + "restrictions": "Some constitutive models require the displacement field.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "compute pace" + "fix_modify AtC output boundary_integral" ], "syntax": [ - "compute ID group-ID pace ace_potential_filename ... keyword values ..." + "fix_modify output boundary_integral faceset [name]" ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "output", + "type": 1, "choices": [] }, { - "arg": "pace", + "arg": "boundary_integral", "type": 1, "choices": [] }, { - "arg": "ace_potential_filename", + "arg": "", "type": 2, "choices": [] }, { - "arg": "dgradflag", - "type": 3, - "choices": [ - "bikflag", - "dgradflag" - ] + "arg": "faceset", + "type": 1, + "choices": [] }, { - "arg": "values", + "arg": "[name]", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pace = style name of this compute command\n* ace_potential_filename = file name (in the .yace or .ace format from [pace pair_style ](https://docs.lammps.org/pair_pace.html)) including ACE hyper-parameters, bonds, and generalized coupling coefficients\n* keyword = bikflag or dgradflag \n *        bikflag value = 0 or 1 \n         0 = descriptors are summed over atoms of each type \n         1 = descriptors are listed separately for each atom \n *        dgradflag value = 0 or 1 \n         0 = descriptor gradients are summed over atoms of each type \n         1 = descriptor gradients are listed separately for each atom pair \n", - "examples": "\n```lmps\ncompute pace all pace coupling_coefficients.yace\ncompute pace all pace coupling_coefficients.yace 0 1\ncompute pace all pace coupling_coefficients.yace 1 1\n```\n", - "html_filename": "compute_pace.html", - "short_description": "\nThis compute calculates a set of quantities related to the atomic\ncluster expansion (ACE) descriptors of the atoms in a group", - "description": "\nThis compute calculates a set of quantities related to the atomic\ncluster expansion (ACE) descriptors of the atoms in a group. ACE\ndescriptors are highly general atomic descriptors, encoding the radial\nand angular distribution of neighbor atoms, up to arbitrary bond order\n(rank). The detailed mathematical definition is given in the paper by\n**Drautz19**. These descriptors are used in the\n[pace pair_style ](https://docs.lammps.org/pair_pace.html). Quantities obtained from `compute\npace` are related to those used in [pace pair_style ](https://docs.lammps.org/pair_pace.html) to\nevaluate atomic energies, forces, and stresses for linear ACE models.\n\nFor example, the energy for a linear ACE model is calculated as:\n\\(E=\\sum_i^{N\\_atoms} \\sum_{\\boldsymbol{\\nu}} c_{\\boldsymbol{\\nu}}\nB_{i,\\boldsymbol{\\boldsymbol{\\nu}}}\\). The ACE descriptors for atom `i`\n\\(B_{i,\\boldsymbol{\\nu}}\\), and \\(c_{\\nu}\\) are linear model\nparameters. The detailed definition and indexing convention for ACE\ndescriptors is given in **Drautz19**. In short, body\norder \\(N\\), angular character, radial character, and chemical\nelements in the *N-body* descriptor are encoded by \\(\\nu\\). In the\n[pace pair_style ](https://docs.lammps.org/pair_pace.html), the linear model parameters and the\nACE descriptors are combined for efficient evaluation of energies and\nforces. The details and benefits of this efficient implementation are\ngiven in **Lysogorskiy21**, but the combined\ndescriptors and linear model parameters for the purposes of `compute\npace` may be expressed in terms of the ACE descriptors mentioned above.\n\n\\(c_{\\boldsymbol{\\nu}} B_{i,\\boldsymbol{\\nu}}= \\sum_{\\boldsymbol{\\nu}' \\in \\boldsymbol{\\nu} } \\big[ c_{\\boldsymbol{\\nu}} C(\\boldsymbol{\\nu}') \\big] A_{i,\\boldsymbol{\\nu}'}\\)\n\nwhere the bracketed terms on the right-hand side are the combined functions\nwith linear model parameters typically provided in the `.yace` potential\nfile for `pace pair_style`. When these bracketed terms are multiplied by the\nproducts of the atomic base from **Drautz19**,\n\\(A_{i,\\boldsymbol{\\nu'}}\\), the ACE descriptors are recovered but they\nare also scaled by linear model parameters. The generalized coupling coefficients,\nwritten in short-hand here as \\(C(\\boldsymbol{\\nu}')\\), are the generalized\nClebsch-Gordan or generalized Wigner symbols. It may be desirable to reverse the\ncombination of these descriptors and the linear model parameters so that the\nACE descriptors themselves may be used. The ACE descriptors and their gradients\nare often used when training ACE models, performing custom data analysis,\ngeneralizing ACE model forms, and other tasks that involve direct computation of\ndescriptors. The key utility of `compute pace` is that it can compute the ACE\ndescriptors and gradients so that these tasks can be performed during a LAMMPS\nsimulation or so that LAMMPS can be used as a driver for tasks like ACE model\nparameterization. To see how this command can be used within a Python workflow\nto train ACE potentials, see the examples in\n[FitSNAP](https://github.com/FitSNAP/FitSNAP). Examples on using outputs from\nthis compute to construct general ACE potential forms are demonstrated in\n**Goff23**. The various keywords and inputs to `compute pace`\ndetermine what ACE descriptors and related quantities are returned in a compute\narray.\n\nThe coefficient file, `.yace`, ultimately defines the number of ACE\ndescriptors to be computed, their maximum body-order, the degree of angular\ncharacter they have, the degree of radial character they have, the chemical\ncharacter (which element-element interactions are encoded by descriptors),\nand other hyper-parameters defined in **Drautz19**. These may\nbe modeled after the potential files in [pace pair_style ](https://docs.lammps.org/pair_pace.html),\nand have the same format. Details on how to generate the coefficient files\nto train ACE models may be found in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n\nThe keyword *bikflag* determines whether or not to list the descriptors of\neach atom separately, or sum them together and list in a single row. If\n*bikflag* is set to *0* then a single descriptor row is used, which contains\nthe per-atom ACE descriptors \\(B_{i,\\boldsymbol{\\nu}}\\) summed over all\natoms *i* to produce \\(B_{\\boldsymbol{\\nu}}\\). If *bikflag* is set to\n*1* this is replaced by a separate per-atom ACE descriptor row for each atom.\nIn this case, the entries in the final column for these rows are set to zero.\n\nThe keyword *dgradflag* determines whether to sum atom gradients or list\nthem separately. If *dgradflag* is set to 0, the ACE\ndescriptor gradients w.r.t. atom *j* are summed over all atoms *i'*\nof, which may be useful when training linear ACE models on atomic forces.\nIf *dgradflag* is set to 1, gradients are listed separately for each pair of atoms.\nEach row corresponds\nto a single term \\(\\frac{\\partial {B_{i,\\boldsymbol{\\nu}}}}{\\partial {r}^a_j}\\)\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. This also changes the number of columns to be equal to the number of\nACE descriptors, with 3 additional columns representing the indices \\(i\\),\n\\(j\\), and \\(a\\), as explained more in the Output info section below.\nThe option *dgradflag=1* requires that *bikflag=1*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is noted here that in contrast to [pace pair_style ](https://docs.lammps.org/pair_pace.html),\n > the *.yace* file for `compute pace` typically should not contain linear\n > parameters for an ACE potential. If \\(c_{\\nu}\\) are included,\n > the value of the descriptor will not be returned in the `compute` array,\n > but instead, the energy contribution from that descriptor will be returned.\n > Do not do this unless it is the desired behavior.\n > *In short, you should not plug in a '.yace' for a pace potential into this\n > compute to evaluate descriptors.* \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >*Generalized Clebsch-Gordan or Generalized Wigner symbols (with appropriate\n > factors) must be used to evaluate ACE descriptors with this compute.* There\n > are multiple ways to define the generalized coupling coefficients. Because\n > of this, this compute will not revert your potential file to a coupling\n > coefficient file. Instead this compute allows the user to supply coupling\n > coefficients that follow any convention. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *dgradflag* = 1 produces a global array with \\(N + 3N^2 + 1\\) rows\n > which becomes expensive for systems with more than 1000 atoms. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of [special_bonds > ](https://docs.lammps.org/special_bonds.html) command can remove pairwise interactions between\n > atoms in the same bond, angle, or dihedral. This is the default\n > setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, and\n > means those pairwise interactions do not appear in the neighbor list.\n > Because this fix uses the neighbor list, it also means those pairs\n > will not be included in the calculation. One way to get around this,\n > is to write a dump file, and use the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the ACE descriptors for snapshots in the dump file.\n > The rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command that includes all pairs in the neighbor list. \n > \n\n----------\n\n #### Output info\n\nCompute *pace* evaluates a global array. The columns are arranged into\n*ntypes* blocks, listed in order of atom type *I* . Each block contains\none column for each ACE descriptor, the same as for compute\n*sna/atom* in [compute snap ](https://docs.lammps.org/compute_sna_atom.html). A final column contains the corresponding energy, force\ncomponent on an atom, or virial stress component. The rows of the array\nappear in the following order:\n\n* 1 row: *pace* average descriptor values for all atoms of type *I*\n* 3\\*\\ *n* force rows: quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID and run up to the total number of atoms, *n*.\n* 6 rows: *virial* quantities summed for all atoms of type *I*\n\nFor example, if \\(\\# \\; B_{i, \\boldsymbol{\\nu}}\\) =30 and ntypes=1, the number of columns in the\nThe number of columns in the global array generated by *pace* are 31, and\n931, respectively, while the number of rows is 1+3\\*\\ *n* +6, where *n*\nis the total number of atoms.\n\nIf the *bik* keyword is set to 1, the structure of the pace array is expanded.\nThe first \\(N\\) rows of the pace array\ncorrespond to \\(\\# \\; B_{i,\\boldsymbol{\\nu}}\\) instead of a single row summed over atoms \\(i\\).\nIn this case, the entries in the final column for these rows\nare set to zero. Also, each row contains only non-zero entries for the\ncolumns corresponding to the type of that atom. This is not true in the case\nof *dgradflag* keyword = 1 (see below).\n\nIf the *dgradflag* keyword is set to 1, this changes the structure of the\nglobal array completely.\nHere the per-atom quantities are replaced with rows corresponding to\ndescriptor gradient components on single atoms:\n\\[\n \\frac{\\partial {B_{i,\\boldsymbol{\\nu}} }}{\\partial {r}^a_j}\\]\nwhere \\({r}^a_j\\) is the *a-th* position coordinate of the atom with global\nindex *j*. The rows are\norganized in chunks, where each chunk corresponds to an atom with global index\n\\(j\\). The rows in an atom \\(j\\) chunk correspond to\natoms with global index \\(i\\). The total number of rows for\nthese descriptor gradients is therefore \\(3N^2\\).\nThe number of columns is equal to the number of ACE descriptors,\nplus 3 additional left-most columns representing the global atom indices\n\\(i\\), \\(j\\),\nand Cartesian direction \\(a\\) (0, 1, 2, for x, y, z).\nThe first 3 columns of the first \\(N\\) rows belong to the reference\npotential force components. The remaining K columns contain the\n\\(B_{i,\\boldsymbol{\\nu}}\\) per-atom descriptors corresponding to the non-zero entries\nobtained when *bikflag* = 1.\nThe first column of the last row, after the first\n\\(N + 3N^2\\) rows, contains the reference potential\nenergy. The virial components are not used with this option. The total number of\nrows is therefore \\(N + 3N^2 + 1\\) and the number of columns is \\(K + 3\\).\n\nThese values can be accessed by any command that uses global values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\n**(Drautz19)** Drautz, Phys Rev B, 99, 014104 (2019). \n \n**(Lysogorskiy21)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, npj Comp Mat, 7, 97 (2021). \n \n**(Goff23)** Goff, Zhang, Negre, Rohskopf, Niklasson, Journal of Chemical Theory and Computation 19, no. 13 (2023). \n ", - "restrictions": "These computes are part of the ML-PACE package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style pace ](https://docs.lammps.org/pair_pace.html)\n[pair_style snap ](https://docs.lammps.org/pair_snap.html)\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output boundary_integral = name of the AtC sub-command\n* fieldname = name of hardy field\n* faceset = required keyword\n* name= name of faceset \n", + "examples": "\n```lmps\nfix_modify AtC output boundary_integral stress faceset loop1\n```\n", + "html_filename": "atc_output_boundary_integral.html", + "short_description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file", + "description": "Calculates a surface integral of the given field dotted with the outward\nnormal of the faces and puts output in the \"GLOBALS\" file.\n", + "restrictions": "Must be used with the hardy/field type of [fix atc ](https://docs.lammps.org/fix_atc.html)\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix ave/atom" + "pair_style gran/hooke", + "pair_style gran/hooke/omp", + "pair_style gran/hooke/history", + "pair_style gran/hooke/history/omp", + "pair_style gran/hooke/history/kk", + "pair_style gran/hertz/history", + "pair_style gran/hertz/history/omp" ], "syntax": [ - "fix ID group-ID ave/atom Nevery Nrepeat Nfreq value1 value2 ..." + "pair_style style Kn Kt gamma_n gamma_t xmu dampflag keyword" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "gran/hertz/history/omp", + "type": 3, + "choices": [ + "gran/hooke", + "gran/hooke/history", + "gran/hertz/history", + "gran/hooke/omp", + "gran/hooke/history/omp", + "gran/hooke/history/kk", + "gran/hertz/history/omp" + ] }, { - "arg": "group-ID", + "arg": "Kn", "type": 2, "choices": [] }, { - "arg": "ave/atom", - "type": 1, + "arg": "Kt", + "type": 2, "choices": [] }, { - "arg": "Nevery", + "arg": "gamma_n", "type": 2, "choices": [] }, { - "arg": "Nrepeat", + "arg": "gamma_t", "type": 2, "choices": [] }, { - "arg": "Nfreq", + "arg": "xmu", "type": 2, "choices": [] }, { - "arg": "value1", - "type": 2, - "choices": [] + "arg": "included", + "type": 3, + "choices": [ + "0", + "included" + ] }, { - "arg": "value2", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ave/atom = style name of this fix command\n* Nevery = use input values every this many timesteps\n* Nrepeat = # of times to use input values for calculating averages\n* Nfreq = calculate averages every this many timesteps\n* one or more input values can be listed\n* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[i], f_ID, f_ID[i], v_name \n *        x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component) \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n", - "examples": "\n```lmps\nfix 1 all ave/atom 1 100 100 vx vy vz\nfix 1 all ave/atom 10 20 1000 c_my_stress[1]\nfix 1 all ave/atom 10 20 1000 c_my_stress[*]\n```\n", - "html_filename": "fix_ave_atom.html", - "short_description": "Use one or more per-atom vectors as inputs every few timesteps, and\naverage them atom by atom over longer timescales", - "description": "Use one or more per-atom vectors as inputs every few timesteps, and\naverage them atom by atom over longer timescales. The resulting\nper-atom averages can be used by other [output commands ](https://docs.lammps.org/Howto_output.html)\nsuch as the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) or [dump custom ](https://docs.lammps.org/dump.html)\ncommands.\n\nThe group specified with the command means only atoms within the group\nhave their averages computed. Results are set to 0.0 for atoms not in\nthe group.\n\nEach input value can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an atom-style\n[variable ](https://docs.lammps.org/variable.html). In the latter cases, the compute, fix, or\nvariable must produce a per-atom vector, not a global quantity or\nlocal quantity. If you wish to time-average global quantities from a\ncompute, fix, or variable, then see the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand.\n\nEach per-atom value of each input vector is averaged independently.\n\n[Computes ](https://docs.lammps.org/compute.html) that produce per-atom vectors or arrays are\nthose which have the word *atom* in their style name. See the doc\npages for individual [fixes ](https://docs.lammps.org/fix.html) to determine which ones produce\nper-atom vectors or arrays. [Variables ](https://docs.lammps.org/variable.html) of style *atom*\nare the only ones that can be used with this fix since they produce\nper-atom vectors.\n\nNote that for values from a compute or fix, the bracketed index I can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two fix ave/atom commands are\nequivalent, since the [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\ncommand creates a per-atom array with six columns:\n\n```lmps\ncompute my_stress all stress/atom NULL\nfix 1 all ave/atom 10 20 1000 c_my_stress[*]\nfix 1 all ave/atom 10 20 1000 c_my_stress[1] c_my_stress[2] &\nc_my_stress[3] c_my_stress[4] &\nc_my_stress[5] c_my_stress[6]\n```\n----------\n\nThe \\(N_\\text{every}\\), \\(N_\\text{repeat}\\), and \\(N_\\text{freq}\\)\narguments specify on what timesteps the input values will be used in order to\ncontribute to the average. The final averaged quantities are generated on\ntimesteps that are a multiple of \\(N_\\text{freq}\\)\\ . The average is over\n\\(N_\\text{repeat}\\) quantities, computed in the preceding portion of the\nsimulation every \\(N_\\text{every}\\) timesteps. \\(N_\\text{freq}\\) must\nbe a multiple of \\(N_\\text{every}\\) and \\(N_\\text{every}\\) must be\nnon-zero even if \\(N_\\text{repeat}\\) is 1. Also, the timesteps\ncontributing to the average value cannot overlap; that is,\n\\(N_\\text{repeat} \\times N_\\text{every}\\) cannot exceed \\(N_\\text{freq}\\).\n\nFor example, if \\(N_\\text{every}=2\\), \\(N_\\text{repeat}=6\\), and\n\\(N_\\text{freq}=100\\), then values on timesteps 90, 92, 94, 96, 98, and 100\nwill be used to compute the final average on time step 100. Similarly for\ntimesteps 190, 192, 194, 196, 198, and 200 on time step 200, etc.\n\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and\n*fz*) are self-explanatory. Note that other atom attributes can be used as\ninputs to this fix by using the\n[compute property/atom ](https://docs.lammps.org/compute_property_atom.html) command and then\nspecifying an input value from that compute.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *x* , *y* , and *z* attributes are values that are re-wrapped inside\n > the periodic box whenever an atom crosses a periodic boundary. Thus, if\n > you time-average an atom that spends half of its time on either side of\n > the periodic box, you will get a value in the middle of the box. If\n > this is not what you want, consider averaging unwrapped coordinates,\n > which can be provided by the\n > [compute property/atom ](https://docs.lammps.org/compute_property_atom.html)\n > command via its *xu*, *yu*, and *zu* attributes. \n > \n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. If no bracketed term is\nappended, the per-atom vector calculated by the compute is used. If a\nbracketed term containing an index \\(I\\) is appended, the\n\\(I^\\text{th}\\) column of the per-atom array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been previously\ndefined in the input script. If no bracketed term is appended, the per-atom\nvector calculated by the fix is used. If a bracketed term containing an index\n\\(I\\) is appended, the \\(I^\\text{th}\\) column of the per-atom array\ncalculated by the fix is used. Note that some fixes only produce their values\non certain timesteps, which must be compatible with \\(N_\\text{every}\\),\nelse an error will result. Users can also write code for their own fix styles\nand [add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively specify\nmultiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script as an\n[atom-style variable ](https://docs.lammps.org/variable.html). Variables of style *atom* can reference\nthermodynamic keywords or invoke other computes, fixes, or variables\nwhen they are evaluated, so this is a very general means of generating\nper-atom quantities to time average.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\nNo global scalar or vector quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix produces a per-atom vector or array which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). A vector is produced if\nonly a single quantity is averaged by this fix. If two or more\nquantities are averaged, then an array of values is produced. The\nper-atom values can only be accessed on timesteps that are multiples\nof \\(N_\\text{freq}\\) since that is when averaging is performed.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[compute ](https://docs.lammps.org/compute.html), [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html),\n[fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[variable ](https://docs.lammps.org/variable.html),\n" + "parameters": "* style = gran/hooke or gran/hooke/history or gran/hertz/history\n* Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)\n* Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)\n* gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)\n* gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)\n* xmu = static yield criterion (unitless value between 0.0 and 1.0e4)\n* dampflag = 0 or 1 if tangential damping force is excluded or included\n\n* keyword = limit_damping \n *       limit_damping value = none \n        limit damping to prevent attractive interaction \n.. note::\n\n Versions of LAMMPS before 9Jan09 had different style names for\n granular force fields. This is to emphasize the fact that the\n Hertzian equation has changed to model polydispersity more accurately.\n A side effect of the change is that the Kn, Kt, gamma_n, and gamma_t\n coefficients in the pair_style command must be specified with\n different values in order to reproduce calculations made with earlier\n versions of LAMMPS, even for monodisperse systems. See the NOTE below\n for details.\n\n \n", + "examples": "\n```lmps\npair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 1\npair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0\npair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 limit_damping\n```\n", + "html_filename": "pair_gran.html", + "short_description": "The *gran* styles use the following formulas for the frictional force\nbetween two granular particles, as described in\n**Brilliantov**, **Silbert**, and\n**Zhang3**, when the distance r between two particles of radii\nRi and Rj is less than their contact distance d = Ri + Rj", + "description": "The *gran* styles use the following formulas for the frictional force\nbetween two granular particles, as described in\n**Brilliantov**, **Silbert**, and\n**Zhang3**, when the distance r between two particles of radii\nRi and Rj is less than their contact distance d = Ri + Rj. There is\nno force between the particles when r > d.\n\nThe two Hookean styles use this formula:\n\\[\n F_{hk} = (k_n \\delta \\mathbf{n}_{ij} -\n m_{eff} \\gamma_n\\mathbf{ v}_n) -\n (k_t \\mathbf{ \\Delta s}_t +\n m_{eff} \\gamma_t \\mathbf{v}_t)\\]\nThe Hertzian style uses this formula:\n\\[\n F_{hz} = \\sqrt{\\delta} \\sqrt{\\frac{R_i R_j}{R_i + R_j}} F_{hk} =\n \\sqrt{\\delta} \\sqrt{\\frac{R_i R_j}{R_i + R_j}}\n \\Big[ (k_n \\delta \\mathbf{n}_{ij} -\n m_{eff} \\: \\gamma_n \\mathbf{ v}_n) -\n (k_t \\mathbf{ \\Delta s}_t +\n m_{eff} \\: \\gamma_t \\mathbf{v}_t) \\Big]\\]\nIn both equations the first parenthesized term is the normal force\nbetween the two particles and the second parenthesized term is the\ntangential force. The normal force has 2 terms, a contact force and a\ndamping force. The tangential force also has 2 terms: a shear force\nand a damping force. The shear force is a \"history\" effect that\naccounts for the tangential displacement between the particles for the\nduration of the time they are in contact. This term is included in\npair styles *hooke/history* and *hertz/history*, but is not included\nin pair style *hooke* . The tangential damping force term is included\nin all three pair styles if *dampflag* is set to 1; it is not included\nif *dampflag* is set to 0.\n\nThe other quantities in the equations are as follows:\n\n* \\(\\delta\\) = d - r = overlap distance of 2 particles\n* \\(K_n\\) = elastic constant for normal contact\n* \\(K_t\\) = elastic constant for tangential contact\n* \\(\\gamma_n\\) = viscoelastic damping constant for normal contact\n* \\(\\gamma_t\\) = viscoelastic damping constant for tangential contact\n* \\(m_{eff} = M_i M_j / (M_i + M_j) =\\) effective mass of 2 particles of mass M_i and M_j\n* \\(\\mathbf{\\Delta s}_t =\\) tangential displacement vector between 2 particles which is truncated to satisfy a frictional yield criterion\n* \\(n_{ij} =\\) unit vector along the line connecting the centers of the 2 particles\n* \\(V_n =\\) normal component of the relative velocity of the 2 particles\n* \\(V_t =\\) tangential component of the relative velocity of the 2 particles\n\nThe \\(K_n\\), \\(K_t\\), \\(\\gamma_n\\), and \\(\\gamma_t\\)\ncoefficients are specified as parameters to the pair_style command. If\na NULL is used for \\(K_t\\), then a default value is used where\n\\(K_t = 2/7 K_n\\). If a NULL is used for \\(\\gamma_t\\), then a\ndefault value is used where \\(\\gamma_t = 1/2 \\gamma_n\\).\n\nThe interpretation and units for these 4 coefficients are different in\nthe Hookean versus Hertzian equations.\n\nThe Hookean model is one where the normal push-back force for two\noverlapping particles is a linear function of the overlap distance.\nThus the specified \\(K_n\\) is in units of (force/distance). Note\nthat this push-back force is independent of absolute particle size (in\nthe monodisperse case) and of the relative sizes of the two particles\n(in the polydisperse case). This model also applies to the other terms\nin the force equation so that the specified \\(\\gamma_n\\) is in units\nof (1/time), \\(K_t\\) is in units of (force/distance), and\n\\(\\gamma_t\\) is in units of (1/time).\n\nThe Hertzian model is one where the normal push-back force for two\noverlapping particles is proportional to the area of overlap of the\ntwo particles, and is thus a non-linear function of overlap distance.\nThus Kn has units of force per area and is thus specified in units of\n(pressure). The effects of absolute particle size (monodispersity)\nand relative size (polydispersity) are captured in the radii-dependent\nprefactors. When these prefactors are carried through to the other\nterms in the force equation it means that the specified \\(\\gamma_n\\) is in\nunits of (1/(time\\*distance)), \\(K_t\\) is in units of (pressure), and\n\\(\\gamma_t\\) is in units of (1/(time\\*distance)).\n\nNote that in the Hookean case, \\(K_n\\) can be thought of as a linear\nspring constant with units of force/distance. In the Hertzian case,\n\\(K_n\\) is like a non-linear spring constant with units of\nforce/area or pressure, and as shown in the **Zhang3**\npaper, \\(K_n = 4G / (3(1-\\nu))\\) where \\(\\nu =\\) the Poisson ratio,\nG = shear modulus = \\(E / (2(1+\\nu))\\), and E = Young's modulus. Similarly,\n\\(K_t = 4G / (2-\\nu)\\). (NOTE: in an earlier version of the manual, we incorrectly\nstated that \\(K_t = 8G / (2-\\nu)\\).)\n\nThus in the Hertzian case \\(K_n\\) and \\(K_t\\) can be set to\nvalues that corresponds to properties of the material being modeled.\nThis is also true in the Hookean case, except that a spring constant\nmust be chosen that is appropriate for the absolute size of particles in\nthe model. Since relative particle sizes are not accounted for, the\nHookean styles may not be a suitable model for polydisperse systems.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In versions of LAMMPS before 9Jan09, the equation for Hertzian\n > interactions did not include the \\(\\sqrt{r_i r_j / (r_i + r_j)}\\)\n > term and thus was not as accurate for polydisperse systems. For\n > monodisperse systems, \\(\\sqrt{ r_i r_j /(r_i+r_j)}\\) is a\n > constant factor that effectively scales all 4 coefficients:\n > \\(K_n, K_t, \\gamma_n, \\gamma_t\\). Thus you can set the values of\n > these 4 coefficients appropriately in the current code to reproduce\n > the results of a previous Hertzian monodisperse calculation. For\n > example, for the common case of a monodisperse system with particles\n > of diameter 1, all 4 of these coefficients should now be set 2x\n > larger than they were previously. \n > \n\nXmu is also specified in the pair_style command and is the upper limit\nof the tangential force through the Coulomb criterion Ft = xmu\\*Fn,\nwhere Ft and Fn are the total tangential and normal force components\nin the formulas above. Thus in the Hookean case, the tangential force\nbetween 2 particles grows according to a tangential spring and\ndash-pot model until Ft/Fn = xmu and is then held at Ft = Fn\\*xmu until\nthe particles lose contact. In the Hertzian case, a similar analogy\nholds, though the spring is no longer linear.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Normally, xmu should be specified as a fractional value between\n > 0.0 and 1.0, however LAMMPS allows large values (up to 1.0e4) to allow\n > for modeling of systems which can sustain very large tangential\n > forces. \n > \n\nThe effective mass *m_eff* is given by the formula above for two\nisolated particles. If either particle is part of a rigid body, its\nmass is replaced by the mass of the rigid body in the formula above.\nThis is determined by searching for a [fix rigid ](https://docs.lammps.org/fix_rigid.html)\ncommand (or its variants).\n\nFor granular styles there are no additional coefficients to set for\neach pair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\nAll settings are global and are made via the pair_style command.\nHowever you must still use the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) for all\npairs of granular atom types. For example the command\n\n```lmps\npair_coeff * *\n```\nshould be used if all atoms in the simulation interact via a granular\npotential (i.e. one of the pair styles above is used). If a granular\npotential is used as a sub-style of [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), then specific atom types can be used in the\npair_coeff command to determine which atoms interact via a granular\npotential.\n\nIf two particles are moving away from each other while in contact, there\nis a possibility that the particles could experience an effective attractive\nforce due to damping. If the *limit_damping* keyword is used, this option\nwill zero out the normal component of the force if there is an effective\nattractive force.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for granular pair styles.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe single() function of these pair styles returns 0.0 for the energy\nof a pairwise interaction, since energy is not conserved in these\ndissipative potentials. It also returns only the normal component of\nthe pairwise interaction force. However, the single() function also\ncalculates 10 extra pairwise quantities. The first 3 are the\ncomponents of the tangential force between particles I and J, acting\non particle I. The fourth is the magnitude of this tangential force.\nThe next 3 (5-7) are the components of the relative velocity in the\nnormal direction (along the line joining the 2 sphere centers). The\nlast 3 (8-10) the components of the relative velocity in the\ntangential direction.\n\nThese extra quantities can be accessed by the [compute pair/local ](https://docs.lammps.org/compute_pair_local.html) command, as *p1*, *p2*, ...,\n*p10* .\n\n----------\n\n**(Brilliantov)** Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53,\np 5382-5392 (1996). \n \n**(Silbert)** Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev\nE, 64, p 051302 (2001). \n \n**(Zhang3)** Zhang and Makse, Phys Rev E, 72, p 011301 (2005). \n ", + "restrictions": "All the granular pair styles are part of the GRANULAR package. It is\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require that atoms store torque and angular velocity\n(omega) as defined by the [atom_style ](https://docs.lammps.org/atom_style.html). They also\nrequire a per-particle radius is stored. The *sphere* atom style does\nall of this.\n\nThis pair style requires you to use the [comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost\natoms.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they\ncompute depend on atom velocities. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for more details.\n\nAccumulated values for individual contacts are saved to to restart\nfiles but are not saved to data files. Therefore, forces may\ndiffer significantly when a system is reloaded using A\n[read_data ](https://docs.lammps.org/read_data.html) command.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "neighbor" + "bond_style special" ], "syntax": [ - "neighbor skin style" + "bond_style special" ], "args": [ [ { - "arg": "neighbor", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "skin", - "type": 2, + "arg": "special", + "type": 1, "choices": [] - }, - { - "arg": "multi/old", - "type": 3, - "choices": [ - "bin", - "nsq", - "multi", - "multi/old" - ] } ] ], - "parameters": "* skin = extra distance beyond force cutoff (distance units)\n* style = bin or nsq or multi or multi/old \n", - "examples": "\n```lmps\nneighbor 0.3 bin\nneighbor 2.0 nsq\n```\n", - "html_filename": "neighbor.html", - "short_description": "This command sets parameters that affect the building of pairwise\nneighbor lists", - "description": "This command sets parameters that affect the building of pairwise\nneighbor lists. All atom pairs within a neighbor cutoff distance\nequal to the their force cutoff plus the *skin* distance are stored in\nthe list. Typically, the larger the skin distance, the less often\nneighbor lists need to be built, but more pairs must be checked for\npossible force interactions every timestep. The default value for\n*skin* depends on the choice of units for the simulation; see the\ndefault values below.\n\nThe *skin* distance is also used to determine how often atoms migrate\nto new processors if the *check* option of the\n[neigh_modify ](https://docs.lammps.org/neigh_modify.html) command is set to *yes* . Atoms are\nmigrated (communicated) to new processors on the same timestep that\nneighbor lists are re-built.\n\nThe *style* value selects what algorithm is used to build the list.\nThe *bin* style creates the list by binning which is an operation that\nscales linearly with N/P, the number of atoms per processor where N =\ntotal number of atoms and P = number of processors. It is almost\nalways faster than the *nsq* style which scales as (N/P)\\^2. For\nunsolvated small molecules in a non-periodic box, the *nsq* choice can\nsometimes be faster. Either style should give the same answers.\n\nThe *multi* style is a modified binning algorithm that is useful for\nsystems with a wide range of cutoff distances, e.g. due to different\nsize particles. For granular pair styles, cutoffs are set to the sum of\nthe maximum atomic radii for each atom type. For the *bin* style, the\nbin size is set to 1/2 of the largest cutoff distance between any pair\nof atom types and a single set of bins is defined to search over for all\natom types. This can be inefficient if one pair of types has a very\nlong cutoff, but other type pairs have a much shorter cutoff. The\n*multi* style uses different sized bins for collections of different\nsized particles, where \"size\" may mean the physical size of the particle\nor its cutoff distance for interacting with other particles. Different\nsets of bins are then used to construct the neighbor lists as as further\ndescribed by Shire, Hanley, and Stratford **multi-Shire**\nand Monti et al. **multi-Monti**. This imposes some extra\nsetup overhead, but the searches themselves may be much faster.\n\nFor instance in a dense binary system in d-dimensions with a ratio of the size\nof the largest to smallest collection bin \\(\\lambda\\), the computational\ncosts of building a default neighbor list grows as \\(\\lambda^{2d}\\) while\nthe costs for *multi* grows as \\(\\lambda^d\\), equivalent to the cost\nof force evaluations, as argued in Monti et al. **multi-Monti**.\nIn other words, the neighboring costs of *multi* are expected to scale the\nsame as force calculations, such that its relative cost is independent of\nthe particle size ratio. This is not the case for the default style which\nbecomes substantially more expensive with increasing size ratios.\n\nBy default in *multi*, each atom type defines a separate collection\nof particles. For systems where two or more atom types have the same\nsize (either physical size or cutoff distance), the definition of\ncollections can be customized, which can result in less overhead and\nfaster performance. See the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command\nfor how to define custom collections. Whether the collection definition\nis customized or not, also see the [comm_modify mode multi](https://docs.lammps.org/comm_modify.html) command for communication options that further improve\nperformance in a manner consistent with neighbor style multi.\n\nAn alternate style, *multi/old*, sets the bin size to 1/2 of the shortest\ncutoff distance and multiple sets of bins are defined to search over for\ndifferent atom types. This algorithm used to be the default *multi*\nalgorithm in LAMMPS but was found to be significantly slower than the new\napproach. For the dense binary system, computational costs still grew as\n\\(\\lambda^{2d}\\) at large enough \\(\\lambda\\). This is equivalent\nto the default style, albeit with a smaller prefactor. For now we are\nkeeping the old option in case there are use cases where multi/old\noutperforms the new multi style.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If there are multiple sub-styles in a [hybrid/overlay pair style > ](https://docs.lammps.org/pair_hybrid.html) that cover the same atom types, but have significantly\n > different cutoffs, the *multi* style does not apply. Instead, the\n > [pair_modify neigh/trim ](https://docs.lammps.org/pair_modify.html) setting applies (which is\n > *yes* by default). Please check the neighbor list summary printed at\n > the beginning of a calculation to verify that the desired set of\n > neighbor list builds is performed. \n > \n\nThe [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command has additional options\nthat control how often neighbor lists are built and which pairs are\nstored in the list.\n\nWhen a run is finished, counts of the number of neighbors stored in\nthe pairwise list and the number of times neighbor lists were built\nare printed to the screen and log file. See the [Run output ](https://docs.lammps.org/Run_output.html) page for details.\n\n**(multi-Shire)** Shire, Hanley and Stratford, Comp. Part. Mech., (2020). \n \n**(multi-Monti)** Monti, Clemmer, Srivastava, Silbert, Grest, and Lechman, Phys. Rev. E, (2022). \n ", - "restrictions": " none\n", - "related": "[neigh_modify ](https://docs.lammps.org/neigh_modify.html), [units ](https://docs.lammps.org/units.html),\n[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" + "parameters": "", + "examples": "\n```lmps\nbond_style special\nbond_coeff 0.5 0.5\n```\n", + "html_filename": "bond_special.html", + "short_description": "The *special* bond style can be used to create conceptual bonds which\neffectively impose weightings on the pairwise Lennard Jones and/or\nCoulombic interactions between selected pairs of particles in the\nsystem", + "description": "The *special* bond style can be used to create conceptual bonds which\neffectively impose weightings on the pairwise Lennard Jones and/or\nCoulombic interactions between selected pairs of particles in the\nsystem. The form of the pairwise interaction will be whatever is\ncomputed by the [pair_style ](https://docs.lammps.org/pair_style.html) command defined for the\nsystem; this command defines the weightings for its two terms.\n\nThis command can thus be useful to apply weightings that cannot be\nhandled by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command, such as\non 1-5 or 1-6 interactions. Or it can be used to add pairwise forces\nbetween one or more pairs of atoms that otherwise would not be include\nin the [pair_style ](https://docs.lammps.org/pair_style.html) computation.\n\nThe potential for this bond style has the form\n\\[\n E = w_{LJ} E_{LJ} + w_{Coul} E_{Coul}\\]\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(w_{LJ}\\) weight (0.0 to 1.0) on pairwise Lennard-Jones interactions\n\n* \\(w_{Coul}\\) weight (0.0 to 1.0) on pairwise Coulombic interactions\n\n----------\n\nNormally this bond style should be used in conjunction with one (or\nmore) other bond styles which compute forces between atoms directly\nbonded to each other in a molecule. This means the [bond_stylehybrid ](https://docs.lammps.org/bond_hybrid.html) command should be used with bond_style special\nas one of its sub-styles.\n\nNote that the same as for any other bond style, pairs of bonded atoms\nmust be enumerated in the data file read by the [read_data](https://docs.lammps.org/read_data.html) command. Thus if this command is used to weight all 1-5\ninteractions in the system, all the 1-5 pairs of atoms must be listed\nin the \"Bonds\" section of the data file.\n\nThis bond style imposes strict requirements on settings made with the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command. These requirements\nensure that the new bonds created by this style do not create spurious\n1-2, 1-3, or 1-4 interactions within the molecular topology.\n\nSpecifically 1-2 interactions must have weights of zero, 1-3\ninteractions must either have weights of unity or [special_bondsangle yes ](https://docs.lammps.org/special_bonds.html) must be used, and 1-4 interactions must\nhave weights of unity or [special_bonds dihedral yes ](https://docs.lammps.org/special_bonds.html)\nmust be used.\n\nIf this command is used to create bonded interactions between\nparticles that are further apart than usual (e.g. 1-5 or 1-6\ninteractions), this style may require an increase in the communication\ncutoff via the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command. If\nLAMMPS cannot find a partner atom in a bond, an error will be issued.\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nMISC package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThis bond style requires the use of a [pair_style ](https://docs.lammps.org/pair_style.html) which\ncomputes a pairwise additive interaction and provides the ability to\ncompute interactions for individual pairs of atoms. Manybody potentials\nare not compatible in general, but also some other pair styles are missing\nthe required functionality and thus will cause an error.\n\nThis command is not compatible with long-range Coulombic interactions. If a\n`kspace_style ` is declared, an error will be issued.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" }, { "command": [ - "fix_modify AtC boundary_dynamics" + "fix_modify AtC control thermal" ], "syntax": [ - "fix_modify boundary_dynamics " + "fix_modify control ", + "fix_modify control thermal ", + "fix_modify control thermal rescale ", + "fix_modify control thermal flux ", + "fix_modify control thermal correction_max_iterations " ], "args": [ [ @@ -33526,272 +32839,136 @@ export const command_docs = [ "choices": [] }, { - "arg": "boundary_dynamics", + "arg": "control", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 3, "choices": [ - "on", - "damped_harmonic", - "prescribed", - "coupled", - "none" + "thermal", + "momentum" ] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary_dynamics = name of the AtC sub-command\n* on or damped_harmonic *prescribed* coupled *none* \n", - "examples": "", - "html_filename": "atc_boundary_dynamics.html", - "short_description": "Sets different schemes for controlling boundary atoms", - "description": "Sets different schemes for controlling boundary atoms. *on* will integrate\nthe boundary atoms using the velocity-verlet algorithm. *damped_harmonic*\nuses a mass/spring/dashpot for the boundary atoms with added arguments\nof the damping and spring constants followed by the ratio of the\nboundary type mass to the desired mass. *prescribed* forces the boundary\natoms to follow the finite element displacement. *coupled* does the same.\n", - "restrictions": "Boundary atoms must be specified. When using swaps between internal and\nboundary atoms, the initial configuration must have already correctly\npartitioned the two.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" -}, -{ - "command": [ - "pair_style smatb" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "smatb/single", + "arg": "", "type": 3, "choices": [ - "smatb", - "smatb/single" + "max_iterations", + "tolerance" ] }, { - "arg": "args", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* style = smatb or smatb/single\n* args = none \n", - "examples": "\n```lmps\npair_style smatb\npair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666\n\npair_style smatb/single\npair_coeff 1 1 2.88 10.35 4.178 0.210 1.818 4.07293506 4.9883063257983666\n```\n", - "html_filename": "pair_smatb.html", - "short_description": "\nThe *smatb* and *smatb/single* styles compute the Second Moment\nApproximation to the Tight Binding **Cyrot**,\n**Gupta**, **Rosato**, given by\n\\[ E_{i} = \\sum_{j,R_{ij}\\leq R_{c}} \\alpha(R_{ij}) - \\sqrt{\\sum_{j,R_{ij}\\leq R_{c}}\\Xi^2(R_{ij})}\\]\n\\(R_{ij}\\) is the distance between the atom \\(i\\) and \\(j\\)", - "description": "\nThe *smatb* and *smatb/single* styles compute the Second Moment\nApproximation to the Tight Binding **Cyrot**,\n**Gupta**, **Rosato**, given by\n\\[ E_{i} = \\sum_{j,R_{ij}\\leq R_{c}} \\alpha(R_{ij}) - \\sqrt{\\sum_{j,R_{ij}\\leq R_{c}}\\Xi^2(R_{ij})}\\]\n\\(R_{ij}\\) is the distance between the atom \\(i\\) and \\(j\\).\nAnd the two functions \\(\\alpha\\left(r\\right)\\) and \\(\\Xi\\left(r\\right)\\) are:\n\\[\\begin{align*} \\alpha\\left(r\\right)=\\left\\lbrace\\begin{array}{ll}\n A e^{-p \\left(\\frac{r}{R_{0}}-1\\right)} & r < R_{sc}\\\\\n a_3\\left(r-R_{c}\\right)^3+a_4\\left(r-R_{c}\\right)^4\n +a_5\\left(r-R_{c}\\right)^5& R_{sc} < r < R_{c}\n \\end{array}\n \\right. \\end{align*} \\]\n\\[\\begin{align*} \\Xi\\left(r\\right)=\\left\\lbrace\\begin{array}{ll}\n \\xi e^{-q \\left(\\frac{r}{R_{0}}-1\\right)} & r < R_{sc}\\\\\n x_3\\left(r-R_{c}\\right)^3+x_4\\left(r-R_{c}\\right)^4\n +x_5\\left(r-R_{c}\\right)^5& R_{sc} < r < R_{c}\n \\end{array}\n \\right. \\end{align*} \\]\nThe polynomial coefficients \\(a_3\\), \\(a_4\\), \\(a_5\\),\n\\(x_3\\), \\(x_4\\), \\(x_5\\) are computed by LAMMPS: the two\nexponential terms and their first and second derivatives are smoothly\nreduced to zero, from the inner cutoff \\(R_{sc}\\) to the outer\ncutoff \\(R_{c}\\).\n\nThe *smatb/single* style is an optimization when using only a single atom type.\n\n #### Coefficients\n\nThe following coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described below:\n\n* \\(R_{0}\\) (distance units)\n* \\(p\\) (dimensionless)\n* \\(q\\) (dimensionless)\n* \\(A\\) (energy units)\n* \\(\\xi\\) (energy units)\n* \\(R_{cs}\\) (distance units)\n* \\(R_{c}\\) (distance units)\n\n\nNote that: \\(R_{0}\\) is the nearest neighbor distance, usually coincides\nwith the diameter of the atoms\n\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n #### Mixing info\n\nFor atom type pairs I,J and I != J the coefficients are not automatically mixed.\n\n----------\n\n**(Cyrot)** Cyrot-Lackmann and Ducastelle, Phys Rev. B, 4, 2406-2412 (1971). \n \n**(Gupta)** Gupta ,Phys Rev. B, 23, 6265-6270 (1981). \n \n**(Rosato)** Rosato and Guillope and Legrand, Philosophical Magazine A, 59.2, 321-336 (1989). \n ", - "restrictions": "These pair styles are part of the SMTBQ package and are only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\" for pair interactions.\n", - "related": "* [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "dielectric" - ], - "syntax": [ - "dielectric value" - ], - "args": [ + ], [ { - "arg": "dielectric", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] - } - ] - ], - "parameters": "* value = dielectric constant \n", - "examples": "\n```lmps\ndielectric 2.0\n```\n", - "html_filename": "dielectric.html", - "short_description": "Set the dielectric constant for Coulombic interactions (pairwise and\nlong-range) to this value", - "description": "Set the dielectric constant for Coulombic interactions (pairwise and\nlong-range) to this value. The constant is unitless, since it is used\nto reduce the strength of the interactions. The value is used in the\ndenominator of the formulas for Coulombic interactions (e.g., a value\nof 4.0 reduces the Coulombic interactions to 25% of their default\nstrength). See the [pair_style ](https://docs.lammps.org/pair_style.html) command for more\ndetails.\n", - "restrictions": " none\n", - "related": "[pair_style ](https://docs.lammps.org/pair_style.html)\n" -}, -{ - "command": [ - "pair_style table/rx", - "pair_style table/rx/kk" - ], - "syntax": [ - "pair_style table style N ..." - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "control", "type": 1, "choices": [] }, { - "arg": "table", - "type": 2, + "arg": "thermal", + "type": 1, "choices": [] }, { - "arg": "spline", - "type": 3, - "choices": [ - "lookup", - "linear", - "spline" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "N", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* style = lookup or linear or spline or bitmap = method of interpolation\n* N = use N values in lookup, linear, spline tables\n* weighting = fractional or molecular (optional) \n", - "examples": "\n```lmps\npair_style table/rx linear 1000\npair_style table/rx linear 1000 fractional\npair_style table/rx linear 1000 molecular\npair_coeff * * rxn.table ENTRY1 h2o h2o 10.0\npair_coeff * * rxn.table ENTRY1 1fluid 1fluid 10.0\npair_coeff * 3 rxn.table ENTRY1 h2o no2 10.0\n```\n", - "html_filename": "pair_table_rx.html", - "short_description": "Style *table/rx* is used in reaction DPD simulations,where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command", - "description": "Style *table/rx* is used in reaction DPD simulations,where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command. The species of\none CG particle can interact with a species in a neighboring CG\nparticle through a site-site interaction potential model. Style\n*table/rx* creates interpolation tables of length *N* from pair\npotential and force values listed in a file(s) as a function of\ndistance. The files are read by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and force values at each of *N*\ndistances. During a simulation, these tables are used to interpolate\nenergy and force values as needed. The interpolation is done in one\nof 4 styles: *lookup*, *linear*, *spline*, or *bitmap* .\n\nFor the *lookup* style, the distance between two atoms is used to find\nthe nearest table entry, which is the energy or force.\n\nFor the *linear* style, the pair distance is used to find 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The pair distance is\nused to find the appropriate set of coefficients which are used to\nevaluate a cubic polynomial which computes the energy or force.\n\nFor the *bitmap* style, the N means to create interpolation tables\nthat are 2\\^N in length. The pair distance is used to index into the\ntable via a fast bit-mapping technique **Wolff** and a linear\ninterpolation is performed between adjacent table values.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* species1\n* species2\n* cutoff (distance units)\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The cutoff is\nan optional coefficient. If not specified, the outer cutoff in the\ntable itself (see below) will be used to build an interpolation table\nthat extend to the largest tabulated distance. If specified, only\nfile values up to the cutoff are used to create the interpolation\ntable. The format of this file is described below.\n\nThe species tags define the site-site interaction potential between\ntwo species contained within two different particles. The species\ntags must either correspond to the species defined in the reaction\nkinetics files specified with the [fix rx ](https://docs.lammps.org/fix_rx.html) command or they\nmust correspond to the tag \"1fluid\", signifying interaction with a\nproduct species mixture determined through a one-fluid approximation.\nThe interaction potential is weighted by the geometric average of\neither the mole fraction concentrations or the number of molecules\nassociated with the interacting coarse-grained particles (see the\n*fractional* or *molecular* weighting pair style options). The coarse-grained potential is\nstored before and after the reaction kinetics solver is applied, where\nthe difference is defined to be the internal chemical energy (uChem).\n\n----------\n\nHere are some guidelines for using the pair_style table/rx command to\nbest effect:\n\n* Vary the number of table points; you may need to use more than you think\n to get good resolution.\n* Always use the [pair_write ](https://docs.lammps.org/pair_write.html) command to produce a plot\n of what the final interpolated potential looks like. This can show up\n interpolation \"features\" you may not like.\n* Start with the linear style; it's the style least likely to have problems.\n* Use *N* in the pair_style command equal to the \"N\" in the tabulation\n file, and use the \"RSQ\" or \"BITMAP\" parameter, so additional interpolation\n is not needed. See discussion below.\n* Make sure that your tabulated forces and tabulated energies are consistent\n (dE/dr = -F) along the entire range of r values.\n* Use as large an inner cutoff as possible. This avoids fitting splines\n to very steep parts of the potential.\n\n----------\n\nThe format of a tabulated file is a series of one or more sections,\ndefined as follows (without the parenthesized comments):\n\n```\n# Morse potential for Fe (one or more comment or blank lines)\n\nMORSE_FE (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ, BITMAP, FPRIME parameters)\n(blank)\n1 1.0 25.5 102.34 (index, r, energy, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style table/rx ](https://docs.lammps.org/pair_style.html) command. Let\nNtable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and force\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual pair distances. This means that if you want the\ninterpolation tables of length Ntable to match exactly what is in the\ntabulated file (with effectively no preliminary interpolation), you\nshould set Ntable = Nfile, and use the \"RSQ\" or \"BITMAP\" parameter.\nThe internal table abscissa is RSQ (separation distance squared).\n\nAll other parameters are optional. If \"R\" or \"RSQ\" or \"BITMAP\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *r* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo*\nand *rhi* . If specified, the distance associated with each energy and\nforce value is computed from these 2 values (at high accuracy), rather\nthan using the (low-accuracy) value listed in each line of the table.\nThe distance values in the table file are ignored in this case.\nFor \"R\", distances uniformly spaced between *rlo* and *rhi* are\ncomputed; for \"RSQ\", squared distances uniformly spaced between\n*rlo\\*rlo* and *rhi\\*rhi* are computed.\n\nIf used, the parameter \"BITMAP\" is also followed by 2 values *rlo* and\n*rhi* . These values, along with the \"N\" value determine the ordering\nof the N lines that follow and what distance is associated with each.\nThis ordering is complex, so it is not documented here, since this\nfile is typically produced by the [pair_write ](https://docs.lammps.org/pair_write.html) command\nwith its *bitmap* option. When the table is in BITMAP format, the \"N\"\nparameter in the file must be equal to 2\\^M where M is the value\nspecified in the pair_style command. Also, a cutoff parameter cannot\nbe used as an optional third argument in the pair_coeff command; the\nentire table extent as specified in the file must be used.\n\nIf used, the parameter \"FPRIME\" is followed by 2 values *fplo* and\n*fphi* which are the derivative of the force at the innermost and\noutermost distances listed in the table. These values are needed by\nthe spline construction routines. If not specified by the \"FPRIME\"\nparameter, they are estimated (less accurately) by the first 2 and\nlast 2 force values in the table. This parameter is not used by\nBITMAP tables.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in distance units), the third value is the energy (in energy units),\nand the fourth is the force (in force units). The r values must increase\nfrom one line to the next (unless the BITMAP parameter is specified).\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style table/rx\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Wolff)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n ", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "pair_style gauss", - "pair_style gauss/gpu", - "pair_style gauss/omp", - "pair_style gauss/cut", - "pair_style gauss/cut/omp" - ], - "syntax": [ - "pair_style gauss cutoff", - "pair_style gauss/cut cutoff" - ], - "args": [ + ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "gauss", - "type": 3, - "choices": [ - "gauss", - "gauss/gpu", - "gauss/omp" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "cutoff", - "type": 2, + "arg": "control", + "type": 1, "choices": [] - } - ], - [ + }, { - "arg": "pair_style", + "arg": "thermal", "type": 1, "choices": [] }, { - "arg": "gauss/cut", - "type": 2, + "arg": "rescale", + "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* cutoff = global cutoff for Gauss interactions (distance units) \n", - "examples": "\n```lmps\npair_style gauss 12.0\npair_coeff * * 1.0 0.9\npair_coeff 1 4 1.0 0.9 10.0\n\npair_style gauss/cut 3.5\npair_coeff 1 4 0.2805 1.45 0.112\n```\n", - "html_filename": "pair_gauss.html", - "short_description": "Style *gauss* computes a tethering potential of the form\n\\[\n E = - A \\exp(-B r^2) \\qquad r < r_c\\]\nbetween an atom and its corresponding tether site which will typically\nbe a frozen atom in the simulation", - "description": "Style *gauss* computes a tethering potential of the form\n\\[\n E = - A \\exp(-B r^2) \\qquad r < r_c\\]\nbetween an atom and its corresponding tether site which will typically\nbe a frozen atom in the simulation. \\(r_c\\) is the cutoff.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* B (1/distance\\^2 units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\nStyle *gauss/cut* computes a generalized Gaussian interaction potential\nbetween pairs of particles:\n\\[\n E = \\frac{H}{\\sigma_h\\sqrt{2\\pi}} \\exp\\left[-\\frac{(r-r_{mh})^2}{2\\sigma_h^2}\\right]\\]\nwhere H determines together with the standard deviation \\(\\sigma_h\\)\nthe peak height of the Gaussian function, and \\(r_{mh}\\) the peak\nposition. Examples of the use of the Gaussian potentials include\nimplicit solvent simulations of salt ions **Lenart2** and\nof surfactants **Jusufi2**. In these instances the\nGaussian potential mimics the hydration barrier between a pair of\nparticles. The hydration barrier is located at \\(r_{mh}\\) and has a\nwidth of \\(\\sigma_h\\). The prefactor determines the height of the\npotential barrier.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the example above,\nor in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* H (energy \\* distance units)\n* \\(r_{mh}\\) (distance units)\n* \\(\\sigma_h\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A, B, H, sigma_h, r_mh\nparameters, and the cutoff distance for these pair styles can be mixed:\n\n* A (energy units)\n* \\(\\sqrt{\\frac{1}{B}}\\) (distance units, see below)\n* H (energy units)\n* \\(r_{mh}\\) (distance units)\n* \\(\\sigma_h\\) (distance units)\n* cutoff (distance units)\n\nThe default mix value is *geometric* .\nOnly *arithmetic* and *geometric* mix values are supported.\nSee the \"pair_modify\" command for details.\n\nThe A and H parameters are mixed using the same rules normally\nused to mix the \"epsilon\" parameter in a Lennard Jones interaction.\nThe sigma_h, r_mh, and the cutoff distance are mixed using the same\nrules used to mix the \"sigma\" parameter in a Lennard Jones interaction.\nThe B parameter is converted to a distance (sigma), before mixing\n(using sigma=B\\^-0.5), and converted back to a coefficient\nafterwards (using B=sigma\\^2).\nNegative A values are converted to positive A values (using abs(A))\nbefore mixing, and converted back after mixing\n(by multiplying by min(sign(Ai),sign(Aj))).\nThis way, if either particle is repulsive (if Ai<0 or Aj<0),\nthen the default interaction between both particles will be repulsive.\n\nFor the *gauss* style there is no effect due to the Gaussian well\nbeyond the cutoff; hence reasonable cutoffs need to be specified.\n\nThe *gauss/cut* style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Gauss-potential portion of the pair\ninteraction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for these pair styles.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe *gauss* pair style tallies an \"occupancy\" count of how many\nGaussian-well sites have an atom within the distance at which the force\nis a maximum = sqrt(0.5/b). This quantity can be accessed via the\n[compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of\nlength 1.\n\nTo print this quantity to the log file (with a descriptive column\nheading) the following commands could be included in an input script:\n\n```lmps\ncompute gauss all pair gauss\nvariable occ equal c_gauss[1]\nthermo_style custom step temp epair v_occ\n```\n----------\n\n**(Lenart2)** Lenart , Jusufi, and Panagiotopoulos, J Chem Phys, 126,\n044509 (2007). \n \n**(Jusufi2)** Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,\n13783 (2008). \n ", - "restrictions": "The *gauss* and *gauss/cut* styles are part of the EXTRA-PAIR package.\nThey are only enabled if LAMMPS is build with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nPrior to this version, the *gauss* pair style did not apply\n[special_bonds ](https://docs.lammps.org/special_bonds.html) factors.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style coul/diel ](https://docs.lammps.org/pair_coul_diel.html)\n" -}, -{ - "command": [ - "pair_style tracker" - ], - "syntax": [ - "pair_style tracker fix_ID N keyword values attribute1 attribute2 ..." - ], - "args": [ + ], [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "tracker", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "control", "type": 1, "choices": [] }, { - "arg": "fix_ID", - "type": 2, + "arg": "thermal", + "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, + "arg": "flux", + "type": 1, "choices": [] }, { - "arg": "type/include", + "arg": "", "type": 3, "choices": [ - "finite", - "time/min", - "type/include" + "faceset", + "interpolate" ] }, { - "arg": "values", - "type": 2, - "choices": [] - }, - { - "arg": "attribute1", - "type": 2, - "choices": [] - }, - { - "arg": "attribute2", + "arg": "", "type": 2, "choices": [] } - ] - ], - "parameters": "* fix_ID = ID of associated internal fix to store data\n* N = prepare data for output every this many timesteps\n* zero or more keywords may be appended\n* keyword = finite or time/min or type/include \n *       finite value = none \n        pair style uses atomic diameters to identify contacts \n *       time/min value = T \n        T = minimum number of timesteps of interaction \n *       type/include value = list1 list2 \n        list1,list2 = separate lists of types (see below) \n* one or more attributes may be appended \n *        possible attributes = id1 id2 time/created time/broken time/total \n         r/min r/ave x y z \n         id1, id2 = IDs of the two atoms in each pair interaction \n         time/created = the timestep that the two atoms began interacting \n         time/broken = the timestep that the two atoms stopped interacting \n         time/total = the total number of timesteps the two atoms interacted \n         r/min = the minimum radial distance between the two atoms during the interaction (distance units) \n         r/ave = the average radial distance between the two atoms during the interaction (distance units) \n         x, y, z = the center of mass position of the two atoms when they stopped interacting (distance units) \n", - "examples": "\n```lmps\npair_style hybrid/overlay tracker myfix 1000 id1 id2 type/include 1 * type/include 2 3,4 lj/cut 2.5\npair_coeff 1 1 tracker 2.0\n\npair_style hybrid/overlay tracker myfix 1000 finite x y z time/min 100 granular\npair_coeff * * tracker\n\ndump 1 all local 1000 dump.local f_myfix[1] f_myfix[2] f_myfix[3]\ndump_modify 1 write_header no\n```\n", - "html_filename": "pair_tracker.html", - "short_description": "Style *tracker* monitors information about pairwise interactions", - "description": "Style *tracker* monitors information about pairwise interactions. It\ndoes not calculate any forces on atoms. [Pair hybrid/overlay](https://docs.lammps.org/pair_hybrid.html) can be used to combine this pair style with any other\npair style, as shown in the examples above.\n\nAt each timestep, if two neighboring atoms move beyond the interaction\ncutoff, pairwise data is processed and transferred to an internal fix\nlabeled *fix_ID*. This allows the local data to be accessed by other\nLAMMPS commands. Additional\nfilters can be applied using the *time/min* or *type/include* keywords\ndescribed below. Note that this is the interaction cutoff defined by\nthis pair style, not the short-range cutoff defined by the pair style\nthat is calculating forces on atoms.\n\nFollowing any optional keyword/value arguments, a list of one or more\nattributes is specified. These include the IDs of the two atoms in\nthe pair. The other attributes for the pair of atoms are the\nduration of time they were \"interacting\" or at the point in time they\nstarted or stopped interacting. In this context, \"interacting\" means\nthe time window during which the two atoms were closer than the\ninteraction cutoff distance. The attributes for time/* refer to\ntimesteps.\n\nData is continuously accumulated by the internal fix over intervals of *N*\ntimesteps. At the end of each interval, all of the saved accumulated\ndata is deleted to make room for new data. Individual datum may\ntherefore persist anywhere between *1* to *N* timesteps depending on\nwhen they are saved. This data can be accessed using the *fix_ID* and a\n[dump local ](https://docs.lammps.org/dump.html) command. To ensure all data is output,\nthe dump frequency should correspond to the same interval of *N*\ntimesteps. A dump frequency of an integer multiple of *N* can be used\nto regularly output a sample of the accumulated data.\n\n----------\n\nThe following optional keywords may be used.\n\nIf the *finite* keyword is not used, the following coefficients must\nbe defined for each pair of atom types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as described\nbelow:\n\n* cutoff (distance units)\n\nIf the *finite* keyword is used, there are no additional coefficients\nto set for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. Interaction cutoffs are\ninstead calculated based on the diameter of finite particles. However\nyou must still use the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) for all atom\ntypes. For example the command\n\n```lmps\npair_coeff * *\n```\nshould be used.\n\nThe *time/min* keyword sets a minimum amount of time that an\ninteraction must persist to be included. This setting can be used to\ncensor short-lived interactions.\n\nThe *type/include* keyword filters interactions based on the types of\nthe two atoms. Data is only saved for interactions between atoms\nwhose two atom types appear in *list1* and *list2*. Atom type 1 must\nbe in list1 and atom type 2 in list2. Or vice versa.\n\nEach type list consists of a series of type ranges separated by\ncommas. Each range can be specified as a single numeric value, or a\nwildcard asterisk can be used to specify a range of values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". For example, if M =\nthe number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to M. A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from n to M\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). Note that the *type/include* keyword can be specified\nmultiple times.\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the cutoff coefficient and cutoff\ndistance for this pair style can be mixed. The cutoff is always mixed\nvia a *geometric* rule. The cutoff is mixed according to the\npair_modify mix value. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style writes its information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options\nare not relevant for this pair style.\n\nThe accumulated data is not written to restart files and should be\noutput before a restart file is written to avoid missing data.\n\nThe internal fix calculates a local vector or local array depending on the\nnumber of input values. The length of the vector or number of rows in\nthe array is the number of recorded, lost interactions. If a single\ninput is specified, a local vector is produced. If two or more inputs\nare specified, a local array is produced where the number of columns =\nthe number of inputs. The vector or array can be accessed by any\ncommand that uses local values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector or array will be floating point values that correspond to\nthe specified attribute.\n\n----------\n", - "restrictions": "This pair style is part of the MISC package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style is currently incompatible with granular pair styles\nthat extend beyond the contact (e.g. JKR and DMT).\n", - "related": "none" -}, -{ - "command": [ - "fix_modify AtC filter type" - ], - "syntax": [ - "fix_modify filter type " - ], - "args": [ + ], [ { "arg": "fix_modify", @@ -33804,217 +32981,216 @@ export const command_docs = [ "choices": [] }, { - "arg": "filter", + "arg": "control", "type": 1, "choices": [] }, { - "arg": "type", + "arg": "thermal", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "exponential", - "step", - "no_filter" - ] + "arg": "correction_max_iterations", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter type = name of the AtC sub-command\n* exponential or step or no_filter = select type of filter \n", - "examples": "\n```lmps\nfix_modify AtC filter type exponential\n```\n", - "html_filename": "atc_filter_type.html", - "short_description": "Specifies the type of time filter used", - "description": "Specifies the type of time filter used.\n", - "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control = name of the AtC sub-command\n* physics_type = thermal or momentum\n* solution_parameter = max_iterations or tolerance\n* value = solution_parameter value\n* thermal control_type = none or rescale or hoover or flux\n* frequency = time step frequency for applying velocity rescaling\n* boundary_integration_type = faceset or interpolate (optional)\n* faceset_id = id of boundary face set (optional, only for faceset)\n* correction_max_iterations = maximum number of iterations that will be used by iterative matrix solvers for thermal physics type \n", + "examples": "\n```lmps\nfix_modify AtC control thermal none\nfix_modify AtC control thermal rescale 10\nfix_modify AtC control thermal hoover\nfix_modify AtC control thermal flux\nfix_modify AtC control thermal flux faceset bndy_faces\nfix_modify AtC control thermal correction_max_iterations 10\n```\n", + "html_filename": "atc_control_thermal.html", + "short_description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm", + "description": "The general version of *control* sets the numerical parameters for the\nmatrix solvers used in the specified control algorithm. Many solution\napproaches require iterative solvers, and these methods enable users to\nprovide the maximum number of iterations and the relative tolerance.\n\nThe *control thermal* version sets the energy exchange mechanism from\nthe finite elements to the atoms, managed through a control algorithm.\n*rescale* computes a scale factor for each atom to match the finite\nelement temperature. *hoover* is a Gaussian least-constraint isokinetic\nthermostat enforces that the nodal restricted atomic temperature matches\nthe finite element temperature. *flux* is a similar mode, but rather\nadds energy to the atoms based on conservation of energy. *hoover* and\n*flux* allow the prescription of sources or fixed temperatures on the\natoms.\n\n*correction_max_iterations* sets the maximum number of iterations to\ncompute the second order in time correction term for lambda with the\nfractional step method. The method uses the same tolerance as the\ncontroller's matrix solver.\n", + "restrictions": "Only for be used with the specific controllers *thermal* or *momentum*.\nThey are ignored if a lumped solution is requested.\n\n*control thermal* is only for be used with specific transfers: thermal (*rescale*, *hoover*, *flux* ), *two_temperature* (*flux* ).\n*rescale* not valid with time filtering activated\n\n*correction_max_iterations* is only for use with *thermal* physics using\nthe fractional step method.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC control momentum ](https://docs.lammps.org/atc_control_momentum.html)\n" }, { "command": [ - "read_dump" + "pair_style drip" ], "syntax": [ - "read_dump file Nstep field1 field2 ... keyword values ..." + "pair_style hybrid/overlay drip [styles ...]" ], "args": [ [ { - "arg": "read_dump", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "file", - "type": 2, - "choices": [] - }, - { - "arg": "Nstep", + "arg": "hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "field1", - "type": 2, + "arg": "drip", + "type": 1, "choices": [] }, { - "arg": "field2", + "arg": "[styles", "type": 2, "choices": [] }, { - "arg": "format", - "type": 3, - "choices": [ - "nfile", - "box", - "timestep", - "replace", - "purge", - "trim", - "add", - "label", - "scaled", - "wrapped", - "format" - ] - }, - { - "arg": "values", + "arg": "...]", "type": 2, "choices": [] } ] ], - "parameters": "* file = name of dump file to read\n* Nstep = snapshot timestep to read from file\n* one or more fields may be appended \n *      field = x or y or z or vx or vy or vz or q or ix or iy or iz or fx or fy or fz \n       x, y, z = atom coordinates \n       vx, vy, vz = velocity components \n       q = charge \n       ix, iy, iz = image flags in each dimension \n       fx, fy, fz = force components \n* zero or more keyword/value pairs may be appended\n* keyword = nfile or box or timestep or replace or purge or trim or add or label or scaled or wrapped or format \n *        nfile value = Nfiles = how many parallel dump files exist \n *        box value = yes or no = replace simulation box with dump box \n *        timestep value = yes or no = reset simulation timestep with dump timestep \n *        replace value = yes or no = overwrite atoms with dump atoms \n *        purge value = yes or no = delete all atoms before adding dump atoms \n *        trim value = yes or no = trim atoms not in dump snapshot \n *        add value = yes or keep or no = add new dump atoms to system \n *        label value = field column \n         field = one of the listed fields or id or type \n         column = label on corresponding column in dump file \n *        scaled value = yes or no = coords in dump file are scaled/unscaled \n *        wrapped value = yes or no = coords in dump file are wrapped/unwrapped \n *        format values = format of dump file, must be last keyword if used \n         native = native LAMMPS dump file \n         xyz = XYZ file \n         adios [timeout value] = dump file written by the [dump adios ](https://docs.lammps.org/dump_adios.html) command \n         timeout = specify waiting time for the arrival of the timestep when running concurrently. \n         The value is a float number and is interpreted in seconds. \n         molfile style path = VMD molfile plugin interface \n         style = dcd or xyz or others supported by molfile plugins \n         path = optional path for location of molfile plugins \n", - "examples": "\n```lmps\nread_dump dump.file 5000 x y z\nread_dump dump.xyz 5 x y z box no format xyz\nread_dump dump.xyz 10 x y z box no format molfile xyz \"../plugins\"\nread_dump dump.dcd 0 x y z box yes format molfile dcd\nread_dump dump.file 1000 x y z vx vy vz box yes format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile\nread_dump dump.file 5000 x y vx vy trim yes\nread_dump dump.file 5000 x y vx vy add yes box no timestep no\nread_dump ../run7/dump.file.gz 10000 x y z box yes\nread_dump dump.xyz 10 x y z box no format molfile xyz ../plugins\nread_dump dump.dcd 0 x y z format molfile dcd\nread_dump dump.file 1000 x y z vx vy vz format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile\nread_dump dump.bp 5000 x y z vx vy vz format adios\nread_dump dump.bp 5000 x y z vx vy vz format adios timeout 60.0\n```\n", - "html_filename": "read_dump.html", - "short_description": "Read atom information from a dump file to overwrite the current atom\ncoordinates, and optionally the atom velocities and image flags, the\nsimulation timestep, and the simulation box dimensions", - "description": "Read atom information from a dump file to overwrite the current atom\ncoordinates, and optionally the atom velocities and image flags, the\nsimulation timestep, and the simulation box dimensions. This is useful\nfor restarting a run from a particular snapshot in a dump file. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) and [read_data ](https://docs.lammps.org/read_data.html)\ncommands for alternative methods to do this. Also see the\n[rerun ](https://docs.lammps.org/rerun.html) command for a means of reading multiple snapshots\nfrom a dump file.\n\nNote that a simulation box must already be defined before using the\nread_dump command. This can be done by the\n[create_box ](https://docs.lammps.org/create_box.html), [read_data ](https://docs.lammps.org/read_data.html), or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. The read_dump command can\nreset the simulation box dimensions, as explained below.\n\nAlso note that reading per-atom information from a dump snapshot is\nlimited to the atom coordinates, velocities and image flags, as\nexplained below. Other atom properties, which may be necessary to run\na valid simulation, such as atom charge, or bond topology information\nfor a molecular system, are not read from (or may not even be contained\nin) dump files. Thus this auxiliary information should be defined in\nthe usual way, e.g. in a data file read in by a [read_data ](https://docs.lammps.org/read_data.html)\ncommand, before using the read_dump command, or by the [set ](https://docs.lammps.org/set.html)\ncommand, after the dump snapshot is read.\n\n----------\n\nIf the dump filename specified as *file* ends with \".gz\", the dump\nfile is read in gzipped format.\n\nYou can read dump files that were written (in parallel) to multiple\nfiles via the \"%\" wild-card character in the dump file name. If any\nspecified dump file name contains a \"%\", they must all contain it.\nSee the [dump ](https://docs.lammps.org/dump.html) command for details.\nThe \"%\" wild-card character is only supported by the *native* format\nfor dump files, described next.\n\nIf reading parallel dump files, you must also use the *nfile* keyword\nto tell LAMMPS how many parallel files exist, via its specified\n*Nfiles* value.\n\nThe format of the dump file is selected through the *format* keyword.\nIf specified, it must be the last keyword used, since all remaining\narguments are passed on to the dump reader. The *native* format is\nfor native LAMMPS dump files, written with a [dump atom ](https://docs.lammps.org/dump.html)\nor [dump custom ](https://docs.lammps.org/dump.html) command. The *xyz* format is for generic XYZ\nformatted dump files. These formats take no additional values.\n\nThe *molfile* format supports reading data through using the [VMD ](https://www.ks.uiuc.edu/Research/vmd)\nmolfile plugin interface. This dump reader format is only available,\nif the MOLFILE package has been installed when compiling\nLAMMPS.\n\nThe *molfile* format takes one or two additional values. The *style*\nvalue determines the file format to be used and can be any format that\nthe molfile plugins support, such as DCD or XYZ. Note that DCD dump\nfiles can be written by LAMMPS via the [dump dcd ](https://docs.lammps.org/dump.html) command.\nThe *path* value specifies a list of directories which LAMMPS will\nsearch for the molfile plugins appropriate to the specified *style* .\nThe syntax of the *path* value is like other search paths: it can\ncontain multiple directories separated by a colon (or semicolon on\nwindows). The *path* keyword is optional and defaults to \".\",\ni.e. the current directory.\n\nThe *adios* format supports reading data that was written by the\n[dump adios ](https://docs.lammps.org/dump_adios.html) command. The\nentire dump is read in parallel across all the processes, dividing\nthe atoms evenly among the processes. The number of writers that\nhas written the dump file does not matter. Using the adios style for\ndump and read_dump is a convenient way to dump all atoms from *N*\nwriters and read it back by *M* readers. If one is running two\nLAMMPS instances concurrently where one dumps data and the other is\nreading it with the rerun command, the timeout option can be specified\nto wait on the reader side for the arrival of the requested step.\n\nSupport for other dump format readers may be added in the future.\n\n----------\n\nGlobal information is first read from the dump file, namely timestep\nand box information.\n\nThe dump file is scanned for a snapshot with a timestamp that matches\nthe specified *Nstep* . This means the LAMMPS timestep the dump file\nsnapshot was written on for the *native* or *adios* formats.\n\nThe list of timestamps available in an adios .bp file is stored in the\nvariable *ntimestep*:\n\n```\n$ bpls dump.bp -d ntimestep\nuint64_t ntimestep 5*scalar\n(0) 0 50 100 150 200\n```\nNote that the *xyz* and *molfile* formats do not store the timestep.\nFor these formats, timesteps are numbered logically, in a sequential\nmanner, starting from 0. Thus to access the 10th snapshot in an *xyz*\nor *mofile* formatted dump file, use *Nstep* = 9.\n\nThe dimensions of the simulation box for the selected snapshot are\nalso read; see the *box* keyword discussion below. For the *native*\nformat, an error is generated if the snapshot is for a triclinic box\nand the current simulation box is orthogonal or vice versa. A warning\nwill be generated if the snapshot box boundary conditions (periodic,\nshrink-wrapped, etc) do not match the current simulation boundary\nconditions, but the boundary condition information in the snapshot is\notherwise ignored. See the \"boundary\" command for more details. The\n*adios* reader does the same as the *native* format reader.\n\nFor the *xyz* format, no information about the box is available, so\nyou must set the *box* flag to *no* . See details below.\n\nFor the *molfile* format, reading simulation box information is\ntypically supported, but the location of the simulation box origin is\nlost and no explicit information about periodicity or\northogonal/triclinic box shape is available. The MOLFILE package\nmakes a best effort to guess based on heuristics, but this may not\nalways work perfectly.\n\n----------\n\nPer-atom information from the dump file snapshot is then read from the\ndump file snapshot. This corresponds to the specified *fields* listed\nin the read_dump command. It is an error to specify a z-dimension\nfield, namely *z*, *vz*, or *iz*, for a 2d simulation.\n\nFor dump files in *native* format, each column of per-atom data has a\ntext label listed in the file. A matching label for each field must\nappear, e.g. the label \"vy\" for the field *vy* . For the *x*, *y*, *z*\nfields any of the following labels are considered a match:\n\n```\nx, xs, xu, xsu for field *x*\ny, ys, yu, ysu for field *y*\nz, zs, zu, zsu for field *z*\n```\nThe meaning of xs (scaled), xu (unwrapped), and xsu (scaled and\nunwrapped) is explained on the [dump ](https://docs.lammps.org/dump.html) command doc page.\nThese labels are searched for in the list of column labels in the dump\nfile, in order, until a match is found.\n\nThe dump file must also contain atom IDs, with a column label of \"id\".\n\nIf the *add* keyword is specified with a value of *yes* or *keep*, as\ndiscussed below, the dump file must contain atom types, with a column\nlabel of \"type\".\n\nIf a column label you want to read from the dump file is not a match\nto a specified field, the *label* keyword can be used to specify the\nspecific column label from the dump file to associate with that field.\nAn example is if a time-averaged coordinate is written to the dump\nfile via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) command. The column\nwill then have a label corresponding to the fix-ID rather than \"x\" or\n\"xs\". The *label* keyword can also be used to specify new column\nlabels for fields *id* and *type* .\n\nFor dump files in *xyz* format, only the *x*, *y*, and *z* fields are\nsupported. The dump file does not store atom IDs, so these are\nassigned consecutively to the atoms as they appear in the dump file,\nstarting from 1. Thus you should ensure that order of atoms is\nconsistent from snapshot to snapshot in the XYZ dump file. See\nthe [dump_modify sort ](https://docs.lammps.org/dump_modify.html) command if the XYZ dump file\nwas written by LAMMPS.\n\nFor dump files in *molfile* format, the *x*, *y*, *z*, *vx*, *vy*, and\n*vz* fields can be specified. However, not all molfile formats store\nvelocities, or their respective plugins may not support reading of\nvelocities. The molfile dump files do not store atom IDs, so these\nare assigned consecutively to the atoms as they appear in the dump\nfile, starting from 1. Thus you should ensure that order of atoms are\nconsistent from snapshot to snapshot in the molfile dump file.\nSee the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) command if the dump file\nwas written by LAMMPS.\n\nThe *adios* format supports all fields that the *native* format supports\nexcept for the *q* charge field.\nThe list of fields stored in an adios .bp file is recorded in the attributes\n*columns* (array of short strings) and *columnstr* (space-separated single string).\n\n```\n$ bpls -la dump.bp column*\nstring columns attr = {\"id\", \"type\", \"x\", \"y\", \"z\", \"vx\", \"vy\", \"vz\"}\nstring columnstr attr = \"id type x y z vx vy vz \"\n```\n----------\n\nInformation from the dump file snapshot is used to overwrite or\nreplace properties of the current system. There are various options\nfor how this is done, determined by the specified fields and optional\nkeywords.\n\nThe timestep of the snapshot becomes the current timestep for the\nsimulation unless the *timestep* keyword is specified with a *no* value\n(default setting is *yes*). See the [reset_timestep ](https://docs.lammps.org/reset_timestep.html)\ncommand if you wish to change this to a different value after the dump\nsnapshot is read.\n\nIf the *box* keyword is specified with a *yes* value, then the current\nsimulation box dimensions are replaced by the dump snapshot box\ndimensions. If the *box* keyword is specified with a *no* value, the\ncurrent simulation box is unchanged.\n\nIf the *purge* keyword is specified with a *yes* value, then all\ncurrent atoms in the system are deleted before any of the operations\ninvoked by the *replace*, *trim*, or *add* keywords take place.\n\nIf the *replace* keyword is specified with a *yes* value, then atoms\nwith IDs that are in both the current system and the dump snapshot\nhave their properties overwritten by field values. If the *replace*\nkeyword is specified with a *no* value, atoms with IDs that are in\nboth the current system and the dump snapshot are not modified.\n\nIf the *trim* keyword is specified with a *yes* value, then atoms with\nIDs that are in the current system but not in the dump snapshot are\ndeleted. These atoms are unaffected if the *trim* keyword is\nspecified with a *no* value.\n\nIf the *add* keyword is specified with a *no* value (default), then\ndump file atoms with IDs that are not in the current system are not\nadded to the system. They are simply ignored.\n\nIf a *yes* value is specified, the atoms with new IDs are added to the\nsystem but their atom IDs are not preserved. Instead, after all the\natoms are added, new IDs are assigned to them in the same manner as is\ndescribed for the [create_atoms ](https://docs.lammps.org/create_atoms.html) command. Basically\nthe largest existing atom ID in the system is identified, and all the\nadded atoms are assigned IDs that consecutively follow the largest ID.\n\nIf a *keep* value is specified, the atoms with new IDs are added to\nthe system and their atom IDs are preserved. This may lead to\nnon-contiguous IDs for the combined system.\n\nNote that atoms added via the *add* keyword will only have the\nattributes read from the dump file due to the *field* arguments. For\nexample, if *x* or *y* or *z* or *q* is not specified as a field, a\nvalue of 0.0 is used for added atoms. Added atoms must have an atom\ntype, so this value must appear in the dump file.\n\nAny other attributes (e.g. charge or particle diameter for spherical\nparticles) will be set to default values, the same as if the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command were used.\n\n----------\n\nAtom coordinates read from the dump file are first converted into\nunscaled coordinates, relative to the box dimensions of the snapshot.\nThese coordinates are then be assigned to an existing or new atom in\nthe current simulation. The coordinates will then be remapped to the\nsimulation box, whether it is the original box or the dump snapshot\nbox. If periodic boundary conditions apply, this means the atom will\nbe remapped back into the simulation box if necessary. If shrink-wrap\nboundary conditions apply, the new coordinates may change the\nsimulation box dimensions. If fixed boundary conditions apply, the\natom will be lost if it is outside the simulation box.\n\nFor *native* format dump files, the 3 xyz image flags for an atom in\nthe dump file are set to the corresponding values appearing in the\ndump file if the *ix*, *iy*, *iz* fields are specified. If not\nspecified, the image flags for replaced atoms are not changed and\nimage flags for new atoms are set to default values. If coordinates\nread from the dump file are in unwrapped format (e.g. *xu* ) then the\nimage flags for read-in atoms are also set to default values. The\nremapping procedure described in the previous paragraph will then\nchange images flags for all atoms (old and new) if periodic boundary\nconditions are applied to remap an atom back into the simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you get a warning about inconsistent image flags after\n > reading in a dump snapshot, it means one or more pairs of bonded atoms\n > now have inconsistent image flags. As discussed on the [Errors common ](https://docs.lammps.org/Errors_common.html) page this may or may not cause problems\n > for subsequent simulations. One way this can happen is if you read\n > image flag fields from the dump file but do not also use the dump file\n > box parameters. \n > \n\nLAMMPS knows how to compute unscaled and remapped coordinates for the\nsnapshot column labels discussed above, e.g. *x*, *xs*, *xu*, *xsu* .\nIf another column label is assigned to the *x* or *y* or *z* field via\nthe *label* keyword, e.g. for coordinates output by the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) command, then LAMMPS needs to know whether\nthe coordinate information in the dump file is scaled and/or wrapped.\nThis can be set via the *scaled* and *wrapped* keywords. Note that\nthe value of the *scaled* and *wrapped* keywords is ignored for fields\n*x* or *y* or *z* if the *label* keyword is not used to assign a\ncolumn label to that field.\n\nThe scaled/unscaled and wrapped/unwrapped setting must be identical\nfor any of the *x*, *y*, *z* fields that are specified. Thus you\ncannot read *xs* and *yu* from the dump file. Also, if the dump file\ncoordinates are scaled and the simulation box is triclinic, then all 3\nof the *x*, *y*, *z* fields must be specified, since they are all\nneeded to generate absolute, unscaled coordinates.\n\n----------\n", - "restrictions": "To read gzipped dump files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n\nThe *molfile* dump file formats are part of the MOLFILE package.\nThey are only enabled if LAMMPS was built with that packages. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo write and read adios .bp files, you must compile LAMMPS with the\n:ref:`ADIOS ` package.\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump molfile ](https://docs.lammps.org/dump_molfile.html),\n[dump adios ](https://docs.lammps.org/dump_adios.html),\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[rerun ](https://docs.lammps.org/rerun.html)\n" + "parameters": "* styles = other styles to be overlayed with drip (optional) \n", + "examples": "\n```lmps\npair_style hybrid/overlay drip\npair_coeff * * none\npair_coeff * * drip C.drip C\n\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C\npair_coeff * * rebo CH.airebo C\n\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C NULL\npair_coeff * * rebo CH.airebo C H\n```\n", + "html_filename": "pair_drip.html", + "short_description": "Style *drip* computes the interlayer interactions of layered materials using\nthe dihedral-angle-corrected registry-dependent (DRIP) potential as described\nin **Wen2018**, which is based on the **Kolmogorov2005**\npotential and provides an improved prediction for forces", + "description": "Style *drip* computes the interlayer interactions of layered materials using\nthe dihedral-angle-corrected registry-dependent (DRIP) potential as described\nin **Wen2018**, which is based on the **Kolmogorov2005**\npotential and provides an improved prediction for forces.\nThe total potential energy of a system is\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_{i} \\sum_{j\\notin\\text{layer}\\,i} \\phi_{ij} \\\\\n \\phi_{ij} = &f_\\text{c}(x_r) \\left[ e^{-\\lambda(r_{ij} - z_0 )} \\left[C+f(\\rho_{ij})+ g(\\rho_{ij}, \\{\\alpha_{ij}^{(m)}\\}) \\right]- A\\left (\\frac{z_0}{r_{ij}} \\right)^6 \\right] \\end{align*} \\]\nwhere the \\(r^{-6}\\) term models the attractive London dispersion,\nthe exponential term is designed to capture the registry effect due to\noverlapping *pi* bonds, and *fc* is a cutoff function.\n\nThis potential (DRIP) only provides the interlayer interactions between\ngraphene layers. So, to perform a realistic simulation, it should be used in\ncombination with an intralayer potential such as [REBO ](https://docs.lammps.org/pair_airebo.html) and\n[Tersoff ](https://docs.lammps.org/pair_tersoff.html).\nTo keep the intralayer interactions unaffected, we should avoid applying DRIP\nto contribute energy to intralayer interactions. This can be achieved by\nassigning different molecular IDs to atoms in different layers, and DRIP is\nimplemented such that only atoms with different molecular ID can interact with\neach other. For this purpose, [atom style ](https://docs.lammps.org/atom_style.html) \"molecular\" or\n\"full\" has to be used.\n\nOn the other way around, [REBO ](https://docs.lammps.org/pair_airebo.html) ([Tersoff ](https://docs.lammps.org/pair_tersoff.html)\nor any other potential used to provide the intralayer interactions) should not\ninterfere with the interlayer interactions described by DRIP. This is typically\nautomatically achieved using the commands provided in the *Examples* section\nabove, since the cutoff distance for carbon-carbon interaction in the intralayer\npotentials (e.g. 2 Angstrom for [REBO ](https://docs.lammps.org/pair_airebo.html)) is much smaller than\nthe equilibrium layer distance of graphene layers (about 3.4 Angstrom).\nIf you want, you can enforce this by assigning different atom types to atoms in\ndifferent layers, and apply an intralayer potential to one atom type.\nSee [pair_hybrid ](https://docs.lammps.org/pair_hybrid.html) for details.\n\n----------\n\nThe [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for DRIP takes *4+N* arguments, where\n*N* is the number of LAMMPS atom types. The fist three arguments must be fixed\nto be *\\* \\* drip*, the fourth argument is the path to the DRIP parameter file,\nand the remaining N arguments specifying the mapping between element in the\nparameter file and atom types. For example, if your LAMMPS simulation has 3 atom\ntypes and you want all of them to be C, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * drip C.drip C C C\n```\nIf a mapping value is specified as NULL, the mapping is not performed. This\ncould be useful when DRIP is used to model part of the system where other\nelement exists. Suppose you have a hydrocarbon system, with C of atom type 1\nand H of atom type 2, you can use the following command to inform DRIP not to\nmodel H atoms:\n\n```lmps\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C NULL\npair_coeff * * rebo CH.airebo C H\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The potential parameters developed in **Wen2018** are provided with\n > LAMMPS (see the \"potentials\" directory). Besides those in **Wen2018**, an\n > additional parameter \"normal_cutoff\", specific to the LAMMPS implementation, is\n > used to find the three nearest neighbors of an atom to construct the normal. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table,\nand tail options.\n\nThis pair style does not write their information to binary restart files, since\nit is stored in potential files. Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\n**(Wen2018)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018) \n \n**(Kolmogorov2005)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(Wen2018)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018) \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\" for\npair interactions.\n\nThe *C.drip* parameter file provided with LAMMPS (see the \"potentials\"\ndirectory) is parameterized for metal [units ](https://docs.lammps.org/units.html). You can use\nthe DRIP potential with any LAMMPS units, but you would need to create\nyour own custom parameter file with coefficients listed in the\nappropriate units, if your simulation does not use \"metal\" units.\n", + "related": "[pair_style lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n----------\n\n.. _Wen2018:\n\n**(Wen)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018)\n\n.. _Kolmogorov2005:\n\n**(Kolmogorov)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005)\n" }, { "command": [ - "fitpod" + "fix nvt/sphere", + "fix nvt/sphere/omp" ], "syntax": [ - "fitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod" + "fix ID group-ID nvt/sphere keyword value ..." ], "args": [ [ { - "arg": "fitpod", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "Ta_param.pod", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "Ta_data.pod", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "Ta_coefficients.pod", + "arg": "nvt/sphere", + "type": 3, + "choices": [ + "nvt/sphere", + "nvt/sphere/omp" + ] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* fitpod = style name of this command\n* Ta_param.pod = an input file that describes proper orthogonal descriptors (PODs)\n* Ta_data.pod = an input file that specifies DFT data used to fit a POD potential\n* Ta_coefficients.pod (optional) = an input file that specifies trainable coefficients of a POD potential \n", - "examples": "\n```lmps\nfitpod Ta_param.pod Ta_data.pod\nfitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod\n```\n", - "html_filename": "fitpod_command.html", - "short_description": "\nFit a machine-learning interatomic potential (ML-IAP) based on proper\northogonal descriptors (POD); please see **Nguyen20222a**, **Nguyen20232a**, **Nguyen20242a**, and **Nguyen20243a** for details", - "description": "\nFit a machine-learning interatomic potential (ML-IAP) based on proper\northogonal descriptors (POD); please see **Nguyen20222a**, **Nguyen20232a**, **Nguyen20242a**, and **Nguyen20243a** for details.\nThe fitted POD potential can be used to run MD simulations via\n[pair_style pod ](https://docs.lammps.org/pair_pod.html).\n\nTwo input files are required for this command. The first input file\ndescribes a POD potential parameter settings, while the second input\nfile specifies the DFT data used for the fitting procedure. All keywords\nexcept *species* have default values. If a keyword is not set in the\ninput file, its default value is used. The table below has one-line\ndescriptions of all the keywords that can be used in the first input\nfile (i.e. ``Ta_param.pod``)\n\n | | | | | \n |---|---|---|---|\n Keyword | Default | Type | Description|\n species | (none) | STRING | Chemical symbols for all elements in the system and have to match XYZ training files.|\n pbc | 1 1 1 | INT | three integer constants specify boundary conditions|\n rin | 0.5 | REAL | a real number specifies the inner cut-off radius|\n rcut | 5.0 | REAL | a real number specifies the outer cut-off radius|\n bessel_polynomial_degree | 4 | INT | the maximum degree of Bessel polynomials|\n inverse_polynomial_degree | 8 | INT | the maximum degree of inverse radial basis functions|\n number_of_environment_clusters | 1 | INT | the number of clusters for environment-adaptive potentials|\n number_of_principal_components | 2 | INT | the number of principal components for dimensionality reduction|\n onebody | 1 | BOOL | turns on/off one-body potential|\n twobody_number_radial_basis_functions | 8 | INT | number of radial basis functions for two-body potential|\n threebody_number_radial_basis_functions | 6 | INT | number of radial basis functions for three-body potential|\n threebody_angular_degree | 5 | INT | angular degree for three-body potential|\n fourbody_number_radial_basis_functions | 4 | INT | number of radial basis functions for four-body potential|\n fourbody_angular_degree | 3 | INT | angular degree for four-body potential|\n fivebody_number_radial_basis_functions | 0 | INT | number of radial basis functions for five-body potential|\n fivebody_angular_degree | 0 | INT | angular degree for five-body potential|\n sixbody_number_radial_basis_functions | 0 | INT | number of radial basis functions for six-body potential|\n sixbody_angular_degree | 0 | INT | angular degree for six-body potential|\n sevenbody_number_radial_basis_functions | 0 | INT | number of radial basis functions for seven-body potential|\n \nNote that both the number of radial basis functions and angular degree\nmust decrease as the body order increases. The next table describes all\nkeywords that can be used in the second input file (i.e. ``Ta_data.pod``\nin the example above):\n\n | | | | | \n |---|---|---|---|\n Keyword | Default | Type | Description|\n file_format | extxyz | STRING | only the extended xyz format (extxyz) is currently supported|\n file_extension | xyz | STRING | extension of the data files|\n path_to_training_data_set | (none) | STRING | specifies the path to training data files in double quotes|\n path_to_test_data_set | \"\" | STRING | specifies the path to test data files in double quotes|\n path_to_environment_configuration_set | \"\" | STRING | specifies the path to environment configuration files in double quotes|\n fraction_training_data_set | 1.0 | REAL | a real number (<= 1.0) specifies the fraction of the training set used to fit POD|\n randomize_training_data_set | 0 | BOOL | turns on/off randomization of the training set|\n fraction_test_data_set | 1.0 | REAL | a real number (<= 1.0) specifies the fraction of the test set used to validate POD|\n randomize_test_data_set | 0 | BOOL | turns on/off randomization of the test set|\n fitting_weight_energy | 100.0 | REAL | a real constant specifies the weight for energy in the least-squares fit|\n fitting_weight_force | 1.0 | REAL | a real constant specifies the weight for force in the least-squares fit|\n fitting_regularization_parameter | 1.0e-10 | REAL | a real constant specifies the regularization parameter in the least-squares fit|\n error_analysis_for_training_data_set | 0 | BOOL | turns on/off error analysis for the training data set|\n error_analysis_for_test_data_set | 0 | BOOL | turns on/off error analysis for the test data set|\n basename_for_output_files | pod | STRING | a basename string added to the output files|\n precision_for_pod_coefficients | 8 | INT | number of digits after the decimal points for numbers in the coefficient file|\n \nAll keywords except *path_to_training_data_set* have default values. If\na keyword is not set in the input file, its default value is used. After\nsuccessful training, a number of output files are produced, if enabled:\n\n* ``_training_errors.pod`` reports the errors in energy and forces for the training data set\n* ``_training_analysis.pod`` reports detailed errors for all training configurations\n* ``_test_errors.pod`` reports errors for the test data set\n* ``_test_analysis.pod`` reports detailed errors for all test configurations\n* ``_coefficients.pod`` contains the coefficients of the POD potential\n\nAfter training the POD potential, ``Ta_param.pod`` and\n``_coefficients.pod`` are the two files needed to use the POD\npotential in LAMMPS. See [pair_style pod ](https://docs.lammps.org/pair_pod.html) for using the\nPOD potential. Examples about training and using POD potentials are\nfound in the directory lammps/examples/PACKAGES/pod and the Github repo\nhttps://github.com/cesmix-mit/pod-examples.\n\nLoss Function Group Weights\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe *group_weights* keyword in the ``data.pod`` file is responsible for\nweighting certain groups of configurations in the loss function. For\nexample:\n\n```lmps\ngroup_weights table\nDisplaced_A15 100.0 1.0\nDisplaced_BCC 100.0 1.0\nDisplaced_FCC 100.0 1.0\nElastic_BCC 100.0 1.0\nElastic_FCC 100.0 1.0\nGSF_110 100.0 1.0\nGSF_112 100.0 1.0\nLiquid 100.0 1.0\nSurface 100.0 1.0\nVolume_A15 100.0 1.0\nVolume_BCC 100.0 1.0\nVolume_FCC 100.0 1.0\n```\nThis will apply an energy weight of ``100.0`` and a force weight of\n``1.0`` for all groups in the ``Ta`` example. The groups are named by\ntheir respective filename. If certain groups are left out of this table,\nthen the globally defined weights from the ``fitting_weight_energy`` and\n``fitting_weight_force`` keywords will be used.\n\n #### POD Potential\n\nWe consider a multi-element system of *N* atoms with \\(N_{\\rm e}\\)\nunique elements. We denote by \\(\\boldsymbol r_n\\) and \\(Z_n\\)\nposition vector and type of an atom *n* in the system,\nrespectively. Note that we have \\(Z_n \\in \\{1, \\ldots, N_{\\rm e}\n\\}\\), \\(\\boldsymbol R = (\\boldsymbol r_1, \\boldsymbol r_2, \\ldots,\n\\boldsymbol r_N) \\in \\mathbb{R}^{3N}\\), and \\(\\boldsymbol Z = (Z_1,\nZ_2, \\ldots, Z_N) \\in \\mathbb{N}^{N}\\). The total energy of the\nPOD potential is expressed as \\(E(\\boldsymbol R, \\boldsymbol Z) =\n\\sum_{i=1}^N E_i(\\boldsymbol R_i, \\boldsymbol Z_i)\\), where\n\\[\n E_i(\\boldsymbol R_i, \\boldsymbol Z_i) \\ = \\ \\sum_{m=1}^M c_m \\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\]\nHere \\(c_m\\) are trainable coefficients and\n\\(\\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\) are per-atom\nPOD descriptors. Summing the per-atom descriptors over \\(i\\) yields\nthe global descriptors \\(d_m(\\boldsymbol R, \\boldsymbol Z) =\n\\sum_{i=1}^N \\mathcal{D}_{im}(\\boldsymbol R_i, \\boldsymbol Z_i)\\). It\nthus follows that \\(E(\\boldsymbol R, \\boldsymbol Z) = \\sum_{m=1}^M\nc_m d_m(\\boldsymbol R, \\boldsymbol Z)\\).\n\nThe per-atom POD descriptors include one, two, three, four, five, six,\nand seven-body descriptors, which can be specified in the first input\nfile. Furthermore, the per-atom POD descriptors also depend on the\nnumber of environment clusters specified in the first input file.\nPlease see **Nguyen20242a** and **Nguyen20243a** for the detailed description of the per-atom POD\ndescriptors.\n\n #### Training\n\nA POD potential is trained using the least-squares regression against\ndensity functional theory (DFT) data. Let \\(J\\) be the number of\ntraining configurations, with \\(N_j\\) being the number of atoms in\nthe j-th configuration. The training configurations are extracted from\nthe extended XYZ files located in a directory (i.e.,\npath_to_training_data_set in the second input file). Let\n\\(\\{E^{\\star}_j\\}_{j=1}^{J}\\) and \\(\\{\\boldsymbol\nF^{\\star}_j\\}_{j=1}^{J}\\) be the DFT energies and forces for \\(J\\)\nconfigurations. Next, we calculate the global descriptors and their\nderivatives for all training configurations. Let \\(d_{jm}, 1 \\le m\n\\le M\\), be the global descriptors associated with the j-th\nconfiguration, where \\(M\\) is the number of global descriptors. We\nthen form a matrix \\(\\boldsymbol A \\in \\mathbb{R}^{J \\times M}\\)\nwith entries \\(A_{jm} = d_{jm}/ N_j\\) for \\(j=1,\\ldots,J\\) and\n\\(m=1,\\ldots,M\\). Moreover, we form a matrix \\(\\boldsymbol B\n\\in \\mathbb{R}^{\\mathcal{N} \\times M}\\) by stacking the derivatives of\nthe global descriptors for all training configurations from top to\nbottom, where \\(\\mathcal{N} = 3\\sum_{j=1}^{J} N_j\\).\n\nThe coefficient vector \\(\\boldsymbol c\\) of the POD potential is\nfound by solving the following least-squares problem\n\\[\n {\\min}_{\\boldsymbol c \\in \\mathbb{R}^{M}} \\ w_E \\|\\boldsymbol A \\boldsymbol c - \\bar{\\boldsymbol E}^{\\star} \\|^2 + w_F \\|\\boldsymbol B \\boldsymbol c + \\boldsymbol F^{\\star} \\|^2 + w_R \\|\\boldsymbol c \\|^2,\\]\nwhere \\(w_E\\) and \\(w_F\\) are weights for the energy\n(*fitting_weight_energy*) and force (*fitting_weight_force*),\nrespectively; and \\(w_R\\) is the regularization parameter\n(*fitting_regularization_parameter*). Here \\(\\bar{\\boldsymbol\nE}^{\\star} \\in \\mathbb{R}^{J}\\) is a vector of with entries\n\\(\\bar{E}^{\\star}_j = E^{\\star}_j/N_j\\) and \\(\\boldsymbol\nF^{\\star}\\) is a vector of \\(\\mathcal{N}\\) entries obtained by\nstacking \\(\\{\\boldsymbol F^{\\star}_j\\}_{j=1}^{J}\\) from top to\nbottom.\n\n #### Validation\n\nPOD potential can be validated on a test dataset in a directory\nspecified by setting path_to_test_data_set in the second input file. It\nis possible to validate the POD potential after the training is\ncomplete. This is done by providing the coefficient file as an input to\n[fitpod ](https://docs.lammps.org/fitpod_command.html), for example,\n\n```lmps\nfitpod Ta_param.pod Ta_data.pod Ta_coefficients.pod\n```\n\n**(Nguyen20222a)** Nguyen and Rohskopf, Journal of Computational Physics, 480, 112030, (2023). \n \n**(Nguyen20232a)** Nguyen, Physical Review B, 107(14), 144103, (2023). \n \n**(Nguyen20242a)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243a)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n \n**(Nguyen20242a)** Nguyen, Journal of Computational Physics, 113102, (2024). \n \n**(Nguyen20243a)** Nguyen and Sema, https://arxiv.org/abs/2405.00306, (2024). \n ", - "restrictions": "This command is part of the ML-POD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_style pod ](https://docs.lammps.org/pair_pod.html),\n[compute pod/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute podd/atom ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/local ](https://docs.lammps.org/compute_pod_atom.html),\n[compute pod/global ](https://docs.lammps.org/compute_pod_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sphere = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = disc \n *        disc value = none = treat particles as 2d discs, not spheres \n* NOTE: additional thermostat and dipole related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nvt/sphere temp 300.0 300.0 100.0\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 disc\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 drag 0.2\nfix 1 all nvt/sphere temp 300.0 300.0 100.0 update dipole\n```\n", + "html_filename": "fix_nvt_sphere.html", + "short_description": "Perform constant NVT integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover temperature thermostat", + "description": "Perform constant NVT integration to update position, velocity, and\nangular velocity each timestep for finite-size spherical particles in\nthe group using a Nose/Hoover temperature thermostat. V is volume; T\nis temperature. This creates a system trajectory consistent with the\ncanonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the spherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nIf the *disc* keyword is used, then each particle is treated as a 2d\ndisc (circle) instead of as a sphere. This is only possible for 2d\nsimulations, as defined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\nThe only difference between discs and spheres in this context is their\nmoment of inertia, as used in the time integration.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/sphere\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/sphere\n```\nSee the [compute temp/sphere ](https://docs.lammps.org/compute_temp_sphere.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix requires that atoms store torque and angular velocity (omega)\nand a radius as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size spheres. They cannot\nbe point particles.\n\nUse of the *disc* keyword is only allowed for 2d simulations, as\ndefined by the [dimension ](https://docs.lammps.org/dimension.html) keyword.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_sphere ](https://docs.lammps.org/fix_nve_sphere.html),\n [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix npt_sphere ](https://docs.lammps.org/fix_npt_sphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "angle_style cross" + "pair_style smd/tlsph" ], "syntax": [ - "angle_style cross" + "pair_style smd/tlsph args" ], "args": [ [ { - "arg": "angle_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "cross", + "arg": "smd/tlsph", "type": 1, "choices": [] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style cross\nangle_coeff 1 200.0 100.0 100.0 1.25 1.25 107.0\n```\n", - "html_filename": "angle_cross.html", - "short_description": "The *cross* angle style uses a potential that couples the bond stretches of\na bend with the angle stretch of that bend:\n\\[\n E = K_{SS} \\left(r_{12}-r_{12,0}\\right)\\left(r_{32}-r_{32,0}\\right) + K_{BS0}\\left(r_{12}-r_{12,0}\\right)\\left(\\theta-\\theta_0\\right) + K_{BS1}\\left(r_{32}-r_{32,0}\\right)\\left(\\theta-\\theta_0\\right)\\]\nwhere \\(r_{12,0}\\) is the rest value of the bond length between atom 1 and 2,\n\\(r_{32,0}\\) is the rest value of the bond length between atom 3 and 2,\nand \\(\\theta_0\\) is the rest value of the angle", - "description": "The *cross* angle style uses a potential that couples the bond stretches of\na bend with the angle stretch of that bend:\n\\[\n E = K_{SS} \\left(r_{12}-r_{12,0}\\right)\\left(r_{32}-r_{32,0}\\right) + K_{BS0}\\left(r_{12}-r_{12,0}\\right)\\left(\\theta-\\theta_0\\right) + K_{BS1}\\left(r_{32}-r_{32,0}\\right)\\left(\\theta-\\theta_0\\right)\\]\nwhere \\(r_{12,0}\\) is the rest value of the bond length between atom 1 and 2,\n\\(r_{32,0}\\) is the rest value of the bond length between atom 3 and 2,\nand \\(\\theta_0\\) is the rest value of the angle. \\(K_{SS}\\) is the force constant of\nthe bond stretch-bond stretch term and \\(K_{BS0}\\) and \\(K_{BS1}\\) are the force constants\nof the bond stretch-angle stretch terms.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K_{SS}\\) (energy/distance\\^2)\n* \\(K_{BS0}\\) (energy/distance)\n* \\(K_{BS1}\\) (energy/distance)\n* \\(r_{12,0}\\) (distance)\n* \\(r_{32,0}\\) (distance)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the \\(K_{BS0}\\) and \\(K_{BS1}\\) are\neffectively energy/distance per radian.\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "examples": "\n```lmps\npair_style smd/tlsph\n```\n", + "html_filename": "pair_smd_tlsph.html", + "short_description": "The *smd/tlsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and a Total-Lagrangian\nSmooth-Particle Hydrodynamics algorithm", + "description": "The *smd/tlsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and a Total-Lagrangian\nSmooth-Particle Hydrodynamics algorithm.\n\nThis pair style is invoked with the following command:\n\n[``lmpspair_style smd/tlsphpair_coeff i j *COMMON rho0 E nu Q1 Q2 hg Cp &*END```Here, *i* and *j* denote the *LAMMPS* particle types for which thispair style is defined. Note that *i* and *j* must be equal, i.e., no*tlsph* cross interactions between different particle types areallowed. In contrast to the usual *LAMMPS* *pair coeff* definitions,which are given solely a number of floats and integers, the *tlsph**pair coeff* definition is organized using keywords. These keywordsmark the beginning of different sets of parameters for particleproperties, material constitutive models, and damage models. The *paircoeff* line must be terminated with the *\\*END* keyword. The use theline continuation operator *&* is recommended. A typical invocation ofthe *tlsph* for a solid body would consist of an equation of state forcomputing the pressure (the diagonal components of the stress tensor),and a material model to compute shear stresses (the off-diagonalcomponents of the stress tensor). Damage and failure models can alsobe added.Please see the `SMD user guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) for a\ncomplete listing of the possible keywords and material models.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "bond_style hybrid", - "bond_style hybrid/kk" + "pair_style kolmogorov/crespi/full" ], "syntax": [ - "bond_style hybrid style1 style2 ..." + "pair_style hybrid/overlay kolmogorov/crespi/full cutoff tap_flag" ], "args": [ [ { - "arg": "bond_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "hybrid", - "type": 3, - "choices": [ - "hybrid", - "hybrid/kk" - ] + "arg": "hybrid/overlay", + "type": 2, + "choices": [] }, { - "arg": "style1", + "arg": "kolmogorov/crespi/full", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "style2", + "arg": "tap_flag", "type": 2, "choices": [] } ] ], - "parameters": "* style1,style2 = list of one or more bond styles \n", - "examples": "\n```lmps\nbond_style hybrid harmonic fene\nbond_coeff 1 harmonic 80.0 1.2\nbond_coeff 2* fene 30.0 1.5 1.0 1.0\n```\n", - "html_filename": "bond_hybrid.html", - "short_description": "The *hybrid* style enables the use of multiple bond styles in one\nsimulation", - "description": "The *hybrid* style enables the use of multiple bond styles in one\nsimulation. A bond style is assigned to each bond type. For example,\nbonds in a polymer flow (of bond type 1) could be computed with a\n*fene* potential and bonds in the wall boundary (of bond type 2) could\nbe computed with a *harmonic* potential. The assignment of bond type\nto style is made via the [bond_coeff ](https://docs.lammps.org/bond_coeff.html) command or in\nthe data file.\n\nIn the bond_coeff commands, the name of a bond style must be added\nafter the bond type, with the remaining coefficients being those\nappropriate to that style. In the example above, the 2 bond_coeff\ncommands set bonds of bond type 1 to be computed with a *harmonic*\npotential with coefficients 80.0, 1.2 for \\(K\\), \\(r_0\\). All other bond types\n(2-N) are computed with a *fene* potential with coefficients 30.0,\n1.5, 1.0, 1.0 for \\(K\\), \\(R_0\\), \\(\\epsilon\\), \\(\\sigma\\).\n\nIf bond coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"fene\" must be added after the bond type, for each\nline in the \"Bond Coeffs\" section, e.g.\n\n```\nBond Coeffs\n\n1 harmonic 80.0 1.2\n2 fene 30.0 1.5 1.0 1.0\n...\n```\nA bond style of *none* with no additional coefficients can be used in\nplace of a bond style, either in a input script bond_coeff command or\nin the data file, if you desire to turn off interactions for specific\nbond types.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nUnlike other bond styles, the hybrid bond style does not store bond\ncoefficient info for individual sub-styles in [binary restart files](https://docs.lammps.org/restart.html) or [data files ](https://docs.lammps.org/write_data.html). Thus when restarting a\nsimulation, you need to re-specify the bond_coeff commands.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style hybrid/overlay kolmogorov/crespi/full 20.0 0\npair_coeff * * none\npair_coeff * * kolmogorov/crespi/full CH.KC C C\n\npair_style hybrid/overlay rebo kolmogorov/crespi/full 16.0 1\npair_coeff * * rebo CH.rebo C H\npair_coeff * * kolmogorov/crespi/full CH_taper.KC C H\n```\n", + "html_filename": "pair_kolmogorov_crespi_full.html", + "short_description": "The *kolmogorov/crespi/full* style computes the Kolmogorov-Crespi (KC)\ninteraction potential as described in **Kolmogorov1**", + "description": "The *kolmogorov/crespi/full* style computes the Kolmogorov-Crespi (KC)\ninteraction potential as described in **Kolmogorov1**.\nNo simplification is made,\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & e^{-\\lambda (r_{ij} -z_0)} \\left [ C + f(\\rho_{ij}) + f(\\rho_{ji}) \\right ] - A \\left ( \\frac{r_{ij}}{z_0}\\right )^{-6} \\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij}\\cdot {\\bf n}_{i})^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij}\\cdot {\\bf n}_{j})^2 \\\\\n f(\\rho) & = e^{-(\\rho/\\delta)^2} \\sum_{n=0}^2 C_{2n} { (\\rho/\\delta) }^{2n} \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth\nforces and to include all the pairs to build the neighbor list for\ncalculating the normals. Energies are shifted so that they go\ncontinuously to zero at the cutoff assuming that the exponential part of\n\\(V_{ij}\\) (first term) decays sufficiently fast. This shift is achieved by\nthe last term in the equation for \\(V_{ij}\\) above. This is essential only\nwhen the tapper function is turned off. The formula of taper function\ncan be found in pair style [ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential (ILP) is intended for interlayer interactions between two\n > different layers of graphene. To perform a realistic simulation, this potential\n > must be used in combination with intralayer potential, such as\n > [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html) potential.\n > To keep the intralayer properties unaffected, the interlayer interaction\n > within the same layers should be avoided. Hence, each atom has to have a layer\n > identifier such that atoms residing on the same layer interact via the\n > appropriate intralayer potential and atoms residing on different layers\n > interact via the ILP. Here, the molecule id is chosen as the layer identifier,\n > thus a data file with the \"full\" atom style is required to use this potential. \n > \n\nThe parameter file (e.g. CH.KC), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters, *S*,\nand *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Two new sets of parameters of KC potential for hydrocarbons, CH.KC\n > (without the taper function) and CH_taper.KC (with the taper function)\n > are presented in **Ouyang3**. The energy for the KC potential\n > with the taper function goes continuously to zero at the cutoff. The\n > parameters in both CH.KC and CH_taper.KC provide a good description in\n > both short- and long-range interaction regimes. While the original\n > parameters (CC.KC) published in **Kolmogorov1** are only\n > suitable for long-range interaction regime. This feature is essential\n > for simulations in high pressure regime (i.e., the interlayer distance\n > is smaller than the equilibrium distance). The benchmark tests and\n > comparison of these parameters can be found in **Ouyang3** and **Ouyang4**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair kolmogorov/crespi/full\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table,\nand tail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Kolmogorov1)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(Ouyang3)** W. Ouyang, D. Mandelli, M. Urbakh and O. Hod, Nano Lett. 18, 6009-6016 (2018). \n \n**(Ouyang4)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe CH.KC potential file provided with LAMMPS (see the potentials\nfolder) is parameterized for metal units. You can use this pair style\nwith any LAMMPS units, but you would need to create your own custom\nCH.KC potential file with all coefficients converted to the appropriate\nunits.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n" }, { "command": [ - "fix nve/line" + "fix move" ], "syntax": [ - "fix ID group-ID nve/line" + "fix ID group-ID move style args keyword values ..." ], "args": [ [ @@ -34034,26 +33210,52 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/line", + "arg": "move", "type": 1, "choices": [] + }, + { + "arg": "variable", + "type": 3, + "choices": [ + "linear", + "wiggle", + "rotate", + "transrot", + "variable" + ] + }, + { + "arg": "args", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/line = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/line\n```\n", - "html_filename": "fix_nve_line.html", - "short_description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for line segment particles in the\ngroup each timestep", - "description": "Perform constant NVE integration to update position, velocity,\norientation, and angular velocity for line segment particles in the\ngroup each timestep. V is volume; E is energy. This creates a system\ntrajectory consistent with the microcanonical ensemble. See [Howto spherical ](https://docs.lammps.org/Howto_spherical.html) page for an overview of using line\nsegment particles.\n\nThis fix differs from the [fix nve ](https://docs.lammps.org/fix_nve.html) command, which\nassumes point particles and only updates their position and velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that particles be line segments as defined by the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* move = style name of this fix command\n* style = linear or wiggle or rotate or transrot or variable \n *        linear args = Vx Vy Vz \n         Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *        wiggle args = Ax Ay Az period \n         Ax,Ay,Az = components of amplitude vector (distance units), any component can be specified as NULL \n         period = period of oscillation (time units) \n *        rotate args = Px Py Pz Rx Ry Rz period \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        transrot args = Vx Vy Vz Px Py Pz Rx Ry Rz period \n         Vx,Vy,Vz = components of velocity vector (velocity units) \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        variable args = v_dx v_dy v_dz v_vx v_vy v_vz \n         v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL \n         v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = box or lattice \n", + "examples": "\n```lmps\nfix 1 boundary move wiggle 3.0 0.0 0.0 1.0 units box\nfix 2 boundary move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0\nfix 2 boundary move variable v_myx v_myy NULL v_VX v_VY NULL\nfix 3 boundary move transrot 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 1.0 5.0 units box\n```\n", + "html_filename": "fix_move.html", + "short_description": "Perform updates of position and velocity for atoms in the group each\ntimestep using the specified settings or formulas, without regard to\nforces on the atoms", + "description": "Perform updates of position and velocity for atoms in the group each\ntimestep using the specified settings or formulas, without regard to\nforces on the atoms. This can be useful for boundary or other atoms,\nwhose movement can influence nearby atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The atoms affected by this fix should not normally be time integrated\n > by other fixes (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt > ](https://docs.lammps.org/fix_nh.html)), since that will change their positions and velocities\n > twice. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As atoms move due to this fix, they will pass through periodic\n > boundaries and be remapped to the other side of the simulation box,\n > just as they would during normal time integration (e.g. via the\n > [fix nve ](https://docs.lammps.org/fix_nve.html) command). It is up to you to decide whether\n > periodic boundaries are appropriate with the kind of atom motion you\n > are prescribing with this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed below, atoms are moved relative to their initial\n > position at the time the fix is specified. These initial coordinates\n > are stored by the fix in \"unwrapped\" form, by using the image flags\n > associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section\n > of the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image\n > flags and how they are set for each atom. You can reset the image\n > flags (e.g. to 0) before invoking this fix by using the [set > image ](https://docs.lammps.org/set.html) command. \n > \n\n----------\n\nThe *linear* style moves atoms at a constant velocity, so that their\nposition *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + V \\* delta\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *V* is the specified velocity vector with components\n(Vx,Vy,Vz), and *delta* is the time elapsed since the fix was\nspecified. This style also sets the velocity of each atom to V =\n(Vx,Vy,Vz). If any of the velocity components is specified as NULL,\nthen the position and velocity of that component is time integrated\nthe same as the [fix nve ](https://docs.lammps.org/fix_nve.html) command would perform, using\nthe corresponding force component on the atom.\n\nNote that the *linear* style is identical to using the *variable*\nstyle with an [equal-style variable ](https://docs.lammps.org/variable.html) that uses the\nvdisplace() function. E.g.\n\n```lmps\nvariable V equal 10.0\nvariable x equal vdisplace(0.0,$V)\nfix 1 boundary move variable v_x NULL NULL v_V NULL NULL\n```\nThe *wiggle* style moves atoms in an oscillatory fashion, so that\ntheir position *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + A sin(omega\\*delta)\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *A* is the specified amplitude vector with components\n(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time elapsed\nsince the fix was specified. This style also sets the velocity of each\natom to the time derivative of this expression. If any of the amplitude\ncomponents is specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix nve ](https://docs.lammps.org/fix_nve.html)\ncommand would perform, using the corresponding force component on the\natom.\n\nNote that the *wiggle* style is identical to using the *variable*\nstyle with [equal-style variables ](https://docs.lammps.org/variable.html) that use the\nswiggle() and cwiggle() functions. E.g.\n\n```lmps\nvariable A equal 10.0\nvariable T equal 5.0\nvariable omega equal 2.0*PI/$T\nvariable x equal swiggle(0.0,$A,$T)\nvariable v equal v_omega*($A-cwiggle(0.0,$A,$T))\nfix 1 boundary move variable v_x NULL NULL v_v NULL NULL\n```\nThe *rotate* style rotates atoms around a rotation axis *R* = (Rx,Ry,Rz)\nthat goes through a point *P* = (Px,Py,Pz). The *period* of the\nrotation is also specified. The direction of rotation for the atoms\naround the rotation axis is consistent with the right-hand rule: if your\nright-hand thumb points along *R*, then your fingers wrap around the\naxis in the direction of rotation.\n\nThis style also sets the velocity of each atom to (omega cross Rperp)\nwhere omega is its angular velocity around the rotation axis and Rperp\nis a perpendicular vector from the rotation axis to the atom. If the\ndefined [atom_style ](https://docs.lammps.org/atom_style.html) assigns an angular velocity or\nangular momentum or orientation to each atom ([atom styles](https://docs.lammps.org/atom_style.html) sphere, ellipsoid, line, tri, body), then\nthose properties are also updated appropriately to correspond to the\natom's motion and rotation over time.\n\nThe *transrot* style combines the effects of *rotate* and *linear* so\nthat it is possible to prescribe a rotating group of atoms that also\nmoves at a constant velocity. The arguments are for the translation\nfirst and then for the rotation. Since the rotation affects all\ncoordinate components, it is not possible to set any of the\ntranslation vector components to NULL.\n\nThe *variable* style allows the position and velocity components of\neach atom to be set by formulas specified via the\n[variable ](https://docs.lammps.org/variable.html) command. Each of the 6 variables is\nspecified as an argument to the fix as v_name, where name is the\nvariable name that is defined elsewhere in the input script.\n\nEach variable must be of either the *equal* or *atom* style.\n*Equal* -style variables compute a single numeric quantity, that can be\na function of the timestep as well as of other simulation values.\n*Atom* -style variables compute a numeric quantity for each atom, that\ncan be a function per-atom quantities, such as the atom's position, as\nwell as of the timestep and other simulation values. Note that this fix\nstores the original coordinates of each atom (see note below) so that\nper-atom quantity can be used in an atom-style variable formula. See\nthe [variable ](https://docs.lammps.org/variable.html) command for details.\n\nThe first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*\nstyle are used to calculate a displacement from the atom's original\nposition at the time the fix was specified. The second 3 variables\n(v_vx,v_vy,v_vz) specified are used to compute a velocity for each\natom.\n\nAny of the 6 variables can be specified as NULL. If both the\ndisplacement and velocity variables for a particular x,y,z component\nare specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix nve ](https://docs.lammps.org/fix_nve.html)\ncommand would perform, using the corresponding force component on the\natom. If only the velocity variable for a component is specified as\nNULL, then the displacement variable will be used to set the position\nof the atom, and its velocity component will not be changed. If only\nthe displacement variable for a component is specified as NULL, then\nthe velocity variable will be used to set the velocity of the atom,\nand the position of the atom will be time integrated using that\nvelocity.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the *linear* velocity and *wiggle* amplitude and *rotate*\norigin. This setting is ignored for the *variable* style. A *box*\nvalue selects standard units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand, e.g. velocity in Angstroms/fs and amplitude and position\nin Angstroms for units = real. A *lattice* value means the velocity\nunits are in lattice spacings per time and the amplitude and position\nare in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Each of these 3\nquantities may be dependent on the x,y,z dimension, since the lattice\nspacings can be different in x,y,z.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of moving atoms to [binaryrestart files ](https://docs.lammps.org/restart.html), as well as the initial timestep, so that the\nmotion can be continuous in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the move positions are a function of the current\n > timestep and the initial timestep, you cannot reset the timestep to a\n > different value after reading a restart file, if you expect a fix move\n > command to work in an uninterrupted fashion. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the original unwrapped x,y,z coords of\neach atom. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix adjusts the\nposition and velocity of atoms on the outermost rRESPA level.\n", + "restrictions": " none\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [displace_atoms ](https://docs.lammps.org/displace_atoms.html)\n" }, { "command": [ - "compute basal/atom" + "compute fep/ta" ], "syntax": [ - "compute ID group-ID basal/atom" + "compute ID group-ID fep/ta temp plane scale_factor keyword value ..." ], "args": [ [ @@ -34073,31 +33275,60 @@ export const command_docs = [ "choices": [] }, { - "arg": "basal/atom", + "arg": "fep/ta", "type": 1, "choices": [] + }, + { + "arg": "temp", + "type": 2, + "choices": [] + }, + { + "arg": "yz", + "type": 3, + "choices": [ + "xy", + "xz", + "yz" + ] + }, + { + "arg": "scale_factor", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* basal/atom = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all basal/atom\n```\n", - "html_filename": "compute_basal_atom.html", - "short_description": "Defines a computation that calculates the hexagonal close-packed \"c\"\nlattice vector for each atom in the group", - "description": "Defines a computation that calculates the hexagonal close-packed \"c\"\nlattice vector for each atom in the group. It does this by\ncalculating the normal unit vector to the basal plane for each atom.\nThe results enable efficient identification and characterization of\ntwins and grains in hexagonal close-packed structures.\n\nThe output of the compute is thus the 3 components of a unit vector\nassociated with each atom. The components are set to 0.0 for\natoms not in the group.\n\nDetails of the calculation are given in **Barrett**.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each of\nwhich computes this quantity.\n\nAn example input script that uses this compute is provided\nin examples/PACKAGES/basal.\n\n #### Output info\n\nThis compute calculates a per-atom array with three columns, which can be\naccessed by indices 1--3 by any command that uses per-atom values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe per-atom vector values are unitless since the three columns represent\ncomponents of a unit vector.\n\n**(Barrett)** Barrett, Tschopp, El Kadiri, Scripta Mat. 66, p.666 (2012). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe output of this compute will be meaningless unless the atoms are on\n(or near) hcp lattice sites, since the calculation assumes a\nwell-defined basal plane.\n", - "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html), [compute ackland/atom ](https://docs.lammps.org/compute_ackland_atom.html)\n" + "parameters": "* ID, group-ID are documented in the [compute ](https://docs.lammps.org/compute.html) command\n* fep/ta = name of this compute command\n* temp = external temperature (as specified for constant-temperature run)\n* plane = xy or xz or yz\n* scale_factor = multiplicative factor for change in plane area\n* zero or more keyword/value pairs may be appended\n* keyword = tail \n *      tail value = no or yes \n       no = ignore tail correction to pair energies (usually small in fep) \n       yes = include tail correction to pair energies \n", + "examples": "\n```lmps\ncompute 1 all fep/ta 298 xy 1.0005\n```\n", + "html_filename": "compute_fep_ta.html", + "short_description": "\nDefine a computation that calculates the change in the free energy due\nto a test-area (TA) perturbation **Gloor**", + "description": "\nDefine a computation that calculates the change in the free energy due\nto a test-area (TA) perturbation **Gloor**. The test-area\napproach can be used to determine the interfacial tension of the system\nin a single simulation:\n\\[\n \\gamma = \\lim_{\\Delta \\mathcal{A} \\to 0} \\left( \\frac{\\Delta A_{0 \\to 1 }}{\\Delta \\mathcal{A}}\\right)_{N,V,T}\n = - \\frac{k_B T}{\\Delta \\mathcal{A}} \\ln \\left\\langle \\exp\\left(\\frac{-(U_1 - U_0)}{k_B T}\\right) \\right\\rangle_0\\]\nDuring the perturbation, both axes of *plane* are scaled by multiplying\n\\(\\sqrt{\\mathrm{scale\\_factor}}\\), while the other axis divided by\n\\(\\mathrm{scale\\_factor}\\) such that the overall volume of the system is\nmaintained.\n\nThe *tail* keyword controls the calculation of the tail correction to\n\"van der Waals\" pair energies beyond the cutoff, if this has been\nactivated via the [pair_modify ](https://docs.lammps.org/pair_modify.html) command. If the\nperturbation is small, the tail contribution to the energy difference\nbetween the reference and perturbed systems should be negligible.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 3 which contains the\nenergy difference \\((U_1-U_0)\\) as c_ID[1], the Boltzmann factor\n\\(\\exp\\bigl(-(U_1-U_0)/k_B T\\bigr)\\), as c_ID[2] and the change in the *plane*\narea \\(\\Delta \\mathcal{A}\\) as c_ID[3]. \\(U_1\\) is the potential\nenergy of the perturbed state and \\(U_0\\) is the potential energy of\nthe reference state. The energies include kspace terms if these are\nused in the simulation.\n\nThese output results can be used by any command that uses a global\nscalar or vector from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options. For\nexample, the computed values can be averaged using [fix ave/time](https://docs.lammps.org/fix_ave_time.html).\n\n**(Gloor)** Gloor, J Chem Phys, 123, 134703 (2005) \n ", + "restrictions": "Constraints, like fix shake, may lead to incorrect values for energy difference.\n\nThis compute is distributed as the FEP package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute fep ](https://docs.lammps.org/compute_fep.html)\n" }, { "command": [ - "fix mol/swap" + "compute property/grid" ], "syntax": [ - "fix ID group-ID mol/swap N X itype jtype seed T keyword value ..." + "compute ID group-ID property/grid Nx Ny Nz input1 input2 ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -34112,104 +33343,93 @@ export const command_docs = [ "choices": [] }, { - "arg": "mol/swap", + "arg": "property/grid", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "X", - "type": 2, - "choices": [] - }, - { - "arg": "itype", - "type": 2, - "choices": [] - }, - { - "arg": "jtype", + "arg": "Nx", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "Ny", "type": 2, "choices": [] }, { - "arg": "T", + "arg": "Nz", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* atom/swap = style name of this fix command\n* N = invoke this fix every N steps\n* X = number of swaps to attempt every N steps\n* itype,jtype = two atom types (1-Ntypes or type label) to swap with each other\n* seed = random # seed (positive integer)\n* T = scaling temperature of the MC swaps (temperature units)\n* zero or more keyword/value pairs may be appended to args\n* keyword = ke \n *        ke value = no or yes \n         no = no conservation of kinetic energy after atom swaps \n         yes = kinetic energy is conserved after atom swaps \n", - "examples": "\n```lmps\nfix 2 all mol/swap 100 1 2 3 29494 300.0 ke no\nfix mySwap fluid mol/swap 500 10 1 2 482798 1.0\n\nlabelmap atom 1 A 2 B\nfix mySwap fluid mol/swap 500 10 A B 482798 1.0\n```\n", - "html_filename": "fix_mol_swap.html", - "short_description": "This fix performs Monte Carlo swaps of two specified atom types within\na randomly selected molecule", - "description": "This fix performs Monte Carlo swaps of two specified atom types within\na randomly selected molecule. Two possible use cases are as follows.\n\nFirst, consider a mixture of some molecules with atoms of itype and\nother molecules with atoms of jtype. The fix will select a random\nmolecule and attempt to swap all the itype atoms to jtype for the\nfirst kind of molecule, or all the jtype atoms to itype for the second\nkind. Because the swap will only take place if it is energetically\nfavorable, the fix can be used to determine the miscibility of 2\ndifferent kinds of molecules much more quickly than just dynamics\nwould do it.\n\nSecond, consider diblock co-polymers with two types of monomers itype\nand jtype. The fix will select a random molecule and attempt to do a\nitype <--> jtype swap of all those monomers within the molecule. Thus\nthe fix can be used to find the energetically favorable fractions of\ntwo flavors of diblock co-polymers.\n\nIntra-molecular swaps of atom types are attempted every N timesteps. On\nthat timestep, X swaps are attempted. For each attempt a single\nmolecule ID is randomly selected. The range of possible molecule IDs\nfrom loID to hiID is pre-computed before each run begins. The\nloID/hiID is set for the molecule with the smallest/largest ID which\nhas any itype or jtype atoms in it. Note that if you define a system\nwith many molecule IDs between loID and hiID which have no itype or\njtype atoms, then the fix will be inefficient at performing swaps.\nAlso note that if atoms with molecule ID = 0 exist, they are not\nconsidered molecules by this fix; they are assumed to be solvent atoms\nor molecules.\n\nCandidate atoms for swapping must also be in the fix group. Atoms\nwithin the selected molecule which are not itype or jtype are ignored.\n\nWhen an atom is swapped from itype to jtype (or vice versa), if\ncharges are defined, the charge values for itype versus jtype atoms\nare also swapped. This requires that all itype atoms in the system\nhave the same charge value. Likewise all jtype atoms in the system\nmust have the same charge value. If this is not the case, LAMMPS\nissues a warning that it cannot swap charge values.\n\nIf the *ke* keyword is set to yes, which is the default, and the\nmasses of itype and jtype atoms are different, then when a swap\noccurs, the velocity of the swapped atom is rescaled by the sqrt of\nthe mass ratio, so as to conserve the kinetic energy of the atom.\n\n----------\n\nThe potential energy of the entire system is computed before and after\neach swap is performed within a single molecule. The specified\ntemperature T is used in the Metropolis criterion to accept or reject\nthe attempted swap. If the swap is rejected all swapped values are\nreversed.\n\nThe potential energy calculations can include systems and models with\nthe following features:\n\n* manybody pair styles, including EAM\n* hybrid pair styles\n* long-range electrostatics (kspace)\n* triclinic systems\n* potential energy contributions from other fixes\n\nFor the last bullet point, fixes can have an associated potential\nenergy. Examples of such fixes include: [efield ](https://docs.lammps.org/fix_efield.html),\n[gravity ](https://docs.lammps.org/fix_gravity.html), [addforce ](https://docs.lammps.org/fix_addforce.html),\n[langevin ](https://docs.lammps.org/fix_langevin.html), [restrain ](https://docs.lammps.org/fix_restrain.html),\n[temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), [temp/rescale](https://docs.lammps.org/fix_temp_rescale.html), and [wall fixes ](https://docs.lammps.org/fix_wall.html). For that\nenergy to be included in the total potential energy of the system (the\nquantity used for the swap accept/reject decision), you MUST enable\nthe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for that fix. The\ndoc pages for individual [fix ](https://docs.lammps.org/fix.html) commands specify if this\nshould be done.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One comment on computational efficiency. If the cutoff lengths\n > defined for the pair style are different for itype versus jtype\n > atoms (for any of their interactions with any other atom type), then\n > a new neighbor list needs to be generated for every attempted swap.\n > This is potentially expensive if N is small or X is large. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the fix to [binary restart files](https://docs.lammps.org/restart.html). This includes information about the random number\ngenerator seed, the next timestep for MC exchanges, the number of\nexchange attempts and successes etc. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this to work correctly, the timestep must **not** be changed\n > after reading the restart with [reset_timestep ](https://docs.lammps.org/reset_timestep.html).\n > The fix will try to detect it and stop with an error. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix computes a global vector of length 2, which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The vector values are\nthe following global cumulative quantities:\n\n #. swap attempts\n #. swap accepts\n\nThe vector values calculated by this fix are \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html), [fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/grid = style name of this compute command\n* Nx, Ny, Nz = grid size in each dimension\n* input1,etc = one or more attributes \n *        attributes = id, ix, iy, iz, x, y, z, xs, ys, zs, xc, yc, zc, xsc, ysc, zsc \n         id = ID of grid cell, x fastest, y next, z slowest \n         proc = processor ID (0 to Nprocs-1) which owns the grid cell \n         ix,iy,iz = grid indices in each dimension (1 to N inclusive) \n         x,y,z = coords of lower left corner of grid cell \n         xs,ys,zs = scaled coords of lower left corner of grid cell (0.0 to 1.0) \n         xc,yc,zc = coords of center point of grid cell \n         xsc,ysc,zsc = scaled coords of center point of grid cell (0.0 to 1.0) \n", + "examples": "\n```lmps\ncompute 1 all property/grid 10 10 20 id ix iy iz\ncompute 1 all property/grid 100 100 1 id xc yc zc\n```\n", + "html_filename": "compute_property_grid.html", + "short_description": "Define a computation that stores the specified attributes of a\ndistributed grid", + "description": "Define a computation that stores the specified attributes of a\ndistributed grid. In LAMMPS, distributed grids are regular 2d or 3d\ngrids which overlay a 2d or 3d simulation domain. Each processor owns\nthe grid cells whose center points lie within its subdomain. See the\n[Howto grid ](https://docs.lammps.org/Howto_grid.html) doc page for details of how distributed\ngrids can be defined by various commands and referenced.\n\nThis compute stores the specified attributes of grids as per-grid data\nso they can be accessed by other [output commands ](https://docs.lammps.org/Howto_output.html)\nsuch as [dump grid ](https://docs.lammps.org/dump.html).\n\n*Nx*, *Ny*, and *Nz* define the size of the grid. For a 2d simulation\n*Nz* must be 1. When this compute is used by [dump grid ](https://docs.lammps.org/dump.html),\nto output per-grid values from other computes of fixes, the grid size\nspecified for this command must be consistent with the grid sizes\nused by the other commands.\n\nThe *id* attribute is the grid ID for each grid cell. For a global\ngrid of size Nx by Ny by Nz (in 3d simulations) the grid IDs range\nfrom 1 to Nx*Ny*Nz. They are ordered with the X index of the 3d grid\nvarying fastest, then Y, then Z slowest. For 2d grids (in 2d\nsimulations), the grid IDs range from 1 to Nx*Ny, with X varying\nfastest and Y slowest.\n\nThe *proc* attribute is the ID of the processor which owns the grid\ncell. Processor IDs range from 0 to Nprocs - 1, where Nprocs is the\nnumber of processors the simulation is running on. Each grid cell is\nowned by a single processor.\n\nThe *ix*, *iy*, *iz* attributes are the indices of a grid cell in\neach dimension. They range from 1 to Nx inclusive in the X dimension,\nand similar for Y and Z.\n\nThe *x*, *y*, *z* attributes are the coordinates of the lower left\ncorner point of each grid cell.\n\nThe *xs*, *ys*, *zs* attributes are also coordinates of the lower left\ncorner point of each grid cell, except in scaled coordinates, where\nthe lower-left corner of the entire simulation box is (0,0,0) and the\nupper right corner is (1,1,1).\n\nThe *xc*, *yc*, *zc* attributes are the coordinates of the center\npoint of each grid cell.\n\nThe *xsc*, *ysc*, *zsc* attributes are also coordinates of the center\npoint each grid cell, except in scaled coordinates, where the\nlower-left corner of the entire simulation box is (0,0,0) and the upper\nright corner is (1,1,1).\n\nFor [triclinic simulation boxes ](https://docs.lammps.org/Howto_triclinic.html), the grid\npoint coordinates for (x,y,z) and (xc,yc,zc) will reflect the\ntriclinic geometry. For (xs,yz,zs) and (xsc,ysc,zsc), the coordinates\nare the same for orthogonal versus triclinic boxes.\n\n #### Output info\n\nThis compute calculates a per-grid vector or array depending on the\nnumber of input values. The length of the vector or number of array\nrows (distributed across all processors) is Nx * Ny * Nz. For access\nby other commands, the name of the single grid produced by this\ncommand is \"grid\". The name of its per-grid data is \"data\".\n\nThe (x,y,z) and (xc,yc,zc) coordinates are in distance [units](https://docs.lammps.org/units.html).\n", + "restrictions": "For 2d simulations, the attributes which refer to\nthe Z dimension cannot be used.\n", + "related": "[dump grid ](https://docs.lammps.org/dump.html)\n" }, { "command": [ - "improper_style umbrella", - "improper_style umbrella/omp" + "angle_style harmonic", + "angle_style harmonic/intel", + "angle_style harmonic/kk", + "angle_style harmonic/omp" ], "syntax": [ - "improper_style umbrella" + "angle_style harmonic" ], "args": [ [ { - "arg": "improper_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "umbrella", + "arg": "harmonic", "type": 3, "choices": [ - "umbrella", - "umbrella/omp" + "harmonic", + "harmonic/intel", + "harmonic/kk", + "harmonic/omp" ] } ] ], "parameters": "", - "examples": "\n```lmps\nimproper_style umbrella\nimproper_coeff 1 100.0 180.0\n```\n", - "html_filename": "improper_umbrella.html", - "short_description": "The *umbrella* improper style uses the following potential, which is\ncommonly referred to as a classic inversion and used in the\n[DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field:\n\\[\\begin{align*} \n E = & \\frac{1}{2}K\\left( \\frac{1}{\\sin\\omega_0}\\right) ^2 \\left( \\cos\\omega - \\cos\\omega_0\\right) ^2 \\qquad \\omega_0 \\neq 0^o \\\\\n E = & K\\left( 1-cos\\omega\\right) \\qquad \\omega_0 = 0^o \\end{align*} \\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle between the IL\naxis and the IJK plane:\n\n ![Image](JPG/umbrella.jpg) \n\nIf \\(\\omega_0 = 0\\) the potential term has a minimum for the planar\nstructure", - "description": "The *umbrella* improper style uses the following potential, which is\ncommonly referred to as a classic inversion and used in the\n[DREIDING ](https://docs.lammps.org/Howto_bioFF.html) force field:\n\\[\\begin{align*} \n E = & \\frac{1}{2}K\\left( \\frac{1}{\\sin\\omega_0}\\right) ^2 \\left( \\cos\\omega - \\cos\\omega_0\\right) ^2 \\qquad \\omega_0 \\neq 0^o \\\\\n E = & K\\left( 1-cos\\omega\\right) \\qquad \\omega_0 = 0^o \\end{align*} \\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle between the IL\naxis and the IJK plane:\n\n ![Image](JPG/umbrella.jpg) \n\nIf \\(\\omega_0 = 0\\) the potential term has a minimum for the planar\nstructure. Otherwise it has two minima at \\(\\omega +/- \\omega_0\\),\nwith a barrier in between.\n\nSee **umbrella-Mayo** for a description of the DREIDING force field.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\omega_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(umbrella-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990), \n ", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "examples": "\n```lmps\nangle_style harmonic\nangle_coeff 1 300.0 107.0\n```\n", + "html_filename": "angle_harmonic.html", + "short_description": "The *harmonic* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", + "description": "The *harmonic* angle style uses the potential\n\\[\n E = K (\\theta - \\theta_0)^2\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute fabric" + "fix tgnvt/drude" ], "syntax": [ - "compute ID group-ID fabric cutoff attribute ... keyword values ..." + "fix ID group-ID style_name keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -34224,26 +33444,11 @@ export const command_docs = [ "choices": [] }, { - "arg": "fabric", - "type": 1, - "choices": [] - }, - { - "arg": "radius", - "type": 3, - "choices": [ - "type", - "radius" - ] - }, - { - "arg": "force/tangential", + "arg": "tgnpt/drude", "type": 3, "choices": [ - "contact", - "branch", - "force/normal", - "force/tangential" + "tgnvt/drude", + "tgnpt/drude" ] }, { @@ -34258,139 +33463,129 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* fabric = style name of this compute command\n* cutoff = type or radius \n *        type = cutoffs determined based on atom types \n *        radius = cutoffs determined based on atom diameters (atom style sphere) \n* one or more attributes may be appended\n* attribute = contact or branch or force/normal or force/tangential \n *        contact = contact tensor \n *        branch = branch tensor \n *        force/normal = normal force tensor \n *        force/tangential = tangential force tensor \n* zero or more keyword/value pairs may be appended\n* keyword = type/include \n *        type/include value = arg1 arg2 \n         arg = separate lists of types (see below) \n", - "examples": "\n```lmps\ncompute 1 all fabric type contact force/normal type/include 1,2 3*4\ncompute 1 all fabric radius force/normal force/tangential\n```\n", - "html_filename": "compute_fabric.html", - "short_description": "Define a compute that calculates various fabric tensors for pairwise\ninteraction **Ouadfel**", - "description": "Define a compute that calculates various fabric tensors for pairwise\ninteraction **Ouadfel**. Fabric tensors are commonly used\nto quantify the anisotropy or orientation of granular contacts but can also\nbe used to characterize the direction of pairwise interactions in general\nsystems. The *type* and *radius* settings are used to select whether interactions\ncutoffs are determined by atom types or by the sum of atomic radii (atom\nstyle sphere), respectively. Calling this compute is roughly the cost of a\npair style invocation as it involves a loop over the neighbor list. If the\nnormal or tangential force tensors are requested, it will be more expensive\nthan a pair style invocation as it will also recalculate all pair forces.\n\nFour fabric tensors are available: the contact, branch, normal force, or\ntangential force tensor. The contact tensor is calculated as\n\\[\n C_{ab} = \\frac{15}{2} (\\phi_{ab} - \\frac{1}{3} \\mathrm{Tr}(\\phi) \\delta_{ab})\\]\nwhere \\(a\\) and \\(b\\) are the \\(x\\), \\(y\\), \\(z\\)\ndirections, \\(\\delta_{ab}\\) is the Kronecker delta function, and\nthe tensor \\(\\phi\\) is defined as\n\\[\n \\phi_{ab} = \\sum_{n = 1}^{N_p} \\frac{r_{a} r_{b}}{r^2}\\]\nwhere \\(n\\) loops over the \\(N_p\\) pair interactions in the simulation,\n\\(r_{a}\\) is the \\(a\\) component of the radial vector between the\ntwo pairwise interacting particles, and \\(r\\) is the magnitude of the\nradial vector.\n\nThe branch tensor is calculated as\n\\[\n B_{ab} = \\frac{15}{2\\, \\mathrm{Tr}(D)} (D_{ab} - \\frac{1}{3} \\mathrm{Tr}(D) \\delta_{ab})\\]\nwhere the tensor \\(D\\) is defined as\n\\[\n D_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r}\\]\nwhere \\(N_c\\) is the total number of contacts in the system and the\nsubscripts \\(c\\) and \\(d\\) indices are summed according to Einstein\nnotation.\n\nThe normal force fabric tensor is calculated as\n\\[\n F^n_{ab} = \\frac{15}{2\\, \\mathrm{Tr}(N)} (N_{ab} - \\frac{1}{3} \\mathrm{Tr}(N) \\delta_{ab})\\]\nwhere the tensor \\(N\\) is defined as\n\\[\n N_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r^2} f_n\\]\nand \\(f_n\\) is the magnitude of the normal, central-body force between the two atoms.\n\nFinally, the tangential force fabric tensor is only defined for pair styles that\napply tangential forces to particles, namely granular pair styles. It is calculated\nas\n\\[\n F^t_{ab} = \\frac{5}{\\mathrm{Tr}(N)} (T_{ab} - \\frac{1}{3} \\mathrm{Tr}(T) \\delta_{ab})\\]\nwhere the tensor \\(T\\) is defined as\n\\[\n T_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r^2} f_t\\]\nand \\(f_t\\) is the magnitude of the tangential force between the two atoms.\n\nThe *type/include* keyword filters interactions based on the types of the two atoms.\nInteractions between two atoms are only included in calculations if the atom types\nare in the two lists. Each list consists of a series of type\nranges separated by commas. The range can be specified as a\nsingle numeric value, or a wildcard asterisk can be used to specify a range\nof values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". For\nexample, if \\(M\\) is the number of atom types, then an asterisk with no\nnumeric values means all types from 1 to \\(M\\). A leading asterisk means\nall types from 1 to n (inclusive). A trailing asterisk means all types from\nm to \\(M\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive). Multiple *type/include* keywords may be added.\n\n #### Output info\n\nThis compute calculates a global vector of doubles and a global scalar. The\nvector stores the unique components of the first requested tensor in the\norder \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\) followed by the same components for all subsequent tensors.\nThe length of the vector is therefore six times the number of requested\ntensors. The scalar output is the number of pairwise interactions included\nin the calculation of the fabric tensor.\n\n**(Ouadfel)** Ouadfel and Rothenburg\n\"Stress-force-fabric relationship for assemblies of ellipsoids\",\nMechanics of Materials (2001). ([link to paper](https://doi.org/10.1016/S0167-6636(00)00057-0)) \n ", - "restrictions": "This fix is part of the GRANULAR package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nCurrently, compute *fabric* does not support pair styles\nwith many-body interactions. It also does not\nsupport models with long-range Coulombic or dispersion forces,\ni.e. the kspace_style command in LAMMPS. It also does not support the\nfollowing fixes which add rigid-body constraints: [fix shake](https://docs.lammps.org/fix_shake.html), [fix rattle ](https://docs.lammps.org/fix_shake.html), [fix rigid](https://docs.lammps.org/fix_rigid.html), [fix rigid/small ](https://docs.lammps.org/fix_rigid.html). It does not support\ngranular pair styles that extend beyond the contact of atomic radii\n(e.g., JKR and DMT).\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style_name = tgnvt/drude or tgnpt/drude\n* one or more keyword/values pairs may be appended \n *      keyword = temp iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or scalexy or scaleyz or scalexz or flip or fixedpoint \n       temp values = Tstart Tstop Tdamp Tdrude Tdamp_drude \n       Tstart, Tstop = external temperature at start/end of run (temperature units) \n       Tdamp = temperature damping parameter (time units) \n       Tdrude = desired temperature of Drude oscillators (temperature units) \n       Tdamp_drude = temperature damping parameter for Drude oscillators (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       pchain value = N \n       N length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = M \n       M = number of sub-cycles to perform on thermostat \n       ploop value = M \n       M = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       scalexy value = yes or no = scale xy with ly \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       flip value = yes or no = allow or disallow box flips when it becomes highly skewed \n       fixedpoint values = x y z \n       x,y,z = perform barostat dilation/contraction around this point (distance units) \n", + "examples": "\n```lmps\ncomm_modify vel yes\nfix 1 all tgnvt/drude temp 300.0 300.0 100.0 1.0 20.0\nfix 1 water tgnpt/drude temp 300.0 300.0 100.0 1.0 20.0 iso 0.0 0.0 1000.0\nfix 2 jello tgnpt/drude temp 300.0 300.0 100.0 1.0 20.0 tri 5.0 5.0 1000.0\nfix 2 ice tgnpt/drude temp 250.0 250.0 100.0 1.0 20.0 x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "fix_tgnh_drude.html", + "short_description": "These commands are variants of the Nose-Hoover fix styles [fix nvt](https://docs.lammps.org/fix_nh.html) and [fix npt ](https://docs.lammps.org/fix_nh.html) for thermalized Drude polarizable\nmodels", + "description": "These commands are variants of the Nose-Hoover fix styles [fix nvt](https://docs.lammps.org/fix_nh.html) and [fix npt ](https://docs.lammps.org/fix_nh.html) for thermalized Drude polarizable\nmodels. They apply temperature-grouped Nose-Hoover thermostat (TGNH)\nproposed by **tgnh-Son**. When there are fast vibrational\nmodes with frequencies close to Drude oscillators (e.g. double bonds or\nout-of-plane torsions), this thermostat can provide better kinetic\nenergy equipartitioning.\n\nThe difference between TGNH and the original Nose-Hoover thermostat is that,\nTGNH separates the kinetic energy of the group into three contributions:\nmolecular center of mass (COM) motion,\nmotion of COM of atom-Drude pairs or non-polarizable atoms relative to molecular COM,\nand relative motion of atom-Drude pairs.\nAn independent Nose-Hoover chain is applied to each type of motion.\nThe temperatures for these three types of motion are denoted as\nmolecular translational temperature (\\(T_\\mathrm{M}\\)), real atomic temperature (\\(T_\\mathrm{R}\\)) and Drude temperature (\\(T_\\mathrm{D}\\)),\nwhich are defined in terms of their associated degrees of freedom (DOF):\n\\[\n T_\\mathrm{M}=\\frac{\\Sigma_{i}^{N_\\mathrm{mol}} M_i V_i^2}{3 \\left ( N_\\mathrm{mol} - \\frac{N_\\mathrm{mol}}{N_\\mathrm{mol,sys}} \\right ) k_\\mathrm{B}}\\]\n\\[\n T_\\mathrm{R}=\\frac{\\Sigma_{i}^{N_\\mathrm{real}} m_i (v_i-v_{M,i})^2}{(N_\\mathrm{DOF} - 3 N_\\mathrm{mol} + 3 \\frac{N_\\mathrm{mol}}{N_\\mathrm{mol,sys}} - 3 N_\\mathrm{drude}) k_\\mathrm{B}}\\]\n\\[\n T_\\mathrm{D}=\\frac{\\Sigma_{i}^{N_\\mathrm{drude}} m_i^{\\prime} v_i^{\\prime 2}}{3 N_\\mathrm{drude} k_\\mathrm{B}}\\]\nHere \\(N_\\mathrm{mol}\\) and \\(N_\\mathrm{mol,sys}\\) are the numbers of molecules in the group and in the whole system, respectively.\n\\(N_\\mathrm{real}\\) is the number of atom-Drude pairs and non-polarizable atoms in the group.\n\\(N_\\mathrm{drude}\\) is the number of Drude particles in the group.\n\\(N_\\mathrm{DOF}\\) is the DOF of the group.\n\\(M_i\\) and \\(V_i\\) are the mass and the COM velocity of the i-th molecule.\n\\(m_i\\) is the mass of the i-th atom-Drude pair or non-polarizable atom.\n\\(v_i\\) is the velocity of COM of i-th atom-Drude pair or non-polarizable atom.\n\\(v_{M,i}\\) is the COM velocity of the molecule the i-th atom-Drude pair or non-polarizable atom belongs to.\n\\(m_i^\\prime\\) and \\(v_i^\\prime\\) are the reduced mass and the relative velocity of the i-th atom-Drude pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes require that each atom knows whether it is a Drude particle or\n > not. You must therefore use the [fix drude ](https://docs.lammps.org/fix_drude.html) command to\n > specify the Drude status of each atom type.\n >\n > Because the TGNH thermostat thermostats the molecular COM motion,\n > all atoms belonging to the same molecule must be in the same group.\n > That is, these fixes can not be applied to a subset of a molecule.\n >\n > For this fix to act correctly, ghost atoms need to know their velocity.\n > You must use the [comm_modify ](https://docs.lammps.org/comm_modify.html) command to enable this.\n >\n > These fixes assume that the translational DOF of the whole system is removed.\n > It is therefore recommended to invoke [fix momentum ](https://docs.lammps.org/fix_momentum.html) command so that the \\(T_\\mathrm{M}\\) is calculated correctly. \n > \n\n----------\n\nThe thermostat parameters are specified using the *temp* keyword.\nThe thermostat is applied to only the translational DOF\nfor the particles. The translational DOF can also have\na bias velocity removed before thermostatting takes place; see the\ndescription below. The desired temperature for molecular and real atomic motion is a\nramped value during the run from *Tstart* to *Tstop* . The *Tdamp*\nparameter is specified in time units and determines how rapidly the\ntemperature is relaxed. For example, a value of 10.0 means to relax\nthe temperature in a timespan of (roughly) 10 time units (e.g. \\(\\tau\\)\nor fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\nThe parameter *Tdrude* is the desired temperature for Drude motion at each timestep.\nSimilar to *Tdamp*, the *Tdamp_drude* parameter determines the relaxation speed for Drude motion.\nFix group are the only ones whose velocities and positions are updated\nby the velocity/position update portion of the integration.\nOther thermostat-related keywords are *tchain* and *tloop*,\nwhich are detailed in [fix nvt ](https://docs.lammps.org/fix_nh.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Nose-Hoover thermostat will not work well for arbitrary values\n > of *Tdamp* . If *Tdamp* is too small, the temperature can fluctuate\n > wildly; if it is too large, the temperature will take a very long time\n > to equilibrate. A good choice for many models is a *Tdamp* of around\n > 100 timesteps. A smaller *Tdamp_drude* value would be required\n > to maintain Drude motion at low temperature. \n > \n\n\n```lmps\nfix 1 all nvt temp 300.0 300.0 $(100.0*dt) 1.0 $(20.0*dt)\n```\n----------\n\nThe barostat parameters for fix style *tgnpt/drude* is specified\nusing one or more of the *iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*,\n*xz*, *yz*, and *couple* keywords. These keywords give you the\nability to specify all 6 components of an external stress tensor, and\nto couple various of these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation. Other barostat-related keywords are *pchain*, *mtk*, *ploop*,\n*nreset*, *scalexy*, *scaleyz*, *scalexz*, *flip* and *fixedpoint*.\nThe meaning of barostat parameters are detailed in [fix npt ](https://docs.lammps.org/fix_nh.html).\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, these fixes\n > perform thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied.\n > Likewise, these fixes should not be used on atoms that also\n > have their temperature controlled by another fix - e.g. by [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html) command. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) and [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) doc pages for a discussion of different\nways to compute temperature and perform thermostatting and\nbarostatting.\n\n----------\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >However, not all temperature compute commands are valid to be used\n > with these fixes. Precisely, only temperature compute that does\n > not modify the DOF of the group can be used. E.g. [compute > temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) and [compute viscosity/cos > ](https://docs.lammps.org/compute_viscosity_cos.html) compute the kinetic energy after remove a\n > velocity gradient without affecting the DOF of the group, then they\n > can be invoked in this way. In contrast, [compute > temp/partial ](https://docs.lammps.org/compute_temp_partial.html) may remove the DOF at one or\n > more dimensions, therefore it cannot be used with these fixes. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes writes the state of all the thermostat and barostat\nvariables to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by these fixes. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure, as described above. If you\ndo this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The\n > *temp* keyword will override this (for the pressure compute being\n > used by fix npt), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe cumulative energy change in the system imposed by these fixes, due\nto thermostatting and/or barostatting, are included in the\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords *ecouple* and\n*econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes also compute a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The vector\nvalues are \"intensive\". The vector stores the three temperatures\n\\(T_\\mathrm{M}\\), \\(T_\\mathrm{R}\\) and \\(T_\\mathrm{D}\\).\n\nThese fixes can ramp their external temperature and pressure over\nmultiple runs, using the *start* and *stop* keywords of the [run](https://docs.lammps.org/run.html) command. See the [run ](https://docs.lammps.org/run.html) command for details of how\nto do this.\n\nThese fixes are not invoked during [energy minimization](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(tgnh-Son)** Son, McDaniel, Cui and Yethiraj, J Phys Chem Lett, 10, 7523 (2019). \n ", + "restrictions": "These fixes are only available when LAMMPS was built with the\nDRUDE package. These fixes cannot be used with dynamic groups as\ndefined by the [group ](https://docs.lammps.org/group.html) command. These fixes cannot be\nused in 2D simulations.\n\n*X*, *y*, *z* cannot be barostatted if the associated dimension is not\nperiodic. *Xy*, *xz*, and *yz* can only be barostatted if the\nsimulation domain is triclinic and the second dimension in the keyword\n(\\ *y* dimension in *xy* ) is periodic. The [create_box ](https://docs.lammps.org/create_box.html),\n[read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands specify whether the simulation box is orthogonal or\nnon-orthogonal (triclinic) and explain the meaning of the xy,xz,yz\ntilt factors.\n\nFor the *temp* keyword, the final *Tstop* cannot be 0.0 since it would\nmake the external T = 0.0 at some timestep during the simulation which\nis not allowed in the Nose/Hoover formulation.\n\nThe *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n", + "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix_npt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "fix temp/rescale/eff" + "pair_style lj/cut/tip4p/cut", + "pair_style lj/cut/tip4p/cut/omp", + "pair_style lj/cut/tip4p/long", + "pair_style lj/cut/tip4p/long/gpu", + "pair_style lj/cut/tip4p/long/omp", + "pair_style lj/cut/tip4p/long/opt" ], "syntax": [ - "fix ID group-ID temp/rescale/eff N Tstart Tstop window fraction" + "pair_style style args" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "temp/rescale/eff", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", - "type": 2, - "choices": [] - }, - { - "arg": "window", - "type": 2, - "choices": [] + "arg": "lj/cut/tip4p/long/opt", + "type": 3, + "choices": [ + "lj/cut/tip4p/cut", + "lj/cut/tip4p/long", + "lj/cut/tip4p/cut/omp", + "lj/cut/tip4p/long/gpu", + "lj/cut/tip4p/long/omp", + "lj/cut/tip4p/long/opt" + ] }, { - "arg": "fraction", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/rescale/eff = style name of this fix command\n* N = perform rescaling every N steps\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* window = only rescale if temperature is outside this window (temperature units)\n* fraction = rescale to target temperature by this fraction \n", - "examples": "\n```lmps\nfix 3 flow temp/rescale/eff 10 1.0 100.0 0.02 1.0\n```\n", - "html_filename": "fix_temp_rescale_eff.html", - "short_description": "Reset the temperature of a group of nuclei and electrons in the\n[electron force field ](https://docs.lammps.org/pair_eff.html) model by explicitly rescaling\ntheir velocities", - "description": "Reset the temperature of a group of nuclei and electrons in the\n[electron force field ](https://docs.lammps.org/pair_eff.html) model by explicitly rescaling\ntheir velocities.\n\nThe operation of this fix is exactly like that described by the [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) command, except that the rescaling\nis also applied to the radial electron velocity for electron\nparticles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix_modify ](https://docs.lammps.org/fix_modify.html),\n[fix temp rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n" + "parameters": "* style = lj/cut/tip4p/cut or lj/cut/tip4p/long\n* args = list of arguments for a particular style \n *      lj/cut/tip4p/cut args = otype htype btype atype qdist cutoff (cutoff2) \n       otype,htype = atom types for TIP4P O and H \n       btype,atype = bond and angle types for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/cut/tip4p/long args = otype htype btype atype qdist cutoff (cutoff2) \n       otype,htype = atom types for TIP4P O and H \n       btype,atype = bond and angle types for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0\npair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0\npair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", + "html_filename": "pair_lj_cut_tip4p.html", + "short_description": "The *lj/cut/tip4p* styles implement the TIP4P water model of\n**Jorgensen2** and similar models, which introduce a\nmassless site M located a short distance away from the oxygen atom along\nthe bisector of the HOH angle", + "description": "The *lj/cut/tip4p* styles implement the TIP4P water model of\n**Jorgensen2** and similar models, which introduce a\nmassless site M located a short distance away from the oxygen atom along\nthe bisector of the HOH angle. The atomic types of the oxygen and\nhydrogen atoms, the bond and angle types for OH and HOH interactions,\nand the distance to the massless charge site are specified as pair_style\narguments and are used to identify the TIP4P-like molecules and\ndetermine the position of the M site from the positions of the hydrogen\nand oxygen atoms of the water molecules. The M site location is used\nfor all Coulomb interactions instead of the oxygen atom location, also\nwith all other atom types, while the location of the oxygen atom is used\nfor the Lennard-Jones interactions. Style *lj/cut/tip4p/cut* uses a\ncutoff for Coulomb interactions; style *lj/cut/tip4p/long* is for use\nwith a long-range Coulombic solver (Ewald or PPPM).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more information\non how to use the TIP4P pair styles and lists of parameters to set.\nNote that the neighbor list cutoff for Coulomb interactions is\neffectively extended by a distance 2\\*qdist when using the TIP4P pair\nstyle, to account for the offset distance of the fictitious charges on\nO atoms in water molecules. Thus it is typically best in an\nefficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\\*qdist, to\nshrink the size of the neighbor list. This leads to slightly larger\ncost for the long-range calculation, so you can test the trade-off for\nyour model.\n\nThe *lj/cut/tip4p* styles compute the standard 12/6 Lennard-Jones potential,\ngiven by\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThey add Coulombic pairwise interactions given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the 2 atoms, and \\(\\epsilon\\) is the dielectric\nconstant which can be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command.\nIf one cutoff is specified in the pair_style command, it is used for\nboth the LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nStyle *lj/cut/tip4p/long* compute the same\nCoulombic interactions as style *lj/cut/tip4p/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\n\n #### Coefficients\n\nFor all of the *lj/cut* pair styles, the following coefficients must\nbe defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands, or by mixing as\ndescribed below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* LJ cutoff (distance units)\n\nNote that \\(\\sigma\\) is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at \\(2^{\\frac{1}{6}} \\sigma\\).\n\nThe last coefficient is optional. If not specified, the global\nLJ cutoff specified in the pair_style command is used.\n\nFor *lj/cut/tip4p/cut* and *lj/cut/tip4p/long* only the LJ cutoff can be\nspecified since a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff specified in\nthe pair_style command.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Because of how these pair styles implement the coulomb interactions\n > by implicitly defining a fourth site for the negative charge\n > of the TIP4P and similar water models, special care must be taken\n > when using these pair styles with other computations that also use\n > charges. Unless they are specially set up to also handle the implicit\n > definition of the 4th site, results are likely incorrect. Example:\n > [compute dipole/chunk ](https://docs.lammps.org/compute_dipole_chunk.html). For the same\n > reason, when using one of these pair styles with\n > [pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html), **all** coulomb interactions\n > should be handled by a single sub-style with TIP4P support. All other\n > instances and styles will \"see\" the M point charges at the position\n > of the Oxygen atom and thus compute incorrect forces and energies.\n > LAMMPS will print a warning when it detects one of these issues. \n > \n\n----------\n\nA version of these styles with a soft core, *lj/cut/tip4p/long/soft*, suitable\nfor use in free energy calculations, is part of the FEP package and\nis documented with the [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\nstyles.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/cut pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/cut/coul/long* and *lj/cut/tip4p/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *lj/cut* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure for the Lennard-Jones\nportion of the pair interaction.\n\nAll of the *lj/cut* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nThe *lj/cut* and *lj/cut/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Jorgensen2)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", + "restrictions": "The *lj/cut/tip4p/long* styles are part of the\nKSPACE package. The *lj/cut/tip4p/cut* style is part of the MOLECULE\npackage. These styles are only enabled if LAMMPS was built with those\npackages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "fix_modify AtC kernel_bandwidth" + "fix eos/cv" ], "syntax": [ - "fix_modify kernel_bandwidth " + "fix ID group-ID eos/cv cv" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "kernel_bandwidth", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "eos/cv", "type": 1, "choices": [] }, { - "arg": "", + "arg": "cv", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* kernel_bandwidth = name of the AtC sub-command\n* value = new bandwidth value \n", - "examples": "\n```lmps\nfix_modify AtC kernel_bandwidth 8\n```\n", - "html_filename": "atc_kernel_bandwidth.html", - "short_description": "Sets a maximum parallel bandwidth for the kernel functions during\nparallel communication", - "description": "Sets a maximum parallel bandwidth for the kernel functions during\nparallel communication. If the command is not issued, the default will\nbe to assume the bandwidth of the kernel matrix corresponds to the\nnumber of sampling locations.\n", - "restrictions": "Only is used if kernel functions are being used.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* eos/cv = style name of this fix command\n* cv = constant-volume heat capacity (energy/temperature units) \n", + "examples": "\n```lmps\nfix 1 all eos/cv 0.01\n```\n", + "html_filename": "fix_eos_cv.html", + "short_description": "Fix *eos/cv* applies a mesoparticle equation of state to relate the\nparticle internal energy (\\(u_i\\)) to the particle internal temperature\n(\\(\\theta_i\\))", + "description": "Fix *eos/cv* applies a mesoparticle equation of state to relate the\nparticle internal energy (\\(u_i\\)) to the particle internal temperature\n(\\(\\theta_i\\)). The *eos/cv* mesoparticle equation of state requires\nthe constant-volume heat capacity, and is defined as follows:\n\\[\n u_{i} = u^{mech}_{i} + u^{cond}_{i} = C_{V} \\theta_{i}\\]\nwhere \\(C_V\\) is the constant-volume heat capacity, \\(u^{cond}\\)\nis the internal conductive energy, and \\(u^{mech}\\) is the internal\nmechanical energy. Note that alternative definitions of the mesoparticle\nequation of state are possible.\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[fix shardlow ](https://docs.lammps.org/fix_shardlow.html), [pair dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html)\n" }, { "command": [ - "package" + "labelmap" ], "syntax": [ - "package style args" + "labelmap option args" ], "args": [ [ { - "arg": "package", + "arg": "labelmap", "type": 1, "choices": [] }, { - "arg": "omp", + "arg": "write", "type": 3, "choices": [ - "gpu", - "intel", - "kokkos", - "omp" + "atom", + "bond", + "angle", + "dihedral", + "improper", + "clear", + "write" ] }, { @@ -34400,154 +33595,159 @@ export const command_docs = [ } ] ], - "parameters": "* style = gpu or intel or kokkos or omp\n* args = arguments specific to the style \n *        gpu args = Ngpu keyword value ... \n         Ngpu = # of GPUs per node \n         zero or more keyword/value pairs may be appended \n         keywords = neigh or newton or pair/only or binsize or split or gpuID or tpa or blocksize or omp or platform or device_type or ocl_args \n         neigh value = yes or no \n         yes = neighbor list build on GPU (default) \n         no = neighbor list build on CPU \n         newton = off or on \n         off = set Newton pairwise flag off (default and required) \n         on = set Newton pairwise flag on (currently not allowed) \n         pair/only = off or on \n         off = apply \"gpu\" suffix to all available styles in the GPU package (default) \n         on = apply \"gpu\" suffix only pair styles \n         binsize value = size \n         size = bin size for neighbor list construction (distance units) \n         split = fraction \n         fraction = fraction of atoms assigned to GPU (default = 1.0) \n         tpa value = Nlanes \n         Nlanes = # of GPU vector lanes (CUDA threads) used per atom \n         blocksize value = size \n         size = thread block size for pair force computation \n         omp value = Nthreads \n         Nthreads = number of OpenMP threads to use on CPU (default = 0) \n         platform value = id \n         id = For OpenCL, platform ID for the GPU or accelerator \n         gpuID values = id \n         id = ID of first GPU to be used on each node \n         device_type value = intelgpu or nvidiagpu or amdgpu or applegpu or generic or *custom*,val1,val2,... \n         val1,val2,... = custom OpenCL accelerator configuration parameters (see below for details) \n         ocl_args value = args \n         args = List of additional OpenCL compiler arguments delimited by colons \n *        intel args = NPhi keyword value ... \n         Nphi = # of co-processors per node \n         zero or more keyword/value pairs may be appended \n         keywords = mode or omp or lrt or balance or ghost or tpc or tptask or pppm_table or no_affinity \n         mode value = single or mixed or double \n         single = perform force calculations in single precision \n         mixed = perform force calculations in mixed precision \n         double = perform force calculations in double precision \n         omp value = Nthreads \n         Nthreads = number of OpenMP threads to use on CPU (default = 0) \n         lrt value = yes or no \n         yes = use additional thread dedicated for some PPPM calculations \n         no = do not dedicate an extra thread for some PPPM calculations \n         balance value = split \n         split = fraction of work to offload to co-processor, -1 for dynamic \n         ghost value = yes or no \n         yes = include ghost atoms for offload \n         no = do not include ghost atoms for offload \n         tpc value = Ntpc \n         Ntpc = max number of co-processor threads per co-processor core (default = 4) \n         tptask value = Ntptask \n         Ntptask = max number of co-processor threads per MPI task (default = 240) \n         pppm_table value = yes or no \n         yes = Precompute pppm values in table (doesn't change accuracy) \n         no = Compute pppm values on the fly \n         no_affinity values = none \n *        kokkos args = keyword value ... \n         zero or more keyword/value pairs may be appended \n         keywords = neigh or neigh/qeq or neigh/thread or neigh/transpose or newton or binsize or comm or comm/exchange or comm/forward or comm/pair/forward or comm/fix/forward or comm/reverse or comm/pair/reverse or sort or atom/map or gpu/aware or pair/only \n         neigh value = full or half \n         full = full neighbor list \n         half = half neighbor list built in thread-safe manner \n         neigh/qeq value = full or half \n         full = full neighbor list \n         half = half neighbor list built in thread-safe manner \n         neigh/thread value = off or on \n         off = thread only over atoms \n         on = thread over both atoms and neighbors \n         neigh/transpose value = off or on \n         off = use same memory layout for GPU neigh list build as pair style \n         on = use transposed memory layout for GPU neigh list build \n         newton = off or on \n         off = set Newton pairwise and bonded flags off \n         on = set Newton pairwise and bonded flags on \n         binsize value = size \n         size = bin size for neighbor list construction (distance units) \n         comm value = no or host or device \n         use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse \n         comm/exchange value = no or host or device \n         comm/forward value = no or host or device \n         comm/pair/forward value = no or device \n         comm/fix/forward value = no or device \n         comm/reverse value = no or host or device \n         no = perform communication pack/unpack in non-KOKKOS mode \n         host = perform pack/unpack on host (e.g. with OpenMP threading) \n         device = perform pack/unpack on device (e.g. on GPU) \n         comm/pair/reverse value = no or device \n         no = perform communication pack/unpack in non-KOKKOS mode \n         device = perform pack/unpack on device (e.g. on GPU) \n         sort value = no or device \n         no = perform atom sorting in non-KOKKOS mode \n         device = perform atom sorting on device (e.g. on GPU) \n         atom/map value = no or device \n         no = build atom map in non-KOKKOS mode \n         device = build atom map on device (e.g. on GPU) \n         gpu/aware = off or on \n         off = do not use GPU-aware MPI \n         on = use GPU-aware MPI (default) \n         pair/only = off or on \n         off = use device acceleration (e.g. GPU) for all available styles in the KOKKOS package (default) \n         on = use device acceleration only for pair styles (and host acceleration for others) \n *        omp args = Nthreads keyword value ... \n         Nthreads = # of OpenMP threads to associate with each MPI process \n         zero or more keyword/value pairs may be appended \n         keywords = neigh \n         neigh value = yes or no \n         yes = threaded neighbor list build (default) \n         no = non-threaded neighbor list build \n", - "examples": "\n```lmps\npackage gpu 0\npackage gpu 1 split 0.75\npackage gpu 2 split -1.0\npackage gpu 0 omp 2 device_type intelgpu\npackage kokkos neigh half comm device\npackage omp 0 neigh no\npackage omp 4\npackage intel 1\npackage intel 2 omp 4 mode mixed balance 0.5\n```\n", - "html_filename": "package.html", - "short_description": "This command invokes package-specific settings for the various\naccelerator packages available in LAMMPS", - "description": "This command invokes package-specific settings for the various\naccelerator packages available in LAMMPS. Currently the following\npackages use settings from this command: GPU, INTEL, KOKKOS, and\nOPENMP.\n\nIf this command is specified in an input script, it must be near the\ntop of the script, before the simulation box has been defined. This\nis because it specifies settings that the accelerator packages use in\ntheir initialization, before a simulation is defined.\n\nThis command can also be specified from the command-line when\nlaunching LAMMPS, using the \"-pk\" [command-line switch ](https://docs.lammps.org/Run_options.html). The syntax is exactly the same as when used\nin an input script.\n\nNote that all of the accelerator packages require the package command\nto be specified (except the OPT package), if the package is to be used\nin a simulation (LAMMPS can be built with an accelerator package\nwithout using it in a particular simulation). However, in all cases,\na default version of the command is typically invoked by other\naccelerator settings.\n\nThe KOKKOS package requires a \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html) respectively, which invokes a \"package\nkokkos\" command with default settings.\n\nFor the GPU, INTEL, and OPENMP packages, if a \"-sf gpu\" or \"-sf\nintel\" or \"-sf omp\" [command-line switch ](https://docs.lammps.org/Run_options.html) is used to\nauto-append accelerator suffixes to various styles in the input\nscript, then those switches also invoke a \"package gpu\", \"package\nintel\", or \"package omp\" command with default settings.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A package command for a particular style can be invoked multiple\n > times when a simulation is setup, e.g. by the [-c on, -k on, -sf, and -pk command-line switches ](https://docs.lammps.org/Run_options.html), and by using this command\n > in an input script. Each time it is used all of the style options are\n > set, either to default values or to specified settings. I.e. settings\n > from previous invocations do not persist across multiple invocations. \n > \n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more details\nabout using the various accelerator packages for speeding up LAMMPS\nsimulations.\n\n----------\n\nThe *gpu* style invokes settings associated with the use of the GPU\npackage.\n\nThe *Ngpu* argument sets the number of GPUs per node. If *Ngpu* is 0\nand no other keywords are specified, GPU or accelerator devices are\nauto-selected. In this process, all platforms are searched for\naccelerator devices and GPUs are chosen if available. The device with\nthe highest number of compute cores is selected. The number of devices\nis increased to be the number of matching accelerators with the same\nnumber of compute cores. If there are more devices than MPI tasks,\nthe additional devices will be unused. The auto-selection of GPUs/\naccelerator devices and platforms can be restricted by specifying\na non-zero value for *Ngpu* and / or using the *gpuID*, *platform*,\nand *device_type* keywords as described below. If there are more MPI\ntasks (per node) than GPUs, multiple MPI tasks will share each GPU.\n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *neigh* keyword specifies where neighbor lists for pair style\ncomputation will be built. If *neigh* is *yes*, which is the default,\nneighbor list building is performed on the GPU. If *neigh* is *no*,\nneighbor list building is performed on the CPU. GPU neighbor list\nbuilding currently cannot be used with a triclinic box. GPU neighbor\nlists are not compatible with commands that are not GPU-enabled. When\na non-GPU enabled command requires a neighbor list, it will also be\nbuilt on the CPU. In these cases, it will typically be more efficient\nto only use CPU neighbor list builds.\n\nThe *newton* keyword sets the Newton flags for pairwise (not bonded)\ninteractions to *off* or *on*, the same as the [newton ](https://docs.lammps.org/newton.html)\ncommand allows. Currently, only an *off* value is allowed, since all\nthe GPU package pair styles require this setting. This means more\ncomputation is done, but less communication. In the future a value of\n*on* may be allowed, so the *newton* keyword is included as an option\nfor compatibility with the package command for other accelerator\nstyles. Note that the newton setting for bonded interactions is not\naffected by this keyword.\n\nThe *pair/only* keyword can change how any \"gpu\" suffix is applied.\nBy default a suffix is applied to all styles for which an accelerated\nvariant is available. However, that is not always the most effective\nway to use an accelerator. With *pair/only* set to *on* the suffix\nwill only by applied to supported pair styles, which tend to be the\nmost effective in using an accelerator and their operation can be\noverlapped with all other computations on the CPU.\n\nThe *binsize* keyword sets the size of bins used to bin atoms in\nneighbor list builds performed on the GPU, if *neigh* = *yes* is set.\nIf *binsize* is set to 0.0 (the default), then the binsize is set\nautomatically using heuristics in the GPU package.\n\nThe *split* keyword can be used for load balancing force calculations\nbetween CPU and GPU cores in GPU-enabled pair styles. If 0 < *split* <\n1.0, a fixed fraction of particles is offloaded to the GPU while force\ncalculation for the other particles occurs simultaneously on the CPU.\nIf *split* < 0.0, the optimal fraction (based on CPU and GPU timings)\nis calculated every 25 timesteps, i.e. dynamic load-balancing across\nthe CPU and GPU is performed. If *split* = 1.0, all force\ncalculations for GPU accelerated pair styles are performed on the GPU.\nIn this case, other [hybrid ](https://docs.lammps.org/pair_hybrid.html) pair interactions,\n[bond ](https://docs.lammps.org/bond_style.html), [angle ](https://docs.lammps.org/angle_style.html),\n[dihedral ](https://docs.lammps.org/dihedral_style.html), [improper ](https://docs.lammps.org/improper_style.html), and\n[long-range ](https://docs.lammps.org/kspace_style.html) calculations can be performed on the\nCPU while the GPU is performing force calculations for the GPU-enabled\npair style. If all CPU force computations complete before the GPU\ncompletes, LAMMPS will block until the GPU has finished before\ncontinuing the timestep.\n\nAs an example, if you have two GPUs per node and 8 CPU cores per node,\nand would like to run on 4 nodes (32 cores) with dynamic balancing of\nforce calculation across CPU and GPU cores, you could specify\n\n```bash\nmpirun -np 32 -sf gpu -in in.script # launch command\npackage gpu 2 split -1 # input script command\n```\nIn this case, all CPU cores and GPU devices on the nodes would be\nutilized. Each GPU device would be shared by 4 CPU cores. The CPU\ncores would perform force calculations for some fraction of the\nparticles at the same time the GPUs performed force calculation for\nthe other particles.\n\nThe *gpuID* keyword is used to specify the first ID for the GPU or\nother accelerator that LAMMPS will use. For example, if the ID is\n1 and *Ngpu* is 3, GPUs 1-3 will be used. Device IDs should be\ndetermined from the output of nvc_get_devices, ocl_get_devices,\nor hip_get_devices\nas provided in the lib/gpu directory. When using OpenCL with\naccelerators that have main memory NUMA, the accelerators can be\nsplit into smaller virtual accelerators for more efficient use\nwith MPI.\n\nThe *tpa* keyword sets the number of GPU vector lanes per atom used to\nperform force calculations. With a default value of 1, the number of\nlanes will be chosen based on the pair style, however, the value can\nbe set explicitly with this keyword to fine-tune performance. For\nlarge cutoffs or with a small number of particles per GPU, increasing\nthe value can improve performance. The number of lanes per atom must\nbe a power of 2 and currently cannot be greater than the SIMD width\nfor the GPU / accelerator. In the case it exceeds the SIMD width, it\nwill automatically be decreased to meet the restriction.\n\nThe *blocksize* keyword allows you to tweak the number of threads used\nper thread block. This number should be a multiple of 32 (for GPUs)\nand its maximum depends on the specific GPU hardware. Typical choices\nare 64, 128, or 256. A larger block size increases occupancy of\nindividual GPU cores, but reduces the total number of thread blocks,\nthus may lead to load imbalance. On modern hardware, the sensitivity\nto the blocksize is typically low.\n\nThe *Nthreads* value for the *omp* keyword sets the number of OpenMP\nthreads allocated for each MPI task. This setting controls OpenMP\nparallelism only for routines run on the CPUs. For more details on\nsetting the number of OpenMP threads, see the discussion of the\n*Nthreads* setting on this page for the \"package omp\" command.\nThe meaning of *Nthreads* is exactly the same for the GPU, INTEL,\nand GPU packages.\n\nThe *platform* keyword is only used with OpenCL to specify the ID for\nan OpenCL platform. See the output from ocl_get_devices in the lib/gpu\ndirectory. In LAMMPS only one platform can be active at a time and by\ndefault (id=-1) the platform is auto-selected to find the GPU with the\nmost compute cores. When *Ngpu* or other keywords are specified, the\nauto-selection is appropriately restricted. For example, if *Ngpu* is\n3, only platforms with at least 3 accelerators are considered. Similar\nrestrictions can be enforced by the *gpuID* and *device_type* keywords.\n\nThe *device_type* keyword can be used for OpenCL to specify the type of\nGPU to use or specify a custom configuration for an accelerator. In most\ncases this selection will be automatic and there is no need to use the\nkeyword. The *applegpu* type is not specific to a particular GPU vendor,\nbut is separate due to the more restrictive Apple OpenCL implementation.\nFor expert users, to specify a custom configuration, the *custom* keyword\nfollowed by the next parameters can be specified:\n\nCONFIG_ID, SIMD_SIZE, MEM_THREADS, SHUFFLE_AVAIL, FAST_MATH,\nTHREADS_PER_ATOM, THREADS_PER_CHARGE, THREADS_PER_THREE, BLOCK_PAIR,\nBLOCK_BIO_PAIR, BLOCK_ELLIPSE, PPPM_BLOCK_1D, BLOCK_NBOR_BUILD,\nBLOCK_CELL_2D, BLOCK_CELL_ID, MAX_SHARED_TYPES, MAX_BIO_SHARED_TYPES,\nPPPM_MAX_SPLINE, NBOR_PREFETCH.\n\nCONFIG_ID can be 0. SHUFFLE_AVAIL in {0,1} indicates that inline-PTX\n(NVIDIA) or OpenCL extensions (Intel) should be used for horizontal\nvector operations. FAST_MATH in {0,1} indicates that OpenCL fast math\noptimizations are used during the build and hardware-accelerated\ntranscendental functions are used when available. THREADS_PER_* give the\ndefault *tpa* values for ellipsoidal models, styles using charge, and\nany other styles. The BLOCK_* parameters specify the block sizes for\nvarious kernel calls and the MAX_*SHARED*_ parameters are used to\ndetermine the amount of local shared memory to use for storing model\nparameters.\n\nFor OpenCL, the routines are compiled at runtime for the specified GPU\nor accelerator architecture. The *ocl_args* keyword can be used to\nspecify additional flags for the runtime build.\n\n----------\n\nThe *intel* style invokes settings associated with the use of the INTEL\npackage. The keywords *balance*, *ghost*, *tpc*, and *tptask* are\n**only** applicable if LAMMPS was built with Xeon Phi co-processor\nsupport and are otherwise ignored.\n\nThe *Nphi* argument sets the number of co-processors per node.\nThis can be set to any value, including 0, if LAMMPS was not\nbuilt with co-processor support.\n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *Nthreads* value for the *omp* keyword sets the number of OpenMP\nthreads allocated for each MPI task. This setting controls OpenMP\nparallelism only for routines run on the CPUs. For more details on\nsetting the number of OpenMP threads, see the discussion of the\n*Nthreads* setting on this page for the \"package omp\" command.\nThe meaning of *Nthreads* is exactly the same for the GPU, INTEL,\nand GPU packages.\n\nThe *mode* keyword determines the precision mode to use for\ncomputing pair style forces, either on the CPU or on the co-processor,\nwhen using a INTEL supported [pair style ](https://docs.lammps.org/pair_style.html). It\ncan take a value of *single*, *mixed* which is the default, or\n*double* . *Single* means single precision is used for the entire\nforce calculation. *Mixed* means forces between a pair of atoms are\ncomputed in single precision, but accumulated and stored in double\nprecision, including storage of forces, torques, energies, and virial\nquantities. *Double* means double precision is used for the entire\nforce calculation.\n\nThe *lrt* keyword can be used to enable \"Long Range Thread (LRT)\"\nmode. It can take a value of *yes* to enable and *no* to disable.\nLRT mode generates an extra thread (in addition to any OpenMP threads\nspecified with the OMP_NUM_THREADS environment variable or the *omp*\nkeyword). The extra thread is dedicated for performing part of the\n[PPPM solver ](https://docs.lammps.org/kspace_style.html) computations and communications. This\ncan improve parallel performance on processors supporting\nSimultaneous Multithreading (SMT) such as Hyper-Threading (HT) on Intel\nprocessors. In this mode, one additional thread is generated per MPI\nprocess. LAMMPS will generate a warning in the case that more threads\nare used than available in SMT hardware on a node. If the PPPM solver\nfrom the INTEL package is not used, then the LRT setting is\nignored and no extra threads are generated. Enabling LRT will replace\nthe [run_style ](https://docs.lammps.org/run_style.html) with the *verlet/lrt/intel* style that\nis identical to the default *verlet* style aside from supporting the\nLRT feature. This feature requires setting the pre-processor flag\n-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS.\n\nThe *balance* keyword sets the fraction of [pair style ](https://docs.lammps.org/pair_style.html) work\noffloaded to the co-processor for split values between 0.0 and 1.0 inclusive.\nWhile this fraction of work is running on the co-processor, other calculations\nwill run on the host, including neighbor and pair calculations that are not\noffloaded, as well as angle, bond, dihedral, kspace, and some MPI\ncommunications. If *split* is set to -1, the fraction of work is dynamically\nadjusted automatically throughout the run. This typically give performance\nwithin 5 to 10 percent of the optimal fixed fraction.\n\nThe *ghost* keyword determines whether or not ghost atoms, i.e. atoms\nat the boundaries of processor subdomains, are offloaded for neighbor\nand force calculations. When the value = \"no\", ghost atoms are not\noffloaded. This option can reduce the amount of data transfer with\nthe co-processor and can also overlap MPI communication of forces with\ncomputation on the co-processor when the [newton pair ](https://docs.lammps.org/newton.html)\nsetting is \"on\". When the value = \"yes\", ghost atoms are offloaded.\nIn some cases this can provide better performance, especially if the\n*balance* fraction is high.\n\nThe *tpc* keyword sets the max # of co-processor threads *Ntpc* that\nwill run on each core of the co-processor. The default value = 4,\nwhich is the number of hardware threads per core supported by the\ncurrent generation Xeon Phi chips.\n\nThe *tptask* keyword sets the max # of co-processor threads (Ntptask*\nassigned to each MPI task. The default value = 240, which is the\ntotal # of threads an entire current generation Xeon Phi chip can run\n(240 = 60 cores \\* 4 threads/core). This means each MPI task assigned\nto the Phi will enough threads for the chip to run the max allowed,\neven if only 1 MPI task is assigned. If 8 MPI tasks are assigned to\nthe Phi, each will run with 30 threads. If you wish to limit the\nnumber of threads per MPI task, set *tptask* to a smaller value.\nE.g. for *tptask* = 16, if 8 MPI tasks are assigned, each will run\nwith 16 threads, for a total of 128.\n\nNote that the default settings for *tpc* and *tptask* are fine for\nmost problems, regardless of how many MPI tasks you assign to a Phi.\n\nThe *pppm_table* keyword with the argument yes allows to use a\npre-computed table to efficiently spread the charge to the PPPM grid.\nThis feature is enabled by default but can be turned off using the\nkeyword with the argument *no*.\n\nThe *no_affinity* keyword will turn off automatic setting of core\naffinity for MPI tasks and OpenMP threads on the host when using\noffload to a co-processor. Affinity settings are used when possible\nto prevent MPI tasks and OpenMP threads from being on separate NUMA\ndomains and to prevent offload threads from interfering with other\nprocesses/threads used for LAMMPS.\n\n----------\n\nThe *kokkos* style invokes settings associated with the use of the\nKOKKOS package.\n\nAll of the settings are optional keyword/value pairs. Each has a default\nvalue as listed below.\n\nThe *neigh* keyword determines how neighbor lists are built. A value of\n*half* uses a thread-safe variant of half-neighbor lists, the same as\nused by most pair styles in LAMMPS, which is the default when running on\nCPUs (i.e. the Kokkos CUDA back end is not enabled).\n\nA value of *full* uses a full neighbor lists and is the default when\nrunning on GPUs. This performs twice as much computation as the *half*\noption, however that is often a win because it is thread-safe and\ndoes not require atomic operations in the calculation of pair forces. For\nthat reason, *full* is the default setting for GPUs. However, when\nrunning on CPUs, a *half* neighbor list is the default because it are\noften faster, just as it is for non-accelerated pair styles. Similarly,\nthe *neigh/qeq* keyword determines how neighbor lists are built for\n[fix qeq/reaxff/kk ](https://docs.lammps.org/fix_qeq_reaxff.html).\n\nIf the *neigh/thread* keyword is set to *off*, then the KOKKOS package\nthreads only over atoms. However, for small systems, this may not expose\nenough parallelism to keep a GPU busy. When this keyword is set to *on*,\nthe KOKKOS package threads over both atoms and neighbors of atoms. When\nusing *neigh/thread* *on*, the [newton pair ](https://docs.lammps.org/newton.html) setting must\nbe \"off\". Using *neigh/thread* *on* may be slower for large systems, so\nthis this option is turned on by default only when running on one or\nmore GPUs and there are 16k atoms or less owned by an MPI rank. Not all\nKOKKOS-enabled potentials support this keyword yet, and only thread over\natoms. Many simple pairwise potentials such as Lennard-Jones do support\nthreading over both atoms and neighbors.\n\nIf the *neigh/transpose* keyword is set to *off*, then the KOKKOS\npackage will use the same memory layout for building the neighbor list on\nGPUs as used for the pair style. When this keyword is set to *on* it\nwill use a different (transposed) memory layout to build the neighbor\nlist on GPUs. This can be faster in some cases (e.g. ReaxFF HNS\nbenchmark) but slower in others (e.g. Lennard Jones benchmark). The\ncopy between different memory layouts is done out of place and\ntherefore doubles the memory overhead of the neighbor list, which can\nbe significant.\n\nThe *newton* keyword sets the Newton flags for pairwise and bonded\ninteractions to *off* or *on*, the same as the [newton ](https://docs.lammps.org/newton.html)\ncommand allows. The default for GPUs is *off* because this will almost\nalways give better performance for the KOKKOS package. This means more\ncomputation is done, but less communication. However, when running on\nCPUs a value of *on* is the default since it can often be faster, just\nas it is for non-accelerated pair styles\n\nThe *binsize* keyword sets the size of bins used to bin atoms during\nneighbor list builds. The same value can be set by the\n[neigh_modify binsize ](https://docs.lammps.org/neigh_modify.html) command. Making it an option\nin the package kokkos command allows it to be set from the command line.\nThe default value for CPUs is 0.0, which means the LAMMPS default will be\nused, which is bins = 1/2 the size of the pairwise cutoff + neighbor skin\ndistance. This is fine when neighbor lists are built on the CPU. For GPU\nbuilds, a 2x larger binsize equal to the pairwise cutoff + neighbor skin\nis often faster, which is the default. Note that if you use a\nlonger-than-usual pairwise cutoff, e.g. to allow for a smaller fraction\nof KSpace work with a [long-range Coulombic solver ](https://docs.lammps.org/kspace_style.html)\nbecause the GPU is faster at performing pairwise interactions, then this\nrule of thumb may give too large a binsize and the default should be\noverridden with a smaller value.\n\nThe *comm* and *comm/exchange* and *comm/forward* and *comm/pair/forward*\nand *comm/fix/forward* and *comm/reverse* and *comm/pair/reverse*\nkeywords determine whether the host or device performs the packing and\nunpacking of data when communicating per-atom data between processors.\n\"Exchange\" communication happens only on timesteps that neighbor lists\nare rebuilt. The data is only for atoms that migrate to new processors.\n\"Forward\" communication happens every timestep. \"Reverse\" communication\nhappens every timestep if the *newton* option is on. The data is for\natom coordinates and any other atom properties that needs to be updated\nfor ghost atoms owned by each processor. \"Pair/comm\" controls additional\ncommunication in pair styles, such as pair_style EAM. \"Fix/comm\" controls\nadditional communication in fixes, such as fix SHAKE.\n\nThe *comm* keyword is simply a short-cut to set the same value for all\nthe comm keywords.\n\nThe value options for the keywords are *no* or *host* or *device* . A\nvalue of *no* means to use the standard non-KOKKOS method of\npacking/unpacking data for the communication. A value of *host* means to\nuse the host, typically a multicore CPU, and perform the\npacking/unpacking in parallel with threads. A value of *device* means to\nuse the device, typically a GPU, to perform the packing/unpacking\noperation.\n\nFor the *comm/pair/forward* or *comm/fix/forward* or *comm/pair/reverse*\nkeywords, if a value of *host* is used it will be automatically\nbe changed to *no* since these keywords don't support *host* mode. The\nvalue of *no* will also always be used when running on the CPU, i.e. setting\nthe value to *device* will have no effect if the pair/fix style is\nrunning on the CPU. For the *comm/fix/forward* or *comm/pair/reverse*\nkeywords, not all styles support *device* mode and in that case will run\nin *no* mode instead.\n\nThe optimal choice for these keywords depends on the input script and\nthe hardware used. The *no* value is useful for verifying that the\nKokkos-based *host* and *device* values are working correctly. It is the\ndefault when running on CPUs since it is usually the fastest.\n\nWhen running on CPUs or Xeon Phi, the *host* and *device* values work\nidentically. When using GPUs, the *device* value is the default since it\nwill typically be optimal if all of your styles used in your input\nscript are supported by the KOKKOS package. In this case data can stay\non the GPU for many timesteps without being moved between the host and\nGPU, if you use the *device* value. If your script uses styles (e.g.\nfixes) which are not yet supported by the KOKKOS package, then data has\nto be moved between the host and device anyway, so it is typically faster\nto let the host handle communication, by using the *host* value. Using\n*host* instead of *no* will enable use of multiple threads to\npack/unpack communicated data. When running small systems on a GPU,\nperforming the exchange pack/unpack on the host CPU can give speedup\nsince it reduces the number of CUDA kernel launches.\n\nThe *sort* keyword determines whether the host or device performs atom\nsorting, see the [atom_modify sort ](https://docs.lammps.org/atom_modify.html) command. The value\noptions for the *sort* keyword are *no* or *device* similar to the *comm*\nkeywords above. If a value of *host* is used it will be automatically be\nchanged to *no* since the *sort* keyword does not support *host* mode. Not\nall fix styles with extra atom data support *device* mode and in that case\na warning will be given and atom sorting will run in *no* mode instead.\n\nThe *atom/map* keyword determines whether the host or device builds the\natom_map, see the [atom_modify map ](https://docs.lammps.org/atom_modify.html) command. The\nvalue options for the *atom/map* keyword are identical to the *sort*\nkeyword above.\n\nThe *gpu/aware* keyword chooses whether GPU-aware MPI will be used. When\nthis keyword is set to *on*, buffers in GPU memory are passed directly\nthrough MPI send/receive calls. This reduces overhead of first copying\nthe data to the host CPU. However GPU-aware MPI is not supported on all\nsystems, which can lead to segmentation faults and would require using a\nvalue of *off* . If LAMMPS can safely detect that GPU-aware MPI is not\navailable (currently only possible with OpenMPI v2.0.0 or later), then\nthe *gpu/aware* keyword is automatically set to *off* by default. When\nthe *gpu/aware* keyword is set to *off* while any of the *comm*\nkeywords are set to *device*, the value for these *comm* keywords will\nbe automatically changed to *no* . This setting has no effect if not\nrunning on GPUs or if using only one MPI rank. GPU-aware MPI is available\nfor OpenMPI 1.8 (or later versions), Mvapich2 1.9 (or later) when the\n\"MV2_USE_CUDA\" environment variable is set to \"1\", CrayMPI, and IBM\nSpectrum MPI when the \"-gpu\" flag is used.\n\nThe *pair/only* keyword can change how the KOKKOS suffix \"kk\" is applied\nwhen using an accelerator device. By default device acceleration is always\nused for all available styles. With *pair/only* set to *on* the suffix\nsetting will choose device acceleration only for pair styles and run all\nother force computations on the host CPU. The *comm* flags, along with the\n*sort* and *atom/map* keywords will also automatically be changed to *no* .\nThis can result in better performance for certain configurations and\nsystem sizes.\n\n----------\n\nThe *omp* style invokes settings associated with the use of the\nOPENMP package.\n\nThe *Nthreads* argument sets the number of OpenMP threads allocated for\neach MPI task. For example, if your system has nodes with dual\nquad-core processors, it has a total of 8 cores per node. You could\nuse two MPI tasks per node (e.g. using the -ppn option of the mpirun\ncommand in MPICH or -npernode in OpenMPI), and set *Nthreads* = 4.\nThis would use all 8 cores on each node. Note that the product of MPI\ntasks \\* threads/task should not exceed the physical number of cores\n(on a node), otherwise performance will suffer.\n\nSetting *Nthreads* = 0 instructs LAMMPS to use whatever value is the\ndefault for the given OpenMP environment. This is usually determined\nvia the *OMP_NUM_THREADS* environment variable or the compiler\nruntime. Note that in most cases the default for OpenMP capable\ncompilers is to use one thread for each available CPU core when\n*OMP_NUM_THREADS* is not explicitly set, which can lead to poor\nperformance.\n\nHere are examples of how to set the environment variable when\nlaunching LAMMPS:\n\n```bash\nenv OMP_NUM_THREADS=4 lmp_machine -sf omp -in in.script\nenv OMP_NUM_THREADS=2 mpirun -np 2 lmp_machine -sf omp -in in.script\nmpirun -x OMP_NUM_THREADS=2 -np 2 lmp_machine -sf omp -in in.script\n```\nor you can set it permanently in your shell's start-up script.\nAll three of these examples use a total of 4 CPU cores.\n\nNote that different MPI implementations have different ways of passing\nthe OMP_NUM_THREADS environment variable to all MPI processes. The\nsecond example line above is for MPICH; the third example line with -x is\nfor OpenMPI. Check your MPI documentation for additional details.\n\nWhat combination of threads and MPI tasks gives the best performance\nis difficult to predict and can depend on many components of your\ninput. Not all features of LAMMPS support OpenMP threading via the\nOPENMP package and the parallel efficiency can be very different,\ntoo.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you build LAMMPS with the GPU, INTEL, and / or OPENMP\n > packages, be aware these packages all allow setting of the *Nthreads*\n > value via their package commands, but there is only a single global\n > *Nthreads* value used by OpenMP. Thus if multiple package commands are\n > invoked, you should ensure the values are consistent. If they are\n > not, the last one invoked will take precedence, for all packages.\n > Also note that if the [-sf hybrid intel omp command-line switch ](https://docs.lammps.org/Run_options.html) is used, it invokes a \"package intel\" command, followed by a\n > \"package omp\" command, both with a setting of *Nthreads* = 0. Likewise\n > for a hybrid suffix for gpu and omp. Note that KOKKOS also supports\n > setting the number of OpenMP threads from the command line using the\n > \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html). The default for\n > KOKKOS is 1 thread per MPI task, so any other number of threads should\n > be explicitly set using the \"-k on\" command-line switch (and this\n > setting should be consistent with settings from any other packages\n > used). \n > \n\nOptional keyword/value pairs can also be specified. Each has a\ndefault value as listed below.\n\nThe *neigh* keyword specifies whether neighbor list building will be\nmulti-threaded in addition to force calculations. If *neigh* is set\nto *no* then neighbor list calculation is performed only by MPI tasks\nwith no OpenMP threading. If *mode* is *yes* (the default), a\nmulti-threaded neighbor list build is used. Using *neigh* = *yes* is\nalmost always faster and should produce identical neighbor lists at the\nexpense of using more memory. Specifically, neighbor list pages are\nallocated for all threads at the same time and each thread works\nwithin its own pages.\n\n----------\n", - "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n\nThe *gpu* style of this command can only be invoked if LAMMPS was built\nwith the GPU package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nThe *intel* style of this command can only be invoked if LAMMPS was\nbuilt with the INTEL package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *kokkos* style of this command can only be invoked if LAMMPS was built\nwith the KOKKOS package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe *omp* style of this command can only be invoked if LAMMPS was built\nwith the OPENMP package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[suffix ](https://docs.lammps.org/suffix.html), [-pk command-line switch ](https://docs.lammps.org/Run_options.html)\n\n #### Defaults\n\nFor the GPU package, the default parameters and settings are:\n\n```\nNgpu = 0, neigh = yes, newton = off, binsize = 0.0, split = 1.0, gpuID = 0 to Ngpu-1, tpa = 1, omp = 0, platform=-1.\n```\nThese settings are made automatically if the \"-sf gpu\"\n[command-line switch ](https://docs.lammps.org/Run_options.html) is used. If it is not used,\nyou must invoke the package gpu command in your input script or via the\n\"-pk gpu\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the INTEL package, the default parameters and settings are:\n\n```\nNphi = 1, omp = 0, mode = mixed, lrt = no, balance = -1, tpc = 4, tptask = 240, pppm_table = yes\n```\nThe default ghost option is determined by the pair style being used.\nThis value is output to the screen in the offload report at the end of each\nrun. Note that all of these settings, except \"omp\" and \"mode\", are ignored if\nLAMMPS was not built with Xeon Phi co-processor support. These settings are\nmade automatically if the \"-sf intel\" [command-line switch ](https://docs.lammps.org/Run_options.html)\nis used. If it is not used, you must invoke the package intel command in your\ninput script or via the \"-pk intel\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the KOKKOS package when using GPUs, the option defaults are:\n\n```\nneigh = full, neigh/qeq = full, newton = off, binsize = 2x LAMMPS default value, comm = device, sort = device, atom/map = device, neigh/transpose = off, gpu/aware = on\n```\nFor GPUs, option neigh/thread = on when there are 16k atoms or less on\nan MPI rank, otherwise it is \"off\". When LAMMPS can safely detect that\nGPU-aware MPI is not available, the default value of gpu/aware becomes\n\"off\".\n\nFor the KOKKOS package when using CPUs or Xeon Phis, the option defaults are:\n\n```\nneigh = half, neigh/qeq = half, newton = on, binsize = 0.0, comm = no, sort = no, atom/map = no\n```\nThese settings are made automatically by\nthe required \"-k on\" [command-line switch ](https://docs.lammps.org/Run_options.html). You can\nchange them by using the package kokkos command in your input script or\nvia the [-pk kokkos command-line switch ](https://docs.lammps.org/Run_options.html).\n\nFor the OMP package, the defaults are\n\n```\nNthreads = 0, neigh = yes\n```\nThese settings are made automatically if the \"-sf omp\"\n[command-line switch ](https://docs.lammps.org/Run_options.html) is used. If it is not used,\nyou must invoke the package omp command in your input script or via the\n\"-pk omp\" [command-line switch ](https://docs.lammps.org/Run_options.html).\n" + "parameters": "* option = atom or bond or angle or dihedral or improper or clear or write \n *      clear = no args \n *      write arg = filename \n *      atom or bond or angle or dihedral or improper \n       args = list of one or more numeric-type/type-label pairs \n", + "examples": "\n```lmps\nlabelmap atom 1 c1 2 hc 3 cp 4 nt\nlabelmap atom 3 carbon 4 'c3\"' 5 \"c1'\" 6 \"c#\"\nlabelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C'\nlabelmap clear\nlabelmap write mymap.include\nlabelmap bond 1 carbonyl 2 nitrile 3 \"\"\" c1'-c2\" \"\"\"\n```\n", + "html_filename": "labelmap.html", + "short_description": "\nDefine alphanumeric type labels to associate with one or more numeric\natom, bond, angle, dihedral or improper types", + "description": "\nDefine alphanumeric type labels to associate with one or more numeric\natom, bond, angle, dihedral or improper types. A collection of type\nlabels for all atom types, bond types, etc. is stored as a label map.\n\nThe label map can also be defined by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand when it reads these sections in a data file: Atom Type Labels,\nBond Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for a general discussion of how type\nlabels can be used. See **Typelabel1** for a\ndiscussion of the type label implementation in LAMMPS and its uses.\n\nValid type labels can contain any alphanumeric character, but must not\nstart with a number, a '#', or a '*' character. They can contain other\nstandard ASCII characters such as angular or square brackets '<' and '>'\nor '[' and ']', parenthesis '(' and ')', dash '-', underscore '_', plus\n'+' and equals '=' signs and more. They must not contain blanks or any\nother whitespace. Note that type labels must be put in single or double\nquotation marks if they contain the '#' character or if they contain a\ndouble (\") or single quotation mark ('). If the label contains both\na single and a double quotation mark, then triple quotation (\"\"\") must\nbe used. When enclosing a type label with quotation marks, the\nLAMMPS input parser may require adding leading or trailing blanks\naround the type label so it can identify the enclosing quotation\nmarks. Those blanks will be removed when defining the label.\n\nA *labelmap* command can only modify the label map for one type-kind\n(atom types, bond types, etc). Any number of numeric-type/type-label\npairs may follow. If a type label already exists for the same numeric\ntype, it will be overwritten. Type labels must be unique; assigning the\nsame type label to multiple numeric types within the same type-kind is\nnot allowed. When reading and writing data files, it is required that\nthere is a label defined for *every* numeric type within a given\ntype-kind in order to write out the type label section for that\ntype-kind.\n\nThe *clear* option resets the label map and thus discards all previous\nsettings.\n\nThe *write* option takes a filename as argument and writes the current\nlabel mappings to a file as a sequence of *labelmap* commands, so the\nfile can be copied into a new LAMMPS input file or read in using the\n[include ](https://docs.lammps.org/include.html) command.\n\n----------\n\n**(Typelabel1)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024). \n ", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nLabel maps are currently not supported when using the KOKKOS package.\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_data ](https://docs.lammps.org/write_data.html),\n[molecule ](https://docs.lammps.org/molecule.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n" }, { "command": [ - "pair_style smd/ulsph" + "compute smd/rho" ], "syntax": [ - "pair_style smd/ulsph args" + "compute ID group-ID smd/rho" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "smd/ulsph", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "smd/rho", + "type": 1, + "choices": [] } ] ], - "parameters": "* these keywords must be given \n *    keyword = \\*DENSITY_SUMMATION or \\*DENSITY_CONTINUITY and \\*VELOCITY_GRADIENT or \\*NO_VELOCITY_GRADIENT and \\*GRADIENT_CORRECTION or \\*NO_GRADIENT_CORRECTION \n", - "examples": "\n```lmps\npair_style smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTION\n```\n", - "html_filename": "pair_smd_ulsph.html", - "short_description": "The *smd/ulsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and an updated Lagrangian\nSmooth-Particle Hydrodynamics algorithm", - "description": "The *smd/ulsph* style computes particle interactions according to\ncontinuum mechanics constitutive laws and an updated Lagrangian\nSmooth-Particle Hydrodynamics algorithm.\n\nThis pair style is invoked similar to the following command:\n\n[``lmpspair_style smd/ulsph *DENSITY_CONTINUITY *VELOCITY_GRADIENT *NO_GRADIENT_CORRECTIONpair_coeff i j *COMMON rho0 c0 Q1 Cp hg &*END```Here, *i* and *j* denote the *LAMMPS* particle types for which thispair style is defined. Note that *i* and *j* can be different, i.e.,*ulsph* cross interactions between different particle types areallowed. However, *i* --\\ *i* respectively *j* --\\ *j* pair_coeff lines haveto precede a cross interaction. In contrast to the usual *LAMMPS**pair coeff* definitions, which are given solely a number of floatsand integers, the *ulsph* *pair coeff* definition is organized usingkeywords. These keywords mark the beginning of different sets ofparameters for particle properties, material constitutive models, anddamage models. The *pair coeff* line must be terminated with the*\\*END* keyword. The use the line continuation operator *&* isrecommended. A typical invocation of the *ulsph* for a solid bodywould consist of an equation of state for computing the pressure (thediagonal components of the stress tensor), and a material model tocompute shear stresses (the off-diagonal components of the stresstensor).Note that the use of \\*GRADIENT_CORRECTION can lead to severe numericalinstabilities. For a general fluid simulation, \\*NO_GRADIENT_CORRECTIONis recommended.Please see the `SMD user guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) for a\ncomplete listing of the possible keywords and material models.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/rho = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/rho\n```\n", + "html_filename": "compute_smd_rho.html", + "short_description": "Define a computation that calculates the per-particle mass density", + "description": "Define a computation that calculates the per-particle mass density.\nThe mass density is the mass of a particle which is constant during\nthe course of a simulation, divided by its volume, which can change\ndue to mechanical deformation.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be in [units ](https://docs.lammps.org/units.html) of mass over volume.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute smd/vol ](https://docs.lammps.org/compute_smd_vol.html)\n" }, { "command": [ - "fix cmap" + "read_dump" ], "syntax": [ - "fix ID group-ID cmap filename" + "read_dump file Nstep field1 field2 ... keyword values ..." ], "args": [ [ { - "arg": "fix", + "arg": "read_dump", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Nstep", "type": 2, "choices": [] }, { - "arg": "cmap", - "type": 1, + "arg": "field1", + "type": 2, "choices": [] }, { - "arg": "filename", + "arg": "field2", + "type": 2, + "choices": [] + }, + { + "arg": "format", + "type": 3, + "choices": [ + "nfile", + "box", + "timestep", + "replace", + "purge", + "trim", + "add", + "label", + "scaled", + "wrapped", + "format" + ] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* cmap = style name of this fix command\n* filename = force-field file with CMAP coefficients \n", - "examples": "\n```lmps\nfix myCMAP all cmap ../potentials/cmap36.data\nread_data proteinX.data fix myCMAP crossterm CMAP\nfix_modify myCMAP energy yes\n```\n", - "html_filename": "fix_cmap.html", - "short_description": "This command enables CMAP 5-body interactions to be added to\nsimulations which use the CHARMM force field", - "description": "This command enables CMAP 5-body interactions to be added to\nsimulations which use the CHARMM force field. These are relevant for\nany CHARMM model of a peptide or protein sequences that is 3 or more\namino-acid residues long; see **Buck** and **Brooks2** for details, including the analytic energy expressions for\nCMAP interactions. The CMAP 5-body terms add additional potential\nenergy contributions to pairs of overlapping phi-psi dihedrals of\namino-acids, which are important to properly represent their\nconformational behavior.\n\nThe examples/cmap directory has a sample input script and data file\nfor a small peptide, that illustrates use of the fix cmap command.\n\nAs in the example above, this fix should be used before reading a data\nfile that contains a listing of CMAP interactions. The *filename*\nspecified should contain the CMAP parameters for a particular version\nof the CHARMM force field. Two such files are including in the\nlammps/potentials directory: charmm22.cmap and charmm36.cmap.\n\nThe data file read by the \"read_data\" must contain the topology of all\nthe CMAP interactions, similar to the topology data for bonds, angles,\ndihedrals, etc. Specially it should have a line like this in its\nheader section:\n\n```\nN crossterms\n```\nwhere N is the number of CMAP 5-body interactions. It should also\nhave a section in the body of the data file like this with N lines:\n\n```\nCMAP\n\n1 1 8 10 12 18 20\n2 5 18 20 22 25 27\n[...]\nN 3 314 315 317 318 330\n```\nThe first column is an index from 1 to N to enumerate the CMAP 5-atom\ntuples; it is ignored by LAMMPS. The second column is the \"type\" of\nthe interaction; it is an index into the CMAP force field file. The\nremaining 5 columns are the atom IDs of the atoms in the two 4-atom\ndihedrals that overlap to create the CMAP interaction. Note that the\n\"crossterm\" and \"CMAP\" keywords for the header and body sections match\nthose specified in the read_data command following the data file name;\nsee the [read_data ](https://docs.lammps.org/read_data.html) page for more details.\n\nA data file containing CMAP 5-body interactions can be generated from\na PDB file using the charmm2lammps.pl script in the tools/ch2lmp\ndirectory of the LAMMPS distribution. The script must be invoked with\nthe optional \"-cmap\" flag to do this; see the tools/ch2lmp/README file\nfor more information. The same conversion script also creates the\nfile of CMAP coefficient data which is read by this command.\n\nThe potential energy associated with CMAP interactions can be output\nas described below. It can also be included in the total potential\nenergy of the system, as output by the [thermo_style](https://docs.lammps.org/thermo_style.html) command, if the [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\ncommand is used, as in the example above. See the note below about\nhow to include the CMAP energy when performing an [energyminimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the list of CMAP cross-terms to [binary restartfiles ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html) command\nfor info on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of the CMAP interactions to both\nthe global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or\noutput by the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The\ndefault setting for this fix is [fix_modify energy yes](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the CMAP interactions to both\nthe global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the CMAP terms forces to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option\n > for this fix. \n > \n\n\n**(Buck)** Buck, Bouguet-Bonnet, Pastor, MacKerell Jr., Biophys J, 90, L36\n(2006). \n \n**(Brooks2)** Brooks, Brooks, MacKerell Jr., J Comput Chem, 30, 1545 (2009). \n ", - "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a\n[read_restart ](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", - "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" + "parameters": "* file = name of dump file to read\n* Nstep = snapshot timestep to read from file\n* one or more fields may be appended \n *      field = x or y or z or vx or vy or vz or q or ix or iy or iz or fx or fy or fz \n       x, y, z = atom coordinates \n       vx, vy, vz = velocity components \n       q = charge \n       ix, iy, iz = image flags in each dimension \n       fx, fy, fz = force components \n* zero or more keyword/value pairs may be appended\n* keyword = nfile or box or timestep or replace or purge or trim or add or label or scaled or wrapped or format \n *        nfile value = Nfiles = how many parallel dump files exist \n *        box value = yes or no = replace simulation box with dump box \n *        timestep value = yes or no = reset simulation timestep with dump timestep \n *        replace value = yes or no = overwrite atoms with dump atoms \n *        purge value = yes or no = delete all atoms before adding dump atoms \n *        trim value = yes or no = trim atoms not in dump snapshot \n *        add value = yes or keep or no = add new dump atoms to system \n *        label value = field column \n         field = one of the listed fields or id or type \n         column = label on corresponding column in dump file \n *        scaled value = yes or no = coords in dump file are scaled/unscaled \n *        wrapped value = yes or no = coords in dump file are wrapped/unwrapped \n *        format values = format of dump file, must be last keyword if used \n         native = native LAMMPS dump file \n         xyz = XYZ file \n         adios [timeout value] = dump file written by the [dump adios ](https://docs.lammps.org/dump_adios.html) command \n         timeout = specify waiting time for the arrival of the timestep when running concurrently. \n         The value is a float number and is interpreted in seconds. \n         molfile style path = VMD molfile plugin interface \n         style = dcd or xyz or others supported by molfile plugins \n         path = optional path for location of molfile plugins \n", + "examples": "\n```lmps\nread_dump dump.file 5000 x y z\nread_dump dump.xyz 5 x y z box no format xyz\nread_dump dump.xyz 10 x y z box no format molfile xyz \"../plugins\"\nread_dump dump.dcd 0 x y z box yes format molfile dcd\nread_dump dump.file 1000 x y z vx vy vz box yes format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile\nread_dump dump.file 5000 x y vx vy trim yes\nread_dump dump.file 5000 x y vx vy add yes box no timestep no\nread_dump ../run7/dump.file.gz 10000 x y z box yes\nread_dump dump.xyz 10 x y z box no format molfile xyz ../plugins\nread_dump dump.dcd 0 x y z format molfile dcd\nread_dump dump.file 1000 x y z vx vy vz format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile\nread_dump dump.bp 5000 x y z vx vy vz format adios\nread_dump dump.bp 5000 x y z vx vy vz format adios timeout 60.0\n```\n", + "html_filename": "read_dump.html", + "short_description": "Read atom information from a dump file to overwrite the current atom\ncoordinates, and optionally the atom velocities and image flags, the\nsimulation timestep, and the simulation box dimensions", + "description": "Read atom information from a dump file to overwrite the current atom\ncoordinates, and optionally the atom velocities and image flags, the\nsimulation timestep, and the simulation box dimensions. This is useful\nfor restarting a run from a particular snapshot in a dump file. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) and [read_data ](https://docs.lammps.org/read_data.html)\ncommands for alternative methods to do this. Also see the\n[rerun ](https://docs.lammps.org/rerun.html) command for a means of reading multiple snapshots\nfrom a dump file.\n\nNote that a simulation box must already be defined before using the\nread_dump command. This can be done by the\n[create_box ](https://docs.lammps.org/create_box.html), [read_data ](https://docs.lammps.org/read_data.html), or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. The read_dump command can\nreset the simulation box dimensions, as explained below.\n\nAlso note that reading per-atom information from a dump snapshot is\nlimited to the atom coordinates, velocities and image flags, as\nexplained below. Other atom properties, which may be necessary to run\na valid simulation, such as atom charge, or bond topology information\nfor a molecular system, are not read from (or may not even be contained\nin) dump files. Thus this auxiliary information should be defined in\nthe usual way, e.g. in a data file read in by a [read_data ](https://docs.lammps.org/read_data.html)\ncommand, before using the read_dump command, or by the [set ](https://docs.lammps.org/set.html)\ncommand, after the dump snapshot is read.\n\n----------\n\nIf the dump filename specified as *file* ends with \".gz\", the dump\nfile is read in gzipped format.\n\nYou can read dump files that were written (in parallel) to multiple\nfiles via the \"%\" wild-card character in the dump file name. If any\nspecified dump file name contains a \"%\", they must all contain it.\nSee the [dump ](https://docs.lammps.org/dump.html) command for details.\nThe \"%\" wild-card character is only supported by the *native* format\nfor dump files, described next.\n\nIf reading parallel dump files, you must also use the *nfile* keyword\nto tell LAMMPS how many parallel files exist, via its specified\n*Nfiles* value.\n\nThe format of the dump file is selected through the *format* keyword.\nIf specified, it must be the last keyword used, since all remaining\narguments are passed on to the dump reader. The *native* format is\nfor native LAMMPS dump files, written with a [dump atom ](https://docs.lammps.org/dump.html)\nor [dump custom ](https://docs.lammps.org/dump.html) command. The *xyz* format is for generic XYZ\nformatted dump files. These formats take no additional values.\n\nThe *molfile* format supports reading data through using the [VMD ](https://www.ks.uiuc.edu/Research/vmd)\nmolfile plugin interface. This dump reader format is only available,\nif the MOLFILE package has been installed when compiling\nLAMMPS.\n\nThe *molfile* format takes one or two additional values. The *style*\nvalue determines the file format to be used and can be any format that\nthe molfile plugins support, such as DCD or XYZ. Note that DCD dump\nfiles can be written by LAMMPS via the [dump dcd ](https://docs.lammps.org/dump.html) command.\nThe *path* value specifies a list of directories which LAMMPS will\nsearch for the molfile plugins appropriate to the specified *style* .\nThe syntax of the *path* value is like other search paths: it can\ncontain multiple directories separated by a colon (or semicolon on\nwindows). The *path* keyword is optional and defaults to \".\",\ni.e. the current directory.\n\nThe *adios* format supports reading data that was written by the\n[dump adios ](https://docs.lammps.org/dump_adios.html) command. The\nentire dump is read in parallel across all the processes, dividing\nthe atoms evenly among the processes. The number of writers that\nhas written the dump file does not matter. Using the adios style for\ndump and read_dump is a convenient way to dump all atoms from *N*\nwriters and read it back by *M* readers. If one is running two\nLAMMPS instances concurrently where one dumps data and the other is\nreading it with the rerun command, the timeout option can be specified\nto wait on the reader side for the arrival of the requested step.\n\nSupport for other dump format readers may be added in the future.\n\n----------\n\nGlobal information is first read from the dump file, namely timestep\nand box information.\n\nThe dump file is scanned for a snapshot with a timestamp that matches\nthe specified *Nstep* . This means the LAMMPS timestep the dump file\nsnapshot was written on for the *native* or *adios* formats.\n\nThe list of timestamps available in an adios .bp file is stored in the\nvariable *ntimestep*:\n\n```\n$ bpls dump.bp -d ntimestep\nuint64_t ntimestep 5*scalar\n(0) 0 50 100 150 200\n```\nNote that the *xyz* and *molfile* formats do not store the timestep.\nFor these formats, timesteps are numbered logically, in a sequential\nmanner, starting from 0. Thus to access the 10th snapshot in an *xyz*\nor *mofile* formatted dump file, use *Nstep* = 9.\n\nThe dimensions of the simulation box for the selected snapshot are\nalso read; see the *box* keyword discussion below. For the *native*\nformat, an error is generated if the snapshot is for a triclinic box\nand the current simulation box is orthogonal or vice versa. A warning\nwill be generated if the snapshot box boundary conditions (periodic,\nshrink-wrapped, etc) do not match the current simulation boundary\nconditions, but the boundary condition information in the snapshot is\notherwise ignored. See the \"boundary\" command for more details. The\n*adios* reader does the same as the *native* format reader.\n\nFor the *xyz* format, no information about the box is available, so\nyou must set the *box* flag to *no* . See details below.\n\nFor the *molfile* format, reading simulation box information is\ntypically supported, but the location of the simulation box origin is\nlost and no explicit information about periodicity or\northogonal/triclinic box shape is available. The MOLFILE package\nmakes a best effort to guess based on heuristics, but this may not\nalways work perfectly.\n\n----------\n\nPer-atom information from the dump file snapshot is then read from the\ndump file snapshot. This corresponds to the specified *fields* listed\nin the read_dump command. It is an error to specify a z-dimension\nfield, namely *z*, *vz*, or *iz*, for a 2d simulation.\n\nFor dump files in *native* format, each column of per-atom data has a\ntext label listed in the file. A matching label for each field must\nappear, e.g. the label \"vy\" for the field *vy* . For the *x*, *y*, *z*\nfields any of the following labels are considered a match:\n\n```\nx, xs, xu, xsu for field *x*\ny, ys, yu, ysu for field *y*\nz, zs, zu, zsu for field *z*\n```\nThe meaning of xs (scaled), xu (unwrapped), and xsu (scaled and\nunwrapped) is explained on the [dump ](https://docs.lammps.org/dump.html) command doc page.\nThese labels are searched for in the list of column labels in the dump\nfile, in order, until a match is found.\n\nThe dump file must also contain atom IDs, with a column label of \"id\".\n\nIf the *add* keyword is specified with a value of *yes* or *keep*, as\ndiscussed below, the dump file must contain atom types, with a column\nlabel of \"type\".\n\nIf a column label you want to read from the dump file is not a match\nto a specified field, the *label* keyword can be used to specify the\nspecific column label from the dump file to associate with that field.\nAn example is if a time-averaged coordinate is written to the dump\nfile via the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) command. The column\nwill then have a label corresponding to the fix-ID rather than \"x\" or\n\"xs\". The *label* keyword can also be used to specify new column\nlabels for fields *id* and *type* .\n\nFor dump files in *xyz* format, only the *x*, *y*, and *z* fields are\nsupported. The dump file does not store atom IDs, so these are\nassigned consecutively to the atoms as they appear in the dump file,\nstarting from 1. Thus you should ensure that order of atoms is\nconsistent from snapshot to snapshot in the XYZ dump file. See\nthe [dump_modify sort ](https://docs.lammps.org/dump_modify.html) command if the XYZ dump file\nwas written by LAMMPS.\n\nFor dump files in *molfile* format, the *x*, *y*, *z*, *vx*, *vy*, and\n*vz* fields can be specified. However, not all molfile formats store\nvelocities, or their respective plugins may not support reading of\nvelocities. The molfile dump files do not store atom IDs, so these\nare assigned consecutively to the atoms as they appear in the dump\nfile, starting from 1. Thus you should ensure that order of atoms are\nconsistent from snapshot to snapshot in the molfile dump file.\nSee the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) command if the dump file\nwas written by LAMMPS.\n\nThe *adios* format supports all fields that the *native* format supports\nexcept for the *q* charge field.\nThe list of fields stored in an adios .bp file is recorded in the attributes\n*columns* (array of short strings) and *columnstr* (space-separated single string).\n\n```\n$ bpls -la dump.bp column*\nstring columns attr = {\"id\", \"type\", \"x\", \"y\", \"z\", \"vx\", \"vy\", \"vz\"}\nstring columnstr attr = \"id type x y z vx vy vz \"\n```\n----------\n\nInformation from the dump file snapshot is used to overwrite or\nreplace properties of the current system. There are various options\nfor how this is done, determined by the specified fields and optional\nkeywords.\n\nThe timestep of the snapshot becomes the current timestep for the\nsimulation unless the *timestep* keyword is specified with a *no* value\n(default setting is *yes*). See the [reset_timestep ](https://docs.lammps.org/reset_timestep.html)\ncommand if you wish to change this to a different value after the dump\nsnapshot is read.\n\nIf the *box* keyword is specified with a *yes* value, then the current\nsimulation box dimensions are replaced by the dump snapshot box\ndimensions. If the *box* keyword is specified with a *no* value, the\ncurrent simulation box is unchanged.\n\nIf the *purge* keyword is specified with a *yes* value, then all\ncurrent atoms in the system are deleted before any of the operations\ninvoked by the *replace*, *trim*, or *add* keywords take place.\n\nIf the *replace* keyword is specified with a *yes* value, then atoms\nwith IDs that are in both the current system and the dump snapshot\nhave their properties overwritten by field values. If the *replace*\nkeyword is specified with a *no* value, atoms with IDs that are in\nboth the current system and the dump snapshot are not modified.\n\nIf the *trim* keyword is specified with a *yes* value, then atoms with\nIDs that are in the current system but not in the dump snapshot are\ndeleted. These atoms are unaffected if the *trim* keyword is\nspecified with a *no* value.\n\nIf the *add* keyword is specified with a *no* value (default), then\ndump file atoms with IDs that are not in the current system are not\nadded to the system. They are simply ignored.\n\nIf a *yes* value is specified, the atoms with new IDs are added to the\nsystem but their atom IDs are not preserved. Instead, after all the\natoms are added, new IDs are assigned to them in the same manner as is\ndescribed for the [create_atoms ](https://docs.lammps.org/create_atoms.html) command. Basically\nthe largest existing atom ID in the system is identified, and all the\nadded atoms are assigned IDs that consecutively follow the largest ID.\n\nIf a *keep* value is specified, the atoms with new IDs are added to\nthe system and their atom IDs are preserved. This may lead to\nnon-contiguous IDs for the combined system.\n\nNote that atoms added via the *add* keyword will only have the\nattributes read from the dump file due to the *field* arguments. For\nexample, if *x* or *y* or *z* or *q* is not specified as a field, a\nvalue of 0.0 is used for added atoms. Added atoms must have an atom\ntype, so this value must appear in the dump file.\n\nAny other attributes (e.g. charge or particle diameter for spherical\nparticles) will be set to default values, the same as if the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command were used.\n\n----------\n\nAtom coordinates read from the dump file are first converted into\nunscaled coordinates, relative to the box dimensions of the snapshot.\nThese coordinates are then be assigned to an existing or new atom in\nthe current simulation. The coordinates will then be remapped to the\nsimulation box, whether it is the original box or the dump snapshot\nbox. If periodic boundary conditions apply, this means the atom will\nbe remapped back into the simulation box if necessary. If shrink-wrap\nboundary conditions apply, the new coordinates may change the\nsimulation box dimensions. If fixed boundary conditions apply, the\natom will be lost if it is outside the simulation box.\n\nFor *native* format dump files, the 3 xyz image flags for an atom in\nthe dump file are set to the corresponding values appearing in the\ndump file if the *ix*, *iy*, *iz* fields are specified. If not\nspecified, the image flags for replaced atoms are not changed and\nimage flags for new atoms are set to default values. If coordinates\nread from the dump file are in unwrapped format (e.g. *xu* ) then the\nimage flags for read-in atoms are also set to default values. The\nremapping procedure described in the previous paragraph will then\nchange images flags for all atoms (old and new) if periodic boundary\nconditions are applied to remap an atom back into the simulation box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you get a warning about inconsistent image flags after\n > reading in a dump snapshot, it means one or more pairs of bonded atoms\n > now have inconsistent image flags. As discussed on the [Errors common ](https://docs.lammps.org/Errors_common.html) page this may or may not cause problems\n > for subsequent simulations. One way this can happen is if you read\n > image flag fields from the dump file but do not also use the dump file\n > box parameters. \n > \n\nLAMMPS knows how to compute unscaled and remapped coordinates for the\nsnapshot column labels discussed above, e.g. *x*, *xs*, *xu*, *xsu* .\nIf another column label is assigned to the *x* or *y* or *z* field via\nthe *label* keyword, e.g. for coordinates output by the [fix ave/atom ](https://docs.lammps.org/fix_ave_atom.html) command, then LAMMPS needs to know whether\nthe coordinate information in the dump file is scaled and/or wrapped.\nThis can be set via the *scaled* and *wrapped* keywords. Note that\nthe value of the *scaled* and *wrapped* keywords is ignored for fields\n*x* or *y* or *z* if the *label* keyword is not used to assign a\ncolumn label to that field.\n\nThe scaled/unscaled and wrapped/unwrapped setting must be identical\nfor any of the *x*, *y*, *z* fields that are specified. Thus you\ncannot read *xs* and *yu* from the dump file. Also, if the dump file\ncoordinates are scaled and the simulation box is triclinic, then all 3\nof the *x*, *y*, *z* fields must be specified, since they are all\nneeded to generate absolute, unscaled coordinates.\n\n----------\n", + "restrictions": "To read gzipped dump files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option. See the [Build settings ](https://docs.lammps.org/Build_settings.html)\ndoc page for details.\n\nThe *molfile* dump file formats are part of the MOLFILE package.\nThey are only enabled if LAMMPS was built with that packages. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo write and read adios .bp files, you must compile LAMMPS with the\n:ref:`ADIOS ` package.\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump molfile ](https://docs.lammps.org/dump_molfile.html),\n[dump adios ](https://docs.lammps.org/dump_adios.html),\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html),\n[rerun ](https://docs.lammps.org/rerun.html)\n" }, { "command": [ - "pair_style tersoff/mod", - "pair_style tersoff/mod/gpu", - "pair_style tersoff/mod/kk", - "pair_style tersoff/mod/omp", - "pair_style tersoff/mod/c", - "pair_style tersoff/mod/c/omp" + "improper_style distance" ], "syntax": [ - "pair_style style keywords values" + "improper_style distance" ], "args": [ [ { - "arg": "pair_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "tersoff/mod/c/omp", - "type": 3, - "choices": [ - "tersoff/mod", - "tersoff/mod/c", - "tersoff/mod/gpu", - "tersoff/mod/kk", - "tersoff/mod/omp", - "tersoff/mod/c/omp" - ] - }, - { - "arg": "keywords", - "type": 2, - "choices": [] - }, - { - "arg": "values", - "type": 2, + "arg": "distance", + "type": 1, "choices": [] } ] ], - "parameters": "* style = tersoff/mod or tersoff/mod/c\n* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", - "examples": "\n```lmps\npair_style tersoff/mod\npair_coeff * * Si.tersoff.mod Si Si\n\npair_style tersoff/mod/c\npair_coeff * * Si.tersoff.modc Si Si\n```\n", - "html_filename": "pair_tersoff_mod.html", - "short_description": "The *tersoff/mod* and *tersoff/mod/c* styles computes a bond-order type\ninteratomic potential **Kumagai** based on a 3-body Tersoff\npotential **Tersoff_12**, **Tersoff_22** with\nmodified cutoff function and angular-dependent term, giving the energy\nE of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{9}{16} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) - \\frac{1}{16} \\sin \\left( \\frac{3\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", - "description": "The *tersoff/mod* and *tersoff/mod/c* styles computes a bond-order type\ninteratomic potential **Kumagai** based on a 3-body Tersoff\npotential **Tersoff_12**, **Tersoff_22** with\nmodified cutoff function and angular-dependent term, giving the energy\nE of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{9}{16} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) - \\frac{1}{16} \\sin \\left( \\frac{3\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + {\\zeta_{ij}}^\\eta \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g(\\theta_{ijk})\n \\exp \\left[ \\alpha (r_{ij} - r_{ik})^\\beta \\right] \\\\\n g(\\theta) & = c_1 + g_o(\\theta) g_a(\\theta) \\\\\n g_o(\\theta) & = \\frac{c_2 (h - \\cos \\theta)^2}{c_3 + (h - \\cos \\theta)^2} \\\\\n g_a(\\theta) & = 1 + c_4 \\exp \\left[ -c_5 (h - \\cos \\theta)^2 \\right] \\\\ \\end{align*} \\]\nwhere \\(f_R\\) is a two-body term and \\(f_A\\) includes three-body interactions.\n\\(\\delta\\) is an optional negative shift of the\nequilibrium bond length, as described below.\n\nThe summations in the formula are over all neighbors J and K of atom I\nwithin a cutoff distance = R + D.\nThe *tersoff/mod/c* style differs from *tersoff/mod* only in the\nformulation of the V_ij term, where it contains an additional c0 term.\n\\[\n V_{ij} = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) + c_0 \\right] \\\\\\]\nThe modified cutoff function \\(f_C\\) proposed by **Murty** and\nhaving a continuous second-order differential is employed. The\nangular-dependent term \\(g(\\theta)\\) was modified to increase the\nflexibility of the potential.\n\nThe *tersoff/mod* potential is fitted to both the elastic constants\nand melting point by employing the modified Tersoff potential function\nform in which the angular-dependent term is improved. The model\nperforms extremely well in describing the crystalline, liquid, and\namorphous phases **Schelling**.\n\nOnly a single pair_coeff command is used with the *tersoff/mod* style\nwhich specifies a Tersoff/MOD potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff/MOD elements to atom types\n\nAs an example, imagine the Si.tersoff_mod file has Tersoff values for Si.\nIf your LAMMPS simulation has 3 Si atoms types, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * Si.tersoff_mod Si Si Si\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe three Si arguments map LAMMPS atom types 1,2,3 to the Si element\nin the Tersoff/MOD file. If a mapping value is specified as NULL, the\nmapping is not performed. This can be used when a *tersoff/mod*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nTersoff/MOD file in the *potentials* directory of the LAMMPS\ndistribution have a \".tersoff.mod\" suffix. Potential files for the\n*tersoff/mod/c* style have the suffix \".tersoff.modc\". Lines that are\nnot blank or comments (starting with #) define parameters for a triplet\nof elements. The parameters in a single entry correspond to\ncoefficients in the formulae above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* \\(\\beta\\)\n* \\(\\alpha\\)\n* h\n* \\(\\eta\\)\n* \\(\\beta_{ters}\\) = 1 (dummy parameter)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n* n\n* c1\n* c2\n* c3\n* c4\n* c5\n* c0 (energy units, tersoff/mod/c only)\n\nThe n, \\(\\eta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A parameters are only used for\ntwo-body interactions. The \\(\\beta\\), \\(\\alpha\\), c1, c2, c3, c4, c5, h\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions.\nThe c0 term applies to *tersoff/mod/c* only. The non-annotated\nparameters are unitless.\n\nThe Tersoff/MOD potential file must contain entries for all the elements\nlisted in the pair_coeff command. It can also contain entries for\nadditional elements not being used in a particular simulation; LAMMPS\nignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). As annotated above, the first element in the entry is\nthe center atom in a three-body interaction and it is bonded to the\nsecond atom and the bond is influenced by the third atom. Thus an entry\nfor SiSiSi means Si bonded to a Si with another Si atom influencing the bond.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose formula\nis the same as the Tersoff potential. The only modification is that the original\nequilibrium bond length ( \\(r_0\\)) of the system is shifted to \\(r_0-\\delta\\).\nThe minus sign arises because each radial distance \\(r\\) is replaced by \\(r+\\delta\\).\nMore information on this option is given on the main [pair_tersoff ](https://docs.lammps.org/pair_tersoff.html) page.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Kumagai)** T. Kumagai, S. Izumi, S. Hara, S. Sakai,\nComp. Mat. Science, 39, 457 (2007). \n \n**(Tersoff_12)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(Tersoff_22)** J. Tersoff, Phys Rev B, 38, 9902 (1988). \n \n**(Murty)** M.V.R. Murty, H.A. Atwater, Phys Rev B, 51, 4889 (1995). \n \n**(Schelling)** Patrick K. Schelling, Comp. Mat. Science, 44, 274 (2008). \n ", - "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is not supported by the *tersoff/gpu*,\n*tersoff/intel*, *tersoff/kk*, *tersoff/table* or *tersoff/table/omp*\nvariants.\n\nThe *tersoff/mod* potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html). You can\nuse the *tersoff/mod* pair style with any LAMMPS units, but you would need to\ncreate your own Tersoff/MOD potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style distance\nimproper_coeff 1 80.0 100.0\n```\n", + "html_filename": "improper_distance.html", + "short_description": "The *distance* improper style uses the potential\n\\[\n E = K_2 d^2 + K_4 d^4\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms", + "description": "The *distance* improper style uses the potential\n\\[\n E = K_2 d^2 + K_4 d^4\\]\nwhere \\(d\\) is the distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the I-atom is assumed to be the\ncentral atom.\n\n ![Image](JPG/improper_distance.jpg) \n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K_2\\) (energy/distance\\^2)\n* \\(K_4\\) (energy/distance\\^4)\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "fix nve/eff" + "compute smd/damage" ], "syntax": [ - "fix ID group-ID nve/eff" + "compute ID group-ID smd/damage" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -34562,283 +33762,348 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/eff", + "arg": "smd/damage", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/eff = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/eff\n```\n", - "html_filename": "fix_nve_eff.html", - "short_description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [electron force field ](https://docs.lammps.org/pair_eff.html) model", - "description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [electron force field ](https://docs.lammps.org/pair_eff.html) model. V is volume; E is energy. This creates a\nsystem trajectory consistent with the microcanonical ensemble.\n\nThe operation of this fix is exactly like that described by the [fix nve ](https://docs.lammps.org/fix_nve.html) command, except that the radius and radial velocity\nof electrons are also updated.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix npt/eff ](https://docs.lammps.org/fix_nh_eff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/damage = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/damage\n```\n", + "html_filename": "compute_smd_damage.html", + "short_description": "Define a computation that calculates the damage status of SPH particles\naccording to the damage model which is defined via the SMD SPH pair styles, e.g., the maximum plastic strain failure criterion", + "description": "Define a computation that calculates the damage status of SPH particles\naccording to the damage model which is defined via the SMD SPH pair styles, e.g., the maximum plastic strain failure criterion.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth Mach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values are dimensionless an in the range of zero to one.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the \"Build\n", + "related": "[smd/plastic_strain ](https://docs.lammps.org/compute_smd_plastic_strain.html), [smd/tlsph_stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" }, { "command": [ - "compute msd" + "pair_style list" ], "syntax": [ - "compute ID group-ID msd keyword values ..." + "pair_style list listfile cutoff keyword" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, + "arg": "list", + "type": 1, "choices": [] }, { - "arg": "group-ID", + "arg": "listfile", "type": 2, "choices": [] }, { - "arg": "msd", - "type": 1, + "arg": "cutoff", + "type": 2, "choices": [] }, { - "arg": "average", - "type": 3, - "choices": [ - "com", - "average" - ] - }, - { - "arg": "values", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* msd = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = com or average \n *        com value = yes or no \n *        average value = yes or no \n", - "examples": "\n```lmps\ncompute 1 all msd\ncompute 1 upper msd com yes average yes\n```\n", - "html_filename": "compute_msd.html", - "short_description": "Define a computation that calculates the mean-squared displacement\n(MSD) of the group of atoms, including all effects due to atoms\npassing through periodic boundaries", - "description": "Define a computation that calculates the mean-squared displacement\n(MSD) of the group of atoms, including all effects due to atoms\npassing through periodic boundaries. For computation of the non-Gaussian\nparameter of mean-squared displacement, see the\n[compute msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html) command.\n\nA vector of four quantities is calculated by this compute. The first three\nelements of the vector are the squared *dx*, *dy*, and *dz* displacements,\nsummed and averaged over atoms in the group. The fourth element is the total\nsquared displacement (i.e., \\(dx^2 + dy^2 + dz^2\\)), summed and\naveraged over atoms in the group.\n\nThe slope of the mean-squared displacement (MSD) versus time is\nproportional to the diffusion coefficient of the diffusing atoms.\n\nThe displacement of an atom is from its reference position. This is\nnormally the original position at the time\nthe compute command was issued, unless the *average* keyword is set to *yes* .\nThe value of the displacement will be\n0.0 for atoms not in the specified compute group.\n\nIf the *com* option is set to *yes* then the effect of any drift in\nthe center-of-mass of the group of atoms is subtracted out before the\ndisplacement of each atom is calculated.\n\nIf the *average* option is set to *yes* then the reference position of\nan atom is based on the average position of that atom, corrected for\ncenter-of-mass motion if requested. The average position is a running\naverage over all previous calls to the compute, including the current\ncall. So on the first call it is current position, on the second call\nit is the arithmetic average of the current position and the position\non the first call, and so on. Note that when using this option, the\nprecise value of the mean square displacement will depend on the\nnumber of times the compute is called. So, for example, changing the\nfrequency of thermo output may change the computed displacement. Also,\nthe precise values will be changed if a single simulation is broken up\ninto two parts, using either multiple run commands or a restart\nfile. It only makes sense to use this option if the atoms are not\ndiffusing, so that their average positions relative to the center of\nmass of the system are stationary. The most common case is crystalline\nsolids undergoing thermal motion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Initial coordinates are stored in \"unwrapped\" form, by using the\n > image flags associated with each atom. See the [dump custom > ](https://docs.lammps.org/dump.html) command for a discussion of \"unwrapped\" coordinates. See the\n > Atoms section of the [read_data ](https://docs.lammps.org/read_data.html) command for a\n > discussion of image flags and how they are set for each atom. You\n > can reset the image flags (e.g. to 0) before invoking this compute by\n > using the [set image ](https://docs.lammps.org/set.html) command. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with atom reference positions from the restart file. When\n > *average* is set to yes, then the atom reference positions are\n > restored correctly, but not the number of samples used obtain them. As\n > a result, the reference positions from the restart file are combined\n > with subsequent positions as if they were from a single sample,\n > instead of many, which will change the values of msd somewhat. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 4, which can be\naccessed by indices 1--4 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\ndistance\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "Compute *msd* cannot be used with a dynamic group.\n", - "related": "[compute msd/nongauss ](https://docs.lammps.org/compute_msd_nongauss.html), [compute displace_atom ](https://docs.lammps.org/compute_displace_atom.html), [fix store/state ](https://docs.lammps.org/fix_store_state.html), [compute msd/chunk ](https://docs.lammps.org/compute_msd_chunk.html)\n" + "parameters": "* listfile = name of file with list of pairwise interactions\n* cutoff = global cutoff (distance units)\n* keyword = optional flag nocheck or check (default is check ) \n", + "examples": "\n```lmps\npair_style list restraints.txt 200.0\npair_coeff * *\n\npair_style hybrid/overlay lj/cut 1.1225 list pair_list.txt 300.0\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 3* 3* list\n```\n", + "html_filename": "pair_list.html", + "short_description": "Style *list* computes interactions between explicitly listed pairs of\natoms with the option to select functional form and parameters for each\nindividual pair", + "description": "Style *list* computes interactions between explicitly listed pairs of\natoms with the option to select functional form and parameters for each\nindividual pair. Because the parameters are set in the list file, the\npair_coeff command has no parameters (but still needs to be provided).\nThe *check* and *nocheck* keywords enable/disable tests that checks\nwhether all listed pairs of atom IDs were present and the interactions\ncomputed. If *nocheck* is set and either atom ID is not present, the\ninteraction is skipped.\n\nThis pair style can be thought of as a hybrid between bonded,\nnon-bonded, and restraint interactions. It will typically be used as an\nadditional interaction within the *hybrid/overlay* pair style. It\ncurrently supports three interaction styles: a 12-6 Lennard-Jones, a\nMorse and a harmonic potential.\n\nThe format of the list file is as follows:\n\n* one line per pair of atoms\n* empty lines will be ignored\n* comment text starts with a '#' character\n* line syntax: *ID1 ID2 style coeffs cutoff*\n\n```\nID1 = atom ID of first atom\nID2 = atom ID of second atom\nstyle = style of interaction\ncoeffs = list of coeffs\ncutoff = cutoff for interaction (optional)\n```\nThe cutoff parameter is optional for all but the *quartic* interactions.\nIf it is not specified, the global cutoff is used.\n\nHere is an example file:\n\n```\n# this is a comment\n\n15 259 lj126 1.0 1.0 50.0\n15 603 morse 10.0 1.2 2.0 10.0 # and another comment\n18 470 harmonic 50.0 1.2 5.0\n19 332 quartic 10.0 5.0 -1.2 1.2\n```\nThe style *lj126* computes pairwise interactions with the formula\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n\nThe style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ 1 - e^{-\\alpha (r - r_0)} \\right]^2 \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n\nThe style *harmonic* computes pairwise interactions with the formula\n\\[\n E = K (r - r_0)^2 \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(K\\) (energy units)\n* \\(r_0\\) (distance units)\n\nNote that the usual 1/2 factor is included in \\(K\\).\n\nThe style *quartic* computes pairwise interactions with the formula\n\\[\n E = K (r - r_0)^2 (r - r_0 -b_1) (r - r_0 - b_2) \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(K\\) (energy units)\n* \\(r_0\\) (distance units)\n* \\(b_1\\) (distance units)\n* \\(b_2\\) (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing since all parameters are\nexplicit for each pair.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is supported by this\npair style.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This pair style does not use a neighbor list and instead identifies\natoms by their IDs. This has two consequences: 1) The cutoff has to be\nchosen sufficiently large, so that the second atom of a pair has to be a\nghost atom on the same node on which the first atom is local; otherwise\nthe interaction will be skipped. You can use the *check* option to\ndetect, if interactions are missing. 2) Unlike other pair styles in\nLAMMPS, an atom I will not interact with multiple images of atom J\n(assuming the images are within the cutoff distance), but only with the\nclosest image.\n\nThis style is part of the MISC package. It is only enabled if LAMMPS is\nbuild with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage on for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style lj/cut ](https://docs.lammps.org/pair_lj.html),\n[bond_style morse ](https://docs.lammps.org/bond_morse.html),\n[bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html)\n[bond_style quartic ](https://docs.lammps.org/bond_quartic.html)\n" }, { "command": [ - "fix_modify AtC set reference_potential_energy" + "pair_style smtbq" ], "syntax": [ - "fix_modify set reference_potential_energy []" + "pair_style smtbq" ], "args": [ [ { - "arg": "fix_modify", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "set", + "arg": "smtbq", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "", + "examples": "\n```lmps\npair_style smtbq\npair_coeff * * ffield.smtbq.Al2O3 O Al\n```\n", + "html_filename": "pair_smtbq.html", + "short_description": "This pair style computes a variable charge SMTB-Q (Second-Moment\ntight-Binding QEq) potential as described in **SMTB-Q_1** and\n**SMTB-Q_2**", + "description": "This pair style computes a variable charge SMTB-Q (Second-Moment\ntight-Binding QEq) potential as described in **SMTB-Q_1** and\n**SMTB-Q_2**.\nThis potential was first proposed in **SMTB-Q_0**.\nBriefly, the energy of metallic-oxygen systems is given by three contributions:\n\\[\\begin{align*} \n E_{tot} & = E_{ES} + E_{OO} + E_{MO} \\\\\n E_{ES} & = \\sum_i{\\biggl[ \\chi_{i}^{0}Q_i + \\frac{1}{2}J_{i}^{0}Q_{i}^{2} +\n \\frac{1}{2} \\sum_{j\\neq i}{ J_{ij}(r_{ij})f_{cut}^{R_{coul}}(r_{ij})Q_i Q_j } \\biggr] } \\\\\n E_{OO} & = \\sum_{i,j}^{i,j = O}{\\biggl[Cexp( -\\frac{r_{ij}}{\\rho} ) - Df_{cut}^{r_1^{OO}r_2^{OO}}(r_{ij}) exp(Br_{ij})\\biggr]} \\\\\n E_{MO} & = \\sum_i{E_{cov}^{i} + \\sum_{j\\neq i}{ Af_{cut}^{r_{c1}r_{c2}}(r_{ij})exp\\bigl[-p(\\frac{r_{ij}}{r_0} -1) \\bigr] } } \\end{align*} \\]\nwhere \\(E_{tot}\\) is the total potential energy of the system,\n\\(E_{ES}\\) is the electrostatic part of the total energy,\n\\(E_{OO}\\) is the interaction between oxygen atoms and\n\\(E_{MO}\\) is a short-range interaction between metal and oxygen\natoms. This interactions depend on interatomic distance \\(r_{ij}\\)\nand/or the charge \\(Q_{i}\\) of atoms *i* . Cut-off function enables\nsmooth convergence to zero interaction.\n\nThe parameters appearing in the upper expressions are set in the\nffield.SMTBQ.Syst file where Syst corresponds to the selected system\n(e.g. field.SMTBQ.Al2O3). Examples for \\(\\mathrm{TiO_2}\\),\n\\(\\mathrm{Al_2O_3}\\) are provided. A single pair_coeff command\nis used with the SMTBQ styles which provides the path to the potential\nfile with parameters for needed elements. These are mapped to LAMMPS\natom types by specifying additional arguments after the potential\nfilename in the pair_coeff command. Note that atom type 1 must always\ncorrespond to oxygen atoms. As an example, to simulate a \\(\\mathrm{TiO_2}\\) system,\natom type 1 has to be oxygen and atom type 2 Ti. The following\npair_coeff command should then be used:\n\n```lmps\npair_coeff * * PathToLammps/potentials/ffield.smtbq.TiO2 O Ti\n```\nThe electrostatic part of the energy consists of two components\n\nself-energy of atom *i* in the form of a second order charge dependent\npolynomial and a long-range Coulombic electrostatic interaction. The\nlatter uses the wolf summation method described in **Wolf2**,\nspherically truncated at a longer cutoff, \\(R_{coul}\\). The\ncharge of each ion is modeled by an orbital Slater which depends on\nthe principal quantum number (\\ *n* ) of the outer orbital shared by the\nion.\n\nInteraction between oxygen, \\(E_{OO}\\), consists of two parts,\nan attractive and a repulsive part. The attractive part is effective\nonly at short range (< \\(r_2^{OO}\\)). The attractive\ncontribution was optimized to study surfaces reconstruction\n(e.g. **SMTB-Q_2** in \\(\\mathrm{TiO_2}\\)) and is not necessary\nfor oxide bulk modeling. The repulsive part is the Pauli interaction\nbetween the electron clouds of oxygen. The Pauli repulsion and the\ncoulombic electrostatic interaction have same cut off value. In the\nffield.SMTBQ.Syst, the keyword *'buck'* allows to consider only the\nrepulsive O-O interactions. The keyword *'buckPlusAttr'* allows to\nconsider the repulsive and the attractive O-O interactions.\n\nThe short-range interaction between metal-oxygen, \\(E_{MO}\\) is\nbased on the second moment approximation of the density of states with\na N-body potential for the band energy term,\n\\(E^i_{cov}\\), and a Born-Mayer type repulsive terms\nas indicated by the keyword *'second_moment'* in the\nffield.SMTBQ.Syst. The energy band term is given by:\n\\[\\begin{align*} \n E_{cov}^{i(i=M,O)} & = - \\biggl\\{\\eta_i(\\mu \\xi^{0})^2 f_{cut}^{r_{c1}r_{c2}}(r_{ij})\n \\biggl( \\sum_{j(j=O,M)}{ exp[ -2q(\\frac{r_{ij}}{r_0} - 1)] } \\biggr)\n \\delta Q_i \\bigl( 2\\frac{n_0}{\\eta_i} - \\delta Q_i \\bigr) \\biggr\\}^{1/2} \\\\\n \\delta Q_i & = | Q_i^{F} | - | Q_i | \\end{align*} \\]\nwhere \\(\\eta_i\\) is the stoichiometry of atom *i*,\n\\(\\delta Q_i\\) is the charge delocalization of atom *i*,\ncompared to its formal charge\n\\(Q^F_i\\). \\(n_0\\), the number of hybridized\norbitals, is calculated with to the atomic orbitals shared\n\\(d_i\\) and the stoichiometry\n\\(\\eta_i\\). \\(r_{c1}\\) and \\(r_{c2}\\) are the two\ncutoff radius around the fourth neighbors in the cutoff function.\n\nIn the formalism used here, \\(\\xi^0\\) is the energy\nparameter. \\(\\xi^0\\) is in tight-binding approximation the\nhopping integral between the hybridized orbitals of the cation and the\nanion. In the literature we find many ways to write the hopping\nintegral depending on whether one takes the point of view of the anion\nor cation. These are equivalent vision. The correspondence between the\ntwo visions is explained in appendix A of the article in the\nSrTiO3 **SMTB-Q_3** (parameter \\(\\beta\\) shown in\nthis article is in fact the \\(\\beta_O\\)). To summarize the\nrelationship between the hopping integral \\(\\xi^O\\) and the\nothers, we have in an oxide \\(\\mathrm{C_n O_m}\\) the following\nrelationship:\n\\[\\begin{align*} \n \\xi^0 & = \\frac{\\xi_O}{m} = \\frac{\\xi_C}{n} \\\\\n \\frac{\\beta_O}{\\sqrt{m}} & = \\frac{\\beta_C}{\\sqrt{n}} = \\xi^0 \\frac{\\sqrt{m}+\\sqrt{n}}{2} \\end{align*} \\]\nThus parameter \\(\\mu\\), indicated above, is given by \\(\\mu = \\frac{1}{2}(\\sqrt{n}+\\sqrt{m})\\)\n\nThe potential offers the possibility to consider the polarizability of\nthe electron clouds of oxygen by changing the slater radius of the\ncharge density around the oxygen atoms through the parameters *rBB, rB and\nrS* in the ffield.SMTBQ.Syst. This change in radius is performed\naccording to the method developed by E. Maras\n**SMTB-Q_2**. This method needs to determine the number of\nnearest neighbors around the oxygen. This calculation is based on\nfirst (\\(r_{1n}\\)) and second (\\(r_{2n}\\)) distances\nneighbors.\n\nThe SMTB-Q potential is a variable charge potential. The equilibrium\ncharge on each atom is calculated by the electronegativity\nequalization (QEq) method. See **Rick3** for further detail. One\ncan adjust the frequency, the maximum number of iterative loop and the\nconvergence of the equilibrium charge calculation. To obtain the\nenergy conservation in NVE thermodynamic ensemble, we recommend to use\na convergence parameter in the interval 10e-5 -\n10e-6 eV.\n\nThe ffield.SMTBQ.Syst files are provided for few systems. They consist\nof nine parts and the lines beginning with '#' are comments (note that\nthe number of comment lines matter). The first sections are on the\npotential parameters and others are on the simulation options and\nmight be modified. Keywords are character type and must be enclosed in\nquotation marks ('').\n\n1) Number of different element in the oxide:\n\n* N_elem= 2 or 3\n* Divider line\n\n2) Atomic parameters\n\nFor the anion (oxygen)\n\n* Name of element (char) and stoichiometry in oxide\n* Formal charge and mass of element\n* Principal quantum number of outer orbital n), electronegativity (\\(\\chi^0_i\\)) and hardness (\\(J^0_i\\))\n* Ionic radius parameters : max coordination number (\\ *coordBB* = 6 by default), bulk coordination number *(coordB)*, surface coordination number *(coordS)* and *rBB, rB and rS* the slater radius for each coordination number. (**note : If you don't want to change the slater radius, use three identical radius values**)\n* Number of orbital shared by the element in the oxide (\\(d_i\\))\n* Divider line\n\nFor each cations (metal):\n\n* Name of element (char) and stoichiometry in oxide\n* Formal charge and mass of element\n* Number of electron in outer orbital *(ne)*, electronegativity (\\(\\chi^0_i\\)), hardness (\\(J^0_i\\)) and \\(r_{Slater}\\) the slater radius for the cation.\n* Number of orbitals shared by the elements in the oxide (\\(d_i\\))\n* Divider line\n\n3) Potential parameters:\n\n* Keyword for element1, element2 and interaction potential\n ('second_moment' or 'buck' or 'buckPlusAttr') between element 1\n and 2. If the potential is 'second_moment', specify 'oxide' or\n 'metal' for metal-oxygen or metal-metal interactions respectively.\n* Potential parameter:\n\n - If type of potential is 'second_moment' : A (eV), *p*,\n \\(\\zeta^0\\) (eV) and *q*, \\(r_{c1} (\\mathring{\\textrm{A}})\\), \\(r_{c2}\n (\\mathring{\\textrm{A}})\\) and \\(r_0 (\\mathring{\\textrm{A}})\\)\n - If type of potential is 'buck' : *C* (eV) and \\(\\rho (\\mathring{\\textrm{A}})\\)\n - If type of potential is 'buckPlusAttr' : *C* (eV) and \\(\\rho\n (\\mathring{\\textrm{A}})\\) *D* (eV), *B* \\((\\mathring{\\textrm{A}}^{-1})\\), \\(r^{OO}_1 (\\mathring{\\textrm{A}})\\) and\n \\(r^{OO}_2 (\\mathring{\\textrm{A}})\\)\n* Divider line\n\n4) Tables parameters:\n\n* Cutoff radius for the Coulomb interaction (\\(R_{coul}\\))\n* Starting radius (\\(r_{min} = 1,18845 \\mathring{\\textrm{A}}\\)) and increments\n (\\(dr = 0.001 \\mathring{\\textrm{A}}\\)) for creating the potential table.\n* Divider line\n\n5) Rick model parameter:\n\n* *Nevery* : parameter to set the frequency of the charge\n resolution. The charges are evaluated each *Nevery* time steps.\n* Max number of iterative loop (\\ *loopmax* ) and convergence criterion\n (\\ *prec* ) in eV of the charge resolution\n* Divider line\n\n6) Coordination parameter:\n\n* First (\\(r_{1n}\\)) and second (\\(r_{2n}\\)) neighbor distances\n in angstroms\n* Divider line\n\n7) Charge initialization mode:\n\n* Keyword (\\ *QInitMode* ) and initial oxygen charge\n (\\(Q_{init}\\)). If keyword = 'true', all oxygen charges are\n initially set equal to \\(Q_{init}\\). The charges on the cations\n are initially set in order to respect the neutrality of the box. If\n keyword = 'false', all atom charges are initially set equal to 0 if\n you use the [create_atoms ](https://docs.lammps.org/create_atoms.html) command or the charge\n specified in the file structure using [read_data ](https://docs.lammps.org/read_data.html)\n command.\n* Divider line\n\n8) Mode for the electronegativity equalization (Qeq)\n\n* Keyword (\\ *mode* ) followed by:\n\n - QEqAll (one QEq group) \\| no parameters\n - QEqAllParallel (several QEq groups) \\| no parameters\n - Surface \\| zlim (QEq only for z>zlim)\n\n* Parameter if necessary\n* Divider line\n\n9) Verbose\n\n* If you want the code to work in verbose mode or not : 'true' or 'false'\n* If you want to print or not in the file 'Energy_component.txt' the\n three main contributions to the energy of the system according to the\n description presented above : 'true' or 'false' and\n \\(N_{Energy}\\). This option writes to the file every\n \\(N_{Energy}\\) time steps. If the value is 'false' then\n \\(N_{Energy} = 0\\). The file takes into account the possibility to\n have several QEq groups *g* then it writes: time step, number of atoms\n in group *g*, electrostatic part of energy, \\(E_{ES}\\), the\n interaction between oxygen, \\(E_{OO}\\), and short range\n metal-oxygen interaction, \\(E_{MO}\\).\n* If you want to print to the file 'Electroneg_component.txt' the\n electronegativity component (\\(\\frac{\\partial E_{tot}}{\\partial\n Q_i}\\)) or not: 'true' or 'false' and \\(N_{Electroneg}\\). This\n option writes to the file every \\(N_{Electroneg}\\) time steps. If\n the value is 'false' then \\(N_{Electroneg} = 0\\). The file\n consist of atom number *i*, atom type (1 for oxygen and # higher\n than 1 for metal), atom position: *x*, *y* and *z*, atomic charge\n of atom *i*, electrostatic part of atom *i* electronegativity,\n covalent part of atom *i* electronegativity, the hopping integral of\n atom *i* \\((Z\\beta^2)_i\\) and box electronegativity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This last option slows down the calculation dramatically. Use\n > only with a single processor simulation. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneeds to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(SMTB-Q_1)** N. Salles, O. Politano, E. Amzallag, R. Tetot,\nComput. Mater. Sci. 111 (2016) 181-189 \n \n**(SMTB-Q_2)** E. Maras, N. Salles, R. Tetot, T. Ala-Nissila,\nH. Jonsson, J. Phys. Chem. C 2015, 119, 10391-10399 \n \n**(SMTB-Q_0)** A. Hallil, E. Amzallag, S. Landron, R. Tetot,\nSurface Science 605 738-745 (2011);\nR. Tetot, A. Hallil, J. Creuze and I. Braems, EPL, 83 40001 (2008) \n \n**(Wolf2)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n \n**(SMTB-Q_3)** R. Tetot, N. Salles, S. Landron, E. Amzallag, Surface\nScience 616, 19-8722 28 (2013) \n \n**(Rick3)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994). \n ", + "restrictions": "This pair style is part of the SMTBQ package and is only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis potential requires using atom type 1 for oxygen and atom type\nhigher than 1 for metal atoms.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe SMTB-Q potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\n\n----------\n\n #### Citing this work\n\nPlease cite related publication: N. Salles, O. Politano, E. Amzallag\nand R. Tetot, Comput. Mater. Sci. 111 (2016) 181-189\n\n----------\n\n.. _SMTB-Q_0:\n\n**(SMTB-Q_0)** A. Hallil, E. Amzallag, S. Landron, R. Tetot,\nSurface Science 605 738-745 (2011);\nR. Tetot, A. Hallil, J. Creuze and I. Braems, EPL, 83 40001 (2008)\n\n.. _SMTB-Q_1:\n\n**(SMTB-Q_1)** N. Salles, O. Politano, E. Amzallag, R. Tetot,\nComput. Mater. Sci. 111 (2016) 181-189\n\n.. _SMTB-Q_2:\n\n**(SMTB-Q_2)** E. Maras, N. Salles, R. Tetot, T. Ala-Nissila,\nH. Jonsson, J. Phys. Chem. C 2015, 119, 10391-10399\n\n.. _SMTB-Q_3:\n\n**(SMTB-Q_3)** R. Tetot, N. Salles, S. Landron, E. Amzallag, Surface\nScience 616, 19-8722 28 (2013)\n\n.. _Wolf2:\n\n**(Wolf)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999).\n\n.. _Rick3:\n\n**(Rick)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994).\n", + "related": "none" +}, +{ + "command": [ + "pair_style peri/pmb", + "pair_style peri/pmb/omp", + "pair_style peri/lps", + "pair_style peri/lps/omp", + "pair_style peri/ves" + ], + "syntax": [ + "pair_style style" + ], + "args": [ + [ { - "arg": "reference_potential_energy", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "[]", + "arg": "peri/lps/omp", "type": 3, "choices": [ - "value", - "filename" + "peri/pmb", + "peri/lps", + "peri/ves", + "peri/eps", + "peri/pmb/omp", + "peri/lps/omp" ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* set reference_potential_energy = name of the AtC sub-command\n* value = optional user specified zero point for PE in native LAMMPS energy units\n* filename = optional user specified string for file of nodal PE values to be read-in \n", - "examples": "\n```lmps\nfix_modify AtC set reference_potential_energy\nfix_modify AtC set reference_potential_energy -0.05\nfix_modify AtC set reference_potential_energy myPEvalues\n```\n", - "html_filename": "atc_set_reference_pe.html", - "short_description": "Used to set various quantities for the post-processing algorithms", - "description": "Used to set various quantities for the post-processing algorithms. It\nsets the zero point for the potential energy density using the value\nprovided for all nodes, or from the current configuration of the lattice\nif no value is provided, or values provided within the specified\nfilename.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html) or [fix atc field ](https://docs.lammps.org/fix_atc.html).\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* style = peri/pmb or peri/lps or peri/ves or peri/eps \n", + "examples": "\n```lmps\npair_style peri/pmb\npair_coeff * * 1.6863e22 0.0015001 0.0005 0.25\n\npair_style peri/lps\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25\n\npair_style peri/ves\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25 0.5 0.001\n\npair_style peri/eps\npair_coeff * * 14.9e9 14.9e9 0.0015001 0.0005 0.25 118.43\n```\n", + "html_filename": "pair_peri.html", + "short_description": "The peridynamic pair styles implement material models that can be used\nat the mesoscopic and macroscopic scales", + "description": "The peridynamic pair styles implement material models that can be used\nat the mesoscopic and macroscopic scales. See [this document](https://docs.lammps.org/PDF/PDLammps_overview.pdf) for an overview of LAMMPS commands for\nPeridynamics modeling.\n\nStyle *peri/pmb* implements the Peridynamic bond-based prototype\nmicroelastic brittle (PMB) model.\n\nStyle *peri/lps* implements the Peridynamic state-based linear\nperidynamic solid (LPS) model.\n\nStyle *peri/ves* implements the Peridynamic state-based linear\nperidynamic viscoelastic solid (VES) model.\n\nStyle *peri/eps* implements the Peridynamic state-based elastic-plastic\nsolid (EPS) model.\n\nThe canonical papers on Peridynamics are :ref:[(Silling 2000)](https://docs.lammps.org/Silling2000>` and **Silling2007**. Theimplementation of Peridynamics in LAMMPS is described in :ref:`(Parks)`. Also see the [Peridynamics Howto ](https://docs.lammps.org/Howto_peri.html) for moredetails about its implementation.The peridynamic VES and EPS models in PDLAMMPS were implemented byR. Rahman and J. T. Foster at University of Texas at San Antonio. Theoriginal VES formulation is described in \"(Mitchell2011)\" and theoriginal EPS formulation is in \"(Mitchell2011a)\". Additional PDF docsthat describe the VES and EPS implementations are include in the LAMMPSdistribution in `doc/PDF/PDLammps_VES.pdf ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If a [triclinic simulation box ](https://docs.lammps.org/Howto_triclinic.html) is used,\n > atom IDs are required, due to how neighbor lists are built. \n > \n\nThe *map* keyword determines how atoms with specific IDs are found\nwhen required. For example, the bond (angle, etc) methods need to\nfind the local index of an atom with a specific global ID which is a\nbond (angle, etc) partner. LAMMPS performs this operation efficiently\nby creating a \"map\", which is either an *array* or *hash* table, as\ndescribed below.\n\nWhen the *map* keyword is not specified in your input script, LAMMPS\nonly creates a map for [atom_styles ](https://docs.lammps.org/atom_style.html) for molecular\nsystems which have permanent bonds (angles, etc). No map is created\nfor atomic systems, since it is normally not needed. However some\nLAMMPS commands require a map, even for atomic systems, and will\ngenerate an error if one does not exist. The *map* keyword thus\nallows you to force the creation of a map.\n\nSpecifying a value of *yes* will create either an array-style or\nhash-style map, depending on the size of the system. If no atom ID is\nlarger than 1 million, then an array-style map is used, otherwise a\nhash-style map is used. Specifying a value of *array* or *hash*\ncreates an array-style or hash-style map respectively, regardless of\nthe size of the system.\n\nFor an array-style map, each processor stores a lookup table of length\nN, where N is the largest atom ID in the system. This is a fast,\nsimple method for many simulations, but requires too much memory for\nlarge simulations. For a hash-style map, a hash table is created on\neach processor, which finds an atom ID in constant time (independent\nof the global number of atom IDs). It can be slightly slower than the\n*array* map, but its memory cost is proportional to the number of\natoms owned by a processor, i.e. N/P when N is the total number of\natoms in the system and P is the number of processors.\n\nThe *first* keyword allows a [group ](https://docs.lammps.org/group.html) to be specified\nwhose atoms will be maintained as the first atoms in each processor's\nlist of owned atoms. This in only useful when the specified group is\na small fraction of all the atoms, and there are other operations\nLAMMPS is performing that will be sped-up significantly by being able\nto loop over the smaller set of atoms. Otherwise the reordering\nrequired by this option will be a net slow-down. The\n[neigh_modify include ](https://docs.lammps.org/neigh_modify.html) and [comm_modify group](https://docs.lammps.org/comm_modify.html) commands are two examples of commands that require this\nsetting to work efficiently. Several [fixes ](https://docs.lammps.org/fix.html), most notably\ntime integration fixes like [fix nve ](https://docs.lammps.org/fix_nve.html), also take\nadvantage of this setting if the group they operate on is the group\nspecified by this command. Note that specifying \"all\" as the group-ID\neffectively turns off the *first* option.\n\nIt is OK to use the *first* keyword with a group that has not yet been\ndefined, e.g. to use the atom_modify first command at the beginning of\nyour input script. LAMMPS does not use the group until a simulation\nis run.\n\nThe *sort* keyword turns on a spatial sorting or reordering of atoms\nwithin each processor's subdomain every *Nfreq* timesteps. If\n*Nfreq* is set to 0, then sorting is turned off. Sorting can improve\ncache performance and thus speed-up a LAMMPS simulation, as discussed\nin a paper by **Meloni**. Its efficacy depends on the problem\nsize (atoms/processor), how quickly the system becomes disordered, and\nvarious other factors. As a general rule, sorting is typically more\neffective at speeding up simulations of liquids as opposed to solids.\nIn tests we have done, the speed-up can range from zero to 3-4x.\n\nReordering is performed every *Nfreq* timesteps during a dynamics run\nor iterations during a minimization. More precisely, reordering\noccurs at the first reneighboring that occurs after the target\ntimestep. The reordering is performed locally by each processor,\nusing bins of the specified *binsize* . If *binsize* is set to 0.0,\nthen a binsize equal to half the [neighbor ](https://docs.lammps.org/neighbor.html) cutoff\ndistance (force cutoff plus skin distance) is used, which is a\nreasonable value. After the atoms have been binned, they are\nreordered so that atoms in the same bin are adjacent to each other in\nthe processor's 1d list of atoms.\n\nThe goal of this procedure is for atoms to put atoms close to each\nother in the processor's one-dimensional list of atoms that are also\nnear to each other spatially. This can improve cache performance when\npairwise interactions and neighbor lists are computed. Note that if\nbins are too small, there will be few atoms/bin. Likewise if bins are\ntoo large, there will be many atoms/bin. In both cases, the goal of\ncache locality will be undermined.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Running a simulation with sorting on versus off should not change\n > the simulation results in a statistical sense. However, a\n > different ordering will induce round-off differences, which will\n > lead to diverging trajectories over time when comparing two\n > simulations. Various commands, particularly those which use random\n > numbers (e.g. [velocity create ](https://docs.lammps.org/velocity.html), and [fix > langevin ](https://docs.lammps.org/fix_langevin.html)), may generate (statistically identical)\n > results which depend on the order in which atoms are processed.\n > The order of atoms in a [dump ](https://docs.lammps.org/dump.html) file will also typically\n > change if sorting is enabled. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When running simple pair-wise potentials like Lennard Jones on GPUs\n > with the KOKKOS package, using a larger binsize (e.g. 2x larger than\n > default) and a more frequent reordering than default (e.g. every 100\n > time steps) may improve performance.\n >\n > \n > \n\n\n**(Meloni)** Meloni, Rosati and Colombo, J Chem Phys, 126, 121102 (2007). \n ", - "restrictions": "The *first* and *sort* options cannot be used together. Since sorting\nis on by default, it will be turned off if the *first* keyword is\nused with a group-ID that is not \"all\".\n", - "related": "none\n" + "parameters": "* style = meam or meam/ms \n", + "examples": "\n```lmps\npair_style meam\npair_coeff * * ../potentials/library.meam Si ../potentials/si.meam Si\npair_coeff * * ../potentials/library.meam Ni Al NULL Ni Al Ni Ni\n\npair_style meam/ms\npair_coeff * * ../potentials/library.msmeam H Ga ../potentials/HGa.meam H Ga\n```\n", + "html_filename": "pair_meam.html", + "short_description": "\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior of the MEAM potential for alloy systems has changed\n > as of November 2010; see description below of the mixture_ref_t\n > parameter \n > \n\nPair style *meam* computes non-bonded interactions for a variety of\nmaterials using the modified embedded-atom method (MEAM) **Baskes**", + "description": "\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior of the MEAM potential for alloy systems has changed\n > as of November 2010; see description below of the mixture_ref_t\n > parameter \n > \n\nPair style *meam* computes non-bonded interactions for a variety of\nmaterials using the modified embedded-atom method (MEAM) **Baskes**. Conceptually, it is an extension to the original [EAMmethod ](https://docs.lammps.org/pair_eam.html) which adds angular forces. It is thus suitable for\nmodeling metals and alloys with fcc, bcc, hcp and diamond cubic\nstructures, as well as materials with covalent interactions like silicon\nand carbon.\n\nThe *meam* pair style is a translation of the original Fortran version\nto C++. It is functionally equivalent but more efficient and has\nadditional features. The Fortran version of the *meam* pair style has\nbeen removed from LAMMPS after the 12 December 2018 release.\n\nPair style *meam/ms* uses the multi-state MEAM (MS-MEAM) method\naccording to **Baskes2**, which is an extension to MEAM.\nThis pair style is mostly equivalent to *meam* and differs only\nwhere noted in the documentation below.\n\nIn the MEAM formulation, the total energy E of a system of atoms is\ngiven by:\n\\[\n E = \\sum_i \\left\\{ F_i(\\bar{\\rho}_i)\n + \\frac{1}{2} \\sum_{i \\neq j} \\phi_{ij} (r_{ij}) \\right\\}\\]\nwhere *F* is the embedding energy which is a function of the atomic\nelectron density \\(\\rho\\), and \\(\\phi\\) is a pair potential\ninteraction. The pair interaction is summed over all neighbors J of\natom I within the cutoff distance. As with EAM, the multi-body nature\nof the MEAM potential is a result of the embedding energy term. Details\nof the computation of the embedding and pair energies, as implemented in\nLAMMPS, are given in **Gullet** and references therein.\n\nThe various parameters in the MEAM formulas are listed in two files\nwhich are specified by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\nThese are ASCII text files in a format consistent with other MD codes\nthat implement MEAM potentials, such as the serial DYNAMO code and\nWarp. Several MEAM potential files with parameters for different\nmaterials are included in the \"potentials\" directory of the LAMMPS\ndistribution with a \".meam\" suffix. All of these are parameterized in\nterms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike for other potentials, cutoffs for MEAM potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe MEAM potential files themselves.\n\nOnly a single pair_coeff command is used with the *meam* style which\nspecifies two MEAM files and the element(s) to extract information\nfor. The MEAM elements are mapped to LAMMPS atom types by specifying\nN additional arguments after the second filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* MEAM library file\n* Element1, Element2, ...\n* MEAM parameter file\n* N element names = mapping of MEAM elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential files.\n\nAs an example, the ``potentials/library.meam`` file has generic MEAM\nsettings for a variety of elements. The ``potentials/SiC.meam`` file\nhas specific parameter settings for a Si and C alloy system. If your\nLAMMPS simulation has 4 atoms types and you want the first 3 to be Si,\nand the fourth to be C, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * library.meam Si C sic.meam Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first filename is the element library file. The list of elements following\nit extracts lines from the library file and assigns numeric indices to these\nelements. The second filename is the alloy parameter file, which refers to\nelements using the numeric indices assigned before.\nThe arguments after the parameter file map LAMMPS atom types to elements, i.e.\nLAMMPS atom types 1,2,3 to the MEAM Si element. The final C argument maps\nLAMMPS atom type 4 to the MEAM C element.\n\nIf the second filename is specified as NULL, no parameter file is read,\nwhich simply means the generic parameters in the library file are\nused. Use of the NULL specification for the parameter file is\ndiscouraged for systems with more than a single element type\n(e.g. alloys), since the parameter file is expected to set element\ninteraction terms that are not captured by the information in the\nlibrary file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when a *meam* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the second filename is NULL, the element names between the two\n > filenames can appear in any order, e.g. \"Si C\" or \"C Si\" in the\n > example above. However, if the second filename is **not** NULL (as in the\n > example above), it contains settings that are indexed **by numbers**\n > for the elements that precede it. Thus you need to ensure that you list\n > the elements between the filenames in an order consistent with how the\n > values in the second filename are indexed. See details below on the\n > syntax for settings in the second file. \n > \n\nThe MEAM library file provided with LAMMPS has the name\n``potentials/library.meam``. It is the \"meamf\" file used by other MD\ncodes. Aside from blank and comment lines (starting with # which can\nappear anywhere), it is formatted as a series of entries, each of which\nhas 19 parameters and can span multiple lines:\n\nelt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, alat, esub, asub,\nt0, t1, t2, t3, rozero, ibar\n\nThe *elt* and *lat* parameters are text strings, such as *elt* = Si or\nCu and *lat* = dia or fcc. Because the library file is used by Fortran\nMD codes, these strings may be enclosed in single quotes, but this is\nnot required. The other numeric parameters match values in the\nformulas above. The value of the *elt* string is what is used in the\npair_coeff command to identify which settings from the library file\nyou wish to read in. There can be multiple entries in the library\nfile with the same *elt* value; LAMMPS reads the first matching entry it\nfinds and ignores the rest.\n\nOther parameters in the MEAM library file correspond to single-element\npotential parameters:\n\n```\nlat = lattice structure of reference configuration\nz = number of nearest neighbors in the reference structure\nielement = atomic number\natwt = atomic weight\nalat = lattice constant of reference structure\nesub = energy per atom (eV) in the reference structure at equilibrium\nasub = \"A\" parameter for MEAM (see e.g. **Baskes**)\n```\nThe *alpha*, *b0*, *b1*, *b2*, *b3*, *t0*, *t1*, *t2*, *t3* parameters correspond to the\nstandard MEAM parameters in the literature **Baskes** (the b\nparameters are the standard beta parameters). Note that only parameters\nnormalized to *t0 = 1.0* are supported. The *rozero* parameter is\nan element-dependent density scaling that weights the reference\nbackground density (see e.g. equation 4.5 in **Gullet**) and\nis typically 1.0 for single-element systems. The *ibar* parameter\nselects the form of the function G(Gamma) used to compute the electron\ndensity; options are\n\n```\n0 => G = sqrt(1+Gamma)\n1 => G = exp(Gamma/2)\n2 => not implemented\n3 => G = 2/(1+exp(-Gamma))\n4 => G = sqrt(1+Gamma)\n-5 => G = +-sqrt(abs(1+Gamma))\n```\nIf used, the MEAM parameter file contains settings that override or\ncomplement the library file settings. Examples of such parameter\nfiles are in the potentials directory with a \".meam\" suffix. Their\nformat is the same as is read by other Fortran MD codes. Aside from\nblank and comment lines (start with # which can appear anywhere), each\nline has one of the following forms. Each line can also have a\ntrailing comment (starting with #) which is ignored.\n\n```\nkeyword = value\nkeyword(I) = value\nkeyword(I,J) = value\nkeyword(I,J,K) = value\n```\nThe indices I, J, K correspond to the elements selected from the\nMEAM library file numbered in the order of how those elements were\nselected starting from 1. Thus for the example given before\n\n```lmps\npair_coeff * * library.meam Si C sic.meam Si Si Si C\n```\nan index of 1 would refer to Si and an index of 2 to C.\n\nThe recognized keywords for the parameter file are as follows:\n\n```\nrc = cutoff radius for cutoff function; default = 4.0\ndelr = length of smoothing distance for cutoff function; default = 0.1\nrho0(I) = relative density for element I (overwrites value\nread from meamf file)\nEc(I,J) = cohesive energy of reference structure for I-J mixture\ndelta(I,J) = heat of formation for I-J alloy; if Ec_IJ is input as\nzero, then LAMMPS sets Ec_IJ = (Ec_II + Ec_JJ)/2 - delta_IJ\nalpha(I,J) = alpha parameter for pair potential between I and J (can\nbe computed from bulk modulus of reference structure)\nre(I,J) = equilibrium distance between I and J in the reference\nstructure\nCmax(I,J,K) = Cmax screening parameter when I-J pair is screened\nby K (I<=J); default = 2.8\nCmin(I,J,K) = Cmin screening parameter when I-J pair is screened\nby K (I<=J); default = 2.0\nlattce(I,J) = lattice structure of I-J reference structure:\nfcc = face centered cubic\nbcc = body centered cubic\nhcp = hexagonal close-packed\ndim = dimer\ndia = diamond (interlaced fcc for alloy)\ndia3= diamond structure with primary 1NN and secondary 3NN interaction\nb1 = rock salt (NaCl structure)\nc11 = MoSi2 structure\nl12 = Cu3Au structure (lower case L, followed by 12)\nb2 = CsCl structure (interpenetrating simple cubic)\nch4 = methane-like structure, only for binary system\nlin = linear structure (180 degree angle)\nzig = zigzag structure with a uniform angle\ntri = H2O-like structure that has an angle\nsc = simple cubic\nnn2(I,J) = turn on second-nearest neighbor MEAM formulation for\nI-J pair (see for example **Lee**).\n0 = second-nearest neighbor formulation off\n1 = second-nearest neighbor formulation on\ndefault = 0\nattrac(I,J) = additional cubic attraction term in Rose energy I-J pair potential\ndefault = 0\nrepuls(I,J) = additional cubic repulsive term in Rose energy I-J pair potential\ndefault = 0\nzbl(I,J) = blend the MEAM I-J pair potential with the ZBL potential for small\natom separations **ZBL**\ndefault = 1\ntheta(I,J) = angle between three atoms in line, zigzag, and trimer reference structures in degrees\ndefault = 180\ngsmooth_factor = factor determining the length of the G-function smoothing\nregion; only significant for ibar=0 or ibar=4.\n99.0 = short smoothing region, sharp step\n0.5 = long smoothing region, smooth step\ndefault = 99.0\naugt1 = integer flag for whether to augment t1 parameter by\n3/5\\*t3 to account for old vs. new meam formulations;\n0 = don't augment t1\n1 = augment t1\ndefault = 1\nialloy = integer flag to use alternative averaging rule for t parameters,\nfor comparison with the DYNAMO MEAM code\n0 = standard averaging (matches ialloy=0 in DYNAMO)\n1 = alternative averaging (matches ialloy=1 in DYNAMO)\n2 = no averaging of t (use single-element values)\ndefault = 0\nmixture_ref_t = integer flag to use mixture average of t to compute the background\nreference density for alloys, instead of the single-element values\n(see description and warning elsewhere in this doc page)\n0 = do not use mixture averaging for t in the reference density\n1 = use mixture averaging for t in the reference density\ndefault = 0\nerose_form = integer value to select the form of the Rose energy function\n(see description below).\ndefault = 0\nemb_lin_neg = integer value to select embedding function for negative densities\n0 = F(rho)=0\n1 = F(rho) = -asub\\*esub\\*rho (linear in rho, matches DYNAMO)\ndefault = 0\nbkgd_dyn = integer value to select background density formula\n0 = rho_bkgd = rho_ref_meam(a) (as in the reference structure)\n1 = rho_bkgd = rho0_meam(a)\\*Z_meam(a) (matches DYNAMO)\ndefault = 0\n```\n*Rc*, *delr*, *re* are in distance units (Angstroms in the case of metal\nunits). *Ec* and *delta* are in energy units (eV in the case of metal\nunits).\n\nEach keyword represents a quantity which is either a scalar, vector,\n2d array, or 3d array and must be specified with the correct\ncorresponding array syntax. The indices I,J,K each run from 1 to N\nwhere N is the number of MEAM elements being used.\n\nThus these lines\n\n```\nrho0(2) = 2.25\nalpha(1,2) = 4.37\n```\nset *rho0* for the second element to the value 2.25 and set *alpha* for the\nalloy interaction between elements 1 and 2 to 4.37.\n\nThe *augt1* parameter is related to modifications in the MEAM\nformulation of the partial electron density function. In recent\nliterature, an extra term is included in the expression for the\nthird-order density in order to make the densities orthogonal (see for\nexample **Wang2**, equation 3d); this term is included in the\nMEAM implementation in LAMMPS. However, in earlier published work\nthis term was not included when deriving parameters, including most of\nthose provided in the ``library.meam`` file included with LAMMPS, and to\naccount for this difference the parameter *t1* must be augmented by\n3/5\\**t3*. If *augt1* = 1, the default, this augmentation is done\nautomatically. When parameter values are fit using the modified\ndensity function, as in more recent literature, augt1 should be set to\n0.\n\nThe *mixture_ref_t* parameter is available to match results with those\nof previous versions of LAMMPS (before January 2011). Newer versions\nof LAMMPS, by default, use the single-element values of the *t*\nparameters to compute the background reference density. This is the\nproper way to compute these parameters. Earlier versions of LAMMPS\nused an alloy mixture averaged value of *t* to compute the background\nreference density. Setting *mixture_ref_t* = 1 gives the old behavior.\nWARNING: using *mixture_ref_t* = 1 will give results that are demonstrably\nincorrect for second-neighbor MEAM, and non-standard for\nfirst-neighbor MEAM; this option is included only for matching with\nprevious versions of LAMMPS and should be avoided if possible.\n\nThe parameters *attrac* and *repuls*, along with the integer selection\nparameter *erose_form*, can be used to modify the Rose energy function\nused to compute the pair potential. This function gives the energy of\nthe reference state as a function of interatomic spacing. The form of\nthis function is:\n\n```\nastar = alpha \\* (r/re - 1.d0)\nif erose_form = 0: erose = -Ec\\*(1+astar+a3\\*(astar\\**3)/(r/re))\\*exp(-astar)\nif erose_form = 1: erose = -Ec\\*(1+astar+(-attrac+repuls/r)\\*(astar\\**3))\\*exp(-astar)\nif erose_form = 2: erose = -Ec\\*(1 +astar + a3\\*(astar\\**3))\\*exp(-astar)\na3 = repuls, astar < 0\na3 = attrac, astar >= 0\n```\nMost published MEAM parameter sets use the default values *attrac* = *repulse* = 0.\nSetting *repuls* = *attrac* = *delta* corresponds to the form used in several\nrecent published MEAM parameter sets, such as **Valone**\n\nThen using *meam/ms* pair style the multi-state MEAM (MS-MEAM) method is\nactivated. This requires 6 extra parameters in the MEAM library file,\nresulting in 25 parameters ordered that are ordered like this:\n\nelt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, b1m, b2m, b3m, alat, esub, asub,\nt0, t1, t2, t3, t1m, t2m, t3m, rozero, ibar\n\nThe 6 extra MS-MEAM parameters are *b1m, b2m, b3m, t1m, t2m, t3m*.\nIn the LAMMPS ``potentials`` folder, compatible files have an \".msmeam\" extension.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The default form of the *erose* expression in LAMMPS was corrected\n > in March 2009. The current version is correct, but may show different\n > behavior compared with earlier versions of LAMMPS with the attrac\n > and/or repuls parameters are non-zero. To obtain the previous default\n > form, use *erose_form* = 1 (this form does not seem to appear in the\n > literature). An alternative form (see e.g. **Lee2**) is\n > available using *erose_form* = 2. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\n*shift*, *table*, and *tail* options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html),\nsince it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Baskes)** Baskes, Phys Rev B, 46, 2727-2742 (1992). \n \n**(Baskes2)** Baskes, Phys Rev B, 75, 094113 (2007). \n \n**(Gullet)** Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395\nThis report may be accessed on-line via [this link](https://download.lammps.org/pdfs/MEAM_report_2003.pdf). \n \n**(Baskes)** Baskes, Phys Rev B, 46, 2727-2742 (1992). \n \n**(Lee)** Lee, Baskes, Phys. Rev. B, 62, 8564-8567 (2000). \n \n**(ZBL)** J.F. Ziegler, J.P. Biersack, U. Littmark, \"Stopping and Ranges\nof Ions in Matter\", Vol 1, 1985, Pergamon Press. \n \n**(Wang2)** Wang, Van Hove, Ross, Baskes, J. Chem. Phys., 121, 5410 (2004). \n \n**(Valone)** Valone, Baskes, Martin, Phys. Rev. B, 73, 214209 (2006). \n \n**(Lee2)** Lee, Baskes, Kim, Cho. Phys. Rev. B, 64, 184102 (2001). \n ", + "restrictions": "The *meam* and *meam/ms* pair styles are provided in the MEAM\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe maximum number of elements, that can be read from the MEAM library\nfile, is determined at compile time. The default is 8. If you need\nsupport for more elements, you have to change the the constant 'MAXELT'\nat the beginning of the file ``src/MEAM/meam.h`` and update/recompile\nLAMMPS. There is no limit on the number of atoms types.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style eam ](https://docs.lammps.org/pair_eam.html),\n[pair_style meam/spline ](https://docs.lammps.org/pair_meam_spline.html)\n" }, { "command": [ - "fix ipi" + "pair_style table", + "pair_style table/gpu", + "pair_style table/kk", + "pair_style table/omp" ], "syntax": [ - "fix ID group-ID ipi address port [unix] [reset]" + "pair_style table style N keyword ..." ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "table", + "type": 3, + "choices": [ + "table", + "table/gpu", + "table/kk", + "table/omp" + ] }, { - "arg": "group-ID", + "arg": "spline", + "type": 3, + "choices": [ + "lookup", + "linear", + "spline" + ] + }, + { + "arg": "N", "type": 2, "choices": [] }, { - "arg": "ipi", + "arg": "tip4p", + "type": 3, + "choices": [ + "ewald", + "pppm", + "msm", + "dispersion", + "tip4p" + ] + } + ] + ], + "parameters": "* style = lookup or linear or spline or bitmap = method of interpolation\n* N = use N values in lookup, linear, spline tables\n* N = use 2\\^N values in bitmap tables\n* zero or more keywords may be appended\n* keyword = ewald or pppm or msm or dispersion or tip4p \n", + "examples": "\n```lmps\npair_style table linear 1000\npair_style table linear 1000 pppm\npair_style table bitmap 12\npair_coeff * 3 morse.table ENTRY1\npair_coeff * 3 morse.table ENTRY1 7.0\n```\n", + "html_filename": "pair_table.html", + "short_description": "Style *table* creates interpolation tables from potential energy and\nforce values listed in a file(s) as a function of distance", + "description": "Style *table* creates interpolation tables from potential energy and\nforce values listed in a file(s) as a function of distance. When\nperforming dynamics or minimization, the interpolation tables are used\nto evaluate energy and forces for pairwise interactions between\nparticles, similar to how analytic formulas are used for other pair\nstyles.\n\nThe interpolation tables are created as a pre-computation by fitting\ncubic splines to the file values and interpolating energy and force\nvalues at each of *N* distances. During a simulation, the tables are\nused to interpolate energy and force values as needed for each pair of\nparticles separated by a distance *R* . The interpolation is done in\none of 4 styles: *lookup*, *linear*, *spline*, or *bitmap* .\n\nFor the *lookup* style, the distance *R* is used to find the nearest\ntable entry, which is the energy or force.\n\nFor the *linear* style, the distance *R* is used to find the 2\nsurrounding table values from which an energy or force is computed by\nlinear interpolation.\n\nFor the *spline* style, cubic spline coefficients are computed and\nstored for each of the *N* values in the table, one set of splines for\nenergy, another for force. Note that these splines are different than\nthe ones used to pre-compute the *N* values. Those splines were fit\nto the *Nfile* values in the tabulated file, where often *Nfile* <\n*N* . The distance *R* is used to find the appropriate set of spline\ncoefficients which are used to evaluate a cubic polynomial which\ncomputes the energy or force.\n\nFor the *bitmap* style, the specified *N* is used to create\ninterpolation tables that are 2\\^N in length. The distance *R* is used\nto index into the table via a fast bit-mapping technique due to\n**Wolff2**, and a linear interpolation is performed between\nadjacent table values.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* filename\n* keyword\n* cutoff (distance units)\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The cutoff is\nan optional coefficient. If not specified, the outer cutoff in the\ntable itself (see below) will be used to build an interpolation table\nthat extend to the largest tabulated distance. If specified, only\nfile values up to the cutoff are used to create the interpolation\ntable. The format of this file is described below.\n\nIf your tabulated potential(s) are designed to be used as the\nshort-range part of one of the long-range solvers specified by the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command, then you must use one or\nmore of the optional keywords listed above for the pair_style command.\nThese are *ewald* or *pppm* or *msm* or *dispersion* or *tip4p* . This\nis so LAMMPS can ensure the short-range potential and long-range\nsolver are compatible with each other, as it does for other\nshort-range pair styles, such as [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html). Note that it is up to you to ensure\nthe tabulated values for each pair of atom types has the correct\nfunctional form to be compatible with the matching long-range solver.\n\n----------\n\nHere are some guidelines for using the pair_style table command to\nbest effect:\n\n* Vary the number of table points; you may need to use more than you think\n to get good resolution.\n* Always use the [pair_write ](https://docs.lammps.org/pair_write.html) command to produce a plot\n of what the final interpolated potential looks like. This can show up\n interpolation \"features\" you may not like.\n* Start with the linear style; it's the style least likely to have problems.\n* Use *N* in the pair_style command equal to the \"N\" in the tabulation\n file, and use the \"RSQ\" or \"BITMAP\" parameter, so additional interpolation\n is not needed. See discussion below.\n* Make sure that your tabulated forces and tabulated energies are\n consistent (dE/dr = -F) over the entire range of r values. LAMMPS\n will warn if this is not the case.\n* Use as large an inner cutoff as possible. This avoids fitting splines\n to very steep parts of the potential.\n\n----------\n\nSuitable tables in the correct format for use with these pair styles can\nbe created by LAMMPS itself using the [pair_write ](https://docs.lammps.org/pair_write.html)\ncommand. In combination with the pair styles [python ](https://docs.lammps.org/pair_python.html),\n[lepton, or lepton/coul ](https://docs.lammps.org/pair_lepton.html) this can be a powerful\nmechanism to implement and test tables for use with LAMMPS. Another\noption to generate tables is the Python code in the ``tools/tabulate``\nfolder of the LAMMPS source code distribution.\n\nThe format of a tabulated file has an (optional) header followed by a\nseries of one or more sections, defined as follows (without the\nparenthesized comments). The header must start with a `#` character\nand the DATE: and UNITS: tags will be parsed and used:\n\n```\n# DATE: 2020-06-10 UNITS: real CONTRIBUTOR: ... (header line)\n# Morse potential for Fe (one or more comment or blank lines)\n\nMORSE_FE (keyword is first text on line)\nN 500 R 1.0 10.0 (N, R, RSQ, BITMAP, FPRIME parameters)\n(blank)\n1 1.0 25.5 102.34 (index, r, energy, force)\n2 1.02 23.4 98.5\n...\n500 10.0 0.001 0.003\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the pair_coeff\ncommand. The next line lists (in any order) one or more parameters\nfor the table. Each parameter is a keyword followed by one or more\nnumeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [pair_style table ](https://docs.lammps.org/pair_style.html) command. Let\nNtable = *N* in the pair_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate energy and force values at Ntable different\npoints. The resulting tables of length Ntable are then used as\ndescribed above, when computing energy and force for individual pair\ndistances. This means that if you want the interpolation tables of\nlength Ntable to match exactly what is in the tabulated file (with\neffectively no preliminary interpolation), you should set Ntable =\nNfile, and use the \"RSQ\" or \"BITMAP\" parameter. This is because the\ninternal table abscissa is always RSQ (separation distance squared),\nfor efficient lookup.\n\nAll other parameters are optional. If \"R\" or \"RSQ\" or \"BITMAP\" does\nnot appear, then the distances in each line of the table are used\nas-is to perform spline interpolation. In this case, the table values\ncan be spaced in *r* uniformly or however you wish to position table\nvalues in regions of large gradients.\n\nIf used, the parameters \"R\" or \"RSQ\" are followed by 2 values *rlo*\nand *rhi* . If specified, the distance associated with each energy and\nforce value is computed from these 2 values (at high accuracy), rather\nthan using the (low-accuracy) value listed in each line of the table.\nThe distance values in the table file are ignored in this case.\nFor \"R\", distances uniformly spaced between *rlo* and *rhi* are\ncomputed; for \"RSQ\", squared distances uniformly spaced between\n*rlo\\*rlo* and *rhi\\*rhi* are computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use \"R\" or \"RSQ\", the tabulated distance values in the\n > file are effectively ignored, and replaced by new values as described\n > in the previous paragraph. If the distance value in the table is not\n > very close to the new value (i.e. round-off difference), then you will\n > be assigning energy/force values to a different distance, which is\n > probably not what you want. LAMMPS will warn if this is occurring. \n > \n\nIf used, the parameter \"BITMAP\" is also followed by 2 values *rlo* and\n*rhi* . These values, along with the \"N\" value determine the ordering\nof the N lines that follow and what distance is associated with each.\nThis ordering is complex, so it is not documented here, since this\nfile is typically produced by the [pair_write ](https://docs.lammps.org/pair_write.html) command\nwith its *bitmap* option. When the table is in BITMAP format, the \"N\"\nparameter in the file must be equal to 2\\^M where M is the value\nspecified in the pair_style command. Also, a cutoff parameter cannot\nbe used as an optional third argument in the pair_coeff command; the\nentire table extent as specified in the file must be used.\n\nIf used, the parameter \"FPRIME\" is followed by 2 values *fplo* and\n*fphi* which are the derivative of the force at the innermost and\noutermost distances listed in the table. These values are needed by\nthe spline construction routines. If not specified by the \"FPRIME\"\nparameter, they are estimated (less accurately) by the first 2 and\nlast 2 force values in the table. This parameter is not used by\nBITMAP tables.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nr (in distance units), the third value is the energy (in energy units),\nand the fourth is the force (in force units). The r values must increase\nfrom one line to the next (unless the BITMAP parameter is specified).\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options are\nnot relevant for this pair style.\n\nThis pair style writes the settings for the \"pair_style table\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a pair_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart\nfile, since it is tabulated in the potential files. Thus, pair_coeff\ncommands do need to be specified in the restart input script.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Wolff2)** Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999). \n ", + "restrictions": "none\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_write ](https://docs.lammps.org/pair_write.html)\n" +}, +{ + "command": [ + "pair_style tri/lj" + ], + "syntax": [ + "pair_style tri/lj cutoff" + ], + "args": [ + [ + { + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "address", - "type": 2, + "arg": "tri/lj", + "type": 1, "choices": [] }, { - "arg": "port", + "arg": "cutoff", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "cutoff = global cutoff for interactions (distance units) \n", + "examples": "\n```lmps\npair_style tri/lj 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\n```\n", + "html_filename": "pair_tri_lj.html", + "short_description": "Style *tri/lj* treats particles which are triangles as a set of small\nspherical particles that tile the triangle surface as explained below", + "description": "Style *tri/lj* treats particles which are triangles as a set of small\nspherical particles that tile the triangle surface as explained below.\nInteractions between two triangles, each with N1 and N2 spherical\nparticles, are calculated as the pairwise sum of N1\\*N2 Lennard-Jones\ninteractions. Interactions between a triangle with N spherical\nparticles and a point particle are treated as the pairwise sum of N\nLennard-Jones interactions. See the [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html)\ndoc page for the definition of Lennard-Jones interactions.\n\nThe cutoff distance for an interaction between 2 triangles, or between\na triangle and a point particle, is calculated from the position of\nthe triangle (its centroid), not between pairs of individual spheres\ncomprising the triangle. Thus an interaction is either calculated in\nits entirety or not at all.\n\nThe set of non-overlapping spherical particles that represent a\ntriangle, for purposes of this pair style, are generated in the\nfollowing manner. Assume the triangle is of type I, and sigma_II has\nbeen specified. We want a set of spheres with centers in the plane of\nthe triangle, none of them larger in diameter than sigma_II, which\ncompletely cover the triangle's area, but with minimal overlap and a\nminimal total number of spheres. This is done in a recursive manner.\nPlace a sphere at the centroid of the original triangle. Calculate\nwhat diameter it must have to just cover all 3 corner points of the\ntriangle. If that diameter is equal to or smaller than sigma_II, then\ninclude a sphere of the calculated diameter in the set of covering\nspheres. It the diameter is larger than sigma_II, then split the\ntriangle into 2 triangles by bisecting its longest side. Repeat the\nprocess on each sub-triangle, recursing as far as needed to generate a\nset of covering spheres. When finished, the original criteria are\nmet, and the set of covering spheres should be near minimal in number\nand overlap, at least for input triangles with a reasonable\naspect-ratio.\n\nThe LJ interaction between 2 spheres on different triangles of types\nI,J is computed with an arithmetic mixing of the sigma values of the 2\nspheres and using the specified epsilon value for I,J atom types.\nNote that because the sigma values for triangles spheres is computed\nusing only sigma_II values, specific to the triangles's type, this\nmeans that any specified sigma_IJ values (for I != J) are effectively\nignored.\n\nFor style *tri/lj*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the examples above, or in the data file or restart files read by\nthe [read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* epsilon (energy units)\n* sigma (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of this pair style can be mixed. The\ndefault mix value is *geometric* . See the \"pair_modify\" command for\ndetails.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "This style is part of the ASPHERE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be triangles so they participate in tri/tri or\ntri/particle interactions requires the use the [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style line/lj ](https://docs.lammps.org/pair_line_lj.html)\n" +}, +{ + "command": [ + "angle_style cosine/buck6d" + ], + "syntax": [ + "angle_style cosine/buck6d" + ], + "args": [ + [ { - "arg": "[unix]", - "type": 2, + "arg": "angle_style", + "type": 1, "choices": [] }, { - "arg": "[reset]", - "type": 2, + "arg": "cosine/buck6d", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ipi = style name of this fix command\n* address = internet address (FQDN or IP), or UNIX socket name\n* port = port number (ignored for UNIX sockets)\n\n* zero or more keywords may be appended\n* keyword = unix or reset \n *        unix args = none = use a unix socket \n *        reset args = none = reset electrostatics at each call \n", - "examples": "\n```lmps\nfix 1 all ipi my.server.com 12345\nfix 1 all ipi mysocket 666 unix reset\n```\n", - "html_filename": "fix_ipi.html", - "short_description": "This fix enables LAMMPS to be run as a client for the i-PI Python\nwrapper **ipihome**", - "description": "This fix enables LAMMPS to be run as a client for the i-PI Python\nwrapper **ipihome**. i-PI is a universal force engine,\ndesigned to perform advanced molecular simulations, with a special\nfocus on path integral molecular dynamics (PIMD) simulation.\nThe philosophy behind i-PI is to separate the evaluation of the\nenergy and forces, which is delegated to the client, and the evolution\nof the dynamics, that is the responsibility of i-PI. This approach also\nsimplifies combining energies computed from different codes, which\ncan for instance be useful to mix first-principles calculations,\nempirical force fields or machine-learning potentials.\nThe following publication **IPICPC** discusses the\noverall implementation of i-PI, and focuses on path-integral techniques,\nwhile a later release **IPICPC2** introduces several\nadditional features and simulation schemes.\n\nThe communication between i-PI and LAMMPS takes place using sockets,\nand is reduced to the bare minimum. All the parameters of the dynamics\nare specified in the input of i-PI, and all the parameters of the force\nfield must be specified as LAMMPS inputs, preceding the *fix ipi* command.\n\nThe server address must be specified by the *address* argument, and\ncan be either the IP address, the fully-qualified name of the server,\nor the name of a UNIX socket for local, faster communication. In the\ncase of internet sockets, the *port* argument specifies the port\nnumber on which i-PI is listening, while the *unix* optional switch\nspecifies that the socket is a UNIX socket.\n\nNote that there is no check of data integrity, or that the atomic\nconfigurations make sense. It is assumed that the species in the i-PI\ninput are listed in the same order as in the data file of LAMMPS. The\ninitial configuration is ignored, as it will be substituted with the\ncoordinates received from i-PI before forces are ever evaluated.\n\nA note of caution when using potentials that contain long-range\nelectrostatics, or that contain parameters that depend on box size:\nall of these options will be initialized based on the cell size in the\nLAMMPS-side initial configuration and kept constant during the run.\nThis is required to e.g. obtain reproducible and conserved forces.\nIf the cell varies too wildly, it may be advisable to re-initialize\nthese interactions at each call. This behavior can be requested by\nsetting the *reset* switch.\n\n #### Obtaining i-PI\n\nHere are the commands to set up a virtual environment and install\ni-PI into it with all its dependencies via the PyPI repository and\nthe pip package manager.\n\n```sh\npython -m venv ipienv\nsource ipienv/bin/activate\npip install --upgrade pip\npip install ipi\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThere is no restart information associated with this fix, since all\nthe dynamical parameters are dealt with by i-PI.\n\n**(ipihome)**\n[https://ipi-code.org](https://ipi-code.org) \n \n**(IPICPC)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185,\n1019-1026 (2014). \n \n**(IPICPC2)** Kapil et al., Comp Phys Comm 236, 214-223 (2019). \n ", - "restrictions": "Using this fix on anything other than all atoms requires particular\ncare, since i-PI will know nothing on atoms that are not those whose\ncoordinates are transferred. However, one could use this strategy to\ndefine an external potential acting on the atoms that are moved by\ni-PI.\n\nSince the i-PI code uses atomic units internally, this fix needs to\nconvert LAMMPS data to and from its [specified units ](https://docs.lammps.org/units.html)\naccordingly when communicating with i-PI. This is not possible for\nreduced units (\"units lj\") and thus *fix ipi* will stop with an error in\nthis case.\n\nThis fix is part of the MISC package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\nBecause of the use of UNIX domain sockets, this fix will only\nwork in a UNIX environment.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n\n----------\n\n.. _IPICPC:\n\n**(IPI-CPC-2014)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185,\n1019-1026 (2014).\n\n.. _IPICPC2:\n\n**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214-223 (2019).\n\n\n.. _ipihome:\n\n**(IPI)**\n[https://ipi-code.org](https://ipi-code.org)\n" + "parameters": "", + "examples": "\n```lmps\nangle_style cosine/buck6d\nangle_coeff 1 cosine/buck6d 1.978350 4 180.000000\n```\n", + "html_filename": "angle_cosine_buck6d.html", + "short_description": "The *cosine/buck6d* angle style uses the potential\n\\[\n E = K \\left[ 1 + \\cos(n\\theta - \\theta_0)\\right]\\]\nwhere \\(K\\) is the energy constant, \\(n\\) is the periodic multiplicity and\n\\(\\theta_0\\) is the equilibrium angle", + "description": "The *cosine/buck6d* angle style uses the potential\n\\[\n E = K \\left[ 1 + \\cos(n\\theta - \\theta_0)\\right]\\]\nwhere \\(K\\) is the energy constant, \\(n\\) is the periodic multiplicity and\n\\(\\theta_0\\) is the equilibrium angle.\n\nThe coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands in the following order:\n\n* \\(K\\) (energy)\n* \\(n\\)\n* \\(\\theta_0\\) (degrees)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to radians\ninternally.\n\nAdditional to the cosine term the *cosine/buck6d* angle style computes\nthe short range (vdW) interaction belonging to the\n[pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) between the end atoms of the\nangle. For this reason this angle style only works in combination\nwith the [pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) styles and needs\nthe [special_bonds ](https://docs.lammps.org/special_bonds.html) 1-3 interactions to be weighted\n0.0 to prevent double counting.\n\n----------\n", + "restrictions": "*cosine/buck6d* can only be used in combination with the\n[pair_style buck6d ](https://docs.lammps.org/pair_buck6d_coul_gauss.html) style and with a\n[special_bonds ](https://docs.lammps.org/special_bonds.html) 0.0 weighting of 1-3 interactions.\n\nThis angle style can only be used if LAMMPS was built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute pressure" + "fix_modify AtC control lumped_lambda_solve" ], "syntax": [ - "compute ID group-ID pressure temp-ID keyword ..." + "fix_modify control lumped_lambda_solve " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "pressure", + "arg": "control", "type": 1, "choices": [] }, { - "arg": "temp-ID", - "type": 2, + "arg": "lumped_lambda_solve", + "type": 1, "choices": [] }, { - "arg": "pair/hybrid", + "arg": "", "type": 3, "choices": [ - "ke", - "pair", - "bond", - "angle", - "dihedral", - "improper", - "kspace", - "fix", - "virial", - "pair/hybrid" + "on", + "off" ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pressure = style name of this compute command\n* temp-ID = ID of compute that calculates temperature, can be NULL if not needed\n* zero or more keywords may be appended\n* keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial or pair/hybrid \n", - "examples": "\n```lmps\ncompute 1 all pressure thermo_temp\ncompute 1 all pressure NULL pair bond\ncompute 1 all pressure NULL pair/hybrid lj/cut\n```\n", - "html_filename": "compute_pressure.html", - "short_description": "Define a computation that calculates the pressure of the entire system\nof atoms", - "description": "Define a computation that calculates the pressure of the entire system\nof atoms. The specified group must be \"all\". See the\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) command if you want per-atom\npressure (stress). These per-atom values could be summed for a group\nof atoms via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command.\n\nThe pressure is computed by the formula\n\\[\n P = \\frac{N k_B T}{V} + \\frac{1}{V d}\\sum_{i=1}^{N'} \\vec r_i \\cdot \\vec f_i\\]\nwhere *N* is the number of atoms in the system (see discussion of DOF\nbelow), \\(k_B\\) is the Boltzmann constant, \\(T\\) is the\ntemperature, *d* is the dimensionality of the system (2 for 2d, 3 for\n3d), and *V* is the system volume (or area in 2d). The second term is\nthe virial, equal to \\(-dU/dV\\), computed for all pairwise as well\nas 2-body, 3-body, 4-body, many-body, and long-range interactions, where\n\\(\\vec r_i\\) and \\(\\vec f_i\\) are the position and force vector\nof atom *i*, and the dot indicates the dot product (scalar product).\nThis is computed in parallel for each subdomain and then summed over\nall parallel processes. Thus \\(N'\\) necessarily includes atoms from\nneighboring subdomains (so-called ghost atoms) and the position and\nforce vectors of ghost atoms are thus included in the summation. Only\nwhen running in serial and without periodic boundary conditions is\n\\(N' = N\\) the number of atoms in the system. [Fixes ](https://docs.lammps.org/fix.html)\nthat impose constraints (e.g., the [fix shake ](https://docs.lammps.org/fix_shake.html) command)\nmay also contribute to the virial term.\n\nA symmetric pressure tensor, stored as a 6-element vector, is also\ncalculated by this compute. The six components of the vector are\nordered \\(xx,\\) \\(yy,\\) \\(zz,\\) \\(xy,\\) \\(xz,\\)\n\\(yz.\\) The equation for the \\((I,J)\\) components (where\n\\(I\\) and \\(J\\) are \\(x\\), \\(y\\), or \\(z\\)) is\nsimilar to the above formula, except that the first term uses\ncomponents related to the kinetic energy tensor and the second term\nuses components of the virial tensor:\n\\[\n P_{IJ} = \\frac{1}{V}\\sum_{k=1}^{N} m_k v_{k_I} v_{k_J} +\n \\frac{1}{V}\\sum_{k=1}^{N'} r_{k_I} f_{k_J}.\\]\nIf no extra keywords are listed, the entire equations above are\ncalculated. This includes a kinetic energy (temperature) term and the\nvirial as the sum of pair, bond, angle, dihedral, improper, kspace\n(long-range), and fix contributions to the force on each atom. If any\nextra keywords are listed, then only those components are summed to\ncompute temperature or ke and/or the virial. The *virial* keyword means\ninclude all terms except the kinetic energy *ke* .\n\nThe *pair/hybrid* keyword means to only include contribution\nfrom a sub-style in a *hybrid* or *hybrid/overlay* pair style.\n\nDetails of how LAMMPS computes the virial efficiently for the entire\nsystem, including for many-body potentials and accounting for the\neffects of periodic boundary conditions are discussed in\n**Thompson1**.\n\nThe temperature and kinetic energy tensor are not calculated by this\ncompute, but rather by the temperature compute specified with the\ncommand. See the doc pages for individual compute temp variants for an\nexplanation of how they calculate temperature and a symmetric tensor\n(6-element vector) whose components are twice that of the traditional KE\ntensor. That tensor is what appears in the pressure tensor formula\nabove.\n\nIf the kinetic energy is not included in the pressure, than the\ntemperature compute is not used and can be specified as NULL. Normally\nthe temperature compute used by compute pressure should calculate the\ntemperature of all atoms for consistency with the virial term, but any\ncompute style that calculates temperature can be used (e.g., one that\nexcludes frozen atoms or other degrees of freedom).\n\nNote that if desired the specified temperature compute can be one that\nsubtracts off a bias to calculate a temperature using only the thermal\nvelocity of the atoms (e.g., by subtracting a background streaming\nvelocity). See the doc pages for individual [compute commands](https://docs.lammps.org/compute.html) to determine which ones include a bias.\n\nAlso note that the \\(N\\) in the first formula above is really\ndegrees-of-freedom divided by \\(d\\) = dimensionality, where the\nDOF value is calculated by the temperature compute. See the various\n[compute temperature ](https://docs.lammps.org/compute.html) styles for details.\n\nA compute of this style with the ID of thermo_press is created when\nLAMMPS starts up, as if this command were in the input script:\n\n```lmps\ncompute thermo_press all pressure thermo_temp\n```\nwhere thermo_temp is the ID of a similarly defined compute of style\n\"temp\". See the [thermo_style ](https://docs.lammps.org/thermo_style.html) command for more details.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the pressure) and a global\nvector of length 6 (pressure tensor), which can be accessed by indices\n1--6. These values can be used by any command that uses global scalar\nor vector values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe ordering of values in the symmetric pressure tensor is as follows:\n\\(p_{xx},\\) \\(p_{yy},\\) \\(p_{zz},\\) \\(p_{xy},\\)\n\\(p_{xz},\\) \\(p_{yz}.\\)\n\nThe scalar and vector values calculated by this compute are \"intensive\".\nThe scalar and vector values will be in pressure [units ](https://docs.lammps.org/units.html).\n\n**(Thompson1)** Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009). \n ", - "restrictions": " none\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n[thermo_style ](https://docs.lammps.org/thermo_style.html), [fix numdiff/virial ](https://docs.lammps.org/fix_numdiff_virial.html),\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control lumped_lambda_solve = name of the AtC sub-command\n* on or off = Toggles state of lumped matrix \n", + "examples": "\n```lmps\nfix_modify AtC control lumped_lambda_solve on\n```\n", + "html_filename": "atc_lumped_lambda_solve.html", + "short_description": "Command select whether to use or not use lumped matrix for lambda solve", + "description": "Command select whether to use or not use lumped matrix for lambda solve.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "compute torque/chunk" + "compute basal/atom" ], "syntax": [ - "compute ID group-ID torque/chunk chunkID" + "compute ID group-ID basal/atom" ], "args": [ [ @@ -34858,31 +34123,26 @@ export const command_docs = [ "choices": [] }, { - "arg": "torque/chunk", + "arg": "basal/atom", "type": 1, "choices": [] - }, - { - "arg": "chunkID", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* torque/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid torque/chunk molchunk\n```\n", - "html_filename": "compute_torque_chunk.html", - "short_description": "Define a computation that calculates the torque on multiple chunks of\natoms", - "description": "Define a computation that calculates the torque on multiple chunks of\natoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the three components of the torque vector for eqch\nchunk, due to the forces on the individual atoms in the chunk around\nthe center-of-mass of the chunk. The calculation includes all effects\ndue to atoms passing through periodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's torque in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute torque/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all torque/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is equal to the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns\nis three for the \\(x\\), \\(y\\), and \\(z\\) components of the torque\nfor each chunk. These values can be accessed by any command that uses global\narray values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nforce-distance [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[variable torque() function ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* basal/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all basal/atom\n```\n", + "html_filename": "compute_basal_atom.html", + "short_description": "Defines a computation that calculates the hexagonal close-packed \"c\"\nlattice vector for each atom in the group", + "description": "Defines a computation that calculates the hexagonal close-packed \"c\"\nlattice vector for each atom in the group. It does this by\ncalculating the normal unit vector to the basal plane for each atom.\nThe results enable efficient identification and characterization of\ntwins and grains in hexagonal close-packed structures.\n\nThe output of the compute is thus the 3 components of a unit vector\nassociated with each atom. The components are set to 0.0 for\natoms not in the group.\n\nDetails of the calculation are given in **Barrett**.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e. each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each of\nwhich computes this quantity.\n\nAn example input script that uses this compute is provided\nin examples/PACKAGES/basal.\n\n #### Output info\n\nThis compute calculates a per-atom array with three columns, which can be\naccessed by indices 1--3 by any command that uses per-atom values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe per-atom vector values are unitless since the three columns represent\ncomponents of a unit vector.\n\n**(Barrett)** Barrett, Tschopp, El Kadiri, Scripta Mat. 66, p.666 (2012). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe output of this compute will be meaningless unless the atoms are on\n(or near) hcp lattice sites, since the calculation assumes a\nwell-defined basal plane.\n", + "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html), [compute ackland/atom ](https://docs.lammps.org/compute_ackland_atom.html)\n" }, { "command": [ - "fix_modify AtC mesh add_to_nodeset" + "fix_modify AtC poisson_solver" ], "syntax": [ - "fix_modify mesh add_to_nodeset " + "fix_modify poisson_solver mesh create " ], "args": [ [ @@ -34897,159 +34157,114 @@ export const command_docs = [ "choices": [] }, { - "arg": "mesh", + "arg": "poisson_solver", "type": 1, "choices": [] }, { - "arg": "add_to_nodeset", + "arg": "mesh", "type": 1, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "", - "type": 2, + "arg": "create", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] - } - ] - ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_nodeset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains the desired nodes to be added \n", - "examples": "\n```lmps\nfix_modify AtC mesh add_to_nodeset lbc -12.1 -11.9 -12 12 -12 12\n```\n", - "html_filename": "atc_mesh_add_to_nodeset.html", - "short_description": "Command to add nodes to an already existing FE nodeset", - "description": "Command to add nodes to an already existing FE nodeset.\n", - "restrictions": "None\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_nodeset ](https://docs.lammps.org/atc_mesh_create_nodeset.html)\n" -}, -{ - "command": [ - "fix nvk" - ], - "syntax": [ - "fix ID group-ID nvk" - ], - "args": [ - [ - { - "arg": "fix", - "type": 1, - "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] }, { - "arg": "group-ID", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] }, { - "arg": "nvk", - "type": 1, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "f", + "p" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvk = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nvk\n```\n", - "html_filename": "fix_nvk.html", - "short_description": "Perform constant kinetic energy integration using the Gaussian\nthermostat to update position and velocity for atoms in the group each\ntimestep", - "description": "Perform constant kinetic energy integration using the Gaussian\nthermostat to update position and velocity for atoms in the group each\ntimestep. V is volume; K is kinetic energy. This creates a system\ntrajectory consistent with the isokinetic ensemble.\n\nThe equations of motion used are those of Minary et al in\n**nvk-Minary**, a variant of those initially given by Zhang in\n**nvk-Zhang**.\n\nThe kinetic energy will be held constant at its value given when fix\nnvk is initiated. If a different kinetic energy is desired, the\n[velocity ](https://docs.lammps.org/velocity.html) command should be used to change the kinetic\nenergy prior to this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(nvk-Minary)** Minary, Martyna, and Tuckerman, J Chem Phys, 18, 2510 (2003). \n \n**(nvk-Zhang)** Zhang, J Chem Phys, 106, 6102 (1997). \n ", - "restrictions": "The Gaussian thermostat only works when it is applied to all atoms in\nthe simulation box. Therefore, the group must be set to all.\n\nThis fix has not yet been implemented to work with the RESPA integrator.\n\nThis fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "none\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* poisson_solver = name of the AtC sub-command\n* nx *ny* nz = number of elements in x, y, and z\n* region-id = id of region to be meshed\n* f or p = periodicity flags for x, y, and z \n", + "examples": "\n```lmps\nfix_modify AtC poisson_solver mesh create 10 1 1 feRegion p p p\n```\n", + "html_filename": "atc_poisson_solver.html", + "short_description": "Creates a uniform mesh in a rectangular region", + "description": "Creates a uniform mesh in a rectangular region.\n", + "restrictions": "Creates only uniform rectangular grids in rectangular regions.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix box/relax" + "info" ], "syntax": [ - "fix ID group-ID box/relax keyword value ..." + "info args" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "box/relax", + "arg": "info", "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* box/relax = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or tri or x or y or z or xy or yz or xz or couple or nreset or vmax or dilate or scaleyz or scalexz or scalexy or fixedpoint \n       iso or aniso or tri value = Ptarget = desired pressure (pressure units) \n       x or y or z or xy or yz or xz value = Ptarget = desired pressure (pressure units) \n       couple = none or xyz or xy or yz or xz \n       nreset value = reset reference cell every this many minimizer iterations \n       vmax value = fraction = max allowed volume change in one iteration \n       dilate value = all or partial \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       scalexy value = yes or no = scale xy with ly \n       fixedpoint values = x y z \n       x,y,z = perform relaxation dilation/contraction around this point (distance units) \n", - "examples": "\n```lmps\nfix 1 all box/relax iso 0.0 vmax 0.001\nfix 2 water box/relax aniso 0.0 dilate partial\nfix 2 ice box/relax tri 0.0 couple xy nreset 100\n```\n", - "html_filename": "fix_box_relax.html", - "short_description": "Apply an external pressure or stress tensor to the simulation box\nduring an [energy minimization ](https://docs.lammps.org/minimize.html)", - "description": "Apply an external pressure or stress tensor to the simulation box\nduring an [energy minimization ](https://docs.lammps.org/minimize.html). This allows the box\nsize and shape to vary during the iterations of the minimizer so that\nthe final configuration will be both an energy minimum for the\npotential energy of the atoms, and the system pressure tensor will be\nclose to the specified external tensor. Conceptually, specifying a\npositive pressure is like squeezing on the simulation box; a negative\npressure typically allows the box to expand.\n\n----------\n\nThe external pressure tensor is specified using one or more of the\n*iso*, *aniso*, *tri*, *x*, *y*, *z*, *xy*, *xz*, *yz*, and *couple*\nkeywords. These keywords give you the ability to specify all 6\ncomponents of an external stress tensor, and to couple various of\nthese components together so that the dimensions they represent are\nvaried together during the minimization.\n\nOrthogonal simulation boxes have 3 adjustable dimensions (x,y,z).\nTriclinic (non-orthogonal) simulation boxes have 6 adjustable\ndimensions (x,y,z,xy,xz,yz). The [create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and [read_restart ](https://docs.lammps.org/read_restart.html) commands\nspecify whether the simulation box is orthogonal or non-orthogonal\n(triclinic) and explain the meaning of the xy,xz,yz tilt factors.\n\nThe target pressures *Ptarget* for each of the 6 components of the\nstress tensor can be specified independently via the *x*, *y*, *z*,\n*xy*, *xz*, *yz* keywords, which correspond to the 6 simulation box\ndimensions. For example, if the *y* keyword is used, the y-box length\nwill change during the minimization. If the *xy* keyword is used, the\nxy tilt factor will change. A box dimension will not change if that\ncomponent is not specified.\n\nNote that in order to use the *xy*, *xz*, or *yz* keywords, the\nsimulation box must be triclinic, even if its initial tilt factors are\n0.0.\n\nWhen the size of the simulation box changes, all atoms are re-scaled\nto new positions, unless the keyword *dilate* is specified with a\nvalue of *partial*, in which case only the atoms in the fix group are\nre-scaled. This can be useful for leaving the coordinates of atoms in\na solid substrate unchanged and controlling the pressure of a\nsurrounding fluid.\n\nThe *scaleyz*, *scalexz*, and *scalexy* keywords control whether or\nnot the corresponding tilt factors are scaled with the associated box\ndimensions when relaxing triclinic periodic cells. The default\nvalues *yes* will turn on scaling, which corresponds to adjusting the\nlinear dimensions of the cell while preserving its shape. Choosing\n*no* ensures that the tilt factors are not scaled with the box\ndimensions. See below for restrictions and default values in different\nsituations. In older versions of LAMMPS, scaling of tilt factors was\nnot performed. The old behavior can be recovered by setting all three\nscale keywords to *no* .\n\nThe *fixedpoint* keyword specifies the fixed point for cell relaxation.\nBy default, it is the center of the box. Whatever point is\nchosen will not move during the simulation. For example, if the lower\nperiodic boundaries pass through (0,0,0), and this point is provided\nto *fixedpoint*, then the lower periodic boundaries will remain at\n(0,0,0), while the upper periodic boundaries will move twice as\nfar. In all cases, the particle positions at each iteration are\nunaffected by the chosen value, except that all particles are\ndisplaced by the same amount, different on each iteration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Applying an external pressure to tilt dimensions *xy*, *xz*, *yz*\n > can sometimes result in arbitrarily large values of the tilt factors,\n > i.e. a dramatically deformed simulation box. This typically indicates\n > that there is something badly wrong with how the simulation was\n > constructed. The two most common sources of this error are applying a\n > shear stress to a liquid system or specifying an external shear stress\n > tensor that exceeds the yield stress of the solid. In either case the\n > minimization may converge to a bogus conformation or not converge at\n > all. Also note that if the box shape tilts to an extreme shape,\n > LAMMPS will run less efficiently, due to the large volume of\n > communication needed to acquire ghost atoms around a processor's\n > irregular-shaped subdomain. For extreme values of tilt, LAMMPS may\n > also lose atoms and generate an error. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Performing a minimization with this fix is not a mathematically\n > well-defined minimization problem. This is because the objective\n > function being minimized changes if the box size/shape changes. In\n > practice this means the minimizer can get \"stuck\" before you have\n > reached the desired tolerance. The solution to this is to restart the\n > minimizer from the new adjusted box size/shape, since that creates a\n > new objective function valid for the new box size/shape. Repeat as\n > necessary until the box size/shape has reached its new equilibrium. \n > \n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Ptarget* values for any coupled dimensions must be identical.\n*Couple xyz* can be used for a 2d simulation; the *z* dimension is\nsimply ignored.\n\n----------\n\nThe *iso*, *aniso*, and *tri* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Ptarget\" is the same as specifying\nthese 4 keywords:\n\n```\nx Ptarget y Ptarget z Ptarget couple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Ptarget\" is the same as specifying these 4\nkeywords:\n\n```\nx Ptarget y Ptarget z Ptarget couple none\n```\nThe keyword *tri* means *x*, *y*, *z*, *xy*, *xz*, and *yz* dimensions\nare controlled independently using their individual stress components\nas the driving forces, and the specified scalar pressure as the\nexternal normal stress. Using \"tri Ptarget\" is the same as specifying\nthese 7 keywords:\n\n```\nx Ptarget y Ptarget z Ptarget xy 0.0 yz 0.0 xz 0.0 couple none\n```\n----------\n\nThe *vmax* keyword can be used to limit the fractional change in the\nvolume of the simulation box that can occur in one iteration of the\nminimizer. If the pressure is not settling down during the\nminimization this can be because the volume is fluctuating too much.\nThe specified fraction must be greater than 0.0 and should be << 1.0.\nA value of 0.001 means the volume cannot change by more than 1/10 of a\npercent in one iteration when *couple xyz* has been specified. For\nany other case it means no linear dimension of the simulation box can\nchange by more than 1/10 of a percent.\n\n----------\n\nWith this fix, the potential energy used by the minimizer is augmented\nby an additional energy provided by the fix. The overall objective\nfunction then is:\n\\[\n E = U + P_t \\left(V-V_0 \\right) + E_{strain}\\]\nwhere *U* is the system potential energy, \\(P_t\\) is the desired\nhydrostatic pressure, \\(V\\) and \\(V_0\\) are the system and reference\nvolumes, respectively. \\(E_{strain}\\) is the strain energy expression\nproposed by Parrinello and Rahman **Parrinello1981**.\nTaking derivatives of *E* w.r.t. the box dimensions, and setting these\nto zero, we find that at the minimum of the objective function, the\nglobal system stress tensor **P** will satisfy the relation:\n\\[\n \\mathbf P = P_t \\mathbf I + {\\mathbf S_t} \\left( \\mathbf h_0^{-1} \\right)^t \\mathbf h_{0d}\\]\nwhere **I** is the identity matrix, \\(\\mathbf{h_0}\\) is the box\ndimension tensor of the reference cell, and :\\(\\mathbf{h_{0d}}\\)\nis the diagonal part of \\(\\mathbf{h_0}\\). \\(\\mathbf{S_t}\\)\nis a symmetric stress tensor that is chosen by LAMMPS\nso that the upper-triangular components of **P** equal the stress tensor\nspecified by the user.\n\nThis equation only applies when the box dimensions are equal to those\nof the reference dimensions. If this is not the case, then the\nconverged stress tensor will not equal that specified by the user. We\ncan resolve this problem by periodically resetting the reference\ndimensions. The keyword *nreset* controls how often this is done. If\nthis keyword is not used, or is given a value of zero, then the\nreference dimensions are set to those of the initial simulation domain\nand are never changed. A value of *nstep* means that every *nstep*\nminimization steps, the reference dimensions are set to those of the\ncurrent simulation domain. Note that resetting the reference\ndimensions changes the objective function and gradients, which\nsometimes causes the minimization to fail. This can be resolved by\nchanging the value of *nreset*, or simply continuing the minimization\nfrom a restart file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As normally computed, pressure includes a kinetic- energy or\n > temperature-dependent component; see the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command. However, atom velocities are\n > ignored during a minimization, and the applied pressure(s) specified\n > with this command are assumed to only be the virial component of the\n > pressure (the non-kinetic portion). Thus if atoms have a non-zero\n > temperature and you print the usual thermodynamic pressure, it may not\n > appear the system is converging to your specified pressure. The\n > solution for this is to either (a) zero the velocities of all atoms\n > before performing the minimization, or (b) make sure you are\n > monitoring the pressure without its kinetic component. The latter can\n > be done by outputting the pressure from the pressure compute this\n > command creates (see below) or a pressure compute you define yourself. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because pressure is often a very sensitive function of volume,\n > it can be difficult for the minimizer to equilibrate the system the\n > desired pressure with high precision, particularly for solids. Some\n > techniques that seem to help are (a) use the \"min_modify line\n > quadratic\" option when minimizing with box relaxations, (b) minimize\n > several times in succession if need be, to drive the pressure closer\n > to the target pressure, (c) relax the atom positions before relaxing\n > the box, and (d) relax the box to the target hydrostatic pressure\n > before relaxing to a target shear stress state. Also note that some\n > systems (e.g. liquids) will not sustain a non-hydrostatic applied\n > pressure, which means the minimizer will not converge. \n > \n\n----------\n\nThis fix computes a temperature and pressure each timestep. The\ntemperature is used to compute the kinetic contribution to the\npressure, even though this is subsequently ignored by default. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp virial\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group. Also note that the pressure compute does not\ninclude a kinetic component.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its temperature and pressure calculation, as described above. Note\nthat as described above, if you assign a pressure compute to this fix\nthat includes a kinetic energy component it will affect the\nminimization, most likely in an undesirable way.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order in\n > which the keywords are specified is important. Note that a [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own temperature compute as\n > an argument when it is specified. The *temp* keyword will override\n > this (for the pressure compute being used by fix box/relax), but only if the\n > *temp* keyword comes after the *press* keyword. If the *temp* keyword\n > comes before the *press* keyword, then the new pressure compute\n > specified by the *press* keyword will be unaffected by the *temp*\n > setting. \n > \n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the pressure-volume\nenergy, plus the strain energy, if it exists, as described above. The\nenergy values reported at the end of a minimization run under\n\"Minimization stats\" include this energy, and so differ from what\nLAMMPS normally reports as potential energy. This fix does not support\nthe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option, because that would\nresult in double-counting of the fix energy in the minimization\nenergy. Instead, the fix energy can be explicitly added to the\npotential energy using one of these two variants:\n\n```lmps\nvariable emin equal pe+f_1\n\nvariable emin equal pe+f_1/atoms\n```\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html), but\nnot for the purpose of adding a contribution to the energy or forces\nbeing minimized. Instead it alters the simulation box geometry as\ndescribed above.\n\n**(Parrinello1981)** Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). \n ", - "restrictions": "Only dimensions that are available can be adjusted by this fix.\nNon-periodic dimensions are not available. *z*, *xz*, and *yz*, are\nnot available for 2D simulations. *xy*, *xz*, and *yz* are only\navailable if the simulation domain is non-orthogonal. The\n[create_box ](https://docs.lammps.org/create_box.html), [read data ](https://docs.lammps.org/read_data.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands specify whether the\nsimulation box is orthogonal or non-orthogonal (triclinic) and explain\nthe meaning of the xy,xz,yz tilt factors.\n\nThe *scaleyz yes* and *scalexz yes* keyword/value pairs can not be used\nfor 2D simulations. *scaleyz yes*, *scalexz yes*, and *scalexy yes* options\ncan only be used if the second dimension in the keyword is periodic,\nand if the tilt factor is not coupled to the barostat via keywords\n*tri*, *yz*, *xz*, and *xy* .\n", - "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [minimize ](https://docs.lammps.org/minimize.html)\n" + "parameters": "* args = one or more of the following keywords: out, *all*, *system*, *memory*, *communication*, *computes*, *dumps*, *fixes*, *groups*, *regions*, *variables*, *coeffs*, styles, *time*, *accelerator*, fft or configuration\n* out values = *screen*, *log*, append filename, overwrite filename\n* styles values = *all*, *angle*, *atom*, *bond*, *compute*, *command*, *dump*, *dihedral*, *fix*, *improper*, *integrate*, *kspace*, *minimize*, *pair*, region \n", + "examples": "\n```lmps\ninfo system\ninfo groups computes variables\ninfo all out log\ninfo all out append info.txt\ninfo styles all\ninfo styles atom\n```\n", + "html_filename": "info.html", + "short_description": "Print out information about the current internal state of the running\nLAMMPS process", + "description": "Print out information about the current internal state of the running\nLAMMPS process. This can be helpful when debugging or validating\ncomplex input scripts. Several output categories are available and\none or more output category may be requested.\n\nThe *out* flag controls where the output is sent. It can only be sent\nto one target. By default this is the screen, if it is active. The\n*log* argument selects the log file instead. With the *append* and\n*overwrite* option, followed by a filename, the output is written\nto that file, which is either appended to or overwritten, respectively.\n\nThe *all* flag activates printing all categories listed below.\n\nThe *configuration* category prints some information about the\nLAMMPS version as well as architecture and OS it is run on.\n\nThe *memory* category prints some information about the current\nmemory allocation of MPI rank 0 (this the amount of dynamically\nallocated memory reported by LAMMPS classes). Where supported,\nalso some OS specific information about the size of the reserved\nmemory pool size (this is where malloc() and the new operator\nrequest memory from) and the maximum resident set size is reported\n(this is the maximum amount of physical memory occupied so far).\n\nThe *system* category prints a general system overview listing. This\nincludes the unit style, atom style, number of atoms, bonds, angles,\ndihedrals, and impropers and the number of the respective types, box\ndimensions and properties, force computing styles and more.\n\nThe *communication* category prints a variety of information about\ncommunication and parallelization: the MPI library version level,\nthe number of MPI ranks and OpenMP threads, the communication style\nand layout, the processor grid dimensions, ghost atom communication\nmode, cutoff, and related settings.\n\nThe *computes* category prints a list of all currently defined\ncomputes, their IDs and styles and groups they operate on.\n\nThe *dumps* category prints a list of all currently active dumps,\ntheir IDs, styles, filenames, groups, and dump frequencies.\n\nThe *fixes* category prints a list of all currently defined fixes,\ntheir IDs and styles and groups they operate on.\n\nThe *groups* category prints a list of all currently defined groups.\n\nThe *regions* category prints a list of all currently defined regions,\ntheir IDs and styles and whether \"inside\" or \"outside\" atoms are\nselected.\n\nThe *variables* category prints a list of all currently defined\nvariables, their names, styles, definition and last computed value, if\navailable.\n\nThe *coeffs* category prints a list for each defined force style\n(pair, bond, angle, dihedral, improper) indicating which of the\ncorresponding coefficients have been set. This can be very helpful\nto debug error messages like \"All pair coeffs are not set\".\n\nThe *accelerator* category prints out information about compile time\nsettings of included accelerator support for the GPU, KOKKOS, INTEL,\nand OPENMP packages.\n\nThe *fft* category prints out information about the included 3d-FFT\nsupport. This lists the 3d-FFT engine, FFT precision, FFT library\nused by the FFT engine. If the KOKKOS package is included, the settings\nused for the KOKKOS package are displayed as well.\n\nThe *styles* category prints the list of styles available in the\ncurrent LAMMPS binary. It supports one of the following options\nto control which category of styles is printed out:\n\n* all\n* angle\n* atom\n* bond\n* compute\n* command\n* dump\n* dihedral\n* fix\n* improper\n* integrate\n* kspace\n* minimize\n* pair\n* region\n\nThe *time* category prints the accumulated CPU and wall time for the\nprocess that writes output (usually MPI rank 0).\n", + "restrictions": " none\n", + "related": "[print ](https://docs.lammps.org/print.html)\n" }, { "command": [ - "fix pafi" + "compute reduce" ], "syntax": [ - "fix ID group-ID pafi compute-ID Temp Tdamp seed keyword values..." + "compute ID group-ID style arg mode input1 input2 ... keyword args ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -35064,62 +34279,73 @@ export const command_docs = [ "choices": [] }, { - "arg": "pafi", - "type": 1, - "choices": [] + "arg": "reduce/region", + "type": 3, + "choices": [ + "reduce", + "reduce/region" + ] }, { - "arg": "compute-ID", + "arg": "arg", "type": 2, "choices": [] }, { - "arg": "Temp", - "type": 2, - "choices": [] + "arg": "aveabs", + "type": 3, + "choices": [ + "sum", + "min", + "minabs", + "max", + "maxabs", + "ave", + "sumsq", + "avesq", + "sumabs", + "aveabs" + ] }, { - "arg": "Tdamp", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "input2", "type": 2, "choices": [] }, { - "arg": "com", + "arg": "inputs", "type": 3, "choices": [ - "overdamped", - "com" + "replace", + "inputs" ] }, { - "arg": "values...", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* pafi = style name of this fix command\n* compute-ID = ID of a [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) that holds data used by this fix\n* Temp = desired temperature (temperature units)\n* Tdamp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* keyword = overdamped or com \n *        overdamped value = yes or no or 1 or 0 \n         yes or 1 = Brownian (overdamped) integration in hyperplane \n         no or 0 = Langevin integration in hyperplane \n *        com value = yes or no or 1 or 0 \n         yes or 1 = zero linear momentum, fixing center or mass (recommended) \n         no or 0 = do not zero linear momentum, allowing center of mass drift \n", - "examples": "\n```lmps\ncompute pa all property/atom d_nx d_ny d_nz d_dnx d_dny d_dnz d_ddnx d_ddny d_ddnz\nrun 0 post no\nfix hp all pafi pa 500.0 0.01 434 overdamped yes\n```\n", - "html_filename": "fix_pafi.html", - "short_description": "Perform Brownian or Langevin integration whilst constraining the system to lie\nin some hyperplane, which is expected to be the tangent plane to some reference\npathway in a solid state system", - "description": "Perform Brownian or Langevin integration whilst constraining the system to lie\nin some hyperplane, which is expected to be the tangent plane to some reference\npathway in a solid state system. The instantaneous value of a modified force\nprojection is also calculated, whose time integral can be shown to be equal to\nthe true free energy gradient along the minimum free energy path local to the reference pathway.\nA detailed discussion of the projection technique can be found in **Swinburne**.\n\nThis fix can be used with LAMMPS as demonstrated in examples/PACKAGES/pafi,\nthough it is primarily intended to be coupled with the PAFI C++ code, developed\nat [https://github.com/tomswinburne/pafi](https://github.com/tomswinburne/pafi),\nwhich distributes multiple LAMMPS workers in parallel to compute and collate\nhyperplane-constrained averages, allowing the calculation of free energy barriers and pathways.\n\nA [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) must be provided with 9 fields per atom coordinate,\nwhich in order are the x,y,z coordinates of a configuration on the reference path,\nthe x,y,z coordinates of the path tangent (derivative of path position with path coordinate)\nand the x,y,z coordinates of the change in tangent (derivative of path tangent with path coordinate).\n\nA 4-element vector is also calculated by this fix. The 4 components are the\nmodified projected force, its square, the expected projection of the minimum\nfree energy path tangent on the reference path tangent and the minimum image\ndistance between the current configuration and the reference configuration,\nprojected along the path tangent. This latter value should be essentially zero.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When com=yes/1, which is recommended, the provided tangent vector must also\n > have zero center of mass. This can be achieved by subtracting from each\n > coordinate of the path tangent the average x,y,z value. The PAFI C++ code\n > (see above) can generate these paths for use in LAMMPS. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When overdamped=yes/1, the Tdamp parameter should be around 5-10 times smaller\n > than that used in typical Langevin integration.\n > See [fix langevin ](https://docs.lammps.org/fix_langevin.html) for typical values. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this fix.\n\nThis fix produces a global vector each timestep which can be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\n**(Swinburne)** Swinburne and Marinica, Physical Review Letters, 120, 1 (2018) \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = reduce or reduce/region \n *        reduce arg = none \n *        reduce/region arg = region-ID \n         region-ID = ID of region to use for choosing atoms \n* mode = sum or min or minabs or max or maxabs or ave or sumsq or avesq or sumabs or aveabs\n* one or more inputs can be listed\n* input = x or y or z or vx or vy or vz or fx or fy or fz or c_ID or c_ID[N] or f_ID or f_ID[N] or v_name \n *        x, y, z, vx, vy, vz, fx, fy, fz = atom attribute (position, velocity, force component) \n *        c_ID = per-atom or local vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom or local array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom or local vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom or local array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n* zero or more keyword/args pairs may be appended\n* keyword = replace or inputs \n *        replace args = vec1 vec2 \n         vec1 = reduced value from this input vector will be replaced \n         vec2 = replace it with vec1[N] where N is index of max/min value from vec2 \n *        inputs arg = peratom or local \n         peratom = all inputs are per-atom quantities (default) \n         local = all input are local quantities \n", + "examples": "\n```lmps\ncompute 1 all reduce sum c_force\ncompute 1 all reduce/region subbox sum c_force\ncompute 2 all reduce min c_press[2] f_ave v_myKE\ncompute 2 all reduce min c_press[*] f_ave v_myKE inputs peratom\ncompute 3 fluid reduce max c_index[1] c_index[2] c_dist replace 1 3 replace 2 3\ncompute 4 all reduce max c_bond inputs local\n```\n", + "html_filename": "compute_reduce.html", + "short_description": "Define a calculation that \"reduces\" one or more vector inputs into\nscalar values, one per listed input", + "description": "Define a calculation that \"reduces\" one or more vector inputs into\nscalar values, one per listed input. For the compute reduce command,\nthe inputs can be either per-atom or local quantities and must all be\nof the same kind (per-atom or local); see discussion of the optional\n*inputs* keyword below. The compute reduce/region command can only be\nused with per-atom inputs.\n\nAtom attributes are per-atom quantities, [computes ](https://docs.lammps.org/compute.html) and\n[fixes ](https://docs.lammps.org/fix.html) can generate either per-atom or local quantities,\nand [atom-style variables ](https://docs.lammps.org/variable.html) generate per-atom\nquantities. See the [variable ](https://docs.lammps.org/variable.html) command and its\nspecial functions which can perform the same reduction operations as\nthe compute reduce command on global vectors.\n\nThe reduction operation is specified by the *mode* setting. The *sum*\noption adds the values in the vector into a global total. The *min*\nor *max* options find the minimum or maximum value across all vector\nvalues. The *minabs* or *maxabs* options find the minimum or maximum\nvalue across all absolute vector values. The *ave* setting adds the\nvector values into a global total, then divides by the number of\nvalues in the vector. The *sumsq* option sums the square of the\nvalues in the vector into a global total. The *avesq* setting does\nthe same as *sumsq*, then divides the sum of squares by the number of\nvalues. The last two options can be useful for calculating the\nvariance of some quantity (e.g., variance = sumsq \\(-\\) ave\\\n\\(^2\\)). The *sumabs* option sums the absolute values in the\nvector into a global total. The *aveabs* setting does the same as\n*sumabs*, then divides the sum of absolute values by the number of\nvalues.\n\nEach listed input is operated on independently. For per-atom inputs,\nthe group specified with this command means only atoms within the\ngroup contribute to the result. Likewise for per-atom inputs, if the\ncompute reduce/region command is used, the atoms must also currently\nbe within the region. Note that an input that produces per-atom\nquantities may define its own group which affects the quantities it\nreturns. For example, if a compute is used as an input which\ngenerates a per-atom vector, it will generate values of 0.0 for atoms\nthat are not in the group specified for that compute.\n\nEach listed input can be an atom attribute (position, velocity, force\ncomponent) or can be the result of a [compute ](https://docs.lammps.org/compute.html) or\n[fix ](https://docs.lammps.org/fix.html) or the evaluation of an atom-style\n[variable ](https://docs.lammps.org/variable.html).\n\nNote that for values from a compute or fix, the bracketed index \\(I\\) can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from m to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute reduce\ncommands are equivalent, since the\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) command creates a per-atom\narray with six columns:\n\n```lmps\ncompute myPress all stress/atom NULL\ncompute 2 all reduce min c_myPress[*]\ncompute 2 all reduce min c_myPress[1] c_myPress[2] c_myPress[3] &\nc_myPress[4] c_myPress[5] c_myPress[6]\n```\n----------\n\nThe atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*,\n*fy*, and *fz*) are self-explanatory. Note that other atom attributes\ncan be used as inputs to this fix by using the [computeproperty/atom ](https://docs.lammps.org/compute_property_atom.html) command and then specifying an\ninput value from that compute.\n\nIf a value begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script. Valid computes can generate\nper-atom or local quantities. See the individual [compute](https://docs.lammps.org/compute.html) page for details. If no bracketed integer is appended, the\nvector calculated by the compute is used. If a bracketed integer is\nappended, the Ith column of the array calculated by the compute is\nused. Users can also write code for their own compute styles and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nIf a value begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script. Valid fixes can generate\nper-atom or local quantities. See the individual [fix ](https://docs.lammps.org/fix.html)\npage for details. Note that some fixes only produce their values on\ncertain timesteps, which must be compatible with when compute reduce\nreferences the values, else an error results. If no bracketed integer\nis appended, the vector calculated by the fix is used. If a bracketed\ninteger is appended, the Ith column of the array calculated by the fix\nis used. Users can also write code for their own fix style and\n[add them to LAMMPS ](https://docs.lammps.org/Modify.html). See the discussion above for how\n\\(I\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nIf a value begins with \"v\\_\", a variable name must follow which has\nbeen previously defined in the input script. It must be an\n[atom-style variable ](https://docs.lammps.org/variable.html). Atom-style variables can\nreference thermodynamic keywords and various per-atom attributes, or\ninvoke other computes, fixes, or variables when they are evaluated, so\nthis is a very general means of generating per-atom quantities to\nreduce.\n\n----------\n\nIf the *replace* keyword is used, two indices *vec1* and *vec2* are\nspecified, where each index ranges from 1 to the number of input\nvalues. The replace keyword can only be used if the *mode* is *min*\nor *max* . It works as follows. A min/max is computed as usual on\nthe *vec2* input vector. The index \\(N\\) of that value within\n*vec2* is also stored. Then, instead of performing a min/max on the\n*vec1* input vector, the stored index is used to select the \\(N\\)\\\nth element of the *vec1* vector.\n\nThus, for example, if you wish to use this compute to find the bond\nwith maximum stretch, you can do it as follows:\n\n```lmps\ncompute 1 all property/local batom1 batom2\ncompute 2 all bond/local dist\ncompute 3 all reduce max c_1[1] c_1[2] c_2 replace 1 3 replace 2 3\nthermo_style custom step temp c_3[1] c_3[2] c_3[3]\n```\nThe first two input values in the compute reduce command are vectors\nwith the IDs of the 2 atoms in each bond, using the\n[compute property/local ](https://docs.lammps.org/compute_property_local.html) command. The last input\nvalue is bond distance, using the\n[compute bond/local ](https://docs.lammps.org/compute_bond_local.html) command. Instead of taking the\nmax of the two atom ID vectors, which does not yield useful\ninformation in this context, the *replace* keywords will extract the\natom IDs for the two atoms in the bond of maximum stretch. These atom\nIDs and the bond stretch will be printed with thermodynamic output.\n\nThe *inputs* keyword allows selection of whether all the inputs are\nper-atom or local quantities. As noted above, all the inputs must be\nthe same kind (per-atom or local). Per-atom is the default setting.\nIf a compute or fix is specified as an input, it must produce per-atom\nor local data to match this setting. If it produces both, e.g. for\nthe [compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) command, then\nthis keyword selects between them.\n\n----------\n\nIf a single input is specified this compute produces a global scalar\nvalue. If multiple inputs are specified, this compute produces a\nglobal vector of values, the length of which is equal to the number of\ninputs specified.\n\nAs discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the\nvalue(s) produced by this compute are all \"extensive\", meaning their\nvalue scales linearly with the number of atoms involved. If\nnormalized values are desired, this compute can be accessed by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command with\n[thermo_modify norm yes ](https://docs.lammps.org/thermo_modify.html) set as an option. Or it\ncan be accessed by a [variable ](https://docs.lammps.org/variable.html) that divides by the\nappropriate atom count.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar if a single input value is\nspecified or a global vector of length \\(N\\), where \\(N\\) is\nthe number of inputs, and which can be accessed by indices 1 to\n\\(N\\). These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) doc page for an overview of LAMMPS output\noptions.\n\nAll the scalar or vector values calculated by this compute are\n\"intensive\", except when the *sum*, *sumabs*, or *sumsq* modes are used on\nper-atom or local vectors, in which case the calculated values are\n\"extensive\".\n\nThe scalar or vector values will be in whatever [units ](https://docs.lammps.org/units.html)\nthe quantities being reduced are in.\n", + "restrictions": "As noted above, the compute reduce/region command can only be used\nwith per-atom inputs.\n", + "related": "[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), [variable ](https://docs.lammps.org/variable.html)\n" }, { "command": [ - "pair_style gayberne", - "pair_style gayberne/gpu", - "pair_style gayberne/intel", - "pair_style gayberne/omp" + "pair_style momb" ], "syntax": [ - "pair_style gayberne gamma upsilon mu cutoff" + "pair_style momb cutoff s6 d" ], "args": [ [ @@ -35129,51 +34355,41 @@ export const command_docs = [ "choices": [] }, { - "arg": "gayberne", - "type": 3, - "choices": [ - "gayberne", - "gayberne/gpu", - "gayberne/intel", - "gayberne/omp" - ] - }, - { - "arg": "gamma", - "type": 2, + "arg": "momb", + "type": 1, "choices": [] }, { - "arg": "upsilon", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "mu", + "arg": "s6", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "d", "type": 2, "choices": [] } ] ], - "parameters": "* gamma = shift for potential minimum (typically 1)\n* upsilon = exponent for eta orientation-dependent energy function\n* mu = exponent for chi orientation-dependent energy function\n* cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style gayberne 1.0 1.0 1.0 10.0\npair_coeff * * 1.0 1.7 1.7 3.4 3.4 1.0 1.0 1.0\n```\n", - "html_filename": "pair_gayberne.html", - "short_description": "The *gayberne* styles compute a Gay-Berne anisotropic LJ interaction\n:ref:[(Berardi) ](https://docs.lammps.org/Berardi>` between pairs of ellipsoidal particles or anellipsoidal and spherical particle via the formulas\\[\\begin{align*} U ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12} ) = & U_r ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\gamma ) \\cdot \\eta_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\upsilon ) \\cdot \\chi_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\mu ) \\\\ U_r = & 4 \\epsilon ( \\varrho^{12} - \\varrho^6) \\\\ \\varrho = & \\frac{\\sigma}{ h_{12} + \\gamma \\sigma} \\end{align*} \\]where \\(\\mathbf{A}_1\\) and \\(\\mathbf{A}_2\\) are thetransformation matrices from the simulation box frame to the body frameand \\(r_{12}\\) is the center to center vector between the particles.\\(U_r\\) controls the shifted distance dependent interaction based onthe distance of closest approach of the two particles (\\(h_{12}\\))and the user-specified shift parameter \\(\\gamma\\)", - "description": "The *gayberne* styles compute a Gay-Berne anisotropic LJ interaction\n:ref:[(Berardi) ](https://docs.lammps.org/Berardi>` between pairs of ellipsoidal particles or anellipsoidal and spherical particle via the formulas\\[\\begin{align*} U ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12} ) = & U_r ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\gamma ) \\cdot \\eta_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\upsilon ) \\cdot \\chi_{12} ( \\mathbf{A}_1, \\mathbf{A}_2, \\mathbf{r}_{12}, \\mu ) \\\\ U_r = & 4 \\epsilon ( \\varrho^{12} - \\varrho^6) \\\\ \\varrho = & \\frac{\\sigma}{ h_{12} + \\gamma \\sigma} \\end{align*} \\]where \\(\\mathbf{A}_1\\) and \\(\\mathbf{A}_2\\) are thetransformation matrices from the simulation box frame to the body frameand \\(r_{12}\\) is the center to center vector between the particles.\\(U_r\\) controls the shifted distance dependent interaction based onthe distance of closest approach of the two particles (\\(h_{12}\\))and the user-specified shift parameter \\(\\gamma\\). When bothparticles are spherical, the formula reduces to the usual Lennard-Jonesinteraction (see details below for when Gay-Berne treats a particle as\"spherical\").For large uniform molecules it has been shown that the energyparameters are approximately representable in terms of local contactcurvatures **Everaers2**:\\[ \\epsilon_a = \\sigma \\cdot { \\frac{a}{ b \\cdot c } }; \\epsilon_b = \\sigma \\cdot { \\frac{b}{ a \\cdot c } }; \\epsilon_c = \\sigma \\cdot { \\frac{c}{ a \\cdot b } }\\]The variable names utilized as potential parameters are for the mostpart taken from **Everaers2** in order to be consistent withthe [RE-squared pair potential ](https://docs.lammps.org/pair_resquared.html). Details on theupsilon and mu parameters are given`here ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the \\(\\epsilon_{a}\\) = \\(\\epsilon_{b}\\) = \\(\\epsilon_{c}\\) for an atom type, and if the shape\n > of the particle itself is spherical, meaning its 3 shape parameters\n > are all the same, then the particle is treated as an LJ sphere by the\n > Gay-Berne potential. This is significant because if two LJ spheres\n > interact, then the simple Lennard-Jones formula is used to compute\n > their interaction energy/force using the specified epsilon and sigma\n > as the standard LJ parameters. This is much cheaper to compute than\n > the full Gay-Berne formula. To treat the particle as a LJ sphere\n > with sigma = D, you should normally set \\(\\epsilon_{a}\\) = \\(\\epsilon_{b}\\) = \\(\\epsilon_{c}\\) =\n > 1.0, set the pair_coeff \\(\\sigma = D\\), and also set the 3 shape\n > parameters for the particle to D. The one exception is that if the 3\n > shape parameters are set to 0.0, which is a valid way in LAMMPS to\n > specify a point particle, then the Gay-Berne potential will treat\n > that as shape parameters of 1.0 (i.e. a LJ particle with\n > \\(\\sigma = 1\\)), since it requires finite-size particles. In\n > this case you should still set the pair_coeff \\(\\sigma\\) to 1.0\n > as well. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for this pair style can be mixed. The default mix\nvalue is *geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Lennard-Jones portion of the pair\ninteraction, but only for sphere-sphere interactions. There is no\nshifting performed for ellipsoidal interactions due to the anisotropic\ndependence of the interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Everaers2)** Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", - "restrictions": "The *gayberne* style is part of the ASPHERE package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles require that atoms store torque and a quaternion to\nrepresent their orientation, as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html). It also require they store a per-type\n[shape ](https://docs.lammps.org/set.html). The particles cannot store a per-particle\ndiameter.\n\nThis pair style requires that atoms be ellipsoids as defined by the\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) command.\n\nParticles acted on by the potential can be finite-size aspherical or\nspherical particles, or point particles. Spherical particles have all\n3 of their shape parameters equal to each other. Point particles have\nall 3 of their shape parameters equal to 0.0.\n\nThe Gay-Berne potential does not become isotropic as r increases\n**Everaers2**. The distance-of-closest-approach\napproximation used by LAMMPS becomes less accurate when high-aspect\nratio ellipsoids are used.\n\n**(Everaers2)** Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003). \n ", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html),\n[compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html), [pair_style resquared ](https://docs.lammps.org/pair_resquared.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* s6 = global scaling factor of the exchange-correlation functional used (unitless)\n* d = damping scaling factor of Grimme's method (unitless) \n", + "examples": "\n```lmps\npair_style momb 12.0 0.75 20.0\npair_style hybrid/overlay eam/fs lj/charmm/coul/long 10.0 12.0 momb 12.0 0.75 20.0 morse 5.5\n\npair_coeff 1 2 momb 0.0 1.0 1.0 10.2847 2.361\n```\n", + "html_filename": "pair_momb.html", + "short_description": "Style *momb* computes pairwise van der Waals (vdW) and short-range\ninteractions using the Morse potential and **Grimme** method\nimplemented in the Many-Body Metal-Organic (MOMB) force field\ndescribed comprehensively in **Fichthorn** and\n**Zhou5**", + "description": "Style *momb* computes pairwise van der Waals (vdW) and short-range\ninteractions using the Morse potential and **Grimme** method\nimplemented in the Many-Body Metal-Organic (MOMB) force field\ndescribed comprehensively in **Fichthorn** and\n**Zhou5**. Grimme's method is widely used to correct for\ndispersion in density functional theory calculations.\n\\[\\begin{align*} \n E & = D_0 [\\exp^{-2 \\alpha (r-r_0)} - 2\\exp^{-\\alpha (r-r_0)}] - s_6 \\frac{C_6}{r^6} f_{damp}(r,R_r) \\\\\n f_{damp}(r,R_r) & = \\frac{1}{1 + \\exp^{-d(r/R_r - 1)}} \\end{align*} \\]\nFor the *momb* pair style, the following coefficients must be defined\nfor each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand as in the examples above, or in the data file or restart files\nread by the [read_data ](https://docs.lammps.org/read_data.html) as described below:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(C_6\\) (energy\\*distance\\^6 units)\n* \\(R_r\\) (distance units, typically sum of atomic vdW radii)\n\n----------\n\n**(Grimme)** Grimme, J Comput Chem, 27(15), 1787-1799 (2006). \n \n**(Fichthorn)** Fichthorn, Balankura, Qi, CrystEngComm, 18(29), 5410-5417 (2016). \n \n**(Zhou5)** Zhou, Saidi, Fichthorn, J Phys Chem C, 118(6), 3366-3374 (2014). \n ", + "restrictions": "This style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS is built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page on for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style morse ](https://docs.lammps.org/pair_morse.html)\n" }, { "command": [ - "fix_modify AtC extrinsic electron_integration" + "fix_modify AtC temperature_definition" ], "syntax": [ - "fix_modify extrinsic electron_integration []" + "fix_modify temperature_definition " ], "args": [ [ @@ -35188,45 +34404,34 @@ export const command_docs = [ "choices": [] }, { - "arg": "extrinsic", - "type": 1, - "choices": [] - }, - { - "arg": "electron_integration", + "arg": "temperature_definition", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 3, "choices": [ - "explicit", - "implicit", - "steady" + "kinetic", + "total" ] - }, - { - "arg": "[]", - "type": 2, - "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* extrinsic electron_integration = name of the AtC sub-command\n* integration_type = explicit or implicit or steady\n* num_subcycle_steps = number of subcycle steps for the electron time integration (optional) \n", - "examples": "\n```lmps\nfix_modify AtC extrinsic electron_integration implicit\nfix_modify AtC extrinsic electron_integration explicit 100\n```\n", - "html_filename": "atc_electron_integration.html", - "short_description": "Switches between integration schemes for the electron temperature", - "description": "Switches between integration schemes for the electron temperature. The\nnumber of subcycling steps used to integrate the electron temperature for\none LAMMPS timestep can be manually adjusted to capture fast electron\ndynamics.\n", - "restrictions": "For use only with the two_temperature type of the AtC fix (see\n[fix atc ](https://docs.lammps.org/fix_atc.html) command)\n", + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* temperature_definition = name of the AtC sub-command\n* kinetic or total = (undocumented) \n", + "examples": "\n```lmps\nfix_modify AtC temperature_definition kinetic\n```\n", + "html_filename": "atc_temperature_definition.html", + "short_description": "Change the definition for the atomic temperature used to create the\nfinite element temperature", + "description": "Change the definition for the atomic temperature used to create the\nfinite element temperature. The kinetic option is based only on the\nkinetic energy of the atoms while the total option uses the total energy\n(kinetic + potential) of an atom.\n", + "restrictions": "This command is only valid when using thermal coupling. Also, while not\na formal restriction, the user should ensure that associating a\npotential energy with each atom makes physical sense for the total\noption to be meaningful.\n", "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix indent" + "fix pimd/langevin" ], "syntax": [ - "fix ID group-ID indent K gstyle args keyword value ..." + "fix ID group-ID style keyword value ..." ], "args": [ [ @@ -35246,38 +34451,15 @@ export const command_docs = [ "choices": [] }, { - "arg": "indent", - "type": 1, - "choices": [] - }, - { - "arg": "K", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "plane", - "type": 3, - "choices": [ - "sphere", - "cylinder", - "cone", - "plane" - ] - }, - { - "arg": "args", + "arg": "keyword", "type": 2, "choices": [] }, - { - "arg": "units", - "type": 3, - "choices": [ - "side", - "units" - ] - }, { "arg": "value", "type": 2, @@ -35285,25 +34467,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* indent = style name of this fix command\n* K = force constant for indenter surface (force/distance\\^2 units)\n* gstyle = sphere or cylinder or cone or plane \n *        sphere args = x y z R \n         x, y, z = position of center of indenter (distance units) \n         R = sphere radius of indenter (distance units) \n         any of x, y, z, R can be a variable (see below) \n *        cylinder args = dim c1 c2 R \n         dim = x or y or z = axis of cylinder \n         c1, c2 = coords of cylinder axis in other 2 dimensions (distance units) \n         R = cylinder radius of indenter (distance units) \n         any of c1,c2,R can be a variable (see below) \n *        cone args = dim c1 c2 radlo radhi lo hi \n         dim = x or y or z = axis of cone \n         c1, c2 = coords of cone axis in other 2 dimensions (distance units) \n         radlo,radhi = cone radii at lo and hi end (distance units) \n         lo,hi = bounds of cone in dim (distance units) \n         any of c1, c2, radlo, radhi, lo, hi can be a variable (see below) \n *        plane args = dim pos side \n         dim = x or y or z = plane perpendicular to this dimension \n         pos = position of plane in dimension x, y, or z (distance units) \n         pos can be a variable (see below) \n         side = lo or hi \n* zero or more keyword/value pairs may be appended\n* keyword = side or units \n *        side value = in or out \n         in = the indenter acts on particles inside the sphere or cylinder or cone \n         out = the indenter acts on particles outside the sphere or cylinder or cone \n *        units value = lattice or box \n         lattice = the geometry is defined in lattice units \n         box = the geometry is defined in simulation box units \n", - "examples": "\n```lmps\nfix 1 all indent 10.0 sphere 0.0 0.0 15.0 3.0\nfix 1 all indent 10.0 sphere v_x v_y 0.0 v_radius side in\nfix 2 flow indent 10.0 cylinder z 0.0 0.0 10.0 units box\n```\n", - "html_filename": "fix_indent.html", - "short_description": "Insert an indenter within a simulation box", - "description": "Insert an indenter within a simulation box. The indenter repels all\natoms in the group that touch it, so it can be used to push into a\nmaterial or as an obstacle in a flow. Alternatively, it can be used as a\nconstraining wall around a simulation; see the discussion of the\n*side* keyword below.\n\nThe *gstyle* keyword selects the geometry of the indenter and it can\neither have the value of *sphere*, *cylinder*, *cone*, or *plane* .\n\nA spherical indenter (*gstyle* = *sphere*) exerts a force of magnitude\n\\[\n F(r) = - K \\left( r - R \\right)^2\\]\non each atom where *K* is the specified force constant, *r* is the\ndistance from the atom to the center of the indenter, and *R* is the\nradius of the indenter. The force is repulsive and F(r) = 0 for *r* >\n*R* .\n\nA cylindrical indenter (*gstyle* = *cylinder*) follows the same formula\nfor the force as a sphere, except that *r* is defined the distance\nfrom the atom to the center axis of the cylinder. The cylinder extends\ninfinitely along its axis.\n\nA conical indenter (*gstyle* = *cone*) is similar to a cylindrical indenter\nexcept that it has a finite length (between *lo* and *hi*), and that two\ndifferent radii (one at each end, *radlo* and *radhi*) can be defined.\n\nSpherical, cylindrical, and conical indenters account for periodic\nboundaries in two ways. First, the center point of a spherical\nindenter (x,y,z) or axis of a cylindrical/conical indenter (c1,c2) is\nremapped back into the simulation box, if the box is periodic in a\nparticular dimension. This occurs every timestep if the indenter\ngeometry is specified with a variable (see below), e.g. it is moving\nover time. Second, the calculation of distance to the indenter center\nor axis accounts for periodic boundaries. Both of these mean that an\nindenter can effectively move through and straddle one or more\nperiodic boundaries.\n\nA planar indenter (*gstyle* = *plane*) behaves like an axis-aligned\ninfinite-extent wall with the same force expression on atoms in the\nsystem as before, but where *R* is the position of the plane and *r-R*\nis the distance of an from the plane. If the *side* parameter of the\nplane is specified as *lo* then it will indent from the lo end of the\nsimulation box, meaning that atoms with a coordinate less than the\nplane's current position will be pushed towards the hi end of the box\nand atoms with a coordinate higher than the plane's current position\nwill feel no force. Vice versa if *side* is specified as *hi* .\n\nAny of the 4 quantities defining a spherical indenter's geometry can\nbe specified as an equal-style [variable ](https://docs.lammps.org/variable.html), namely *x*,\n*y*, *z*, or *R* . For a cylindrical indenter, any of the 3\nquantities *c1*, *c2*, or *R*, can be a variable. For a conical\nindenter, any of the 6 quantities *c1*, *c2*, *radlo*, *radhi*, *lo*,\nor *hi* can be a variable. For a planar indenter, the single value\n*pos* can be a variable.\n\nIf any of these values is a variable, it should be specified as\nv_name, where name is the variable name. In this case, the variable\nwill be evaluated each timestep, and its value used to define the\nindenter geometry.\n\nNote that equal-style variables can specify formulas with various\nmathematical functions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand keywords for the simulation box parameters and timestep and\nelapsed time. Thus it is easy to specify indenter properties that\nchange as a function of time or span consecutive runs in a continuous\nfashion. For the latter, see the *start* and *stop* keywords of the\n[run ](https://docs.lammps.org/run.html) command and the *elaplong* keyword of\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, if a spherical indenter's x-position is specified as v_x,\nthen this variable definition will keep it's center at a relative\nposition in the simulation box, 1/4 of the way from the left edge to\nthe right edge, even if the box size changes:\n\n```lmps\nvariable x equal \"xlo + 0.25*lx\"\n```\nSimilarly, either of these variable definitions will move the indenter\nfrom an initial position at 2.5 at a constant velocity of 5:\n\n```lmps\nvariable x equal \"2.5 + 5*elaplong*dt\"\nvariable x equal vdisplace(2.5,5)\n```\nIf a spherical indenter's radius is specified as v_r, then these\nvariable definitions will grow the size of the indenter at a specified\nrate.\n\n```lmps\nvariable r0 equal 0.0\nvariable rate equal 1.0\nvariable r equal \"v_r0 + step*dt*v_rate\"\n```\nIf the *side* keyword is specified as *out*, which is the default,\nthen particles outside the indenter are pushed away from its outer\nsurface, as described above. This only applies to spherical,\ncylindrical, and conical indenters. If the *side* keyword is\nspecified as *in*, the action of the indenter is reversed. Particles\ninside the indenter are pushed away from its inner surface. In other\nwords, the indenter is now a containing wall that traps the particles\ninside it. If the radius shrinks over time, it will squeeze the\nparticles.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the indenter geometry. A *box* value selects standard\ndistance units as defined by the [units ](https://docs.lammps.org/units.html) command,\ne.g. Angstroms for units = real or metal. A *lattice* value means the\ndistance units are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\nThe (x,y,z) coords of the indenter position are scaled by the x,y,z\nlattice spacings respectively. The radius of a spherical or\ncylindrical indenter is scaled by the x lattice spacing.\n\nNote that the units keyword only affects indenter geometry parameters\nspecified directly with numbers, not those specified as variables. In\nthe latter case, you should use the *xlat*, *ylat*, *zlat* keywords of\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command if you want to include\nlattice spacings in a variable formula.\n\nThe force constant *K* is not affected by the *units* keyword. It is\nalways in force/distance\\^2 units where force and distance are defined\nby the [units ](https://docs.lammps.org/units.html) command. If you wish K to be scaled by\nthe lattice spacing, you can define K with a variable whose formula\ncontains *xlat*, *ylat*, *zlat* keywords of the [thermo_style](https://docs.lammps.org/thermo_style.html) command, e.g.\n\n```lmps\nvariable k equal 100.0/xlat/xlat\nfix 1 all indent $k sphere ...\n```\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and the\nindenter to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html). The energy of\neach particle interacting with the indenter is K/3 (r - R)\\^3.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\nThis fix computes a global scalar energy and a global 3-vector of\nforces (on the indenter), which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar and vector values\ncalculated by this fix are \"extensive\".\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. Note that if you\ndefine the indenter geometry with a variable using a time-dependent\nformula, LAMMPS uses the iteration count in the minimizer as the\ntimestep. But it is almost certainly a bad idea to have the indenter\nchange its position or size during a minimization. LAMMPS does not\ncheck if you have done this.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/indenter interaction energy to be included in\n > the total potential energy of the system (the quantity being\n > minimized), you must enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", - "restrictions": " none\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = pimd/langevin or pimd/nvt = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keywords for style pimd/nvt \n *        *keywords* = method or fmass or sp or temp or nhc \n *        method value = pimd or nmpimd or cmd \n *        fmass value = scaling factor on mass \n *        sp value = scaling factor on Planck constant \n *        temp value = temperature (temperature units) \n *        nhc value = Nc = number of chains in Nose-Hoover thermostat \n* keywords for style pimd/langevin \n *        *keywords* = method or integrator or ensemble or fmmode or fmass or scale or temp or thermostat or tau or iso or aniso or barostat or taup or fixcom or lj \n *        method value = nmpimd (default) or pimd \n *        integrator value = obabo or baoab \n *        fmmode value = physical or normal \n *        fmass value = scaling factor on mass \n *        temp value = temperature (temperature unit) \n         temperature = target temperature of the thermostat \n *        thermostat values = style seed \n         style value = PILE_L \n         seed = random number generator seed \n *        tau value = thermostat damping parameter (time unit) \n *        scale value = scaling factor of the damping times of non-centroid modes of PILE_L thermostat \n *        iso or aniso values = pressure (pressure unit) \n         pressure = scalar external pressure of the barostat \n *        barostat value = BZP or MTTK \n *        taup value = barostat damping parameter (time unit) \n *        fixcom value = yes or no \n *        lj values = epsilon sigma mass planck mvv2e \n         epsilon = energy scale for reduced units (energy units) \n         sigma = length scale for reduced units (length units) \n         mass = mass scale for reduced units (mass units) \n         planck = Planck's constant for other unit style \n         mvv2e = mass * velocity^2 to energy conversion factor for other unit style \n", + "examples": "\n```lmps\nfix 1 all pimd/nvt method nmpimd fmass 1.0 sp 2.0 temp 300.0 nhc 4\nfix 1 all pimd/langevin ensemble npt integrator obabo temp 113.15 thermostat PILE_L 1234 tau 1.0 iso 1.0 barostat BZP taup 1.0\n```\n", + "html_filename": "fix_pimd.html", + "short_description": "\nFix pimd was renamed to fix *pimd/nvt* and fix *pimd/langevin* was added", + "description": "\nFix pimd was renamed to fix *pimd/nvt* and fix *pimd/langevin* was added.\n\nThese fix commands perform quantum molecular dynamics simulations based\non the Feynman path-integral to include effects of tunneling and\nzero-point motion. In this formalism, the isomorphism of a quantum\npartition function for the original system to a classical partition\nfunction for a ring-polymer system is exploited, to efficiently sample\nconfigurations from the canonical ensemble **Feynman**.\n\nThe classical partition function and its components are given\nby the following equations:\n\\[\\begin{align*} \n Z = & \\int d{\\bf q} d{\\bf p} \\cdot \\textrm{exp} [ -\\beta H_{eff} ] \\\\\n H_{eff} = & \\bigg(\\sum_{i=1}^P \\frac{p_i^2}{2M_i}\\bigg) + V_{eff} \\\\\n V_{eff} = & \\sum_{i=1}^P \\bigg[ \\frac{mP}{2\\beta^2 \\hbar^2} (q_i - q_{i+1})^2 + \\frac{1}{P} V(q_i)\\bigg] \\end{align*} \\]\n\\(M_i\\) is the fictitious mass of the \\(i\\)-th mode, and m is the actual mass of the atoms.\n\nThe interested user is referred to any of the numerous references on\nthis methodology, but briefly, each quantum particle in a path integral\nsimulation is represented by a ring-polymer of P quasi-beads, labeled\nfrom 1 to P. During the simulation, each quasi-bead interacts with\nbeads on the other ring-polymers with the same imaginary time index (the\nsecond term in the effective potential above). The quasi-beads also\ninteract with the two neighboring quasi-beads through the spring\npotential in imaginary-time space (first term in effective potential).\nTo sample the canonical ensemble, any thermostat can be applied.\n\nFix *pimd/nvt* applies a Nose-Hoover massive chain thermostat\n**pimd-Tuckerman**. With the massive chain\nalgorithm, a chain of NH thermostats is coupled to each degree of\nfreedom for each quasi-bead. The keyword *temp* sets the target\ntemperature for the system and the keyword *nhc* sets the number *Nc* of\nthermostats in each chain. For example, for a simulation of N particles\nwith P beads in each ring-polymer, the total number of NH thermostats\nwould be 3 x N x P x Nc.\n\nFix *pimd/langevin* implements a Langevin thermostat in the normal mode\nrepresentation, and also provides a barostat to sample the NPH/NPT ensembles.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Both these *fix* styles implement a complete velocity-verlet integrator\n > combined with a thermostat, so no other time integration fix should be used. \n > \n\nThe *method* keyword determines what style of PIMD is performed. A\nvalue of *pimd* is standard PIMD. A value of *nmpimd* is for\nnormal-mode PIMD. A value of *cmd* is for centroid molecular dynamics\n(CMD). The difference between the styles is as follows.\n\n In standard PIMD, the value used for a bead's fictitious mass is\n arbitrary. A common choice is to use \\(M_i = m/P\\), which results in the\n mass of the entire ring-polymer being equal to the real quantum\n particle. But it can be difficult to efficiently integrate the\n equations of motion for the stiff harmonic interactions in the ring\n polymers.\n\n A useful way to resolve this issue is to integrate the equations of\n motion in a normal mode representation, using Normal Mode\n Path-Integral Molecular Dynamics (NMPIMD) **Cao1**. In\n NMPIMD, the NH chains are attached to each normal mode of the\n ring-polymer and the fictitious mass of each mode is chosen as Mk =\n the eigenvalue of the Kth normal mode for k > 0. The k = 0 mode,\n referred to as the zero-frequency mode or centroid, corresponds to\n overall translation of the ring-polymer and is assigned the mass of\n the real particle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Motion of the centroid can be effectively uncoupled from the other\n > normal modes by scaling the fictitious masses to achieve a partial\n > adiabatic separation. This is called a Centroid Molecular Dynamics\n > (CMD) approximation **Cao2**. The time-evolution (and\n > resulting dynamics) of the quantum particles can be used to obtain\n > centroid time correlation functions, which can be further used to\n > obtain the true quantum correlation function for the original system.\n > The CMD method also uses normal modes to evolve the system, except\n > only the k > 0 modes are thermostatted, not the centroid degrees of\n > freedom. \n > \n\n\n **New in version 21Nov2023** \n\n Mode *pimd* added to fix pimd/langevin.\nFix pimd/langevin supports the *method* values *nmpimd* and *pimd*. The default value is *nmpimd*.\nIf *method* is *nmpimd*, the normal mode representation is used to integrate the equations of motion.\nThe exact solution of harmonic oscillator is used to propagate the free ring polymer part of the Hamiltonian.\nIf *method* is *pimd*, the Cartesian representation is used to integrate the equations of motion.\nThe harmonic force is added to the total force of the system, and the numerical integrator is used to propagate the Hamiltonian.\n\nThe keyword *integrator* specifies the Trotter splitting method used by *fix pimd/langevin*.\nSee :ref:`(Liu) ` for a discussion on the OBABO and BAOAB splitting schemes. Typically\neither of the two should work fine.\n\nThe keyword *fmass* sets a further scaling factor for the fictitious\nmasses of beads, which can be used for the Partial Adiabatic CMD\n**Hone**, or to be set as P, which results in the fictitious\nmasses to be equal to the real particle masses.\n\nThe keyword *fmmode* of *fix pimd/langevin* determines the mode of fictitious\nmass preconditioning. There are two options: *physical* and *normal*. If *fmmode* is\n*physical*, then the physical mass of the particles are used (and then multiplied by\n*fmass*). If *fmmode* is *normal*, then the physical mass is first multiplied by the\neigenvalue of each normal mode, and then multiplied by *fmass*. More precisely, the\nfictitious mass of *fix pimd/langevin* is determined by two factors: *fmmode* and *fmass*.\nIf *fmmode* is *physical*, then the fictitious mass is\n\\[\n M_i = \\mathrm{fmass} \\times m\\]\nIf *fmmode* is *normal*, then the fictitious mass is\n\\[\n M_i = \\mathrm{fmass} \\times \\lambda_i \\times m\\]\nwhere \\(\\lambda_i\\) is the eigenvalue of the \\(i\\)-th normal mode.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Fictitious mass is only used in the momentum of the equation of motion\n > (\\(\\mathbf{p}_i=M_i\\mathbf{v}_i\\)), and not used in the spring elastic energy\n > (\\(\\sum_{i=1}^P \\frac{1}{2}m\\omega_P^2(q_i - q_{i+1})^2\\), \\(m\\) is always the\n > actual mass of the particles). \n > \n\nThe keyword *sp* is a scaling factor on Planck's constant, which can\nbe useful for debugging or other purposes. The default value of 1.0\nis appropriate for most situations.\n\nThe keyword *ensemble* for fix style *pimd/langevin* determines which ensemble is it\ngoing to sample. The value can be *nve* (microcanonical), *nvt* (canonical), *nph* (isoenthalpic),\nand *npt* (isothermal-isobaric).\n\nThe keyword *temp* specifies temperature parameter for fix styles *pimd/nvt* and *pimd/langevin*. It should read\na positive floating-point number.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pimd simulations, a temperature values should be specified even for nve ensemble. Temperature will make a difference\n > for nve pimd, since the spring elastic frequency between the beads will be affected by the temperature. \n > \n\nThe keyword *thermostat* reads *style* and *seed* of thermostat for fix style *pimd/langevin*. *style* can only\nbe *PILE_L* (path integral Langevin equation local thermostat, as described in :ref:`Ceriotti `), and *seed* should a positive integer number, which serves as the seed of the pseudo random number generator.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix style *pimd/langevin* uses the stochastic PILE_L thermostat to control temperature. This thermostat works on the normal modes\n > of the ring polymer. The *tau* parameter controls the centroid mode, and the *scale* parameter controls the non-centroid modes. \n > \n\nThe keyword *tau* specifies the thermostat damping time parameter for fix style *pimd/langevin*. It is in time unit. It only works on the centroid mode.\n\nThe keyword *scale* specifies a scaling parameter for the damping times of the non-centroid modes for fix style *pimd/langevin*. The default\ndamping time of the non-centroid mode \\(i\\) is \\(\\frac{P}{\\beta\\hbar}\\sqrt{\\lambda_i\\times\\mathrm{fmass}}\\) (*fmmode* is *physical*) or \\(\\frac{P}{\\beta\\hbar}\\sqrt{\\mathrm{fmass}}\\) (*fmmode* is *normal*). The damping times of all non-centroid modes are the default values divided by *scale*.\n\nThe barostat parameters for fix style *pimd/langevin* with *npt* or *nph* ensemble is specified using one of *iso* and *aniso*\nkeywords. A *pressure* value should be given with pressure unit. The keyword *iso* means couple all 3 diagonal components together when pressure is computed (hydrostatic pressure), and dilate/contract the dimensions together. The keyword *aniso* means x, y, and z dimensions are controlled independently using the Pxx, Pyy, and Pzz components of the stress tensor as the driving forces, and the specified scalar external pressure.\n\nThe keyword *barostat* reads *style* of barostat for fix style *pimd/langevin*. *style* can\nbe *BZP* (Bussi-Zykova-Parrinello, as described in **Bussi**) or *MTTK* (Martyna-Tuckerman-Tobias-Klein, as described in **Martyna3** and **Martyna4**).\n\nThe keyword *taup* specifies the barostat damping time parameter for fix style *pimd/langevin*. It is in time unit.\n\nThe keyword *fixcom* specifies whether the center-of-mass of the extended ring-polymer system is fixed during the pimd simulation.\nOnce *fixcom* is set to be *yes*, the center-of-mass velocity will be distracted from the centroid-mode velocities in each step.\n\nThe keyword *lj* should be used if [lj units ](https://docs.lammps.org/units.html) is used for *fix pimd/langevin*. Typically one may want to use\nreduced units to run the simulation, and then convert the results into some physical units (for example, [metal units ](https://docs.lammps.org/units.html)). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, set all these five value to 1.\n\nThe PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme\nas described in **Calhoun**. In LAMMPS this is done by using\n[multi-replica feature ](https://docs.lammps.org/Howto_replica.html) in LAMMPS, where each\nquasi-particle system is stored and simulated on a separate partition\nof processors. The following diagram illustrates this approach. The\noriginal system with 2 ring polymers is shown in red. Since each ring\nhas 4 quasi-beads (imaginary time slices), there are 4 replicas of the\nsystem, each running on one of the 4 partitions of processors. Each\nreplica (shown in green) owns one quasi-bead in each ring.\n\n ![Image](JPG/pimd.jpg) \n\nTo run a PIMD simulation with M quasi-beads in each ring polymer using\nN MPI tasks for each partition's domain-decomposition, you would use P\n= MxN processors (cores) and run the simulation as follows:\n\n```bash\nmpirun -np P lmp_mpi -partition MxN -in script\n```\nNote that in the LAMMPS input script for a multi-partition simulation,\nit is often very useful to define a [uloop-style variable ](https://docs.lammps.org/variable.html) such as\n\n```lmps\nvariable ibead uloop M pad\n```\nwhere M is the number of quasi-beads (partitions) used in the\ncalculation. The uloop variable can then be used to manage I/O\nrelated tasks for each of the partitions, e.g.\n\n```lmps\ndump dcd all dcd 10 system_${ibead}.dcd\ndump 1 all custom 100 ${ibead}.xyz id type x y z vx vy vz ix iy iz fx fy fz\nrestart 1000 system_${ibead}.restart1 system_${ibead}.restart2\nread_restart system_${ibead}.restart2\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Fix *pimd/langevin* dumps the Cartesian coordinates, but dumps the velocities and\n > forces in the normal mode representation. If the Cartesian velocities and forces are\n > needed, it is easy to perform the transformation when doing post-processing.\n >\n > It is recommended to dump the image flags (*ix iy iz*) for fix *pimd/langevin*. It\n > will be useful if you want to calculate some estimators during post-processing. \n > \n\nMajor differences of *fix pimd/nvt* and *fix pimd/langevin* are:\n\n #. *Fix pimd/nvt* includes Cartesian pimd, normal mode pimd, and centroid md. *Fix pimd/langevin* only intends to support normal mode pimd, as it is commonly enough for thermodynamic sampling.\n #. *Fix pimd/nvt* uses Nose-Hoover chain thermostat. *Fix pimd/langevin* uses Langevin thermostat.\n #. *Fix pimd/langevin* provides barostat, so the npt ensemble can be sampled. *Fix pimd/nvt* only support nvt ensemble.\n #. *Fix pimd/langevin* provides several quantum estimators in output.\n #. *Fix pimd/langevin* allows multiple processes for each bead. For *fix pimd/nvt*, there is a large chance that multi-process tasks for each bead may fail.\n #. The dump of *fix pimd/nvt* are all Cartesian. *Fix pimd/langevin* dumps normal-mode velocities and forces, and Cartesian coordinates.\n\nInitially, the inter-replica communication and normal mode transformation parts of *fix pimd/langevin* are written based on\nthose of *fix pimd/nvt*, but are significantly revised.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nFix *pimd/nvt* writes the state of the Nose/Hoover thermostat over all\nquasi-beads to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nFix *pimd/langevin* writes the state of the barostat overall beads to\n[binary restart files ](https://docs.lammps.org/restart.html). Since it uses a stochastic thermostat,\nthe state of the thermostat is not written. However, the state of the system\ncan be restored by reading the restart file, except that it will re-initialize\nthe random number generator.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to fix pimd/nvt.\n\nFix *pimd/nvt* computes a global 3-vector, which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The three quantities in\nthe global vector are:\n\n #. the total spring energy of the quasi-beads,\n #. the current temperature of the classical system of ring polymers,\n #. the current value of the scalar virial estimator for the kinetic\n energy of the quantum system **Herman**.\n\nThe vector values calculated by fix *pimd/nvt* are \"extensive\", except for the\ntemperature, which is \"intensive\".\n\nFix *pimd/langevin* computes a global vector of quantities, which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). Note that\nit outputs multiple log files, and different log files contain information\nabout different beads or modes (see detailed explanations below). If *ensemble*\nis *nve* or *nvt*, the vector has 10 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n\nThe first 3 are different for different log files, and the others are the same for different log files.\n\nIf *ensemble* is *nph* or *npt*, the vector stores internal variables of the barostat. If *iso* is used,\nthe vector has 15 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n #. barostat velocity\n #. barostat kinetic energy\n #. barostat potential energy\n #. barostat cell Jacobian\n #. enthalpy of the extended system (sum of 4, 12, 13, and 14; conserved if *ensemble* is *nph*)\n\nIf *aniso* or *x* or *y* or *z* is used for the barostat, the vector has 17 values:\n\n #. kinetic energy of the normal mode\n #. spring elastic energy of the normal mode\n #. potential energy of the bead\n #. total energy of all beads (conserved if *ensemble* is *nve*)\n #. primitive kinetic energy estimator\n #. virial energy estimator\n #. centroid-virial energy estimator\n #. primitive pressure estimator\n #. thermodynamic pressure estimator\n #. centroid-virial pressure estimator\n #. x component of barostat velocity\n #. y component of barostat velocity\n #. z component of barostat velocity\n #. barostat kinetic energy\n #. barostat potential energy\n #. barostat cell Jacobian\n #. enthalpy of the extended system (sum of 4, 14, 15, and 16; conserved if *ensemble* is *nph*)\n\nNo parameter of fix *pimd/nvt* or *pimd/langevin* can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. Fix *pimd/nvt* or *pimd/langevin* is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Feynman)** R. Feynman and A. Hibbs, Chapter 7, Quantum Mechanics and\nPath Integrals, McGraw-Hill, New York (1965). \n \n**(pimd-Tuckerman)** M. Tuckerman and B. Berne, J Chem Phys, 99, 2796 (1993). \n \n**(Cao1)** J. Cao and B. Berne, J Chem Phys, 99, 2902 (1993). \n \n**(Cao2)** J. Cao and G. Voth, J Chem Phys, 100, 5093 (1994). \n \n**(Hone)** T. Hone, P. Rossky, G. Voth, J Chem Phys, 124,\n154103 (2006). \n \n**(Bussi)** G. Bussi, T. Zykova-Timan, M. Parrinello, J Chem Phys, 130, 074101 (2009). \n \n**(Martyna3)** G. Martyna, D. Tobias, M. Klein, J. Chem. Phys. 101, 4177 (1994). \n \n**(Martyna4)** G. Martyna, A. Hughes, M. Tuckerman, J. Chem. Phys. 110, 3275 (1999). \n \n**(Calhoun)** A. Calhoun, M. Pavese, G. Voth, Chem Phys Letters, 262,\n415 (1996). \n \n**(Herman)** M. F. Herman, E. J. Bruskin, B. J. Berne, J Chem Phys, 76, 5150 (1982). \n ", + "restrictions": "These fixes are part of the REPLICA package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix *pimd/nvt* cannot be used with [lj units ](https://docs.lammps.org/units.html).\nFix *pimd/langevin* can be used with [lj units ](https://docs.lammps.org/units.html). See the above part for how to use it.\n\nA PIMD simulation can be initialized with a single data file read via\nthe [read_data ](https://docs.lammps.org/read_data.html) command. However, this means all\nquasi-beads in a ring polymer will have identical positions and\nvelocities, resulting in identical trajectories for all quasi-beads. To\navoid this, users can simply initialize velocities with different random\nnumber seeds assigned to each partition, as defined by the uloop\nvariable, e.g.\n\n```lmps\nvelocity all create 300.0 1234${ibead} rot yes dist gaussian\n```\n", + "related": "none" }, { "command": [ - "fix tfmc" + "compute smd/ulsph/effm" ], "syntax": [ - "fix ID group-ID tfmc Delta Temp seed keyword value" + "compute ID group-ID smd/ulsph/effm" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -35318,222 +34500,213 @@ export const command_docs = [ "choices": [] }, { - "arg": "tfmc", + "arg": "smd/ulsph/effm", "type": 1, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/ulsph/effm = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/ulsph/effm\n```\n", + "html_filename": "compute_smd_ulsph_effm.html", + "short_description": "Define a computation that outputs the effective shear modulus for\nparticles interacting via the updated Lagrangian SPH pair style", + "description": "Define a computation that outputs the effective shear modulus for\nparticles interacting via the updated Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector contains the current effective per atom shear\nmodulus as computed by the [pair smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html) pair\nstyle.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact with the updated Lagrangian\nSPH pair style.\n", + "related": "[pair smd/ulsph ](https://docs.lammps.org/pair_smd_ulsph.html)\n" +}, +{ + "command": [ + "pair_style brownian", + "pair_style brownian/omp", + "pair_style brownian/poly", + "pair_style brownian/poly/omp" + ], + "syntax": [ + "pair_style style mu flaglog flagfld cutinner cutoff t_target seed flagHI flagVF" + ], + "args": [ + [ { - "arg": "Delta", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "Temp", + "arg": "brownian/poly/omp", + "type": 3, + "choices": [ + "brownian", + "brownian/poly", + "brownian/omp", + "brownian/poly/omp" + ] + }, + { + "arg": "mu", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "flaglog", "type": 2, "choices": [] }, { - "arg": "rot", - "type": 3, - "choices": [ - "com", - "rot" - ] + "arg": "flagfld", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "cutinner", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* tfmc = style name of this fix command\n* Delta = maximal displacement length (distance units)\n* Temp = imposed temperature of the system\n* seed = random number seed (positive integer)\n* zero or more keyword/arg pairs may be appended\n* keyword = com or rot \n *        com args = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension \n *        rot args = none \n", - "examples": "\n```lmps\nfix 1 all tfmc 0.1 1000.0 159345\nfix 1 all tfmc 0.05 600.0 658943 com 1 1 0\nfix 1 all tfmc 0.1 750.0 387068 com 1 1 1 rot\n```\n", - "html_filename": "fix_tfmc.html", - "short_description": "Perform uniform-acceptance force-bias Monte Carlo (fbMC) simulations,\nusing the time-stamped force-bias Monte Carlo (tfMC) algorithm\ndescribed in **Mees** and **Bal**", - "description": "Perform uniform-acceptance force-bias Monte Carlo (fbMC) simulations,\nusing the time-stamped force-bias Monte Carlo (tfMC) algorithm\ndescribed in **Mees** and **Bal**.\n\nOne successful use case of force-bias Monte Carlo methods is that they\ncan be used to extend the time scale of atomistic simulations, in\nparticular when long time scale relaxation effects must be considered;\nsome interesting examples are given in the review by **Neyts**.\nAn example of a typical use case would be the modelling of chemical\nvapor deposition (CVD) processes on a surface, in which impacts by\ngas-phase species can be performed using MD, but subsequent relaxation\nof the surface is too slow to be done using MD only. Using tfMC can\nallow for a much faster relaxation of the surface, so that higher\nfluxes can be used, effectively extending the time scale of the\nsimulation. (Such an alternating simulation approach could be set up\nusing a [loop ](https://docs.lammps.org/jump.html).)\n\nThe initial version of tfMC algorithm in **Mees** contained an\nestimation of the effective time scale of such a simulation, but it\nwas later shown that the speed-up one can gain from a tfMC simulation\nis system- and process-dependent, ranging from none to several orders\nof magnitude. In general, solid-state processes such as\n(re)crystallization or growth can be accelerated by up to two or three\norders of magnitude, whereas diffusion in the liquid phase is not\naccelerated at all. The observed pseudodynamics when using the tfMC\nmethod is not the actual dynamics one would obtain using MD, but the\nrelative importance of processes can match the actual relative\ndynamics of the system quite well, provided *Delta* is chosen with\ncare. Thus, the system's equilibrium is reached faster than in MD,\nalong a path that is generally roughly similar to a typical MD\nsimulation (but not necessarily so). See **Bal** for details.\n\nEach step, all atoms in the selected group are displaced using the\nstochastic tfMC algorithm, which is designed to sample the canonical\n(NVT) ensemble at the temperature *Temp* . Although tfMC is a Monte\nCarlo algorithm and thus strictly speaking does not perform time\nintegration, it is similar in the sense that it uses the forces on all\natoms in order to update their positions. Therefore, it is implemented\nas a time integration fix, and no other fixes of this type (such as\n[fix nve ](https://docs.lammps.org/fix_nve.html)) should be used at the same time. Because\nvelocities do not play a role in this kind of Monte Carlo simulations,\ninstantaneous temperatures as calculated by [temperature computes ](https://docs.lammps.org/compute_temp.html) or [thermodynamic output ](https://docs.lammps.org/thermo_style.html) have no meaning: the only relevant\ntemperature is the sampling temperature *Temp* . Similarly, performing\ntfMC simulations does not require setting a [timestep ](https://docs.lammps.org/timestep.html)\nand the [simulated time ](https://docs.lammps.org/thermo_style.html) as calculated by LAMMPS is\nmeaningless.\n\nThe critical parameter determining the success of a tfMC simulation is\n*Delta*, the maximal displacement length of the lightest element in\nthe system: the larger it is, the longer the effective time scale of\nthe simulation will be (there is an approximately quadratic\ndependence). However, *Delta* must also be chosen sufficiently small\nin order to comply with detailed balance; in general values between 5\nand 10 % of the nearest neighbor distance are found to be a good\nchoice. For a more extensive discussion with specific examples, please\nrefer to **Bal**, which also describes how the code calculates\nelement-specific maximal displacements from *Delta*, based on the\nfourth root of their mass.\n\nBecause of the uncorrelated movements of the atoms, the center-of-mass\nof the fix group will not necessarily be stationary, just like its\norientation. When the *com* keyword is used, all atom positions will\nbe shifted (after every tfMC iteration) in order to fix the position\nof the center-of-mass along the included directions, by setting the\ncorresponding flag to 1. The *rot* keyword does the same for the\nrotational component of the tfMC displacements after every iteration.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >the *com* and *rot* keywords should not be used if an external\n > force is acting on the specified fix group, along the included\n > directions. This can be either a true external force (e.g. through\n > [fix wall ](https://docs.lammps.org/fix_wall.html)) or forces due to the interaction with atoms\n > not included in the fix group. This is because in such cases,\n > translations or rotations of the fix group could be induced by these\n > external forces, and removing them will lead to a violation of\n > detailed balance. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Mees)** M. J. Mees, G. Pourtois, E. C. Neyts, B. J. Thijsse, and\nA. Stesmans, Phys. Rev. B 85, 134301 (2012). \n \n**(Bal)** K. M Bal and E. C. Neyts, J. Chem. Phys. 141, 204104 (2014). \n \n**(Neyts)** E. C. Neyts and A. Bogaerts, Theor. Chem. Acc. 132, 1320\n(2013). \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThis fix is not compatible with [fix shake ](https://docs.lammps.org/fix_shake.html).\n", - "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html), [fix nvt ](https://docs.lammps.org/fix_nh.html)\n" -}, -{ - "command": [ - "pair_style awpmd/cut" - ], - "syntax": [ - "pair_style awpmd/cut Rc keyword value ..." - ], - "args": [ - [ + }, { - "arg": "pair_style", - "type": 1, + "arg": "cutoff", + "type": 2, "choices": [] }, { - "arg": "awpmd/cut", - "type": 1, + "arg": "t_target", + "type": 2, "choices": [] }, { - "arg": "Rc", + "arg": "seed", "type": 2, "choices": [] }, { - "arg": "flex_press", - "type": 3, - "choices": [ - "hartree", - "dproduct", - "uhf", - "free", - "pbc", - "fix", - "harm", - "ermscale", - "flex_press" - ] + "arg": "flagHI", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "flagVF", "type": 2, "choices": [] } ] ], - "parameters": "* Rc = global cutoff, -1 means cutoff of half the shortest box length\n* zero or more keyword/value pairs may be appended\n* keyword = hartree or dproduct or uhf or free or pbc or fix or harm or ermscale or flex_press \n *        hartree value = none \n *        dproduct value = none \n *        uhf value = none \n *        free value = none \n *        pbc value = Plen \n         Plen = periodic width of electron = -1 or positive value (distance units) \n *        fix value = Flen \n         Flen = fixed width of electron = -1 or positive value (distance units) \n *        harm value = width \n         width = harmonic width constraint \n *        ermscale value = factor \n         factor = scaling between electron mass and width variable mass \n *        flex_press value = none \n", - "examples": "\n```lmps\npair_style awpmd/cut -1\npair_style awpmd/cut 40.0 uhf free\npair_coeff * *\npair_coeff 2 2 20.0\n```\n", - "html_filename": "pair_awpmd.html", - "short_description": "This pair style contains an implementation of the Antisymmetrized Wave\nPacket Molecular Dynamics (AWPMD) method", - "description": "This pair style contains an implementation of the Antisymmetrized Wave\nPacket Molecular Dynamics (AWPMD) method. Need citation here. Need\nbasic formulas here. Could be links to other documents.\n\nRc is the cutoff.\n\nThe pair_style command allows for several optional keywords\nto be specified.\n\nThe *hartree*, *dproduct*, and *uhf* keywords specify the form of the\ninitial trial wave function for the system. If the *hartree* keyword\nis used, then a Hartree multielectron trial wave function is used. If\nthe *dproduct* keyword is used, then a trial function which is a\nproduct of two determinants for each spin type is used. If the *uhf*\nkeyword is used, then an unrestricted Hartree-Fock trial wave function\nis used.\n\nThe *free*, *pbc*, and *fix* keywords specify a width constraint on\nthe electron wave packets. If the *free* keyword is specified, then there is no\nconstraint. If the *pbc* keyword is used and *Plen* is specified as\n-1, then the maximum width is half the shortest box length. If *Plen*\nis a positive value, then the value is the maximum width. If the\n*fix* keyword is used and *Flen* is specified as -1, then electrons\nhave a constant width that is read from the data file. If *Flen* is a\npositive value, then the constant width for all electrons is set to\n*Flen* .\n\nThe *harm* keyword allow oscillations in the width of the\nelectron wave packets. More details are needed.\n\nThe *ermscale* keyword specifies a unitless scaling factor\nbetween the electron masses and the width variable mass. More\ndetails needed.\n\nIf the *flex_press* keyword is used, then a contribution from the\nelectrons is added to the total virial and pressure of the system.\n\nThis potential is designed to be used with [atom_style wavepacket ](https://docs.lammps.org/atom_style.html) definitions, in order to handle the\ndescription of systems with interacting nuclei and explicit electrons.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nFor *awpmd/cut*, the cutoff coefficient is optional. If it is not\nused (as in some of the examples above), the default global value\nspecified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) mix, shift, table, and tail options\nare not relevant for this pair style.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": " none\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* style = brownian or brownian/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 log terms in the lubrication approximation on/off\n* flagfld = 0/1 to include/exclude Fast Lubrication Dynamics effects\n* cutinner = inner cutoff distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* t_target = target temp of the system (temperature units)\n* seed = seed for the random number generator (positive integer)\n* flagHI (optional) = 0/1 to include/exclude 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to include/exclude volume fraction corrections in the long-range isotropic terms \n", + "examples": "\n```lmps\npair_style brownian 1.5 1 1 2.01 2.5 2.0 5878567 # (assuming radius = 1)\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n```\n", + "html_filename": "pair_brownian.html", + "short_description": "Styles *brownian* and *brownian/poly* compute Brownian forces and\ntorques on finite-size spherical particles", + "description": "Styles *brownian* and *brownian/poly* compute Brownian forces and\ntorques on finite-size spherical particles. The former requires\nmonodisperse spherical particles; the latter allows for polydisperse\nspherical particles.\n\nThese pair styles are designed to be used with either the [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html) or [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html) commands to provide thermostatting\nwhen dissipative lubrication forces are acting. Thus the parameters\n*mu*, *flaglog*, *flagfld*, *cutinner*, and *cutoff* should be\nspecified consistent with the settings in the lubrication pair styles.\nFor details, refer to either of the lubrication pair styles.\n\nThe *t_target* setting is used to specify the target temperature of\nthe system. The random number *seed* is used to generate random\nnumbers for the thermostatting procedure.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for this\npair style can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", + "restrictions": "These styles are part of the COLLOID package. They are only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly spherical monodisperse particles are allowed for pair_style\nbrownian.\n\nOnly spherical particles are allowed for pair_style brownian/poly.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html), [pair_style lubricateU ](https://docs.lammps.org/pair_lubricateU.html)\n" }, { "command": [ - "fix rx", - "fix rx/kk" + "fix_modify AtC fix" ], "syntax": [ - "fix ID group-ID rx file localTemp matrix solver minSteps ..." + "fix_modify fix " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "rx", - "type": 3, - "choices": [ - "rx", - "rx/kk" - ] - }, - { - "arg": "file", + "arg": "", "type": 2, "choices": [] }, { - "arg": "localTemp", - "type": 2, + "arg": "fix", + "type": 1, "choices": [] }, { - "arg": "matrix", + "arg": "", "type": 2, "choices": [] }, { - "arg": "solver", + "arg": "", "type": 2, "choices": [] }, { - "arg": "minSteps", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "constant", + "function" + ] } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* rx = style name of this fix command\n* file = filename containing the reaction kinetic equations and Arrhenius parameters\n* localTemp = none,lucy = no local temperature averaging or local temperature defined through Lucy weighting function\n* matrix = *sparse, dense* format for the stoichiometric matrix\n* solver = lammps_rk4,rkf45 = rk4 is an explicit fourth order Runge-Kutta method; rkf45 is an adaptive fourth-order Runge-Kutta-Fehlberg method\n* minSteps = # of steps for rk4 solver or minimum # of steps for rkf45 (rk4 or rkf45)\n* maxSteps = maximum number of steps for the rkf45 solver (rkf45 only)\n* relTol = relative tolerance for the rkf45 solver (rkf45 only)\n* absTol = absolute tolerance for the rkf45 solver (rkf45 only)\n* diag = Diagnostics frequency for the rkf45 solver (optional, rkf45 only) \n", - "examples": "\n```lmps\nfix 1 all rx kinetics.rx none dense lammps_rk4\nfix 1 all rx kinetics.rx none sparse lammps_rk4 1\nfix 1 all rx kinetics.rx lucy sparse lammps_rk4 10\nfix 1 all rx kinetics.rx none dense rkf45 1 100 1e-6 1e-8\nfix 1 all rx kinetics.rx none dense rkf45 1 100 1e-6 1e-8 -1\n```\n", - "html_filename": "fix_rx.html", - "short_description": "Fix *rx* solves the reaction kinetic ODEs for a given reaction set that is\ndefined within the file associated with this command", - "description": "Fix *rx* solves the reaction kinetic ODEs for a given reaction set that is\ndefined within the file associated with this command.\n\nFor a general reaction such that\n\\[\n \\nu_{A}A + \\nu_{B}B \\rightarrow \\nu_{C}C\\]\nthe reaction rate equation is defined to be of the form\n\\[\n r = k(T)[A]^{\\nu_{A}}[B]^{\\nu_{B}}\\]\nIn the current implementation, the exponents are defined to be equal\nto the stoichiometric coefficients. A given reaction set consisting\nof *n* reaction equations will contain a total of *m* species. A set\nof *m* ordinary differential equations (ODEs) that describe the change\nin concentration of a given species as a function of time are then\nconstructed based on the *n* reaction rate equations.\n\nThe ODE systems are solved over the full DPD timestep *dt* using either a fourth\norder Runge-Kutta *rk4* method with a fixed step-size *h*, specified\nby the *lammps_rk4* keyword, or a fourth order Runge-Kutta-Fehlberg (rkf45) method\nwith an adaptive step-size for *h* . The number of ODE steps per DPD timestep\nfor the rk4 method is optionally specified immediately after the rk4\nkeyword. The ODE step-size is set as *dt/num_steps*. Smaller\nstep-sizes tend to yield more accurate results but there is not\ncontrol on the error. For error control, use the rkf45 ODE solver.\n\nThe rkf45 method adjusts the step-size so that the local truncation error is held\nwithin the specified absolute and relative tolerances. The initial step-size *h0*\ncan be specified by the user or estimated internally. It is recommended that the user\nspecify *h0* since this will generally reduced the number of ODE integration steps\nrequired. *h0* is defined as *dt / min_steps* if min_steps >= 1. If min_steps == 0,\n*h0* is estimated such that an explicit Euler method would likely produce\nan acceptable solution. This is generally overly conservative for the fourth-order\nmethod and users are advised to specify *h0* as some fraction of the DPD timestep.\nFor small DPD timesteps, only one step may be necessary depending upon the tolerances.\nNote that more than min_steps ODE steps may be taken depending upon the ODE stiffness\nbut no more than max_steps will be taken. If max_steps is reached, an error warning\nis printed and the simulation is stopped.\n\nAfter each ODE step, the solution error *e* is tested and weighted using the absTol\nand relTol values. The error vector is weighted as *e* / (relTol \\* \\|\\ *u* \\| + absTol)\nwhere *u* is the solution vector. If the norm of the error is <= 1, the solution is\naccepted, *h* is increased by a proportional amount, and the next ODE step is begun.\nOtherwise, *h* is shrunk and the ODE step is repeated.\n\nRun-time diagnostics are available for the rkf45 ODE solver. The frequency\n(in timesteps) that diagnostics are reported is controlled by the last (optional)\n12th argument. A negative frequency means that diagnostics are reported once at the\nend of each run. A positive value N means that the diagnostics are reported once\nper N timesteps.\n\nThe diagnostics report the average # of integrator steps and RHS function evaluations\nand run-time per ODE as well as the average/RMS/min/max per process. If the\nreporting frequency is 1, the RMS/min/max per ODE are also reported. The per ODE\nstatistics can be used to adjust the tolerance and min/max step parameters. The\nstatistics per MPI process can be useful to examine any load imbalance caused by the\nadaptive ODE solver. (Some DPD particles can take longer to solve than others. This\ncan lead to an imbalance across the MPI processes.)\n\n----------\n\nThe filename specifies a file that contains the entire set of reaction\nkinetic equations and corresponding Arrhenius parameters. The format of\nthis file is described below.\n\nThere is no restriction on the total number or reaction equations that\nare specified. The species names are arbitrary string names that are\nassociated with the species concentrations. Each species in a given\nreaction must be preceded by it's stoichiometric coefficient. The\nonly delimiters that are recognized between the species are either a\n*+* or *=* character. The *=* character corresponds to an\nirreversible reaction. After specifying the reaction, the reaction\nrate constant is determined through the temperature dependent\nArrhenius equation:\n\\[\n k = AT^{n}e^{\\frac{-E_{a}}{k_{B}T}}\\]\nwhere *A* is the Arrhenius factor in time units or concentration/time\nunits, *n* is the unitless exponent of the temperature dependence, and\n\\(E_a\\) is the activation energy in energy units. The temperature\ndependence can be removed by specifying the exponent as zero.\n\nThe internal temperature of the coarse-grained particles can be used\nin constructing the reaction rate constants at every DPD timestep by\nspecifying the keyword *none* . Alternatively, the keyword *lucy* can\nbe specified to compute a local-average particle internal temperature\nfor use in the reaction rate constant expressions. The local-average\nparticle internal temperature is defined as:\n\\[\n \\theta_i^{-1} = \\frac{\\sum_{j=1}\\omega_{Lucy}\\left(r_{ij}\\right)\\theta_j^{-1}}{\\sum_{j=1}\\omega_{Lucy}\\left(r_{ij}\\right)}\\]\nwhere the Lucy function is expressed as:\n\\[\n \\omega_{Lucy}\\left(r_{ij}\\right) = \\left( 1 + \\frac{3r_{ij}}{r_c} \\right) \\left( 1 - \\frac{r_{ij}}{r_c} \\right)^3\\]\nThe self-particle interaction is included in the above equation.\n\nThe stoichiometric coefficients for the reaction mechanism are stored\nin either a sparse or dense matrix format. The dense matrix should only be\nused for small reaction mechanisms. The sparse matrix should be used when there\nare many reactions (e.g., more than 5). This allows the number of reactions and\nspecies to grow while keeping the computational cost tractable. The matrix\nformat can be specified as using either the *sparse* or *dense* keywords.\nIf all stoichiometric coefficients for a reaction are small integers (whole\nnumbers <= 3), a fast exponential function is used. This can save significant\ncomputational time so users are encouraged to use integer coefficients\nwhere possible.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Rxn equations and parameters (one or more comment or blank lines)\n\n1.0 hcn + 1.0 no2 = 1.0 no + 0.5 n2 + 0.5 h2 + 1.0 co 2.49E+01 0.0 1.34 (rxn equation, A, n, Ea)\n1.0 hcn + 1.0 no = 1.0 co + 1.0 n2 + 0.5 h2 2.16E+00 0.0 1.52\n...\n1.0 no + 1.0 co = 0.5 n2 + 1.0 co2 1.66E+06 0.0 0.69\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections.\n\nFollowing a blank line, the next N lines list the N reaction\nequations. Each species within the reaction equation is specified\nthrough its stoichiometric coefficient and a species tag. Reactant\nspecies are specified on the left-hand side of the equation and\nproduct species are specified on the right-hand side of the equation.\nAfter specifying the reactant and product species, the final three\narguments of each line represent the Arrhenius parameter *A*, the\ntemperature exponent *n*, and the activation energy *Ea* .\n\nNote that the species tags that are defined in the reaction equations\nare used by the [fix eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html) command to\ndefine the thermodynamic properties of each species. Furthermore, the\nnumber of species molecules (i.e., concentration) can be specified\neither with the [set ](https://docs.lammps.org/set.html) command using the \"d\\_\" prefix or by\nreading directly the concentrations from a data file. For the latter\ncase, the [read_data ](https://docs.lammps.org/read_data.html) command with the fix keyword\nshould be specified, where the fix-ID will be the \"fix rx[ID with a](SPECIES\") suffix, e.g.\n\nfix foo all rx reaction.file ...\nread_data data.dpd fix foo_SPECIES NULL Species\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThis command can only be used with a constant energy or constant\nenthalpy DPD simulation.\n", - "related": "[fix eos/table/rx ](https://docs.lammps.org/fix_eos_table_rx.html),\n[fix shardlow ](https://docs.lammps.org/fix_shardlow.html),\n[pair dpd/fdt/energy ](https://docs.lammps.org/pair_dpd_fdt.html)\n" + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fix = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* nodeset = name of set of nodes to apply boundary condition\n* constant or function = value or name of function followed by its parameters \n", + "examples": "\n```lmps\nfix_modify AtC fix temperature groupNAME 10.\nfix_modify AtC fix temperature groupNAME 0 0 0 10.0 0 0 1.0\n```\n", + "html_filename": "atc_fix.html", + "short_description": "Creates a constraint on the values of the specified field at specified nodes", + "description": "Creates a constraint on the values of the specified field at specified nodes.\n", + "restrictions": "The keyword *all* is reserved and thus not available as nodeset name.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC unfix ](https://docs.lammps.org/atc_unfix.html)\n" }, { "command": [ - "thermo_modify" + "fix reaxff/bonds", + "fix reaxff/bonds/kk" ], "syntax": [ - "thermo_modify keyword value ..." + "fix ID group-ID reaxff/bonds Nevery filename" ], "args": [ [ { - "arg": "thermo_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "triclinic/general", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "reaxff/bonds", "type": 3, "choices": [ - "lost", - "lost/bond", - "warn", - "norm", - "flush", - "line", - "colname", - "format", - "temp", - "press", - "triclinic/general" + "reaxff/bonds", + "reaxff/bonds/kk" ] }, { - "arg": "value", + "arg": "Nevery", + "type": 2, + "choices": [] + }, + { + "arg": "filename", "type": 2, "choices": [] } ] ], - "parameters": "* one or more keyword/value pairs may be listed\n* keyword = lost or lost/bond or warn or norm or flush or line or colname or format or temp or press or triclinic/general \n *        lost value = error or warn or ignore \n *        lost/bond value = error or warn or ignore \n *        warn value = ignore or reset or default or a number \n *        norm value = yes or no \n *        flush value = yes or no \n *        line value = one or multi or yaml \n *        colname values = ID string, or default \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a thermo keyword or reference to compute, fix, property or variable. \n *        format values = line string, int string, float string, ID string, or none \n         string = C-style format string \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or an integer range such as 2*6 (negative values are not allowed) \n         or a thermo keyword or reference to compute, fix, property or variable. \n *        temp value = compute ID that calculates a temperature \n *        press value = compute ID that calculates a pressure \n *        triclinic/general arg = yes or no \n", - "examples": "\n```lmps\nthermo_modify lost ignore flush yes\nthermo_modify temp myTemp format 3 %15.8g\nthermo_modify temp myTemp format line \"%ld %g %g %15.8g\"\nthermo_modify line multi format float %g\nthermo_modify line yaml format none\nthermo_modify colname 1 Timestep colname -2 Pressure colname f_1[1] AvgDensity\n```\n", - "html_filename": "thermo_modify.html", - "short_description": "Set options for how thermodynamic information is computed and printed by\nLAMMPS", - "description": "Set options for how thermodynamic information is computed and printed by\nLAMMPS.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These options apply to the *currently defined* thermo style. When\n > you specify a [thermo_style ](https://docs.lammps.org/thermo_style.html) command, all\n > thermodynamic settings are restored to their default values,\n > including those previously reset by a thermo_modify command. Thus if\n > your input script specifies a thermo_style command, you should use\n > the thermo_modify command **after** it. \n > \n\nThe *lost* keyword determines whether LAMMPS checks for lost atoms each\ntime it computes thermodynamics and what it does if atoms are lost. An\natom can be \"lost\" if it moves across a non-periodic simulation box\n[boundary ](https://docs.lammps.org/boundary.html) or if it moves more than a box length outside\nthe simulation domain (or more than a processor subdomain length)\nbefore reneighboring occurs. The latter case is typically due to bad\ndynamics (e.g., too large a time step and/or huge forces and velocities). If\nthe value is *ignore*, LAMMPS does not check for lost atoms. If the\nvalue is *error* or *warn*, LAMMPS checks and either issues an error or\nwarning. The simulation will exit with an error and continue with a warning.\nA warning will only be issued once, the first time an atom is lost.\nThis can be a useful debugging option.\n\nThe *lost/bond* keyword determines whether LAMMPS throws an error or\nnot if an atom in a bonded interaction (bond, angle, etc) cannot be\nfound when it creates bonded neighbor lists. By default this is a\nfatal error. However in some scenarios it may be desirable to only\nissue a warning or ignore it and skip the computation of the missing\nbond, angle, etc. An example would be when gas molecules in a vapor\nare drifting out of the box through a fixed boundary condition (see\nthe [boundary ](https://docs.lammps.org/boundary.html) command). In this case one atom may be\ndeleted before the rest of the molecule is, on a later timestep.\n\nThe *warn* keyword allows you to control whether LAMMPS will print\nwarning messages and how many of them. Most warning messages are only\nprinted by MPI rank 0. They are usually pointing out important issues\nthat should be investigated, but LAMMPS cannot determine for\ncertain whether they are an indication of an error.\n\nSome warning messages are printed during a run (or immediately before)\neach time a specific MPI rank encounters the issue (e.g., bonds that are\nstretched too far or dihedrals in extreme configurations). These number\nof these can quickly blow up the size of the log file and screen output.\nThus, a limit of 100 warning messages is applied by default. The warning\ncount is applied to the entire input unless reset with a ``thermo_modify\nwarn reset`` command. If there are more warnings than the limit, LAMMPS\nwill print one final warning that it will not print any additional\nwarning messages.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The warning limit is enforced on either the per-processor count or\n > the total count across all processors. For efficiency reasons,\n > however, the total count is only updated at steps with thermodynamic\n > output. Thus when running on a large number of processors in\n > parallel, the total number of warnings printed can be significantly\n > larger than the given limit. \n > \n\nAny number after the keyword *warn* will change the warning limit\naccordingly. With the value *ignore* all warnings will be suppressed,\nwith the value *always* no limit will be applied and warnings will\nalways be printed, with the value *reset* the internal warning counter\nwill be reset to zero, and with the value *default*, the counter is\nreset and the limit set to 100. An example usage of either *reset* or\n*default* would be to re-enable warnings that were disabled or have\nreached the limit during equilibration, where the warnings would be\nacceptable while the system is still adjusting, but then change to all\nwarnings for the production run, where they would indicate problems that\nwould require a closer look at what is causing them.\n\nThe *norm* keyword determines whether various thermodynamic output\nvalues are normalized by the number of atoms or not, depending on\nwhether it is set to *yes* or *no* . Different unit styles have\ndifferent defaults for this setting (see below). Even if *norm* is set\nto *yes*, a value is only normalized if it is an \"extensive\" quantity,\nmeaning that it scales with the number of atoms in the system. For the\nthermo keywords described by the page for the [thermo_style](https://docs.lammps.org/thermo_style.html) command, all energy-related keywords are extensive, such\nas *pe* or *ebond* or *enthalpy* . Other keywords such as *temp* or\n*press* are \"intensive\" meaning their value is independent (in a\nstatistical sense) of the number of atoms in the system and thus are\nnever normalized. For thermodynamic output values extracted from fixes\nand computes in a [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command, the\npage for the individual [fix ](https://docs.lammps.org/fix.html) or [compute ](https://docs.lammps.org/compute.html)\nlists whether the value is \"extensive\" or \"intensive\" and thus whether\nit is normalized. Thermodynamic output values calculated by a variable\nformula are assumed to be \"intensive\" and thus are never normalized.\nYou can always include a divide by the number of atoms in the variable\nformula if this is not the case.\n\nThe *flush* keyword invokes a flush operation after thermodynamic info\nis written to the screen and log file. This ensures the output is\nupdated and not buffered (by the application) even if LAMMPS halts\nbefore the simulation completes. Please note that this does not affect\nbuffering by the OS or devices, so you may still lose data in case the\nsimulation stops due to a hardware failure.\n\nThe *line* keyword determines whether thermodynamics will be output as a\nseries of numeric values on one line (\"one\"), in a multi-line format\nwith 3 quantities with text strings per line and a dashed-line header\ncontaining the timestep and CPU time (\"multi\"), or in a YAML format\nblock (\"yaml\"). This modify option overrides the *one*, *multi*, or\n*yaml* thermo_style settings.\n\nThe *colname* keyword can be used to change the default header keyword\nfor a column or field of thermodynamic output. The setting for *ID\nstring* replaces the default text with the provided string. *ID* can be\na positive integer when it represents the column number counting from\nthe left, a negative integer when it represents the column number from\nthe right (i.e., \\(-1\\) is the last column/keyword), or a thermo keyword\n(or compute, fix, property, or variable reference) and then it replaces the\nstring for that specific thermo keyword.\n\nThe *colname* keyword can be used multiple times. If multiple *colname*\nsettings refer to the same keyword, the last setting has precedence. A\nsetting of *default* clears all previous settings, reverting all values\nto their default values.\n\nThe *format* keyword can be used to change the default numeric format of\nany of quantities the [thermo_style ](https://docs.lammps.org/thermo_style.html) command\noutputs. All the specified format strings are C-style formats (i.e., as\nused by the C/C++ printf() command). The *line* keyword takes a single\nargument which is the format string for the entire line of thermo\noutput, with \\(N\\) fields, which you must enclose in quotes if it is more\nthan one field. The *int* and *float* keywords take a single format\nargument and are applied to all integer or floating-point quantities\noutput. The setting for *ID string* also takes a single format argument\nthat is used for the indexed value in each line. The interpretation is\nthe same as for *colname* (i.e., a positive integer is the n-th value\ncorresponding to the n-th thermo keyword, a negative integer is counting\nbackwards, and a string matches the entry with the thermo keyword).\nFor example, the fifth column is output in high precision for\n\"format 5 %20.15g\", and the pair energy for \"format epair %20.15g\".\nThe *ID* field can be a range, such as \"3\\*6\", \"*\", \"2*\", or \"\\*3\";\nin such cases, all fields in the range (inclusive) are set to the specified\nformat string. Ranges containing negative numbers are not supported.\n\nThe *format* keyword can be used multiple times. The precedence is\nthat for each value in a line of output, the *ID* format (if specified)\nis used, else the *int* or *float* setting (if specified) is used,\nelse the *line* setting (if specified) for that value is used, else\nthe default setting is used. A setting of *none* clears all previous\nsettings, reverting all values to their default format.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The thermo output values *step* and *atoms* are stored internally as\n > 8-byte signed integers, rather than the usual 4-byte signed integers.\n > When specifying the *format int* option you can use a \"%d\"-style\n > format identifier in the format string and LAMMPS will convert this\n > to the corresponding 8-byte form when it is applied to those\n > keywords. However, when specifying the *line* option or *format ID\n > string* option for *step* and *natoms*, you should specify a format\n > string appropriate for an 8-byte signed integer (i.e., one with \"%ld\"\n > or \"%lld\", depending on the platform). \n > \n\nThe *temp* keyword is used to determine how thermodynamic temperature is\ncalculated, which is used by all thermo quantities that require a\ntemperature (\"temp\", \"press\", \"ke\", \"etotal\", \"enthalpy\", \"pxx\", etc).\nThe specified compute ID must have been previously defined by the user\nvia the [compute ](https://docs.lammps.org/compute.html) command and it must be a style of\ncompute that calculates a temperature. As described in the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command, thermo output uses a default\ncompute for temperature with ID = *thermo_temp*. This option allows the\nuser to override the default.\n\nThe *press* keyword is used to determine how thermodynamic pressure is\ncalculated, which is used by all thermo quantities that require a\npressure (\"press\", \"enthalpy\", \"pxx\", etc). The specified compute ID\nmust have been previously defined by the user via the [compute](https://docs.lammps.org/compute.html) command and it must be a style of compute that calculates a\npressure. As described in the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ncommand, thermo output uses a default compute for pressure with ID =\n*thermo_press*. This option allows the user to override the default.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If both the *temp* and *press* keywords are used in a single\n > thermo_modify command (or in two separate commands), then the order\n > in which the keywords are specified is important. Note that a\n > [pressure compute ](https://docs.lammps.org/compute_pressure.html) defines its own\n > temperature compute as an argument when it is specified. The *temp*\n > keyword will override this (for the pressure compute being used by\n > thermodynamics), but only if the *temp* keyword comes after the\n > *press* keyword. If the *temp* keyword comes before the *press*\n > keyword, then the new pressure compute specified by the *press*\n > keyword will be unaffected by the *temp* setting. \n > \n\nThe *triclinic/general* keyword can only be used with a value of *yes*\nif the simulation box was created as a general triclinic box. See the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed\nexplanation of orthogonal, restricted triclinic, and general triclinic\nsimulation boxes.\n\nIf this keyword is *yes*, the output of the simulation box edge\nvectors and the pressure tensor components for the system are\naffected. These are specified by the *avec,bvec,cvec* and\n*pxx,pyy,pzz,pxy,pxz,pyz* keywords of the [thermo_style](https://docs.lammps.org/thermo_style.html) command. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n", - "restrictions": "none\n", - "related": "[thermo ](https://docs.lammps.org/thermo.html), [thermo_style ](https://docs.lammps.org/thermo_style.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* reax/bonds = style name of this fix command\n* Nevery = output interval in timesteps\n* filename = name of output file \n", + "examples": "\n```lmps\nfix 1 all reaxff/bonds 100 bonds.reaxff\n```\n", + "html_filename": "fix_reaxff_bonds.html", + "short_description": "Write out the bond information computed by the ReaxFF potential specified\nby [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) in the exact same format as the\noriginal stand-alone ReaxFF code of Adri van Duin", + "description": "Write out the bond information computed by the ReaxFF potential specified\nby [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) in the exact same format as the\noriginal stand-alone ReaxFF code of Adri van Duin. The bond information\nis written to *filename* on timesteps that are multiples of *Nevery*,\nincluding timestep 0. For time-averaged chemical species analysis,\nplease see the [fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html) command.\n\nThe specified group-ID is ignored by this fix.\n\nThe format of the output file should be reasonably self-explanatory.\nThe meaning of the column header abbreviations is as follows:\n\n* id = atom id\n* type = atom type\n* nb = number of bonds\n* id_1 = atom id of first bond\n* id_nb = atom id of Nth bond\n* mol = molecule id\n* bo_1 = bond order of first bond\n* bo_nb = bond order of Nth bond\n* abo = atom bond order (sum of all bonds)\n* nlp = number of lone pairs\n* q = atomic charge\n\nIf the filename ends with \".gz\", the output file is written in gzipped\nformat. A gzipped dump file will be about 3x smaller than the text\nversion, but will also take longer to write.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "The fix reaxff/bonds command requires that the [pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) is invoked. This fix is part of the\nREAXFF package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nTo write gzipped bond files, you must compile LAMMPS with the\n-DLAMMPS_GZIP option.\n", + "related": "[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html), [fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html)\n" }, { "command": [ - "fix nve/limit" + "fix qtb" ], "syntax": [ - "fix ID group-ID nve/limit xmax" + "fix ID group-ID qtb keyword value ..." ], "args": [ [ @@ -35553,38 +34726,39 @@ export const command_docs = [ "choices": [] }, { - "arg": "nve/limit", + "arg": "qtb", "type": 1, "choices": [] }, { - "arg": "xmax", + "arg": "N_f", + "type": 3, + "choices": [ + "temp", + "damp", + "seed", + "f_max", + "N_f" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve = style name of this fix command\n* xmax = maximum distance an atom can move in one timestep (distance units) \n", - "examples": "\n```lmps\nfix 1 all nve/limit 0.1\n```\n", - "html_filename": "fix_nve_limit.html", - "short_description": "Perform constant NVE updates of position and velocity for atoms in the\ngroup each timestep", - "description": "Perform constant NVE updates of position and velocity for atoms in the\ngroup each timestep. A limit is imposed on the maximum distance an\natom can move in one timestep. This is useful when starting a\nsimulation with a configuration containing highly overlapped atoms.\nNormally this would generate huge forces which would blow atoms out of\nthe simulation box, causing LAMMPS to stop with an error.\n\nUsing this fix can overcome that problem. Forces on atoms must still\nbe computable (which typically means two atoms must have a separation\ndistance > 0.0). But large velocities generated by large forces are\nreset to a value that corresponds to a displacement of length *xmax*\nin a single timestep. *Xmax* is specified in distance units; see the\n[units ](https://docs.lammps.org/units.html) command for details. The value of *xmax* should be\nconsistent with the neighbor skin distance and the frequency of\nneighbor list re-building, so that pairwise interactions are not\nmissed on successive timesteps as atoms move. See the\n[neighbor ](https://docs.lammps.org/neighbor.html) and [neigh_modify ](https://docs.lammps.org/neigh_modify.html) commands\nfor details.\n\nNote that if a velocity reset occurs the integrator will not conserve\nenergy. On steps where no velocity resets occur, this integrator is\nexactly like the [fix nve ](https://docs.lammps.org/fix_nve.html) command. Since forces are\nunaltered, pressures computed by thermodynamic output will still be\nvery large for overlapped configurations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not use [fix shake ](https://docs.lammps.org/fix_shake.html) in conjunction\n > with this fix. That is because fix shake applies constraint forces\n > based on the predicted positions of atoms after the next timestep.\n > It has no way of knowing the timestep may change due to this fix,\n > which will cause the constraint forces to be invalid. A better\n > strategy is to turn off fix shake when performing initial dynamics\n > that need this fix, then turn fix shake on when doing normal dynamics\n > with a fixed-size timestep. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the count of how\nmany updates of atom's velocity/position were limited by the maximum\ndistance criterion. This should be roughly the number of atoms so\naffected, except that updates occur at both the beginning and end of a\ntimestep in a velocity Verlet timestepping algorithm. This is a\ncumulative quantity for the current run, but is re-initialized to zero\neach time a run is performed. The scalar value calculated by this fix\nis \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html),\n[pair_style soft ](https://docs.lammps.org/pair_soft.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* qtb = style name of this fix\n* zero or more keyword/value pairs may be appended\n* keyword = temp or damp or seed or f_max or N_f \n *        temp value = target quantum temperature (temperature units) \n *        damp value = damping parameter (time units) inverse of friction gamma \n *        seed value = random number seed (positive integer) \n *        f_max value = upper cutoff frequency of the vibration spectrum (1/time units) \n *        N_f value = number of frequency bins (positive integer) \n", + "examples": "\n```lmps\n# (liquid methane modeled with the REAX force field, real units)\nfix 1 all nve\nfix 1 all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 100\n# (quartz modeled with the BKS force field, metal units)\nfix 2 all nph iso 1.01325 1.01325 1\nfix 2 all qtb temp 300 damp 1 seed 47508 f_max 120.0 N_f 100\n```\n", + "html_filename": "fix_qtb.html", + "short_description": "This command performs the quantum thermal bath scheme proposed by\n**Dammak** to include self-consistent quantum nuclear effects,\nwhen used in conjunction with the [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands", + "description": "This command performs the quantum thermal bath scheme proposed by\n**Dammak** to include self-consistent quantum nuclear effects,\nwhen used in conjunction with the [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) commands.\n\nClassical molecular dynamics simulation does not include any quantum\nnuclear effect. Quantum treatment of the vibrational modes will\nintroduce zero point energy into the system, alter the energy power\nspectrum and bias the heat capacity from the classical limit. Missing\nall the quantum nuclear effects, classical MD cannot model systems at\ntemperatures lower than their classical limits. This effect is\nespecially important for materials with a large population of hydrogen\natoms and thus higher classical limits.\n\nThe equation of motion implemented by this command follows a Langevin\nform:\n\\[\n m_i a_i = f_i + R_i - m_i\\gamma v_i\\]\nHere \\(m_i, a_i, f_i, R_i, \\gamma, \\textrm{and} v_i\\)\nrepresent in this order mass, acceleration, force exerted by all other atoms, random\nforce, frictional coefficient (the inverse of damping parameter damp),\nand velocity. The random force \\(R_i\\) is \"colored\" so\nthat any vibrational mode with frequency \\(\\omega\\) will have a\ntemperature-sensitive energy \\(\\theta(\\omega,T)\\) which\nresembles the energy expectation for a quantum harmonic oscillator\nwith the same natural frequency:\n\\[\n \\theta(\\omega T) = \\frac{\\hbar}{2} + \\hbar\\omega \\left[\\exp(\\frac{\\hbar\\omega}{k_B T})-1 \\right]^{-1}\\]\nTo efficiently generate the random forces, we employ the method\nof **Barrat**, that circumvents the need to generate all\nrandom forces for all times before the simulation. The memory\nrequirement of this approach is less demanding and independent\nof the simulation duration. Since the total random force \\(R_{tot}\\)\ndoes not necessarily vanish for a finite number of atoms,\n\\(R_i\\) is replaced by \\(R_i - \\frac{R_{tot}}{N_{tot}}\\)\nto avoid collective motion of the system.\n\nThe *temp* parameter sets the target quantum temperature. LAMMPS will\nstill have an output temperature in its thermo style. That is the\ninstantaneous classical temperature \\(T^{cl}\\) derived from\nthe atom velocities at thermal equilibrium. A non-zero\n\\(T^{cl}\\) will be present even when the quantum\ntemperature approaches zero. This is associated with zero-point energy\nat low temperatures.\n\\[\n T^{cl} = \\sum \\frac{m_i v_i^2}{3 N k_B}\\]\nThe *damp* parameter is specified in time units, and it equals the\ninverse of the frictional coefficient \\(\\gamma\\). \\(\\gamma\\)\nshould be as small as possible but slightly larger than the timescale\nof anharmonic coupling in the system which is about 10 ps to 100\nps. When \\(\\gamma\\) is too large, it gives an energy spectrum that\ndiffers from the desired Bose-Einstein spectrum. When \\(\\gamma\\)\nis too small, the quantum thermal bath coupling to the system will be\nless significant than anharmonic effects, reducing to a classical\nlimit. We find that setting \\(\\gamma\\) between 5 THz and 1 THz\ncould be appropriate depending on the system.\n\nThe random number *seed* is a positive integer used to initiate a\nMarsaglia random number generator. Each processor uses the input seed\nto generate its own unique seed and its own stream of random\nnumbers. Thus the dynamics of the system will not be identical on two\nruns on different numbers of processors.\n\nThe *f_max* parameter truncate the noise frequency domain so that\nvibrational modes with frequencies higher than *f_max* will not be\nmodulated. If we denote \\(\\Delta t\\) as the time interval for the\nMD integration, *f_max* is always reset by the code to make\n\\(\\alpha = (int)(2\\) *f_max* \\(\\Delta t)^{-1}\\) a\npositive integer and print out relative information. An appropriate\nvalue for the cutoff frequency *f_max* would be around 2~3 \\(f_D\\),\nwhere \\(f_D\\) is the Debye frequency.\n\nThe *N_f* parameter is the frequency grid size, the number of points\nfrom 0 to *f_max* in the frequency domain that will be\nsampled. 3*2\\ *N_f* per-atom random numbers are required\nin the random force generation and there could be as many atoms as in\nthe whole simulation that can migrate into every individual\nprocessor. A larger *N_f* provides a more accurate sampling of the\nspectrum while consumes more memory. With fixed *f_max* and\n\\(\\gamma\\), *N_f* should be big enough to converge the classical\ntemperature \\(T^{cl}\\) as a function of target quantum bath\ntemperature. Memory usage per processor could be from 10 to 100\nMBytes.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies forces to a colored\n > thermostat. Thus you must use a separate time integration fix, like\n > [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nph ](https://docs.lammps.org/fix_nh.html) to actually\n > update the velocities and positions of atoms (as shown in the\n > examples). Likewise, this fix should not normally be used with\n > other fixes or commands that also specify system temperatures ,\n > e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) and [fix temp/rescale > ](https://docs.lammps.org/fix_temp_rescale.html). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix. However, in a statistical sense, a restarted simulation\nshould produce similar behaviors of the system.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Dammak)** Dammak, Chalopin, Laroche, Hayoun, and Greffet, Phys Rev\nLett, 103, 190601 (2009). \n \n**(Barrat)** Barrat and Rodney, J. Stat. Phys, 144, 679 (2011). \n ", + "restrictions": "This fix style is part of the QTB package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html),\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix qbmsst ](https://docs.lammps.org/fix_qbmsst.html)\n\n----------\n" }, { "command": [ - "pair_style lj/class2", - "pair_style lj/class2/gpu", - "pair_style lj/class2/kk", - "pair_style lj/class2/omp", - "pair_style lj/class2/coul/cut", - "pair_style lj/class2/coul/cut/kk", - "pair_style lj/class2/coul/cut/omp", - "pair_style lj/class2/coul/long", - "pair_style lj/class2/coul/long/gpu", - "pair_style lj/class2/coul/long/kk", - "pair_style lj/class2/coul/long/omp" + "pair_style buck6d/coul/gauss/dsf" ], "syntax": [ "pair_style style args" @@ -35597,20 +34771,11 @@ export const command_docs = [ "choices": [] }, { - "arg": "lj/class2/coul/long/omp", + "arg": "buck6d/coul/gauss/long", "type": 3, "choices": [ - "lj/class2", - "lj/class2/coul/cut", - "lj/class2/coul/long", - "lj/class2/gpu", - "lj/class2/kk", - "lj/class2/omp", - "lj/class2/coul/cut/kk", - "lj/class2/coul/cut/omp", - "lj/class2/coul/long/gpu", - "lj/class2/coul/long/kk", - "lj/class2/coul/long/omp" + "buck6d/coul/gauss/dsf", + "buck6d/coul/gauss/long" ] }, { @@ -35620,189 +34785,181 @@ export const command_docs = [ } ] ], - "parameters": "* style = lj/class2 or lj/class2/coul/cut or lj/class2/coul/long\n* args = list of arguments for a particular style \n *      lj/class2 args = cutoff \n       cutoff = global cutoff for class 2 interactions (distance units) \n *      lj/class2/coul/cut args = cutoff (cutoff2) \n       cutoff = global cutoff for class 2 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/class2/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for class 2 (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style lj/class2 10.0\npair_coeff * * 100.0 2.5\npair_coeff 1 2* 100.0 2.5 9.0\n\npair_style lj/class2/coul/cut 10.0\npair_style lj/class2/coul/cut 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\npair_coeff 1 1 100.0 3.5 9.0 9.0\n\npair_style lj/class2/coul/long 10.0\npair_style lj/class2/coul/long 10.0 8.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n```\n", - "html_filename": "pair_class2.html", - "short_description": "The *lj/class2* styles compute a 6/9 Lennard-Jones potential given by\n\\[\n E = \\epsilon \\left[ 2 \\left(\\frac{\\sigma}{r}\\right)^9 -\n 3 \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff", - "description": "The *lj/class2* styles compute a 6/9 Lennard-Jones potential given by\n\\[\n E = \\epsilon \\left[ 2 \\left(\\frac{\\sigma}{r}\\right)^9 -\n 3 \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff.\n\nThe *lj/class2/coul/cut* and *lj/class2/coul/long* styles add a\nCoulombic term as described for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles.\n\nSee **pair-Sun** for a description of the COMPASS class2 force field.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global\nclass 2 and Coulombic cutoffs are used. If only one cutoff is\nspecified, it is used as the cutoff for both class 2 and Coulombic\ninteractions for this type pair. If both coefficients are specified,\nthey are used as the class 2 and Coulombic cutoffs for this type pair.\nYou cannot specify 2 cutoffs for style *lj/class2*, since it has no\nCoulombic terms.\n\nFor *lj/class2/coul/long* only the class 2 cutoff can be specified\nsince a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff\nspecified in the pair_style command.\n\n----------\n\nIf the pair_coeff command is not used to define coefficients for a\nparticular I != J type pair, the mixing rule for \\(\\epsilon\\) and\n\\(\\sigma\\) for all class2 potentials is to use the *sixthpower*\nformulas documented by the [pair_modify ](https://docs.lammps.org/pair_modify.html) command.\nThe [pair_modify mix ](https://docs.lammps.org/pair_modify.html) setting is thus ignored for\nclass2 potentials for epsilon and sigma. However it is still followed\nfor mixing the cutoff distance.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable for use in\nfree energy calculations, is part of the FEP package and is documented with\nthe [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is\nonly available if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/class2 pair styles can be mixed.\nEpsilon and sigma are always mixed with the value *sixthpower* . The\ncutoff distance is mixed by whatever option is set by the pair_modify\ncommand (default = geometric). See the \"pair_modify\" command for\ndetails.\n\nAll of the lj/class2 pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the\nLennard-Jones portion of the pair interaction.\n\nThe *lj/class2/coul/long* pair style does not support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since a tabulation\ncapability has not yet been added to this potential.\n\nAll of the lj/class2 pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) tail option for adding a long-range\ntail correction to the energy and pressure of the Lennard-Jones\nportion of the pair interaction.\n\nAll of the lj/class2 pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do\nnot need to be specified in an input script that reads a restart file.\n\nOnly the *lj/class2* and *lj/class2/coul/long* pair styles support the use of the\n*inner*, *middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the pairwise forces can be\npartitioned by distance at different levels of the rRESPA hierarchy.\nThe other styles only support the *pair* keyword of run_style respa.\nSee the [run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n**(pair-Sun)** Sun, J Phys Chem B 102, 7338-7364 (1998). \n ", - "restrictions": "These styles are part of the CLASS2 package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html)\n" + "parameters": "* style = buck6d/coul/gauss/dsf or buck6d/coul/gauss/long\n* args = list of arguments for a particular style \n *      buck6d/coul/gauss/dsf args = smooth cutoff (cutoff2) \n       smooth = smoothing onset within Buckingham cutoff (ratio) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      buck6d/coul/gauss/long args = smooth smooth2 cutoff (cutoff2) \n       smooth = smoothing onset within Buckingham cutoff (ratio) \n       smooth2 = smoothing onset within Coulombic cutoff (ratio) \n       cutoff = global cutoff for Buckingham (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", + "examples": "\n```lmps\npair_style buck6d/coul/gauss/dsf 0.9000 12.0000\npair_coeff 1 1 1030. 3.061 457.179 4.521 0.608\n\npair_style buck6d/coul/gauss/long 0.9000 1.0000 12.0000\npair_coeff 1 1 1030. 3.061 457.179 4.521 0.608\n```\n", + "html_filename": "pair_buck6d_coul_gauss.html", + "short_description": "The *buck6d/coul/gauss* styles evaluate vdW and Coulomb\ninteractions following the MOF-FF force field after\n**Schmid**", + "description": "The *buck6d/coul/gauss* styles evaluate vdW and Coulomb\ninteractions following the MOF-FF force field after\n**Schmid**. The vdW term of the *buck6d* styles\ncomputes a dispersion damped Buckingham potential:\n\\[\n E = A e^{-\\kappa r} - \\frac{C}{r^6} \\cdot \\frac{1}{1 + D r^{14}} \\qquad r < r_c \\\\\\]\nwhere A and C are a force constant, \\(\\kappa\\) is an ionic-pair dependent\nreciprocal length parameter, D is a dispersion correction parameter,\nand the cutoff \\(r_c\\) truncates the interaction distance.\nThe first term in the potential corresponds to the Buckingham\nrepulsion term and the second term to the dispersion attraction with\na damping correction analog to the Grimme correction used in DFT.\nThe latter corrects for artifacts occurring at short distances which\nbecome an issue for soft vdW potentials.\n\nThe *buck6d* styles include a smoothing function which is invoked\naccording to the global smoothing parameter within the specified\ncutoff. Hereby a parameter of i.e. 0.9 invokes the smoothing\nwithin 90% of the cutoff. No smoothing is applied at a value\nof 1.0. For the *gauss/dsf* style this smoothing is only applicable\nfor the dispersion damped Buckingham potential. For the *gauss/long*\nstyles the smoothing function can also be invoked for the real\nspace coulomb interactions which enforce continuous energies and\nforces at the cutoff.\n\nBoth styles *buck6d/coul/gauss/dsf* and *buck6d/coul/gauss/long*\nevaluate a Coulomb potential using spherical Gaussian type charge\ndistributions which effectively dampen electrostatic interactions\nfor high charges at close distances. The electrostatic potential\nis thus evaluated as:\n\\[\n E = \\frac{C_{q_i q_j}}{\\epsilon r_{ij}}\\,\\, \\textrm{erf}\\left(\\alpha_{ij} r_{ij}\\right)\\quad\\quad\\quad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the 2 atoms, epsilon is the dielectric constant which\ncan be set by the [dielectric ](https://docs.lammps.org/dielectric.html) command, \\(\\alpha\\)\nis the ion pair dependent damping parameter and erf() is the\nerror-function. The cutoff \\(r_c\\) truncates the interaction distance.\n\nThe style *buck6d/coul/gauss/dsf* computes the Coulomb interaction\nvia the damped shifted force model described in **Fennell**\napproximating an Ewald sum similar to the [pair coul/dsf ](https://docs.lammps.org/pair_coul.html)\nstyles. In *buck6d/coul/gauss/long* an additional damping factor is\napplied to the Coulombic term so it can be used in conjunction with the\n[kspace_style ](https://docs.lammps.org/kspace_style.html) command and its *ewald* or *pppm*\noptions. The Coulombic cutoff in this case separates the real and\nreciprocal space evaluation of the Ewald sum.\n\nIf one cutoff is specified it is used for both the vdW and Coulomb\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the vdW terms, and the second is the cutoff for the Coulombic term.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* \\(\\rho\\) (distance\\^-1 units)\n* C (energy-distance\\^6 units)\n* D (distance\\^14 units)\n* \\(\\alpha\\) (distance\\^-1 units)\n* cutoff (distance units)\n\nThe second coefficient, \\(\\rho\\), must be greater than zero. The\nlatter coefficient is optional. If not specified, the global vdW cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy. Instead the smoothing function should be applied\nby setting the global smoothing parameter to a value < 1.0.\n\nThese styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\n \n \n**(Fennell)** S. Bureekaew, S. Amirjalayer, M. Tafipolsky, C. Spickermann, T.K. Roy and R. Schmid, Phys. Status Solidi B, 6, 1128 (2013). \n ", + "restrictions": "These styles are part of the MOFFF package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style lj/long/coul/long", - "pair_style lj/long/coul/long/intel", - "pair_style lj/long/coul/long/omp", - "pair_style lj/long/coul/long/opt", - "pair_style lj/long/tip4p/long", - "pair_style lj/long/tip4p/long/omp" + "fix nvt/asphere", + "fix nvt/asphere/omp" ], "syntax": [ - "pair_style style args" + "fix ID group-ID nvt/asphere keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "lj/long/tip4p/long/omp", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "nvt/asphere", "type": 3, "choices": [ - "lj/long/coul/long", - "lj/long/tip4p/long", - "lj/long/coul/long/intel", - "lj/long/coul/long/omp", - "lj/long/coul/long/opt", - "lj/long/tip4p/long/omp" + "nvt/asphere", + "nvt/asphere/omp" ] }, { - "arg": "args", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* style = lj/long/coul/long or lj/long/tip4p/long\n* args = list of arguments for a particular style \n *      lj/long/coul/long args = flag_lj flag_coul cutoff (cutoff2) \n       flag_lj = long or cut or off \n       long = use Kspace long-range summation for dispersion 1/r\\^6 term \n       cut = use a cutoff on dispersion 1/r\\^6 term \n       off = omit disperion 1/r\\^6 term entirely \n       flag_coul = long or off \n       long = use Kspace long-range summation for Coulombic 1/r term \n       off = omit Coulombic term \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      lj/long/tip4p/long args = flag_lj flag_coul otype htype btype atype qdist cutoff (cutoff2) \n       flag_lj = long or cut \n       long = use Kspace long-range summation for dispersion 1/r\\^6 term \n       cut = use a cutoff \n       flag_coul = long or off \n       long = use Kspace long-range summation for Coulombic 1/r term \n       off = omit Coulombic term \n       otype,htype = atom types (numeric or type label) for TIP4P O and H \n       btype,atype = bond and angle types (numeric or type label) for TIP4P waters \n       qdist = distance from O atom to massless charge (distance units) \n       cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style lj/long/coul/long cut off 2.5\npair_style lj/long/coul/long cut long 2.5 4.0\npair_style lj/long/coul/long long long 2.5 4.0\npair_coeff * * 1 1\npair_coeff 1 1 1 3 4\n\npair_style lj/long/tip4p/long long long 1 2 7 8 0.15 12.0\npair_style lj/long/tip4p/long long long 1 2 7 8 0.15 12.0 10.0\npair_coeff * * 100.0 3.0\npair_coeff 1 1 100.0 3.5 9.0\n\npair_style lj/long/tip4p/long long long OW HW HW-OW HW-OW-HW 0.15 12.0\nlabelmap atom 1 OW 2 HW\nlabelmap bond 1 HW-OW\nlabelmap angle 1 HW-OW-HW\npair_coeff * * 100.0 3.0\npair_coeff OW OW 100.0 3.5 9.0\n```\n", - "html_filename": "pair_lj_long.html", - "short_description": "Style *lj/long/coul/long* computes the standard 12/6 Lennard-Jones potential:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\\]\nwith \\(\\epsilon\\) and \\(\\sigma\\) being the usual Lennard-Jones\npotential parameters, plus the Coulomb potential, given by:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\) are the charges on\nthe two atoms, \\(\\epsilon\\) is the dielectric constant which can be set by\nthe [dielectric ](https://docs.lammps.org/dielectric.html) command, and \\(r_c\\) is the cutoff", - "description": "Style *lj/long/coul/long* computes the standard 12/6 Lennard-Jones potential:\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c \\\\\\]\nwith \\(\\epsilon\\) and \\(\\sigma\\) being the usual Lennard-Jones\npotential parameters, plus the Coulomb potential, given by:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere C is an energy-conversion constant, \\(q_i\\) and \\(q_j\\) are the charges on\nthe two atoms, \\(\\epsilon\\) is the dielectric constant which can be set by\nthe [dielectric ](https://docs.lammps.org/dielectric.html) command, and \\(r_c\\) is the cutoff. If\none cutoff is specified in the pair_style command, it is used for both\nthe LJ and Coulombic terms. If two cutoffs are specified, they are\nused as cutoffs for the LJ and Coulombic terms respectively.\n\nThe purpose of this pair style is to capture long-range interactions\nresulting from both attractive 1/r\\^6 Lennard-Jones and Coulombic 1/r\ninteractions. This is done by use of the *flag_lj* and *flag_coul*\nsettings. The **Veld2** paper has more details on when it is\nappropriate to include long-range 1/r\\^6 interactions, using this\npotential.\n\nStyle *lj/long/tip4p/long* implements the TIP4P water model of\n**Jorgensen4**, which introduces a massless site located a\nshort distance away from the oxygen atom along the bisector of the HOH\nangle. The atomic types of the oxygen and hydrogen atoms, the bond\nand angle types for OH and HOH interactions, and the distance to the\nmassless charge site are specified as pair_style arguments.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For each TIP4P water molecule in your system, the atom IDs for\n > the O and 2 H atoms must be consecutive, with the O atom first. This\n > is to enable LAMMPS to \"find\" the 2 H atoms associated with each O\n > atom. For example, if the atom ID of an O atom in a TIP4P water\n > molecule is 500, then its 2 H atoms must have IDs 501 and 502. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If using type labels, the type labels must be defined before calling\n > the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. \n > \n\nSee the [Howto tip4p ](https://docs.lammps.org/Howto_tip4p.html) page for more\ninformation on how to use the TIP4P pair style. Note that the\nneighbor list cutoff for Coulomb interactions is effectively extended\nby a distance 2\\*qdist when using the TIP4P pair style, to account for\nthe offset distance of the fictitious charges on O atoms in water\nmolecules. Thus it is typically best in an efficiency sense to use a\nLJ cutoff >= Coulombic cutoff + 2\\*qdist, to shrink the size of the\nneighbor list. This leads to slightly larger cost for the long-range\ncalculation, so you can test the trade-off for your model.\n\nIf *flag_lj* is set to *long*, no cutoff is used on the LJ 1/r\\^6\ndispersion term. The long-range portion can be calculated by using\nthe [kspace_style ewald/disp or pppm/disp ](https://docs.lammps.org/kspace_style.html) commands.\nThe specified LJ cutoff then determines which portion of the LJ\ninteractions are computed directly by the pair potential versus which\npart is computed in reciprocal space via the Kspace style. If\n*flag_lj* is set to *cut*, the LJ interactions are simply cutoff, as\nwith [pair_style lj/cut ](https://docs.lammps.org/pair_lj.html).\n\nIf *flag_coul* is set to *long*, no cutoff is used on the Coulombic\ninteractions. The long-range portion can calculated by using any of\nseveral [kspace_style ](https://docs.lammps.org/kspace_style.html) command options such as\n*pppm* or *ewald* . Note that if *flag_lj* is also set to long, then\nthe *ewald/disp* or *pppm/disp* Kspace style needs to be used to\nperform the long-range calculations for both the LJ and Coulombic\ninteractions. If *flag_coul* is set to *off*, Coulombic interactions\nare not computed.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nNote that sigma is defined in the LJ formula as the zero-crossing\ndistance for the potential, not as the energy minimum at 2\\^(1/6)\nsigma.\n\nThe latter 2 coefficients are optional. If not specified, the global\nLJ and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both LJ\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the LJ and Coulombic cutoffs for this\ntype pair.\n\nNote that if you are using *flag_lj* set to *long*, you\ncannot specify a LJ cutoff for an atom type pair, since only one\nglobal LJ cutoff is allowed. Similarly, if you are using *flag_coul*\nset to *long*, you cannot specify a Coulombic cutoff for an atom type\npair, since only one global Coulombic cutoff is allowed.\n\nFor *lj/long/tip4p/long* only the LJ cutoff can be specified\nsince a Coulombic cutoff cannot be specified for an individual I,J\ntype pair. All type pairs use the same global Coulombic cutoff\nspecified in the pair_style command.\n\n----------\n\nA version of these styles with a soft core, *lj/cut/soft*, suitable for use in\nfree energy calculations, is part of the FEP package and is documented with\nthe [pair_style */soft ](https://docs.lammps.org/pair_fep_soft.html) styles. The version with soft core is\nonly available if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the lj/long pair styles can be mixed.\nThe default mix value is *geometric* . See the \"pair_modify\" command\nfor details.\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the Lennard-Jones portion of the pair\ninteraction, assuming *flag_lj* is *cut* .\n\nThese pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\ntable/disp options since they can tabulate the short-range portion of\nthe long-range Coulombic and dispersion interactions.\n\nThes pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the\nLennard-Jones portion of the energy and pressure.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThe pair lj/long/coul/long styles support the use of the *inner*,\n*middle*, and *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html)\ncommand, meaning the pairwise forces can be partitioned by distance at\ndifferent levels of the rRESPA hierarchy. See the\n[run_style ](https://docs.lammps.org/run_style.html) command for details.\n\n----------\n\n**(Veld2)** In 't Veld, Ismail, Grest, J Chem Phys, 127, 144711 (2007). \n \n**(Jorgensen4)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem\nPhys, 79, 926 (1983). \n ", - "restrictions": "These styles are part of the KSPACE package. They are only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/asphere = style name of this fix command\n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nvt/asphere temp 300.0 300.0 100.0\nfix 1 all nvt/asphere temp 300.0 300.0 100.0 drag 0.2\n```\n", + "html_filename": "fix_nvt_asphere.html", + "short_description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat", + "description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the aspherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/asphere\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/asphere\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix npt_asphere ](https://docs.lammps.org/fix_npt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "pair_style harmonic/cut", - "pair_style harmonic/cut/omp" + "fix ti/spring" ], "syntax": [ - "pair_style style" + "fix ID group-ID ti/spring k t_s t_eq keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "style", + "arg": "ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* style = harmonic/cut \n", - "examples": "\n```lmps\npair_style harmonic/cut\npair_coeff * * 0.2 2.0\npair_coeff 1 1 0.5 2.5\n```\n", - "html_filename": "pair_harmonic_cut.html", - "short_description": "\nStyle *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula\n\\[\n E = k (r_c - r)^2 \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff", - "description": "\nStyle *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula\n\\[\n E = k (r_c - r)^2 \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff. Note that the usual 1/2 factor is\nincluded in \\(k\\).\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(k\\) (energy/distance^2 units)\n* \\(r_c\\) (distance units)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the \\(k\\) and \\(r_c\\)\ncoefficients can be mixed. The default mix value is *geometric*.\nSee the \"pair_modify\" command for details.\n\nSince the potential is zero at and beyond the cutoff parameter by\nconstruction, there is no need to support the [pair_modify](https://docs.lammps.org/pair_modify.html) shift or tail options for the energy and pressure of the\npair interaction.\n\nThese pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands do not need to be specified in an input script\nthat reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "The *harmonic/cut* pair style is only enabled if LAMMPS was\nbuilt with the EXTRA-PAIR package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "pair_style lebedeva/z" - ], - "syntax": [ - "pair_style [hybrid/overlay ...] lebedeva/z cutoff" - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "ti/spring", "type": 1, "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "k", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "t_s", "type": 2, "choices": [] }, { - "arg": "lebedeva/z", - "type": 1, + "arg": "t_eq", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style hybrid/overlay lebedeva/z 20.0\npair_coeff * * none\npair_coeff 1 2 lebedeva/z CC.Lebedeva C C\n\npair_style hybrid/overlay rebo lebedeva/z 14.0\npair_coeff * * rebo CH.rebo C C\npair_coeff 1 2 lebedeva/z CC.Lebedeva C C\n```\n", - "html_filename": "pair_lebedeva_z.html", - "short_description": "The *lebedeva/z* pair style computes the Lebedeva interaction potential\nas described in **Leb01** and **Leb02**", - "description": "The *lebedeva/z* pair style computes the Lebedeva interaction potential\nas described in **Leb01** and **Leb02**. An important simplification is made, which is to take all\nnormals along the z-axis.\n\nThe Lebedeva potential is intended for the description of the interlayer\ninteraction between graphene layers. To perform a realistic simulation,\nthis potential must be used in combination with an intralayer potential\nsuch as [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html)\nfacilitated by using pair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html). To\nkeep the intralayer properties unaffected, the interlayer interaction\nwithin the same layers should be avoided. This can be achieved by\nassigning different atom types to atoms of different layers (e.g. 1 and\n2 in the examples above).\n\nOther interactions can be set to zero using pair_style *none* .\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij}\\\\\n V_{ij} = & B e^{-\\alpha(r_{ij} - z_0)} \\\\\n & + C(1 + D_1\\rho^2_{ij} + D_2\\rho^4_{ij}) e^{-\\lambda_1\\rho^2_{ij}} e^{-\\lambda_2 (z^2_{ij} - z^2_0)} \\\\\n & - A \\left(\\frac{z_0}{r_ij}\\right)^6 + A \\left( \\frac{z_0}{r_c} \\right)^6 \\\\\n \\rho^2_{ij} = & x^2_{ij} + y^2_{ij} \\qquad (\\mathbf{n_i} \\equiv \\mathbf{\\hat{z}}) \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth forces.\nEnergies are shifted so that they go continuously to zero at the cutoff assuming\nthat the exponential part of \\(V_{ij}\\) (first term) decays sufficiently fast.\nThis shift is achieved by the last term in the equation for \\(V_{ij}\\) above.\n\nThe provided parameter file (CC.Lebedeva) contains two sets of parameters.\n\n- The first set (element name \"C\") is suitable for normal conditions and\n is taken from **Popov**\n- The second set (element name \"C1\") is suitable for high-pressure\n conditions and is taken from **Koziol**\n\nBoth sets contain an additional parameter, *S*, that can be used to\nfacilitate scaling of energies and is set to 1.0 by default.\n\n**(Leb01)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Phys. Rev. B, 84, 245437 (2011) \n \n**(Leb02)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Physica E: 44, 949-954 (2012) \n \n**(Popov)** A.M. Popov, I. V. Lebedeva, A. A. Knizhnik, Y. E. Lozovik and B. V. Potapkin, Chem. Phys. Lett. 536, 82-86 (2012). \n \n**(Koziol)** Z. Koziol, G. Gawlik and J. Jagielski, Chinese Phys. B 28, 096101 (2019). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp/graphene/hbd ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ti/spring = style name of this fix command\n* k = spring constant (force/distance units)\n* t_eq = number of steps for the equilibration procedure\n* t_s = number of steps for the switching procedure\n* zero or more keyword/value pairs may be appended to args\n* keyword = function \n *        function value = function-ID \n         function-ID = ID of the switching function (1 or 2) \nExample\n\"\"\"\"\"\"\" \n *    fix 1 all ti/spring 50.0 2000 1000 function 2 \n", + "examples": "", + "html_filename": "fix_ti_spring.html", + "short_description": "This fix allows you to compute the free energy of crystalline solids\nby performing a nonequilibrium thermodynamic integration between the\nsolid of interest and an Einstein crystal", + "description": "This fix allows you to compute the free energy of crystalline solids\nby performing a nonequilibrium thermodynamic integration between the\nsolid of interest and an Einstein crystal. A detailed explanation of\nhow to use this command and choose its parameters for optimal\nperformance and accuracy is given in the paper by\n**Freitas1**. The paper also presents a short summary of the\ntheory of nonequilibrium thermodynamic integration.\n\nThe thermodynamic integration procedure is performed by rescaling the\nforce on each atom. Given an atomic configuration the force (F) on\neach atom is given by\n\\[\n F = \\left( 1-\\lambda \\right) F_{\\text{solid}} + \\lambda F_{\\text{harm}}\\]\nwhere F_solid is the force that acts on an atom due to an interatomic\npotential (\\ *e.g.* EAM potential), F_harm is the force due to the\nEinstein crystal harmonic spring, and lambda is the coupling parameter\nof the thermodynamic integration. An Einstein crystal is a solid where\neach atom is attached to its equilibrium position by a harmonic spring\nwith spring constant *k* . With this fix a spring force is applied\nindependently to each atom in the group defined by the fix to tether\nit to its initial position. The initial position of each atom is its\nposition at the time the fix command was issued.\n\nThe fix acts as follows: during the first *t_eq* steps after the fix\nis defined the value of lambda is zero. This is the period to\nequilibrate the system in the lambda = 0 state. After this the value\nof lambda changes dynamically during the simulation from 0 to 1\naccording to the function defined using the keyword *function*\n(described below), this switching from lambda from 0 to 1 is done in\n*t_s* steps. Then comes the second equilibration period of *t_eq* to\nequilibrate the system in the lambda = 1 state. After that, the\nswitching back to the lambda = 0 state is made using *t_s* timesteps\nand following the same switching function. After this period the value\nof lambda is kept equal to zero and the fix has no other effect on the\ndynamics of the system.\n\nThe processes described above is known as nonequilibrium thermodynamic\nintegration and is has been shown (**Freitas1**) to present a\nmuch superior efficiency when compared to standard equilibrium\nmethods. The reason why the switching it is made in both directions\n(potential to Einstein crystal and back) is to eliminate the\ndissipated heat due to the nonequilibrium process. Further details\nabout nonequilibrium thermodynamic integration and its implementation\nin LAMMPS is available in **Freitas1**.\n\nThe *function* keyword allows the use of two different lambda\npaths. Option *1* results in a constant rate of change of lambda with\ntime:\n\\[\n \\lambda(\\tau) = \\tau\\]\nwhere \\(\\tau\\) is the scaled time variable *t/t_s*. The option *2*\nperforms the lambda switching at a rate defined by the following\nswitching function\n\\[\n \\lambda(\\tau) = \\tau^5 \\left( 70 \\tau^4 - 315 \\tau^3 + 540 \\tau^2 -\n 420 \\tau + 126 \\right)\\]\nThis function has zero slope as lambda approaches its extreme values\n(0 and 1), according to **deKoning96** this results in\nsmaller fluctuations on the integral to be computed on the\nthermodynamic integration. The use of option *2* is recommended since\nit results in better accuracy and less dissipation without any\nincrease in computational resources cost.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As described in **Freitas1**, it is important to keep\n > the center-of-mass fixed during the thermodynamic integration. A\n > nonzero total velocity will result in divergences during the\n > integration due to the fact that the atoms are 'attached' to their\n > equilibrium positions by the Einstein crystal. Check the option\n > *zero* of [fix langevin ](https://docs.lammps.org/fix_langevin.html) and [velocity > ](https://docs.lammps.org/velocity.html). The use of the Nose-Hoover thermostat ([fix nvt > ](https://docs.lammps.org/fix_nh.html)) is *NOT* recommended due to its well documented issues\n > with the canonical sampling of harmonic degrees of freedom (notice\n > that the *chain* option will *NOT* solve this problem). The\n > Langevin thermostat ([fix langevin ](https://docs.lammps.org/fix_langevin.html)) correctly\n > thermostats the system and we advise its usage with ti/spring\n > command. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of tethered atoms to\n[binary restart files ](https://docs.lammps.org/restart.html), so that the spring effect will\nbe the same in a restarted simulation. See the [read restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the per-atom springs to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and a global vector quantities which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nscalar is an energy which is the sum of the spring energy for each\natom, where the per-atom energy is \\(0.5 \\cdot k \\cdot r^2\\).\nThe vector stores 2 values. The first value is the coupling parameter lambda.\nThe second value is the derivative of lambda with respect to the integer\ntimestep *s*, i.e. \\(\\frac{d \\lambda}{d s}\\). In order to obtain\n\\(\\frac{d \\lambda}{d t}\\),\nwhere t is simulation time, this 2nd value needs to be divided by the\ntimestep size (e.g. 0.5 fs). The scalar and vector values calculated\nby this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the per-atom spring energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > this fix. \n > \n\n\n**(Freitas1)** Freitas, Asta, and de Koning, Computational Materials\nScience, 112, 333 (2016). \n \n**(deKoning96)** de Koning and Antonelli, Phys Rev E, 53, 465 (1996). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" }, { "command": [ - "pair_style kolmogorov/crespi/z" + "compute temp/deform/eff" ], "syntax": [ - "pair_style [hybrid/overlay ...] kolmogorov/crespi/z cutoff" + "compute ID group-ID temp/deform/eff" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "kolmogorov/crespi/z", + "arg": "temp/deform/eff", "type": 1, "choices": [] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style hybrid/overlay kolmogorov/crespi/z 20.0\npair_coeff * * none\npair_coeff 1 2 kolmogorov/crespi/z CC.KC C C\n\npair_style hybrid/overlay rebo kolmogorov/crespi/z 14.0\npair_coeff * * rebo CH.rebo C C\npair_coeff 1 2 kolmogorov/crespi/z CC.KC C C\n```\n", - "html_filename": "pair_kolmogorov_crespi_z.html", - "short_description": "The *kolmogorov/crespi/z* style computes the Kolmogorov-Crespi interaction\npotential as described in **KC05**", - "description": "The *kolmogorov/crespi/z* style computes the Kolmogorov-Crespi interaction\npotential as described in **KC05**. An important simplification is made,\nwhich is to take all normals along the z-axis.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & e^{-\\lambda(r_{ij} -z_0)} \\left[ C + f(\\rho_{ij}) + f(\\rho_{ji}) \\right] - A \\left( \\frac{r_{ij}}{z_0}\\right)^{-6} + A \\left( \\frac{\\textrm{cutoff}}{z_0}\\right)^{-6} \\\\\n \\rho_{ij}^2 = & \\rho_{ji}^2 = x_{ij}^2 + y_{ij}^2 \\qquad \\qquad (\\mathbf{n}_i \\equiv \\mathbf{\\hat{z}}) \\\\\n f(\\rho) = & e^{-(\\rho/\\delta)^2} \\sum_{n=0}^2 C_{2n} \\left( \\rho/\\delta \\right)^{2n} \\end{align*} \\]\nIt is important to have a sufficiently large cutoff to ensure smooth forces.\nEnergies are shifted so that they go continuously to zero at the cutoff assuming\nthat the exponential part of \\(V_{ij}\\) (first term) decays sufficiently fast.\nThis shift is achieved by the last term in the equation for \\(V_{ij}\\) above.\n\nThis potential is intended for interactions between two layers of graphene.\nTherefore, to avoid interaction between layers in multi-layered materials,\neach layer should have a separate atom type and interactions should only\nbe computed between atom types of neighboring layers.\n\nThe parameter file (e.g. CC.KC), is intended for use with metal\n[units ](https://docs.lammps.org/units.html), with energies in meV. An additional parameter, *S*,\nis available to facilitate scaling of energies in accordance with\n**vanWijk**.\n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\n**(KC05)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(vanWijk)** M. M. van Wijk, A. Schuring, M. I. Katsnelson, and A. Fasolino, Physical Review Letters, 113, 135504 (2014) \n ", - "restrictions": "This fix is part of the INTERLAYER package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style lebedeva/z ](https://docs.lammps.org/pair_lebedeva_z.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/deform/eff = style name of this compute command \n", + "examples": "\n```lmps\ncompute myTemp all temp/deform/eff\n```\n", + "html_filename": "compute_temp_deform_eff.html", + "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation", + "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation. The size/shape change is\ninduced by use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command. A\ncompute of this style is created by the\n[fix nvt/sllod/eff ](https://docs.lammps.org/fix_nvt_sllod_eff.html) command to compute the thermal\ntemperature of atoms for thermostatting purposes. A compute of this\nstyle can also be used by any command that computes a temperature\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix npt/eff ](https://docs.lammps.org/fix_nh_eff.html)).\n\nThe calculation performed by this compute is exactly like that\ndescribed by the [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\ncommand, except that the formula for the temperature includes the\nradial electron velocity contributions, as discussed by the [compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command. Note that only the\ntranslational degrees of freedom for each nuclei or electron are\naffected by the streaming velocity adjustment. The radial velocity\ncomponent of the electrons is not affected.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html). The\nvector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html), [fix deform ](https://docs.lammps.org/fix_deform.html),\n[fix nvt/sllod/eff ](https://docs.lammps.org/fix_nvt_sllod_eff.html)\n" }, { "command": [ - "compute stress/mop" + "fix mdi/qm" ], "syntax": [ - "compute ID group-ID style dir args keywords ..." + "fix ID group-ID mdi/qm keyword value(s) keyword value(s) ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -35817,56 +34974,61 @@ export const command_docs = [ "choices": [] }, { - "arg": "stress/mop/profile", - "type": 3, - "choices": [ - "stress/mop", - "stress/mop/profile" - ] + "arg": "mdi/qm", + "type": 1, + "choices": [] }, { - "arg": "y", + "arg": "mc", "type": 3, "choices": [ - "x", - "y" + "virial", + "add", + "every", + "connect", + "elements", + "mc" ] }, { - "arg": "args", + "arg": "value(s)", "type": 2, "choices": [] }, { - "arg": "angle", + "arg": "mc", "type": 3, "choices": [ - "kin", - "conf", - "total", - "pair", - "bond", - "angle" + "virial", + "add", + "every", + "connect", + "elements", + "mc" ] + }, + { + "arg": "value(s)", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = stress/mop or stress/mop/profile\n* dir = x or y or z is the direction normal to the plane\n* args = argument specific to the compute style\n* keywords = kin or conf or total or pair or bond or angle or dihedral (one or more can be specified) \n *      stress/mop args = pos \n       pos = lower or center or upper or coordinate value (distance units) is the position of the plane \n *      stress/mop/profile args = origin delta \n       origin = lower or center or upper or coordinate value (distance units) is the position of the first plane \n       delta = value (distance units) is the distance between planes \n", - "examples": "\n```lmps\ncompute 1 all stress/mop x lower total\ncompute 1 liquid stress/mop z 0.0 kin conf\nfix 1 all ave/time 10 1000 10000 c_1[*] file mop.time\nfix 1 all ave/time 10 1000 10000 c_1[2] file mop.time\n\ncompute 1 all stress/mop/profile x lower 0.1 total\ncompute 1 liquid stress/mop/profile z 0.0 0.25 kin conf\nfix 1 all ave/time 500 20 10000 c_1[*] ave running overwrite file mopp.time mode vector\n```\n", - "html_filename": "compute_stress_mop.html", - "short_description": "Compute *stress/mop* and compute *stress/mop/profile* define\ncomputations that calculate components of the local stress tensor using\nthe method of planes **mop-todd**", - "description": "Compute *stress/mop* and compute *stress/mop/profile* define\ncomputations that calculate components of the local stress tensor using\nthe method of planes **mop-todd**. Specifically in compute\n*stress/mop* calculates 3 components are computed in directions *dir*,\\\n*x* ; *dir*,\\ *y* ; and *dir*,\\ *z* ; where *dir* is the direction\nnormal to the plane, while in compute *stress/mop/profile* the profile\nof the stress is computed.\n\nContrary to methods based on histograms of atomic stress (i.e., using\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)), the method of planes\nis compatible with mechanical balance in heterogeneous systems and at\ninterfaces **mop-todd**.\n\nThe stress tensor is the sum of a kinetic term and a configurational\nterm, which are given respectively by Eq. (21) and Eq. (16) in\n**mop-todd**. For the kinetic part, the algorithm considers\nthat atoms have crossed the plane if their positions at times\n\\(t-\\Delta t\\) and \\(t\\) are one on either side of the plane,\nand uses the velocity at time \\(t-\\Delta t/2\\) given by the velocity\nVerlet algorithm.\n\n **New in version 15Jun2023** \n\n contributions from bond, angle and dihedral potentials\nBetween one and seven keywords can be used to indicate which contributions\nto the stress must be computed: total stress (total), kinetic stress\n(kin), configurational stress (conf), stress due to bond stretching\n(bond), stress due to angle bending (angle), stress due to dihedral terms (dihedral)\nand/or due to pairwise non-bonded interactions (pair).\n\nNOTE 1: The configurational stress is computed considering all pairs of\natoms where at least one atom belongs to group group-ID.\n\nNOTE 2: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the [pair_modify tail yes](https://docs.lammps.org/pair_modify.html) command, since those are contributions to the global\nsystem pressure.\n\nNOTE 3: The local stress profile generated by compute\n*stress/mop/profile* is similar to that obtained by compute\n[stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html).\nA key difference is that compute *stress/mop/profile*\nconsiders particles crossing a set of planes, while\n*stress/cartesian* computes averages for a set\nof small volumes.\nMoreover, *stress/cartesian* compute computes the diagonal components of the stress\ntensor \\(P_{xx}\\), \\(P_{yy}\\), and \\(P_{zz}\\), while\n*stress/mop/profile* computes the components\n\\(P_{ix}\\), \\(P_{iy}\\), and \\(P_{iz}\\), where \\(i\\) is the\ndirection normal to the plane.\n\n #### Output info\n\nCompute *stress/mop* calculates a global vector (indices starting at 1),\nwith 3 values for each declared keyword (in the order the keywords have\nbeen declared). For each keyword, the stress tensor components are\nordered as follows: stress_dir,x, stress_dir,y, and stress_dir,z.\n\nCompute *stress/mop/profile* instead calculates a global array, with 1\ncolumn giving the position of the planes where the stress tensor was\ncomputed, and with 3 columns of values for each declared keyword (in the\norder the keywords have been declared). For each keyword, the profiles\nof stress tensor components are ordered as follows: stress_dir,x;\nstress_dir,y; and stress_dir,z.\n\nThe values are in pressure [units ](https://docs.lammps.org/units.html).\n\nThe values produced by this compute can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). For instance, the results can be\nwritten to a file using the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand. Please see the example in the examples/PACKAGES/mop folder.\n\n**(mop-todd)** B. D. Todd, Denis J. Evans, and Peter J. Daivis: \"Pressure tensor for inhomogeneous fluids\",\nPhys. Rev. E 52, 1627 (1995). \n ", - "restrictions": "These styles are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS is built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page on for more info.\n\nThe method is implemented for orthogonal simulation boxes whose\nsize does not change in time, and axis-aligned planes.\n\nThe method only works with two-body pair interactions, because it\nrequires the class method ``Pair::single()`` to be implemented, which is\nnot possible for manybody potentials. In particular, compute\n*stress/mop/profile* and *stress/mop* do not work with more than two-body\npair interactions, long range (kspace) interactions and\nimproper intramolecular interactions.\n\nThe impact of fixes that affect the stress (e.g. fix langevin) is\nalso not included in the stress computed here.\n", - "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/cartesian ](https://docs.lammps.org/compute_stress_cartesian.html),\n[compute stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html),\n[compute stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* mdi/qm = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = virial or add or every or connect or elements or mc \n *        virial args = yes or no \n         yes = request virial tensor from server code \n         no = do not request virial tensor from server code \n *        add args = yes or no \n         yes = add returned value from server code to LAMMPS quantities \n         no = do not add returned values to LAMMPS quantities \n *        every args = Nevery \n         Nevery = request values from server code once every Nevery steps \n *        connect args = yes or no \n         yes = perform a one-time connection to the MDI engine code \n         no = do not perform the connection operation \n *        elements args = N_1 N_2 ... N_ntypes \n         N_1,N_2,...N_ntypes = chemical symbol for each of ntypes LAMMPS atom types \n *        mc args = mcfixID \n         mcfixID = ID of a Monte Carlo fix designed to work with this fix \n", + "examples": "\n```lmps\nfix 1 all mdi/qm\nfix 1 all mdi/qm virial yes\nfix 1 all mdi/qm add no every 100 elements C C H O\n```\n", + "html_filename": "fix_mdi_qm.html", + "short_description": "\nThis command enables LAMMPS to act as a client with another server\ncode that will compute the total energy, per-atom forces, and total\nvirial for atom conformations and simulation box size/shapes that\nLAMMPS sends it", + "description": "\nThis command enables LAMMPS to act as a client with another server\ncode that will compute the total energy, per-atom forces, and total\nvirial for atom conformations and simulation box size/shapes that\nLAMMPS sends it.\n\nTypically the server code will be a quantum mechanics (QM) code, hence\nthe name of the fix. However this is not required, the server code\ncould be another classical molecular dynamics code or LAMMPS itself.\nThe server code must support use of the [MDI Library](https://molssi-mdi.github.io/MDI_Library/html/index.html) as\nexplained below.\n\nTypically, to use this fix, the input script should not define any\nother classical force field components, e.g. a pair style, bond style,\netc.\n\nThese are example use cases for this fix, discussed further below:\n\n* perform an ab initio MD (AIMD) simulation with quantum forces\n* perform an energy minimization with quantum forces\n* perform a nudged elastic band (NEB) calculation with quantum forces\n* perform a QM calculation for a series of independent systems which\n LAMMPS reads or generates once\n* run a classical MD simulation and calculate QM energy/forces once\n every N steps on the current configuration\n\nMore generally any command which calculates per-atom forces can instead\nuse quantum forces by defining this fix. Examples are the Monte Carlo\ncommands [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) and [fix atom/swap](https://docs.lammps.org/fix_atom_swap.html), as well as the [compute born/matrix](https://docs.lammps.org/compute_born_matrix.html) command. The only requirement is that internally\nthe command invokes the post_force() method of fixes such as this one,\nwhich will trigger the quantum calculation.\n\nThe code coupling performed by this command is done via the `MDI\nLibrary `_.\nLAMMPS runs as an MDI driver (client), and sends MDI commands to an\nexternal MDI engine code (server), e.g. a QM code which has support\nfor MDI. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html) page for more\ninformation about how LAMMPS can operate as either an MDI driver or\nengine.\n\nThe ``examples/mdi`` directory contains input scripts using this fix in\nthe various use cases discussed below. In each case, two instances of\nLAMMPS are used, once as an MDI driver, once as an MDI engine (surrogate\nfor a QM code). The ``examples/mdi/README`` file explains how to launch\ntwo codes so that they communicate via the MDI library using either MPI\nor sockets. Any QM code that supports MDI could be used in place of\nLAMMPS acting as a QM surrogate. See the [Howto mdi ](https://docs.lammps.org/Howto_mdi.html)\npage for a current list (March 2022) of such QM codes. The\n``examples/QUANTUM`` directory has examples for coupling LAMMPS to 3 QM\ncodes either via this fix or the [fix mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html)\ncommand.\n\nNote that an engine code can support MDI in either or both of two modes.\nIt can be used as a stand-alone code, launched at the same time as\nLAMMPS. Or it can be used as a plugin library, which LAMMPS loads. See\nthe [mdi plugin ](https://docs.lammps.org/mdi.html) command for how to trigger LAMMPS to load a\nplugin library. The ``examples/mdi/README`` file and\n``examples/QUANTUM/QM-code/README`` files explain how to launch the two\ncodes in either mode.\n\n----------\n\nThe *virial* keyword setting of yes or no determines whether LAMMPS\nwill request the QM code to also compute and return the QM\ncontribution to a stress tensor for the system which LAMMPS will\nconvert to a 6-element symmetric virial tensor.\n\nThe *add* keyword setting of *yes* or *no* determines whether the\nenergy and forces and virial returned by the QM code will be added to\nthe LAMMPS internal energy and forces and virial or not. If the\nsetting is *no* then the default [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\nand [fix_modify virial ](https://docs.lammps.org/fix_modify.html) settings are also set to\n*no* and your input scripts should not set them to yes. See more\ndetails on these fix_modify settings below.\n\nWhatever the setting for the *add* keyword, the QM energy, forces, and\nvirial will be stored by the fix, so they can be accessed by other\ncommands. See details below.\n\nThe *every* keyword determines how often the QM code will be invoked\nduring a dynamics run with the current LAMMPS simulation box and\nconfiguration of atoms. The QM code will be called once every\n*Nevery* timesteps. By default *Nevery* = 1.\n\nThe *connect* keyword determines whether this fix performs a one-time\nconnection to the QM code. The default is *yes*. The only time a *no*\nis needed is if this command is used multiple times in an input script\nand the MDI coupling is between two stand-alone codes (not plugin mode).\nE.g. if it used inside a loop which also uses the [clear ](https://docs.lammps.org/clear.html)\ncommand to destroy the system (including this fix). See the\n``examples/mdi/in.series.driver`` script as an example of this, where\nLAMMPS is using the QM code to compute energy and forces for a series of\nsystem configurations. In this use case *connect no* is used along with\nthe [mdi connect and exit ](https://docs.lammps.org/mdi.html) command to one-time\ninitiate/terminate the connection outside the loop.\n\nThe *elements* keyword allows specification of what element each\nLAMMPS atom type corresponds to. This is specified by the chemical\nsymbol of the element, e.g. C or Al or Si. A symbol must be specified\nfor each of the ntypes LAMMPS atom types. Multiple LAMMPS types can\nrepresent the same element. Ntypes is typically specified via the\n[create_box ](https://docs.lammps.org/create_box.html) command or in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nIf this keyword is specified, then this fix will send the MDI\n\">ELEMENTS\" command to the engine, to ensure the two codes are\nconsistent in their definition of atomic species. If this keyword is\nnot specified, then this fix will send the MDI >TYPES command to the\nengine. This is fine if both the LAMMPS driver and the MDI engine are\ninitialized so that the atom type values are consistent in both codes.\n\nThe *mc* keyword enables this fix to be used with a Monte Carlo (MC)\nfix to calculate before/after quantum energies as part of the MC\naccept/reject criterion. The [fix gcmc ](https://docs.lammps.org/fix_gcmc.html) and [fixatom/swap ](https://docs.lammps.org/fix_atom_swap.html) commands can be used in this manner.\nSpecify the ID of the MC fix following the *mc* keyword. This allows\nthe two fixes to coordinate when MC events are being calculated versus\nMD timesteps between the MC events.\n\n----------\n\nThe following 3 example use cases are illustrated in the\n``examples/mdi`` directory. See its README file for more details.\n\n(1) To run an ab initio MD (AIMD) dynamics simulation, or an energy\nminimization with QM forces, or a multi-replica NEB calculation, use\n*add yes* and *every 1* (the defaults). This is so that every time\nLAMMPS needs energy and forces, the QM code will be invoked.\n\nBoth LAMMPS and the QM code should define the same system (simulation\nbox, atoms and their types) in their respective input scripts. Note\nthat on this scenario, it may not be necessary for LAMMPS to define a\npair style or use a neighbor list.\n\nLAMMPS will then perform the timestepping or minimization iterations\nfor the simulation. At the point in each timestep or iteration when\nLAMMPS needs the force on each atom, it communicates with the engine\ncode. It sends the current simulation box size and shape (if they\nchange dynamically, e.g. during an NPT simulation), and the current\natom coordinates. The engine code computes quantum forces on each\natom and the total energy of the system and returns them to LAMMPS.\n\nNote that if the AIMD simulation is an NPT or NPH model, or the energy\nminimization includes [fix box relax ](https://docs.lammps.org/fix_box_relax.html) to\nequilibrate the box size/shape, then LAMMPS computes a pressure. This\nmeans the *virial* keyword should be set to *yes* so that the QM\ncontribution to the pressure can be included.\n\n(2) To run dynamics with a LAMMPS interatomic potential, and evaluate\nthe QM energy and forces once every 1000 steps, use *add no* and\n*every 1000*. This could be useful for using an MD run to generate\nrandomized configurations which are then passed to the QM code to\nproduce training data for a machine learning potential. A [dumpcustom ](https://docs.lammps.org/dump.html) command could be invoked every 1000 steps to dump the\natom coordinates and QM forces to a file. Likewise the QM energy and\nvirial could be output with the [thermo_style custom](https://docs.lammps.org/thermo_style.html) command.\n\n(3) To do a QM evaluation of energy and forces for a series of *N*\nindependent systems (simulation box and atoms), use *add no* and\n*every 1*. Write a LAMMPS input script which loops over the *N*\nsystems. See the [Howto multiple ](https://docs.lammps.org/Howto_multiple.html) doc page for\ndetails on looping and removing old systems. The series of systems\ncould be initialized by reading them from data files with\n[read_data ](https://docs.lammps.org/read_data.html) commands. Or, for example, by using the\n[lattice ](https://docs.lammps.org/lattice.html) , [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[delete_atoms ](https://docs.lammps.org/delete_atoms.html), and/or [displace_atomsrandom ](https://docs.lammps.org/displace_atoms.html) commands to generate a series of different\nsystems. At the end of the loop perform [run 0 ](https://docs.lammps.org/run.html) and\n[write_dump ](https://docs.lammps.org/write_dump.html) commands to invoke the QM code and\noutput the QM energy and forces. As in (2) this be useful to produce\nQM data for training a machine learning potential.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy computed by the QM code to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy yes ](https://docs.lammps.org/fix_modify.html), unless the *add* keyword is\nset to *no*, in which case the default setting is *no*.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution computed by the QM code to the global\npressure of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyvirial yes ](https://docs.lammps.org/fix_modify.html), unless the *add* keyword is set to *no*, in\nwhich case the default setting is *no*.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy\nreturned by the QM code. The scalar value calculated by this fix is\n\"extensive\".\n\nThis fix also computes a global vector with of length 6 which contains\nthe symmetric virial tensor values returned by the QM code. It can\nlikewise be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThe ordering of values in the symmetric virial tensor is as follows:\nvxx, vyy, vzz, vxy, vxz, vyz. The values will be in pressure\n[units ](https://docs.lammps.org/units.html).\n\nThis fix also computes a peratom array with 3 columns which contains\nthe peratom forces returned by the QM code. It can likewise be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nAssuming the *add* keyword is set to *yes* (the default), the forces\ncomputed by the QM code are used during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the potential energy associated with the QM forces to\n > be included in the total potential energy of the system (the\n > quantity being minimized), you MUST not disable the\n > [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this fix, which\n > means the *add* keyword should also be set to *yes* (the default). \n > \n\n", + "restrictions": "This fix is part of the MDI package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use LAMMPS as an MDI driver in conjunction with other MDI-enabled\ncodes (MD or QM codes), the [units ](https://docs.lammps.org/units.html) command should be used\nto specify *real* or *metal* units. This will ensure the correct unit\nconversions between LAMMPS and MDI units. The other code will also\nperform similar unit conversions into its preferred units.\n\nLAMMPS can also be used as an MDI driver in other unit choices it\nsupports, e.g. *lj*, but then no unit conversion to MDI units is\nperformed.\n\nIf this fix is used in conjunction with a QM code that does not support\nperiodic boundary conditions (more specifically, a QM code that does not\nsupport the ``>CELL`` MDI command), the LAMMPS system must be fully\nnon-periodic. I.e. no dimension of the system can be periodic.\n", + "related": "[mdi plugin ](https://docs.lammps.org/mdi.html),\n[mdi engine ](https://docs.lammps.org/mdi.html),\n[fix mdi/qmmm ](https://docs.lammps.org/fix_mdi_qmmm.html)\n" }, { "command": [ - "fix ttm", - "fix ttm/grid" + "fix npt/asphere", + "fix npt/asphere/omp" ], "syntax": [ - "fix ID group-ID ttm seed C_e rho_e kappa_e gamma_p gamma_s v_0 Nx Ny Nz keyword value ...", - "fix ID group-ID ttm/mod seed init_file Nx Ny Nz keyword value ..." + "fix ID group-ID npt/asphere keyword value ..." ], "args": [ [ @@ -35886,192 +35048,126 @@ export const command_docs = [ "choices": [] }, { - "arg": "ttm", - "type": 1, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] - }, - { - "arg": "C_e", - "type": 2, - "choices": [] - }, - { - "arg": "rho_e", - "type": 2, - "choices": [] + "arg": "npt/asphere", + "type": 3, + "choices": [ + "npt/asphere", + "npt/asphere/omp" + ] }, { - "arg": "kappa_e", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "gamma_p", + "arg": "value", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* npt/asphere = style name of this fix command\n* additional thermostat and barostat related keyword/value pairs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all npt/asphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0\nfix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0\nfix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2\nfix 2 water npt/asphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial\n```\n", + "html_filename": "fix_npt_asphere.html", + "short_description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat", + "description": "Perform constant NPT integration to update position, velocity,\norientation, and angular velocity each timestep for aspherical or\nellipsoidal particles in the group using a Nose/Hoover temperature\nthermostat and Nose/Hoover pressure barostat. P is pressure; T is\ntemperature. This creates a system trajectory consistent with the\nisothermal-isobaric ensemble.\n\nThis fix differs from the [fix npt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the aspherical particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat and barostat are\nspecified by keywords and values documented with the [fix npt](https://docs.lammps.org/fix_nh.html) command. See, for example, discussion of the *temp*, *iso*,\n*aniso*, and *dilate* keywords.\n\nThe particles in the fix group are the only ones whose velocities and\npositions are updated by the velocity/position update portion of the\nNPT integration.\n\nRegardless of what particles are in the fix group, a global pressure is\ncomputed for all particles. Similarly, when the size of the simulation\nbox is changed, all particles are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the particles in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of particles in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp/asphere\" and\n\"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp all temp/asphere\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp/asphere ](https://docs.lammps.org/compute_temp_asphere.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is \"all\"\nsince pressure is computed for the entire system.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat and barostat\nto [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its thermostatting or barostatting procedure. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature and pressure over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[fix npt ](https://docs.lammps.org/fix_nh.html), [fix nve_asphere ](https://docs.lammps.org/fix_nve_asphere.html), [fix nvt_asphere ](https://docs.lammps.org/fix_nvt_asphere.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" +}, +{ + "command": [ + "fix_modify AtC output" + ], + "syntax": [ + "fix_modify output [text|full_text|binary|vector_components|tensor_components]", + "fix_modify output index [step|time]" + ], + "args": [ + [ { - "arg": "gamma_s", - "type": 2, + "arg": "fix_modify", + "type": 1, "choices": [] }, { - "arg": "v_0", + "arg": "", "type": 2, "choices": [] }, { - "arg": "Nx", - "type": 2, + "arg": "output", + "type": 1, "choices": [] }, { - "arg": "Ny", + "arg": "", "type": 2, "choices": [] }, { - "arg": "Nz", + "arg": "", "type": 2, "choices": [] }, { - "arg": "outfile", + "arg": "[text|full_text|binary|vector_components|tensor_components]", "type": 3, "choices": [ - "set", - "infile", - "outfile" + "text", + "full_text", + "binary", + "vector_components", + "tensor_components" ] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ], [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "ttm/mod", - "type": 2, - "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] - }, - { - "arg": "init_file", - "type": 2, - "choices": [] - }, - { - "arg": "Nx", - "type": 2, - "choices": [] - }, - { - "arg": "Ny", + "arg": "", "type": 2, "choices": [] }, { - "arg": "Nz", - "type": 2, + "arg": "output", + "type": 1, "choices": [] }, { - "arg": "outfile", - "type": 3, - "choices": [ - "set", - "infile", - "outfile" - ] - }, - { - "arg": "value", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = ttm or ttm/grid or ttm/mod\n* seed = random number seed to use for white noise (positive integer)\n* remaining arguments for fix ttm or fix ttm/grid \n *        C_e = electronic specific heat (energy/(electron\\*temperature) units) \n *        rho_e = electronic density (electrons/volume units) \n *        kappa_e = electronic thermal conductivity (energy/(time\\*distance\\*temperature) units) \n *        gamma_p = friction coefficient due to electron-ion interactions (mass/time units) \n *        gamma_s = friction coefficient due to electronic stopping (mass/time units) \n *        v_0 = electronic stopping critical velocity (velocity units) \n *        Nx = number of thermal solve grid points in the x-direction (positive integer) \n *        Ny = number of thermal solve grid points in the y-direction (positive integer) \n *        Nz = number of thermal solve grid points in the z-direction (positive integer) \n* remaining arguments for fix ttm/mod: \n *        init_file = file with the parameters to TTM \n *        Nx = number of thermal solve grid points in the x-direction (positive integer) \n *        Ny = number of thermal solve grid points in the y-direction (positive integer) \n *        Nz = number of thermal solve grid points in the z-direction (positive integer) \n* zero or more keyword/value(s) pairs may be appended\n* keyword = set or infile or outfile \n *        set value = Tinit \n         Tinit = initial electronic temperature at all grid points (temperature units) \n *        infile value = file.in with grid values for electronic temperatures \n *        outfile values = Nout file.out \n         Nout = dump grid temperatures every this many timesteps \n         file.out = filename to write grid temperatures to \n", - "examples": "\n```lmps\nfix 2 all ttm 699489 1.0 1.0 10 0.1 0.0 2.0 1 12 1 infile initial outfile 1000 T.out\nfix 3 all ttm/grid 123456 1.0 1.0 1.0 1.0 1.0 5.0 5 5 5 infile Te.in\nfix 4 all ttm/mod 34277 parameters.txt 5 5 5 infile T_init outfile 10 T_out\n```\nExample input scripts using these commands can be found in examples/ttm.\n", - "html_filename": "fix_ttm.html", - "short_description": "Use a two-temperature model (TTM) to represent heat transfer through\nand between electronic and atomic subsystems", - "description": "Use a two-temperature model (TTM) to represent heat transfer through\nand between electronic and atomic subsystems. LAMMPS models the\natomic subsystem as usual with a molecular dynamics model and the\nclassical force field specified by the user. The electronic subsystem\nis modeled as a continuum, or a background \"gas\", on a regular grid\nwhich overlays the simulation domain. Energy can be transferred\nspatially within the grid representing the electrons. Energy can also\nbe transferred between the electronic and atomic subsystems. The\nalgorithm underlying this fix was derived by D. M. Duffy\nand A. M. Rutherford and is discussed in two J Physics: Condensed\nMatter papers: **Duffy** and **Rutherford**. They used this algorithm in cascade simulations where\na primary knock-on atom (PKA) was initialized with a high velocity to\nsimulate a radiation event.\n\nThe description in this subsection applies to all 3 fix styles:\n*ttm*, *ttm/grid*, and *ttm/mod*.\n\nFix *ttm/grid* distributes the regular grid across processors consistent\nwith the subdomains of atoms owned by each processor, but is otherwise\nidentical to fix ttm. Note that fix *ttm* stores a copy of the grid on\neach processor, which is acceptable when the overall grid is reasonably\nsmall. For larger grids you should use fix *ttm/grid* instead.\n\nFix *ttm/mod* adds options to account for external heat sources (e.g. at\na surface) and for specifying parameters that allow the electronic heat\ncapacity to depend strongly on electronic temperature. It is more\nexpensive computationally than fix *ttm* because it treats the thermal\ndiffusion equation as non-linear. More details on fix *ttm/mod* are\ngiven below.\n\nHeat transfer between the electronic and atomic subsystems is carried\nout via an inhomogeneous Langevin thermostat. Only atoms in the fix\ngroup contribute to and are affected by this heat transfer.\n\nThis thermostatting differs from the regular Langevin thermostat\n([fix langevin ](https://docs.lammps.org/fix_langevin.html)) in three important ways. First,\nthe Langevin thermostat is applied uniformly to all atoms in the\nuser-specified group for a single target temperature, whereas the TTM\nfixes apply Langevin thermostatting locally to atoms within the\nvolumes represented by the user-specified grid points with a target\ntemperature specific to that grid point. Second, the Langevin\nthermostat couples the temperature of the atoms to an infinite heat\nreservoir, whereas the heat reservoir for the TTM fixes is finite and\nrepresents the local electrons. Third, the TTM fixes allow users to\nspecify not just one friction coefficient, but rather two independent\nfriction coefficients: one for the electron-ion interactions\n(*gamma_p*), and one for electron stopping (*gamma_s*).\n\nWhen the friction coefficient due to electron stopping, *gamma_s*, is\nnon-zero, electron stopping effects are included for atoms moving\nfaster than the electron stopping critical velocity, *v_0*. For\nfurther details about this algorithm, see **Duffy** and\n**Rutherford**.\n\nEnergy transport within the electronic subsystem is solved according\nto the heat diffusion equation with added source terms for heat\ntransfer between the subsystems:\n\\[\n C_e \\rho_e \\frac{\\partial T_e}{\\partial t} =\n \\bigtriangledown (\\kappa_e \\bigtriangledown T_e) -\n g_p (T_e - T_a) + g_s T_a'\\]\nwhere \\(C_e\\) is the specific heat, \\(\\rho_e\\) is the density,\n\\(\\kappa_e\\) is the thermal conductivity, *T* is temperature, the\n\"e\" and \"a\" subscripts represent electronic and atomic subsystems\nrespectively, \\(g_p\\) is the coupling constant for the electron-ion\ninteraction, and \\(g_s\\) is the electron stopping coupling\nparameter. \\(C_e\\), \\(\\rho_e\\), and \\(\\kappa_e\\) are\nspecified as parameters to the fix *ttm* or *ttm/grid*. The other\nquantities are derived. The form of the heat diffusion equation used\nhere is almost the same as that in equation 6 of **Duffy**,\nwith the exception that the electronic density is explicitly\nrepresented, rather than being part of the specific heat parameter.\n\nCurrently, the TTM fixes assume that none of the user-supplied\nparameters will vary with temperature. Note that **Duffy**\nused a tanh() functional form for the temperature dependence of the\nelectronic specific heat, but ignored temperature dependencies of any of\nthe other parameters. See more discussion below for fix *ttm/mod*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes do not perform time integration of the atoms in the fix\n > group, they only rescale their velocities. Thus a time integration\n > fix such as [fix nve ](https://docs.lammps.org/fix_nve.html) should be used in conjunction\n > with these fixes. These fixes should not normally be used on atoms\n > that have their temperature controlled by another thermostatting\n > fix, e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin > ](https://docs.lammps.org/fix_langevin.html). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes require use of an orthogonal 3d simulation box with\n > periodic boundary conditions in all dimensions. They also require\n > that the size and shape of the simulation box do not vary\n > dynamically, e.g. due to use of the [fix npt ](https://docs.lammps.org/fix_nh.html) command.\n > Likewise, the size/shape of processor subdomains cannot vary due to\n > dynamic load-balancing via use of the [fix balance > ](https://docs.lammps.org/fix_balance.html) command. It is possible however to load balance\n > before the simulation starts using the [balance ](https://docs.lammps.org/balance.html)\n > command, so that each processor has a different size subdomain. \n > \n\nPeriodic boundary conditions are also used in the heat equation solve\nfor the electronic subsystem. This varies from the approach of\n**Rutherford** where the atomic subsystem was\nembedded within a larger continuum representation of the electronic\nsubsystem.\n\nThe *set* keyword specifies a *Tinit* temperature value to initialize\nthe value stored on all grid points. By default the temperatures\nare all zero when the grid is created.\n\nThe *infile* keyword specifies an input file of electronic temperatures\nfor each grid point to be read in to initialize the grid, as an alternative\nto using the *set* keyword.\n\nThe input file is a text file which may have comments starting with\nthe '#' character. Each line contains four numeric columns:\nix,iy,iz,Temperature. Empty or comment-only lines will be\nignored. The number of lines must be equal to the number of\nuser-specified grid points (Nx by Ny by Nz). The ix,iy,iz are grid\npoint indices ranging from 1 to Nxyz inclusive in each dimension. The\nlines can appear in any order. For example, the initial electronic\ntemperatures on a 1 by 2 by 3 grid could be specified in the file as\nfollows:\n\n```\n# UNITS: metal COMMENT: initial electron temperature\n1 1 1 1.0\n1 1 2 1.0\n1 1 3 1.0\n1 2 1 2.0\n1 2 2 2.0\n1 2 3 2.0\n```\nwhere the electronic temperatures along the y=0 plane have been set to\n1.0, and the electronic temperatures along the y=1 plane have been set\nto 2.0. If all the grid point values are not specified, LAMMPS will\ngenerate an error. LAMMPS will check if a \"UNITS:\" tag is in the first\nline and stop with an error, if there is a mismatch with the current\nunits used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The electronic temperature at each grid point must be a non-zero\n > positive value, both initially, and as the temperature evolves over\n > time. Thus you must use either the *set* or *infile* keyword or be\n > restarting a simulation that used this fix previously. \n > \n\nThe *outfile* keyword has 2 values. The first value *Nout* triggers\noutput of the electronic temperatures for each grid point every Nout\ntimesteps. The second value is the filename for output, which will be\nsuffixed by the timestep. The format of each output file is exactly\nthe same as the input temperature file. It will contain a comment in\nthe first line reporting the date the file was created, the LAMMPS\nunits setting in use, grid size and the current timestep.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The fix ttm/grid command does not support the *outfile* keyword.\n > Instead you can use the [dump grid ](https://docs.lammps.org/dump.html) command to output\n > the electronic temperature on the distributed grid to a dump file or\n > the [restart ](https://docs.lammps.org/restart.html) command which creates a file specific\n > to this fix which the [read restart ](https://docs.lammps.org/read_restart.html) command\n > reads. The file has the same format as the file the *infile* option\n > reads. \n > \n\nFor the fix ttm and fix ttm/mod commands, the corresponding atomic\ntemperature for atoms in each grid cell can be computed and output by\nthe [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command using the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command to create a 3d\narray of chunks consistent with the grid used by this fix.\n\nFor the fix ttm/grid command the same thing can be done using the\n[fix ave/grid ](https://docs.lammps.org/fix_ave_grid.html) command and its per-grid values can\nbe output via the [dump grid ](https://docs.lammps.org/dump.html) command.\n\n----------\n\n**Additional details for fix ttm/mod**\n\nFix *ttm/mod* uses the heat diffusion equation with possible external\nheat sources (e.g. laser heating in ablation simulations):\n\\[\n C_e \\rho_e \\frac{\\partial T_e}{\\partial t} =\n \\bigtriangledown (\\kappa_e \\bigtriangledown T_e) -\n g_p (T_e - T_a) + g_s T_a' + \\theta (x-x_{surface})I_0 \\exp(-x/l_{skin})\\]\nwhere \\(\\theta\\) is the Heaviside step function, \\(I_0\\) is the\n(absorbed) laser pulse intensity for ablation simulations,\n\\(l_{skin}\\) is the depth of the skin-layer, and all other\ndesignations have the same meaning as in the former equation. The\nduration of the pulse is set by the parameter *tau* in the *init_file*.\n\nFix *ttm/mod* also allows users to specify the dependencies of\n\\(C_e\\) and \\(\\kappa_e\\) on the electronic temperature. The\nspecific heat is expressed as\n\\[\n C_e = C_0 + (a_0 + a_1 X + a_2 X^2 + a_3 X^3 + a_4 X^4) \\exp (-(AX)^2)\\]\nwhere \\(X = \\frac{T_e}{1000}\\), and the thermal conductivity is\ndefined as \\(\\kappa_e = D_e \\cdot rho_e \\cdot C_e\\), where\n\\(D_e\\) is the thermal diffusion coefficient.\n\nElectronic pressure effects are included in the TTM model to account for\nthe blast force acting on ions because of electronic pressure gradient\n(see **Chen**, **Norman**). The total force\nacting on an ion is:\n\\[\n {\\vec F}_i = - \\partial U / \\partial {\\vec r}_i + {\\vec\n F}_{langevin} - \\nabla P_e/n_{ion}\\]\nwhere \\(F_{langevin}\\) is a force from Langevin thermostat\nsimulating electron-phonon coupling, and \\(\\nabla P_e/n_{ion}\\) is\nthe electron blast force.\n\nThe electronic pressure is taken to be \\(P_e = B \\cdot rho_e \\cdot\nC_e \\cdot T_e\\)\n\nThe current fix *ttm/mod* implementation allows TTM simulations with a\nvacuum. The vacuum region is defined as the grid cells with zero\nelectronic temperature. The numerical scheme does not allow energy\nexchange with such cells. Since the material can expand to previously\nunoccupied region in some simulations, the vacuum border can be allowed\nto move. It is controlled by the *surface_movement* parameter in the\n*init_file*. If it is set to 1, then \"vacuum\" cells can be changed to\n\"electron-filled\" cells with the temperature *T_e_min* if atoms move\ninto them (currently only implemented for the case of 1-dimensional\nmotion of a flat surface normal to the X axis). The initial locations of\nthe interfaces of the electron density to the vacuum can be set in the\n*init_file* via *lsurface* and *rsurface* parameters. In this case,\nelectronic pressure gradient is calculated as\n\\[\n \\nabla_x P_e = \\left[\\frac{C_e{}T_e(x)\\lambda}{(x+\\lambda)^2} +\n \\frac{x}{x+\\lambda}\\frac{(C_e{}T_e)_{x+\\Delta\n x}-(C_e{}T_e)_{x}}{\\Delta x} \\right]\\]\nwhere \\(\\lambda\\) is the electron mean free path (see **Norman**, **Pisarev**)\n\nThe fix *ttm/mod* parameter file *init_file* has the following syntax.\nEvery line with an odd number is considered as a comment and\nignored. The lines with the even numbers are treated as follows:\n\n```\na_0, energy/(temperature\\*electron) units\na_1, energy/(temperature\\^2\\*electron) units\na_2, energy/(temperature\\^3\\*electron) units\na_3, energy/(temperature\\^4\\*electron) units\na_4, energy/(temperature\\^5\\*electron) units\nC_0, energy/(temperature\\*electron) units\nA, 1/temperature units\nrho_e, electrons/volume units\nD_e, length\\^2/time units\ngamma_p, mass/time units\ngamma_s, mass/time units\nv_0, length/time units\nI_0, energy/(time\\*length\\^2) units\nlsurface, electron grid units (positive integer)\nrsurface, electron grid units (positive integer)\nl_skin, length units\ntau, time units\nB, dimensionless\nlambda, length units\nn_ion, ions/volume units\nsurface_movement: 0 to disable tracking of surface motion, 1 to enable\nT_e_min, temperature units\n```\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe fix ttm and fix ttm/mod commands write the state of the electronic\nsubsystem and the energy exchange between the subsystems to\n[binary restart files ](https://docs.lammps.org/restart.html). The fix ttm/grid command does\nnot yet support writing of its distributed grid to a restart file.\n\nSee the [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe operation of the fix continues in an uninterrupted fashion. Note\nthat the restart script must define the same size grid as the original\nscript.\n\nThe fix ttm/grid command also outputs an auxiliary file each time a\nrestart file is written, with the electron temperatures for each grid\ncell. The format of this file is the same as that read by the\n*infile* option explained above. The filename is the same as the\nrestart filename with \".ttm\" appended. This auxiliary file can be\nread in for a restarted run by using the *infile* option for the fix\nttm/grid command, following the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthese fixes.\n\nThese fixes compute 2 output quantities stored in a vector of length\n2, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The first quantity is the total energy of the\nelectronic subsystem. The second quantity is the energy transferred\nfrom the electronic to the atomic subsystem on that timestep. Note\nthat the velocity verlet integrator applies the fix ttm forces to the\natomic subsystem as two half-step velocity updates: one on the current\ntimestep and one on the subsequent timestep. Consequently, the change\nin the atomic subsystem energy is lagged by half a timestep relative\nto the change in the electronic subsystem energy. As a result of this,\nusers may notice slight fluctuations in the sum of the atomic and\nelectronic subsystem energies reported at the end of the timestep.\n\nThe vector values calculated are \"extensive\".\n\nThe fix ttm/grid command also outputs a per-grid vector which stores\nthe electron temperature for each grid cell in temperature [units](https://docs.lammps.org/units.html). which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The length of the vector (distributed across all\nprocessors) is Nx * Ny * Nz. For access by other commands, the name\nof the single grid produced by fix ttm/grid is \"grid\". The name of\nits per-grid data is \"data\".\n\nNo parameter of the fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. The fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Duffy)** D M Duffy and A M Rutherford, J. Phys.: Condens. Matter, 19,\n016207-016218 (2007). \n \n**(Rutherford)** A M Rutherford and D M Duffy, J. Phys.:\nCondens. Matter, 19, 496201-496210 (2007). \n \n**(Rutherford)** A M Rutherford and D M Duffy, J. Phys.:\nCondens. Matter, 19, 496201-496210 (2007). \n \n**(Chen)** J Chen, D Tzou and J Beraun, Int. J. Heat\nMass Transfer, 49, 307-316 (2006). \n \n**(Norman)** G E Norman, S V Starikov, V V Stegailov et al., Contrib.\nPlasma Phys., 53, 129-139 (2013). \n \n**(Norman)** G E Norman, S V Starikov, V V Stegailov et al., Contrib.\nPlasma Phys., 53, 129-139 (2013). \n \n**(Pisarev)** V V Pisarev and S V Starikov, J. Phys.: Condens. Matter, 26,\n475401 (2014). \n ", - "restrictions": "All these fixes are part of the EXTRA-FIX package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nAs mentioned above, these fixes require 3d simulations and orthogonal\nsimulation boxes periodic in all 3 dimensions.\n\nThese fixes used a random number generator to Langevin thermostat the\nelectron temperature. This means you will not get identical answers\nwhen running on different numbers of processors or when restarting a\nsimulation (even on the same number of processors). However, in a\nstatistical sense, simulations on different processor counts and\nrestarted simulation should produce results which are statistically\nthe same.\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\n" -}, -{ - "command": [ - "dihedral_style charmm", - "dihedral_style charmm/intel", - "dihedral_style charmm/kk", - "dihedral_style charmm/omp", - "dihedral_style charmmfsw", - "dihedral_style charmmfsw/kk" - ], - "syntax": [ - "dihedral_style style" - ], - "args": [ - [ - { - "arg": "dihedral_style", + "arg": "index", "type": 1, "choices": [] }, { - "arg": "charmmfsw/kk", + "arg": "[step|time]", "type": 3, "choices": [ - "charmm", - "charmmfsw", - "charmm/intel", - "charmm/kk", - "charmm/omp", - "charmmfsw/kk" + "step", + "time" ] } ] ], - "parameters": "* style = charmm or charmmfsw \n", - "examples": "\n```lmps\ndihedral_style charmm\ndihedral_style charmmfsw\ndihedral_coeff 1 0.2 1 180 1.0\ndihedral_coeff 2 1.8 1 0 1.0\ndihedral_coeff 1 3.1 2 180 0.5\n```\n", - "html_filename": "dihedral_charmm.html", - "short_description": "The *charmm* and *charmmfsw* dihedral styles use the potential\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nSee **dihedral-MacKerell** for a description of the CHARMM\nforce field", - "description": "The *charmm* and *charmmfsw* dihedral styles use the potential\n\\[\n E = K [ 1 + \\cos (n \\phi - d) ]\\]\nSee **dihedral-MacKerell** for a description of the CHARMM\nforce field. This dihedral style can also be used for the AMBER force\nfield (see comment on weighting factors below). See\n**dihedral-Cornell** for a description of the AMBER force\nfield.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The newer *charmmfsw* style was released in March 2017. We\n > recommend it be used instead of the older *charmm* style when running\n > a simulation with the CHARMM force field, either with long-range\n > Coulombics or a Coulombic cutoff, via the [pair_style lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) and [pair_style lj/charmmfsw/coul/charmmfsh ](https://docs.lammps.org/pair_charmm.html) commands respectively.\n > Otherwise the older *charmm* style is fine to use. See the discussion\n > below and more details on the [pair_style charmm ](https://docs.lammps.org/pair_charmm.html) doc\n > page. \n > \n\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy)\n* \\(n\\) (integer >= 0)\n* \\(d\\) (integer value of degrees)\n* weighting factor (1.0, 0.5, or 0.0)\n\nThe weighting factor is required to correct for double counting\npairwise non-bonded Lennard-Jones interactions in cyclic systems or\nwhen using the CHARMM dihedral style with non-CHARMM force fields.\nWith the CHARMM dihedral style, interactions between the first and fourth\natoms in a dihedral are skipped during the normal non-bonded force\ncomputation and instead evaluated as part of the dihedral using\nspecial epsilon and sigma values specified with the\n[pair_coeff ](https://docs.lammps.org/pair_charmm.html) command of pair styles that contain\n\"lj/charmm\" (e.g. [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html))\nIn 6-membered rings, the same 1-4 interaction would be computed twice\n(once for the clockwise 1-4 pair in dihedral 1-2-3-4 and once in the\ncounterclockwise dihedral 1-6-5-4) and thus the weighting factor has\nto be 0.5 in this case. In 4-membered or 5-membered rings, the 1-4\ndihedral also is counted as a 1-2 or 1-3 interaction when going around\nthe ring in the opposite direction and thus the weighting factor is\n0.0, as the 1-2 and 1-3 exclusions take precedence.\n\nNote that this dihedral weighting factor is unrelated to the scaling\nfactor specified by the [special bonds ](https://docs.lammps.org/special_bonds.html) command\nwhich applies to all 1-4 interactions in the system. For CHARMM force\nfields, the special_bonds 1-4 interaction scaling factor should be set\nto 0.0. Since the corresponding 1-4 non-bonded interactions are\ncomputed with the dihedral. This means that if any of the weighting\nfactors defined as dihedral coefficients (fourth coeff above) are\nnon-zero, then you must use a pair style with \"lj/charmm\" and set the\nspecial_bonds 1-4 scaling factor to 0.0 (which is the\ndefault). Otherwise 1-4 non-bonded interactions in dihedrals will be\ncomputed twice.\n\nFor simulations using the CHARMM force field with a Coulombic cutoff,\nthe difference between the *charmm* and *charmmfsw* styles is in the\ncomputation of the 1-4 non-bond interactions, though only if the\ndistance between the two atoms is within the switching region of the\npairwise potential defined by the corresponding CHARMM pair style,\ni.e. within the outer cutoff specified for the pair style. The\n*charmmfsw* style should only be used when using the corresponding\n[pair_style lj/charmmfsw/coul/charmmfsw ](https://docs.lammps.org/pair_charmm.html) or\n[pair_style lj/charmmfsw/coul/long ](https://docs.lammps.org/pair_charmm.html) commands. Use\nthe *charmm* style with the older [pair_style ](https://docs.lammps.org/pair_charmm.html)\ncommands that have just \"charmm\" in their style name. See the\ndiscussion on the [CHARMM pair_style ](https://docs.lammps.org/pair_charmm.html) page for\ndetails.\n\nNote that for AMBER force fields, which use pair styles with \"lj/cut\",\nthe special_bonds 1-4 scaling factor should be set to the AMBER\ndefaults (1/2 and 5/6) and all the dihedral weighting factors (fourth\ncoeff above) must be set to 0.0. In this case, you can use any pair\nstyle you wish, since the dihedral does not need any Lennard-Jones\nparameter information and will not compute any 1-4 non-bonded\ninteractions. Likewise the *charmm* or *charmmfsw* styles are\nidentical in this case since no 1-4 non-bonded interactions are\ncomputed.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(dihedral-MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,\nFischer, Gao, Guo, Ha, et al, J Phys Chem B, 102, 3586 (1998). \n \n**(dihedral-Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,\nSpellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). \n ", - "restrictions": "When using run_style [respa ](https://docs.lammps.org/run_style.html), these dihedral styles\nmust be assigned to the same r-RESPA level as *pair* or *outer* .\n\nWhen used in combination with CHARMM pair styles, the 1-4\n[special_bonds ](https://docs.lammps.org/special_bonds.html) scaling factors must be set to 0.0.\nOtherwise non-bonded contributions for these 1-4 pairs will be\ncomputed multiple times.\n\nThese dihedral styles can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html),\n[pair_style lj/charmm variants ](https://docs.lammps.org/pair_charmm.html),\n[angle_style charmm ](https://docs.lammps.org/angle_charmm.html), [fix cmap ](https://docs.lammps.org/fix_cmap.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* output or *output index* = name of the AtC sub-command\n* filename_prefix = prefix for data files (for output)\n* frequency = frequency of output in timesteps (for output)\n* optional keywords for output:\n\n - text = creates text output of index, step and nodal variable values for unique nodes\n - full_text = creates text output index, nodal id, step, nodal coordinates and nodal variable values for unique and image nodes\n - binary = creates binary EnSight output\n - vector_components = outputs vectors as scalar components\n - tensor_components = outputs tensor as scalar components (for use with ParaView)\n\n* step or time = index output by step or by time (for *output index*) \n", + "examples": "\n```lmps\nfix_modify AtC output heatFE 100\nfix_modify AtC output hardyFE 1 text tensor_components\nfix_modify AtC output hardyFE 10 text binary tensor_components\nfix_modify AtC output index step\n```\n", + "html_filename": "atc_output.html", + "short_description": "Creates text and/or binary (EnSight, \"gold\" format) output of nodal/mesh\ndata which is transfer/physics specific", + "description": "Creates text and/or binary (EnSight, \"gold\" format) output of nodal/mesh\ndata which is transfer/physics specific. Output indexing by step or time\nis possible.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix atc command ](https://docs.lammps.org/fix_atc.html)\n" }, { "command": [ - "fix neb/spin" + "fix wall/flow", + "fix wall/flow/kk" ], "syntax": [ - "fix ID group-ID neb/spin Kspring" + "fix ID group-ID wall/flow axis vflow T seed N coords ... keyword value" ], "args": [ [ @@ -36091,31 +35187,69 @@ export const command_docs = [ "choices": [] }, { - "arg": "neb/spin", - "type": 1, + "arg": "wall/flow", + "type": 3, + "choices": [ + "wall/flow", + "wall/flow/kk" + ] + }, + { + "arg": "axis", + "type": 2, "choices": [] }, { - "arg": "Kspring", + "arg": "vflow", + "type": 2, + "choices": [] + }, + { + "arg": "T", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "coords", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* neb/spin = style name of this fix command \n *    Kspring = spring constant for parallel nudging force \n *    (force/distance units or force units, see parallel keyword) \n", - "examples": "\n```lmps\nfix 1 active neb/spin 1.0\n```\n", - "html_filename": "fix_neb_spin.html", - "short_description": "Add nudging forces to spins in the group for a multi-replica\nsimulation run via the [neb/spin ](https://docs.lammps.org/neb_spin.html) command to perform a\ngeodesic nudged elastic band (GNEB) calculation for finding the\ntransition state", - "description": "Add nudging forces to spins in the group for a multi-replica\nsimulation run via the [neb/spin ](https://docs.lammps.org/neb_spin.html) command to perform a\ngeodesic nudged elastic band (GNEB) calculation for finding the\ntransition state.\nHi-level explanations of GNEB are given with the\n[neb/spin ](https://docs.lammps.org/neb_spin.html) command and on the\n[Howto replica ](https://docs.lammps.org/Howto_replica.html) doc page.\nThe fix neb/spin command must be used with the \"neb/spin\" command and\ndefines how inter-replica nudging forces are computed. A GNEB\ncalculation is divided in two stages. In the first stage n replicas\nare relaxed toward a MEP until convergence. In the second stage, the\nclimbing image scheme is enabled, so that the replica having the highest\nenergy relaxes toward the saddle point (i.e. the point of highest energy\nalong the MEP), and a second relaxation is performed.\n\nThe nudging forces are calculated as explained in\n**BessarabB**).\nSee this reference for more explanation about their expression.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\nas invoked by the [minimize ](https://docs.lammps.org/minimize.html) command via the\n[neb/spin ](https://docs.lammps.org/neb_spin.html) command.\n\n**(BessarabB)** Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,\n335-347 (2015). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[neb_spin ](https://docs.lammps.org/neb_spin.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/flow = style name of this fix command\n* axis = flow axis (*x*, *y*, or *z*)\n* vflow = generated flow velocity in axis direction (velocity units)\n* T = flow temperature (temperature units)\n* seed = random seed for stochasticity (positive integer)\n* N = number of walls\n* coords = list of N wall positions along the axis direction in ascending order (distance units)\n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = lattice or box \n         lattice = wall positions are defined in lattice units \n         box = the wall positions are defined in simulation box units \n", + "examples": "\n```lmps\nfix 1 all wall/flow x 0.4 1.5 593894 4 2.0 4.0 6.0 8.0\n```\n", + "html_filename": "fix_wall_flow.html", + "short_description": "\nThis fix implements flow boundary conditions (FBC) introduced in\n**fbc-Pavlov1** and **fbc-Pavlov2**", + "description": "\nThis fix implements flow boundary conditions (FBC) introduced in\n**fbc-Pavlov1** and **fbc-Pavlov2**.\nThe goal is to generate a stationary flow with a shifted Maxwell\nvelocity distribution:\n\\[\n f_a(v_a) \\propto \\exp{\\left(-\\frac{m (v_a-v_{\\text{flow}})^2}{2 kB T}\\right)}\\]\nwhere \\(v_a\\) is the component of velocity along the specified\n*axis* argument (a = x,y,z), \\(v_{\\text{flow}}\\) is the flow\nvelocity specified as the *vflow* argument, *T* is the specified flow\ntemperature, *m* is the particle mass, and *kB* is the Boltzmann\nconstant.\n\nThis is achieved by defining a series of *N* transparent walls along\nthe flow *axis* direction. Each wall is at the specified position\nlisted in the *coords* argument. Note that an additional transparent\nwall is defined by the code at the boundary of the (periodic)\nsimulation domain in the *axis* direction. So there are effectively\nN+1 walls.\n\nEach time a particle in the specified group passes through one of the\ntransparent walls, its velocity is re-assigned. Particles not in the\ngroup do not interact with the wall. This can be used, for example, to\nadd obstacles composed of atoms, or to simulate a solution of complex\nmolecules in a one-atom liquid (note that the fix has been tested for\none-atom systems only).\n\nConceptually, the velocity re-assignment represents creation of a new\nparticle within the system with simultaneous removal of the particle\nwhich passed through the wall. The velocity components in directions\nparallel to the wall are re-assigned according to the standard Maxwell\nvelocity distribution for the specified temperature *T*. The velocity\ncomponent perpendicular to the wall is re-assigned according to the\nshifted Maxwell distribution defined above:\n\\[\n f_{\\text{a generated}}(v_a) \\propto v_a f_a(v_a)\\]\nIt can be shown that for an ideal-gas scenario this procedure makes\nthe velocity distribution of particles between walls exactly as\ndesired.\n\nSince in most cases simulated systems are not an ideal gas, multiple\nwalls can be defined, since a single wall may not be sufficient for\nmaintaining a stationary flow without \"congestion\" which can manifest\nitself as regions in the flow with increased particle density located\nupstream from static obstacles.\n\nFor the same reason, the actual temperature and velocity of the\ngenerated flow may differ from what is requested. The degree of\ndiscrepancy is determined by how different from an ideal gas the\nsimulated system is. Therefore, a calibration procedure may be\nrequired for such a system as described in **fbc-Pavlov2**.\n\nNote that the interactions between particles on different sides of a\ntransparent wall are not disabled or neglected. Likewise particle\npositions are not altered by the velocity reassignment. This removes\nthe need to modify the force field to work correctly in cases when a\nparticle is close to a wall.\n\nFor example, if particle positions were uniformly redistributed across\nthe surface of a wall, two particles could end up too close to each\nother, potentially causing the simulation to explode. However due to\nthis compromise, some collective phenomena such as regions with\nincreased/decreased density or collective movements are not fully\nremoved when particles cross a wall. This unwanted consequence can\nalso be potentially mitigated by using more multiple walls.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the specified flow has a high velocity, a lost atoms error can\n > occur (see [error messages ](https://docs.lammps.org/Errors_messages.html)). If this\n > happens, you should ensure the checks for neighbor list rebuilds,\n > set via the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command, are as\n > conservative as possible (every timestep if needed). Those are the\n > default settings. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to\nthis fix.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(fbc-Pavlov1)** Pavlov, Kolotinskii, Stegailov, \"GPU-Based Molecular Dynamics of Turbulent Liquid Flows with OpenMM\", Proceedings of PPAM-2022, LNCS (Springer), vol. 13826, pp. 346-358 (2023) \n \n**(fbc-Pavlov2)** Pavlov, Galigerov, Kolotinskii, Nikolskiy, Stegailov, \"GPU-based Molecular Dynamics of Fluid Flows: Reaching for Turbulence\", Int. J. High Perf. Comp. Appl., (2024) \n \n**(fbc-Pavlov2)** Pavlov, Galigerov, Kolotinskii, Nikolskiy, Stegailov, \"GPU-based Molecular Dynamics of Fluid Flows: Reaching for Turbulence\", Int. J. High Perf. Comp. Appl., (2024) \n ", + "restrictions": "Fix *wall_flow* is part of the EXTRA-FIX package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFlow boundary conditions should not be used with rigid bodies such as\nthose defined by a \"fix rigid\" command.\n\nThis fix can only be used with periodic boundary conditions along the\nflow axis. The size of the box in this direction must not change. Also,\nthe fix is designed to work only in an orthogonal simulation box.\n", + "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall.html) command\n" }, { "command": [ - "fix meso/move" + "fix cmap" ], "syntax": [ - "fix ID group-ID meso/move style args keyword values ..." + "fix ID group-ID cmap filename" ], "args": [ [ @@ -36135,54 +35269,33 @@ export const command_docs = [ "choices": [] }, { - "arg": "meso/move", + "arg": "cmap", "type": 1, "choices": [] }, { - "arg": "variable", - "type": 3, - "choices": [ - "linear", - "wiggle", - "rotate", - "variable" - ] - }, - { - "arg": "args", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "values", + "arg": "filename", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* meso/move = style name of this fix command\n* style = linear or wiggle or rotate or variable \n *        linear args = Vx Vy Vz \n         Vx,Vy,Vz = components of velocity vector (velocity units), any component can be specified as NULL \n *        wiggle args = Ax Ay Az period \n         Ax,Ay,Az = components of amplitude vector (distance units), any component can be specified as NULL \n         period = period of oscillation (time units) \n *        rotate args = Px Py Pz Rx Ry Rz period \n         Px,Py,Pz = origin point of axis of rotation (distance units) \n         Rx,Ry,Rz = axis of rotation vector \n         period = period of rotation (time units) \n *        variable args = v_dx v_dy v_dz v_vx v_vy v_vz \n         v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL \n         v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL \n* zero or more keyword/value pairs may be appended\n* keyword = units \n *        units value = box or lattice \n", - "examples": "\n```lmps\nfix 1 boundary meso/move wiggle 3.0 0.0 0.0 1.0 units box\nfix 2 boundary meso/move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0\nfix 2 boundary meso/move variable v_myx v_myy NULL v_VX v_VY NULL\n```\n", - "html_filename": "fix_meso_move.html", - "short_description": "Perform updates of position, velocity, internal energy and local\ndensity for mesoscopic particles in the group each timestep using the\nspecified settings or formulas, without regard to forces on the\nparticles", - "description": "Perform updates of position, velocity, internal energy and local\ndensity for mesoscopic particles in the group each timestep using the\nspecified settings or formulas, without regard to forces on the\nparticles. This can be useful for boundary, solid bodies or other\nparticles, whose movement can influence nearby particles.\n\nThe operation of this fix is exactly like that described by the\n[fix move ](https://docs.lammps.org/fix_move.html) command, except that particles' density,\ninternal energy and extrapolated velocity are also updated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The particles affected by this fix should not be time integrated by\n > other fixes (e.g. [fix sph ](https://docs.lammps.org/fix_sph.html), [fix > sph/stationary ](https://docs.lammps.org/fix_sph_stationary.html)), since that will change their\n > positions and velocities twice. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As particles move due to this fix, they will pass through periodic\n > boundaries and be remapped to the other side of the simulation box,\n > just as they would during normal time integration (e.g. via the\n > [fix sph ](https://docs.lammps.org/fix_sph.html) command). It is up to you to decide\n > whether periodic boundaries are appropriate with the kind of\n > particle motion you are prescribing with this fix. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed below, particles are moved relative to their initial\n > position at the time the fix is specified. These initial coordinates\n > are stored by the fix in \"unwrapped\" form, by using the image flags\n > associated with each particle. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section of\n > the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each particle. You can reset the image flags\n > (e.g. to 0) before invoking this fix by using the [set image ](https://docs.lammps.org/set.html)\n > command. \n > \n\n----------\n\nThe *linear* style moves particles at a constant velocity, so that their\nposition *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + V \\* delta\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *V* is the specified velocity vector with components\n(Vx,Vy,Vz), and *delta* is the time elapsed since the fix was\nspecified. This style also sets the velocity of each particle to V =\n(Vx,Vy,Vz). If any of the velocity components is specified as NULL,\nthen the position and velocity of that component is time integrated\nthe same as the [fix sph ](https://docs.lammps.org/fix_sph.html) command would perform, using\nthe corresponding force component on the particle.\n\nNote that the *linear* style is identical to using the *variable*\nstyle with an [equal-style variable ](https://docs.lammps.org/variable.html) that uses the\nvdisplace() function. E.g.\n\n```lmps\nvariable V equal 10.0\nvariable x equal vdisplace(0.0,$V)\nfix 1 boundary move variable v_x NULL NULL v_V NULL NULL\n```\nThe *wiggle* style moves particles in an oscillatory fashion, so that\ntheir position *X* = (x,y,z) as a function of time is given in vector\nnotation as\n\n```\nX(t) = X0 + A sin(omega\\*delta)\n```\nwhere *X0* = (x0,y0,z0) is their position at the time the fix is\nspecified, *A* is the specified amplitude vector with components\n(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time\nelapsed since the fix was specified. This style also sets the\nvelocity of each particle to the time derivative of this expression.\nIf any of the amplitude components is specified as NULL, then the\nposition and velocity of that component is time integrated the same as\nthe [fix sph ](https://docs.lammps.org/fix_sph.html) command would perform, using the\ncorresponding force component on the particle.\n\nNote that the *wiggle* style is identical to using the *variable*\nstyle with [equal-style variables ](https://docs.lammps.org/variable.html) that use the\nswiggle() and cwiggle() functions. E.g.\n\n```lmps\nvariable A equal 10.0\nvariable T equal 5.0\nvariable omega equal 2.0*PI/$T\nvariable x equal swiggle(0.0,$A,$T)\nvariable v equal v_omega*($A-cwiggle(0.0,$A,$T))\nfix 1 boundary move variable v_x NULL NULL v_v NULL NULL\n```\nThe *rotate* style rotates particles around a rotation axis *R* =\n(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The *period* of\nthe rotation is also specified. The direction of rotation for the\nparticles around the rotation axis is consistent with the right-hand\nrule: if your right-hand thumb points along *R*, then your fingers wrap\naround the axis in the direction of rotation.\n\nThis style also sets the velocity of each particle to (omega cross\nRperp) where omega is its angular velocity around the rotation axis and\nRperp is a perpendicular vector from the rotation axis to the particle.\n\nThe *variable* style allows the position and velocity components of\neach particle to be set by formulas specified via the\n[variable ](https://docs.lammps.org/variable.html) command. Each of the 6 variables is\nspecified as an argument to the fix as v_name, where name is the\nvariable name that is defined elsewhere in the input script.\n\nEach variable must be of either the *equal* or *atom* style.\n*Equal* -style variables compute a single numeric quantity, that can be\na function of the timestep as well as of other simulation values.\n*Atom* -style variables compute a numeric quantity for each particle, that\ncan be a function per-atom quantities, such as the particle's position, as\nwell as of the timestep and other simulation values. Note that this\nfix stores the original coordinates of each particle (see note below) so\nthat per-atom quantity can be used in an atom-style variable formula.\nSee the [variable ](https://docs.lammps.org/variable.html) command for details.\n\nThe first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*\nstyle are used to calculate a displacement from the particle's original\nposition at the time the fix was specified. The second 3 variables\n(v_vx,v_vy,v_vz) specified are used to compute a velocity for each\nparticle.\n\nAny of the 6 variables can be specified as NULL. If both the\ndisplacement and velocity variables for a particular x,y,z component\nare specified as NULL, then the position and velocity of that\ncomponent is time integrated the same as the [fix sph ](https://docs.lammps.org/fix_sph.html)\ncommand would perform, using the corresponding force component on the\nparticle. If only the velocity variable for a component is specified\nas NULL, then the displacement variable will be used to set the\nposition of the particle, and its velocity component will not be\nchanged. If only the displacement variable for a component is\nspecified as NULL, then the velocity variable will be used to set the\nvelocity of the particle, and the position of the particle will be\ntime integrated using that velocity.\n\nThe *units* keyword determines the meaning of the distance units used\nto define the *linear* velocity and *wiggle* amplitude and *rotate*\norigin. This setting is ignored for the *variable* style. A *box*\nvalue selects standard units as defined by the [units ](https://docs.lammps.org/units.html)\ncommand, e.g. velocity in Angstroms/fs and amplitude and position\nin Angstroms for units = real. A *lattice* value means the velocity\nunits are in lattice spacings per time and the amplitude and position\nare in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html) command must have\nbeen previously used to define the lattice spacing. Each of these 3\nquantities may be dependent on the x,y,z dimension, since the lattice\nspacings can be different in x,y,z.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of moving particles to [binary restart files ](https://docs.lammps.org/restart.html), as well as the initial timestep, so that\nthe motion can be continuous in a restarted simulation. See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to re-specify\na fix in an input script that reads a restart file, so that the\noperation of the fix continues in an uninterrupted fashion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the move positions are a function of the current\n > timestep and the initial timestep, you cannot reset the timestep to a\n > different value after reading a restart file, if you expect a fix move\n > command to work in an uninterrupted fashion. \n > \n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the original unwrapped x,y,z coords\nof each particle. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the DPD-SMOOTH package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store density and internal energy as\ndefined by the [atom_style sph ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be mesoscopic SPH/SDPD particles.\n\nThis fix is incompatible with deformation controls that remap velocity,\nfor instance the *remap v* option of [fix deform ](https://docs.lammps.org/fix_deform.html).\n", - "related": "[fix move ](https://docs.lammps.org/fix_move.html), [fix sph ](https://docs.lammps.org/fix_sph.html),\n[displace_atoms ](https://docs.lammps.org/displace_atoms.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* cmap = style name of this fix command\n* filename = force-field file with CMAP coefficients \n", + "examples": "\n```lmps\nfix myCMAP all cmap ../potentials/cmap36.data\nread_data proteinX.data fix myCMAP crossterm CMAP\nfix_modify myCMAP energy yes\n```\n", + "html_filename": "fix_cmap.html", + "short_description": "This command enables CMAP 5-body interactions to be added to\nsimulations which use the CHARMM force field", + "description": "This command enables CMAP 5-body interactions to be added to\nsimulations which use the CHARMM force field. These are relevant for\nany CHARMM model of a peptide or protein sequences that is 3 or more\namino-acid residues long; see **Buck** and **Brooks2** for details, including the analytic energy expressions for\nCMAP interactions. The CMAP 5-body terms add additional potential\nenergy contributions to pairs of overlapping phi-psi dihedrals of\namino-acids, which are important to properly represent their\nconformational behavior.\n\nThe examples/cmap directory has a sample input script and data file\nfor a small peptide, that illustrates use of the fix cmap command.\n\nAs in the example above, this fix should be used before reading a data\nfile that contains a listing of CMAP interactions. The *filename*\nspecified should contain the CMAP parameters for a particular version\nof the CHARMM force field. Two such files are including in the\nlammps/potentials directory: charmm22.cmap and charmm36.cmap.\n\nThe data file read by the \"read_data\" must contain the topology of all\nthe CMAP interactions, similar to the topology data for bonds, angles,\ndihedrals, etc. Specially it should have a line like this in its\nheader section:\n\n```\nN crossterms\n```\nwhere N is the number of CMAP 5-body interactions. It should also\nhave a section in the body of the data file like this with N lines:\n\n```\nCMAP\n\n1 1 8 10 12 18 20\n2 5 18 20 22 25 27\n[...]\nN 3 314 315 317 318 330\n```\nThe first column is an index from 1 to N to enumerate the CMAP 5-atom\ntuples; it is ignored by LAMMPS. The second column is the \"type\" of\nthe interaction; it is an index into the CMAP force field file. The\nremaining 5 columns are the atom IDs of the atoms in the two 4-atom\ndihedrals that overlap to create the CMAP interaction. Note that the\n\"crossterm\" and \"CMAP\" keywords for the header and body sections match\nthose specified in the read_data command following the data file name;\nsee the [read_data ](https://docs.lammps.org/read_data.html) page for more details.\n\nA data file containing CMAP 5-body interactions can be generated from\na PDB file using the charmm2lammps.pl script in the tools/ch2lmp\ndirectory of the LAMMPS distribution. The script must be invoked with\nthe optional \"-cmap\" flag to do this; see the tools/ch2lmp/README file\nfor more information. The same conversion script also creates the\nfile of CMAP coefficient data which is read by this command.\n\nThe potential energy associated with CMAP interactions can be output\nas described below. It can also be included in the total potential\nenergy of the system, as output by the [thermo_style](https://docs.lammps.org/thermo_style.html) command, if the [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\ncommand is used, as in the example above. See the note below about\nhow to include the CMAP energy when performing an [energyminimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the list of CMAP cross-terms to [binary restartfiles ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html) command\nfor info on how to re-specify a fix in an input script that reads a\nrestart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of the CMAP interactions to both\nthe global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or\noutput by the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The\ndefault setting for this fix is [fix_modify energy yes](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the CMAP interactions to both\nthe global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the CMAP terms forces to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option\n > for this fix. \n > \n\n\n**(Buck)** Buck, Bouguet-Bonnet, Pastor, MacKerell Jr., Biophys J, 90, L36\n(2006). \n \n**(Brooks2)** Brooks, Brooks, MacKerell Jr., J Comput Chem, 30, 1545 (2009). \n ", + "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a\n[read_restart ](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" }, { "command": [ - "pair_style meam", - "pair_style meam/kk", - "pair_style meam/ms", - "pair_style meam/ms/kk" + "pair_style adp", + "pair_style adp/kk", + "pair_style adp/omp" ], "syntax": [ - "pair_style style" + "pair_style adp" ], "args": [ [ @@ -36192,36 +35305,35 @@ export const command_docs = [ "choices": [] }, { - "arg": "meam/ms/kk", + "arg": "adp", "type": 3, "choices": [ - "meam", - "meam/ms", - "meam/kk", - "meam/ms/kk" + "adp", + "adp/kk", + "adp/omp" ] } ] ], - "parameters": "* style = meam or meam/ms \n", - "examples": "\n```lmps\npair_style meam\npair_coeff * * ../potentials/library.meam Si ../potentials/si.meam Si\npair_coeff * * ../potentials/library.meam Ni Al NULL Ni Al Ni Ni\n\npair_style meam/ms\npair_coeff * * ../potentials/library.msmeam H Ga ../potentials/HGa.meam H Ga\n```\n", - "html_filename": "pair_meam.html", - "short_description": "\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior of the MEAM potential for alloy systems has changed\n > as of November 2010; see description below of the mixture_ref_t\n > parameter \n > \n\nPair style *meam* computes non-bonded interactions for a variety of\nmaterials using the modified embedded-atom method (MEAM) **Baskes**", - "description": "\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The behavior of the MEAM potential for alloy systems has changed\n > as of November 2010; see description below of the mixture_ref_t\n > parameter \n > \n\nPair style *meam* computes non-bonded interactions for a variety of\nmaterials using the modified embedded-atom method (MEAM) **Baskes**. Conceptually, it is an extension to the original [EAMmethod ](https://docs.lammps.org/pair_eam.html) which adds angular forces. It is thus suitable for\nmodeling metals and alloys with fcc, bcc, hcp and diamond cubic\nstructures, as well as materials with covalent interactions like silicon\nand carbon.\n\nThe *meam* pair style is a translation of the original Fortran version\nto C++. It is functionally equivalent but more efficient and has\nadditional features. The Fortran version of the *meam* pair style has\nbeen removed from LAMMPS after the 12 December 2018 release.\n\nPair style *meam/ms* uses the multi-state MEAM (MS-MEAM) method\naccording to **Baskes2**, which is an extension to MEAM.\nThis pair style is mostly equivalent to *meam* and differs only\nwhere noted in the documentation below.\n\nIn the MEAM formulation, the total energy E of a system of atoms is\ngiven by:\n\\[\n E = \\sum_i \\left\\{ F_i(\\bar{\\rho}_i)\n + \\frac{1}{2} \\sum_{i \\neq j} \\phi_{ij} (r_{ij}) \\right\\}\\]\nwhere *F* is the embedding energy which is a function of the atomic\nelectron density \\(\\rho\\), and \\(\\phi\\) is a pair potential\ninteraction. The pair interaction is summed over all neighbors J of\natom I within the cutoff distance. As with EAM, the multi-body nature\nof the MEAM potential is a result of the embedding energy term. Details\nof the computation of the embedding and pair energies, as implemented in\nLAMMPS, are given in **Gullet** and references therein.\n\nThe various parameters in the MEAM formulas are listed in two files\nwhich are specified by the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command.\nThese are ASCII text files in a format consistent with other MD codes\nthat implement MEAM potentials, such as the serial DYNAMO code and\nWarp. Several MEAM potential files with parameters for different\nmaterials are included in the \"potentials\" directory of the LAMMPS\ndistribution with a \".meam\" suffix. All of these are parameterized in\nterms of LAMMPS [metal units ](https://docs.lammps.org/units.html).\n\nNote that unlike for other potentials, cutoffs for MEAM potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe MEAM potential files themselves.\n\nOnly a single pair_coeff command is used with the *meam* style which\nspecifies two MEAM files and the element(s) to extract information\nfor. The MEAM elements are mapped to LAMMPS atom types by specifying\nN additional arguments after the second filename in the pair_coeff\ncommand, where N is the number of LAMMPS atom types:\n\n* MEAM library file\n* Element1, Element2, ...\n* MEAM parameter file\n* N element names = mapping of MEAM elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential files.\n\nAs an example, the ``potentials/library.meam`` file has generic MEAM\nsettings for a variety of elements. The ``potentials/SiC.meam`` file\nhas specific parameter settings for a Si and C alloy system. If your\nLAMMPS simulation has 4 atoms types and you want the first 3 to be Si,\nand the fourth to be C, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * library.meam Si C sic.meam Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first filename is the element library file. The list of elements following\nit extracts lines from the library file and assigns numeric indices to these\nelements. The second filename is the alloy parameter file, which refers to\nelements using the numeric indices assigned before.\nThe arguments after the parameter file map LAMMPS atom types to elements, i.e.\nLAMMPS atom types 1,2,3 to the MEAM Si element. The final C argument maps\nLAMMPS atom type 4 to the MEAM C element.\n\nIf the second filename is specified as NULL, no parameter file is read,\nwhich simply means the generic parameters in the library file are\nused. Use of the NULL specification for the parameter file is\ndiscouraged for systems with more than a single element type\n(e.g. alloys), since the parameter file is expected to set element\ninteraction terms that are not captured by the information in the\nlibrary file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when a *meam* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the second filename is NULL, the element names between the two\n > filenames can appear in any order, e.g. \"Si C\" or \"C Si\" in the\n > example above. However, if the second filename is **not** NULL (as in the\n > example above), it contains settings that are indexed **by numbers**\n > for the elements that precede it. Thus you need to ensure that you list\n > the elements between the filenames in an order consistent with how the\n > values in the second filename are indexed. See details below on the\n > syntax for settings in the second file. \n > \n\nThe MEAM library file provided with LAMMPS has the name\n``potentials/library.meam``. It is the \"meamf\" file used by other MD\ncodes. Aside from blank and comment lines (starting with # which can\nappear anywhere), it is formatted as a series of entries, each of which\nhas 19 parameters and can span multiple lines:\n\nelt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, alat, esub, asub,\nt0, t1, t2, t3, rozero, ibar\n\nThe *elt* and *lat* parameters are text strings, such as *elt* = Si or\nCu and *lat* = dia or fcc. Because the library file is used by Fortran\nMD codes, these strings may be enclosed in single quotes, but this is\nnot required. The other numeric parameters match values in the\nformulas above. The value of the *elt* string is what is used in the\npair_coeff command to identify which settings from the library file\nyou wish to read in. There can be multiple entries in the library\nfile with the same *elt* value; LAMMPS reads the first matching entry it\nfinds and ignores the rest.\n\nOther parameters in the MEAM library file correspond to single-element\npotential parameters:\n\n```\nlat = lattice structure of reference configuration\nz = number of nearest neighbors in the reference structure\nielement = atomic number\natwt = atomic weight\nalat = lattice constant of reference structure\nesub = energy per atom (eV) in the reference structure at equilibrium\nasub = \"A\" parameter for MEAM (see e.g. **Baskes**)\n```\nThe *alpha*, *b0*, *b1*, *b2*, *b3*, *t0*, *t1*, *t2*, *t3* parameters correspond to the\nstandard MEAM parameters in the literature **Baskes** (the b\nparameters are the standard beta parameters). Note that only parameters\nnormalized to *t0 = 1.0* are supported. The *rozero* parameter is\nan element-dependent density scaling that weights the reference\nbackground density (see e.g. equation 4.5 in **Gullet**) and\nis typically 1.0 for single-element systems. The *ibar* parameter\nselects the form of the function G(Gamma) used to compute the electron\ndensity; options are\n\n```\n0 => G = sqrt(1+Gamma)\n1 => G = exp(Gamma/2)\n2 => not implemented\n3 => G = 2/(1+exp(-Gamma))\n4 => G = sqrt(1+Gamma)\n-5 => G = +-sqrt(abs(1+Gamma))\n```\nIf used, the MEAM parameter file contains settings that override or\ncomplement the library file settings. Examples of such parameter\nfiles are in the potentials directory with a \".meam\" suffix. Their\nformat is the same as is read by other Fortran MD codes. Aside from\nblank and comment lines (start with # which can appear anywhere), each\nline has one of the following forms. Each line can also have a\ntrailing comment (starting with #) which is ignored.\n\n```\nkeyword = value\nkeyword(I) = value\nkeyword(I,J) = value\nkeyword(I,J,K) = value\n```\nThe indices I, J, K correspond to the elements selected from the\nMEAM library file numbered in the order of how those elements were\nselected starting from 1. Thus for the example given before\n\n```lmps\npair_coeff * * library.meam Si C sic.meam Si Si Si C\n```\nan index of 1 would refer to Si and an index of 2 to C.\n\nThe recognized keywords for the parameter file are as follows:\n\n```\nrc = cutoff radius for cutoff function; default = 4.0\ndelr = length of smoothing distance for cutoff function; default = 0.1\nrho0(I) = relative density for element I (overwrites value\nread from meamf file)\nEc(I,J) = cohesive energy of reference structure for I-J mixture\ndelta(I,J) = heat of formation for I-J alloy; if Ec_IJ is input as\nzero, then LAMMPS sets Ec_IJ = (Ec_II + Ec_JJ)/2 - delta_IJ\nalpha(I,J) = alpha parameter for pair potential between I and J (can\nbe computed from bulk modulus of reference structure)\nre(I,J) = equilibrium distance between I and J in the reference\nstructure\nCmax(I,J,K) = Cmax screening parameter when I-J pair is screened\nby K (I<=J); default = 2.8\nCmin(I,J,K) = Cmin screening parameter when I-J pair is screened\nby K (I<=J); default = 2.0\nlattce(I,J) = lattice structure of I-J reference structure:\nfcc = face centered cubic\nbcc = body centered cubic\nhcp = hexagonal close-packed\ndim = dimer\ndia = diamond (interlaced fcc for alloy)\ndia3= diamond structure with primary 1NN and secondary 3NN interaction\nb1 = rock salt (NaCl structure)\nc11 = MoSi2 structure\nl12 = Cu3Au structure (lower case L, followed by 12)\nb2 = CsCl structure (interpenetrating simple cubic)\nch4 = methane-like structure, only for binary system\nlin = linear structure (180 degree angle)\nzig = zigzag structure with a uniform angle\ntri = H2O-like structure that has an angle\nsc = simple cubic\nnn2(I,J) = turn on second-nearest neighbor MEAM formulation for\nI-J pair (see for example **Lee**).\n0 = second-nearest neighbor formulation off\n1 = second-nearest neighbor formulation on\ndefault = 0\nattrac(I,J) = additional cubic attraction term in Rose energy I-J pair potential\ndefault = 0\nrepuls(I,J) = additional cubic repulsive term in Rose energy I-J pair potential\ndefault = 0\nzbl(I,J) = blend the MEAM I-J pair potential with the ZBL potential for small\natom separations **ZBL**\ndefault = 1\ntheta(I,J) = angle between three atoms in line, zigzag, and trimer reference structures in degrees\ndefault = 180\ngsmooth_factor = factor determining the length of the G-function smoothing\nregion; only significant for ibar=0 or ibar=4.\n99.0 = short smoothing region, sharp step\n0.5 = long smoothing region, smooth step\ndefault = 99.0\naugt1 = integer flag for whether to augment t1 parameter by\n3/5\\*t3 to account for old vs. new meam formulations;\n0 = don't augment t1\n1 = augment t1\ndefault = 1\nialloy = integer flag to use alternative averaging rule for t parameters,\nfor comparison with the DYNAMO MEAM code\n0 = standard averaging (matches ialloy=0 in DYNAMO)\n1 = alternative averaging (matches ialloy=1 in DYNAMO)\n2 = no averaging of t (use single-element values)\ndefault = 0\nmixture_ref_t = integer flag to use mixture average of t to compute the background\nreference density for alloys, instead of the single-element values\n(see description and warning elsewhere in this doc page)\n0 = do not use mixture averaging for t in the reference density\n1 = use mixture averaging for t in the reference density\ndefault = 0\nerose_form = integer value to select the form of the Rose energy function\n(see description below).\ndefault = 0\nemb_lin_neg = integer value to select embedding function for negative densities\n0 = F(rho)=0\n1 = F(rho) = -asub\\*esub\\*rho (linear in rho, matches DYNAMO)\ndefault = 0\nbkgd_dyn = integer value to select background density formula\n0 = rho_bkgd = rho_ref_meam(a) (as in the reference structure)\n1 = rho_bkgd = rho0_meam(a)\\*Z_meam(a) (matches DYNAMO)\ndefault = 0\n```\n*Rc*, *delr*, *re* are in distance units (Angstroms in the case of metal\nunits). *Ec* and *delta* are in energy units (eV in the case of metal\nunits).\n\nEach keyword represents a quantity which is either a scalar, vector,\n2d array, or 3d array and must be specified with the correct\ncorresponding array syntax. The indices I,J,K each run from 1 to N\nwhere N is the number of MEAM elements being used.\n\nThus these lines\n\n```\nrho0(2) = 2.25\nalpha(1,2) = 4.37\n```\nset *rho0* for the second element to the value 2.25 and set *alpha* for the\nalloy interaction between elements 1 and 2 to 4.37.\n\nThe *augt1* parameter is related to modifications in the MEAM\nformulation of the partial electron density function. In recent\nliterature, an extra term is included in the expression for the\nthird-order density in order to make the densities orthogonal (see for\nexample **Wang2**, equation 3d); this term is included in the\nMEAM implementation in LAMMPS. However, in earlier published work\nthis term was not included when deriving parameters, including most of\nthose provided in the ``library.meam`` file included with LAMMPS, and to\naccount for this difference the parameter *t1* must be augmented by\n3/5\\**t3*. If *augt1* = 1, the default, this augmentation is done\nautomatically. When parameter values are fit using the modified\ndensity function, as in more recent literature, augt1 should be set to\n0.\n\nThe *mixture_ref_t* parameter is available to match results with those\nof previous versions of LAMMPS (before January 2011). Newer versions\nof LAMMPS, by default, use the single-element values of the *t*\nparameters to compute the background reference density. This is the\nproper way to compute these parameters. Earlier versions of LAMMPS\nused an alloy mixture averaged value of *t* to compute the background\nreference density. Setting *mixture_ref_t* = 1 gives the old behavior.\nWARNING: using *mixture_ref_t* = 1 will give results that are demonstrably\nincorrect for second-neighbor MEAM, and non-standard for\nfirst-neighbor MEAM; this option is included only for matching with\nprevious versions of LAMMPS and should be avoided if possible.\n\nThe parameters *attrac* and *repuls*, along with the integer selection\nparameter *erose_form*, can be used to modify the Rose energy function\nused to compute the pair potential. This function gives the energy of\nthe reference state as a function of interatomic spacing. The form of\nthis function is:\n\n```\nastar = alpha \\* (r/re - 1.d0)\nif erose_form = 0: erose = -Ec\\*(1+astar+a3\\*(astar\\**3)/(r/re))\\*exp(-astar)\nif erose_form = 1: erose = -Ec\\*(1+astar+(-attrac+repuls/r)\\*(astar\\**3))\\*exp(-astar)\nif erose_form = 2: erose = -Ec\\*(1 +astar + a3\\*(astar\\**3))\\*exp(-astar)\na3 = repuls, astar < 0\na3 = attrac, astar >= 0\n```\nMost published MEAM parameter sets use the default values *attrac* = *repulse* = 0.\nSetting *repuls* = *attrac* = *delta* corresponds to the form used in several\nrecent published MEAM parameter sets, such as **Valone**\n\nThen using *meam/ms* pair style the multi-state MEAM (MS-MEAM) method is\nactivated. This requires 6 extra parameters in the MEAM library file,\nresulting in 25 parameters ordered that are ordered like this:\n\nelt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, b1m, b2m, b3m, alat, esub, asub,\nt0, t1, t2, t3, t1m, t2m, t3m, rozero, ibar\n\nThe 6 extra MS-MEAM parameters are *b1m, b2m, b3m, t1m, t2m, t3m*.\nIn the LAMMPS ``potentials`` folder, compatible files have an \".msmeam\" extension.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The default form of the *erose* expression in LAMMPS was corrected\n > in March 2009. The current version is correct, but may show different\n > behavior compared with earlier versions of LAMMPS with the attrac\n > and/or repuls parameters are non-zero. To obtain the previous default\n > form, use *erose_form* = 1 (this form does not seem to appear in the\n > literature). An alternative form (see e.g. **Lee2**) is\n > available using *erose_form* = 2. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\n*shift*, *table*, and *tail* options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html),\nsince it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Baskes)** Baskes, Phys Rev B, 46, 2727-2742 (1992). \n \n**(Baskes2)** Baskes, Phys Rev B, 75, 094113 (2007). \n \n**(Gullet)** Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395\nThis report may be accessed on-line via [this link](https://download.lammps.org/pdfs/MEAM_report_2003.pdf). \n \n**(Baskes)** Baskes, Phys Rev B, 46, 2727-2742 (1992). \n \n**(Lee)** Lee, Baskes, Phys. Rev. B, 62, 8564-8567 (2000). \n \n**(ZBL)** J.F. Ziegler, J.P. Biersack, U. Littmark, \"Stopping and Ranges\nof Ions in Matter\", Vol 1, 1985, Pergamon Press. \n \n**(Wang2)** Wang, Van Hove, Ross, Baskes, J. Chem. Phys., 121, 5410 (2004). \n \n**(Valone)** Valone, Baskes, Martin, Phys. Rev. B, 73, 214209 (2006). \n \n**(Lee2)** Lee, Baskes, Kim, Cho. Phys. Rev. B, 64, 184102 (2001). \n ", - "restrictions": "The *meam* and *meam/ms* pair styles are provided in the MEAM\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe maximum number of elements that can be read from the MEAM library\nfile is determined at compile time. The default is 8. If you need\nsupport for more elements, you have to change the the constant 'MAXELT'\nat the beginning of the file ``src/MEAM/meam.h`` and update/recompile\nLAMMPS. There is no limit on the number of atoms types.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style eam ](https://docs.lammps.org/pair_eam.html),\n[pair_style meam/spline ](https://docs.lammps.org/pair_meam_spline.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style adp\npair_coeff * * Ta.adp Ta\npair_coeff * * ../potentials/AlCu.adp Al Al Cu\n```\n", + "html_filename": "pair_adp.html", + "short_description": "Style *adp* computes pairwise interactions for metals and metal alloys\nusing the angular dependent potential (ADP) of **Mishin**,\nwhich is a generalization of the [embedded atom method (EAM) potential ](https://docs.lammps.org/pair_eam.html)", + "description": "Style *adp* computes pairwise interactions for metals and metal alloys\nusing the angular dependent potential (ADP) of **Mishin**,\nwhich is a generalization of the [embedded atom method (EAM) potential ](https://docs.lammps.org/pair_eam.html). The LAMMPS implementation is discussed in\n**Singh**. The total energy Ei of an atom I is given by\n\\[\\begin{align*} \n E_i & = F_\\alpha \\left( \\sum_{j\\neq i} \\rho_\\beta (r_{ij}) \\right) + \\frac{1}{2} \\sum_{j\\neq i}\\phi_{\\alpha\\beta}(r_{ij})+ \\frac{1}{2} \\sum_s (\\mu_i^s)^2 + \\frac{1}{2} \\sum_{s,t} (\\lambda_i^{st})^2 - \\frac{1}{6} \\nu_i^2 \\\\\n \\mu_i^s & = \\sum_{j\\neq i}u_{\\alpha\\beta}(r_{ij})r_{ij}^s\\\\\n \\lambda_i^{st} & = \\sum_{j\\neq i}w_{\\alpha\\beta}(r_{ij})r_{ij}^sr_{ij}^t\\\\\n \\nu_i & = \\sum_s\\lambda_i^{ss} \\end{align*} \\]\nwhere \\(F\\) is the embedding energy which is a function of the atomic\nelectron density \\(\\rho\\), \\(\\phi\\) is a pair potential interaction,\n\\(\\alpha\\) and \\(\\beta\\) are the element types of atoms \\(I\\) and\n\\(J\\), and \\(s\\) and \\(t = 1,2,3\\) and refer to the cartesian\ncoordinates. The \\(\\mu\\) and \\(\\lambda\\) terms represent the dipole\nand quadruple distortions of the local atomic environment which extend the\noriginal EAM framework by introducing angular forces.\n\nNote that unlike for other potentials, cutoffs for ADP potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe ADP potential files themselves. Likewise, the ADP potential files\nlist atomic masses; thus you do not need to use the [mass ](https://docs.lammps.org/mass.html)\ncommand to specify them.\n\n**ADP potentials are available from:**\n\n* The NIST WWW site at https://www.ctcms.nist.gov/potentials.\n Note that ADP potentials obtained from NIST must be converted\n into the extended DYNAMO *setfl* format discussed below.\n* The OpenKIM Project at\n [https://openkim.org/browse/models/by-type](https://openkim.org/browse/models/by-type)\n provides ADP potentials that can be used directly in LAMMPS with the\n [kim command ](https://docs.lammps.org/kim_commands.html) interface.\n\n----------\n\nOnly a single pair_coeff command is used with the *adp* style which\nspecifies an extended DYNAMO *setfl* file, which contains information\nfor \\(M\\) elements. These are mapped to LAMMPS atom types by specifying \\(N\\)\nadditional arguments after the filename in the pair_coeff command,\nwhere \\(N\\) is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of extended *setfl* elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways to\nspecify the path for the potential file.\n\nAs an example, the potentials/AlCu.adp file, included in the\npotentials directory of the LAMMPS distribution, is an extended *setfl*\nfile which has tabulated ADP values for w elements and their alloy\ninteractions: Cu and Al. If your LAMMPS simulation has 4 atoms types\nand you want the first 3 to be Al, and the fourth to be Cu, you would use\nthe following pair_coeff command:\n\n```lmps\npair_coeff * * AlCu.adp Al Al Al Cu\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Al arguments map LAMMPS atom types 1,2,3 to the Al\nelement in the extended *setfl* file. The final Cu argument maps\nLAMMPS atom type 4 to the Al element in the extended *setfl* file.\nNote that there is no requirement that your simulation use all the\nelements specified by the extended *setfl* file.\n\nIf a mapping value is specified as NULL, the mapping is not performed.\nThis can be used when an *adp* potential is used as part of the\n*hybrid* pair style. The NULL values are placeholders for atom types\nthat will be used with other potentials.\n\n*Adp* files in the *potentials* directory of the LAMMPS distribution\nhave an \".adp\" suffix. A DYNAMO *setfl* file extended for ADP is\nformatted as follows. Basically it is the standard *setfl* format\nwith additional tabulated functions u and w added to the file after\nthe tabulated pair potentials. See the [pair_eam ](https://docs.lammps.org/pair_eam.html)\ncommand for further details on the *setfl* format.\n\n* lines 1,2,3 = comments (ignored)\n* line 4: \\(N_{\\text{elements}}\\) Element1 Element2 ... ElementN\n* line 5: \\(N_{\\rho}\\), \\(d_{\\rho}\\), \\(N_r\\), \\(d_r\\), cutoff\n\nFollowing the 5 header lines are \\(N_{\\text{elements}}\\) sections, one for each\nelement, each with the following format:\n\n* line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)\n* embedding function \\(F(\\rho)\\) (\\(N_{\\rho}\\) values)\n* density function \\(\\rho(r)\\) (\\(N_r\\) values)\n\nFollowing the \\(N_{\\text{elements}}\\) sections, \\(N_r\\) values for each pair potential\n\\(\\phi(r)\\) array are listed for all \\(i,j\\) element pairs in the same format\nas other arrays. Since these interactions are symmetric (\\(i,j = j,i\\))\nonly \\(\\phi\\) arrays with \\(i \\geq j\\) are listed, in the following order:\n\\[\n i,j = (1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (N_{\\text{elements}},N_{\\text{elements}}).\\]\nThe tabulated values for each \\(\\phi\\) function are listed as\n\\(r*\\phi\\) (in units of eV-Angstroms), since they are for atom pairs, the\nsame as for [other EAM files ](https://docs.lammps.org/pair_eam.html).\n\nAfter the \\(\\phi(r)\\) arrays, each of the \\(u(r)\\) arrays are listed in the\nsame order with the same assumptions of symmetry. Directly following\nthe \\(u(r)\\), the \\(w(r)\\) arrays are listed. Note that \\(\\phi(r)\\) is the only\narray tabulated with a scaling by \\(r\\).\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, no special mixing rules are needed, since\nthe ADP potential files specify alloy interactions explicitly.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Mishin)** Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029\n(2005). \n \n**(Singh)** Singh and Warner, Acta Mater, 58, 5797-5805 (2010), \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled\nif LAMMPS was built with that package.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_eam ](https://docs.lammps.org/pair_eam.html)\n" }, { "command": [ - "compute temp/chunk" + "fix damping/cundall" ], "syntax": [ - "compute ID group-ID temp/chunk chunkID value1 value2 ... keyword value ..." + "fix ID group-ID damping/cundall gamma_l gamma_a keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -36236,65 +35348,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/chunk", + "arg": "damping/cundall", "type": 1, "choices": [] }, { - "arg": "chunkID", + "arg": "gamma_l", "type": 2, "choices": [] }, { - "arg": "value1", + "arg": "gamma_a", "type": 2, "choices": [] }, { - "arg": "value2", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "cdof", - "type": 3, - "choices": [ - "com", - "bias", - "adof", - "cdof" - ] - }, - { - "arg": "internal", - "type": 3, - "choices": [ - "temp", - "kecom", - "internal" - ] + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* zero or more values can be listed as value1,value2,etc.\n* value = temp or kecom or internal \n *        temp = temperature of each chunk \n *        kecom = kinetic energy of each chunk based on velocity of center of mass \n *        internal = internal kinetic energy of each chunk \n* zero or more keyword/value pairs may be appended\n* keyword = com or bias or adof or cdof \n *        com value = yes or no \n         yes = subtract center-of-mass velocity from each chunk before calculating temperature \n         no = do not subtract center-of-mass velocity \n *        bias value = bias-ID \n         bias-ID = ID of a temperature compute that removes a velocity bias \n *        adof value = dof_per_atom \n         dof_per_atom = define this many degrees-of-freedom per atom \n *        cdof value = dof_per_chunk \n         dof_per_chunk = define this many degrees-of-freedom per chunk \n", - "examples": "\n```lmps\ncompute 1 fluid temp/chunk molchunk\ncompute 1 fluid temp/chunk molchunk temp internal\ncompute 1 fluid temp/chunk molchunk bias tpartial adof 2.0\n```\n", - "html_filename": "compute_temp_chunk.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms that are also in chunks, after optionally subtracting out the\ncenter-of-mass velocity of each chunk", - "description": "Define a computation that calculates the temperature of a group of\natoms that are also in chunks, after optionally subtracting out the\ncenter-of-mass velocity of each chunk. By specifying optional values,\nit can also calculate the per-chunk temperature or energies of the\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE is the total kinetic energy of all atoms assigned to chunks\n(sum of \\(\\frac12 m v^2\\)), DOF is the the total number of degrees of\nfreedom for those atoms, \\(k_B\\) is Boltzmann constant, and \\(T\\) is the\nabsolute temperature.\n\nThe DOF is calculated as \\(N\\times\\)\\ *adof*\n+ \\(N_\\text{chunk}\\times\\)\\ *cdof*,\nwhere \\(N\\) is the number of atoms contributing to the kinetic energy,\n*adof* is the number of degrees of freedom per atom, and\n*cdof* is the number of degrees of freedom per chunk.\nBy default, *adof* = 2 or 3 = dimensionality of system, as set via the\n[dimension ](https://docs.lammps.org/dimension.html) command, and *cdof* = 0.0.\nThis gives the usual formula for temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute. The formula for the components of the tensor is the\nsame as the above expression for \\(E_\\mathrm{kin}\\), except that\nthe 1/2 factor is NOT included and the \\(v_i^2\\) is replaced by\n\\(v_{i,x} v_{i,y}\\) for the \\(xy\\) component, and so on. Note\nthat because it lacks the 1/2 factor, these tensor components are\ntwice those of the traditional kinetic energy tensor. The six\ncomponents of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nNote that the number of atoms contributing to the temperature is\ncalculated each time the temperature is evaluated since it is assumed\nthe atoms may be dynamically assigned to chunks. Thus there is no\nneed to use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command for this compute style.\n\nIf any optional values are specified, then per-chunk quantities are\nalso calculated and stored in a global array, as described below.\n\nThe *temp* value calculates the temperature for each chunk by the\nformula\n\\[\n \\text{KE} = \\frac{\\text{DOF}}{2} k_B T,\\]\nwhere KE is the total kinetic energy of the chunk of atoms (sum of\n\\(\\frac12 m v^2\\)), DOF is the total number of degrees of freedom for all\natoms in the chunk, \\(k_B\\) is the Boltzmann constant, and \\(T\\) is the\nabsolute temperature.\n\nThe number of degrees of freedom (DOF) in this case is calculated as\n\\(N\\times\\)\\ *adof* + *cdof*, where \\(N\\) is the number\nof atoms in the chunk, *adof* is the number of degrees of freedom\nper atom, and *cdof* is the number of degrees of freedom per\nchunk. By default, *cdof* = 2 or 3 = dimensionality of system, as set\nvia the [dimension ](https://docs.lammps.org/dimension.html) command, and *cdof* = 0.0.\nThis gives the usual formula for temperature.\n\nThe *kecom* value calculates the kinetic energy of each chunk as if\nall its atoms were moving with the velocity of the center-of-mass of\nthe chunk.\n\nThe *internal* value calculates the internal kinetic energy of each\nchunk. The interal KE is summed over the atoms in the chunk using an\ninternal \"thermal\" velocity for each atom, which is its velocity minus\nthe center-of-mass velocity of the chunk.\n\n----------\n\nNote that currently the global and per-chunk temperatures calculated\nby this compute only include translational degrees of freedom for each\natom. No rotational degrees of freedom are included for finite-size\nparticles. Also no degrees of freedom are subtracted for any velocity\nbias or constraints that are applied, such as\n[compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html), or\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html).\nThis is because those degrees of\nfreedom (e.g., a constrained bond) could apply to sets of atoms that\nare both included and excluded from a specific chunk, and hence the\nconcept is somewhat ill-defined. In some cases, you can use the\n*adof* and *cdof* keywords to adjust the calculated degrees of freedom\nappropriately, as explained below.\n\nNote that the per-chunk temperature calculated by this compute and the\n[fix ave/chunk temp ](https://docs.lammps.org/fix_ave_chunk.html) command can be different.\nThis compute calculates the temperature for each chunk for a single\nsnapshot. Fix ave/chunk can do that but can also time average those\nvalues over many snapshots, or it can compute a temperature as if the\natoms in the chunk on different timesteps were collected together as\none set of atoms to calculate their temperature. This compute allows\nthe center-of-mass velocity of each chunk to be subtracted before\ncalculating the temperature; fix ave/chunk does not.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only atoms in the specified group contribute to the calculations performed\n > by this compute. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\n > command defines its own group; atoms will have a chunk ID = 0 if they are\n > not in that group, signifying they are not assigned to a chunk, and will\n > thus also not contribute to this calculation. You can specify the \"all\"\n > group for this command if you simply want to include atoms with non-zero\n > chunk IDs. \n > \n\nThe simplest way to output the per-chunk results of the compute\ntemp/chunk calculation to a file is to use the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all temp/chunk cc1 temp\nfix 1 all ave/time 100 1 100 c_myChunk[1] file tmp.out mode vector\n```\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *com* keyword can be used with a value of *yes* to subtract the\nvelocity of the center-of-mass for each chunk from the velocity of the\natoms in that chunk, before calculating either the global or per-chunk\ntemperature. This can be useful if the atoms are streaming or\notherwise moving collectively, and you wish to calculate only the\nthermal temperature.\n\nFor the *bias* keyword, *bias-ID* refers to the ID of a temperature\ncompute that removes a \"bias\" velocity from each atom. This also\nallows calculation of the global or per-chunk temperature using only\nthe thermal temperature of atoms in each chunk after the translational\nkinetic energy components have been altered in a prescribed way\n(e.g., to remove a velocity profile). It also applies to the calculation\nof the other per-chunk values, such as *kecom* or *internal*, which\ninvolve the center-of-mass velocity of each chunk, which is calculated\nafter the velocity bias is removed from each atom. Note that the\ntemperature compute will apply its bias globally to the entire system,\nnot on a per-chunk basis.\n\nThe *adof* and *cdof* keywords define the values used in the degree of\nfreedom (DOF) formulas used for the global or per-chunk temperature,\nas described above. They can be used to calculate a more appropriate\ntemperature for some kinds of chunks. Here are three examples:\n\nIf spatially binned chunks contain some number of water molecules and\n[fix shake ](https://docs.lammps.org/fix_shake.html) is used to make each molecule rigid, then\nyou could calculate a temperature with six degrees of freedom (DOF) (three\ntranslational, three rotational) per molecule by setting *adof* to 2.0.\n\nIf [compute temp/partial ](https://docs.lammps.org/compute_temp_partial.html) is used with the\n*bias* keyword to only allow the x component of velocity to contribute\nto the temperature, then *adof* = 1.0 would be appropriate.\n\nIf each chunk consists of a large molecule, with some number of its\nbonds constrained by [fix shake ](https://docs.lammps.org/fix_shake.html) or the entire molecule\nby [fix rigid/small ](https://docs.lammps.org/fix_rigid.html), *adof* = 0.0 and *cdof* could be\nset to the remaining degrees of freedom for the entire molecule\n(entire chunk in this case; i.e., 6 for 3d, or 3 for 2d, for a rigid\nmolecule).\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThis compute also optionally calculates a global array, if one or more\nof the optional values are specified. The number of rows in the array\nis the number of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of\ncolumns is the number of specified values (1 or more). These values\ncan be accessed by any command that uses global array values from a\ncompute as input. Again, see the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\". The array values are \"intensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html). The array values will be\nin temperature [units ](https://docs.lammps.org/units.html) for the *temp* value, and in\nenergy [units ](https://docs.lammps.org/units.html) for the *kecom* and *internal* values.\n", - "restrictions": "The *com* and *bias* keywords cannot be used together.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [fix ave/chunk temp ](https://docs.lammps.org/fix_ave_chunk.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* damping/cundall = style name of this fix command\n* gamma_l = linear damping coefficient (dimensionless)\n* gamma_a = angular damping coefficient (dimensionless)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale \n       scale values = *type ratio* or v_name \n       type = atom type (1-N) \n       ratio = factor to scale the damping coefficients by \n       v_name = reference to atom style variable name \n", + "examples": "\n```lmps\nfix 1 all damping/cundall 0.8 0.8\nfix 1 all damping/cundall 0.8 0.5 scale 3 2.5\nfix a all damping/cundall 0.8 0.5 scale v_radscale\n```\n", + "html_filename": "fix_damping_cundall.html", + "short_description": "Add damping force and torque to finite-size spherical particles in the group\nfollowing the model of **Cundall1987**, as implemented in other\ngranular physics code (e.g., **YadeDEM**, **PFC**)", + "description": "Add damping force and torque to finite-size spherical particles in the group\nfollowing the model of **Cundall1987**, as implemented in other\ngranular physics code (e.g., **YadeDEM**, **PFC**).\n\nThe damping is constructed to always have negative mechanical power with respect\nto the current velocity/angular velocity to ensure dissipation of kinetic energy.\nIf used without additional thermostatting (to add kinetic energy to the system),\nit has the effect of slowly (or rapidly) freezing the system; hence it can also\nbe used as a simple energy minimization technique.\n\nThe magnitude of the damping force/torque \\(F_d\\)/\\(T_d\\) is a fraction\n\\(\\gamma \\in [0;1]\\) of the current force/torque \\(F\\)/\\(T\\) on the\nparticle. Damping is applied component-by-component in each direction\n\\(k\\in\\{x, y, z\\}\\):\n\\[\n {F_d}_k = - \\gamma_l \\, F_k \\, \\mathrm{sign}(F_k v_k)\\]\n\\[\n {T_d}_k = - \\gamma_a \\, T_k \\, \\mathrm{sign}(T_k \\omega_k)\\]\nThe larger the coefficients, the faster the kinetic energy is reduced.\n\nIf the optional keyword *scale* is used, \\(\\gamma_l\\) and \\(\\gamma_a\\)\ncan be scaled up or down by the specified factor for atoms. This factor can be\nset for different atom types and thus the *scale* keyword used multiple times\nfollowed by the atom type and the associated scale factor. Alternately the\nscaling factor can be computed for each atom (e.g. based on its radius) by\nusing an [atom-style variable ](https://docs.lammps.org/variable.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The damping force/torque is computed based on the force/torque at the moment\n > this fix is invoked. Any force/torque added after this fix, e.g., by\n > [fix addforce ](https://docs.lammps.org/fix_addforce.html) or [fix addtorque ](https://docs.lammps.org/fix_addtorque.html)\n > will not be damped. When performing simulations with gravity, invoking\n > [fix gravity ](https://docs.lammps.org/fix_gravity.html) after this fix will maintain the specified\n > gravitational acceleration. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This scheme is dependent on the coordinates system and does not correspond to\n > realistic physical processes. It is constructed for numerical convenience and\n > efficacy. \n > \n\nThis non-viscous damping presents the following advantages:\n\n1. damping is independent of velocity, equally damping regions with distinct natural frequencies,\n2. damping affects acceleration and vanishes for steady uniform motion of the particles,\n3. damping parameter \\(\\gamma\\) is dimensionless and does not require scaling.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is modifying forces/torques. Default is the outermost level.\n\nThe forces/torques due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command. This fix should only\nbe used with damped dynamics minimizers that allow for\nnon-conservative forces. See the [min_style ](https://docs.lammps.org/min_style.html) command\nfor details.\n\n**(Cundall1987)** Cundall, P. A. Distinct Element Models of Rock and Soil\nStructure, in Analytical and Computational Methods in Engineering Rock\nMechanics, Ch. 4, pp. 129-163. E. T. Brown, ed. London: Allen & Unwin., 1987. \n \n**(YadeDEM)** V. Smilauer et al. (2021), Yade Documentation 3rd ed.\nThe Yade Project. DOI:10.5281/zenodo.5705394 (https://yade-dem.org/doc/) \n \n**(PFC)** PFC Particle Flow Code 6.0 Documentation. Itasca Consulting Group. \n ", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n", + "related": "[fix viscous ](https://docs.lammps.org/fix_viscous.html), [fix viscous/sphere ](https://docs.lammps.org/fix_viscous_sphere.html)\n" }, { "command": [ - "fix store/force" + "compute temp/com" ], "syntax": [ - "fix ID group-ID store/force" + "compute ID group-ID temp/com" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -36309,26 +35407,31 @@ export const command_docs = [ "choices": [] }, { - "arg": "store/force", + "arg": "temp/com", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* store/force = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all store/force\n```\n", - "html_filename": "fix_store_force.html", - "short_description": "Store the forces on atoms in the group at the point during each timestep\nwhen the fix is invoked, as described below", - "description": "Store the forces on atoms in the group at the point during each timestep\nwhen the fix is invoked, as described below. This is useful for storing\nforces before constraints or other boundary conditions are computed\nwhich modify the forces, so that unmodified forces can be [writtento a dump file ](https://docs.lammps.org/dump.html) or accessed by other [output commands](https://docs.lammps.org/Howto_output.html) that use per-atom quantities.\n\nThis fix is invoked at the point in the velocity-Verlet timestepping\nimmediately after [pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html),\n[angle ](https://docs.lammps.org/angle_style.html), [dihedral ](https://docs.lammps.org/dihedral_style.html),\n[improper ](https://docs.lammps.org/improper_style.html), and [long-range ](https://docs.lammps.org/kspace_style.html)\nforces have been calculated. It is the point in the timestep when\nvarious fixes that compute constraint forces are calculated and\npotentially modify the force on each atom. Examples of such fixes are\n[fix shake ](https://docs.lammps.org/fix_shake.html), [fix wall ](https://docs.lammps.org/fix_wall.html), and [fixindent ](https://docs.lammps.org/fix_indent.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The order in which various fixes are applied which operate at the\n > same point during the timestep, is the same as the order they are\n > specified in the input script. Thus normally, if you want to store\n > per-atom forces due to force field interactions, before constraints\n > are applied, you should list this fix first within that set of fixes,\n > i.e. before other fixes that apply constraints. However, if you wish\n > to include certain constraints (e.g. fix shake) in the stored force,\n > then it could be specified after some fixes and before others. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the x,y,z forces on each atom. The\nper-atom values be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/com = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all temp/com\ncompute myTemp mobile temp/com\n```\n", + "html_filename": "compute_temp_com.html", + "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity of the group", + "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out the center-of-mass velocity of the group.\nThis is useful if the group is expected to have a non-zero net\nvelocity for some reason. A compute of this style can be used by any\ncommand that computes a temperature,\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nAfter the center-of-mass velocity has been subtracted from each atom,\nthe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the\nsimulation, \\(N\\) is number of atoms in the group, \\(k_B\\) is\nthe Boltzmann constant, and \\(T\\) is the absolute temperature.\n\nA kinetic energy tensor, stored as a six-element vector, is also\ncalculated by this compute for use in the computation of a pressure\ntensor. The formula for the components of the tensor is the same as\nthe above formula, except that \\(v^2\\) is replaced by \\(v_x v_y\\)\nfor the \\(xy\\) component, and so on. The six components of the vector are\nordered \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the center-of-mass velocity by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed from the\nvelocity of the atoms. If this compute is used with a fix command\nthat performs thermostatting then this bias will be subtracted from\neach atom, thermostatting of the remaining thermal velocity will be\nperformed, and the bias will be added back in. Thermostatting fixes\nthat work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of\natoms that include these constraints will be computed correctly.\nIf needed, the subtracted degrees-of-freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (KE tensor), which can be accessed by indices 1--6.\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value will be in temperature [units ](https://docs.lammps.org/units.html).\nThe vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", "restrictions": " none\n", - "related": "[fix store_state ](https://docs.lammps.org/fix_store_state.html)\n" + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html)\n" }, { "command": [ - "pair_style lubricateU" + "pair_style vashishta", + "pair_style vashishta/gpu", + "pair_style vashishta/omp", + "pair_style vashishta/kk", + "pair_style vashishta/table", + "pair_style vashishta/table/omp" ], "syntax": [ - "pair_style style mu flaglog cutinner cutoff gdot flagHI flagVF" + "pair_style style args" ], "args": [ [ @@ -36338,64 +35441,94 @@ export const command_docs = [ "choices": [] }, { - "arg": "lubricateU/poly", + "arg": "vashishta/table/omp", "type": 3, "choices": [ - "lubricateU", - "lubricateU/poly" + "vashishta", + "vashishta/table", + "vashishta/gpu", + "vashishta/omp", + "vashishta/kk", + "vashishta/table/omp" ] }, { - "arg": "mu", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* style = vashishta or vashishta/table\n* args = list of arguments for a particular style \n *      vashishta args = none \n *      vashishta/table args = Ntable cutinner \n       Ntable = # of tabulation points \n       cutinner = tablulate from cutinner to cutoff \n", + "examples": "\n```lmps\npair_style vashishta\npair_coeff * * SiC.vashishta Si C\n\npair_style vashishta/table 100000 0.2\npair_coeff * * SiC.vashishta Si C\n```\n", + "html_filename": "pair_vashishta.html", + "short_description": "The *vashishta* and *vashishta/table* styles compute the combined\n2-body and 3-body family of potentials developed in the group of Priya\nVashishta and collaborators", + "description": "The *vashishta* and *vashishta/table* styles compute the combined\n2-body and 3-body family of potentials developed in the group of Priya\nVashishta and collaborators. By combining repulsive, screened\nCoulombic, screened charge-dipole, and dispersion interactions with a\nbond-angle energy based on the Stillinger-Weber potential, this\npotential has been used to describe a variety of inorganic compounds,\nincluding SiO2 **Vashishta1990**, SiC\n**Vashishta2007**, and InP **Branicio2009**.\n\nThe potential for the energy U of a system of atoms is\n\\[\\begin{align*} \n U & = \\sum_i^N \\sum_{j > i}^N U_{ij}^{(2)} (r_{ij}) + \\sum_i^N \\sum_{j \\neq i}^N \\sum_{k > j, k \\neq i}^N U_{ijk}^{(3)} (r_{ij}, r_{ik}, \\theta_{ijk}) \\\\\n U_{ij}^{(2)} (r) & = \\frac{H_{ij}}{r^{\\eta_{ij}}} + \\frac{Z_i Z_j}{r}\\exp(-r/\\lambda_{1,ij}) - \\frac{D_{ij}}{r^4}\\exp(-r/\\lambda_{4,ij}) - \\frac{W_{ij}}{r^6}, r < r_{c,{ij}} \\\\\n U_{ijk}^{(3)}(r_{ij},r_{ik},\\theta_{ijk}) & = B_{ijk} \\frac{\\left[ \\cos \\theta_{ijk} - \\cos \\theta_{0ijk} \\right]^2} {1+C_{ijk}\\left[ \\cos \\theta_{ijk} - \\cos \\theta_{0ijk} \\right]^2} \\times \\\\\n & \\exp \\left( \\frac{\\gamma_{ij}}{r_{ij} - r_{0,ij}} \\right) \\exp \\left( \\frac{\\gamma_{ik}}{r_{ik} - r_{0,ik}} \\right), r_{ij} < r_{0,ij}, r_{ik} < r_{0,ik} \\end{align*} \\]\nwhere we follow the notation used in **Branicio2009**.\n\\(U^2\\) is a two-body term and U3 is a three-body term. The\nsummation over two-body terms is over all neighbors J within\na cutoff distance = \\(r_c\\). The twobody terms are shifted and\ntilted by a linear function so that the energy and force are\nboth zero at \\(r_c\\). The summation over three-body terms\nis over all neighbors *i* and *k* within a cut-off distance \\(= r_0\\),\nwhere the exponential screening function becomes zero.\n\nThe *vashishta* style computes these formulas analytically. The\n*vashishta/table* style tabulates the analytic values for *Ntable*\npoints from cutinner to the cutoff of the potential. The points are\nequally spaced in R\\^2 space from cutinner\\^2 to cutoff\\^2. For the\ntwo-body term in the above equation, a linear interpolation for each\npairwise distance between adjacent points in the table. In practice\nthe tabulated version can run 3-5x faster than the analytic version\nwith moderate to little loss of accuracy for Ntable values\nbetween 10000 and 1000000. It is not recommended to use less than\n5000 tabulation points.\n\nOnly a single pair_coeff command is used with either style which\nspecifies a Vashishta potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Vashishta elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine a file SiC.vashishta has parameters for\nSi and C. If your LAMMPS simulation has 4 atoms types and you want\nthe first 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.vashishta Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the file. The final C argument maps LAMMPS atom type 4\nto the C element in the file. If a mapping value is specified as\nNULL, the mapping is not performed. This can be used when a *vashishta*\npotential is used as part of the *hybrid* pair style. The NULL values\nare placeholders for atom types that will be used with other\npotentials.\n\nVashishta files in the *potentials* directory of the LAMMPS\ndistribution have a \".vashishta\" suffix. Lines that are not blank or\ncomments (starting with #) define parameters for a triplet of\nelements. The parameters in a single entry correspond to the two-body\nand three-body coefficients in the formulae above:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2\n* element 3\n* *H* (energy units)\n* \\(\\eta\\)\n* \\(Z_i\\) (electron charge units)\n* \\(Z_j\\) (electron charge units)\n* \\(\\lambda_1\\) (distance units)\n* *D* (energy units)\n* \\(\\lambda_4\\) (distance units)\n* *W* (energy units)\n* \\(r_c\\) (distance units)\n* *B* (energy units)\n* \\(\\gamma\\)\n* \\(r_0\\) (distance units)\n* *C*\n* \\(\\cos\\theta_0\\)\n\nThe non-annotated parameters are unitless. The Vashishta potential\nfile must contain entries for all the elements listed in the\npair_coeff command. It can also contain entries for additional\nelements not being used in a particular simulation; LAMMPS ignores\nthose entries. For a single-element simulation, only a single entry\nis required (e.g. SiSiSi). For a two-element simulation, the file\nmust contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC,\nCCSi, CCC), that specify parameters for all permutations of the two\nelements interacting in three-body configurations. Thus for 3\nelements, 27 entries would be required, etc.\n\nDepending on the particular version of the Vashishta potential, the\nvalues of these parameters may be keyed to the identities of zero,\none, two, or three elements. In order to make the input file format\nunambiguous, general, and simple to code, LAMMPS uses a slightly\nconfusing method for specifying parameters. All parameters are\ndivided into two classes: two-body and three-body. Two-body and\nthree-body parameters are handled differently, as described below.\nThe two-body parameters are *H*, \\(\\eta\\), \\(\\lambda_1\\),\n*D*, \\(\\lambda_4\\), *W*, \\(r_c\\), \\(\\gamma\\),\nand \\(r_0\\). They appear in the above formulae with two subscripts.\nThe parameters \\(Z_i\\) and \\(Z_j\\) are also classified\nas two-body parameters, even\nthough they only have 1 subscript. The three-body parameters are *B*,\n*C*, \\(\\cos\\theta_0\\). They appear in the above formulae with\nthree subscripts. Two-body and three-body parameters are handled\ndifferently, as described below.\n\nThe first element in each entry is the center atom in a three-body\ninteraction, while the second and third elements are two neighbor\natoms. Three-body parameters for a central atom I and two neighbors J\nand K are taken from the IJK entry. Note that even though three-body\nparameters do not depend on the order of J and K, LAMMPS stores\nthree-body parameters for both IJK and IKJ. The user must ensure that\nthese values are equal. Two-body parameters for an atom I interacting\nwith atom J are taken from the IJJ entry, where the second and third\nelements are the same. Thus the two-body parameters for Si interacting\nwith C come from the SiCC entry. Note that even though two-body\nparameters (except possibly gamma and r0 in U3) do not depend on the\norder of the two elements, LAMMPS will get the Si-C value from the\nSiCC entry and the C-Si value from the CSiSi entry. The user must\nensure that these values are equal. Two-body parameters appearing in\nentries where the second and third elements are different are stored but\nnever used. It is good practice to enter zero for these values. Note\nthat the three-body function U3 above contains the two-body parameters\n\\(\\gamma\\) and \\(r_0\\). So U3 for a central C atom bonded to\nan Si atom and a\nsecond C atom will take three-body parameters from the CSiC entry, but\ntwo-body parameters from the CCC and CSiSi entries.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Vashishta1990)** P. Vashishta, R. K. Kalia, J. P. Rino, Phys. Rev. B\n41, 12197 (1990). \n \n**(Vashishta2007)** P. Vashishta, R. K. Kalia, A. Nakano,\nJ. P. Rino. J. Appl. Phys. 101, 103515 (2007). \n \n**(Branicio2009)** Branicio, Rino, Gan and Tsuzuki, J. Phys Condensed\nMatter 21 (2009) 095002 \n ", + "restrictions": "These pair styles are part of the MANYBODY package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese pair styles requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe Vashishta potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html). You can\nuse the Vashishta potential with any LAMMPS units, but you would need\nto create your own potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" +}, +{ + "command": [ + "min_style spin", + "min_style spin/cg" + ], + "syntax": [ + "min_style spin", + "min_style spin/cg", + "min_style spin/lbfgs" + ], + "args": [ + [ { - "arg": "flaglog", - "type": 2, + "arg": "min_style", + "type": 1, "choices": [] }, { - "arg": "cutinner", - "type": 2, + "arg": "spin", + "type": 1, "choices": [] - }, + } + ], + [ { - "arg": "cutoff", - "type": 2, + "arg": "min_style", + "type": 1, "choices": [] }, { - "arg": "gdot", + "arg": "spin/cg", "type": 2, "choices": [] - }, + } + ], + [ { - "arg": "flagHI", - "type": 2, + "arg": "min_style", + "type": 1, "choices": [] }, { - "arg": "flagVF", + "arg": "spin/lbfgs", "type": 2, "choices": [] } ] ], - "parameters": "* style = lubricateU or lubricateU/poly\n* mu = dynamic viscosity (dynamic viscosity units)\n* flaglog = 0/1 to exclude/include log terms in the lubrication approximation\n* cutinner = inner cut off distance (distance units)\n* cutoff = outer cutoff for interactions (distance units)\n* gdot = shear rate (1/time units)\n* flagHI (optional) = 0/1 to exclude/include 1/r hydrodynamic interactions\n* flagVF (optional) = 0/1 to exclude/include volume fraction corrections in the long-range isotropic terms \n", - "examples": "(all assume radius = 1)\n\n```lmps\npair_style lubricateU 1.5 1 2.01 2.5 0.01 1 1\npair_coeff 1 1 2.05 2.8\npair_coeff * *\n```\n", - "html_filename": "pair_lubricateU.html", - "short_description": "Styles *lubricateU* and *lubricateU/poly* compute velocities and\nangular velocities for finite-size spherical particles such that the\nhydrodynamic interaction balances the force and torque due to all\nother types of interactions", - "description": "Styles *lubricateU* and *lubricateU/poly* compute velocities and\nangular velocities for finite-size spherical particles such that the\nhydrodynamic interaction balances the force and torque due to all\nother types of interactions.\n\nThe interactions have 2 components. The first is\nBall-Melrose lubrication terms via the formulas in **Ball2**\n\\[\\begin{align*} \n W & = - a_{sq} | (v_1 - v_2) \\bullet \\mathbf{nn} |^2 -\n a_{sh} | (\\omega_1 + \\omega_2) \\bullet\n (\\mathbf{I} - \\mathbf{nn}) - 2 \\Omega_N |^2 - \\\\\n & a_{pu} | (\\omega_1 - \\omega_2) \\bullet (\\mathbf{I} - \\mathbf{nn}) |^2 -\n a_{tw} | (\\omega_1 - \\omega_2) \\bullet \\mathbf{nn} |^2 \\qquad r < r_c \\\\\n & \\\\\n \\Omega_N & = \\mathbf{n} \\times (v_1 - v_2) / r \\end{align*} \\]\nwhich represents the dissipation W between two nearby particles due to\ntheir relative velocities in the presence of a background solvent with\nviscosity *mu* . Note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity.\n\nThe Asq (squeeze) term is the strongest and is included as long as\n*flagHI* is set to 1 (default). It scales as 1/gap where gap is the\nseparation between the surfaces of the 2 particles. The Ash (shear)\nand Apu (pump) terms are only included if *flaglog* is set to 1. They\nare the next strongest interactions, and the only other singular\ninteraction, and scale as log(gap). Note that *flaglog* = 1 and\n*flagHI* = 0 is invalid, and will result in a warning message, after\nwhich *flagHI* will be set to 1. The Atw (twist) term is currently not\nincluded. It is typically a very small contribution to the lubrication\nforces.\n\nThe *flagHI* and *flagVF* settings are optional. Neither should be\nused, or both must be defined.\n\n*Cutinner* sets the minimum center-to-center separation that will be\nused in calculations irrespective of the actual separation. *Cutoff*\nis the maximum center-to-center separation at which an interaction is\ncomputed. Using a *cutoff* less than 3 radii is recommended if\n*flaglog* is set to 1.\n\nThe other component is due to the Fast Lubrication Dynamics (FLD)\napproximation, described in **Kumar2**. The equation being\nsolved to balance the forces and torques is\n\\[\n -R_{FU}(U-U^{\\infty}) = -R_{FE}E^{\\infty} - F^{rest}\\]\nwhere U represents the velocities and angular velocities of the\nparticles, \\(U^{\\infty}\\) represents the velocities and the angular\nvelocities of the undisturbed fluid, and \\(E^{\\infty}\\) represents\nthe rate of strain tensor of the undisturbed fluid flow with viscosity\n*mu* . Again, note that this is dynamic viscosity which has units of\nmass/distance/time, not kinematic viscosity. Volume fraction\ncorrections to R_FU are included if *flagVF* is set to 1 (default).\n\nF\\ *rest* represents the forces and torques due to all other types of\ninteractions, e.g. Brownian, electrostatic etc. Note that this\nalgorithm neglects the inertial terms, thereby removing the restriction\nof resolving the small interial time scale, which may not be of interest\nfor colloidal particles. These pair styles solve for the velocity such\nthat the hydrodynamic force balances all other types of forces, thereby\nresulting in a net zero force (zero inertia limit). When defining these\npair styles, they must be defined last so that when these styles are\ninvoked all other types of forces have already been computed. For the\nsame reason, they won't work if additional non-pair styles are defined\n(such as bond or Kspace forces) as they are calculated in LAMMPS after\nthe pairwise interactions have been computed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using these styles, the pair styles are designed to be used with\n > implicit time integration and a correspondingly larger timestep.\n > Thus either [fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html) should be used\n > for spherical particles defined via [atom_style sphere > ](https://docs.lammps.org/atom_style.html) or [fix nve/asphere/noforce > ](https://docs.lammps.org/fix_nve_asphere_noforce.html) should be used for spherical particles\n > defined via [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html). This is\n > because the velocity and angular momentum of each particle is set by\n > the pair style, and should not be reset by the time integration fix. \n > \n\nStyle *lubricateU* requires monodisperse spherical particles; style\n*lubricateU/poly* allows for polydisperse spherical particles.\n\nIf the suspension is sheared via the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand then the pair style uses the shear rate to adjust the\nhydrodynamic interactions accordingly. Volume changes due to fix\ndeform are accounted for when computing the volume fraction\ncorrections to R_FU.\n\nWhen computing the volume fraction corrections to R_FU, the presence of\nwalls (whether moving or stationary) will affect the volume fraction\navailable to colloidal particles. This is currently accounted for with\nthe following types of walls: [wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[wall/lj126 ](https://docs.lammps.org/fix_wall.html), [wall/colloid ](https://docs.lammps.org/fix_wall.html), and\n[wall/harmonic ](https://docs.lammps.org/fix_wall.html). For these wall styles, the correct\nvolume fraction will be used when walls do not coincide with the box\nboundary, as well as when walls move and thereby cause a change in the\nvolume fraction. To use these wall styles with pair_style *lubricateU*\nor *lubricateU/poly*, the *fld yes* option must be specified in the fix\nwall command. Other wall styles may still work, but they will result\nin the volume fraction being computed based on the box boundaries.\nSeveral wall styles are not compatible with these pair styles and using\nthem will result in an error.\n\nSince lubrication forces are dissipative, it is usually desirable to\nthermostat the system at a constant temperature. If Brownian motion\n(at a constant temperature) is desired, it can be set using the\n[pair_style brownian ](https://docs.lammps.org/pair_brownian.html) command. These pair styles\nand the brownian style should use consistent parameters for *mu*,\n*flaglog*, *flagfld*, *cutinner*, *cutoff*, *flagHI* and *flagVF* .\n\n----------\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutinner (distance units)\n* cutoff (distance units)\n\nThe two coefficients are optional. If neither is specified, the two\ncutoffs specified in the pair_style command are used. Otherwise both\nmust be specified.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the two cutoff distances for this\npair style can be mixed. The default mix value is *geometric* . See\nthe \"pair_modify\" command for details.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Ball2)** Ball and Melrose, Physica A, 247, 444-472 (1997). \n \n**(Kumar2)** Kumar and Higdon, Phys Rev E, 82, 051401 (2010). \n ", - "restrictions": "These styles are part of the COLLOID package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nCurrently, these pair styles assume that all other types of\nforces/torques on the particles have been already been computed when it\nis invoked. This requires this style to be defined as the last of the\npair styles, and that no fixes apply additional constraint forces. One\nexception is the [fix wall/colloid ](https://docs.lammps.org/fix_wall.html) commands, which has\nan \"fld\" option to apply their wall forces correctly.\n\nOnly spherical monodisperse particles are allowed for pair_style\nlubricateU.\n\nOnly spherical particles are allowed for pair_style lubricateU/poly.\n\nFor sheared suspensions, it is assumed that the shearing is done in the\nxy plane, with x being the velocity direction and y being the\nvelocity-gradient direction. In this case, one must use [fix deform](https://docs.lammps.org/fix_deform.html) with the same rate of shear (erate).\n\nThese pair styles are only compatible with the following wall fixes:\ndoc:`fix wall/lj93, fix wall/lj126, fix wall/lj1043, fix wall/colloid,\nfix wall/harmonic, fix wall/lepton, fix wall/morse, fix wall/table\n`.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style lubricate ](https://docs.lammps.org/pair_lubricate.html)\n" + "parameters": "", + "examples": "\n```lmps\nmin_style spin/lbfgs\nmin_modify line spin_cubic discrete_factor 10.0\n```\n", + "html_filename": "min_spin.html", + "short_description": "Apply a minimization algorithm to use when a [minimize ](https://docs.lammps.org/minimize.html)\ncommand is performed", + "description": "Apply a minimization algorithm to use when a [minimize ](https://docs.lammps.org/minimize.html)\ncommand is performed.\n\nStyle *spin* defines a damped spin dynamics with an adaptive\ntimestep, according to:\n\\[\n \\frac{d \\vec{s}_{i}}{dt} = \\lambda\\, \\vec{s}_{i} \\times\\left( \\vec{\\omega}_{i} \\times\\vec{s}_{i} \\right)\\]\nwith \\(\\lambda\\) a damping coefficient (similar to a magnetic\ndamping). \\(\\lambda\\) can be defined by setting the\n*alpha_damp* keyword with the [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nThe minimization procedure solves this equation using an\nadaptive timestep. The value of this timestep is defined\nby the largest precession frequency that has to be solved in the\nsystem:\n\\[\n {\\Delta t}_{\\rm max} = \\frac{2\\pi}{\\kappa \\left|\\vec{\\omega}_{\\rm max} \\right|}\\]\nwith \\(\\left|\\vec{\\omega}_{\\rm max}\\right|\\) the norm of the largest precession\nfrequency in the system (across all processes, and across all replicas if a\nspin/neb calculation is performed).\n\n\\(\\kappa\\) defines a discretization factor *discrete_factor* for\nthe definition of this timestep. *discrete_factor* can be defined with\nthe [min_modify ](https://docs.lammps.org/min_modify.html) command.\n\nStyle *spin/cg* defines an orthogonal spin optimization\n(OSO) combined to a conjugate gradient (CG) algorithm.\nThe [min_modify ](https://docs.lammps.org/min_modify.html) command can be used to\ncouple the *spin/cg* to a line search procedure, and to modify the\ndiscretization factor *discrete_factor*.\nBy default, style *spin/cg* does not employ the line search procedure\nand uses the adaptive time-step technique in the same way as style *spin* .\n\nStyle *spin/lbfgs* defines an orthogonal spin optimization (OSO)\ncombined to a limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)\nalgorithm. By default, style *spin/lbfgs* does not employ line search\nprocedure. If the line search procedure is not used then the discrete\nfactor defines the maximum root mean squared rotation angle of spins by\nequation *pi/(5\\*Kappa)*. The default value for Kappa is 10. The\n*spin_cubic* line search option can improve the convergence of the\n*spin/lbfgs* algorithm.\n\nThe [min_modify ](https://docs.lammps.org/min_modify.html) command can be used to\nactivate the line search procedure, and to modify the\ndiscretization factor *discrete_factor*.\n\nFor more information about styles *spin/cg* and *spin/lbfgs*,\nsee their implementation reported in **Ivanov1**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All the *spin* styles replace the force tolerance by a torque\n > tolerance. See [minimize ](https://docs.lammps.org/minimize.html) for more explanation. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *spin/cg* and *spin/lbfgs* styles can be used\n > for magnetic NEB calculations only if the line search procedure\n > is deactivated. See [neb/spin ](https://docs.lammps.org/neb_spin.html) for more explanation.\n >\n > \n > \n\n\n**(Ivanov1)** Ivanov, Uzdin, Jonsson. arXiv preprint arXiv:1904.02669, (2019). \n ", + "restrictions": "The *spin*, *spin/cg*, and *spin/lbfgps* styles are part of the SPIN\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis minimization procedure is only applied to spin degrees of\nfreedom for a frozen lattice configuration.\n", + "related": "[min_style ](https://docs.lammps.org/min_style.html), [minimize ](https://docs.lammps.org/minimize.html),\n[min_modify ](https://docs.lammps.org/min_modify.html)\n" }, { "command": [ - "compute heat/flux" + "compute fabric" ], "syntax": [ - "compute ID group-ID heat/flux ke-ID pe-ID stress-ID" + "compute ID group-ID fabric cutoff attribute ... keyword values ..." ], "args": [ [ @@ -36415,133 +35548,120 @@ export const command_docs = [ "choices": [] }, { - "arg": "heat/flux", + "arg": "fabric", "type": 1, "choices": [] }, { - "arg": "ke-ID", - "type": 2, - "choices": [] + "arg": "radius", + "type": 3, + "choices": [ + "type", + "radius" + ] }, { - "arg": "pe-ID", + "arg": "force/tangential", + "type": 3, + "choices": [ + "contact", + "branch", + "force/normal", + "force/tangential" + ] + }, + { + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "stress-ID", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* heat/flux = style name of this compute command\n* ke-ID = ID of a compute that calculates per-atom kinetic energy\n* pe-ID = ID of a compute that calculates per-atom potential energy\n* stress-ID = ID of a compute that calculates per-atom stress \n", - "examples": "\n```lmps\ncompute myFlux all heat/flux myKE myPE myStress\n```\n", - "html_filename": "compute_heat_flux.html", - "short_description": "Define a computation that calculates the heat flux vector based on\ncontributions from atoms in the specified group", - "description": "Define a computation that calculates the heat flux vector based on\ncontributions from atoms in the specified group. This can be used by\nitself to measure the heat flux through a set of atoms (e.g., a region\nbetween two thermostatted reservoirs held at different temperatures),\nor to calculate a thermal conductivity using the equilibrium\nGreen-Kubo formalism.\n\nFor other non-equilibrium ways to compute a thermal conductivity, see\nthe [Howto kappa ](https://docs.lammps.org/Howto_kappa.html) doc page. These include use of\nthe [fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html) command\nfor the Muller-Plathe method. Or the [fix heat ](https://docs.lammps.org/fix_heat.html) command\nwhich can add or subtract heat from groups of atoms.\n\nThe compute takes three arguments which are IDs of other\n[computes ](https://docs.lammps.org/compute.html). One calculates per-atom kinetic energy\n(\\ *ke-ID* ), one calculates per-atom potential energy (\\ *pe-ID)*, and the\nthird calculates per-atom stress (\\ *stress-ID* ).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These other computes should provide values for all the atoms in\n > the group this compute specifies. That means the other computes could\n > use the same group as this compute, or they can just use group \"all\"\n > (or any group whose atoms are superset of the atoms in this compute's\n > group). LAMMPS does not check for this. \n > \n\nIn case of two-body interactions, the heat flux \\(\\mathbf{J}\\) is defined as\n\\[\\begin{align*} \\mathbf{J} &= \\frac{1}{V} \\left[ \\sum_i e_i \\mathbf{v}_i - \\sum_{i} \\mathbf{S}_{i} \\mathbf{v}_i \\right] \\\\\n &= \\frac{1}{V} \\left[ \\sum_i e_i \\mathbf{v}_i + \\sum_{i ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) and\n > [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n > commands have options for which\n > terms to include in their calculation (pair, bond, etc). The heat\n > flux calculation will thus include exactly the same terms. Normally\n > you should use [compute stress/atom virial ](https://docs.lammps.org/compute_stress_atom.html)\n > or [compute centroid/stress/atom virial ](https://docs.lammps.org/compute_stress_atom.html)\n > so as not to include a kinetic energy term in the heat flux. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The compute *heat/flux* has been reported to produce unphysical\n > values for angle, dihedral, improper and constraint force contributions\n > when used with [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n > as discussed in **Surblys3**, **Boone**\n > and **Surblys4**. You are strongly advised to\n > use [compute centroid/stress/atom ](https://docs.lammps.org/compute_stress_atom.html),\n > which has been implemented specifically for such cases. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Due to an implementation detail, the \\(y\\) and \\(z\\)\n > components of heat flux from [fix rigid ](https://docs.lammps.org/fix_rigid.html)\n > contribution when computed via [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\n > are highly unphysical and should not be used. \n > \n\nThe Green--Kubo formulas relate the ensemble average of the\nauto-correlation of the heat flux \\(\\mathbf{J}\\)\nto the thermal conductivity \\(\\kappa\\):\n\\[ \\kappa = \\frac{V}{k_B T^2} \\int_0^\\infty \\langle J_x(0) J_x(t) \\rangle \\, \\mathrm{d} t = \\frac{V}{3 k_B T^2} \\int_0^\\infty \\langle \\mathbf{J}(0) \\cdot \\mathbf{J}(t) \\rangle \\, \\mathrm{d}t\\]\n----------\n\nThe heat flux can be output every so many timesteps (e.g., via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command). Then as a\npost-processing operation, an auto-correlation can be performed, its\nintegral estimated, and the Green--Kubo formula above evaluated.\n\nThe [fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html) command can calculate\nthe auto-correlation. The trap() function in the\n[variable ](https://docs.lammps.org/variable.html) command can calculate the integral.\n\nAn example LAMMPS input script for solid argon is appended below. The\nresult should be an average conductivity\n\\(\\approx 0.29~\\mathrm{W/m \\cdot K}\\).\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 6.\nThe first three components are the \\(x\\), \\(y\\), and \\(z\\)\ncomponents of the full heat flux vector\n(i.e., \\(J_x\\), \\(J_y\\), and \\(J_z\\)).\nThe next three components are the \\(x\\), \\(y\\), and \\(z\\)\ncomponents of just the convective portion of the flux (i.e., the\nfirst term in the equation for \\(\\mathbf{J}\\)).\nEach component can be accessed by indices 1--6. These values can be used by any\ncommand that uses global vector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) documentation for an overview of\nLAMMPS output options.\n\nThe vector values calculated by this compute are \"extensive\", meaning\nthey scale with the number of atoms in the simulation. They can be\ndivided by the appropriate volume to get a flux, which would then be an\n\"intensive\" value, meaning independent of the number of atoms in the\nsimulation. Note that if the compute group is \"all\", then the\nappropriate volume to divide by is the simulation box volume. However,\nif a group with a subset of atoms is used, it should be the volume\ncontaining those atoms.\n\nThe vector values will be in energy\\*velocity [units ](https://docs.lammps.org/units.html). Once\ndivided by a volume the units will be that of flux, namely\nenergy/area/time [units ](https://docs.lammps.org/units.html)\n\n**(Surblys3)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019). \n \n**(Boone)** Boone, Babaei, Wilmer, J Chem Theory Comput, 15, 5579--5587 (2019). \n \n**(Surblys4)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021). \n ", - "restrictions": " none\n", - "related": "[fix thermal/conductivity ](https://docs.lammps.org/fix_thermal_conductivity.html),\n[fix ave/correlate ](https://docs.lammps.org/fix_ave_correlate.html),\n[variable ](https://docs.lammps.org/variable.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* fabric = style name of this compute command\n* cutoff = type or radius \n *        type = cutoffs determined based on atom types \n *        radius = cutoffs determined based on atom diameters (atom style sphere) \n* one or more attributes may be appended\n* attribute = contact or branch or force/normal or force/tangential \n *        contact = contact tensor \n *        branch = branch tensor \n *        force/normal = normal force tensor \n *        force/tangential = tangential force tensor \n* zero or more keyword/value pairs may be appended\n* keyword = type/include \n *        type/include value = arg1 arg2 \n         arg = separate lists of types (see below) \n", + "examples": "\n```lmps\ncompute 1 all fabric type contact force/normal type/include 1,2 3*4\ncompute 1 all fabric radius force/normal force/tangential\n```\n", + "html_filename": "compute_fabric.html", + "short_description": "Define a compute that calculates various fabric tensors for pairwise\ninteraction **Ouadfel**", + "description": "Define a compute that calculates various fabric tensors for pairwise\ninteraction **Ouadfel**. Fabric tensors are commonly used\nto quantify the anisotropy or orientation of granular contacts but can also\nbe used to characterize the direction of pairwise interactions in general\nsystems. The *type* and *radius* settings are used to select whether interactions\ncutoffs are determined by atom types or by the sum of atomic radii (atom\nstyle sphere), respectively. Calling this compute is roughly the cost of a\npair style invocation as it involves a loop over the neighbor list. If the\nnormal or tangential force tensors are requested, it will be more expensive\nthan a pair style invocation as it will also recalculate all pair forces.\n\nFour fabric tensors are available: the contact, branch, normal force, or\ntangential force tensor. The contact tensor is calculated as\n\\[\n C_{ab} = \\frac{15}{2} (\\phi_{ab} - \\frac{1}{3} \\mathrm{Tr}(\\phi) \\delta_{ab})\\]\nwhere \\(a\\) and \\(b\\) are the \\(x\\), \\(y\\), \\(z\\)\ndirections, \\(\\delta_{ab}\\) is the Kronecker delta function, and\nthe tensor \\(\\phi\\) is defined as\n\\[\n \\phi_{ab} = \\sum_{n = 1}^{N_p} \\frac{r_{a} r_{b}}{r^2}\\]\nwhere \\(n\\) loops over the \\(N_p\\) pair interactions in the simulation,\n\\(r_{a}\\) is the \\(a\\) component of the radial vector between the\ntwo pairwise interacting particles, and \\(r\\) is the magnitude of the\nradial vector.\n\nThe branch tensor is calculated as\n\\[\n B_{ab} = \\frac{15}{2\\, \\mathrm{Tr}(D)} (D_{ab} - \\frac{1}{3} \\mathrm{Tr}(D) \\delta_{ab})\\]\nwhere the tensor \\(D\\) is defined as\n\\[\n D_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r}\\]\nwhere \\(N_c\\) is the total number of contacts in the system and the\nsubscripts \\(c\\) and \\(d\\) indices are summed according to Einstein\nnotation.\n\nThe normal force fabric tensor is calculated as\n\\[\n F^n_{ab} = \\frac{15}{2\\, \\mathrm{Tr}(N)} (N_{ab} - \\frac{1}{3} \\mathrm{Tr}(N) \\delta_{ab})\\]\nwhere the tensor \\(N\\) is defined as\n\\[\n N_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r^2} f_n\\]\nand \\(f_n\\) is the magnitude of the normal, central-body force between the two atoms.\n\nFinally, the tangential force fabric tensor is only defined for pair styles that\napply tangential forces to particles, namely granular pair styles. It is calculated\nas\n\\[\n F^t_{ab} = \\frac{5}{\\mathrm{Tr}(N)} (T_{ab} - \\frac{1}{3} \\mathrm{Tr}(T) \\delta_{ab})\\]\nwhere the tensor \\(T\\) is defined as\n\\[\n T_{ab} = \\sum_{n = 1}^{N_p}\n \\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}\n \\frac{r_{a} r_{b}}{r^2} f_t\\]\nand \\(f_t\\) is the magnitude of the tangential force between the two atoms.\n\nThe *type/include* keyword filters interactions based on the types of the two atoms.\nInteractions between two atoms are only included in calculations if the atom types\nare in the two lists. Each list consists of a series of type\nranges separated by commas. The range can be specified as a\nsingle numeric value, or a wildcard asterisk can be used to specify a range\nof values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". For\nexample, if \\(M\\) is the number of atom types, then an asterisk with no\nnumeric values means all types from 1 to \\(M\\). A leading asterisk means\nall types from 1 to n (inclusive). A trailing asterisk means all types from\nm to \\(M\\) (inclusive). A middle asterisk means all types from m to n\n(inclusive). Multiple *type/include* keywords may be added.\n\n #### Output info\n\nThis compute calculates a global vector of doubles and a global scalar. The\nvector stores the unique components of the first requested tensor in the\norder \\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\) followed by the same components for all subsequent tensors.\nThe length of the vector is therefore six times the number of requested\ntensors. The scalar output is the number of pairwise interactions included\nin the calculation of the fabric tensor.\n\n**(Ouadfel)** Ouadfel and Rothenburg\n\"Stress-force-fabric relationship for assemblies of ellipsoids\",\nMechanics of Materials (2001). ([link to paper](https://doi.org/10.1016/S0167-6636(00)00057-0)) \n ", + "restrictions": "This fix is part of the GRANULAR package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nCurrently, compute *fabric* does not support pair styles\nwith many-body interactions. It also does not\nsupport models with long-range Coulombic or dispersion forces,\ni.e. the kspace_style command in LAMMPS. It also does not support the\nfollowing fixes which add rigid-body constraints: [fix shake](https://docs.lammps.org/fix_shake.html), [fix rattle ](https://docs.lammps.org/fix_shake.html), [fix rigid](https://docs.lammps.org/fix_rigid.html), [fix rigid/small ](https://docs.lammps.org/fix_rigid.html). It does not support\ngranular pair styles that extend beyond the contact of atomic radii\n(e.g., JKR and DMT).\n", + "related": "none\n" }, { "command": [ - "fix press/berendsen" + "timer" ], "syntax": [ - "fix ID group-ID press/berendsen keyword value ..." + "timer args" ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "press/berendsen", + "arg": "timer", "type": 1, "choices": [] }, { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, - "choices": [] + "arg": "every", + "type": 3, + "choices": [ + "off", + "loop", + "normal", + "full", + "sync", + "nosync", + "timeout", + "every" + ] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* press/berendsen = style name of this fix command \n *      one or more keyword value pairs may be appended \n *      keyword = iso or aniso or x or y or z or couple or dilate or modulus \n       iso or aniso values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       modulus value = bulk modulus of system (pressure units) \n       dilate value = all or partial \n", - "examples": "\n```lmps\nfix 1 all press/berendsen iso 0.0 0.0 1000.0\nfix 2 all press/berendsen aniso 0.0 0.0 1000.0 dilate partial\n```\n", - "html_filename": "fix_press_berendsen.html", - "short_description": "Reset the pressure of the system by using a Berendsen barostat\n**Berendsen1**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep", - "description": "Reset the pressure of the system by using a Berendsen barostat\n**Berendsen1**, which rescales the system volume and\n(optionally) the atoms coordinates within the simulation box every\ntimestep.\n\nRegardless of what atoms are in the fix group, a global pressure is\ncomputed for all atoms. Similarly, when the size of the simulation\nbox is changed, all atoms are re-scaled to new positions, unless the\nkeyword *dilate* is specified with a value of *partial*, in which case\nonly the atoms in the fix group are re-scaled. The latter can be\nuseful for leaving the coordinates of atoms in a solid substrate\nunchanged and controlling the pressure of a surrounding fluid.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) or [fix nph ](https://docs.lammps.org/fix_nh.html)\n > commands which perform Nose/Hoover barostatting AND time integration,\n > this fix does NOT perform time integration. It only modifies the box\n > size and atom coordinates to effect barostatting. Thus you must use a\n > separate time integration fix, like [fix nve ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) to actually update the positions and velocities of\n > atoms. This fix can be used in conjunction with thermostatting fixes\n > to control the temperature, such as [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) or [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html). \n > \n\nSee the [Howto barostat ](https://docs.lammps.org/Howto_barostat.html) page for a\ndiscussion of different ways to perform barostatting.\n\n----------\n\nThe barostat is specified using one or more of the *iso*, *aniso*,\n*x*, *y*, *z*, and *couple* keywords. These keywords give you the\nability to specify the 3 diagonal components of an external stress\ntensor, and to couple various of these components together so that the\ndimensions they represent are varied together during a\nconstant-pressure simulation. Unlike the [fix npt ](https://docs.lammps.org/fix_nh.html) and\n[fix nph ](https://docs.lammps.org/fix_nh.html) commands, this fix cannot be used with triclinic\n(non-orthogonal) simulation boxes to control all 6 components of the\ngeneral pressure tensor.\n\nThe target pressures for each of the 3 diagonal components of the\nstress tensor can be specified independently via the *x*, *y*, *z*,\nkeywords, which correspond to the 3 simulation box dimensions. For\neach component, the external pressure or tensor component at each\ntimestep is a ramped value during the run from *Pstart* to *Pstop* .\nIf a target pressure is specified for a component, then the\ncorresponding box dimension will change during a simulation. For\nexample, if the *y* keyword is used, the y-box length will change. A\nbox dimension will not change if that component is not specified,\nalthough you have the option to change that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nFor all barostat keywords, the *Pdamp* parameter determines the time\nscale on which pressure is relaxed. For example, a value of 10.0\nmeans to relax the pressure in a timespan of (roughly) 10 time units\n(tau or fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A Berendsen barostat will not work well for arbitrary values of\n > *Pdamp* . If *Pdamp* is too small, the pressure and volume can\n > fluctuate wildly; if it is too large, the pressure will take a very\n > long time to equilibrate. A good choice for many models is a *Pdamp*\n > of around 1000 timesteps. However, note that *Pdamp* is specified in\n > time units, and that timesteps are NOT the same as time units for most\n > [units ](https://docs.lammps.org/units.html) settings. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The relaxation time is actually also a function of the bulk\n > modulus of the system (inverse of isothermal compressibility). The\n > bulk modulus has units of pressure and is the amount of pressure that\n > would need to be applied (isotropically) to reduce the volume of the\n > system by a factor of 2 (assuming the bulk modulus was a constant,\n > independent of density, which it's not). The bulk modulus can be set\n > via the keyword *modulus* . The *Pdamp* parameter is effectively\n > multiplied by the bulk modulus, so if the pressure is relaxing faster\n > than expected or desired, increasing the bulk modulus has the same\n > effect as increasing *Pdamp* . The converse is also true. LAMMPS does\n > not attempt to guess a correct value of the bulk modulus; it just uses\n > 10.0 as a default value which gives reasonable relaxation for a\n > Lennard-Jones liquid, but will be way off for other materials and way\n > too small for solids. Thus you should experiment to find appropriate\n > values of *Pdamp* and/or the *modulus* when using this fix. \n > \n\n----------\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\n----------\n\nThe *iso* and *aniso* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThis fix computes a temperature and pressure each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be used\nin its temperature and pressure calculations. If you do this, note\nthat the kinetic energy derived from the compute temperature should be\nconsistent with the virial term computed using all atoms for the\npressure. LAMMPS will warn you if you choose to compute temperature\non a subset of atoms.\n\nNo global or per-atom quantities are stored by this fix for access by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target pressure over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Berendsen1)** Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem\nPhys, 81, 3684 (1984). \n ", - "restrictions": "Any dimension being adjusted by this fix must be periodic.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nph ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* args = one or more of off or loop or normal or full or sync or nosync or timeout or every \n *      off = do not collect or print any timing information \n *      loop = collect only the total time for the simulation loop \n *      normal = collect timer information broken down by sections (default) \n *      full = like normal but also include CPU and thread utilization \n *      sync = explicitly synchronize MPI tasks between sections \n *      nosync = do not synchronize MPI tasks between sections (default) \n *      timeout elapse = set wall time limit to elapse \n *      every Ncheck = perform timeout check every Ncheck steps \n", + "examples": "\n```lmps\ntimer full sync\ntimer timeout 2:00:00 every 100\ntimer loop\n```\n", + "html_filename": "timer.html", + "short_description": "Select the level of detail at which LAMMPS performs its CPU timings", + "description": "Select the level of detail at which LAMMPS performs its CPU timings.\nMultiple keywords can be specified with the *timer* command. For\nkeywords that are mutually exclusive, the last one specified takes\nprecedence.\n\nDuring a simulation run LAMMPS collects information about how much\ntime is spent in different sections of the code and thus can provide\ninformation for determining performance and load imbalance problems.\nThis can be done at different levels of detail and accuracy. For more\ninformation about the timing output, see the [Run output ](https://docs.lammps.org/Run_output.html) doc page.\n\nThe *off* setting will turn all time measurements off. The *loop*\nsetting will only measure the total time for a run and not collect any\ndetailed per section information. With the *normal* setting, timing\ninformation for portions of the timestep (pairwise calculations,\nneighbor list construction, output, etc) are collected as well as\ninformation about load imbalances for those sections across\nprocessors. The *full* setting adds information about CPU\nutilization and thread utilization, when multi-threading is enabled.\n\nWith the *sync* setting, all MPI tasks are synchronized at each timer\ncall which measures load imbalance for each section more accurately,\nthough it can also slow down the simulation by prohibiting overlapping\nindependent computations on different MPI ranks Using the *nosync*\nsetting (which is the default) turns this synchronization off.\n\nWith the *timeout* keyword a wall time limit can be imposed, that\naffects the [run ](https://docs.lammps.org/run.html) and [minimize ](https://docs.lammps.org/minimize.html) commands.\nThis can be convenient when calculations have to comply with execution\ntime limits, e.g. when running under a batch system when you want to\nmaximize the utilization of the batch time slot, especially for runs\nwhere the time per timestep varies much and thus it becomes difficult\nto predict how many steps a simulation can perform for a given wall time\nlimit. This also applies for difficult to converge minimizations.\nThe timeout *elapse* value should be somewhat smaller than the maximum\nwall time requested from the batch system, as there is usually\nsome overhead to launch jobs, and it is advisable to write\nout a restart after terminating a run due to a timeout.\n\nThe timeout timer starts when the command is issued. When the time\nlimit is reached, the run or energy minimization will exit on the\nnext step or iteration that is a multiple of the *Ncheck* value\nwhich can be set with the *every* keyword. Default is checking\nevery 10 steps. After the timer timeout has expired all subsequent\nrun or minimize commands in the input script will be skipped.\nThe remaining time or timer status can be accessed with the\n[thermo ](https://docs.lammps.org/thermo_style.html) variable *timeremain*, which will be\nzero, if the timeout is inactive (default setting), it will be\nnegative, if the timeout time is expired and positive if there\nis time remaining and in this case the value of the variable are\nthe number of seconds remaining.\n\nWhen the *timeout* key word is used a second time, the timer is\nrestarted with a new time limit. The timeout *elapse* value can\nbe specified as *off* or *unlimited* to impose a no timeout condition\n(which is the default). The *elapse* setting can be specified as\na single number for seconds, two numbers separated by a colon (MM:SS)\nfor minutes and seconds, or as three numbers separated by colons for\nhours, minutes, and seconds (H:MM:SS).\n\nThe *every* keyword sets how frequently during a run or energy\nminimization the wall clock will be checked. This check count applies\nto the outer iterations or time steps during minimizations or [r-RESPA runs ](https://docs.lammps.org/run_style.html), respectively. Checking for timeout too often,\ncan slow a calculation down. Checking too infrequently can make the\ntimeout measurement less accurate, with the run being stopped later\nthan desired.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using the *full* and *sync* options provides the most detailed\n > and accurate timing information, but can also have a negative\n > performance impact due to the overhead of the many required system\n > calls. It is thus recommended to use these settings only when testing\n > tests to identify performance bottlenecks. For calculations with few\n > atoms or a very large number of processors, even the *normal* setting\n > can have a measurable negative performance impact. In those cases you\n > can just use the *loop* or *off* setting. \n > \n\n", + "restrictions": " none\n", + "related": "[run post no ](https://docs.lammps.org/run.html), [kspace_modify fftbench ](https://docs.lammps.org/kspace_modify.html)\n" }, { "command": [ - "velocity" + "pair_style reaxff", + "pair_style reaxff/kk", + "pair_style reaxff/omp" ], "syntax": [ - "velocity group-ID style args keyword value ..." + "pair_style reaxff cfile keyword value" ], "args": [ [ { - "arg": "velocity", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "zero", + "arg": "reaxff", "type": 3, "choices": [ - "create", - "set", - "scale", - "ramp", - "zero" + "reaxff", + "reaxff/kk", + "reaxff/omp" ] }, { - "arg": "args", + "arg": "cfile", "type": 2, "choices": [] }, { - "arg": "units", - "type": 3, - "choices": [ - "dist", - "sum", - "mom", - "rot", - "temp", - "bias", - "loop", - "rigid", - "units" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { "arg": "value", @@ -36550,93 +35670,129 @@ export const command_docs = [ } ] ], - "parameters": "* group-ID = ID of group of atoms whose velocity will be changed\n* style = create or set or scale or ramp or zero \n *        create args = temp seed \n         temp = temperature value (temperature units) \n         seed = random # seed (positive integer) \n *        set args = vx vy vz \n         vx,vy,vz = velocity value or NULL (velocity units) \n         any of vx,vy,vz can be a variable (see below) \n *        scale arg = temp \n         temp = temperature value (temperature units) \n *        ramp args = vdim vlo vhi dim clo chi \n         vdim = vx or vy or vz \n         vlo,vhi = lower and upper velocity value (velocity units) \n         dim = x or y or z \n         clo,chi = lower and upper coordinate bound (distance units) \n *        zero arg = linear or angular \n         linear = zero the linear momentum \n         angular = zero the angular momentum \n* zero or more keyword/value pairs may be appended\n* keyword = dist or sum or mom or rot or temp or bias or loop or rigid or units \n *        dist value = uniform or gaussian \n *        sum value = no or yes \n *        mom value = no or yes \n *        rot value = no or yes \n *        temp value = temperature compute ID \n *        bias value = no or yes \n *        loop value = all or local or geom \n *        rigid value = fix-ID \n         fix-ID = ID of rigid body fix \n *        units value = box or lattice \n", - "examples": "\n```lmps\nvelocity all create 300.0 4928459 rot yes dist gaussian\nvelocity border set NULL 4.0 v_vz sum yes units box\nvelocity flow scale 300.0\nvelocity flow ramp vx 0.0 5.0 y 5 25 temp mytemp\nvelocity all zero linear\n```\n", - "html_filename": "velocity.html", - "short_description": "Set or change the velocities of a group of atoms in one of several\nstyles", - "description": "Set or change the velocities of a group of atoms in one of several\nstyles. For each style, there are required arguments and optional\nkeyword/value parameters. Not all options are used by each style.\nEach option has a default as listed below.\n\nThe *create* style generates an ensemble of velocities using a random\nnumber generator with the specified seed at the specified temperature.\n\nThe *set* style sets the velocities of all atoms in the group to the\nspecified values. If any component is specified as NULL, then it is\nnot set. Any of the vx,vy,vz velocity components can be specified as\nan equal-style or atom-style [variable ](https://docs.lammps.org/variable.html). If the value\nis a variable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated, and its\nvalue used to determine the velocity component. Note that if a\nvariable is used, the velocity it calculates must be in box units, not\nlattice units; see the discussion of the *units* keyword below.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters or other parameters.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent\nvelocity field.\n\nThe *scale* style computes the current temperature of the group of\natoms and then rescales the velocities to the specified temperature.\n\nThe *ramp* style is similar to that used by the [computetemp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) command. Velocities ramped uniformly\nfrom vlo to vhi are applied to dimension vx, or vy, or vz. The value\nassigned to a particular atom depends on its relative coordinate value\n(in dim) from clo to chi. For the example above, an atom with\ny-coordinate of 10 (1/4 of the way from 5 to 25), would be assigned a\nx-velocity of 1.25 (1/4 of the way from 0.0 to 5.0). Atoms outside\nthe coordinate bounds (less than 5 or greater than 25 in this case),\nare assigned velocities equal to vlo or vhi (0.0 or 5.0 in this case).\n\nThe *zero* style adjusts the velocities of the group of atoms so that\nthe aggregate linear or angular momentum is zero. No other changes\nare made to the velocities of the atoms. If the *rigid* option is\nspecified (see below), then the zeroing is performed on individual\nrigid bodies, as defined by the [fix rigid or fix rigid/small](https://docs.lammps.org/fix_rigid.html) commands. In other words, zero linear will set the\nlinear momentum of each rigid body to zero, and zero angular will set\nthe angular momentum of each rigid body to zero. This is done by\nadjusting the velocities of the atoms in each rigid body.\n\nAll temperatures specified in the velocity command are in temperature\nunits; see the [units ](https://docs.lammps.org/units.html) command. The units of velocities and\ncoordinates depend on whether the *units* keyword is set to *box* or\n*lattice*, as discussed below.\n\nFor all styles, no atoms are assigned z-component velocities if the\nsimulation is 2d; see the [dimension ](https://docs.lammps.org/dimension.html) command.\n\n----------\n\nThe keyword/value options are used in the following ways by the\nvarious styles.\n\nThe *dist* keyword is used by *create* . The ensemble of generated\nvelocities can be a *uniform* distribution from some minimum to\nmaximum value, scaled to produce the requested temperature. Or it can\nbe a *gaussian* distribution with a mean of 0.0 and a sigma scaled to\nproduce the requested temperature.\n\nThe *sum* keyword is used by all styles, except *zero* . The new\nvelocities will be added to the existing ones if sum = yes, or will\nreplace them if sum = no.\n\nThe *mom* and *rot* keywords are used by *create* . If mom = yes, the\nlinear momentum of the newly created ensemble of velocities is zeroed;\nif rot = yes, the angular momentum is zeroed.\n\n----------\n\nIf specified, the *temp* keyword is used by *create* and *scale* to\nspecify a [compute ](https://docs.lammps.org/compute.html) that calculates temperature in a\ndesired way, e.g. by first subtracting out a velocity bias, as\ndiscussed on the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) doc page.\nIf this keyword is not specified, *create* and *scale* calculate\ntemperature using a compute that is defined internally as follows:\n\n```lmps\ncompute velocity_temp group-ID temp\n```\nwhere group-ID is the same ID used in the velocity command. i.e. the\ngroup of atoms whose velocity is being altered. This compute is\ndeleted when the velocity command is finished. See the [computetemp ](https://docs.lammps.org/compute_temp.html) command for details. If the calculated\ntemperature should have degrees-of-freedom removed due to fix\nconstraints (e.g. SHAKE or rigid-body constraints), then the\nappropriate fix command must be specified before the velocity command\nis issued.\n\nThe *bias* keyword with a *yes* setting is used by *create* and\n*scale*, but only if the *temp* keyword is also used to specify a\n[compute ](https://docs.lammps.org/compute.html) that calculates temperature in a desired way.\nIf the temperature compute also calculates a velocity bias, the bias\nis subtracted from atom velocities before the *create* and *scale*\noperations are performed. After the operations, the bias is added\nback to the atom velocities. See the [Howto thermostat](https://docs.lammps.org/Howto_thermostat.html) page for more discussion of temperature computes\nwith biases. Note that the velocity bias is only applied to atoms in\nthe temperature compute specified with the *temp* keyword.\n\nAs an example, assume atoms are currently streaming in a flow\ndirection (which could be separately initialized with the *ramp*\nstyle), and you wish to initialize their thermal velocity to a desired\ntemperature. In this context thermal velocity means the per-particle\nvelocity that remains when the streaming velocity is subtracted. This\ncan be done using the *create* style with the *temp* keyword\nspecifying the ID of a [compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html) or\n[compute temp/profile ](https://docs.lammps.org/compute_temp_profile.html) command, and the\n*bias* keyword set to a *yes* value.\n\n----------\n\nThe *loop* keyword is used by *create* in the following ways.\n\nIf loop = all, then each processor loops over all atoms in the\nsimulation to create velocities, but only stores velocities for atoms\nit owns. This can be a slow loop for a large simulation. If atoms\nwere read from a data file, the velocity assigned to a particular atom\nwill be the same, independent of how many processors are being used.\nThis will not be the case if atoms were created using the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command, since atom IDs will likely\nbe assigned to atoms differently.\n\nIf loop = local, then each processor loops over only its atoms to\nproduce velocities. The random number seed is adjusted to give a\ndifferent set of velocities on each processor. This is a fast loop,\nbut the velocity assigned to a particular atom will depend on which\nprocessor owns it. Thus the results will always be different when a\nsimulation is run on a different number of processors.\n\nIf loop = geom, then each processor loops over only its atoms. For\neach atom a unique random number seed is created, based on the atom's\nxyz coordinates. A velocity is generated using that seed. This is a\nfast loop and the velocity assigned to a particular atom will be the\nsame, independent of how many processors are used. However, the set\nof generated velocities may be more correlated than if the *all* or\n*local* keywords are used.\n\nNote that the *loop geom* keyword will not necessarily assign\nidentical velocities for two simulations run on different machines.\nThis is because the computations based on xyz coordinates are\nsensitive to tiny differences in the double-precision value for a\ncoordinate as stored on a particular machine.\n\n----------\n\nThe *rigid* keyword only has meaning when used with the *zero* style.\nIt allows specification of a fix-ID for one of the [rigid-bodyfix ](https://docs.lammps.org/fix_rigid.html) variants which defines a set of rigid bodies. The\nzeroing of linear or angular momentum is then performed for each rigid\nbody defined by the fix, as described above.\n\nThe *units* keyword is used by *set* and *ramp* . If units = box,\nthe velocities and coordinates specified in the velocity command are\nin the standard units described by the [units ](https://docs.lammps.org/units.html) command\n(e.g. Angstroms/fs for real units). If units = lattice, velocities\nare in units of lattice spacings per time (e.g. spacings/fs) and\ncoordinates are in lattice spacings. The [lattice ](https://docs.lammps.org/lattice.html)\ncommand must have been previously used to define the lattice spacing.\n\n----------\n", - "restrictions": "Assigning a temperature via the *create* style to a system with\n[rigid bodies ](https://docs.lammps.org/fix_rigid.html) or [SHAKE constraints](https://docs.lammps.org/fix_shake.html) may not have the desired outcome for two reasons. First,\nthe velocity command can be invoked before all of the relevant fixes\nare created and initialized and the number of adjusted degrees of\nfreedom (DOFs) is known. Thus it is not possible to compute the\ntarget temperature correctly. Second, the assigned velocities may be\npartially canceled when constraints are first enforced, leading to a\ndifferent temperature than desired. A workaround for this is to\nperform a [run 0 ](https://docs.lammps.org/run.html) command, which ensures all DOFs are\naccounted for properly, and then rescale the temperature to the\ndesired value before performing a simulation. For example:\n\n```lmps\nvelocity all create 300.0 12345\nrun 0 # temperature may not be 300K\nvelocity all scale 300.0 # now it should be\n```\n", - "related": "[fix rigid ](https://docs.lammps.org/fix_rigid.html), [fix shake ](https://docs.lammps.org/fix_shake.html),\n[lattice ](https://docs.lammps.org/lattice.html)\n" + "parameters": "* cfile = NULL or name of a control file\n* zero or more keyword/value pairs may be appended \n *      keyword = checkqeq or lgvdw or safezone or mincap or minhbonds or tabulate or list/blocking \n       checkqeq value = yes or no = whether or not to require qeq/reaxff or acks2/reaxff fix \n       enobonds value = yes or no = whether or not to tally energy of atoms with no bonds \n       lgvdw value = yes or no = whether or not to use a low gradient vdW correction \n       safezone = factor used for array allocation \n       mincap = minimum size for array allocation \n       minhbonds = minimum size use for storing hydrogen bonds \n       tabulate value = size of interpolation table for Lennard-Jones and Coulomb interactions \n       list/blocking value = yes or no = whether or not to use \"blocking\" scheme for bond list build \n", + "examples": "\n```lmps\npair_style reaxff NULL\npair_style reaxff controlfile checkqeq no\npair_style reaxff NULL lgvdw yes\npair_style reaxff NULL safezone 1.6 mincap 100\npair_coeff * * ffield.reax C H O N\n```\n", + "html_filename": "pair_reaxff.html", + "short_description": "Pair style *reaxff* computes the ReaxFF potential of van Duin, Goddard\nand co-workers", + "description": "Pair style *reaxff* computes the ReaxFF potential of van Duin, Goddard\nand co-workers. ReaxFF uses distance-dependent bond-order functions to\nrepresent the contributions of chemical bonding to the potential\nenergy. There is more than one version of ReaxFF. The version\nimplemented in LAMMPS uses the functional forms documented in the\nsupplemental information of the following paper:\n**Chenoweth_20082** and matches the\nversion of the reference ReaxFF implementation from Summer 2010. For\nmore technical details about the implementation of ReaxFF in pair style\n*reaxff*, see the **Aktulga** paper. The *reaxff* style\nwas initially implemented as a stand-alone C code and is now converted\nto C++ and integrated into LAMMPS as a package.\n\nThe *reaxff/kk* style is a Kokkos version of the ReaxFF potential that\nis derived from the *reaxff* style. The Kokkos version can run on GPUs\nand can also use OpenMP multithreading. For more information about the\nKokkos package, see [Packages details ](https://docs.lammps.org/Packages_details.html) and\n[Speed kokkos ](https://docs.lammps.org/Speed_kokkos.html) doc pages. One important\nconsideration when using the *reaxff/kk* style is the choice of either\nhalf or full neighbor lists. This setting can be changed using the\nKokkos [package ](https://docs.lammps.org/package.html) command.\n\nThe *reaxff* style differs from the (obsolete) \"pair_style reax\"\ncommand in the implementation details. The *reax* style was a\nFortran library, linked to LAMMPS. The *reax* style has been removed\nfrom LAMMPS after the 12 December 2018 version.\n\nLAMMPS provides several different versions of ffield.reax in its\npotentials dir, each called potentials/ffield.reax.label. These are\ndocumented in potentials/README.reax.\n\nThe format of these files is identical to that used originally by van\nDuin. We have tested the accuracy of *pair_style reaxff* potential\nagainst the original ReaxFF code for the systems mentioned above. You\ncan use other ffield files for specific chemical systems that may be\navailable elsewhere (but note that their accuracy may not have been\ntested).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >We do not distribute a wide variety of ReaxFF force field files\n > with LAMMPS. Adri van Duin's group at PSU is the central repository\n > for this kind of data as they are continuously deriving and updating\n > parameterizations for different classes of materials. You can submit\n > a contact request at the Materials Computation Center (MCC) website\n > [https://www.mri.psu.edu/materials-computation-center/connect-mcc](https://www.mri.psu.edu/materials-computation-center/connect-mcc),\n > describing the material(s) you are interested in modeling with ReaxFF.\n > They can tell you what is currently available or what it would take to\n > create a suitable ReaxFF parameterization. \n > \n\nThe *cfile* setting can be specified as NULL, in which case default\nsettings are used. A control file can be specified which defines values\nof control variables. Some control variables are global parameters for\nthe ReaxFF potential. Others define certain performance and output\nsettings. Each line in the control file specifies the value for a\ncontrol variable. The format of the control file is described below.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The LAMMPS default values for the ReaxFF global parameters\n > correspond to those used by Adri van Duin's stand-alone serial\n > code. If these are changed by setting control variables in the\n > control file, the results from LAMMPS and the serial code will\n > not agree. \n > \n\nExamples using *pair_style reaxff* are provided in the examples/reax\ndirectory and its subdirectories.\n\nUse of this pair style requires using an [atom_style ](https://docs.lammps.org/atom_style.html)\nthat includes a per-atom charge property *or* using\n[fix property/atom q ](https://docs.lammps.org/fix_property_atom.html). Charges can be set\nvia [read_data ](https://docs.lammps.org/read_data.html) or [set ](https://docs.lammps.org/set.html). Using an initial\ncharge that is close to the result of charge equilibration will speed\nup that process.\n\nThe ReaxFF parameter files provided were created using a charge\nequilibration (QEq) model for handling the electrostatic interactions.\nTherefore, by default, LAMMPS requires that either the\n[fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) or the\n[fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html) or [fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html)\ncommand be used with\n*pair_style reaxff* when simulating a ReaxFF model, to equilibrate\nthe charges each timestep.\n\nUsing the keyword *checkqeq* with the value *no* turns off the check\nfor the QEq fixes, allowing a simulation to be run without charge\nequilibration. In this case, the static charges you assign to each\natom will be used for computing the electrostatic interactions in\nthe system. See the [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html) or\n[fix qeq/shielded ](https://docs.lammps.org/fix_qeq.html) or [fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html)\ncommand documentation for more details.\n\nUsing the optional keyword *lgvdw* with the value *yes* turns on the\nlow-gradient correction of ReaxFF for long-range London Dispersion,\nas described in the **Liu_2011** paper. The bundled force\nfield file *ffield.reax.lg* is designed for this correction, and is\ntrained for several energetic materials (see \"Liu\"). When using *lgvdw yes*,\nthe recommended value for parameter *thb* is 0.01, which can be set in the\ncontrol file. Note: Force field files are different for the original\nor lg corrected pair styles, using the wrong ffield file generates an\nerror.\n\nUsing the optional keyword *enobonds* with the value *yes*, the energy\nof atoms with no bonds (i.e. isolated atoms) is included in the total\npotential energy and the per-atom energy of that atom. If the value\n*no* is specified then the energy of atoms with no bonds is set to\nzero. The latter behavior is usual not desired, as it causes\ndiscontinuities in the potential energy when the bonding of an atom\ndrops to zero.\n\nOptional keywords *safezone*, *mincap*, and *minhbonds* are used\nfor allocating reaxff arrays. Increasing these values can avoid memory\nproblems, such as segmentation faults and bondchk failed errors, that\ncould occur under certain conditions. These keywords are not used by\nthe Kokkos version, which instead uses a more robust memory allocation\nscheme that checks if the sizes of the arrays have been exceeded and\nautomatically allocates more memory.\n\nThe keyword *tabulate* controls the size of interpolation table for\nLennard-Jones and Coulomb interactions. Tabulation may also be set in the\ncontrol file (see below). If tabulation is set in both the input script and the\ncontrol file, the value in the control file will be ignored. A size of 10000 is\ntypically used for the interpolation table. A value of 0 means no tabulation\nwill be used.\n\nThe keyword *list/blocking* is only supported by the Kokkos version of\nReaxFF and ignored otherwise. Setting the value to *yes* enables the\n\"blocking\" scheme (dynamically building interaction lists) for the\nReaxFF bond neighbor list. This reduces the number of empty\ninteractions and can improve performance in some cases (e.g. large\nnumber of atoms/GPU on AMD hardware). It is also enabled by default\nwhen running the CPU with Kokkos.\n\nThe thermo variable *evdwl* stores the sum of all the ReaxFF potential\nenergy contributions, with the exception of the Coulombic and charge\nequilibration contributions which are stored in the thermo variable\n*ecoul* . The output of these quantities is controlled by the\n[thermo ](https://docs.lammps.org/thermo.html) command.\n\nThis pair style tallies a breakdown of the total ReaxFF potential\nenergy into sub-categories, which can be accessed via the\n[compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 14.\nThe 14 values correspond to the following sub-categories (the variable\nnames in italics match those used in the original FORTRAN ReaxFF\ncode):\n\n1. *eb* = bond energy\n2. *ea* = atom energy\n3. *elp* = lone-pair energy\n4. *emol* = molecule energy (always 0.0)\n5. *ev* = valence angle energy\n6. *epen* = double-bond valence angle penalty\n7. *ecoa* = valence angle conjugation energy\n8. *ehb* = hydrogen bond energy\n9. *et* = torsion energy\n10. *eco* = conjugation energy\n11. *ew* = van der Waals energy\n12. *ep* = Coulomb energy\n13. *efi* = electric field energy (always 0.0)\n14. *eqeq* = charge equilibration energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute reax all pair reaxff\nvariable eb equal c_reax[1]\nvariable ea equal c_reax[2]\n[...]\nvariable eqeq equal c_reax[14]\nthermo_style custom step temp epair v_eb v_ea [...] v_eqeq\n```\nOnly a single pair_coeff command is used with the *reaxff* style which\nspecifies a ReaxFF potential file with parameters for all needed\nelements. These are mapped to LAMMPS atom types by specifying N\nadditional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N indices = ReaxFF elements\n\nThe filename is the ReaxFF potential file.\n\nIn the ReaxFF potential file, near the top, after the general\nparameters, is the atomic parameters section that contains element\nnames, each with a couple dozen numeric parameters. If there are M\nelements specified in the *ffield* file, think of these as numbered 1\nto M. Each of the N indices you specify for the N atom types of LAMMPS\natoms must be an integer from 1 to M. Atoms with LAMMPS type 1 will\nbe mapped to whatever element you specify as the first index value,\netc. If a mapping value is specified as NULL, the mapping is not\nperformed. This can be used when the *reaxff* style is used as part\nof the *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nAs an example, say your LAMMPS simulation has 4 atom types and the\nelements are ordered as C, H, O, N in the *ffield* file. If you want\nthe LAMMPS atom type 1 and 2 to be C, type 3 to be N, and type 4 to be\nH, you would use the following pair_coeff command:\n\n```lmps\npair_coeff * * ffield.reax C C N H\n```\n-------------\n\n #### Control file\n\nThe format of a line in the control file is as follows:\n\n```\nvariable_name value\n```\nand it may be followed by an \"!\" character and a trailing comment.\n\nIf the value of a control variable is not specified, then default\nvalues are used. What follows is the list of variables along with a\nbrief description of their use and default values.\n\n\n*simulation_name*\n Output files produced by *pair_style reaxff* carry\n this name + extensions specific to their contents. Partial energies\n are reported with a \".pot\" extension, while the trajectory file has\n \".trj\" extension.\n\n*tabulate_long_range*\n To improve performance, long range interactions can optionally be\n tabulated (0 means no tabulation). Value of this variable denotes the\n size of the long range interaction table. The range from 0 to long\n range cutoff (defined in the *ffield* file) is divided into\n *tabulate_long_range* points. Then at the start of simulation, we\n fill in the entries of the long range interaction table by computing\n the energies and forces resulting from van der Waals and Coulomb\n interactions between every possible atom type pairs present in the\n input system. During the simulation we consult to the long range\n interaction table to estimate the energy and forces between a pair of\n atoms. Linear interpolation is used for estimation. (default value = 0)\n\n*energy_update_freq*\n Denotes the frequency (in number of steps) of writes into the partial\n energies file. (default value = 0)\n\n*nbrhood_cutoff*\n Denotes the near neighbors cutoff (in Angstroms)\n regarding the bonded interactions. (default value = 5.0)\n\n*hbond_cutoff*\n Denotes the cutoff distance (in Angstroms) for hydrogen\n bond interactions.(default value = 7.5. A value of 0.0 turns off\n hydrogen bonds)\n\n*bond_graph_cutoff*\n is the threshold used in determining what is a\n physical bond, what is not. Bonds and angles reported in the\n trajectory file rely on this cutoff. (default value = 0.3)\n\n*thb_cutoff*\n cutoff value for the strength of bonds to be considered in\n three body interactions. (default value = 0.001)\n\n*thb_cutoff_sq*\n cutoff value for the strength of bond order products\n to be considered in three body interactions. (default value = 0.00001)\n\n*write_freq*\n Frequency of writes into the trajectory file. (default value = 0)\n\n*traj_title*\n Title of the trajectory - not the name of the trajectory file.\n\n*atom_info*\n 1 means print only atomic positions + charge (default = 0)\n\n*atom_forces*\n 1 adds net forces to atom lines in the trajectory file (default = 0)\n\n*atom_velocities*\n 1 adds atomic velocities to atoms line (default = 0)\n\n*bond_info*\n 1 prints bonds in the trajectory file (default = 0)\n\n*angle_info*\n 1 prints angles in the trajectory file (default = 0)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html),\nsince it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Chenoweth_20082)** Chenoweth, van Duin and Goddard,\nJournal of Physical Chemistry A, 112, 1040-1053 (2008). \n \n(Aktulga) Aktulga, Fogarty, Pandit, Grama, Parallel Computing, 38,\n245-259 (2012). \n \n**(Liu_2011)** L. Liu, Y. Liu, S. V. Zybin, H. Sun and W. A. Goddard, Journal\nof Physical Chemistry A, 115, 11016-11022 (2011). \n ", + "restrictions": "This pair style is part of the REAXFF package. It is only enabled\nif LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe ReaxFF potential files provided with LAMMPS in the potentials\ndirectory are parameterized for *real* [units ](https://docs.lammps.org/units.html). You can use\nthe ReaxFF pair style with any LAMMPS units, but you would need to\ncreate your own potential file with coefficients listed in the\nappropriate units if your simulation does not use \"real\" units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix qeq/reaxff ](https://docs.lammps.org/fix_qeq_reaxff.html),\n[fix acks2/reaxff ](https://docs.lammps.org/fix_acks2_reaxff.html), [fix reaxff/bonds ](https://docs.lammps.org/fix_reaxff_bonds.html),\n[fix reaxff/species ](https://docs.lammps.org/fix_reaxff_species.html),\n[compute reaxff/atom ](https://docs.lammps.org/compute_reaxff_atom.html)\n" }, { "command": [ - "improper_style amoeba" + "fix_modify AtC fix_flux" ], "syntax": [ - "improper_style amoeba" + "fix_modify fix_flux " ], "args": [ [ { - "arg": "improper_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "amoeba", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "fix_flux", "type": 1, "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "value", + "function" + ] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style amoeba\nimproper_coeff 1 49.6\n```\n", - "html_filename": "improper_amoeba.html", - "short_description": "The *amoeba* improper style uses the potential\n\\[\n E = K (\\chi)^2\\]\nwhere \\(\\chi\\) is the improper angle and \\(K\\) is a prefactor", - "description": "The *amoeba* improper style uses the potential\n\\[\n E = K (\\chi)^2\\]\nwhere \\(\\chi\\) is the improper angle and \\(K\\) is a prefactor.\nNote that the usual 1/2 factor is included in \\(K\\).\n\nThis formula seems like a simplified version of the formula for the\n[improper_style harmonic ](https://docs.lammps.org/improper_harmonic.html) command with\n\\(\\chi_0\\) = 0.0. However the computation of the angle\n\\(\\chi\\) is done differently to match how the Tinker MD code\ncomputes its out-of-plane improper for the AMOEBA and HIPPO force\nfields. See the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html) doc page for more\ninformation about the implementation of AMOEBA and HIPPO in LAMMPS.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command are ordered I,J,K,L then\natoms I,K,L are considered to lie in a plane and atom J is\nout-of-place. The angle \\(\\chi_0\\) is computed as the Allinger\nangle which is defined as the angle between the plane of I,K,L, and\nthe vector from atom I to atom J.\n\nThe following coefficient must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n\nNote that the angle \\(\\chi\\) is computed in radians; hence\n\\(K\\) is effectively energy per radian\\^2.\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nAMOEBA package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html),\n[improper_harmonic ](https://docs.lammps.org/improper_harmonic.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fix_flux = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* face_set = name of set of element faces\n* value or function = value or name of function followed by its parameters \n", + "examples": "\n```lmps\nfix_modify AtC fix_flux temperature faceSet 10.0\n```\n", + "html_filename": "atc_fix_flux.html", + "short_description": "Command for fixing normal fluxes e.g", + "description": "Command for fixing normal fluxes e.g. heat_flux. This command only\nprescribes the normal component of the physical flux, e.g. heat (energy)\nflux. The units are in AtC units, i.e. derived from the LAMMPS length,\ntime, and mass scales.\n", + "restrictions": "Only normal fluxes (Neumann data) can be prescribed.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC unfix_flux ](https://docs.lammps.org/atc_unfix_flux.html)\n" }, { "command": [ - "fix_modify AtC boundary type" + "compute rattlers/atom" ], "syntax": [ - "fix_modify boundary type " + "compute ID group-ID rattlers/atom cutoff zmin ntries" ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "boundary", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "rattlers/atom", "type": 1, "choices": [] }, { - "arg": "type", - "type": 1, + "arg": "radius", + "type": 3, + "choices": [ + "type", + "radius" + ] + }, + { + "arg": "zmin", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "ntries", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary type = name of the AtC sub-command\n* atom-type-id = type id for atoms that represent a fictitious boundary internal to the FE mesh \n", - "examples": "\n```lmps\nfix_modify AtC boundary type ghost_atoms\n```\n", - "html_filename": "atc_boundary_type.html", - "short_description": "Command to define the atoms that represent the fictitious boundary\ninternal to the FE mesh", - "description": "Command to define the atoms that represent the fictitious boundary\ninternal to the FE mesh. For fully overlapped MD/FE domains with\nperiodic boundary conditions no boundary atoms should be defined.\n", - "restrictions": "None.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rattlers/atom = style name of this compute command\n* cutoff = type or radius \n *        type = cutoffs determined based on atom types \n *        radius = cutoffs determined based on atom diameters (atom style sphere) \n* zmin = minimum coordination for a non-rattler atom\n* ntries = maximum number of iterations to remove rattlers \n", + "examples": "\n```lmps\ncompute 1 all rattlers/atom type 4 10\n```\n", + "html_filename": "compute_rattlers_atom.html", + "short_description": "\nDefine a compute that identifies rattlers in a system", + "description": "\nDefine a compute that identifies rattlers in a system. Rattlers are often\nidentified in granular or glassy packings as under-coordinated atoms that\ndo not have the required number of contacts to constrain their translational\ndegrees of freedom. Such atoms are not considered rigid and can often freely\nrattle around in the system. This compute identifies rattlers which can be\nhelpful for excluding them from analysis or providing extra damping forces\nto accelerate relaxation processes.\n\nRattlers are identified using an interactive approach. The coordination\nnumber of all atoms is first calculated. The *type* and *radius* settings\nare used to select whether interaction cutoffs are determined by atom\ntypes or by the sum of atomic radii (atom style sphere), respectively.\nRattlers are then identified as atoms with a coordination number less\nthan *zmin* and are removed from consideration. Atomic coordination\nnumbers are then recalculated, excluding previously identified rattlers,\nto identify a new set of rattlers. This process is iterated up to a maximum\nof *ntries* or until no new rattlers are identified and the remaining\natoms form a stable network of contacts.\n\nIn dense homogeneous systems where the average atom coordination number\nis expected to be larger than *zmin*, this process usually only takes a few\niterations and a value of *ntries* around ten may be sufficient. In systems\nwith significant heterogeneity or average coordination numbers less than\n*zmin*, an appropriate value of *ntries* depends heavily on the specific\nsystem. For instance, a linear chain of N rattler atoms with a *zmin* of 2\nwould take N/2 iterations to identify that all the atoms are rattlers.\n\n #### Output info\n\nThis compute calculates a per-atom vector and a global scalar. The vector\ndesignates which atoms are rattlers, indicated by a value 1. Non-rattlers\nhave a value of 0. The global scalar returns the total number of rattlers\nin the system. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *radius* cutoff option requires that atoms store a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) or similar commands.\n", + "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n[compute contact/atom ](https://docs.lammps.org/compute_contact_atom.html)\n" }, { "command": [ - "pair_style spin/dmi" + "pair_style zero" ], "syntax": [ - "pair_style spin/dmi cutoff" + "pair_style zero cutoff [nocoeff] [full]" ], "args": [ [ @@ -36646,7 +35802,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "spin/dmi", + "arg": "zero", "type": 1, "choices": [] }, @@ -36654,23 +35810,33 @@ export const command_docs = [ "arg": "cutoff", "type": 2, "choices": [] + }, + { + "arg": "[nocoeff]", + "type": 2, + "choices": [] + }, + { + "arg": "[full]", + "type": 2, + "choices": [] } ] ], - "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", - "examples": "\n```lmps\npair_style spin/dmi 4.0\npair_coeff * * dmi 2.6 0.001 1.0 0.0 0.0\npair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0\n```\n", - "html_filename": "pair_spin_dmi.html", - "short_description": "Style *spin/dmi* computes the Dzyaloshinskii-Moriya (DM) interaction\nbetween pairs of magnetic spins", - "description": "Style *spin/dmi* computes the Dzyaloshinskii-Moriya (DM) interaction\nbetween pairs of magnetic spins.\nAccording to the expression reported in **Rohart**, one has\nthe following DM energy:\n\\[\n \\mathbf{H}_{dm} = \\sum_{{ i,j}=1,i\\neq j}^{N}\n \\left( \\vec{e}_{ij} \\times \\vec{D} \\right)\n \\cdot\\left(\\vec{s}_{i}\\times \\vec{s}_{j}\\right),\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two neighboring magnetic spins of\ntwo particles, \\(\\vec{e}_ij = \\frac{r_i - r_j}{\\left| r_i - r_j \\right|}\\)\nis the unit vector between sites *i* and *j*, and \\(\\vec{D}\\) is the\nDM vector defining the intensity (in eV) and the direction of the\ninteraction.\n\nIn **Rohart**, \\(\\vec{D}\\) is defined as the direction normal to the film oriented\nfrom the high spin-orbit layer to the magnetic ultra-thin film.\n\nThe application of a spin-lattice Poisson bracket to this energy (as described\nin **Tranchida5**) allows to derive a magnetic torque omega, and a\nmechanical force F (for spin-lattice calculations only) for each magnetic\nparticle i:\n\\[\n \\vec{\\omega}_i = -\\frac{1}{\\hbar} \\sum_{j}^{Neighb} \\vec{s}_{j}\\times \\left(\\vec{e}_{ij}\\times \\vec{D} \\right)\n ~~{\\rm and}~~\n \\vec{F}_i = -\\sum_{j}^{Neighb} \\frac{1}{r_{ij}} \\vec{D} \\times \\left( \\vec{s}_{i}\\times \\vec{s}_{j} \\right)\\]\nMore details about the derivation of these torques/forces are reported in\n**Tranchida5**.\n\nFor the *spin/dmi* pair style, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands, and\nset in the following order:\n\n* rc (distance units)\n* \\|D\\| (energy units)\n* Dx, Dy, Dz (direction of D)\n\nNote that rc is the radius cutoff of the considered DM interaction, \\|D\\| is\nthe norm of the DM vector (in eV), and Dx, Dy and Dz define its direction.\n\nNone of those coefficients is optional. If not specified, the *spin/dmi*\npair style cannot be used.\n\n----------\n\n \n \n**(Tranchida5)** Rohart and Thiaville, Physical Review B, 88(18), 184422. (2013). \n ", - "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" + "parameters": "* zero = style name of this pair style\n* cutoff = global cutoff (distance units)\n* nocoeff = ignore all pair_coeff parameters (optional)\n* full = build full neighbor list (optional) \n", + "examples": "\n```lmps\npair_style zero 10.0\npair_style zero 5.0 nocoeff\npair_coeff * *\npair_coeff 1 2*4 3.0\n```\n", + "html_filename": "pair_zero.html", + "short_description": "Define a global or per-type cutoff length for the purpose of\nbuilding a neighbor list and acquiring ghost atoms, but do\nnot compute any pairwise forces or energies", + "description": "Define a global or per-type cutoff length for the purpose of\nbuilding a neighbor list and acquiring ghost atoms, but do\nnot compute any pairwise forces or energies.\n\nThis can be useful for fixes or computes which require a neighbor list\nto enumerate pairs of atoms within some cutoff distance, but when\npairwise forces are not otherwise needed. Examples are the [fix bond/create ](https://docs.lammps.org/fix_bond_create.html), [compute rdf ](https://docs.lammps.org/compute_rdf.html),\n[compute voronoi/atom ](https://docs.lammps.org/compute_voronoi_atom.html) commands.\n\nNote that the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command can be\nused to ensure communication of ghost atoms even when a pair style is\nnot defined, but it will not trigger neighbor list generation.\n\nThe optional *nocoeff* flag allows to read data files with a PairCoeff\nsection for any pair style. Similarly, any pair_coeff commands\nwill only be checked for the atom type numbers and the rest ignored.\nIn this case, only the global cutoff will be used.\n\nThe optional *full* flag builds a full neighbor list instead of the default\nhalf neighbor list.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* cutoff (distance units)\n\nThis coefficient is optional. If not specified, the global cutoff\nspecified in the pair_style command is used. If the pair_style has\nbeen specified with the optional *nocoeff* flag, then a cutoff\npair coefficient is ignored.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe cutoff distance for this pair style can be mixed. The default mix\nvalue is *geometric* . See the \"pair_modify\" command for details.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*,\nand *outer* keywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command.\n\n----------\n", + "restrictions": "none\n", + "related": "[pair_style none ](https://docs.lammps.org/pair_none.html)\n" }, { "command": [ - "compute fep" + "compute bond/local" ], "syntax": [ - "compute ID group-ID fep temp attribute args ... keyword value ..." + "compute ID group-ID bond/local value1 value2 ... keyword args ..." ], "args": [ [ @@ -36690,62 +35856,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "fep", + "arg": "bond/local", "type": 1, "choices": [] }, { - "arg": "temp", + "arg": "value1", "type": 2, "choices": [] }, { - "arg": "atom", - "type": 3, - "choices": [ - "pair", - "atom" - ] - }, - { - "arg": "args", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "volume", - "type": 3, - "choices": [ - "tail", - "volume" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { - "arg": "value", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in the [compute ](https://docs.lammps.org/compute.html) command\n* fep = name of this compute command\n* temp = external temperature (as specified for constant-temperature run)\n* one or more attributes with args may be appended\n* attribute = pair or atom \n *        pair args = pstyle pparam I J v_delta \n         pstyle = pair style name (e.g., *lj/cut*) \n         pparam = parameter to perturb \n         I,J = type pair(s) to set parameter for \n         v_delta = variable with perturbation to apply (in the units of the parameter) \n *        atom args = aparam I v_delta \n         aparam = charge = parameter to perturb \n         I = type to set parameter for \n         v_delta = variable with perturbation to apply (in the units of the parameter) \n* zero or more keyword/value pairs may be appended\n* keyword = tail or volume \n *        tail value = no or yes \n         no = ignore tail correction to pair energies (usually small in fep) \n         yes = include tail correction to pair energies \n *        volume value = no or yes \n         no = ignore volume changes (e.g., in NVE or NVT trajectories) \n         yes = include volume changes (e.g., in NPT trajectories) \n", - "examples": "\n```lmps\ncompute 1 all fep 298 pair lj/cut epsilon 1 * v_delta pair lj/cut sigma 1 * v_delta volume yes\ncompute 1 all fep 300 atom charge 2 v_delta\n```\nExample input scripts available: examples/PACKAGES/fep\n", - "html_filename": "compute_fep.html", - "short_description": "Apply a perturbation to parameters of the interaction potential and\nrecalculate the pair potential energy without changing the atomic\ncoordinates from those of the reference, unperturbed system", - "description": "Apply a perturbation to parameters of the interaction potential and\nrecalculate the pair potential energy without changing the atomic\ncoordinates from those of the reference, unperturbed system. This\ncompute can be used to calculate free energy differences using several\nmethods, such as free-energy perturbation (FEP), finite-difference\nthermodynamic integration (FDTI) or Bennet's acceptance ratio method\n(BAR).\n\nThe potential energy of the system is decomposed in three terms: a\nbackground term corresponding to interaction sites whose parameters\nremain constant, a reference term \\(U_0\\) corresponding to the\ninitial interactions of the atoms that will undergo perturbation, and\na term \\(U_1\\) corresponding to the final interactions of\nthese atoms:\n\\[\n U(\\lambda) = U_{\\mathrm{bg}} + U_1(\\lambda) + U_0(\\lambda)\\]\nA coupling parameter \\(\\lambda\\) varying from 0 to 1 connects the\nreference and perturbed systems:\n\\[\\begin{align*} \n \\lambda &= 0 \\quad\\Rightarrow\\quad U = U_{\\mathrm{bg}} + U_0 \\\\\n \\lambda &= 1 \\quad\\Rightarrow\\quad U = U_{\\mathrm{bg}} + U_1 \\end{align*} \\]\nIt is possible but not necessary that the coupling parameter (or a\nfunction thereof) appears as a multiplication factor of the potential\nenergy. Therefore, this compute can apply perturbations to interaction\nparameters that are not directly proportional to the potential energy\n(e.g., \\(\\sigma\\) in Lennard-Jones potentials).\n\nThis command can be combined with [fix adapt ](https://docs.lammps.org/fix_adapt.html) to\nperform multistage free-energy perturbation calculations along\nstepwise alchemical transformations during a simulation run:\n\\[\n \\Delta_0^1 A = \\sum_{i=0}^{n-1} \\Delta_{\\lambda_i}^{\\lambda_{i+1}} A = - k_B T\n \\sum_{i=0}^{n-1} \\ln \\left< \\exp \\left( - \\frac{U(\\lambda_{i+1}) -\n U(\\lambda_i)}{k_B T} \\right) \\right>_{\\lambda_i}\\]\nThis compute is suitable for the finite-difference thermodynamic\nintegration (FDTI) method **Mezei**, which is based on an\nevaluation of the numerical derivative of the free energy by a\nperturbation method using a very small \\(\\delta\\):\n\\[\n \\Delta_0^1 A = \\int_{\\lambda=0}^{\\lambda=1} \\left( \\frac{\\partial\n A(\\lambda)}{\\partial\\lambda} \\right)_\\lambda \\mathrm{d}\\lambda \\approx\n \\sum_{i=0}^{n-1} w_i \\frac{A(\\lambda_{i} + \\delta) - A(\\lambda_i)}{\\delta}\\]\nwhere \\(w_i\\) are weights of a numerical quadrature. The\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command can be used to define the stages of\n\\(\\lambda\\) at which the derivative is calculated and averaged.\n\nThe compute fep calculates the exponential Boltzmann term and also the\npotential energy difference \\(U_1 -U_0\\). By\nchoosing a very small perturbation \\(\\delta\\) the thermodynamic\nintegration method can be implemented using a numerical evaluation of\nthe derivative of the potential energy with respect to \\(\\lambda\\):\n\\[\n \\Delta_0^1 A = \\int_{\\lambda=0}^{\\lambda=1} \\left< \\frac{\\partial\n U(\\lambda)}{\\partial\\lambda} \\right>_\\lambda \\mathrm{d}\\lambda \\approx\n \\sum_{i=0}^{n-1} w_i \\left< \\frac{U(\\lambda_{i} + \\delta) -\n U(\\lambda_i)}{\\delta} \\right>_{\\lambda_i}\\]\nAnother technique to calculate free energy differences is the\nacceptance ratio method **Bennet**, which can be implemented\nby calculating the potential energy differences with \\(\\delta = 1.0\\) on\nboth the forward and reverse routes:\n\\[\n \\left< \\frac{1}{1 + \\exp\\left[\\left(U_1 - U_0 - \\Delta_0^1A \\right) /k_B T\n \\right]} \\right>_0 = \\left< \\frac{1}{1 + \\exp\\left[\\left(U_0 - U_1 +\n \\Delta_0^1A \\right) /k_B T \\right]} \\right>_1\\]\nThe value of the free energy difference is determined by numerical\nroot finding to establish the equality.\n\nConcerning the choice of how the atomic parameters are perturbed in\norder to setup an alchemical transformation route, several strategies\nare available, such as single-topology or double-topology strategies\n**Pearlman**. The latter does not require modification of\nbond lengths, angles or other internal coordinates.\n\nNOTES: This compute command does not take kinetic energy into account,\ntherefore the masses of the particles should not be modified between\nthe reference and perturbed states, or along the alchemical\ntransformation route. This compute command does not change bond\nlengths or other internal coordinates **BoreschKarplus**.\n\n----------\n\nThe *pair* attribute enables various parameters of potentials defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands to be changed, if the pair style supports it.\n\nThe *pstyle* argument is the name of the pair style. For example,\n*pstyle* could be specified as \"lj/cut\". The *pparam* argument is the\nname of the parameter to change. This is a list of\npair styles and parameters that can be used with this compute. See\nthe doc pages for individual pair styles and their energy formulas for\nthe meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [buck, buck/coul/cut, buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda | type pairs |\n| [eam ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | a,b | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/tip4p/cut, lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma | type pairs |\n| [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamR,gamA | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n\nNote that it is easy to add new potentials and their parameters to\nthis list. All it typically takes is adding an extract() method to\nthe pair\\_\\*.cpp file associated with the potential.\n\nSimilar to the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command, I and J can be\nspecified in one of two ways. Explicit numeric values can be used for\neach, as in the first example above. I \\(\\le\\) J is required. LAMMPS sets\nthe coefficients for the symmetric J,I interaction to the same\nvalues. A wild-card asterisk can be used in place of or in conjunction\nwith the I,J arguments to set the coefficients for multiple pairs of\natom types. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If\n\\(N\\) is the number of atom types, then an asterisk with no numeric values\nmeans all types from 1 to \\(N\\). A leading asterisk means all types from\n1 to n (inclusive). A trailing asterisk means all types from m to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). Note that only type pairs with I \\(\\le\\) J are considered; if\nasterisks imply type pairs where J \\(<\\) I, they are ignored.\n\nIf [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is being\nused, then the *pstyle* will be a sub-style name. You must specify\nI,J arguments that correspond to type pair values defined (via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for that sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis compute is invoked. It should be specified as v_name, where name\nis the variable name.\n\n----------\n\nThe *atom* attribute enables atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be used with this compute:\n\n* charge = charge on particle\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis compute is invoked. It should be specified as v_name, where name\nis the variable name.\n\n----------\n\nThe *tail* keyword controls the calculation of the tail correction to\n\"van der Waals\" pair energies beyond the cutoff, if this has been\nactivated via the [pair_modify ](https://docs.lammps.org/pair_modify.html) command. If the\nperturbation is small, the tail contribution to the energy difference\nbetween the reference and perturbed systems should be negligible.\n\nIf the keyword *volume* = *yes*, then the Boltzmann term is multiplied\nby the volume so that correct ensemble averaging can be performed over\ntrajectories during which the volume fluctuates or changes **AllenTildesley**:\n\\[\n \\Delta_0^1 A = - k_B T \\sum_{i=0}^{n-1} \\ln \\frac{\\left< V \\exp \\left( -\n \\frac{U(\\lambda_{i+1}) - U(\\lambda_i)}{k_B T} \\right)\n \\right>_{\\lambda_i}}{\\left< V \\right>_{\\lambda_i}}\\]\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 3 which contains the\nenergy difference ( \\(U_1-U_0\\) ) as c_ID[1], the\nBoltzmann factor \\(\\exp(-(U_1-U_0)/k_B T)\\), or\n\\(V \\exp(-(U_1-U_0)/k_B T)\\), as c_ID[2] and the\nvolume of the simulation box \\(V\\) as c_ID[3]. \\(U_1\\) is the\npair potential energy obtained with the perturbed parameters and\n\\(U_0\\) is the pair potential energy obtained with the\nunperturbed parameters. The energies include kspace terms if these\nare used in the simulation.\n\nThese output results can be used by any command that uses a global\nscalar or vector from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions. For example, the computed values can be averaged using [fix ave/time ](https://docs.lammps.org/fix_ave_time.html).\n\nThe values calculated by this compute are \"extensive\".\n\n**(Mezei)** Mezei, J Chem Phys, 86, 7084 (1987) \n \n**(Bennet)** Bennet, J Comput Phys, 22, 245 (1976) \n \n**(Pearlman)** Pearlman, J Chem Phys, 98, 1487 (1994) \n \n**(BoreschKarplus)** Boresch and Karplus, J Phys Chem A, 103, 103 (1999) \n \n**(AllenTildesley)** Allen and Tildesley, Computer Simulation of\nLiquids, Oxford University Press (1987) \n ", - "restrictions": "This compute is distributed as the FEP package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html), [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n[pair_style .../soft ](https://docs.lammps.org/pair_fep_soft.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* bond/local = style name of this compute command\n* one or more values may be appended\n* value = dist or dx or dy or dz or engpot or force or fx or fy or fz or engvib or engrot or engtrans or omega or velvib or v_name or bN \n *      dist = bond distance \n *      engpot = bond potential energy \n *      force = bond force \n *      dx, dy, dz = components of pairwise distance \n *      fx, fy, fz = components of bond force \n *      engvib = bond kinetic energy of vibration \n *      engrot = bond kinetic energy of rotation \n *      engtrans = bond kinetic energy of translation \n *      omega = magnitude of bond angular velocity \n *      velvib = vibrational velocity along the bond length \n *      v_name = equal-style variable with name (see below) \n *      bN = bond style specific quantities for allowed N values \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *      set args = dist name \n       dist = only currently allowed arg \n       name = name of variable to set with distance (dist) \n", + "examples": "\n```lmps\ncompute 1 all bond/local engpot\ncompute 1 all bond/local dist engpot force\n\ncompute 1 all bond/local dist fx fy fz b1 b2\n\ncompute 1 all bond/local dist v_distsq set dist d\n```\n", + "html_filename": "compute_bond_local.html", + "short_description": "Define a computation that calculates properties of individual bond\ninteractions", + "description": "Define a computation that calculates properties of individual bond\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of bonds in the system, modified by the\ngroup parameter as explained below.\n\nAll these properties are computed for the pair of atoms in a bond,\nwhether the 2 atoms represent a simple diatomic molecule, or are part\nof some larger molecule.\n\nThe value *dist* is the current length of the bond.\nThe values *dx*, *dy*, and *dz* are the xyz components of the\n*distance* between the pair of atoms. This value is always the\ndistance from the atom of lower to the one with the higher id.\n\nThe value *engpot* is the potential energy for the bond,\nbased on the current separation of the pair of atoms in the bond.\n\nThe value *force* is the magnitude of the force acting between the\npair of atoms in the bond.\n\nThe values *fx*, *fy*, and *fz* are the xyz components of\n*force* between the pair of atoms in the bond. For bond styles that apply\nnon-central forces, such as [bond_style bpm/rotational](https://docs.lammps.org/bond_bpm_rotational.html), these values only include the \\((x,y,z)\\)\ncomponents of the normal force component.\n\nThe remaining properties are all computed for motion of the two atoms\nrelative to the center of mass (COM) velocity of the 2 atoms in the\nbond.\n\nThe value *engvib* is the vibrational kinetic energy of the two atoms\nin the bond, which is simply \\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2,\\)\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocity of the two\natoms along the bond direction, after the COM velocity has been subtracted from\neach.\n\nThe value *engrot* is the rotational kinetic energy of the two atoms\nin the bond, which is simply \\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2,\\)\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocity of the two\natoms perpendicular to the bond direction, after the COM velocity has been\nsubtracted from each.\n\nThe value *engtrans* is the translational kinetic energy associated\nwith the motion of the COM of the system itself, namely \\(\\frac12(m_1+m_2)\nV_{\\mathrm{cm}}^2\\), where `Vcm` = magnitude of the velocity of the COM.\n\nNote that these three kinetic energy terms are simply a partitioning of\nthe summed kinetic energy of the two atoms themselves. That is, the total\nkinetic energy is\n\\(\\frac12 m_1 v_1^2 + \\frac12 m_2 v_2^2\\) = engvib + engrot + engtrans,\nwhere \\(v_1\\) and \\(v_2\\) are the magnitude of the velocities of the\ntwo atoms, without any adjustment for the COM velocity.\n\nThe value *omega* is the magnitude of the angular velocity of the\ntwo atoms around their COM position.\n\nThe value *velvib* is the magnitude of the relative velocity of the\ntwo atoms in the bond towards each other. A negative value means the\ntwo atoms are moving toward each other; a positive value means they are\nmoving apart.\n\nThe value *v_name* can be used together with the *set* keyword to\ncompute a user-specified function of the bond distance. The *name*\nspecified for the *v_name* value is the name of an [equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on a\nvariable which will store the bond distance. This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with theta.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the length\\ \\(^2\\) of every bond in the system and\noutput the statistics in various ways:\n\n```lmps\nvariable d internal 0.0\nvariable dsq equal v_d*v_d\n\ncompute 1 all property/local batom1 batom2 btype\ncompute 2 all bond/local engpot dist v_dsq set dist d\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the energy, length,\nand length\\ \\(^2\\) for every bond in the system. The\n[thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the average of\nthose quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html) command\nwith thermo output, and the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the length\\ \\(^2\\) values and write them to a file.\n\nA bond style may define additional bond quantities which can be\naccessed as *b1* to *bN*, where N is defined by the bond style. Most\nbond styles do not define any additional quantities, so N = 0. An\nexample of ones that do are the [BPM bond styles ](https://docs.lammps.org/Howto_bpm.html)\nwhich store the reference state between two particles. See\nindividual bond styles for details.\n\nWhen using *bN* with bond style *hybrid*, the output will be the Nth\nquantity from the sub-style that computes the bonded interaction\n(based on bond type). If that sub-style does not define a *bN*,\nthe output will be 0.0. The maximum allowed N is the maximum number\nof quantities provided by any sub-style.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their bonds. A bond will only be\nincluded if both atoms in the bond are in the specified compute group.\nAny bonds that have been broken (see the [bond_style ](https://docs.lammps.org/bond_style.html)\ncommand) by setting their bond type to 0 are not included. Bonds that\nhave been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by setting their bond type\nnegative are written into the file, but their energy will be 0.0.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, bond output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local btype batom1 batom2\ncompute 2 all bond/local dist engpot\ndump 1 all local 1000 tmp.dump index c_1[*] c_2[*]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of bonds. If a single value is specified, a local\nvector is produced. If two or more values are specified, a local\narray is produced where the number of columns = the number of values.\nThe vector or array can be accessed by any command that uses local\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *dist* will be in distance [units ](https://docs.lammps.org/units.html). The\noutput for *velvib* will be in velocity [units ](https://docs.lammps.org/units.html). The output\nfor *omega* will be in velocity/distance [units ](https://docs.lammps.org/units.html). The\noutput for *engtrans*, *engvib*, *engrot*, and *engpot* will be in\nenergy [units ](https://docs.lammps.org/units.html). The output for *force* will be in force\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" }, { "command": [ - "fix ti/spring" + "compute event/displace" ], "syntax": [ - "fix ID group-ID ti/spring k t_s t_eq keyword value ..." + "compute ID group-ID event/displace threshold" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -36760,51 +35915,113 @@ export const command_docs = [ "choices": [] }, { - "arg": "ti/spring", + "arg": "event/displace", "type": 1, "choices": [] }, { - "arg": "k", + "arg": "threshold", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* event/displace = style name of this compute command\n* threshold = minimum distance any particle must move to trigger an event (distance units) \n", + "examples": "\n```lmps\ncompute 1 all event/displace 0.5\n```\n", + "html_filename": "compute_event_displace.html", + "short_description": "Define a computation that flags an \"event\" if any particle in the\ngroup has moved a distance greater than the specified threshold\ndistance when compared to a previously stored reference state\n(i.e., the previous event)", + "description": "Define a computation that flags an \"event\" if any particle in the\ngroup has moved a distance greater than the specified threshold\ndistance when compared to a previously stored reference state\n(i.e., the previous event). This compute is typically used in\nconjunction with the [prd ](https://docs.lammps.org/prd.html) and [tad ](https://docs.lammps.org/tad.html) commands,\nto detect if a transition to a new minimum energy basin has occurred.\n\nThis value calculated by the compute is equal to 0 if no particle has\nmoved far enough, and equal to 1 if one or more particles have moved\nfurther than the threshold distance.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the system is undergoing significant center-of-mass motion,\n > due to thermal motion, an external force, or an initial net momentum,\n > then this compute will not be able to distinguish that motion from\n > local atom displacements and may generate \"false positives\". \n > \n\n #### Output info\n\nThis compute calculates a global scalar (the flag). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nscalar value will be a 0 or 1 as explained above.\n", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[prd ](https://docs.lammps.org/prd.html), [tad ](https://docs.lammps.org/tad.html)\n" +}, +{ + "command": [ + "pair_style ilp/graphene/hbn" + ], + "syntax": [ + "pair_style [hybrid/overlay ...] ilp/graphene/hbn cutoff tap_flag" + ], + "args": [ + [ + { + "arg": "pair_style", + "type": 1, + "choices": [] }, { - "arg": "t_s", + "arg": "[hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "t_eq", + "arg": "...]", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "ilp/graphene/hbn", + "type": 1, + "choices": [] + }, + { + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "tap_flag", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* ti/spring = style name of this fix command\n* k = spring constant (force/distance units)\n* t_eq = number of steps for the equilibration procedure\n* t_s = number of steps for the switching procedure\n* zero or more keyword/value pairs may be appended to args\n* keyword = function \n *        function value = function-ID \n         function-ID = ID of the switching function (1 or 2) \nExample\n\"\"\"\"\"\"\" \n *    fix 1 all ti/spring 50.0 2000 1000 function 2 \n", - "examples": "", - "html_filename": "fix_ti_spring.html", - "short_description": "This fix allows you to compute the free energy of crystalline solids\nby performing a nonequilibrium thermodynamic integration between the\nsolid of interest and an Einstein crystal", - "description": "This fix allows you to compute the free energy of crystalline solids\nby performing a nonequilibrium thermodynamic integration between the\nsolid of interest and an Einstein crystal. A detailed explanation of\nhow to use this command and choose its parameters for optimal\nperformance and accuracy is given in the paper by\n**Freitas1**. The paper also presents a short summary of the\ntheory of nonequilibrium thermodynamic integration.\n\nThe thermodynamic integration procedure is performed by rescaling the\nforce on each atom. Given an atomic configuration the force (F) on\neach atom is given by\n\\[\n F = \\left( 1-\\lambda \\right) F_{\\text{solid}} + \\lambda F_{\\text{harm}}\\]\nwhere F_solid is the force that acts on an atom due to an interatomic\npotential (\\ *e.g.* EAM potential), F_harm is the force due to the\nEinstein crystal harmonic spring, and lambda is the coupling parameter\nof the thermodynamic integration. An Einstein crystal is a solid where\neach atom is attached to its equilibrium position by a harmonic spring\nwith spring constant *k* . With this fix a spring force is applied\nindependently to each atom in the group defined by the fix to tether\nit to its initial position. The initial position of each atom is its\nposition at the time the fix command was issued.\n\nThe fix acts as follows: during the first *t_eq* steps after the fix\nis defined the value of lambda is zero. This is the period to\nequilibrate the system in the lambda = 0 state. After this the value\nof lambda changes dynamically during the simulation from 0 to 1\naccording to the function defined using the keyword *function*\n(described below), this switching from lambda from 0 to 1 is done in\n*t_s* steps. Then comes the second equilibration period of *t_eq* to\nequilibrate the system in the lambda = 1 state. After that, the\nswitching back to the lambda = 0 state is made using *t_s* timesteps\nand following the same switching function. After this period the value\nof lambda is kept equal to zero and the fix has no other effect on the\ndynamics of the system.\n\nThe processes described above is known as nonequilibrium thermodynamic\nintegration and is has been shown (**Freitas1**) to present a\nmuch superior efficiency when compared to standard equilibrium\nmethods. The reason why the switching it is made in both directions\n(potential to Einstein crystal and back) is to eliminate the\ndissipated heat due to the nonequilibrium process. Further details\nabout nonequilibrium thermodynamic integration and its implementation\nin LAMMPS is available in **Freitas1**.\n\nThe *function* keyword allows the use of two different lambda\npaths. Option *1* results in a constant rate of change of lambda with\ntime:\n\\[\n \\lambda(\\tau) = \\tau\\]\nwhere \\(\\tau\\) is the scaled time variable *t/t_s*. The option *2*\nperforms the lambda switching at a rate defined by the following\nswitching function\n\\[\n \\lambda(\\tau) = \\tau^5 \\left( 70 \\tau^4 - 315 \\tau^3 + 540 \\tau^2 -\n 420 \\tau + 126 \\right)\\]\nThis function has zero slope as lambda approaches its extreme values\n(0 and 1), according to **deKoning96** this results in\nsmaller fluctuations on the integral to be computed on the\nthermodynamic integration. The use of option *2* is recommended since\nit results in better accuracy and less dissipation without any\nincrease in computational resources cost.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As described in **Freitas1**, it is important to keep\n > the center-of-mass fixed during the thermodynamic integration. A\n > nonzero total velocity will result in divergences during the\n > integration due to the fact that the atoms are 'attached' to their\n > equilibrium positions by the Einstein crystal. Check the option\n > *zero* of [fix langevin ](https://docs.lammps.org/fix_langevin.html) and [velocity > ](https://docs.lammps.org/velocity.html). The use of the Nose-Hoover thermostat ([fix nvt > ](https://docs.lammps.org/fix_nh.html)) is *NOT* recommended due to its well documented issues\n > with the canonical sampling of harmonic degrees of freedom (notice\n > that the *chain* option will *NOT* solve this problem). The\n > Langevin thermostat ([fix langevin ](https://docs.lammps.org/fix_langevin.html)) correctly\n > thermostats the system and we advise its usage with ti/spring\n > command. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the original coordinates of tethered atoms to\n[binary restart files ](https://docs.lammps.org/restart.html), so that the spring effect will\nbe the same in a restarted simulation. See the [read restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in the per-atom springs to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar and a global vector quantities which\ncan be accessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The\nscalar is an energy which is the sum of the spring energy for each\natom, where the per-atom energy is \\(0.5 \\cdot k \\cdot r^2\\).\nThe vector stores 2 values. The first value is the coupling parameter lambda.\nThe second value is the derivative of lambda with respect to the integer\ntimestep *s*, i.e. \\(\\frac{d \\lambda}{d s}\\). In order to obtain\n\\(\\frac{d \\lambda}{d t}\\),\nwhere t is simulation time, this 2nd value needs to be divided by the\ntimestep size (e.g. 0.5 fs). The scalar and vector values calculated\nby this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the per-atom spring energy to be included in the\n > total potential energy of the system (the quantity being minimized),\n > you MUST enable the [fix modify ](https://docs.lammps.org/fix_modify.html) *energy* option for\n > this fix. \n > \n\n\n**(Freitas1)** Freitas, Asta, and de Koning, Computational Materials\nScience, 112, 333 (2016). \n \n**(deKoning96)** de Koning and Antonelli, Phys Rev E, 53, 465 (1996). \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style hybrid/overlay ilp/graphene/hbn 16.0 1\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\n\npair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0\npair_coeff * * rebo CH.rebo NULL NULL C\npair_coeff * * tersoff BNC.tersoff B N NULL\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\npair_coeff 1 1 coul/shield 0.70\npair_coeff 1 2 coul/shield 0.695\npair_coeff 2 2 coul/shield 0.69\n```\n", + "html_filename": "pair_ilp_graphene_hbn.html", + "short_description": "The *ilp/graphene/hbn* style computes the registry-dependent interlayer\npotential (ILP) potential as described in **Leven1**,\n**Leven2** and **Maaravi2**", + "description": "The *ilp/graphene/hbn* style computes the registry-dependent interlayer\npotential (ILP) potential as described in **Leven1**,\n**Leven2** and **Maaravi2**.\nThe normals are calculated in the way as described\nin **Kolmogorov2**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) **Maaravi2**. The definitions of\neach parameter in the above equation can be found in **Leven1** and **Maaravi2**.\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential (ILP) is intended for interlayer interactions between two\n > different layers of graphene, hexagonal boron nitride (h-BN) and their hetero-junction.\n > To perform a realistic simulation, this potential must be used in combination with\n > intralayer potential, such as [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html) potential.\n > To keep the intralayer properties unaffected, the interlayer interaction\n > within the same layers should be avoided. Hence, each atom has to have a layer\n > identifier such that atoms residing on the same layer interact via the\n > appropriate intralayer potential and atoms residing on different layers\n > interact via the ILP. Here, the molecule id is chosen as the layer identifier,\n > thus a data file with the \"full\" atom style is required to use this potential. \n > \n\nThe parameter file (e.g. BNCH.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. BNCH.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful.\n > The parameters for atoms pairs between Boron and Nitrogen are fitted with\n > a screened Coulomb interaction [coul/shield ](https://docs.lammps.org/pair_coul_shield.html). Therefore,\n > to simulated the properties of h-BN correctly, this potential must be used in\n > combination with the pair style [coul/shield ](https://docs.lammps.org/pair_coul_shield.html). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Four new sets of parameters of ILP for 2D layered Materials with bilayer and\n > bulk configurations are presented in **Ouyang1** and **Ouyang2**, respectively.\n > These parameters provide a good description in both short- and long-range interaction regimes.\n > While the old ILP parameters published in **Leven2** and\n > **Maaravi2** are only suitable for long-range interaction\n > regime. This feature is essential for simulations in high pressure\n > regime (i.e., the interlayer distance is smaller than the equilibrium\n > distance). The benchmark tests and comparison of these parameters can\n > be found in **Ouyang1** and **Ouyang2**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair ilp/graphene/hbn\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Leven1)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Leven2)** I. Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016). \n \n**(Maaravi2)** T. Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017). \n \n**(Kolmogorov2)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005). \n \n**(Leven1)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Ouyang1)** W. Ouyang, D. Mandelli, M. Urbakh and O. Hod, Nano Lett. 18, 6009-6016 (2018). \n \n**(Ouyang2)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe BNCH.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom BNCH.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" }, { "command": [ - "compute rattlers/atom" + "dihedral_style quadratic", + "dihedral_style quadratic/omp" ], "syntax": [ - "compute ID group-ID rattlers/atom cutoff zmin ntries" + "dihedral_style quadratic" + ], + "args": [ + [ + { + "arg": "dihedral_style", + "type": 1, + "choices": [] + }, + { + "arg": "quadratic", + "type": 3, + "choices": [ + "quadratic", + "quadratic/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\ndihedral_style quadratic\ndihedral_coeff 100.0 80.0\n```\n", + "html_filename": "dihedral_quadratic.html", + "short_description": "The *quadratic* dihedral style uses the potential:\n\\[\n E = K (\\phi - \\phi_0)^2\\]\nThis dihedral potential can be used to keep a dihedral in a predefined\nvalue (cis=zero, right-hand convention is used)", + "description": "The *quadratic* dihedral style uses the potential:\n\\[\n E = K (\\phi - \\phi_0)^2\\]\nThis dihedral potential can be used to keep a dihedral in a predefined\nvalue (cis=zero, right-hand convention is used).\n\nThe following coefficients must be defined for each dihedral type via\nthe [dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\phi_0\\) (degrees)\n\n\\(\\phi_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence \\(K\\) is effectively energy per\nradian\\^2.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" +}, +{ + "command": [ + "compute angle/local" + ], + "syntax": [ + "compute ID group-ID angle/local value1 value2 ... keyword args ..." ], "args": [ [ @@ -36824,112 +36041,143 @@ export const command_docs = [ "choices": [] }, { - "arg": "rattlers/atom", + "arg": "angle/local", "type": 1, "choices": [] }, { - "arg": "radius", - "type": 3, - "choices": [ - "type", - "radius" - ] + "arg": "value1", + "type": 2, + "choices": [] }, { - "arg": "zmin", + "arg": "value2", "type": 2, "choices": [] }, { - "arg": "ntries", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* rattlers/atom = style name of this compute command\n* cutoff = type or radius \n *        type = cutoffs determined based on atom types \n *        radius = cutoffs determined based on atom diameters (atom style sphere) \n* zmin = minimum coordination for a non-rattler atom\n* ntries = maximum number of iterations to remove rattlers \n", - "examples": "\n```lmps\ncompute 1 all rattlers/atom type 4 10\n```\n", - "html_filename": "compute_rattlers_atom.html", - "short_description": "\nDefine a compute that identifies rattlers in a system", - "description": "\nDefine a compute that identifies rattlers in a system. Rattlers are often\nidentified in granular or glassy packings as under-coordinated atoms that\ndo not have the required number of contacts to constrain their translational\ndegrees of freedom. Such atoms are not considered rigid and can often freely\nrattle around in the system. This compute identifies rattlers which can be\nhelpful for excluding them from analysis or providing extra damping forces\nto accelerate relaxation processes.\n\nRattlers are identified using an interactive approach. The coordination\nnumber of all atoms is first calculated. The *type* and *radius* settings\nare used to select whether interaction cutoffs are determined by atom\ntypes or by the sum of atomic radii (atom style sphere), respectively.\nRattlers are then identified as atoms with a coordination number less\nthan *zmin* and are removed from consideration. Atomic coordination\nnumbers are then recalculated, excluding previously identified rattlers,\nto identify a new set of rattlers. This process is iterated up to a maximum\nof *ntries* or until no new rattlers are identified and the remaining\natoms form a stable network of contacts.\n\nIn dense homogeneous systems where the average atom coordination number\nis expected to be larger than *zmin*, this process usually only takes a few\niterations and a value of *ntries* around ten may be sufficient. In systems\nwith significant heterogeneity or average coordination numbers less than\n*zmin*, an appropriate value of *ntries* depends heavily on the specific\nsystem. For instance, a linear chain of N rattler atoms with a *zmin* of 2\nwould take N/2 iterations to identify that all the atoms are rattlers.\n\n #### Output info\n\nThis compute calculates a per-atom vector and a global scalar. The vector\ndesignates which atoms are rattlers, indicated by a value 1. Non-rattlers\nhave a value of 0. The global scalar returns the total number of rattlers\nin the system. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *radius* cutoff option requires that atoms store a radius as defined by the\n[atom_style sphere ](https://docs.lammps.org/atom_style.html) or similar commands.\n", - "related": "[compute coord/atom ](https://docs.lammps.org/compute_coord_atom.html)\n[compute contact/atom ](https://docs.lammps.org/compute_contact_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angle/local = style name of this compute command\n* one or more values may be appended\n* value = theta or eng or v_name \n *        theta = tabulate angles \n *        eng = tabulate angle energies \n *        v_name = equal-style variable with name (see below) \n* zero or more keyword/args pairs may be appended\n* keyword = set \n *        set args = theta name \n         theta = only currently allowed arg \n         name = name of variable to set with theta \n", + "examples": "\n```lmps\ncompute 1 all angle/local theta\ncompute 1 all angle/local eng theta\ncompute 1 all angle/local theta v_cos set theta t\n```\n", + "html_filename": "compute_angle_local.html", + "short_description": "Define a computation that calculates properties of individual angle\ninteractions", + "description": "Define a computation that calculates properties of individual angle\ninteractions. The number of datums generated, aggregated across all\nprocessors, equals the number of angles in the system, modified by the\ngroup parameter as explained below.\n\nThe value *theta* is the angle for the three atoms in the interaction.\n\nThe value *eng* is the interaction energy for the angle.\n\nThe value *v_name* can be used together with the *set* keyword to\ncompute a user-specified function of the angle theta. The *name*\nspecified for the *v_name* value is the name of an [equal-style variable ](https://docs.lammps.org/variable.html) which should evaluate a formula based on a\nvariable which will store the angle theta. This other variable must\nbe an [internal-style variable ](https://docs.lammps.org/variable.html) defined in the input\nscript; its initial numeric value can be anything. It must be an\ninternal-style variable, because this command resets its value\ndirectly. The *set* keyword is used to identify the name of this\nother variable associated with theta.\n\nNote that the value of theta for each angle which stored in the\ninternal variable is in radians, not degrees.\n\nAs an example, these commands can be added to the bench/in.rhodo\nscript to compute the cosine and cosine-squared of every angle in the\nsystem and output the statistics in various ways:\n\n```lmps\nvariable t internal 0.0\nvariable cos equal cos(v_t)\nvariable cossq equal cos(v_t)*cos(v_t)\n\ncompute 1 all property/local aatom1 aatom2 aatom3 atype\ncompute 2 all angle/local eng theta v_cos v_cossq set theta t\ndump 1 all local 100 tmp.dump c_1[*] c_2[*]\n\ncompute 3 all reduce ave c_2[*]\nthermo_style custom step temp press c_3[*]\n\nfix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo\n```\nThe [dump local ](https://docs.lammps.org/dump.html) command will output the potential energy\n(\\(\\phi\\)), the angle (\\(\\theta\\)), \\(\\cos(\\theta\\)), and\n\\(\\cos^2(\\theta)\\) for every angle \\(\\theta\\) in the system.\nThe [thermo_style ](https://docs.lammps.org/thermo_style.html) command will print the\naverage of those quantities via the [compute reduce ](https://docs.lammps.org/compute_reduce.html)\ncommand with thermo output. And the [fix ave/histo ](https://docs.lammps.org/fix_ave_histo.html)\ncommand will histogram the \\(\\cos(\\theta)\\) values and write them to a\nfile.\n\n----------\n\nThe local data stored by this command is generated by looping over all\nthe atoms owned on a processor and their angles. An angle will only\nbe included if all three atoms in the angle are in the specified compute\ngroup. Any angles that have been broken (see the\n[angle_style ](https://docs.lammps.org/angle_style.html) command) by setting their angle type to\n0 are not included. Angles that have been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by\nsetting their angle type negative are written into the file, but their\nenergy will be 0.0.\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, angle output from the [compute property/local ](https://docs.lammps.org/compute_property_local.html) command can be combined\nwith data from this command and output by the [dump local ](https://docs.lammps.org/dump.html)\ncommand in a consistent way.\n\nHere is an example of how to do this:\n\n```lmps\ncompute 1 all property/local atype aatom1 aatom2 aatom3\ncompute 2 all angle/local theta eng\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4] c_2[1] c_2[2]\n```\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of values. The length of the vector or number of rows in the\narray is the number of angles. If a single value is specified, a\nlocal vector is produced. If two or more values are specified, a\nlocal array is produced where the number of columns = the number of\nvalues. The vector or array can be accessed by any command that uses\nlocal values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe output for *theta* will be in degrees. The output for *eng* will\nbe in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute property/local ](https://docs.lammps.org/compute_property_local.html)\n" }, { "command": [ - "compute smd/tlsph/strain/rate" + "fix_modify AtC filter type" ], "syntax": [ - "compute ID group-ID smd/tlsph/strain/rate" + "fix_modify filter type " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "filter", + "type": 1, "choices": [] }, { - "arg": "smd/tlsph/strain/rate", + "arg": "type", "type": 1, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "exponential", + "step", + "no_filter" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/strain/rate = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/strain/rate\n```\n", - "html_filename": "compute_smd_tlsph_strain_rate.html", - "short_description": "Define a computation that calculates the rate of the strain tensor for\nparticles interacting via the Total-Lagrangian SPH pair style", - "description": "Define a computation that calculates the rate of the strain tensor for\nparticles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe values will be given in [units ](https://docs.lammps.org/units.html) of one over time.\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain rate tensor.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nTotal-Lagrangian SPH pair style.\n", - "related": "[compute smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html), [compute smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* filter type = name of the AtC sub-command\n* exponential or step or no_filter = select type of filter \n", + "examples": "\n```lmps\nfix_modify AtC filter type exponential\n```\n", + "html_filename": "atc_filter_type.html", + "short_description": "Specifies the type of time filter used", + "description": "Specifies the type of time filter used.\n", + "restrictions": "Only for use with these specific transfers: thermal, two_temperature\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC filter ](https://docs.lammps.org/atc_time_filter.html)\n- [fix_modify AtC filter scale ](https://docs.lammps.org/atc_filter_scale.html)\n" }, { "command": [ - "pair_style extep" + "fix smd/integrate_tlsph" ], "syntax": [ - "pair_style extep" + "fix ID group-ID smd/integrate_tlsph keyword values" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "extep", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "smd/integrate_tlsph", "type": 1, "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style extep\npair_coeff * * BN.extep B N\n```\n", - "html_filename": "pair_extep.html", - "short_description": "Style *extep* computes the Extended Tersoff Potential (ExTeP)\ninteractions as described in **Los2017**", - "description": "Style *extep* computes the Extended Tersoff Potential (ExTeP)\ninteractions as described in **Los2017**.\n\n----------\n\n**(Los2017)** J. H. Los et al. \"Extended Tersoff potential for boron nitride:\nEnergetics and elastic properties of pristine and defective h-BN\",\nPhys. Rev. B 96 (184108), 2017. \n ", - "restrictions": "none\n", - "related": "[pair_tersoff ](https://docs.lammps.org/pair_tersoff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* smd/integrate_tlsph = style name of this fix command\n* zero or more keyword/value pairs may be appended\n* keyword = limit_velocity \n *      limit_velocity value = max_vel \n       max_vel = maximum allowed velocity \n", + "examples": "\n```lmps\nfix 1 all smd/integrate_tlsph\nfix 1 all smd/integrate_tlsph limit_velocity 1000\n```\n", + "html_filename": "fix_smd_integrate_tlsph.html", + "short_description": "The fix performs explicit time integration for particles which\ninteract according with the Total-Lagrangian SPH pair style", + "description": "The fix performs explicit time integration for particles which\ninteract according with the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth Mach\nDynamics in LAMMPS.\n\nThe *limit_velocity* keyword will control the velocity, scaling the\nnorm of the velocity vector to max_vel in case it exceeds this\nvelocity limit.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no part of MACHDYN supports restarting nor\nminimization. This fix has no outputs.\n", + "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[smd/integrate_ulsph ](https://docs.lammps.org/fix_smd_integrate_ulsph.html)\n" }, { "command": [ - "fix propel/self" + "fix lb/fluid" ], "syntax": [ - "fix ID group-ID propel/self mode magnitude keyword values" + "fix ID group-ID lb/fluid nevery viscosity density keyword values ..." ], "args": [ [ @@ -36949,29 +36197,49 @@ export const command_docs = [ "choices": [] }, { - "arg": "propel/self", + "arg": "lb/fluid", "type": 1, "choices": [] }, { - "arg": "quat", - "type": 3, - "choices": [ - "dipole", - "velocity", - "quat" - ] + "arg": "nevery", + "type": 2, + "choices": [] }, { - "arg": "magnitude", + "arg": "viscosity", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "density", "type": 2, "choices": [] }, + { + "arg": "sw", + "type": 3, + "choices": [ + "dx", + "dm", + "noise", + "stencil", + "read_restart", + "write_restart", + "zwall_velocity", + "pressurebcx", + "bodyforce", + "D3Q19", + "dumpxdmf", + "linearInit", + "dof", + "scaleGamma", + "a0", + "npits", + "wp", + "sw" + ] + }, { "arg": "values", "type": 2, @@ -36979,83 +36247,68 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* propel/self = style name of this fix command\n* mode = dipole or velocity or quat\n* magnitude = magnitude of self-propulsion force\n* zero or one keyword/value pairs may be appended\n* keyword = qvector \n *        qvector value = direction of force in ellipsoid frame \n         *sx*, *sy*, sz = components of qvector \n", - "examples": "\n```lmps\nfix active all propel/self dipole 40.0\nfix active all propel/self velocity 10.0\nfix active all propel/self quat 15.7 qvector 1.0 0.0 0.0\n```\n", - "html_filename": "fix_propel_self.html", - "short_description": "Add a force to each atom in the group due to a self-propulsion force", - "description": "Add a force to each atom in the group due to a self-propulsion force. The\nforce is given by\n\\[\n F_i = f_P e_i\\]\nwhere *i* is the particle the force is being applied to, \\(f_P\\)\nis the magnitude of the force, and \\(e_i\\) is the vector direction\nof the force. The specification of \\(e_i\\) is based on which of the\nthree keywords (*dipole* or *velocity* or *quat*) one selects.\n\nFor mode *dipole*, \\(e_i\\) is just equal to\nthe dipole vectors of the atoms in the group. Therefore, if the dipoles\nare not unit vectors, the \\(e_i\\) will not be unit vectors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If another command changes the magnitude of the dipole, this force will\n > change accordingly (since \\(|e_i|\\) will change, which is physically\n > equivalent to re-scaling \\(f_P\\) while keeping \\(|e_i|\\) constant),\n > and no warning will be provided by LAMMPS. This is almost never what you\n > want, so ensure you are not changing dipole magnitudes with another LAMMPS\n > fix or pair style. Furthermore, self-propulsion forces (almost) always\n > set \\(e_i\\) to be a unit vector for all times, so it's best to set\n > all the dipole magnitudes to 1.0 unless you have a good reason not to\n > (see the [set ](https://docs.lammps.org/set.html) command on how to do this). \n > \n\nFor mode *velocity*, \\(e_i\\) points in the direction\nof the current velocity (a unit-vector). This can be interpreted as a\nvelocity-dependent friction, as proposed by e.g. **Erdmann1**.\n\nFor mode *quat*, \\(e_i\\) points in the direction of a unit\nvector, oriented in the coordinate frame of the ellipsoidal particles,\nwhich defaults to point along the x-direction. This default behavior\ncan be changed by via the *quatvec* keyword.\n\nThe optional *quatvec* keyword specifies the direction of self-propulsion\nvia a unit vector (sx,sy,sz). The arguments *sx*, *sy*, and *sz*, are\ndefined within the coordinate frame of the atom's\nellipsoid. For instance, for an ellipsoid with long axis along\nits x-direction, if one wanted the self-propulsion force to also\nbe along this axis, set *sx* equal to 1 and *sy*, *sz* both equal\nto zero. This keyword may only be specified for mode *quat*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In using keyword *quatvec*, the three arguments *sx*,\n > *sy*, and *sz* will be automatically normalized to components\n > of a unit vector internally to avoid users having to explicitly\n > do so themselves. Therefore, in mode *quat*, the vectors \\(e_i\\)\n > will always be of unit length. \n > \n\nAlong with adding a force contribution, this fix can also\ncontribute to the virial (pressure) of the system, defined as\n\\(f_P \\sum_i /(d V)\\), where \\(r_i\\) is the\n*unwrapped* coordinate of particle i in the case of periodic\nboundary conditions. See **Winkler1** for a\ndiscussion of this active pressure contribution.\n\nFor modes *dipole* and *quat*, this fix is by default\nincluded in pressure computations.\n\nFor mode *velocity*, this fix is by default not included\nin pressure computations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In contrast to equilibrium systems, pressure of active systems\n > in general depends on the geometry of the container.\n > The active pressure contribution as calculated in this fix\n > is only valid for certain boundary conditions (spherical\n > walls, rectangular walls, or periodic boundary conditions).\n > For other geometries, the pressure must be measured via\n > explicit calculation of the force per unit area on a wall,\n > and so one must not calculate it using this fix.\n > (Use [fix_modify ](https://docs.lammps.org/fix_modify.html) as described below\n > to turn off the virial contribution of this fix). Again,\n > see **Winkler1** for discussion of why this\n > is the case.\n >\n > Furthermore, when dealing with active systems, the temperature\n > is no longer well defined. Therefore, one should ensure that\n > the *virial* flag is used in the\n > [compute pressure ](https://docs.lammps.org/compute_pressure.html) command (turning\n > off temperature contributions). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by this\nfix to add the contribution due to the added forces on atoms to the\nsystem's virial as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html).\nThe default is *virial yes* for keywords *dipole* and *quat*. The\ndefault is *virial no* for keyword *velocity*.\n\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\n**(Erdmann1)** U. Erdmann , W. Ebeling, L. Schimansky-Geier, and F. Schweitzer,\nEur. Phys. J. B 15, 105-113, 2000. \n \n**(Winkler1)** Winkler, Wysocki, and Gompper, Soft Matter, 11, 6680 (2015). \n ", - "restrictions": "With keyword *dipole*, this fix only works when the DIPOLE package is enabled.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is part of the BROWNIAN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[fix efield ](https://docs.lammps.org/fix_efield.html) , [fix setforce ](https://docs.lammps.org/fix_setforce.html),\n[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* lb/fluid = style name of this fix command\n* nevery = update the lattice-Boltzmann fluid every this many timesteps (should normally be 1)\n* viscosity = the fluid viscosity (units of mass/(time\\*length)).\n* density = the fluid density.\n* zero or more keyword/value pairs may be appended\n* keyword = dx or dm or noise or stencil or read_restart or write_restart or zwall_velocity or pressurebcx or bodyforce or D3Q19 or dumpxdmf or linearInit or dof or scaleGamma or a0 or npits or wp or sw \n *        dx values = dx_LB = the lattice spacing. \n *        dm values = dm_LB = the lattice-Boltzmann mass unit. \n *        noise values = Temperature seed \n         Temperature = fluid temperature. \n         seed = random number generator seed (positive integer) \n *        stencil values = 2 (trilinear stencil, the default), 3 (3-point immersed boundary stencil), or 4 (4-point Keys' interpolation stencil) \n *        read_restart values = restart file = name of the restart file to use to restart a fluid run. \n *        write_restart values = N = write a restart file every N MD timesteps. \n *        zwall_velocity values = velocity_bottom velocity_top = velocities along the y-direction of the bottom and top walls (located at z=zmin and z=zmax). \n *        pressurebcx values = pgradav = imposes a pressure jump at the (periodic) x-boundary of pgradav*Lx*1000. \n *        bodyforce values = bodyforcex bodyforcey bodyforcez = the x,y and z components of a constant body force added to the fluid. \n *        D3Q19 values = none (used to switch from the default D3Q15, 15 velocity lattice, to the D3Q19, 19 velocity lattice). \n *        dumpxdmf values = N file timeI \n         N = output the force and torque every N timesteps \n         file = output file name \n         timeI = 1 (use simulation time to index xdmf file), 0 (use output frame number to index xdmf file) \n *        linearInit values = none = initialize density and velocity using linear interpolation (default is uniform density, no velocities) \n *        dof values = dof = specify the number of degrees of freedom for temperature calculation \n *        scaleGamma values = type gammaFactor \n         type = atom type (1-N) \n         gammaFactor = factor to scale the setGamma gamma value by, for the specified atom type. \n *        a0 values = a_0_real = the square of the speed of sound in the fluid. \n *        npits values = npits h_p l_p l_pp l_e \n         npits = number of pit regions \n         h_p = z-height of pit regions (floor to bottom of slit) \n         l_p = x-length of pit regions \n         l_pp = x-length of slit regions between consecutive pits \n         l_e = x-length of slit regions at ends \n *        wp values = w_p = y-width of slit regions (defaults to full width if not present or if sw active) \n *        sw values = none (turns on y-sidewalls (in xz plane) if npits option active) \n", + "examples": "\n```lmps\nfix 1 all lb/fluid 1 1.0 0.0009982071 dx 1.2 dm 0.001\nfix 1 all lb/fluid 1 1.0 0.0009982071 dx 1.2 dm 0.001 noise 300.0 2761\nfix 1 all lb/fluid 1 1.0 1.0 dx 4.0 dm 10.0 dumpxdmf 500 fflow 0 pressurebcx 0.01 npits 2 20 40 5 0 wp 30\n```\n", + "html_filename": "fix_lb_fluid.html", + "short_description": "\nImplement a lattice-Boltzmann fluid on a uniform mesh covering the\nLAMMPS simulation domain", + "description": "\nImplement a lattice-Boltzmann fluid on a uniform mesh covering the\nLAMMPS simulation domain. Note that this fix was updated in 2022 and is\nnot backward compatible with the previous version. If you need the\nprevious version, please download an older version of LAMMPS. The MD\nparticles described by *group-ID* apply a velocity dependent force to\nthe fluid.\n\nThe lattice-Boltzmann algorithm solves for the fluid motion governed by\nthe Navier Stokes equations,\n\\[\\begin{align*} \n \\partial_t \\rho + \\partial_{\\beta}\\left(\\rho u_{\\beta}\\right)= & 0 \\\\\n \\partial_t\\left(\\rho u_{\\alpha}\\right) + \\partial_{\\beta}\\left(\\rho u_{\\alpha} u_{\\beta}\\right) = & \\partial_{\\beta}\\sigma_{\\alpha \\beta} + F_{\\alpha} + \\partial_{\\beta}\\left(\\eta_{\\alpha \\beta \\gamma \\nu}\\partial_{\\gamma} u_{\\nu}\\right) \\end{align*} \\]\nwith,\n\\[\n \\eta_{\\alpha \\beta \\gamma \\nu} = \\eta\\left[\\delta_{\\alpha \\gamma}\\delta_{\\beta \\nu} + \\delta_{\\alpha \\nu}\\delta_{\\beta \\gamma} - \\frac{2}{3}\\delta_{\\alpha \\beta}\\delta_{\\gamma \\nu}\\right] + \\Lambda \\delta_{\\alpha \\beta}\\delta_{\\gamma \\nu}\\]\nwhere \\(\\rho\\) is the fluid density, *u* is the local\nfluid velocity, \\(\\sigma\\) is the stress tensor, *F* is a local external\nforce, and \\(\\eta\\) and \\(\\Lambda\\) are the shear and bulk viscosities\nrespectively. Here, we have implemented\n\\[\n \\sigma_{\\alpha \\beta} = -P_{\\alpha \\beta} = -\\rho a_0 \\delta_{\\alpha \\beta}\\]\nwith \\(a_0\\) set to \\(\\frac{1}{3} \\frac{dx}{dt}^2\\) by default.\nYou should not normally need to change this default.\n\nThe algorithm involves tracking the time evolution of a set of partial\ndistribution functions which evolve according to a velocity discretized\nversion of the Boltzmann equation,\n\\[\n \\left(\\partial_t + e_{i\\alpha}\\partial_{\\alpha}\\right)f_i = -\\frac{1}{\\tau}\\left(f_i - f_i^{eq}\\right) + W_i\\]\nwhere the first term on the right hand side represents a single time\nrelaxation towards the equilibrium distribution function, and\n\\(\\tau\\) is a parameter physically related to the viscosity. On a\ntechnical note, we have implemented a 15 velocity model (D3Q15) as\ndefault; however, the user can switch to a 19 velocity model (D3Q19)\nthrough the use of the *D3Q19* keyword. Physical variables are then\ndefined in terms of moments of the distribution functions,\n\\[\\begin{align*} \n \\rho = & \\displaystyle\\sum\\limits_{i} f_i \\\\\n \\rho u_{\\alpha} = & \\displaystyle\\sum\\limits_{i} f_i e_{i\\alpha} \\end{align*} \\]\nFull details of the lattice-Boltzmann algorithm used can be found in\n**fluid-Denniston**.\n\nThe fluid is coupled to the MD particles described by *group-ID* through\na velocity dependent force. The contribution to the fluid force on a\ngiven lattice mesh site j due to MD particle \\(\\alpha\\) is\ncalculated as:\n\\[\n {\\bf F}_{j \\alpha} = \\gamma \\left({\\bf v}_n - {\\bf u}_f \\right) \\zeta_{j\\alpha}\\]\nwhere \\(\\mathbf{v}_n\\) is the velocity of the MD particle,\n\\(\\mathbf{u}_f\\) is the fluid velocity interpolated to the particle\nlocation, and \\(\\gamma\\) is the force coupling constant. This\nforce, as with most forces in LAMMPS, and hence the velocities, are\ncalculated at the half-time step. \\(\\zeta\\) is a weight assigned to\nthe grid point, obtained by distributing the particle to the nearest\nlattice sites.\n\nThe force coupling constant, \\(\\gamma\\), is calculated\naccording to\n\\[\n \\gamma = \\frac{2m_um_v}{m_u+m_v}\\left(\\frac{1}{\\Delta t}\\right)\\]\nHere, \\(m_v\\) is the mass of the MD particle, \\(m_u\\) is a\nrepresentative fluid mass at the particle location, and \\(\\Delta t\\)\nis the time step. The fluid mass \\(m_u\\) that the MD particle\ninteracts with is calculated internally. This coupling is chosen to\nconstrain the particle and associated fluid velocity to match at the end\nof the time step. As with other constraints, such as [shake](https://docs.lammps.org/fix_shake.html), this constraint can remove degrees of freedom from the\nsimulation which are accounted for internally in the algorithm.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >While this fix applies the force of the particles on the fluid, it\n > does not apply the force of the fluid to the particles. There is\n > only one option to include this hydrodynamic force on the particles,\n > and that is through the use of the [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html)\n > fix. This fix adds the hydrodynamic force to the total force acting\n > on the particles, after which any of the built-in LAMMPS integrators\n > can be used to integrate the particle motion. If the\n > [lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) fix is NOT used to add the\n > hydrodynamic force to the total force acting on the particles, this\n > physically corresponds to a situation in which an infinitely massive\n > particle is moving through the fluid (since collisions between the\n > particle and the fluid do not act to change the particle's velocity).\n > In this case, setting *scaleGamma* to -1 for the corresponding\n > particle type will explicitly take this limit (of infinite particle\n > mass) in computing the force coupling for the fluid force. \n > \n\n----------\n\nPhysical parameters describing the fluid are specified through\n*viscosity* and *density*. These parameters should all be given in\nterms of the mass, distance, and time units chosen for the main LAMMPS\nrun, as they are scaled by the LB timestep, lattice spacing, and mass\nunit, inside the fix.\n\nThe *dx* keyword allows the user to specify a value for the LB grid\nspacing and the *dm* keyword allows the user to specify the LB mass\nunit. Inside the fix, parameters are scaled by the lattice-Boltzmann\ntimestep, \\(dt_{LB}\\), grid spacing, \\(dx_{LB}\\), and mass unit,\n\\(dm_{LB}\\). \\(dt_{LB}\\) is set equal to\n\\(\\mathrm{nevery}\\cdot dt_{MD}\\), where \\(dt_{MD}\\) is the MD\ntimestep. By default, \\(dm_{LB}\\) is set equal to 1.0, and\n\\(dx_{LB}\\) is chosen so that \\(\\frac{\\tau}{dt} = \\frac{3\\eta\ndt}{\\rho dx^2}\\) is approximately equal to 1.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Care must be taken when choosing both a value for \\(dx_{LB}\\),\n > and a simulation domain size. This fix uses the same subdivision of\n > the simulation domain among processors as the main LAMMPS program. In\n > order to uniformly cover the simulation domain with lattice sites, the\n > lengths of the individual LAMMPS subdomains must all be evenly\n > divisible by \\(dx_{LB}\\). If the simulation domain size is cubic,\n > with equal lengths in all dimensions, and the default value for\n > \\(dx_{LB}\\) is used, this will automatically be satisfied. \n > \n\nIf the *noise* keyword is used, followed by a positive temperature\nvalue, and a positive integer random number seed, the thermal LB algorithm\nof **Adhikari** is used.\n\nIf the keyword *stencil* is used, the value sets the number of\ninterpolation points used in each direction. For this, the user has the\nchoice between a trilinear stencil (*stencil* 2), which provides a\nsupport of 8 lattice sites, or the 3-point immersed boundary method\nstencil (*stencil* 3), which provides a support of 27 lattice sites, or\nthe 4-point Keys' interpolation stencil (stencil 4), which provides a\nsupport of 64 lattice sites. The trilinear stencil is the default as it\nis better suited for simulation of objects close to walls or other\nobjects, due to its smaller support. The 3-point stencil provides\nsmoother motion of the lattice and is suitable for particles not likely\nto be to close to walls or other objects.\n\nIf the keyword *write_restart* is used, followed by a positive integer,\nN, a binary restart file is printed every N LB timesteps. This restart\nfile only contains information about the fluid. Therefore, a LAMMPS\nrestart file should also be written in order to print out full details\nof the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When a large number of lattice grid points are used, the restart\n > files may become quite large. \n > \n\nIn order to restart the fluid portion of the simulation, the keyword\n*read_restart* is specified, followed by the name of the binary\nlb_fluid restart file to be used.\n\nIf the *zwall_velocity* keyword is used y-velocities are assigned to\nthe lower and upper walls. This keyword requires the presence of\nwalls in the z-direction. This is set by assigning fixed boundary\nconditions in the z-direction. If fixed boundary conditions are\npresent in the z-direction, and this keyword is not used, the walls\nare assumed to be stationary.\n\nIf the *pressurebcx* keyword is used, a pressure jump (implemented by a\nstep jump in density) is imposed at the (periodic) x-boundary. The\nvalue set specifies what would be the resulting equilibrium average\npressure gradient in the x-direction if the system had a constant\ncross-section (i.e. resistance to flow). It is converted to a pressure\njump by multiplication by the system size in the x-direction. As this\nvalue should normally be quite small, it is also assumed to be scaled\nby 1000.\n\nIf the *bodyforce* keyword is used, a constant body force is added to\nthe fluid, defined by it's x, y and z components.\n\nIf the keyword *D3Q19* is used, the 19 velocity (D3Q19) lattice is\nused by the lattice-Boltzmann algorithm. By default, the 15 velocity\n(D3Q15) lattice is used.\n\nIf the *dumpxdmf* keyword is used, followed by a positive integer, N,\nand a file name, the fluid densities and velocities at each lattice site\nare output to an xdmf file every N timesteps. This is a binary file\nformat that can be read by visualization packages such as [Paraview](https://www.paraview.org/) . The xdmf file format contains a time\nindex for each frame dump and the value timeI = 1 uses simulation time\nwhile 0 uses the output frame number to index xdmf file. The later can\nbe useful if the [dump vtk ](https://docs.lammps.org/dump_vtk.html) command is used to output\nthe particle positions at the same timesteps and you want to visualize\nboth the fluid and particle data together in [Paraview](https://www.paraview.org/) .\n\nThe *scaleGamma* keyword allows the user to scale the \\(\\gamma\\)\nvalue by a factor, gammaFactor, for a given atom type. Setting\n*scaleGamma* to -1 for the corresponding particle type will explicitly\ntake the limit of infinite particle mass in computing the force coupling\nfor the fluid force (see note above).\n\nIf the *a0* keyword is used, the value specified is used for the square\nof the speed of sound in the fluid. If this keyword is not present, the\nspeed of sound squared is set equal to\n\\(\\frac{1}{3}\\left(\\frac{dx_{LB}}{dt_{LB}}\\right)^2\\). Setting\n\\(a0 > (\\frac{dx_{LB}}{dt_{LB}})^2\\) is not allowed, as this may\nlead to instabilities. As the speed of sound should usually be much\nlarger than any fluid velocity of interest, its value does not normally\nhave a significant impact on the results. As such, it is usually best\nto use the default for this option.\n\nThe *npits* keyword (followed by integer arguments: npits, h_p, l_p,\nl_pp, l_e) sets the fluid domain to the pits geometry. These arguments\nshould only be used if you actually want something more complex than a\nrectangular/cubic geometry. The npits value sets the number of pits\nregions (arranged along x). The remaining arguments are sizes measured\nin multiples of dx_lb: h_p is the z-height of the pit regions, l_p is\nthe x-length of the pit regions, l_pp is the length of the region\nbetween consecutive pits (referred to as a \"slit\" region), and l_e is\nthe x-length of the slit regions at each end of the channel. The pit\ngeometry must fill the system in the x-direction but can be longer, in\nwhich case it is truncated (which enables asymmetric entrance/exit end\nsections). The additional *wp* keyword allows the width (in\ny-direction) of the pit to be specified (the default is full width) and\nthe *sw* keyword indicates that there should be sidewalls in the\ny-direction (default is periodic in y-direction). These parameters are\nillustrated below::\n\n Sideview (in xz plane) of pit geometry:\n ______________________________________________________________________\n slit slit slit ^\n |\n <---le---><---------lp-------><---lpp---><-------lp--------><---le---> hs = (Nbz-1) - hp\n |\n __________ __________ __________ v\n | | | | ^ z\n | | | | | |\n | pit | | pit | hp +-x\n | | | | |\n |__________________| |__________________| v\n\n Endview (in yz plane) of pit geometry (no sw so wp is active):\n _____________________\n ^\n |\n hs\n |\n _____________________ v\n | | ^\n | | | z\n |<---wp--->| hp |\n | | | +-y\n |__________| v\n\n\n----------\n\nFor further details, as well as descriptions and results of several test\nruns, see **fluid-Denniston**. Please include a\ncitation to this paper if the lb_fluid fix is used in work contributing\nto published research.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nDue to the large size of the fluid data, this fix writes it's own\nbinary restart files, if requested, independent of the main LAMMPS\n[binary restart files ](https://docs.lammps.org/restart.html); no information about *lb_fluid*\nis written to the main LAMMPS [binary restart files ](https://docs.lammps.org/restart.html).\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix.\n\nThe fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the current\ntemperature of the group of particles described by *group-ID* along with\nthe fluid constrained to move with them. The temperature is computed via\nthe kinetic energy of the group and fluid constrained to move with them\nand the total number of degrees of freedom (calculated internally). If\nthe particles are not integrated independently (such as via [fixNVE ](https://docs.lammps.org/fix_nve.html)) but have additional constraints imposed on them (such as\nvia integration using [fix rigid ](https://docs.lammps.org/fix_rigid.html)) the degrees of\nfreedom removed from these additional constraints will not be properly\naccounted for. In this case, the user can specify the total degrees of\nfreedom independently using the *dof* keyword.\n\nThe fix also computes a global array of values which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). There are 5 entries in\nthe array. The first entry is the temperature of the fluid, the second\nentry is the total mass of the fluid plus particles, the third through\nfifth entries give the x, y, and z total momentum of the fluid plus\nparticles.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(fluid-Denniston)** Denniston, C., Afrasiabian, N., Cole-Andre, M.G., Mackay, F. E., Ollila, S.T.T., and Whitehead, T., LAMMPS lb/fluid fix version 2: Improved Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 275 (2022) [108318](https://doi.org/10.1016/j.cpc.2022.108318) . \n \n**(Adhikari)** Adhikari, R., Stratford, K., Cates, M. E., and Wagner, A. J., Fluctuating lattice Boltzmann, Europhys. Lett. 71 (2005) 473-479. \n ", + "restrictions": "This fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix can only be used with an orthogonal simulation domain.\n\nThe boundary conditions for the fluid are specified independently to the\nparticles. However, these should normally be specified consistently via\nthe main LAMMPS [boundary ](https://docs.lammps.org/boundary.html) command (p p p, p p f, and p\nf f are the only consistent possibilities). Shrink-wrapped boundary\nconditions are not permitted with this fix.\n\nThis fix must be used before any of [fix lb/viscous](https://docs.lammps.org/fix_lb_viscous.html) and [fix lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html) as the\nfluid needs to be initialized before any of these routines try to access\nits properties. In addition, in order for the hydrodynamic forces to be\nadded to the particles, this fix must be used in conjunction with the\n[lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html) fix.\n\nThis fix needs to be used in conjunction with a standard LAMMPS\nintegrator such as [fix NVE ](https://docs.lammps.org/fix_nve.html) or [fix rigid](https://docs.lammps.org/fix_rigid.html).\n", + "related": "[fix lb/viscous ](https://docs.lammps.org/fix_lb_viscous.html), [fix lb/momentum ](https://docs.lammps.org/fix_lb_momentum.html)\n" }, { "command": [ - "write_dump" + "fix_modify AtC internal_quadrature" ], "syntax": [ - "write_dump group-ID style file dump-args modify dump_modify-args" + "fix_modify internal_quadrature [region]" ], "args": [ [ { - "arg": "write_dump", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "style", - "type": 2, - "choices": [] - }, - { - "arg": "file", + "arg": "", "type": 2, "choices": [] }, { - "arg": "dump-args", - "type": 2, + "arg": "internal_quadrature", + "type": 1, "choices": [] }, { - "arg": "modify", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] }, { - "arg": "dump_modify-args", + "arg": "[region]", "type": 2, "choices": [] } ] ], - "parameters": "* group-ID = ID of the group of atoms to be dumped\n* style = any of the supported [dump styles ](https://docs.lammps.org/dump.html)\n* file = name of file to write dump info to\n* dump-args = any additional args needed for a particular [dump style ](https://docs.lammps.org/dump.html)\n* modify = all args after this keyword are passed to [dump_modify ](https://docs.lammps.org/dump_modify.html) (optional)\n* dump-modify-args = args for [dump_modify ](https://docs.lammps.org/dump_modify.html) (optional) \n", - "examples": "\n```lmps\nwrite_dump all atom dump.atom\nwrite_dump subgroup atom dump.run.bin\nwrite_dump all custom dump.myforce.* id type x y vx fx\nwrite_dump flow custom dump.%.myforce id type c_myF[3] v_ke modify sort id\nwrite_dump all xyz system.xyz modify sort id element O H\nwrite_dump all image snap*.jpg type type size 960 960 modify backcolor white\nwrite_dump all image snap*.jpg element element &\nbond atom 0.3 shiny 0.1 ssao yes 6345 0.2 size 1600 1600 &\nmodify backcolor white element C C O H N C C C O H H S O H\nwrite_dump all atom/gz dump.atom.gz modify compression_level 9\nwrite_dump flow custom/zstd dump.%.myforce.zst &\nid type c_myF[3] v_ke &\nmodify sort id &\ncompression_level 15\n```\n", - "html_filename": "write_dump.html", - "short_description": "Dump a single snapshot of atom quantities to one or more files for the\ncurrent state of the system", - "description": "Dump a single snapshot of atom quantities to one or more files for the\ncurrent state of the system. This is a one-time immediate operation,\nin contrast to the [dump ](https://docs.lammps.org/dump.html) command which will will set up a\ndump style to write out snapshots periodically during a running\nsimulation.\n\nThe syntax for this command is mostly identical to that of the\n[dump ](https://docs.lammps.org/dump.html) and [dump_modify ](https://docs.lammps.org/dump_modify.html) commands as if\nthey were concatenated together, with the following exceptions: There\nis no need for a dump ID or dump frequency and the keyword *modify* is\nadded. The latter is so that the full range of\n[dump_modify ](https://docs.lammps.org/dump_modify.html) options can be specified for the single\nsnapshot, just as they can be for multiple snapshots. The *modify*\nkeyword separates the arguments that would normally be passed to the\n*dump* command from those that would be given the *dump_modify*. Both\nsupport optional arguments and thus LAMMPS needs to be able to cleanly\nseparate the two sets of args.\n\nNote that if the specified filename uses wildcard characters \"\\*\" or\n\"%\", as supported by the [dump ](https://docs.lammps.org/dump.html) command, they will operate\nin the same fashion to create the new filename(s). Normally, [dump image ](https://docs.lammps.org/dump_image.html) files require a filename with a \"\\*\" character\nfor the timestep. That is not the case for the write_dump command; no\nwildcard \"\\*\" character is necessary.\n\n----------\n", - "restrictions": "All restrictions for the [dump ](https://docs.lammps.org/dump.html) and\n[dump_modify ](https://docs.lammps.org/dump_modify.html) commands apply to this command as well,\nwith the exception of the [dump image ](https://docs.lammps.org/dump_image.html) filename not\nrequiring a wildcard \"\\*\" character, as noted above.\n\nSince dumps are normally written during a [run ](https://docs.lammps.org/run.html) or [energy minimization ](https://docs.lammps.org/minimize.html), the simulation has to be ready to run\nbefore this command can be used. Similarly, if the dump requires\ninformation from a compute, fix, or variable, the information needs to\nhave been calculated for the current timestep (e.g. by a prior run),\nelse LAMMPS will generate an error message.\n\nFor example, it is not possible to dump per-atom energy with this\ncommand before a run has been performed, since no energies and forces\nhave yet been calculated. See the [variable ](https://docs.lammps.org/variable.html) doc page\nsection on Variable Accuracy for more information on this topic.\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* internal_quadrature = name of the AtC sub-command\n* on or off = select whether internal quadrature is enabled or not\n* region = treat finite elements as within MD region (optional) \n", + "examples": "\n```lmps\nfix_modify AtC internal_quadrature off\n```\n", + "html_filename": "atc_internal_quadrature.html", + "short_description": "Command to use or not use atomic quadrature on internal elements fully\nfilled with atoms", + "description": "Command to use or not use atomic quadrature on internal elements fully\nfilled with atoms. By turning the internal quadrature off these elements\ndo not contribute to the governing PDE and the fields at the internal\nnodes follow the weighted averages of the atomic data.\n\nOptional region tag specifies which finite element nodes will be treated\nas being within the MD region. This option is only valid with\ninternal_quadrature off.\n", + "restrictions": "", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style dpd", - "pair_style dpd/gpu", - "pair_style dpd/intel", - "pair_style dpd/kk", - "pair_style dpd/omp", - "pair_style dpd/tstat", - "pair_style dpd/tstat/gpu", - "pair_style dpd/tstat/kk", - "pair_style dpd/tstat/omp" + "pair_style spin/exchange" ], "syntax": [ - "pair_style dpd T cutoff seed", - "pair_style dpd/tstat Tstart Tstop cutoff seed" + "pair_style spin/exchange cutoff", + "pair_style spin/exchange/biquadratic cutoff" ], "args": [ [ @@ -37065,30 +36318,14 @@ export const command_docs = [ "choices": [] }, { - "arg": "dpd", - "type": 3, - "choices": [ - "dpd", - "dpd/gpu", - "dpd/intel", - "dpd/kk", - "dpd/omp" - ] - }, - { - "arg": "T", - "type": 2, + "arg": "spin/exchange", + "type": 1, "choices": [] }, { "arg": "cutoff", "type": 2, "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] } ], [ @@ -37098,17 +36335,7 @@ export const command_docs = [ "choices": [] }, { - "arg": "dpd/tstat", - "type": 2, - "choices": [] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", + "arg": "spin/exchange/biquadratic", "type": 2, "choices": [] }, @@ -37116,96 +36343,64 @@ export const command_docs = [ "arg": "cutoff", "type": 2, "choices": [] - }, - { - "arg": "seed", - "type": 2, - "choices": [] } ] ], - "parameters": "* T = temperature (temperature units) (dpd only)\n* Tstart,Tstop = desired temperature at start/end of run (temperature units) (dpd/tstat only)\n* cutoff = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer) \n", - "examples": "\n```lmps\npair_style dpd 1.0 2.5 34387\npair_coeff * * 3.0 1.0\npair_coeff 1 1 3.0 1.0 1.0\n\npair_style hybrid/overlay lj/cut 2.5 dpd/tstat 1.0 1.0 2.5 34387\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * dpd/tstat 1.0\n```\n", - "html_filename": "pair_dpd.html", - "short_description": "Style *dpd* computes a force field for dissipative particle dynamics\n(DPD) following the exposition in **Groot1**", - "description": "Style *dpd* computes a force field for dissipative particle dynamics\n(DPD) following the exposition in **Groot1**.\n\nStyle *dpd/tstat* invokes a DPD thermostat on pairwise interactions,\nwhich is equivalent to the non-conservative portion of the DPD force\nfield. This pairwise thermostat can be used in conjunction with any\n[pair style ](https://docs.lammps.org/pair_style.html), and instead of per-particle thermostats\nlike [fix langevin ](https://docs.lammps.org/fix_langevin.html) or ensemble thermostats like\nNose Hoover as implemented by [fix nvt ](https://docs.lammps.org/fix_nh.html). To use\n*dpd/tstat* as a thermostat for another pair style, use the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command to compute both\nthe desired pair interaction and the thermostat for each pair of\nparticles.\n\nFor style *dpd*, the force on atom I due to atom J is given as a sum\nof 3 terms\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R) \\hat{r_{ij}} \\qquad \\qquad r < r_c \\\\\n F^C = & A w(r) \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\\\\n w(r) = & 1 - \\frac{r}{r_c} \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a dissipative\nforce, and \\(F^R\\) is a random force. \\(\\hat{r_{ij}}\\) is a\nunit vector in the direction \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is\nthe vector difference in velocities of the two atoms \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1. \\(r_c\\) is the\npairwise cutoff. \\(\\sigma\\) is set equal to \\(\\sqrt{2 k_B T\n\\gamma}\\), where \\(k_B\\) is the Boltzmann constant and *T* is the\ntemperature parameter in the pair_style command.\n\nFor style *dpd/tstat*, the force on atom I due to atom J is the same as\nthe above equation, except that the conservative \\(F^C\\) term is\ndropped. Also, during the run, *T* is set each timestep to a ramped\nvalue from *Tstart* to *Tstop*.\n\nFor style *dpd*, the pairwise energy associated with style *dpd* is only\ndue to the conservative force term \\(F^C\\), and is shifted to be\nzero at the cutoff distance \\(r_c\\). The pairwise virial is\ncalculated using all 3 terms. For style *dpd/tstat* there is no\npairwise energy, but the last two terms of the formula make a\ncontribution to the virial.\n\nFor style *dpd*, the following coefficients must be defined for each\npair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* cutoff (distance units)\n\nThe cutoff coefficient is optional. If not specified, the global DPD\ncutoff is used. Note that sigma is set equal to sqrt(2 T gamma),\nwhere T is the temperature set by the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand so it does not need to be specified.\n\nFor style *dpd/tstat*, the coefficients defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command are:\n\n* \\(\\gamma\\) (force/velocity units)\n* cutoff (distance units)\n\nThe cutoff coefficient is optional.\n\nStyles with a *gpu* suffix are implemented based on\nthe work of **Afshar** and **Phillips**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are modeling DPD polymer chains, you may want to use the\n > [pair_style srp ](https://docs.lammps.org/pair_srp.html) command in conjunction with these pair\n > styles. It is a soft segmental repulsive potential (SRP) that can\n > prevent DPD polymer chains from crossing each other. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The virial calculation for pressure when using these pair styles\n > includes all the components of force listed above, including the\n > random force. Since the random force depends on random numbers,\n > everything that changes the order of atoms in the neighbor list\n > (e.g. different number of MPI ranks or a different neighbor list\n > skin distance) will also change the sequence in which the random\n > numbers are applied and thus the individual forces and therefore\n > also the virial/pressure. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For more consistent time integration and force computation you may\n > consider using [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) instead of [fix > nve ](https://docs.lammps.org/fix_nve.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy due to the conservative \\(F^C\\) term is already\nshifted to be 0.0 at the cutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file. Note that the\nuser-specified random number seed is stored in the restart file, so when\na simulation is restarted, each processor will re-initialize its random\nnumber generator the same way it did initially. This means the random\nforces will be random, but will not be the same as they would have been\nif the original simulation had continued past the restart time.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe *dpd/tstat* style can ramp its target temperature over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\n----------\n\n**(Groot1)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Afshar)** Afshar, F. Schmid, A. Pishevar, S. Worley, Comput Phys\nComm, 184, 1119-1128 (2013). \n \n**(Phillips)** C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput\nPhys Comm, 230, 7191-7201 (2011). \n ", - "restrictions": "These styles are part of the DPD-BASIC package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent for style *dpd* simulations since particles move rapidly and\ncan overlap by large amounts. If this setting yields a non-zero number\nof \"dangerous\" reneighborings (printed at the end of a simulation), you\nshould experiment with forcing reneighboring more often and see if\nsystem energies/trajectories change.\n\nThese pair styles requires you to use the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", - "related": "[pair_style dpd/ext ](https://docs.lammps.org/pair_dpd_ext.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[pair_style srp ](https://docs.lammps.org/pair_srp.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html).\n" + "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", + "examples": "\n```lmps\npair_style spin/exchange 4.0\npair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885\npair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 offset yes\n\npair_style spin/exchange/biquadratic 4.0\npair_coeff * * biquadratic 4.0 0.05 0.03 1.48 0.05 0.03 1.48 offset no\npair_coeff 1 2 biquadratic 6.0 -0.01 0.0 1.9 0.0 0.1 19\n```\n", + "html_filename": "pair_spin_exchange.html", + "short_description": "Style *spin/exchange* computes the exchange interaction between\npairs of magnetic spins:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,\\vec{s}_i \\cdot \\vec{s}_j\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two unit vectors representing\nthe magnetic spins of two particles (usually atoms), and\n\\(r_{ij} = \\vert \\vec{r}_i - \\vec{r}_j \\vert\\) is the inter-atomic distance\nbetween those two particles", + "description": "Style *spin/exchange* computes the exchange interaction between\npairs of magnetic spins:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,\\vec{s}_i \\cdot \\vec{s}_j\\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are two unit vectors representing\nthe magnetic spins of two particles (usually atoms), and\n\\(r_{ij} = \\vert \\vec{r}_i - \\vec{r}_j \\vert\\) is the inter-atomic distance\nbetween those two particles. The summation is over pairs of nearest neighbors.\n\\(J(r_{ij})\\) is a function defining the intensity and the sign of the\nexchange interaction for different neighboring shells.\n\nStyle *spin/exchange/biquadratic* computes a biquadratic exchange interaction\nbetween pairs of magnetic spins:\n\\[\n H_{bi} = -\\sum_{i, j}^{N} {J}_{ij} \\left(r_{ij} \\right)\\,\n \\vec{s}_{i}\\cdot \\vec{s}_{j}\n -\\sum_{i, j}^{N} {K}_{ij} \\left(r_{ij} \\right)\\,\n \\left(\\vec{s}_{i}\\cdot\n \\vec{s}_{j}\\right)^2\\]\nwhere \\(\\vec{s}_i\\), \\(\\vec{s}_j\\), \\(r_{ij}\\) and\n\\(J(r_{ij})\\) have the same definitions as above, and \\(K(r_{ij})\\) is\na second function, defining the intensity and the sign of the biquadratic term.\n\nThe interatomic dependence of \\(J(r_{ij})\\) and \\(K(r_{ij})\\) in both\ninteractions above is defined by the following function:\n\\[\n {f}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2\n \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right)\n e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients\ndefined in the associated \"pair_coeff\" command, and \\(R_c\\) is the radius\ncutoff associated to the pair interaction (see below for more explanations).\n\nThe coefficients \\(a\\), \\(b\\), and \\(d\\) need to be fitted so that\nthe function above matches with the value of the exchange interaction for the\n\\(N\\) neighbor shells taken into account.\nExamples and more explanations about this function and its parameterization\nare reported in **Tranchida3**.\n\nWhen a *spin/exchange/biquadratic* pair style is defined, six coefficients\n(three for \\(J(r_{ij})\\), and three for \\(K(r_{ij})\\)) have to be\nfitted.\n\nFrom this exchange interaction, each spin \\(i\\) will be submitted\nto a magnetic torque \\(\\vec{\\omega}_{i}\\), and its associated atom can be\nsubmitted to a force \\(\\vec{F}_{i}\\) for spin-lattice calculations (see\n[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)), such as:\n\\[\n \\vec{\\omega}_{i} = \\frac{1}{\\hbar} \\sum_{j}^{Neighb} {J}\n \\left(r_{ij} \\right)\\,\\vec{s}_{j}\n ~~{\\rm and}~~\n \\vec{F}_{i} = \\sum_{j}^{Neighb} \\frac{\\partial {J} \\left(r_{ij} \\right)}{\n \\partial r_{ij}} \\left( \\vec{s}_{i}\\cdot \\vec{s}_{j} \\right) \\vec{e}_{ij}\\]\nwith \\(\\hbar\\) the Planck constant (in metal units), and \\(\\vec{e}_{ij}\n= \\frac{\\vec{r}_i - \\vec{r}_j}{\\vert \\vec{r}_i-\\vec{r}_j \\vert}\\) the unit\nvector between sites \\(i\\) and \\(j\\).\nEquivalent forces and magnetic torques are generated for the biquadratic term\nwhen a *spin/exchange/biquadratic* pair style is defined.\n\nMore details about the derivation of these torques/forces are reported in\n**Tranchida3**.\n\nFor the *spin/exchange* and *spin/exchange/biquadratic* pair styles, the\nfollowing coefficients must be defined for each pair of atoms types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data\nfile or restart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands, and set in the following order:\n\n* \\(R_c\\) (distance units)\n* \\(a\\) (energy units)\n* \\(b\\) (adim parameter)\n* \\(d\\) (distance units)\n\nfor the *spin/exchange* pair style, and:\n\n* \\(R_c\\) (distance units)\n* \\(a_j\\) (energy units)\n* \\(b_j\\) (adim parameter)\n* \\(d_j\\) (distance units)\n* \\(a_k\\) (energy units)\n* \\(b_k\\) (adim parameter)\n* \\(d_k\\) (distance units)\n\nfor the *spin/exchange/biquadratic* pair style.\n\nNote that \\(R_c\\) is the radius cutoff of the considered exchange\ninteraction, and \\(a\\), \\(b\\) and \\(d\\) are the three coefficients\nperforming the parameterization of the function \\(J(r_{ij})\\) defined\nabove (in the *biquadratic* style, \\(a_j\\), \\(b_j\\), \\(d_j\\) and\n\\(a_k\\), \\(b_k\\), \\(d_k\\) are the coefficients of \\(J(r_{ij})\\)\nand \\(K(r_{ij})\\) respectively).\n\n\nNone of those coefficients is optional. If not specified, the\n*spin/exchange* pair style cannot be used.\n\n----------\n\n**Offsetting magnetic forces and energies** :\n\nFor spin-lattice simulation, it can be useful to offset the\nmechanical forces and energies generated by the exchange\ninteraction.\nThe *offset* keyword allows to apply this offset.\nBy setting *offset* to *yes*, the energy definitions above are\nreplaced by:\n\\[\n H_{ex} = -\\sum_{i,j}^N J_{ij} (r_{ij}) \\,[ \\vec{s}_i \\cdot \\vec{s}_j-1 ]\\]\nfor the *spin/exchange* pair style, and:\n\\[\n H_{bi} = -\\sum_{i, j}^{N} {J}_{ij} \\left(r_{ij} \\right)\\,\n [ \\vec{s}_{i}\\cdot \\vec{s}_{j} -1 ]\n -\\sum_{i, j}^{N} {K}_{ij} \\left(r_{ij} \\right)\\,\n [ \\left(\\vec{s}_{i}\\cdot\n \\vec{s}_{j}\\right)^2 -1]\\]\nfor the *spin/exchange/biquadratic* pair style.\n\nNote that this offset only affects the calculation of the energy\nand mechanical forces. It does not modify the calculation of the\nprecession vectors (and thus does no impact the purely magnetic\nproperties).\nThis ensures that when all spins are aligned, the magnetic energy\nand the associated mechanical forces (and thus the pressure\ngenerated by the magnetic potential) are null.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This offset term can be very important when calculations such as\n > equations of state (energy vs volume, or energy vs pressure) are\n > being performed. Indeed, setting the *offset* term ensures that\n > at the ground state of the crystal and at the equilibrium magnetic\n > configuration (typically ferromagnetic), the pressure is null,\n > as expected.\n > Otherwise, magnetic forces could generate a residual pressure. \n > \n\nWhen the *offset* option is set to *no*, no offset is applied\n(also corresponding to the default option).\n\n----------\n\n**(Tranchida3)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", + "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" }, { "command": [ - "compute fep/ta" + "compute smd/tlsph/strain" ], "syntax": [ - "compute ID group-ID fep/ta temp plane scale_factor keyword value ..." + "compute ID group-ID smd/tlsph/strain" ], "args": [ [ - { - "arg": "compute", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "fep/ta", - "type": 1, - "choices": [] - }, - { - "arg": "temp", - "type": 2, - "choices": [] - }, - { - "arg": "yz", - "type": 3, - "choices": [ - "xy", - "xz", - "yz" - ] + { + "arg": "compute", + "type": 1, + "choices": [] }, { - "arg": "scale_factor", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "value", - "type": 2, + "arg": "smd/tlsph/strain", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in the [compute ](https://docs.lammps.org/compute.html) command\n* fep/ta = name of this compute command\n* temp = external temperature (as specified for constant-temperature run)\n* plane = xy or xz or yz\n* scale_factor = multiplicative factor for change in plane area\n* zero or more keyword/value pairs may be appended\n* keyword = tail \n *      tail value = no or yes \n       no = ignore tail correction to pair energies (usually small in fep) \n       yes = include tail correction to pair energies \n", - "examples": "\n```lmps\ncompute 1 all fep/ta 298 xy 1.0005\n```\n", - "html_filename": "compute_fep_ta.html", - "short_description": "\nDefine a computation that calculates the change in the free energy due\nto a test-area (TA) perturbation **Gloor**", - "description": "\nDefine a computation that calculates the change in the free energy due\nto a test-area (TA) perturbation **Gloor**. The test-area\napproach can be used to determine the interfacial tension of the system\nin a single simulation:\n\\[\n \\gamma = \\lim_{\\Delta \\mathcal{A} \\to 0} \\left( \\frac{\\Delta A_{0 \\to 1 }}{\\Delta \\mathcal{A}}\\right)_{N,V,T}\n = - \\frac{k_B T}{\\Delta \\mathcal{A}} \\ln \\left\\langle \\exp\\left(\\frac{-(U_1 - U_0)}{k_B T}\\right) \\right\\rangle_0\\]\nDuring the perturbation, both axes of *plane* are scaled by multiplying\n\\(\\sqrt{\\mathrm{scale\\_factor}}\\), while the other axis divided by\n\\(\\mathrm{scale\\_factor}\\) such that the overall volume of the system is\nmaintained.\n\nThe *tail* keyword controls the calculation of the tail correction to\n\"van der Waals\" pair energies beyond the cutoff, if this has been\nactivated via the [pair_modify ](https://docs.lammps.org/pair_modify.html) command. If the\nperturbation is small, the tail contribution to the energy difference\nbetween the reference and perturbed systems should be negligible.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector of length 3 which contains the\nenergy difference \\((U_1-U_0)\\) as c_ID[1], the Boltzmann factor\n\\(\\exp\\bigl(-(U_1-U_0)/k_B T\\bigr)\\), as c_ID[2] and the change in the *plane*\narea \\(\\Delta \\mathcal{A}\\) as c_ID[3]. \\(U_1\\) is the potential\nenergy of the perturbed state and \\(U_0\\) is the potential energy of\nthe reference state. The energies include kspace terms if these are\nused in the simulation.\n\nThese output results can be used by any command that uses a global\nscalar or vector from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options. For\nexample, the computed values can be averaged using [fix ave/time](https://docs.lammps.org/fix_ave_time.html).\n\n**(Gloor)** Gloor, J Chem Phys, 123, 134703 (2005) \n ", - "restrictions": "Constraints, like fix shake, may lead to incorrect values for energy difference.\n\nThis compute is distributed as the FEP package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute fep ](https://docs.lammps.org/compute_fep.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/strain = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/strain\n```\n", + "html_filename": "compute_smd_tlsph_strain.html", + "short_description": "Define a computation that calculates the Green-Lagrange strain tensor\nfor particles interacting via the Total-Lagrangian SPH pair style", + "description": "Define a computation that calculates the Green-Lagrange strain tensor\nfor particles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-particle tensor values will be given dimensionless. See\n[units ](https://docs.lammps.org/units.html).\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain tensor.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", + "related": "[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" }, { "command": [ - "pair_style body/nparticle" + "pair_style snap", + "pair_style snap/intel", + "pair_style snap/kk" ], "syntax": [ - "pair_style body/nparticle cutoff" + "pair_style snap" ], "args": [ [ @@ -37215,75 +36410,68 @@ export const command_docs = [ "choices": [] }, { - "arg": "body/nparticle", - "type": 1, - "choices": [] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] + "arg": "snap", + "type": 3, + "choices": [ + "snap", + "snap/intel", + "snap/kk" + ] } ] ], - "parameters": "cutoff = global cutoff for interactions (distance units) \n", - "examples": "\n```lmps\npair_style body/nparticle 3.0\npair_coeff * * 1.0 1.0\npair_coeff 1 1 1.0 1.5 2.5\n```\n", - "html_filename": "pair_body_nparticle.html", - "short_description": "Style *body/nparticle* is for use with body particles and calculates\npairwise body/body interactions as well as interactions between body\nand point-particles", - "description": "Style *body/nparticle* is for use with body particles and calculates\npairwise body/body interactions as well as interactions between body\nand point-particles. See the [Howto body ](https://docs.lammps.org/Howto_body.html) doc page\nfor more details on using body particles.\n\nThis pair style is designed for use with the \"nparticle\" body style,\nwhich is specified as an argument to the \"atom-style body\" command.\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for more details about\nthe body styles LAMMPS supports. The \"nparticle\" style treats a body\nparticle as a rigid body composed of N sub-particles.\n\nThe coordinates of a body particle are its center-of-mass (COM). If\nthe COMs of a pair of body particles are within the cutoff (global or\ntype-specific, as specified above), then all interactions between\npairs of sub-particles in the two body particles are computed.\nE.g. if the first body particle has 3 sub-particles, and the second\nhas 10, then 30 interactions are computed and summed to yield the\ntotal force and torque on each body particle.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the example just described, all 30 interactions are computed\n > even if the distance between a particular pair of sub-particles is\n > greater than the cutoff. Likewise, no interaction between two body\n > particles is computed if the two COMs are further apart than the\n > cutoff, even if the distance between some pairs of their sub-particles\n > is within the cutoff. Thus care should be used in defining the cutoff\n > distances for body particles, depending on their shape and size. \n > \n\nSimilar rules apply for a body particle interacting with a point\nparticle. The distance between the two particles is calculated using\nthe COM of the body particle and the position of the point particle.\nIf the distance is within the cutoff and the body particle has N\nsub-particles, then N interactions with the point particle are\ncomputed and summed. If the distance is not within the cutoff, no\ninteractions between the body and point particle are computed.\n\nThe interaction between two sub-particles, or a sub-particle and point\nparticle, or between two point particles is computed as a Lennard-Jones\ninteraction, using the standard formula\n\\[\\begin{align*} \n E & = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < R_c \\\\ \\end{align*} \\]\nwhere \\(R_c\\) is the cutoff. As explained above, an interaction involving\none or two body sub-particles may be computed even for \\(r > R_c\\).\n\nFor style *body*, the following coefficients must be defined for each\npair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global cutoff\nis used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of this pair style can be mixed. The\ndefault mix value is *geometric* . See the [pair_modify ](https://docs.lammps.org/pair_modify.html) command for\ndetails.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This style is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nDefining particles to be bodies so they participate in body/body or\nbody/particle interactions requires the use of the [atom_style body ](https://docs.lammps.org/atom_style.html) command.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix rigid ](https://docs.lammps.org/fix_rigid.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style snap\npair_coeff * * InP.snapcoeff InP.snapparam In In P P\n```\n", + "html_filename": "pair_snap.html", + "short_description": "Pair style *snap* defines the spectral neighbor analysis potential\n(SNAP), a machine-learning interatomic potential **Thompson20142**", + "description": "Pair style *snap* defines the spectral neighbor analysis potential\n(SNAP), a machine-learning interatomic potential **Thompson20142**. Like the GAP framework of Bartok et\nal. **Bartok20102**, SNAP uses bispectrum components\nto characterize the local neighborhood of each atom in a very general\nway. The mathematical definition of the bispectrum calculation and its\nderivatives w.r.t. atom positions is identical to that used by\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html), which is used to fit SNAP\npotentials to *ab initio* energy, force, and stress data. In SNAP, the\ntotal energy is decomposed into a sum over atom energies. The energy of\natom *i* is expressed as a weighted sum over bispectrum components.\n\\[\n E^i_{SNAP}(B_1^i,...,B_K^i) = \\beta^{\\mu_i}_0 + \\sum_{k=1}^K \\beta_k^{\\mu_i} B_k^i\\]\nwhere \\(B_k^i\\) is the *k* -th bispectrum component of atom *i*,\nand \\(\\beta_k^{\\mu_i}\\) is the corresponding linear coefficient that\ndepends on \\(\\mu_i\\), the SNAP element of atom *i* . The number of\nbispectrum components used and their definitions depend on the value of\n*twojmax* and other parameters defined in the SNAP parameter file\ndescribed below. The bispectrum calculation is described in more detail\nin [compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html).\n\nNote that unlike for other potentials, cutoffs for SNAP potentials are\nnot set in the pair_style or pair_coeff command; they are specified in\nthe SNAP potential files themselves.\n\nOnly a single pair_coeff command is used with the *snap* style which\nspecifies a SNAP coefficient file followed by a SNAP parameter file\nand then N additional arguments specifying the mapping of SNAP\nelements to LAMMPS atom types, where N is the number of\nLAMMPS atom types:\n\n* SNAP coefficient file\n* SNAP parameter file\n* N element names = mapping of SNAP elements to atom types\n\nAs an example, if a LAMMPS indium phosphide simulation has 4 atoms\ntypes, with the first two being indium and the third and fourth being\nphophorous, the pair_coeff command would look like this:\n\n```lmps\npair_coeff * * snap InP.snapcoeff InP.snapparam In In P P\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe two filenames are for the coefficient and parameter files, respectively.\nThe two trailing 'In' arguments map LAMMPS atom types 1 and 2 to the\nSNAP 'In' element. The two trailing 'P' arguments map LAMMPS atom types\n3 and 4 to the SNAP 'P' element.\n\nIf a SNAP mapping value is specified as NULL, the mapping is not\nperformed. This can be used when a *snap* potential is used as part of\nthe *hybrid* pair style. The NULL values are placeholders for atom\ntypes that will be used with other potentials.\n\nThe name of the SNAP coefficient file usually ends in the \".snapcoeff\"\nextension. It may contain coefficients for many SNAP elements. The only\nrequirement is that each of the unique element names appearing in the\nLAMMPS pair_coeff command appear exactly once in the SNAP coefficient\nfile. It is okay if the SNAP coefficient file contains additional\nelements not in the pair_coeff command, except when using *chemflag*\n(see below). The name of the SNAP parameter file usually ends in the\n\".snapparam\" extension. It contains a small number of parameters that\ndefine the overall form of the SNAP potential. See the [pair_coeff](https://docs.lammps.org/pair_coeff.html) page for alternate ways to specify the path for these\nfiles.\n\nSNAP potentials are quite commonly combined with one or more other\nLAMMPS pair styles using the *hybrid/overlay* pair style. As an\nexample, the SNAP tantalum potential provided in the LAMMPS potentials\ndirectory combines the *snap* and *zbl* pair styles. It is invoked by\nthe following commands:\n\n```lmps\nvariable zblcutinner equal 4\nvariable zblcutouter equal 4.8\nvariable zblz equal 73\npair_style hybrid/overlay &\nzbl ${zblcutinner} ${zblcutouter} snap\npair_coeff * * zbl 0.0\npair_coeff 1 1 zbl ${zblz}\npair_coeff * * snap Ta06A.snapcoeff Ta06A.snapparam Ta\n```\nIt is convenient to keep these commands in a separate file that can be\ninserted in any LAMMPS input script using the [include ](https://docs.lammps.org/include.html)\ncommand.\n\nThe top of the SNAP coefficient file can contain any number of blank and\ncomment lines (start with #), but follows a strict format after\nthat. The first non-blank non-comment line must contain two integers:\n\n* nelem = Number of elements\n* ncoeff = Number of coefficients\n\nThis is followed by one block for each of the *nelem* elements.\nThe first line of each block contains three entries:\n\n* Element name (text string)\n* R = Element radius (distance units)\n* w = Element weight (dimensionless)\n\nThis line is followed by *ncoeff* coefficients, one per line.\n\nThe SNAP parameter file can contain blank and comment lines (start\nwith #) anywhere. Each non-blank non-comment line must contain one\nkeyword/value pair. The required keywords are *rcutfac* and\n*twojmax* . Optional keywords are *rfac0*, *rmin0*,\n*switchflag*, *bzeroflag*, *quadraticflag*, *chemflag*,\n*bnormflag*, *wselfallflag*, *switchinnerflag*,\n*sinner*, *dinner*, *chunksize*, and *parallelthresh* .\n\nThe default values for these keywords are\n\n* *rfac0* = 0.99363\n* *rmin0* = 0.0\n* *switchflag* = 1\n* *bzeroflag* = 1\n* *quadraticflag* = 0\n* *chemflag* = 0\n* *bnormflag* = 0\n* *wselfallflag* = 0\n* *switchinnerflag* = 0\n* *chunksize* = 32768\n* *parallelthresh* = 8192\n\nFor detailed definitions of all of these keywords,\nsee the [compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html) doc page.\n\nIf *quadraticflag* is set to 1, then the SNAP energy expression includes\nadditional quadratic terms that have been shown to increase the overall\naccuracy of the potential without much increase in computational cost\n**Wood20182**.\n\\[\n E^i_{SNAP}(\\mathbf{B}^i) = \\beta^{\\mu_i}_0 + \\boldsymbol{\\beta}^{\\mu_i} \\cdot \\mathbf{B}_i + \\frac{1}{2}\\mathbf{B}^t_i \\cdot \\boldsymbol{\\alpha}^{\\mu_i} \\cdot \\mathbf{B}_i\\]\nwhere \\(\\mathbf{B}_i\\) is the *K*-vector of bispectrum components,\n\\(\\boldsymbol{\\beta}^{\\mu_i}\\) is the *K*-vector of linear\ncoefficients for element \\(\\mu_i\\), and\n\\(\\boldsymbol{\\alpha}^{\\mu_i}\\) is the symmetric *K* by *K* matrix\nof quadratic coefficients. The SNAP coefficient file should contain\n*K* (\\ *K* +1)/2 additional coefficients in each element block, the\nupper-triangular elements of \\(\\boldsymbol{\\alpha}^{\\mu_i}\\).\n\nIf *chemflag* is set to 1, then the energy expression is written in\nterms of explicit multi-element bispectrum components indexed on ordered\ntriplets of elements, which has been shown to increase the ability of\nthe SNAP potential to capture energy differences in chemically complex\nsystems, at the expense of a significant increase in computational cost\n**Cusentino20202**.\n\\[\n E^i_{SNAP}(\\mathbf{B}^i) = \\beta^{\\mu_i}_0 + \\sum_{\\kappa,\\lambda,\\mu} \\boldsymbol{\\beta}^{\\kappa\\lambda\\mu}_{\\mu_i} \\cdot \\mathbf{B}^{\\kappa\\lambda\\mu}_i\\]\nwhere \\(\\mathbf{B}^{\\kappa\\lambda\\mu}_i\\) is the *K*-vector of\nbispectrum components for neighbors of elements \\(\\kappa\\),\n\\(\\lambda\\), and \\(\\mu\\) and\n\\(\\boldsymbol{\\beta}^{\\kappa\\lambda\\mu}_{\\mu_i}\\) is the\ncorresponding *K*-vector of linear coefficients for element\n\\(\\mu_i\\). The SNAP coefficient file should contain a total of\n\\(K N_{elem}^3\\) coefficients in each element block, where\n\\(N_{elem}\\) is the number of elements in the SNAP coefficient file,\nwhich must equal the number of unique elements appearing in the LAMMPS\npair_coeff command, to avoid ambiguity in the number of coefficients.\n\nThe keyword *switchinnerflag* activates an additional switching function\nthat smoothly turns off contributions to the SNAP potential from neighbor\natoms at short separations. If *switchinnerflag* is set to 1 then\nthe additional keywords *sinner* and *dinner* must also be provided.\nEach of these is followed by *nelements* values, where *nelements*\nis the number of unique elements appearing in appearing in the LAMMPS\npair_coeff command. The element order should correspond to the order\nin which elements first appear in the pair_coeff command reading from\nleft to right.\n\nThe keywords *chunksize* and *parallelthresh* are only applicable when\nusing the pair style *snap* with the KOKKOS package on GPUs and are\nignored otherwise. The *chunksize* keyword controls the number of atoms\nin each pass used to compute the bispectrum components and is used to\navoid running out of memory. For example if there are 8192 atoms in the\nsimulation and the *chunksize* is set to 4096, the bispectrum\ncalculation will be broken up into two passes (running on a single GPU).\nThe *parallelthresh* keyword controls a crossover threshold for\nperforming extra parallelism. For small systems, exposing additional\nparallelism can be beneficial when there is not enough work to fully\nsaturate the GPU threads otherwise. However, the extra parallelism also\nleads to more divergence and can hurt performance when the system is\nalready large enough to saturate the GPU threads. Extra parallelism\nwill be performed if the *chunksize* (or total number of atoms per GPU)\nis smaller than *parallelthresh*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The previously used *diagonalstyle* keyword was removed in 2019,\n > since all known SNAP potentials use the default value of 3. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Thompson20142)** Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316 (2015). \n \n**(Bartok20102)** Bartok, Payne, Kondor, Csanyi, Phys Rev Lett, 104, 136403 (2010). \n \n**(Wood20182)** Wood and Thompson, J Chem Phys, 148, 241721, (2018) \n \n**(Cusentino20202)** Cusentino, Wood, and Thompson, J Phys Chem A, xxx, xxxxx, (2020) \n ", + "restrictions": "This style is part of the ML-SNAP package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *snap/intel* accelerator variant will *only* be available if LAMMPS\nis built with Intel *compilers* and for CPUs with AVX-512 support.\nWhile the INTEL package in general allows multiple floating point\nprecision modes to be selected, *snap/intel* will currently always use\nfull double precision regardless of the precision mode selected.\nAdditionally, the *intel* variant of snap will **NOT** use multiple\nthreads with OpenMP.\n", + "related": "[compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snad/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snav/atom ](https://docs.lammps.org/compute_sna_atom.html),\n[compute snap ](https://docs.lammps.org/compute_sna_atom.html)\n" }, { "command": [ - "compute smd/tlsph/dt" + "pair_style agni", + "pair_style agni/omp" ], "syntax": [ - "compute ID group-ID smd/tlsph/dt" + "pair_style agni" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "smd/tlsph/dt", - "type": 1, - "choices": [] + "arg": "agni", + "type": 3, + "choices": [ + "agni", + "agni/omp" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/dt = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/dt\n```\n", - "html_filename": "compute_smd_tlsph_dt.html", - "short_description": "Define a computation that outputs the CFL-stable time increment per\nparticle", - "description": "Define a computation that outputs the CFL-stable time increment per\nparticle. This time increment is essentially given by the speed of\nsound, divided by the SPH smoothing length. Because both the speed of\nsound and the smoothing length typically change during the course of a\nsimulation, the stable time increment needs to be re-computed every\ntime step. This calculation is performed automatically in the\nrelevant SPH pair styles and this compute only serves to make the\nstable time increment accessible for output purposes.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given in [units ](https://docs.lammps.org/units.html) of time.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute can only be used for particles interacting with the\nTotal-Lagrangian SPH pair style.\n", - "related": "[smd/adjust/dt ](https://docs.lammps.org/fix_smd_adjust_dt.html)\n" + "parameters": "", + "examples": "\n```lmps\npair_style agni\npair_coeff * * Al.agni Al\n```\n", + "html_filename": "pair_agni.html", + "short_description": "Style *agni* style computes the many-body vectorial force components for\nan atom as\n\\[\\begin{align*} \n F_i^u & = \\sum_t^{N_t}\\alpha_t \\cdot \\exp\\left[-\\frac{\\left(d_{i,t}^u\\right)^2}{2l^2}\\right] \\\\\n d_{i,t}^u & = \\left|\\left| V_i^u(\\eta) - V_t^u(\\eta) \\right|\\right| \\\\\n V_i^u(\\eta) & = \\sum_{j \\neq i}\\frac{r^u_{ij}}{r_{ij}} \\cdot e^{-\\left(\\frac{r_{ij}}{\\eta} \\right)^2} \\cdot f_d\\left(r_{ij}\\right) \\\\\n f_d\\left(r_{ij}\\right) & = \\frac{1}{2} \\left[\\cos\\left(\\frac{\\pi r_{ij}}{R_c}\\right) + 1 \\right] \\end{align*} \\]\n\\(u\\) labels the individual components, i.e", + "description": "Style *agni* style computes the many-body vectorial force components for\nan atom as\n\\[\\begin{align*} \n F_i^u & = \\sum_t^{N_t}\\alpha_t \\cdot \\exp\\left[-\\frac{\\left(d_{i,t}^u\\right)^2}{2l^2}\\right] \\\\\n d_{i,t}^u & = \\left|\\left| V_i^u(\\eta) - V_t^u(\\eta) \\right|\\right| \\\\\n V_i^u(\\eta) & = \\sum_{j \\neq i}\\frac{r^u_{ij}}{r_{ij}} \\cdot e^{-\\left(\\frac{r_{ij}}{\\eta} \\right)^2} \\cdot f_d\\left(r_{ij}\\right) \\\\\n f_d\\left(r_{ij}\\right) & = \\frac{1}{2} \\left[\\cos\\left(\\frac{\\pi r_{ij}}{R_c}\\right) + 1 \\right] \\end{align*} \\]\n\\(u\\) labels the individual components, i.e. \\(x\\), \\(y\\) or \\(z\\), and \\(V\\) is the\ncorresponding atomic fingerprint. \\(d\\) is the Euclidean distance between\nany two atomic fingerprints. A total of \\(N_t\\) reference atomic\nenvironments are considered to construct the force field file. \\(\\alpha_t\\)\nand \\(l\\) are the weight coefficients and length scale parameter of the\nnon-linear regression model.\n\nThe method implements the recently proposed machine learning access to\natomic forces as discussed extensively in the following publications -\n**Botu2015adaptive** and **Botu2015learning**. The premise\nof the method is to map the atomic environment numerically into a\nfingerprint, and use machine learning methods to create a mapping to the\nvectorial atomic forces.\n\nOnly a single pair_coeff command is used with the *agni* style which\nspecifies an AGNI potential file containing the parameters of the\nforce field for the needed elements. These are mapped to LAMMPS atom\ntypes by specifying \\(N\\) additional arguments after the filename in the\npair_coeff command, where \\(N\\) is the number of LAMMPS atom types:\n\n* filename\n* \\(N\\) element names = mapping of AGNI elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the force field file.\n\nAn AGNI force field is fully specified by the filename which contains the\nparameters of the force field, i.e., the reference training environments\nused to construct the machine learning force field. Example force field\nand input files are provided in the examples/PACKAGES/agni directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneed to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Botu2015adaptive)** V. Botu and R. Ramprasad, Int. J. Quant. Chem., 115(16), 1074 (2015). \n \n**(Botu2015learning)** V. Botu and R. Ramprasad, Phys. Rev. B, 92(9), 094306 (2015). \n ", + "restrictions": "Currently, only elemental systems are implemented. Also, the method\nonly provides access to the forces and not energies or stresses.\nThe lack of potential energy data makes this pair style incompatible with\nseveral of the [minimizer algorthms ](https://docs.lammps.org/min_style.html) like *cg* or *sd* .\nIt should work with damped dynamics based minimizers like *fire* or\n*quickmin* . However, one can access the energy via thermodynamic\nintegration of the forces as discussed in\n**Botu2016construct**. This pair style is part of the\nMISC package. It is only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThe AGNI force field files provided with LAMMPS (see the\npotentials directory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\nYou can use the AGNI potential with any LAMMPS units, but you would need\nto create your own AGNI potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" units.\n\n**(Botu2016construct)** V. Botu, R. Batra, J. Chapman and R. Ramprasad, https://arxiv.org/abs/1610.02098 (2016). \n ", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute ptm/atom" + "fix python/invoke" ], "syntax": [ - "compute ID group-ID ptm/atom structures threshold group2-ID" + "fix ID group-ID python/invoke N callback function_name" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -37298,91 +36486,89 @@ export const command_docs = [ "choices": [] }, { - "arg": "ptm/atom", + "arg": "python/invoke", "type": 1, "choices": [] }, { - "arg": "all", + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "end_of_step", "type": 3, "choices": [ - "default", - "all" + "post_force", + "end_of_step" ] }, { - "arg": "threshold", - "type": 2, - "choices": [] - }, - { - "arg": "group2-ID", + "arg": "function_name", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ptm/atom = style name of this compute command\n* structures = default or all or any hyphen-separated combination of *fcc*, *hcp*, *bcc*, *ico*, *sc*, *dcub*, *dhex*, or graphene = structure types to search for\n* threshold = lattice distortion threshold (RMSD)\n* group2-ID determines which group is used for neighbor selection (optional, default \"all\") \n", - "examples": "\n```lmps\ncompute 1 all ptm/atom default 0.1 all\ncompute 1 all ptm/atom fcc-hcp-dcub-dhex 0.15 all\ncompute 1 all ptm/atom all 0\n```\n", - "html_filename": "compute_ptm_atom.html", - "short_description": "Define a computation that determines the local lattice structure\naround an atom using the PTM (Polyhedral Template Matching) method", - "description": "Define a computation that determines the local lattice structure\naround an atom using the PTM (Polyhedral Template Matching) method.\nThe PTM method is described in **Larsen**.\n\nCurrently, there are seven lattice structures PTM recognizes:\n\n* fcc = 1\n* hcp = 2\n* bcc = 3\n* ico (icosahedral) = 4\n* sc (simple cubic) = 5\n* dcub (diamond cubic) = 6\n* dhex (diamond hexagonal) = 7\n* graphene = 8\n\nThe value of the PTM structure will be 0 for unknown types and \\(-1\\) for\natoms not in the specified compute group. The choice of structures to search\nfor can be specified using the \"structures\" argument, which is a\nhyphen-separated list of structure keywords.\nTwo convenient pre-set options are provided:\n\n* default: fcc-hcp-bcc-ico\n* all: fcc-hcp-bcc-ico-sc-dcub-dhex-graphene\n\nThe 'default' setting detects the same structures as the Common Neighbor Analysis method.\nThe 'all' setting searches for all structure types. A performance penalty is\nincurred for the diamond and graphene structures, so it is not recommended to use this option if\nit is known that the simulation does not contain these structures.\n\nPTM identifies structures using two steps. First, a graph isomorphism test is used\nto identify potential structure matches. Next, the deviation is computed between the\nlocal structure (in the simulation) and a template of the ideal lattice structure.\nThe deviation is calculated as:\n\\[\n \\text{RMSD}(\\mathbf{u}, \\mathbf{v})\n = \\min_{s, \\mathbf{Q}} \\sqrt{\\frac{1}{N} \\sum\\limits_{i=1}^{N}\n {\\left\\lVert s[\\vec{u}_i - \\mathbf{\\bar{u}}]\n - \\mathbf{Q} \\cdot \\vec{v}_i \\right\\rVert}^2}\\]\nHere, \\(\\vec u\\) and \\(\\vec v\\) contain the coordinates of the local\nand ideal structures respectively, \\(s\\) is a scale factor, and\n\\(\\mathbf Q\\) is a rotation. The best match is identified by the lowest\nRMSD value, using the optimal scaling, rotation, and correspondence between the\npoints.\n\nThe *threshold* keyword sets an upper limit on the maximum permitted deviation\nbefore a local structure is identified as disordered. Typical values are in\nthe range 0.1--0.15, but larger values may be desirable at higher temperatures.\nA value of 0 is equivalent to infinity and can be used if no threshold is\ndesired.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*ptm/atom* style. By default the compute processes **all** neighbors\nunless the optional *group2-ID* argument is given, then only members\nof that group are considered as neighbors.\n\n #### Output info\n\nThis compute calculates a per-atom array, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nResults are stored in the per-atom array in the following order:\n\n* type\n* rmsd\n* interatomic distance\n* qw\n* qx\n* qy\n* qz\n\nThe type is a number from \\(-1\\) to 8. The rmsd is a positive real number.\nThe interatomic distance is computed from the scale factor in the RMSD equation.\nThe \\((qw,qx,qy,qz)\\) parameters represent the orientation of the local\nstructure in quaternion form. The reference coordinates for each template\n(from which the orientation is determined) can be found in the\n*ptm_constants.h* file in the PTM source directory.\nFor atoms that are not within the compute group-ID, all values are set to zero.\n\n**(Larsen)** Larsen, Schmidt, Schiotz, Modelling Simul Mater Sci Eng, 24, 055007 (2016). \n ", - "restrictions": "This fix is part of the PTM package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n" + "parameters": "* ID, group-ID are ignored by this fix\n* python/invoke = style name of this fix command\n* N = execute every N steps\n* callback = post_force or end_of_step \n *        post_force = callback after force computations on atoms every N time steps \n *        end_of_step = callback after every N time steps \n", + "examples": "\n```lmps\npython post_force_callback here \"\"\"\nfrom lammps import lammps\n\ndef post_force_callback(lammps_ptr, vflag):\nlmp = lammps(ptr=lammps_ptr)\n #### # access LAMMPS state using Python interface\n\npython end_of_step_callback here \"\"\"\ndef end_of_step_callback(lammps_ptr):\nlmp = lammps(ptr=lammps_ptr)\n #### # access LAMMPS state using Python interface\n\nfix pf all python/invoke 50 post_force post_force_callback\nfix eos all python/invoke 50 end_of_step end_of_step_callback\n```\n", + "html_filename": "fix_python_invoke.html", + "short_description": "This fix allows you to call a Python function during a simulation run", + "description": "This fix allows you to call a Python function during a simulation run.\nThe callback is either executed after forces have been applied to atoms\nor at the end of every N time steps.\n\nCallback functions must be declared in the global scope of the\nactive Python interpreter. This can either be done by defining it\ninline using the python command or by importing functions from other\nPython modules. If LAMMPS is driven using the library interface from\nPython, functions defined in the driving Python interpreter can also\nbe executed.\n\nEach callback is given a pointer object as first argument. This can be\nused to initialize an instance of the lammps Python interface, which\ngives access to the LAMMPS state from Python.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >While you can access the state of LAMMPS via library functions\n > from these callbacks, trying to execute input script commands will in the best\n > case not work or in the worst case result in undefined behavior. \n > \n\n", + "restrictions": "This fix is part of the PYTHON package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nBuilding LAMMPS with the PYTHON package will link LAMMPS with the\nPython library on your system. Settings to enable this are in the\nlib/python/Makefile.lammps file. See the lib/python/README file for\ninformation on those settings.\n", + "related": "[python command ](https://docs.lammps.org/python.html)\n" }, { "command": [ - "fix_modify AtC consistent_fe_initialization" + "fix store/force" ], "syntax": [ - "fix_modify consistent_fe_initialization " + "fix ID group-ID store/force" ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "consistent_fe_initialization", - "type": 1, + "arg": "group-ID", + "type": 2, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] + "arg": "store/force", + "type": 1, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* consistent_fe_initialization = name of the AtC sub-command\n* on or off = switch to activate/deactivate the initial setting of the FE intrinsic field to match the projected MD field \n", - "examples": "\n```lmps\nfix_modify AtC consistent_fe_initialization on\n```\n", - "html_filename": "atc_consistent_fe_initialization.html", - "short_description": "Determines whether AtC initializes FE intrinsic fields (e.g.,\ntemperature) to match the projected MD values", - "description": "Determines whether AtC initializes FE intrinsic fields (e.g.,\ntemperature) to match the projected MD values. This is particularly\nuseful for fully overlapping simulations.\n", - "restrictions": "Can be used with: *thermal*, *two_temperature*.\nCannot be used with time filtering on.\nDoes not include boundary nodes.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* store/force = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all store/force\n```\n", + "html_filename": "fix_store_force.html", + "short_description": "Store the forces on atoms in the group at the point during each\ntimestep when the fix is invoked, as described below", + "description": "Store the forces on atoms in the group at the point during each\ntimestep when the fix is invoked, as described below. This is useful\nfor storing forces before constraints or other boundary conditions are\ncomputed which modify the forces, so that unmodified forces can be\n[written to a dump file ](https://docs.lammps.org/dump.html) or accessed by other [output commands ](https://docs.lammps.org/Howto_output.html) that use per-atom quantities.\n\nThis fix is invoked at the point in the velocity-Verlet timestepping\nimmediately after [pair ](https://docs.lammps.org/pair_style.html), [bond ](https://docs.lammps.org/bond_style.html),\n[angle ](https://docs.lammps.org/angle_style.html), [dihedral ](https://docs.lammps.org/dihedral_style.html),\n[improper ](https://docs.lammps.org/improper_style.html), and [long-range ](https://docs.lammps.org/kspace_style.html)\nforces have been calculated. It is the point in the timestep when\nvarious fixes that compute constraint forces are calculated and\npotentially modify the force on each atom. Examples of such fixes are\n[fix shake ](https://docs.lammps.org/fix_shake.html), [fix wall ](https://docs.lammps.org/fix_wall.html), and [fix indent ](https://docs.lammps.org/fix_indent.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The order in which various fixes are applied which operate at\n > the same point during the timestep, is the same as the order they are\n > specified in the input script. Thus normally, if you want to store\n > per-atom forces due to force field interactions, before constraints\n > are applied, you should list this fix first within that set of fixes,\n > i.e. before other fixes that apply constraints. However, if you wish\n > to include certain constraints (e.g. fix shake) in the stored force,\n > then it could be specified after some fixes and before others. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix produces a per-atom array which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The number of columns for each\natom is 3, and the columns store the x,y,z forces on each atom. The\nper-atom values be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": " none\n", + "related": "[fix store_state ](https://docs.lammps.org/fix_store_state.html)\n" }, { "command": [ - "dump molfile" + "fix orient/fcc" ], "syntax": [ - "dump ID group-ID molfile N file format path" + "fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1", + "fix ID group-ID orient/bcc nstats dir alat dE cutlo cuthi file0 file1" ], "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -37397,49 +36583,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "molfile", + "arg": "orient/fcc", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "nstats", "type": 2, "choices": [] }, { - "arg": "file", + "arg": "dir", "type": 2, "choices": [] }, { - "arg": "format", + "arg": "alat", "type": 2, "choices": [] }, { - "arg": "path", + "arg": "dE", + "type": 2, + "choices": [] + }, + { + "arg": "cutlo", + "type": 2, + "choices": [] + }, + { + "arg": "cuthi", + "type": 2, + "choices": [] + }, + { + "arg": "file0", + "type": 2, + "choices": [] + }, + { + "arg": "file1", "type": 2, "choices": [] } - ] - ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* molfile = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write to\n* format = file format to be used\n* path = file path with plugins (optional) \n", - "examples": "\n```lmps\ndump mf1 all molfile 10 melt1.xml hoomd\ndump mf2 all molfile 10 melt2-*.pdb pdb .\ndump mf3 all molfile 50 melt3.xyz xyz .:/home/akohlmey/vmd/plugins/LINUX/molfile\n```\n", - "html_filename": "dump_molfile.html", - "short_description": "Dump a snapshot of atom coordinates and selected additional quantities\nto one or more files every N timesteps in one of several formats", - "description": "Dump a snapshot of atom coordinates and selected additional quantities\nto one or more files every N timesteps in one of several formats.\nOnly information for atoms in the specified group is dumped. This\nspecific dump style uses molfile plugins that are bundled with the\n[VMD](https://www.ks.uiuc.edu/Research/vmd) molecular visualization and\nanalysis program.\n\nUnless the filename contains a \\* character, the output will be written\nto one single file with the specified format. Otherwise there will be\none file per snapshot and the \\* will be replaced by the time step number\nwhen the snapshot is written.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on\n > timesteps when neighbor lists are rebuilt, the coordinates of an atom\n > written to a dump file may be slightly outside the simulation box. \n > \n\nThe molfile plugin API has a few restrictions that have to be honored\nby this dump style: the number of atoms must not change, the atoms\nmust be sorted, outside of the coordinates no change in atom properties\n(like type, mass, charge) will be recorded.\n\n----------\n\nThe *format* keyword determines what format is used to write out the\ndump. For this to work, LAMMPS must be able to find and load a\ncompatible molfile plugin that supports this format. Settings made via\nthe [dump_modify ](https://docs.lammps.org/dump_modify.html) command can alter per atom properties\nlike element names.\n\nThe *path* keyword determines which in directories. This is a \"path\"\nlike other search paths, i.e. it can contain multiple directories\nseparated by a colon (or semicolon on Windows). This keyword is\noptional and default to \".\", the current directory.\n\nThe *unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command allows\ncoordinates to be written \"unwrapped\" by the image flags for each atom.\nUnwrapped means that if the atom has passed through a periodic boundary\none or more times, the value is printed for what the coordinate would be\nif it had not been wrapped back into the periodic box. Note that these\ncoordinates may thus be far outside the box size stored with the\nsnapshot.\n\n----------\n\nDumps are performed on timesteps that are a multiple of N (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of N. This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which can\nbe useful if the dump command is invoked after a minimization ended on\nan arbitrary timestep. N can be changed between runs by using the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command. The [dump_modify every ](https://docs.lammps.org/dump_modify.html) command also allows a variable to be used to\ndetermine the sequence of timesteps on which dump files are written.\n\n----------\n", - "restrictions": "The *molfile* dump style is part of the MOLFILE package. It is\nonly enabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nMolfile plugins provide a consistent programming interface to read and\nwrite file formats commonly used in molecular simulations. The\nMOLFILE package only provides the interface code, not the plugins.\nThese can be obtained from a VMD installation which has to match the\nplatform that you are using to compile LAMMPS for. By adding plugins\nto VMD, support for new file formats can be added to LAMMPS (or VMD\nor other programs that use them) without having to re-compile the\napplication itself. The plugins are installed in the directory:\n/plugins//molfile\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >while the programming interface (API) to the plugins is backward\n > compatible, the binary interface (ABI) has been changing over time, so\n > it is necessary to compile this package with the plugin header files\n > from VMD that match the binary plugins. These header files in the\n > directory: /plugins/include For convenience, the package ships\n > with a set of header files that are compatible with VMD 1.9 and 1.9.1\n > (June 2012) \n > \n\n----------\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" -}, -{ - "command": [ - "fix eos/table/rx", - "fix eos/table/rx/kk" - ], - "syntax": [ - "fix ID group-ID eos/table/rx style file1 N keyword ..." - ], - "args": [ + ], [ { "arg": "fix", @@ -37457,49 +36645,66 @@ export const command_docs = [ "choices": [] }, { - "arg": "eos/table/rx", - "type": 3, - "choices": [ - "eos/table/rx", - "eos/table/rx/kk" - ] + "arg": "orient/bcc", + "type": 2, + "choices": [] }, { - "arg": "style", + "arg": "nstats", "type": 2, "choices": [] }, { - "arg": "file1", + "arg": "dir", "type": 2, "choices": [] }, { - "arg": "N", + "arg": "alat", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "dE", + "type": 2, + "choices": [] + }, + { + "arg": "cutlo", + "type": 2, + "choices": [] + }, + { + "arg": "cuthi", + "type": 2, + "choices": [] + }, + { + "arg": "file0", + "type": 2, + "choices": [] + }, + { + "arg": "file1", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* eos/table/rx = style name of this fix command\n* style = linear = method of interpolation\n* file1 = filename containing the tabulated equation of state\n* N = use N values in linear tables\n* keyword = name of table keyword corresponding to table file\n* file2 = filename containing the heats of formation of each species (optional)\n* deltaHf = heat of formation for a single species in energy units (optional)\n* energyCorr = energy correction in energy units (optional)\n* tempCorrCoeff = temperature correction coefficient (optional) \n", - "examples": "\n```lmps\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD thermo.table\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5\nfix 1 all eos/table/rx linear eos.table 10000 KEYWORD 1.5 0.025 0.0\n```\n", - "html_filename": "fix_eos_table_rx.html", - "short_description": "Fix *eos/table/rx* applies a tabulated mesoparticle equation\nof state to relate the concentration-dependent particle internal\nenergy (\\(u_i\\)) to the particle internal temperature (\\(\\theta_i\\))", - "description": "Fix *eos/table/rx* applies a tabulated mesoparticle equation\nof state to relate the concentration-dependent particle internal\nenergy (\\(u_i\\)) to the particle internal temperature (\\(\\theta_i\\)).\n\nThe concentration-dependent particle internal energy (\\(u_i\\)) is\ncomputed according to the following relation:\n\\[\n U_{i} = \\displaystyle\\sum_{j=1}^{m} c_{i,j}(u_{j} + \\Delta H_{f,j}) + \\frac{3k_{B}T}{2} + Nk_{B}T \\\\\\]\nwhere *m* is the number of species, \\(c_{i,j}\\) is the\nconcentration of species *j* in particle *i*, \\(u_j\\) is the\ninternal energy of species j, \\(\\Delta H_{f,j} is the heat of\nformation of species *j*, N is the number of molecules represented\nby the coarse-grained particle, :math:\\)k_B` is the Boltzmann constant,\nand \\(T\\) is the temperature of the system. Additionally, it is\npossible to modify the concentration-dependent particle internal\nenergy relation by adding an energy correction, temperature-dependent\ncorrection, and/or a molecule-dependent correction. An energy\ncorrection can be specified as a constant (in energy units). A\ntemperature correction can be specified by multiplying a temperature\ncorrection coefficient by the internal temperature. A molecular\ncorrection can be specified by by multiplying a molecule correction\ncoefficient by the average number of product gas particles in the\ncoarse-grain particle.\n\nFix *eos/table/rx* creates interpolation tables of length *N* from *m*\ninternal energy values of each species \\(u_j\\) listed in a file as a\nfunction of internal temperature. During a simulation, these tables\nare used to interpolate internal energy or temperature values as needed.\nThe interpolation is done with the *linear* style. For the *linear* style,\nthe internal temperature is used to find 2 surrounding table values from\nwhich an internal energy is computed by linear interpolation. A secant\nsolver is used to determine the internal temperature from the internal energy.\n\nThe first filename specifies a file containing tabulated internal\ntemperature and *m* internal energy values for each species \\(u_j\\).\nThe keyword specifies a section of the file. The format of this\nfile is described below.\n\nThe second filename specifies a file containing heat of formation\n\\(\\Delta H_{f,j}\\) for each species.\n\nIn cases where the coarse-grain particle represents a single molecular\nspecies (i.e., no reactions occur and fix *rx* is not present in the\ninput file), fix *eos/table/rx* can be applied in a similar manner to\nfix *eos/table* within a non-reactive DPD simulation. In this case,\nthe heat of formation filename is replaced with the heat of formation\nvalue for the single species. Additionally, the energy correction and\ntemperature correction coefficients may also be specified as fix\narguments.\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# EOS TABLE (one or more comment or blank lines)\n\nKEYWORD (keyword is first text on line)\nN 500 h2 no2 n2 ... no (N parameter species1 species2 ... speciesN)\n(blank)\n1 1.00 0.000 ... 0.0000 (index, internal temperature, internal energy of species 1, ..., internal energy of species m)\n2 1.02 0.001 ... 0.0002\n...\n500 10.0 0.500 ... 1.0000\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the fix command.\n\nThe next line lists the number of table entries and the species names\nthat correspond with all the species listed in the reaction equations\nthrough the *fix rx* command.\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Let Nfile = \"N\" in the tabulated file.\nWhat LAMMPS does is a preliminary interpolation by creating splines\nusing the Nfile tabulated values as nodal points.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe internal temperature (in temperature units), the third value until\nthe *m+3* value are the internal energies of the m species (in energy units).\n\nNote that all internal temperature and internal energy values must\nincrease from one line to the next.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\nThe format of a heat of formation file is as follows (without the\nparenthesized comments):\n\n```\n# HEAT OF FORMATION TABLE (one or more comment or blank lines)\n\n(blank)\nh2 0.00 (species name, heat of formation)\nno2 0.34\nn2 0.00\n...\nno 0.93\n```\nNote that the species can be listed in any order. The tag that is\nused as the species name must correspond with the tags used to define\nthe reactions with the [fix rx ](https://docs.lammps.org/fix_rx.html) command.\n\nAlternatively, corrections to the EOS can be included by specifying\nthree additional columns that correspond to the energy correction,\nthe temperature correction coefficient and molecule correction\ncoefficient. In this case, the format of the file is as follows:\n\n```\n# HEAT OF FORMATION TABLE (one or more comment or blank lines)\n\n(blank)\nh2 0.00 1.23 0.025 0.0 (species name, heat of formation, energy correction, temperature correction coefficient, molecule correction coefficient)\nno2 0.34 0.00 0.000 -1.76\nn2 0.00 0.00 0.000 -1.76\n...\nno 0.93 0.00 0.000 -1.76\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis command also requires use of the [atom_style dpd ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nThe equation of state must be a monotonically increasing function.\n\nAn error will occur if the internal temperature or internal energies\nare not within the table cutoffs.\n", - "related": "[fix rx ](https://docs.lammps.org/fix_rx.html),\n[pair dpd/fdt ](https://docs.lammps.org/pair_dpd_fdt.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nstats = print stats every this many steps, 0 = never\n* dir = 0/1 for which crystal is used as reference\n* alat = fcc/bcc cubic lattice constant (distance units)\n* dE = energy added to each atom (energy units)\n* cutlo,cuthi = values between 0.0 and 1.0, cutlo < cuthi\n* file0,file1 = files that specify orientation of each grain \n", + "examples": "\n```lmps\nfix gb all orient/fcc 0 1 4.032008 0.001 0.25 0.75 xi.vec chi.vec\nfix gb all orient/bcc 0 1 2.882 0.001 0.25 0.75 ngb.left ngb.right\n```\n", + "html_filename": "fix_orient.html", + "short_description": "The fix applies an orientation-dependent force to atoms near a planar\ngrain boundary which can be used to induce grain boundary migration\n(in the direction perpendicular to the grain boundary plane)", + "description": "The fix applies an orientation-dependent force to atoms near a planar\ngrain boundary which can be used to induce grain boundary migration\n(in the direction perpendicular to the grain boundary plane). The\nmotivation and explanation of this force and its application are\ndescribed in **Janssens**. The adaptation to bcc crystals\nis described in **Wicaksono1**. The computed force is only\napplied to atoms in the fix group.\n\nThe basic idea is that atoms in one grain (on one side of the\nboundary) have a potential energy dE added to them. Atoms in the\nother grain have 0.0 potential energy added. Atoms near the boundary\n(whose neighbor environment is intermediate between the two grain\norientations) have an energy between 0.0 and dE added. This creates\nan effective driving force to reduce the potential energy of atoms\nnear the boundary by pushing them towards one of the grain\norientations. For dir = 1 and dE > 0, the boundary will thus move so\nthat the grain described by file0 grows and the grain described by\nfile1 shrinks. Thus this fix is designed for simulations of two-grain\nsystems, either with one grain boundary and free surfaces parallel to\nthe boundary, or a system with periodic boundary conditions and two\nequal and opposite grain boundaries. In either case, the entire\nsystem can displace during the simulation, and such motion should be\naccounted for in measuring the grain boundary velocity.\n\nThe potential energy added to atom I is given by these formulas\n\\[\\begin{align*} \n \\xi_{i} = & \\sum_{j=1}^{12} \\left| \\mathbf{r}_{j} - \\mathbf{r}_{j}^{\\rm I} \\right| \\qquad\\qquad\\left(1\\right) \\\\\n \\\\\n \\xi_{\\rm IJ} = & \\sum_{j=1}^{12} \\left| \\mathbf{r}_{j}^{\\rm J} - \\mathbf{r}_{j}^{\\rm I} \\right| \\qquad\\qquad\\left(2\\right)\\\\\n \\\\\n \\xi_{\\rm low} = & {\\rm cutlo} \\, \\xi_{\\rm IJ} \\qquad\\qquad\\qquad\\left(3\\right)\\\\\n \\xi_{\\rm high} = & {\\rm cuthi} \\, \\xi_{\\rm IJ} \\qquad\\qquad\\qquad\\left(4\\right) \\\\\n \\\\\n \\omega_{i} = & \\frac{\\pi}{2} \\frac{\\xi_{i} - \\xi_{\\rm low}}{\\xi_{\\rm high} - \\xi_{\\rm low}} \\qquad\\qquad\\left(5\\right)\\\\\n \\\\\n u_{i} = & 0 \\quad\\quad\\qquad\\qquad\\qquad \\textrm{ for } \\qquad \\xi_{i} < \\xi_{\\rm low}\\\\\n = & {\\rm dE}\\,\\frac{1 - \\cos(2 \\omega_{i})}{2}\n \\qquad \\mathrm{ for }\\qquad \\xi_{\\rm low} < \\xi_{i} < \\xi_{\\rm high} \\quad \\left(6\\right) \\\\\n = & {\\rm dE} \\quad\\qquad\\qquad\\qquad\\textrm{ for } \\qquad \\xi_{\\rm high} < \\xi_{i} \\end{align*} \\]\nwhich are fully explained in **Janssens**. For fcc crystals\nthis order parameter Xi for atom I in equation (1) is a sum over the\n12 nearest neighbors of atom I. For bcc crystals it is the\ncorresponding sum of the 8 nearest neighbors. Rj is the vector from\natom I to its neighbor J, and RIj is a vector in the reference\n(perfect) crystal. That is, if dir = 0/1, then RIj is a vector to an\natom coord from file 0/1. Equation (2) gives the expected value of\nthe order parameter XiIJ in the other grain. Hi and lo cutoffs are\ndefined in equations (3) and (4), using the input parameters *cutlo*\nand *cuthi* as thresholds to avoid adding grain boundary energy when\nthe deviation in the order parameter from 0 or 1 is small (e.g. due to\nthermal fluctuations in a perfect crystal). The added potential\nenergy Ui for atom I is given in equation (6) where it is interpolated\nbetween 0 and dE using the two threshold Xi values and the Wi value of\nequation (5).\n\nThe derivative of this energy expression gives the force on each atom\nwhich thus depends on the orientation of its neighbors relative to the\n2 grain orientations. Only atoms near the grain boundary feel a net\nforce which tends to drive them to one of the two grain orientations.\n\nIn equation (1), the reference vector used for each neighbor is the\nreference vector closest to the actual neighbor position. This means\nit is possible two different neighbors will use the same reference\nvector. In such cases, the atom in question is far from a perfect\norientation and will likely receive the full dE addition, so the\neffect of duplicate reference vector usage is small.\n\nThe *dir* parameter determines which grain wants to grow at the\nexpense of the other. A value of 0 means the first grain will shrink;\na value of 1 means it will grow. This assumes that *dE* is positive.\nThe reverse will be true if *dE* is negative.\n\nThe *alat* parameter is the cubic lattice constant for the fcc or bcc\nmaterial and is only used to compute a cutoff distance of 1.57 \\* alat\n/ sqrt(2) for finding the 12 or 8 nearest neighbors of each atom\n(which should be valid for an fcc or bcc crystal). A longer/shorter\ncutoff can be imposed by adjusting *alat* . If a particular atom has\nless than 12 or 8 neighbors within the cutoff, the order parameter of\nequation (1) is effectively multiplied by 12 or 8 divided by the\nactual number of neighbors within the cutoff.\n\nThe *dE* parameter is the maximum amount of additional energy added to\neach atom in the grain which wants to shrink.\n\nThe *cutlo* and *cuthi* parameters are used to reduce the force added\nto bulk atoms in each grain far away from the boundary. An atom in\nthe bulk surrounded by neighbors at the ideal grain orientation would\ncompute an order parameter of 0 or 1 and have no force added.\nHowever, thermal vibrations in the solid will cause the order\nparameters to be greater than 0 or less than 1. The cutoff parameters\nmask this effect, allowing forces to only be added to atoms with\norder-parameters between the cutoff values.\n\n*File0* and *file1* are filenames for the two grains which each\ncontain 6 vectors (6 lines with 3 values per line) which specify the\ngrain orientations. Each vector is a displacement from a central atom\n(0,0,0) to a nearest neighbor atom in an fcc lattice at the proper\norientation. The vector lengths should all be identical since an fcc\nlattice has a coordination number of 12. Only 6 are listed due to\nsymmetry, so the list must include one from each pair of\nequal-and-opposite neighbors. A pair of orientation files for a\nSigma=5 tilt boundary are shown below. A tutorial that can help for\nwriting the orientation files is given in **Wicaksono2**\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of atom interactions with the\ngrain boundary driving force to the global potential energy of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault setting for this fix is [fix_modify energy no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by\nthese fixes. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator a fix is adding its forces. Default is the\noutermost level.\n\nThis fix calculates a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy change due to this fix. The scalar value calculated by this\nfix is \"extensive\".\n\nThis fix also calculates a per-atom array which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The array stores the\norder parameter Xi and normalized order parameter (0 to 1) for each\natom. The per-atom values can be accessed on any timestep.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Janssens)** Janssens, Olmsted, Holm, Foiles, Plimpton, Derlet, Nature\nMaterials, 5, 124-127 (2006). \n \n**(Wicaksono1)** Wicaksono, Sinclair, Militzer, Computational Materials\nScience, 117, 397-405 (2016). \n \n**(Wicaksono2)** Wicaksono, figshare,\nhttps://doi.org/10.6084/m9.figshare.1488628.v1 (2015). \n ", + "restrictions": "These fixes are part of the ORIENT package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes should only be used with fcc or bcc lattices.\n", + "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "compute entropy/atom" + "compute slcsa/atom" ], "syntax": [ - "compute ID group-ID entropy/atom sigma cutoff keyword value ..." + "compute ID group-ID slcsa/atom twojmax nclasses db_mean_descriptor_file lda_file lr_decision_file lr_bias_file maha_file value" ], "args": [ [ @@ -37519,22 +36724,42 @@ export const command_docs = [ "choices": [] }, { - "arg": "entropy/atom", + "arg": "slcsa/atom", "type": 1, "choices": [] }, { - "arg": "sigma", + "arg": "twojmax", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "nclasses", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "db_mean_descriptor_file", + "type": 2, + "choices": [] + }, + { + "arg": "lda_file", + "type": 2, + "choices": [] + }, + { + "arg": "lr_decision_file", + "type": 2, + "choices": [] + }, + { + "arg": "lr_bias_file", + "type": 2, + "choices": [] + }, + { + "arg": "maha_file", "type": 2, "choices": [] }, @@ -37545,20 +36770,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* entropy/atom = style name of this compute command\n* sigma = width of Gaussians used in the \\(g(r)\\) smoothing\n* cutoff = cutoff for the \\(g(r)\\) calculation\n* one or more keyword/value pairs may be appended \n *    keyword = avg or local \n     avg args = neigh cutoff2 \n     neigh value = yes or no = whether to average the pair entropy over neighbors \n     cutoff2 = cutoff for the averaging over neighbors \n     local arg = yes or no = use the local density around each atom to normalize the g(r) \n", - "examples": "\n```lmps\ncompute 1 all entropy/atom 0.25 5.\ncompute 1 all entropy/atom 0.25 5. avg yes 5.\ncompute 1 all entropy/atom 0.125 7.3 avg yes 5.1 local yes\n```\n", - "html_filename": "compute_entropy_atom.html", - "short_description": "Define a computation that calculates the pair entropy fingerprint for\neach atom in the group", - "description": "Define a computation that calculates the pair entropy fingerprint for\neach atom in the group. The fingerprint is useful to distinguish between\nordered and disordered environments, for instance liquid and solid-like\nenvironments, or glassy and crystalline-like environments. Some\napplications could be the identification of grain boundaries, a\nmelt-solid interface, or a solid cluster emerging from the melt.\nThe advantage of this parameter over others is that no a priori\ninformation about the solid structure is required.\n\nThis parameter for atom i is computed using the following formula from\n**Piaggi** and **Nettleton** ,\n\\[\n s_S^i=-2\\pi\\rho k_B \\int\\limits_0^{r_m} \\left [ g(r) \\ln g(r) - g(r) + 1 \\right ] r^2 dr\\]\nwhere \\(r\\) is a distance, \\(g(r)\\) is the radial distribution function\nof atom \\(i\\), and \\(\\rho\\) is the density of the system.\nThe \\(g(r)\\) computed for each atom \\(i\\) can be noisy and therefore it\nis smoothed using\n\\[\n g_m^i(r) = \\frac{1}{4 \\pi \\rho r^2} \\sum\\limits_{j} \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} e^{-(r-r_{ij})^2/(2\\sigma^2)}\\]\nwhere the sum over \\(j\\) goes through the neighbors of atom \\(i\\) and\n\\(\\sigma\\) is a parameter to control the smoothing.\n\nThe input parameters are *sigma* the smoothing parameter \\(\\sigma\\),\nand the *cutoff* for the calculation of \\(g(r)\\).\n\nIf the keyword *avg* has the setting *yes*, then this compute also\naverages the parameter over the neighbors of atom \\(i\\) according to\n\\[\n \\left< s_S^i \\right> = \\frac{\\sum_j s_S^j + s_S^i}{N + 1},\\]\nwhere the sum over \\(j\\) goes over the neighbors of atom \\(i\\) and\n\\(N\\) is the number of neighbors. This procedure provides a sharper\ndistinction between order and disorder environments. In this case the input\nparameter *cutoff2* is the cutoff for the averaging over the neighbors and\nmust also be specified.\n\nIf the *avg yes* option is used, the effective cutoff of the neighbor\nlist should be *cutoff* +\\ *cutoff2* and therefore it might be necessary\nto increase the skin of the neighbor list with:\n\n```\nneighbor bin\n```\nSee [neighbor ](https://docs.lammps.org/neighbor.html) for details.\n\nIf the *local yes* option is used, the \\(g(r)\\) is normalized by the\nlocal density around each atom, that is to say the density around each\natom is the number of neighbors within the neighbor list cutoff divided\nby the corresponding volume. This option can be useful when dealing with\ninhomogeneous systems such as those that have surfaces.\n\nHere are typical input parameters for fcc aluminum (lattice\nconstant \\(4.05~\\mathring{\\textrm{A}}\\)),\n\n```\ncompute 1 all entropy/atom 0.25 5.7 avg yes 3.7\n```\nand for bcc sodium (lattice constant \\(4.23~\\mathring{\\textrm{A}}\\)),\n\n```\ncompute 1 all entropy/atom 0.25 7.3 avg yes 5.1\n```\n #### Output info\n\nBy default, this compute calculates the pair entropy value for each\natom as a per-atom vector, which can be accessed by any command that\nuses per-atom values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe pair entropy values have units of the Boltzmann constant. They are\nalways negative, and lower values (lower entropy) correspond to more\nordered environments.\n\n**(Piaggi)** Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017). \n \n**(Nettleton)** Nettleton and Green, J Chem Phys, 29, 6 (1958). \n ", - "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n[compute centro/atom ](https://docs.lammps.org/compute_centro_atom.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* slcsa/atom = style name of this compute command\n* twojmax = band limit for bispectrum components (non-negative integer)\n* nclasses = number of crystal structures used in the database for the classifier SL-CSA\n* db_mean_descriptor_file = file name of file containing the database mean descriptor\n* lda_file = file name of file containing the linear discriminant analysis matrix for dimension reduction\n* lr_decision_file = file name of file containing the scaling matrix for logistic regression classification\n* lr_bias_file = file name of file containing the bias vector for logistic regression classification\n* maha_file = file name of file containing for each crystal structure: the Mahalanobis distance threshold for sanity check purposes, the average reduced descriptor and the inverse of the corresponding covariance matrix\n* c_ID[*] = compute ID of previously required *compute sna/atom* command \n", + "examples": "\n```lmps\ncompute b1 all sna/atom 9.0 0.99363 8 0.5 1.0 rmin0 0.0 nnn 24 wmode 1 delta 0.3\ncompute b2 all slcsa/atom 8 4 mean_descriptors.dat lda_scalings.dat lr_decision.dat lr_bias.dat maha_thresholds.dat c_b1[*]\n```\n", + "html_filename": "compute_slcsa_atom.html", + "short_description": "\nDefine a computation that performs the Supervised Learning Crystal\nStructure Analysis (SL-CSA) from **Lafourcade2023_1**\nfor each atom in the group", + "description": "\nDefine a computation that performs the Supervised Learning Crystal\nStructure Analysis (SL-CSA) from **Lafourcade2023_1**\nfor each atom in the group. The SL-CSA tool takes as an input a per-atom\ndescriptor (bispectrum) that is computed through the *compute sna/atom*\ncommand and then proceeds to a dimension reduction step followed by a\nlogistic regression in order to assign a probable crystal structure to\neach atom in the group. The SL-CSA tool is pre-trained on a database\ncontaining \\(C\\) distinct crystal structures from which a crystal\nstructure classifier is derived and a tutorial to build such a tool is\navailable at [SL-CSA](https://github.com/lafourcadep/SL-CSA).\n\nThe first step of the SL-CSA tool consists in performing a dimension\nreduction of the per-atom descriptor \\(\\mathbf{B}^i \\in\n\\mathbb{R}^{D}\\) through the Linear Discriminant Analysis (LDA) method,\nleading to a new projected descriptor\n\\(\\mathbf{x}^i=\\mathrm{P}_\\mathrm{LDA}(\\mathbf{B}^i):\\mathbb{R}^D\n\\rightarrow \\mathbb{R}^{d=C-1}\\):\n\\[\n \\mathbf{x}^i = \\mathbf{C}^T_\\mathrm{LDA} \\cdot (\\mathbf{B}^i - \\mu^\\mathbf{B}_\\mathrm{db})\\]\nwhere \\(\\mathbf{C}^T_\\mathrm{LDA} \\in \\mathbb{R}^{D \\times d}\\) is\nthe reduction coefficients matrix of the LDA model read in file\n*lda_file*, \\(\\mathbf{B}^i \\in \\mathbb{R}^{D}\\) is the bispectrum of\natom \\(i\\) and \\(\\mu^\\mathbf{B}_\\mathrm{db} \\in \\mathbb{R}^{D}\\)\nis the average descriptor of the entire database. The latter is computed\nfrom the average descriptors of each crystal structure read from the\nfile *mean_descriptors_file*.\n\nThe new projected descriptor with dimension \\(d=C-1\\) allows for a\ngood separation of different crystal structures fingerprints in the\nlatent space.\n\nOnce the dimension reduction step is performed by means of LDA, the new\ndescriptor \\(\\mathbf{x}^i \\in \\mathbb{R}^{d=C-1}\\) is taken as an\ninput for performing a multinomial logistic regression (LR) which\nprovides a score vector\n\\(\\mathbf{s}^i=\\mathrm{P}_\\mathrm{LR}(\\mathbf{x}^i):\\mathbb{R}^d\n\\rightarrow \\mathbb{R}^C\\) defined as:\n\\[\n \\mathbf{s}^i = \\mathbf{b}_\\mathrm{LR} + \\mathbf{D}_\\mathrm{LR} \\cdot {\\mathbf{x}^i}^T\\]\nwith \\(\\mathbf{b}_\\mathrm{LR} \\in \\mathbb{R}^C\\) and\n\\(\\mathbf{D}_\\mathrm{LR} \\in \\mathbb{R}^{C \\times d}\\) the bias\nvector and decision matrix of the LR model after training both read in\nfiles *lr_fil1* and *lr_file2* respectively.\n\nFinally, a probability vector\n\\(\\mathbf{p}^i=\\mathrm{P}_\\mathrm{LR}(\\mathbf{x}^i):\\mathbb{R}^d\n\\rightarrow \\mathbb{R}^C\\) is defined as:\n\\[\n \\mathbf{p}^i = \\frac{\\mathrm{exp}(\\mathbf{s}^i)}{\\sum\\limits_{j} \\mathrm{exp}(s^i_j) }\\]\nfrom which the crystal structure assigned to each atom with descriptor\n\\(\\mathbf{B}^i\\) and projected descriptor \\(\\mathbf{x}^i\\) is\ncomputed as the *argmax* of the probability vector\n\\(\\mathbf{p}^i\\). Since the logistic regression step systematically\nattributes a crystal structure to each atom, a sanity check is needed to\navoid misclassification. To this end, a per-atom Mahalanobis distance to\neach crystal structure *CS* present in the database is computed:\n\\[\n d_\\mathrm{Mahalanobis}^{i \\rightarrow \\mathrm{CS}} = \\sqrt{(\\mathbf{x}^i - \\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS})^\\mathrm{T} \\cdot \\mathbf{\\Sigma}^{-1}_\\mathrm{CS} \\cdot (\\mathbf{x}^i - \\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS}) }\\]\nwhere \\(\\mathbf{\\mu}^\\mathbf{x}_\\mathrm{CS} \\in \\mathbb{R}^{d}\\) is\nthe average projected descriptor of crystal structure *CS* in the\ndatabase and where \\(\\mathbf{\\Sigma}_\\mathrm{CS} \\in \\mathbb{R}^{d\n\\times d}\\) is the corresponding covariance matrix. Finally, if the\nMahalanobis distance to crystal structure *CS* for atom *i* is greater\nthan the pre-determined threshold, no crystal structure is assigned to\natom *i*. The Mahalanobis distance thresholds are read in file\n*maha_file* while the covariance matrices are read in file\n*covmat_file*.\n\nThe [SL-CSA](https://github.com/lafourcadep/SL-CSA) framework provides\nan automatic computation of the different matrices and thresholds\nrequired for a proper classification and writes down all the required\nfiles for calling the *compute slcsa/atom* command.\n\nThe *compute slcsa/atom* command requires that the [computesna/atom ](https://docs.lammps.org/compute_sna_atom.html) command is called before as it takes the\nresulting per-atom bispectrum as an input. In addition, it is crucial\nthat the value *twojmax* is set to the same value of the value *twojmax*\nused in the *compute sna/atom* command, as well as that the value\n*nclasses* is set to the number of crystal structures used in the\ndatabase to train the SL-CSA tool.\n\n #### Output info\n\nBy default, this compute computes the Mahalanobis distances to the\ndifferent crystal structures present in the database in addition to\nassigning a crystal structure for each atom as a per-atom vector, which\ncan be accessed by any command that uses per-atom values from a compute\nas input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\n**(Lafourcade2023_1)** Lafourcade, Maillet, Denoual, Duval, Allera, Goryaeva, and Marinica,\n[Comp. Mat. Science, 230, 112534 (2023)](https://doi.org/10.1016/j.commatsci.2023.112534) \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[compute sna/atom ](https://docs.lammps.org/compute_sna_atom.html)\n" }, { "command": [ - "compute temp/drude" + "compute smd/tlsph/dt" ], "syntax": [ - "compute ID group-ID temp/drude" + "compute ID group-ID smd/tlsph/dt" ], "args": [ [ @@ -37578,60 +36803,56 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/drude", + "arg": "smd/tlsph/dt", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/drude = style name of this compute command \n", - "examples": "\n```lmps\ncompute TDRUDE all temp/drude\n```\nExample input scripts available: :file:`examples/PACKAGES/drude`.\n", - "html_filename": "compute_temp_drude.html", - "short_description": "Define a computation that calculates the temperatures of core--Drude\npairs", - "description": "Define a computation that calculates the temperatures of core--Drude\npairs. This compute is designed to be used with the\n[thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html).\nPolarizable models in LAMMPS\nare described on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nDrude oscillators consist of a core particle and a Drude particle\nconnected by a harmonic bond, and the relative motion of these Drude\noscillators is usually maintained cold by a specific thermostat that\nacts on the relative motion of the core--Drude particle\npairs. Therefore, because LAMMPS considers Drude particles as normal\natoms in its default temperature compute ([compute temp ](https://docs.lammps.org/compute_temp.html)\ncommand), the reduced temperature of the core--Drude particle pairs is not\ncalculated correctly.\n\nBy contrast, this compute calculates the temperature of the cores\nusing center-of-mass velocities of the core--Drude pairs, and the\nreduced temperature of the Drude particles using the relative\nvelocities of the Drude particles with respect to their cores.\nNon-polarizable atoms are considered as cores. Their velocities\ncontribute to the temperature of the cores.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6, which can be accessed by indices 1--6, whose components\nare\n\n1. temperature of the centers of mass (temperature units)\n2. temperature of the dipoles (temperature units)\n3. number of degrees of freedom of the centers of mass\n4. number of degrees of freedom of the dipoles\n5. kinetic energy of the centers of mass (energy units)\n6. kinetic energy of the dipoles (energy units)\n\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nBoth the scalar value and the first two values of the vector\ncalculated by this compute are \"intensive\". The other four vector values\nare \"extensive\".\n", - "restrictions": "The number of degrees of freedom contributing to the temperature is\nassumed to be constant for the duration of the run unless the\n[fix_modify command ](https://docs.lammps.org/fix_modify.html) sets the option *dynamic/dof\nyes*\\ .\n", - "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html), [compute temp ](https://docs.lammps.org/compute_temp.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/dt = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/tlsph/dt\n```\n", + "html_filename": "compute_smd_tlsph_dt.html", + "short_description": "Define a computation that outputs the CFL-stable time increment per\nparticle", + "description": "Define a computation that outputs the CFL-stable time increment per\nparticle. This time increment is essentially given by the speed of\nsound, divided by the SPH smoothing length. Because both the speed of\nsound and the smoothing length typically change during the course of a\nsimulation, the stable time increment needs to be re-computed every\ntime step. This calculation is performed automatically in the\nrelevant SPH pair styles and this compute only serves to make the\nstable time increment accessible for output purposes.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given in [units ](https://docs.lammps.org/units.html) of time.\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute can only be used for particles interacting with the\nTotal-Lagrangian SPH pair style.\n", + "related": "[smd/adjust/dt ](https://docs.lammps.org/fix_smd_adjust_dt.html)\n" }, { "command": [ - "pair_style spin/neel" + "angle_style gaussian" ], "syntax": [ - "pair_style spin/neel cutoff" + "angle_style gaussian" ], "args": [ [ { - "arg": "pair_style", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "spin/neel", + "arg": "gaussian", "type": 1, "choices": [] - }, - { - "arg": "cutoff", - "type": 2, - "choices": [] } ] ], - "parameters": "* cutoff = global cutoff pair (distance in metal units) \n", - "examples": "\n```lmps\npair_style spin/neel 4.0\npair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652\npair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0\n```\n", - "html_filename": "pair_spin_neel.html", - "short_description": "Style *spin/neel* computes the Neel pair anisotropy model\nbetween pairs of magnetic spins:\n\\[\n \\mathcal{H}_{N\\acute{e}el}=-\\sum_{{ i,j=1,i\\neq j}}^N g_1(r_{ij})\\left(({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})({\\mathbf{e}}_{ij}\n \\cdot {\\mathbf{s}}_{j})-\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n +q_1(r_{ij})\\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3}\\right)\n \\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n + q_2(r_{ij}) \\Big( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{j})^3 + ({\\mathbf{e}}_{ij}\\cdot\n {\\mathbf{s}}_{j}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^3\\Big)\\]\nwhere \\(\\mathbf{s}_i\\) and \\(\\mathbf{s}_j\\) are two neighboring magnetic spins of two particles,\n\\(r_{ij} = \\vert \\mathbf{r}_i - \\mathbf{r}_j \\vert\\) is the inter-atomic distance between the two particles,\n\\(\\mathbf{e}_{ij} = \\frac{\\mathbf{r}_i - \\mathbf{r}_j}{\\vert \\mathbf{r}_i - \\mathbf{r}_j\\vert}\\) is their normalized separation vector and \\(g_1\\),\n\\(q_1\\) and \\(q_2\\) are three functions defining the intensity of the dipolar\nand quadrupolar contributions, with:\n\\[\\begin{align*} \n g_1(r_{ij}) &= g(r_{ij}) + \\frac{12}{35} q(r_{ij}) \\\\\n q_1(r_{ij}) &= \\frac{9}{5} q(r_{ij}) \\\\\n q_2(r_{ij}) &= - \\frac{2}{5} q(r_{ij}) \\end{align*} \\]\nWith the functions \\(g(r_{ij})\\) and \\(q(r_{ij})\\) defined and fitted according to\nthe same Bethe-Slater function used to fit the exchange interaction:\n\\[\n {J}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2 \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right) e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients defined in the\nassociated \"pair_coeff\" command", - "description": "Style *spin/neel* computes the Neel pair anisotropy model\nbetween pairs of magnetic spins:\n\\[\n \\mathcal{H}_{N\\acute{e}el}=-\\sum_{{ i,j=1,i\\neq j}}^N g_1(r_{ij})\\left(({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})({\\mathbf{e}}_{ij}\n \\cdot {\\mathbf{s}}_{j})-\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n +q_1(r_{ij})\\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3}\\right)\n \\left( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^2 -\\frac{{\\mathbf{s}}_{i}\\cdot{\\mathbf{s}}_{j}}{3} \\right)\n + q_2(r_{ij}) \\Big( ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{j})^3 + ({\\mathbf{e}}_{ij}\\cdot\n {\\mathbf{s}}_{j}) ({\\mathbf{e}}_{ij}\\cdot {\\mathbf{s}}_{i})^3\\Big)\\]\nwhere \\(\\mathbf{s}_i\\) and \\(\\mathbf{s}_j\\) are two neighboring magnetic spins of two particles,\n\\(r_{ij} = \\vert \\mathbf{r}_i - \\mathbf{r}_j \\vert\\) is the inter-atomic distance between the two particles,\n\\(\\mathbf{e}_{ij} = \\frac{\\mathbf{r}_i - \\mathbf{r}_j}{\\vert \\mathbf{r}_i - \\mathbf{r}_j\\vert}\\) is their normalized separation vector and \\(g_1\\),\n\\(q_1\\) and \\(q_2\\) are three functions defining the intensity of the dipolar\nand quadrupolar contributions, with:\n\\[\\begin{align*} \n g_1(r_{ij}) &= g(r_{ij}) + \\frac{12}{35} q(r_{ij}) \\\\\n q_1(r_{ij}) &= \\frac{9}{5} q(r_{ij}) \\\\\n q_2(r_{ij}) &= - \\frac{2}{5} q(r_{ij}) \\end{align*} \\]\nWith the functions \\(g(r_{ij})\\) and \\(q(r_{ij})\\) defined and fitted according to\nthe same Bethe-Slater function used to fit the exchange interaction:\n\\[\n {J}\\left( r_{ij} \\right) = 4 a \\left( \\frac{r_{ij}}{d} \\right)^2 \\left( 1 - b \\left( \\frac{r_{ij}}{d} \\right)^2 \\right) e^{-\\left( \\frac{r_{ij}}{d} \\right)^2 }\\Theta (R_c - r_{ij})\\]\nwhere \\(a\\), \\(b\\) and \\(d\\) are the three constant coefficients defined in the\nassociated \"pair_coeff\" command.\n\nThe coefficients \\(a\\), \\(b\\), and \\(d\\) need to be fitted so that the function\nabove matches with the values of the magneto-elastic constant of the\nmaterials at stake.\n\nExamples and more explanations about this function and its\nparameterization are reported in **Tranchida6**. More\nexamples of parameterization will be provided in future work.\n\nFrom this DM interaction, each spin \\(i\\) will be submitted to a magnetic\ntorque \\(\\mathbf{\\omega}\\) and its associated atom to a force \\(\\mathbf{F}\\) (for spin-lattice\ncalculations only).\n\nMore details about the derivation of these torques/forces are reported\nin **Tranchida6**.\n\n----------\n\n**(Tranchida6)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", - "restrictions": "All the *pair/spin* styles are part of the SPIN package. These styles\nare only enabled if LAMMPS was built with this package, and if the\natom_style \"spin\" was declared. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_eam ](https://docs.lammps.org/pair_eam.html),\n" + "parameters": "", + "examples": "\n```lmps\nangle_style gaussian\nangle_coeff 1 300.0 2 0.0128 0.375 80.0 0.0730 0.148 123.0\n```\n", + "html_filename": "angle_gaussian.html", + "short_description": "The *gaussian* angle style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(\\theta-\\theta_{i})^2}{w_i^2}\\right) \\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano1**", + "description": "The *gaussian* angle style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(\\theta-\\theta_{i})^2}{w_i^2}\\right) \\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano1**.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(T\\) temperature at which the potential was derived\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (> 0, radians)\n* \\(w_1\\) (> 0, radians)\n* \\(\\theta_1\\) (degrees)\n* ...\n* \\(A_n\\) (> 0, radians)\n* \\(w_n\\) (> 0, radians)\n* \\(\\theta_n\\) (degrees)\n\n**(Milano1)** G. Milano, S. Goudeau, F. Mueller-Plathe, J. Polym. Sci. B Polym. Phys. 43, 871 (2005). \n ", + "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" }, { "command": [ - "compute voronoi/atom" + "compute composition/atom", + "compute composition/atom/kk" ], "syntax": [ - "compute ID group-ID voronoi/atom keyword arg ..." + "compute ID group-ID composition/atom keyword values ..." ], "args": [ [ @@ -37651,45 +36872,39 @@ export const command_docs = [ "choices": [] }, { - "arg": "voronoi/atom", - "type": 1, - "choices": [] - }, - { - "arg": "neighbors", + "arg": "composition/atom", "type": 3, "choices": [ - "only_group", - "occupation", - "surface", - "radius", - "edge_histo", - "edge_threshold", - "face_threshold", - "neighbors" + "composition/atom", + "composition/atom/kk" ] }, { - "arg": "arg", + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* voronoi/atom = style name of this compute command\n* zero or more keyword/value pairs may be appended\n* keyword = only_group or occupation or surface or radius or edge_histo or edge_threshold or face_threshold or neighbors \n *        only_group = no arg \n *        occupation = no arg \n *        surface arg = sgroup-ID \n         sgroup-ID = compute the dividing surface between group-ID and sgroup-ID \n         this keyword adds a third column to the compute output \n *        radius arg = v_r \n         v_r = radius atom style variable for a poly-disperse Voronoi tessellation \n *        edge_histo arg = maxedge \n         maxedge = maximum number of Voronoi cell edges to be accounted in the histogram \n *        edge_threshold arg = minlength \n         minlength = minimum length for an edge to be counted \n *        face_threshold arg = minarea \n         minarea = minimum area for a face to be counted \n *        neighbors value = yes or no = store list of all neighbors or no \n", - "examples": "\n```lmps\ncompute 1 all voronoi/atom\ncompute 2 precipitate voronoi/atom surface matrix\ncompute 3b precipitate voronoi/atom radius v_r\ncompute 4 solute voronoi/atom only_group\ncompute 5 defects voronoi/atom occupation\ncompute 6 all voronoi/atom neighbors yes\n```\n", - "html_filename": "compute_voronoi_atom.html", - "short_description": "Define a computation that calculates the Voronoi tessellation of the\natoms in the simulation box", - "description": "Define a computation that calculates the Voronoi tessellation of the\natoms in the simulation box. The tessellation is calculated using all\natoms in the simulation, but non-zero values are only stored for atoms\nin the group.\n\nTwo per-atom quantities are calculated by this compute. The first is\nthe volume of the Voronoi cell around each atom. Any point in an\natom's Voronoi cell is closer to that atom than any other. The second\nis the number of faces of the Voronoi cell. This is equal to the\nnumber of nearest neighbors of the central atom, plus any exterior\nfaces (see note below).\n\n----------\n\nIf the *only_group* keyword is specified the tessellation is performed\nonly with respect to the atoms contained in the compute group. This is\nequivalent to deleting all atoms not contained in the group prior to\nevaluating the tessellation.\n\nIf the *surface* keyword is specified a third quantity per atom is\ncomputed: the Voronoi cell surface of the given atom. *surface* takes\na group ID as an argument. If a group other than *all* is specified,\nonly the Voronoi cell facets facing a neighbor atom from the specified\ngroup are counted towards the surface area.\n\nIn the example above, a precipitate embedded in a matrix, only atoms\nat the surface of the precipitate will have non-zero surface area, and\nonly the outward facing facets of the Voronoi cells are counted (the\nhull of the precipitate). The total surface area of the precipitate\ncan be obtained by running a \"reduce sum\" compute on c_2[3].\n\nIf the *radius* keyword is specified with an atom style variable as\nthe argument, a poly-disperse Voronoi tessellation is\nperformed. Examples for radius variables are\n\n```lmps\nvariable r1 atom (type==1)*0.1+(type==2)*0.4\ncompute radius all property/atom radius\nvariable r2 atom c_radius\n```\nHere v_r1 specifies a per-type radius of 0.1 units for type 1 atoms\nand 0.4 units for type 2 atoms, and v_r2 accesses the radius property\npresent in atom_style sphere for granular models.\n\nThe *edge_histo* keyword activates the compilation of a histogram of\nnumber of edges on the faces of the Voronoi cells in the compute\ngroup. The argument *maxedge* of the this keyword is the largest\nnumber of edges on a single Voronoi cell face expected to occur in the\nsample. This keyword generates output of a global vector by this\ncompute with *maxedge* +1 entries. The last entry in the vector\ncontains the number of faces with more than *maxedge* edges. Since the\npolygon with the smallest amount of edges is a triangle, entries 1 and\n2 of the vector will always be zero.\n\nThe *edge_threshold* and *face_threshold* keywords allow the\nsuppression of edges below a given minimum length and faces below a\ngiven minimum area. Ultra short edges and ultra small faces can occur\nas artifacts of the Voronoi tessellation. These keywords will affect\nthe neighbor count and edge histogram outputs.\n\nIf the *occupation* keyword is specified the tessellation is only\nperformed for the first invocation of the compute and then stored.\nFor all following invocations of the compute the number of atoms in\neach Voronoi cell in the stored tessellation is counted. In this mode\nthe compute returns a per-atom array with 2 columns. The first column\nis the number of atoms currently in the Voronoi volume defined by this\natom at the time of the first invocation of the compute (note that the\natom may have moved significantly). The second column contains the\ntotal number of atoms sharing the Voronoi cell of the stored\ntessellation at the location of the current atom. Numbers in column\none can be any positive integer including zero, while column two\nvalues will always be greater than zero. Column one data can be used\nto locate vacancies (the coordinates are given by the atom coordinates\nat the time step when the compute was first invoked), while column two\ndata can be used to identify interstitial atoms.\n\nIf the *neighbors* value is set to yes, then this compute also creates\na local array with 3 columns. There is one row for each face of each\nVoronoi cell. The 3 columns are the atom ID of the atom that owns the\ncell, the atom ID of the atom in the neighboring cell (or zero if the\nface is external), and the area of the face. The array can be\naccessed by any command that uses local values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options. More specifically, the array can be\naccessed by a [dump local ](https://docs.lammps.org/dump.html) command to write a file\ncontaining all the Voronoi neighbors in a system:\n\n```lmps\ncompute 6 all voronoi/atom neighbors yes\ndump d2 all local 1 dump.neighbors index c_6[1] c_6[2] c_6[3]\n```\nIf the *face_threshold* keyword is used, then only faces with areas\ngreater than the threshold are stored.\n\n----------\n\nThe Voronoi calculation is performed by the freely available\n[Voro++ package ](https://math.lbl.gov/voro++/), written by Chris Rycroft at UC Berkeley and LBL,\nwhich must be installed on your system when building LAMMPS for use\nwith this compute. See instructions on obtaining and installing the\nVoro++ software in the src/VORONOI/README file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The calculation of Voronoi volumes is performed by each processor\n > for the atoms it owns, and includes the effect of ghost atoms\n > stored by the processor. This assumes that the Voronoi cells of\n > owned atoms are not affected by atoms beyond the ghost atom cut-off\n > distance. This is usually a good assumption for liquid and solid\n > systems, but may lead to underestimation of Voronoi volumes in low\n > density systems. By default, the set of ghost atoms stored by each\n > processor is determined by the cutoff used for [pair_style > ](https://docs.lammps.org/pair_style.html) interactions. The cutoff can be set explicitly via\n > the [comm_modify cutoff ](https://docs.lammps.org/comm_modify.html) command. The Voronoi\n > cells for atoms adjacent to empty regions will extend into those\n > regions up to the communication cutoff in \\(x\\), \\(y\\), or\n > \\(z\\). In that situation, an exterior face is created at the\n > cutoff distance normal to the \\(x\\), \\(y\\), or \\(z\\)\n > direction. For triclinic systems, the exterior face is parallel to\n > the corresponding reciprocal lattice vector. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The Voro++ package performs its calculation in 3d. This will still\n > work for a 2d LAMMPS simulation, provided all the atoms have the\n > same \\(z\\)-coordinate. The Voronoi cell of each atom will be a\n > columnar polyhedron with constant cross-sectional area along the\n > \\(z\\)-direction and two exterior faces at the top and bottom of\n > the simulation box. If the atoms do not all have the same\n > \\(z\\)-coordinate, then the columnar cells will be accordingly\n > distorted. The cross-sectional area of each Voronoi cell can be\n > obtained by dividing its volume by the \\(z\\) extent of the\n > simulation box. Note that you define the \\(z\\) extent of the\n > simulation box for 2d simulations when using the [create_box > ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands. \n > \n\n #### Output info\n\n **Deprecated in version 21Nov2023** \n\nThis compute calculates a per-atom array with two columns. In regular\ndynamic tessellation mode the first column is the Voronoi volume, the\nsecond is the neighbor count, as described above (read above for the\noutput data in case the *occupation* keyword is specified). These\nvalues can be accessed by any command that uses per-atom values from a\ncompute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for\nan overview of LAMMPS output options.\n\nIf the *edge_histo* keyword is used, then this compute generates a\nglobal vector of length *maxedge* +1, containing a histogram of the\nnumber of edges per face.\n\nIf the *neighbors* value is set to *yes*, then this compute calculates a\nlocal array with three columns. There is one row for each face of each\nVoronoi cell.\n\nThe Voronoi cell volume will be in distance [units ](https://docs.lammps.org/units.html) cubed.\nThe Voronoi face area will be in distance [units ](https://docs.lammps.org/units.html) squared.\n", - "restrictions": "This compute is part of the VORONOI package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nIt also requires you have a copy of the Voro++ library built and\ninstalled on your system. See instructions on obtaining and\ninstalling the Voro++ software in the src/VORONOI/README file.\n", - "related": "[dump custom ](https://docs.lammps.org/dump.html), [dump local ](https://docs.lammps.org/dump.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* composition/atom = style name of this compute command\n* one or more keyword/value pairs may be appended \n *      keyword = cutoff \n       cutoff value = distance cutoff \n", + "examples": "\n```lmps\ncompute 1 all composition/atom\n\ncompute 1 all composition/atom cutoff 9.0\ncomm_modify cutoff 9.0\n```\n", + "html_filename": "compute_composition_atom.html", + "short_description": "\nDefine a computation that calculates a local composition vector for each\natom", + "description": "\nDefine a computation that calculates a local composition vector for each\natom. For a central atom with \\(M\\) neighbors within the neighbor cutoff sphere,\ncomposition is defined as the number of atoms of a given type\n(including the central atom) divided by (\\(M+1\\)). For a given central atom,\nthe sum of all compositions equals one.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This compute uses the number of atom types, not chemical species, assigned in\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command. If an interatomic potential has two\n > species (i.e., Cu and Ni) assigned to four different atom types in\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) (i.e., 'Cu Cu Ni Ni'), the compute will\n > output four fractional values. In those cases, the user may desire an extra\n > calculation step to consolidate per-type fractions into per-species fractions.\n > This calculation can be conducted within LAMMPS using another compute such as\n > [compute reduce ](https://docs.lammps.org/compute_reduce.html), an atom-style [variable`, or as a > post-processing step. > ----------The optional keyword *cutoff* defines the distance cutoff used whensearching for neighbors. The default value is the cutoff specified bythe pair style. If no pair style is defined, then a cutoff must bedefined using this keyword. If the specified cutoff is larger thanthat of the pair_style plus neighbor skin (or no pair style isdefined), the *comm_modify cutoff* option must also be set to matchthat of the *cutoff* keyword.The neighbor list needed to compute this quantity is constructed eachtime the calculation is performed (i.e. each time a snapshot of atomsis dumped). Thus it can be inefficient to compute/dump this quantitytoo frequently.> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: >If you have a bonded system, then the settings of > :doc:`special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral.\n > This is the default setting for the [special_bonds > ](https://docs.lammps.org/special_bonds.html) command, and means those pairwise interactions do\n > not appear in the neighbor list. Because this compute uses the\n > neighbor list, it also means those pairs will not be included in\n > the order parameter. This difficulty can be circumvented by\n > writing a dump file, and using the [rerun ](https://docs.lammps.org/rerun.html) command to\n > compute the order parameter for snapshots in the dump file. The\n > rerun script can use a [special_bonds ](https://docs.lammps.org/special_bonds.html) command\n > that includes all pairs in the neighbor list. \n > \n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom array with \\(1 + N\\) columns, where \\(N\\)\nis the number of atom types. The first column is a count of the number of atoms\nused to calculate composition (including the central atom), and each subsequent\ncolumn indicates the fraction of that atom type within the cutoff sphere.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\ndoc page for an overview of LAMMPS output options.\n", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis compute requires [neighbor styles 'bin' or 'nsq' ](https://docs.lammps.org/neighbor.html).\n", + "related": "[comm_modify ](https://docs.lammps.org/comm_modify.html)\n" }, { "command": [ - "fix controller" + "fix rhok" ], "syntax": [ - "fix ID group-ID controller Nevery alpha Kp Ki Kd pvar setpoint cvar" + "fix ID group-ID rhok nx ny nz K a" ], "args": [ [ @@ -37709,146 +36924,204 @@ export const command_docs = [ "choices": [] }, { - "arg": "controller", + "arg": "rhok", "type": 1, "choices": [] }, { - "arg": "Nevery", + "arg": "nx", "type": 2, "choices": [] }, { - "arg": "alpha", + "arg": "ny", "type": 2, "choices": [] }, { - "arg": "Kp", + "arg": "nz", "type": 2, "choices": [] }, { - "arg": "Ki", + "arg": "K", "type": 2, "choices": [] }, { - "arg": "Kd", + "arg": "a", "type": 2, "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nx, ny, nz = k-vector of collective density field\n* K = spring constant of bias potential\n* a = anchor point of bias potential \n", + "examples": "\n```lmps\nfix bias all rhok 16 0 0 4.0 16.0\nfix 1 all npt temp 0.8 0.8 4.0 z 2.2 2.2 8.0\n# output of 4 values from fix rhok: U_bias rho_k_RE rho_k_IM \\|rho_k\\|\nthermo_style custom step temp pzz lz f_bias f_bias[1] f_bias[2] f_bias[3]\n```\n", + "html_filename": "fix_rhok.html", + "short_description": "The fix applies a force to atoms given by the potential\n\\[\\begin{align*} \n U = & \\frac{1}{2} K (|\\rho_{\\vec{k}}| - a)^2 \\\\\n \\rho_{\\vec{k}} = & \\sum_j^N \\exp(-i\\vec{k} \\cdot \\vec{r}_j )/\\sqrt{N} \\\\\n \\vec{k} = & (2\\pi n_x /L_x , 2\\pi n_y /L_y , 2\\pi n_z/L_z ) \\end{align*} \\]\nas described in **Pedersen**", + "description": "The fix applies a force to atoms given by the potential\n\\[\\begin{align*} \n U = & \\frac{1}{2} K (|\\rho_{\\vec{k}}| - a)^2 \\\\\n \\rho_{\\vec{k}} = & \\sum_j^N \\exp(-i\\vec{k} \\cdot \\vec{r}_j )/\\sqrt{N} \\\\\n \\vec{k} = & (2\\pi n_x /L_x , 2\\pi n_y /L_y , 2\\pi n_z/L_z ) \\end{align*} \\]\nas described in **Pedersen**.\n\nThis field, which biases configurations with long-range order, can be\nused to study crystal-liquid interfaces and determine melting\ntemperatures **Pedersen**.\n\nAn example of using the interface pinning method is located in the\n*examples/PACKAGES/rhok* directory.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy calculated by the fix to the\nglobal potential energy of the system as part of [thermodynamicoutput ](https://docs.lammps.org/thermo_style.html). The default setting for this fix is\n[fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed in the preceding paragraph. The scalar stored by\nthis fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Pedersen)** Pedersen, J. Chem. Phys., 139, 104102 (2013). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[thermo_style ](https://docs.lammps.org/thermo_style.html)\n" +}, +{ + "command": [ + "compute ke/atom" + ], + "syntax": [ + "compute ID group-ID ke/atom" + ], + "args": [ + [ + { + "arg": "compute", + "type": 1, + "choices": [] }, { - "arg": "pvar", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "setpoint", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cvar", + "arg": "ke/atom", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ke/atom = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all ke/atom\n```\n", + "html_filename": "compute_ke_atom.html", + "short_description": "Define a computation that calculates the per-atom translational\nkinetic energy for each atom in a group", + "description": "Define a computation that calculates the per-atom translational\nkinetic energy for each atom in a group.\n\nThe kinetic energy is simply \\(\\frac12 m v^2\\), where \\(m\\) is the mass\nand \\(v\\) is the velocity of each atom.\n\nThe value of the kinetic energy will be 0.0 for atoms not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-atom vector, which can be accessed by\nany command that uses per-atom values from a compute as input. See\nthe [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-atom vector values will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html)\n" +}, +{ + "command": [ + "thermo_style" + ], + "syntax": [ + "thermo_style style args" + ], + "args": [ + [ + { + "arg": "thermo_style", + "type": 1, + "choices": [] + }, + { + "arg": "custom", + "type": 3, + "choices": [ + "one", + "multi", + "yaml", + "custom" + ] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* controller = style name of this fix command\n* Nevery = invoke controller every this many timesteps\n* alpha = coupling constant for PID equation (see units discussion below)\n* Kp = proportional gain in PID equation (unitless)\n* Ki = integral gain in PID equation (unitless)\n* Kd = derivative gain in PID equation (unitless)\n* pvar = process variable of form c_ID, c_ID[I], f_ID, f_ID[I], or v_name \n *        c_ID = global scalar calculated by a compute with ID \n *        c_ID[I] = Ith component of global vector calculated by a compute with ID \n *        f_ID = global scalar calculated by a fix with ID \n *        f_ID[I] = Ith component of global vector calculated by a fix with ID \n *        v_name = value calculated by an equal-style variable with name \n* setpoint = desired value of process variable (same units as process variable)\n* cvar = name of control variable \n", - "examples": "\n```lmps\nfix 1 all controller 100 1.0 0.5 0.0 0.0 c_thermo_temp 1.5 tcontrol\nfix 1 all controller 100 0.2 0.5 0 100.0 v_pxxwall 1.01325 xwall\nfix 1 all controller 10000 0.2 0.5 0 2000 v_avpe -3.785 tcontrol\n```\n", - "html_filename": "fix_controller.html", - "short_description": "This fix enables control of a LAMMPS simulation using a control loop\nfeedback mechanism known as a proportional-integral-derivative (PID)\ncontroller", - "description": "This fix enables control of a LAMMPS simulation using a control loop\nfeedback mechanism known as a proportional-integral-derivative (PID)\ncontroller. The basic idea is to define a \"process variable\" which is\na quantity that can be monitored during a running simulation. A\ndesired target value is chosen for the process variable. A \"control\nvariable\" is also defined which is an adjustable attribute of the\nrunning simulation, which the process variable will respond to. The\nPID controller continuously adjusts the control variable based on the\ndifference between the process variable and the target.\n\nHere are examples of ways in which this fix can be used. The\nexamples/pid directory contains a script that implements the simple\nthermostat.\n\n| | | |\n|---|---|---|\n| Goal | process variable | control variable |\n| Simple thermostat | instantaneous T | thermostat target T |\n| Find melting temperature | average PE per atom | thermostat target T |\n| Control pressure in non-periodic system | force on wall | position of wall |\n| | | |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For this fix to work, the control variable must actually induce\n > a change in a running LAMMPS simulation. Typically this will only\n > occur if there is some other command (e.g. a thermostat fix) which\n > uses the control variable as an input parameter. This could be done\n > directly or indirectly, e.g. the other command uses a variable as\n > input whose formula uses the control variable. The other command\n > should alter its behavior dynamically as the variable changes. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If there is a command you think could be used in this fashion,\n > but does not currently allow a variable as an input parameter, please\n > notify the LAMMPS developers. It is often not difficult to enable a\n > command to use a variable as an input parameter. \n > \n\nThe group specified with this command is ignored. However, note that\nthe process variable may be defined by calculations performed by\ncomputes and fixes which store their own \"group\" definitions.\n\nThe PID controller is invoked once each *Nevery* timesteps.\n\nThe PID controller is implemented as a discretized version of\nthe following dynamic equation:\n\\[\n \\frac{dc}{dt} = -\\alpha (K_p e + K_i \\int_0^t e \\, dt + K_d \\frac{de}{dt} )\\]\nwhere *c* is the continuous time analog of the control variable,\n*e* =\\ *pvar* -\\ *setpoint* is the error in the process variable, and\n\\(\\alpha\\), \\(K_p\\), \\(K_i\\) , and \\(K_d\\) are constants\nset by the corresponding\nkeywords described above. The discretized version of this equation is:\n\\[\n c_n = c_{n-1} -\\alpha \\left( K_p \\tau e_n + K_i \\tau^2 \\sum_{i=1}^n e_i + K_d (e_n - e_{n-1}) \\right)\\]\nwhere \\(\\tau = \\mathtt{Nevery} \\cdot \\mathtt{timestep}\\) is the time\ninterval between updates,\nand the subscripted variables indicate the values of *c* and *e* at\nsuccessive updates.\n\nFrom the first equation, it is clear that if the three gain values\n\\(K_p\\), \\(K_i\\), \\(K_d\\) are dimensionless constants,\nthen \\(\\alpha\\) must have\nunits of [unit *cvar* ]/[unit *pvar* ]/[unit time] e.g. [ eV/K/ps\n]. The advantage of this unit scheme is that the value of the\nconstants should be invariant under a change of either the MD timestep\nsize or the value of *Nevery* . Similarly, if the LAMMPS [unit style ](https://docs.lammps.org/units.html) is changed, it should only be necessary to change\nthe value of \\(\\alpha\\) to reflect this, while leaving \\(K_p\\),\n\\(K_i\\), and \\(K_d\\) unaltered.\n\nWhen choosing the values of the four constants, it is best to first\npick a value and sign for \\(\\alpha\\) that is consistent with the\nmagnitudes and signs of *pvar* and *cvar* . The magnitude of \\(K_p\\)\nshould then be tested over a large positive range keeping \\(K_i = K_d =0\\).\nA good value for \\(K_p\\) will produce a fast response in *pvar*,\nwithout overshooting the *setpoint* . For many applications, proportional\nfeedback is sufficient, and so \\(K_i = K_d =0\\) can be used. In cases\nwhere there is a substantial lag time in the response of *pvar* to a change\nin *cvar*, this can be counteracted by increasing \\(K_d\\). In situations\nwhere *pvar* plateaus without reaching *setpoint*, this can be\ncounteracted by increasing \\(K_i\\). In the language of Charles Dickens,\n\\(K_p\\) represents the error of the present, \\(K_i\\) the error of\nthe past, and \\(K_d\\) the error yet to come.\n\nBecause this fix updates *cvar*, but does not initialize its value,\nthe initial value \\(c_0\\) is that assigned by the user in the input script via\nthe [internal-style variable ](https://docs.lammps.org/variable.html) command. This value is\nused (by every other LAMMPS command that uses the variable) until this\nfix performs its first update of *cvar* after *Nevery* timesteps. On\nthe first update, the value of the derivative term is set to zero,\nbecause the value of \\(e_{n-1}\\) is not yet defined.\n\n----------\n\nThe process variable *pvar* can be specified as the output of a\n[compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation of a\n[variable ](https://docs.lammps.org/variable.html). In each case, the compute, fix, or variable\nmust produce a global quantity, not a per-atom or local quantity.\n\nIf *pvar* begins with \"c\\_\", a compute ID must follow which has been\npreviously defined in the input script and which generates a global\nscalar or vector. See the individual [compute ](https://docs.lammps.org/compute.html) doc page\nfor details. If no bracketed integer is appended, the scalar\ncalculated by the compute is used. If a bracketed integer is\nappended, the Ith value of the vector calculated by the compute is\nused. Users can also write code for their own compute styles and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf *pvar* begins with \"f\\_\", a fix ID must follow which has been\npreviously defined in the input script and which generates a global\nscalar or vector. See the individual [fix ](https://docs.lammps.org/fix.html) page for\ndetails. Note that some fixes only produce their values on certain\ntimesteps, which must be compatible with when fix controller\nreferences the values, or else an error results. If no bracketed integer\nis appended, the scalar calculated by the fix is used. If a bracketed\ninteger is appended, the Ith value of the vector calculated by the fix\nis used. Users can also write code for their own fix style and [add them to LAMMPS ](https://docs.lammps.org/Modify.html).\n\nIf *pvar* begins with \"v\\_\", a variable name must follow which has been\npreviously defined in the input script. Only equal-style variables\ncan be referenced. See the [variable ](https://docs.lammps.org/variable.html) command for\ndetails. Note that variables of style *equal* define a formula which\ncan reference individual atom properties or thermodynamic keywords, or\nthey can invoke other computes, fixes, or variables when they are\nevaluated, so this is a very general means of specifying the process\nvariable.\n\nThe target value *setpoint* for the process variable must be a numeric\nvalue, in whatever units *pvar* is defined for.\n\nThe control variable *cvar* must be the name of an [internal-style variable ](https://docs.lammps.org/variable.html) previously defined in the input script. Note\nthat it is not specified with a \"v\\_\" prefix, just the name of the\nvariable. It must be an internal-style variable, because this fix\nupdates its value directly. Note that other commands can use an\nequal-style versus internal-style variable interchangeably.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nCurrently, no information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix produces a global vector with 3 values which can be accessed\nby various [output commands ](https://docs.lammps.org/Howto_output.html). The values can be\naccessed on any timestep, though they are only updated on timesteps\nthat are a multiple of *Nevery* .\n\nThe three values are the most recent updates made to the control\nvariable by each of the 3 terms in the PID equation above. The first\nvalue is the proportional term, the second is the integral term, the\nthird is the derivative term.\n\nThe units of the vector values will be whatever units the control\nvariable is in. The vector values calculated by this fix are\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" + "parameters": "* style = one or multi or yaml or custom\n* args = list of arguments for a particular style \n *        one args = none \n *        multi args = none \n *        yaml args = none \n *        custom args = list of keywords \n         possible keywords = step, elapsed, elaplong, dt, time, \n         cpu, tpcpu, spcpu, cpuremain, part, timeremain, \n         atoms, temp, press, pe, ke, etotal, \n         evdwl, ecoul, epair, ebond, eangle, edihed, eimp, \n         emol, elong, etail, \n         enthalpy, ecouple, econserve, \n         vol, density, \n         xlo, xhi, ylo, yhi, zlo, zhi, \n         xy, xz, yz, \n         avecx, avecy, avecz, \n         bvecx, bvecy, bvecz, \n         cvecx, cvecy, cvecz, \n         lx, ly, lz, \n         xlat, ylat, zlat, \n         cella, cellb, cellc, cellalpha, cellbeta, cellgamma, \n         pxx, pyy, pzz, pxy, pxz, pyz, \n         bonds, angles, dihedrals, impropers, \n         fmax, fnorm, nbuild, ndanger, \n         c_ID, c_ID[I], c_ID[I][J], \n         f_ID, f_ID[I], f_ID[I][J], \n         v_name, v_name[I] \n         step = timestep \n         elapsed = timesteps since start of this run \n         elaplong = timesteps since start of initial run in a series of runs \n         dt = timestep size \n         time = simulation time \n         cpu = elapsed CPU time in seconds since start of this run \n         tpcpu = time per CPU second \n         spcpu = timesteps per CPU second \n         cpuremain = estimated CPU time remaining in run \n         part = which partition (0 to Npartition-1) this is \n         timeremain = remaining time in seconds on timer timeout. \n         atoms = # of atoms \n         temp = temperature \n         press = pressure \n         pe = total potential energy \n         ke = kinetic energy \n         etotal = total energy (pe + ke) \n         evdwl = van der Waals pairwise energy (includes etail) \n         ecoul = Coulombic pairwise energy \n         epair = pairwise energy (evdwl + ecoul + elong) \n         ebond = bond energy \n         eangle = angle energy \n         edihed = dihedral energy \n         eimp = improper energy \n         emol = molecular energy (ebond + eangle + edihed + eimp) \n         elong = long-range kspace energy \n         etail = van der Waals energy long-range tail correction \n         enthalpy = enthalpy (etotal + press\\*vol) \n         ecouple = cumulative energy change due to thermo/baro statting fixes \n         econserve = pe + ke + ecouple = etotal + ecouple \n         vol = volume \n         density = mass density of system \n         xlo,xhi,ylo,yhi,zlo,zhi = box boundaries \n         xy,xz,yz = box tilt for restricted triclinic (non-orthogonal) simulation boxes \n         avecx,avecy,avecz = components of edge vector A of the simulation box \n         bvecx,bvecy,bvecz = components of edge vector B of the simulation box \n         cvecx,cvecy,cvecz = components of edge vector C of the simulation box \n         lx,ly,lz = box lengths in x,y,z \n         xlat,ylat,zlat = lattice spacings as calculated by [lattice ](https://docs.lammps.org/lattice.html) command \n         cella,cellb,cellc = periodic cell lattice constants a,b,c \n         cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma \n         pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor \n         bonds,angles,dihedrals,impropers = # of these interactions defined \n         fmax = max component of force on any atom in any dimension \n         fnorm = length of force vector for all atoms \n         nbuild = # of neighbor list builds \n         ndanger = # of dangerous neighbor list builds \n         c_ID = global scalar value calculated by a compute with ID \n         c_ID[I] = Ith component of global vector calculated by a compute with ID, I can include wildcard (see below) \n         c_ID[I][J] = I,J component of global array calculated by a compute with ID \n         f_ID = global scalar value calculated by a fix with ID \n         f_ID[I] = Ith component of global vector calculated by a fix with ID, I can include wildcard (see below) \n         f_ID[I][J] = I,J component of global array calculated by a fix with ID \n         v_name = value calculated by an equal-style variable with name \n         v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below) \n", + "examples": "\n```lmps\nthermo_style multi\nthermo_style yaml\nthermo_style one\nthermo_style custom step temp pe etotal press vol\nthermo_style custom step temp etotal c_myTemp v_abc\nthermo_style custom step temp etotal c_myTemp[*] v_abc\n```\n", + "html_filename": "thermo_style.html", + "short_description": "Set the style and content for printing thermodynamic data to the\nscreen and log files", + "description": "Set the style and content for printing thermodynamic data to the\nscreen and log files. The units for each column of output\ncorresponding to the list of keywords is determined by the [units](https://docs.lammps.org/units.html) command for the simulation. E.g. energies will be in energy\nunits, temperature in temperature units, pressure in pressure units.\n\nStyle *one* prints a single line of thermodynamic info that is the\nequivalent of \"thermo_style custom step temp epair emol etotal press\".\nThe line contains only numeric values.\n\nStyle *multi* prints a multiple-line listing of thermodynamic info\nthat is the equivalent of \"thermo_style custom etotal ke temp pe ebond\neangle edihed eimp evdwl ecoul elong press\". The listing contains\nnumeric values and a string ID for each quantity.\n\nStyle *yaml* is similar to style *one* but prints the output in [YAML](https://yaml.org/) format which can be easily read by a variety of\nscript languages and data handling packages. Since LAMMPS may print\nother output before, after, or in between thermodynamic output, the\nYAML format content needs to be separated from the rest. All YAML\nformat thermodynamic output can be matched with a regular expression\nand can thus be extracted with commands like ``egrep`` as follows:\n\n```sh\negrep '^(keywords:|data:$|---$|\\.\\.\\.$| - \\[)' log.lammps > log.yaml\n```\nInformation about processing such YAML files is in the [structureddata output howto ](https://docs.lammps.org/Howto_structured_data.html).\n\nStyle *custom* is the most general setting and allows you to specify\nwhich of the keywords listed above you want printed on each\nthermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are\nreferences to [computes ](https://docs.lammps.org/compute.html), [fixes ](https://docs.lammps.org/fix.html), and\nequal-style [variables ](https://docs.lammps.org/variable.html) that have been defined elsewhere\nin the input script or can even be new styles which users have added\nto LAMMPS. See the [Modify ](https://docs.lammps.org/Modify.html) page for details on the\nlatter. Thus the *custom* style provides a flexible means of\noutputting essentially any desired quantity as a simulation proceeds.\n\nAll styles except *custom* have *vol* appended to their list of\noutputs if the simulation box volume changes during the simulation.\n\nThe values printed by the various keywords are instantaneous values,\ncalculated on the current timestep. Time-averaged quantities, which\ninclude values from previous timesteps, can be output by using the\nf_ID keyword and accessing a fix that does time-averaging such as the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) command.\n\nOptions invoked by the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command can\nbe used to set the one- or multi-line format of the print-out, the\nnormalization of thermodynamic output (total values versus per-atom\nvalues for extensive quantities (ones which scale with the number of\natoms in the system), and the numeric precision of each printed value.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When you use a \"thermo_style\" command, all thermodynamic\n > settings are restored to their default values, including those\n > previously set by a [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command. Thus\n > if your input script specifies a thermo_style command, you should use\n > the thermo_modify command after it. \n > \n\n----------\n\nSeveral of the thermodynamic quantities require a temperature to be\ncomputed: \"temp\", \"press\", \"ke\", \"etotal\", \"enthalpy\", \"pxx\", etc. By\ndefault this is done by using a *temperature* compute which is created\nwhen LAMMPS starts up, as if this command had been issued:\n\n```lmps\ncompute thermo_temp all temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of this compute is *thermo_temp* and the group is *all* .\nYou can change the attributes of this temperature (e.g. its\ndegrees-of-freedom) via the [compute_modify ](https://docs.lammps.org/compute_modify.html)\ncommand. Alternatively, you can directly assign a new compute (that\ncalculates temperature) which you have defined, to be used for\ncalculating any thermodynamic quantity that requires a temperature.\nThis is done via the [thermo_modify ](https://docs.lammps.org/thermo_modify.html) command.\n\nSeveral of the thermodynamic quantities require a pressure to be\ncomputed: \"press\", \"enthalpy\", \"pxx\", etc. By default this is done by\nusing a *pressure* compute which is created when LAMMPS starts up, as\nif this command had been issued:\n\n```lmps\ncompute thermo_press all pressure thermo_temp\n```\nSee the [compute pressure ](https://docs.lammps.org/compute_pressure.html) command for details.\nNote that the ID of this compute is *thermo_press* and the group is\n*all* . You can change the attributes of this pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command. Alternatively, you can\ndirectly assign a new compute (that calculates pressure) which you\nhave defined, to be used for calculating any thermodynamic quantity\nthat requires a pressure. This is done via the\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html) command.\n\nSeveral of the thermodynamic quantities require a potential energy to\nbe computed: \"pe\", \"etotal\", \"ebond\", etc. This is done by using a\n*pe* compute which is created when LAMMPS starts up, as if this\ncommand had been issued:\n\n```lmps\ncompute thermo_pe all pe\n```\nSee the [compute pe ](https://docs.lammps.org/compute_pe.html) command for details. Note that\nthe ID of this compute is *thermo_pe* and the group is *all* . You can\nchange the attributes of this potential energy via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\n----------\n\nThe kinetic energy of the system *ke* is inferred from the temperature\nof the system with \\(\\frac{1}{2} k_B T\\) of energy for each degree\nof freedom. Thus, using different [compute commands ](https://docs.lammps.org/compute.html)\nfor calculating temperature, via the [thermo_modify temp](https://docs.lammps.org/thermo_modify.html) command, may yield different kinetic energies, since\ndifferent computes that calculate temperature can subtract out\ndifferent non-thermal components of velocity and/or include different\ndegrees of freedom (translational, rotational, etc).\n\nThe potential energy of the system *pe* will include contributions\nfrom fixes if the [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html) option is\nset for a fix that calculates such a contribution. For example, the\n[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html) fix calculates the energy of atoms\ninteracting with the wall. See the doc pages for \"individual fixes\"\nto see which ones contribute and whether their default\n[fix_modify energy ](https://docs.lammps.org/fix_modify.html) setting is *yes* or *no* .\n\nA long-range tail correction *etail* for the van der Waals pairwise\nenergy will be non-zero only if the [pair_modify tail](https://docs.lammps.org/pair_modify.html) option is turned on. The *etail* contribution is\nincluded in *evdwl*, *epair*, *pe*, and *etotal*, and the\ncorresponding tail correction to the pressure is included in *press*\nand *pxx*, *pyy*, etc.\n\n----------\n\nHere is more information on other keywords whose meaning may not be\nclear.\n\nThe *step*, *elapsed*, and *elaplong* keywords refer to timestep\ncount. *Step* is the current timestep, or iteration count when a\n[minimization ](https://docs.lammps.org/minimize.html) is being performed. *Elapsed* is the\nnumber of timesteps elapsed since the beginning of this run.\n*Elaplong* is the number of timesteps elapsed since the beginning of\nan initial run in a series of runs. See the *start* and *stop*\nkeywords for the [run ](https://docs.lammps.org/run.html) for info on how to invoke a series of\nruns that keep track of an initial starting time. If these keywords\nare not used, then *elapsed* and *elaplong* are the same value.\n\nThe *dt* keyword is the current timestep size in time [units](https://docs.lammps.org/units.html). The *time* keyword is the current elapsed simulation time,\nalso in time [units ](https://docs.lammps.org/units.html), which is simply (step\\*dt) if the\ntimestep size has not changed and the timestep has not been reset. If\nthe timestep has changed (e.g. via [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html))\nor the timestep has been reset (e.g. via the \"reset_timestep\"\ncommand), then the simulation time is effectively a cumulative value\nup to the current point.\n\nThe *cpu* keyword is elapsed CPU seconds since the beginning of this\nrun. The *tpcpu* and *spcpu* keywords are measures of how fast your\nsimulation is currently running. The *tpcpu* keyword is simulation\ntime per CPU second, where simulation time is in time\n[units ](https://docs.lammps.org/units.html). E.g. for metal units, the *tpcpu* value would be\npicoseconds per CPU second. The *spcpu* keyword is the number of\ntimesteps per CPU second. Both quantities are on-the-fly metrics,\nmeasured relative to the last time they were invoked. Thus if you are\nprinting out thermodynamic output every 100 timesteps, the two keywords\nwill continually output the time and timestep rate for the last 100\nsteps. The *tpcpu* keyword does not attempt to track any changes in\ntimestep size, e.g. due to using the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\ncommand.\n\nThe *cpuremain* keyword estimates the CPU time remaining in the\ncurrent run, based on the time elapsed thus far. It will only be a\ngood estimate if the CPU time/timestep for the rest of the run is\nsimilar to the preceding timesteps. On the initial timestep the value\nwill be 0.0 since there is no history to estimate from. For a\nminimization run performed by the \"minimize\" command, the estimate is\nbased on the *maxiter* parameter, assuming the minimization will\nproceed for the maximum number of allowed iterations.\n\nThe *part* keyword is useful for multi-replica or multi-partition\nsimulations to indicate which partition this output and this file\ncorresponds to, or for use in a [variable ](https://docs.lammps.org/variable.html) to append to\na filename for output specific to this partition. See discussion of\nthe [-partition command-line switch ](https://docs.lammps.org/Run_options.html) for details on\nrunning in multi-partition mode.\n\nThe *timeremain* keyword is the seconds remaining when a timeout has\nbeen configured via the [timer timeout ](https://docs.lammps.org/timer.html) command. If the\ntimeout timer is inactive, the value of this keyword is 0.0 and if the\ntimer is expired, it is negative. This allows for example to exit\nloops cleanly, if the timeout is expired with:\n\n```lmps\nif \"$(timeremain) < 0.0\" then \"quit 0\"\n```\nThe *ecouple* keyword is cumulative energy change in the system due to\nany thermostatting or barostatting fixes that are being used. A\npositive value means that energy has been subtracted from the system\n(added to the coupling reservoir). See the *econserve* keyword for an\nexplanation of why this sign choice makes sense.\n\nThe *econserve* keyword is the sum of the potential and kinetic energy\nof the system as well as the energy that has been transferred by\nthermostatting or barostatting to their coupling reservoirs -- that is,\n*econserve* = *pe* + *ke* + *ecouple* . Ideally, for a simulation in\nthe NVT, NPH, or NPT ensembles, the *econserve* quantity should remain\nconstant over time even though *etotal* may change.\n\nIn LAMMPS, the simulation box can be defined as orthogonal or\ntriclinic (non-orthogonal). See the [Howto_triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed explanation of orthogonal,\nrestricted triclinic, and general triclinic simulation boxes and how\nLAMMPS rotates a general triclinic box to be restricted triclinic\ninternally.\n\nThe *lx*, *ly*, *lz* keywords are the extent of the simulation box in\neach dimension. The *xlo*, *xhi*, *ylo*, *yhi*, *zlo*, *zhi* keywords\nare the lower and upper bounds of the simulation box in each dimension.\nI.e. *lx* = *xhi* - *xlo*). These 9 values are the same for all 3 kinds\nof boxes. I.e. for a restricted triclinic box, they are the values as\nif the box were not tilted. For a general triclinic box, they are the\nvalues after it is internally rotated to be a restricted triclinic box.\n\nThe *xy*, *xz*, *yz* are the current tilt factors for a triclinic box.\nThey are the same for restricted and general triclinic boxes.\n\nThe *avecx*, *avecy*, *avecz*, *bvecx*, *bvecy*, *bvecz*, *cvecx*,\n*cvecy*, *cvecz* are the components of the 3 edge vectors of the\ncurrent general simulation box. If it is an orthogonal box the\nvectors are along the x, y, z coordinate axes. If it is a restricted\ntriclinic box, the **A** vector is along the x axis, the **B** vector\nis in the xy plane with a +y coordinate, and the **C** vector has a +z\ncoordinate, as explained on the [Howto_triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page. If the [thermo_modifytriclinic/general ](https://docs.lammps.org/thermo_modify.html) option is set then they are the\n**A**, **B**, **C** vector which define the general triclinic box.\n\nThe *cella*, *cellb*, *cellc*, *cellalpha*, *cellbeta*, *cellgamma*\nkeywords correspond to the usual crystallographic quantities that\ndefine the periodic simulation box of a crystalline system. See the\n[Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a precise definition\nof these quantities in terms of the LAMMPS representation of a\nrestricted triclinic simulation box via *lx*, *ly*, *lz*, *yz*, *xz*,\n*xy* .\n\nThe *pxx,pyy,pzz,pxy,pxz,pyz* keywords are the 6 components of the\nsymmetric pressure tensor for the system. See the [computepressure ](https://docs.lammps.org/compute_pressure.html) command doc page for details of how it is\ncalculated.\n\nIf the [thermo_modify triclinic/general ](https://docs.lammps.org/thermo_modify.html) option\nis set then the 6 components will be output as values consistent with\nthe orientation of the general triclinic box relative to the standard\nxyz coordinate axes. If this keyword is not used, the values will be\nconsistent with the orientation of the restricted triclinic box (which\naligns with the xyz coordinate axes). As explained on the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, even if the\nsimulation box is created as a general triclinic box, internally\nLAMMPS uses a restricted triclinic box.\n\nNote that because the pressure tensor components are computed using\nforce vectors and atom coordinates, both of which are rotated in the\ngeneral versus restricted triclinic representation, the values will\ntypically be different for the two cases.\n\nThe *fmax* and *fnorm* keywords are useful for monitoring the progress\nof an [energy minimization ](https://docs.lammps.org/minimize.html). The *fmax* keyword\ncalculates the maximum force in any dimension on any atom in the\nsystem, or the infinity-norm of the force vector for the system. The\n*fnorm* keyword calculates the 2-norm or length of the force vector.\n\nThe *nbuild* and *ndanger* keywords are useful for monitoring neighbor\nlist builds during a run. Note that both these values are also\nprinted with the end-of-run statistics. The *nbuild* keyword is the\nnumber of re-builds during the current run. The *ndanger* keyword is\nthe number of re-builds that LAMMPS considered potentially\n\"dangerous\". If atom movement triggered neighbor list rebuilding (see\nthe [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command), then dangerous\nreneighborings are those that were triggered on the first timestep\natom movement was checked for. If this count is non-zero you may wish\nto reduce the delay factor to ensure no force interactions are missed\nby atoms moving beyond the neighbor skin distance before a rebuild\ntakes place.\n\n----------\n\nFor output values from a compute or fix or variable, the bracketed\nindex I used to index a vector, as in *c_ID[I]* or *f_ID[I]* or\n*v_name[I]*, can be specified using a wildcard asterisk with the index\nto effectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the size of the vector, then an\nasterisk with no numeric values means all indices from 1 to N. A\nleading asterisk means all indices from 1 to n (inclusive). A\ntrailing asterisk means all indices from n to N (inclusive). A middle\nasterisk means all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual elements of the\nvector had been listed one by one. E.g. these 2 thermo_style commands\nare equivalent, since the [compute temp ](https://docs.lammps.org/compute_temp.html) command\ncreates a global vector with 6 values.\n\n```lmps\ncompute myTemp all temp\nthermo_style custom step temp etotal c_myTemp[*]\nthermo_style custom step temp etotal &\nc_myTemp[1] c_myTemp[2] c_myTemp[3] &\nc_myTemp[4] c_myTemp[5] c_myTemp[6]\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For a vector-style variable, only the wildcard forms \"\\*n\" or\n > \"m\\*n\" are allowed. You must specify the upper bound, because\n > vector-style variable lengths are not determined until the variable\n > is evaluated. If n is specified larger than the vector length\n > turns out to be, zeroes are output for missing vector values. \n > \n\n----------\n\nThe *c_ID* and *c_ID[I]* and *c_ID[I][J]* keywords allow global values\ncalculated by a compute to be output. As discussed on the\n[compute ](https://docs.lammps.org/compute.html) doc page, computes can calculate global,\nper-atom, local, and per-grid values. Only global values can be\nreferenced by this command. However, per-atom compute values for an\nindividual atom can be referenced in a [equal-style variable](https://docs.lammps.org/variable.html) and the variable referenced by thermo_style custom, as\ndiscussed below. See the discussion above for how the I in *c_ID[I]*\ncan be specified with a wildcard asterisk to effectively specify\nmultiple values from a global compute vector.\n\nThe ID in the keyword should be replaced by the actual ID of a compute\nthat has been defined elsewhere in the input script. See the\n[compute ](https://docs.lammps.org/compute.html) command for details. If the compute\ncalculates a global scalar, vector, or array, then the keyword formats\nwith 0, 1, or 2 brackets will reference a scalar value from the\ncompute.\n\nNote that some computes calculate \"intensive\" global quantities like\ntemperature; others calculate \"extensive\" global quantities like\nkinetic energy that are summed over all atoms in the compute group.\nIntensive quantities are printed directly without normalization by\nthermo_style custom. Extensive quantities may be normalized by the\ntotal number of atoms in the simulation (NOT the number of atoms in\nthe compute group) when output, depending on the [thermo_modifynorm ](https://docs.lammps.org/thermo_modify.html) option being used.\n\nThe *f_ID* and *f_ID[I]* and *f_ID[I][J]* keywords allow global values\ncalculated by a fix to be output. As discussed on the [fix](https://docs.lammps.org/fix.html) doc page, fixes can calculate global, per-atom, local, and\nper-grid values. Only global values can be referenced by this\ncommand. However, per-atom fix values can be referenced for an\nindividual atom in a [equal-style variable ](https://docs.lammps.org/variable.html) and the\nvariable referenced by thermo_style custom, as discussed below. See\nthe discussion above for how the I in *f_ID[I]* can be specified with\na wildcard asterisk to effectively specify multiple values from a\nglobal fix vector.\n\nThe ID in the keyword should be replaced by the actual ID of a fix\nthat has been defined elsewhere in the input script. See the\n[fix ](https://docs.lammps.org/fix.html) command for details. If the fix calculates a global\nscalar, vector, or array, then the keyword formats with 0, 1, or 2\nbrackets will reference a scalar value from the fix.\n\nNote that some fixes calculate \"intensive\" global quantities like\ntimestep size; others calculate \"extensive\" global quantities like\nenergy that are summed over all atoms in the fix group. Intensive\nquantities are printed directly without normalization by thermo_style\ncustom. Extensive quantities may be normalized by the total number of\natoms in the simulation (NOT the number of atoms in the fix group)\nwhen output, depending on the [thermo_modify norm](https://docs.lammps.org/thermo_modify.html) option being used.\n\nThe *v_name* keyword allow the current value of a variable to be\noutput. The name in the keyword should be replaced by the variable\nname that has been defined elsewhere in the input script. Only\nequal-style and vector-style variables can be referenced; the latter\nrequires a bracketed term to specify the Ith element of the vector\ncalculated by the variable. However, an equal-style variable can use\nan atom-style variable in its formula indexed by the ID of an\nindividual atom. This is a way to output a specific atom's per-atom\ncoordinates or other per-atom properties in thermo output. See the\n[variable ](https://docs.lammps.org/variable.html) command for details. Note that variables\nof style *equal* and *vector* and *atom* define a formula which can\nreference per-atom properties or thermodynamic keywords, or they can\ninvoke other computes, fixes, or variables when evaluated, so this is\na very general means of creating thermodynamic output.\n\nNote that equal-style and vector-style variables are assumed to\nproduce \"intensive\" global quantities, which are thus printed as-is,\nwithout normalization by thermo_style custom. You can include a\ndivision by \"natoms\" in the variable formula if this is not the case.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n", + "related": "[thermo ](https://docs.lammps.org/thermo.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" }, { "command": [ - "fix alchemy" + "dump_modify" ], "syntax": [ - "fix ID group-ID alchemy v_name" + "dump_modify dump-ID keyword values ..." ], "args": [ [ { - "arg": "fix", + "arg": "dump_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dump-ID", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "framerate", "type": 2, - "choices": [] - }, - { - "arg": "alchemy", - "type": 1, - "choices": [] + "choices": [ + "acolor", + "adiam", + "amap", + "backcolor", + "bcolor", + "bdiam", + "boxcolor", + "color", + "bitrate", + "framerate" + ] }, { - "arg": "v_name", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* alchemy = style name of this fix command\n* v_name = variable with name that determines the \\(\\lambda_R\\) value \n", - "examples": "\n```lmps\nfix trans all alchemy v_ramp\n```\n", - "html_filename": "fix_alchemy.html", - "short_description": "\nThis fix command enables an \"alchemical transformation\" to be performed\nbetween two systems, whereby one system slowly transforms into the other\nover the course of a molecular dynamics run", - "description": "\nThis fix command enables an \"alchemical transformation\" to be performed\nbetween two systems, whereby one system slowly transforms into the other\nover the course of a molecular dynamics run. This is useful for\nmeasuring thermodynamic differences between two different systems. It\nalso allows transformations that are not easily possible with the\n[pair style hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html), [fix adapt](https://docs.lammps.org/fix_adapt.html) or [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html) commands.\n\nExample inputs are included in the ``examples/PACKAGES/alchemy``\ndirectory for (a) transforming a pure copper system into a\ncopper/aluminum bronze alloy and (b) transforming two water molecules\nin a box of water into a hydronium and a hydroxyl ion.\n\nThe two systems must be defined as [separate replica](https://docs.lammps.org/Howto_replica.html) and run in separate partitions of processors using the\n[-partition ](https://docs.lammps.org/Run_options.html) command-line switch. Exactly two\npartitions must be specified, and each partition must use the same number\nof processors and the same domain decomposition.\n\nBecause the forces applied to the atoms are the same mix of the forces\nfrom each partition and the simulation starts with the same atom\npositions across both partitions, they will generate the same trajectory\nof coordinates for each atom, and the same simulation box size and\nshape. The latter two conditions are *enforced* by this fix; it\nexchanges coordinates and box information between the replicas. This is\nnot strictly required, but since MD simulations are an example of a\nchaotic system, even the tiniest random difference will eventually grow\nexponentially into an unwanted divergence.\n\nOtherwise, the properties of each atom (type, charge, bond and angle\npartners, etc.), as well as energy and forces between interacting atoms\n(pair, bond, angle styles, etc.) can be different in the two systems.\n\nThis can be initialized in the same input script by using commands which\nonly apply to one or the other replica. The example scripts use a\nworld-style [variable ](https://docs.lammps.org/variable.html) command along with\n[if/then/else ](https://docs.lammps.org/if.html) commands for this purpose. The\n[partition ](https://docs.lammps.org/partition.html) command can also be used.\n\n```lmps\ncreate_box 2 box\ncreate_atoms 1 box\npair_style eam/alloy\npair_coeff * * AlCu.eam.alloy Cu Al\n\n# replace 5% of copper with aluminum on the second partition only\n\nvariable name world pure alloy\nif \"${name} == alloy\" then &\n\"set type 1 type/fraction 2 0.05 6745234\"\n```\nBoth replicas must define an instance of this fix, but with a different\n*v_name* variable. The named variable must be an equal-style or\nequivalent [variable ](https://docs.lammps.org/variable.html). The two variables should be\ndefined so that one ramps *down* from 1.0 to 0.0 for the *first* replica\n(*R=0*) and the other ramps *up* from 0.0 to 1.0 for the *second*\nreplica (*R=1*). A simple way is to do this is linearly, which can be\ndone using the ramp() function of the [variable ](https://docs.lammps.org/variable.html)\ncommand. You could also define a variable which returns a value between\n0.0 and 1.0 as a non-linear function of the timestep. Here is a linear\nexample:\n\n```lmps\npartition yes 1 variable ramp equal ramp(1.0,0.0)\npartition yes 2 variable ramp equal ramp(0.0,1.0)\nfix 2 all alchemy v_ramp\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For an alchemical transformation, the two variables should sum to\n > exactly 1.0 at any timestep. LAMMPS does *NOT* check that this is\n > the case. \n > \n\nIf you use the ``ramp()`` function to define the two variables, this fix\ncan easily be used across successive runs in the same input script by\nensuring each instance of the [run ](https://docs.lammps.org/run.html) command specifies the\nappropriate *start* or *stop* options.\n\nAt each timestep of an MD run, the two instances of this fix evaluate\ntheir respective variables as a \\(\\lambda_R\\) factor, where *R* = 0\nor 1 for each replica. The forces used by each system for the\npropagation of their atoms is set to the sum of the forces for the two\nsystems, each scaled by their respective \\(\\lambda_R\\) factor. Thus,\nduring the MD run, the system will transform incrementally from the\nfirst system to the second system.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As mentioned above, the coordinates of the atoms and box size/shape\n > must be exactly the same in the two replicas. Therefore, it is\n > generally not a good idea to initialize the two replicas by reading\n > different data files or creating them individually from scratch.\n > Rather, a single system should be initialized and then desired\n > modifications applied to the system to either replica. If your\n > input script somehow induces the two systems to become different\n > (e.g. by performing [atom_modify sort ](https://docs.lammps.org/atom_modify.html)\n > differently, or by adding or depositing a different number of atoms),\n > then LAMMPS will detect the mismatch and generate an error. This is\n > done by ensuring that each step the number and ordering of atoms is\n > identical within each pair of processors in the two replicas. \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix stores a global scalar (the current value of \\(\\lambda_R\\))\nand a global vector of length 3 which contains the potential energy of\nthe first partition, the second partition and the combined value,\nrespectively. The global scalar is unitless and \"intensive\", the vector\nis in [energy units ](https://docs.lammps.org/units.html) and \"extensive\". These values can be\nused by any command that uses a global value from a fix as input. See\nthe [output howto ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the REPLICA package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThere may be only one instance of this fix in use at a time within\neach replica.\n", - "related": "[compute pressure/alchemy ](https://docs.lammps.org/compute_pressure_alchemy.html) command,\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command, [fix adapt/fep ](https://docs.lammps.org/fix_adapt_fep.html)\ncommand, [pair_style hybrid/scaled ](https://docs.lammps.org/pair_hybrid.html) command.\n" + "parameters": "* dump-ID = ID of dump to modify\n* one or more keyword/value pairs may be appended\n\n* these keywords apply to various dump styles\n* keyword = append or at or balance or buffer or colname or delay or element or every or every/time or fileper or first or flush or format or header or image or label or maxfiles or nfile or pad or pbc or precision or region or refresh or scale or sfactor or skip or sort or tfactor or thermo or thresh or time or triclinic/general or types or units or unwrap \n *        append arg = yes or no \n *        at arg = N \n         N = index of frame written upon first dump \n *        balance arg = yes or no \n *        buffer arg = yes or no \n *        colname values = ID string, or default \n         string = new column header name \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a custom dump keyword or reference to compute, fix, property or variable. \n *        delay arg = Dstep \n         Dstep = delay output until this timestep \n *        element args = E1 E2 ... EN, where N = # of atom types \n         E1,...,EN = element name (e.g., C or Fe or Ga) \n *        every arg = N \n         N = dump on timesteps which are a multiple of N \n         N can be a variable (see below) \n *        every/time arg = Delta \n         Delta = dump once every Delta interval of simulation time (time units) \n         Delta can be a variable (see below) \n *        fileper arg = Np \n         Np = write one file for every this many processors \n *        first arg = yes or no \n *        flush arg = yes or no \n *        format args = line string, int string, float string, ID string, or none \n         string = C-style format string \n         ID = integer from 1 to N, or integer from -1 to -N, where N = # of quantities being output \n         or a custom dump keyword or reference to compute, fix, property or variable. \n *        header arg = yes or no \n         yes to write the header \n         no to not write the header \n *        image arg = yes or no \n *        label arg = string \n         string = character string (e.g., BONDS) to use in header of dump local file \n *        maxfiles arg = Fmax \n         Fmax = keep only the most recent Fmax snapshots (one snapshot per file) \n *        nfile arg = Nf \n         Nf = write this many files, one from each of Nf processors \n *        pad arg = Nchar = # of characters to convert timestep to \n *        pbc arg = yes or no = remap atoms via periodic boundary conditions \n *        precision arg = power-of-10 value from 10 to 1000000 \n *        region arg = region-ID or \"none\" \n *        refresh arg = c_ID = compute ID that supports a refresh operation \n *        scale arg = yes or no \n *        sfactor arg = coordinate scaling factor (> 0.0) \n *        skip arg = v_name \n         v_name = variable with name which evaluates to non-zero (skip) or 0 \n *        sort arg = off or id or N or -N \n         off = no sorting of per-atom lines within a snapshot \n         id = sort per-atom lines by atom ID \n         N = sort per-atom lines in ascending order by the Nth column \n         -N = sort per-atom lines in descending order by the Nth column \n *        tfactor arg = time scaling factor (> 0.0) \n *        thermo arg = yes or no \n *        thresh args = attribute operator value \n         attribute = same attributes (x,fy,etotal,sxx,etc) used by dump custom style \n         operator = \"<\" or \"<=\" or \">\" or \">=\" or \"==\" or \"!=\" or \"\\|\\^\" \n         value = numeric value to compare to, or LAST \n         these 3 args can be replaced by the word \"none\" to turn off thresholding \n *        time arg = yes or no \n *        triclinic/general arg = yes or no \n *        types value = numeric or labels \n *        units arg = yes or no \n *        unwrap arg = yes or no \n* these keywords apply only to the image and movie [styles ](https://docs.lammps.org/dump_image.html)\n* keyword = acolor or adiam or amap or backcolor or bcolor or bdiam or boxcolor or color or bitrate or framerate \n *        see the [dump image ](https://docs.lammps.org/dump_image.html) doc page for details \n* these keywords apply only to the /gz and /zstd dump styles\n* keyword = compression_level \n *        compression_level args = level \n         level = integer specifying the compression level that should be used (see below for supported levels) \n* these keywords apply only to the /zstd dump styles\n* keyword = checksum \n *        checksum args = yes or no (add checksum at end of zst file) \n", + "examples": "\n```lmps\ndump_modify 1 format line \"%d %d %20.15g %g %g\" scale yes\ndump_modify 1 format float %20.15g scale yes\ndump_modify myDump image yes scale no flush yes\ndump_modify 1 region mySphere thresh x < 0.0 thresh fx >= 3.2\ndump_modify xtcdump precision 10000 sfactor 0.1\ndump_modify 1 every 1000 nfile 20\ndump_modify 1 every v_myVar\n```\n", + "html_filename": "dump_modify.html", + "short_description": "Modify the parameters of a previously defined dump command", + "description": "Modify the parameters of a previously defined dump command. Not all\nparameters are relevant to all dump styles.\n\nUnless otherwise noted, the following keywords apply to all the\nvarious dump styles, including the [dump image ](https://docs.lammps.org/dump_image.html) and\n[dump movie ](https://docs.lammps.org/dump_image.html) styles.\n\n----------\n\nThe *append* keyword applies to all dump styles except *cfg* and *xtc*\nand *dcd* . It also applies only to text output files, not to binary\nor gzipped or image/movie files. If specified as *yes*, then dump\nsnapshots are appended to the end of an existing dump file. If\nspecified as *no*, then a new dump file will be created which will\noverwrite an existing file with the same name.\n\n----------\n\nThe *at* keyword only applies to the *netcdf* dump style. It can only\nbe used if the *append yes* keyword is also used. The *N* argument is\nthe index of which frame to append to. A negative value can be\nspecified for *N*, which means a frame counted from the end of the\nfile. The *at* keyword can only be used if the dump_modify command is\nbefore the first command that causes dump snapshots to be output\n(e.g., a [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html) command). Once the\ndump file has been opened, this keyword has no further effect.\n\n----------\n\nThe *buffer* keyword applies only to dump styles *atom*, *cfg*,\n*custom*, *local*, and *xyz* . It also applies only to text output\nfiles, not to binary or gzipped files. If specified as *yes*, which\nis the default, then each processor writes its output into an internal\ntext buffer, which is then sent to the processor(s) which perform file\nwrites, and written by those processors(s) as one large chunk of text.\nIf specified as *no*, each processor sends its per-atom data in binary\nformat to the processor(s) which perform file wirtes, and those\nprocessor(s) format and write it line by line into the output file.\n\nThe buffering mode is typically faster since each processor does the\nrelatively expensive task of formatting the output for its own atoms.\nHowever it requires about twice the memory (per processor) for the\nextra buffering.\n\n----------\n\nThe *colname* keyword can be used to change the default header keyword\nfor dump styles: *atom*, *custom*, *cfg*, and *local* and their\ncompressed, ADIOS variants. The setting for *ID string* replaces the\ndefault text with the provided string. *ID* can be a positive integer\nwhen it represents the column number counting from the left, a negative\ninteger when it represents the column number from the right (i.e. -1 is\nthe last column/keyword), or a custom dump keyword (or compute, fix,\nproperty, or variable reference) and then it replaces the string for\nthat specific keyword. For *atom* dump styles only the keywords \"id\",\n\"type\", \"x\", \"y\", \"z\", \"ix\", \"iy\", \"iz\" can be accessed via string\nregardless of whether scaled or unwrapped coordinates were enabled or\ndisabled, and it always assumes 8 columns for indexing regardless of\nwhether image flags are enabled or not. For dump style *cfg* only\nchanges to the \"auxiliary\" keywords (6th or later keyword) will become\nvisible.\n\nThe *colname* keyword can be used multiple times. If multiple *colname*\nsettings refer to the same keyword, the last setting has precedence. A\nsetting of *default* clears all previous settings, reverting all values\nto their default names. Using the *scale* or *image* keyword will also\nreset all header keywords to their default values.\n\n----------\n\nThe *delay* keyword applies to all dump styles. No snapshots will be\noutput until the specified *Dstep* timestep or later. Specifying\n*Dstep* < 0 is the same as turning off the delay setting. This is a\nway to turn off unwanted output early in a simulation, for example,\nduring an equilibration phase.\n\n----------\n\nThe *element* keyword applies only to the dump *cfg*, *xyz*, and\n*image* styles. It associates element names (e.g., H, C, Fe) with\nLAMMPS atom types. See the list of element names at the bottom of\nthis page.\n\nIn the case of dump *cfg*, this allows the [AtomEye ](http://li.mit.edu/Archive/Graphics/A/)\nvisualization package to read the dump file and render atoms with the\nappropriate size and color.\n\nIn the case of dump *image*, the output images will follow the same\n[AtomEye ](http://li.mit.edu/Archive/Graphics/A/) convention. An element name is specified for each\natom type (1 to Ntype) in the simulation. The same element name can\nbe given to multiple atom types.\n\nIn the case of *xyz* format dumps, there are no restrictions to what\nlabel can be used as an element name. Any white-space separated text\nwill be accepted.\n\n----------\n\nThe *every* keyword can be used with any dump style except the *dcd*\nand *xtc* styles. It specifies that the output of dump snapshots will\nnow be performed on timesteps which are a multiple of a new \\(N\\)\nvalue, This overrides the dump frequency originally specified by the\n[dump ](https://docs.lammps.org/dump.html) command.\n\nThe *every* keyword can be specified in one of two ways. It can be a\nnumeric value in which case it must be > 0. Or it can be an\n[equal-style variable ](https://docs.lammps.org/variable.html), which should be specified as\nv_name, where name is the variable name.\n\nIn this case, the variable is evaluated at the beginning of a run to\ndetermine the next timestep at which a dump snapshot will be written\nout. On that timestep the variable will be evaluated again to\ndetermine the next timestep, etc. Thus the variable should return\ntimestep values. See the stagger() and logfreq() and stride() math\nfunctions for [equal-style variables ](https://docs.lammps.org/variable.html), as examples of\nuseful functions to use in this context. Other similar math functions\ncould easily be added as options for [equal-style variables](https://docs.lammps.org/variable.html). Also see the next() function, which allows use of a\nfile-style variable which reads successive values from a file, each\ntime the variable is evaluated. Used with the *every* keyword, if the\nfile contains a list of ascending timesteps, you can output snapshots\nwhenever you wish.\n\nNote that when using the variable option with the *every* keyword, you\nneed to use the *first* option if you want an initial snapshot written\nto the dump file. The *every* keyword cannot be used with the dump\n*dcd* style.\n\nFor example, the following commands will\nwrite snapshots at timesteps 0,10,20,30,100,200,300,1000,2000,etc:\n\n```lmps\nvariable s equal logfreq(10,3,10)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every v_s first yes\n```\nThe following commands would write snapshots at the timesteps listed\nin file tmp.times:\n\n```lmps\nvariable f file tmp.times\nvariable s equal next(f)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every v_s\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using a file-style variable with the *every* keyword, the\n > file of timesteps must list a first timestep that is beyond the\n > current timestep (e.g., it cannot be 0). And it must list one or more\n > timesteps beyond the length of the run you perform. This is because\n > the dump command will generate an error if the next timestep it reads\n > from the file is not a value greater than the current timestep. Thus\n > if you wanted output on steps 0,15,100 of a 100-timestep run, the file\n > should contain the values 15,100,101 and you should also use the\n > dump_modify first command. Any final value > 100 could be used in\n > place of 101. \n > \n\n----------\n\nThe *every/time* keyword can be used with any dump style except the\n*dcd* and *xtc* styles. It changes the frequency of dump snapshots\nfrom being based on the current timestep to being determined by\nelapsed simulation time, i.e. in time units of the [units](https://docs.lammps.org/units.html) command, and specifies *Delta* for the interval between\nsnapshots. This can be useful when the timestep size varies during a\nsimulation run, e.g. by use of the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)\ncommand. The default is to perform output on timesteps which a\nmultiples of specified timestep value \\(N\\); see the *every*\nkeyword.\n\nThe *every/time* keyword can be used with any dump style except the\n*dcd* and *xtc* styles. It does two things. It specifies that the\ninterval between dump snapshots will be set in simulation time\n(i.e. in time units of the [units ](https://docs.lammps.org/units.html) command). This can be\nuseful when the timestep size varies during a simulation run (e.g., by\nuse of the [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) command). The default is\nto specify the interval in timesteps; see the *every* keyword. The\n*every/time* command also sets the interval value.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you wish dump styles *atom*, *custom*, *local*, or *xyz* to\n > include the simulation time as a field in the header portion of\n > each snapshot, you also need to use the dump_modify *time* keyword\n > with a setting of *yes*. See its documentation below. \n > \n\nNote that since snapshots are output on simulation steps, each\nsnapshot will be written on the first timestep whose associated\nsimulation time is >= the exact snapshot time value.\n\nAs with the *every* option, the *Delta* value can be specified in one\nof two ways. It can be a numeric value in which case it must be >\n0.0. Or it can be an [equal-style variable ](https://docs.lammps.org/variable.html), which\nshould be specified as v_name, where name is the variable name.\n\nIn this case, the variable is evaluated at the beginning of a run to\ndetermine the next simulation time at which a dump snapshot will be\nwritten out. On that timestep the variable will be evaluated again to\ndetermine the next simulation time, etc. Thus the variable should\nreturn values in time units. Note the current timestep or simulation\ntime can be used in an [equal-style variables ](https://docs.lammps.org/variable.html) since\nthey are both thermodynamic keywords. Also see the next() function,\nwhich allows use of a file-style variable which reads successive\nvalues from a file, each time the variable is evaluated. Used with\nthe *every/time* keyword, if the file contains a list of ascending\nsimulation times, you can output snapshots whenever you wish.\n\nNote that when using the variable option with the *every/time*\nkeyword, you need to use the *first* option if you want an initial\nsnapshot written to the dump file. The *every/time* keyword cannot be\nused with the dump *dcd* style.\n\nFor example, the following commands will write snapshots at successive\nsimulation times which grow by a factor of 1.5 with each interval.\nThe dt value used in the variable is to avoid a zero result when the\ninitial simulation time is 0.0.\n\n```lmps\nvariable increase equal 1.5*(time+dt)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every/time v_increase first yes\n```\nThe following commands would write snapshots at the times listed in\nfile tmp.times:\n\n```lmps\nvariable f file tmp.times\nvariable s equal next(f)\ndump 1 all atom 100 tmp.dump\ndump_modify 1 every/time v_s\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using a file-style variable with the *every/time* keyword, the\n > file of timesteps must list a first time that is beyond the time\n > associated with the current timestep (e.g., it cannot be 0.0). And\n > it must list one or more times beyond the length of the run you\n > perform. This is because the dump command will generate an error\n > if the next time it reads from the file is not a value greater than\n > the current time. Thus if you wanted output at times 0,15,100 of a\n > run of length 100 in simulation time, the file should contain the\n > values 15,100,101 and you should also use the dump_modify first\n > command. Any final value > 100 could be used in place of 101. \n > \n\n----------\n\nThe *first* keyword determines whether a dump snapshot is written on\nthe very first timestep after the dump command is invoked. This will\nalways occur if the current timestep is a multiple of $N$, the\nfrequency specified in the [dump ](https://docs.lammps.org/dump.html) command or\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command, including timestep 0.\nIt will also always occur if the current simulation time is a multiple\nof *Delta*, the time interval specified in the [dump_modifyevery/time ](https://docs.lammps.org/dump_modify.html) command.\n\nBut if this is not the case, a dump snapshot will only be written if\nthe setting of this keyword is *yes* . If it is *no*, which is the\ndefault, then it will not be written.\n\nNote that if the argument to the [dump_modify every](https://docs.lammps.org/dump_modify.html) [dump_modify every/time ](https://docs.lammps.org/dump_modify.html) commands is\na variable and not a numeric value, then specifying *first yes* is the\nonly way to write a dump snapshot on the first timestep after the dump\ncommand is invoked.\n\n----------\n\nThe *flush* keyword determines whether a flush operation is invoked\nafter a dump snapshot is written to the dump file. A flush ensures\nthe output in that file is current (no buffering by the OS), even if\nLAMMPS halts before the simulation completes. Flushes cannot be\nperformed with dump style *xtc* .\n\n----------\n\nThe *format* keyword can be used to change the default numeric format\noutput by the text-based dump styles: *atom*, *local*, *custom*, *cfg*,\nand *xyz* styles. Only the *line* or *none* options can be used with the\n*atom* and *xyz* styles.\n\nAll the specified format strings are C-style formats, such as used by\nthe C/C++ printf() command. The *line* keyword takes a single\nargument which is the format string for an entire line of output for\neach atom (do not include a trailing \"\\n\"), with \\(N\\) fields, which you\nmust enclose in quotes if there is more than one field. The *int* and\n*float* keywords take a single format argument and are applied to all\ninteger or floating-point quantities output. The setting for *M string*\nalso takes a single format argument which is used for the \\(M\\)\\ th\nvalue output in each line (e.g., the fifth column is output in high\nprecision by \"format 5 %20.15g\").\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *line* keyword for the *cfg* style, the first two\n > fields (atom ID and type) are not actually written into the CFG file,\n > however you must include formats for them in the format string. \n > \n\nThe *format* keyword can be used multiple times. The precedence is\nthat for each value in a line of output, the *M* format (if specified)\nis used, else the *int* or *float* setting (if specified) is used,\nelse the *line* setting (if specified) for that value is used, else\nthe default setting is used. A setting of *none* clears all previous\nsettings, reverting all values to their default format.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atom and molecule IDs are stored internally as 4-byte or 8-byte\n > signed integers, depending on how LAMMPS was compiled. When\n > specifying the *format int* option you can use a \"%d\"-style format\n > identifier in the format string and LAMMPS will convert this to the\n > corresponding 8-byte form if it is needed when outputting those\n > values. However, when specifying the *line* option or *format M\n > string* option for those values, you should specify a format string\n > appropriate for an 8-byte signed integer (e.g., one with \"%ld\") if\n > LAMMPS was compiled with the -DLAMMPS_BIGBIG option for 8-byte IDs. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Any value written to a text-based dump file that is a per-atom\n > quantity calculated by a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) is\n > stored internally as a floating-point value. If the value is actually\n > an integer and you wish it to appear in the text dump file as a\n > (large) integer, then you need to use an appropriate format. For\n > example, these commands: \n > \n\n\n```lmps\ncompute 1 all property/local batom1 batom2\ndump 1 all local 100 tmp.bonds index c_1[1] c_1[2]\ndump_modify 1 format line \"%d %0.0f %0.0f\"\n```\nwill output the two atom IDs for atoms in each bond as integers. If\nthe dump_modify command were omitted, they would appear as\nfloating-point values, assuming they were large integers (more than six\ndigits). The \"index\" keyword should use the \"%d\" format since it is\nnot generated by a compute or fix, and is stored internally as an\ninteger.\n\n----------\n\nThe *fileper* keyword is documented below with the *nfile* keyword.\n\n----------\n\nThe *header* keyword toggles whether the dump file will include a\nheader. Excluding a header will reduce the size of the dump file for\ndata produced by [pair tracker ](https://docs.lammps.org/pair_tracker.html) or\n[bpm bond styles ](https://docs.lammps.org/Howto_bpm.html) which may not require the\ninformation typically written to the header.\n\n----------\n\nThe *image* keyword applies only to the dump *atom* style. If the\nimage value is *yes*, three flags are appended to each atom's coords which\nare the absolute box image of the atom in each dimension. For\nexample, an \\(x\\) image flag of \\(-2\\) with a normalized coord of 0.5\nmeans the atom is in the center of the box, but has passed through the box\nboundary twice and is really two box lengths to the left of its\ncurrent coordinate. Note that for dump style *custom* these various\nvalues can be printed in the dump file by using the appropriate atom\nattributes in the dump command itself.\nUsing this keyword will reset all custom header names set with\n*dump_modify colname* to their respective default values.\n\n----------\n\nThe *label* keyword applies only to the dump *local* style.\nWhen it writes local information, such as bond or angle topology\nto a dump file, it will use the specified *label* to format the header.\nBy default this includes two lines:\n\n```\nITEM: NUMBER OF ENTRIES\nITEM: ENTRIES ...\n```\nThe word \"ENTRIES\" will be replaced with the string specified\n(e.g., BONDS or ANGLES).\n\n----------\n\nThe *maxfiles* keyword can only be used when a '\\*' wildcard is\nincluded in the dump file name (i.e., when writing a new file(s) for\neach snapshot). The specified *Fmax* is how many snapshots will be\nkept. Once this number is reached, the file(s) containing the oldest\nsnapshot is deleted before a new dump file is written. If the\nspecified \\(\\text{Fmax} \\le 0\\), then all files are retained.\n\nThis can be useful for debugging, especially if you do not know on what\ntimestep something bad will happen (e.g., when LAMMPS will exit with an\nerror). You can dump every time step and limit the number of dump\nfiles produced, even if you run for thousands of steps.\n\n----------\n\nThe *nfile* or *fileper* keywords can be used in conjunction with the\n\"%\" wildcard character in the specified dump file name, for all dump\nstyles except the *dcd*, *image*, *movie*, *xtc*, and *xyz* styles\n(for which \"%\" is not allowed). As explained on the [dump ](https://docs.lammps.org/dump.html)\ncommand doc page, the \"%\" character causes the dump file to be written\nin pieces, one piece for each of \\(P\\) processors. By default, \\(P\\)\nis the number of processors the simulation is running on. The *nfile* or\n*fileper* keyword can be used to set \\(P\\) to a smaller value, which can\nbe more efficient when running on a large number of processors.\n\nThe *nfile* keyword sets \\(P\\) to the specified \\(N_f\\) value.\nFor example, if \\(N_f = 4\\), and the simulation is running on 100\nprocessors, four files will be written by processors 0, 25, 50, and 75.\nEach will collect information from itself and the next 24 processors and write\nit to a dump file.\n\nFor the *fileper* keyword, the specified value of \\(N_p\\) means write one\nfile for every \\(N_p\\) processors. For example, if \\(N_p = 4\\),\nevery fourth processor (0, 4, 8, 12, etc.) will collect information from itself\nand the next three processors and write it to a dump file.\n\n----------\n\nThe *pad* keyword only applies when the dump filename is specified\nwith a wildcard \"\\*\" character which becomes the timestep. If *pad* is\n0, which is the default, the timestep is converted into a string of\nunpadded length (e.g., 100 or 12000 or 2000000). When *pad* is\nspecified with *Nchar* \\(>\\) 0, the string is padded with leading zeroes\nso they are all the same length = *Nchar* . For example, pad 7 would\nyield 0000100, 0012000, 2000000. This can be useful so that\npost-processing programs can easily read the files in ascending\ntimestep order.\n\n----------\n\nThe *pbc* keyword applies to all the dump styles. As explained on the\n[dump ](https://docs.lammps.org/dump.html) doc page, atom coordinates in a dump file may be\nslightly outside the simulation box. This is because periodic\nboundary conditions are enforced only on timesteps when neighbor lists\nare rebuilt, which will not typically coincide with the timesteps dump\nsnapshots are written. If the setting of this keyword is set to\n*yes*, then all atoms will be remapped to the periodic box before the\nsnapshot is written, then restored to their original position. If it\nis set to *no* they will not be. The *no* setting is the default\nbecause it requires no extra computation.\n\n----------\n\nThe *precision* keyword only applies to the dump *xtc* style. A\nspecified value of \\(N\\) means that coordinates are stored to \\(1/N\\)\nnanometer accuracy (e.g., for \\(N = 1000\\), the coordinates are written to\n\\(1/1000\\) nanometer accuracy).\n\n----------\n\nThe *refresh* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. It allows an \"incremental\" dump file to\nbe written, by refreshing a compute that is used as a threshold for\ndetermining which atoms are included in a dump snapshot. The\nspecified *c_ID* gives the ID of the compute. It is prefixed by \"c\\_\"\nto indicate a compute, which is the only current option. At some\npoint, other options may be added (e.g., fixes or variables).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This keyword can only be specified once for a dump. Refreshes\n > of multiple computes cannot yet be performed. \n > \n\nThe definition and motivation of an incremental dump file is as\nfollows. Instead of outputting all atoms at each snapshot (with some\nassociated values), you may only wish to output the subset of atoms\nwith a value that has changed in some way compared to the value the\nlast time that atom was output. In some scenarios this can result in\na dramatically smaller dump file. If desired, by post-processing the\nsequence of snapshots, the values for all atoms at all timesteps can\nbe inferred.\n\nA concrete example is a simulation of atom diffusion in a solid,\nrepresented as atoms on a lattice. Diffusive hops are rare. Imagine\nthat when a hop occurs an atom moves more than a distance *Dhop* . For\nany snapshot we only want to output atoms that have hopped since the\nlast snapshot. This can be accomplished with something the following\ncommands:\n\n```lmps\nvariable Dhop equal 0.6\nvariable check atom \"c_dsp[4] > v_Dhop\"\ncompute dsp all displace/atom refresh check\ndump 1 all custom 20 tmp.dump id type x y z\ndump_modify 1 append yes thresh c_dsp[4] > ${Dhop} refresh c_dsp\n```\nThe [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html) command\ncalculates the displacement of each atom from its reference position.\nThe \"4\" index is the scalar displacement; 1, 2, and 3 are the \\(xyz\\)\ncomponents of the displacement. The [dump_modify thresh ](https://docs.lammps.org/dump_modify.html)\ncommand will cause only atoms that have displaced more than\n\\(0.6~\\mathring{\\textrm{A}}\\) to be output on a given snapshot (assuming\nmetal units). However, note that when an atom is output, we also need to\nupdate the reference position for that atom to its new coordinates. So that it\nwill not be output in every snapshot thereafter. That reference position is\nstored by [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html). So the\ndump_modify *refresh* option triggers a call to compute displace/atom at the\nend of every dump to perform that update. The *refresh check* option\nshown as part of the [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html)\ncommand enables the compute to respond to the call from the dump command, and\nupdate the appropriate reference positions. This is done be defining an\n[atom-style variable ](https://docs.lammps.org/variable.html), *check* in this example, which\ncalculates a Boolean value (0 or 1) for each atom, based on the same\ncriterion used by dump_modify thresh.\n\nSee the [compute displace/atom ](https://docs.lammps.org/compute_displace_atom.html) command for\nmore details, including an example of how to produce output that\nincludes an initial snapshot with the reference position of all atoms.\n\nNote that only computes with a *refresh* option will work with\ndump_modify refresh. See individual compute doc pages for details.\nCurrently, only compute displace/atom supports this option. Others\nmay be added at some point. If you use a compute that does not support\nrefresh operations, LAMMPS will not complain; dump_modify refresh will\nsimply do nothing.\n\n----------\n\nThe *region* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. If specified, only atoms in the region\nwill be written to the dump file or included in the image/movie. Only\none region can be applied as a filter (the last one specified). See\nthe [region ](https://docs.lammps.org/region.html) command for more details. Note that a region\ncan be defined as the \"inside\" or \"outside\" of a geometric shape, and\nit can be the \"union\" or \"intersection\" of a series of simpler\nregions.\n\n----------\n\nThe *scale* keyword applies only to the dump *atom* style. A scale\nvalue of *yes* means atom coords are written in normalized units from\n0.0 to 1.0 in each box dimension. If the simulation box is triclinic\n(tilted), then all atom coords will still be between 0.0 and 1.0. A\nvalue of *no* means they are written in absolute distance units\n(e.g., \\(\\mathring{\\textrm{A}}\\) or \\(\\sigma\\)).\nUsing this keyword will reset all custom header names set with\n*dump_modify colname* to their respective default values.\n\n----------\n\nThe *sfactor* and *tfactor* keywords only apply to the dump *xtc*\nstyle. They allow customization of the unit conversion factors used\nwhen writing to XTC files. By default, they are initialized for\nwhatever [units ](https://docs.lammps.org/units.html) style is being used, to write out\ncoordinates in nanometers and time in picoseconds. For example, for *real*\nunits, LAMMPS defines *sfactor* = 0.1 and *tfactor* = 0.001, since the\n\\(\\mathring{\\textrm{A}}\\) and fs used by *real* units are 0.1 nm and\n0.001 ps, respectively. If you are using a units system with distance and time\nunits far from nm and ps, you may wish to write XTC files with\ndifferent units, since the compression algorithm used in XTC files is\nmost effective when the typical magnitude of position data is between\n10.0 and 0.1.\n\n----------\n\nThe *skip* keyword can be used with all dump styles. It allows a dump\nsnapshot to be skipped (not written to the dump file), if a condition\nis met. The condition is computed by an [equal-style variable](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is the\nvariable name. If the variable evaluation returns a non-zero value,\nthen the dump snapshot is skipped. If it returns zero, the dump\nproceeds as usual. Note that [equal-style variable ](https://docs.lammps.org/variable.html)\ncan contain Boolean operators which effectively evaluate as a true\n(non-zero) or false (zero) result.\n\nThe *skip* keyword can be useful for debugging purposes, e.g. to dump\nonly on a particular timestep. Or to limit output to conditions of\ninterest, e.g. only when the force on some atom exceeds a threshold\nvalue.\n\n----------\n\nThe *sort* keyword determines whether lines of per-atom output in a\nsnapshot are sorted or not. A sort value of *off* means they will\ntypically be written in indeterminate order, either in serial or\nparallel. This is the case even in serial if the [atom_modify sort](https://docs.lammps.org/atom_modify.html) option is turned on, which it is by default, to improve\nperformance. A sort value of *id* means sort the output by atom ID. A\nsort value of \\(N\\) or \\(-N\\) means sort the output by the value\nin the \\(N\\)\\ th column of per-atom info in either ascending or\ndescending order.\n\nThe dump *local* style cannot be sorted by atom ID, since there are\ntypically multiple lines of output per atom. Some dump styles, such\nas *dcd* and *xtc*, require sorting by atom ID to format the output\nfile correctly. If multiple processors are writing the dump file, via\nthe \"%\" wildcard in the dump filename and the *nfile* or *fileper*\nkeywords are set to non-default values (i.e., the number of dump file\npieces is not equal to the number of procs), then sorting cannot be\nperformed.\n\nIn a parallel run, the per-processor dump file pieces can have\nsignificant imbalance in number of lines of per-atom info. The *balance*\nkeyword determines whether the number of lines in each processor\nsnapshot are balanced to be nearly the same. A balance value of *no*\nmeans no balancing will be done, while *yes* means balancing will be\nperformed. This balancing preserves dump sorting order. For a serial\nrun, this option is ignored since the output is already balanced.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unless it is required by the dump style, sorting dump file\n > output requires extra overhead in terms of CPU and communication cost,\n > as well as memory, versus unsorted output. \n > \n\n----------\n\nThe *thermo* keyword only applies the dump styles *netcdf* and *yaml*.\nIt triggers writing of [thermo ](https://docs.lammps.org/thermo.html) information to the dump\nfile alongside per-atom data. The values included in the dump file are\ncached values from the last thermo output and include the exact same the\nvalues as specified by the [thermo_style ](https://docs.lammps.org/thermo_style.html) command.\nBecause these are cached values, they are only up-to-date when dump\noutput is on a timestep that also has thermo output. Dump style *yaml*\nwill skip thermo output on incompatible steps.\n\n----------\n\nThe *thresh* keyword only applies to the dump *custom*, *cfg*,\n*image*, and *movie* styles. Multiple thresholds can be specified.\nSpecifying *none* turns off all threshold criteria. If thresholds are\nspecified, only atoms whose attributes meet all the threshold criteria\nare written to the dump file or included in the image. The possible\nattributes that can be tested for are the same as those that can be\nspecified in the [dump custom ](https://docs.lammps.org/dump.html) command, with the exception\nof the *element* attribute, since it is not a numeric value. Note\nthat a different attributes can be used than those output by the\n[dump custom ](https://docs.lammps.org/dump.html) command. For example, you can output the\ncoordinates and stress of atoms whose energy is above some threshold.\n\nIf an atom-style variable is used as the attribute, then it can\nproduce continuous numeric values or effective Boolean 0/1 values,\nwhich may be useful for the comparison operator. Boolean values can\nbe generated by variable formulas that use comparison or Boolean math\noperators or special functions like gmask() and rmask() and grmask().\nSee the [variable ](https://docs.lammps.org/variable.html) command page for details.\n\nThe specified value must be a simple numeric value or the word LAST.\nIf LAST is used, it refers to the value of the attribute the last time\nthe dump command was invoked to produce a snapshot. This is a way to\nonly dump atoms whose attribute has changed (or not changed).\nThree examples follow.\n\n```lmps\ndump_modify ... thresh ix != LAST\n```\nThis will dump atoms which have crossed the periodic \\(x\\) boundary of the\nsimulation box since the last dump. (Note that atoms that crossed\nonce and then crossed back between the two dump timesteps would not be\nincluded.)\n\n```lmps\nregion foo sphere 10 20 10 15\nvariable inregion atom rmask(foo)\ndump_modify ... thresh v_inregion |^ LAST\n```\nThis will dump atoms which crossed the boundary of the spherical\nregion since the last dump.\n\n```lmps\nvariable charge atom \"(q > 0.5) || (q < -0.5)\"\ndump_modify ... thresh v_charge |^ LAST\n```\nThis will dump atoms whose charge has changed from an absolute value\nless than \\(\\frac12\\) to greater than \\(\\frac12\\) (or vice\nversa) since the last dump (e.g., due to reactions and subsequent\ncharge equilibration in a reactive force field).\n\nThe choice of operators listed above are the usual comparison\noperators. The XOR operation (exclusive or) is also included as \"\\|\\^\".\nIn this context, XOR means that if either the attribute or value is\n0.0 and the other is non-zero, then the result is \"true\" and the\nthreshold criterion is met. Otherwise it is not met.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *custom*, the *triclinic/general* keyword can alter dump\n > output for general triclinic simulation boxes and their atoms. See\n > the [dump ](https://docs.lammps.org/dump.html) command for details of how this changes the\n > format of dump file snapshots. The thresh keyword may access\n > per-atom attributes either directly or indirectly through a compute\n > or variable. If the attribute is an atom coordinate or a per-atom\n > vector (such as velocity, force, or dipole moment), its value will\n > *NOT* be a general triclinic (rotated) value. Rather it will be a\n > restricted triclinic value. \n > \n\n----------\n\nThe *time* keyword only applies to the dump *atom*, *custom*, *local*,\nand *xyz* styles (and their COMPRESS package versions *atom/gz*,\n*custom/gz* and *local/gz* ). For the first three styles, if set to\n*yes*, each frame will will contain two extra lines before the \"ITEM:\nTIMESTEP\" entry:\n\n```\nITEM: TIME\n\\\n```\nFor the *xyz* style, the simulation time is included on the same line\nas the timestep value.\n\nThis will output the current elapsed simulation time in current\ntime units equivalent to the [thermo keyword ](https://docs.lammps.org/thermo_style.html) *time* .\nThis is to simplify post-processing of trajectories using a variable time\nstep (e.g., when using [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)).\nThe default setting is *no* .\n\n----------\n\nThe *types* keyword applies only to the dump xyz style. If this keyword is\nused with a value of *numeric*, then numeric atom types are printed in the\nxyz file (default). If the value *labels* is specified, then\n[type labels ](https://docs.lammps.org/Howto_type_labels.html) are printed for atom types.\n\n----------\n\nThe *triclinic/general* keyword only applies to the dump *atom* and\n*custom* styles. It can only be used with a value of *yes* if the\nsimulation box was created as a general triclinic box. See the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed\nexplanation of orthogonal, restricted triclinic, and general triclinic\nsimulation boxes.\n\nIf this keyword is used with a value of *yes*, the box information at\nthe beginning of each snapshot will include information about the 3\narbitrary edge vectors **A**, **B**, **C** that define the general\ntriclinic box as well as their origin. The format is described on the\n[dump ](https://docs.lammps.org/dump.html) doc page.\n\nThe coordinates of each atom will likewise be output as values in (or\nnear) the general triclinic box. Likewise, per-atom vector quantities\nsuch as velocity, omega, dipole moment, etc will have orientations\nconsistent with the general triclinic box, meaning they will be\nrotated relative to the standard xyz coordinate axes. See the\n[dump ](https://docs.lammps.org/dump.html) doc page for a full list of which dump attributes\nthis affects.\n\n----------\n\nThe *units* keyword only applies to the dump *atom*, *custom*, and\n*local* styles (and their COMPRESS package versions *atom/gz*,\n*custom/gz* and *local/gz* ). If set to *yes*, each individual dump\nfile will contain two extra lines at the very beginning with:\n\n```\nITEM: UNITS\n\\\n```\nThis will output the current selected [units ](https://docs.lammps.org/units.html) style\nto the dump file and thus allows visualization and post-processing\ntools to determine the choice of units of the data in the dump file.\nThe default setting is *no* .\n\n----------\n\nThe *unwrap* keyword only applies to the dump *dcd* and *xtc* styles.\nIf set to *yes*, coordinates will be written \"unwrapped\" by the image\nflags for each atom. Unwrapped means that if the atom has passed through\na periodic boundary one or more times, the value is printed for what\nthe coordinate would be if it had not been wrapped back into the\nperiodic box. Note that these coordinates may thus be far outside the\nbox size stored with the snapshot.\n\n----------\n\nThe COMPRESS package offers both GZ and Zstd compression variants of\nstyles atom, custom, local, cfg, and xyz. When using these styles the\ncompression level can be controlled by the :code:`compression_level`\nkeyword. File names with these styles have to end in either\n:code:`.gz` or :code:`.zst`.\n\nGZ supports compression levels from \\(-1\\) (default), 0 (no compression),\nand 1 to 9, 9 being the best compression. The COMPRESS :code:`/gz` styles use 9\nas default compression level.\n\nZstd offers a wider range of compression levels, including negative\nlevels that sacrifice compression for performance. 0 is the default,\npositive levels are 1 to 22, with 22 being the most expensive\ncompression. Zstd promises higher compression/decompression speeds for\nsimilar compression ratios. For more details see\n`https://facebook.github.io/zstd/`.\n\nIn addition, Zstd compressed files can include a checksum of the\nentire contents. The Zstd enabled dump styles enable this feature by\ndefault and it can be disabled with the :code:`checksum` keyword.\n\n----------\n", + "restrictions": "Not all *dump_modify* options can be applied to all dump styles.\nDetails are in the discussions of the individual options.\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html), [undump ](https://docs.lammps.org/undump.html)\n" }, { "command": [ - "fix nvt/sllod", - "fix nvt/sllod/intel", - "fix nvt/sllod/omp", - "fix nvt/sllod/kk" + "write_data" ], "syntax": [ - "fix ID group-ID nvt/sllod keyword value ..." + "write_data file keyword value ..." ], "args": [ [ { - "arg": "fix", + "arg": "write_data", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "nvt/sllod", + "arg": "pair", "type": 3, "choices": [ - "nvt/sllod", - "nvt/sllod/intel", - "nvt/sllod/omp", - "nvt/sllod/kk" + "nocoeff", + "nofix", + "nolabelmap", + "triclinic/general", + "types", + "pair" ] }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, { "arg": "value", "type": 2, @@ -37856,21 +37129,20 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sllod = style name of this fix command\n* zero or more keyword/value pairs may be appended \n *     keyword = psllod \n      psllod value = no or yes = use SLLOD or p-SLLOD variant, respectively \n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html)\n command can be appended \n", - "examples": "\n```lmps\nfix 1 all nvt/sllod temp 300.0 300.0 100.0\nfix 1 all nvt/sllod temp 300.0 300.0 100.0 drag 0.2\n```\n", - "html_filename": "fix_nvt_sllod.html", - "short_description": "Perform constant NVT integration to update positions and velocities\neach timestep for atoms in the group using a Nose/Hoover temperature\nthermostat", - "description": "Perform constant NVT integration to update positions and velocities\neach timestep for atoms in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis thermostat is used for a simulation box that is changing size\nand/or shape, for example in a non-equilibrium MD (NEMD) simulation.\nThe size/shape change is induced by use of the [fix deform](https://docs.lammps.org/fix_deform.html) command, so each point in the simulation box can be\nthought of as having a \"streaming\" velocity. This position-dependent\nstreaming velocity is subtracted from each atom's actual velocity to\nyield a thermal velocity which is used for temperature computation and\nthermostatting. For example, if the box is being sheared in x,\nrelative to y, then points at the bottom of the box (low y) have a\nsmall x velocity, while points at the top of the box (hi y) have a\nlarge x velocity. These velocities do not contribute to the thermal\n\"temperature\" of the atom.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >[Fix deform ](https://docs.lammps.org/fix_deform.html) has an option for remapping either\n > atom coordinates or velocities to the changing simulation box. To use\n > fix nvt/sllod, fix deform should NOT remap atom positions, because fix\n > nvt/sllod adjusts the atom positions and velocities to create a\n > velocity profile that matches the changing box size/shape. Fix deform\n > SHOULD remap atom velocities when atoms cross periodic boundaries\n > since that is consistent with maintaining the velocity profile created\n > by fix nvt/sllod. LAMMPS will give an error if this setting is not\n > consistent. \n > \n\nThe SLLOD equations of motion, originally proposed by Hoover and Ladd\n(see **Evans3**), were proven to be equivalent\nto Newton's equations of motion for shear flow by :ref:`(Evans and\nMorriss) `. They were later shown to generate the desired\nvelocity gradient and the correct production of work by stresses for all\nforms of homogeneous flow by **Daivis**.\n\nFor the default (*psllod* = *no*), the LAMMPS implementation adheres to\nthe standard SLLOD equations of motion, as defined by :ref:`(Evans and\nMorriss) `. The option *psllod* = *yes* invokes the slightly\ndifferent SLLOD variant first introduced by **Tuckerman** as g-SLLOD and later by **Edwards** as\np-SLLOD. In all cases, the equations of motion are coupled to a\nNose/Hoover chain thermostat in a velocity Verlet formulation, closely\nfollowing the implementation used for the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A recent (2017) book by **Todd-sllod**\n > discusses use of the SLLOD method and non-equilibrium MD (NEMD)\n > thermostatting generally, for both simple and complex fluids,\n > e.g. molecular systems. The latter can be tricky to do correctly. \n > \n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/deform\", as if this command had\nbeen issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/deform\n```\nSee the [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Evans3)** Evans and Morriss, Phys Rev A, 30, 1528 (1984). \n \n**(Daivis)** Daivis and Todd, J Chem Phys, 124, 194103 (2006). \n \n**(Tuckerman)** Tuckerman, Mundy, Balasubramanian, and Klein, J Chem Phys 106, 5615 (1997). \n \n**(Edwards)** Edwards, Baig, and Keffer, J Chem Phys 124, 194104 (2006). \n \n**(Todd-sllod)** Todd and Daivis, Nonequilibrium Molecular Dynamics (book),\nCambridge University Press, (2017) https://doi.org/10.1017/9781139017848. \n ", - "restrictions": "This fix works best without Nose-Hoover chain thermostats, i.e. using\n*tchain* = 1. Setting *tchain* to larger values can result in poor\nequilibration.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\n" + "parameters": "* file = name of data file to write out\n* zero or more keyword/value pairs may be appended\n* keyword = nocoeff or nofix or nolabelmap or triclinic/general or types or pair \n *        nocoeff = do not write out force field info \n *        nofix = do not write out extra sections read by fixes \n *        nolabelmap = do not write out type labels \n *        triclinic/general = write data file in general triclinic format \n *        types value = numeric or labels \n *        pair value = ii or ij \n         ii = write one line of pair coefficient info per atom type \n         ij = write one line of pair coefficient info per IJ atom type pair \n", + "examples": "\n```lmps\nwrite_data data.polymer\nwrite_data data.*\nwrite_data data.solid triclinic/general\n```\n", + "html_filename": "write_data.html", + "short_description": "Write a data file in text format of the current state of the\nsimulation", + "description": "Write a data file in text format of the current state of the\nsimulation. Data files can be read by the [read data ](https://docs.lammps.org/read_data.html)\ncommand to begin a simulation. The [read_data ](https://docs.lammps.org/read_data.html) command\nalso describes their format.\n\nSimilar to [dump ](https://docs.lammps.org/dump.html) files, the data filename can contain a \"\\*\"\nwild-card character. The \"\\*\" is replaced with the current timestep\nvalue.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Data in Coeff sections \n >The write_data command may not always write all coefficient settings\n > to the corresponding Coeff sections of the data file. This can have\n > one of multiple reasons. 1) A few styles may be missing the code that\n > would write those sections (if you come across one, please notify\n > the LAMMPS developers). 2) Some pair styles require a single pair_coeff\n > statement and those are not compatible with data files. 3) The\n > default for write_data is to write a PairCoeff section, which has\n > only entries for atom types i == j. The remaining coefficients would\n > be inferred through the currently selected mixing rule. If there has\n > been a pair_coeff command with i != j, this setting would be lost.\n > LAMMPS will detect this and print a warning message unless *pair ij*\n > is appended to the write_data command. This will request writing a\n > PairIJCoeff section which has information for all pairs of atom types.\n > In cases where the coefficient data in the data file is incomplete,\n > you will need to re-specify that information in your input script\n > that reads the data file. \n > \n\nBecause a data file is in text format, if you use a data file written\nout by this command to restart a simulation, the initial state of the\nnew run will be slightly different than the final state of the old run\n(when the file was written) which was represented internally by LAMMPS\nin binary format. A new simulation which reads the data file will\nthus typically diverge from a simulation that continued in the\noriginal input script.\n\nIf you want to do more exact restarts, using binary files, see the\n[restart ](https://docs.lammps.org/restart.html), [write_restart ](https://docs.lammps.org/write_restart.html), and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. You can also convert\nbinary restart files to text data files, after a simulation has run,\nusing the [-r command-line switch ](https://docs.lammps.org/Run_options.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Only limited information about a simulation is stored in a data\n > file. For example, no information about atom [groups ](https://docs.lammps.org/group.html) and\n > [fixes ](https://docs.lammps.org/fix.html) are stored. [Binary restart files ](https://docs.lammps.org/read_restart.html)\n > store more information. \n > \n\nBond interactions (angle, etc) that have been turned off by the\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\ncommand will be written to a data file as if they are turned on. This\nmeans they will need to be turned off again in a new run after the\ndata file is read.\n\nBonds that are broken (e.g. by a bond-breaking potential) are not\nwritten to the data file. Thus these bonds will not exist when the\ndata file is read.\n\n----------\n\nUse of the *nocoeff* keyword means no force field parameters are\nwritten to the data file. This can be helpful, for example, if you\nwant to make significant changes to the force field or if the force\nfield parameters are read in separately, e.g. from an include file.\n\nUse of the *nofix* keyword means no extra sections read by fixes are\nwritten to the data file (see the *fix* option of the [read_data](https://docs.lammps.org/read_data.html) command for details). For example, this option excludes\nsections for user-created per-atom properties from [fixproperty/atom ](https://docs.lammps.org/fix_property_atom.html).\n\nThe *nolabelmap* and *types* keywords refer to type labels that may be\ndefined for numeric atom types, bond types, angle types, etc. The\nlabel map can be defined in two ways, either by the [labelmap](https://docs.lammps.org/labelmap.html) command or in data files read by the [read_data](https://docs.lammps.org/read_data.html) command which have sections for Atom Type Labels, Bond\nType Labels, Angle Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nUse of the *nolabelmap* keyword means that even if type labels exist\nfor a given type-kind (Atoms, Bonds, Angles, etc.), type labels are\nnot written to the data file. By default, they are written if they\nexist. A type label must be defined for every numeric type (within a\ngiven type-kind) to be written to the data file.\n\nUse of the *triclinic/general* keyword will output a data file which\nspecifies a general triclinic simulation box as well as per-atom\nquantities consistent with the general triclinic box. The latter means\nthat per-atom vectors, such as velocities and dipole moments will be\noriented consistent with the 3d rotation implied by the general\ntriclinic box (relative to the associated restricted triclinic box).\n\nThis option can only be requested if the simulation box was initially\ndefined to be general triclinic. If if was and the\n*triclinic/general* keyword is not used, then the data file will\nspecify a restricted triclinic box, since that is the internal format\nLAMMPS uses for both general and restricted triclinic simulations.\nSee the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page for more\nexplanation of how general triclinic simulation boxes are supported by\nLAMMPS. And see the [read_data ](https://docs.lammps.org/read_data.html) doc page for details\nof how the format is altered for general triclinic data files.\n\nThe *types* keyword determines how atom types, bond types, angle\ntypes, etc are written into these data file sections: Atoms, Bonds,\nAngles, etc. The default is the *numeric* setting, even if type label\nmaps exist. If the *labels* setting is used, type labels will be\nwritten to the data file, if the corresponding label map exists. Note\nthat when using *types labels*, the *nolabelmap* keyword cannot be\nused.\n\nThe *pair* keyword lets you specify in what format the pair\ncoefficient information is written into the data file. If the value\nis specified as *ii*, then one line per atom type is written, to\nspecify the coefficients for each of the I=J interactions. This means\nthat no cross-interactions for I != J will be specified in the data\nfile and the pair style will apply its mixing rule, as documented on\nindividual [pair_style ](https://docs.lammps.org/pair_style.html) doc pages. Of course this\nbehavior can be overridden in the input script after reading the data\nfile, by specifying additional [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands\nfor any desired I,J pairs.\n\nIf the value is specified as *ij*, then one line of coefficients is\nwritten for all I,J pairs where I <= J. These coefficients will\ninclude any specific settings made in the input script up to that\npoint. The presence of these I != J coefficients in the data file\nwill effectively turn off the default mixing rule for the pair style.\nAgain, the coefficient values in the data file can be overridden\nin the input script after reading the data file, by specifying\nadditional [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands for any desired I,J\npairs.\n\n----------\n", + "restrictions": "This command requires inter-processor communication to migrate atoms\nbefore the data file is written. This means that your system must be\nready to perform a simulation before using this command (force fields\nsetup, atom masses initialized, etc).\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_restart ](https://docs.lammps.org/write_restart.html)\n" }, { "command": [ - "fix temp/rescale", - "fix temp/rescale/kk" + "fix manifoldforce" ], "syntax": [ - "fix ID group-ID temp/rescale N Tstart Tstop window fraction" + "fix ID group-ID manifoldforce manifold manifold-args ..." ], "args": [ [ @@ -37890,117 +37162,130 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/rescale", - "type": 3, - "choices": [ - "temp/rescale", - "temp/rescale/kk" - ] + "arg": "manifoldforce", + "type": 1, + "choices": [] }, { - "arg": "N", + "arg": "manifold", "type": 2, "choices": [] }, { - "arg": "Tstart", + "arg": "manifold-args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold \n", + "examples": "\n```lmps\nfix constrain all manifoldforce sphere 5.0\n```\n", + "html_filename": "fix_manifoldforce.html", + "short_description": "This fix subtracts each time step from the force the component along\nthe normal of the specified [manifold ](https://docs.lammps.org/Howto_manifold.html)", + "description": "This fix subtracts each time step from the force the component along\nthe normal of the specified [manifold ](https://docs.lammps.org/Howto_manifold.html). This can be\nused in combination with [minimize ](https://docs.lammps.org/minimize.html) to remove overlap\nbetween particles while keeping them (roughly) constrained to the\ngiven manifold, e.g. to set up a run with [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html). I have found that\nonly *hftn* and *quickmin* with a very small time step perform\nadequately though.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n", + "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nOnly use this with *min_style hftn* or *min_style quickmin*. If not,\nthe constraints will not be satisfied very well at all. A warning is\ngenerated if the *min_style* is incompatible but no error.\n\n----------\n", + "related": "[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html), [fix nvt/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html)\n" +}, +{ + "command": [ + "plugin" + ], + "syntax": [ + "plugin command args" + ], + "args": [ + [ { - "arg": "Tstop", - "type": 2, + "arg": "plugin", + "type": 1, "choices": [] }, { - "arg": "window", - "type": 2, - "choices": [] + "arg": "clear", + "type": 3, + "choices": [ + "load", + "unload", + "list", + "clear" + ] }, { - "arg": "fraction", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/rescale = style name of this fix command\n* N = perform rescaling every N steps\n* Tstart,Tstop = desired temperature at start/end of run (temperature units) \n *        Tstart can be a variable (see below) \n* window = only rescale if temperature is outside this window (temperature units)\n* fraction = rescale to target temperature by this fraction \n", - "examples": "\n```lmps\nfix 3 flow temp/rescale 100 1.0 1.1 0.02 0.5\nfix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0\nfix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0\n```\n", - "html_filename": "fix_temp_rescale.html", - "short_description": "Reset the temperature of a group of atoms by explicitly rescaling\ntheir velocities", - "description": "Reset the temperature of a group of atoms by explicitly rescaling\ntheir velocities.\n\nThe rescaling is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration if finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with this fix. The translational degrees of freedom can\nalso have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nRescaling is performed every N timesteps. The target temperature is a\nramped value between the *Tstart* and *Tstop* temperatures at the\nbeginning and end of the run.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This thermostat will generate an error if the current\n > temperature is zero at the end of a timestep it is invoked on. It\n > cannot rescale a zero temperature. \n > \n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\nRescaling is only performed if the difference between the current and\ndesired temperatures is greater than the *window* value. The amount\nof rescaling that is applied is a *fraction* (from 0.0 to 1.0) of the\ndifference between the actual and desired temperature. E.g. if\n*fraction* = 1.0, the temperature is reset to exactly the desired\nvalue.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, this fix should not normally\n > be used on atoms that also have their temperature controlled by\n > another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if one of this command had\nbeen issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) for details. Note that the\nID of the new compute is the fix-ID + underscore + \"temp\", and the\ngroup for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp*. This means you can change the attributes of this fix's\ntemperature (e.g. its degrees-of-freedom) via the [compute_modify](https://docs.lammps.org/compute_modify.html) command or print this temperature during\nthermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html)\ncommand using the appropriate compute-ID. It also means that changing\nattributes of *thermo_temp* will have no effect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the fix continues in an uninterrupted\nfashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": " none\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html)\n" + "parameters": "* command = load or unload or list or clear\n* args = list of arguments for a particular plugin command \n *      load file = load plugin(s) from shared object in file \n *      unload style name = unload plugin name of style style \n       style = pair or bond or angle or dihedral or improper or kspace or compute or fix or region or command \n *      list = print a list of currently loaded plugins \n *      clear = unload all currently loaded plugins \n", + "examples": "\n```lmps\nplugin load morse2plugin.so\nplugin unload pair morse2/omp\nplugin unload command hello\nplugin list\nplugin clear\n```\n", + "html_filename": "plugin.html", + "short_description": "The plugin command allows to load (and unload) additional styles and\ncommands into a LAMMPS binary from so-called dynamic shared object (DSO)\nfiles", + "description": "The plugin command allows to load (and unload) additional styles and\ncommands into a LAMMPS binary from so-called dynamic shared object (DSO)\nfiles. This enables to add new functionality to an existing LAMMPS\nbinary without having to recompile and link the entire executable.\n\nThe *load* command will load and initialize all plugins contained in the\nplugin DSO with the given filename. A message with information the\nplugin style and name and more will be printed. Individual DSO files\nmay contain multiple plugins. More details about how to write and\ncompile the plugin DSO is given in programmer's guide part of the manual\nunder :doc:`Developer_plugins`.\n\nThe *unload* command will remove the given style or the given name from\nthe list of available styles. If the plugin style is currently in use,\nthat style instance will be deleted.\n\nThe *list* command will print a list of the loaded plugins and their\nstyles and names.\n\nThe *clear* command will unload all currently loaded plugins.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Automatic loading of plugins \n >\n **New in version 4May2022** \n >\n > When the environment variable ``LAMMPS_PLUGIN_PATH`` is set, then\n > LAMMPS will search the directory (or directories) listed in this path\n > for files with names that end in ``plugin.so``\n > (e.g. ``helloplugin.so``) and will try to load the contained plugins\n > automatically at start-up. \n > \n\n", + "restrictions": "The *plugin* command is part of the PLUGIN package. It is\nonly enabled if LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nIf plugins access functions or classes from a package,\nLAMMPS must have been compiled with that package included.\n\nPlugins are dependent on the LAMMPS binary interface (ABI)\nand particularly the MPI library used. So they are not guaranteed\nto work when the plugin was compiled with a different MPI library\nor different compilation settings or a different LAMMPS version.\nThere are no checks, so if there is a mismatch the plugin object\nwill either not load or data corruption and crashes may happen.\n", + "related": "none\n" }, { "command": [ - "pair_style ilp/graphene/hbn" + "fix planeforce" ], "syntax": [ - "pair_style [hybrid/overlay ...] ilp/graphene/hbn cutoff tap_flag" + "fix ID group-ID planeforce x y z" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "[hybrid/overlay", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "ilp/graphene/hbn", + "arg": "planeforce", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "x", "type": 2, "choices": [] }, { - "arg": "tap_flag", + "arg": "y", + "type": 2, + "choices": [] + }, + { + "arg": "z", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", - "examples": "\n```lmps\npair_style hybrid/overlay ilp/graphene/hbn 16.0 1\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\n\npair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0\npair_coeff * * rebo CH.rebo NULL NULL C\npair_coeff * * tersoff BNC.tersoff B N NULL\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\npair_coeff 1 1 coul/shield 0.70\npair_coeff 1 2 coul/shield 0.695\npair_coeff 2 2 coul/shield 0.69\n```\n", - "html_filename": "pair_ilp_graphene_hbn.html", - "short_description": "The *ilp/graphene/hbn* style computes the registry-dependent interlayer\npotential (ILP) potential as described in **Leven1**,\n**Leven2** and **Maaravi2**", - "description": "The *ilp/graphene/hbn* style computes the registry-dependent interlayer\npotential (ILP) potential as described in **Leven1**,\n**Leven2** and **Maaravi2**.\nThe normals are calculated in the way as described\nin **Kolmogorov2**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) **Maaravi2**. The definitions of\neach parameter in the above equation can be found in **Leven1** and **Maaravi2**.\n\nIt is important to include all the pairs to build the neighbor list for\ncalculating the normals.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This potential (ILP) is intended for interlayer interactions between two\n > different layers of graphene, hexagonal boron nitride (h-BN) and their hetero-junction.\n > To perform a realistic simulation, this potential must be used in combination with\n > intralayer potential, such as [AIREBO ](https://docs.lammps.org/pair_airebo.html) or [Tersoff ](https://docs.lammps.org/pair_tersoff.html) potential.\n > To keep the intralayer properties unaffected, the interlayer interaction\n > within the same layers should be avoided. Hence, each atom has to have a layer\n > identifier such that atoms residing on the same layer interact via the\n > appropriate intralayer potential and atoms residing on different layers\n > interact via the ILP. Here, the molecule id is chosen as the layer identifier,\n > thus a data file with the \"full\" atom style is required to use this potential. \n > \n\nThe parameter file (e.g. BNCH.ILP), is intended for use with *metal*\n[units ](https://docs.lammps.org/units.html), with energies in meV. Two additional parameters,\n*S*, and *rcut* are included in the parameter file. *S* is designed to\nfacilitate scaling of energies. *rcut* is designed to build the neighbor\nlist for calculating the normals for each atom pair.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the parameter file (e.g. BNCH.ILP),\n > are fitted with taper function by setting the cutoff equal to 16.0\n > Angstrom. Using different cutoff or taper function should be careful.\n > The parameters for atoms pairs between Boron and Nitrogen are fitted with\n > a screened Coulomb interaction [coul/shield ](https://docs.lammps.org/pair_coul_shield.html). Therefore,\n > to simulated the properties of h-BN correctly, this potential must be used in\n > combination with the pair style [coul/shield ](https://docs.lammps.org/pair_coul_shield.html). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Four new sets of parameters of ILP for 2D layered Materials with bilayer and\n > bulk configurations are presented in **Ouyang1** and **Ouyang2**, respectively.\n > These parameters provide a good description in both short- and long-range interaction regimes.\n > While the old ILP parameters published in **Leven2** and\n > **Maaravi2** are only suitable for long-range interaction\n > regime. This feature is essential for simulations in high pressure\n > regime (i.e., the interlayer distance is smaller than the equilibrium\n > distance). The benchmark tests and comparison of these parameters can\n > be found in **Ouyang1** and **Ouyang2**. \n > \n\nThis potential must be used in combination with hybrid/overlay.\nOther interactions can be set to zero using pair_style *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2.\nThe 2 values correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair ilp/graphene/hbn\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Leven1)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Leven2)** I. Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016). \n \n**(Maaravi2)** T. Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017). \n \n**(Kolmogorov2)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005). \n \n**(Leven1)** I. Leven, I. Azuri, L. Kronik and O. Hod, J. Chem. Phys. 140, 104106 (2014). \n \n**(Ouyang1)** W. Ouyang, D. Mandelli, M. Urbakh and O. Hod, Nano Lett. 18, 6009-6016 (2018). \n \n**(Ouyang2)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe BNCH.ILP potential file provided with LAMMPS (see the potentials\ndirectory) are parameterized for *metal* units. You can use this\npotential with any LAMMPS units, but you would need to create your own\ncustom BNCH.ILP potential file with coefficients listed in the appropriate\nunits, if your simulation does not use *metal* units.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* planeforce = style name of this fix command\n* x y z = 3-vector that is normal to the plane \n", + "examples": "\n```lmps\nfix hold boundary planeforce 1.0 0.0 0.0\n```\n", + "html_filename": "fix_planeforce.html", + "short_description": "Adjust the forces on each atom in the group so that only the\ncomponents of force in the plane specified by the normal vector\n(x,y,z) remain", + "description": "Adjust the forces on each atom in the group so that only the\ncomponents of force in the plane specified by the normal vector\n(x,y,z) remain. This is done by subtracting out the component of\nforce perpendicular to the plane.\n\nIf the initial velocity of the atom is 0.0 (or in the plane), then it\nshould continue to move in the plane thereafter.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n", + "restrictions": " none\n", + "related": "[fix lineforce ](https://docs.lammps.org/fix_lineforce.html)\n" }, { "command": [ - "fix rigid", - "fix rigid/omp", - "fix rigid/nve", - "fix rigid/nve/omp", - "fix rigid/nvt", - "fix rigid/nvt/omp", - "fix rigid/npt", - "fix rigid/npt/omp", - "fix rigid/nph", - "fix rigid/nph/omp", - "fix rigid/small", - "fix rigid/small/omp", - "fix rigid/nve/small", - "fix rigid/nvt/small", - "fix rigid/npt/small" + "fix dpd/energy", + "fix dpd/energy/kk" ], "syntax": [ - "fix ID group-ID style bodystyle args keyword values ..." + "fix ID group-ID dpd/energy" ], "args": [ [ @@ -38020,61 +37305,61 @@ export const command_docs = [ "choices": [] }, { - "arg": "rigid/small/omp", + "arg": "dpd/energy", "type": 3, "choices": [ - "rigid", - "rigid/nve", - "rigid/nvt", - "rigid/npt", - "rigid/nph", - "rigid/small", - "rigid/nve/small", - "rigid/nvt/small", - "rigid/npt/small", - "rigid/nph/small", - "rigid/omp", - "rigid/nve/omp", - "rigid/nvt/omp", - "rigid/npt/omp", - "rigid/nph/omp", - "rigid/small/omp" + "dpd/energy", + "dpd/energy/kk" ] + } + ] + ], + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* dpd/energy = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all dpd/energy\n```\n", + "html_filename": "fix_dpd_energy.html", + "short_description": "Perform constant energy dissipative particle dynamics (DPD-E)\nintegration", + "description": "Perform constant energy dissipative particle dynamics (DPD-E)\nintegration. This fix updates the internal energies for particles in\nthe group at each timestep. It must be used in conjunction with a\ndeterministic integrator (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html)) that updates\nthe particle positions and velocities.\n\nFor fix *dpd/energy*, the particle internal temperature is related to\nthe particle internal energy through a mesoparticle equation of state.\nAn additional fix must be specified that defines the equation of state\nfor each particle, e.g. [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html).\n\nThis fix must be used with the [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command.\n\nNote that numerous variants of DPD can be specified by choosing an\nappropriate combination of the integrator and [pair_style dpd/fdt/energy ](https://docs.lammps.org/pair_style.html) command. DPD under isoenergetic conditions\ncan be specified by using fix *dpd/energy*, fix *nve* and pair_style\n*dpd/fdt/energy* . DPD under isoenthalpic conditions can\nbe specified by using fix *dpd/energy*, fix *nph* and pair_style\n*dpd/fdt/energy* . Examples of each DPD variant are provided in the\nexamples/PACKAGES/dpd-react directory.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix must be used with an additional fix that specifies time\nintegration, e.g. [fix nve ](https://docs.lammps.org/fix_nve.html).\n\nThe fix *dpd/energy* requires the *dpd* [atom_style ](https://docs.lammps.org/atom_style.html)\nto be used in order to properly account for the particle internal\nenergies and temperature.\n\nThe fix *dpd/energy* must be used with an additional fix that specifies the\nmesoparticle equation of state for each particle.\n", + "related": "[fix nve ](https://docs.lammps.org/fix_nve.html) [fix eos/cv ](https://docs.lammps.org/fix_eos_cv.html)\n" +}, +{ + "command": [ + "set" + ], + "syntax": [ + "set style ID keyword values ..." + ], + "args": [ + [ + { + "arg": "set", + "type": 1, + "choices": [] }, { - "arg": "group", + "arg": "region", "type": 3, "choices": [ - "single", - "molecule", - "group" + "atom", + "type", + "mol", + "group", + "region" ] }, { - "arg": "args", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "gravity", + "arg": "type/subset", "type": 3, "choices": [ - "langevin", - "reinit", - "mol", - "iso", - "aniso", - "x", - "y", - "z", - "couple", - "tparam", - "pchain", - "dilate", - "force", - "torque", - "infile", - "gravity" + "type", + "type/fraction", + "type/ratio", + "type/subset" ] }, { @@ -38084,183 +37369,185 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = rigid or rigid/nve or rigid/nvt or rigid/npt or rigid/nph or rigid/small or rigid/nve/small or rigid/nvt/small or rigid/npt/small or rigid/nph/small\n* bodystyle = single or molecule or group \n *        single args = none \n *        molecule args = none \n *        *custom* args = i_propname or v_varname \n         i_propname = a custom integer vector defined via fix property/atom \n         v_varname = an atom-style or atomfile-style variable \n *        group args = N groupID1 groupID2 ... \n         N = # of groups \n         groupID1, groupID2, ... = list of N group IDs \n* zero or more keyword/value pairs may be appended\n* keyword = langevin or reinit or temp or mol or iso or aniso or x or y or z or couple or tparam or pchain or dilate or force or torque or infile or gravity \n *        langevin values = Tstart Tstop Tperiod seed \n         Tstart,Tstop = desired temperature at start/stop of run (temperature units) \n         Tdamp = temperature damping parameter (time units) \n         seed = random number seed to use for white noise (positive integer) \n *        reinit value = yes or no \n *        temp values = Tstart Tstop Tdamp \n         Tstart,Tstop = desired temperature at start/stop of run (temperature units) \n         Tdamp = temperature damping parameter (time units) \n *        mol value = template-ID \n         template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n *        iso or aniso values = Pstart Pstop Pdamp \n         Pstart,Pstop = scalar external pressure at start/end of run (pressure units) \n         Pdamp = pressure damping parameter (time units) \n *        x or y or z values = Pstart Pstop Pdamp \n         Pstart,Pstop = external stress tensor component at start/end of run (pressure units) \n         Pdamp = stress damping parameter (time units) \n *        couple value = none or xyz or xy or yz or xz \n *        tparam values = Tchain Titer Torder \n         Tchain = length of Nose/Hoover thermostat chain \n         Titer = number of thermostat iterations performed \n         Torder = 3 or 5 = Yoshida-Suzuki integration parameters \n *        pchain values = Pchain \n         Pchain = length of the Nose/Hoover thermostat chain coupled with the barostat \n *        dilate value = dilate-group-ID \n         dilate-group-ID = only dilate atoms in this group due to barostat volume changes \n *        force values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass force is active \n *        torque values = M xflag yflag zflag \n         M = which rigid body from 1-Nbody (see asterisk form below) \n         xflag,yflag,zflag = off/on if component of center-of-mass torque is active \n *        infile filename \n         filename = file with per-body values of mass, center-of-mass, moments of inertia \n *        gravity values = gravity-ID \n         gravity-ID = ID of fix gravity command to add gravitational forces \n..\n FIXME These don't seem to be included in the source code\n mol value = template-ID\n template-ID = ID of molecule template specified in a separate [molecule ](https://docs.lammps.org/molecule.html) command \n", - "examples": "\n```lmps\nfix 1 clump rigid single reinit yes\nfix 1 clump rigid/small molecule\nfix 1 clump rigid single force 1 off off on langevin 1.0 1.0 1.0 428984\nfix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0 reinit no\nfix 1 polychains rigid molecule force 1*5 off off off force 6*10 off off on\nfix 1 polychains rigid/small molecule langevin 1.0 1.0 1.0 428984\nfix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off\nfix 1 rods rigid/npt molecule temp 300.0 300.0 100.0 iso 0.5 0.5 10.0\nfix 1 particles rigid/npt molecule temp 1.0 1.0 5.0 x 0.5 0.5 1.0 z 0.5 0.5 1.0 couple xz\nfix 1 water rigid/nph molecule iso 0.5 0.5 1.0\nfix 1 particles rigid/npt/small molecule temp 1.0 1.0 1.0 iso 0.5 0.5 1.0\n\nvariable bodyid atom 1.0*gmask(clump1)+2.0*gmask(clump2)+3.0*gmask(clump3)\nfix 1 clump rigid custom v_bodyid\n\nvariable bodyid atomfile bodies.txt\nfix 1 clump rigid custom v_bodyid\n\nfix 0 all property/atom i_bodyid\nread_restart data.rigid fix 0 NULL Bodies\nfix 1 clump rigid/small custom i_bodyid\n```\n", - "html_filename": "fix_rigid.html", - "short_description": "Treat one or more sets of atoms as independent rigid bodies", - "description": "Treat one or more sets of atoms as independent rigid bodies. This\nmeans that each timestep the total force and torque on each rigid body\nis computed as the sum of the forces and torques on its constituent\nparticles. The coordinates, velocities, and orientations of the atoms\nin each body are then updated so that the body moves and rotates as a\nsingle entity. This is implemented by creating internal data structures\nfor each rigid body and performing time integration on these data\nstructures. Positions, velocities, and orientations of the constituent\nparticles are regenerated from the rigid body data structures in every\ntime step. This restricts which operations and fixes can be applied to\nrigid bodies. See below for a detailed discussion.\n\nExamples of large rigid bodies are a colloidal particle, or portions\nof a biomolecule such as a protein.\n\nExample of small rigid bodies are patchy nanoparticles, such as those\nmodeled in **Zhang1** by Sharon Glotzer's group,\nclumps of granular particles, lipid molecules consisting of one or\nmore point dipoles connected to other spheroids or ellipsoids,\nirregular particles built from line segments (2d) or triangles (3d),\nand coarse-grain models of nano or colloidal particles consisting of a\nsmall number of constituent particles. Note that the [fix shake](https://docs.lammps.org/fix_shake.html) command can also be used to rigidify small molecules of\n2, 3, or 4 atoms, e.g. water molecules. That fix treats the\nconstituent atoms as point masses.\n\nThese fixes also update the positions and velocities of the atoms in\neach rigid body via time integration, in the NVE, NVT, NPT, or NPH\nensemble, as described below.\n\nThere are two main variants of this fix, fix rigid and fix\nrigid/small. The NVE/NVT/NPT/NHT versions belong to one of the two\nvariants, as their style names indicate.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all of the *bodystyle* options and keyword/value options are\n > available for both the *rigid* and *rigid/small* variants. See\n > details below. \n > \n\nThe *rigid* styles are typically the best choice for a system with a\nsmall number of large rigid bodies, each of which can extend across\nthe domain of many processors. It operates by creating a single\nglobal list of rigid bodies, which all processors contribute to.\nMPI_Allreduce operations are performed each timestep to sum the\ncontributions from each processor to the force and torque on all the\nbodies. This operation will not scale well in parallel if large\nnumbers of rigid bodies are simulated.\n\nThe *rigid/small* styles are typically best for a system with a large\nnumber of small rigid bodies. Each body is assigned to the atom\nclosest to the geometrical center of the body. The fix operates using\nlocal lists of rigid bodies owned by each processor and information is\nexchanged and summed via local communication between neighboring\nprocessors when ghost atom info is accumulated.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To use the *rigid/small* styles the ghost atom cutoff must be large\n > enough to span the distance between the atom that owns the body and\n > every other atom in the body. This distance value is printed out\n > when the rigid bodies are defined. If the [pair_style > ](https://docs.lammps.org/pair_style.html) cutoff plus neighbor skin does not span this\n > distance, then you should use the [comm_modify cutoff > ](https://docs.lammps.org/comm_modify.html) command with a setting epsilon larger than the\n > distance. \n > \n\nWhich of the two variants is faster for a particular problem is hard\nto predict. The best way to decide is to perform a short test run.\nBoth variants should give identical numerical answers for short runs.\nLong runs should give statistically similar results, but round-off\ndifferences may accumulate to produce divergent trajectories.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You should not update the atoms in rigid bodies via other\n > time-integration fixes (e.g. [fix nve ](https://docs.lammps.org/fix_nve.html), [fix > nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix move > ](https://docs.lammps.org/fix_move.html)), or you will have conflicting updates to positions and\n > velocities resulting in unphysical behavior in most cases. When\n > performing a hybrid simulation with some atoms in rigid bodies, and\n > some not, a separate time integration fix like [fix nve > ](https://docs.lammps.org/fix_nve.html) or [fix nvt ](https://docs.lammps.org/fix_nh.html) should be used for the\n > non-rigid particles. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >These fixes are overkill if you simply want to hold a collection of\n > atoms stationary or have them move with a constant velocity. A\n > simpler way to hold atoms stationary is to not include those atoms\n > in your time integration fix. E.g. use \"fix 1 mobile nve\" instead\n > of \"fix 1 all nve\", where \"mobile\" is the group of atoms that you\n > want to move. You can move atoms with a constant velocity by\n > assigning them an initial velocity (via the [velocity > ](https://docs.lammps.org/velocity.html) command), setting the force on them to 0.0 (via the\n > [fix setforce ](https://docs.lammps.org/fix_setforce.html) command), and integrating them\n > as usual (e.g. via the [fix nve ](https://docs.lammps.org/fix_nve.html) command). \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >The aggregate properties of each rigid body are calculated at the\n > start of a simulation run and are maintained in internal data\n > structures. The properties include the position and velocity of the\n > center-of-mass of the body, its moments of inertia, and its angular\n > momentum. This is done using the properties of the constituent\n > atoms of the body at that point in time (or see the *infile*\n > keyword option). Thereafter, changing these properties of\n > individual atoms in the body will have no effect on a rigid body's\n > dynamics, unless they effect any computation of per-atom forces or\n > torques. If the keyword *reinit* is set to *yes* (the default), the\n > rigid body data structures will be recreated at the beginning of\n > each *run* command; if the keyword *reinit* is set to *no*, the\n > rigid body data structures will be built only at the very first\n > *run* command and maintained for as long as the rigid fix is\n > defined. For example, you might think you could displace the atoms\n > in a body or add a large velocity to each atom in a body to make it\n > move in a desired direction before a second run is performed, using\n > the [set ](https://docs.lammps.org/set.html) or [displace_atoms ](https://docs.lammps.org/displace_atoms.html) or\n > [velocity ](https://docs.lammps.org/velocity.html) commands. But these commands will not\n > affect the internal attributes of the body unless *reinit* is set\n > to *yes* . With *reinit* set to *no* (or using the *infile*\n > option, which implies *reinit* *no* ) the position and velocity of\n > individual atoms in the body will be reset when time integration\n > starts again. \n > \n\n----------\n\nEach rigid body must have two or more atoms. An atom can belong to at\nmost one rigid body. Which atoms are in which bodies can be defined\nvia several options.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >With the *rigid/small* styles, which require that *bodystyle* be\n > specified as *molecule* or *custom*, you can define a system that has\n > no rigid bodies initially. This is useful when you are using the\n > *mol* keyword in conjunction with another fix that is adding rigid\n > bodies on-the-fly as molecules, such as [fix deposit ](https://docs.lammps.org/fix_deposit.html)\n > or [fix pour ](https://docs.lammps.org/fix_pour.html). \n > \n\nFor bodystyle *single* the entire fix group of atoms is treated as one\nrigid body. This option is only allowed for the *rigid* styles.\n\nFor bodystyle *molecule*, atoms are grouped into rigid bodies by their\nrespective molecule IDs: each set of atoms in the fix group with the\nsame molecule ID is treated as a different rigid body. This option is\nallowed for both the *rigid* and *rigid/small* styles. Note that\natoms with a molecule ID = 0 will be treated as a single rigid body.\nFor a system with atomic solvent (typically this is atoms with\nmolecule ID = 0) surrounding rigid bodies, this may not be what you\nwant. Thus you should be careful to use a fix group that only\nincludes atoms you want to be part of rigid bodies.\n\nBodystyle *custom* is similar to bodystyle *molecule* except that it\nis more flexible in using other per-atom properties to define the sets\nof atoms that form rigid bodies. A custom per-atom integer vector\ndefined by the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command\ncan be used. Or an [atom-style or atomfile-style variable](https://docs.lammps.org/variable.html) can be used; the floating-point value produced by the\nvariable is rounded to an integer. As with bodystyle *molecule* ,\neach set of atoms in the fix groups with the same integer value is\ntreated as a different rigid body. Since fix property/atom custom\nvectors and atom-style variables produce values for all atoms, you\nshould be careful to use a fix group that only includes atoms you want\nto be part of rigid bodies.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To compute the initial center-of-mass position and other properties\n > of each rigid body, the image flags for each atom in the body are\n > used to \"unwrap\" the atom coordinates. Thus you must ensure that\n > these image flags are consistent so that the unwrapping creates a\n > valid rigid body (one where the atoms are close together),\n > particularly if the atoms in a single rigid body straddle a\n > periodic boundary. This means the input data file or restart file\n > must define the image flags for each atom consistently or that you\n > have used the [set ](https://docs.lammps.org/set.html) command to specify them correctly.\n > If a dimension is non-periodic then the image flag of each atom\n > must be 0 in that dimension, else an error is generated. \n > \n\nThe *force* and *torque* keywords discussed next are only allowed for\nthe *rigid* styles.\n\nBy default, each rigid body is acted on by other atoms which induce an\nexternal force and torque on its center of mass, causing it to\ntranslate and rotate. Components of the external center-of-mass force\nand torque can be turned off by the *force* and *torque* keywords.\nThis may be useful if you wish a body to rotate but not translate, or\nvice versa, or if you wish it to rotate or translate continuously\nunaffected by interactions with other particles. Note that if you\nexpect a rigid body not to move or rotate by using these keywords, you\nmust ensure its initial center-of-mass translational or angular\nvelocity is 0.0. Otherwise the initial translational or angular\nmomentum the body has will persist.\n\nAn xflag, yflag, or zflag set to *off* means turn off the component of\nforce of torque in that dimension. A setting of *on* means turn on\nthe component, which is the default. Which rigid body(s) the settings\napply to is determined by the first argument of the *force* and\n*torque* keywords. It can be an integer M from 1 to Nbody, where\nNbody is the number of rigid bodies defined. A wild-card asterisk can\nbe used in place of, or in conjunction with, the M argument to set the\nflags for multiple rigid bodies. This takes the form \"\\*\" or \"\\*n\" or\n\"n\\*\" or \"m\\*n\". If N = the number of rigid bodies, then an asterisk\nwith no numeric values means all bodies from 1 to N. A leading\nasterisk means all bodies from 1 to n (inclusive). A trailing\nasterisk means all bodies from n to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive). Note that you can use the\n*force* or *torque* keywords as many times as you like. If a\nparticular rigid body has its component flags set multiple times, the\nsettings from the final keyword are used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For computational efficiency, you may wish to turn off pairwise and\n > bond interactions within each rigid body, as they no longer\n > contribute to the motion. The [neigh_modify exclude > ](https://docs.lammps.org/neigh_modify.html) and [delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands are\n > used to do this. If the rigid bodies have strongly overlapping\n > atoms, you may need to turn off these interactions to avoid\n > numerical problems due to large equal/opposite intra-body forces\n > swamping the contribution of small inter-body forces. \n > \n\nFor computational efficiency, you should typically define one fix\nrigid or fix rigid/small command which includes all the desired rigid\nbodies. LAMMPS will allow multiple rigid fixes to be defined, but it\nis more expensive.\n\n----------\n\nThe constituent particles within a rigid body can be point particles\n(the default in LAMMPS) or finite-size particles, such as spheres or\nellipsoids or line segments or triangles. See the [atom_stylesphere and ellipsoid and line and tri ](https://docs.lammps.org/atom_style.html) commands for more\ndetails on these kinds of particles. Finite-size particles contribute\ndifferently to the moment of inertia of a rigid body than do point\nparticles. Finite-size particles can also experience torque (e.g. due\nto [frictional granular interactions ](https://docs.lammps.org/pair_gran.html)) and have an\norientation. These contributions are accounted for by these fixes.\n\nForces between particles within a body do not contribute to the\nexternal force or torque on the body. Thus for computational\nefficiency, you may wish to turn off pairwise and bond interactions\nbetween particles within each rigid body. The [neigh_modifyexclude ](https://docs.lammps.org/neigh_modify.html) and [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\ncommands are used to do this. For finite-size particles this also\nmeans the particles can be highly overlapped when creating the rigid\nbody.\n\n----------\n\nThe *rigid*, *rigid/nve*, *rigid/small*, and *rigid/small/nve* styles\nperform constant NVE time integration. They are referred to below as\nthe 4 NVE rigid styles. The only difference is that the *rigid* and\n*rigid/small* styles use an integration technique based on Richardson\niterations. The *rigid/nve* and *rigid/small/nve* styles uses the\nmethods described in the paper by **Miller3**, which are\nthought to provide better energy conservation than an iterative\napproach.\n\nThe *rigid/nvt* and *rigid/nvt/small* styles performs constant NVT\nintegration using a Nose/Hoover thermostat with chains as described\noriginally in **Hoover** and **Martyna2**, which thermostats both the translational and rotational\ndegrees of freedom of the rigid bodies. They are referred to below as\nthe 2 NVT rigid styles. The rigid-body algorithm used by *rigid/nvt*\nis described in the paper by **Kamberaj**.\n\nThe *rigid/npt*, *rigid/nph*, *rigid/npt/small*, and *rigid/nph/small*\nstyles perform constant NPT or NPH integration using a Nose/Hoover\nbarostat with chains. They are referred to below as the 4 NPT and NPH\nrigid styles. For the NPT case, the same Nose/Hoover thermostat is\nalso used as with *rigid/nvt* and *rigid/nvt/small* .\n\nThe barostat parameters are specified using one or more of the *iso*,\n*aniso*, *x*, *y*, *z* and *couple* keywords. These keywords give you\nthe ability to specify 3 diagonal components of the external stress\ntensor, and to couple these components together so that the dimensions\nthey represent are varied together during a constant-pressure\nsimulation. The effects of these keywords are similar to those\ndefined in [fix npt/nph ](https://docs.lammps.org/fix_nh.html)\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Currently the *rigid/npt*, *rigid/nph*, *rigid/npt/small*, and\n > *rigid/nph/small* styles do not support triclinic (non-orthogonal)\n > boxes. \n > \n\nThe target pressures for each of the 6 components of the stress tensor\ncan be specified independently via the *x*, *y*, *z* keywords, which\ncorrespond to the 3 simulation box dimensions. For each component,\nthe external pressure or tensor component at each timestep is a ramped\nvalue during the run from *Pstart* to *Pstop* . If a target pressure\nis specified for a component, then the corresponding box dimension\nwill change during a simulation. For example, if the *y* keyword is\nused, the y-box length will change. A box dimension will not change\nif that component is not specified, although you have the option to\nchange that dimension via the [fix deform ](https://docs.lammps.org/fix_deform.html) command.\n\nFor all barostat keywords, the *Pdamp* parameter operates like the\n*Tdamp* parameter, determining the time scale on which pressure is\nrelaxed. For example, a value of 10.0 means to relax the pressure in\na timespan of (roughly) 10 time units (e.g. \\(\\tau\\) or fs or ps\n- see the [units ](https://docs.lammps.org/units.html) command).\n\nRegardless of what atoms are in the fix group (the only atoms which\nare time integrated), a global pressure or stress tensor is computed\nfor all atoms. Similarly, when the size of the simulation box is\nchanged, all atoms are re-scaled to new positions, unless the keyword\n*dilate* is specified with a *dilate-group-ID* for a group that\nrepresents a subset of the atoms. This can be useful, for example, to\nleave the coordinates of atoms in a solid substrate unchanged and\ncontrolling the pressure of a surrounding fluid. Another example is a\nsystem consisting of rigid bodies and point particles where the\nbarostat is only coupled with the rigid bodies. This option should be\nused with care, since it can be unphysical to dilate some atoms and\nnot others, because it can introduce large, instantaneous\ndisplacements between a pair of atoms (one dilated, one not) that are\nfar from the dilation origin.\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together. The value specified\nwith the keyword determines which are coupled. For example, *xz*\nmeans the *Pxx* and *Pzz* components of the stress tensor are coupled.\n*Xyz* means all 3 diagonal components are coupled. Coupling means two\nthings: the instantaneous stress will be computed as an average of the\ncorresponding diagonal components, and the coupled box dimensions will\nbe changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. The\n*Pstart*, *Pstop*, *Pdamp* parameters for any coupled dimensions must\nbe identical. *Couple xyz* can be used for a 2d simulation; the *z*\ndimension is simply ignored.\n\nThe *iso* and *aniso* keywords are simply shortcuts that are\nequivalent to specifying several other keywords together.\n\nThe keyword *iso* means couple all 3 diagonal components together when\npressure is computed (hydrostatic pressure), and dilate/contract the\ndimensions together. Using \"iso Pstart Pstop Pdamp\" is the same as\nspecifying these 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple xyz\n```\nThe keyword *aniso* means *x*, *y*, and *z* dimensions are controlled\nindependently using the *Pxx*, *Pyy*, and *Pzz* components of the\nstress tensor as the driving forces, and the specified scalar external\npressure. Using \"aniso Pstart Pstop Pdamp\" is the same as specifying\nthese 4 keywords:\n\n```\nx Pstart Pstop Pdamp\ny Pstart Pstop Pdamp\nz Pstart Pstop Pdamp\ncouple none\n```\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe *reinit* keyword determines, whether the rigid body properties\nare re-initialized between run commands. With the option *yes* (the\ndefault) this is done, with the option *no* this is not done. Turning\noff the re-initialization can be helpful to protect rigid bodies against\nunphysical manipulations between runs or when properties cannot be\neasily re-computed (e.g. when read from a file). When using the *infile*\nkeyword, the *reinit* option is automatically set to *no* .\n\nThe *langevin* and *temp* and *tparam* keywords perform thermostatting\nof the rigid bodies, altering both their translational and rotational\ndegrees of freedom. What is meant by \"temperature\" of a collection of\nrigid bodies and how it can be monitored via the fix output is\ndiscussed below.\n\nThe *langevin* keyword applies a Langevin thermostat to the constant\nNVE time integration performed by any of the 4 NVE rigid styles:\n*rigid*, *rigid/nve*, *rigid/small*, *rigid/small/nve* . It cannot\nbe used with the 2 NVT rigid styles: *rigid/nvt*, *rigid/small/nvt* .\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (\\(\\tau\\) or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command). The random # *seed* must be a positive\ninteger.\n\nThe way that Langevin thermostatting operates is explained on the [fix langevin ](https://docs.lammps.org/fix_langevin.html) doc page. If you wish to simply viscously\ndamp the rotational motion without thermostatting, you can set\n*Tstart* and *Tstop* to 0.0, which means only the viscous drag term in\nthe Langevin thermostat will be applied. See the discussion on the\n[fix viscous ](https://docs.lammps.org/fix_viscous.html) page for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When the *langevin* keyword is used with fix rigid versus fix\n > rigid/small, different dynamics will result for parallel runs. This\n > is because of the way random numbers are used in the two cases. The\n > dynamics for the two cases should be statistically similar, but will\n > not be identical, even for a single timestep. \n > \n\nThe *temp* and *tparam* keywords apply a Nose/Hoover thermostat to the\nNVT time integration performed by the 2 NVT rigid styles. They cannot\nbe used with the 4 NVE rigid styles. The desired temperature at each\ntimestep is a ramped value during the run from *Tstart* to *Tstop* .\nThe *Tdamp* parameter is specified in time units and determines how\nrapidly the temperature is relaxed. For example, a value of 100.0\nmeans to relax the temperature in a timespan of (roughly) 100 time\nunits (tau or fs or ps - see the [units ](https://docs.lammps.org/units.html) command).\n\nNose/Hoover chains are used in conjunction with this thermostat. The\n*tparam* keyword can optionally be used to change the chain settings\nused. *Tchain* is the number of thermostats in the Nose Hoover chain.\nThis value, along with *Tdamp* can be varied to dampen undesirable\noscillations in temperature that can occur in a simulation. As a rule\nof thumb, increasing the chain length should lead to smaller\noscillations. The keyword *pchain* specifies the number of thermostats\nin the chain thermostatting the barostat degrees of freedom.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >There are alternate ways to thermostat a system of rigid bodies.\n > You can use [fix langevin ](https://docs.lammps.org/fix_langevin.html) to treat the\n > individual particles in the rigid bodies as effectively immersed in\n > an implicit solvent, e.g. a Brownian dynamics model. For hybrid\n > systems with both rigid bodies and solvent particles, you can\n > thermostat only the solvent particles that surround one or more\n > rigid bodies by appropriate choice of groups in the compute and fix\n > commands for temperature and thermostatting. The solvent\n > interactions with the rigid bodies should then effectively\n > thermostat the rigid body temperature as well without use of the\n > Langevin or Nose/Hoover options associated with the fix rigid\n > commands. \n > \n\n----------\n\nThe *mol* keyword can only be used with the *rigid/small* styles. It\nmust be used when other commands, such as [fix deposit](https://docs.lammps.org/fix_deposit.html) or [fix pour ](https://docs.lammps.org/fix_pour.html), add rigid bodies\non-the-fly during a simulation. You specify a *template-ID*\npreviously defined using the [molecule ](https://docs.lammps.org/molecule.html) command, which\nreads a file that defines the molecule. You must use the same\n*template-ID* that the other fix which is adding rigid bodies uses.\nThe coordinates, atom types, atom diameters, center-of-mass, and\nmoments of inertia can be specified in the molecule file. See the\n[molecule ](https://docs.lammps.org/molecule.html) command for details. The only settings\nrequired to be in this file are the coordinates and types of atoms in\nthe molecule, in which case the molecule command calculates the other\nquantities itself.\n\nNote that these other fixes create new rigid bodies, in addition to\nthose defined initially by this fix via the *bodystyle* setting.\n\nAlso note that when using the *mol* keyword, extra restart information\nabout all rigid bodies is written out whenever a restart file is\nwritten out. See the NOTE in the next section for details.\n\n----------\n\nThe *infile* keyword allows a file of rigid body attributes to be read\nin from a file, rather then having LAMMPS compute them. There are 5\nsuch attributes: the total mass of the rigid body, its center-of-mass\nposition, its 6 moments of inertia, its center-of-mass velocity, and\nthe 3 image flags of the center-of-mass position. For rigid bodies\nconsisting of point particles or non-overlapping finite-size\nparticles, LAMMPS can compute these values accurately.\n\nHowever, for rigid bodies consisting of finite-size particles which\noverlap each other, LAMMPS will ignore the overlaps when computing\nthese 4 attributes, which means the dynamics of the bodies will be\nincorrect. The amount of error this induces depends on the amount of\noverlap. To avoid this issue, the values can be pre-computed\n(e.g. using Monte Carlo integration).\n\nThe format of the file is as follows. Note that the file does not\nhave to list attributes for every rigid body integrated by fix rigid.\nOnly bodies which the file specifies will have their computed\nattributes overridden. The file can contain initial blank lines or\ncomment lines starting with \"#\" which are ignored. The first\nnon-blank, non-comment line should list N = the number of lines to\nfollow. The N successive lines contain the following information:\n\n```\nID1 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\nID2 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n...\nIDN masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz vxcm vycm vzcm lx ly lz ixcm iycm izcm\n```\nThe rigid body IDs are all positive integers. For the *single*\nbodystyle, only an ID of 1 can be used. For the *group* bodystyle,\nIDs from 1 to Ng can be used where Ng is the number of specified\ngroups. For the *molecule* bodystyle, use the molecule ID for the\natoms in a specific rigid body as the rigid body ID.\n\nThe masstotal and center-of-mass coordinates (xcm,ycm,zcm) are\nself-explanatory. The center-of-mass should be consistent with what\nis calculated for the position of the rigid body with all its atoms\nunwrapped by their respective image flags. If this produces a\ncenter-of-mass that is outside the simulation box, LAMMPS wraps it\nback into the box.\n\nThe 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the\nvalues consistent with the current orientation of the rigid body\naround its center of mass. The values are with respect to the\nsimulation box XYZ axes, not with respect to the principal axes of the\nrigid body itself. LAMMPS performs the latter calculation internally.\n\nThe (vxcm,vycm,vzcm) values are the velocity of the center of mass.\nThe (lx,ly,lz) values are the angular momentum of the body. The\n(vxcm,vycm,vzcm) and (lx,ly,lz) values can simply be set to 0 if you\nwish the body to have no initial motion.\n\nThe (ixcm,iycm,izcm) values are the image flags of the center of mass\nof the body. For periodic dimensions, they specify which image of the\nsimulation box the body is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of -1 means subtract 1 box length to\nget the true value. LAMMPS updates these flags as the rigid bodies\ncross periodic boundaries during the simulation.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you use the *infile* or *mol* keywords and write restart files\n > during a simulation, then each time a restart file is written, the\n > fix also write an auxiliary restart file with the name rfile.rigid,\n > where \"rfile\" is the name of the restart file,\n > e.g. tmp.restart.10000 and tmp.restart.10000.rigid. This auxiliary\n > file is in the same format described above. Thus it can be used in\n > a new input script that restarts the run and re-specifies a rigid\n > fix using an *infile* keyword and the appropriate filename. Note\n > that the auxiliary file will contain one line for every rigid body,\n > even if the original file only listed a subset of the rigid bodies. \n > \n\nIf the system has rigid bodies with finite-size overlapping particles\nand the model uses the [fix gravity ](https://docs.lammps.org/fix_gravity.html) command to\napply a gravitational force to the rigid bodies, then the *gravity*\nkeyword should be used in the following manner.\n\nFirst, the group specified for the [fix gravity ](https://docs.lammps.org/fix_gravity.html)\ncommand should not include any atoms in rigid bodies which have\noverlapping particles. It can be empty (see the [group empty](https://docs.lammps.org/group.html) command) or only contain single particles not in rigid\nbodies, e.g. background particles.\n\nSecond, the *infile* keyword should be used to specify the total mass\nand other properties of the rigid bodies with overlaps, so that their\ndynamics will be modeled correctly, as explained above.\n\nThird, the *gravity* keyword should be used the with the ID of the\n[fix gravity ](https://docs.lammps.org/fix_gravity.html) command as its argument. The rigid\nfixes will access the gravity fix to extract the current direction of\nthe gravity vector at each timestep (which can be static or dynamic).\nA gravity force will then be applied to each rigid body at its\ncenter-of-mass position using its total mass.\n\n----------\n\nIf you use a [temperature compute ](https://docs.lammps.org/compute.html) with a group that\nincludes particles in rigid bodies, the degrees-of-freedom removed by\neach rigid body are accounted for in the temperature (and pressure)\ncomputation, but only if the temperature group includes all the\nparticles in a particular rigid body.\n\nA 3d rigid body has 6 degrees of freedom (3 translational, 3\nrotational), except for a collection of point particles lying on a\nstraight line, which has only 5, e.g a dimer. A 2d rigid body has 3\ndegrees of freedom (2 translational, 1 rotational).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >You may wish to explicitly subtract additional\n > degrees-of-freedom if you use the *force* and *torque* keywords to\n > eliminate certain motions of one or more rigid bodies. LAMMPS does\n > not do this automatically. \n > \n\nThe rigid body contribution to the pressure of the system (virial) is\nalso accounted for by this fix.\n\n----------\n\nIf your simulation is a hybrid model with a mixture of rigid bodies\nand non-rigid particles (e.g. solvent) there are several ways these\nrigid fixes can be used in tandem with [fix nve ](https://docs.lammps.org/fix_nve.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html), and [fix nph](https://docs.lammps.org/fix_nh.html).\n\nIf you wish to perform NVE dynamics (no thermostatting or\nbarostatting), use one of 4 NVE rigid styles to integrate the rigid\nbodies, and [fix nve ](https://docs.lammps.org/fix_nve.html) to integrate the non-rigid\nparticles.\n\nIf you wish to perform NVT dynamics (thermostatting, but no\nbarostatting), you can use one of the 2 NVT rigid styles for the rigid\nbodies, and any thermostatting fix for the non-rigid particles\n([fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)). You can also use one\nof the 4 NVE rigid styles for the rigid bodies and thermostat them\nusing [fix langevin ](https://docs.lammps.org/fix_langevin.html) on the group that contains\nall the particles in the rigid bodies. The net force added by\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) to each rigid body effectively\nthermostats its translational center-of-mass motion. Not sure how\nwell it does at thermostatting its rotational motion.\n\nIf you wish to perform NPT or NPH dynamics (barostatting), you cannot\nuse both [fix npt ](https://docs.lammps.org/fix_nh.html) and the NPT or NPH rigid styles. This\nis because there can only be one fix which monitors the global\npressure and changes the simulation box dimensions. So you have 3\nchoices:\n\n#. Use one of the 4 NPT or NPH styles for the rigid bodies. Use the\n *dilate* all option so that it will dilate the positions of the\n non-rigid particles as well. Use [fix nvt ](https://docs.lammps.org/fix_nh.html) (or any\n other thermostat) for the non-rigid particles.\n#. Use [fix npt ](https://docs.lammps.org/fix_nh.html) for the group of non-rigid particles. Use\n the *dilate* all option so that it will dilate the center-of-mass\n positions of the rigid bodies as well. Use one of the 4 NVE or 2 NVT\n rigid styles for the rigid bodies.\n#. Use [fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html) to compute the\n pressure and change the box dimensions. Use one of the 4 NVE or 2 NVT\n rigid styles for the rigid bodies. Use [fix nvt ](https://docs.lammps.org/fix_nh.html) (or\n any other thermostat) for the non-rigid particles.\n\nIn all case, the rigid bodies and non-rigid particles both contribute\nto the global pressure and the box is scaled the same by any of the\nbarostatting fixes.\n\nYou could even use the second and third options for a non-hybrid\nsimulation consisting of only rigid bodies, assuming you give\n[fix npt ](https://docs.lammps.org/fix_nh.html) an empty group, though it's an odd thing to\ndo. The barostatting fixes ([fix npt ](https://docs.lammps.org/fix_nh.html) and [fixpress/berensen ](https://docs.lammps.org/fix_press_berendsen.html)) will monitor the pressure and\nchange the box dimensions, but not time integrate any particles. The\nintegration of the rigid bodies will be performed by fix rigid/nvt.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about the 4 NVE rigid styles is written to [binaryrestart files ](https://docs.lammps.org/restart.html). The exception is if the *infile* or *mol*\nkeyword is used, in which case an auxiliary file is written out with\nrigid body information each time a restart file is written, as\nexplained above for the *infile* keyword. For the 2 NVT rigid styles,\nthe state of the Nose/Hoover thermostat is written to [binaryrestart files ](https://docs.lammps.org/restart.html). Ditto for the 4 NPT and NPH rigid styles,\nand the state of the Nose/Hoover barostat. See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by the 4 NPT and NPH rigid styles to change the computes\nused to calculate the instantaneous pressure tensor. Note that the 2\nNVT rigid fixes do not use any external compute to compute\ninstantaneous temperature.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *bodyforces* option is supported by\nall rigid styles to set whether per-body forces and torques are\ncomputed early or late in a timestep, i.e. at the post-force stage or\nat the final-integrate stage or the timestep, respectively.\n\nThe cumulative energy change in the system imposed by the 6 NVT, NPT,\nNPH rigid fixes, via either thermostatting and/or barostatting, is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThe 2 NVE rigid fixes compute a global scalar which can be accessed by\nvarious [output commands ](https://docs.lammps.org/Howto_output.html). The scalar value\ncalculated by these fixes is \"intensive\". The scalar is the current\ntemperature of the collection of rigid bodies. This is averaged over\nall rigid bodies and their translational and rotational degrees of\nfreedom. The translational energy of a rigid body is 1/2 m v\\^2,\nwhere m = total mass of the body and v = the velocity of its center of\nmass. The rotational energy of a rigid body is 1/2 I w\\^2, where I =\nthe moment of inertia tensor of the body and w = its angular velocity.\nDegrees of freedom constrained by the *force* and *torque* keywords\nare removed from this calculation, but only for the *rigid* and\n*rigid/nve* fixes.\n\nThe 6 NVT, NPT, NPH rigid fixes compute a global scalar which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nis the same cumulative energy change due to these fixes described\nabove. The scalar value calculated by this fix is \"extensive\".\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthese fixes to add the contribution due to the added forces on atoms\nto both the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nAll of the *rigid* styles (but not the *rigid/small* styles) compute a\nglobal array of values which can be accessed by various [outputcommands ](https://docs.lammps.org/Howto_output.html). Similar information about the bodies\ndefined by the *rigid/small* styles can be accessed via the\n[compute rigid/local ](https://docs.lammps.org/compute_rigid_local.html) command.\n\nThe number of rows in the array is equal to the number of rigid\nbodies. The number of columns is 15. Thus for each rigid body, 15\nvalues are stored: the xyz coords of the center of mass (COM), the xyz\ncomponents of the COM velocity, the xyz components of the force acting\non the COM, the xyz components of the torque acting on the COM, and\nthe xyz image flags of the COM.\n\nThe center of mass (COM) for each body is similar to unwrapped\ncoordinates written to a dump file. It will always be inside (or\nslightly outside) the simulation box. The image flags have the same\nmeaning as image flags for atom positions (see the \"dump\" command).\nThis means you can calculate the unwrapped COM by applying the image\nflags to the COM, the same as when unwrapped coordinates are written\nto a dump file.\n\nThe force and torque values in the array are not affected by the\n*force* and *torque* keywords in the fix rigid command; they reflect\nvalues before any changes are made by those keywords.\n\nThe ordering of the rigid bodies (by row in the array) is as follows.\nFor the *single* keyword there is just one rigid body. For the\n*molecule* keyword, the bodies are ordered by ascending molecule ID.\nFor the *group* keyword, the list of group IDs determines the ordering\nof bodies.\n\nThe array values calculated by these fixes are \"intensive\", meaning\nthey are independent of the number of atoms in the simulation.\n\nNo parameter of these fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. These fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Zhang1)** Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004). \n \n**(Miller3)** Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,\nJ Chem Phys, 116, 8649 (2002). \n \n**(Hoover)** Hoover, Phys Rev A, 31, 1695 (1985). \n \n**(Martyna2)** Martyna, Klein, Tuckerman, J Chem Phys, 97, 2635 (1992);\nMartyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117. \n \n**(Kamberaj)** Kamberaj, Low, Neal, J Chem Phys, 122, 224114 (2005). \n ", - "restrictions": "These fixes are all part of the RIGID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAssigning a temperature via the [velocity create ](https://docs.lammps.org/velocity.html)\ncommand to a system with [rigid bodies ](https://docs.lammps.org/fix_rigid.html) may not have\nthe desired outcome for two reasons. First, the velocity command can\nbe invoked before the rigid-body fix is invoked or initialized and the\nnumber of adjusted degrees of freedom (DOFs) is known. Thus it is not\npossible to compute the target temperature correctly. Second, the\nassigned velocities may be partially canceled when constraints are\nfirst enforced, leading to a different temperature than desired. A\nworkaround for this is to perform a [run 0 ](https://docs.lammps.org/run.html) command, which\nensures all DOFs are accounted for properly, and then rescale the\ntemperature to the desired value before performing a simulation. For\nexample:\n\n```lmps\nvelocity all create 300.0 12345\nrun 0 # temperature may not be 300K\nvelocity all scale 300.0 # now it should be\n```\n", - "related": "[delete_bonds ](https://docs.lammps.org/delete_bonds.html), [neigh_modify ](https://docs.lammps.org/neigh_modify.html)\nexclude, [fix shake ](https://docs.lammps.org/fix_shake.html)\n" + "parameters": "* style = atom or type or mol or group or region\n* ID = depends on style \n *        for style = atom, ID = a range of atom IDs \n *        for style = type, ID = a range of numeric types or a single type label \n *        for style = mol, ID = a range of molecule IDs \n *        for style = group, ID = a group ID \n *        for style = region, ID = a region ID \n* one or more keyword/value pairs may be appended\n* keyword = type or type/fraction or type/ratio or type/subset\n or mol or x or y or z or vx or vy or vz or charge or\n dipole or dipole/random or quat or spin/atom or spin/atom/random or\n spin/electron or radius/electron or\n quat or quat/random or diameter or shape or length or tri or\n theta or theta/random or angmom or omega or\n mass or density or density/disc or temperature or\n volume or image or bond or angle or dihedral or\n improper or sph/e or sph/cv or sph/rho or\n smd/contact/radius or smd/mass/density or dpd/theta or\n edpd/temp or edpd/cv or cc or epsilon or\n i_name or d_name or i2_name or d2_name \n *        type value = numeric atom type or type label \n         value can be an atom-style variable (see below) \n *        type/fraction values = type fraction seed \n         type = numeric atom type or type label \n         fraction = approximate fraction of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        type/ratio values = type fraction seed \n         type = numeric atom type or type label \n         fraction = exact fraction of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        type/subset values = type Nsubset seed \n         type = numeric atom type or type label \n         Nsubset = exact number of selected atoms to set to new atom type \n         seed = random # seed (positive integer) \n *        mol value = molecule ID \n *        value can be an atom-style variable (see below) \n *        x, y, z value = atom coordinate (distance units) \n         value can be an atom-style variable (see below) \n *        vx, vy, vz value = atom velocity (velocity units) \n         value can be an atom-style variable (see below) \n *        charge value = atomic charge (charge units) \n         value can be an atom-style variable (see below) \n *        dipole values = x y z \n         x,y,z = orientation of dipole moment vector \n         any of x,y,z can be an atom-style variable (see below) \n *        dipole/random value = seed Dlen \n         seed = random # seed (positive integer) for dipole moment orientations \n         Dlen = magnitude of dipole moment (dipole units) \n *        spin/atom values = g x y z \n         g = magnitude of magnetic spin vector (in Bohr magneton's unit) \n         x,y,z = orientation of magnetic spin vector \n         any of x,y,z can be an atom-style variable (see below) \n *        spin/atom/random value = seed Dlen \n         seed = random # seed (positive integer) for magnetic spin orientations \n         Dlen = magnitude of magnetic spin vector (in Bohr magneton's unit) \n *        radius/electron values = eradius \n         eradius = electron radius (or fixed-core radius) (distance units) \n *        spin/electron value = espin \n         espin = electron spin (+1/-1), 0 = nuclei, 2 = fixed-core, 3 = pseudo-cores (i.e. ECP) \n *        quat values = a b c theta \n         a,b,c = unit vector to rotate particle around via right-hand rule \n         theta = rotation angle (degrees) \n         any of a,b,c,theta can be an atom-style variable (see below) \n *        quat/random value = seed \n         seed = random # seed (positive integer) for quaternion orientations \n *        diameter value = diameter of spherical particle (distance units) \n         value can be an atom-style variable (see below) \n *        shape value = Sx Sy Sz \n         Sx,Sy,Sz = 3 diameters of ellipsoid (distance units) \n *        length value = len \n         len = length of line segment (distance units) \n         len can be an atom-style variable (see below) \n *        tri value = side \n         side = side length of equilateral triangle (distance units) \n         side can be an atom-style variable (see below) \n *        theta value = angle (degrees) \n         angle = orientation of line segment with respect to x-axis \n         angle can be an atom-style variable (see below) \n *        theta/random value = seed \n         seed = random # seed (positive integer) for line segment orienations \n *        angmom values = Lx Ly Lz \n         Lx,Ly,Lz = components of angular momentum vector (distance-mass-velocity units) \n         any of Lx,Ly,Lz can be an atom-style variable (see below) \n *        omega values = Wx Wy Wz \n         Wx,Wy,Wz = components of angular velocity vector (radians/time units) \n         any of wx,wy,wz can be an atom-style variable (see below) \n *        mass value = per-atom mass (mass units) \n         value can be an atom-style variable (see below) \n *        density value = particle density for a sphere or ellipsoid (mass/distance\\^3 units), or for a triangle (mass/distance\\^2 units) or line (mass/distance units) particle \n         value can be an atom-style variable (see below) \n *        density/disc value = particle density for a 2d disc or ellipse (mass/distance\\^2 units) \n         value can be an atom-style variable (see below) \n *        temperature value = temperature for finite-size particles (temperature units) \n         value can be an atom-style variable (see below) \n *        volume value = particle volume for Peridynamic particle (distance\\^3 units) \n         value can be an atom-style variable (see below) \n *        image nx ny nz \n         nx,ny,nz = which periodic image of the simulation box the atom is in \n         any of nx,ny,nz can be an atom-style variable (see below) \n *        bond value = numeric bond type or bond type label, for all bonds between selected atoms \n *        angle value = numeric angle type or angle type label, for all angles between selected atoms \n *        dihedral value = numeric dihedral type or dihedral type label, for all dihedrals between selected atoms \n *        improper value = numeric improper type or improper type label, for all impropers between selected atoms \n *        sph/e value = energy of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        sph/cv value = heat capacity of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        sph/rho value = density of SPH particles (need units) \n         value can be an atom-style variable (see below) \n *        smd/contact/radius = radius for short range interactions, i.e. contact and friction \n         value can be an atom-style variable (see below) \n *        smd/mass/density = set particle mass based on volume by providing a mass density \n         value can be an atom-style variable (see below) \n *        dpd/theta value = internal temperature of DPD particles (temperature units) \n         value can be an atom-style variable (see below) \n         value can be NULL which sets internal temp of each particle to KE temp \n *        edpd/temp value = temperature of eDPD particles (temperature units) \n         value can be an atom-style variable (see below) \n *        edpd/cv value = volumetric heat capacity of eDPD particles (energy/temperature/volume units) \n         value can be an atom-style variable (see below) \n *        cc values = index cc \n         index = index of a chemical species (1 to Nspecies) \n         cc = chemical concentration of tDPD particles for a species (mole/volume units) \n *        epsilon value = dielectric constant of the medium where the atoms reside \n *        i_name value = custom integer vector with name \n *        d_name value = custom floating-point vector with name \n *        i2_name value = column of a custom integer array with name \n         column specified as i2_name[N] where N is 1 to Ncol \n *        d2_name value = column of a custom floating-point array with name \n         column specified as d2_name[N] where N is 1 to Ncol \n", + "examples": "\n```lmps\nset group solvent type 2\nset group solvent type C\nset group solvent type/fraction 2 0.5 12393\nset group solvent type/fraction C 0.5 12393\nset group edge bond 4\nset region half charge 0.5\nset type 3 charge 0.5\nset type H charge 0.5\nset type 1*3 charge 0.5\nset atom * charge v_atomfile\nset atom 100*200 x 0.5 y 1.0\nset atom 100 vx 0.0 vy 0.0 vz -1.0\nset atom 1492 type 3\nset atom 1492 type H\nset atom * i_myVal 5\nset atom * d2_Sxyz[1] 6.4\n```\n", + "html_filename": "set.html", + "short_description": "Set one or more properties of one or more atoms", + "description": "Set one or more properties of one or more atoms. Since atom\nproperties are initially assigned by the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html) or [create_atoms ](https://docs.lammps.org/create_atoms.html)\ncommands, this command changes those assignments. This can be useful\nfor overriding the default values assigned by the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command (e.g. charge = 0.0). It can\nbe useful for altering pairwise and molecular force interactions,\nsince force-field coefficients are defined in terms of types. It can\nbe used to change the labeling of atoms by atom type or molecule ID\nwhen they are output in [dump ](https://docs.lammps.org/dump.html) files. It can also be useful\nfor debugging purposes; i.e. positioning an atom at a precise location\nto compute subsequent forces or energy.\n\nNote that the *style* and *ID* arguments determine which atoms have\ntheir properties reset. The remaining keywords specify which\nproperties to reset and what the new values are. Some strings like\n*type* or *mol* can be used as a style and/or a keyword.\n\n----------\n\nThis section describes how to select which atoms to change\nthe properties of, via the *style* and *ID* arguments.\n\n **New in version 28Mar2023** \n\n Support for type labels was added for selecting atoms by type\nThe style *atom* selects all the atoms in a range of atom IDs.\n\nThe style *type* selects all the atoms in a range of types or type\nlabels. The style *type* selects atoms in one of two ways. A range\nof numeric atom types can be specified. Or a single atom type label\ncan be specified, e.g. \"C\". The style *mol* selects all the atoms in\na range of molecule IDs.\n\nIn each of the range cases, the range can be specified as a single\nnumeric value, or a wildcard asterisk can be used to specify a range\nof values. This takes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". For\nexample, for the style *type*, if N = the number of atom types, then\nan asterisk with no numeric values means all types from 1 to N. A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive). For all the styles except\n*mol*, the lowest value for the wildcard is 1; for *mol* it is 0.\n\nThe style *group* selects all the atoms in the specified group. The\nstyle *region* selects all the atoms in the specified geometric\nregion. See the [group ](https://docs.lammps.org/group.html) and [region ](https://docs.lammps.org/region.html) commands\nfor details of how to specify a group or region.\n\n----------\n\nThis section describes the keyword options for which properties to\nchange, for the selected atoms.\n\nNote that except where explicitly prohibited below, all of the\nkeywords allow an [atom-style or atomfile-style variable](https://docs.lammps.org/variable.html) to be used as the specified value(s). If the value is a\nvariable, it should be specified as v_name, where name is the\nvariable name. In this case, the variable will be evaluated, and its\nresulting per-atom value used to determine the value assigned to each\nselected atom. Note that the per-atom value from the variable will be\nignored for atoms that are not selected via the *style* and *ID*\nsettings explained above. A simple way to use per-atom values from\nthe variable to reset a property for all atoms is to use style *atom*\nwith *ID* = \"\\*\"; this selects all atom IDs.\n\nAtom-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. They can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a time-dependent or\nspatially-dependent set of per-atom values. As explained on the\n[variable ](https://docs.lammps.org/variable.html) doc page, atomfile-style variables can be\nused in place of atom-style variables, and thus as arguments to the\nset command. Atomfile-style variables read their per-atoms values\nfrom a file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Atom-style and atomfile-style variables return floating point\n > per-atom values. If the values are assigned to an integer variable,\n > such as the molecule ID, then the floating point value is truncated to\n > its integer portion, e.g. a value of 2.6 would become 2. \n > \n\n\n **New in version 28Mar2023** \n\n Support for type labels was added for setting atom, bond, angle,\n dihedral, and improper types\nKeyword *type* sets the atom type for all selected atoms. A specified\nvalue can be either a numeric atom type or an atom type label. When\nusing a numeric type, the specified value must be from 1 to ntypes,\nwhere ntypes was set by the [create_box ](https://docs.lammps.org/create_box.html) command or\nthe *atom types* field in the header of the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. When using a type label it must\nhave been defined previously. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\n\nKeyword *type/fraction* sets the atom type for a fraction of the selected\natoms. The actual number of atoms changed is not guaranteed\nto be exactly the specified fraction (0 <= *fraction* <= 1), but\nshould be statistically close. Random numbers are used in such a way\nthat a particular atom is changed or not changed, regardless of how\nmany processors are being used. This keyword does not allow use of an\natom-style variable.\n\nKeywords *type/ratio* and *type/subset* also set the atom type for a\nfraction of the selected atoms. The actual number of atoms changed\nwill be exactly the requested number. For *type/ratio* the specified\nfraction (0 <= *fraction* <= 1) determines the number. For\n*type/subset*, the specified *Nsubset* is the number. An iterative\nalgorithm is used which ensures the correct number of atoms are\nselected, in a perfectly random fashion. Which atoms are selected\nwill change with the number of processors used. These keywords do not\nallow use of an atom-style variable.\n\nKeyword *mol* sets the molecule ID for all selected atoms. The\n[atom style ](https://docs.lammps.org/atom_style.html) being used must support the use of\nmolecule IDs.\n\nKeywords *x*, *y*, *z*, and *charge* set the coordinates or\ncharge of all selected atoms. For *charge*, the [atom style](https://docs.lammps.org/atom_style.html) being used must support the use of atomic\ncharge. Keywords *vx*, *vy*, and *vz* set the velocities of all\nselected atoms.\n\nKeyword *dipole* uses the specified x,y,z values as components of a\nvector to set as the orientation of the dipole moment vectors of the\nselected atoms. The magnitude of the dipole moment is set by the\nlength of this orientation vector.\n\nKeyword *dipole/random* randomizes the orientation of the dipole\nmoment vectors for the selected atoms and sets the magnitude of each\nto the specified *Dlen* value. For 2d systems, the z component of the\norientation is set to 0.0. Random numbers are used in such a way that\nthe orientation of a particular atom is the same, regardless of how\nmany processors are being used. This keyword does not allow use of an\natom-style variable.\n\nKeyword *spin/atom* uses the specified g value to set the magnitude of the\nmagnetic spin vectors, and the x,y,z values as components of a vector\nto set as the orientation of the magnetic spin vectors of the selected\natoms. This keyword was previously called *spin*.\n\nKeyword *spin/atom/random* randomizes the orientation of the magnetic spin\nvectors for the selected atoms and sets the magnitude of each to the\nspecified *Dlen* value. This keyword was previously called *spin/random*.\n\nKeyword *radius/electron* uses the specified value to set the radius of\nelectrons or fixed cores.\n\nKeyword *spin/electron* sets the spin of an electron (+/- 1) or indicates\nnuclei (=0), fixed-cores (=2), or pseudo-cores (= 3).\n\nKeyword *quat* uses the specified values to create a quaternion\n(4-vector) that represents the orientation of the selected atoms. The\nparticles must define a quaternion for their orientation\n(e.g. ellipsoids, triangles, body particles) as defined by the\n[atom_style ](https://docs.lammps.org/atom_style.html) command. Note that particles defined by\n[atom_style ellipsoid ](https://docs.lammps.org/atom_style.html) have 3 shape parameters. The 3\nvalues must be non-zero for each particle set by this command. They\nare used to specify the aspect ratios of an ellipsoidal particle,\nwhich is oriented by default with its x-axis along the simulation\nbox's x-axis, and similarly for y and z. If this body is rotated (via\nthe right-hand rule) by an angle theta around a unit rotation vector\n(a,b,c), then the quaternion that represents its new orientation is\ngiven by (cos(theta/2), a\\*sin(theta/2), b\\*sin(theta/2),\nc\\*sin(theta/2)). The theta and a,b,c values are the arguments to the\n*quat* keyword. LAMMPS normalizes the quaternion in case (a,b,c) was\nnot specified as a unit vector. For 2d systems, the a,b,c values are\nignored, since a rotation vector of (0,0,1) is the only valid choice.\n\nKeyword *quat/random* randomizes the orientation of the quaternion for\nthe selected atoms. The particles must define a quaternion for their\norientation (e.g. ellipsoids, triangles, body particles) as defined by\nthe [atom_style ](https://docs.lammps.org/atom_style.html) command. Random numbers are used in\nsuch a way that the orientation of a particular atom is the same,\nregardless of how many processors are being used. For 2d systems,\nonly orientations in the xy plane are generated. As with keyword\n*quat*, for ellipsoidal particles, the 3 shape values must be non-zero\nfor each particle set by this command. This keyword does not allow\nuse of an atom-style variable.\n\nKeyword *diameter* sets the size of the selected atoms. The particles\nmust be finite-size spheres as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The diameter of a particle can be set to 0.0,\nwhich means they will be treated as point particles. Note that this\ncommand does not adjust the particle mass, even if it was defined with\na density, e.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *shape* sets the size and shape of the selected atoms. The\nparticles must be ellipsoids as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command. The *Sx*, *Sy*, *Sz* settings\nare the 3 diameters of the ellipsoid in each direction. All 3 can be\nset to the same value, which means the ellipsoid is effectively a\nsphere. They can also all be set to 0.0 which means the particle will\nbe treated as a point particle. Note that this command does not\nadjust the particle mass, even if it was defined with a density,\ne.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *length* sets the length of selected atoms. The particles\nmust be line segments as defined by the [atom_style line](https://docs.lammps.org/atom_style.html) command. If the specified value is non-zero the line\nsegment is (re)set to a length = the specified value, centered around\nthe particle position, with an orientation along the x-axis. If the\nspecified value is 0.0, the particle will become a point particle.\nNote that this command does not adjust the particle mass, even if it\nwas defined with a density, e.g. via the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\nKeyword *tri* sets the size of selected atoms. The particles must be\ntriangles as defined by the [atom_style tri ](https://docs.lammps.org/atom_style.html) command.\nIf the specified value is non-zero the triangle is (re)set to be an\nequilateral triangle in the xy plane with side length = the specified\nvalue, with a centroid at the particle position, with its base\nparallel to the x axis, and the y-axis running from the center of the\nbase to the top point of the triangle. If the specified value is 0.0,\nthe particle will become a point particle. Note that this command\ndoes not adjust the particle mass, even if it was defined with a\ndensity, e.g. via the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nKeyword *theta* sets the orientation of selected atoms. The particles\nmust be line segments as defined by the [atom_style line](https://docs.lammps.org/atom_style.html) command. The specified value is used to set the\norientation angle of the line segments with respect to the x axis.\n\nKeyword *theta/random* randomizes the orientation of theta for the\nselected atoms. The particles must be line segments as defined by the\n[atom_style line ](https://docs.lammps.org/atom_style.html) command. Random numbers are used in\nsuch a way that the orientation of a particular atom is the same,\nregardless of how many processors are being used. This keyword does\nnot allow use of an atom-style variable.\n\nKeyword *angmom* sets the angular momentum of selected atoms. The\nparticles must be ellipsoids as defined by the [atom_styleellipsoid ](https://docs.lammps.org/atom_style.html) command or triangles as defined by the\n[atom_style tri ](https://docs.lammps.org/atom_style.html) command. The angular momentum\nvector of the particles is set to the 3 specified components.\n\nKeyword *omega* sets the angular velocity of selected atoms. The\nparticles must be spheres as defined by the [atom_style sphere](https://docs.lammps.org/atom_style.html) command. The angular velocity vector of the particles is\nset to the 3 specified components.\n\nKeyword *mass* sets the mass of all selected particles. The particles\nmust have a per-atom mass attribute, as defined by the [atom_style](https://docs.lammps.org/atom_style.html) command. See the \"mass\" command for how to set mass\nvalues on a per-type basis.\n\nKeyword *density* or *density/disc* also sets the mass of all selected\nparticles, but in a different way. The particles must have a per-atom\nmass attribute, as defined by the [atom_style ](https://docs.lammps.org/atom_style.html)\ncommand. If the atom has a radius attribute (see [atom_stylesphere ](https://docs.lammps.org/atom_style.html)) and its radius is non-zero, its mass is set from\nthe density and particle volume for 3d systems (the input density is\nassumed to be in mass/distance\\^3 units). For 2d, the default is for\nLAMMPS to model particles with a radius attribute as spheres. However,\nif the *density/disc* keyword is used, then they can be modeled as 2d\ndiscs (circles). Their mass is set from the density and particle area\n(the input density is assumed to be in mass/distance\\^2 units).\n\nIf the atom has a shape attribute (see [atom_style ellipsoid](https://docs.lammps.org/atom_style.html)) and its 3 shape parameters are non-zero, then its mass is\nset from the density and particle volume (the input density is assumed\nto be in mass/distance\\^3 units). The *density/disc* keyword has no\neffect; it does not (yet) treat 3d ellipsoids as 2d ellipses.\n\nIf the atom has a length attribute (see [atom_style line](https://docs.lammps.org/atom_style.html)) and its length is non-zero, then its mass is set from the\ndensity and line segment length (the input density is assumed to be in\nmass/distance units). If the atom has an area attribute (see\n[atom_style tri ](https://docs.lammps.org/atom_style.html)) and its area is non-zero, then its\nmass is set from the density and triangle area (the input density is\nassumed to be in mass/distance\\^2 units).\n\nIf none of these cases are valid, then the mass is set to the density\nvalue directly (the input density is assumed to be in mass units).\n\nKeyword *temperature* sets the temperature of a finite-size particle.\nCurrently, only the GRANULAR package supports this attribute. The\ntemperature must be added using an instance of\n[fix property/atom ](https://docs.lammps.org/fix_property_atom.html) The values for the\ntemperature must be positive.\n\nKeyword *volume* sets the volume of all selected particles. Currently,\nonly the [atom_style peri ](https://docs.lammps.org/atom_style.html) command defines particles\nwith a volume attribute. Note that this command does not adjust the\nparticle mass.\n\nKeyword *image* sets which image of the simulation box the atom is\nconsidered to be in. An image of 0 means it is inside the box as\ndefined. A value of 2 means add 2 box lengths to get the true value. A\nvalue of -1 means subtract 1 box length to get the true value. LAMMPS\nupdates these flags as atoms cross periodic boundaries during the\nsimulation. The flags can be output with atom snapshots via the\n[dump ](https://docs.lammps.org/dump.html) command. If a value of NULL is specified for any of\nnx,ny,nz, then the current image value for that dimension is unchanged.\nFor non-periodic dimensions only a value of 0 can be specified. This\ncommand can be useful after a system has been equilibrated and atoms\nhave diffused one or more box lengths in various directions. This\ncommand can then reset the image values for atoms so that they are\neffectively inside the simulation box, e.g if a diffusion coefficient is\nabout to be measured via the [compute msd ](https://docs.lammps.org/compute_msd.html) command.\nCare should be taken not to reset the image flags of two atoms in a bond\nto the same value if the bond straddles a periodic boundary (rather they\nshould be different by +/- 1). This will not affect the dynamics of a\nsimulation, but may mess up analysis of the trajectories if a LAMMPS\ndiagnostic or your own analysis relies on the image flags to unwrap a\nmolecule which straddles the periodic box.\n\nKeywords *bond*, *angle*, *dihedral*, and *improper*, set the bond\ntype (angle type, etc) of all bonds (angles, etc) of selected atoms to\nthe specified value. The value can be a numeric type from 1 to\nnbondtypes (nangletypes, etc). Or it can be a type label (bond type\nlabel, angle type label, etc). See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used. All atoms in\na particular bond (angle, etc) must be selected atoms in order for the\nchange to be made. The value of nbondtypes (nangletypes, etc) was set\nby the *bond types* (\\ *angle types*, etc) field in the header of the\ndata file read by the [read_data ](https://docs.lammps.org/read_data.html) command. These\nkeywords do not allow use of an atom-style variable.\n\nKeywords *sph/e*, *sph/cv*, and *sph/rho* set the energy, heat capacity,\nand density of smoothed particle hydrodynamics (SPH) particles. See\n[this PDF guide ](https://docs.lammps.org/PDF/SPH_LAMMPS_userguide.pdf) to using SPH in LAMMPS.\n\nKeyword *smd/mass/density* sets the mass of all selected particles, but\nit is only applicable to the Smooth Mach Dynamics package MACHDYN. It\nassumes that the particle volume has already been correctly set and\ncalculates particle mass from the provided mass density value.\n\nKeyword *smd/contact/radius* only applies to simulations with the Smooth\nMach Dynamics package MACHDYN. Itsets an interaction radius for\ncomputing short-range interactions, e.g. repulsive forces to prevent\ndifferent individual physical bodies from penetrating each other. Note\nthat the SPH smoothing kernel diameter used for computing long range,\nnonlocal interactions, is set using the *diameter* keyword.\n\nKeyword *dpd/theta* sets the internal temperature of a DPD particle as\ndefined by the DPD-REACT package. If the specified value is a number it\nmust be >= 0.0. If the specified value is NULL, then the kinetic\ntemperature Tkin of each particle is computed as 3/2 k Tkin = KE = 1/2 m\nv\\^2 = 1/2 m (vx\\*vx+vy\\*vy+vz\\*vz). Each particle's internal\ntemperature is set to Tkin. If the specified value is an atom-style\nvariable, then the variable is evaluated for each particle. If a value\n>= 0.0, the internal temperature is set to that value. If it is < 0.0,\nthe computation of Tkin is performed and the internal temperature is set\nto that value.\n\nKeywords *edpd/temp* and *edpd/cv* set the temperature and volumetric\nheat capacity of an eDPD particle as defined by the DPD-MESO package.\nCurrently, only [atom_style edpd ](https://docs.lammps.org/atom_style.html) defines particles\nwith these attributes. The values for the temperature and heat capacity\nmust be positive.\n\nKeyword *cc* sets the chemical concentration of a tDPD particle for a\nspecified species as defined by the DPD-MESO package. Currently, only\n[atom_style tdpd ](https://docs.lammps.org/atom_style.html) defines particles with this\nattribute. An integer for \"index\" selects a chemical species (1 to\nNspecies) where Nspecies is set by the atom_style command. The value for\nthe chemical concentration must be >= 0.0.\n\nKeyword *epsilon* sets the dielectric constant of a particle, precisely\nof the medium where the particle resides as defined by the DIELECTRIC\npackage. Currently, only [atom_style dielectric ](https://docs.lammps.org/atom_style.html)\ndefines particles with this attribute. The value for the dielectric\nconstant must be >= 0.0. Note that the set command with this keyword\nwill rescale the particle charge accordingly so that the real charge\n(e.g., as read from a data file) stays intact. To change the real\ncharges, one needs to use the set command with the *charge*\nkeyword. Care must be taken to ensure that the real and scaled charges,\nand dielectric constants are consistent.\n\nKeywords *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom\nper-atom integer and floating-point vectors or arrays that have been\nadded via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html) command.\nWhen that command is used specific names are given to each attribute\nwhich are the \"name\" portion of these keywords. For arrays *i2_name*\nand *d2_name*, the column of the array must also be included following\nthe name in brackets: e.g. d2_xyz[2], i2_mySpin[3].\n", + "restrictions": "You cannot set an atom attribute (e.g. *mol* or *q* or *volume* ) if\nthe [atom_style ](https://docs.lammps.org/atom_style.html) does not have that attribute.\n\nThis command requires inter-processor communication to coordinate the\nsetting of bond types (angle types, etc). This means that your system\nmust be ready to perform a simulation before using one of these\nkeywords (force fields set, atom mass set, etc). This is not\nnecessary for other keywords.\n\nUsing the *region* style with the bond (angle, etc) keywords can give\nunpredictable results if there are bonds (angles, etc) that straddle\nperiodic boundaries. This is because the region may only extend up to\nthe boundary and partner atoms in the bond (angle, etc) may have\ncoordinates outside the simulation box if they are ghost atoms.\n", + "related": "[create_box ](https://docs.lammps.org/create_box.html), [create_atoms ](https://docs.lammps.org/create_atoms.html),\n[read_data ](https://docs.lammps.org/read_data.html)\n" }, { "command": [ - "angle_style gaussian" + "fix propel/self" ], "syntax": [ - "angle_style gaussian" + "fix ID group-ID propel/self mode magnitude keyword values" ], "args": [ [ { - "arg": "angle_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "gaussian", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\nangle_style gaussian\nangle_coeff 1 300.0 2 0.0128 0.375 80.0 0.0730 0.148 123.0\n```\n", - "html_filename": "angle_gaussian.html", - "short_description": "The *gaussian* angle style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(\\theta-\\theta_{i})^2}{w_i^2}\\right) \\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano1**", - "description": "The *gaussian* angle style uses the potential:\n\\[\n E = -k_B T ln\\left(\\sum_{i=1}^{n} \\frac{A_i}{w_i \\sqrt{\\pi/2}} exp\\left( \\frac{-2(\\theta-\\theta_{i})^2}{w_i^2}\\right) \\right)\\]\nThis analytical form is a suitable potential for obtaining mesoscale\neffective force fields which can reproduce target atomistic\ndistributions **Milano1**.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(T\\) temperature at which the potential was derived\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (> 0, radians)\n* \\(w_1\\) (> 0, radians)\n* \\(\\theta_1\\) (degrees)\n* ...\n* \\(A_n\\) (> 0, radians)\n* \\(w_n\\) (> 0, radians)\n* \\(\\theta_n\\) (degrees)\n\n**(Milano1)** G. Milano, S. Goudeau, F. Mueller-Plathe, J. Polym. Sci. B Polym. Phys. 43, 871 (2005). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" -}, -{ - "command": [ - "improper_style ring", - "improper_style ring/omp" - ], - "syntax": [ - "improper_style ring" - ], - "args": [ - [ + }, { - "arg": "improper_style", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "propel/self", "type": 1, "choices": [] }, { - "arg": "ring", + "arg": "quat", "type": 3, "choices": [ - "ring", - "ring/omp" + "dipole", + "velocity", + "quat" ] + }, + { + "arg": "magnitude", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style ring\nimproper_coeff 1 8000 70.5\n```\n", - "html_filename": "improper_ring.html", - "short_description": "The *ring* improper style uses the potential\n\\[\\begin{align*} \n E = &\\frac{1}{6} K \\left(\\Delta_{ijl} + \\Delta_{ijk} + \\Delta_{kjl} \\right)^6 \\\\\n \\Delta_{ijl} = & \\cos{\\theta_{ijl} - \\cos{\\theta_0}} \\\\\n \\Delta_{ijk} = & \\cos{\\theta_{ijk} - \\cos{\\theta_0}} \\\\\n \\Delta_{kjl} = & \\cos{\\theta_{kjl} - \\cos{\\theta_0}} \\end{align*} \\]\nwhere \\(K\\) is a prefactor, \\(\\theta\\) is the angle formed by\nthe atoms specified by (i,j,k,l) indices and \\(\\theta_0\\) its\nequilibrium value", - "description": "The *ring* improper style uses the potential\n\\[\\begin{align*} \n E = &\\frac{1}{6} K \\left(\\Delta_{ijl} + \\Delta_{ijk} + \\Delta_{kjl} \\right)^6 \\\\\n \\Delta_{ijl} = & \\cos{\\theta_{ijl} - \\cos{\\theta_0}} \\\\\n \\Delta_{ijk} = & \\cos{\\theta_{ijk} - \\cos{\\theta_0}} \\\\\n \\Delta_{kjl} = & \\cos{\\theta_{kjl} - \\cos{\\theta_0}} \\end{align*} \\]\nwhere \\(K\\) is a prefactor, \\(\\theta\\) is the angle formed by\nthe atoms specified by (i,j,k,l) indices and \\(\\theta_0\\) its\nequilibrium value.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered i,j,k,l then\n\\(\\theta_{ijl}\\) is the angle between atoms i,j and l,\n\\(\\theta_{ijk}\\) is the angle between atoms i,j and k,\n\\(\\theta_{kjl}\\) is the angle between atoms j,k, and l.\n\nThe \"ring\" improper style implements the improper potential introduced\nby Destree et al., in Equation (9) of **Destree**. This\npotential does not affect small amplitude vibrations but is used in an\nad-hoc way to prevent the onset of accidentally large amplitude\nfluctuations leading to the occurrence of a planar conformation of the\nthree bonds i-j, j-k and j-l, an intermediate conformation toward the\nchiral inversion of a methine carbon. In the \"Impropers\" section of\ndata file four atoms: i, j, k and l are specified with i,j and l lying\non the backbone of the chain and k specifying the chirality of j.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\theta_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Destree)** M. Destree, F. Laupretre, A. Lyulin, and J.-P. Ryckaert,\nJ Chem Phys, 112, 9632 (2000). \n ", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n\n.. _Destree:\n\n**(Destree)** M. Destree, F. Laupretre, A. Lyulin, and J.-P. Ryckaert,\nJ Chem Phys, 112, 9632 (2000).\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* propel/self = style name of this fix command\n* mode = dipole or velocity or quat\n* magnitude = magnitude of self-propulsion force\n* zero or one keyword/value pairs may be appended\n* keyword = qvector \n *        qvector value = direction of force in ellipsoid frame \n         *sx*, *sy*, sz = components of qvector \n", + "examples": "\n```lmps\nfix active all propel/self dipole 40.0\nfix active all propel/self velocity 10.0\nfix active all propel/self quat 15.7 qvector 1.0 0.0 0.0\n```\n", + "html_filename": "fix_propel_self.html", + "short_description": "Add a force to each atom in the group due to a self-propulsion force", + "description": "Add a force to each atom in the group due to a self-propulsion force. The\nforce is given by\n\\[\n F_i = f_P e_i\\]\nwhere *i* is the particle the force is being applied to, \\(f_P\\)\nis the magnitude of the force, and \\(e_i\\) is the vector direction\nof the force. The specification of \\(e_i\\) is based on which of the\nthree keywords (*dipole* or *velocity* or *quat*) one selects.\n\nFor mode *dipole*, \\(e_i\\) is just equal to\nthe dipole vectors of the atoms in the group. Therefore, if the dipoles\nare not unit vectors, the \\(e_i\\) will not be unit vectors.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If another command changes the magnitude of the dipole, this force will\n > change accordingly (since \\(|e_i|\\) will change, which is physically\n > equivalent to re-scaling \\(f_P\\) while keeping \\(|e_i|\\) constant),\n > and no warning will be provided by LAMMPS. This is almost never what you\n > want, so ensure you are not changing dipole magnitudes with another LAMMPS\n > fix or pair style. Furthermore, self-propulsion forces (almost) always\n > set \\(e_i\\) to be a unit vector for all times, so it's best to set\n > all the dipole magnitudes to 1.0 unless you have a good reason not to\n > (see the [set ](https://docs.lammps.org/set.html) command on how to do this). \n > \n\nFor mode *velocity*, \\(e_i\\) points in the direction\nof the current velocity (a unit-vector). This can be interpreted as a\nvelocity-dependent friction, as proposed by e.g. **Erdmann1**.\n\nFor mode *quat*, \\(e_i\\) points in the direction of a unit\nvector, oriented in the coordinate frame of the ellipsoidal particles,\nwhich defaults to point along the x-direction. This default behavior\ncan be changed by via the *quatvec* keyword.\n\nThe optional *quatvec* keyword specifies the direction of self-propulsion\nvia a unit vector (sx,sy,sz). The arguments *sx*, *sy*, and *sz*, are\ndefined within the coordinate frame of the atom's\nellipsoid. For instance, for an ellipsoid with long axis along\nits x-direction, if one wanted the self-propulsion force to also\nbe along this axis, set *sx* equal to 1 and *sy*, *sz* both equal\nto zero. This keyword may only be specified for mode *quat*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In using keyword *quatvec*, the three arguments *sx*,\n > *sy*, and *sz* will be automatically normalized to components\n > of a unit vector internally to avoid users having to explicitly\n > do so themselves. Therefore, in mode *quat*, the vectors \\(e_i\\)\n > will always be of unit length. \n > \n\nAlong with adding a force contribution, this fix can also\ncontribute to the virial (pressure) of the system, defined as\n\\(f_P \\sum_i /(d V)\\), where \\(r_i\\) is the\n*unwrapped* coordinate of particle i in the case of periodic\nboundary conditions. See **Winkler1** for a\ndiscussion of this active pressure contribution.\n\nFor modes *dipole* and *quat*, this fix is by default\nincluded in pressure computations.\n\nFor mode *velocity*, this fix is by default not included\nin pressure computations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In contrast to equilibrium systems, pressure of active systems\n > in general depends on the geometry of the container.\n > The active pressure contribution as calculated in this fix\n > is only valid for certain boundary conditions (spherical\n > walls, rectangular walls, or periodic boundary conditions).\n > For other geometries, the pressure must be measured via\n > explicit calculation of the force per unit area on a wall,\n > and so one must not calculate it using this fix.\n > (Use [fix_modify ](https://docs.lammps.org/fix_modify.html) as described below\n > to turn off the virial contribution of this fix). Again,\n > see **Winkler1** for discussion of why this\n > is the case.\n >\n > Furthermore, when dealing with active systems, the temperature\n > is no longer well defined. Therefore, one should ensure that\n > the *virial* flag is used in the\n > [compute pressure ](https://docs.lammps.org/compute_pressure.html) command (turning\n > off temperature contributions). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by this\nfix to add the contribution due to the added forces on atoms to the\nsystem's virial as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html).\nThe default is *virial yes* for keywords *dipole* and *quat*. The\ndefault is *virial no* for keyword *velocity*.\n\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\n**(Erdmann1)** U. Erdmann , W. Ebeling, L. Schimansky-Geier, and F. Schweitzer,\nEur. Phys. J. B 15, 105-113, 2000. \n \n**(Winkler1)** Winkler, Wysocki, and Gompper, Soft Matter, 11, 6680 (2015). \n ", + "restrictions": "With keyword *dipole*, this fix only works when the DIPOLE package is enabled.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix is part of the BROWNIAN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[fix efield ](https://docs.lammps.org/fix_efield.html) , [fix setforce ](https://docs.lammps.org/fix_setforce.html),\n[fix addforce ](https://docs.lammps.org/fix_addforce.html)\n" }, { "command": [ - "fix_modify AtC internal_element_set" + "compute centro/atom" ], "syntax": [ - "fix_modify internal_element_set " + "compute ID group-ID centro/atom lattice keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "internal_element_set", + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "centro/atom", "type": 1, "choices": [] }, { - "arg": "", + "arg": "bcc", + "type": 3, + "choices": [ + "fcc", + "bcc" + ] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* internal_element_set = name of the AtC sub-command\n* element_set_name = name of element set defining internal region, or off \n", - "examples": "\n```lmps\nfix_modify AtC internal_element_set myElementSet\nfix_modify AtC internal_element_set off\n```\n", - "html_filename": "atc_internal_element_set.html", - "short_description": "Enables AtC to base the region for internal atoms to be an element\nset", - "description": "Enables AtC to base the region for internal atoms to be an element\nset. If no ghost atoms are used, all the AtC atoms must be constrained\nto remain in this element set by the user, e.g., with walls. If boundary\natoms are used in conjunction with Eulerian atom maps AtC will partition\nall atoms of a boundary or internal type to be of type internal if they\nare in the internal region or to be of type boundary otherwise.\n", - "restrictions": "If boundary atoms are used in conjunction with Eulerian atom maps, the\nEulerian reset frequency must be an integer multiple of the Lammps\nreneighbor frequency.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC atom_element_map ](https://docs.lammps.org/atc_atom_element_map.html)\n- [fix_modify AtC boundary type ](https://docs.lammps.org/atc_boundary_type.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* centro/atom = style name of this compute command\n* lattice = fcc or bcc or N = # of neighbors per atom to include\n* zero or more keyword/value pairs may be appended\n* keyword = axes \n *      axes value = no or yes \n       no = do not calculate 3 symmetry axes \n       yes = calculate 3 symmetry axes \n", + "examples": "\n```lmps\ncompute 1 all centro/atom fcc\n\ncompute 1 all centro/atom 8\n```\n", + "html_filename": "compute_centro_atom.html", + "short_description": "Define a computation that calculates the centro-symmetry parameter for\neach atom in the group, for either FCC or BCC lattices, depending on\nthe choice of the *lattice* argument", + "description": "Define a computation that calculates the centro-symmetry parameter for\neach atom in the group, for either FCC or BCC lattices, depending on\nthe choice of the *lattice* argument. In solid-state systems the\ncentro-symmetry parameter is a useful measure of the local lattice\ndisorder around an atom and can be used to characterize whether the\natom is part of a perfect lattice, a local defect (e.g. a dislocation\nor stacking fault), or at a surface.\n\nThe value of the centro-symmetry parameter will be 0.0 for atoms not\nin the specified compute group.\n\nThis parameter is computed using the following formula from\n**Kelchner**\n\\[\n CS = \\sum_{i = 1}^{N/2} | \\vec{R}_i + \\vec{R}_{i+N/2} |^2\\]\nwhere the \\(N\\) nearest neighbors of each atom are identified and\n\\(\\vec{R}_i\\) and \\(\\vec{R}_{i+N/2}\\) are vectors from the\ncentral atom to a particular pair of nearest neighbors. There are\n\\(N (N-1)/2\\) possible neighbor pairs that can contribute to this\nformula. The quantity in the sum is computed for each, and the\n\\(N/2\\) smallest are used. This will typically be for pairs of\natoms in symmetrically opposite positions with respect to the central\natom; hence the \\(i+N/2\\) notation.\n\n\\(N\\) is an input parameter, which should be set to correspond to\nthe number of nearest neighbors in the underlying lattice of atoms.\nIf the keyword *fcc* or *bcc* is used, *N* is set to 12 and 8\nrespectively. More generally, *N* can be set to a positive, even\ninteger.\n\nFor an atom on a lattice site, surrounded by atoms on a perfect\nlattice, the centro-symmetry parameter will be 0. It will be near 0\nfor small thermal perturbations of a perfect lattice. If a point\ndefect exists, the symmetry is broken, and the parameter will be a\nlarger positive value. An atom at a surface will have a large\npositive parameter. If the atom does not have \\(N\\) neighbors\n(within the potential cutoff), then its centro-symmetry parameter is\nset to 0.0.\n\nIf the keyword *axes* has the setting *yes*, then this compute also\nestimates three symmetry axes for each atom's local neighborhood. The\nfirst two of these are the vectors joining the two pairs of neighbor\natoms with smallest contributions to the centrosymmetry parameter,\ni.e. the two most symmetric pairs of atoms. The third vector is\nnormal to the first two by the right-hand rule. All three vectors are\nnormalized to unit length. For FCC crystals, the first two vectors\nwill lie along a \\(\\langle110\\rangle\\) direction, while the third vector\nwill lie along either a \\(\\langle100\\rangle\\) or \\(\\langle111\\rangle\\)\ndirection. For HCP crystals, the first two vectors will lie along\n\\(\\langle1000\\rangle\\) directions, while the third vector\nwill lie along \\(\\langle0001\\rangle\\). This provides a simple way to\nmeasure local orientation in HCP structures. In general, the *axes* keyword\ncan be used to estimate the orientation of symmetry axes in the neighborhood\nof any atom.\n\nOnly atoms within the cutoff of the pairwise neighbor list are\nconsidered as possible neighbors. Atoms not in the compute group are\nincluded in the \\(N\\) neighbors used in this calculation.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (e.g., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently or to have multiple compute/dump commands, each with a\n*centro/atom* style.\n\n #### Output info\n\nBy default, this compute calculates the centrosymmetry value for each\natom as a per-atom vector, which can be accessed by any command that\nuses per-atom values from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nIf the *axes* keyword setting is *yes*, then a per-atom array is\ncalculated. The first column is the centrosymmetry parameter. The\nnext three columns are the *x*, *y*, and *z* components of the first\nsymmetry axis, followed by the second, and third symmetry axes in\ncolumns 5--7 and 8--10.\n\nThe centrosymmetry values are unitless values \\(\\ge 0.0\\). Their magnitude\ndepends on the lattice style due to the number of contributing neighbor\npairs in the summation in the formula above. And it depends on the\nlocal defects surrounding the central atom, as described above. For\nthe *axes yes* case, the vector components are also unitless, since\nthey represent spatial directions.\n\nHere are typical centro-symmetry values, from a nanoindentation\nsimulation into gold (FCC). These were provided by Jon Zimmerman\n(Sandia):\n\n```\nBulk lattice = 0\nDislocation core ~ 1.0 (0.5 to 1.25)\nStacking faults ~ 5.0 (4.0 to 6.0)\nFree surface ~ 23.0\n```\nThese values are **not** normalized by the square of the lattice\nparameter. If they were, normalized values would be:\n\n```\nBulk lattice = 0\nDislocation core ~ 0.06 (0.03 to 0.075)\nStacking faults ~ 0.3 (0.24 to 0.36)\nFree surface ~ 1.38\n```\nFor BCC materials, the values for dislocation cores and free surfaces\nwould be somewhat different, due to their being only 8 neighbors instead\nof 12.\n\n**(Kelchner)** Kelchner, Plimpton, Hamilton, Phys Rev B, 58, 11085 (1998). \n ", + "restrictions": " none\n", + "related": "[compute cna/atom ](https://docs.lammps.org/compute_cna_atom.html)\n" }, { "command": [ - "pair_style born", - "pair_style born/omp", - "pair_style born/gpu", - "pair_style born/coul/long", - "pair_style born/coul/long/gpu", - "pair_style born/coul/long/omp", - "pair_style born/coul/msm", - "pair_style born/coul/msm/omp", - "pair_style born/coul/wolf", - "pair_style born/coul/wolf/gpu", - "pair_style born/coul/wolf/omp", - "pair_style born/coul/dsf" + "compute dihedral" ], "syntax": [ - "pair_style style args" + "compute ID group-ID dihedral" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "born/coul/wolf/omp", - "type": 3, - "choices": [ - "born", - "born/coul/long", - "born/coul/msm", - "born/coul/wolf", - "born/omp", - "born/gpu", - "born/coul/long/gpu", - "born/coul/long/omp", - "born/coul/msm/omp", - "born/coul/wolf/gpu", - "born/coul/wolf/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "dihedral", + "type": 1, + "choices": [] } ] ], - "parameters": "* style = born or born/coul/long or born/coul/msm or born/coul/wolf\n* args = list of arguments for a particular style \n *      born args = cutoff \n       cutoff = global cutoff for non-Coulombic interactions (distance units) \n *      born/coul/long args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/msm args = cutoff (cutoff2) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      born/coul/wolf args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *      *born/coul/dsf* args = alpha cutoff (cutoff2) \n       alpha = damping parameter (inverse distance units) \n       cutoff = global cutoff for non-Coulombic (and Coulombic if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Coulombic (distance units) \n", - "examples": "\n```lmps\npair_style born 10.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/long 10.0\npair_style born/coul/long 10.0 8.\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/msm 10.0\npair_style born/coul/msm 10.0 8.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/wolf 0.25 10.0\npair_style born/coul/wolf 0.25 10.0 9.0\npair_coeff * * 6.08 0.317 2.340 24.18 11.51\npair_coeff 1 1 6.08 0.317 2.340 24.18 11.51\n\npair_style born/coul/dsf 0.1 10.0 12.0\npair_coeff * * 0.0 1.00 0.00 0.00 0.00\npair_coeff 1 1 480.0 0.25 0.00 1.05 0.50\n```\n", - "html_filename": "pair_born.html", - "short_description": "The *born* style computes the Born-Mayer-Huggins or Tosi/Fumi\npotential described in **FumiTosi**, given by\n\\[\n E = A \\exp \\left(\\frac{\\sigma - r}{\\rho} \\right) -\n \\frac{C}{r^6} + \\frac{D}{r^8} \\qquad r < r_c\\]\nwhere \\(\\sigma\\) is an interaction-dependent length parameter,\n\\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff", - "description": "The *born* style computes the Born-Mayer-Huggins or Tosi/Fumi\npotential described in **FumiTosi**, given by\n\\[\n E = A \\exp \\left(\\frac{\\sigma - r}{\\rho} \\right) -\n \\frac{C}{r^6} + \\frac{D}{r^8} \\qquad r < r_c\\]\nwhere \\(\\sigma\\) is an interaction-dependent length parameter,\n\\(\\rho\\) is an ionic-pair dependent length parameter, and\n\\(r_c\\) is the cutoff.\n\nThe styles with *coul/long* or *coul/msm* add a Coulombic term as\ndescribed for the [lj/cut ](https://docs.lammps.org/pair_lj.html) pair styles. An additional\ndamping factor is applied to the Coulombic term so it can be used in\nconjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html) command and its\n*ewald* or *pppm* of *msm* option. The Coulombic cutoff specified for\nthis style means that pairwise interactions within this distance are\ncomputed directly; interactions outside that distance are computed in\nreciprocal space.\n\nIf one cutoff is specified for the *born/coul/long* and\n*born/coul/msm* style, it is used for both the A,C,D and Coulombic\nterms. If two cutoffs are specified, the first is used as the cutoff\nfor the A,C,D terms, and the second is the cutoff for the Coulombic\nterm.\n\nThe *born/coul/wolf* style adds a Coulombic term as described for the\nWolf potential in the [coul/wolf ](https://docs.lammps.org/pair_coul.html) pair style.\n\nThe *born/coul/dsf* style computes the Coulomb contribution with the\ndamped shifted force model as in the [coul/dsf ](https://docs.lammps.org/pair_coul.html) style.\n\nNote that these potentials are related to the [Buckingham potential ](https://docs.lammps.org/pair_buck.html).\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy units)\n* \\(\\rho\\) (distance units)\n* \\(\\sigma\\) (distance units)\n* C (energy units \\* distance units\\^6)\n* D (energy units \\* distance units\\^8)\n* cutoff (distance units)\n\nThe second coefficient, rho, must be greater than zero.\n\nThe last coefficient is optional. If not specified, the global A,C,D\ncutoff specified in the pair_style command is used.\n\nFor *born/coul/long*, *born/coul/wolf* and *born/coul/dsf* no\nCoulombic cutoff can be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp(), 1/r\\^6, and 1/r\\^8 portion of the pair\ninteraction.\n\nThe *born/coul/long* pair style supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option to tabulate the\nshort-range portion of the long-range Coulombic interaction.\n\nThese styles support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure.\n\nThess styles writes thei information to binary [restart ](https://docs.lammps.org/restart.html)\nfiles, so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file.\n\nThese styles can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the *inner*,\n*middle*, *outer* keywords.\n\n----------\n\nFumi and Tosi, J Phys Chem Solids, 25, 31 (1964),\nFumi and Tosi, J Phys Chem Solids, 25, 45 (1964). \n ", - "restrictions": "The *born/coul/long* style is part of the KSPACE package. It is only\nenabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *born/coul/dsf* and *born/coul/wolf* pair styles are part of the\nEXTRA-PAIR package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style buck ](https://docs.lammps.org/pair_buck.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* dihedral = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all dihedral\n```\n", + "html_filename": "compute_dihedral.html", + "short_description": "Define a computation that extracts the dihedral energy calculated by\neach of the dihedral sub-styles used in the [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) command", + "description": "Define a computation that extracts the dihedral energy calculated by\neach of the dihedral sub-styles used in the [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) command. These values are made\naccessible for output or further processing by other commands. The\ngroup specified for this command is ignored.\n\nThis compute is useful when using [dihedral_style hybrid ](https://docs.lammps.org/dihedral_hybrid.html) if you want to know the portion of the\ntotal energy contributed by one or more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\)\nis the number of sub_styles defined by the\n[dihedral_style hybrid ](https://docs.lammps.org/dihedral_style.html) command, which can be accessed by\nthe indices 1 through \\(N\\). These values can be used by any command that\nuses global scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "compute temp/profile" + "dump atom/adios" ], "syntax": [ - "compute ID group-ID temp/profile xflag yflag zflag binstyle args" + "dump ID group-ID atom/adios N file.bp", + "dump ID group-ID custom/adios N file.bp args" ], "args": [ [ { - "arg": "compute", + "arg": "dump", "type": 1, "choices": [] }, @@ -38275,37 +37562,51 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/profile", + "arg": "atom/adios", + "type": 1, + "choices": [] + }, + { + "arg": "N", + "type": 2, + "choices": [] + }, + { + "arg": "file.bp", + "type": 2, + "choices": [] + } + ], + [ + { + "arg": "dump", "type": 1, "choices": [] }, { - "arg": "xflag", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "yflag", + "arg": "custom/adios", "type": 2, "choices": [] }, { - "arg": "zflag", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "xyz", - "type": 3, - "choices": [ - "x", - "y", - "z", - "xy", - "yz", - "xz", - "xyz" - ] + "arg": "file.bp", + "type": 2, + "choices": [] }, { "arg": "args", @@ -38314,107 +37615,146 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/profile = style name of this compute command\n* xflag,yflag,zflag = 0/1 for whether to exclude/include this dimension\n* binstyle = x or y or z or xy or yz or xz or xyz \n *        x arg = Nx \n *        y arg = Ny \n *        z arg = Nz \n *        xy args = Nx Ny \n *        yz args = Ny Nz \n *        xz args = Nx Nz \n *        xyz args = Nx Ny Nz \n         Nx, Ny, Nz = number of velocity bins in x, y, z dimensions \n* zero or more keyword/value pairs may be appended\n* keyword = out \n *        out value = tensor or bin \n", - "examples": "\n```lmps\ncompute myTemp flow temp/profile 1 1 1 x 10\ncompute myTemp flow temp/profile 1 1 1 x 10 out bin\ncompute myTemp flow temp/profile 0 1 1 xyz 20 20 20\n```\n", - "html_filename": "compute_temp_profile.html", - "short_description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a spatially-averaged center-of-mass\nvelocity field, before computing the kinetic energy", - "description": "Define a computation that calculates the temperature of a group of\natoms, after subtracting out a spatially-averaged center-of-mass\nvelocity field, before computing the kinetic energy. This can be\nuseful for thermostatting a collection of atoms undergoing a complex\nflow (e.g. via a profile-unbiased thermostat (PUT) as described in\n**Evans1**). A compute of this style can be used by any command\nthat computes a temperature (e.g. [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThe *xflag*, *yflag*, *zflag* settings determine which components of\naverage velocity are subtracted out.\n\nThe *binstyle* setting and its *Nx*, *Ny*, *Nz* arguments determine how bins\nare setup to perform spatial averaging. \"Bins\" can be 1d slabs, 2d pencils,\nor 3d bricks depending on which *binstyle* is used. The simulation box is\npartitioned conceptually into *Nx* \\(\\times\\) *Ny* \\(\\times\\) *Nz*\nbins. Depending on the *binstyle*, you may only specify one or two of these\nvalues; the others are effectively set to 1 (no binning in that dimension).\nFor non-orthogonal (triclinic) simulation boxes, the bins are \"tilted\" slabs or\npencils or bricks that are parallel to the tilted faces of the box. See the\n[region prism ](https://docs.lammps.org/region.html) command for a discussion of the geometry of tilted\nboxes in LAMMPS.\n\nWhen a temperature is computed, the center-of-mass velocity for the\nset of atoms that are both in the compute group and in the same\nspatial bin is calculated. This bias velocity is then subtracted from\nthe velocities of individual atoms in the bin to yield a thermal\nvelocity for each atom. Note that if there is only one atom in the\nbin, its thermal velocity will thus be 0.0.\n\nAfter the spatially-averaged velocity field has been subtracted from\neach atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\left( \\frac{\\text{dim}}{N} - N_s N_x N_y N_z\n - \\text{extra} \\right) \\frac{k_B T}{2},\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\); dim = 2 or 3 is the dimensionality of the simulation;\n\\(N_s =\\) 0, 1, 2, or 3 for streaming velocity subtracted in 0, 1, 2, or 3\ndimensions, respectively; *extra* is the number of extra degrees of freedom;\n*N* is the number of atoms in the group; \\(k_B\\) is the Boltzmann constant,\nand \\(T\\) is the absolute temperature. The \\(N_s N_x N_y N_z\\) term is\nthe number of degrees of freedom subtracted to adjust for the removal of the\ncenter-of-mass velocity in each direction of the *Nx\\*Ny\\*Nz* bins, as\ndiscussed in the **Evans1** paper. The extra term defaults to\n\\(\\text{dim} - N_s\\) and accounts for overall conservation of\ncenter-of-mass velocity across the group in directions where streaming velocity\nis *not* subtracted. This can be altered using the *extra* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nIf the *out* keyword is used with a *tensor* value, which is the\ndefault, then a symmetric tensor, stored as a six-element vector, is\nalso calculated by this compute for use in the computation of a\npressure tensor by the [compute pressue ](https://docs.lammps.org/compute_pressure.html)\ncommand. The formula for the components of the tensor is the same as\nthe above expression for \\(E_\\mathrm{kin}\\), except that the 1/2\nfactor is NOT included and the \\(v_i^2\\) is replaced by\n\\(v_{i,x} v_{i,y}\\) for the \\(xy\\) component, and so on. Note\nthat because it lacks the 1/2 factor, these tensor components are\ntwice those of the traditional kinetic energy tensor. The six\ncomponents of the vector are ordered \\(xx\\), \\(yy\\),\n\\(zz\\), \\(xy\\), \\(xz\\), \\(yz\\).\n\nIf the *out* keyword is used with a *bin* value, the count of atoms\nand computed temperature for each bin are stored for output, as an\narray of values, as described below. The temperature of each bin is\ncalculated as described above, where the bias velocity is subtracted\nand only the remaining thermal velocity of atoms in the bin\ncontributes to the temperature. See the note below for how the\ntemperature is normalized by the degrees-of-freedom of atoms in the\nbin.\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\n\nThe removal of the spatially-averaged velocity field by this fix is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html),\nand [fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees-of-freedom due to fixes that constrain\nmolecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means the temperature of groups of atoms\nthat include these constraints will be computed correctly. If needed, the\nsubtracted degrees-of-freedom can be altered using the *extra* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the *out* keyword with a value of *bin*, the\n > calculated temperature for each bin includes the degrees-of-freedom\n > adjustment described in the preceding paragraph for fixes that\n > constrain molecular motion, as well as the adjustment due to\n > the *extra* option (which defaults to *dim* - *Ns* as described above),\n > by fractionally applying them based on the fraction of atoms in each\n > bin. As a result, the bin degrees-of-freedom summed over all bins exactly\n > equals the degrees-of-freedom used in the scalar temperature calculation,\n > \\(\\Sigma N_{\\text{DOF}_i} = N_\\text{DOF}\\) and the corresponding\n > relation for temperature is also satisfied\n > (\\(\\Sigma N_{\\text{DOF}_i} T_i = N_\\text{DOF} T\\)).\n > These relations will break down in cases for which the adjustment\n > exceeds the actual number of degrees of freedom in a bin. This could happen\n > if a bin is empty or in situations in which rigid molecules\n > are non-uniformly distributed, in which case the reported\n > temperature within a bin may not be accurate. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting. Using this compute in conjunction with a\nthermostatting fix, as explained there, will effectively implement a\nprofile-unbiased thermostat (PUT), as described in **Evans1**.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature). Depending\non the setting of the *out* keyword, it also calculates a global\nvector or array. For *out* = *tensor*, it calculates a vector of\nlength 6 (symmetric tensor), which can be accessed by indices 1--6.\nFor *out* = *bin* it calculates a global array which has 2 columns and\n\\(N\\) rows, where \\(N\\) is the number of bins. The first\ncolumn contains the number of atoms in that bin. The second contains\nthe temperature of that bin, calculated as described above. The\nordering of rows in the array is as follows. Bins in \\(x\\) vary\nfastest, then \\(y\\), then \\(z\\). Thus for a \\(10\\times\n10\\times 10\\) 3d array of bins, there will be 1000 rows. The bin with\nindices \\((i_x,i_y,i_z) = (2,3,4)\\) would map to row \\(M =\n10^2(i_z-1) + 10(i_y-1) + i_x = 322\\), where the rows are numbered from\n1 to 1000 and the bin indices are numbered from 1 to 10 in each\ndimension.\n\nThese values can be used by any command that uses global scalar or\nvector or array values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\". The array values are \"intensive\".\n\nThe scalar value us in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html). The first column of array\nvalues are counts; the values in the second column will be in\ntemperature [units ](https://docs.lammps.org/units.html).\n\n**(Evans1)** Evans and Morriss, Phys Rev Lett, 56, 2172-2175 (1986). \n ", - "restrictions": "You should not use too large a velocity-binning grid, especially in\n3d. In the current implementation, the binned velocity averages are\nsummed across all processors, so this will be inefficient if the grid\nis too large, and the operation is performed every timestep, as it\nwill be for most thermostats.\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html),\n[compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* adios = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file.bp = name of file/stream to write to\n* args = same options as in [dump custom ](https://docs.lammps.org/dump.html) command \n", + "examples": "\n```lmps\ndump adios1 all atom/adios 100 atoms.bp\ndump 4a all custom/adios 100 dump_adios.bp id v_p x y z\ndump 2 subgroup custom/adios 100 dump_adios.bp mass type xs ys zs vx vy vz\n```\n", + "html_filename": "dump_adios.html", + "short_description": "Dump a snapshot of atom coordinates every \\(N\\) timesteps in the [ADIOS](adios_)-based \"BP\" file format, or using different I/O solutions in\nADIOS, to a stream that can be read on-line by another program", + "description": "Dump a snapshot of atom coordinates every \\(N\\) timesteps in the [ADIOS](adios_)-based \"BP\" file format, or using different I/O solutions in\nADIOS, to a stream that can be read on-line by another program.\nADIOS-BP files are binary, portable, and self-describing.\n\n.. _adios: https://github.com/ornladios/ADIOS2\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To be able to use ADIOS, a file ``adios2_config.xml`` with specific\n > configuration settings is expected in the current working directory.\n > If the file is not present, LAMMPS will try to create a minimal\n > default file. Please refer to the ADIOS documentation for details on\n > how to adjust this file for optimal performance and desired features. \n > \n\n**Use from write_dump:**\n\nIt is possible to use these dump styles with the\n[write_dump ](https://docs.lammps.org/write_dump.html) command. In this case, the sub-intervals\nmust not be set at all. The write_dump command can be used to\ncreate a new file at each individual dump.\n\n```lmps\ndump 4 all atom/adios 100 dump.bp\nwrite_dump all atom/adios singledump.bp\n```\n----------\n", + "restrictions": "The number of atoms per snapshot **can** change with the adios style.\nWhen using the ADIOS tool 'bpls' to list the content of a .bp file,\nbpls will print *__* for the size of the output table indicating that\nits size is changing every step.\n\nThe *atom/adios* and *custom/adios* dump styles are part of the ADIOS\npackage. They are only enabled if LAMMPS was built with that package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" }, { "command": [ - "compute com/chunk" + "fix_modify AtC extrinsic electron_integration" ], "syntax": [ - "compute ID group-ID com/chunk chunkID" + "fix_modify extrinsic electron_integration []" ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "extrinsic", + "type": 1, "choices": [] }, { - "arg": "com/chunk", + "arg": "electron_integration", "type": 1, "choices": [] }, { - "arg": "chunkID", + "arg": "", + "type": 3, + "choices": [ + "explicit", + "implicit", + "steady" + ] + }, + { + "arg": "[]", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* com/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid com/chunk molchunk\n```\n", - "html_filename": "compute_com_chunk.html", - "short_description": "Define a computation that calculates the center-of-mass for multiple\nchunks of atoms", - "description": "Define a computation that calculates the center-of-mass for multiple\nchunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the \\((x,y,z)\\) coordinates of the center of mass\nfor each chunk, which includes all effects due to atoms passing through\nperiodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's\n > center-of-mass in \"unwrapped\" form, by using the image flags\n > associated with each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command\n > for a discussion of \"unwrapped\" coordinates. See the Atoms section of\n > the [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute com/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all com/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is\n3 for the \\((x,y,z)\\) center-of-mass coordinates of each chunk. These\nvalues can be accessed by any command that uses global array values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndistance [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute com ](https://docs.lammps.org/compute_com.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* extrinsic electron_integration = name of the AtC sub-command\n* integration_type = explicit or implicit or steady\n* num_subcycle_steps = number of subcycle steps for the electron time integration (optional) \n", + "examples": "\n```lmps\nfix_modify AtC extrinsic electron_integration implicit\nfix_modify AtC extrinsic electron_integration explicit 100\n```\n", + "html_filename": "atc_electron_integration.html", + "short_description": "Switches between integration schemes for the electron temperature", + "description": "Switches between integration schemes for the electron temperature. The\nnumber of subcycling steps used to integrate the electron temperature for\none LAMMPS timestep can be manually adjusted to capture fast electron\ndynamics.\n", + "restrictions": "For use only with the two_temperature type of the AtC fix (see\n[fix atc ](https://docs.lammps.org/fix_atc.html) command)\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "dump netcdf" + "fix_modify AtC pair_interactions" ], "syntax": [ - "dump ID group-ID netcdf N file args", - "dump ID group-ID netcdf/mpiio N file args" + "fix_modify pair_interactions ", + "fix_modify bond_interactions " ], "args": [ [ { - "arg": "dump", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "pair_interactions", + "type": 1, "choices": [] }, { - "arg": "netcdf", + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] + } + ], + [ + { + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "", "type": 2, "choices": [] }, { - "arg": "file", - "type": 2, + "arg": "bond_interactions", + "type": 1, "choices": [] }, { - "arg": "args", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } - ], + ] + ], + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* pair_interactions or bond_interactions = name of the AtC sub-command\n* on or off = activate or deactivate \n", + "examples": "\n```lmps\nfix_modify AtC pair_interactions off\nfix_modify AtC bond_interactions on\n```\n", + "html_filename": "atc_pair_interactions.html", + "short_description": "Include bonds and/or pairs in stress and heat flux computations", + "description": "Include bonds and/or pairs in stress and heat flux computations.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" +}, +{ + "command": [ + "fix adapt/fep" + ], + "syntax": [ + "fix ID group-ID adapt/fep N attribute args ... keyword value ..." + ], + "args": [ [ { - "arg": "dump", + "arg": "fix", "type": 1, "choices": [] }, @@ -38429,8 +37769,8 @@ export const command_docs = [ "choices": [] }, { - "arg": "netcdf/mpiio", - "type": 2, + "arg": "adapt/fep", + "type": 1, "choices": [] }, { @@ -38439,65 +37779,88 @@ export const command_docs = [ "choices": [] }, { - "arg": "file", + "arg": "atom", + "type": 3, + "choices": [ + "pair", + "kspace", + "atom" + ] + }, + { + "arg": "args", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "after", + "type": 3, + "choices": [ + "scale", + "reset", + "after" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be imaged\n* netcdf or netcdf/mpiio = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write dump info to\n* args = list of atom attributes, same as for [dump_style custom ](https://docs.lammps.org/dump.html) \n", - "examples": "\n```lmps\ndump 1 all netcdf 100 traj.nc type x y z vx vy vz\ndump_modify 1 append yes at -1 thermo yes\ndump 1 all netcdf/mpiio 1000 traj.nc id type x y z\ndump 1 all netcdf 1000 traj.*.nc id type x y z\n```\n", - "html_filename": "dump_netcdf.html", - "short_description": "Dump a snapshot of atom coordinates every N timesteps in Amber-style\nNetCDF file format", - "description": "Dump a snapshot of atom coordinates every N timesteps in Amber-style\nNetCDF file format. NetCDF files are binary, portable and\nself-describing. This dump style will write only one file on the root\nnode. The dump style *netcdf* uses the [standard NetCDF library ](https://www.unidata.ucar.edu/software/netcdf/). All data is collected on one processor and then\nwritten to the dump file. Dump style *netcdf/mpiio* uses the\n[parallel NetCDF library ](https://trac.mcs.anl.gov/projects/parallel-netcdf/) and MPI-IO to write to the dump\nfile in parallel; it has better performance on a larger number of\nprocessors. Note that style *netcdf* outputs all atoms sorted by atom\ntag while style *netcdf/mpiio* outputs atoms in order of their MPI\nrank.\n\nNetCDF files can be directly visualized via the following tools:\n\n* Ovito (https://www.ovito.org/). Ovito supports the AMBER convention and\n all extensions of this dump style.\n* VMD (https://www.ks.uiuc.edu/Research/vmd/).\n\nIn addition to per-atom data, [thermo ](https://docs.lammps.org/thermo.html) data can be included in the\ndump file. The data included in the dump file is identical to the data specified\nby [thermo_style ](https://docs.lammps.org/thermo_style.html).\n\n----------\n", - "restrictions": "The *netcdf* and *netcdf/mpiio* dump styles are part of the\nNETCDF package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThe *netcdf* and *netcdf/mpiio* dump styles currently cannot dump\nstring properties or properties from variables.\n\n----------\n", - "related": "[dump ](https://docs.lammps.org/dump.html), [dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* adapt/fep = style name of this fix command\n* N = adapt simulation settings every this many timesteps\n* one or more attribute/arg pairs may be appended\n* attribute = pair or kspace or atom \n *        pair args = pstyle pparam I J v_name \n         pstyle = pair style name (e.g., lj/cut) \n         pparam = parameter to adapt over time \n         I,J = type pair(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of pparam \n *        kspace arg = v_name \n         v_name = variable with name that calculates scale factor on K-space terms \n *        atom args = aparam v_name \n         aparam = parameter to adapt over time \n         I = type(s) to set parameter for (integer or type label) \n         v_name = variable with name that calculates value of aparam \n* zero or more keyword/value pairs may be appended\n* keyword = scale or reset or after \n *        scale value = no or yes \n         no = the variable value is the new setting \n         yes = the variable value multiplies the original setting \n *        reset value = no or yes \n         no = values will remain altered at the end of a run \n         yes = reset altered values to their original values at the end \n         of a run \n *        after value = no or yes \n         no = parameters are adapted at timestep N \n         yes = parameters are adapted one timestep after N \n", + "examples": "\n```lmps\nfix 1 all adapt/fep 1 pair soft a 1 1 v_prefactor\nfix 1 all adapt/fep 1 pair soft a 2* 3 v_prefactor\nfix 1 all adapt/fep 1 pair lj/cut epsilon * * v_scale1 coul/cut scale 3 3 v_scale2 scale yes reset yes\nfix 1 all adapt/fep 10 atom diameter 1 v_size\n\nlabelmap atom 1 c1\nfix 1 all adapt/fep 1 pair soft a c1 c1 v_prefactor\n```\nExample input scripts available: examples/PACKAGES/fep\n", + "html_filename": "fix_adapt_fep.html", + "short_description": "Change or adapt one or more specific simulation attributes or settings\nover time as a simulation runs", + "description": "Change or adapt one or more specific simulation attributes or settings\nover time as a simulation runs.\n\nThis is an enhanced version of the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command\nwith two differences:\n\n* It is possible to modify the charges of chosen atom types only,\n instead of scaling all the charges in the system.\n* There is a new option *after* for better compatibility with\n [fix ave/time ](https://docs.lammps.org/fix_ave_time.html).\n\nThis version is suited for free energy calculations using\n[compute ti ](https://docs.lammps.org/compute_ti.html) or [compute fep ](https://docs.lammps.org/compute_fep.html).\n\nIf *N* is specified as 0, the specified attributes are only changed\nonce, before the simulation begins. This is all that is needed if the\nassociated variables are not time-dependent. If *N* > 0, then changes\nare made every *N* steps during the simulation, presumably with a\nvariable that is time-dependent.\n\nDepending on the value of the *reset* keyword, attributes changed by\nthis fix will or will not be reset back to their original values at\nthe end of a simulation. Even if *reset* is specified as *yes*, a\nrestart file written during a simulation will contain the modified\nsettings.\n\nIf the *scale* keyword is set to *no*, then the value the parameter is\nset to will be whatever the variable generates. If the *scale*\nkeyword is set to *yes*, then the value of the altered parameter will\nbe the initial value of that parameter multiplied by whatever the\nvariable generates (i.e., the variable is now a \"scale factor\" applied\nin (presumably) a time-varying fashion to the parameter). Internally,\nthe parameters themselves are actually altered; make sure you use the\n*reset yes* option if you want the parameters to be restored to their\ninitial values after the run.\n\nIf the *after* keyword is set to *yes*, then the parameters are\nchanged one timestep after the multiple of N. In this manner, if a fix\nsuch as \"fix ave/time\" is used to calculate averages at every N\ntimesteps, all the contributions to the average will be obtained with\nthe same values of the parameters.\n\n----------\n\nThe *pair* keyword enables various parameters of potentials defined by\nthe [pair_style ](https://docs.lammps.org/pair_style.html) command to be changed, if the pair\nstyle supports it. Note that the [pair_style ](https://docs.lammps.org/pair_style.html) and\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands must be used in the usual manner\nto specify these parameters initially; the fix adapt command simply\noverrides the parameters.\n\nThe *pstyle* argument is the name of the pair style. If [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used, *pstyle* should be\na sub-style name. For example, *pstyle* could be specified as \"soft\"\nor \"lubricate\". The *pparam* argument is the name of the parameter to\nchange. This is the current list of pair styles and parameters that\ncan be varied by this fix. See the doc pages for individual pair\nstyles and their energy formulas for the meaning of these parameters:\n\n| | | |\n|---|---|---|\n| [born ](https://docs.lammps.org/pair_born.html) | a,b,c | type pairs |\n| [born/gauss ](https://docs.lammps.org/pair_born_gauss.html) | biga0,biga1,r0 | type pairs |\n| [buck, buck/coul/cut, buck/coul/long, buck/coul/msm ](https://docs.lammps.org/pair_buck.html) | a,c | type pairs |\n| [buck/mdf ](https://docs.lammps.org/pair_mdf.html) | a,c | type pairs |\n| [coul/cut, coul/cut/global ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | lambda | type pairs |\n| [coul/debye ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long, coul/msm ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | scale, lambda | type pairs |\n| [coul/slater/long ](https://docs.lammps.org/pair_coul_slater.html) | scale | type pairs |\n| [coul/streitz ](https://docs.lammps.org/pair_coul.html) | scale | type pairs |\n| [eam, eam/alloy, eam/fs ](https://docs.lammps.org/pair_eam.html) | scale | type pairs |\n| [harmonic/cut ](https://docs.lammps.org/pair_harmonic_cut.html) | k | type pairs |\n| [gauss ](https://docs.lammps.org/pair_gauss.html) | a | type pairs |\n| [lennard/mdf ](https://docs.lammps.org/pair_mdf.html) | a,b | type pairs |\n| [lj/class2 ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/class2/coul/cut, lj/class2/coul/long ](https://docs.lammps.org/pair_class2.html) | epsilon,sigma | type pairs |\n| [lj/cut ](https://docs.lammps.org/pair_lj.html) | epsilon,sigma | type pairs |\n| [lj/cut/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm ](https://docs.lammps.org/pair_lj_cut_coul.html) | epsilon,sigma | type pairs |\n| [lj/cut/coul/cut/soft, lj/cut/coul/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/cut/tip4p/cut, lj/cut/tip4p/long ](https://docs.lammps.org/pair_lj_cut_tip4p.html) | epsilon,sigma | type pairs |\n| [lj/cut/tip4p/long/soft ](https://docs.lammps.org/pair_fep_soft.html) | epsilon,sigma,lambda | type pairs |\n| [lj/expand ](https://docs.lammps.org/pair_lj_expand.html) | epsilon,sigma,delta | type pairs |\n| [lj/mdf ](https://docs.lammps.org/pair_mdf.html) | epsilon,sigma | type pairs |\n| [lj/sf/dipole/sf ](https://docs.lammps.org/pair_dipole.html) | epsilon,sigma,scale | type pairs |\n| [meam ](https://docs.lammps.org/pair_meam.html) | scale | type pairs |\n| [mie/cut ](https://docs.lammps.org/pair_mie.html) | epsilon,sigma,gamR,gamA | type pairs |\n| [morse, morse/smooth/linear ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha | type pairs |\n| [morse/soft ](https://docs.lammps.org/pair_morse.html) | d0,r0,alpha,lambda | type pairs |\n| [nm/cut ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [nm/cut/coul/cut, nm/cut/coul/long ](https://docs.lammps.org/pair_nm.html) | e0,r0,nn,mm | type pairs |\n| [pace, pace/extrapolation ](https://docs.lammps.org/pair_pace.html) | scale | type pairs |\n| [snap ](https://docs.lammps.org/pair_snap.html) | scale | type pairs |\n| [soft ](https://docs.lammps.org/pair_soft.html) | a | type pairs |\n| [ufm ](https://docs.lammps.org/pair_ufm.html) | epsilon,sigma,scale | type pairs |\n| [wf/cut ](https://docs.lammps.org/pair_wf_cut.html) | epsilon,sigma,nu,mu | type pairs |\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >It is easy to add new potentials and their parameters to this\n > list. All it typically takes is adding an extract() method to the\n > pair\\_\\*.cpp file associated with the potential. \n > \n\nNote that for many of the potentials, the parameter that can be varied\nis effectively a prefactor on the entire energy expression for the\npotential (e.g., the lj/cut epsilon). The parameters listed as \"scale\"\nare exactly that, since the energy expression for the\n[coul/cut ](https://docs.lammps.org/pair_coul.html) potential (for example) has no labeled\nprefactor in its formula. To apply an effective prefactor to some\npotentials, multiple parameters need to be altered. For example, the\n[Buckingham potential ](https://docs.lammps.org/pair_buck.html) needs both the A and C terms\naltered together. To scale the Buckingham potential, you should thus\nlist the pair style twice, once for A and once for C.\n\nIf a type pair parameter is specified, the *I* and *J* settings should\nbe specified to indicate which type pairs to apply it to. If a global\nparameter is specified, the *I* and *J* settings still need to be\nspecified, but are ignored.\n\nSimilar to the [pair_coeff command ](https://docs.lammps.org/pair_coeff.html), \\(I\\) and\n\\(J\\) can be specified in one of several ways. Explicit numeric values\ncan be used for each, as in the first example above. Or, one or both of\nthe types in the I,J pair can be a [type label ](https://docs.lammps.org/Howto_type_labels.html).\nLAMMPS sets the coefficients for the symmetric \\(J,I\\) interaction to\nthe same values.\n\nA wild-card asterisk can be used in place of or in conjunction with\nthe \\(I,J\\) arguments to set the coefficients for multiple pairs of atom\ntypes. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is\nthe number of atom types, then an asterisk with no numeric values means\nall types from 1 to \\(N\\). A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive). For the asterisk syntax, note that only type pairs with\n\\(I \\le J\\) are considered; if asterisks imply type pairs where\n\\(J < I\\), they are ignored.\n\nIMPROTANT NOTE: If [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is\nbeing used, then the *pstyle* will be a sub-style name. You must specify\n\\(I,J\\) arguments that correspond to type pair values defined (via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command) for that sub-style.\n\nThe *v_name* argument for keyword *pair* is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. Equal-style\nvariables can specify formulas with various mathematical functions,\nand include [thermo_style ](https://docs.lammps.org/thermo_style.html) command keywords for the\nsimulation box parameters and timestep and elapsed time. Thus it is\neasy to specify parameters that change as a function of time or span\nconsecutive runs in a continuous fashion. For the latter, see the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command and the\n*elaplong* keyword of [thermo_style custom ](https://docs.lammps.org/thermo_style.html) for details.\n\nFor example, these commands would change the prefactor coefficient of\nthe [pair_style soft ](https://docs.lammps.org/pair_soft.html) potential from 10.0 to 30.0 in a\nlinear fashion over the course of a simulation:\n\n```lmps\nvariable prefactor equal ramp(10,30)\nfix 1 all adapt 1 pair soft a * * v_prefactor\n```\n----------\n\nThe *kspace* keyword used the specified variable as a scale factor on\nthe energy, forces, virial calculated by whatever \\(k\\)-space solver is\ndefined by the [kspace_style ](https://docs.lammps.org/kspace_style.html) command. If the\nvariable has a value of 1.0, then the solver is unaltered.\n\nThe *kspace* keyword works this way whether the *scale* keyword\nis set to *no* or *yes* .\n\n----------\n\nThe *atom* keyword enables various atom properties to be changed. The\n*aparam* argument is the name of the parameter to change. This is the\ncurrent list of atom parameters that can be varied by this fix:\n\n* charge = charge on particle\n* diameter = diameter of particle\n\nThe \\(I\\) argument indicates which atom types are affected. A wild-card\nasterisk can be used in place of or in conjunction with the \\(I\\) argument\nto set the coefficients for multiple atom types.\n\nThe *v_name* argument of the *atom* keyword is the name of an\n[equal-style variable ](https://docs.lammps.org/variable.html) which will be evaluated each time\nthis fix is invoked to set the parameter to a new value. It should be\nspecified as v_name, where name is the variable name. See the\ndiscussion above describing the formulas associated with equal-style\nvariables. The new value is assigned to the corresponding attribute\nfor all atoms in the fix group.\n\nIf the atom parameter is *diameter* and per-atom density and per-atom\nmass are defined for particles (e.g., [atom_style granular ](https://docs.lammps.org/atom_style.html)),\nthen the mass of each particle is also changed when the diameter changes\n(density is assumed to stay constant).\n\nFor example, these commands would shrink the diameter of all granular\nparticles in the \"center\" group from 1.0 to 0.1 in a linear fashion\nover the course of a 1000-step simulation:\n\n```lmps\nvariable size equal ramp(1.0,0.1)\nfix 1 center adapt 10 atom diameter * v_size\n```\nFor [rRESPA time integration ](https://docs.lammps.org/run_style.html), this fix changes\nparameters on the outermost rRESPA level.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html).\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "The keyword \"scale yes\" is not supported for scaling per-atom parameters\ndiameter and change. You can use [fix adapt ](https://docs.lammps.org/fix_adapt.html) for those.\n", + "related": "[compute fep ](https://docs.lammps.org/compute_fep.html), [fix adapt ](https://docs.lammps.org/fix_adapt.html),\n[compute ti ](https://docs.lammps.org/compute_ti.html), [pair_style \\*/soft ](https://docs.lammps.org/pair_fep_soft.html)\n" }, { "command": [ - "mass" + "fix nve/asphere/noforce" ], "syntax": [ - "mass I value" + "fix ID group-ID nve/asphere/noforce" ], "args": [ [ { - "arg": "mass", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "I", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "value", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "nve/asphere/noforce", + "type": 1, + "choices": [] } ] ], - "parameters": "* I = atom type (see asterisk form below), or type label\n* value = mass \n", - "examples": "\n```lmps\nmass 1 1.0\nmass * 62.5\nmass 2* 62.5\n\nlabelmap atom 1 C\nmass C 12.01\n```\n", - "html_filename": "mass.html", - "short_description": "Set the mass for all atoms of one or more atom types", - "description": "Set the mass for all atoms of one or more atom types. Per-type mass\nvalues can also be set in the [read_data ](https://docs.lammps.org/read_data.html) data file\nusing the \"Masses\" keyword. See the [units ](https://docs.lammps.org/units.html) command for\nwhat mass units to use.\n\nThe I index can be specified in one of several ways. An explicit\nnumeric value can be used, as in the first example above. Or I can be\na type label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command, and which converts\ninternally to a numeric type. Or a wild-card asterisk can be used to\nset the mass for multiple atom types. This takes the form \"\\*\" or\n\"\\*n\" or \"n\\*\" or \"m\\*n\", where m and n are numbers. If N = the\nnumber of atom types, then an asterisk with no numeric values means\nall types from 1 to N. A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from n to N\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nA line in a [data file ](https://docs.lammps.org/read_data.html) that follows the \"Masses\"\nkeyword specifies mass using the same format as the arguments of the\nmass command in an input script, except that no wild-card asterisk can\nbe used. For example, under the \"Masses\" section of a data file, the\nline that corresponds to the first example above would be listed as\n\n```\n1 1.0\n```\nNote that the mass command can only be used if the [atom style ](https://docs.lammps.org/atom_style.html) requires per-type atom mass to be set.\nCurrently, all but the *sphere* and *ellipsoid* and *peri* styles do.\nThey require mass to be set for individual particles, not types.\nPer-atom masses are defined in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command, or set to default values by the\n[create_atoms ](https://docs.lammps.org/create_atoms.html) command. Per-atom masses can also be\nset to new values by the [set mass ](https://docs.lammps.org/set.html) or [set density ](https://docs.lammps.org/set.html)\ncommands.\n\nAlso note that [pair_style eam ](https://docs.lammps.org/pair_eam.html) and [pair_style bop ](https://docs.lammps.org/pair_bop.html) commands define the masses of atom types in their\nrespective potential files, in which case the mass command is normally\nnot used.\n\nIf you define a [hybrid atom style ](https://docs.lammps.org/atom_style.html) which includes one\n(or more) sub-styles which require per-type mass and one (or more)\nsub-styles which require per-atom mass, then you must define both.\nHowever, in this case the per-type mass will be ignored; only the\nper-atom mass will be used by LAMMPS.\n", - "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nAll masses must be defined before a simulation is run. They must also\nall be defined before a [velocity ](https://docs.lammps.org/velocity.html) or [fix shake ](https://docs.lammps.org/fix_shake.html) command is used.\n\nThe mass assigned to any type or atom must be > 0.0.\n", - "related": "none\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/asphere/noforce = style name of this fix command \n", + "examples": "\n```lmps\nfix 1 all nve/asphere/noforce\n```\n", + "html_filename": "fix_nve_asphere_noforce.html", + "short_description": "Perform updates of position and orientation, but not velocity or\nangular momentum for atoms in the group each timestep", + "description": "Perform updates of position and orientation, but not velocity or\nangular momentum for atoms in the group each timestep. In other\nwords, the force and torque on the atoms is ignored and their velocity\nand angular momentum are not updated. The atom velocities and\nangular momenta are used to update their positions and orientation.\n\nThis is useful as an implicit time integrator for Fast Lubrication\nDynamics, since the velocity and angular momentum are updated by the\n[pair_style lubricuteU ](https://docs.lammps.org/pair_lubricateU.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", + "related": "[fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" }, { "command": [ - "compute temp/region/eff" + "compute chunk/spread/atom" ], "syntax": [ - "compute ID group-ID temp/region/eff region-ID" + "compute ID group-ID chunk/spread/atom chunkID input1 input2 ..." ], "args": [ [ @@ -38517,132 +37880,119 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/region/eff", + "arg": "chunk/spread/atom", "type": 1, "choices": [] }, { - "arg": "region-ID", + "arg": "chunkID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/region/eff = style name of this compute command\n* region-ID = ID of region to use for choosing atoms \n", - "examples": "\n```lmps\ncompute mine flow temp/region/eff boundary\n```\n", - "html_filename": "compute_temp_region_eff.html", - "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, within a geometric region using the electron force field", - "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, within a geometric region using the electron force field.\nA compute of this style can be used by commands that compute a\ntemperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html)).\n\nThe operation of this compute is exactly like that described by the\n[compute temp/region ](https://docs.lammps.org/compute_temp_region.html) command, except that\nthe formulas for the temperature (scalar) and diagonal components of\nthe symmetric tensor (vector) include the radial electron velocity\ncontributions, as discussed by the [compute temp/eff](https://docs.lammps.org/compute_temp_eff.html) command.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EFF package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute temp/region ](https://docs.lammps.org/compute_temp_region.html),\n[compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html),\n[compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" -}, -{ - "command": [ - "pair_style pedone", - "pair_style pedone/omp" - ], - "syntax": [ - "pair_style style args" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, - "choices": [] }, { - "arg": "style", + "arg": "input1", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "input2", "type": 2, "choices": [] } ] ], - "parameters": "* style = pedone*\n* args = list of arguments for a particular style \n *     *pedone* args = cutoff \n      cutoff = global cutoff for Pedone interactions (distance units) \n", - "examples": "\n```lmps\npair_style hybrid/overlay pedone 15.0 coul/long 15.0\nkspace_style pppm 1.0e-5\n\npair_coeff * * coul/long\npair_coeff 1 2 pedone 0.030211 2.241334 2.923245 5.0\npair_coeff 2 2 pedone 0.042395 1.379316 3.618701 22.0\n```\nUsed in input scripts:\n\n```\nexamples/PACKAGES/pedone/in.pedone.relax\nexamples/PACKAGES/pedone/in.pedone.melt\n```\n", - "html_filename": "pair_pedone.html", - "short_description": "\nPair style *pedone* computes the **non-Coulomb** interactions of the Pedone\n(or PMMCS) potential **Pedone** which combines Coulomb\ninteractions, Morse potential, and repulsive \\(r^{-12}\\)\nLennard-Jones terms (see below)", - "description": "\nPair style *pedone* computes the **non-Coulomb** interactions of the Pedone\n(or PMMCS) potential **Pedone** which combines Coulomb\ninteractions, Morse potential, and repulsive \\(r^{-12}\\)\nLennard-Jones terms (see below). The *pedone* pair style is meant\nto be used in addition to a [Coulomb pair style ](https://docs.lammps.org/pair_coul.html) via\npair style [hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) (see example above).\nUsing *coul/long* or *could/dsf* (for solids) is recommended.\n\nThe full Pedone potential function from **Pedone** for each\npair of atoms is:\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r}\n + D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n + \\frac{B_0}{r^{12}} \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and \\(C\\) is a conversion factor that is\nspecific to the choice of [units ](https://docs.lammps.org/units.html) so that the entire\nCoulomb term is in energy units with \\(q_i\\) and \\(q_j\\) as the\nassigned charges in multiples of the elementary charge.\n\nThe following coefficients must be defined for the selected pairs of\natom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexample above:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(C_0\\) (energy units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global *pedone*\ncutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing.\n\nThis pair style support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html),\nso pair_style and pair_coeff commands does not need to be specified in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, or *outer* keywords.\n\n----------\n\n**(Pedone)** A. Pedone, G. Malavasi, M. C. Menziani, A. N. Cormack, and U. Segre, J. Phys. Chem. B, 110, 11780 (2006) \n ", - "restrictions": "The *pedone* pair style is only enabled if LAMMPS was built with the\nEXTRA-PAIR package. See the [Build package ](https://docs.lammps.org/Build_package.html) page\nfor more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style ](https://docs.lammps.org/pair_style.html),\n[pair style coul/long and coul/dsf ](https://docs.lammps.org/pair_coul.html),\n[pair style morse ](https://docs.lammps.org/pair_morse.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* chunk/spread/atom = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N] \n *      c_ID = global vector calculated by a compute with ID \n *      c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) \n *      f_ID = global vector calculated by a fix with ID \n *      f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) \n", + "examples": "\n```lmps\ncompute 1 all chunk/spread/atom mychunk c_com[*] c_gyration\n```\n", + "html_filename": "compute_chunk_spread_atom.html", + "short_description": "Define a calculation that \"spreads\" one or more per-chunk values to\neach atom in the chunk", + "description": "Define a calculation that \"spreads\" one or more per-chunk values to\neach atom in the chunk. This can be useful in several scenarios:\n\n* For creating a [dump file ](https://docs.lammps.org/dump.html) where each atom lists info about\n the chunk it is in, e.g. for post-processing purposes.\n* To access chunk value in [atom-style variables ](https://docs.lammps.org/variable.html) that\n need info about the chunk each atom is in.\n* To use the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to spatially\n average per-chunk values calculated by a per-chunk compute.\n\nExamples are given below.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFor inputs that are computes, they must be a compute that calculates\nper-chunk values. These are computes whose style names end in\n\"/chunk\".\n\nFor inputs that are fixes, they should be a fix that calculates\nper-chunk values. For example, [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) or\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) (assuming it is time-averaging\nper-chunk data).\n\nFor each atom, this compute accesses its chunk ID from the specified\n*chunkID* compute, then accesses the per-chunk value in each input.\nThose values are copied to this compute to become the output for that\natom.\n\nThe values generated by this compute will be 0.0 for atoms not in the\nspecified compute group *group-ID* . They will also be 0.0 if the atom\nis not in a chunk, as assigned by the *chunkID* compute. They will\nalso be 0.0 if the current chunk ID for the atom is out-of-bounds with\nrespect to the number of chunks stored by a particular input compute\nor fix.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS does not check that a compute or fix which calculates\n > per-chunk values uses the same definition of chunks as this compute.\n > It's up to you to be consistent. Likewise, for a fix input, LAMMPS\n > does not check that it is per-chunk data. It only checks that the fix\n > produces a global vector or array. \n > \n\n----------\n\nEach listed input is operated on independently.\n\nIf a bracketed index I is used, it can be specified using a wildcard\nasterisk with the index to effectively specify multiple values. This\ntakes the form \"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". If N = the number of\ncolumns in the array, then an asterisk with no numeric values means\nall indices from 1 to N. A leading asterisk means all indices from 1\nto n (inclusive). A trailing asterisk means all indices from n to N\n(inclusive). A middle asterisk means all indices from m to n\n(inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. E.g. these 2 compute chunk/spread/atom\ncommands are equivalent, since the [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) command creates a per-atom array\nwith 3 columns:\n\n```lmps\ncompute com all com/chunk mychunk\ncompute 10 all chunk/spread/atom mychunk c_com[*]\ncompute 10 all chunk/spread/atom mychunk c_com[1] c_com[2] c_com[3]\n```\n----------\n\nHere is an example of writing a dump file the with the center-of-mass\n(COM) for the chunk each atom is in. The commands below can be added\nto the bench/in.chain script.\n\n```lmps\ncompute cmol all chunk/atom molecule\ncompute com all com/chunk cmol\ncompute comchunk all chunk/spread/atom cmol c_com[*]\ndump 1 all custom 50 tmp.dump id mol type x y z c_comchunk[*]\ndump_modify 1 sort id\n```\nThe same per-chunk data for each atom could be used to define per-atom\nforces for the [fix addforce ](https://docs.lammps.org/fix_addforce.html) command. In this\nexample the forces act to pull atoms of an extended polymer chain\ntowards its COM in an attractive manner.\n\n```lmps\ncompute prop all property/atom xu yu zu\nvariable k equal 0.1\nvariable fx atom v_k*(c_comchunk[1]-c_prop[1])\nvariable fy atom v_k*(c_comchunk[2]-c_prop[2])\nvariable fz atom v_k*(c_comchunk[3]-c_prop[3])\nfix 3 all addforce v_fx v_fy v_fz\n```\nNote that [compute property/atom ](https://docs.lammps.org/compute_property_atom.html) is used\nto generate unwrapped coordinates for use in the per-atom force\ncalculation, so that the effect of periodic boundaries is accounted\nfor properly.\n\nOver time this applied force could shrink each polymer chain's radius\nof gyration in a polymer mixture simulation. Here is output from the\nbench/in.chain script. Thermo output is shown for 1000 steps, where\nthe last column is the average radius of gyration over all 320 chains\nin the 32000 atom system:\n\n```\ncompute gyr all gyration/chunk cmol\nvariable ave equal ave(c_gyr)\nthermo_style custom step etotal press v_ave\n\n0 22.394765 4.6721833 5.128278\n100 22.445002 4.8166709 5.0348372\n200 22.500128 4.8790392 4.9364875\n300 22.534686 4.9183766 4.8590693\n400 22.557196 4.9492211 4.7937849\n500 22.571017 4.9161853 4.7412008\n600 22.573944 5.0229708 4.6931243\n700 22.581804 5.0541301 4.6440647\n800 22.584683 4.9691734 4.6000016\n900 22.59128 5.0247538 4.5611513\n1000 22.586832 4.94697 4.5238362\n```\n----------\n\nHere is an example for using one set of chunks, defined for molecules,\nto compute the dipole moment vector for each chunk. E.g. for water\nmolecules. Then spreading those values to each atom in each chunk.\nThen defining a second set of chunks based on spatial bins. And\nfinally, using the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command to\ncalculate an average dipole moment vector per spatial bin.\n\n```lmps\ncompute cmol all chunk/atom molecule\ncompute dipole all dipole/chunk cmol\ncompute spread all chunk/spread/atom cmol c_dipole[1] c_dipole[2] c_dipole[3]\ncompute cspatial all chunk/atom bin/1d z lower 0.1 units reduced\nfix ave all ave/chunk 100 10 1000 cspatial c_spread[*]\n```\nNote that the [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html) command requires\nper-atom values as input. That is why the compute chunk/spread/atom\ncommand is used to assign per-chunk values to each atom in the chunk.\nIf a molecule straddles bin boundaries, each of its atoms contributes\nin a weighted manner to the average dipole moment of the spatial bin\nit is in.\n\n----------\n\n #### Output info\n\nThis compute calculates a per-atom vector or array, which can be\naccessed by any command that uses per-atom values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe output is a per-atom vector if a single input value is specified,\notherwise a per-atom array is output. The number of columns in the\narray is the number of inputs provided. The per-atom values for the\nvector or each column of the array will be in whatever\n[units ](https://docs.lammps.org/units.html) the corresponding input value is in.\n\nThe vector or array values are \"intensive\".\n", + "restrictions": " none\n", + "related": "[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [compute reduce/chunk ](https://docs.lammps.org/compute_reduce_chunk.html)\n" }, { "command": [ - "fix append/atoms" + "fix_modify AtC fields" ], "syntax": [ - "fix ID group-ID append/atoms face ... keyword value ..." + "fix_modify fields ", + "fix_modify fields " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "fields", + "type": 1, "choices": [] }, { - "arg": "append/atoms", + "arg": "", + "type": 3, + "choices": [ + "all", + "none" + ] + } + ], + [ + { + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "face", + "arg": "", "type": 2, "choices": [] }, { - "arg": "units", + "arg": "fields", + "type": 1, + "choices": [] + }, + { + "arg": "", "type": 3, "choices": [ - "basis", - "size", - "freq", - "temp", - "random", - "units" + "add", + "delete" ] }, { - "arg": "value", + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* append/atoms = style name of this fix command\n* face = zhi\n* zero or more keyword/value pairs may be appended\n* keyword = basis or size or freq or temp or random or units \n *        basis values = M itype \n         M = which basis atom \n         itype = atom type (1-N) to assign to this basis atom \n *        size args = Lz \n         Lz = z size of lattice region appended in a single event(distance units) \n *        freq args = freq \n         freq = the number of timesteps between append events \n *        temp args = target damp seed extent \n         target = target temperature for the region between zhi-extent and zhi (temperature units) \n         damp = damping parameter (time units) \n         seed = random number seed for langevin kicks \n         extent = extent of thermostatted region (distance units) \n *        random args = xmax ymax zmax seed \n         *xmax*, *ymax*, zmax = maximum displacement in particular direction (distance units) \n         seed = random number seed for random displacement \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n", - "examples": "\n```lmps\nfix 1 all append/atoms zhi size 5.0 freq 295 units lattice\nfix 4 all append/atoms zhi size 15.0 freq 5 units box\nfix A all append/atoms zhi size 1.0 freq 1000 units lattice\n```\n", - "html_filename": "fix_append_atoms.html", - "short_description": "This fix creates atoms on a lattice, appended on the zhi edge of the\nsystem box", - "description": "This fix creates atoms on a lattice, appended on the zhi edge of the\nsystem box. This can be useful when a shock or wave is propagating\nfrom zlo. This allows the system to grow with time to accommodate an\nexpanding wave. A simulation box must already exist, which is\ntypically created via the [create_box ](https://docs.lammps.org/create_box.html) command.\nBefore using this command, a lattice must also be defined using the\n[lattice ](https://docs.lammps.org/lattice.html) command.\n\nThis fix will automatically freeze atoms on the zhi edge of the\nsystem, so that overlaps are avoided when new atoms are appended.\n\nThe *basis* keyword specifies an atom type that will be assigned to\nspecific basis atoms as they are created. See the\n[lattice ](https://docs.lammps.org/lattice.html) command for specifics on how basis atoms are\ndefined for the unit cell of the lattice. By default, all created\natoms are assigned type = 1 unless this keyword specifies differently.\n\nThe *size* keyword defines the size in \\(z\\) of the chunk of material to\nbe added.\n\nThe *random* keyword will give the atoms random displacements around\ntheir lattice points to simulate some initial temperature.\n\nThe *temp* keyword will cause a region to be thermostatted with a\nLangevin thermostat on the zhi boundary. The size of the region is\nmeasured from zhi and is set with the *extent* argument.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command (e.g., \\(\\mathring{\\textrm{A}}\\)\nfor units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to\n[binary restart files ](https://docs.lammps.org/restart.html). None of the\n[fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe boundary on which atoms are added with append/atoms must be\nshrink/minimum. The opposite boundary may be any boundary type other\nthan periodic.\n", - "related": "[fix wall/piston ](https://docs.lammps.org/fix_wall_piston.html) command\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* fields = name of the AtC sub-command\n* all or none = output all or no fields\n* add or delete = add or delete the listed output fields\n* list_of_fields = one or more of the fields listed below:\n\n - density : mass per unit volume\n - displacement : displacement vector\n - momentum : momentum per unit volume\n - velocity : defined by momentum divided by density\n - projected_velocity : simple kernel estimation of atomic velocities\n - temperature : temperature derived from the relative atomic kinetic energy\n - kinetic_temperature : temperature derived from the full kinetic energy\n - number_density : simple kernel estimation of number of atoms per unit volume\n - stress : Cauchy stress tensor for eulerian analysis (atom_element_map), or first Piola-Kirchhoff stress tensor for lagrangian analysis\n - transformed_stress : first Piola-Kirchhoff stress tensor for eulerian analysis (atom_element_map), or Cauchy stress tensor for lagrangian analysis\n - heat_flux : spatial heat flux vector for eulerian, or referential heat flux vector for lagrangian\n - potential_energy : potential energy per unit volume\n - kinetic_energy : kinetic energy per unit volume\n - thermal_energy : thermal energy (kinetic energy - continuum kinetic energy) per unit volume\n - internal_energy : total internal energy (potential + thermal) per unit volume\n - energy : total energy (potential + kinetic) per unit volume\n - number_density : number of atoms per unit volume\n - eshelby_stress : configurational stress (energy-momentum) tensor defined by [Eshelby]_\n - vacancy_concentration : volume fraction of vacancy content\n - type_concentration : volume fraction of a specific atom type \n", + "examples": "\n```lmps\nfix_modify AtC fields add velocity temperature\n```\n", + "html_filename": "atc_hardy_fields.html", + "short_description": "Allows modification of the fields calculated and output by the AtC\ntransfer class", + "description": "Allows modification of the fields calculated and output by the AtC\ntransfer class. The commands are cumulative, e.g.:\n\n```lmps\nfix_modify AtC fields none\nfix_modify AtC fields add velocity temperature\n```\nwill only output the velocity and temperature fields.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html). Currently, the stress\nand heat flux formulas are only correct for central force potentials,\ne.g. Lennard-Jones and EAM but not Stillinger-Weber.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC gradients ](https://docs.lammps.org/atc_hardy_gradients.html)\n- [fix_modify AtC rates ](https://docs.lammps.org/atc_hardy_rates.html)\n- [fix_modify AtC computes ](https://docs.lammps.org/atc_hardy_computes.html)\n" }, { "command": [ - "fix langevin/eff" + "dump vtk" ], "syntax": [ - "fix ID group-ID langevin/eff Tstart Tstop damp seed keyword values ..." + "dump ID group-ID vtk N file args" ], "args": [ [ { - "arg": "fix", + "arg": "dump", "type": 1, "choices": [] }, @@ -38657,56 +38007,109 @@ export const command_docs = [ "choices": [] }, { - "arg": "langevin/eff", + "arg": "vtk", "type": 1, "choices": [] }, { - "arg": "Tstart", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "Tstop", + "arg": "file", "type": 2, "choices": [] }, { - "arg": "damp", + "arg": "args", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be dumped\n* vtk = style of dump command (other styles such as atom or cfg or dcd or xtc or xyz or local or custom are discussed on the [dump ](https://docs.lammps.org/dump.html) doc page)\n* N = dump every this many timesteps\n* file = name of file to write dump info to\n* args = same as arguments for [dump_style custom ](https://docs.lammps.org/dump.html) \n", + "examples": "\n```lmps\ndump dmpvtk all vtk 100 dump*.myforce.vtk id type vx fx\ndump dmpvtp flow vtk 100 dump*.%.displace.vtp id type c_myD[1] c_myD[2] c_myD[3] v_ke\n```\n", + "html_filename": "dump_vtk.html", + "short_description": "Dump a snapshot of atom quantities to one or more files every \\(N\\)\ntimesteps in a format readable by the [VTK visualization toolkit](https://docs.lammps.org/https://www.vtk.org>[_ or other visualization tools that use it, suchas `ParaView](https://www.paraview.org)", + "description": "Dump a snapshot of atom quantities to one or more files every \\(N\\)\ntimesteps in a format readable by the [VTK visualization toolkit](https://docs.lammps.org/https://www.vtk.org>[_ or other visualization tools that use it, suchas `ParaView](https://www.paraview.org). The time steps on which dumpoutput is written can also be controlled by a variable; see the[dump_modify every ](https://docs.lammps.org/dump_modify.html) command for details.This dump style is similar to [dump_style custom ](https://docs.lammps.org/dump.html) but usesthe VTK library to write data to VTK simple legacy or XML format,depending on the filename extension specified for the dump file. Thiscan be either *\\*.vtk* for the legacy format or *\\*.vtp* and *\\*.vtu*,respectively, for XML format; see the `VTK homepage ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Because periodic boundary conditions are enforced only\n > on timesteps when neighbor lists are rebuilt, the coordinates of an\n > atom written to a dump file may be slightly outside the simulation\n > box. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Unless the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) option is invoked,\n > the lines of atom information written to dump files will be in an\n > indeterminate order for each snapshot. This is even true when\n > running on a single processor, if the [atom_modify sort > ](https://docs.lammps.org/atom_modify.html) option is on, which it is by default. In this case\n > atoms are re-ordered periodically during a simulation, due to spatial\n > sorting. It is also true when running in parallel, because data for\n > a single snapshot is collected from multiple processors, each of\n > which owns a subset of the atoms. \n > \n\nFor the *vtk* style, sorting is off by default. See the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) page for details.\n\n----------\n\nThe dimensions of the simulation box are written to a separate file\nfor each snapshot (either in legacy VTK or XML format depending on the\nformat of the main dump file) with the suffix *_boundingBox* appended\nto the given dump filename.\n\nFor an orthogonal simulation box this information is saved as a\nrectilinear grid (legacy .vtk or .vtr XML format).\n\nTriclinic simulation boxes (non-orthogonal) are saved as\nhexahedrons in either legacy .vtk or .vtu XML format.\n\nStyle *vtk* allows you to specify a list of atom attributes to be\nwritten to the dump file for each atom. The list of possible attributes\nis the same as for the [dump_style custom ](https://docs.lammps.org/dump.html) command; see its\ndocumentation page for a listing and an explanation of each attribute.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Since position data is required to write VTK files the atom\n > attributes \"x y z\" do not have to be specified explicitly; they will\n > be included in the dump file regardless. Also, in contrast to the\n > *custom* style, the specified *vtk* attributes are rearranged to\n > ensure correct ordering of vector components (except for computes and\n > fixes - these have to be given in the right order) and duplicate\n > entries are removed. \n > \n\nThe VTK format uses a single snapshot of the system per file, thus\na wildcard \"\\*\" must be included in the filename, as discussed below.\nOtherwise the dump files will get overwritten with the new snapshot\neach time.\n\n----------\n\nDumps are performed on timesteps that are a multiple of N (including\ntimestep 0) and on the last timestep of a minimization if the\nminimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of N. This behavior can be\nchanged via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command, which\ncan also be useful if the dump command is invoked after a minimization\nended on an arbitrary timestep. N can be changed between runs by\nusing the [dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\nThe [dump_modify every ](https://docs.lammps.org/dump_modify.html) command\nalso allows a variable to be used to determine the sequence of\ntimesteps on which dump files are written. In this mode a dump on the\nfirst timestep of a run will also not be written unless the\n[dump_modify first ](https://docs.lammps.org/dump_modify.html) command is used.\n\nDump filenames can contain two wildcard characters. If a \"\\*\"\ncharacter appears in the filename, then one file per snapshot is\nwritten and the \"\\*\" character is replaced with the timestep value.\nFor example, tmp.dump\\*.vtk becomes tmp.dump0.vtk, tmp.dump10000.vtk,\ntmp.dump20000.vtk, etc. Note that the [dump_modify pad ](https://docs.lammps.org/dump_modify.html)\ncommand can be used to ensure all timestep numbers are the same length\n(e.g. 00010), which can make it easier to read a series of dump files\nin order with some post-processing tools.\n\nIf a \"%\" character appears in the filename, then each of P processors\nwrites a portion of the dump file, and the \"%\" character is replaced\nwith the processor ID from 0 to P-1 preceded by an underscore character.\nFor example, tmp.dump%.vtp becomes tmp.dump_0.vtp, tmp.dump_1.vtp, ...\ntmp.dump_P-1.vtp, etc. This creates smaller files and can be a fast\nmode of output on parallel machines that support parallel I/O for output.\n\nBy default, P = the number of processors meaning one file per\nprocessor, but P can be set to a smaller value via the *nfile* or\n*fileper* keywords of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command.\nThese options can be the most efficient way of writing out dump files\nwhen running on large numbers of processors.\n\nFor the legacy VTK format \"%\" is ignored and P = 1, i.e., only\nprocessor 0 does write files.\n\nNote that using the \"\\*\" and \"%\" characters together can produce a\nlarge number of small dump files!\n\nIf *dump_modify binary* is used, the dump file (or files, if \"\\*\" or\n\"%\" is also used) is written in binary format. A binary dump file\nwill be about the same size as a text version, but will typically\nwrite out much faster.\n\n----------\n", + "restrictions": "The *vtk* style does not support writing of gzipped dump files.\n\nThe *vtk* dump style is part of the VTK package. It is only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nTo use this dump style, you also must link to the VTK library. See\nthe info in lib/vtk/README and ensure the Makefile.lammps file in that\ndirectory is appropriate for your machine.\n\nThe *vtk* dump style supports neither buffering or custom format\nstrings.\n", + "related": "[dump ](https://docs.lammps.org/dump.html), [dump image ](https://docs.lammps.org/dump_image.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html)\n" +}, +{ + "command": [ + "pair_style coul/tt" + ], + "syntax": [ + "pair_style style args" + ], + "args": [ + [ { - "arg": "seed", - "type": 2, + "arg": "pair_style", + "type": 1, "choices": [] }, { - "arg": "keyword", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "values", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* langevin/eff = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* damp = damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer)\n* zero or more keyword/value pairs may be appended \n *      keyword = scale or tally or zero \n       scale values = type ratio \n       type = atom type (1-N) \n       ratio = factor by which to scale the damping coefficient \n       tally values = no or yes \n       no = do not tally the energy added/subtracted to atoms \n       yes = do tally the energy added/subtracted to atoms \n       zero value = no or yes \n       no = do not set total random force to zero \n       yes = set total random force to zero \n", - "examples": "\n```lmps\nfix 3 boundary langevin/eff 1.0 1.0 10.0 699483\nfix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5\n```\n", - "html_filename": "fix_langevin_eff.html", - "short_description": "Apply a Langevin thermostat as described in **Schneider2**\nto a group of nuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html) model", - "description": "Apply a Langevin thermostat as described in **Schneider2**\nto a group of nuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html) model. Used with [fix nve/eff ](https://docs.lammps.org/fix_nve_eff.html),\nthis command performs Brownian dynamics (BD), since the total force on\neach atom will have the form:\n\\[\\begin{align*} \n F = & F_c + F_f + F_r \\\\\n F_f = & - \\frac{m}{\\mathrm{damp}} v \\\\\n F_r \\propto & \\sqrt{\\frac{k_B T m}{dt~\\mathrm{damp}}} \\end{align*} \\]\n\\(F_c\\) is the conservative force computed via the usual\ninter-particle interactions ([pair_style ](https://docs.lammps.org/pair_style.html)).\nThe \\(F_f\\) and \\(F_r\\) terms are added by this fix on a\nper-particle basis.\n\nThe operation of this fix is exactly like that described by the\n[fix langevin ](https://docs.lammps.org/fix_langevin.html) command, except that the\nthermostatting is also applied to the radial electron velocity for\nelectron particles.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). Because the state of the random number generator is not\nsaved in restart files, this means you cannot do \"exact\" restarts with\nthis fix, where the simulation continues on the same as if no restart\nhad taken place. However, in a statistical sense, a restarted\nsimulation should produce the same behavior.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*, but only if the *tally* keyword to set to\n*yes* . See the [thermo_style ](https://docs.lammps.org/thermo_style.html) page for\ndetails.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\nNote that calculation of this quantity also requires setting the\n*tally* keyword to *yes* .\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Schneider2)** Schneider and Stoll, Phys Rev B, 17, 1302 (1978). \n ", - "restrictions": " none\n\nThis fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html)\n" + "parameters": "* style = coul/tt\n* args = list of arguments for a particular style \n *      coul/tt args = n cutoff \n       n = degree of polynomial \n       cutoff = global cutoff (distance units) \n", + "examples": "\n```lmps\npair_style hybrid/overlay ... coul/tt 4 12.0\npair_coeff 1 2 coul/tt 4.5 1.0\npair_coeff 1 2 coul/tt 4.0 1.0 4 12.0\npair_coeff 1 3* coul/tt 4.5 1.0 4\n```\nExample input scripts available: examples/PACKAGES/drude\n", + "html_filename": "pair_coul_tt.html", + "short_description": "The *coul/tt* pair style is meant to be used with force fields that\ninclude explicit polarization through Drude dipoles", + "description": "The *coul/tt* pair style is meant to be used with force fields that\ninclude explicit polarization through Drude dipoles.\n\nThe *coul/tt* pair style should be used as a sub-style within in the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, in conjunction with a\nmain pair style including Coulomb interactions and *thole* pair style,\nor with *lj/cut/thole/long* pair style that is equivalent to the combination\nof preceding two.\n\nThe *coul/tt* pair styles compute the charge-dipole Coulomb interaction damped\nat short distances by a function\n\\[\n f_{n,ij}(r) = 1 - c_{ij} \\cdot e^{-b_{ij} r} \\sum_{k=0}^n \\frac{(b_{ij} r)^k}{k!}\\]\nThis function results from an adaptation to the Coulomb interaction **Salanne1** of the damping function originally proposed\nby **TangToennies1** for van der Waals interactions.\n\nThe polynomial takes the degree 4 for damping the Coulomb interaction.\nThe parameters \\(b_{ij}\\) and \\(c_{ij}\\) could be determined from\nfirst-principle calculations for small, mainly mono-atomic, ions **Salanne1**, or else treated as empirical for large molecules.\n\nIn pair styles with Drude induced dipoles, this damping function is typically\napplied to the interactions between a Drude charge (either \\(q_{D,i}\\) on\na Drude particle or \\(-q_{D,i}\\) on the respective\nDrude core)) and a charge on a non-polarizable atom, \\(q_{j}\\).\n\nThe Tang-Toennies function could also be used to damp electrostatic\ninteractions between the (non-polarizable part of the) charge of a core,\n\\(q_{i}-q_{D,i}\\), and the Drude charge of another, \\(-q_{D,j}\\).\nThe \\(b_{ij}\\) and \\(c_{ij}\\) are equal to \\(b_{ji}\\) and\n\\(c_{ji}\\) in the case of core-core interactions.\n\nFor pair_style *coul/tt*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the example above.\n\n* \\(b_{ij}\\)\n* \\(c_{ij}\\)\n* degree of polynomial (positive integer)\n* cutoff (distance units)\n\nThe last two coefficients are optional. If not specified the global\ndegree of the polynomial or the global cutoff specified in the pair_style\ncommand are used. In order to specify a cutoff (forth argument), the degree of\nthe polynomial (third argument) must also be specified.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe *coul/tt* pair style does not support mixing. Thus, coefficients\nfor all I,J pairs must be specified explicitly.\n\n**(Salanne1)** Salanne, Rotenberg, Jahn, Vuilleumier, Simon, Christian and Madden, Theor Chem Acc, 131, 1143 (2012). \n \n**(TangToennies1)** J Chem Phys, 80, 3726 (1984). \n ", + "restrictions": "These pair styles are part of the DRUDE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair_style should currently not be used with the [charmm dihedralstyle ](https://docs.lammps.org/dihedral_charmm.html) if the latter has non-zero 1-4 weighting\nfactors. This is because the *coul/tt* pair style does not know which\npairs are 1-4 partners of which dihedrals.\n", + "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html),\n[fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html),\n[compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html),\n[pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" }, { "command": [ - "compute dipole/chunk" + "bond_style harmonic/shift", + "bond_style harmonic/shift/omp" ], "syntax": [ - "compute ID group-ID style chunkID arg" + "bond_style harmonic/shift" + ], + "args": [ + [ + { + "arg": "bond_style", + "type": 1, + "choices": [] + }, + { + "arg": "harmonic/shift", + "type": 3, + "choices": [ + "harmonic/shift", + "harmonic/shift/omp" + ] + } + ] + ], + "parameters": "", + "examples": "\n```lmps\nbond_style harmonic/shift\nbond_coeff 5 10.0 0.5 1.0\n```\n", + "html_filename": "bond_harmonic_shift.html", + "short_description": "The *harmonic/shift* bond style is a shifted harmonic bond that uses\nthe potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and \\(r_c\\) the critical distance", + "description": "The *harmonic/shift* bond style is a shifted harmonic bond that uses\nthe potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and \\(r_c\\) the critical distance.\nThe potential is \\(-U_{\\text{min}}\\) at \\(r0\\) and zero at \\(r_c\\). The spring constant is\n\\(k = U_{\\text{min}} / [ 2 (r_0-r_c)^2]\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n\n* \\(r_0\\) (distance)\n\n* \\(r_c\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_harmonic ](https://docs.lammps.org/bond_harmonic.html)\n" +}, +{ + "command": [ + "compute erotate/sphere", + "compute erotate/sphere/kk" + ], + "syntax": [ + "compute ID group-ID erotate/sphere" ], "args": [ [ @@ -38726,73 +38129,169 @@ export const command_docs = [ "choices": [] }, { - "arg": "dipole/tip4p/chunk", + "arg": "erotate/sphere", "type": 3, "choices": [ - "dipole/chunk", - "dipole/tip4p/chunk" + "erotate/sphere", + "erotate/sphere/kk" ] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* erotate/sphere = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all erotate/sphere\n```\n", + "html_filename": "compute_erotate_sphere.html", + "short_description": "Define a computation that calculates the rotational kinetic energy of\na group of spherical particles", + "description": "Define a computation that calculates the rotational kinetic energy of\na group of spherical particles.\n\nThe rotational energy is computed as \\(\\frac12 I \\omega^2\\),\nwhere \\(I\\) is the moment of inertia for a sphere and \\(\\omega\\)\nis the particle's angular velocity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For [2d models ](https://docs.lammps.org/dimension.html), particles are treated as\n > spheres, not disks, meaning their moment of inertia will be the same\n > as in 3d. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the KE). This value can be\nused by any command that uses a global scalar value from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\". The\nscalar value will be in energy [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute requires that atoms store a radius and angular velocity\n(omega) as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html) command.\n\nAll particles in the group must be finite-size spheres or point\nparticles. They cannot be aspherical. Point particles will not\ncontribute to the rotational energy.\n", + "related": "[compute erotate/asphere ](https://docs.lammps.org/compute_erotate_asphere.html)\n" +}, +{ + "command": [ + "fix_modify AtC remove_source" + ], + "syntax": [ + "fix_modify remove_source " + ], + "args": [ + [ + { + "arg": "fix_modify", + "type": 1, + "choices": [] }, { - "arg": "chunkID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "arg", + "arg": "remove_source", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* style = dipole/chunk or dipole/tip4p/chunk\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* arg = mass or geometry = use COM or geometric center for charged chunk correction (optional) \n", - "examples": "\n```lmps\ncompute 1 fluid dipole/chunk molchunk\ncompute dw water dipole/chunk 1 geometry\n```\n", - "html_filename": "compute_dipole_chunk.html", - "short_description": "Define a computation that calculates the dipole vector and total dipole\nfor multiple chunks of atoms", - "description": "Define a computation that calculates the dipole vector and total dipole\nfor multiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom to a\nsingle chunk (or no chunk). The ID for this command is specified as\nchunkID. For example, a single chunk could be the atoms in a molecule\nor atoms in a spatial bin. See the [compute chunk/atom](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html) doc pages for\ndetails of how chunks can be defined and examples of how they can be\nused to measure properties of a system.\n\nThese computes calculate the \\((x,y,z)\\) coordinates of the dipole\nvector and the total dipole moment for each chunk, which includes all\neffects due to atoms passing through periodic boundaries. For chunks\nwith a net charge the resulting dipole is made position independent by\nsubtracting the position vector of the center of mass or geometric\ncenter times the net charge from the computed dipole vector. Both\nper-atom charges and per-atom dipole moments, if present, contribute to\nthe computed dipole.\n\nCompute *dipole/tip4p/chunk* includes adjustments for the charge\ncarrying point M in molecules with TIP4P water geometry. The\ncorresponding parameters are extracted from the pair style.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not in\nthat group, signifying they are not assigned to a chunk, and will thus\nalso not contribute to this calculation. You can specify the \"all\"\ngroup for this command if you simply want to include atoms with non-zero\nchunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's dipole in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags\n > and how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the [set image > ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute com/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all dipole/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThese computes calculate a global array where the number of rows = the\nnumber of chunks *Nchunk* as calculated by the specified [computechunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is 4\nfor the \\((x,y,z)\\) dipole vector components and the total dipole of\neach chunk. These values can be accessed by any command that uses\nglobal array values from a compute as input. See the [Howto output](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\ndipole units (i.e., charge [units ](https://docs.lammps.org/units.html) times distance\n[units ](https://docs.lammps.org/units.html)).\n", - "restrictions": "Compute style *dipole/tip4p/chunk* is part of the EXTRA-COMPUTE\npackage. It is only enabled if LAMMPS was built with that package. See\nthe [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nCompute style *dipole/tip4p/chunk* can only be used with tip4p pair\nstyles.\n", - "related": "[compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html),\n[compute dipole ](https://docs.lammps.org/compute_dipole.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* remove_source = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* element_set = name of set of elements \n", + "examples": "\n```lmps\nfix_modify AtC remove_source temperature groupNAME\n```\n", + "html_filename": "atc_remove_source.html", + "short_description": "Remove a domain source", + "description": "Remove a domain source.\n", + "restrictions": "The keyword *all* is reserved and thus not available as element_set name.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC source ](https://docs.lammps.org/atc_source.html)\n" }, { "command": [ - "bond_style mm3" + "dump" ], "syntax": [ - "bond_style mm3" + "dump ID group-ID style N file attribute1 attribute2 ..." ], "args": [ [ { - "arg": "bond_style", - "type": 1, + "arg": "dump", + "type": 1, + "choices": [] + }, + { + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "yaml", + "type": 3, + "choices": [ + "atom", + "atom/adios", + "atom/gz", + "atom/zstd", + "cfg", + "cfg/gz", + "cfg/zstd", + "cfg/uef", + "custom", + "custom/gz", + "custom/zstd", + "custom/adios", + "dcd", + "grid", + "grid/vtk", + "h5md", + "image", + "local", + "local/gz", + "local/zstd", + "molfile", + "movie", + "netcdf", + "netcdf/mpiio", + "vtk", + "xtc", + "xyz", + "xyz/gz", + "xyz/zstd", + "yaml" + ] + }, + { + "arg": "N", + "type": 2, "choices": [] }, { - "arg": "mm3", - "type": 1, + "arg": "file", + "type": 2, + "choices": [] + }, + { + "arg": "attribute1", + "type": 2, + "choices": [] + }, + { + "arg": "attribute2", + "type": 2, "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style mm3\nbond_coeff 1 100.0 107.0\n```\n", - "html_filename": "bond_mm3.html", - "short_description": "The *mm3* bond style uses the potential that is anharmonic in the bond\nas defined in **mm3-allinger1989**\n\\[\n E = K (r - r_0)^2 \\left[ 1 - 2.55(r-r_0) + \\frac{7}{12} 2.55^2(r-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium value of the bond, and \\(K\\) is a\nprefactor", - "description": "The *mm3* bond style uses the potential that is anharmonic in the bond\nas defined in **mm3-allinger1989**\n\\[\n E = K (r - r_0)^2 \\left[ 1 - 2.55(r-r_0) + \\frac{7}{12} 2.55^2(r-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium value of the bond, and \\(K\\) is a\nprefactor. The anharmonic prefactors have units \\(\\mathring{\\textrm{A}}^{-n}\\):\n\\(-2.55 \\mathring{\\textrm{A}}^{-1}\\) and \\(\\frac{7}{12} 2.55^2 \\mathring{\\textrm{A}}^{-2}\\). The code takes\ncare of the necessary unit conversion for these factors internally.\nNote that the MM3 papers contain an error in Eq (1):\n\\(\\frac{7}{12} 2.55\\) should be replaced with \\(\\frac{7}{12} 2.55^2\\)\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n**(mm3-allinger1989)** Allinger, Yuh, Lii, JACS, 111(23), 8551-8566\n(1989), \n ", - "restrictions": "This bond style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html)\n" + "parameters": "* ID = user-assigned name for the dump\n* group-ID = ID of the group of atoms to be dumped\n* style = atom or atom/adios or atom/gz or atom/zstd or cfg or cfg/gz or cfg/zstd or cfg/uef or custom or custom/gz or custom/zstd or custom/adios or dcd or grid or grid/vtk or h5md or image or local or local/gz or local/zstd or molfile or movie or netcdf or netcdf/mpiio or vtk or xtc or xyz or xyz/gz or xyz/zstd or yaml\n* N = dump on timesteps which are multiples of N\n* file = name of file to write dump info to\n* attribute1,attribute2,... = list of attributes for a particular style \n *        atom attributes = none \n *        atom/adios attributes = none, discussed on [dump atom/adios ](https://docs.lammps.org/dump_adios.html) page \n *        atom/gz attributes = none \n *        atom/zstd attributes = none \n *        cfg attributes = same as custom attributes, see below \n *        cfg/gz attributes = same as custom attributes, see below \n *        cfg/zstd attributes = same as custom attributes, see below \n *        cfg/uef attributes = same as custom attributes, discussed on [dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html) page \n *        custom, custom/gz, custom/zstd attributes = see below \n *        custom/adios attributes = same as custom attributes, discussed on [dump custom/adios ](https://docs.lammps.org/dump_adios.html) page \n *        dcd attributes = none \n *        h5md attributes = discussed on [dump h5md ](https://docs.lammps.org/dump_h5md.html) page \n *        grid attributes = see below \n *        grid/vtk attributes = see below \n *        image attributes = discussed on [dump image ](https://docs.lammps.org/dump_image.html) page \n *        local, local/gz, local/zstd attributes = see below \n *        molfile attributes = discussed on [dump molfile ](https://docs.lammps.org/dump_molfile.html) page \n *        movie attributes = discussed on [dump image ](https://docs.lammps.org/dump_image.html) page \n *        netcdf attributes = discussed on [dump netcdf ](https://docs.lammps.org/dump_netcdf.html) page \n *        netcdf/mpiio attributes = discussed on [dump netcdf ](https://docs.lammps.org/dump_netcdf.html) page \n *        vtk attributes = same as custom attributes, see below, also [dump vtk ](https://docs.lammps.org/dump_vtk.html) page \n *        xtc attributes = none \n *        xyz attributes = none \n *        xyz/gz attributes = none \n *        xyz/zstd attributes = none \n *        yaml attributes = same as custom attributes, see below \n* custom or custom/gz or custom/zstd or cfg or cfg/gz or cfg/zstd or cfg/uef or netcdf or netcdf/mpiio or yaml attributes: \n *          possible attributes = id, mol, proc, procp1, type, element, mass, \n           x, y, z, xs, ys, zs, xu, yu, zu, \n           xsu, ysu, zsu, ix, iy, iz, \n           vx, vy, vz, fx, fy, fz, \n           q, mux, muy, muz, mu, \n           radius, diameter, omegax, omegay, omegaz, \n           angmomx, angmomy, angmomz, tqx, tqy, tqz, \n           c_ID, c_ID[I], f_ID, f_ID[I], v_name, \n           i_name, d_name, i2_name[I], d2_name[I] \n           id = atom ID \n           mol = molecule ID \n           proc = ID of processor that owns atom \n           procp1 = ID+1 of processor that owns atom \n           type = atom type \n           typelabel = atom [type label ](https://docs.lammps.org/Howto_type_labels.html) \n           element = name of atom element, as defined by [dump_modify ](https://docs.lammps.org/dump_modify.html) command \n           mass = atom mass \n           x,y,z = unscaled atom coordinates \n           xs,ys,zs = scaled atom coordinates \n           xu,yu,zu = unwrapped atom coordinates \n           xsu,ysu,zsu = scaled unwrapped atom coordinates \n           ix,iy,iz = box image that the atom is in \n           vx,vy,vz = atom velocities \n           fx,fy,fz = forces on atoms \n           q = atom charge \n           mux,muy,muz = orientation of dipole moment of atom \n           mu = magnitude of dipole moment of atom \n           radius,diameter = radius, diameter of spherical particle \n           omegax,omegay,omegaz = angular velocity of spherical particle \n           angmomx,angmomy,angmomz = angular momentum of aspherical particle \n           tqx,tqy,tqz = torque on finite-size particles \n           c_ID = per-atom vector calculated by a compute with ID \n           c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = per-atom vector calculated by a fix with ID \n           f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n           v_name = per-atom vector calculated by an atom-style variable with name \n           i_name = custom integer vector with name \n           d_name = custom floating point vector with name \n           i2_name[I] = Ith column of custom integer array with name, I can include wildcard (see below) \n           d2_name[I] = Ith column of custom floating point vector with name, I can include wildcard (see below) \n* local or local/gz or local/zstd attributes: \n *          possible attributes = index, c_ID, c_ID[I], f_ID, f_ID[I] \n           index = enumeration of local values \n           c_ID = local vector calculated by a compute with ID \n           c_ID[I] = Ith column of local array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = local vector calculated by a fix with ID \n           f_ID[I] = Ith column of local array calculated by a fix with ID, I can include wildcard (see below) \n* grid or grid/vtk attributes: \n *          possible attributes = c_ID:gname:dname, c_ID:gname:dname[I], f_ID:gname:dname, f_ID:gname:dname[I] \n           gname = name of grid defined by compute or fix \n           dname = name of data field defined by compute or fix \n           c_ID = per-grid vector calculated by a compute with ID \n           c_ID[I] = Ith column of per-grid array calculated by a compute with ID, I can include wildcard (see below) \n           f_ID = per-grid vector calculated by a fix with ID \n           f_ID[I] = Ith column of per-grid array calculated by a fix with ID, I can include wildcard (see below) \n", + "examples": "\n```lmps\ndump myDump all atom 100 dump.lammpstrj\ndump myDump all atom/gz 100 dump.atom.gz\ndump myDump all atom/zstd 100 dump.atom.zst\ndump 2 subgroup atom 50 dump.run.bin\ndump 4a all custom 100 dump.myforce.* id type x y vx fx\ndump 4a all custom 100 dump.myvel.lammpsbin id type x y z vx vy vz\ndump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke\ndump 4b flow custom 100 dump.%.myforce id type c_myF[*] v_ke\ndump 2 inner cfg 10 dump.snap.*.cfg mass type xs ys zs vx vy vz\ndump snap all cfg 100 dump.config.*.cfg mass type xs ys zs id type c_Stress[2]\ndump 1 all xtc 1000 file.xtc\n```\n", + "html_filename": "dump.html", + "short_description": "Dump a snapshot of quantities to one or more files once every\n\\(N\\) timesteps in one of several styles", + "description": "Dump a snapshot of quantities to one or more files once every\n\\(N\\) timesteps in one of several styles. The timesteps on which\ndump output is written can also be controlled by a variable. See the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command.\n\nAlmost all the styles output per-atom data, i.e. one or more values\nper atom. The exceptions are as follows. The *local* styles output\none or more values per bond (angle, dihedral, improper) or per pair of\ninteracting atoms (force or neighbor interactions). The *grid* styles\noutput one or more values per grid cell, which are produced by other\ncommands which overlay the simulation domain with a regular grid. See\nthe [Howto grid ](https://docs.lammps.org/Howto_grid.html) doc page for details. The *image*\nstyle renders a JPG, PNG, or PPM image file of the system for each\nsnapshot, while the *movie* style combines and compresses the series\nof images into a movie file; both styles are discussed in detail on\nthe [dump image ](https://docs.lammps.org/dump_image.html) page.\n\nOnly information for atoms in the specified group is dumped. The\n[dump_modify thresh and region and refresh ](https://docs.lammps.org/dump_modify.html)\ncommands can also alter what atoms are included. Not all styles\nsupport these options; see details on the [dump_modify](https://docs.lammps.org/dump_modify.html) doc page.\n\nAs described below, the filename determines the kind of output: text\nor binary or gzipped, one big file or one per timestep, one file for\nall the processors or multiple smaller files.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because periodic boundary conditions are enforced only on timesteps\n > when neighbor lists are rebuilt, the coordinates of an atom written\n > to a dump file may be slightly outside the simulation box.\n > Re-neighbor timesteps will not typically coincide with the\n > timesteps dump snapshots are written. See the [dump_modify > pbc ](https://docs.lammps.org/dump_modify.html) command if you wish to force coordinates to be\n > strictly inside the simulation box. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unless the [dump_modify sort ](https://docs.lammps.org/dump_modify.html) option is invoked,\n > the lines of atom or grid information written to dump files\n > (typically one line per atom or grid cell) will be in an\n > indeterminate order for each snapshot. This is even true when\n > running on a single processor, if the [atom_modify sort > ](https://docs.lammps.org/atom_modify.html) option is on, which it is by default. In this case\n > atoms are re-ordered periodically during a simulation, due to\n > spatial sorting. It is also true when running in parallel, because\n > data for a single snapshot is collected from multiple processors,\n > each of which owns a subset of the atoms. \n > \n\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Without either including atom IDs or using the [dump_modify sort > ](https://docs.lammps.org/dump_modify.html) option, it is impossible for visualization programs\n > (e.g. OVITO or VMD) or analysis tools to assign data in different\n > frames consistently to the same atom. This can lead to incorrect\n > visualizations or results. LAMMPS will print a warning in such cases. \n > \n\nFor the *atom*, *custom*, *cfg*, *grid*, and *local* styles, sorting\nis off by default. For the *dcd*, *grid/vtk*, *xtc*, *xyz*, and\n*molfile* styles, sorting by atom ID or grid ID is on by default. See\nthe [dump_modify ](https://docs.lammps.org/dump_modify.html) page for details.\n\nThe *style* keyword determines what kind of data is written to the\ndump file(s) and in what format.\n\nNote that *atom*, *custom*, *dcd*, *xtc*, *xyz*, and *yaml* style dump\nfiles can be read directly by [VMD](https://www.ks.uiuc.edu/Research/vmd),\na popular tool for visualizing and analyzing trajectories from atomic\nand molecular systems. For reading *netcdf* style dump files, the\nnetcdf plugin needs to be recompiled from source using a NetCDF version\ncompatible with the one used by LAMMPS. The bundled plugin binary\nuses a very old version of NetCDF that is not compatible with LAMMPS.\n\nLikewise the [OVITO visualization package](https://www.ovito.org),\npopular for materials modeling, can read the *atom*, *custom*,\n*local*, *xtc*, *cfg*, *netcdf*, and *xyz* style atom dump files\ndirectly. With version 3.8 and above, OVITO can also read and\nvisualize *grid* style dump files with grid cell data, including\niso-surface images of the grid cell values.\n\nNote that settings made via the [dump_modify ](https://docs.lammps.org/dump_modify.html)\ncommand can also alter the format of individual values and content of\nthe dump file itself. This includes the precision of values output to\ntext-based dump files which is controlled by the [dump_modifyformat ](https://docs.lammps.org/dump_modify.html) command and its options.\n\n----------\n\nFormat of native LAMMPS format dump files:\n\nThe *atom*, *custom*, *grid*, and *local* styles create files in a\nsimple LAMMPS-specific text format that is mostly self-explanatory\nwhen viewing a dump file. Many post-processing tools either included\nwith LAMMPS or third-party tools can read this format, as does the\n[rerun ](https://docs.lammps.org/rerun.html) command. See tools described on the [Tools](https://docs.lammps.org/Tools.html) doc page for examples, including [Pizza.py](https://lammps.github.io/pizza).\n\nFor all these styles, the dimensions of the simulation box are\nincluded in each snapshot. The simulation box in LAMMPS can be\ndefined in one of 3 ways: orthogonal, restricted triclinic, and\ngeneral triclinic. See the [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html)\ndoc page for a detailed description of all 3 options.\n\nFor an orthogonal simulation box the box information is formatted as:\n\n```\nITEM: BOX BOUNDS xx yy zz\nxlo xhi\nylo yhi\nzlo zhi\n```\nwhere xlo,xhi are the maximum extents of the simulation box in the\n\\(x\\)-dimension, and similarly for \\(y\\) and \\(z\\). The\n\"xx yy zz\" terms are six characters that encode the style of boundary for each\nof the six simulation box boundaries (xlo,xhi; ylo,yhi; and zlo,zhi). Each of\nthe six characters is one of *p* (periodic), *f* (fixed), *s* (shrink wrap),\nor *m* (shrink wrapped with a minimum value). See the\n[boundary ](https://docs.lammps.org/boundary.html) command for details.\n\nFor a restricted triclinic simulation box, an orthogonal bounding box\nwhich encloses the restricted triclinic simulation box is output,\nalong with the three tilt factors (*xy*, *xz*, *yz*) of the triclinic\nbox, formatted as follows:\n\n```\nITEM: BOX BOUNDS xy xz yz xx yy zz\nxlo_bound xhi_bound xy\nylo_bound yhi_bound xz\nzlo_bound zhi_bound yz\n```\nThe presence of the text \"xy xz yz\" in the ITEM line indicates that\nthe three tilt factors will be included on each of the three following lines.\nThis bounding box is convenient for many visualization programs. The\nmeaning of the six character flags for \"xx yy zz\" is the same as above.\n\nNote that the first two numbers on each line are now xlo_bound instead\nof xlo, etc. because they represent a bounding box. See the [Howtotriclinic ](https://docs.lammps.org/Howto_triclinic.html) page for a geometric description of\ntriclinic boxes, as defined by LAMMPS, simple formulas for how the six\nbounding box extents (xlo_bound, xhi_bound, etc.) are calculated from the\ntriclinic parameters, and how to transform those parameters to and\nfrom other commonly used triclinic representations.\n\nFor a general triclinic simulation box, see the \"General triclinic\"\nsection below for a description of the ITEM: BOX BOUNDS format as well\nas how per-atom coordinates and per-atom vector quantities are output.\n\nThe *atom* and *custom* styles output a \"ITEM: NUMBER OF ATOMS\" line\nwith the count of atoms in the snapshot. Likewise they output an\n\"ITEM: ATOMS\" line which includes column descriptors for the per-atom\nlines that follow. For example, the descriptors would be \"id type xs\nys zs\" for the default *atom* style, and would be the atom attributes\nyou specify in the dump command for the *custom* style. Each\nsubsequent line will list the data for a single atom.\n\nFor style *atom*, atom coordinates are written to the file, along with\nthe atom ID and atom type. By default, atom coords are written in a\nscaled format (from 0 to 1). That is, an \\(x\\) value of 0.25 means the\natom is at a location 1/4 of the distance from *xlo* to *xhi* of the box\nboundaries. The format can be changed to unscaled coords via the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) settings. Image flags can also be\nadded for each atom via dump_modify.\n\nStyle *custom* allows you to specify a list of atom attributes to be\nwritten to the dump file for each atom. Possible attributes are\nlisted above and will appear in the order specified. You cannot\nspecify a quantity that is not defined for a particular\nsimulation---such as *q* for atom style *bond*, since that atom style\ndoes not assign charges. Dumps occur at the very end of a timestep,\nso atom attributes will include effects due to fixes that are applied\nduring the timestep. An explanation of the possible dump custom\nattributes is given below.\n\nFor style *grid* the dimension of the simulation domain and size of\nthe Nx by Ny by Nz grid that overlays the simulation domain are also\noutput with each snapshot:\n\n```\nITEM: DIMENSION\ndim\nITEM: GRID SIZE\nnx ny nz\n```\nThe value dim will be 2 or 3 for 2d or 3d simulations. It is included\nso that post-processing tools like [OVITO](https://www.ovito.org),\nwhich can visualize grid-based quantities know how to draw each grid\ncell. The grid size will match the input script parameters for\ngrid(s) created by the computes or fixes which are referenced by the\nthe dump command. For 2d simulations (and grids), nz will always\nbe 1.\n\nThere will also be an \"ITEM: GRID DATA\" line which includes column\ndescriptors for the per grid cell data. Each subsequent line (Nx *\nNy * Nz lines) will list the data for a single grid cell. If grid\ncell IDs are included in the output via the [computeproperty/grid ](https://docs.lammps.org/compute_property_grid.html) command, then the IDs will\nrange from 1 to N = Nx*Ny*Nz. The ordering of IDs is with the x index\nvarying fastest, then the y index, and the z index varying slowest.\n\nFor style *local*, local output generated by [computes ](https://docs.lammps.org/compute.html)\nand [fixes ](https://docs.lammps.org/fix.html) is used to generate lines of output that is\nwritten to the dump file. This local data is typically calculated by\neach processor based on the atoms it owns, but there may be zero or\nmore entities per atom (e.g., a list of bond distances). An explanation\nof the possible dump local attributes is given below. Note that by\nusing input from the [compute property/local](https://docs.lammps.org/compute_property_local.html) command with dump local, it is possible to\ngenerate information on bonds, angles, etc. that can be cut and pasted\ndirectly into a data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand.\n\n----------\n\nDump files in other popular formats:\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This section only discusses file formats relevant to this doc page.\n > The top of this page has links to other dump commands (with their\n > own pages) which write files in additional popular formats. \n > \n\nStyle *cfg* has the same command syntax as style *custom* and writes\nextended CFG format files, as used by the [AtomEye](http://li.mit.edu/Archive/Graphics/A/) visualization package.\nSince the extended CFG format uses a single snapshot of the system per\nfile, a wildcard \"\\*\" must be included in the filename, as discussed\nbelow. The list of atom attributes for style *cfg* must begin with\neither \"mass type xs ys zs\" or \"mass type xsu ysu zsu\" since these\nquantities are needed to write the CFG files in the appropriate format\n(though the \"mass\" and \"type\" fields do not appear explicitly in the\nfile). Any remaining attributes will be stored as \"auxiliary\nproperties\" in the CFG files. Note that you will typically want to\nuse the [dump_modify element ](https://docs.lammps.org/dump_modify.html) command with\nCFG-formatted files, to associate element names with atom types, so\nthat AtomEye can render atoms appropriately. When unwrapped\ncoordinates *xsu*, *ysu*, and *zsu* are requested, the nominal AtomEye\nperiodic cell dimensions are expanded by a large factor UNWRAPEXPAND =\n10.0, which ensures atoms that are displayed correctly for up to\nUNWRAPEXPAND/2 periodic boundary crossings in any direction. Beyond\nthis, AtomEye will rewrap the unwrapped coordinates. The expansion\ncauses the atoms to be drawn farther away from the viewer, but it is\neasy to zoom the atoms closer, and the interatomic distances are\nunaffected.\n\nThe *dcd* style writes DCD files, a standard atomic trajectory format\nused by the CHARMM, NAMD, and XPlor molecular dynamics packages. DCD\nfiles are binary and thus may not be portable to different machines.\nThe number of atoms per snapshot cannot change with the *dcd* style.\nThe *unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command\nallows DCD coordinates to be written \"unwrapped\" by the image flags\nfor each atom. Unwrapped means that if the atom has passed through\na periodic boundary one or more times, the value is printed for what\nthe coordinate would be if it had not been wrapped back into the\nperiodic box. Note that these coordinates may thus be far outside\nthe box size stored with the snapshot.\n\nThe *xtc* style writes XTC files, a compressed trajectory format used\nby the GROMACS molecular dynamics package, and described [here](https://manual.gromacs.org/current/reference-manual/file-formats.html#xtc).\nThe precision used in XTC files can be adjusted via the\n[dump_modify ](https://docs.lammps.org/dump_modify.html) command. The default value of 1000\nmeans that coordinates are stored to 1/1000 nanometer accuracy. XTC\nfiles are portable binary files written in the NFS XDR data format, so\nthat any machine which supports XDR should be able to read them. The\nnumber of atoms per snapshot cannot change with the *xtc* style. The\n*unwrap* option of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command allows\nXTC coordinates to be written \"unwrapped\" by the image flags for each\natom. Unwrapped means that if the atom has passed through a periodic\nboundary one or more times, the value is printed for what the\ncoordinate would be if it had not been wrapped back into the periodic\nbox. Note that these coordinates may thus be far outside the box size\nstored with the snapshot.\n\nThe *xyz* style writes XYZ files, which is a simple text-based\ncoordinate format that many codes can read. Specifically it has a line\nwith the number of atoms, then a comment line that is usually ignored\nfollowed by one line per atom with the atom type and the \\(x\\)-,\n\\(y\\)-, and \\(z\\)-coordinate of that atom. You can use the\n[dump_modify element ](https://docs.lammps.org/dump_modify.html) option to change the output\nfrom using the (numerical) atom type to an element name (or some other\nlabel). This option will help many visualization programs to guess bonds\nand colors. You can use the [dump_modify types labels ](https://docs.lammps.org/dump_modify.html)\noption to replace numeric atom types with [type labels ](https://docs.lammps.org/Howto_type_labels.html).\n\nThe *grid/vtk* style writes VTK files for grid data on a regular\nrectilinear grid. Its content is conceptually similar to that of the\ntext file produced by the *grid* style, except that it in an XML-based\nformat which visualization programs which support the VTK format can\nread, e.g. the [ParaView tool](https://www.paraview.org). For this\nstyle, there can only be 1 or 3 per grid cell attributes specified.\nIf it is a single value, it is a scalar quantity. If 3 values are\nspecified it is encoded in the VTK file as a vector quantity (for each\ngrid cell). The filename for this style must include a \"\\*\" wildcard\ncharacter to produce one file per snapshot; see details below.\n\nDump style *yaml* has the same command syntax as style *custom* and\nwrites YAML format files that can be easily parsed by a variety of\ndata processing tools and programming languages. Each timestep will\nbe written as a YAML \"document\" (i.e., starts with \"---\" and ends with\n\"...\"). The style supports writing one file per timestep through the\n\"\\*\" wildcard but not multi-processor outputs with the \"%\" token in\nthe filename. In addition to per-atom data, [thermo ](https://docs.lammps.org/thermo.html)\ndata can be included in the *yaml* style dump file using the\n[dump_modify thermo yes ](https://docs.lammps.org/dump_modify.html). The data included in the\ndump file uses the \"thermo\" tag and is otherwise identical to data\nspecified by the [thermo_style ](https://docs.lammps.org/thermo_style.html) command.\n\nBelow is an example for a YAML format dump created by the following commands.\n\n```lmps\ndump out all yaml 100 dump.yaml id type x y z vx vy vz ix iy iz\ndump_modify out time yes units yes thermo yes format 1 %5d format \"% 10.6e\"\n```\nThe tags \"time\", \"units\", and \"thermo\" are optional and enabled by the\ndump_modify command. The list under the \"box\" tag has three lines for\northogonal boxes and four lines for triclinic boxes, where the first\nthree are the box boundaries and the fourth the three tilt factors\n(\\(xy\\), \\(xz\\), \\(yz\\)). The \"thermo\" data follows the\nformat of the *yaml* thermo style. The \"keywords\" tag lists the\nper-atom properties contained in the \"data\" columns, which contain a\nlist with one line per atom. The keywords may be renamed using the\ndump_modify command same as for the *custom* dump style.\n\n```yaml\n---\ncreator: LAMMPS\ntimestep: 0\nunits: lj\ntime: 0\nnatoms: 4000\nboundary: [ p, p, p, p, p, p, ]\nthermo:\n- keywords: [ Step, Temp, E_pair, E_mol, TotEng, Press, ]\n- data: [ 0, 0, -27093.472213010766, 0, 0, 0, ]\nbox:\n- [ 0, 16.795961913825074 ]\n- [ 0, 16.795961913825074 ]\n- [ 0, 16.795961913825074 ]\n- [ 0, 0, 0 ]\nkeywords: [ id, type, x, y, z, vx, vy, vz, ix, iy, iz, ]\ndata:\n- [ 1 , 1 , 0.000000e+00 , 0.000000e+00 , 0.000000e+00 , -1.841579e-01 , -9.710036e-01 , -2.934617e+00 , 0 , 0 , 0, ]\n- [ 2 , 1 , 8.397981e-01 , 8.397981e-01 , 0.000000e+00 , -1.799591e+00 , 2.127197e+00 , 2.298572e+00 , 0 , 0 , 0, ]\n- [ 3 , 1 , 8.397981e-01 , 0.000000e+00 , 8.397981e-01 , -1.807682e+00 , -9.585130e-01 , 1.605884e+00 , 0 , 0 , 0, ]\n\n[...]\n...\n---\ntimestep: 100\nunits: lj\ntime: 0.5\n\n[...]\n\n...\n```\n----------\n\nFrequency of dump output:\n\nDumps are performed on timesteps that are a multiple of \\(N\\)\n(including timestep 0) and on the last timestep of a minimization if\nthe minimization converges. Note that this means a dump will not be\nperformed on the initial timestep after the dump command is invoked,\nif the current timestep is not a multiple of \\(N\\). This behavior\ncan be changed via the [dump_modify first ](https://docs.lammps.org/dump_modify.html) command,\nwhich can also be useful if the dump command is invoked after a\nminimization ended on an arbitrary timestep.\n\nThe value of \\(N\\) can be changed between runs by using the\n[dump_modify every ](https://docs.lammps.org/dump_modify.html) command (not allowed for *dcd*\nstyle). The [dump_modify every ](https://docs.lammps.org/dump_modify.html) command also\nallows a variable to be used to determine the sequence of timesteps on\nwhich dump files are written. In this mode a dump on the first\ntimestep of a run will also not be written unless the\n[dump_modify first ](https://docs.lammps.org/dump_modify.html) command is used.\n\nIf you instead want to dump snapshots based on simulation time (in\ntime units of the [units` command), the :doc:`dump_modifyevery/time ](https://docs.lammps.org/dump_modify.html) command can be used. This can be useful\nwhen the timestep size varies during a simulation run, e.g. by use of\nthe [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) command.\n\n----------\n\nDump filenames:\n\nThe specified dump filename determines how the dump file(s) is\nwritten. The default is to write one large text file, which is opened\nwhen the dump command is invoked and closed when an [undump](https://docs.lammps.org/undump.html) command is used or when LAMMPS exits. For the *dcd* and\n*xtc* styles, this is a single large binary file.\n\nMany of the styles allow dump filenames to contain either or both of\ntwo wildcard characters. If a \"\\*\" character appears in the filename,\nthen one file per snapshot is written and the \"\\*\" character is\nreplaced with the timestep value. For example, tmp.dump.\\* becomes\ntmp.dump.0, tmp.dump.10000, tmp.dump.20000, etc. This option is not\navailable for the *dcd* and *xtc* styles. Note that the\n[dump_modify pad ](https://docs.lammps.org/dump_modify.html) command can be used to ensure all\ntimestep numbers are the same length (e.g., 00010), which can make it\neasier to read a series of dump files in order with some\npost-processing tools.\n\nIf a \"%\" character appears in the filename, then each of P processors\nwrites a portion of the dump file, and the \"%\" character is replaced\nwith the processor ID from \\(0\\) to \\(P-1\\). For example,\ntmp.dump.% becomes tmp.dump.0, tmp.dump.1, ... tmp.dump.\\(P-1\\),\netc. This creates smaller files and can be a fast mode of output on\nparallel machines that support parallel I/O for output. This option is\n**not** available for the *dcd*, *xtc*, *xyz*, *grid/vtk*, and *yaml*\nstyles.\n\nBy default, \\(P\\) is the the number of processors, meaning one file per\nprocessor, but \\(P\\) can be set to a smaller value via the *nfile* or\n*fileper* keywords of the [dump_modify ](https://docs.lammps.org/dump_modify.html) command.\nThese options can be the most efficient way of writing out dump files\nwhen running on large numbers of processors.\n\nNote that using the \"\\*\" and \"%\" characters together can produce a\nlarge number of small dump files!\n\n **Deprecated in version 21Nov2023** \n\nThe MPIIO package and the the corresponding \"/mpiio\" dump styles, except\nfor the unrelated \"netcdf/mpiio\" style were removed from LAMMPS.\n\n----------\n\nCompression of dump file data:\n\nIf the specified filename ends with \".bin\" or \".lammpsbin\", the dump\nfile (or files, if \"\\*\" or \"%\" is also used) is written in binary\nformat. A binary dump file will be about the same size as a text\nversion, but will typically write out much faster. Of course, when\npost-processing, you will need to convert it back to text format (see\nthe :ref:`binary2txt tool `) or write your own code to read\nthe binary file. The format of the binary file can be understood by\nlooking at the :file:`tools/binary2txt.cpp` file. This option is only\navailable for the *atom* and *custom* styles.\n\nIf the filename ends with \".gz\", the dump file (or files, if \"\\*\" or \"%\"\nis also used) is written in gzipped format. A gzipped dump file will be\nabout \\(3\\times\\) smaller than the text version, but will also take\nlonger to write. This option is not available for the *dcd* and *xtc*\nstyles.\n\nNote that styles that end with *gz* are identical in command syntax to\nthe corresponding styles without \"gz\", however, they generate\ncompressed files using the zlib library. Thus the filename suffix\n\".gz\" is mandatory. This is an alternative approach to writing\ncompressed files via a pipe, as done by the regular dump styles, which\nmay be required on clusters where the interface to the high-speed\nnetwork disallows using the fork() library call (which is needed for a\npipe). For the remainder of this page, you should thus consider the\n*atom* and *atom/gz* styles (etc.) to be inter-changeable, with the\nexception of the required filename suffix.\n\nSimilarly, styles that end with *zstd* are identical to the gz styles,\nbut use the Zstd compression library instead and require a \".zst\"\nsuffix. See the [dump_modify ](https://docs.lammps.org/dump_modify.html) page for details on\nhow to control the compression level in both variants.\n\n----------\n\nGeneral triclinic simulation box output for the *atom* and *custom* styles:\n\nAs mentioned above, the simulation box can be defined as a general\ntriclinic box, which means that 3 arbitrary box edge vectors **A**,\n**B**, **C** can be specified. See the [Howto triclinic](https://docs.lammps.org/Howto_triclinic.html) doc page for a detailed description of general\ntriclinic boxes.\n\nThis option is provided as a convenience for users who may be\nconverting data from solid-state crystallographic representations or\nfrom DFT codes for input to LAMMPS. However, as explained on the\n[Howto_triclinic ](https://docs.lammps.org/Howto_triclinic.html) doc page, internally, LAMMPS\nonly uses restricted triclinic simulation boxes. This means the box\nand per-atom information (e.g. coordinates, velocities) LAMMPS stores\nare converted (rotated) from general to restricted triclinic form when\nthe system is created.\n\nFor dump output, if the [dump_modify triclinic/general](https://docs.lammps.org/dump_modify.html) command is used, the box description and per-atom\ncoordinates and other per-atom vectors will be converted (rotated)\nfrom restricted to general form when each dump file snapshots is\noutput. This option can only be used if the simulation box was\ninitially created as general triclinic. If the option is not used,\nand the simulation box is general triclinic, then the dump file\nsnapshots will reflect the internal restricted triclinic geometry.\n\nThe dump_modify triclinic/general option affects 3 aspects of the dump\nfile output.\n\nFirst, the format for the BOX BOUNDS is as follows\n\n```\nITEM: BOX BOUNDS abc origin\nax ay az originx\nbx by bz originy\ncx cy cz originz\n```\nwhere the **A** edge vector of the box is (ax,ay,az) and similarly\nfor **B** and **C**. The origin of all 3 edge vectors is (originx,\noriginy, originz).\n\nSecond, the coordinates of each atom are converted (rotated) so that\nthe atom is inside (or near) the general triclinic box defined by the\n**A**, **B**, **C** edge vectors. For style *atom*, this only alters\noutput for unscaled atom coords, via the [dump_modify scaled no](https://docs.lammps.org/dump_modify.html) setting. For style *custom*, this alters output for\neither unscaled or unwrapped output of atom coords, via the *x,y,z* or\n*xu,yu,zu* attributes. For output of scaled atom coords by both\nstyles, there is no difference between restricted and general\ntriclinic values.\n\nThird, the output for any attribute of the *custom* style which\nrepresents a per-atom vector quantity will be converted (rotated) to\nbe oriented consistent with the general triclinic box and its\norientation relative to the standard xyz coordinate axes.\n\nThis applies to the following *custom* style attributes:\n\n* vx,vy,vz = atom velocities\n* fx,fy,fz = forces on atoms\n* mux,muy,muz = orientation of dipole moment of atom\n* omegax,omegay,omegaz = angular velocity of spherical particle\n* angmomx,angmomy,angmomz = angular momentum of aspherical particle\n* tqx,tqy,tqz = torque on finite-size particles\n\nFor example, if the velocity of an atom in a restricted triclinic box\nis along the x-axis, then it will be output for a general triclinic\nbox as a vector along the **A** edge vector of the box.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For style *custom*, the [dump_modify thresh ](https://docs.lammps.org/dump_modify.html)\n > command may access per-atom attributes either directly or\n > indirectly through a compute or variable. If the attribute is an\n > atom coordinate or one of the vectors mentioned above, its value\n > will *NOT* be a general triclinic (rotated) value. Rather it will\n > be a restricted triclinic value. \n > \n\n----------\n\nArguments for different styles:\n\nThe sections below describe per-atom, local, and per grid cell\nattributes which can be used as arguments to the various styles.\n\nNote that in the discussion below, for styles which can reference\nvalues from a compute or fix or custom atom property, like the\n*custom* , *cfg* , *grid* or *local* styles, the bracketed index\n\\(i\\) can be specified using a wildcard asterisk with the index to\neffectively specify multiple values. This takes the form \"\\*\" or\n\"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of columns in\nthe array, then an asterisk with no numeric values means all column\nindices from 1 to \\(N\\). A leading asterisk means all indices\nfrom 1 to n (inclusive). A trailing asterisk means all indices from m\nto \\(N\\) (inclusive). A middle asterisk means all indices from m\nto n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, these two dump commands are\nequivalent, since the [compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html)\ncommand creates a per-atom array with six columns:\n\n```lmps\ncompute myPress all stress/atom NULL\ndump 2 all custom 100 tmp.dump id myPress[*]\ndump 2 all custom 100 tmp.dump id myPress[1] myPress[2] myPress[3] &\nmyPress[4] myPress[5] myPress[6]\n```\n----------\n\nPer-atom attributes used as arguments to the *custom* and *cfg* styles:\n\nThe *id*, *mol*, *proc*, *procp1*, *type*, *typelabel*, *element*, *mass*,\n*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *q* attributes are self-explanatory.\n\n*Id* is the atom ID. *Mol* is the molecule ID, included in the data file\nfor molecular systems. *Proc* is the ID of the processor (0 to\n\\(N_\\text{procs}-1\\)) that currently owns the atom. *Procp1* is the\nproc ID+1, which can be convenient in place of a *type* attribute (1 to\n\\(N_\\text{types}\\)) for coloring atoms in a visualization program.\n*Type* is the atom type (1 to \\(N_\\text{types}\\)). *Typelabel* is the\natom [type label ](https://docs.lammps.org/Howto_type_labels.html). *Element* is typically the\nchemical name of an element, which you must assign to each type via the\n[dump_modify element ](https://docs.lammps.org/dump_modify.html) command. More generally, it can\nbe any string you wish to associated with an atom type. *Mass* is the atom\nmass. The quantities *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, and *q* are\ncomponents of atom velocity and force and atomic charge.\n\nThere are several options for outputting atom coordinates. The *x*,\n*y*, and *z* attributes write atom coordinates \"unscaled\", in the\nappropriate distance [units ](https://docs.lammps.org/units.html) (\\(\\mathring{\\textrm{A}}\\),\n\\(\\sigma\\), etc.). Use *xs*, *ys*, and *zs* if you want the\ncoordinates \"scaled\" to the box size so that each value is 0.0 to 1.0.\nIf the simulation box is triclinic (tilted), then all atom coords will\nstill be between 0.0 and 1.0. The actual unscaled \\((x,y,z)\\)\ncoordinate is \\(x_s a + y_s b + z_s c\\), where \\((a,b,c)\\) are\nthe non-orthogonal vectors of the simulation box edges, as discussed on\nthe [Howto triclinic ](https://docs.lammps.org/Howto_triclinic.html) page.\n\nUse *xu*, *yu*, and *zu* if you want the coordinates \"unwrapped\" by the\nimage flags for each atom. Unwrapped means that if the atom has passed\nthrough a periodic boundary one or more times, the value is printed for\nwhat the coordinate would be if it had not been wrapped back into the\nperiodic box. Note that using *xu*, *yu*, and *zu* means that the\ncoordinate values may be far outside the box bounds printed with the\nsnapshot. Using *xsu*, *ysu*, and *zsu* is similar to using *xu*, *yu*,\nand *zu*, except that the unwrapped coordinates are scaled by the box\nsize. Atoms that have passed through a periodic boundary will have the\ncorresponding coordinate increased or decreased by 1.0.\n\nThe image flags can be printed directly using the *ix*, *iy*, and *iz*\nattributes. For periodic dimensions, they specify which image of the\nsimulation box the atom is considered to be in. An image of 0 means\nit is inside the box as defined. A value of 2 means add 2 box lengths\nto get the true value. A value of \\(-1\\) means subtract 1 box length to\nget the true value. LAMMPS updates these flags as atoms cross\nperiodic boundaries during the simulation.\n\nThe *mux*, *muy*, and *muz* attributes are specific to dipolar systems\ndefined with an atom style of *dipole* . They give the orientation of\nthe atom's point dipole moment. The *mu* attribute gives the magnitude\nof the atom's dipole moment.\n\nThe *radius* and *diameter* attributes are specific to spherical\nparticles that have a finite size, such as those defined with an atom\nstyle of *sphere* .\n\nThe *omegax*, *omegay*, and *omegaz* attributes are specific to\nfinite-size spherical particles that have an angular velocity. Only\ncertain atom styles, such as *sphere*, define this quantity.\n\nThe *angmomx*, *angmomy*, and *angmomz* attributes are specific to\nfinite-size aspherical particles that have an angular momentum. Only\nthe *ellipsoid* atom style defines this quantity.\n\nThe *tqx*, *tqy*, and *tqz* attributes are for finite-size particles\nthat can sustain a rotational torque due to interactions with other\nparticles.\n\nThe *c_ID* and *c_ID[I]* attributes allow per-atom vectors or arrays\ncalculated by a [compute ](https://docs.lammps.org/compute.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the compute that has\nbeen defined previously in the input script. See the [compute](https://docs.lammps.org/compute.html) command for details. There are computes for calculating the\nper-atom energy, stress, centro-symmetry parameter, and coordination\nnumber of individual atoms.\n\nNote that computes which calculate global or local quantities, as\nopposed to per-atom quantities, cannot be output in a dump custom\ncommand. Instead, global quantities can be output by the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command, and local quantities\ncan be output by the dump local command.\n\nIf *c_ID* is used as a attribute, then the per-atom vector calculated by\nthe compute is printed. If *c_ID[i]* is used, then \\(i\\) must be in\nthe range from 1 to \\(M\\), which will print the \\(i\\)\\ th column\nof the per-atom array with \\(M\\) columns calculated by the compute.\nSee the discussion above for how \\(i\\) can be specified with a\nwildcard asterisk to effectively specify multiple values.\n\nThe *f_ID* and *f_ID[I]* attributes allow vector or array per-atom\nquantities calculated by a [fix ](https://docs.lammps.org/fix.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the fix that has been\ndefined previously in the input script. The [fix ave/atom](https://docs.lammps.org/fix_ave_atom.html) command is one that calculates per-atom quantities.\nSince it can time-average per-atom quantities produced by any\n[compute ](https://docs.lammps.org/compute.html), [fix ](https://docs.lammps.org/fix.html), or atom-style [variable](https://docs.lammps.org/variable.html), this allows those time-averaged results to be written to a\ndump file.\n\nIf *f_ID* is used as a attribute, then the per-atom vector calculated by\nthe fix is printed. If *f_ID[i]* is used, then \\(i\\) must be in the\nrange from 1 to \\(M\\), which will print the \\(i\\)\\ th column of\nthe per-atom array with \\(M\\) columns calculated by the fix. See\nthe discussion above for how \\(i\\) can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *v_name* attribute allows per-atom vectors calculated by a\n[variable ](https://docs.lammps.org/variable.html) to be output. The name in the attribute\nshould be replaced by the actual name of the variable that has been\ndefined previously in the input script. Only an atom-style variable can\nbe referenced, since it is the only style that generates per-atom\nvalues. Variables of style *atom* can reference individual atom\nattributes, per-atom attributes, thermodynamic keywords, or invoke other\ncomputes, fixes, or variables when they are evaluated, so this is a very\ngeneral means of creating quantities to output to a dump file.\n\nThe *i_name*, *d_name*, *i2_name*, *d2_name* attributes refer to\ncustom per-atom integer and floating-point vectors or arrays that have\nbeen added via the [fix property/atom ](https://docs.lammps.org/fix_property_atom.html)\ncommand. When that command is used specific names are given to each\nattribute which are the \"name\" portion of these keywords. For arrays\n*i2_name* and *d2_name*, the column of the array must also be included\nfollowing the name in brackets (e.g., d2_xyz[i], i2_mySpin[i], where\n\\(i\\) is in the range from 1 to \\(M\\), where \\(M\\) is the\nnumber of columns in the custom array). See the discussion above for\nhow \\(i\\) can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nSee the [Modify ](https://docs.lammps.org/Modify.html) page for information on how to add\nnew compute and fix styles to LAMMPS to calculate per-atom quantities\nwhich could then be output into dump files.\n\n----------\n\nAttributes used as arguments to the *local* style:\n\nThe *index* attribute can be used to generate an index number from 1\nto N for each line written into the dump file, where N is the total\nnumber of local datums from all processors, or lines of output that\nwill appear in the snapshot. Note that because data from different\nprocessors depend on what atoms they currently own, and atoms migrate\nbetween processor, there is no guarantee that the same index will be\nused for the same info (e.g. a particular bond) in successive\nsnapshots.\n\nThe *c_ID* and *c_ID[I]* attributes allow local vectors or arrays\ncalculated by a [compute ](https://docs.lammps.org/compute.html) to be output. The ID in the\nattribute should be replaced by the actual ID of the compute that has\nbeen defined previously in the input script. See the\n[compute ](https://docs.lammps.org/compute.html) command for details. There are computes for\ncalculating local information such as indices, types, and energies for\nbonds and angles.\n\nNote that computes which calculate global or per-atom quantities, as\nopposed to local quantities, cannot be output in a dump local command.\nInstead, global quantities can be output by the [thermo_stylecustom ](https://docs.lammps.org/thermo_style.html) command, and per-atom quantities can be output\nby the dump custom command.\n\nIf *c_ID* is used as a attribute, then the local vector calculated by\nthe compute is printed. If *c_ID[I]* is used, then I must be in the\nrange from 1-M, which will print the Ith column of the local array\nwith M columns calculated by the compute. See the discussion above\nfor how I can be specified with a wildcard asterisk to effectively\nspecify multiple values.\n\nThe *f_ID* and *f_ID[I]* attributes allow local vectors or arrays\ncalculated by a [fix ](https://docs.lammps.org/fix.html) to be output. The ID in the attribute\nshould be replaced by the actual ID of the fix that has been defined\npreviously in the input script.\n\nIf *f_ID* is used as a attribute, then the local vector calculated by\nthe fix is printed. If *f_ID[I]* is used, then I must be in the\nrange from 1-M, which will print the Ith column of the local with M\ncolumns calculated by the fix. See the discussion above for how I can\nbe specified with a wildcard asterisk to effectively specify multiple\nvalues.\n\nHere is an example of how to dump bond info for a system, including\nthe distance and energy of each bond:\n\n```lmps\ncompute 1 all property/local batom1 batom2 btype\ncompute 2 all bond/local dist eng\ndump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_2[1] c_2[2]\n```\n----------\n\nAttributes used as arguments to the *grid* and *grid/vtk* styles:\n\nThe attributes that begin with *c_ID* and *f_ID* both take\ncolon-separated fields *gname* and *dname*. These refer to a grid\nname and data field name which is defined by the compute or fix. Note\nthat a compute or fix can define one or more grids (of different\nsizes) and one or more data fields for each of those grids. The sizes\nof all grids output in a single dump grid command must be the same.\n\nThe *c_ID:gname:dname* and *c_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [compute ](https://docs.lammps.org/compute.html) to\nbe output. The ID in the attribute should be replaced by the actual\nID of the compute that has been defined previously in the input\nscript.\n\nIf *c_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the compute is printed. If *c_ID:gname:dname[I]* is\nused, then I must be in the range from 1-M, which will print the Ith\ncolumn of the per-grid array with M columns calculated by the compute.\nSee the discussion above for how I can be specified with a wildcard\nasterisk to effectively specify multiple values.\n\nThe *f_ID:gname:dname* and *f_ID:gname:dname[I]* attributes allow\nper-grid vectors or arrays calculated by a [fix ](https://docs.lammps.org/fix.html) to be\noutput. The ID in the attribute should be replaced by the actual ID\nof the fix that has been defined previously in the input script.\n\nIf *f_ID:gname:dname* is used as a attribute, then the per-grid vector\ncalculated by the fix is printed. If *f_ID:gname:dname[I]* is used,\nthen I must be in the range from 1-M, which will print the Ith column\nof the per-grid with M columns calculated by the fix. See the\ndiscussion above for how I can be specified with a wildcard asterisk\nto effectively specify multiple values.\n\n----------\n", + "restrictions": "To write gzipped dump files, you must either compile LAMMPS with the\n-DLAMMPS_GZIP option or use the styles from the COMPRESS package.\nSee the [Build settings ](https://docs.lammps.org/Build_settings.html) page for details.\n\nWhile a dump command is active (i.e., has not been stopped by using\nthe [undump command ](https://docs.lammps.org/undump.html)), no commands may be used that will\nchange the timestep (e.g., [reset_timestep ](https://docs.lammps.org/reset_timestep.html)).\nLAMMPS will terminate with an error otherwise.\n\nThe *atom/gz*, *cfg/gz*, *custom/gz*, and *xyz/gz* styles are part of\nthe COMPRESS package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n\nThe *xtc*, *dcd*, and *yaml* styles are part of the EXTRA-DUMP package.\nThey are only enabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump atom/adios ](https://docs.lammps.org/dump_adios.html), [dump custom/adios ](https://docs.lammps.org/dump_adios.html),\n[dump cfg/uef ](https://docs.lammps.org/dump_cfg_uef.html), [dump h5md ](https://docs.lammps.org/dump_h5md.html),\n[dump image ](https://docs.lammps.org/dump_image.html), [dump molfile ](https://docs.lammps.org/dump_molfile.html),\n[dump netcdf ](https://docs.lammps.org/dump_netcdf.html), [dump netcdf/mpiio ](https://docs.lammps.org/dump_netcdf.html),\n[dump_modify ](https://docs.lammps.org/dump_modify.html), [undump ](https://docs.lammps.org/undump.html),\n[write_dump ](https://docs.lammps.org/write_dump.html)\n" }, { "command": [ - "compute mliap" + "fix edpd/source" ], "syntax": [ - "compute ID group-ID mliap ... keyword values ..." + "fix ID group-ID edpd/source keyword values ...", + "fix ID group-ID tdpd/source cc_index keyword values ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -38807,17 +38306,17 @@ export const command_docs = [ "choices": [] }, { - "arg": "mliap", + "arg": "edpd/source", "type": 1, "choices": [] }, { - "arg": "gradgradflag", + "arg": "region", "type": 3, "choices": [ - "model", - "descriptor", - "gradgradflag" + "sphere", + "cuboid", + "region" ] }, { @@ -38825,24 +38324,7 @@ export const command_docs = [ "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* mliap = style name of this compute command\n* two or more keyword/value pairs must be appended\n* keyword = model or descriptor or gradgradflag \n *        model values = style \n         style = linear or quadratic or mliappy \n *        descriptor values = style filename \n         style = sna or ace \n         filename = name of file containing descriptor definitions \n *        gradgradflag value = 0/1 \n         toggle gradgrad method for force gradient \n", - "examples": "\n```lmps\ncompute mliap model linear descriptor sna Ta06A.mliap.descriptor\ncompute mliap model linear descriptor ace H_N_O_ccs.yace gradgradflag 1\n```\n", - "html_filename": "compute_mliap.html", - "short_description": "Compute style *mliap* provides a general interface to the gradient\nof machine-learning interatomic potentials with respect to model parameters", - "description": "Compute style *mliap* provides a general interface to the gradient\nof machine-learning interatomic potentials with respect to model parameters.\nIt is used primarily for calculating the gradient of energy, force, and\nstress components with respect to model parameters, which is useful when\ntraining [mliap pair_style ](https://docs.lammps.org/pair_mliap.html) models to match target data.\nIt provides separate definitions of the interatomic potential functional\nform (*model*) and the geometric quantities that characterize the atomic\npositions (*descriptor*). By defining *model* and *descriptor* separately,\nit is possible to use many different models with a given descriptor,\nor many different descriptors with a given model. Currently, the compute\nsupports *linear* and *quadratic* SNAP descriptor computes used in\n[pair_style snap ](https://docs.lammps.org/pair_snap.html), *linear* SO3 descriptor computes, and\n*linear* ACE descriptor computes used in [pair_style pace ](https://docs.lammps.org/pair_pace.html),\nand it is straightforward to add new descriptor styles.\n\nThe compute *mliap* command must be followed by two keywords\n*model* and *descriptor* in either order.\n\nThe *model* keyword is followed by the model style (*linear*,\n*quadratic* or *mliappy*). The *mliappy* model is only available if\nLAMMPS is built with the *mliappy* Python module. There are\n:ref:`specific installation instructions ` for that module.\nFor the *mliap* compute, specifying a *linear* model will compute the\nspecified descriptors and gradients with respect to linear model parameters\nwhereas *quadratic* will do the same, but for the quadratic products of\ndescriptors.\n\nThe *descriptor* keyword is followed by a descriptor style, and\nadditional arguments. The compute currently supports three descriptor\nstyles: *sna*, *so3*, and *ace*, but it is is straightforward to add\nadditional descriptor styles. The SNAP descriptor style *sna* is the\nsame as that used by [pair_style snap ](https://docs.lammps.org/pair_snap.html), including the\nlinear, quadratic, and chem variants. A single additional argument\nspecifies the descriptor filename containing the parameters and setting used\nby the SNAP descriptor. The descriptor filename usually ends in the\n*.mliap.descriptor* extension. The format of this file is identical to\nthe descriptor file in the [pair_style mliap ](https://docs.lammps.org/pair_mliap.html), and is\ndescribed in detail there.\n\nThe ACE descriptor style *ace* is the same as [pair_style pace ](https://docs.lammps.org/pair_pace.html).\nA single additional argument specifies the *ace* descriptor filename\nthat contains parameters and settings for the ACE descriptors. This file\nformat differs from the SNAP or SO3 descriptor files, and has a *.yace* or\n*.ace* extension. However, as with other mliap descriptor styles, this file\nis identical to the ace descriptor file in [pair_style mliap ](https://docs.lammps.org/pair_mliap.html),\nwhere it is described in further detail.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The number of LAMMPS atom types (and the value of *nelems* in the model)\n > must match the value of *nelems* in the descriptor file. \n > \n\nCompute *mliap* calculates a global array containing gradient information.\nThe number of columns in the array is *nelems* \\(\\times\\) *nparams* + 1.\nThe first row of the array contain the derivative of potential energy with\nrespect to. to each parameter and each element. The last six rows\nof the array contain the corresponding derivatives of the\nvirial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,\n*pyz*, *pxz*, and *pxy*. In between the energy and stress rows are\nthe \\(3N\\) rows containing the derivatives of the force components.\nSee section below on output for a detailed description of how\nrows and columns are ordered.\n\nThe element in the last column of each row contains\nthe potential energy, force, or stress, according to the row.\nThese quantities correspond to the user-specified reference potential\nthat must be subtracted from the target data when training a model.\nThe potential energy calculation uses the built in compute *thermo_pe*.\nThe stress calculation uses a compute called *mliap_press* that is\nautomatically created behind the scenes, according to the following\ncommand:\n\n```lmps\ncompute mliap_press all pressure NULL virial\n```\nSee section below on output for a detailed explanation of the data\nlayout in the global array.\n\nThe optional keyword *gradgradflag* controls how the force\ngradient is calculated. A value of 1 requires that the model provide\nthe matrix of double gradients of energy with respect to both parameters\nand descriptors. For the linear and quadratic models this matrix is\nsparse and so is easily calculated and stored. For other models, this\nmatrix may be prohibitively expensive to calculate and store.\nA value of 0 requires that the descriptor provide the derivative\nof the descriptors with respect to the position of every neighbor atom.\nThis is not optimal for linear and quadratic models, but may be\na better choice for more complex models.\n\nAtoms not in the group do not contribute to this compute.\nNeighbor atoms not in the group do not contribute to this compute.\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the user-specified reference potentials includes bonded and\n > non-bonded pairwise interactions, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the calculation. The [rerun ](https://docs.lammps.org/rerun.html)\n > command is not an option here, since the reference potential is required\n > for the last column of the global array. A work-around is to prevent\n > pairwise interactions from being removed by explicitly adding a\n > *tiny* positive value for every pairwise interaction that would otherwise be\n > set to zero in the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\n----------\n\n #### Output info\n\nCompute *mliap* evaluates a global array. The columns are arranged into\n*nelems* blocks, listed in order of element *I* . Each block\ncontains one column for each of the *nparams* model parameters.\nA final column contains the corresponding energy, force component\non an atom, or virial stress component. The rows of the array appear\nin the following order:\n\n* 1 row: Derivatives of potential energy with respect to each parameter of each element.\n* \\(3N\\) rows: Derivatives of force components; the *x*, *y*, and *z*\n components of the force on atom *i* appear in consecutive rows. The atoms are\n sorted based on atom ID.\n* 6 rows: Derivatives of the virial stress tensor with respect to each\n parameter of each element. The ordering of the rows follows Voigt notation:\n *pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.\n\nThese values can be accessed by any command that uses a global array\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options. To see how this command\ncan be used within a Python workflow to train machine-learning interatomic\npotentials, see the examples in [FitSNAP](https://github.com/FitSNAP/FitSNAP).\n", - "restrictions": "This compute is part of the ML-IAP package. It is only enabled if\nLAMMPS was built with that package. In addition, building LAMMPS with\nthe ML-IAP package requires building LAMMPS with the ML-SNAP package.\nThe *mliappy* model also requires building LAMMPS with the PYTHON\npackage. The *ace* descriptor also requires building LAMMPS with the\nML-PACE package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info. Note that `kk` (KOKKOS) accelerated variants of SNAP and\nACE descriptors are not compatible with `mliap descriptor`.\n", - "related": "[pair_style mliap ](https://docs.lammps.org/pair_mliap.html)\n" -}, -{ - "command": [ - "fix phonon" - ], - "syntax": [ - "fix ID group-ID phonon N Noutput Nwait map_file prefix keyword values ..." - ], - "args": [ + ], [ { "arg": "fix", @@ -38860,44 +38342,22 @@ export const command_docs = [ "choices": [] }, { - "arg": "phonon", - "type": 1, - "choices": [] - }, - { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "Noutput", - "type": 2, - "choices": [] - }, - { - "arg": "Nwait", + "arg": "tdpd/source", "type": 2, "choices": [] }, { - "arg": "GAMMA", - "type": 3, - "choices": [ - "file", - "GAMMA" - ] - }, - { - "arg": "prefix", + "arg": "cc_index", "type": 2, "choices": [] }, { - "arg": "nasr", + "arg": "region", "type": 3, "choices": [ - "sysdim", - "nasr" + "sphere", + "cuboid", + "region" ] }, { @@ -38907,25 +38367,25 @@ export const command_docs = [ } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* phonon = style name of this fix command\n* N = measure the Green's function every this many timesteps\n* Noutput = output the dynamical matrix every this many measurements\n* Nwait = wait this many timesteps before measuring\n* map_file = file or GAMMA \n *        file is the file that contains the mapping info between atom ID and the lattice indices. \n *        GAMMA flags to treate the whole simulation box as a unit cell, so that the mapping \n *        info can be generated internally. In this case, dynamical matrix at only the gamma-point \n *        will/can be evaluated. \n* prefix = prefix for output files\n* one or none keyword/value pairs may be appended\n* keyword = sysdim or nasr \n *        sysdim value = d \n         d = dimension of the system, usually the same as the MD model dimension \n *        nasr value = n \n         n = number of iterations to enforce the acoustic sum rule \n", - "examples": "\n```lmps\nfix 1 all phonon 20 5000 200000 map.in LJ1D sysdim 1\nfix 1 all phonon 20 5000 200000 map.in EAM3D\nfix 1 all phonon 10 5000 500000 GAMMA EAM0D nasr 100\n```\n", - "html_filename": "fix_phonon.html", - "short_description": "Calculate the dynamical matrix from molecular dynamics simulations\nbased on fluctuation-dissipation theory for a group of atoms", - "description": "Calculate the dynamical matrix from molecular dynamics simulations\nbased on fluctuation-dissipation theory for a group of atoms.\n\nConsider a crystal with \\(N\\) unit cells in three dimensions labeled\n\\(l = (l_1, l_2, l_3)\\) where \\(l_i\\) are integers. Each unit cell is\ndefined by three linearly independent vectors \\(\\mathbf{a}_1\\),\n\\(\\mathbf{a}_2\\), \\(\\mathbf{a}_3\\) forming a parallelepiped,\ncontaining \\(K\\) basis atoms labeled \\(k\\).\n\nBased on fluctuation-dissipation theory, the force constant\ncoefficients of the system in reciprocal space are given by\n(**Campana** , **Kong**)\n\\[\n \\mathbf{\\Phi}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) = k_B T \\mathbf{G}^{-1}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q})\\]\nwhere \\(\\mathbf{G}\\) is the Green's functions coefficients given by\n\\[\n \\mathbf{G}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) = \\left< \\mathbf{u}_{k\\alpha}(\\mathbf{q}) \\bullet \\mathbf{u}_{k^\\prime \\beta}^*(\\mathbf{q}) \\right>\\]\nwhere \\(\\left< \\ldots \\right>\\) denotes the ensemble average, and\n\\[\n \\mathbf{u}_{k\\alpha}(\\mathbf{q}) = \\sum_l \\mathbf{u}_{l k \\alpha} \\exp{(i\\mathbf{qr}_l)}\\]\nis the \\(\\alpha\\) component of the atomic displacement for the \\(k\\)\nth atom in the unit cell in reciprocal space at \\(\\mathbf{q}\\). In\npractice, the Green's functions coefficients can also be measured\naccording to the following formula,\n\\[\n \\mathbf{G}_{k\\alpha,k^\\prime \\beta}(\\mathbf{q}) =\n \\left< \\mathbf{R}_{k \\alpha}(\\mathbf{q}) \\bullet \\mathbf{R}^*_{k^\\prime \\beta}(\\mathbf{q}) \\right>\n - \\left<\\mathbf{R}\\right>_{k \\alpha}(\\mathbf{q}) \\bullet \\left<\\mathbf{R}\\right>^*_{k^\\prime \\beta}(\\mathbf{q})\\]\nwhere \\(\\mathbf{R}\\) is the instantaneous positions of atoms, and\n\\(\\left<\\mathbf{R}\\right>\\) is the averaged atomic positions. It\ngives essentially the same results as the displacement method and is\neasier to implement in an MD code.\n\nOnce the force constant matrix is known, the dynamical matrix\n\\(\\mathbf{D}\\) can then be obtained by\n\\[\n \\mathbf{D}_{k\\alpha, k^\\prime\\beta}(\\mathbf{q}) =\n (m_k m_{k^\\prime})^{-\\frac{1}{2}} \\mathbf{\\Phi}_{k \\alpha, k^\\prime \\beta}(\\mathbf{q})\\]\nwhose eigenvalues are exactly the phonon frequencies at \\(\\mathbf{q}\\).\n\nThis fix uses positions of atoms in the specified group and calculates\ntwo-point correlations. To achieve this. the positions of the atoms\nare examined every *Nevery* steps and are Fourier-transformed into\nreciprocal space, where the averaging process and correlation\ncomputation is then done. After every *Noutput* measurements, the\nmatrix \\(\\mathbf{G}(\\mathbf{q})\\) is calculated and inverted to\nobtain the elastic stiffness coefficients. The dynamical matrices are\nthen constructed and written to *prefix* .bin.timestep files in binary\nformat and to the file *prefix* .log for each wave-vector\n\\(\\mathbf{q}\\).\n\nA detailed description of this method can be found in\n(**Kong2011**).\n\nThe *sysdim* keyword is optional. If specified with a value smaller\nthan the dimensionality of the LAMMPS simulation, its value is used\nfor the dynamical matrix calculation. For example, using LAMMPS to\nmodel a 2D or 3D system, the phonon dispersion of a 1D atomic chain\ncan be computed using *sysdim* = 1.\n\nThe *nasr* keyword is optional. An iterative procedure is employed to\nenforce the acoustic sum rule on \\(\\Phi\\) at \\(\\Gamma\\), and the number\nprovided by keyword *nasr* gives the total number of iterations. For a\nsystem whose unit cell has only one atom, *nasr* = 1 is sufficient;\nfor other systems, *nasr* = 10 is typically sufficient.\n\nThe *map_file* contains the mapping information between the lattice\nindices and the atom IDs, which tells the code which atom sits at\nwhich lattice point; the lattice indices start from 0. An auxiliary\ncode, [latgen](https://code.google.com/p/latgen), can be employed to\ngenerate the compatible map file for various crystals.\n\nIn case one simulates a non-periodic system, where the whole simulation\nbox is treated as a unit cell, one can set *map_file* as *GAMMA*, so\nthat the mapping info will be generated internally and a file is not\nneeded. In this case, the dynamical matrix at only the gamma-point\nwill/can be evaluated. Please keep in mind that fix-phonon is designed\nfor cyrstals, it will be inefficient and even degrade the performance\nof LAMMPS in case the unit cell is too large.\n\nThe calculated dynamical matrix elements are written out in\n[energy/distance\\^2/mass ](https://docs.lammps.org/units.html) units. The coordinates for *q*\npoints in the log file is in the units of the basis vectors of the\ncorresponding reciprocal lattice.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to change the temperature compute from thermo_temp\nto the one that reflects the true temperature of atoms in the group.\n\nNo global scalar or vector or per-atom quantities are stored by this\nfix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nInstead, this fix outputs its initialization information (including\nmapping information) and the calculated dynamical matrices to the file\n*prefix* .log, with the specified *prefix* . The dynamical matrices are\nalso written to files *prefix* .bin.timestep in binary format. These\ncan be read by the post-processing tool in tools/phonon to compute the\nphonon density of states and/or phonon dispersion curves.\n\nNo parameter of this fix can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Campana)** C. Campana and\nM. H. Muser, *Practical Green's function approach to the\nsimulation of elastic semi-infinite solids*, [Phys. Rev. B [74], 075420 (2006)](https://doi.org/10.1103/PhysRevB.74.075420) \n \n**(Kong)** L.T. Kong, G. Bartels, C. Campana,\nC. Denniston, and Martin H. Muser, *Implementation of Green's\nfunction molecular dynamics: An extension to LAMMPS*, [Computer Physics Communications [180](6):1004-1010 (2009).](https://doi.org/10.1016/j.cpc.2008.12.035) \n \n**(Kong2011)** L.T. Kong, *Phonon dispersion measured directly from\nmolecular dynamics simulations*, [Computer Physics Communications [182](10):2201-2207, (2011).](https://doi.org/10.1016/j.cpc.2011.04.019) \n ", - "restrictions": "This fix assumes a crystalline system with periodical lattice. The\ntemperature of the system should not exceed the melting temperature to\nkeep the system in its solid state.\n\nThis fix is part of the PHONON package. It is only enabled if LAMMPS\nwas built with that package. This fix also requires LAMMPS to be built\nwith 3d-FFT support which is included in the KSPACE package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute msd ](https://docs.lammps.org/compute_msd.html),\n[dynamical_matrix ](https://docs.lammps.org/dynamical_matrix.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* edpd/source or tdpd/source = style name of this fix command\n* index (only specified for tdpd/source) = index of chemical species (1 to Nspecies)\n* keyword = sphere or cuboid or region \n *        sphere args = cx cy cz radius source \n         cx,cy,cz = x,y,z center of spherical domain (distance units) \n         radius = radius of a spherical domain (distance units) \n         source = heat source or concentration source (flux units, see below) \n *        cuboid values = cx cy cz dLx dLy dLz source \n         cx,cy,cz = x,y,z center of a cuboid domain (distance units) \n         dLx,dLy,dLz = x,y,z side length of a cuboid domain (distance units) \n         source = heat source or concentration source (flux units, see below) \n *        region values = region-ID source \n         region = ID of region for heat or concentration source \n         source = heat source or concentration source (flux units, see below) \n", + "examples": "\n```lmps\nfix 1 all edpd/source sphere 0.0 0.0 0.0 5.0 0.01\nfix 1 all edpd/source cuboid 0.0 0.0 0.0 20.0 10.0 10.0 -0.01\nfix 1 all tdpd/source 1 sphere 5.0 0.0 0.0 5.0 0.01\nfix 1 all tdpd/source 2 cuboid 0.0 0.0 0.0 20.0 10.0 10.0 0.01\nfix 1 all tdpd/source 1 region lower -0.01\n```\n", + "html_filename": "fix_dpd_source.html", + "short_description": "Fix *edpd/source* adds a heat source as an external heat flux to each\natom in a spherical or cuboid domain, where the *source* is in units\nof energy/time", + "description": "Fix *edpd/source* adds a heat source as an external heat flux to each\natom in a spherical or cuboid domain, where the *source* is in units\nof energy/time. Fix *tdpd/source* adds an external concentration\nsource of the chemical species specified by *index* as an external\nconcentration flux for each atom in a spherical or cuboid domain,\nwhere the *source* is in units of mole/volume/time.\n\nThis command can be used to give an additional heat/concentration\nsource term to atoms in a simulation, such as for a simulation of a\nheat conduction with a source term (see Fig.12 in **Li2014b**)\nor diffusion with a source term (see Fig.1 in **Li2015b**), as\nan analog of a periodic Poiseuille flow problem.\n\n **Deprecated in version 15Jun2023** \n\nIf the *sphere* keyword is used, the *cx, cy, cz, radius* values define\na spherical domain to apply the source flux to.\n\nIf the *cuboid* keyword is used, the *cx, cy, cz, dLx, dLy, dLz* define\na cuboid domain to apply the source flux to.\n\nIf the *region* keyword is used, the *region-ID* selects which\n[region ](https://docs.lammps.org/region.html) to apply the source flux to.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information of these fixes is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to these fixes. No global or per-atom quantities are stored by\nthese fixes for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of these fixes can be used with the *start/stop* keywords\nof the [run ](https://docs.lammps.org/run.html) command. These fixes are not invoked during\n[energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Li2014b)** Z. Li, Y.-H. Tang, H. Lei, B. Caswell and G.E. Karniadakis,\n\"Energy-conserving dissipative particle dynamics with\ntemperature-dependent properties\", J. Comput. Phys., 265: 113-127\n(2014). DOI: 10.1016/j.jcp.2014.02.003 \n \n**(Li2015b)** Z. Li, A. Yazdani, A. Tartakovsky and G.E. Karniadakis,\n\"Transport dissipative particle dynamics model for mesoscopic\nadvection-diffusion-reaction problems\", J. Chem. Phys., 143: 014101\n(2015). DOI: 10.1063/1.4923254 \n ", + "restrictions": "These fixes are part of the DPD-MESO package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFix *edpd/source* must be used with the [pair_style edpd](https://docs.lammps.org/pair_mesodpd.html) command. Fix *tdpd/source* must be used with the\n[pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html) command.\n", + "related": "[pair_style edpd ](https://docs.lammps.org/pair_mesodpd.html), [pair_style tdpd ](https://docs.lammps.org/pair_mesodpd.html),\n[compute edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html),\n[compute tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html)\n" }, { "command": [ - "compute reduce/chunk" + "fix nvt/body" ], "syntax": [ - "compute ID group-ID reduce/chunk chunkID mode input1 input2 ..." + "fix ID group-ID nvt/body keyword value ..." ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -38940,163 +38400,158 @@ export const command_docs = [ "choices": [] }, { - "arg": "reduce/chunk", + "arg": "nvt/body", "type": 1, "choices": [] }, { - "arg": "chunkID", - "type": 2, - "choices": [] - }, - { - "arg": "max", - "type": 3, - "choices": [ - "sum", - "min", - "max" - ] - }, - { - "arg": "input1", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "input2", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* reduce/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* mode = sum or min or max\n* one or more inputs can be listed\n* input = c_ID, c_ID[N], f_ID, f_ID[N], v_ID \n *        c_ID = per-atom vector calculated by a compute with ID \n *        c_ID[I] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) \n *        f_ID = per-atom vector calculated by a fix with ID \n *        f_ID[I] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) \n *        v_name = per-atom vector calculated by an atom-style variable with name \n", - "examples": "\n```lmps\ncompute 1 all reduce/chunk mychunk min c_cluster\n```\n", - "html_filename": "compute_reduce_chunk.html", - "short_description": "Define a calculation that reduces one or more per-atom vectors into\nper-chunk values", - "description": "Define a calculation that reduces one or more per-atom vectors into\nper-chunk values. This can be useful for diagnostic output. Or when\nused in conjunction with the [compute chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html) command it can be\nused to create per-atom values that induce a new set of chunks with a\nsecond [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. An\nexample is given below.\n\nIn LAMMPS, chunks are collections of atoms defined by a [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nFor each atom, this compute accesses its chunk ID from the specified\n*chunkID* compute. The per-atom value from an input contributes\nto a per-chunk value corresponding the the chunk ID.\n\nThe reduction operation is specified by the *mode* setting and is\nperformed over all the per-atom values from the atoms in each chunk.\nThe *sum* option adds the pre-atom values to a per-chunk total. The\n*min* or *max* options find the minimum or maximum value of the\nper-atom values for each chunk.\n\nNote that only atoms in the specified group contribute to the\nreduction operation. If the *chunkID* compute returns a 0 for the\nchunk ID of an atom (i.e., the atom is not in a chunk defined by the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command), that atom will\nalso not contribute to the reduction operation. An input that is a\ncompute or fix may define its own group which affects the quantities\nit returns. For example, a compute with return a zero value for atoms\nthat are not in the group specified for that compute.\n\nEach listed input is operated on independently. Each input can be the\nresult of a [compute ](https://docs.lammps.org/compute.html) or [fix ](https://docs.lammps.org/fix.html) or the evaluation\nof an atom-style [variable ](https://docs.lammps.org/variable.html).\n\nNote that for values from a compute or fix, the bracketed index I can\nbe specified using a wildcard asterisk with the index to effectively\nspecify multiple values. This takes the form \"\\*\" or \"\\*n\" or \"m\\*\" or\n\"m\\*n\". If \\(N\\) is the size of the vector (for *mode* = scalar) or the\nnumber of columns in the array (for *mode* = vector), then an asterisk\nwith no numeric values means all indices from 1 to \\(N\\). A leading\nasterisk means all indices from 1 to n (inclusive). A trailing\nasterisk means all indices from n to \\(N\\) (inclusive). A middle asterisk\nmeans all indices from m to n (inclusive).\n\nUsing a wildcard is the same as if the individual columns of the array\nhad been listed one by one. For example, the following two compute reduce/chunk\ncommands are equivalent, since the\n[compute property/chunk ](https://docs.lammps.org/compute_property_chunk.html) command creates a per-atom\narray with 3 columns:\n\n```lmps\ncompute prop all property/atom vx vy vz\ncompute 10 all reduce/chunk mychunk max c_prop[*]\ncompute 10 all reduce/chunk mychunk max c_prop[1] c_prop[2] c_prop[3]\n```\n----------\n\nHere is an example of using this compute, in conjunction with the\ncompute chunk/spread/atom command to identify self-assembled micelles.\nThe commands below can be added to the examples/in.micelle script.\n\nImagine a collection of polymer chains or small molecules with\nhydrophobic end groups. All the hydrophobic (HP) atoms are assigned\nto a group called \"phobic\".\n\nThese commands will assign a unique cluster ID to all HP atoms within\na specified distance of each other. A cluster will contain all HP\natoms in a single molecule, but also the HP atoms in nearby molecules\n(e.g., molecules that have clumped to form a micelle due to the\nattraction induced by the hydrophobicity). The output of the\nchunk/reduce command will be a cluster ID per chunk (molecule).\nMolecules with the same cluster ID are in the same micelle.\n\n```lmps\ngroup phobic type 4 # specific to in.micelle model\ncompute cluster phobic cluster/atom 2.0\ncompute cmol all chunk/atom molecule\ncompute reduce phobic reduce/chunk cmol min c_cluster\n```\nThis per-chunk info could be output in at least two ways:\n\n```lmps\nfix 10 all ave/time 1000 1 1000 c_reduce file tmp.phobic mode vector\n\ncompute spread all chunk/spread/atom cmol c_reduce\ndump 1 all custom 1000 tmp.dump id type mol x y z c_cluster c_spread\ndump_modify 1 sort id\n```\nIn the first case, each snapshot in the tmp.phobic file will contain\none line per molecule. Molecules with the same value are in the same\nmicelle. In the second case each dump snapshot contains all atoms,\neach with a final field with the cluster ID of the micelle that the HP\natoms of that atom's molecule belong to.\n\nThe result from compute chunk/spread/atom can be used to define a new\nset of chunks, where all the atoms in all the molecules in the same\nmicelle are assigned to the same chunk (i.e., one chunk per micelle).\n\n```lmps\ncompute micelle all chunk/atom c_spread compress yes\n```\nFurther analysis on a per-micelle basis can now be performed using any\nof the per-chunk computes listed on the [Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc page (e.g., count the number of atoms in each micelle, calculate\nits center or mass, shape/moments of inertia, and radius of gyration).\n\n```lmps\ncompute prop all property/chunk micelle count\nfix 20 all ave/time 1000 1 1000 c_prop file tmp.micelle mode vector\n```\nEach snapshot in the tmp.micelle file will have one line per micelle\nwith its count of atoms, plus a first line for a chunk with all the\nsolvent atoms. By the time 50000 steps have elapsed, there are a\nhandful of large micelles.\n\n----------\n\n #### Output info\n\nThis compute calculates a global vector if a single input value is\nspecified, otherwise a global array is output. The number of columns\nin the array is the number of inputs provided. The length of the\nvector or the number of vector elements or array rows = the number of\nchunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The vector or array can\nbe accessed by any command that uses global values from a compute as\ninput. See the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an\noverview of LAMMPS output options.\n\nThe per-atom values for the vector or each column of the array will be\nin whatever [units ](https://docs.lammps.org/units.html) the corresponding input value is in.\nThe vector or array values are \"intensive\".\n", - "restrictions": " none\n", - "related": "[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html), [compute chunk/spread/atom ](https://docs.lammps.org/compute_chunk_spread_atom.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/body = style name of this fix command\n* additional thermostat related keyword/value pairs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command can be appended \n", + "examples": "\n```lmps\nfix 1 all nvt/body temp 300.0 300.0 100.0\nfix 1 all nvt/body temp 300.0 300.0 100.0 drag 0.2\n```\n", + "html_filename": "fix_nvt_body.html", + "short_description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat", + "description": "Perform constant NVT integration to update position, velocity,\norientation, and angular velocity each timestep for body\nparticles in the group using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThis fix differs from the [fix nvt ](https://docs.lammps.org/fix_nh.html) command, which\nassumes point particles and only updates their position and velocity.\n\nThe thermostat is applied to both the translational and rotational\ndegrees of freedom for the body particles, assuming a compute is\nused which calculates a temperature that includes the rotational\ndegrees of freedom (see below). The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nAdditional parameters affecting the thermostat are specified by\nkeywords and values documented with the [fix nvt ](https://docs.lammps.org/fix_nh.html)\ncommand. See, for example, discussion of the *temp* and *drag*\nkeywords.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp/body\", as if this command\nhad been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp/body\n```\nSee the [compute temp/body ](https://docs.lammps.org/compute_temp_body.html) command for\ndetails. Note that the ID of the new compute is the fix-ID +\nunderscore + \"temp\", and the group for the new compute is the same as\nthe fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt ](https://docs.lammps.org/fix_nh.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the BODY package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style body ](https://docs.lammps.org/atom_style.html)\ncommand.\n", + "related": "[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix nve_body ](https://docs.lammps.org/fix_nve_body.html), [fix npt_body ](https://docs.lammps.org/fix_npt_body.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "shell" + "bond_style table", + "bond_style table/omp" ], "syntax": [ - "shell command args" + "bond_style table style N" ], "args": [ [ { - "arg": "shell", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "putenv", + "arg": "table", "type": 3, "choices": [ - "cd", - "mkdir", - "mv", - "rm", - "rmdir", - "putenv" + "table", + "table/omp" ] }, { - "arg": "args", + "arg": "style", + "type": 2, + "choices": [] + }, + { + "arg": "N", "type": 2, "choices": [] } ] ], - "parameters": "* command = cd or mkdir or mv or rm or rmdir or putenv or arbitrary command \n *        cd arg = dir \n         dir = directory to change to \n *        mkdir args = dir1 dir2 ... \n         dir1,dir2 = one or more directories to create \n *        mv args = old new \n         old = old filename \n         new = new filename or destination folder \n *        rm args = [-f] file1 file2 ... \n         -f = turn off warnings (optional) \n         file1,file2 = one or more filenames to delete \n *        rmdir args = dir1 dir2 ... \n         dir1,dir2 = one or more directories to delete \n *        putenv args = var1=value1 var2=value2 \n         var=value = one of more definitions of environment variables \n *        anything else is passed as a command to the shell for direct execution \n", - "examples": "\n```lmps\nshell cd sub1\nshell cd ..\nshell mkdir tmp1 tmp2/tmp3\nshell rmdir tmp1 tmp2\nshell mv log.lammps hold/log.1\nshell rm TMP/file1 TMP/file2\nshell putenv LAMMPS_POTENTIALS=../../potentials\nshell my_setup file1 10 file2\nshell my_post_process 100 dump.out\n```\n", - "html_filename": "shell.html", - "short_description": "Execute a shell command", - "description": "Execute a shell command. A few simple file-based shell commands are\nsupported directly, in Unix-style syntax. Any command not listed\nabove is passed as-is to the C-library system() call, which invokes\nthe command in a shell. To use the external executable instead of\nthe built-in version one needs to use a full path, for example\n*/bin/rm* instead of *rm*. The built-in commands will also work\non operating systems, that do not - by default - provide the\ncorresponding external executables (like *mkdir* on Windows).\n\nThis command provides a ways to invoke custom commands or executables\nfrom your input script. For example, you can move files around in\npreparation for the next section of the input script. Or you can run a\nprogram that pre-processes data for input into LAMMPS. Or you can run a\nprogram that post-processes LAMMPS output data.\n\nWith the exception of *cd*, all commands, including ones invoked via a\nsystem() call, are executed by only a single processor, so that\nfiles/directories are not being manipulated by multiple processors\nconcurrently which may result in unexpected errors or corrupted files.\n\nThe *cd* command changes the current working directory similar to\nthe ``cd`` command. All subsequent LAMMPS commands that read/write files\nwill use the new directory. All processors execute this command.\n\nThe *mkdir* command creates directories similar to the Unix ``mkdir -p``\ncommand. That is, it will attempt to create the entire path of\nsubdirectories if they do not exist yet.\n\nThe *mv* command renames a file and/or moves it to a new directory.\nIt cannot rename files across filesystem boundaries or between drives.\n\nThe *rm* command deletes file similar to the Unix ``rm`` command.\n\nThe *rmdir* command deletes directories similar to Unix ``rmdir`` command.\nIf a directory is not empty, its contents are also removed recursively\nsimilar to the Unix ``rm -r`` command.\n\nThe *putenv* command defines or updates an environment variable directly.\nSince this command does not pass through the shell, no shell variable\nexpansion or globbing is performed, only the usual substitution for\nLAMMPS variables defined with the [variable ](https://docs.lammps.org/variable.html) command is\nperformed. The resulting string is then used literally.\n\nAny other command is passed as-is to the shell along with its arguments as\none string, invoked by the C-library system() call. For example,\nthese lines in your input script:\n\n```lmps\nvariable n equal 10\nvariable foo string file2\nshell my_setup file1 $n ${foo}\n```\nwould be the same as invoking\n\n```bash\nmy_setup file1 10 file2\n```\nfrom a command-line prompt. The executable program \"my_setup\" is run\nwith 3 arguments: file1 10 file2.\n", - "restrictions": "LAMMPS will do a best effort to detect errors and print suitable\nwarnings, but due to the nature of delegating commands to the C-library\nsystem() call, this is not always reliable.\n", - "related": "none\n" + "parameters": "* style = linear or spline = method of interpolation\n* N = use N values in table \n", + "examples": "\n```lmps\nbond_style table linear 1000\nbond_coeff 1 file.table ENTRY1\n```\n", + "html_filename": "bond_table.html", + "short_description": "Style *table* creates interpolation tables of length *N* from bond\npotential and force values listed in a file(s) as a function of bond\nlength", + "description": "Style *table* creates interpolation tables of length *N* from bond\npotential and force values listed in a file(s) as a function of bond\nlength. The files are read by the [bond_coeff ](https://docs.lammps.org/bond_coeff.html)\ncommand.\n\nThe interpolation tables are created by fitting cubic splines to the\nfile values and interpolating energy and force values at each of *N*\ndistances. During a simulation, these tables are used to interpolate\nenergy and force values as needed. The interpolation is done in one\nof 2 styles: *linear* or *spline*.\n\nFor the *linear* style, the bond length is used to find 2 surrounding\ntable values from which an energy or force is computed by linear\ninterpolation.\n\nFor the *spline* style, a cubic spline coefficients are computed and\nstored at each of the *N* values in the table. The bond length is\nused to find the appropriate set of coefficients which are used to\nevaluate a cubic polynomial which computes the energy or force.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above.\n\n* filename\n* keyword\n\nThe filename specifies a file containing tabulated energy and force\nvalues. The keyword specifies a section of the file. The format of\nthis file is described below.\n\n----------\n\nSuitable tables for use with this bond style can be created by LAMMPS\nitself from existing bond styles using the [bond_write](https://docs.lammps.org/bond_write.html) command. This can be useful to have a template file for\ntesting the bond style settings and to build a compatible custom file.\nAnother option to generate tables is the Python code in the\n``tools/tabulate`` folder of the LAMMPS source code distribution.\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# Bond potential for harmonic (one or more comment or blank lines)\n\nHAM (keyword is the first text on line)\nN 101 FP 0 0 EQ 0.5 (N, FP, EQ parameters)\n(blank line)\n1 0.00 338.0000 1352.0000 (index, bond-length, energy, force)\n2 0.01 324.6152 1324.9600\n...\n101 1.00 338.0000 -1352.0000\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections. The first line begins with a keyword which\nidentifies the section. The line can contain additional text, but the\ninitial text must match the argument specified in the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command. The next line lists (in any\norder) one or more parameters for the table. Each parameter is a\nkeyword followed by one or more numeric values.\n\nThe parameter \"N\" is required and its value is the number of table\nentries that follow. Note that this may be different than the *N*\nspecified in the [bond_style table ](https://docs.lammps.org/bond_style.html) command. Let\nNtable = *N* in the bond_style command, and Nfile = \"N\" in the\ntabulated file. What LAMMPS does is a preliminary interpolation by\ncreating splines using the Nfile tabulated values as nodal points. It\nuses these to interpolate as needed to generate energy and force\nvalues at Ntable different points. The resulting tables of length\nNtable are then used as described above, when computing energy and\nforce for individual bond lengths. This means that if you want the\ninterpolation tables of length Ntable to match exactly what is in the\ntabulated file (with effectively no preliminary interpolation), you\nshould set Ntable = Nfile.\n\nThe \"FP\" parameter is optional. If used, it is followed by two values\nfplo and fphi, which are the derivatives of the force at the innermost\nand outermost bond lengths. These values are needed by the spline\nconstruction routines. If not specified by the \"FP\" parameter, they\nare estimated (less accurately) by the first two and last two force\nvalues in the table.\n\nThe \"EQ\" parameter is also optional. If used, it is followed by a the\nequilibrium bond length, which is used, for example, by the [fixshake ](https://docs.lammps.org/fix_shake.html) command. If not used, the equilibrium bond length is\nto the distance in the table with the lowest potential energy.\n\nFollowing a blank line, the next N lines list the tabulated values.\nOn each line, the first value is the index from 1 to N, the second value is\nthe bond length r (in distance units), the third value is the energy (in\nenergy units), and the fourth is the force (in force units). The bond\nlengths must range from a LO value to a HI value, and increase from\none line to the next. If the actual bond length is ever smaller than\nthe LO value or larger than the HI value, then the calculation is\naborted with an error, so it is advisable to cover the whole range\nof possible bond lengths.\n\nNote that one file can contain many sections, each with a tabulated\npotential. LAMMPS reads the file section by section until it finds\none that matches the specified keyword.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart info\n\nThis bond style writes the settings for the \"bond_style table\" command\nto [binary restart files ](https://docs.lammps.org/restart.html), so a bond_style command does\nnot need to specified in an input script that reads a restart file.\nHowever, the coefficient information is not stored in the restart file,\nsince it is tabulated in the potential files. Thus, bond_coeff commands\ndo need to be specified in the restart input script.\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_write ](https://docs.lammps.org/bond_write.html)\n" }, { "command": [ - "bond_style harmonic/shift", - "bond_style harmonic/shift/omp" + "compute com" ], "syntax": [ - "bond_style harmonic/shift" + "compute ID group-ID com" ], "args": [ [ { - "arg": "bond_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "harmonic/shift", - "type": 3, - "choices": [ - "harmonic/shift", - "harmonic/shift/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "com", + "type": 1, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nbond_style harmonic/shift\nbond_coeff 5 10.0 0.5 1.0\n```\n", - "html_filename": "bond_harmonic_shift.html", - "short_description": "The *harmonic/shift* bond style is a shifted harmonic bond that uses\nthe potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and \\(r_c\\) the critical distance", - "description": "The *harmonic/shift* bond style is a shifted harmonic bond that uses\nthe potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and \\(r_c\\) the critical distance.\nThe potential is \\(-U_{\\text{min}}\\) at \\(r0\\) and zero at \\(r_c\\). The spring constant is\n\\(k = U_{\\text{min}} / [ 2 (r_0-r_c)^2]\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n\n* \\(r_0\\) (distance)\n\n* \\(r_c\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_harmonic ](https://docs.lammps.org/bond_harmonic.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* com = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all com\n```\n", + "html_filename": "compute_com.html", + "short_description": "Define a computation that calculates the center-of-mass of the group\nof atoms, including all effects due to atoms passing through periodic\nboundaries", + "description": "Define a computation that calculates the center-of-mass of the group\nof atoms, including all effects due to atoms passing through periodic\nboundaries.\n\nA vector of three quantities is calculated by this compute, which\nare the \\((x,y,z)\\) coordinates of the center of mass.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the center-of-mass in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 3, which can be\naccessed by indices 1--3 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\ndistance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html)\n" }, { "command": [ - "fix nve/asphere/noforce" + "fix_modify AtC sample_frequency" ], "syntax": [ - "fix ID group-ID nve/asphere/noforce" + "fix_modify sample_frequency " ], "args": [ [ { - "arg": "fix", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "sample_frequency", + "type": 1, "choices": [] }, { - "arg": "nve/asphere/noforce", - "type": 1, + "arg": "", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/asphere/noforce = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/asphere/noforce\n```\n", - "html_filename": "fix_nve_asphere_noforce.html", - "short_description": "Perform updates of position and orientation, but not velocity or\nangular momentum for atoms in the group each timestep", - "description": "Perform updates of position and orientation, but not velocity or\nangular momentum for atoms in the group each timestep. In other\nwords, the force and torque on the atoms is ignored and their velocity\nand angular momentum are not updated. The atom velocities and\nangular momenta are used to update their positions and orientation.\n\nThis is useful as an implicit time integrator for Fast Lubrication\nDynamics, since the velocity and angular momentum are updated by the\n[pair_style lubricuteU ](https://docs.lammps.org/pair_lubricateU.html) command.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the ASPHERE package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix requires that atoms store torque and angular momentum and a\nquaternion as defined by the [atom_style ellipsoid ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nAll particles in the group must be finite-size. They cannot be point\nparticles, but they can be aspherical or spherical as defined by their\nshape attribute.\n", - "related": "[fix nve/noforce ](https://docs.lammps.org/fix_nve_noforce.html), [fix nve/asphere ](https://docs.lammps.org/fix_nve_asphere.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* sample_frequency = name of the AtC sub-command\n* freq = frequency to sample fields in number of steps \n", + "examples": "\n```lmps\nfix_modify AtC sample_frequency 10\n```\n", + "html_filename": "atc_sample_frequency.html", + "short_description": "Specifies a frequency at which fields are computed for the case where\ntime filters are being applied", + "description": "Specifies a frequency at which fields are computed for the case where\ntime filters are being applied.\n", + "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html) and is only relevant when time filters are being used.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style drip" + "pair_style spin/dipole/cut" ], "syntax": [ - "pair_style hybrid/overlay drip [styles ...]" + "pair_style spin/dipole/cut cutoff", + "pair_style spin/dipole/long cutoff" ], "args": [ [ @@ -39106,162 +38561,244 @@ export const command_docs = [ "choices": [] }, { - "arg": "hybrid/overlay", - "type": 2, + "arg": "spin/dipole/cut", + "type": 1, "choices": [] }, { - "arg": "drip", + "arg": "cutoff", + "type": 2, + "choices": [] + } + ], + [ + { + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "[styles", + "arg": "spin/dipole/long", "type": 2, "choices": [] }, { - "arg": "...]", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* styles = other styles to be overlayed with drip (optional) \n", - "examples": "\n```lmps\npair_style hybrid/overlay drip\npair_coeff * * none\npair_coeff * * drip C.drip C\n\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C\npair_coeff * * rebo CH.airebo C\n\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C NULL\npair_coeff * * rebo CH.airebo C H\n```\n", - "html_filename": "pair_drip.html", - "short_description": "Style *drip* computes the interlayer interactions of layered materials using\nthe dihedral-angle-corrected registry-dependent (DRIP) potential as described\nin **Wen2018**, which is based on the **Kolmogorov2005**\npotential and provides an improved prediction for forces", - "description": "Style *drip* computes the interlayer interactions of layered materials using\nthe dihedral-angle-corrected registry-dependent (DRIP) potential as described\nin **Wen2018**, which is based on the **Kolmogorov2005**\npotential and provides an improved prediction for forces.\nThe total potential energy of a system is\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_{i} \\sum_{j\\notin\\text{layer}\\,i} \\phi_{ij} \\\\\n \\phi_{ij} = &f_\\text{c}(x_r) \\left[ e^{-\\lambda(r_{ij} - z_0 )} \\left[C+f(\\rho_{ij})+ g(\\rho_{ij}, \\{\\alpha_{ij}^{(m)}\\}) \\right]- A\\left (\\frac{z_0}{r_{ij}} \\right)^6 \\right] \\end{align*} \\]\nwhere the \\(r^{-6}\\) term models the attractive London dispersion,\nthe exponential term is designed to capture the registry effect due to\noverlapping *pi* bonds, and *fc* is a cutoff function.\n\nThis potential (DRIP) only provides the interlayer interactions between\ngraphene layers. So, to perform a realistic simulation, it should be used in\ncombination with an intralayer potential such as [REBO ](https://docs.lammps.org/pair_airebo.html) and\n[Tersoff ](https://docs.lammps.org/pair_tersoff.html).\nTo keep the intralayer interactions unaffected, we should avoid applying DRIP\nto contribute energy to intralayer interactions. This can be achieved by\nassigning different molecular IDs to atoms in different layers, and DRIP is\nimplemented such that only atoms with different molecular ID can interact with\neach other. For this purpose, [atom style ](https://docs.lammps.org/atom_style.html) \"molecular\" or\n\"full\" has to be used.\n\nOn the other way around, [REBO ](https://docs.lammps.org/pair_airebo.html) ([Tersoff ](https://docs.lammps.org/pair_tersoff.html)\nor any other potential used to provide the intralayer interactions) should not\ninterfere with the interlayer interactions described by DRIP. This is typically\nautomatically achieved using the commands provided in the *Examples* section\nabove, since the cutoff distance for carbon-carbon interaction in the intralayer\npotentials (e.g. 2 Angstrom for [REBO ](https://docs.lammps.org/pair_airebo.html)) is much smaller than\nthe equilibrium layer distance of graphene layers (about 3.4 Angstrom).\nIf you want, you can enforce this by assigning different atom types to atoms in\ndifferent layers, and apply an intralayer potential to one atom type.\nSee [pair_hybrid ](https://docs.lammps.org/pair_hybrid.html) for details.\n\n----------\n\nThe [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command for DRIP takes *4+N* arguments, where\n*N* is the number of LAMMPS atom types. The fist three arguments must be fixed\nto be *\\* \\* drip*, the fourth argument is the path to the DRIP parameter file,\nand the remaining N arguments specifying the mapping between element in the\nparameter file and atom types. For example, if your LAMMPS simulation has 3 atom\ntypes and you want all of them to be C, you would use the following pair_coeff\ncommand:\n\n```lmps\npair_coeff * * drip C.drip C C C\n```\nIf a mapping value is specified as NULL, the mapping is not performed. This\ncould be useful when DRIP is used to model part of the system where other\nelement exists. Suppose you have a hydrocarbon system, with C of atom type 1\nand H of atom type 2, you can use the following command to inform DRIP not to\nmodel H atoms:\n\n```lmps\npair_style hybrid/overlay drip rebo\npair_coeff * * drip C.drip C NULL\npair_coeff * * rebo CH.airebo C H\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The potential parameters developed in **Wen2018** are provided with\n > LAMMPS (see the \"potentials\" directory). Besides those in **Wen2018**, an\n > additional parameter \"normal_cutoff\", specific to the LAMMPS implementation, is\n > used to find the three nearest neighbors of an atom to construct the normal. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table,\nand tail options.\n\nThis pair style does not write their information to binary restart files, since\nit is stored in potential files. Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\n**(Wen2018)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018) \n \n**(Kolmogorov2005)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) \n \n**(Wen2018)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018) \n ", - "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\" for\npair interactions.\n\nThe *C.drip* parameter file provided with LAMMPS (see the \"potentials\"\ndirectory) is parameterized for metal [units ](https://docs.lammps.org/units.html). You can use\nthe DRIP potential with any LAMMPS units, but you would need to create\nyour own custom parameter file with coefficients listed in the\nappropriate units, if your simulation does not use \"metal\" units.\n", - "related": "[pair_style lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style kolmogorov/crespi/z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style kolmogorov/crespi/full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style ilp/graphene/hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n----------\n\n.. _Wen2018:\n\n**(Wen)** M. Wen, S. Carr, S. Fang, E. Kaxiras, and E. B. Tadmor, Phys. Rev. B,\n98, 235404 (2018)\n\n.. _Kolmogorov2005:\n\n**(Kolmogorov)** A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005)\n" + "parameters": "* cutoff = global cutoff for magnetic dipole energy and forces\n (optional) (distance units) \n", + "examples": "\n```lmps\npair_style spin/dipole/cut 10.0\npair_coeff * * 10.0\npair_coeff 2 3 8.0\n\npair_style spin/dipole/long 9.0\npair_coeff * * 10.0\npair_coeff 2 3 6.0\n```\n", + "html_filename": "pair_spin_dipole.html", + "short_description": "Style *spin/dipole/cut* computes a short-range dipole-dipole\ninteraction between pairs of magnetic particles that each\nhave a magnetic spin", + "description": "Style *spin/dipole/cut* computes a short-range dipole-dipole\ninteraction between pairs of magnetic particles that each\nhave a magnetic spin.\nThe magnetic dipole-dipole interactions are computed by the\nfollowing formulas for the magnetic energy, magnetic precession\nvector omega and mechanical force between particles I and J.\n\\[\\begin{align*} \n \\mathcal{H}_{\\rm long} & =\n -\\frac{\\mu_{0} \\left( \\mu_B\\right)^2}{4\\pi}\n \\sum_{i,j,i\\neq j}^{N}\n \\frac{g_i g_j}{r_{ij}^3}\n \\biggl(3\n \\left(\\vec{e}_{ij}\\cdot \\vec{s}_{i}\\right)\n \\left(\\vec{e}_{ij}\\cdot \\vec{s}_{j}\\right)\n -\\vec{s}_i\\cdot\\vec{s}_j \\biggr) \\\\\n \\mathbf{\\omega}_i & =\n \\frac{\\mu_0 (\\mu_B)^2}{4\\pi\\hbar}\\sum_{j}\n \\frac{g_i g_j}{r_{ij}^3}\n \\, \\biggl(\n 3\\,(\\vec{e}_{ij}\\cdot\\vec{s}_{j})\\vec{e}_{ij}\n -\\vec{s}_{j} \\biggr) \\\\\n \\mathbf{F}_i & =\n \\frac{3\\, \\mu_0 (\\mu_B)^2}{4\\pi} \\sum_j\n \\frac{g_i g_j}{r_{ij}^4}\n \\biggl[\\bigl( (\\vec{s}_i\\cdot\\vec{s}_j)\n -5(\\vec{e}_{ij}\\cdot\\vec{s}_i)\n (\\vec{e}_{ij}\\cdot\\vec{s}_j)\\bigr) \\vec{e}_{ij}+\n \\bigl(\n (\\vec{e}_{ij}\\cdot\\vec{s}_i)\\vec{s}_j+\n (\\vec{e}_{ij}\\cdot\\vec{s}_j)\\vec{s}_i\n \\bigr)\n \\biggr] \\end{align*} \\]\nwhere \\(\\vec{s}_i\\) and \\(\\vec{s}_j\\) are the spin on two magnetic\nparticles, r is their separation distance, and the vector \\(\\vec{e}_{ij}\n= \\frac{r_i - r_j}{\\left| r_i - r_j \\right|}\\) is the direction vector\nbetween the two particles.\n\nStyle *spin/dipole/long* computes long-range magnetic dipole-dipole\ninteraction.\nA [kspace_style ](https://docs.lammps.org/kspace_style.html) must be defined to\nuse this pair style. Currently, [kspace_style ewald/dipole/spin ](https://docs.lammps.org/kspace_style.html) and [kspace_style pppm/dipole/spin ](https://docs.lammps.org/kspace_style.html) support long-range magnetic\ndipole-dipole interactions.\n\n----------\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n", + "restrictions": "The *spin/dipole/cut* and *spin/dipole/long* styles are part of\nthe SPIN package. They are only enabled if LAMMPS was built with that\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nUsing dipole/spin pair styles with *electron* [units ](https://docs.lammps.org/units.html) is not\ncurrently supported.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [kspace_style ](https://docs.lammps.org/kspace_style.html)\n[fix nve/spin ](https://docs.lammps.org/fix_nve_spin.html)\n" }, { "command": [ - "pair_style nm/cut", - "pair_style nm/cut/omp", - "pair_style nm/cut/split", - "pair_style nm/cut/coul/cut", - "pair_style nm/cut/coul/cut/omp", - "pair_style nm/cut/coul/long", - "pair_style nm/cut/coul/long/omp" + "compute smd/plastic/strain" ], "syntax": [ - "pair_style style args" + "compute ID group-ID smd/plastic/strain" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "nm/cut/coul/long/omp", - "type": 3, - "choices": [ - "nm/cut", - "nm/cut/split", - "nm/cut/coul/cut", - "nm/cut/coul/long", - "nm/cut/omp", - "nm/cut/coul/cut/omp", - "nm/cut/coul/long/omp" - ] + "arg": "ID", + "type": 2, + "choices": [] }, { - "arg": "args", + "arg": "group-ID", "type": 2, "choices": [] + }, + { + "arg": "smd/plastic/strain", + "type": 1, + "choices": [] } ] ], - "parameters": "* style = nm/cut or nm/cut/split or nm/cut/coul/cut or nm/cut/coul/long\n* args = list of arguments for a particular style \n *        nm/cut args = cutoff \n         cutoff = global cutoff for Pair interactions (distance units) \n *        nm/cut/split args = cutoff \n         cutoff = global cutoff for Pair interactions (distance units) \n *        nm/cut/coul/cut args = cutoff (cutoff2) \n         cutoff = global cutoff for Pair (and Coulombic if only 1 arg) (distance units) \n         cutoff2 = global cutoff for Coulombic (optional) (distance units) \n *        nm/cut/coul/long args = cutoff (cutoff2) \n         cutoff = global cutoff for Pair (and Coulombic if only 1 arg) (distance units) \n         cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style nm/cut 12.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n\npair_style nm/cut/split 1.12246\npair_coeff 1 1 1.0 1.1246 12 6\npair_coeff * * 1.0 1.1246 11 6\n\npair_style nm/cut/coul/cut 12.0 15.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n\npair_style nm/cut/coul/long 12.0 15.0\npair_coeff * * 0.01 5.4 8.0 7.0\npair_coeff 1 1 0.01 4.4 7.0 6.0\n```\n", - "html_filename": "pair_nm.html", - "short_description": "Style *nm* computes site-site interactions based on the N-M potential\nby **Clarke**, mainly used for ionic liquids", - "description": "Style *nm* computes site-site interactions based on the N-M potential\nby **Clarke**, mainly used for ionic liquids. A site can\nrepresent a single atom or a united-atom site. The energy of an\ninteraction has the following form:\n\\[\n E = \\frac{E_0}{(n-m)} \\left[ m \\left(\\frac{r_0}{r}\\right)^n - n\n \\left(\\frac{r_0}{r}\\right)^m \\right] \\qquad r < r_c\\]\nwhere \\(r_c\\) is the cutoff and \\(r_0\\) is the minimum of the\npotential. Please note that this differs from the convention used for\nother Lennard-Jones potentials in LAMMPS where \\(\\sigma\\) represents\nthe location where the energy is zero.\n\nStyle *nm/cut/split* applies the standard LJ (12-6) potential above\n\\(r_0 = 2^\\frac{1}{6}\\sigma\\). Style *nm/cut/split* is employed in\npolymer equilibration protocols that combine core-softening approaches\nwith topology-changing moves **Dietz**.\n\nStyle *nm/cut/coul/cut* adds a Coulombic pairwise interaction given by\n\\[\n E = \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c\\]\nwhere \\(C\\) is an energy-conversion constant, \\(q_i\\) and \\(q_j\\)\nare the charges on the two atoms, and epsilon is the dielectric constant which can\nbe set by the [dielectric ](https://docs.lammps.org/dielectric.html) command. If one cutoff is\nspecified in the pair_style command, it is used for both the N-M and Coulombic\nterms. If two cutoffs are specified, they are used as cutoffs for the N-M and\nCoulombic terms respectively.\n\nStyles *nm/cut/coul/long* compute the same\nCoulombic interactions as style *nm/cut/coul/cut* except that an\nadditional damping factor is applied to the Coulombic term so it can\nbe used in conjunction with the [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommand and its *ewald* or *pppm* option. The Coulombic cutoff\nspecified for this style means that pairwise interactions within this\ndistance are computed directly; interactions outside that distance are\ncomputed in reciprocal space.\n\nFor all of the *nm* pair styles, the following coefficients must\nbe defined for each pair of atoms types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\n* \\(E_0\\) (energy units)\n* \\(r_0\\) (distance units)\n* \\(n\\) (unitless)\n* \\(m\\) (unitless)\n* cutoff1 (distance units)\n* cutoff2 (distance units)\n\nThe latter 2 coefficients are optional. If not specified, the global\nN-M and Coulombic cutoffs specified in the pair_style command are used.\nIf only one cutoff is specified, it is used as the cutoff for both N-M\nand Coulombic interactions for this type pair. If both coefficients\nare specified, they are used as the N-M and Coulombic cutoffs for this\ntype pair. You cannot specify 2 cutoffs for style *nm*, since it\nhas no Coulombic terms.\n\nFor *nm/cut/coul/long* only the N-M cutoff can be specified since a\nCoulombic cutoff cannot be specified for an individual I,J type pair.\nAll type pairs use the same global Coulombic cutoff specified in the\npair_style command.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nAll of the *nm* pair styles supports the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) shift option for the energy of the pair\ninteraction.\n\nThe *nm/cut/coul/long* pair styles support the\n[pair_modify ](https://docs.lammps.org/pair_modify.html) table option since they can tabulate\nthe short-range portion of the long-range Coulombic interaction.\n\nAll of the *nm* pair styles support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding a long-range tail correction to the energy and\npressure for the N-M portion of the pair interaction.\n\nAll of the *nm* pair styles write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nAll of the *nm* pair styles can only be used via the *pair* keyword of\nthe [run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n**(Clarke)** Clarke and Smith, J Chem Phys, 84, 2290 (1986). \n \n**(Dietz)** Dietz and Hoy, J. Chem Phys, 156, 014103 (2022). \n ", - "restrictions": "These pair styles are part of the EXTRA-PAIR package. They are only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair style lj/cut ](https://docs.lammps.org/pair_lj.html), [bond style fene/nm ](https://docs.lammps.org/bond_fene.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/plastic/strain = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/plastic/strain\n```\n", + "html_filename": "compute_smd_plastic_strain.html", + "short_description": "Define a computation that outputs the equivalent plastic strain per\nparticle", + "description": "Define a computation that outputs the equivalent plastic strain per\nparticle. This command is only meaningful if a material model with\nplasticity is defined.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to use Smooth\nMach Dynamics in LAMMPS.\n\n**Output Info:**\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle values will be given dimensionless. See [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. This compute can\nonly be used for particles which interact via the updated Lagrangian\nor total Lagrangian SPH pair styles.\n", + "related": "[smd/plastic/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain.html),\n[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/strain ](https://docs.lammps.org/compute_smd_tlsph_strain.html)\n" }, { "command": [ - "improper_style distharm" + "fix gld" ], "syntax": [ - "improper_style distharm" + "fix ID group-ID gld Tstart Tstop N_k seed series c_1 tau_1 ... c_N_k tau_N_k keyword values ..." ], "args": [ [ { - "arg": "improper_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "distharm", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "gld", "type": 1, "choices": [] + }, + { + "arg": "Tstart", + "type": 2, + "choices": [] + }, + { + "arg": "Tstop", + "type": 2, + "choices": [] + }, + { + "arg": "N_k", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, + "choices": [] + }, + { + "arg": "series", + "type": 2, + "choices": [] + }, + { + "arg": "c_1", + "type": 2, + "choices": [] + }, + { + "arg": "tau_1", + "type": 2, + "choices": [] + }, + { + "arg": "c_N_k", + "type": 2, + "choices": [] + }, + { + "arg": "tau_N_k", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style distharm\nimproper_coeff 1 25.0 0.5\n```\n", - "html_filename": "improper_distharm.html", - "short_description": "The *distharm* improper style uses the potential\n\\[\n E = K (d - d_0)^2\\]\nwhere \\(d\\) is the oriented distance between the central atom and the plane formed\nby the other three atoms", - "description": "The *distharm* improper style uses the potential\n\\[\n E = K (d - d_0)^2\\]\nwhere \\(d\\) is the oriented distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the L-atom is assumed to be the\ncentral atom. Note that this is different from the convention used\nin the improper_style distance. The distance \\(d\\) is oriented and can take\non negative values. This may lead to unwanted behavior if \\(d_0\\) is not equal to zero.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(d_0\\) (distance)\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* gld = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run (temperature units)\n* N_k = number of terms in the Prony series representation of the memory kernel\n* seed = random number seed to use for white noise (positive integer)\n* series = pprony is presently the only available option\n* c_k = the weight of the kth term in the Prony series (mass per time units)\n* tau_k = the time constant of the kth term in the Prony series (time units)\n* zero or more keyword/value pairs may be appended \n *      keyword = frozen or zero \n       frozen value = no or yes \n       no = initialize extended variables using values drawn from equilibrium distribution at Tstart \n       yes = initialize extended variables to zero (i.e., from equilibrium distribution at zero temperature) \n       zero value = no or yes \n       no = do not set total random force to zero \n       yes = set total random force to zero \n", + "examples": "\n```lmps\nfix 1 all gld 1.0 1.0 2 82885 pprony 0.5 1.0 1.0 2.0 frozen yes zero yes\nfix 3 rouse gld 7.355 7.355 4 48823 pprony 107.1 0.02415 186.0 0.04294 428.6 0.09661 1714 0.38643\n```\n", + "html_filename": "fix_gld.html", + "short_description": "Applies Generalized Langevin Dynamics to a group of atoms, as\ndescribed in **Baczewski**", + "description": "Applies Generalized Langevin Dynamics to a group of atoms, as\ndescribed in **Baczewski**. This is intended to model the\neffect of an implicit solvent with a temporally non-local dissipative\nforce and a colored Gaussian random force, consistent with the\nFluctuation-Dissipation Theorem. The functional form of the memory\nkernel associated with the temporally non-local force is constrained\nto be a Prony series.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >While this fix bears many similarities to [fix langevin ](https://docs.lammps.org/fix_langevin.html), it has one significant\n > difference. Namely, [fix gld ](https://docs.lammps.org/fix_gld.html) performs time integration,\n > whereas [fix langevin ](https://docs.lammps.org/fix_langevin.html) does NOT. To this end, the\n > specification of another fix to perform time integration, such as [fix nve ](https://docs.lammps.org/fix_nve.html), is NOT necessary. \n > \n\nWith this fix active, the force on the *j* th atom is given as\n\\[\\begin{align*} \n {\\bf F}_{j}(t) = & {\\bf F}^C_j(t)-\\int \\limits_{0}^{t} \\Gamma_j(t-s) {\\bf v}_j(s)~\\text{d}s + {\\bf F}^R_j(t) \\\\\n \\Gamma_j(t-s) = & \\sum \\limits_{k=1}^{N_k} \\frac{c_k}{\\tau_k} e^{-(t-s)/\\tau_k} \\\\\n \\langle{\\bf F}^R_j(t),{\\bf F}^R_j(s)\\rangle = & \\text{k$_\\text{B}$T} ~\\Gamma_j(t-s) \\end{align*} \\]\nHere, the first term is representative of all conservative (pairwise,\nbonded, etc) forces external to this fix, the second is the temporally\nnon-local dissipative force given as a Prony series, and the third is\nthe colored Gaussian random force.\n\nThe Prony series form of the memory kernel is chosen to enable an\nextended variable formalism, with a number of exemplary mathematical\nfeatures discussed in **Baczewski**. In particular, \\(3N_k\\)\nextended variables are added to each atom, which effect the action of\nthe memory kernel without having to explicitly evaluate the integral\nover time in the second term of the force. This also has the benefit\nof requiring the generation of uncorrelated random forces, rather than\ncorrelated random forces as specified in the third term of the force.\n\nPresently, the Prony series coefficients are limited to being greater\nthan or equal to zero, and the time constants are limited to being\ngreater than zero. To this end, the value of series MUST be set to\n*pprony*, for now. Future updates will allow for negative coefficients\nand other representations of the memory kernel. It is with these\nupdates in mind that the series option was included.\n\nThe units of the Prony series coefficients are chosen to be mass per\ntime to ensure that the numerical integration scheme stably approaches\nthe Newtonian and Langevin limits. Details of these limits, and the\nassociated numerical concerns are discussed in\n**Baczewski**.\n\nThe desired temperature at each timestep is ramped from *Tstart* to\n*Tstop* over the course of the next run.\n\nThe random # *seed* must be a positive integer. A Marsaglia random\nnumber generator is used. Each processor uses the input seed to\ngenerate its own unique seed and its own stream of random\nnumbers. Thus the dynamics of the system will not be identical on two\nruns on different numbers of processors.\n\n----------\n\nThe keyword/value option pairs are used in the following ways.\n\nThe keyword *frozen* can be used to specify how the extended variables\nassociated with the GLD memory kernel are initialized. Specifying no\n(the default), the initial values are drawn at random from an\nequilibrium distribution at *Tstart*, consistent with the\nFluctuation-Dissipation Theorem. Specifying yes, initializes the\nextended variables to zero.\n\nThe keyword *zero* can be used to eliminate drift due to the\nthermostat. Because the random forces on different atoms are\nindependent, they do not sum exactly to zero. As a result, this fix\napplies a small random force to the entire system, and the\ncenter-of-mass of the system undergoes a slow random walk. If the\nkeyword *zero* is set to *yes*, the total random force is set exactly\nto zero by subtracting off an equal part of it from each atom in the\ngroup. As a result, the center-of-mass of a system with zero initial\nmomentum will not drift over time.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThe instantaneous values of the extended variables are written to\n[binary restart files ](https://docs.lammps.org/restart.html). Because the state of the random\nnumber generator is not saved in restart files, this means you cannot\ndo \"exact\" restarts with this fix, where the simulation continues on\nthe same as if no restart had taken place. However, in a statistical\nsense, a restarted simulation should produce the same behavior.\n\nNone of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are relevant to this\nfix. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Baczewski)** A.D. Baczewski and S.D. Bond, J. Chem. Phys. 139, 044107 (2013). \n ", + "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix langevin ](https://docs.lammps.org/fix_langevin.html), [fix viscous ](https://docs.lammps.org/fix_viscous.html),\n[pair_style dpd/tstat ](https://docs.lammps.org/pair_dpd.html)\n" }, { "command": [ - "compute bond" + "next" ], "syntax": [ - "compute ID group-ID bond" + "next variables" ], "args": [ [ { - "arg": "compute", + "arg": "next", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "variables", "type": 2, "choices": [] - }, + } + ] + ], + "parameters": "* variables = one or more variable names \n", + "examples": "\n```lmps\nnext x\nnext a t x myTemp\n```\n", + "html_filename": "next.html", + "short_description": "This command is used with variables defined by the\n[variable ](https://docs.lammps.org/variable.html) command", + "description": "This command is used with variables defined by the\n[variable ](https://docs.lammps.org/variable.html) command. It assigns the next value to the\nvariable from the list of values defined for that variable by the\n[variable ](https://docs.lammps.org/variable.html) command. Thus when that variable is\nsubsequently substituted for in an input script command, the new value\nis used.\n\nSee the [variable ](https://docs.lammps.org/variable.html) command for info on how to define and\nuse different kinds of variables in LAMMPS input scripts. If a\nvariable name is a single lower-case character from \"a\" to \"z\", it can\nbe used in an input script command as $a or $z. If it is multiple\nletters, it can be used as ${myTemp}.\n\nIf multiple variables are used as arguments to the *next* command,\nthen all must be of the same variable style: *index*, *loop*, *file*,\n*universe*, or *uloop* . An exception is that *universe* - and\n*uloop* -style variables can be mixed in the same *next* command.\n\nAll the variables specified with the next command are incremented by\none value from their respective list of values. A *file* -style\nvariable reads the next line from its associated file. An\n*atomfile* -style variable reads the next set of lines (one per atom)\nfrom its associated file. *String-* or *atom* - or *equal* - or\n*world* -style variables cannot be used with the next command,\nsince they only store a single value.\n\nWhen any of the variables in the next command has no more values, a\nflag is set that causes the input script to skip the next\n[jump ](https://docs.lammps.org/jump.html) command encountered. This enables a loop containing\na next command to exit. As explained in the [variable ](https://docs.lammps.org/variable.html)\ncommand, the variable that has exhausted its values is also deleted.\nThis allows it to be used and re-defined later in the input script.\n*File* -style and *atomfile* -style variables are exhausted when the\nend-of-file is reached.\n\nWhen the next command is used with *index* - or *loop* -style variables,\nthe next value is assigned to the variable for all processors. When\nthe next command is used with *file* -style variables, the next line is\nread from its file and the string assigned to the variable. When the\nnext command is used with *atomfile* -style variables, the next set of\nper-atom values is read from its file and assigned to the variable.\n\nWhen the next command is used with *universe* - or *uloop* -style\nvariables, all *universe* - or *uloop* -style variables must be listed\nin the next command. This is because of the manner in which the\nincrementing is done, using a single lock file for all variables. The\nnext value (for each variable) is assigned to whichever processor\npartition executes the command first. All processors in the partition\nare assigned the same value(s). Running LAMMPS on multiple partitions\nof processors via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). *Universe* - and *uloop* -style variables are\nincremented using the files \"tmp.lammps.variable\" and\n\"tmp.lammps.variable.lock\" which you will see in your directory during\nand after such a LAMMPS run.\n\nHere is an example of running a series of simulations using the next\ncommand with an *index* -style variable. If this input script is named\nin.polymer, 8 simulations would be run using data files from\ndirectories run1 through run8.\n\n```lmps\nvariable d index run1 run2 run3 run4 run5 run6 run7 run8\nshell cd $d\nread_data data.polymer\nrun 10000\nshell cd ..\nclear\nnext d\njump in.polymer\n```\nIf the variable \"d\" were of style *universe*, and the same in.polymer\ninput script were run on 3 partitions of processors, then the first 3\nsimulations would begin, one on each set of processors. Whichever\npartition finished first, it would assign variable \"d\" the fourth value\nand run another simulation, and so forth until all 8 simulations were\nfinished.\n\nJump and next commands can also be nested to enable multi-level loops.\nFor example, this script will run 15 simulations in a double loop.\n\n```lmps\nvariable i loop 3\nvariable j loop 5\nclear\n...\nread_data data.polymer.$i$j\nprint Running simulation $i.$j\nrun 10000\nnext j\njump in.script\nnext i\njump in.script\n```\nHere is an example of a double loop which uses the [if ](https://docs.lammps.org/if.html) and\n[jump ](https://docs.lammps.org/jump.html) commands to break out of the inner loop when a\ncondition is met, then continues iterating through the outer loop.\n\n```lmps\nlabel loopa\nvariable a loop 5\nlabel loopb\nvariable b loop 5\nprint \"A,B = $a,$b\"\nrun 10000\nif $b > 2 then \"jump in.script break\"\nnext b\njump in.script loopb\nlabel break\nvariable b delete\n\nnext a\njump in.script loopa\n```\n", + "restrictions": "As described above.\n", + "related": "[jump ](https://docs.lammps.org/jump.html), [include ](https://docs.lammps.org/include.html), [shell ](https://docs.lammps.org/shell.html),\n[variable ](https://docs.lammps.org/variable.html),\n" +}, +{ + "command": [ + "improper_style inversion/harmonic" + ], + "syntax": [ + "improper_style inversion/harmonic" + ], + "args": [ + [ { - "arg": "group-ID", - "type": 2, + "arg": "improper_style", + "type": 1, "choices": [] }, { - "arg": "bond", + "arg": "inversion/harmonic", "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* bond = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all bond\n```\n", - "html_filename": "compute_bond.html", - "short_description": "Define a computation that extracts the bond energy calculated by each\nof the bond sub-styles used in the [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html) command", - "description": "Define a computation that extracts the bond energy calculated by each\nof the bond sub-styles used in the [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html) command. These values are made accessible\nfor output or further processing by other commands. The group\nspecified for this command is ignored.\n\nThis compute is useful when using [bond_style hybrid ](https://docs.lammps.org/bond_hybrid.html)\nif you want to know the portion of the total energy contributed by one\nor more of the hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length \\(N\\), where \\(N\\)\nis the number of sub_styles defined by the\n[bond_style hybrid ](https://docs.lammps.org/bond_style.html) command,\nwhich can be accessed by indices 1 through \\(N\\).\nThese values can be used by any command that uses global scalar or\nvector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output\noptions.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" + "parameters": "", + "examples": "\n```lmps\nimproper_style inversion/harmonic\nimproper_coeff 1 18.776340 0.000000\n```\n", + "html_filename": "improper_inversion_harmonic.html", + "short_description": "The *inversion/harmonic* improper style follows the Wilson-Decius\nout-of-plane angle definition and uses an harmonic potential:\n\\[\n E = K \\left(\\omega - \\omega_0\\right)^2\\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle\nevaluated for all three axis-plane combinations centered around the atom I", + "description": "The *inversion/harmonic* improper style follows the Wilson-Decius\nout-of-plane angle definition and uses an harmonic potential:\n\\[\n E = K \\left(\\omega - \\omega_0\\right)^2\\]\nwhere \\(K\\) is the force constant and \\(\\omega\\) is the angle\nevaluated for all three axis-plane combinations centered around the atom I.\nFor the IL axis and the IJK plane \\(\\omega\\) looks as follows:\n\n ![Image](JPG/umbrella.jpg) \n\nNote that the *inversion/harmonic* angle term evaluation differs to\nthe [improper_umbrella ](https://docs.lammps.org/improper_umbrella.html) due to the cyclic\nevaluation of all possible angles \\(\\omega\\).\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\omega_0\\) (degrees)\n\nIf \\(\\omega_0 = 0\\) the potential term has a single minimum for\nthe planar structure. Otherwise it has two minima at +/- \\(\\omega_0\\),\nwith a barrier in between.\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOFFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "fix electron/stopping" + "compute temp/uef" ], "syntax": [ - "fix ID group-ID style args" + "compute ID group-ID temp/uef" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -39276,96 +38813,82 @@ export const command_docs = [ "choices": [] }, { - "arg": "electron/stopping/fit", - "type": 3, - "choices": [ - "electron/stopping", - "electron/stopping/fit" - ] - }, - { - "arg": "args", - "type": 2, - "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* style = electron/stopping or electron/stopping/fit \n *    electron/stopping args = Ecut file keyword value ... \n     Ecut = minimum kinetic energy for electronic stopping (energy units) \n     file = name of the file containing the electronic stopping power table \n *    electron/stopping/fit args = Ecut c1 c2 ... \n     Ecut = minimum kinetic energy for electronic stopping (energy units) \n     c1 c2 = linear and quadratic coefficients for the fitted quadratic polynomial \n* zero or more keyword/value pairs may be appended to args for style = electron/stopping \n *     keyword = region or minneigh \n      region value = region-ID \n      region-ID = region whose atoms will be affected by this fix \n      minneigh value = minneigh \n      minneigh = minimum number of neighbors an atom to have stopping applied \n", - "examples": "\n```lmps\nfix el all electron/stopping 10.0 elstop-table.txt\nfix el all electron/stopping 10.0 elstop-table.txt minneigh 3\nfix el mygroup electron/stopping 1.0 elstop-table.txt region bulk\nfix 1 all electron/stopping/fit 4.63 3.3e-3 4.0e-8\nfix 1 all electron/stopping/fit 3.49 1.8e-3 9.0e-8 7.57 4.2e-3 5.0e-8\n```\n", - "html_filename": "fix_electron_stopping.html", - "short_description": "This fix implements inelastic energy loss for fast projectiles in solids", - "description": "This fix implements inelastic energy loss for fast projectiles in solids. It\napplies a friction force to fast moving atoms to slow them down due to\n**elstopping** (energy lost via electronic collisions per\nunit of distance). This fix should be used for simulation of irradiation\ndamage or ion implantation, where the ions can lose noticeable amounts of\nenergy from electron excitations. If the electronic stopping power is not\nconsidered, the simulated range of the ions can be severely overestimated\n(**Nordlund98**, **Nordlund95**).\n\nThe electronic stopping is implemented by applying a friction force\nto each atom as:\n\\[\n \\vec{F}_i = \\vec{F}^0_i - \\frac{\\vec{v}_i}{\\|\\vec{v}_i\\|} \\cdot S_e\\]\nwhere \\(\\vec{F}_i\\) is the resulting total force on the atom.\n\\(\\vec{F}^0_i\\) is the original force applied to the atom, \\(\\vec{v}_i\\) is\nits velocity and \\(S_e\\) is the stopping power of the ion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In addition to electronic stopping, atomic cascades and irradiation\n > simulations require the use of an adaptive timestep (see\n > [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html)) and the repulsive ZBL potential (see\n > [ZBL ](https://docs.lammps.org/pair_zbl.html) potential) or similar. Without these settings the\n > interaction between the ion and the target atoms will be faulty. It is also\n > common to use in such simulations a thermostat ([fix_nvt ](https://docs.lammps.org/fix_nh.html)) in\n > the borders of the simulation cell. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix removes energy from fast projectiles without depositing it as a\n > heat to the simulation cell. Such implementation might lead to the unphysical\n > results when the amount of energy deposited to the electronic system is large,\n > e.g. simulations of Swift Heavy Ions (energy per nucleon of 100 keV/amu or\n > higher) or multiple projectiles. You could compensate energy loss by coupling\n > bulk atoms with some thermostat or control heat transfer between electronic and\n > atomic subsystems with the two-temperature model ([fix_ttm ](https://docs.lammps.org/fix_ttm.html)). \n > \n\nAt low velocities the electronic stopping is negligible. The electronic\nfriction is not applied to atoms whose kinetic energy is smaller than *Ecut*,\nor smaller than the lowest energy value given in the table in *file* .\nElectronic stopping should be applied only when a projectile reaches bulk\nmaterial. This fix scans neighbor list and excludes atoms with fewer than\n*minneigh* neighbors (by default one). If the pair potential cutoff is large,\nminneigh should be increased, though not above the number of nearest neighbors\nin bulk material. An alternative is to disable the check for neighbors by\nsetting *minneigh* to zero and using the *region* keyword. This is necessary\nwhen running simulations of cluster bombardment.\n\nIf the *region* keyword is used, the atom must also be in the specified\ngeometric [region ](https://docs.lammps.org/region.html) in order to have electronic stopping applied to\nit. This is useful if the position of the bulk material is fixed. By default\nthe electronic stopping is applied everywhere in the simulation cell.\n\n----------\n\nThe energy ranges and stopping powers are read from the file *file* .\nLines starting with *#* and empty lines are ignored. Otherwise each\nline must contain exactly **N+1** numbers, where **N** is the number of atom\ntypes in the simulation.\n\nThe first column is the energy for which the stopping powers on that\nline apply. The energies must be sorted from the smallest to the largest.\nThe other columns are the stopping powers \\(S_e\\) for each atom type,\nin ascending order, in force [units ](https://docs.lammps.org/units.html). The stopping powers for\nintermediate energy values are calculated with linear interpolation between\n2 nearest points.\n\nFor example:\n\n```\n# This is a comment\n# atom-1 atom-2\n# eV eV/Ang eV/Ang # units metal\n10 0 0\n250 60 80\n750 100 150\n```\nIf an atom which would have electronic stopping applied to it has a\nkinetic energy higher than the largest energy given in *file*, LAMMPS\nwill exit with an error message.\n\nThe stopping power depends on the energy of the ion and the target\nmaterial. The electronic stopping table can be obtained from\nscientific publications, experimental databases or by using\n**SRIM** software. Other programs such as **CasP** or\n**PASS** can calculate the energy deposited as a function\nof the impact parameter of the ion; these results can be used\nto derive the stopping power.\n\n----------\n\nStyle *electron/stopping/fit* calculates the electronic stopping power\nand cumulative energy lost to the electron gas via a quadratic functional\nand applies a drag force to the classical equations-of-motion for all\natoms moving above some minimum cutoff velocity (i.e., kinetic energy).\nThese coefficients can be determined by fitting a quadratic polynomial to\nelectronic stopping data predicted by, for example, SRIM or TD-DFT. Multiple\n'Ecut c1 c2' values can be provided for multi-species simulations in the order\nof the atom types. There is an examples/PACKAGES/electron_stopping/ directory,\nwhich illustrates uses of this command. Details of this implementation are\nfurther described in **Stewart2018** and **Lee2020**.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) options are not supported.\n\nThis fix computes a global scalar, which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the total energy\nloss from electronic stopping applied by this fix since the start of\nthe latest run. It is considered \"intensive\".\n\nThe *start/stop* keywords of the [run ](https://docs.lammps.org/run.html) command have no effect\non this fix.\n\n**(elstopping)** Wikipedia - Electronic Stopping Power: https://en.wikipedia.org/wiki/Stopping_power_%28particle_radiation%29 \n \n**(Nordlund98)** Nordlund, Kai, et al. Physical Review B 57.13 (1998): 7556. \n \n**(Nordlund95)** Nordlund, Kai. Computational materials science 3.4 (1995): 448-456. \n \n**(SRIM)** SRIM webpage: http://www.srim.org/ \n \n**(CasP)** CasP webpage: http://www.casp-program.org/ \n \n**(PASS)** PASS webpage: https://www.sdu.dk/en/DPASS \n \n**(Stewart2018)** J.A. Stewart, et al. (2018) Journal of Applied Physics, 123(16), 165902. \n \n**(Lee2020)** C.W. Lee, et al. (2020) Physical Review B, 102(2), 024107. \n ", - "restrictions": "This pair style is part of the EXTRA-FIX package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "none" + "arg": "temp/uef", + "type": 1, + "choices": [] + } + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/uef = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all temp/uef\ncompute 2 sel temp/uef\n```\n", + "html_filename": "compute_temp_uef.html", + "short_description": "This command is used to compute the kinetic energy tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used", + "description": "This command is used to compute the kinetic energy tensor in\nthe reference frame of the applied flow field when\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html) or\n[fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is used.\nIt is not necessary to use this command to compute the scalar\nvalue of the temperature. A [compute temp ](https://docs.lammps.org/compute_temp.html)\nmay be used for that purpose.\n\nOutput information for this command can be found in the\ndocumentation for [compute temp ](https://docs.lammps.org/compute_temp.html).\n", + "restrictions": "This fix is part of the UEF package. It is only enabled if LAMMPS was built\nwith that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nThis command can only be used when [fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html)\nor [fix npt/uef ](https://docs.lammps.org/fix_nh_uef.html) is active.\n", + "related": "[compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix nvt/uef ](https://docs.lammps.org/fix_nh_uef.html),\n[compute pressure/uef ](https://docs.lammps.org/compute_pressure_uef.html)\n" }, { "command": [ - "compute omega/chunk" + "fix_modify AtC time_integration" ], "syntax": [ - "compute ID group-ID omega/chunk chunkID" + "fix_modify time_integration " ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "omega/chunk", + "arg": "time_integration", "type": 1, "choices": [] }, { - "arg": "chunkID", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "gear", + "fractional_step", + "verlet" + ] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* omega/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", - "examples": "\n```lmps\ncompute 1 fluid omega/chunk molchunk\n```\n", - "html_filename": "compute_omega_chunk.html", - "short_description": "Define a computation that calculates the angular velocity (omega) of\nmultiple chunks of atoms", - "description": "Define a computation that calculates the angular velocity (omega) of\nmultiple chunks of atoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the three components of the angular velocity\nvector for each chunk via the formula\n\\(\\vec L = \\mathrm{I}\\cdot \\vec\\omega\\), where \\(\\vec L\\) is the\nangular momentum vector of the chunk, \\(\\mathrm{I}\\) is its moment of\ninertia tensor, and \\(\\omega\\) is the angular velocity of the chunk.\nThe calculation includes all effects due to atoms passing through periodic\nboundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's angular\n > velocity in \"unwrapped\" form, by using the image flags associated with\n > each atom. See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion\n > of \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute omega/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all omega/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is the\nnumber of chunks *Nchunk* as calculated by the specified [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns is 3 for the three\n(*x*, *y*, *z*) components of the angular velocity for each chunk.\nThese values can be accessed by any command that uses global array\nvalues from a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html)\npage for an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nvelocity/distance [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[variable omega() function ](https://docs.lammps.org/variable.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* time_integration = name of the AtC sub-command\n* descriptor = gear or fractional_step or verlet \n", + "examples": "\n```lmps\nfix_modify AtC time_integration fractional_step\n```\n", + "html_filename": "atc_time_integration.html", + "short_description": "Command to select the thermal or momentum time integration", + "description": "Command to select the thermal or momentum time integration.\n\n---------\n\nOptions for thermal time integration:\n\n*gear*\n atomic velocity update with second order Verlet, nodal temperature update\n with third or fourth order Gear, thermostats based on controlling power\n\n*fractional_step*\n atomic velocity update with second order Verlet, mixed nodal temperature\n update, 3/4 Gear for continuum and 2 Verlet for atomic contributions,\n thermostats based on controlling discrete energy changes\n\n---------\n\nOptions for momentum time integration:\n\n*verlet*\n atomic velocity update with second order Verlet, nodal temperature update\n with second order Verlet, kinetostats based on controlling force\n\n*fractional_step*\n atomic velocity update with second order Verlet, mixed nodal momentum\n update, second order Verlet for continuum and exact second order Verlet for\n atomic contributions, kinetostats based on controlling discrete\n momentum changes\n\n*gear*\n atomic velocity update with second order Verlet, nodal temperature update\n with third or fourth order Gear, kinetostats based on controlling power.\n\n---------\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "pair_style dpd/fdt", - "pair_style dpd/fdt/energy", - "pair_style dpd/fdt/energy/kk" + "bond_style lepton", + "bond_style lepton/omp" ], "syntax": [ - "pair_style style args" + "bond_style style args" ], "args": [ [ { - "arg": "pair_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "dpd/fdt/energy/kk", - "type": 3, - "choices": [ - "dpd/fdt", - "dpd/fdt/energy", - "dpd/fdt/energy/kk" - ] + "arg": "style", + "type": 2, + "choices": [] }, { "arg": "args", @@ -39374,237 +38897,309 @@ export const command_docs = [ } ] ], - "parameters": "* style = dpd/fdt or dpd/fdt/energy\n* args = list of arguments for a particular style \n *      dpd/fdt args = T cutoff seed \n       T = temperature (temperature units) \n       cutoff = global cutoff for DPD interactions (distance units) \n       seed = random # seed (positive integer) \n *      dpd/fdt/energy args = cutoff seed \n       cutoff = global cutoff for DPD interactions (distance units) \n       seed = random # seed (positive integer) \n", - "examples": "\n```lmps\npair_style dpd/fdt 300.0 2.5 34387\npair_coeff * * 3.0 1.0 2.5\n\npair_style dpd/fdt/energy 2.5 34387\npair_coeff * * 3.0 1.0 0.1 2.5\n```\n", - "html_filename": "pair_dpd_fdt.html", - "short_description": "Styles *dpd/fdt* and *dpd/fdt/energy* compute the force for dissipative\nparticle dynamics (DPD) simulations", - "description": "Styles *dpd/fdt* and *dpd/fdt/energy* compute the force for dissipative\nparticle dynamics (DPD) simulations. The *dpd/fdt* style is used to\nperform DPD simulations under isothermal and isobaric conditions,\nwhile the *dpd/fdt/energy* style is used to perform DPD simulations\nunder isoenergetic and isoenthalpic conditions (see **Lisal3**).\nFor DPD simulations in general, the force on atom I due to atom J is\ngiven as a sum of 3 terms\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R) \\hat{r_{ij}} \\qquad \\qquad r < r_c \\\\\n F^C = & A w(r) \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\\\\n w(r) = & 1 - \\frac{r}{r_c} \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a dissipative\nforce, and \\(F^R\\) is a random force. \\(\\hat{r_{ij}}\\) is a\nunit vector in the direction \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is\nthe vector difference in velocities of the two atoms, \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1, \\(r_c\\) is the\npairwise cutoff. Note that alternative definitions of the weighting\nfunction exist, but would have to be implemented as a separate pair\nstyle command.\n\nFor style *dpd/fdt*, the fluctuation-dissipation theorem defines\n\\(\\gamma\\) to be set equal to \\(\\sigma^2/(2 T)\\), where *T* is the\nset point temperature specified as a pair style parameter in the above\nexamples. The following coefficients must be defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the\nexamples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\sigma\\) (force\\*time\\^(1/2) units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used.\n\nStyle *dpd/fdt/energy* is used to perform DPD simulations under\nisoenergetic and isoenthalpic conditions. The fluctuation-dissipation\ntheorem defines \\(\\gamma\\) to be set equal to \\(\\sigma^2/(2\n\\theta)\\), where \\(\\theta\\) is the average internal temperature for\nthe pair. The particle internal temperature is related to the particle\ninternal energy through a mesoparticle equation of state (see [fixeos ](https://docs.lammps.org/fix.html)). The differential internal conductive and mechanical\nenergies are computed within style *dpd/fdt/energy* as:\n\\[\\begin{align*} \n du_{i}^{cond} = & \\kappa_{ij}(\\frac{1}{\\theta_{i}}-\\frac{1}{\\theta_{j}})\\omega_{ij}^{2} + \\alpha_{ij}\\omega_{ij}\\zeta_{ij}^{q}(\\Delta{t})^{-1/2} \\\\\n du_{i}^{mech} = & -\\frac{1}{2}\\gamma_{ij}\\omega_{ij}^{2}(\\frac{\\vec{r}_{ij}}{r_{ij}}\\bullet\\vec{v}_{ij})^{2} -\n \\frac{\\sigma^{2}_{ij}}{4}(\\frac{1}{m_{i}}+\\frac{1}{m_{j}})\\omega_{ij}^{2} -\n \\frac{1}{2}\\sigma_{ij}\\omega_{ij}(\\frac{\\vec{r}_{ij}}{r_{ij}}\\bullet\\vec{v}_{ij})\\zeta_{ij}(\\Delta{t})^{-1/2} \\end{align*} \\]\nwhere\n\\[\\begin{align*} \n \\alpha_{ij}^{2} = & 2k_{B}\\kappa_{ij} \\\\\n \\sigma^{2}_{ij} = & 2\\gamma_{ij}k_{B}\\Theta_{ij} \\\\\n \\Theta_{ij}^{-1} = & \\frac{1}{2}(\\frac{1}{\\theta_{i}}+\\frac{1}{\\theta_{j}}) \\end{align*} \\]\n\\(\\zeta_ij^q\\) is a second Gaussian random number with zero mean and\nunit variance that is used to compute the internal conductive\nenergy. The fluctuation-dissipation theorem defines \\(alpha^2\\) to\nbe set equal to \\(2k_B\\kappa\\), where \\(\\kappa\\) is the\nmesoparticle thermal conductivity parameter. The following coefficients\nmust be defined for each pair of atoms types via the [pair_coeff](https://docs.lammps.org/pair_coeff.html) command as in the examples above, or in the data file or\nrestart files read by the [read_data ](https://docs.lammps.org/read_data.html) or\n[read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* A (force units)\n* \\(\\sigma\\) (force\\*time\\^(1/2) units)\n* \\(\\kappa\\) (energy\\*temperature/time units)\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global DPD\ncutoff is used.\n\nThe pairwise energy associated with styles *dpd/fdt* and\n*dpd/fdt/energy* is only due to the conservative force term \\(F^C\\),\nand is shifted to be zero at the cutoff distance \\(r_c\\). The\npairwise virial is calculated using only the conservative term.\n\nThe forces computed through the *dpd/fdt* and *dpd/fdt/energy* styles\ncan be integrated with the velocity-Verlet integration scheme or the\nShardlow splitting integration scheme described by **Lisal3**. In the cases when these pair styles are combined with the\n[fix shardlow ](https://docs.lammps.org/fix_shardlow.html), these pair styles differ from the\nother dpd styles in that the dissipative and random forces are split\nfrom the force calculation and are not computed within the pair style.\nThus, only the conservative force is computed by the pair style, while\nthe stochastic integration of the dissipative and random forces are\nhandled through the Shardlow splitting algorithm approach. The Shardlow\nsplitting algorithm is advantageous, especially when performing DPD\nunder isoenergetic conditions, as it allows significantly larger\ntimesteps to be taken.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(Lisal3)** M. Lisal, J.K. Brennan, J. Bonet Avalos, J. Chem. Phys., 135, 204105 (2011). \n \n**(Lisal3)** M. Lisal, J.K. Brennan, J. Bonet Avalos, J. Chem. Phys., 135, 204105 (2011). \n ", - "restrictions": "These commands are part of the DPD-REACT package. They are only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nPair styles *dpd/fdt* and *dpd/fdt/energy* require use of the\n[comm_modify vel yes ](https://docs.lammps.org/comm_modify.html) option so that velocities are\nstored by ghost atoms.\n\nPair style *dpd/fdt/energy* requires [atom_style dpd ](https://docs.lammps.org/atom_style.html)\nto be used in order to properly account for the particle internal\nenergies and temperatures.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix shardlow ](https://docs.lammps.org/fix_shardlow.html)\n" + "parameters": "* style = lepton\n* args = optional arguments \n *    args = auto_offset or no_offset \n     auto_offset = offset the potential energy so that the value at r0 is 0.0 (default) \n     no_offset = do not offset the potential energy \n", + "examples": "\n```lmps\nbond_style lepton\nbond_style lepton no_offset\n\nbond_coeff 1 1.5 \"k*r^2; k=250.0\"\nbond_coeff 2 1.1 \"k2*r^2 + k3*r^3 + k4*r^4; k2=300.0; k3=-100.0; k4=50.0\"\nbond_coeff 3 1.3 \"k*r^2; k=350.0\"\n```\n", + "html_filename": "bond_lepton.html", + "short_description": "\nBond style *lepton* computes bonded interactions between two atoms with\na custom function", + "description": "\nBond style *lepton* computes bonded interactions between two atoms with\na custom function. The potential function must be provided as an\nexpression string using \"r\" as the distance variable relative to the\nreference distance \\(r_0\\) which is provided as a bond coefficient.\nFor example `\"200.0*r^2\"` represents a harmonic potential with a force\nconstant *K* of 200.0 energy units:\n\\[\n U_{bond,i} = K (r_i - r_0)^2 = K r^2 \\qquad r = r_i - r_0\\]\n\nBy default the potential energy U is shifted so that he value U is 0.0\nfor $r = r_0$. This is equivalent to using the optional keyword\n*auto_offset*. When using the keyword *no_offset* instead, the\npotential energy is not shifted.\n\nThe [Lepton library](https://simtk.org/projects/lepton), that the\n*lepton* bond style interfaces with, evaluates this expression string at\nrun time to compute the pairwise energy. It also creates an analytical\nrepresentation of the first derivative of this expression with respect to\n\"r\" and then uses that to compute the force between the atom pairs forming\nbonds as defined by the topology data.\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the examples above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* Lepton expression (energy units)\n* \\(r_0\\) (distance)\n\nThe Lepton expression must be either enclosed in quotes or must not\ncontain any whitespace so that LAMMPS recognizes it as a single keyword.\nMore on valid Lepton expressions below. The \\(r_0\\) is the\n\"equilibrium distance\". The potential energy function in the Lepton\nexpression is shifted in such a way, that the potential energy is 0 for\na bond length \\(r_i == r_0\\).\n\n----------\n\n \n #### Lepton expression syntax and features\n\nLepton supports the following operators in expressions: :columns: 14\n\n * \\+\n * Add\n *\n * \\-\n * Subtract\n *\n * \\*\n * Multiply\n *\n * \\/\n * Divide\n *\n * \\^\n * Power\n\nThe following mathematical functions are available: :columns: 4\n\n * sqrt(x)\n * Square root\n * exp(x)\n * Exponential\n * log(x)\n * Natural logarithm\n * sin(x)\n * Sine (angle in radians)\n * cos(x)\n * Cosine (angle in radians)\n * sec(x)\n * Secant (angle in radians)\n * csc(x)\n * Cosecant (angle in radians)\n * tan(x)\n * Tangent (angle in radians)\n * cot(x)\n * Cotangent (angle in radians)\n * asin(x)\n * Inverse sine (in radians)\n * acos(x)\n * Inverse cosine (in radians)\n * atan(x)\n * Inverse tangent (in radians)\n * sinh(x)\n * Hyperbolic sine\n * cosh(x)\n * Hyperbolic cosine\n * tanh(x)\n * Hyperbolic tangent\n * erf(x)\n * Error function\n * erfc(x)\n * Complementary Error function\n * abs(x)\n * Absolute value\n * min(x,y)\n * Minimum of two values\n * max(x,y)\n * Maximum of two values\n * delta(x)\n * delta(x) is 1 for `x = 0`, otherwise 0\n * step(x)\n * step(x) is 0 for `x < 0`, otherwise 1\n\nNumbers may be given in either decimal or exponential form. All of the\nfollowing are valid numbers: `5`, `-3.1`, `1e6`, and `3.12e-2`.\n\nAs an extension to the standard Lepton syntax, it is also possible to\nuse LAMMPS [variables ](https://docs.lammps.org/variable.html) in the format \"v_name\". Before\nevaluating the expression, \"v_name\" will be replaced with the value of\nthe variable \"name\". This is compatible with all kinds of scalar\nvariables, but not with vectors, arrays, local, or per-atom\nvariables. If necessary, a custom scalar variable needs to be defined\nthat can access the desired (single) item from a non-scalar variable.\nAs an example, the following lines will instruct LAMMPS to ramp\nthe force constant for a harmonic bond from 100.0 to 200.0 during the\nnext run:\n variable fconst equal ramp(100.0, 200)\n bond_style lepton\n bond_coeff 1 1.5 \"v_fconst * (r^2)\"\n\nAn expression may be followed by definitions for intermediate values that appear in the\nexpression. A semicolon \";\" is used as a delimiter between value definitions. For example,\nthe expression:\n a^2+a*b+b^2; a=a1+a2; b=b1+b2\n\nis exactly equivalent to\n (a1+a2)^2+(a1+a2)*(b1+b2)+(b1+b2)^2\n\nThe definition of an intermediate value may itself involve other\nintermediate values. Whitespace and quotation characters ('\\'' and '\"')\nare ignored. All uses of a value must appear *before* that value's\ndefinition. For efficiency reasons, the expression string is parsed,\noptimized, and then stored in an internal, pre-parsed representation for\nevaluation.\n\nEvaluating a Lepton expression is typically between 2.5 and 5 times\nslower than the corresponding compiled and optimized C++ code. If\nadditional speed or GPU acceleration (via GPU or KOKKOS) is required,\nthe interaction can be represented as a table. Suitable table files\ncan be created either internally using the [pair_write ](https://docs.lammps.org/pair_write.html)\nor [bond_write ](https://docs.lammps.org/bond_write.html) command or through the Python scripts\nin the :ref:`tools/tabulate ` folder.\n\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style is part of the LEPTON package and only enabled if LAMMPS\nwas built with this package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [bond_style table ](https://docs.lammps.org/bond_table.html),\n[bond_write ](https://docs.lammps.org/bond_write.html), [angle_style lepton ](https://docs.lammps.org/angle_lepton.html),\n[dihedral_style lepton ](https://docs.lammps.org/dihedral_lepton.html)\n" }, { "command": [ - "angle_style mesocnt" + "bond_style harmonic", + "bond_style harmonic/intel", + "bond_style harmonic/kk", + "bond_style harmonic/omp" ], "syntax": [ - "angle_style mesocnt" + "bond_style harmonic" ], "args": [ [ { - "arg": "angle_style", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "mesocnt", - "type": 1, - "choices": [] + "arg": "harmonic", + "type": 3, + "choices": [ + "harmonic", + "harmonic/intel", + "harmonic/kk", + "harmonic/omp" + ] } ] ], "parameters": "", - "examples": "\n```lmps\nangle_style mesocnt\nangle_coeff 1 buckling C 10 10 20.0\nangle_coeff 4 harmonic C 8 4 10.0\nangle_coeff 2 buckling custom 400.0 50.0 5.0\nangle_coeff 1 harmonic custom 300.0\n```\n", - "html_filename": "angle_mesocnt.html", - "short_description": "\nThe *mesocnt* angle style uses the potential\n\\[\n E = K_\\text{H} \\Delta \\theta^2, \\qquad |\\Delta \\theta| < \\Delta\n \\theta_\\text{B} \\\\\n E = K_\\text{H} \\Delta \\theta_\\text{B}^2 +\n K_\\text{B} (\\Delta \\theta - \\Delta \\theta_\\text{B}), \\qquad |\\Delta\n \\theta| \\geq \\Delta \\theta_\\text{B}\\]\nwhere \\(\\Delta \\theta = \\theta - \\pi\\) is the bending angle of the\nnanotube, \\(K_\\text{H}\\) and \\(K_\\text{B}\\) are prefactors for\nthe harmonic and linear regime respectively and \\(\\Delta\n\\theta_\\text{B}\\) is the buckling angle", - "description": "\nThe *mesocnt* angle style uses the potential\n\\[\n E = K_\\text{H} \\Delta \\theta^2, \\qquad |\\Delta \\theta| < \\Delta\n \\theta_\\text{B} \\\\\n E = K_\\text{H} \\Delta \\theta_\\text{B}^2 +\n K_\\text{B} (\\Delta \\theta - \\Delta \\theta_\\text{B}), \\qquad |\\Delta\n \\theta| \\geq \\Delta \\theta_\\text{B}\\]\nwhere \\(\\Delta \\theta = \\theta - \\pi\\) is the bending angle of the\nnanotube, \\(K_\\text{H}\\) and \\(K_\\text{B}\\) are prefactors for\nthe harmonic and linear regime respectively and \\(\\Delta\n\\theta_\\text{B}\\) is the buckling angle. Note that the usual 1/2 factor\nfor the harmonic potential is included in \\(K_\\text{H}\\).\n\nThe style implements parameterization presets of \\(K_\\text{H}\\),\n\\(K_\\text{B}\\) and \\(\\Delta \\theta_\\text{B}\\) for mesoscopic\nsimulations of carbon nanotubes based on the atomistic simulations of\n**Srivastava_2** and buckling considerations of\n**Zhigilei1_1**.\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the examples above, or\nin the data file or restart files read by the [read_data](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* mode = *buckling* or *harmonic*\n* preset = *C* or *custom*\n* additional parameters depending on preset\n\nIf mode *harmonic* is chosen, the potential is simply harmonic and\ndoes not switch to the linear term when the buckling angle is\nreached. In *buckling* mode, the full piecewise potential is used.\n\nPreset *C* is for carbon nanotubes, and the additional parameters are:\n\n* chiral index \\(n\\) (unitless)\n* chiral index \\(m\\) (unitless)\n* \\(r_0\\) (distance)\n\nHere, \\(r_0\\) is the equilibrium distance of the bonds included in\nthe angle, see [bond_style mesocnt ](https://docs.lammps.org/bond_mesocnt.html).\n\nIn harmonic mode with preset *custom*, the additional parameter is:\n\n* \\(K_\\text{H}\\) (energy)\n\nHence, this setting is simply a wrapper for [bond_style harmonic](https://docs.lammps.org/bond_harmonic.html) with an equilibrium angle of 180 degrees.\n\nIn harmonic mode with preset *custom*, the additional parameters are:\n\n* \\(K_\\text{H}\\) (energy)\n* \\(K_\\text{B}\\) (energy)\n* \\(\\Delta \\theta_\\text{B}\\) (degrees)\n\n\\(\\Delta \\theta_\\text{B}\\) is specified in degrees, but LAMMPS\nconverts it to radians internally; hence \\(K_\\text{H}\\) is\neffectively energy per radian\\^2 and \\(K_\\text{B}\\) is energy per\nradian.\n\n----------\n\nIn *buckling* mode, this angle style adds the *buckled* property to\nall atoms in the simulation, which is an integer flag indicating\nwhether the bending angle at a given atom has exceeded \\(\\Delta\n\\theta_\\text{B}\\). It can be accessed as an atomic variable, e.g. for\ncustom dump commands, as *i_buckled*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If the initial state of the simulation contains buckled nanotubes\n > and [pair_style mesocnt ](https://docs.lammps.org/pair_mesocnt.html) is used, the\n > *i_buckled* atomic variable needs to be initialized before the\n > pair_style is defined by doing a *run 0* command straight after the\n > angle_style command. See below for an example. \n > \n\nIf CNTs are already buckled at the start of the simulation, this\nscript will correctly initialize *i_buckled*:\n\n```lmps\nangle_style mesocnt\nangle_coeff 1 buckling C 10 10 20.0\n\nrun 0\n\npair_style mesocnt 60.0\npair_coeff * * C_10_10.mesocnt 1\n```\n\n**(Srivastava_2)** Zhigilei, Wei, Srivastava, Phys. Rev. B 71, 165417\n(2005). \n \n**(Zhigilei1_1)** Volkov and Zhigilei, ACS Nano 4, 6187 (2010). \n ", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nMOLECULE and MESONT packages. See the [Build package](https://docs.lammps.org/Build_package.html) doc page for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "examples": "\n```lmps\nbond_style harmonic\nbond_coeff 5 80.0 1.2\n```\n", + "html_filename": "bond_harmonic.html", + "short_description": "The *harmonic* bond style uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", + "description": "The *harmonic* bond style uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the usual 1/2\nfactor is included in \\(K\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "angle_style quartic", - "angle_style quartic/omp" + "pair_style yukawa/colloid", + "pair_style yukawa/colloid/gpu", + "pair_style yukawa/colloid/kk", + "pair_style yukawa/colloid/omp" ], "syntax": [ - "angle_style quartic" + "pair_style yukawa/colloid kappa cutoff" ], "args": [ [ { - "arg": "angle_style", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "quartic", + "arg": "yukawa/colloid", "type": 3, "choices": [ - "quartic", - "quartic/omp" + "yukawa/colloid", + "yukawa/colloid/gpu", + "yukawa/colloid/kk", + "yukawa/colloid/omp" ] + }, + { + "arg": "kappa", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\nangle_style quartic\nangle_coeff 1 129.1948 56.8726 -25.9442 -14.2221\n```\n", - "html_filename": "angle_quartic.html", - "short_description": "The *quartic* angle style uses the potential\n\\[\n E = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4 (\\theta - \\theta_0)^4\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor", - "description": "The *quartic* angle style uses the potential\n\\[\n E = K_2 (\\theta - \\theta_0)^2 + K_3 (\\theta - \\theta_0)^3 + K_4 (\\theta - \\theta_0)^4\\]\nwhere \\(\\theta_0\\) is the equilibrium value of the angle, and \\(K\\) is a\nprefactor. Note that the usual 1/2 factor is included in \\(K\\).\n\nThe following coefficients must be defined for each angle type via the\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(\\theta_0\\) (degrees)\n* \\(K_2\\) (energy)\n* \\(K_3\\) (energy)\n* \\(K_4\\) (energy)\n\n\\(\\theta_0\\) is specified in degrees, but LAMMPS converts it to\nradians internally; hence the various \\(K\\) are effectively energy\nper radian\\^2 or radian\\^3 or radian\\^4.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This angle style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[angle_coeff ](https://docs.lammps.org/angle_coeff.html)\n" + "parameters": "* kappa = screening length (inverse distance units)\n* cutoff = global cutoff for colloidal Yukawa interactions (distance units) \n", + "examples": "\n```lmps\npair_style yukawa/colloid 2.0 2.5\npair_coeff 1 1 100.0 2.3\npair_coeff * * 100.0\n```\n", + "html_filename": "pair_yukawa_colloid.html", + "short_description": "Style *yukawa/colloid* computes pairwise interactions with the formula\n\\[\n E = \\frac{A}{\\kappa} e^{- \\kappa (r - (r_i + r_j))} \\qquad r < r_c\\]\nwhere \\(r_i\\) and \\(r_j\\) are the radii of the two particles\nand \\(r_c\\) is the cutoff", + "description": "Style *yukawa/colloid* computes pairwise interactions with the formula\n\\[\n E = \\frac{A}{\\kappa} e^{- \\kappa (r - (r_i + r_j))} \\qquad r < r_c\\]\nwhere \\(r_i\\) and \\(r_j\\) are the radii of the two particles\nand \\(r_c\\) is the cutoff.\n\nIn contrast to [pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html), this functional\nform arises from the Coulombic interaction between two colloid\nparticles, screened due to the presence of an electrolyte, see the\nbook by **Safran** for a derivation in the context of DLVO\ntheory. [Pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html) is a screened Coulombic\npotential between two point-charges and uses no such approximation.\n\nThis potential applies to nearby particle pairs for which the Derjagin\napproximation holds, meaning \\(h << r_i + r_j\\), where *h* is the\nsurface-to-surface separation of the two particles.\n\nWhen used in combination with [pair_style colloid ](https://docs.lammps.org/pair_colloid.html),\nthe two terms become the so-called DLVO potential, which combines\nelectrostatic repulsion and van der Waals attraction.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* A (energy/distance units)\n* cutoff (distance units)\n\nThe prefactor A is determined from the relationship between surface\ncharge and surface potential due to the presence of electrolyte. Note\nthat the A for this potential style has different units than the A\nused in [pair_style yukawa ](https://docs.lammps.org/pair_yukawa.html). For low surface\npotentials, i.e. less than about 25 mV, A can be written as:\n\\[\n A = 2 \\pi R\\varepsilon\\varepsilon_0 \\kappa \\psi^2\\]\nwhere\n\n* *R* = colloid radius (distance units)\n* \\(\\varepsilon_0\\) = permittivity of free space (charge\\^2/energy/distance units)\n* \\(\\varepsilon\\) = relative permittivity of fluid medium (dimensionless)\n* \\(\\kappa\\) = inverse screening length (1/distance units)\n* \\(\\psi\\) = surface potential (energy/charge units)\n\nThe last coefficient is optional. If not specified, the global\nyukawa/colloid cutoff is used.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the A coefficient and cutoff\ndistance for this pair style can be mixed. A is an energy value mixed\nlike a LJ epsilon. The default mix value is *geometric* . See the\n\"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor this pair style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Safran)** Safran, Statistical Thermodynamics of Surfaces, Interfaces,\nAnd Membranes, Westview Press, ISBN: 978-0813340791 (2003). \n ", + "restrictions": "This style is part of the COLLOID package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires that atoms be finite-size spheres with a\ndiameter, as defined by the [atom_style sphere ](https://docs.lammps.org/atom_style.html)\ncommand.\n\nPer-particle polydispersity is not yet supported by this pair style;\nper-type polydispersity is allowed. This means all particles of the\nsame type must have the same diameter. Each type can have a different\ndiameter.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "dihedral_style nharmonic", - "dihedral_style nharmonic/omp" + "kspace_style" ], "syntax": [ - "dihedral_style nharmonic" + "kspace_style style value" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "kspace_style", "type": 1, "choices": [] }, { - "arg": "nharmonic", + "arg": "scafacos", "type": 3, "choices": [ - "nharmonic", - "nharmonic/omp" + "none", + "ewald", + "ewald/dipole", + "ewald/dipole/spin", + "ewald/disp", + "ewald/disp/dipole", + "ewald/omp", + "ewald/electrode", + "pppm", + "pppm/cg", + "pppm/disp", + "pppm/tip4p", + "pppm/stagger", + "pppm/disp/tip4p", + "pppm/gpu", + "pppm/intel", + "pppm/disp/intel", + "pppm/kk", + "pppm/omp", + "pppm/cg/omp", + "pppm/disp/tip4p/omp", + "pppm/tip4p/omp", + "pppm/dielectic", + "pppm/disp/dielectric", + "pppm/electrode", + "pppm/electrode/intel", + "msm", + "msm/cg", + "msm/omp", + "msm/cg/omp", + "msm/dielectric", + "scafacos" ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style nharmonic\ndihedral_coeff * 3 10.0 20.0 30.0\n```\n", - "html_filename": "dihedral_nharmonic.html", - "short_description": "The *nharmonic* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,n} A_i \\cos^{i-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* ..", - "description": "The *nharmonic* dihedral style uses the potential:\n\\[\n E = \\sum_{i=1,n} A_i \\cos^{i-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(n\\) (integer >=1)\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* ...\n* \\(A_n\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" + "parameters": "* style = none or ewald or ewald/dipole or ewald/dipole/spin or ewald/disp or ewald/disp/dipole or ewald/omp or ewald/electrode or pppm or pppm/cg or pppm/disp or pppm/tip4p or pppm/stagger or pppm/disp/tip4p or pppm/gpu or pppm/intel or pppm/disp/intel or pppm/kk or pppm/omp or pppm/cg/omp or pppm/disp/tip4p/omp or pppm/tip4p/omp or pppm/dielectic or pppm/disp/dielectric or pppm/electrode or pppm/electrode/intel or msm or msm/cg or msm/omp or msm/cg/omp or msm/dielectric or scafacos \n *        none value = none \n *        ewald value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/dipole value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/dipole/spin value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/disp value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/disp/dipole value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/omp value = accuracy \n         accuracy = desired relative error in forces \n *        ewald/electrode value = accuracy \n         accuracy = desired relative error in forces \n *        pppm value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/cg values = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        *pppm/dipole* value = accuracy \n         accuracy = desired relative error in forces \n *        *pppm/dipole/spin* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/tip4p value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/tip4p value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/gpu value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/intel value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/intel value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/kk value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/cg/omp values = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        *pppm/disp/omp* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/tip4p/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/tip4p/omp value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/stagger value = accuracy \n         accuracy = desired relative error in forces \n *        *pppm/dielectric* value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/disp/dielectric value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/electrode value = accuracy \n         accuracy = desired relative error in forces \n *        pppm/electrode/intel value = accuracy \n         accuracy = desired relative error in forces \n *        msm value = accuracy \n         accuracy = desired relative error in forces \n *        msm/cg value = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        msm/omp value = accuracy \n         accuracy = desired relative error in forces \n *        msm/cg/omp value = accuracy (smallq) \n         accuracy = desired relative error in forces \n         smallq = cutoff for charges to be considered (optional) (charge units) \n *        msm/dielectric value = accuracy \n         accuracy = desired relative error in forces \n *        scafacos values = method accuracy \n         method = fmm or p2nfft or p3m or ewald or direct \n         accuracy = desired relative error in forces \n", + "examples": "\n```lmps\nkspace_style pppm 1.0e-4\nkspace_style pppm/cg 1.0e-5 1.0e-6\nkspace_style msm 1.0e-4\nkspace_style scafacos fmm 1.0e-4\nkspace_style none\n```\nUsed in input scripts:\n\n```\nexamples/peptide/in.peptide\n```\n", + "html_filename": "kspace_style.html", + "short_description": "Define a long-range solver for LAMMPS to use each timestep to compute\nlong-range Coulombic interactions or long-range \\(1/r^6\\) interactions", + "description": "Define a long-range solver for LAMMPS to use each timestep to compute\nlong-range Coulombic interactions or long-range \\(1/r^6\\) interactions.\nMost of the long-range solvers perform their computation in K-space,\nhence the name of this command.\n\nWhen such a solver is used in conjunction with an appropriate pair\nstyle, the cutoff for Coulombic or \\(1/r^N\\) interactions is effectively\ninfinite. If the Coulombic case, this means each charge in the system\ninteracts with charges in an infinite array of periodic images of the\nsimulation domain.\n\nNote that using a long-range solver requires use of a matching [pair style ](https://docs.lammps.org/pair_style.html) to perform consistent short-range pairwise\ncalculations. This means that the name of the pair style contains a\nmatching keyword to the name of the KSpace style, as in this table:\n\n| | |\n|---|---|\n| Pair style | KSpace style |\n| coul/long | ewald or pppm |\n| coul/msm | msm |\n| lj/long or buck/long | disp (for dispersion) |\n| tip4p/long | tip4p |\n| dipole/long | dipole |\n\n----------\n\nThe *ewald* style performs a standard Ewald summation as described in\nany solid-state physics text.\n\nThe *ewald/disp* style adds a long-range dispersion sum option for\n\\(1/r^6\\) potentials and is useful for simulation of interfaces\n**Veld**. It also performs standard Coulombic Ewald summations,\nbut in a more efficient manner than the *ewald* style. The \\(1/r^6\\)\ncapability means that Lennard-Jones or Buckingham potentials can be\nused without a cutoff, i.e. they become full long-range potentials.\n\nThe *ewald/disp/dipole* style can also be used with point-dipoles, see\n**Toukmaji**.\n\nThe *ewald/dipole* style adds long-range standard Ewald summations\nfor dipole-dipole interactions, see **Toukmaji**.\n\nThe *ewald/dipole/spin* style adds long-range standard Ewald\nsummations for magnetic dipole-dipole interactions between\nmagnetic spins.\n\n----------\n\nThe *pppm* style invokes a particle-particle particle-mesh solver\n**Hockney** which maps atom charge to a 3d mesh, uses 3d FFTs\nto solve Poisson's equation on the mesh, then interpolates electric\nfields on the mesh points back to the atoms. It is closely related to\nthe particle-mesh Ewald technique (PME) **Darden** used in\nAMBER and CHARMM. The cost of traditional Ewald summation scales as\n\\(N^{\\frac{3}{2}}\\) where \\(N\\) is the number of atoms in the system. The PPPM solver\nscales as \\(N \\log{N}\\) due to the FFTs, so it is almost always a faster\nchoice **Pollock**.\n\nThe *pppm/cg* style is identical to the *pppm* style except that it\nhas an optimization for systems where most particles are uncharged.\nSimilarly the *msm/cg* style implements the same optimization for *msm* .\nThe optional *smallq* argument defines the cutoff for the absolute\ncharge value which determines whether a particle is considered charged\nor not. Its default value is 1.0e-5.\n\nThe *pppm/dipole* style invokes a particle-particle particle-mesh solver\nfor dipole-dipole interactions, following the method of **Cerda2008**.\n\nThe *pppm/dipole/spin* style invokes a particle-particle particle-mesh solver\nfor magnetic dipole-dipole interactions between magnetic spins.\n\nThe *pppm/tip4p* style is identical to the *pppm* style except that it\nadds a charge at the massless fourth site in each TIP4P water molecule.\nIt should be used with [pair styles ](https://docs.lammps.org/pair_style.html) with a\n*tip4p/long* in their style name.\n\nThe *pppm/stagger* style performs calculations using two different\nmeshes, one shifted slightly with respect to the other. This can\nreduce force aliasing errors and increase the accuracy of the method\nfor a given mesh size. Or a coarser mesh can be used for the same\ntarget accuracy, which saves CPU time. However, there is a trade-off\nsince FFTs on two meshes are now performed which increases the\ncomputation required. See **Cerutti**, **Neelov**,\nand **Hockney** for details of the method.\n\nFor high relative accuracy, using staggered PPPM allows the mesh size\nto be reduced by a factor of 2 in each dimension as compared to\nregular PPPM (for the same target accuracy). This can give up to a 4x\nspeedup in the KSpace time (8x less mesh points, 2x more expensive).\nHowever, for low relative accuracy, the staggered PPPM mesh size may\nbe essentially the same as for regular PPPM, which means the method\nwill be up to 2x slower in the KSpace time (simply 2x more expensive).\nFor more details and timings, see the [Speed tips ](https://docs.lammps.org/Speed_tips.html) doc\npage.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Using *pppm/stagger* may not give the same increase in the\n > accuracy of energy and pressure as it does in forces, so some caution\n > must be used if energy and/or pressure are quantities of interest,\n > such as when using a barostat. \n > \n\n----------\n\nThe *pppm/disp* and *pppm/disp/tip4p* styles add a mesh-based long-range\ndispersion sum option for 1/r\\^6 potentials **Isele-Holder2012**,\nsimilar to the *ewald/disp* style. The 1/r\\^6 capability means\nthat Lennard-Jones or Buckingham potentials can be used without a cutoff,\ni.e. they become full long-range potentials.\n\nFor these styles, you will possibly want to adjust the default choice\nof parameters by using the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) command.\nThis can be done by either choosing the Ewald and grid parameters, or\nby specifying separate accuracies for the real and kspace\ncalculations. When not making any settings, the simulation will stop\nwith an error message. Further information on the influence of the\nparameters and how to choose them is described in\n**Isele-Holder2012**,\n**Isele-Holder2013** and the [Howto dispersion ](https://docs.lammps.org/Howto_dispersion.html) doc page.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >All of the PPPM styles can be used with single-precision FFTs by\n > using the compiler switch -DFFT_SINGLE for the FFT_INC setting in your\n > low-level Makefile. This setting also changes some of the PPPM\n > operations (e.g. mapping charge to mesh and interpolating electric\n > fields to particles) to be performed in single precision. This option\n > can speed-up long-range calculations, particularly in parallel or on\n > GPUs. The use of the -DFFT_SINGLE flag is discussed on the [Build settings ](https://docs.lammps.org/Build_settings.html) doc page. MSM does not currently support\n > the -DFFT_SINGLE compiler switch. \n > \n\n----------\n\nThe *electrode* styles add methods that are required for the constant potential\nmethod implemented in [fix electrode/* ](https://docs.lammps.org/fix_electrode.html). The styles\n*ewald/electrode*, *pppm/electrode* and *pppm/electrode/intel* are available.\nThese styles do not support the `kspace_modify slab nozforce` command.\n\n----------\n\nThe *msm* style invokes a multi-level summation method MSM solver,\n**Hardy2006** or **Hardy2009**, which maps atom charge\nto a 3d mesh, and uses a multi-level hierarchy of coarser and coarser\nmeshes on which direct Coulomb solvers are done. This method does not\nuse FFTs and scales as \\(N\\). It may therefore be faster than the other\nK-space solvers for relatively large problems when running on large\ncore counts. MSM can also be used for non-periodic boundary conditions\nand for mixed periodic and non-periodic boundaries.\n\nMSM is most competitive versus Ewald and PPPM when only relatively\nlow accuracy forces, about 1e-4 relative error or less accurate,\nare needed. Note that use of a larger Coulombic cutoff (i.e. 15\nAngstroms instead of 10 Angstroms) provides better MSM accuracy for\nboth the real space and grid computed forces.\n\nCurrently calculation of the full pressure tensor in MSM is expensive.\nUsing the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) *pressure/scalar yes*\ncommand provides a less expensive way to compute the scalar pressure\n(Pxx + Pyy + Pzz)/3.0. The scalar pressure can be used, for example,\nto run an isotropic barostat. If the full pressure tensor is needed,\nthen calculating the pressure at every timestep or using a fixed\npressure simulation with MSM will cause the code to run slower.\n\n----------\n\nThe *scafacos* style is a wrapper on the `ScaFaCoS Coulomb solver\nlibrary `_ which provides a variety of solver\nmethods which can be used with LAMMPS. The paper by **Sutmann2014** gives an overview of ScaFaCoS.\n\nScaFaCoS was developed by a consortium of German research facilities\nwith a BMBF (German Ministry of Science and Education) funded project\nin 2009-2012. Participants of the consortium were the Universities of\nBonn, Chemnitz, Stuttgart, and Wuppertal as well as the\nForschungszentrum Juelich.\n\nThe library is available for download at \"http://scafacos.de\" or can\nbe cloned from the git-repository\n\"https://github.com/scafacos/scafacos.git\".\n\nIn order to use this KSpace style, you must download and build the\nScaFaCoS library, then build LAMMPS with the SCAFACOS package\ninstalled package which links LAMMPS to the ScaFaCoS library.\nSee details on :ref:`this page `.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all\n > Coulombic interactions, both short- and long-range. Thus you should\n > NOT use a Coulombic pair style when using kspace_style scafacos. This\n > also means the total Coulombic energy (short- and long-range) will be\n > tallied for [thermodynamic output ](https://docs.lammps.org/thermo_style.html) command as part\n > of the *elong* keyword; the *ecoul* keyword will be zero. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >See the current restriction below about use of ScaFaCoS in\n > LAMMPS with molecular charged systems or the TIP4P water model. \n > \n\nThe specified *method* determines which ScaFaCoS algorithm is used.\nThese are the ScaFaCoS methods currently available from LAMMPS:\n\n* *fmm* = Fast Multi-Pole method\n* *p2nfft* = FFT-based Coulomb solver\n* *ewald* = Ewald summation\n* *direct* = direct O(N\\^2) summation\n* *p3m* = PPPM\n\nWe plan to support additional ScaFaCoS solvers from LAMMPS in the\nfuture. For an overview of the included solvers, refer to\n**Sutmann2013**\n\nThe specified *accuracy* is similar to the accuracy setting for other\nLAMMPS KSpace styles, but is passed to ScaFaCoS, which can interpret\nit in different ways for different methods it supports. Within the\nScaFaCoS library the *accuracy* is treated as a tolerance level\n(either absolute or relative) for the chosen quantity, where the\nquantity can be either the Columic field values, the per-atom Columic\nenergy or the total Columic energy. To select from these options, see\nthe [kspace_modify scafacos accuracy ](https://docs.lammps.org/kspace_modify.html) doc page.\n\nThe [kspace_modify scafacos ](https://docs.lammps.org/kspace_modify.html) command also explains\nother ScaFaCoS options currently exposed to LAMMPS.\n\n----------\n\nThe specified *accuracy* determines the relative RMS error in per-atom\nforces calculated by the long-range solver. It is set as a\ndimensionless number, relative to the force that two unit point\ncharges (e.g. 2 monovalent ions) exert on each other at a distance of\n1 Angstrom. This reference value was chosen as representative of the\nmagnitude of electrostatic forces in atomic systems. Thus an accuracy\nvalue of 1.0e-4 means that the RMS error will be a factor of 10000\nsmaller than the reference force.\n\nThe accuracy setting is used in conjunction with the pairwise cutoff\nto determine the number of K-space vectors for style *ewald* or the\ngrid size for style *pppm* or *msm* .\n\nNote that style *pppm* only computes the grid size at the beginning of\na simulation, so if the length or triclinic tilt of the simulation\ncell increases dramatically during the course of the simulation, the\naccuracy of the simulation may degrade. Likewise, if the\n[kspace_modify slab ](https://docs.lammps.org/kspace_modify.html) option is used with\nshrink-wrap boundaries in the z-dimension, and the box size changes\ndramatically in z. For example, for a triclinic system with all three\ntilt factors set to the maximum limit, the PPPM grid should be\nincreased roughly by a factor of 1.5 in the y direction and 2.0 in the\nz direction as compared to the same system using a cubic orthogonal\nsimulation cell. One way to handle this issue if you have a long\nsimulation where the box size changes dramatically, is to break it\ninto shorter simulations (multiple [run ](https://docs.lammps.org/run.html) commands). This\nworks because the grid size is re-computed at the beginning of each\nrun. Another way to ensure the described accuracy requirement is met\nis to run a short simulation at the maximum expected tilt or length,\nnote the required grid size, and then use the\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html) *mesh* command to manually set the\nPPPM grid size to this value for the long run. The simulation then\nwill be \"too accurate\" for some portion of the run.\n\nRMS force errors in real space for *ewald* and *pppm* are estimated\nusing equation 18 of **Kolafa**, which is also referenced as\nequation 9 of **Petersen**. RMS force errors in K-space for\n*ewald* are estimated using equation 11 of **Petersen**,\nwhich is similar to equation 32 of **Kolafa**. RMS force\nerrors in K-space for *pppm* are estimated using equation 38 of\n**Deserno**. RMS force errors for *msm* are estimated\nusing ideas from chapter 3 of **Hardy2006**, with equation 3.197\nof particular note. When using *msm* with non-periodic boundary\nconditions, it is expected that the error estimation will be too\npessimistic. RMS force errors for dipoles when using *ewald/disp*\nor *ewald/dipole* are estimated using equations 33 and 46 of\n**Wang**. The RMS force errors for *pppm/dipole* are estimated\nusing the equations in **Cerda2008**.\n\nSee the [kspace_modify ](https://docs.lammps.org/kspace_modify.html) command for additional\noptions of the K-space solvers that can be set, including a *force*\noption for setting an absolute RMS error in forces, as opposed to a\nrelative RMS error.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the GPU package, the *pppm/gpu* style performs charge assignment\n > and force interpolation calculations on the GPU. These processes\n > are performed either in single or double precision, depending on\n > whether the -DFFT_SINGLE setting was specified in your low-level\n > Makefile, as discussed above. The FFTs themselves are still\n > calculated on the CPU. If *pppm/gpu* is used with a GPU-enabled\n > pair style, part of the PPPM calculation can be performed\n > concurrently on the GPU while other calculations for non-bonded and\n > bonded force calculation are performed on the CPU. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For the KOKKOS package, the *pppm/kk* style performs charge\n > assignment and force interpolation calculations, along with the FFTs\n > themselves, on the GPU or (optionally) threaded on the CPU when\n > using OpenMP and FFTW3. The specific FFT library is selected using\n > the FFT_KOKKOS CMake parameter. See the\n > [Build settings ](https://docs.lammps.org/Build_settings.html) doc page for how to select a\n > 3rd-party FFT library. \n > \n\n----------\n\n**(Veld)** In 't Veld, Ismail, Grest, J Chem Phys, 127, 144711 (2007). \n \n**(Toukmaji)** Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,\n10913 (2000). \n \n**(Hockney)** Hockney and Eastwood, Computer Simulation Using Particles,\nAdam Hilger, NY (1989). \n \n**(Darden)** Darden, York, Pedersen, J Chem Phys, 98, 10089 (1993). \n \n**(Pollock)** Pollock and Glosli, Comp Phys Comm, 95, 93 (1996). \n \n**(Cerda2008)** Cerda, Ballenegger, Lenz, Holm, J Chem Phys 129, 234104 (2008) \n \n**(Cerutti)** Cerutti, Duke, Darden, Lybrand, Journal of Chemical Theory\nand Computation 5, 2322 (2009) \n \n**(Neelov)** Neelov, Holm, J Chem Phys 132, 234103 (2010) \n \n**(Isele-Holder2012)** Isele-Holder, Mitchell, Ismail, J Chem Phys, 137,\n174107 (2012). \n \n**(Isele-Holder2013)** Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail,\nJ Chem Theory Comput 9, 5412 (2013). \n \n**(Hardy2006)** David Hardy thesis: Multilevel Summation for the Fast\nEvaluation of Forces for the Simulation of Biomolecules, University of\nIllinois at Urbana-Champaign, (2006). \n \n**(Hardy2009)** Hardy, Stone, Schulten, Parallel Computing, 35, 164-177\n(2009). \n \n**(Sutmann2014)** G. Sutmann. ScaFaCoS - a Scalable library of Fast Coulomb Solvers for particle Systems.\n In Bajaj, Zavattieri, Koslowski, Siegmund, Proceedings of the Society of Engineering Science 51st Annual Technical Meeting. 2014. \n \n**(Sutmann2013)** Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013) \n \n**(Kolafa)** Kolafa and Perram, Molecular Simulation, 9, 351 (1992). \n \n**(Petersen)** Petersen, J Chem Phys, 103, 3668 (1995). \n \n**(Deserno)** Deserno and Holm, J Chem Phys, 109, 7694 (1998). \n \n**(Wang)** Wang and Holm, J Chem Phys, 115, 6277 (2001). \n ", + "restrictions": "Note that the long-range electrostatic solvers in LAMMPS assume conducting\nmetal (tinfoil) boundary conditions for both charge and dipole\ninteractions. Vacuum boundary conditions are not currently supported.\n\nThe *ewald/disp*, *ewald*, *pppm*, and *msm* styles support\nnon-orthogonal (triclinic symmetry) simulation boxes. However,\ntriclinic simulation cells may not yet be supported by all suffix\nversions of these styles.\n\nMost of the base kspace styles are part of the KSPACE package. They are\nonly enabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe *msm/dielectric* and *pppm/dielectric* kspace styles are part of the\nDIELECTRIC package. They are only enabled if LAMMPS was built with\nthat package **and** the KSPACE package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nFor MSM, a simulation must be 3d and one can use any combination of\nperiodic, non-periodic, but not shrink-wrapped boundaries (specified\nusing the [boundary ](https://docs.lammps.org/boundary.html) command).\n\nFor Ewald and PPPM, a simulation must be 3d and periodic in all\ndimensions. The only exception is if the slab option is set with\n[kspace_modify ](https://docs.lammps.org/kspace_modify.html), in which case the xy dimensions\nmust be periodic and the z dimension must be non-periodic.\n\nThe scafacos KSpace style will only be enabled if LAMMPS is built with\nthe SCAFACOS package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n\nThe use of ScaFaCos in LAMMPS does not yet support molecular charged\nsystems where the short-range Coulombic interactions between atoms in\nthe same bond/angle/dihedral are weighted by the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command. Likewise it does not\nsupport the \"TIP4P water style\" where a fictitious charge site is\nintroduced in each water molecule.\nFinally, the methods *p3m* and *ewald* do not support computing the\nvirial, so this contribution is not included.\n", + "related": "[kspace_modify ](https://docs.lammps.org/kspace_modify.html), [pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html), [pair_style lj/charmm/coul/long ](https://docs.lammps.org/pair_charmm.html), [pair_style lj/long/coul/long ](https://docs.lammps.org/pair_lj_long.html), [pair_style buck/coul/long ](https://docs.lammps.org/pair_buck.html)\n" }, { "command": [ - "pair_style sdpd/taitwater/isothermal" + "fix_modify AtC control localized_lambda" ], "syntax": [ - "pair_style sdpd/taitwater/isothermal temperature viscosity seed" + "fix_modify control localized_lambda " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "sdpd/taitwater/isothermal", - "type": 1, + "arg": "", + "type": 2, "choices": [] }, { - "arg": "temperature", - "type": 2, + "arg": "control", + "type": 1, "choices": [] }, { - "arg": "viscosity", - "type": 2, + "arg": "localized_lambda", + "type": 1, "choices": [] }, { - "arg": "seed", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "off" + ] } ] ], - "parameters": "* temperature = temperature of the fluid (temperature units)\n* viscosity = dynamic viscosity of the fluid (mass\\*distance/time units)\n* seed = random number generator seed (positive integer, optional) \n", - "examples": "\n```lmps\npair_style sdpd/taitwater/isothermal 300. 1. 28681\npair_coeff * * 1000.0 1430.0 2.4\n```\n", - "html_filename": "pair_sdpd_taitwater_isothermal.html", - "short_description": "The sdpd/taitwater/isothermal style computes forces between mesoscopic\nparticles according to the Smoothed Dissipative Particle Dynamics model\ndescribed in this paper by **Espanol_Revenga** under\nthe following assumptions:\n\n#", - "description": "The sdpd/taitwater/isothermal style computes forces between mesoscopic\nparticles according to the Smoothed Dissipative Particle Dynamics model\ndescribed in this paper by **Espanol_Revenga** under\nthe following assumptions:\n\n#. The temperature is constant and uniform.\n#. The shear viscosity is constant and uniform.\n#. The volume viscosity is negligible before the shear viscosity.\n#. The Boltzmann constant is negligible before the heat capacity of a\n single mesoscopic particle of fluid.\n\nThe third assumption is true for water in nearly incompressible flows.\nThe fourth holds true for water for any reasonable size one can\nimagine for a mesoscopic particle.\n\nThe pressure forces between particles will be computed according to\nTait's equation of state:\n\\[\n p = B \\left[(\\frac{\\rho}{\\rho_0})^{\\gamma} - 1\\right]\\]\nwhere \\(\\gamma = 7\\) and \\(B = c_0^2 \\rho_0 / \\gamma\\), with\n\\(\\rho_0\\) being the reference density and \\(c_0\\) the reference\nspeed of sound.\n\nThe laminar viscosity and the random forces will be computed according\nto formulas described in **Espanol_Revenga**.\n\n> ### ![Warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjZmY3ZjAwIiBpZD0ic3ZnXzIiIGQ9Im0xMi43NTkzODQsNS45NDYyNDFsMTAuNTI3NDkzLDE2LjUzNTgyYzAuMzE2ODA3LDAuNDk4MDI0IDAuNTkwMjQ0LDEuNTE3OTM5IDAsMS41MTc5MzlsLTIyLjU3MzQ5NiwwYy0wLjU5MDQzNywwIC0wLjMxNzM3NCwtMS4wMTk5MTUgMCwtMS41MTc5MzlsMTAuNTI3NDk0LC0xNi41MzU4MmMwLjMxNzE4NCwtMC40OTgwMjcgMS4yMDExMzQsLTAuNDk3NjQ5IDEuNTE4NTA5LDBsMCwwem0tMS42ODAwMzcsMTMuNjY3MTQ3bDEuODMzNDIyLDBsMCwxLjYyMTE0M2wtMS44MzM0MjIsMGwwLC0xLjYyMTE0M2wwLDB6bTEuODMyMjg1LC0xLjEyMjczOGwtMS44MzE5MDUsMGMtMC4xODI1NDcsLTIuMjI2MTYyIC0wLjU2NDY4NCwtMy42Mzg4MTYgLTAuNTY0Njg0LC01Ljg2MTc1N2MwLC0wLjgyMDEzNiAwLjY2NDY2NywtMS40ODQ5OTIgMS40ODQ4MDIsLTEuNDg0OTkyYzAuODIwMzI2LDAgMS40ODQ5OTEsMC42NjQ4NTYgMS40ODQ5OTEsMS40ODQ5OTJjMC4wMDAxODksMi4yMjE5OTMgLTAuMzg3MjQ5LDMuNjM3NDg3IC0wLjU3MzIwNCw1Ljg2MTc1N2wwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Warning: \n >Similar to [brownian ](https://docs.lammps.org/pair_brownian.html) and\n > [dpd ](https://docs.lammps.org/pair_dpd.html) styles, the [newton ](https://docs.lammps.org/newton.html) setting for\n > pairwise interactions needs to be on when running LAMMPS in parallel\n > if you want to ensure linear momentum conservation. Otherwise random\n > forces generated for pairs straddling processor boundary will not be\n > equal and opposite. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The actual random seed used will be a mix of what you specify\n > and other parameters like the MPI ranks. This is to ensure that\n > different MPI tasks have distinct seeds. \n > \n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove.\n\n* \\(\\rho_0\\) reference density (mass/volume units)\n* \\(c_0\\) reference soundspeed (distance/time units)\n* h kernel function cutoff (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need to re-specify the pair_style and\npair_coeff commands in an input script that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the *inner*,\n*middle*, *outer* keywords.\n\n**(Espanol_Revenga)** Espanol, Revenga, Physical Review E, 67, 026705 (2003). \n ", - "restrictions": "This pair style is part of the DPD-SMOOTH package. It is only enabled\nif LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair coeff ](https://docs.lammps.org/pair_coeff.html), [pair sph/rhosum ](https://docs.lammps.org/pair_sph_rhosum.html),\n[pair sph/taitwater ](https://docs.lammps.org/pair_sph_taitwater.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control localized_lambda = name of the AtC sub-command\n* on or off = Toggles state of localization algorithm \n", + "examples": "\n```lmps\nfix_modify AtC control localized_lambda on\n```\n", + "html_filename": "atc_control_localized_lambda.html", + "short_description": "Turns the localization algorithms *on* or *off* for control algorithms\nto restrict the influence of FE coupling or boundary conditions to a\nregion near the boundary of the MD region", + "description": "Turns the localization algorithms *on* or *off* for control algorithms\nto restrict the influence of FE coupling or boundary conditions to a\nregion near the boundary of the MD region. Control algorithms will not\naffect atoms in elements not possessing faces on the boundary of the\nregion. Flux-based control is localized via row-sum lumping while\nquantity control is done by solving a truncated matrix equation.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "compute vacf" + "pair_style dpd", + "pair_style dpd/gpu", + "pair_style dpd/intel", + "pair_style dpd/kk", + "pair_style dpd/omp", + "pair_style dpd/tstat", + "pair_style dpd/tstat/gpu", + "pair_style dpd/tstat/kk", + "pair_style dpd/tstat/omp" ], "syntax": [ - "compute ID group-ID vacf" + "pair_style dpd T cutoff seed", + "pair_style dpd/tstat Tstart Tstop cutoff seed" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dpd", + "type": 3, + "choices": [ + "dpd", + "dpd/gpu", + "dpd/intel", + "dpd/kk", + "dpd/omp" + ] + }, + { + "arg": "T", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "cutoff", "type": 2, "choices": [] }, { - "arg": "vacf", - "type": 1, + "arg": "seed", + "type": 2, "choices": [] } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* vacf = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all vacf\ncompute 1 upper vacf\n```\n", - "html_filename": "compute_vacf.html", - "short_description": "Define a computation that calculates the velocity auto-correlation\nfunction (VACF), averaged over a group of atoms", - "description": "Define a computation that calculates the velocity auto-correlation\nfunction (VACF), averaged over a group of atoms. Each atom's\ncontribution to the VACF is its current velocity vector dotted into\nits initial velocity vector at the time the compute was specified.\n\nA vector of four quantities is calculated by this compute. The first three\nelements of the vector are \\(v_x v_{x,0}\\) (and similar for the\n\\(y\\) and \\(z\\) components), summed and averaged over atoms in the\ngroup, where \\(v_x\\) is the current \\(x\\)-component of the velocity of\nthe atom and \\(v_{x,0}\\) is the initial \\(x\\)-component of the velocity\nof the atom. The fourth element of the vector is the total VACF\n(i.e., \\((v_x v_{x,0} + v_y v_{y,0} + v_z v_{z,0})\\)),\nsummed and averaged over atoms in the group.\n\nThe integral of the VACF versus time is proportional to the diffusion\ncoefficient of the diffusing atoms. This can be computed in the\nfollowing manner, using the [variable trap() ](https://docs.lammps.org/variable.html) function:\n\n```lmps\ncompute 2 all vacf\nfix 5 all vector 1 c_2[4]\nvariable diff equal dt*trap(f_5)\nthermo_style custom step v_diff\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the quantities calculated by this compute to be\n > continuous when running from a [restart file ](https://docs.lammps.org/read_restart.html), then\n > you should use the same ID for this compute, as in the original run.\n > This is so that the fix this compute creates to store per-atom\n > quantities will also have the same ID, and thus be initialized\n > correctly with time=0 atom velocities from the restart file. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 4, which can be\naccessed by indices 1--4 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\nvelocity\\ \\(^2\\) [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute msd ](https://docs.lammps.org/compute_msd.html)\n" -}, -{ - "command": [ - "fix nve/awpmd" - ], - "syntax": [ - "fix ID group-ID nve/awpmd" - ], - "args": [ + ], [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "dpd/tstat", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "Tstart", "type": 2, "choices": [] }, { - "arg": "nve/awpmd", - "type": 1, + "arg": "Tstop", + "type": 2, + "choices": [] + }, + { + "arg": "cutoff", + "type": 2, + "choices": [] + }, + { + "arg": "seed", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/awpmd = style name of this fix command \n", - "examples": "\n```lmps\nfix 1 all nve/awpmd\n```\n", - "html_filename": "fix_nve_awpmd.html", - "short_description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [Antisymmetrized Wave Packet Molecular Dynamics ](https://docs.lammps.org/pair_awpmd.html) model", - "description": "Perform constant NVE integration to update position and velocity for\nnuclei and electrons in the group for the [Antisymmetrized Wave Packet Molecular Dynamics ](https://docs.lammps.org/pair_awpmd.html) model. V is volume; E is energy.\nThis creates a system trajectory consistent with the microcanonical\nensemble.\n\nThe operation of this fix is exactly like that described by the [fix nve ](https://docs.lammps.org/fix_nve.html) command, except that the width and width-velocity of\nthe electron wave functions are also updated.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the AWPMD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html)\n" + "parameters": "* T = temperature (temperature units) (dpd only)\n* Tstart,Tstop = desired temperature at start/end of run (temperature units) (dpd/tstat only)\n* cutoff = global cutoff for DPD interactions (distance units)\n* seed = random # seed (positive integer) \n", + "examples": "\n```lmps\npair_style dpd 1.0 2.5 34387\npair_coeff * * 3.0 1.0\npair_coeff 1 1 3.0 1.0 1.0\n\npair_style hybrid/overlay lj/cut 2.5 dpd/tstat 1.0 1.0 2.5 34387\npair_coeff * * lj/cut 1.0 1.0\npair_coeff * * dpd/tstat 1.0\n```\n", + "html_filename": "pair_dpd.html", + "short_description": "Style *dpd* computes a force field for dissipative particle dynamics\n(DPD) following the exposition in **Groot1**", + "description": "Style *dpd* computes a force field for dissipative particle dynamics\n(DPD) following the exposition in **Groot1**.\n\nStyle *dpd/tstat* invokes a DPD thermostat on pairwise interactions,\nwhich is equivalent to the non-conservative portion of the DPD force\nfield. This pairwise thermostat can be used in conjunction with any\n[pair style ](https://docs.lammps.org/pair_style.html), and instead of per-particle thermostats\nlike [fix langevin ](https://docs.lammps.org/fix_langevin.html) or ensemble thermostats like\nNose Hoover as implemented by [fix nvt ](https://docs.lammps.org/fix_nh.html). To use\n*dpd/tstat* as a thermostat for another pair style, use the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command to compute both\nthe desired pair interaction and the thermostat for each pair of\nparticles.\n\nFor style *dpd*, the force on atom I due to atom J is given as a sum\nof 3 terms\n\\[\\begin{align*} \n \\vec{f} = & (F^C + F^D + F^R) \\hat{r_{ij}} \\qquad \\qquad r < r_c \\\\\n F^C = & A w(r) \\\\\n F^D = & - \\gamma w^2(r) (\\hat{r_{ij}} \\bullet \\vec{v}_{ij}) \\\\\n F^R = & \\sigma w(r) \\alpha (\\Delta t)^{-1/2} \\\\\n w(r) = & 1 - \\frac{r}{r_c} \\end{align*} \\]\nwhere \\(F^C\\) is a conservative force, \\(F^D\\) is a dissipative\nforce, and \\(F^R\\) is a random force. \\(\\hat{r_{ij}}\\) is a\nunit vector in the direction \\(r_i - r_j\\), \\(\\vec{v}_{ij}\\) is\nthe vector difference in velocities of the two atoms \\(\\vec{v}_i -\n\\vec{v}_j\\), \\(\\alpha\\) is a Gaussian random number with zero mean\nand unit variance, *dt* is the timestep size, and \\(w(r)\\) is a\nweighting factor that varies between 0 and 1. \\(r_c\\) is the\npairwise cutoff. \\(\\sigma\\) is set equal to \\(\\sqrt{2 k_B T\n\\gamma}\\), where \\(k_B\\) is the Boltzmann constant and *T* is the\ntemperature parameter in the pair_style command.\n\nFor style *dpd/tstat*, the force on atom I due to atom J is the same as\nthe above equation, except that the conservative \\(F^C\\) term is\ndropped. Also, during the run, *T* is set each timestep to a ramped\nvalue from *Tstart* to *Tstop*.\n\nFor style *dpd*, the pairwise energy associated with style *dpd* is only\ndue to the conservative force term \\(F^C\\), and is shifted to be\nzero at the cutoff distance \\(r_c\\). The pairwise virial is\ncalculated using all 3 terms. For style *dpd/tstat* there is no\npairwise energy, but the last two terms of the formula make a\ncontribution to the virial.\n\nFor style *dpd*, the following coefficients must be defined for each\npair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* cutoff (distance units)\n\nThe cutoff coefficient is optional. If not specified, the global DPD\ncutoff is used. Note that sigma is set equal to sqrt(2 T gamma),\nwhere T is the temperature set by the [pair_style ](https://docs.lammps.org/pair_style.html)\ncommand so it does not need to be specified.\n\nFor style *dpd/tstat*, the coefficients defined for each pair of\natoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command are:\n\n* \\(\\gamma\\) (force/velocity units)\n* cutoff (distance units)\n\nThe cutoff coefficient is optional.\n\nThe GPU-accelerated versions of these styles are implemented based on\nthe work of **Afshar** and **Phillips**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you are modeling DPD polymer chains, you may want to use the\n > [pair_style srp ](https://docs.lammps.org/pair_srp.html) command in conjunction with these pair\n > styles. It is a soft segmental repulsive potential (SRP) that can\n > prevent DPD polymer chains from crossing each other. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The virial calculation for pressure when using these pair styles\n > includes all the components of force listed above, including the\n > random force. Since the random force depends on random numbers,\n > everything that changes the order of atoms in the neighbor list\n > (e.g. different number of MPI ranks or a different neighbor list\n > skin distance) will also change the sequence in which the random\n > numbers are applied and thus the individual forces and therefore\n > also the virial/pressure. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For more consistent time integration and force computation you may\n > consider using [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html) instead of [fix > nve ](https://docs.lammps.org/fix_nve.html). \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the pair interaction. Note that as\ndiscussed above, the energy due to the conservative \\(F^C\\) term is already\nshifted to be 0.0 at the cutoff distance \\(r_c\\).\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant\nfor these pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles write their information to [binary restart files](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need to be\nspecified in an input script that reads a restart file. Note that the\nuser-specified random number seed is stored in the restart file, so when\na simulation is restarted, each processor will re-initialize its random\nnumber generator the same way it did initially. This means the random\nforces will be random, but will not be the same as they would have been\nif the original simulation had continued past the restart time.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThe *dpd/tstat* style can ramp its target temperature over multiple\nruns, using the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html)\ncommand. See the [run ](https://docs.lammps.org/run.html) command for details of how to do\nthis.\n\n----------\n\n**(Groot1)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). \n \n**(Afshar)** Afshar, F. Schmid, A. Pishevar, S. Worley, Comput Phys\nComm, 184, 1119-1128 (2013). \n \n**(Phillips)** C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput\nPhys Comm, 230, 7191-7201 (2011). \n ", + "restrictions": "These styles are part of the DPD-BASIC package. They are only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe default frequency for rebuilding neighbor lists is every 10 steps\n(see the [neigh_modify ](https://docs.lammps.org/neigh_modify.html) command). This may be too\ninfrequent for style *dpd* simulations since particles move rapidly and\ncan overlap by large amounts. If this setting yields a non-zero number\nof \"dangerous\" reneighborings (printed at the end of a simulation), you\nshould experiment with forcing reneighboring more often and see if\nsystem energies/trajectories change.\n\nThese pair styles requires you to use the [comm_modify vel yes](https://docs.lammps.org/comm_modify.html) command so that velocities are stored by ghost atoms.\n\nThese pair styles will not restart exactly when using the\n[read_restart ](https://docs.lammps.org/read_restart.html) command, though they should provide\nstatistically similar results. This is because the forces they compute\ndepend on atom velocities. See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for more details.\n", + "related": "[pair_style dpd/ext ](https://docs.lammps.org/pair_dpd_ext.html), [pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[pair_style srp ](https://docs.lammps.org/pair_srp.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html).\n" }, { "command": [ - "fix deform/pressure" + "fix bond/create" ], "syntax": [ - "fix ID group-ID deform/pressure N parameter style args ... keyword value ..." + "fix ID group-ID bond/create Nevery itype jtype Rmin bondtype keyword values ..." ], "args": [ [ @@ -39624,158 +39219,191 @@ export const command_docs = [ "choices": [] }, { - "arg": "deform/pressure", + "arg": "bond/create", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "Nevery", "type": 2, "choices": [] }, { - "arg": "parameter", + "arg": "itype", "type": 2, "choices": [] }, { - "arg": "style", + "arg": "jtype", "type": 2, "choices": [] }, { - "arg": "args", + "arg": "Rmin", "type": 2, "choices": [] }, { - "arg": "normalize/pressure", + "arg": "bondtype", + "type": 2, + "choices": [] + }, + { + "arg": "aconstrain", "type": 3, "choices": [ - "remap", - "flip", - "units", - "couple", - "vol/balance/p", - "max/rate", - "normalize/pressure" + "iparam", + "jparam", + "prob", + "atype", + "dtype", + "itype", + "aconstrain" ] }, { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* deform/pressure = style name of this fix command\n* N = perform box deformation every this many timesteps\n* one or more parameter/args sequences may be appended \n *      parameter = x or y or z or xy or xz or yz or box \n       x, y, z args = style value(s) \n       style = final or delta or scale or vel or erate or trate or volume or wiggle or variable or pressure or pressure/mean \n       final values = lo hi \n       lo hi = box boundaries at end of run (distance units) \n       delta values = dlo dhi \n       dlo dhi = change in box boundaries at end of run (distance units) \n       scale values = factor \n       factor = multiplicative factor for change in box length at end of run \n       vel value = V \n       V = change box length at this velocity (distance/time units), \n       effectively an engineering strain rate \n       erate value = R \n       R = engineering strain rate (1/time units) \n       trate value = R \n       R = true strain rate (1/time units) \n       volume value = none = adjust this dim to preserve volume of system \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for box length change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n       pressure values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       pressure/mean values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       xy, xz, yz args = style value \n       style = final or delta or vel or erate or trate or wiggle or variable or pressure or erate/rescale \n       final value = tilt \n       tilt = tilt factor at end of run (distance units) \n       delta value = dtilt \n       dtilt = change in tilt factor at end of run (distance units) \n       vel value = V \n       V = change tilt factor at this velocity (distance/time units), \n       effectively an engineering shear strain rate \n       erate value = R \n       R = engineering shear strain rate (1/time units) \n       erate/rescale value = R \n       R = engineering shear strain rate (1/time units) \n       trate value = R \n       R = true shear strain rate (1/time units) \n       wiggle values = A Tp \n       A = amplitude of oscillation (distance units) \n       Tp = period of oscillation (time units) \n       variable values = v_name1 v_name2 \n       v_name1 = variable with name1 for tilt change as function of time \n       v_name2 = variable with name2 for change rate as function of time \n       pressure values = target gain \n       target = target pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n       erate/rescale value = R \n       R = engineering shear strain rate (1/time units) \n       box = style value \n       style = volume or pressure \n       volume value = none = isotropically adjust system to preserve volume of system \n       pressure values = target gain \n       target = target mean pressure (pressure units) \n       gain = proportional gain constant (1/(time * pressure) or 1/time units) \n* zero or more keyword/value pairs may be appended\n* keyword = remap or flip or units or couple or vol/balance/p or max/rate or normalize/pressure \n *        remap value = x or v or none \n         x = remap coords of atoms in group into deforming box \n         v = remap velocities of atoms in group when they cross periodic boundaries \n         none = no remapping of x or v \n *        flip value = yes or no \n         allow or disallow box flips when it becomes highly skewed \n *        units value = lattice or box \n         lattice = distances are defined in lattice units \n         box = distances are defined in simulation box units \n *        couple value = none or xyz or xy or yz or xz \n         couple pressure values of various dimensions \n *        vol/balance/p value = yes or no \n         Modifies the behavior of the volume option to try and balance pressures \n *        max/rate value = rate \n         rate = maximum strain rate for pressure control \n *        normalize/pressure value = yes or no \n         Modifies pressure controls such that the deviation in pressure is normalized by the target pressure \n", - "examples": "\n```lmps\nfix 1 all deform/pressure 1 x pressure 2.0 0.1 normalize/pressure yes max/rate 0.001\nfix 1 all deform/pressure 1 x trate 0.1 y volume z volume vol/balance/p yes\nfix 1 all deform/pressure 1 x trate 0.1 y pressure/mean 0.0 1.0 z pressure/mean 0.0 1.0\n```\n", - "html_filename": "fix_deform_pressure.html", - "short_description": "\nThis fix is an extension of the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand, which allows all of its options to be used as well as new\npressure-based controls implemented by this command", - "description": "\nThis fix is an extension of the [fix deform ](https://docs.lammps.org/fix_deform.html)\ncommand, which allows all of its options to be used as well as new\npressure-based controls implemented by this command.\n\nAll arguments described on the [fix deform ](https://docs.lammps.org/fix_deform.html) doc page\nalso apply to this fix unless otherwise noted below. The rest of this\npage explains the arguments specific to this fix only. Note that a\nsimulation can define only a single deformation command: fix deform or\nfix deform/pressure.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Inconsistent trajectories due to image flags \n >:class: warning\n >\n > When running long simulations while shearing the box or using a high\n > shearing rate, it is possible that the image flags used for storing\n > unwrapped atom positions will \"wrap around\". When LAMMPS is compiled\n > with the default settings, case image flags are limited to a range of\n > \\(-512 \\le i \\le 511\\), which will overflow when atoms starting\n > at zero image flag value have passed through a periodic box dimension\n > more than 512 times.\n >\n > Changing the :ref:`size of LAMMPS integer types ` to the\n > \"bigbig\" setting can make this overflow much less likely, since it\n > increases the image flag value range to \\(- 1,048,576 \\le i \\le\n > 1\\,048\\,575\\) \n > \n\n----------\n\nFor the *x*, *y*, and *z* parameters, this is the meaning of the\nstyles and values provided by this fix.\n\nThe *pressure* style adjusts a dimension's box length to control the\ncorresponding component of the pressure tensor. This option attempts to\nmaintain a specified target pressure using a linear controller where the\nbox length \\(L\\) evolves according to the equation\n\\[\n \\frac{d L(t)}{dt} = L(t) k (P_t - P)\\]\nwhere \\(k\\) is a proportional gain constant, \\(P_t\\) is the target\npressure, and \\(P\\) is the current pressure along that dimension. This\napproach is similar to the method used to control the pressure by\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html). The target pressure\naccepts either a constant numeric value or a LAMMPS :ref:`variable `.\nNotably, this variable can be a function of time or other components of\nthe pressure tensor. By default, \\(k\\) has units of 1/(time * pressure)\nalthough this will change if the *normalize/pressure* option is set as\n**deform_normalize**. There is no proven method\nto choosing an appropriate value of \\(k\\) as it will depend on the\nspecific details of a simulation. Testing different values is recommended.\n\nBy default, there is no limit on the resulting strain rate in any dimension.\nA maximum limit can be applied using the **deform_max_rate**\noption. Akin to [fix npt and nph ](https://docs.lammps.org/fix_nh.html), pressures in different\ndimensions can be coupled using the **deform_couple** option.\nThis means the instantaneous pressure along coupled dimensions are averaged\nand the box strains identically along the coupled dimensions.\n\nThe *pressure/mean* style changes a dimension's box length to maintain\na constant mean pressure defined as the trace of the pressure tensor.\nThis option has identical arguments to the *pressure* style and a similar\nfunctional equation, except the current and target pressures refer to the\nmean trace of the pressure tensor. All options for the *pressure* style\nalso apply to the *pressure/mean* style except for the\n**deform_couple** option.\n\nNote that while this style can be identical to coupled *pressure* styles,\nit is generally not the same. For instance in 2D, a coupled *pressure*\nstyle in the *x* and *y* dimensions would be equivalent to using the\n*pressure/mean* style with identical settings in each dimension. However,\nit would not be the same if settings (e.g. gain constants) were used in\nthe *x* and *y* dimensions or if the *pressure/mean* command was only applied\nalong one dimension.\n\n----------\n\nFor the *xy*, *xz*, and *yz* parameters, this is the meaning of the\nstyles and values provided by this fix. Note that changing the\ntilt factors of a triclinic box does not change its volume.\n\nThe *pressure* style adjusts a tilt factor to control the corresponding\noff-diagonal component of the pressure tensor. This option attempts to\nmaintain a specified target value using a linear controller where the\ntilt factor T evolves according to the equation\n\\[\n \\frac{d T(t)}{dt} = L(t) k (P - P_t)\\]\nwhere \\(k\\) is a proportional gain constant, \\(P_t\\) is the\ntarget pressure, \\(P\\) is the current pressure, and \\(L\\) is\nthe perpendicular box length. The target pressure accepts either a\nconstant numeric value or a LAMMPS :ref:`variable\n`. Notably, this variable can be a function of time or other\ncomponents of the pressure tensor. By default, \\(k\\) has units of\n1/(time * pressure) although this will change if the\n*normalize/pessure* option is set as **deform_normalize**. There is no proven method to choosing an\nappropriate value of \\(k\\) as it will depend on the specific\ndetails of a simulation and testing different values is\nrecommended. One can also apply a maximum limit to the magnitude of\nthe applied strain using the **deform_max_rate** option.\n\nThe *erate/rescale* style operates similarly to the *erate* style with\na specified strain rate in units of 1/time. The difference is that\nthe change in the tilt factor will depend on the current length of\nthe box perpendicular to the shear direction, *L*, instead of the\noriginal length, *L0*. The tilt factor T as a function of time will\nchange as\n\\[\n T(t) = T(t-1) + L \\cdot \\mathrm{erate} \\cdot \\Delta t\\]\nwhere T(t-1) is the tilt factor on the previous timestep and\n\\(\\Delta t\\) is the timestep size. This option may be useful\nin scenarios where *L* changes in time.\n\n----------\n\nThe *box* parameter provides an additional control over the *x*, *y*,\nand *z* box lengths by isotropically dilating or contracting the box\nto either maintain a fixed mean pressure or volume. This isotropic\nscaling is applied after the box is deformed by the above *x*, *y*,\n*z*, *xy*, *xz*, and *yz* styles, acting as a second deformation\nstep. This parameter will change the overall strain rate in the *x*,\n*y*, or *z* dimensions. This parameter can only be used in\ncombination with the *x*, *y*, or *z* commands: *vel*, *erate*,\n*trate*, *pressure*, or *wiggle*. This is the meaning of its styles\nand values.\n\nThe *volume* style isotropically scales box lengths to maintain a constant\nbox volume in response to deformation from other parameters. This style\nmay be useful in scenarios where one wants to apply a constant deviatoric\npressure using *pressure* styles in the *x*, *y*, and *z* dimensions (\ndeforming the shape of the box), while maintaining a constant volume.\n\nThe *pressure* style isotropically scales box lengths in an attempt to\nmaintain a target mean pressure (the trace of the pressure tensor) of the\nsystem. This is accomplished by isotropically scaling all box lengths\n\\(L\\) by an additional factor of \\(k (P_t - P_m)\\) where \\(k\\)\nis the proportional gain constant, \\(P_t\\) is the target pressure, and\n\\(P_m\\) is the current mean pressure. This style may be useful in\nscenarios where one wants to apply a constant deviatoric strain rate\nusing various strain-based styles (e.g. *trate*) along the *x*, *y*, and *z*\ndimensions (deforming the shape of the box), while maintaining a mean pressure.\n\n----------\n\nThe optional keywords provided by this fix are described below.\n\nThe *normalize/pressure* keyword changes how box dimensions evolve when\nusing the *pressure* or *pressure/mean* deformation styles. If the\n*deform/normalize* value is set to *yes*, then the deviation from the\ntarget pressure is normalized by the absolute value of the target\npressure such that the proportional gain constant scales a percentage\nerror and has units of 1/time. If the target pressure is ever zero, this\nwill produce an error unless the *max/rate* keyword is defined,\ndescribed below, which will cap the divergence. \n .. _deform_max_rate:\n\nThe *max/rate* keyword sets an upper threshold, *rate*, that limits the\nmaximum magnitude of the instantaneous strain rate applied in any dimension.\nThis keyword only applies to the *pressure* and *pressure/mean* options. If\na pressure-controlled rate is used for both *box* and either *x*, *y*, or\n*z*, then this threshold will apply separately to each individual controller\nsuch that the cumulative strain rate on a box dimension may be up to twice\nthe value of *rate*.\n\n.. _deform_couple:\n\nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together for the *pressure* option.\nThe value specified with the keyword determines which are coupled. For\nexample, *xz* means the *Pxx* and *Pzz* components of the stress tensor\nare coupled. *Xyz* means all 3 diagonal components are coupled. Coupling\nmeans two things: the instantaneous stress will be computed as an average\nof the corresponding diagonal components, and the coupled box dimensions\nwill be changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. If a *pressure*\nstyle is defined for more than one coupled dimension, the target pressures\nand gain constants must be identical. Alternatively, if a *pressure*\nstyle is only defined for one of the coupled dimensions, its settings are\ncopied to other dimensions with undefined styles. *Couple xyz* can be used\nfor a 2d simulation; the *z* dimension is simply ignored.\n\n.. _deform_balance:\n\nThe *vol/balance/p* keyword modifies the behavior of the *volume* style when\napplied to two of the *x*, *y*, and *z* dimensions. Instead of straining\nthe two dimensions in lockstep, the two dimensions are allowed to\nseparately dilate or contract in a manner to maintain a constant\nvolume while simultaneously trying to keep the pressure along each\ndimension equal using a method described in **Huang2014**.\n\n----------\n\nIf any pressure controls are used, this fix computes a temperature and\npressure each timestep. To do this, the fix creates its own computes\nof style \"temp\" and \"pressure\", as if these commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the IDs of the\nnew computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\", and the group for the new computes is the same\nas the fix group.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID =\n*thermo_temp* and *thermo_press*. This means you can change the\nattributes of this fix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this\ntemperature or pressure during thermodynamic output via the\n[thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the\nappropriate compute-ID. It also means that changing attributes of\n*thermo_temp* or *thermo_press* will have no effect on this fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix will restore the initial box settings from [binaryrestart files ](https://docs.lammps.org/restart.html), which allows the fix to be properly continue\ndeformation, when using the start/stop options of the [run ](https://docs.lammps.org/run.html)\ncommand. No global or per-atom quantities are stored by this fix for\naccess by various [output commands ](https://docs.lammps.org/Howto_output.html).\n\nIf any pressure controls are used, the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n*temp* and *press* options are supported by this fix, unlike in\n[fix deform ](https://docs.lammps.org/fix_deform.html). You can use them to assign a\n[compute ](https://docs.lammps.org/compute.html) you have defined to this fix which will be\nused in its temperature and pressure calculations. If you do this,\nnote that the kinetic energy derived from the compute temperature\nshould be consistent with the virial term computed using all atoms for\nthe pressure. LAMMPS will warn you if you choose to compute\ntemperature on a subset of atoms.\n\nThis fix can perform deformation over multiple runs, using the *start*\nand *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\nThe *normalize/pressure* keyword changes how box dimensions evolve when\nusing the *pressure* or *pressure/mean* deformation styles. If the\n*deform/normalize* value is set to *yes*, then the deviation from the\ntarget pressure is normalized by the absolute value of the target\npressure such that the proportional gain constant scales a percentage\nerror and has units of 1/time. If the target pressure is ever zero, this\nwill produce an error unless the *max/rate* keyword is defined,\ndescribed below, which will cap the divergence. \n \nThe *max/rate* keyword sets an upper threshold, *rate*, that limits the\nmaximum magnitude of the instantaneous strain rate applied in any dimension.\nThis keyword only applies to the *pressure* and *pressure/mean* options. If\na pressure-controlled rate is used for both *box* and either *x*, *y*, or\n*z*, then this threshold will apply separately to each individual controller\nsuch that the cumulative strain rate on a box dimension may be up to twice\nthe value of *rate*. \n \nThe *couple* keyword allows two or three of the diagonal components of\nthe pressure tensor to be \"coupled\" together for the *pressure* option.\nThe value specified with the keyword determines which are coupled. For\nexample, *xz* means the *Pxx* and *Pzz* components of the stress tensor\nare coupled. *Xyz* means all 3 diagonal components are coupled. Coupling\nmeans two things: the instantaneous stress will be computed as an average\nof the corresponding diagonal components, and the coupled box dimensions\nwill be changed together in lockstep, meaning coupled dimensions will be\ndilated or contracted by the same percentage every timestep. If a *pressure*\nstyle is defined for more than one coupled dimension, the target pressures\nand gain constants must be identical. Alternatively, if a *pressure*\nstyle is only defined for one of the coupled dimensions, its settings are\ncopied to other dimensions with undefined styles. *Couple xyz* can be used\nfor a 2d simulation; the *z* dimension is simply ignored. \n \n**(Huang2014)** X. Huang, \"Exploring critical-state behavior using DEM\", Doctoral dissertation, Imperial College. (2014). https://doi.org/10.25560/25316 \n ", - "restrictions": "This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nYou cannot apply x, y, or z deformations to a dimension that is\nshrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html) command.\n\nYou cannot apply xy, yz, or xz deformations to a second dimension (y\nin xy) that is shrink-wrapped via the [boundary ](https://docs.lammps.org/boundary.html)\ncommand.\n", - "related": "[fix deform ](https://docs.lammps.org/fix_deform.html), [change_box ](https://docs.lammps.org/change_box.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* bond/create = style name of this fix command\n* Nevery = attempt bond creation every this many steps\n* itype,jtype = atoms of itype can bond to atoms of jtype (1-Ntypes or type label)\n* Rmin = 2 atoms separated by less than Rmin can bond (distance units)\n* bondtype = type of created bonds (integer or type label)\n* zero or more keyword/value pairs may be appended to args\n* keyword = iparam or jparam or prob or atype or dtype or itype or aconstrain \n *        iparam values = maxbond, newtype \n         maxbond = max # of bonds of bondtype the itype atom can have \n         newtype = change the itype atom to this type when maxbonds exist (1-Ntypes or type label) \n *        jparam values = maxbond, newtype \n         maxbond = max # of bonds of bondtype the jtype atom can have \n         newtype = change the jtype atom to this type when maxbonds exist (1-Ntypes or type label) \n *        prob values = fraction seed \n         fraction = create a bond with this probability if otherwise eligible \n         seed = random number seed (positive integer) \n *        atype value = angletype \n         angletype = type of created angles (integer or type label) \n *        dtype value = dihedraltype \n         dihedraltype = type of created dihedrals (integer or type label) \n *        itype value = impropertype \n         impropertype = type of created impropers (integer or type label) \n *        aconstrain value = amin amax \n         amin = minimal angle at which new bonds can be created \n         amax = maximal angle at which new bonds can be created \n", + "examples": "\n```lmps\nfix 5 all bond/create 10 1 2 0.8 1\nfix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3\nfix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3 atype 1 dtype 2\nfix 5 all bond/create/angle 10 1 2 1.122 1 aconstrain 120 180 prob 1 4928459 iparam 2 1 jparam 2 2\n\nlabelmap atom 1 c1 2 n2\nlabelmap bond 1 c1-n2\nfix 5 all bond/create 10 c1 n2 0.8 c1-n2\n```\n", + "html_filename": "fix_bond_create.html", + "short_description": "Create bonds between pairs of atoms as a simulation runs according to\nspecified criteria", + "description": "Create bonds between pairs of atoms as a simulation runs according to\nspecified criteria. This can be used to model the cross-linking of\npolymers, the formation of a percolation network, etc. In this\ncontext, a bond means an interaction between a pair of atoms computed\nby the [bond_style ](https://docs.lammps.org/bond_style.html) command. Once the bond is created\nit will be permanently in place. Optionally, the creation of a bond\ncan also create angle, dihedral, and improper interactions that the bond\nis part of. See the discussion of the *atype*, *dtype*, and *itype*\nkeywords below.\n\nThis process is different than a [pair-wise ](https://docs.lammps.org/pair_style.html) bond-order\npotential such as Tersoff or AIREBO, which infer bonds and many-body\ninteractions based on the current geometry of a small cluster of atoms\nand effectively create and destroy bonds and higher-order many-body\ninteractions from time step to time step as the atoms move.\n\nA check for possible new bonds is performed every *Nevery* time steps.\nIf two atoms \\(i\\) and \\(j\\) are within a distance *Rmin* of each\nother, atom \\(i\\) is of type *itype*, atom \\(j\\) is of type *jtype*,\nand both \\(i\\) and \\(j\\) are in the specified fix group, then if a bond\ndoes not already exist between atoms \\(i\\) and \\(j\\), and if both\n\\(i\\) and \\(j\\) meet their respective *maxbond* requirements (explained\nbelow), then \\(i\\) and \\(j\\) are labeled as a \"possible\" bond pair.\n\nIf several atoms are close to an atom, it may have multiple possible\nbond partners. Every atom checks its list of possible bond partners\nand labels the closest such partner as its \"sole\" bond partner. After\nthis is done, if atom \\(i\\) has atom \\(j\\) as its sole partner and\natom \\(j\\) has atom \\(i\\) as its sole partner, then the\n\\(i,j\\) bond is \"eligible\" to be formed.\n\nNote that these rules mean that an atom will only be part of at most one\ncreated bond on a given time step. It also means that if atom \\(i\\)\nchooses atom \\(j\\) as its sole partner, but atom \\(j\\) chooses atom\n\\(k\\) as its sole partner (because \\(R_{jk} < R_{ij}\\)), then atom\n\\(i\\) will not form a bond on this time step, even if it has other possible\nbond partners.\n\nIt is permissible to have *itype* = *jtype* . *Rmin* must be \\(\\leq\\) the\npair-wise cutoff distance between *itype* and *jtype* atoms, as defined\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command.\n\nThe *iparam* and *jparam* keywords can be used to limit the bonding\nfunctionality of the participating atoms. Each atom keeps track of\nhow many bonds of *bondtype* it already has. If atom \\(i\\) of type\n*itype* already has *maxbond* bonds (as set by the *iparam*\nkeyword), then it will not form any more, and likewise for atom \\(j\\).\nIf *maxbond* is set to 0, then there is no limit on the number of bonds\nthat can be formed with that atom.\n\nThe *newtype* value for *iparam* and *jparam* can be used to change\nthe atom type of atom \\(i\\) or \\(j\\) when it reaches *maxbond* number\nof bonds of type *bondtype* . This means it can now interact in a pair-wise\nfashion with other atoms in a different way by specifying different\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) coefficients. If you do not wish the\natom type to change, simply specify *newtype* as *itype* or *jtype* .\n\nThe *prob* keyword can also affect whether an eligible bond is\nactually created. The *fraction* setting must be a value between 0.0\nand 1.0. A uniform random number between 0.0 and 1.0 is generated and\nthe eligible bond is only created if the random number is less than *fraction*.\n\nThe *aconstrain* keyword is only available with the fix\nbond/create/angle command. It allows one to specify minimum and maximum\nangles *amin* and *amax*, respectively, between the two prospective bonding\npartners and a third particle that is already bonded to one of the two\npartners. Such a criterion can be important when new angles are defined\ntogether with the formation of a new bond. Without a restriction on the\npermissible angle, and for stiffer angle potentials, very large energies\ncan arise and lead to unphysical behavior.\n\nAny bond that is created is assigned a bond type of *bondtype*.\n\nWhen a bond is created, data structures within LAMMPS that store bond\ntopologies are updated to reflect the creation. If the bond is part of\nnew 3-body (angle) or 4-body (dihedral, improper) interactions, you\ncan choose to create new angles, dihedrals, and impropers as well using\nthe *atype*, *dtype*, and *itype* keywords. All of these changes\ntypically affect pair-wise interactions between atoms that are now part\nof new bonds, angles, etc.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >One data structure that is not updated when a bond breaks are\n > the molecule IDs stored by each atom. Even though two molecules\n > become one molecule due to the created bond, all atoms in the new\n > molecule retain their original molecule IDs. \n > \n\nIf the *atype* keyword is used and if an angle potential is defined\nvia the [angle_style ](https://docs.lammps.org/angle_style.html) command, then any new 3-body\ninteractions inferred by the creation of a bond will create new angles\nof type *angletype*, with parameters assigned by the corresponding\n[angle_coeff ](https://docs.lammps.org/angle_coeff.html) command. Likewise, the *dtype* and\n*itype* keywords will create new dihedrals and impropers of type\n*dihedraltype* and *impropertype* .\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To create a new bond, the internal LAMMPS data structures that\n > store this information must have space for it. When LAMMPS is\n > initialized from a data file, the list of bonds is scanned and the\n > maximum number of bonds per atom is tallied. If some atom will\n > acquire more bonds than this limit as this fix operates, then the\n > \"extra bond per atom\" parameter must be set to allow for it. Ditto\n > for \"extra angle per atom\", \"extra dihedral per atom\", and \"extra\n > improper per atom\" if angles, dihedrals, or impropers are being added\n > when bonds are created. See the [read_data ](https://docs.lammps.org/read_data.html) or\n > [create_box ](https://docs.lammps.org/create_box.html) command for more details. Note that a\n > data file with no atoms can be used if you wish to add non-bonded\n > atoms via the [create atoms ](https://docs.lammps.org/create_atoms.html) command (e.g., for a\n > percolation simulation). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >LAMMPS stores and maintains a data structure with a list of the\n > first, second, and third neighbors of each atom (within the bond topology of\n > the system) for use in weighting pair-wise interactions for bonded\n > atoms. Note that adding a single bond always adds a new first neighbor\n > but may also induce **many** new second and third neighbors, depending on the\n > molecular topology of your system. The \"extra special per atom\"\n > parameter must typically be set to allow for the new maximum total\n > size (first + second + third neighbors) of this per-atom list. There are two\n > ways to do this. See the [read_data ](https://docs.lammps.org/read_data.html) or\n > [create_box ](https://docs.lammps.org/create_box.html) commands for details. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Even if you do not use the *atype*, *dtype*, or *itype*\n > keywords, the list of topological neighbors is updated for atoms\n > affected by the new bond. This in turn affects which neighbors are\n > considered for pair-wise interactions, using the weighting rules set by\n > the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. Consider a new bond\n > created between atoms \\(i\\) and \\(j\\). If \\(j\\) has a bonded\n > neighbor \\(k\\), then \\(k\\) becomes a second neighbor of \\(i\\).\n > Even if the *atype* keyword is not used to create angle \\(\\angle ijk\\),\n > the pair-wise interaction between \\(i\\) and \\(k\\) could potentially\n > be turned off or weighted by the 1--3 weighting specified\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. This is the case\n > even if the \"angle yes\" option was used with that command. The same\n > is true for third neighbors (1--4 interactions), the *dtype* keyword, and\n > the \"dihedral yes\" option used with the\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\nNote that even if your simulation starts with no bonds, you must\ndefine a [bond_style ](https://docs.lammps.org/bond_style.html) and use the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command to specify coefficients for the\n*bondtype* . Similarly, if new atom types are specified by the\n*iparam* or *jparam* keywords, they must be within the range of atom\ntypes allowed by the simulation and pair-wise coefficients must be\nspecified for the new types.\n\nComputationally, each time step this fix is invoked, it loops over\nneighbor lists and computes distances between pairs of atoms in the\nlist. It also communicates between neighboring processors to\ncoordinate which bonds are created. Moreover, if any bonds are\ncreated, neighbor lists must be immediately updated on the same\ntime step. This is to ensure that any pair-wise interactions that\nshould be turned \"off\" due to a bond creation, because they are now\nexcluded by the presence of the bond and the settings of the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) command, will be immediately\nrecognized. All of these operations increase the cost of a time step.\nThus, you should be cautious about invoking this fix too frequently.\n\nYou can dump out snapshots of the current bond topology via the [dump local ](https://docs.lammps.org/dump.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Creating a bond typically alters the energy of a system. You\n > should be careful not to choose bond creation criteria that induce a\n > dramatic change in energy. For example, if you define a very stiff\n > harmonic bond and create it when two atoms are separated by a distance\n > far from the equilibrium bond length, then the two atoms will oscillate\n > dramatically when the bond is formed. More generally, you may need to\n > thermostat your system to compensate for energy changes resulting from\n > created bonds (and angles, dihedrals, impropers). \n > \n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix.\n\nThis fix computes two statistics which it stores in a global vector of\nlength 2, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The vector values calculated by this fix are\n\"intensive\".\n\nThe two quantities in the global vector are\n\n (1) number of bonds created on the most recent creation time step\n (2) cumulative number of bonds created\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", + "related": "[fix bond/break ](https://docs.lammps.org/fix_bond_break.html), [fix bond/react ](https://docs.lammps.org/fix_bond_react.html), [fix bond/swap ](https://docs.lammps.org/fix_bond_swap.html),\n[dump local ](https://docs.lammps.org/dump.html), [special_bonds ](https://docs.lammps.org/special_bonds.html)\n" }, { "command": [ - "dimension" + "bond_style fene/expand", + "bond_style fene/expand/omp" ], "syntax": [ - "dimension N" + "bond_style fene/expand" ], "args": [ [ { - "arg": "dimension", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "3", + "arg": "fene/expand", "type": 3, "choices": [ - "2", - "3" + "fene/expand", + "fene/expand/omp" ] } ] ], - "parameters": "* N = 2 or 3 \n", - "examples": "\n```lmps\ndimension 2\n```\n", - "html_filename": "dimension.html", - "short_description": "Set the dimensionality of the simulation", - "description": "Set the dimensionality of the simulation. By default LAMMPS runs 3d\nsimulations. To run a 2d simulation, this command should be used\nprior to setting up a simulation box via the\n[create_box ](https://docs.lammps.org/create_box.html) or [read_data ](https://docs.lammps.org/read_data.html) commands.\nRestart files also store this setting.\n\nSee the discussion on the [Howto 2d ](https://docs.lammps.org/Howto_2d.html) page for\nadditional instructions on how to run 2d simulations.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Some models in LAMMPS treat particles as finite-size spheres or\n > ellipsoids, as opposed to point particles. In 2d, the particles will\n > still be spheres or ellipsoids, not circular disks or ellipses,\n > meaning their moment of inertia will be the same as in 3d. \n > \n\n", - "restrictions": "This command must be used before the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n", - "related": "[fix enforce2d ](https://docs.lammps.org/fix_enforce2d.html)\n" + "parameters": "", + "examples": "\n```lmps\nbond_style fene/expand\nbond_coeff 1 30.0 1.5 1.0 1.0 0.5\n```\n", + "html_filename": "bond_fene_expand.html", + "short_description": "The *fene/expand* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[1 -\\left( \\frac{\\left(r - \\Delta\\right)}{R_0}\\right)^2 \\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^{12} - \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**feneexpand-Kremer**, used for bead-spring polymer models", + "description": "The *fene/expand* bond style uses the potential\n\\[\n E = -0.5 K R_0^2 \\ln \\left[1 -\\left( \\frac{\\left(r - \\Delta\\right)}{R_0}\\right)^2 \\right] + 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^{12} - \\left(\\frac{\\sigma}{\\left(r - \\Delta\\right)}\\right)^6 \\right] + \\epsilon\\]\nto define a finite extensible nonlinear elastic (FENE) potential\n**feneexpand-Kremer**, used for bead-spring polymer models. The first\nterm is attractive, the second Lennard-Jones term is repulsive.\n\nThe *fene/expand* bond style is similar to *fene* except that an extra\nshift factor of \\(\\Delta\\) (positive or negative) is added to \\(r\\) to\neffectively change the bead size of the bonded atoms. The first term\nnow extends to \\(R_0 + \\Delta\\) and the second term is cutoff at \\(2^\\frac{1}{6} \\sigma + \\Delta\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(R_0\\) (distance)\n* \\(\\epsilon\\) (energy)\n* \\(\\sigma\\) (distance)\n* \\(\\Delta\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n**(feneexpand-Kremer)** Kremer, Grest, J Chem Phys, 92, 5057 (1990). \n ", + "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nYou typically should specify [special_bonds fene ](https://docs.lammps.org/special_bonds.html)\nor [special_bonds lj/coul 0 1 1 ](https://docs.lammps.org/special_bonds.html) to use this bond\nstyle. LAMMPS will issue a warning it that's not the case.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "fix_modify AtC mesh write" + "bond_coeff" ], "syntax": [ - "fix_modify mesh write " + "bond_coeff N args" ], "args": [ [ { - "arg": "fix_modify", + "arg": "bond_coeff", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "mesh", + "arg": "args", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* N = numeric bond type (see asterisk form below), or type label\n* args = coefficients for one or more bond types \n", + "examples": "\n```lmps\nbond_coeff 5 80.0 1.2\nbond_coeff * 30.0 1.5 1.0 1.0\nbond_coeff 1*4 30.0 1.5 1.0 1.0\nbond_coeff 1 harmonic 200.0 1.0 # (for bond_style hybrid)\n\nlabelmap bond 5 carbonyl\nbond_coeff carbonyl 80.0 1.2\n```\n", + "html_filename": "bond_coeff.html", + "short_description": "Specify the bond force field coefficients for one or more bond types", + "description": "Specify the bond force field coefficients for one or more bond types.\nThe number and meaning of the coefficients depends on the bond style.\nBond coefficients can also be set in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command or in a restart file.\n\n\\(N\\) can be specified in one of several ways. An explicit numeric\nvalue can be used, as in the first example above. Or \\(N\\) can be a\ntype label, which is an alphanumeric string defined by the\n[labelmap ](https://docs.lammps.org/labelmap.html) command or in a section of a data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command.\n\nFor numeric values only, a wild-card asterisk can be used to set the\ncoefficients for multiple bond types. This takes the form \"\\*\" or \"\\*n\"\nor \"n\\*\" or \"m\\*n\". If \\(N\\) is the number of bond types, then an\nasterisk with no numeric values means all types from 1 to \\(N\\). A\nleading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from n to \\(N\\) (inclusive). A middle\nasterisk means all types from m to n (inclusive).\n\nNote that using a bond_coeff command can override a previous setting\nfor the same bond type. For example, these commands set the coeffs\nfor all bond types, then overwrite the coeffs for just bond type 2:\n\n```lmps\nbond_coeff * 100.0 1.2\nbond_coeff 2 200.0 1.2\n```\nA line in a data file that specifies bond coefficients uses the exact\nsame format as the arguments of the bond_coeff command in an input\nscript, except that wild-card asterisks should not be used since\ncoefficients for all \\(N\\) types must be listed in the file. For\nexample, under the \"Bond Coeffs\" section of a data file, the line that\ncorresponds to the first example above would be listed as\n\n```\n5 80.0 1.2\n```\n----------\n\nThe list of all bond styles defined in LAMMPS is given on the\n[bond_style ](https://docs.lammps.org/bond_style.html) doc page. They are also listed in more\ncompact form on the [Commands bond ](https://docs.lammps.org/Commands_bond.html) doc page.\n\nOn either of those pages, click on the style to display the formula it\ncomputes and its coefficients as specified by the associated\nbond_coeff command.\n\n----------\n", + "restrictions": "This command must come after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html), [read_restart ](https://docs.lammps.org/read_restart.html), or\n[create_box ](https://docs.lammps.org/create_box.html) command.\n\nA bond style must be defined before any bond coefficients are set,\neither in the input script or in a data file.\n", + "related": "[bond_style ](https://docs.lammps.org/bond_style.html)\n" +}, +{ + "command": [ + "fix lb/momentum" + ], + "syntax": [ + "fix ID group-ID lb/momentum nevery keyword values ..." + ], + "args": [ + [ + { + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "write", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "lb/momentum", "type": 1, "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] + "arg": "nevery", + "type": 2, + "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] + "arg": "keyword", + "type": 2, + "choices": [] }, { - "arg": "", - "type": 3, - "choices": [ - "f", - "p" - ] + "arg": "values", + "type": 2, + "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh write = name of the AtC sub-command\n* filename = name of the file containing the mesh to be write \n", - "examples": "\n```lmps\nfix_modify AtC mesh write myMesh.mesh\n```\n", - "html_filename": "atc_mesh_write.html", - "short_description": "Writes a mesh to a text file", - "description": "Writes a mesh to a text file.\n", - "restrictions": "None\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create ](https://docs.lammps.org/atc_mesh_create.html)\n- [fix_modify AtC mesh read ](https://docs.lammps.org/atc_mesh_read.html)\n" + "parameters": "* ID, group-ID are documented in the [fix ](https://docs.lammps.org/fix.html) command\n* lb/momentum = style name of this fix command\n* nevery = adjust the momentum every this many timesteps\n* zero or more keyword/value pairs may be appended\n* keyword = linear \n *        linear values = xflag yflag zflag \n         xflag,yflag,zflag = 0/1 to exclude/include each dimension. \n", + "examples": "\n```lmps\nfix 1 sphere lb/momentum\nfix 1 all lb/momentum linear 1 1 0\n```\n", + "html_filename": "fix_lb_momentum.html", + "short_description": "This fix is based on the [fix momentum ](https://docs.lammps.org/fix_momentum.html) command, and\nwas created to be used in place of that command, when a\nlattice-Boltzmann fluid is present", + "description": "This fix is based on the [fix momentum ](https://docs.lammps.org/fix_momentum.html) command, and\nwas created to be used in place of that command, when a\nlattice-Boltzmann fluid is present.\n\nZero the total linear momentum of the system, including both the atoms\nspecified by group-ID and the lattice-Boltzmann fluid every nevery\ntimesteps. If there are no atoms specified by group-ID only the fluid momentum is affected. This is accomplished by adjusting the particle velocities\nand the fluid velocities at each lattice site.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This fix only considers the linear momentum of the system. \n > \n\nBy default, the subtraction is performed for each dimension. This can\nbe changed by specifying the keyword *linear*, along with a set of\nthree flags set to 0/1 in order to exclude/ include the corresponding\ndimension.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "restrictions": "Can only be used if a lattice-Boltzmann fluid has been created via the\n[fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html) command, and must come after this\ncommand.\n\nThis fix is part of the LATBOLTZ package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix momentum ](https://docs.lammps.org/fix_momentum.html), [fix lb/fluid ](https://docs.lammps.org/fix_lb_fluid.html)\n" }, -{ - "command": [ - "pair_style thole", - "pair_style lj/cut/thole/long", - "pair_style lj/cut/thole/long/omp" +{ + "command": [ + "pair_style edpd", + "pair_style edpd/gpu", + "pair_style mdpd", + "pair_style mdpd/gpu", + "pair_style mdpd/rhosum" ], "syntax": [ "pair_style style args" @@ -39788,12 +39416,15 @@ export const command_docs = [ "choices": [] }, { - "arg": "lj/cut/thole/long/omp", + "arg": "mdpd/gpu", "type": 3, "choices": [ - "thole", - "lj/cut/thole/long", - "lj/cut/thole/long/omp" + "edpd", + "mdpd", + "mdpd/rhosum", + "tdpd", + "edpd/gpu", + "mdpd/gpu" ] }, { @@ -39803,79 +39434,59 @@ export const command_docs = [ } ] ], - "parameters": "* style = thole or lj/cut/thole/long\n* args = list of arguments for a particular style \n *      thole args = damp cutoff \n       damp = global damping parameter \n       cutoff = global cutoff (distance units) \n *      lj/cut/thole/long args = damp cutoff (cutoff2) \n       damp = global damping parameter \n       cutoff = global cutoff for LJ (and Thole if only 1 arg) (distance units) \n       cutoff2 = global cutoff for Thole (optional) (distance units) \n", - "examples": "\n```lmps\npair_style hybrid/overlay ... thole 2.6 12.0\npair_coeff 1 1 thole 1.0\npair_coeff 1 2 thole 1.0 2.6 10.0\npair_coeff * 2 thole 1.0 2.6\n\npair_style lj/cut/thole/long 2.6 12.0\n```\nExample input scripts available: examples/PACKAGES/drude\n", - "html_filename": "pair_thole.html", - "short_description": "The *thole* pair styles are meant to be used with force fields that\ninclude explicit polarization through Drude dipoles", - "description": "The *thole* pair styles are meant to be used with force fields that\ninclude explicit polarization through Drude dipoles. This link\ndescribes how to use the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html) in LAMMPS and polarizable models in LAMMPS are\ndiscussed on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nThe *thole* pair style should be used as a sub-style within in the\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, in conjunction with a\nmain pair style including Coulomb interactions, i.e. any pair style\ncontaining *coul/cut* or *coul/long* in its style name.\n\nThe *lj/cut/thole/long* pair style is equivalent to, but more convenient that\nthe frequent combination *hybrid/overlay lj/cut/coul/long cutoff thole damp\ncutoff2*\\ . It is not only a shorthand for this pair_style combination, but\nit also allows for mixing pair coefficients instead of listing them all.\nThe *lj/cut/thole/long* pair style is also a bit faster because it avoids an\noverlay and can benefit from OMP acceleration. Moreover, it uses a more\nprecise approximation of the direct Coulomb interaction at short range similar\nto [coul/long/cs ](https://docs.lammps.org/pair_cs.html), which stabilizes the temperature of\nDrude particles.\n\nThe *thole* pair styles compute the Coulomb interaction damped at\nshort distances by a function\n\\[\n T_{ij}(r_{ij}) = 1 - \\left( 1 +\n \\frac{s_{ij} r_{ij} }{2} \\right)\n \\exp \\left( - s_{ij} r_{ij} \\right)\\]\nThis function results from an adaptation to point charges\n**Noskov1** of the dipole screening scheme originally proposed\nby **Thole1**. The scaling coefficient \\(s_{ij}\\) is determined\nby the polarizability of the atoms, \\(\\alpha_i\\), and by a Thole\ndamping parameter \\(a\\). This Thole damping parameter usually takes\na value of 2.6, but in certain force fields the value can depend upon\nthe atom types. The mixing rule for Thole damping parameters is the\narithmetic average, and for polarizabilities the geometric average\nbetween the atom-specific values.\n\\[\n s_{ij} = \\frac{ a_{ij} }{\n (\\alpha_{ij})^{1/3} } = \\frac{ (a_i + a_j)/2 }{\n [(\\alpha_i\\alpha_j)^{1/2}]^{1/3} }\\]\nThe damping function is only applied to the interactions between the\npoint charges representing the induced dipoles on polarizable sites,\nthat is, charges on Drude particles, \\(q_{D,i}\\), and opposite\ncharges, \\(-q_{D,i}\\), located on the respective core particles\n(to which each Drude particle is bonded). Therefore, Thole screening\nis not applied to the full charge of the core particle \\(q_i\\), but\nonly to the \\(-q_{D,i}\\) part of it.\n\nThe interactions between core charges are subject to the weighting\nfactors set by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. The\ninteractions between Drude particles and core charges or\nnon-polarizable atoms are also subject to these weighting factors. The\nDrude particles inherit the 1-2, 1-3 and 1-4 neighbor relations from\ntheir respective cores.\n\nFor pair_style *thole*, the following coefficients must be defined for\neach pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nas in the example above.\n\n* \\(\\alpha\\) (distance units\\^3)\n* damp\n* cutoff (distance units)\n\nThe last two coefficients are optional. If not specified the global\nThole damping parameter or global cutoff specified in the pair_style\ncommand are used. In order to specify a cutoff (third argument) a damp\nparameter (second argument) must also be specified.\n\nFor pair style *lj/cut/thole/long*, the following coefficients must be\ndefined for each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand.\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (length units)\n* \\(\\alpha\\) (distance units\\^3)\n* damp\n* LJ cutoff (distance units)\n\nThe last two coefficients are optional and default to the global values from\nthe *pair_style* command line.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe *thole* pair style does not support mixing. Thus, coefficients\nfor all I,J pairs must be specified explicitly.\n\nThe *lj/cut/thole/long* pair style does support mixing. Mixed coefficients\nare defined using\n\\[\\begin{align*} \n \\alpha_{ij} = & \\sqrt{\\alpha_i\\alpha_j} \\\\\n & \\\\\n a_{ij} = & \\frac 1 2 (a_i + a_j) \\end{align*} \\]\n\n**(Noskov1)** Noskov, Lamoureux and Roux, J Phys Chem B, 109, 6705 (2005). \n \n**(Thole1)** Chem Phys, 59, 341 (1981). \n ", - "restrictions": "These pair styles are part of the DRUDE package. They are only\nenabled if LAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair_style should currently not be used with the [charmm dihedral style ](https://docs.lammps.org/dihedral_charmm.html) if the latter has non-zero 1-4 weighting\nfactors. This is because the *thole* pair style does not know which\npairs are 1-4 partners of which dihedrals.\n\nThe *lj/cut/thole/long* pair style should be used with a [Kspace solver ](https://docs.lammps.org/kspace_style.html)\nlike PPPM or Ewald, which is only enabled if LAMMPS was built with the kspace\npackage.\n", - "related": "[fix drude ](https://docs.lammps.org/fix_drude.html), [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html)\n[pair_style lj/cut/coul/long ](https://docs.lammps.org/pair_lj_cut_coul.html)\n" + "parameters": "* style = edpd or mdpd or mdpd/rhosum or tdpd\n* args = list of arguments for a particular style \n *        edpd args = cutoff seed \n         cutoff = global cutoff for eDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, eDPD will use current time as the seed) \n *        mdpd args = T cutoff seed \n         T = temperature (temperature units) \n         cutoff = global cutoff for mDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, mDPD will use current time as the seed) \n *        mdpd/rhosum args = \n *        tdpd args = T cutoff seed \n         T = temperature (temperature units) \n         cutoff = global cutoff for tDPD interactions (distance units) \n         seed = random # seed (integer) (if <= 0, tDPD will use current time as the seed) \n", + "examples": "\n```lmps\npair_style edpd 1.58 9872598\npair_coeff * * 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10 kappa -0.44 -3.21 5.04 0.00\n\npair_style hybrid/overlay mdpd/rhosum mdpd 1.0 1.0 65689\npair_coeff 1 1 mdpd/rhosum 0.75\npair_coeff 1 1 mdpd -40.0 25.0 18.0 1.0 0.75\n\npair_style tdpd 1.0 1.58 935662\npair_coeff * * 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0\npair_coeff 1 1 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0 3.0 1.0E-5 2.0\n```\n", + "html_filename": "pair_mesodpd.html", + "short_description": "The *edpd* style computes the pairwise interactions and heat fluxes\nfor eDPD particles following the formulations in\n**Li2014_JCP** and **Li2015_CC**", + "description": "The *edpd* style computes the pairwise interactions and heat fluxes\nfor eDPD particles following the formulations in\n**Li2014_JCP** and **Li2015_CC**. The time\nevolution of an eDPD particle is governed by the conservation of\nmomentum and energy given by\n\\[\n \\frac{\\mathrm{d}^2 \\mathbf{r}_i}{\\mathrm{d} t^2}=\n \\frac{\\mathrm{d} \\mathbf{v}_i}{\\mathrm{d} t}\n =\\mathbf{F}_{i}=\\sum_{i\\neq j}(\\mathbf{F}_{ij}^{C}+\\mathbf{F}_{ij}^{D}+\\mathbf{F}_{ij}^{R}) \\\\\n C_v\\frac{\\mathrm{d} T_i}{\\mathrm{d} t}= q_{i} = \\sum_{i\\neq j}(q_{ij}^{C}+q_{ij}^{V}+q_{ij}^{R}),\\]\nwhere the three components of \\(F_{i}\\) including the conservative\nforce \\(F_{ij}^C\\), dissipative force \\(F_{ij}^D\\) and random\nforce \\(F_{ij}^R\\) are expressed as\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^{C} & = \\alpha_{ij}{\\omega_{C}}(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\\\\n \\omega_{C}(r) & = 1 - r/r_c \\\\\n \\alpha_{ij} & = A\\cdot k_B(T_i + T_j)/2 \\\\\n \\omega_{D}(r) & = \\omega^2_{R}(r) = (1-r/r_c)^s \\\\\n \\sigma_{ij}^2 & = 4\\gamma k_B T_i T_j/(T_i + T_j) \\end{align*} \\]\nin which the exponent of the weighting function *s* can be defined as a\ntemperature-dependent variable. The heat flux between particles\naccounting for the collisional heat flux \\(q^C\\), viscous heat flux\n\\(q^V\\), and random heat flux \\(q^R\\) are given by\n\\[\\begin{align*} \n q_i^C & = \\sum_{j \\ne i} k_{ij} \\omega_{CT}(r_{ij}) \\left( \\frac{1}{T_i} - \\frac{1}{T_j} \\right) \\\\\n q_i^V & = \\frac{1}{2 C_v}\\sum_{j \\ne i}{ \\left\\{ \\omega_D(r_{ij})\\left[\\gamma_{ij} \\left( \\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij} \\right)^2 - \\frac{\\left( \\sigma _{ij} \\right)^2}{m}\\right] - \\sigma _{ij} \\omega_R(r_{ij})\\left( \\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij} \\right){\\xi_{ij}} \\right\\} } \\\\\n q_i^R & = \\sum_{j \\ne i} \\beta _{ij} \\omega_{RT}(r_{ij}) d {t^{ - 1/2}} \\xi_{ij}^e \\\\\n \\omega_{CT}(r) & =\\omega_{RT}^2(r)=\\left(1-r/r_{ct}\\right)^{s_T} \\\\\n k_{ij} & =C_v^2\\kappa(T_i + T_j)^2/4k_B \\\\\n \\beta_{ij}^2 & = 2k_Bk_{ij} \\end{align*} \\]\nwhere the mesoscopic heat friction \\(\\kappa\\) is given by\n\\[\n \\kappa = \\frac{315k_B\\upsilon }{2\\pi \\rho C_v r_{ct}^5}\\frac{1}{Pr},\\]\nwith \\(\\upsilon\\) being the kinematic viscosity. For more details,\nsee Eq.(15) in **Li2014_JCP**.\n\nThe following coefficients must be defined in eDPD system for each\npair of atom types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in\nthe examples above.\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* power_f (positive real)\n* cutoff (distance units)\n* kappa (thermal conductivity units)\n* power_T (positive real)\n* cutoff_T (distance units)\n* optional keyword = power or kappa\n\nThe keyword *power* or *kappa* is optional. Both \"power\" and \"kappa\"\nrequire 4 parameters \\(c_1, c_2, c_3, c_4\\) showing the temperature\ndependence of the exponent \\(s(T) = \\mathrm{power}_f ( 1+c_1\n(T-1) + c_2 (T-1)^2 + c_3 (T-1)^3 + c_4 (T-1)^4 )\\) and of the mesoscopic\nheat friction \\(s_T(T) = \\kappa (1 + c_1 (T-1) + c_2 (T-1)^2 + c_3\n(T-1)^3 + c_4 (T-1)^4)\\). If the keyword *power* or *kappa* is not\nspecified, the eDPD system will use constant power_f and\n\\(\\kappa\\), which is independent to temperature changes.\n\n----------\n\nThe *mdpd/rhosum* style computes the local particle mass density\n\\(\\rho\\) for mDPD particles by kernel function interpolation.\n\nThe following coefficients must be defined for each pair of atom types\nvia the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* cutoff (distance units)\n\n----------\n\nThe *mdpd* style computes the many-body interactions between mDPD\nparticles following the formulations in\n**Li2013_POF**. The dissipative and random forces are in\nthe form same as the classical DPD, but the conservative force is\nlocal density dependent, which are given by\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^C & = Aw_c(r_{ij})\\mathbf{e}_{ij} + B(\\rho_i+\\rho_j)w_d(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\end{align*} \\]\nwhere the first term in \\(F_C\\) with a negative coefficient \\(A\n< 0\\) stands for an attractive force within an interaction range\n\\(r_c\\), and the second term with \\(B > 0\\) is the\ndensity-dependent repulsive force within an interaction range\n\\(r_d\\).\n\nThe following coefficients must be defined for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* A (force units)\n* B (force units)\n* \\(\\gamma\\) (force/velocity units)\n* cutoff_c (distance units)\n* cutoff_d (distance units)\n\n----------\n\nThe *tdpd* style computes the pairwise interactions and chemical\nconcentration fluxes for tDPD particles following the formulations in\n**Li2015_JCP**. The time evolution of a tDPD particle is\ngoverned by the conservation of momentum and concentration given by\n\\[\\begin{align*} \n \\frac{\\mathrm{d}^2 \\mathbf{r}_i}{\\mathrm{d} t^2} & = \\frac{\\mathrm{d} \\mathbf{v}_i}{\\mathrm{d} t}=\\mathbf{F}_{i}=\\sum_{i\\neq j}(\\mathbf{F}_{ij}^{C}+\\mathbf{F}_{ij}^{D}+\\mathbf{F}_{ij}^{R}) \\\\\n \\frac{\\mathrm{d} C_{i}}{\\mathrm{d} t} & = Q_{i} = \\sum_{i\\neq j}(Q_{ij}^{D}+Q_{ij}^{R}) + Q_{i}^{S} \\end{align*} \\]\nwhere the three components of \\(F_{i}\\) including the conservative\nforce \\(F_{ij}^C\\), dissipative force \\(F_{ij}^C\\) and random\nforce \\(F_{ij}^C\\) are expressed as\n\\[\\begin{align*} \n \\mathbf{F}_{ij}^{C} & = A{\\omega_{C}}(r_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{D} & = -\\gamma {\\omega_{D}}(r_{ij})(\\mathbf{e}_{ij} \\cdot \\mathbf{v}_{ij})\\mathbf{e}_{ij} \\\\\n \\mathbf{F}_{ij}^{R} & = \\sigma {\\omega_{R}}(r_{ij}){\\xi_{ij}}\\Delta t^{-1/2} \\mathbf{e}_{ij} \\\\\n \\omega_{C}(r) & = 1 - r/r_c \\\\\n \\omega_{D}(r) & = \\omega^2_{R}(r) = (1-r/r_c)^{\\rm power_f} \\\\\n \\sigma^2 = 2\\gamma k_B T \\end{align*} \\]\nThe concentration flux between two tDPD particles includes the Fickian\nflux \\(Q_{ij}^D\\) and random flux \\(Q_{ij}^R\\), which are given\nby\n\\[\\begin{align*} \n Q_{ij}^D & = -\\kappa_{ij} w_{DC}(r_{ij}) \\left( C_i - C_j \\right) \\\\\n Q_{ij}^R & = \\epsilon_{ij}\\left( C_i + C_j \\right) w_{RC}(r_{ij}) \\xi_{ij} \\\\\n w_{DC}(r_{ij}) & =w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^{\\rm power_{cc}} \\\\\n \\epsilon_{ij}^2 & = m_s^2\\kappa_{ij}\\rho \\end{align*} \\]\nwhere the parameters kappa and epsilon determine the strength of the\nFickian and random fluxes. \\(m_s\\) is the mass of a single solute\nmolecule. In general, \\(m_s\\) is much smaller than the mass of a\ntDPD particle *m* . For more details, see **Li2015_JCP**.\n\nThe following coefficients must be defined for each pair of atom types via the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples above.\n\n* A (force units)\n* \\(\\gamma\\) (force/velocity units)\n* power_f (positive real)\n* cutoff (distance units)\n* cutoff_CC (distance units)\n* \\(\\kappa_i\\) (diffusivity units)\n* \\(\\epsilon_i\\) (diffusivity units)\n* power_cc_i (positive real)\n\nThe last 3 values must be repeated Nspecies times, so that values for\neach of the Nspecies chemical species are specified, as indicated by\nthe \"I\" suffix. In the first pair_coeff example above for pair_style\ntdpd, Nspecies = 1. In the second example, Nspecies = 2, so 3\nadditional coeffs are specified (for species 2).\n\n----------\n\n #### Example scripts\n\nThere are example scripts for using all these pair styles in\nexamples/PACKAGES/mesodpd. The example for an eDPD simulation models heat\nconduction with source terms analog of periodic Poiseuille flow\nproblem. The setup follows Fig.12 in **Li2014_JCP**. The\noutput of the short eDPD simulation (about 2 minutes on a single core)\ngives a temperature and density profiles as\n\n ![Image](JPG/examples_edpd.jpg) \n\nThe example for a mDPD simulation models the oscillations of a liquid\ndroplet started from a liquid film. The mDPD parameters are adopted\nfrom **Li2013_POF**. The short mDPD run (about 2 minutes\non a single core) generates a particle trajectory which can\nbe visualized as follows.\n\n ![Image](JPG/examples_mdpd.gif) \n\n\n\n ![Image](JPG/examples_mdpd_first.jpg) \n\n\n ![Image](JPG/examples_mdpd_last.jpg) \n\nThe first image is the initial state of the simulation. If you\nclick it a GIF movie should play in your browser. The second image\nis the final state of the simulation.\n\nThe example for a tDPD simulation computes the effective diffusion\ncoefficient of a tDPD system using a method analogous to the periodic\nPoiseuille flow. The tDPD system is specified with two chemical\nspecies, and the setup follows Fig.1 in\n**Li2015_JCP**. The output of the short tDPD simulation\n(about one and a half minutes on a single core) gives the\nconcentration profiles of the two chemical species as\n\n ![Image](JPG/examples_tdpd.jpg) \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support\nmixing. Thus, coefficients for all I,J pairs must be specified explicitly.\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support\nthe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift, table, and tail options.\n\nThe styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not write\ninformation to [binary restart files ](https://docs.lammps.org/restart.html). Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Li2014_JCP)** Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys,\n265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003. \n \n**(Li2015_CC)** Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040\n(2015). DOI: 10.1039/C5CC01684C. \n \n**(Li2013_POF)** Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013).\nDOI: 10.1063/1.4812366. \n \n**(Li2015_JCP)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys,\n143: 014101 (2015). DOI: 10.1063/1.4923254. \n \n**(Li2015_JCP)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys,\n143: 014101 (2015). DOI: 10.1063/1.4923254. \n ", + "restrictions": "The pair styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* are part of\nthe DPD-MESO package. They are only enabled if LAMMPS was built with\nthat package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for\nmore info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [fix mvv/dpd ](https://docs.lammps.org/fix_mvv_dpd.html),\n[fix mvv/edpd ](https://docs.lammps.org/fix_mvv_dpd.html), [fix mvv/tdpd ](https://docs.lammps.org/fix_mvv_dpd.html),\n[fix edpd/source ](https://docs.lammps.org/fix_dpd_source.html), [fix tdpd/source ](https://docs.lammps.org/fix_dpd_source.html),\n[compute edpd/temp/atom ](https://docs.lammps.org/compute_edpd_temp_atom.html),\n[compute tdpd/cc/atom ](https://docs.lammps.org/compute_tdpd_cc_atom.html)\n" }, { "command": [ - "fix spring/chunk" + "angle_style zero" ], "syntax": [ - "fix ID group-ID spring/chunk K chunkID comID" + "angle_style zero keyword" ], "args": [ [ { - "arg": "fix", + "arg": "angle_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "spring/chunk", + "arg": "zero", "type": 1, "choices": [] }, { - "arg": "K", - "type": 2, - "choices": [] - }, - { - "arg": "chunkID", - "type": 2, - "choices": [] - }, - { - "arg": "comID", + "arg": "keyword", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* spring/chunk = style name of this fix command\n* K = spring constant for each chunk (force/distance units)\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\n* comID = ID of [compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html) command \n", - "examples": "\n```lmps\nfix restrain all spring/chunk 100 chunkID comID\n```\n", - "html_filename": "fix_spring_chunk.html", - "short_description": "Apply a spring force to the center-of-mass (COM) of chunks of atoms as\ndefined by the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command", - "description": "Apply a spring force to the center-of-mass (COM) of chunks of atoms as\ndefined by the [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command.\nChunks can be molecules or spatial bins or other groupings of atoms.\nThis is a way of tethering each chunk to its initial COM coordinates.\n\nThe *chunkID* is the ID of a compute chunk/atom command defined in the\ninput script. It is used to define the chunks. The *comID* is the ID\nof a compute com/chunk command defined in the input script. It is\nused to compute the COMs of each chunk.\n\nAt the beginning of the first [run ](https://docs.lammps.org/run.html) or\n[minimize ](https://docs.lammps.org/minimize.html) command after this fix is defined, the\ninitial COM of each chunk is calculated and stored as R0m, where M is\nthe chunk number. Thereafter, at every timestep (or minimization\niteration), the current COM of each chunk is calculated as Rm. A\nrestoring force of magnitude K (Rm - R0m) Mi / Mm is applied to each\natom in each chunk where *K* is the specified spring constant, Mi is\nthe mass of the atom, and Mm is the total mass of all atoms in the\nchunk. Note that *K* thus represents the spring constant for the\ntotal force on each chunk of atoms, not for a spring applied to each\natom.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the locations of the initial per-chunk center of mass\ncoordinates to [binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe fix continues in an uninterrupted fashion. Since this fix depends\non an instance of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html)\nit will check when reading the restart if the chunk still exists and\nwill define the same number of chunks. The restart data is only applied\nwhen the number of chunks matches. Otherwise the center of mass\ncoordinates are recomputed.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy stored in all the springs to the global\npotential energy of the system as part of [thermodynamic output](https://docs.lammps.org/thermo_style.html). The default setting for this fix is [fix_modifyenergy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the energy of all\nthe springs, i.e. 0.5 \\* K \\* r\\^2 per-spring.\n\nThe scalar value calculated by this fix is \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the spring energies to be included in the total\n > potential energy of the system (the quantity being minimized), you\n > MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option for this\n > fix. \n > \n\n", + "parameters": "* zero or more keywords may be appended\n* keyword = nocoeff \n", + "examples": "\n```lmps\nangle_style zero\nangle_style zero nocoeff\nangle_coeff *\nangle_coeff * 120.0\n```\n", + "html_filename": "angle_zero.html", + "short_description": "Using an angle style of zero means angle forces and energies are not\ncomputed, but the geometry of angle triplets is still accessible to\nother commands", + "description": "Using an angle style of zero means angle forces and energies are not\ncomputed, but the geometry of angle triplets is still accessible to\nother commands.\n\nAs an example, the [compute angle/local ](https://docs.lammps.org/compute_angle_local.html)\ncommand can be used to compute the theta values for the list of\ntriplets of angle atoms listed in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command. If no angle style is defined,\nthis command cannot be used.\n\nThe optional *nocoeff* flag allows to read data files with AngleCoeff\nsection for any angle style. Similarly, any [angle_coeff ](https://docs.lammps.org/angle_coeff.html) commands\nwill only be checked for the angle type number and the rest ignored.\n\nNote that the [angle_coeff ](https://docs.lammps.org/angle_coeff.html) command must be used for\nall angle types. If specified, there can be only one value, which is\ngoing to be used to assign an equilibrium angle, e.g. for use with\n[fix shake ](https://docs.lammps.org/fix_shake.html).\n", "restrictions": " none\n", - "related": "[fix spring ](https://docs.lammps.org/fix_spring.html), [fix spring/self ](https://docs.lammps.org/fix_spring_self.html),\n[fix spring/rg ](https://docs.lammps.org/fix_spring_rg.html)\n" + "related": "[angle_style none ](https://docs.lammps.org/angle_none.html)\n" }, { "command": [ - "fix heat" + "compute property/local" ], "syntax": [ - "fix ID group-ID heat N eflux" + "compute ID group-ID property/local attribute1 attribute2 ... keyword args ..." ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -39890,36 +39501,46 @@ export const command_docs = [ "choices": [] }, { - "arg": "heat", + "arg": "property/local", "type": 1, "choices": [] }, { - "arg": "N", + "arg": "attribute1", "type": 2, "choices": [] }, { - "arg": "eflux", + "arg": "attribute2", + "type": 2, + "choices": [] + }, + { + "arg": "keyword", + "type": 2, + "choices": [] + }, + { + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* heat = style name of this fix command\n* N = add/subtract heat every this many timesteps\n* eflux = rate of heat addition or subtraction (energy/time units)\n* eflux can be a variable (see below)\n* zero or more keyword/value pairs may be appended to args\n* keyword = region \n *        region value = region-ID \n         region-ID = ID of region atoms must be in to have added force \n", - "examples": "\n```lmps\nfix 3 qin heat 1 1.0\nfix 3 qin heat 10 v_flux\nfix 4 qout heat 1 -1.0 region top\n```\n", - "html_filename": "fix_heat.html", - "short_description": "Add non-translational kinetic energy (heat) to a group of atoms in a\nmanner that conserves their aggregate momentum", - "description": "Add non-translational kinetic energy (heat) to a group of atoms in a\nmanner that conserves their aggregate momentum. Two of these fixes\ncan be used to establish a temperature gradient across a simulation\ndomain by adding heat (energy) to one group of atoms (hot reservoir)\nand subtracting heat from another (cold reservoir). E.g. a simulation\nsampling from the McDLT ensemble.\n\nIf the *region* keyword is used, the atom must be in both the group\nand the specified geometric [region ](https://docs.lammps.org/region.html) in order to have\nenergy added or subtracted to it. If not specified, then the atoms in\nthe group are affected wherever they may move to.\n\nHeat addition/subtraction is performed every N timesteps.\n\nThe *eflux* parameter can be specified as a numeric constant or as an\nequal- or atom-style [variable ](https://docs.lammps.org/variable.html). If the value is a\nvariable, it should be specified as v_name, where *name* is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits current value(s) used to determine the flux.\n\nIf *eflux* is a numeric constant or equal-style variable which evaluates\nto a scalar value, then *eflux* determines the change in aggregate energy\nof the entire group of atoms per unit time, e.g. in eV/ps for\n[metal units ](https://docs.lammps.org/units.html). In this case it is an \"extensive\" quantity,\nmeaning its magnitude should be scaled with the number of atoms in the\ngroup. Note that since *eflux* also has per-time units (i.e. it is a\nflux), this means that a larger value of N will add/subtract a larger\namount of energy each time the fix is invoked.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The heat-exchange (HEX) algorithm implemented by this fix is\n > known to exhibit a pronounced energy drift. An improved algorithm\n > (eHEX) is available as a [fix ehex ](https://docs.lammps.org/fix_ehex.html) command and might be\n > preferable if energy conservation is important. \n > \n\nIf *eflux* is specified as an atom-style variable (see below), then\nthe variable computes one value per atom. In this case, each value is\nthe energy flux for a single atom, again in units of energy per unit\ntime. In this case, each value is an \"intensive\" quantity, which need\nnot be scaled with the number of atoms in the group.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent flux.\n\nAtom-style variables can specify the same formulas as equal-style\nvariables but can also include per-atom values, such as atom\ncoordinates. Thus it is easy to specify a spatially-dependent flux\nwith optional time-dependence as well.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If heat is subtracted from the system too aggressively so that\n > the group's kinetic energy would go to zero, or any individual atom's\n > kinetic energy would go to zero for the case where *eflux* is an\n > atom-style variable, then LAMMPS will halt with an error message. \n > \n\nFix heat is different from a thermostat such as [fix nvt ](https://docs.lammps.org/fix_nh.html)\nor [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) in that energy is\nadded/subtracted continually. Thus if there is not another mechanism\nin place to counterbalance this effect, the entire system will heat or\ncool continuously. You can use multiple heat fixes so that the net\nenergy change is 0.0 or use [fix viscous ](https://docs.lammps.org/fix_viscous.html) to drain\nenergy from the system.\n\nThis fix does not change the coordinates of its atoms; it only scales\ntheir velocities. Thus you must still use an integration fix\n(e.g. [fix nve ](https://docs.lammps.org/fix_nve.html)) on the affected atoms. This fix should\nnot normally be used on atoms that have their temperature controlled\nby another fix - e.g. [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) fix.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). This scalar is the most recent\nvalue by which velocities were scaled. The scalar value calculated by\nthis fix is \"intensive\". If *eflux* is specified as an atom-style\nvariable, this fix computes the average value by which the velocities\nwere scaled for all of the atoms that had their velocities scaled.\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* property/local = style name of this compute command\n* one or more attributes of the same type (neighbor, pair, bond, angle,\n dihedral, or improper) may be appended \n    possible attributes = natom1, natom2, ntype1, ntype2, \n    patom1, patom2, ptype1, ptype2, \n    batom1, batom2, btype, \n    aatom1, aatom2, aatom3, atype, \n    datom1, datom2, datom3, datom4, dtype, \n    iatom1, iatom2, iatom3, iatom4, itype \n *   * Neighbor attributes \n    natom1, natom2 = store IDs of 2 atoms in each pair (within neighbor cutoff) \n    ntype1, ntype2 = store types of 2 atoms in each pair (within neighbor cutoff) \n *   * Pair attributes \n    patom1, patom2 = store IDs of 2 atoms in each pair (within force cutoff) \n    ptype1, ptype2 = store types of 2 atoms in each pair (within force cutoff) \n *   * Bond attributes \n    batom1, batom2 = store IDs of 2 atoms in each bond \n    btype = store bond type of each bond \n *   * Angle attributes \n    aatom1, aatom2, aatom3 = store IDs of 3 atoms in each angle \n    atype = store angle type of each angle \n *   * Dihedral attributes \n    datom1, datom2, datom3, datom4 = store IDs of 4 atoms in each dihedral \n    dtype = store dihedral type of each dihedral \n *   * Improper attributes \n    iatom1, iatom2, iatom3, iatom4 = store IDs of 4 atoms in each improper \n    itype = store improper type of each improper \n* zero or more keyword/arg pairs may be appended\n* keyword = cutoff \n *        cutoff arg = type or radius \n", + "examples": "\n```lmps\ncompute 1 all property/local btype batom1 batom2\ncompute 1 all property/local atype aatom2\n```\n", + "html_filename": "compute_property_local.html", + "short_description": "Define a computation that stores the specified attributes as local\ndata so it can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html)", + "description": "Define a computation that stores the specified attributes as local\ndata so it can be accessed by other [output commands](https://docs.lammps.org/Howto_output.html). If the input attributes refer to bond information,\nthen the number of datums generated, aggregated across all processors,\nequals the number of bonds in the system. Ditto for pairs, angles,\netc.\n\nIf multiple attributes are specified then they must all generate the\nsame amount of information, so that the resulting local array has the\nsame number of rows for each column. This means that only bond\nattributes can be specified together, or angle attributes, etc. Bond\nand angle attributes cannot be mixed in the same compute\nproperty/local command.\n\nIf the inputs are pair attributes, the local data is generated by\nlooping over the pairwise neighbor list. Info about an individual\npairwise interaction will only be included if both atoms in the pair\nare in the specified compute group. For *natom1* and *natom2*, all\natom pairs in the neighbor list are considered (out to the neighbor\ncutoff = force cutoff + [neighbor skin ](https://docs.lammps.org/neighbor.html)). For *patom1*\nand *patom2*, the distance between the atoms must be less than the\nforce cutoff distance for that pair to be included, as defined by the\n[pair_style ](https://docs.lammps.org/pair_style.html) and [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommands.\n\nThe optional *cutoff* keyword determines how the force cutoff distance\nfor an interaction is determined for the *patom1* and *patom2*\nattributes. For the default setting of *type*, the pairwise cutoff\ndefined by the [pair_style ](https://docs.lammps.org/pair_style.html) command for the types of\nthe two atoms is used. For the *radius* setting, the sum of the radii\nof the two particles is used as a cutoff. For example, this is\nappropriate for granular particles which only interact when they are\noverlapping, as computed by [granular pair styles ](https://docs.lammps.org/pair_gran.html).\nNote that if a granular model defines atom types such that all\nparticles of a specific type are monodisperse (same diameter), then\nthe two settings are effectively identical.\n\nIf the inputs are bond, angle, etc attributes, the local data is\ngenerated by looping over all the atoms owned on a processor and\nextracting bond, angle, etc info. For bonds, info about an individual\nbond will only be included if both atoms in the bond are in the\nspecified compute group. Likewise for angles, dihedrals, etc.\n\nFor bonds and angles, a bonds/angles that have been broken by setting\ntheir bond/angle type to 0 will not be included. Bonds/angles that\nhave been turned off (see the [fix shake ](https://docs.lammps.org/fix_shake.html) or\n[delete_bonds ](https://docs.lammps.org/delete_bonds.html) commands) by setting their\nbond/angle type negative are written into the file. This is\nconsistent with the [compute bond/local ](https://docs.lammps.org/compute_bond_local.html) and\n[compute angle/local ](https://docs.lammps.org/compute_angle_local.html) commands\n\nNote that as atoms migrate from processor to processor, there will be\nno consistent ordering of the entries within the local vector or array\nfrom one timestep to the next. The only consistency that is\nguaranteed is that the ordering on a particular timestep will be the\nsame for local vectors or arrays generated by other compute commands.\nFor example, output from the [compute bond/local](https://docs.lammps.org/compute_bond_local.html) command can be combined with bond atom indices\nfrom this command and output by the [dump local ](https://docs.lammps.org/dump.html) command\nin a consistent way.\n\nThe *natom1* and *natom2* or *patom1* and *patom2* attributes refer\nto the atom IDs of the 2 atoms in each pairwise interaction computed\nby the [pair_style ](https://docs.lammps.org/pair_style.html) command. The *ntype1* and\n*ntype2* or *ptype1* and *ptype2* attributes refer to the atom types\nof the 2 atoms in each pairwise interaction.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For pairs, if two atoms \\(I,J\\) are involved in 1--2, 1--3, 1--4\n > interactions within the molecular topology, their pairwise interaction\n > may be turned off, and thus they may not appear in the neighbor list,\n > and will not be part of the local data created by this command. More\n > specifically, this may be true of \\(I,J\\) pairs with a weighting factor\n > of 0.0; pairs with a non-zero weighting factor are included. The\n > weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set\n > by the [special_bonds ](https://docs.lammps.org/special_bonds.html) command. \n > \n\nThe *batom1* and *batom2* attributes refer to the atom IDs of the 2\natoms in each [bond ](https://docs.lammps.org/bond_style.html). The *btype* attribute refers to\nthe type of the bond, from 1 to Nbtypes = # of bond types. The number\nof bond types is defined in the data file read by the\n[read_data ](https://docs.lammps.org/read_data.html) command.\n\nThe attributes that start with \"a\", \"d\", and \"i\" refer to similar values\nfor [angles ](https://docs.lammps.org/angle_style.html), [dihedrals ](https://docs.lammps.org/dihedral_style.html), and\n[impropers ](https://docs.lammps.org/improper_style.html).\n\n #### Output info\n\nThis compute calculates a local vector or local array depending on the\nnumber of input values. The length of the vector or number of rows in\nthe array is the number of bonds, angles, etc. If a single input is\nspecified, a local vector is produced. If two or more inputs are\nspecified, a local array is produced where the number of columns = the\nnumber of inputs. The vector or array can be accessed by any command\nthat uses local values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe vector or array values will be integers that correspond to the\nspecified attribute.\n", "restrictions": " none\n", - "related": "[fix ehex ](https://docs.lammps.org/fix_ehex.html), [compute temp ](https://docs.lammps.org/compute_temp.html), [compute temp/region ](https://docs.lammps.org/compute_temp_region.html)\n" + "related": "[dump local ](https://docs.lammps.org/dump.html), [compute reduce ](https://docs.lammps.org/compute_reduce.html)\n" }, { "command": [ - "fix_modify AtC control mask_direction" + "fix_modify AtC kernel_bandwidth" ], "syntax": [ - "fix_modify control mask_direction " + "fix_modify kernel_bandwidth " ], "args": [ [ @@ -39934,151 +39555,139 @@ export const command_docs = [ "choices": [] }, { - "arg": "control", - "type": 1, - "choices": [] - }, - { - "arg": "mask_direction", + "arg": "kernel_bandwidth", "type": 1, "choices": [] }, { - "arg": "", + "arg": "", "type": 2, "choices": [] - }, - { - "arg": "", - "type": 3, - "choices": [ - "on", - "off" - ] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* control mask_direction = name of the AtC sub-command\n* direction = select direction\n* on or off = Toggles state \n", - "examples": "\n```lmps\nfix_modify AtC control mask_direction 0 on\n```\n", - "html_filename": "atc_mask_direction.html", - "short_description": "Command to mask out certain dimensions from the atomic regulator\n", - "description": "Command to mask out certain dimensions from the atomic regulator\n", - "restrictions": "None.\n", + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* kernel_bandwidth = name of the AtC sub-command\n* value = new bandwidth value \n", + "examples": "\n```lmps\nfix_modify AtC kernel_bandwidth 8\n```\n", + "html_filename": "atc_kernel_bandwidth.html", + "short_description": "Sets a maximum parallel bandwidth for the kernel functions during\nparallel communication", + "description": "Sets a maximum parallel bandwidth for the kernel functions during\nparallel communication. If the command is not issued, the default will\nbe to assume the bandwidth of the kernel matrix corresponds to the\nnumber of sampling locations.\n", + "restrictions": "Only is used if kernel functions are being used.\n", "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "neb/spin" + "improper_style hybrid" ], "syntax": [ - "neb/spin etol ttol N1 N2 Nevery file-style arg keyword" + "improper_style hybrid style1 style2 ..." ], "args": [ [ { - "arg": "neb/spin", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "etol", - "type": 2, + "arg": "hybrid", + "type": 1, "choices": [] }, { - "arg": "ttol", + "arg": "style1", "type": 2, "choices": [] }, { - "arg": "N1", + "arg": "style2", "type": 2, "choices": [] + } + ] + ], + "parameters": "* style1,style2 = list of one or more improper styles \n", + "examples": "\n```lmps\nimproper_style hybrid harmonic cvff\nimproper_coeff 1 harmonic 120.0 30\nimproper_coeff 2 cvff 20.0 -1 2\n```\n", + "html_filename": "improper_hybrid.html", + "short_description": "The *hybrid* style enables the use of multiple improper styles in one\nsimulation", + "description": "The *hybrid* style enables the use of multiple improper styles in one\nsimulation. An improper style is assigned to each improper type. For\nexample, impropers in a polymer flow (of improper type 1) could be\ncomputed with a *harmonic* potential and impropers in the wall\nboundary (of improper type 2) could be computed with a *cvff*\npotential. The assignment of improper type to style is made via the\n[improper_coeff ](https://docs.lammps.org/improper_coeff.html) command or in the data file.\n\nIn the improper_coeff command, the first coefficient sets the improper\nstyle and the remaining coefficients are those appropriate to that\nstyle. In the example above, the 2 improper_coeff commands would set\nimpropers of improper type 1 to be computed with a *harmonic*\npotential with coefficients 120.0, 30 for \\(K\\), \\(\\chi_0\\).\nImproper type 2 would be computed with a *cvff* potential with coefficients\n20.0, -1, 2 for K, d, and n, respectively.\n\nIf improper coefficients are specified in the data file read via the\n[read_data ](https://docs.lammps.org/read_data.html) command, then the same rule applies.\nE.g. \"harmonic\" or \"cvff\", must be added after the improper type, for\neach line in the \"Improper Coeffs\" section, e.g.\n\n```\nImproper Coeffs\n\n1 harmonic 120.0 30\n2 cvff 20.0 -1 2\n...\n```\nIf *class2* is one of the improper hybrid styles, the same rule holds\nfor specifying additional AngleAngle coefficients either via the input\nscript or in the data file. I.e. *class2* must be added to each line\nafter the improper type. For\nlines in the AngleAngle Coeffs section of the data\nfile for dihedral types that are not *class2*, you must use an\nimproper style of *skip* as a placeholder, e.g.\n\n```\nAngleAngle Coeffs\n\n1 skip\n2 class2 0.0 0.0 0.0 115.06 130.01 115.06\n...\n```\nNote that it is not necessary to use the improper style *skip* in the\ninput script, since AngleAngle coefficients\nneed not be specified at all for improper types that are not *class2*.\n\nAn improper style of *none* can be specified as the second argument to\nthe improper_coeff command, if you desire to turn off certain improper\ntypes.\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n\nUnlike other improper styles, the hybrid improper style does not store\nimproper coefficient info for individual sub-styles in a [binary restart files ](https://docs.lammps.org/restart.html).\nThus when restarting a simulation from a\nrestart file, you need to re-specify improper_coeff commands.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" +}, +{ + "command": [ + "fix nvt/manifold/rattle" + ], + "syntax": [ + "fix ID group-ID nvt/manifold/rattle tol maxit manifold manifold-args keyword value ..." + ], + "args": [ + [ + { + "arg": "fix", + "type": 1, + "choices": [] }, { - "arg": "N2", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "Nevery", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "none", - "type": 3, - "choices": [ - "final", - "each", - "none" - ] + "arg": "nvt/manifold/rattle", + "type": 1, + "choices": [] }, { - "arg": "arg", + "arg": "tol", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "maxit", "type": 2, "choices": [] - } - ] - ], - "parameters": "* etol = stopping tolerance for energy (energy units)\n* ttol = stopping tolerance for torque ( units)\n* N1 = max # of iterations (timesteps) to run initial NEB\n* N2 = max # of iterations (timesteps) to run barrier-climbing NEB\n* Nevery = print replica energies and reaction coordinates every this many timesteps\n* file-style = final or each or none \n *        final arg = filename \n         filename = file with initial coords for final replica \n         coords for intermediate replicas are linearly interpolated \n         between first and last replica \n *        each arg = filename \n         filename = unique filename for each replica (except first) \n         with its initial coords \n *        none arg = no argument all replicas assumed to already have \n         their initial coords \n* keyword = verbose \n *        verbose = print supplemental information \n", - "examples": "\n```lmps\nneb/spin 0.1 0.0 1000 500 50 final coords.final\nneb/spin 0.0 0.001 1000 500 50 each coords.initial.$i\nneb/spin 0.0 0.001 1000 500 50 none verbose\n```\n", - "html_filename": "neb_spin.html", - "short_description": "Perform a geodesic nudged elastic band (GNEB) calculation using multiple\nreplicas of a system", - "description": "Perform a geodesic nudged elastic band (GNEB) calculation using multiple\nreplicas of a system. Two or more replicas must be used; the first\nand last are the end points of the transition path.\n\nGNEB is a method for finding both the spin configurations and height\nof the energy barrier associated with a transition state, e.g.\nspins to perform a collective rotation from one energy basin to\nanother.\nThe implementation in LAMMPS follows the discussion in the\nfollowing paper: **BessarabA**.\n\nEach replica runs on a partition of one or more processors. Processor\npartitions are defined at run-time using the [-partition command-line switch ](https://docs.lammps.org/Run_options.html). Note that if you have MPI installed, you\ncan run a multi-replica simulation with more replicas (partitions)\nthan you have physical processors, e.g you can run a 10-replica\nsimulation on just one or two processors. You will simply not get the\nperformance speed-up you would see with one or more physical\nprocessors per replica. See the [Howto replica ](https://docs.lammps.org/Howto_replica.html)\ndoc page for further discussion.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As explained below, a GNEB calculation performs a\n > minimization across all the replicas. One of the [spin ](https://docs.lammps.org/min_spin.html)\n > style minimizers has to be defined in your input script. \n > \n\nWhen a GNEB calculation is performed, it is assumed that each replica\nis running the same system, though LAMMPS does not check for this.\nI.e. the simulation domain, the number of magnetic atoms, the\ninteraction potentials, and the starting configuration when the neb\ncommand is issued should be the same for every replica.\n\nIn a GNEB calculation each replica is connected to other replicas by\ninter-replica nudging forces. These forces are imposed by the [fix neb/spin ](https://docs.lammps.org/fix_neb_spin.html) command, which must be used in conjunction\nwith the neb command.\nThe group used to define the fix neb/spin command defines the\nGNEB magnetic atoms which are the only ones that inter-replica springs\nare applied to.\nIf the group does not include all magnetic atoms, then non-GNEB\nmagnetic atoms have no inter-replica springs and the torques they feel\nand their precession motion is computed in the usual way due only\nto other magnetic atoms within their replica.\nConceptually, the non-GNEB atoms provide a background force field for\nthe GNEB atoms.\nTheir magnetic spins can be allowed to evolve during the GNEB\nminimization procedure.\n\nThe initial spin configuration for each of the replicas can be\nspecified in different manners via the *file-style* setting, as\ndiscussed below. Only atomic spins whose initial coordinates should\ndiffer from the current configuration need to be specified.\n\nConceptually, the initial and final configurations for the first\nreplica should be states on either side of an energy barrier.\n\nAs explained below, the initial configurations of intermediate\nreplicas can be spin coordinates interpolated in a linear fashion\nbetween the first and last replicas. This is often adequate for\nsimple transitions. For more complex transitions, it may lead to slow\nconvergence or even bad results if the minimum energy path (MEP, see\nbelow) of states over the barrier cannot be correctly converged to\nfrom such an initial path. In this case, you will want to generate\ninitial states for the intermediate replicas that are geometrically\ncloser to the MEP and read them in.\n\n----------\n\nFor a *file-style* setting of *final*, a filename is specified which\ncontains atomic and spin coordinates for zero or more atoms, in the\nformat described below.\nFor each atom that appears in the file, the new coordinates are\nassigned to that atom in the final replica. Each intermediate replica\nalso assigns a new spin to that atom in an interpolated manner.\nThis is done by using the current direction of the spin at the starting\npoint and the read-in direction as the final point.\nThe \"angular distance\" between them is calculated, and the new direction\nis assigned to be a fraction of the angular distance.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The \"angular distance\" between the starting and final point is\n > evaluated in the geodesic sense, as described in\n > **BessarabA**. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The angular interpolation between the starting and final point\n > is achieved using Rodrigues formula: \n > \n\n\\[\n \\vec{m}_i^{\\nu} = \\vec{m}_i^{I} \\cos(\\omega_i^{\\nu})\n + (\\vec{k}_i \\times \\vec{m}_i^{I}) \\sin(\\omega_i^{\\nu})\n + (1.0-\\cos(\\omega_i^{\\nu})) \\vec{k}_i (\\vec{k}_i\\cdot\n \\vec{m}_i^{I})\\]\nwhere \\(\\vec{m}_i^I\\) is the initial spin configuration for\nspin i, \\(\\omega_i^{\\nu}\\) is a rotation angle defined as:\n\\[\n \\omega_i^{\\nu} = (\\nu - 1) \\Delta \\omega_i {\\rm ~~and~~} \\Delta \\omega_i = \\frac{\\omega_i}{Q-1}\\]\nwith \\(\\nu\\) the image number, Q the total number of images, and\n\\(\\omega_i\\) the total rotation between the initial and final spins.\n\\(\\vec{k}_i\\) defines a rotation axis such as:\n\\[\n \\vec{k}_i = \\frac{\\vec{m}_i^I \\times \\vec{m}_i^F}{\\left|\\vec{m}_i^I \\times \\vec{m}_i^F\\right|}\\]\nif the initial and final spins are not aligned.\nIf the initial and final spins are aligned, then their cross\nproduct is null, and the expression above does not apply.\nIf they point toward the same direction, the intermediate images\nconserve the same orientation.\nIf the initial and final spins are aligned, but point toward\nopposite directions, an arbitrary rotation vector belonging to\nthe plane perpendicular to initial and final spins is chosen.\nIn this case, a warning message is displayed.\n\nFor a *file-style* setting of *each*, a filename is specified which is\nassumed to be unique to each replica.\nSee the [neb ](https://docs.lammps.org/neb.html) documentation page for more information about this\noption.\n\nFor a *file-style* setting of *none*, no filename is specified. Each\nreplica is assumed to already be in its initial configuration at the\ntime the neb command is issued. This allows each replica to define\nits own configuration by reading a replica-specific data or restart or\ndump file, via the [read_data ](https://docs.lammps.org/read_data.html),\n[read_restart ](https://docs.lammps.org/read_restart.html), or [read_dump ](https://docs.lammps.org/read_dump.html)\ncommands. The replica-specific names of these files can be specified\nas in the discussion above for the *each* file-style. Also see the\nsection below for how a NEB calculation can produce restart files, so\nthat a long calculation can be restarted if needed.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >None of the *file-style* settings change the initial\n > configuration of any atom in the first replica. The first replica\n > must thus be in the correct initial configuration at the time the neb\n > command is issued. \n > \n\n----------\n\nA NEB calculation proceeds in two stages, each of which is a\nminimization procedure. To enable\nthis, you must first define a\n[min_style ](https://docs.lammps.org/min_style.html), using either the *spin*,\n*spin/cg*, or *spin/lbfgs* style (see\n[min_spin ](https://docs.lammps.org/min_spin.html) for more information).\nThe other styles cannot be used, since they relax the lattice\ndegrees of freedom instead of the spins.\n\nThe minimizer tolerances for energy and force are set by *etol* and\n*ttol*, the same as for the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nA non-zero *etol* means that the GNEB calculation will terminate if the\nenergy criterion is met by every replica. The energies being compared\nto *etol* do not include any contribution from the inter-replica\nnudging forces, since these are non-conservative. A non-zero *ttol*\nmeans that the GNEB calculation will terminate if the torque criterion\nis met by every replica. The torques being compared to *ttol* include\nthe inter-replica nudging forces.\n\nThe maximum number of iterations in each stage is set by *N1* and\n*N2* . These are effectively timestep counts since each iteration of\ndamped dynamics is like a single timestep in a dynamics\n[run ](https://docs.lammps.org/run.html). During both stages, the potential energy of each\nreplica and its normalized distance along the reaction path (reaction\ncoordinate RD) will be printed to the screen and log file every\n*Nevery* timesteps. The RD is 0 and 1 for the first and last replica.\nFor intermediate replicas, it is the cumulative angular distance\n(normalized by the total cumulative angular distance) between adjacent\nreplicas, where \"distance\" is defined as the length of the 3N-vector of\nthe geodesic distances in spin coordinates, with N the number of\nGNEB spins involved (see equation (13) in **BessarabA**).\nThese outputs allow you to monitor NEB's progress in\nfinding a good energy barrier. *N1* and *N2* must both be multiples\nof *Nevery* .\n\nIn the first stage of GNEB, the set of replicas should converge toward\na minimum energy path (MEP) of conformational states that transition\nover a barrier. The MEP for a transition is defined as a sequence of\n3N-dimensional spin states, each of which has a potential energy\ngradient parallel to the MEP itself.\nThe configuration of highest energy along a MEP corresponds to a saddle\npoint. The replica states will also be roughly equally spaced along\nthe MEP due to the inter-replica nudging force added by the\n[fix neb ](https://docs.lammps.org/fix_neb.html) command.\n\nIn the second stage of GNEB, the replica with the highest energy is\nselected and the inter-replica forces on it are converted to a force\nthat drives its spin coordinates to the top or saddle point of the\nbarrier, via the barrier-climbing calculation described in\n**BessarabA**. As before, the other replicas rearrange\nthemselves along the MEP so as to be roughly equally spaced.\n\nWhen both stages are complete, if the GNEB calculation was successful,\nthe configurations of the replicas should be along (close to) the MEP\nand the replica with the highest energy should be a spin\nconfiguration at (close to) the saddle point of the transition. The\npotential energies for the set of replicas represents the energy\nprofile of the transition along the MEP.\n\n----------\n\nAn atom map must be defined which it is not by default for [atom_style atomic ](https://docs.lammps.org/atom_style.html) problems. The [atom_modify map ](https://docs.lammps.org/atom_modify.html) command can be used to do this.\n\nAn initial value can be defined for the timestep. Although, the *spin*\nminimization algorithm is an adaptive timestep methodology, so that\nthis timestep is likely to evolve during the calculation.\n\nThe minimizers in LAMMPS operate on all spins in your system, even\nnon-GNEB atoms, as defined above.\n\n----------\n\nEach file read by the neb/spin command containing spin coordinates used\nto initialize one or more replicas must be formatted as follows.\n\nThe file can be ASCII text or a gzipped text file (detected by a .gz\nsuffix). The file can contain initial blank lines or comment lines\nstarting with \"#\" which are ignored. The first non-blank, non-comment\nline should list N = the number of lines to follow. The N successive\nlines contain the following information:\n\n```\nID1 g1 x1 y1 z1 sx1 sy1 sz1\nID2 g2 x2 y2 z2 sx2 sy2 sz2\n...\nIDN gN yN zN sxN syN szN\n```\nThe fields are the atom ID, the norm of the associated magnetic spin,\nfollowed by the *x,y,z* coordinates and the *sx,sy,sz* spin coordinates.\nThe lines can be listed in any order. Additional trailing information on\nthe line is OK, such as a comment.\n\nNote that for a typical GNEB calculation you do not need to specify\ninitial spin coordinates for very many atoms to produce differing starting\nand final replicas whose intermediate replicas will converge to the\nenergy barrier. Typically only new spin coordinates for atoms\ngeometrically near the barrier need be specified.\n\nAlso note there is no requirement that the atoms in the file\ncorrespond to the GNEB atoms in the group defined by the [fix neb ](https://docs.lammps.org/fix_neb.html) command. Not every GNEB atom need be in the file,\nand non-GNEB atoms can be listed in the file.\n\n----------\n\nFour kinds of output can be generated during a GNEB calculation: energy\nbarrier statistics, thermodynamic output by each replica, dump files,\nand restart files.\n\nWhen running with multiple partitions (each of which is a replica in\nthis case), the print-out to the screen and master log.lammps file\ncontains a line of output, printed once every *Nevery* timesteps. It\ncontains the timestep, the maximum torque per replica, the maximum\ntorque per atom (in any replica), potential gradients in the initial,\nfinal, and climbing replicas, the forward and backward energy\nbarriers, the total reaction coordinate (RDT), and the normalized\nreaction coordinate and potential energy of each replica.\n\nThe \"maximum torque per replica\" is the two-norm of the\n3N-length vector given by the cross product of a spin by its\nprecession vector omega, in each replica, maximized across replicas,\nwhich is what the *ttol* setting is checking against. In this case, N is\nall the atoms in each replica. The \"maximum torque per atom\" is the\nmaximum torque component of any atom in any replica. The potential\ngradients are the two-norm of the 3N-length magnetic precession vector\nsolely due to the interaction potential i.e. without adding in\ninter-replica forces, and projected along the path tangent (as detailed\nin Appendix D of **BessarabA**).\n\nThe \"reaction coordinate\" (RD) for each replica is the two-norm of the\n3N-length vector of geodesic distances between its spins and the preceding\nreplica's spins (see equation (13) of **BessarabA**), added to\nthe RD of the preceding replica. The RD of the first replica RD1 = 0.0;\nthe RD of the final replica RDN = RDT, the total reaction coordinate.\nThe normalized RDs are divided by RDT, so that they form a monotonically\nincreasing sequence from zero to one. When computing RD, N only includes\nthe spins being operated on by the fix neb/spin command.\n\nThe forward (reverse) energy barrier is the potential energy of the\nhighest replica minus the energy of the first (last) replica.\n\nSupplementary information for all replicas can be printed out to the\nscreen and master log.lammps file by adding the *verbose* keyword. This\ninformation include the following.\nThe \"GradVidottan\" are the projections of the potential gradient for\nthe replica i on its tangent vector (as detailed in Appendix D of\n**BessarabA**).\nThe \"DNi\" are the non normalized geodesic distances (see equation (13)\nof **BessarabA**), between a replica i and the next replica\ni+1. For the last replica, this distance is not defined and a \"NAN\"\nvalue is the corresponding output.\n\nWhen a NEB calculation does not converge properly, the supplementary\ninformation can help understanding what is going wrong.\n\nWhen running on multiple partitions, LAMMPS produces additional log\nfiles for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a\nGNEB calculation, these contain the thermodynamic output for each\nreplica.\n\nIf [dump ](https://docs.lammps.org/dump.html) commands in the input script define a filename\nthat includes a *universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html),\nthen one dump file (per dump command) will be created for each\nreplica. At the end of the GNEB calculation, the final snapshot in\neach file will contain the sequence of snapshots that transition the\nsystem over the energy barrier. Earlier snapshots will show the\nconvergence of the replicas to the MEP.\n\nLikewise, [restart ](https://docs.lammps.org/restart.html) filenames can be specified with a\n*universe* or *uloop* style [variable ](https://docs.lammps.org/variable.html), to generate\nrestart files for each replica. These may be useful if the GNEB\ncalculation fails to converge properly to the MEP, and you wish to\nrestart the calculation from an intermediate point with altered\nparameters.\n\nA c file script in provided in the tool/spin/interpolate_gneb\ndirectory, that interpolates the MEP given the information provided\nby the *verbose* output option (as detailed in Appendix D of\n**BessarabA**).\n\n----------\n\n**(BessarabA)** Bessarab, Uzdin, Jonsson, Comp Phys Comm, 196,\n335-347 (2015). \n ", - "restrictions": "This command can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nFor magnetic GNEB calculations, only the *spin_none* value for the\n*line* keyword can be used when minimization styles *spin/cg* and\n*spin/lbfgs* are employed.\n\n----------\n", - "related": "[min/spin ](https://docs.lammps.org/min_spin.html), [fix neb/spin ](https://docs.lammps.org/fix_neb_spin.html)\n" -}, -{ - "command": [ - "fix_modify AtC sample_frequency" - ], - "syntax": [ - "fix_modify sample_frequency " - ], - "args": [ - [ + }, { - "arg": "fix_modify", - "type": 1, + "arg": "manifold", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "manifold-args", "type": 2, "choices": [] }, { - "arg": "sample_frequency", - "type": 1, + "arg": "keyword", + "type": 2, "choices": [] }, { - "arg": "", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* sample_frequency = name of the AtC sub-command\n* freq = frequency to sample fields in number of steps \n", - "examples": "\n```lmps\nfix_modify AtC sample_frequency 10\n```\n", - "html_filename": "atc_sample_frequency.html", - "short_description": "Specifies a frequency at which fields are computed for the case where\ntime filters are being applied", - "description": "Specifies a frequency at which fields are computed for the case where\ntime filters are being applied.\n", - "restrictions": "Must be used with [fix atc hardy ](https://docs.lammps.org/fix_atc.html) and is only relevant when time filters are being used.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/manifold/rattle = style name of this fix command\n* tol = tolerance to which Newton iteration must converge\n* maxit = maximum number of iterations to perform\n* manifold = name of the manifold\n* manifold-args = parameters for the manifold\n* one or more keyword/value pairs may be appended \n *      keyword = temp or tchain or every \n       temp values = Tstart Tstop Tdamp \n       Tstart, Tstop = external temperature at start/end of run \n       Tdamp = temperature damping parameter (time units) \n       tchain value = N \n       N = length of thermostat chain (1 = single thermostat) \n       every value = N \n       N = print info about iteration every N steps. N = 0 means no output \n", + "examples": "\n```lmps\nfix 1 all nvt/manifold/rattle 1e-4 10 cylinder 3.0 temp 1.0 1.0 10.0\n```\n", + "html_filename": "fix_nvt_manifold_rattle.html", + "short_description": "This fix combines the RATTLE-based **Andersen2** time\nintegrator of [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n**Paquay3** with a Nose-Hoover-chain thermostat to sample the\ncanonical ensemble of particles constrained to a curved surface\n(manifold)", + "description": "This fix combines the RATTLE-based **Andersen2** time\nintegrator of [fix nve/manifold/rattle ](https://docs.lammps.org/fix_nve_manifold_rattle.html)\n**Paquay3** with a Nose-Hoover-chain thermostat to sample the\ncanonical ensemble of particles constrained to a curved surface\n(manifold). This sampling does suffer from discretization bias of\nO(dt). For a list of currently supported manifolds and their\nparameters, see the [Howto manifold ](https://docs.lammps.org/Howto_manifold.html) doc page.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n**(Andersen2)** Andersen, J. Comp. Phys. 52, 24, (1983). \n \n**(Paquay3)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/). \n ", + "restrictions": "This fix is part of the MANIFOLD package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\n----------\n", + "related": "[fix nve/manifold/rattle ](https://docs.lammps.org/fix_nvt_manifold_rattle.html), [fix manifoldforce ](https://docs.lammps.org/fix_manifoldforce.html) **Default:** every = 0\n\n----------\n\n.. _Andersen2:\n\n**(Andersen)** Andersen, J. Comp. Phys. 52, 24, (1983).\n\n.. _Paquay3:\n\n**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).\npreprint available at [arXiv:1411.3019](https://arxiv.org/abs/1411.3019/).\n" }, { "command": [ - "fix neb" + "fix nve/spin" ], "syntax": [ - "fix ID group-ID neb Kspring keyword value" + "fix ID group-ID nve/spin keyword values" ], "args": [ [ @@ -40098,302 +39707,217 @@ export const command_docs = [ "choices": [] }, { - "arg": "neb", + "arg": "nve/spin", "type": 1, "choices": [] }, { - "arg": "Kspring", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "end", - "type": 3, - "choices": [ - "parallel", - "perp", - "end" - ] - }, - { - "arg": "value", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* neb = style name of this fix command\n* Kspring = spring constant for parallel nudging force (force/distance units or force units, see parallel keyword)\n* zero or more keyword/value pairs may be appended\n* keyword = parallel or perp or end \n *      parallel value = neigh or ideal or equal \n       neigh = parallel nudging force based on distance to neighbor replicas (Kspring = force/distance units) \n       ideal = parallel nudging force based on interpolated ideal position (Kspring = force units) \n       equal = parallel nudging force based on interpolated ideal position before climbing, then interpolated ideal energy whilst climbing (Kspring = force units) \n *      perp value = Kspring2 \n       Kspring2 = spring constant for perpendicular nudging force (force/distance units) \n *      end values = estyle Kspring3 \n       estyle = first or last or last/efirst or last/efirst/middle \n       first = apply force to first replica \n       last = apply force to last replica \n       last/efirst = apply force to last replica and set its target energy to that of first replica \n       last/efirst/middle = same as last/efirst plus prevent middle replicas having lower energy than first replica \n       Kspring3 = spring constant for target energy term (1/distance units) \n", - "examples": "\n```lmps\nfix 1 active neb 10.0\nfix 2 all neb 1.0 perp 1.0 end last\nfix 2 all neb 1.0 perp 1.0 end first 1.0 end last 1.0\nfix 1 all neb 1.0 parallel ideal end last/efirst 1\n```\n", - "html_filename": "fix_neb.html", - "short_description": "Add nudging forces to atoms in the group for a multi-replica\nsimulation run via the [neb ](https://docs.lammps.org/neb.html) command to perform a nudged\nelastic band (NEB) calculation for finding the transition state", - "description": "Add nudging forces to atoms in the group for a multi-replica\nsimulation run via the [neb ](https://docs.lammps.org/neb.html) command to perform a nudged\nelastic band (NEB) calculation for finding the transition state.\nHi-level explanations of NEB are given with the [neb ](https://docs.lammps.org/neb.html) command\nand on the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc page. The fix neb\ncommand must be used with the \"neb\" command and defines how\ninter-replica nudging forces are computed. A NEB calculation is\ndivided in two stages. In the first stage n replicas are relaxed\ntoward a MEP until convergence. In the second stage, the climbing\nimage scheme (see **Henkelman2**) is enabled, so that the\nreplica having the highest energy relaxes toward the saddle point\n(i.e. the point of highest energy along the MEP), and a second\nrelaxation is performed.\n\nA key purpose of the nudging forces is to keep the replicas equally\nspaced. During the NEB calculation, the \\(3N\\)-length vector of\ninteratomic force \\(F_i = -\\nabla V\\) for each replica *i* is\naltered. For all intermediate replicas (i.e. for \\(1 < i < N\\),\nexcept the climbing replica) the force vector becomes:\n\\[\n F_i = -\\nabla V + (\\nabla V \\cdot T') T' + F_\\parallel + F_\\perp\\]\nT' is the unit \"tangent\" vector for replica *i* and is a function of\n\\(R_i, R_{i-1}, R_{i+1}\\), and the potential energy of the 3\nreplicas; it points roughly in the direction of \\(R_{i+i} -\nR_{i-1}\\); see the **Henkelman1** paper for details.\n\\(R_i\\) are the atomic coordinates of replica *i*; \\(R_{i-1}\\)\nand \\(R_{i+1}\\) are the coordinates of its neighbor replicas. The\nterm \\(\\nabla V \\cdot T'\\) is used to remove the component of the\ngradient parallel to the path which would tend to distribute the replica\nunevenly along the path. \\(F_\\parallel\\) is an artificial nudging\nforce which is applied only in the tangent direction and which maintains\nthe equal spacing between replicas (see below for more information).\n\\(F_\\perp\\) is an optional artificial spring which is applied in a\ndirection perpendicular to the tangent direction and which prevent the\npaths from forming acute kinks (see below for more information).\n\nIn the second stage of the NEB calculation, the interatomic force \\(F_i\\)\nfor the climbing replica (the replica of highest energy after the\nfirst stage) is changed to:\n\\[\n F_i = -\\nabla V + 2 (\\nabla V \\cdot T') T' + F_\\perp\\]\nand the relaxation procedure is continued to a new converged MEP.\n\n----------\n\nThe keyword *parallel* specifies how the parallel nudging force is\ncomputed. With a value of *neigh*, the parallel nudging force is\ncomputed as in **Henkelman1** by connecting each\nintermediate replica with the previous and the next image:\n\\[\n F_\\parallel = Kspring \\cdot \\left(\\left|R_{i+1} - R_i\\right| - \\left|R_i - R_{i-1}\\right|\\right)\\]\nNote that in this case the specified *Kspring* is in\nforce/distance units.\n\nWith a value of *ideal*, the spring force is computed as suggested in\n**WeinanE**\n\\[\n F_\\parallel = -Kspring \\cdot (RD - RD_{ideal}) / (2 \\cdot meanDist)\\]\nwhere *RD* is the \"reaction coordinate\" see [neb ](https://docs.lammps.org/neb.html) section,\nand \\(RD_{ideal}\\) is the ideal *RD* for which all the images are\nequally spaced. I.e. \\(RD_{ideal} = (i-1) \\cdot meanDist\\) when the\nclimbing replica is off, where *i* is the replica number). The\n*meanDist* is the average distance between replicas. Note that in this\ncase the specified *Kspring* is in force units. When the climbing\nreplica is on, \\(RD_{ideal}\\) and \\(meanDist\\) are calculated\nseparately each side of the climbing image. Note that the *ideal* form\nof nudging can often be more effective at keeping the replicas equally\nspaced before climbing, then equally spaced either side of the climbing\nimage whilst climbing.\n\nWith a value of *equal* the spring force is computed as for *ideal* when\nthe climbing replica is off, promoting equidistance. When the climbing\nreplica is on, the spring force is computed to promote equidistant\nabsolute differences in energy, rather than distance, each side of the\nclimbing image:\n\\[\n F_\\parallel = -Kspring \\cdot (ED - ED_{ideal}) / (2 \\cdot meanEDist)\\]\nwhere *ED* is the cumulative sum of absolute energy differences:\n\\[\n ED = \\sum_{i E\\), the interatomic force \\(F_i\\) for the\nspecified replica becomes:\n\\[\\begin{align*} \n F_i & = -\\nabla V + (\\nabla V \\cdot T' + (E - E_{Target}) \\cdot K_{spring3}) T', \\qquad \\textrm{when} \\quad \\nabla V \\cdot T' < 0 \\\\\n F_i & = -\\nabla V + (\\nabla V \\cdot T' + (E_{Target} - E) \\cdot K_{spring3}) T', \\qquad \\textrm{when} \\quad \\nabla V \\cdot T' > 0 \\end{align*} \\]\nThe \"spring\" constant on the difference in energies is the specified\n*Kspring3* value.\n\nWhen *estyle* is specified as *first*, the force is applied to the first\nreplica. When *estyle* is specified as *last*, the force is applied to\nthe last replica. Note that the *end* keyword can be used twice to add\nforces to both the first and last replicas.\n\nFor both these *estyle* settings, the target energy *ETarget* is set\nto the initial energy of the replica (at the start of the NEB\ncalculation).\n\nIf the *estyle* is specified as *last/efirst* or *last/efirst/middle*,\nforce is applied to the last replica, but the target energy *ETarget* is\ncontinuously set to the energy of the first replica, as it evolves\nduring the NEB relaxation.\n\nThe difference between these two *estyle* options is as follows. When\n*estyle* is specified as *last/efirst*, no change is made to the\ninter-replica force applied to the intermediate replicas (neither first\nor last). If the initial path is too far from the MEP, an intermediate\nreplica may relax \"faster\" and reach a lower energy than the last\nreplica. In this case the intermediate replica will be relaxing toward\nits own local minima. This behavior can be prevented by specifying\n*estyle* as *last/efirst/middle* which will alter the inter-replica\nforce applied to intermediate replicas by removing the contribution of\nthe gradient to the inter-replica force. This will only be done if a\nparticular intermediate replica has a lower energy than the first\nreplica. This should effectively prevent the intermediate replicas from\nover-relaxing.\n\nAfter converging a NEB calculation using an *estyle* of\n*last/efirst/middle*, you should check that all intermediate replicas\nhave a larger energy than the first replica. If this is not the case,\nthe path is probably not a MEP.\n\nFinally, note that the last replica may never reach the target energy\nif it is stuck in a local minima which has a larger energy than the\ntarget energy.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\nas invoked by the [minimize ](https://docs.lammps.org/minimize.html) command via the\n[neb ](https://docs.lammps.org/neb.html) command.\n\n**(Henkelman2)** Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,\n9901-9904 (2000). \n \n**(Henkelman1)** Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000). \n \n**(WeinanE)** E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002). \n \n**(Maras1)** Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,\nComp Phys Comm, 205, 13-21 (2016). \n \n**(Jonsson)** Jonsson, Mills and Jacobsen, in Classical and Quantum\nDynamics in Condensed Phase Simulations, edited by Berne, Ciccotti,\nand Coker World Scientific, Singapore, 1998, p 385. \n ", - "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[neb ](https://docs.lammps.org/neb.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nve/spin = style name of this fix command\n* keyword = lattice \n *        lattice value = moving or frozen \n         moving = integrate both spin and atomic degress of freedom \n         frozen = integrate spins on a fixed lattice \n", + "examples": "\n```lmps\nfix 3 all nve/spin lattice moving\nfix 1 all nve/spin lattice frozen\n```\n", + "html_filename": "fix_nve_spin.html", + "short_description": "Perform a symplectic integration for the spin or spin-lattice system", + "description": "Perform a symplectic integration for the spin or spin-lattice system.\n\nThe *lattice* keyword defines if the spins are integrated on a lattice\nof fixed atoms (lattice = frozen), or if atoms are moving\n(lattice = moving).\nThe first case corresponds to a spin dynamics calculation, and\nthe second to a spin-lattice calculation.\nBy default a spin-lattice integration is performed (lattice = moving).\n\nThe *nve/spin* fix applies a Suzuki-Trotter decomposition to\nthe equations of motion of the spin lattice system, following the scheme:\n\n ![Image](JPG/fix_integration_spin_stdecomposition.jpg) \n\naccording to the implementation reported in **Omelyan1**.\n\nA sectoring method enables this scheme for parallel calculations.\nThe implementation of this sectoring algorithm is reported\nin **Tranchida1**.\n\n----------\n\n**(Omelyan1)** Omelyan, Mryglod, and Folk. Phys. Rev. Lett.\n86(5), 898. (2001). \n \n**(Tranchida1)** Tranchida, Plimpton, Thibaudeau and Thompson,\nJournal of Computational Physics, 372, 406-425, (2018). \n ", + "restrictions": "This fix style can only be used if LAMMPS was built with the SPIN\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n\nTo use the spin algorithm, it is necessary to define a map with\nthe atom_modify command. Typically, by adding the command:\n\n```lmps\natom_modify map array\n```\nbefore you create the simulation box. Note that the keyword \"hash\"\ninstead of \"array\" is also valid.\n", + "related": "[atom_style spin ](https://docs.lammps.org/atom_style.html), [fix nve ](https://docs.lammps.org/fix_nve.html)\n" }, { "command": [ - "dihedral_style multi/harmonic", - "dihedral_style multi/harmonic/omp" + "compute angle" ], "syntax": [ - "dihedral_style multi/harmonic" + "compute ID group-ID angle" ], "args": [ [ { - "arg": "dihedral_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "multi/harmonic", - "type": 3, - "choices": [ - "multi/harmonic", - "multi/harmonic/omp" - ] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\ndihedral_style multi/harmonic\ndihedral_coeff 1 20 20 20 20 20\n```\n", - "html_filename": "dihedral_multi_harmonic.html", - "short_description": "The *multi/harmonic* dihedral style uses the potential\n\\[\n E = \\sum_{n=1,5} A_n \\cos^{n-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* \\(A_3\\) (energy)\n* \\(A_4\\) (energy)\n* \\(A_5\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix", - "description": "The *multi/harmonic* dihedral style uses the potential\n\\[\n E = \\sum_{n=1,5} A_n \\cos^{n-1}(\\phi)\\]\nThe following coefficients must be defined for each dihedral type via the\n[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(A_1\\) (energy)\n* \\(A_2\\) (energy)\n* \\(A_3\\) (energy)\n* \\(A_4\\) (energy)\n* \\(A_5\\) (energy)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This dihedral style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", - "related": "[dihedral_coeff ](https://docs.lammps.org/dihedral_coeff.html)\n" -}, -{ - "command": [ - "pair_style mie/cut", - "pair_style mie/cut/gpu" - ], - "syntax": [ - "pair_style mie/cut cutoff" - ], - "args": [ - [ - { - "arg": "pair_style", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "mie/cut", - "type": 3, - "choices": [ - "mie/cut", - "mie/cut/gpu" - ] - }, - { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "* cutoff = global cutoff for mie/cut interactions (distance units) \n", - "examples": "\n```lmps\npair_style mie/cut 10.0\npair_coeff 1 1 0.72 3.40 23.00 6.66\npair_coeff 2 2 0.30 3.55 12.65 6.00\npair_coeff 1 2 0.46 3.32 16.90 6.31\n```\n", - "html_filename": "pair_mie.html", - "short_description": "The *mie/cut* style computes the Mie potential, given by\n\\[\n E = C \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{rep}} - \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{att}} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and C is a function that depends on the repulsive and\nattractive exponents, given by:\n\\[\n C = \\left(\\frac{\\gamma_{rep}}{\\gamma_{rep}-\\gamma_{att}}\\right) \\left(\\frac{\\gamma_{rep}}{\\gamma_{att}}\\right)^{\\left(\\frac{\\gamma_{att}}{\\gamma_{rep}-\\gamma_{att}}\\right)}\\]\nNote that for 12/6 exponents, C is equal to 4 and the formula is the\nsame as the standard Lennard-Jones potential", - "description": "The *mie/cut* style computes the Mie potential, given by\n\\[\n E = C \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{rep}} - \\left(\\frac{\\sigma}{r}\\right)^{\\gamma_{att}} \\right]\n \\qquad r < r_c\\]\n\\(r_c\\) is the cutoff and C is a function that depends on the repulsive and\nattractive exponents, given by:\n\\[\n C = \\left(\\frac{\\gamma_{rep}}{\\gamma_{rep}-\\gamma_{att}}\\right) \\left(\\frac{\\gamma_{rep}}{\\gamma_{att}}\\right)^{\\left(\\frac{\\gamma_{att}}{\\gamma_{rep}-\\gamma_{att}}\\right)}\\]\nNote that for 12/6 exponents, C is equal to 4 and the formula is the\nsame as the standard Lennard-Jones potential.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands, or by mixing as described below:\n\n* epsilon (energy units)\n* sigma (distance units)\n* gammaR\n* gammaA\n* cutoff (distance units)\n\nThe last coefficient is optional. If not specified, the global\ncutoff specified in the pair_style command is used.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, the epsilon and sigma coefficients\nand cutoff distance for all of the mie/cut pair styles can be mixed.\nIf not explicitly defined, both the repulsive and attractive gamma\nexponents for different atoms will be calculated following the same\nmixing rule defined for distances. The default mix value is\n*geometric* . See the \"pair_modify\" command for details.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the pair interaction.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) tail\noption for adding a long-range tail correction to the energy and\npressure of the pair interaction.\n\nThis pair style writes its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n", - "restrictions": "This pair style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "improper_style cossq", - "improper_style cossq/omp" - ], - "syntax": [ - "improper_style cossq" - ], - "args": [ - [ + }, { - "arg": "improper_style", + "arg": "angle", "type": 1, "choices": [] - }, - { - "arg": "cossq", - "type": 3, - "choices": [ - "cossq", - "cossq/omp" - ] } ] ], - "parameters": "", - "examples": "\n```lmps\nimproper_style cossq\nimproper_coeff 1 4.0 0.0\n```\n", - "html_filename": "improper_cossq.html", - "short_description": "The *cossq* improper style uses the potential\n\\[\n E = \\frac{1}{2} K \\cos^2{\\left(\\chi - \\chi_0\\right)}\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its\nequilibrium value, and \\(K\\) is a prefactor", - "description": "The *cossq* improper style uses the potential\n\\[\n E = \\frac{1}{2} K \\cos^2{\\left(\\chi - \\chi_0\\right)}\\]\nwhere \\(\\chi\\) is the improper angle, \\(\\chi_0\\) is its\nequilibrium value, and \\(K\\) is a prefactor.\n\nIf the 4 atoms in an improper quadruplet (listed in the data file read\nby the [read_data ](https://docs.lammps.org/read_data.html) command) are ordered I,J,K,L then\n\\(\\chi\\) is the angle between the plane of I,J,K and the plane of J,K,L.\nAlternatively, you can think of atoms J,K,L as being in a plane, and\natom I above the plane, and \\(\\chi\\) as a measure of how far\nout-of-plane I is with respect to the other 3 atoms.\n\nNote that defining 4 atoms to interact in this way, does not mean that\nbonds necessarily exist between I-J, J-K, or K-L, as they would in a\nlinear dihedral. Normally, the bonds I-J, I-K, I-L would exist for an\nimproper to be defined between the 4 atoms.\n\nThe following coefficients must be defined for each improper type via\nthe [improper_coeff ](https://docs.lammps.org/improper_coeff.html) command as in the example\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* \\(K\\) (energy)\n* \\(\\chi_0\\) (degrees)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This improper style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\ndoc page for more info.\n", - "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* angle = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all angle\n```\n", + "html_filename": "compute_angle.html", + "short_description": "Define a computation that extracts the angle energy calculated by each of the\nangle sub-styles used in the [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) command", + "description": "Define a computation that extracts the angle energy calculated by each of the\nangle sub-styles used in the [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) command.\nThese values are made accessible for output or further processing by other\ncommands. The group specified for this command is ignored.\n\nThis compute is useful when using [angle_style hybrid ](https://docs.lammps.org/angle_hybrid.html) if\nyou want to know the portion of the total energy contributed by one or more of\nthe hybrid sub-styles.\n\n #### Output info\n\nThis compute calculates a global vector of length *N*, where *N* is the number\nof sub_styles defined by the [angle_style hybrid ](https://docs.lammps.org/angle_style.html) command,\nwhich can be accessed by indices 1 through *N*. These values can be used by\nany command that uses global scalar or vector values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe vector values are \"extensive\" and will be in energy\n[units ](https://docs.lammps.org/units.html).\n", + "restrictions": "none\n", + "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute pair ](https://docs.lammps.org/compute_pair.html)\n" }, { "command": [ - "pair_style hdnnp" + "compute stress/cartesian" ], "syntax": [ - "pair_style hdnnp cutoff keyword value ..." + "compute ID group-ID stress/cartesian args" ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "hdnnp", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "cfenergy", - "type": 3, - "choices": [ - "dir", - "showew", - "showewsum", - "maxew", - "resetew", - "cflength", - "cfenergy" - ] + "arg": "stress/cartesian", + "type": 1, + "choices": [] }, { - "arg": "value", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* cutoff = short-range cutoff of HDNNP (maximum symmetry function cutoff radius)\n* zero or more keyword/value pairs may be appended\n* keyword = dir or showew or showewsum or maxew or resetew or cflength or cfenergy\n* value depends on the preceding keyword: \n *    dir value = directory \n     directory = Path to HDNNP configuration files \n *    showew value = yes or no \n *    showewsum value = summary \n     summary = Write EW summary every this many timesteps (*0* turns summary off) \n *    maxew value = threshold \n     threshold = Maximum number of EWs allowed \n *    resetew value = yes or no \n *    cflength value = length \n     length = Length unit conversion factor \n *    cfenergy value = energy \n     energy = Energy unit conversion factor \n", - "examples": "\n```lmps\npair_style hdnnp 6.35 showew yes showewsum 100 maxew 1000 resetew yes cflength 1.8897261328 cfenergy 0.0367493254\npair_coeff * * H O\n\npair_style hdnnp 6.01 dir \"./\" showewsum 10000\npair_coeff * * S Cu NULL Cu\n```\n", - "html_filename": "pair_hdnnp.html", - "short_description": "This pair style adds an interaction based on the high-dimensional neural network\npotential (HDNNP) method as presented in **Behler_Parrinello_2007**", - "description": "This pair style adds an interaction based on the high-dimensional neural network\npotential (HDNNP) method as presented in **Behler_Parrinello_2007**. HDNNPs are machine learning potentials which require\ncareful training of neural networks prior to application in MD simulations. The\npair style uses an interface to the *n2p2* library :ref:`(Singraber, Behler and\nDellago 2019) ` which is available on Github\n[here](https://github.com/CompPhysVienna/n2p2)_. Please see the *n2p2*\n[documentation](https://compphysvienna.github.io/n2p2/)_ for further details.\n*n2p2* (and hence this pair style) is compatible with neural network potentials\ntrained with its own tools **Singraber_et_al_2019**\nand with [RuNNer](https://www.uni-goettingen.de/de/560580.html)_.\n\nOnly a single *pair_coeff* command with two asterisk wild-cards is used with this\npair style. Its additional arguments define the mapping of LAMMPS atom types to\nn2p2 elements.\n\n```lmps\npair_coeff * * H O\n```\nIn the above example LAMMPS types 1 and 2 are mapped to the elements \"H\" and \"O\"\nin n2p2, respectively. Multiple types may map to the same element, or some types\nmay not be mapped at all. For example, if the LAMMPS simulation has four atom\ntypes, the command\n\n```lmps\npair_coeff * * H H O NULL\n```\nmaps atom types 1 and 2 to the element \"H\", type 3 to \"O\" and type 4 is not mapped\n(indicated by NULL). Atoms mapped to NULL are ignored by the HDNNP calculation,\ni.e. they do not contribute in any way to the evaluation of HDNNP energies and forces.\nThis may be useful in a setup with [hybrid pair styles ](https://docs.lammps.org/pair_hybrid.html).\n\n----\n\nThe mandatory pair style argument *cutoff* must match the short-range cutoff radius\nof the HDNNP. This corresponds to the maximum cutoff radius of all symmetry\nfunctions (the atomic environment descriptors of HDNNPs) used.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The cutoff must be given in LAMMPS length units, even if the neural network\n > potential has been trained using a different unit system (see remarks about the\n > *cflength* and *cfenergy* keywords below for details). \n > \n\nThe numeric value may be slightly larger than the actual maximum symmetry\nfunction cutoff radius (to account for rounding errors when converting units),\nbut must not be smaller.\n\nUse the *dir* keyword to specify the directory containing the HDNNP configuration\nfiles. The directory must contain ``input.nn`` with neural network and symmetry\nfunction setup, ``scaling.data`` with symmetry function scaling data and\n``weights.???.data`` with weight parameters for each element.\n\nThe keyword *showew* can be used to turn on/off the display of extrapolation\nwarnings (EWs) which are issued whenever a symmetry function value is out of\nbounds defined by minimum/maximum values in ``scaling.data``. An extrapolation\nwarning may look like this:\n\n```lmps\n### NNP EXTRAPOLATION WARNING ### STRUCTURE: 0 ATOM: 119 ELEMENT: Cu SYMFUNC: 32 TYPE: 3 VALUE: 2.166E-02 MIN: 2.003E-05 MAX: 1.756E-02\n```\nstating that the value 2.166E-02 of symmetry function 32 of type 3 (Narrow Angular symmetry function), element Cu (see the log file for a symmetry function listing) was out\nof bounds (maximum in ``scaling.data`` is 1.756E-02) for atom 119. Here, the\natom index refers to the LAMMPS tag (global index) and the structure index is\nused to print out the MPI rank the atom belongs to.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The *showew* keyword should only be set to *yes* for debugging purposes.\n > Extrapolation warnings may add lots of overhead as they are communicated each\n > timestep. Also, if the simulation is run in a region where the HDNNP was not\n > correctly trained, lots of extrapolation warnings may clog log files and the\n > console. In a production run use *showewsum* instead. \n > \n\nThe keyword *showewsum* can be used to get an overview of extrapolation warnings\noccurring during an MD simulation. The argument specifies the interval at which\nextrapolation warning summaries are displayed and logged. An EW summary may look\nlike this:\n\n```lmps\n### NNP EW SUMMARY ### TS: 100 EW 11 EWPERSTEP 1.100E-01\n```\nHere, at timestep 100 the occurrence of 11 extrapolation warnings since the last\nsummary is reported, which corresponds to an EW rate of 0.11 per timestep.\nSetting *showewsum* to 0 deactivates the EW summaries.\n\nA maximum number of allowed extrapolation warnings can be specified with the\n*maxew* keyword. If the number of EWs exceeds the *maxew* argument the\nsimulation is stopped. Note however that this is merely an approximate threshold\nsince the check is only performed at the end of each timestep and each MPI\nprocess counts individually to minimize communication overhead.\n\nThe keyword *resetew* alters the behavior of the above mentioned *maxew*\nthreshold. If *resetew* is set to *yes* the threshold is applied on a\nper-timestep basis and the internal EW counters are reset at the beginning of\neach timestep. With *resetew* set to *no* the counters accumulate EWs along the\nwhole trajectory.\n\nIf the training of a neural network potential has been performed with different\nphysical units for length and energy than those set in LAMMPS, it is still\npossible to use the potential when the unit conversion factors are provided via\nthe *cflength* and *cfenergy* keywords. If for example, the HDNNP was\nparameterized with Bohr and Hartree training data and symmetry function\nparameters (i.e. distances and energies in \"input.nn\" are given in Bohr and\nHartree) but LAMMPS is set to use *metal* units (Angstrom and eV) the correct\nconversion factors are:\n\n```lmps\ncflength 1.8897261328\n\ncfenergy 0.0367493254\n```\nThus, arguments of *cflength* and *cfenergy* are the multiplicative factors\nrequired to convert lengths and energies given in LAMMPS units to respective\nquantities in native HDNNP units (1 Angstrom = 1.8897261328 Bohr, 1 eV =\n0.0367493254 Hartree).\n\n----\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis style does not support mixing. The [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command\nshould only be invoked with asterisk wild cards (see above).\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis style does not write information to [binary restart files ](https://docs.lammps.org/restart.html).\nThus, you need to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis style can only be used via the *pair* keyword of the [run_style respa](https://docs.lammps.org/run_style.html) command. It does not support the *inner*, *middle*, *outer*\nkeywords.\n\n**(Behler_Parrinello_2007)** Behler, J.; Parrinello, M. Phys. Rev. Lett. 2007, 98 (14), 146401. \n \n**(Singraber_et_al_2019)** Singraber, A.; Morawietz, T.; Behler, J.; Dellago, C., J. Chem. Theory Comput. 2019, 15 (5), 3075-3092. \n ", - "restrictions": "This pair style is part of the ML-HDNNP package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n\nPlease report bugs and feature requests to the [n2p2 GitHub issue page](https://github.com/CompPhysVienna/n2p2/issues)_.\n\nRelated commands\n^^^^^^^^^^^^^^^^\n\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_hybrid ](https://docs.lammps.org/pair_hybrid.html), [units ](https://docs.lammps.org/units.html)\n\nDefault\n^^^^^^^\n\nThe default options are *dir* = \"hdnnp/\", *showew* = yes, *showewsum* = 0, *maxew*\n= 0, *resetew* = no, *cflength* = 1.0, *cfenergy* = 1.0.\n\n----\n\n.. _Behler_Parrinello_2007:\n\n**(Behler and Parrinello 2007)** Behler, J.; Parrinello, M. Phys. Rev. Lett. 2007, 98 (14), 146401.\n\n.. _Singraber_Behler_Dellago_2019:\n\n**(Singraber, Behler and Dellago 2019)** Singraber, A.; Behler, J.; Dellago, C. J., Chem. Theory Comput. 2019, 15 (3), 1827-1840\n\n.. _Singraber_et_al_2019:\n\n**(Singraber et al 2019)** Singraber, A.; Morawietz, T.; Behler, J.; Dellago, C., J. Chem. Theory Comput. 2019, 15 (5), 3075-3092.\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* args = argument specific to the compute style \n *   *stress/cartesian* args = dim1 bin_width1 dim2 bin_width2 keyword \n    dim1 = x or y or z \n    bin_width1 = width of the bin \n    dim2 = x or y or z or NULL \n    bin_width2 = width of the bin \n    keyword = ke or pair or bond \n", + "examples": "\n```lmps\ncompute 1 all stress/cartesian x 0.1 NULL 0\ncompute 1 all stress/cartesian y 0.1 z 0.1\ncompute 1 all stress/cartesian x 0.1 NULL 0 ke pair\n```\n", + "html_filename": "compute_stress_cartesian.html", + "short_description": "Compute *stress/cartesian* defines computations that calculate profiles of the\ndiagonal components of the local stress tensor over one or two Cartesian\ndimensions, as described in **Ikeshoji2**", + "description": "Compute *stress/cartesian* defines computations that calculate profiles of the\ndiagonal components of the local stress tensor over one or two Cartesian\ndimensions, as described in **Ikeshoji2**. The stress tensor is\nsplit into a kinetic contribution \\(P^k\\) and a virial contribution\n\\(P^v\\). The sum gives the total stress tensor \\(P = P^k+P^v\\).\nThis compute obeys momentum balance through fluid interfaces. They use the\nIrving--Kirkwood contour, which is the straight line between particle pairs.\n\n **New in version 15Jun2023** \n\n Added support for bond styles\nThis compute only supports pair and bond (no angle, dihedral, improper,\nor kspace) forces. By default, if no extra keywords are specified, all\nsupported contributions to the stress are included (ke, pair, bond). If any\nkeywords are specified, then only those components are summed.\n\n #### Output info\n\nThe output columns for *stress/cartesian* are the position of the\ncenter of the local volume in the first and second dimensions, number\ndensity, \\(P^k_{xx}\\), \\(P^k_{yy}\\), \\(P^k_{zz}\\),\n\\(P^v_{xx}\\), \\(P^v_{yy}\\), and \\(P^v_{zz}\\). There are 8\ncolumns when one dimension is specified and 9 columns when two\ndimensions are specified. The number of bins (rows) is\n\\((L_1/b_1)(L_2/b_2)\\), where \\(L_1\\) and \\(L_2\\) are the lengths\nof the simulation box in the specified dimensions and \\(b_1\\) and\n\\(b_2\\) are the specified bin widths. When only one dimension is\nspecified, the number of bins (rows) is \\(L_1/b_1\\).\n\nThis array can be output with [fix ave/time ](https://docs.lammps.org/fix_ave_time.html),\n\n```lmps\ncompute p all stress/cartesian x 0.1\nfix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector\n```\nThe values calculated by this compute are \"intensive\". The stress\nvalues will be in pressure [units ](https://docs.lammps.org/units.html). The number density\nvalues are in inverse volume [units ](https://docs.lammps.org/units.html).\n\nNOTE 1: The local stress does not include any Lennard-Jones tail\ncorrections to the stress added by the\n[pair_modify tail yes ](https://docs.lammps.org/pair_modify.html)\ncommand, since those are contributions to the global system pressure.\n\nNOTE 2: The local stress profiles generated by these computes are\nsimilar to those obtained by the\n[method-of-planes (MOP) ](https://docs.lammps.org/compute_stress_mop.html).\nA key difference is that compute\n[stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html)\nconsiders particles crossing a set of planes, while\n*stress/cartesian* computes averages for a set of small volumes.\nMoreover, this compute computes the diagonal components of the stress\ntensor \\(P_{xx}\\), \\(P_{yy}\\), and \\(P_{zz}\\), while\n*stress/mop/profile* computes the components\n\\(P_{ix}\\), \\(P_{iy}\\), and \\(P_{iz}\\), where \\(i\\) is the\ndirection normal to the plane.\n\nMore information on the similarities and differences can be found in\n**Ikeshoji2**.\n\n**(Ikeshoji2)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003). \n ", + "restrictions": "These computes calculate the stress tensor contributions for pair and bond\nforces only (no angle, dihedral, improper, or kspace force).\nIt requires pairwise force calculations not available for most\nmany-body pair styles.\n\nThese computes are part of the EXTRA-COMPUTE package. They are only\nenabled if LAMMPS was built with that package. See the [Buildpackage ](https://docs.lammps.org/Build_package.html) doc page for more info.\n", + "related": "[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html),\n[compute stress/mop/profile ](https://docs.lammps.org/compute_stress_mop.html), [compute stress/spherical ](https://docs.lammps.org/compute_stress_curvilinear.html),\n[compute stress/cylinder ](https://docs.lammps.org/compute_stress_curvilinear.html)\n\n----------\n\n.. _Ikeshoji2:\n\n**(Ikeshoji)** Ikeshoji, Hafskjold, Furuholt, Mol Sim, 29, 101-109, (2003).\n" }, { "command": [ - "pair_style momb" + "fix_modify AtC boundary_dynamics" ], "syntax": [ - "pair_style momb cutoff s6 d" + "fix_modify boundary_dynamics " ], "args": [ [ { - "arg": "pair_style", - "type": 1, - "choices": [] - }, - { - "arg": "momb", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] }, { - "arg": "s6", - "type": 2, + "arg": "boundary_dynamics", + "type": 1, "choices": [] }, { - "arg": "d", - "type": 2, - "choices": [] + "arg": "", + "type": 3, + "choices": [ + "on", + "damped_harmonic", + "prescribed", + "coupled", + "none" + ] } ] ], - "parameters": "* cutoff = global cutoff (distance units)\n* s6 = global scaling factor of the exchange-correlation functional used (unitless)\n* d = damping scaling factor of Grimme's method (unitless) \n", - "examples": "\n```lmps\npair_style momb 12.0 0.75 20.0\npair_style hybrid/overlay eam/fs lj/charmm/coul/long 10.0 12.0 momb 12.0 0.75 20.0 morse 5.5\n\npair_coeff 1 2 momb 0.0 1.0 1.0 10.2847 2.361\n```\n", - "html_filename": "pair_momb.html", - "short_description": "Style *momb* computes pairwise van der Waals (vdW) and short-range\ninteractions using the Morse potential and **Grimme** method\nimplemented in the Many-Body Metal-Organic (MOMB) force field\ndescribed comprehensively in **Fichthorn** and\n**Zhou5**", - "description": "Style *momb* computes pairwise van der Waals (vdW) and short-range\ninteractions using the Morse potential and **Grimme** method\nimplemented in the Many-Body Metal-Organic (MOMB) force field\ndescribed comprehensively in **Fichthorn** and\n**Zhou5**. Grimme's method is widely used to correct for\ndispersion in density functional theory calculations.\n\\[\\begin{align*} \n E & = D_0 [\\exp^{-2 \\alpha (r-r_0)} - 2\\exp^{-\\alpha (r-r_0)}] - s_6 \\frac{C_6}{r^6} f_{damp}(r,R_r) \\\\\n f_{damp}(r,R_r) & = \\frac{1}{1 + \\exp^{-d(r/R_r - 1)}} \\end{align*} \\]\nFor the *momb* pair style, the following coefficients must be defined\nfor each pair of atoms types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand as in the examples above, or in the data file or restart files\nread by the [read_data ](https://docs.lammps.org/read_data.html) as described below:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* \\(C_6\\) (energy\\*distance\\^6 units)\n* \\(R_r\\) (distance units, typically sum of atomic vdW radii)\n\n----------\n\n**(Grimme)** Grimme, J Comput Chem, 27(15), 1787-1799 (2006). \n \n**(Fichthorn)** Fichthorn, Balankura, Qi, CrystEngComm, 18(29), 5410-5417 (2016). \n \n**(Zhou5)** Zhou, Saidi, Fichthorn, J Phys Chem C, 118(6), 3366-3374 (2014). \n ", - "restrictions": "This style is part of the EXTRA-PAIR package. It is only enabled if\nLAMMPS is built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page on for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html), [pair_style morse ](https://docs.lammps.org/pair_morse.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* boundary_dynamics = name of the AtC sub-command\n* on or damped_harmonic *prescribed* coupled *none* \n", + "examples": "", + "html_filename": "atc_boundary_dynamics.html", + "short_description": "Sets different schemes for controlling boundary atoms", + "description": "Sets different schemes for controlling boundary atoms. *on* will integrate\nthe boundary atoms using the velocity-verlet algorithm. *damped_harmonic*\nuses a mass/spring/dashpot for the boundary atoms with added arguments\nof the damping and spring constants followed by the ratio of the\nboundary type mass to the desired mass. *prescribed* forces the boundary\natoms to follow the finite element displacement. *coupled* does the same.\n", + "restrictions": "Boundary atoms must be specified. When using swaps between internal and\nboundary atoms, the initial configuration must have already correctly\npartitioned the two.\n", + "related": "- :ref:`fix_modify AtC command overview `\n" }, { "command": [ - "fix drude" + "pair_style mliap", + "pair_style mliap/kk" ], "syntax": [ - "fix ID group-ID drude flag1 flag2 ... flagN" + "pair_style mliap ... keyword values ..." ], "args": [ [ { - "arg": "fix", - "type": 1, - "choices": [] - }, - { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "drude", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "flag1", - "type": 2, - "choices": [] + "arg": "mliap", + "type": 3, + "choices": [ + "mliap", + "mliap/kk" + ] }, { - "arg": "flag2", - "type": 2, - "choices": [] + "arg": "unified", + "type": 3, + "choices": [ + "model", + "descriptor", + "unified" + ] }, { - "arg": "flagN", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* drude = style name of this fix command\n* flag1 flag2 ... flagN = Drude flag for each atom type (1 to N) in the system \n", - "examples": "\n```lmps\nfix 1 all drude 1 1 0 1 0 2 2 2\nfix 1 all drude C C N C N D D D\n```\nExample input scripts available: examples/PACKAGES/drude\n", - "html_filename": "fix_drude.html", - "short_description": "Assign each atom type in the system to be one of 3 kinds of atoms\nwithin the Drude polarization model", - "description": "Assign each atom type in the system to be one of 3 kinds of atoms\nwithin the Drude polarization model. This fix is designed to be used\nwith the [thermalized Drude oscillator model ](https://docs.lammps.org/Howto_drude.html).\nPolarizable models in LAMMPS are described on the [Howto polarizable ](https://docs.lammps.org/Howto_polarizable.html) doc page.\n\nThe three possible types can be designated with an integer (0,1,2)\nor capital letter (N,C,D):\n\n* 0 or N = non-polarizable atom (not part of Drude model)\n* 1 or C = Drude core\n* 2 or D = Drude electron\n", - "restrictions": "This fix should be invoked before any other commands that implement\nthe Drude oscillator model, such as [fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html), [pair_style thole ](https://docs.lammps.org/pair_thole.html).\n", - "related": "[fix langevin/drude ](https://docs.lammps.org/fix_langevin_drude.html), [fix tgnvt/drude ](https://docs.lammps.org/fix_tgnh_drude.html), [fix drude/transform ](https://docs.lammps.org/fix_drude_transform.html), [compute temp/drude ](https://docs.lammps.org/compute_temp_drude.html), [pair_style thole ](https://docs.lammps.org/pair_thole.html)\n" + "parameters": "* one or two keyword/value pairs must be appended\n* keyword = model or descriptor or unified \n *        model values = style filename \n         style = linear or quadratic or nn or mliappy \n         filename = name of file containing model definitions \n *        descriptor values = style filename \n         style = sna or so3 or ace \n         filename = name of file containing descriptor definitions \n *        unified values = filename ghostneigh_flag \n         filename = name of file containing serialized unified Python object \n         ghostneigh_flag = 0/1 to turn off/on inclusion of ghost neighbors in neighbors list \n", + "examples": "\n```lmps\npair_style mliap model linear InP.mliap.model descriptor sna InP.mliap.descriptor\npair_style mliap model quadratic W.mliap.model descriptor sna W.mliap.descriptor\npair_style mliap model nn Si.nn.mliap.model descriptor so3 Si.nn.mliap.descriptor\npair_style mliap model mliappy ACE_NN_Pytorch.pt descriptor ace ccs_single_element.yace\npair_style mliap unified mliap_unified_lj_Ar.pkl 0\npair_coeff * * In P\n```\n", + "html_filename": "pair_mliap.html", + "short_description": "Pair style *mliap* provides a general interface to families of\nmachine-learning interatomic potentials", + "description": "Pair style *mliap* provides a general interface to families of\nmachine-learning interatomic potentials. It allows separate definitions\nof the interatomic potential functional form (*model*) and the geometric\nquantities that characterize the atomic positions (*descriptor*).\n\nBy defining *model* and *descriptor* separately, it is possible to use\nmany different models with a given descriptor, or many different\ndescriptors with a given model. The pair style currently supports *sna*,\n*so3* and *ace* descriptor styles, but it is straightforward to add new\ndescriptor styles. By using the *unified* keyword, it is possible to\ndefine a Python model that combines functionalities of both *model* and\n*descriptor*.\n\nThe SNAP descriptor style *sna* is the same as that used by\n[pair_style snap ](https://docs.lammps.org/pair_snap.html), including the linear, quadratic, and\nchem variants. The available models are *linear*, *quadratic*, *nn*,\nand *mliappy*. The *mliappy* style can be used to couple python models,\ne.g. PyTorch neural network energy models, and requires building LAMMPS\nwith the PYTHON package (see below). In order to train a model, it is\nuseful to know the gradient or derivative of energy, force, and stress\nw.r.t. model parameters. This information can be accessed using the\nrelated [compute mliap ](https://docs.lammps.org/compute_mliap.html) command.\n\nThe descriptor style *so3* is a descriptor that is derived from the\nthe smooth SO(3) power spectrum with the explicit inclusion of a radial\nbasis **Bartok2013** and **Zagaceta2020**.\nThe available models are *linear* and *nn*.\n\nThe descriptor style *ace* is a class of highly general atomic\ndescriptors, atomic cluster expansion descriptors (ACE) from\n:ref:`(Drautz) `, that include a radial basis, an angular\nbasis, and bases for other variables (such as chemical species) if\nrelevant. In descriptor style *ace*, the *ace* descriptors may be\ndefined up to an arbitrary body order. This descriptor style is the same\nas that used in [pair_style pace ](https://docs.lammps.org/pair_pace.html) and [computepace ](https://docs.lammps.org/compute_pace.html). The available models with *ace* in ML-IAP are\n*linear* and *mliappy*. The *ace* descriptors and models require\nbuilding LAMMPS with the ML-PACE package (see below). The *mliappy*\nmodel style may be used with *ace* descriptors, but it requires that\nLAMMPS is also built with the PYTHON package. As with other model\nstyles, the *mliappy* model style can be used to couple arbitrary python\nmodels that use the *ace* descriptors such as Pytorch NNs. Note that\n*ALL* mliap model styles with *ace* descriptors require that descriptors\nand hyperparameters are supplied in a `.yace` or `.ace` file, similar to\n[compute pace ](https://docs.lammps.org/compute_pace.html).\n\nThe pair_style *mliap* command must be followed by two keywords *model*\nand *descriptor* in either order, or the one keyword *unified*. A\nsingle *pair_coeff* command is also required. The first 2 arguments\nmust be \\* \\* so as to span all LAMMPS atom types. This is followed by\na list of N arguments that specify the mapping of MLIAP element names to\nLAMMPS atom types, where N is the number of LAMMPS atom types.\n\nThe *model* keyword is followed by the model style. This is followed by\na single argument specifying the model filename containing the\nparameters for a set of elements. The model filename usually ends in\nthe *.mliap.model* extension. It may contain parameters for many\nelements. The only requirement is that it contain at least those element\nnames appearing in the *pair_coeff* command.\n\nThe top of the model file can contain any number of blank and comment\nlines (start with #), but follows a strict format after that. The first\nnon-blank non-comment line must contain two integers:\n\n* nelems = Number of elements\n* nparams = Number of parameters\n\nWhen the *model* keyword is *linear* or *quadratic*, this is followed by\none block for each of the *nelem* elements. Each block consists of\n*nparams* parameters, one per line. Note that this format is similar,\nbut not identical to that used for the [pair_style snap](https://docs.lammps.org/pair_snap.html) coefficient file. Specifically, the line containing the\nelement weight and radius is omitted, since these are handled by the\n*descriptor*.\n\nWhen the *model* keyword is *nn* (neural networks), the model file can\ncontain blank and comment lines (start with #) anywhere. The second\nnon-blank non-comment line must contain the string NET, followed by two\nintegers:\n\n* ndescriptors = Number of descriptors\n* nlayers = Number of layers (including the hidden layers and the output layer)\n\nand followed by a sequence of a string and an integer for each layer:\n\n* Activation function (linear, sigmoid, tanh or relu)\n* nnodes = Number of nodes\n\nThis is followed by one block for each of the *nelem* elements. Each\nblock consists of *scale0* minimum value, *scale1* (maximum - minimum)\nvalue, in order to normalize the descriptors, followed by *nparams*\nparameters, including *bias* and *weights* of the model, starting with\nthe first node of the first layer and so on, with a maximum of 30 values\nper line.\n\nThe detail of *nn* module implementation can be found at **Yanxon2020**.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: Notes on mliappy models \n >When the *model* keyword is *mliappy*, if the filename ends in '.pt',\n > or '.pth', it will be loaded using pytorch; otherwise, it will be\n > loaded as a pickle file. To load a model from memory (i.e. an\n > existing python object), specify the filename as \"LATER\", and then\n > call `lammps.mliap.load_model(model)` from python before using the\n > pair style. When using LAMMPS via the library mode, you will need to\n > call `lammps.mliappy.activate_mliappy(lmp)` on the active LAMMPS\n > object before the pair style is defined. This call locates and loads\n > the mliap-specific python module that is built into LAMMPS. \n > \n\nThe *descriptor* keyword is followed by a descriptor style, and additional arguments.\nCurrently three descriptor styles are available: *sna*, *so3*, and *ace*.\n\n- *sna* indicates the bispectrum component descriptors used by the Spectral\n Neighbor Analysis Potential (SNAP) potentials of [pair_style snap ](https://docs.lammps.org/pair_snap.html). A single additional argument specifies the descriptor\n filename containing the parameters and setting used by the SNAP\n descriptor. The descriptor filename usually ends in the\n *.mliap.descriptor* extension.\n\n- *so3* indicated the power spectrum component descriptors. A single additional\n argument specifies the descriptor filename containing the parameters and setting.\n\n- *ace* indicates the atomic cluster expansion (ACE) descriptors. A single\n additional argument specifies the filename containing parameters, settings, and\n definitions of the ace descriptors (through tabulated basis function indices and\n corresponding generalized Clebsch-Gordan coefficients) in the ctilde file format,\n e.g. in the potential file format with `*.ace` or `*.yace` extensions from\n [pair_style pace ](https://docs.lammps.org/pair_pace.html). Note that unlike the potential file, the\n Clebsch-Gordan coefficients in the descriptor file supplied should *NOT* be\n multiplied by linear or square root embedding terms.\n\n\nThe SNAP descriptor file closely follows the format of the\n[pair_style snap ](https://docs.lammps.org/pair_snap.html) parameter file. The file can contain\nblank and comment lines (start with #) anywhere. Each non-blank\nnon-comment line must contain one keyword/value pair. The required\nkeywords are *rcutfac* and *twojmax* . There are many optional keywords\nthat are described on the [pair_style snap ](https://docs.lammps.org/pair_snap.html) doc page.\nIn addition, the SNAP descriptor file must contain the *nelems*,\n*elems*, *radelems*, and *welems* keywords. The *nelems* keyword\nspecifies the number of elements provided in the other three keywords.\nThe *elems* keyword is followed by a list of *nelems* element names that\nmust include the element names appearing in the *pair_coeff* command,\nbut can contain other names too. Similarly, the *radelems* and *welems*\nkeywords are followed by lists of *nelems* numbers giving the element\nradius and element weight of each element. Obviously, the order in which\nthe elements are listed must be consistent for all three keywords.\n\nThe SO3 descriptor file is similar to the SNAP descriptor except that it\ncontains a few more arguments (e.g., *nmax* and *alpha*). The preparation\nof SO3 descriptor and model files can be done with the\n[Pyxtal_FF](https://github.com/qzhu2017/PyXtal_FF) package.\n\nThe ACE descriptor file differs from the SNAP and SO3 files. It more\nclosely resembles the potential file format for linear or square-root\nembedding ACE potentials used in the [pair_style pace ](https://docs.lammps.org/pair_pace.html).\nAs noted above, the key difference is that the Clebsch-Gordan\ncoefficients in the descriptor file with *mliap descriptor ace* are\n*NOT* multiplied by linear or square root embedding terms. In other\nwords,the model is separated from the descriptor definitions and\nhyperparameters. In [pair_style pace ](https://docs.lammps.org/pair_pace.html), they are\ncombined. The ACE descriptor files required by *mliap* are generated\nautomatically in [FitSNAP](https://github.com/FitSNAP/FitSNAP) during\nlinear, pytorch, etc. ACE model fitting. Additional tools are provided\nthere to prepare *ace* descriptor files and hyperparameters before model\nfitting. The *ace* descriptor files can also be extracted from ACE\nmodel fits in [python-ace.](https://github.com/ICAMS/python-ace). It\nis important to note that order of the types listed in [pair_coeff](https://docs.lammps.org/pair_coeff.html) must match the order of the elements/types listed in the\nACE descriptor file for all *mliap* styles when using *ace* descriptors.\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for these *model* and *descriptor* files.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To significantly reduce SO3 descriptor/force calculation time,\n > some properties are pre-computed and reused during the calculation.\n > These can consume a significant amount of RAM for simulations of\n > larger systems since their size depends on the total number of\n > neighbors per MPI process. \n > \n\n\nThe *unified* keyword is followed by an argument specifying the\nfilename containing the serialized unified Python object and the \"ghostneigh\" toggle\n(0/1) to disable/enable the construction of neighbors lists including\nneighbors of ghost atoms. If the filename ends in '.pt', or '.pth', it will be loaded\nusing pytorch; otherwise, it will be loaded as a pickle file.\nIf ghostneigh is enabled, it is recommended to set [comm_modify ](https://docs.lammps.org/comm_modify.html)\ncutoff manually, such as in the following example.\n\n```lmps\nvariable ninteractions equal 2\nvariable cutdist equal 7.5\nvariable skin equal 1.0\nvariable commcut equal (${ninteractions}*${cutdist})+${skin}\nneighbor ${skin} bin\ncomm_modify cutoff ${commcut}\n```\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >To load a model from memory\n > (i.e. an existing python object), call `lammps.mliap.load_unified(unified)`\n > from python, and then specify the filename as \"EXISTS\". When using LAMMPS via\n > the library mode, you will need to call `lammps.mliappy.activate_mliappy(lmp)`\n > on the active LAMMPS object before the pair style is defined. This call locates\n > and loads the mliap-specific python module that is built into LAMMPS. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS with\nuser-specifiable parameters as described above. You never need to\nspecify a pair_coeff command with I != J arguments for this style.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Bartok2013)** Bartok, Kondor, Csanyi, Phys Rev B, 87, 184115 (2013). \n \n**(Zagaceta2020)** Zagaceta, Yanxon, Zhu, J Appl Phys, 128, 045113 (2020). \n \n**(Yanxon2020)** Yanxon, Zagaceta, Tang, Matteson, Zhu, Mach. Learn.: Sci. Technol. 2, 027001 (2020). \n ", + "restrictions": "This pair style is part of the ML-IAP package. It is only enabled if\nLAMMPS was built with that package. In addition, building LAMMPS with\nthe ML-IAP package requires building LAMMPS with the ML-SNAP package.\nThe *mliappy* model requires building LAMMPS with the PYTHON package.\nThe *ace* descriptor requires building LAMMPS with the ML-PACE package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info. Note\nthat `pair_mliap/kk` acceleration will *not* invoke the `kk`\naccelerated variants of SNAP or ACE descriptors.\n", + "related": "[pair_style snap ](https://docs.lammps.org/pair_snap.html), [compute mliap ](https://docs.lammps.org/compute_mliap.html)\n" }, { "command": [ - "pair_style hbond/dreiding/lj", - "pair_style hbond/dreiding/lj/omp", - "pair_style hbond/dreiding/morse", - "pair_style hbond/dreiding/morse/omp" + "pair_style tersoff", + "pair_style tersoff/gpu", + "pair_style tersoff/intel", + "pair_style tersoff/kk", + "pair_style tersoff/omp", + "pair_style tersoff/table", + "pair_style tersoff/table/omp" ], "syntax": [ - "pair_style style N inner_distance_cutoff outer_distance_cutoff angle_cutof" + "pair_style style keywords values" ], "args": [ [ @@ -40403,188 +39927,170 @@ export const command_docs = [ "choices": [] }, { - "arg": "hbond/dreiding/morse/omp", + "arg": "tersoff/table/omp", "type": 3, "choices": [ - "hbond/dreiding/lj", - "hbond/dreiding/morse", - "hbond/dreiding/lj/omp", - "hbond/dreiding/morse/omp" + "tersoff", + "tersoff/table", + "tersoff/gpu", + "tersoff/intel", + "tersoff/kk", + "tersoff/omp", + "tersoff/table/omp" ] }, { - "arg": "N", - "type": 2, - "choices": [] - }, - { - "arg": "inner_distance_cutoff", - "type": 2, - "choices": [] - }, - { - "arg": "outer_distance_cutoff", + "arg": "keywords", "type": 2, "choices": [] }, { - "arg": "angle_cutof", + "arg": "values", "type": 2, "choices": [] } ] ], - "parameters": "* style = hbond/dreiding/lj or hbond/dreiding/morse\n* n = cosine angle periodicity\n* inner_distance_cutoff = global inner cutoff for Donor-Acceptor interactions (distance units)\n* outer_distance_cutoff = global cutoff for Donor-Acceptor interactions (distance units)\n* angle_cutoff = global angle cutoff for Acceptor-Hydrogen-Donor\n* interactions (degrees) \n", - "examples": "\n```lmps\npair_style hybrid/overlay lj/cut 10.0 hbond/dreiding/lj 4 9.0 11.0 90\npair_coeff 1 2 hbond/dreiding/lj 3 i 9.5 2.75 4 9.0 11.0 90.0\n\npair_style hybrid/overlay lj/cut 10.0 hbond/dreiding/morse 2 9.0 11.0 90\npair_coeff 1 2 hbond/dreiding/morse 3 i 3.88 1.7241379 2.9 2 9 11 90\n\nlabelmap atom 1 C 2 O 3 H\npair_coeff C O hbond/dreiding/morse H i 3.88 1.7241379 2.9 2 9 11 90\n```\n", - "html_filename": "pair_hbond_dreiding.html", - "short_description": "The *hbond/dreiding* styles compute the Acceptor-Hydrogen-Donor (AHD)\n3-body hydrogen bond interaction for the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html)\nforce field, given by:\n\\[\\begin{align*} \n E = & \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad \\qquad r < r_{\\rm in} \\\\\n = & S(r) * \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad r_{\\rm in} < r < r_{\\rm out} \\\\\n = & 0 \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad r > r_{\\rm out} \\\\\n LJ(r) = & AR^{-12}-BR^{-10}cos^n\\theta=\n \\epsilon\\left\\lbrace 5\\left[ \\frac{\\sigma}{r}\\right]^{12}-\n 6\\left[ \\frac{\\sigma}{r}\\right]^{10} \\right\\rbrace cos^n\\theta\\\\\n Morse(r) = & D_0\\left\\lbrace \\chi^2 - 2\\chi\\right\\rbrace cos^n\\theta=\n D_{0}\\left\\lbrace e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right\\rbrace cos^n\\theta \\\\\n S(r) = & \\frac{ \\left[r_{\\rm out}^2 - r^2\\right]^2\n \\left[r_{\\rm out}^2 + 2r^2 - 3{r_{\\rm in}^2}\\right]}\n { \\left[r_{\\rm out}^2 - {r_{\\rm in}}^2\\right]^3 } \\end{align*} \\]\nwhere \\(r_{\\rm in}\\) is the inner spline distance cutoff,\n\\(r_{\\rm out}\\) is the outer distance cutoff, \\(\\theta_c\\) is\nthe angle cutoff, and *n* is the cosine periodicity", - "description": "The *hbond/dreiding* styles compute the Acceptor-Hydrogen-Donor (AHD)\n3-body hydrogen bond interaction for the [DREIDING ](https://docs.lammps.org/Howto_bioFF.html)\nforce field, given by:\n\\[\\begin{align*} \n E = & \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad \\qquad r < r_{\\rm in} \\\\\n = & S(r) * \\left[LJ(r) | Morse(r) \\right] \\qquad \\qquad r_{\\rm in} < r < r_{\\rm out} \\\\\n = & 0 \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\qquad r > r_{\\rm out} \\\\\n LJ(r) = & AR^{-12}-BR^{-10}cos^n\\theta=\n \\epsilon\\left\\lbrace 5\\left[ \\frac{\\sigma}{r}\\right]^{12}-\n 6\\left[ \\frac{\\sigma}{r}\\right]^{10} \\right\\rbrace cos^n\\theta\\\\\n Morse(r) = & D_0\\left\\lbrace \\chi^2 - 2\\chi\\right\\rbrace cos^n\\theta=\n D_{0}\\left\\lbrace e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)}\n \\right\\rbrace cos^n\\theta \\\\\n S(r) = & \\frac{ \\left[r_{\\rm out}^2 - r^2\\right]^2\n \\left[r_{\\rm out}^2 + 2r^2 - 3{r_{\\rm in}^2}\\right]}\n { \\left[r_{\\rm out}^2 - {r_{\\rm in}}^2\\right]^3 } \\end{align*} \\]\nwhere \\(r_{\\rm in}\\) is the inner spline distance cutoff,\n\\(r_{\\rm out}\\) is the outer distance cutoff, \\(\\theta_c\\) is\nthe angle cutoff, and *n* is the cosine periodicity.\n\nHere, *r* is the radial distance between the donor (D) and acceptor\n(A) atoms and \\(\\theta\\) is the bond angle between the acceptor, the\nhydrogen (H) and the donor atoms:\n\n ![Image](JPG/dreiding_hbond.jpg) \n\nThese 3-body interactions can be defined for pairs of acceptor and\ndonor atoms, based on atom types. For each donor/acceptor atom pair,\nthe third atom in the interaction is a hydrogen permanently bonded to\nthe donor atom, e.g. in a bond list read in from a data file via the\n[read_data ](https://docs.lammps.org/read_data.html) command. The atom types of possible\nhydrogen atoms for each donor/acceptor type pair are specified by the\n[pair_coeff ](https://docs.lammps.org/pair_coeff.html) command (see below).\n\nStyle *hbond/dreiding/lj* is the original DREIDING potential of\n**pair-Mayo**. It uses a LJ 12/10 functional for the Donor-Acceptor\ninteractions. To match the results in the original paper, use n = 4.\n\nStyle *hbond/dreiding/morse* is an improved version using a Morse\npotential for the Donor-Acceptor interactions. **Liu** showed\nthat the Morse form gives improved results for Dendrimer simulations,\nwhen n = 2.\n\nSee the [Howto bioFF ](https://docs.lammps.org/Howto_bioFF.html) page for more information\non the DREIDING force field.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Because the Dreiding hydrogen bond potential is only one portion\n > of an overall force field which typically includes other pairwise\n > interactions, it is common to use it as a sub-style in a [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command, where another pair style\n > provides the repulsive core interaction between pairs of atoms, e.g. a\n > 1/r\\^12 Lennard-Jones repulsion. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >When using the hbond/dreiding pair styles with [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html), you should explicitly define pair\n > interactions between the donor atom and acceptor atoms, (as well as\n > between these atoms and ALL other atoms in your system). Whenever\n > [pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) is used, ordinary mixing\n > rules are not applied to atoms like the donor and acceptor atoms\n > because they are typically referenced in multiple pair styles.\n > Neglecting to do this can cause difficult-to-detect physics problems. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >In the original Dreiding force field paper 1-4 non-bonded\n > interactions ARE allowed. If this is desired for your model, use the\n > special_bonds command (e.g. \"special_bonds lj 0.0 0.0 1.0\") to turn\n > these interactions on. \n > \n\n----------\n\nThe following coefficients must be defined for pairs of eligible\ndonor/acceptor types via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as\nin the examples above.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike other pair styles and their associated\n > [pair_coeff ](https://docs.lammps.org/pair_coeff.html) commands, you do not need to specify\n > pair_coeff settings for all possible I,J type pairs. Only I,J type\n > pairs for atoms which act as joint donors/acceptors need to be\n > specified; all other type pairs are assumed to be inactive. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >A [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command can be specified multiple\n > times for the same donor/acceptor type pair. This enables multiple\n > hydrogen types to be assigned to the same donor/acceptor type pair.\n > For other pair_styles, if the pair_coeff command is re-used for the\n > same I.J type pair, the settings for that type pair are overwritten.\n > For the hydrogen bond potentials this is not the case; the settings\n > are cumulative. This means the only way to turn off a previous\n > setting, is to re-use the pair_style command and start over. \n > \n\nFor the *hbond/dreiding/lj* style the list of coefficients is as\nfollows:\n\n* K = hydrogen atom type = 1 to Ntypes, or type label\n* donor flag = *i* or *j*\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n* *n* = exponent in formula above\n* distance cutoff \\(r_{\\rm in}\\) (distance units)\n* distance cutoff \\(r_{\\rm out}\\) (distance units)\n* angle cutoff (degrees)\n\nFor the *hbond/dreiding/morse* style the list of coefficients is as\nfollows:\n\n* K = hydrogen atom type = 1 to Ntypes, or type label\n* donor flag = *i* or *j*\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n* *n* = exponent in formula above\n* distance cutoff \\(r_{\\rm in}\\) (distance units)\n* distance cutoff \\(r_{out}\\) (distance units)\n* angle cutoff (degrees)\n\nA single hydrogen atom type K can be specified, or a wild-card asterisk\ncan be used in place of or in conjunction with the K arguments to\nselect multiple types as hydrogen atoms. This takes the form\n\"\\*\" or \"\\*n\" or \"n\\*\" or \"m\\*n\". See the [pair_coeff ](https://docs.lammps.org/pair_coeff.html)\ncommand page for details.\n\nIf the donor flag is *i*, then the atom of type I in the pair_coeff\ncommand is treated as the donor, and J is the acceptor. If the donor\nflag is *j*, then the atom of type J in the pair_coeff command is\ntreated as the donor and I is the donor. This option is required\nbecause the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command requires that I <= J.\n\n\\(\\epsilon\\) and \\(\\sigma\\) are settings for the hydrogen bond\npotential based on a Lennard-Jones functional form. Note that sigma is\ndefined as the zero-crossing distance for the potential, not as the\nenergy minimum at \\(2^{1/6} \\sigma\\).\n\n\\(D_0\\) and \\(\\alpha\\) and \\(r_0\\) are settings for the\nhydrogen bond potential based on a Morse functional form.\n\nThe last 3 coefficients for both styles are optional. If not\nspecified, the global n, distance cutoff, and angle cutoff specified\nin the pair_style command are used. If you wish to only override the\nsecond or third optional parameter, you must also specify the preceding\noptional parameters.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThese pair styles do not support mixing. You must explicitly identify\neach donor/acceptor type pair.\n\nThese styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the interactions.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table option is not relevant for\nthese pair styles.\n\nThese pair styles do not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ntail option for adding long-range tail corrections to energy and\npressure.\n\nThese pair styles do not write their information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands need to be\nre-specified in an input script that reads a restart file.\n\nThese pair styles can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. They do not support the\n*inner*, *middle*, *outer* keywords.\n\nThese pair styles tally a count of how many hydrogen bonding\ninteractions they calculate each timestep and the hbond energy. These\nquantities can be accessed via the [compute pair ](https://docs.lammps.org/compute_pair.html)\ncommand as a vector of values of length 2.\n\nTo print these quantities to the log file (with a descriptive column\nheading) the following commands could be included in an input script:\n\n```lmps\ncompute hb all pair hbond/dreiding/lj\nvariable n_hbond equal c_hb[1] #number hbonds\nvariable E_hbond equal c_hb[2] #hbond energy\nthermo_style custom step temp epair v_E_hbond\n```\n----------\n\n**(pair-Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909\n(1990). \n \n**(Liu)** Liu, Bryantsev, Diallo, Goddard III, J. Am. Chem. Soc 131 (8)\n2798 (2009) \n ", - "restrictions": "This pair style can only be used if LAMMPS was built with the\nMOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc page\nfor more info.\n", + "parameters": "* style = tersoff or tersoff/table\n* keyword = shift \n *        shift value = delta \n         delta = negative shift in equilibrium bond length \n", + "examples": "\n```lmps\npair_style tersoff\npair_coeff * * Si.tersoff Si\npair_coeff * * SiC.tersoff Si C Si\n\npair_style tersoff/table\npair_coeff * * SiCGe.tersoff Si(D)\n\npair_style tersoff shift 0.05\npair_coeff * * Si.tersoff Si\n```\n", + "html_filename": "pair_tersoff.html", + "short_description": "The *tersoff* style computes a 3-body Tersoff potential\n**Tersoff_11** for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right", + "description": "The *tersoff* style computes a 3-body Tersoff potential\n**Tersoff_11** for the energy E of a system of atoms as\n\\[\\begin{align*} \n E & = \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} & = f_C(r_{ij} + \\delta) \\left[ f_R(r_{ij} + \\delta) + b_{ij} f_A(r_{ij} + \\delta) \\right] \\\\\n f_C(r) & = \\left\\{ \\begin{array} {r@{\\quad:\\quad}l}\n 1 & r < R - D \\\\\n \\frac{1}{2} - \\frac{1}{2} \\sin \\left( \\frac{\\pi}{2} \\frac{r-R}{D} \\right) &\n R-D < r < R + D \\\\\n 0 & r > R + D\n \\end{array} \\right. \\\\\n f_R(r) & = A \\exp (-\\lambda_1 r) \\\\\n f_A(r) & = -B \\exp (-\\lambda_2 r) \\\\\n b_{ij} & = \\left( 1 + \\beta^n {\\zeta_{ij}}^n \\right)^{-\\frac{1}{2n}} \\\\\n \\zeta_{ij} & = \\sum_{k \\neq i,j} f_C(r_{ik} + \\delta) g \\left[ \\theta_{ijk}(r_{ij}, r_{ik}) \\right]\n \\exp \\left[ {\\lambda_3}^m (r_{ij} - r_{ik})^m \\right] \\\\\n g(\\theta) & = \\gamma_{ijk} \\left( 1 + \\frac{c^2}{d^2} -\n \\frac{c^2}{\\left[ d^2 + (\\cos \\theta - \\cos \\theta_0)^2\\right]} \\right) \\end{align*} \\]\nwhere \\(f_R\\) is a two-body term and \\(f_A\\) includes three-body\ninteractions. The summations in the formula are over all neighbors\nJ and K of atom I within a cutoff distance = R + D. \\(\\delta\\) is\nan optional negative shift of the equilibrium bond length, as described below.\n\nThe *tersoff/table* style uses tabulated forms for the two-body,\nenvironment and angular functions. Linear interpolation is performed\nbetween adjacent table entries. The table length is chosen to be\naccurate within 10\\^-6 with respect to the *tersoff* style energy.\nThe *tersoff/table* should give better performance in terms of speed.\n\nOnly a single pair_coeff command is used with the *tersoff* style\nwhich specifies a Tersoff potential file with parameters for all\nneeded elements. These are mapped to LAMMPS atom types by specifying\nN additional arguments after the filename in the pair_coeff command,\nwhere N is the number of LAMMPS atom types:\n\n* filename\n* N element names = mapping of Tersoff elements to atom types\n\nSee the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) page for alternate ways\nto specify the path for the potential file.\n\nAs an example, imagine the SiC.tersoff file has Tersoff values for Si\nand C. If your LAMMPS simulation has 4 atoms types and you want the\nfirst 3 to be Si, and the fourth to be C, you would use the following\npair_coeff command:\n\n```lmps\npair_coeff * * SiC.tersoff Si Si Si C\n```\nThe first 2 arguments must be \\* \\* so as to span all LAMMPS atom types.\nThe first three Si arguments map LAMMPS atom types 1,2,3 to the Si\nelement in the Tersoff file. The final C argument maps LAMMPS atom\ntype 4 to the C element in the Tersoff file. If a mapping value is\nspecified as NULL, the mapping is not performed. This can be used\nwhen a *tersoff* potential is used as part of the *hybrid* pair style.\nThe NULL values are placeholders for atom types that will be used with\nother potentials.\n\nTersoff files in the *potentials* directory of the LAMMPS distribution\nhave a \".tersoff\" suffix. Lines that are not blank or comments\n(starting with #) define parameters for a triplet of elements. The\nparameters in a single entry correspond to coefficients in the formula\nabove:\n\n* element 1 (the center atom in a 3-body interaction)\n* element 2 (the atom bonded to the center atom)\n* element 3 (the atom influencing the 1-2 bond in a bond-order sense)\n* m\n* \\(\\gamma\\)\n* \\(\\lambda_3\\) (1/distance units)\n* c\n* d\n* \\(\\cos\\theta_0\\) (can be a value < -1 or > 1)\n* n\n* \\(\\beta\\)\n* \\(\\lambda_2\\) (1/distance units)\n* B (energy units)\n* R (distance units)\n* D (distance units)\n* \\(\\lambda_1\\) (1/distance units)\n* A (energy units)\n\nThe n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A\nparameters are only used for\ntwo-body interactions. The m, \\(\\gamma\\), \\(\\lambda_3\\), c, d,\nand \\(\\cos\\theta_0\\)\nparameters are only used for three-body interactions. The R and D\nparameters are used for both two-body and three-body interactions. The\nnon-annotated parameters are unitless. The value of m must be 3 or 1.\n\nThe Tersoff potential file must contain entries for all the elements\nlisted in the pair_coeff command. It can also contain entries for\nadditional elements not being used in a particular simulation; LAMMPS\nignores those entries.\n\nFor a single-element simulation, only a single entry is required\n(e.g. SiSiSi). For a two-element simulation, the file must contain 8\nentries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that\nspecify Tersoff parameters for all permutations of the two elements\ninteracting in three-body configurations. Thus for 3 elements, 27\nentries would be required, etc.\n\nAs annotated above, the first element in the entry is the center atom\nin a three-body interaction and it is bonded to the second atom and the\nbond is influenced by the third atom. Thus an entry for SiCC means Si\nbonded to a C with another C atom influencing the bond. Thus\nthree-body parameters for SiCSi and SiSiC entries will not, in\ngeneral, be the same. The parameters used for the two-body\ninteraction come from the entry where the second element is repeated.\nThus the two-body parameters for Si interacting with C, comes from the\nSiCC entry.\n\nThe parameters used for a particular\nthree-body interaction come from the entry with the corresponding\nthree elements. The parameters used only for two-body interactions\n(n, \\(\\beta\\), \\(\\lambda_2\\), B, \\(\\lambda_1\\), and A)\nin entries whose second and third\nelement are different (e.g. SiCSi) are not used for anything and can\nbe set to 0.0 if desired.\n\nNote that the twobody parameters in entries such as SiCC and CSiSi\nare often the same, due to the common use of symmetric mixing rules,\nbut this is not always the case. For example, the beta and n parameters in\nTersoff_2 **Tersoff_21** are not symmetric.\nSimilarly, the threebody parameters in entries such as SiCSi and SiSiC\nare often the same, but this is not always the case, particularly\nthe value of R, which is sometimes typed on the\nfirst and second elements, sometimes on the first and third elements.\nHence the need to specify R and D explicitly for all element triples.\nFor example, while Tersoff's notation\nin Tersoff_2 **Tersoff_21** is ambiguous on this point,\nand properties of the zincblende lattice are the same for either choice,\nTersoff's results for rocksalt are consistent with typing on the first\nand third elements. **Albe** adopts the same convention.\nConversely, the potential for B/N/C from the Cagin group\nuses the opposite convention, typing on the first and second elements.\n\nWe chose the above form so as to enable users to define all commonly\nused variants of the Tersoff potential. In particular, our form\nreduces to the original Tersoff form when m = 3 and gamma = 1, while\nit reduces to the form of **Albe** when beta = 1 and m = 1.\nNote that in the current Tersoff implementation in LAMMPS, m must be\nspecified as either 3 or 1. Tersoff used a slightly different but\nequivalent form for alloys, which we will refer to as Tersoff_2\npotential **Tersoff_21**.\nThe *tersoff/table* style implements\nTersoff_2 parameterization only.\n\nLAMMPS parameter values for Tersoff_2 can be obtained as follows:\n\\(\\gamma_{ijk} = \\omega_{ik}\\), \\(\\lambda_3 = 0\\) and the value of\nm has no effect. The parameters for species i and j can be calculated\nusing the Tersoff_2 mixing rules:\n\\[\\begin{align*} \n \\lambda_1^{i,j} & = \\frac{1}{2}(\\lambda_1^i + \\lambda_1^j)\\\\\n \\lambda_2^{i,j} & = \\frac{1}{2}(\\lambda_2^i + \\lambda_2^j)\\\\\n A_{i,j} & = (A_{i}A_{j})^{1/2}\\\\\n B_{i,j} & = \\chi_{ij}(B_{i}B_{j})^{1/2}\\\\\n R_{i,j} & = (R_{i}R_{j})^{1/2}\\\\\n S_{i,j} & = (S_{i}S_{j})^{1/2} \\end{align*} \\]\nTersoff_2 parameters R and S must be converted to the LAMMPS\nparameters R and D (R is different in both forms), using the following\nrelations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the\nTersoff_2 parameters.\n\nIn the potentials directory, the file SiCGe.tersoff provides the\nLAMMPS parameters for Tersoff's various versions of Si, as well as his\nalloy parameters for Si, C, and Ge. This file can be used for pure Si,\n(three different versions), pure C, pure Ge, binary SiC, and binary\nSiGe. LAMMPS will generate an error if this file is used with any\ncombination involving C and Ge, since there are no entries for the GeC\ninteractions (Tersoff did not publish parameters for this\ncross-interaction.) Tersoff files are also provided for the SiC alloy\n(SiC.tersoff) and the GaN (GaN.tersoff) alloys.\n\nMany thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou\nfor helping clarify how Tersoff parameters for alloys have been\ndefined in various papers.\n\nThe *shift* keyword computes the energy E of a system of atoms, whose\nformula is the same as the Tersoff potential. The only modification is\nthat the original equilibrium bond length ( \\(r_0\\)) of the system\nis shifted to \\(r_0-\\delta\\). The minus sign arises because each\nradial distance \\(r\\) is replaced by \\(r+\\delta\\).\n\nThe *shift* keyword is designed for simulations of closely matched van\nder Waals heterostructures. For instance, consider the case of a system\nwith few-layers graphene atop a thick hexagonal boron nitride (h-BN)\nsubstrate simulated using periodic boundary conditions. The experimental\nlattice mismatch of ~1.8% between graphene and h-BN is not well captured\nby the equilibrium lattice constants of available potentials, thus a\nsmall in-plane strain will be introduced in the system when building a\nperiodic supercell. To minimize the effect of strain on simulation\nresults, the *shift* keyword allows adjusting the equilibrium bond\nlength of one of the two materials (e.g., h-BN). Validation, benchmark\ntests, and applications of the *shift* keyword can be found in\n**Mandelli1** and **Ouyang5**.\n\nFor the specific case discussed above, the force field can be defined as\n\n```lmps\npair_style hybrid/overlay rebo tersoff shift -0.00407 ilp/graphene/hbn 16.0 coul/shield 16.0\npair_coeff * * rebo CH.rebo NULL NULL C\npair_coeff * * tersoff BNC.tersoff B N NULL\npair_coeff * * ilp/graphene/hbn BNCH.ILP B N C\npair_coeff 1 1 coul/shield 0.70\npair_coeff 1 2 coul/shield 0.695\npair_coeff 2 2 coul/shield 0.69\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nFor atom type pairs I,J and I != J, where types I and J correspond to\ntwo different element types, mixing is performed by LAMMPS as\ndescribed above from values in the potential file.\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you need\nto re-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(Tersoff_11)** J. Tersoff, Phys Rev B, 37, 6991 (1988). \n \n**(Tersoff_21)** J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248) \n \n**(Albe)** J. Nord, K. Albe, P. Erhart, and K. Nordlund, J. Phys.:\nCondens. Matter, 15, 5649(2003). \n \n**(Mandelli1)** D. Mandelli, W. Ouyang, M. Urbakh, and O. Hod, ACS Nano 13(7), 7603-7609 (2019). \n \n**(Ouyang5)** W. Ouyang et al., J. Chem. Theory Comput. 16(1), 666-676 (2020). \n ", + "restrictions": "This pair style is part of the MANYBODY package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe *shift* keyword is not supported by the *tersoff/gpu*,\n*tersoff/intel*, *tersoff/kk*, *tersoff/table* or *tersoff/table/omp*\nvariants.\n\nThe *tersoff/intel* pair style is only available when compiling LAMMPS\nwith the Intel compilers.\n\nThe Tersoff potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for [\"metal\" units ](https://docs.lammps.org/units.html). In addition\nthe pair style supports converting potential parameters on-the-fly between\n\"metal\" and \"real\" units. You can use the *tersoff* pair style variants\nwith any LAMMPS units setting, but you would need to\ncreate your own Tersoff potential file with coefficients listed in the\nappropriate units if your simulation does not use \"metal\" or \"real\" units.\n", "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "compute temp/region" + "fix_modify AtC mesh create_faceset box" ], "syntax": [ - "compute ID group-ID temp/region region-ID" + "fix_modify mesh create_faceset box [units]" ], "args": [ [ { - "arg": "compute", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "", "type": 2, "choices": [] }, { - "arg": "group-ID", - "type": 2, + "arg": "mesh", + "type": 1, "choices": [] }, { - "arg": "temp/region", + "arg": "create_faceset", "type": 1, "choices": [] }, { - "arg": "region-ID", + "arg": "", "type": 2, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/region = style name of this compute command\n* region-ID = ID of region to use for choosing atoms \n", - "examples": "\n```lmps\ncompute mine flow temp/region boundary\n```\n", - "html_filename": "compute_temp_region.html", - "short_description": "Define a computation that calculates the temperature of a group of atoms in a\ngeometric region", - "description": "Define a computation that calculates the temperature of a group of atoms in a\ngeometric region. This can be useful for thermostatting one portion of the\nsimulation box. For example, a McDLT simulation where one side is cooled, and\nthe other side is heated. A compute of this style can be used by any command\nthat computes a temperature (e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html)).\n\nNote that a *region* -style temperature can be used to thermostat with\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) or\n[fix langevin ](https://docs.lammps.org/fix_langevin.html), but should probably not be used with\nNose--Hoover style fixes ([fix nvt ](https://docs.lammps.org/fix_nh.html), [fix npt ](https://docs.lammps.org/fix_nh.html),\nor [fix nph ](https://docs.lammps.org/fix_nh.html)) if the degrees of freedom included in the computed\ntemperature vary with time.\n\nThe temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE = is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in both the group and region, \\(k_B\\) is\nthe Boltzmann constant, and \\(T\\) temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is calculated each\ntime the temperature is evaluated since it is assumed atoms can\nenter/leave the region. Thus there is no need to use the *dynamic*\noption of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command for this\ncompute style.\n\nThe removal of atoms outside the region by this fix is essentially\ncomputing the temperature after a \"bias\" has been removed, which in\nthis case is the velocity of any atoms outside the region. If this\ncompute is used with a fix command that performs thermostatting then\nthis bias will be subtracted from each atom, thermostatting of the\nremaining thermal velocity will be performed, and the bias will be\nadded back in. Thermostatting fixes that work in this way include\n[fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html). This means that when this compute\nis used to calculate the temperature for any of the thermostatting\nfixes via the [fix modify temp ](https://docs.lammps.org/fix_modify.html) command, the thermostat\nwill operate only on atoms that are currently in the geometric region.\n\nUnlike other compute styles that calculate temperature, this compute\ndoes not subtract out degrees-of-freedom due to fixes that constrain\nmotion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and [fix rigid](https://docs.lammps.org/fix_rigid.html). This is because those degrees of freedom (e.g., a\nconstrained bond) could apply to sets of atoms that straddle the\nregion boundary, and hence the concept is somewhat ill-defined. If\nneeded the number of subtracted degrees of freedom can be set\nexplicitly using the *extra* option of the [compute_modify](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute temp ](https://docs.lammps.org/compute_temp.html), [compute pressure ](https://docs.lammps.org/compute_pressure.html)\n" -}, -{ - "command": [ - "pair_style list" - ], - "syntax": [ - "pair_style list listfile cutoff keyword" - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "box", "type": 1, "choices": [] }, { - "arg": "list", - "type": 1, + "arg": "", + "type": 2, "choices": [] }, { - "arg": "listfile", + "arg": "", "type": 2, "choices": [] }, { - "arg": "cutoff", + "arg": "", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "in", + "out" + ] + }, + { + "arg": "[units]", "type": 2, "choices": [] } ] ], - "parameters": "* listfile = name of file with list of pairwise interactions\n* cutoff = global cutoff (distance units)\n* keyword = optional flag nocheck or check (default is check ) \n", - "examples": "\n```lmps\npair_style list restraints.txt 200.0\npair_coeff * *\n\npair_style hybrid/overlay lj/cut 1.1225 list pair_list.txt 300.0\npair_coeff * * lj/cut 1.0 1.0\npair_coeff 3* 3* list\n```\n", - "html_filename": "pair_list.html", - "short_description": "Style *list* computes interactions between explicitly listed pairs of\natoms with the option to select functional form and parameters for each\nindividual pair", - "description": "Style *list* computes interactions between explicitly listed pairs of\natoms with the option to select functional form and parameters for each\nindividual pair. Because the parameters are set in the list file, the\npair_coeff command has no parameters (but still needs to be provided).\nThe *check* and *nocheck* keywords enable/disable tests that checks\nwhether all listed pairs of atom IDs were present and the interactions\ncomputed. If *nocheck* is set and either atom ID is not present, the\ninteraction is skipped.\n\nThis pair style can be thought of as a hybrid between bonded,\nnon-bonded, and restraint interactions. It will typically be used as an\nadditional interaction within the *hybrid/overlay* pair style. It\ncurrently supports three interaction styles: a 12-6 Lennard-Jones, a\nMorse and a harmonic potential.\n\nThe format of the list file is as follows:\n\n* one line per pair of atoms\n* empty lines will be ignored\n* comment text starts with a '#' character\n* line syntax: *ID1 ID2 style coeffs cutoff*\n\n```\nID1 = atom ID of first atom\nID2 = atom ID of second atom\nstyle = style of interaction\ncoeffs = list of coeffs\ncutoff = cutoff for interaction (optional)\n```\nThe cutoff parameter is optional for all but the *quartic* interactions.\nIf it is not specified, the global cutoff is used.\n\nHere is an example file:\n\n```\n# this is a comment\n\n15 259 lj126 1.0 1.0 50.0\n15 603 morse 10.0 1.2 2.0 10.0 # and another comment\n18 470 harmonic 50.0 1.2 5.0\n19 332 quartic 10.0 5.0 -1.2 1.2\n```\nThe style *lj126* computes pairwise interactions with the formula\n\\[\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} - \\left(\\frac{\\sigma}{r}\\right)^6 \\right] \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(\\epsilon\\) (energy units)\n* \\(\\sigma\\) (distance units)\n\nThe style *morse* computes pairwise interactions with the formula\n\\[\n E = D_0 \\left[ 1 - e^{-\\alpha (r - r_0)} \\right]^2 \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(D_0\\) (energy units)\n* \\(\\alpha\\) (1/distance units)\n* \\(r_0\\) (distance units)\n\nThe style *harmonic* computes pairwise interactions with the formula\n\\[\n E = K (r - r_0)^2 \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(K\\) (energy units)\n* \\(r_0\\) (distance units)\n\nNote that the usual 1/2 factor is included in \\(K\\).\n\nThe style *quartic* computes pairwise interactions with the formula\n\\[\n E = K (r - r_0)^2 (r - r_0 -b_1) (r - r_0 - b_2) \\qquad r < r_c\\]\nand the coefficients:\n\n* \\(K\\) (energy units)\n* \\(r_0\\) (distance units)\n* \\(b_1\\) (distance units)\n* \\(b_2\\) (distance units)\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing since all parameters are\nexplicit for each pair.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option is supported by this\npair style.\n\nThe [pair_modify ](https://docs.lammps.org/pair_modify.html) table and tail options are not\nrelevant for this pair style.\n\nThis pair style does not write its information to [binary restartfiles ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands need to be\nspecified in an input script that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n", - "restrictions": "This pair style does not use a neighbor list and instead identifies\natoms by their IDs. This has two consequences: 1) The cutoff has to be\nchosen sufficiently large, so that the second atom of a pair has to be a\nghost atom on the same node on which the first atom is local; otherwise\nthe interaction will be skipped. You can use the *check* option to\ndetect, if interactions are missing. 2) Unlike other pair styles in\nLAMMPS, an atom I will not interact with multiple images of atom J\n(assuming the images are within the cutoff distance), but only with the\nclosest image.\n\nThis style is part of the MISC package. It is only enabled if LAMMPS is\nbuild with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage on for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style lj/cut ](https://docs.lammps.org/pair_lj.html),\n[bond_style morse ](https://docs.lammps.org/bond_morse.html),\n[bond_style harmonic ](https://docs.lammps.org/bond_harmonic.html)\n[bond_style quartic ](https://docs.lammps.org/bond_quartic.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_faceset = name of the AtC sub-command\n* id = id to assign to the collection of FE faces\n* box = use bounding box to define FE faces\n* = coordinates of the bounding box that is coincident with the desired FE faces\n* = \"in\" gives inner faces to the box, \"out\" gives the outer faces to the box\n* units = option to specify real as opposed to lattice units \n", + "examples": "\n```lmps\nfix_modify AtC mesh create_faceset obndy box -4.0 4.0 -12 12 -12 12 out\n```\n", + "html_filename": "atc_mesh_create_faceset_box.html", + "short_description": "Command to assign an id to a set of FE faces", + "description": "Command to assign an id to a set of FE faces.\n", + "restrictions": "Only viable for rectangular grids.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh create_faceset plane ](https://docs.lammps.org/atc_mesh_create_faceset_plane.html)\n" }, { "command": [ - "rerun" + "write_coeff" ], "syntax": [ - "rerun file1 file2 ... keyword args ..." + "write_coeff file" ], "args": [ [ { - "arg": "rerun", + "arg": "write_coeff", "type": 1, "choices": [] }, { - "arg": "file1", - "type": 2, - "choices": [] - }, - { - "arg": "file2", - "type": 2, - "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "args", + "arg": "file", "type": 2, "choices": [] } ] ], - "parameters": "* file1,file2,... = dump file(s) to read\n* one or more keywords may be appended, keyword dump must appear and be last \n *      keyword = first or last or every or skip or start or stop or post or dump \n       first args = Nfirst \n       Nfirst = dump timestep to start on \n       last args = Nlast \n       Nlast = dumptimestep to stop on \n       every args = Nevery \n       Nevery = read snapshots matching every this many timesteps \n       skip args = Nskip \n       Nskip = read one out of every Nskip snapshots \n       start args = Nstart \n       Nstart = timestep on which pseudo run will start \n       stop args = Nstop \n       Nstop = timestep to which pseudo run will end \n       post value = yes or no \n       dump args = same as [read_dump ](https://docs.lammps.org/read_dump.html) command starting with its field arguments \n", - "examples": "\n```lmps\nrerun dump.file dump x y z vx vy vz\nrerun dump1.txt dump2.txt first 10000 every 1000 dump x y z\nrerun dump.vels dump x y z vx vy vz box yes format molfile lammpstrj\nrerun dump.dcd dump x y z box no format molfile dcd\nrerun ../run7/dump.file.gz skip 2 dump x y z box yes\nrerun dump.bp dump x y z box no format adios\nrerun dump.bp dump x y z vx vy vz format adios timeout 10.0\n```\n", - "html_filename": "rerun.html", - "short_description": "Perform a pseudo simulation run where atom information is read one\nsnapshot at a time from a dump file(s), and energies and forces are\ncomputed on the shapshot to produce thermodynamic or other output", - "description": "Perform a pseudo simulation run where atom information is read one\nsnapshot at a time from a dump file(s), and energies and forces are\ncomputed on the shapshot to produce thermodynamic or other output.\n\nThis can be useful in the following kinds of scenarios, after an\ninitial simulation produced the dump file:\n\n* Compute the energy and forces of snapshots using a different potential.\n* Calculate one or more diagnostic quantities on the snapshots that\n were not computed in the initial run. These can also be computed with\n settings not used in the initial run, e.g. computing an RDF via the\n [compute rdf ](https://docs.lammps.org/compute_rdf.html) command with a longer cutoff than was\n used initially.\n* Calculate the portion of per-atom forces resulting from a subset of\n the potential. E.g. compute only Coulombic forces. This can be done\n by only defining only a Coulombic pair style in the rerun script.\n Doing this in the original script would result in different (bad)\n dynamics.\n\nConceptually, using the rerun command is like running an input script\nthat has a loop in it (see the [next ](https://docs.lammps.org/next.html) and [jump ](https://docs.lammps.org/jump.html)\ncommands). Each iteration of the loop reads one snapshot from the\ndump file via the [read_dump ](https://docs.lammps.org/read_dump.html) command, sets the\ntimestep to the appropriate value, and then invokes a [run ](https://docs.lammps.org/run.html)\ncommand for zero timesteps to simply compute energy and forces, and\nany other [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or diagnostic info\nyou have defined. This computation also invokes any fixes you have\ndefined that apply constraints to the system, such as [fix shake ](https://docs.lammps.org/fix_shake.html) or [fix indent ](https://docs.lammps.org/fix_indent.html).\n\nNote that a simulation box must already be defined before using the\nrerun command. This can be done by the [create_box ](https://docs.lammps.org/create_box.html),\n[read_data ](https://docs.lammps.org/read_data.html), or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands.\n\nAlso note that reading per-atom information from dump snapshots is\nlimited to the atom coordinates, velocities and image flags as\nexplained in the [read_dump ](https://docs.lammps.org/read_dump.html) command. Other atom\nproperties, which may be necessary to compute energies and forces,\nsuch as atom charge, or bond topology information for a molecular\nsystem, are not read from (or even contained in) dump files. Thus\nthis auxiliary information should be defined in the usual way, e.g. in\na data file read in by a [read_data ](https://docs.lammps.org/read_data.html) command, before\nusing the rerun command.\n\nAlso note that the frequency of thermodynamic or dump output from the\nrerun simulation will depend on settings made in the rerun script, the\nsame as for output from any LAMMPS simulation. See further info below\nas to what that means if the timesteps for snapshots read from dump\nfiles do not match the specified output frequency.\n\n----------\n\nIf more than one dump file is specified, the dump files are read one\nafter the other in the order specified. It is assumed that snapshot\ntimesteps will be in ascending order. If a snapshot is encountered that\nis not in ascending order, it will skip the snapshot until it reads one\nthat is.\nThis allows skipping of a duplicate snapshot (same timestep),\ne.g. that appeared at the end of one file and beginning of the next.\nHowever if you specify a series of dump files in an incorrect order\n(with respect to the timesteps they contain), you may skip large\nnumbers of snapshots.\n\nNote that the dump files specified as part of the *dump* keyword can be\nparallel files, i.e. written as multiple files either per processor\nand/or per snapshot. If that is the case they will also be read in\nparallel which can make the rerun command operate dramatically faster\nfor large systems. See the page for the [read_dump](https://docs.lammps.org/read_dump.html) and [dump ](https://docs.lammps.org/dump.html) commands which describe how to read\nand write parallel dump files.\n\nThe *first*, *last*, *every*, *skip* keywords determine which\nsnapshots are read from the dump file(s). Snapshots are skipped until\nthey have a timestep >= *Nfirst* . When a snapshot with a timestep >\n*Nlast* is encountered, the rerun command finishes. Note that\nthe defaults for *first* and *last* are to read all snapshots. If the\n*every* keyword is set to a value > 0, then only snapshots with\ntimesteps that are a multiple of *Nevery* are read (the first\nsnapshot is always read). If *Nevery* = 0, then this criterion is\nignored, i.e. every snapshot is read that meets the other criteria.\nIf the *skip* keyword is used, then after the first snapshot is read,\nevery Nth snapshot is read, where N = *Nskip* . E.g. if *Nskip* = 3,\nthen only 1 out of every 3 snapshots is read, assuming the snapshot\ntimestep is also consistent with the other criteria.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Not all dump formats contain the timestep and not all dump readers\n > support reading it. In that case individual snapshots are assigned\n > consecutive timestep numbers starting at 1. \n > \n\nThe *start* and *stop* keywords do not affect which snapshots are read\nfrom the dump file(s). Rather, they have the same meaning that they\ndo for the [run ](https://docs.lammps.org/run.html) command. They only need to be defined if\n(a) you are using a [fix ](https://docs.lammps.org/fix.html) command that changes some value\nover time, and (b) you want the reference point for elapsed time (from\nstart to stop) to be different than the *first* and *last* settings.\nSee the page for individual fixes to see which ones can be used\nwith the *start/stop* keywords. Note that if you define neither of\nthe *start* /\\ *stop* or *first* /\\ *last* keywords, then LAMMPS treats the\npseudo run as going from 0 to a huge value (effectively infinity).\nThis means that any quantity that a fix scales as a fraction of\nelapsed time in the run, will essentially remain at its initial value.\nAlso note that an error will occur if you read a snapshot from the\ndump file with a timestep value larger than the *stop* setting you\nhave specified.\n\nThe *post* keyword can be used to minimize the output to the screen that\nhappens after a *rerun* command, similar to the post keyword of the\n[run command ](https://docs.lammps.org/run.html). It is set to *no* by default.\n\nThe *dump* keyword is required and must be the last keyword specified.\nIts arguments are passed internally to the [read_dump ](https://docs.lammps.org/read_dump.html)\ncommand. The first argument following the *dump* keyword should be\nthe *field1* argument of the [read_dump ](https://docs.lammps.org/read_dump.html) command. See\nthe [read_dump ](https://docs.lammps.org/read_dump.html) page for details on the various\noptions it allows for extracting information from the dump file\nsnapshots, and for using that information to alter the LAMMPS\nsimulation.\n\n----------\n\nIn general, a LAMMPS input script that uses a rerun command can\ninclude and perform all the usual operations of an input script that\nuses the [run ](https://docs.lammps.org/run.html) command. There are a few exceptions and\npoints to consider, as discussed here.\n\nFixes that perform time integration, such as [fix nve ](https://docs.lammps.org/fix_nve.html)\nor [fix npt ](https://docs.lammps.org/fix_nh.html) are not invoked, since no time integration\nis performed. Fixes that perturb or constrain the forces on atoms\nwill be invoked, just as they would during a normal run. Examples are\n[fix indent ](https://docs.lammps.org/fix_indent.html) and [fix langevin ](https://docs.lammps.org/fix_langevin.html).\nSo you should think carefully as to whether that makes sense for the\nmanner in which you are reprocessing the dump snapshots.\n\nIf you only want the rerun script to perform an analysis that does not\ninvolve pair interactions, such as use compute msd to calculated\ndisplacements over time, you do not need to define a [pair style](https://docs.lammps.org/pair_style.html), which may also mean neighbor lists will not need to be\ncalculated which saves time. The [comm_modify cutoff](https://docs.lammps.org/comm_modify.html) command can also be used to ensure ghost atoms are\nacquired from far enough away for operations like bond and angle\nevaluations, if no pair style is being used.\n\nEvery time a snapshot is read, the timestep for the simulation is reset,\nas if the [reset_timestep ](https://docs.lammps.org/reset_timestep.html) command were used.\nThis command has some restrictions as to what fixes can be defined. See\nits documentation page for details. For example, the [fix deposit](https://docs.lammps.org/fix_deposit.html) and [fix dt/reset ](https://docs.lammps.org/fix_dt_reset.html) fixes are in this\ncategory. They also make no sense to use with a rerun command.\n\nIf time-averaging fixes like [fix ave/time ](https://docs.lammps.org/fix_ave_time.html) are\nused, they are invoked on timesteps that are a function of their\n*Nevery*, *Nrepeat*, and *Nfreq* settings. As an example, see the\n[fix ave/time ](https://docs.lammps.org/fix_ave_time.html) page for details. You must\nensure those settings are consistent with the snapshot timestamps that\nare read from the dump file(s). If an averaging fix is not invoked on\na timestep it expects to be, LAMMPS will flag an error.\n\nThe various forms of LAMMPS output, as defined by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html), [thermo ](https://docs.lammps.org/thermo.html),\n[dump ](https://docs.lammps.org/dump.html), and [restart ](https://docs.lammps.org/restart.html) commands occur with\nspecified frequency, e.g. every N steps. If the timestep for a dump\nsnapshot is not a multiple of N, then it will be read and processed,\nbut no output will be produced. If you want output for every dump\nsnapshot, you can simply use N=1 for an output frequency, e.g. for\nthermodynamic output or new dump file output.\n\n----------\n", - "restrictions": "The *rerun* command is subject to all restrictions of\nthe [read_dump ](https://docs.lammps.org/read_dump.html) command.\n", - "related": "[read_dump ](https://docs.lammps.org/read_dump.html)\n" + "parameters": "* file = name of data file to write out \n", + "examples": "\n```lmps\nwrite_coeff polymer.coeff\n```\n", + "html_filename": "write_coeff.html", + "short_description": "Write a text format file with the currently defined force field\ncoefficients in a way, that it can be read by LAMMPS with the\n[include ](https://docs.lammps.org/include.html) command", + "description": "Write a text format file with the currently defined force field\ncoefficients in a way, that it can be read by LAMMPS with the\n[include ](https://docs.lammps.org/include.html) command. In combination with the nocoeff\noption of [write_data ](https://docs.lammps.org/write_data.html) this can be used to move\nthe Coeffs sections from a data file into a separate file.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The write_coeff command is not yet fully implemented as\n > some pair styles do not output their coefficient information.\n > This means you will need to add/copy this information manually. \n > \n\n----------\n", + "restrictions": "none\n", + "related": "[read_data ](https://docs.lammps.org/read_data.html), [write_restart ](https://docs.lammps.org/write_restart.html),\n[write_data ](https://docs.lammps.org/write_data.html)\n" }, { "command": [ - "compute viscosity/cos" + "fix amoeba/pitorsion" ], "syntax": [ - "compute ID group-ID viscosity/cos" + "fix ID group-ID ameoba/pitorsion" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -40599,58 +40105,85 @@ export const command_docs = [ "choices": [] }, { - "arg": "viscosity/cos", - "type": 1, + "arg": "ameoba/pitorsion", + "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* viscosity/cos = style name of this compute command \n", - "examples": "\n```lmps\nunits real\ncompute cos all viscosity/cos\nvariable V equal c_cos[7]\nvariable A equal 0.02E-5 # A/fs^2\nvariable density equal density\nvariable lz equal lz\nvariable reciprocalViscosity equal v_V/${A}/v_density*39.4784/v_lz/v_lz*100 # 1/(Pa*s)\n```\n", - "html_filename": "compute_viscosity_cos.html", - "short_description": "Define a computation that calculates the velocity amplitude of a group of atoms\nwith an cosine-shaped velocity profile and the temperature of them\nafter subtracting out the velocity profile before computing the kinetic energy", - "description": "Define a computation that calculates the velocity amplitude of a group of atoms\nwith an cosine-shaped velocity profile and the temperature of them\nafter subtracting out the velocity profile before computing the kinetic energy.\nA compute of this style can be used by any command that computes a temperature\n(e.g., [thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix npt ](https://docs.lammps.org/fix_nh.html)).\n\nThis command together with [fix_accelerate/cos](https://docs.lammps.org/fix_accelerate_cos.html)\nenables viscosity calculation with periodic perturbation method,\nas described by **Hess1**.\nAn acceleration along the \\(x\\)-direction is applied to the simulation\nsystem by using [fix_accelerate/cos](https://docs.lammps.org/fix_accelerate_cos.html) command.\nThe acceleration is a periodic function along the \\(z\\)-direction:\n\\[\n a_{x}(z) = A \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nwhere \\(A\\) is the acceleration amplitude, \\(l_z\\) is the\n\\(z\\)-length of the simulation box. At steady state, the acceleration\ngenerates a velocity profile:\n\\[\n v_{x}(z) = V \\cos \\left(\\frac{2 \\pi z}{l_{z}}\\right)\\]\nThe generated velocity amplitude \\(V\\) is related to the\nshear viscosity \\(\\eta\\) by\n\\[\n V = \\frac{A \\rho}{\\eta}\\left(\\frac{l_{z}}{2 \\pi}\\right)^{2},\\]\nand it can be obtained from ensemble average of the velocity profile via\n\\[\n V = \\frac{\\sum\\limits_i 2 m_{i} v_{i, x} \\cos \\left(\\frac{2 \\pi z_i}{l_{z}}\\right)}{\\sum\\limits_i m_{i}}\\]\nwhere \\(m_i\\), \\(v_{i,x}\\) and \\(z_i\\) are the mass,\n\\(x\\)-component velocity, and \\(z\\)-coordinate of a particle,\nrespectively.\n\nAfter the cosine-shaped collective velocity in the \\(x\\)-direction has been\nsubtracted for each atom, the temperature is calculated by the formula\n\\[\n \\text{KE} = \\frac{\\text{dim}}{2} N k_B T,\\]\nwhere KE is the total kinetic energy of the group of atoms (sum of\n\\(\\frac12 m v^2\\)), dim = 2 or 3 is the dimensionality of the simulation,\n\\(N\\) is the number of atoms in the group, \\(k_B\\) is the Boltzmann\nconstant, and \\(T\\) is the absolute temperature.\n\nA symmetric tensor, stored as a six-element vector, is also calculated\nby this compute for use in the computation of a pressure tensor by the\n[compute pressue ](https://docs.lammps.org/compute_pressure.html) command. The formula for\nthe components of the tensor is the same as the above expression for\n\\(E_\\mathrm{kin}\\), except that the 1/2 factor is NOT included and\nthe \\(v_i^2\\) is replaced by \\(v_{i,x} v_{i,y}\\) for the\n\\(xy\\) component, and so on. Note that because it lacks the 1/2\nfactor, these tensor components are twice those of the traditional\nkinetic energy tensor. The six components of the vector are ordered\n\\(xx\\), \\(yy\\), \\(zz\\), \\(xy\\), \\(xz\\),\n\\(yz\\).\n\nThe number of atoms contributing to the temperature is assumed to be\nconstant for the duration of the run; use the *dynamic* option of the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command if this is not the case.\nHowever, in order to get meaningful results, the group ID of this compute should\nbe all.\n\nThe removal of the cosine-shaped velocity component by this command is\nessentially computing the temperature after a \"bias\" has been removed\nfrom the velocity of the atoms. If this compute is used with a fix\ncommand that performs thermostatting then this bias will be subtracted\nfrom each atom, thermostatting of the remaining thermal velocity will\nbe performed, and the bias will be added back in. Thermostatting\nfixes that work in this way include [fix nvt ](https://docs.lammps.org/fix_nh.html),\n[fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), and\n[fix langevin ](https://docs.lammps.org/fix_langevin.html).\n\nThis compute subtracts out degrees of freedom due to fixes that\nconstrain molecular motion, such as [fix shake ](https://docs.lammps.org/fix_shake.html) and\n[fix rigid ](https://docs.lammps.org/fix_rigid.html). This means that the temperature of groups of\natoms that include these constraints will be computed correctly. If\nneeded, the subtracted degrees of freedom can be altered using the\n*extra* option of the [compute_modify ](https://docs.lammps.org/compute_modify.html) command.\n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a discussion of\ndifferent ways to compute temperature and perform thermostatting.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 7, which can be accessed by indices 1--7. The first\nsix elements of the vector are those of the symmetric tensor discussed\nabove. The seventh is the cosine-shaped velocity amplitude \\(V\\),\nwhich can be used to calculate the reciprocal viscosity, as shown in\nthe example. These values can be used by any command that uses global\nscalar or vector values from a compute as input. See the [Howtooutput ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nfirst six elements of vector values are \"extensive\",\nand the seventh element of vector values is \"intensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The first\nsix elements of vector values are in energy [units ](https://docs.lammps.org/units.html). The\nseventh element of vector value us in velocity [units ](https://docs.lammps.org/units.html).\n\n**(Hess1)** Hess, B. The Journal of Chemical Physics 2002, 116 (1), 209-217. \n ", - "restrictions": "This compute is part of the MISC package. It is only enabled if LAMMPS\nwas built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nSince this compute depends on [fix accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html)\nwhich can only work for 3d systems, it cannot be used for 2d systems.\n", - "related": "[fix accelerate/cos ](https://docs.lammps.org/fix_accelerate_cos.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* amoeba/pitorsion = style name of this fix command \n", + "examples": "\n```lmps\nfix pit all amoeba/pitorsion\nread_data proteinX.data fix pit \"pitorsion types\" \"PiTorsion Coeffs\" &\nfix pit pitorsions PiTorsions\nfix_modify pit energy yes\n```\n", + "html_filename": "fix_amoeba_pitorsion.html", + "short_description": "This command enables 6-body pitorsion interactions to be added to\nsimulations which use the AMOEBA and HIPPO force fields", + "description": "This command enables 6-body pitorsion interactions to be added to\nsimulations which use the AMOEBA and HIPPO force fields. It matches\nhow the Tinker MD code computes its pitorsion interactions for the\nAMOEBA and HIPPO force fields. See the [Howto amoeba ](https://docs.lammps.org/Howto_amoeba.html)\ndoc page for more information about the implementation of AMOEBA and HIPPO in\nLAMMPS.\n\nPitorsion interactions add additional potential energy contributions\nto 6-tuples of atoms \\(IJKLMN\\) that have a bond between atoms\n\\(K\\) and \\(L\\), where both \\(K\\) and \\(L\\) are additionally\nbonded to exactly two other atoms. Namely, \\(K\\) is also bonded to\n\\(I\\) and \\(J\\), and \\(L\\) is also bonded to \\(M\\) and\n\\(N\\).\n\nThe examples/amoeba directory has a sample input script and data file\nfor ubiquitin, which illustrates use of the fix amoeba/pitorsion\ncommand.\n\nAs in the example above, this fix should be used before reading a data\nfile that contains a listing of pitorsion interactions.\n\nThe data file read by the [read_data ](https://docs.lammps.org/read_data.html) command must\ncontain the topology of all the pitorsion interactions, similar to the\ntopology data for bonds, angles, dihedrals, etc. Specifically, it\nshould have two lines like these in its header section:\n\n```\nM pitorsion types\nN pitorsions\n```\nwhere \\(N\\) is the number of pitorsion 6-body interactions and \\(M\\) is\nthe number of pitorsion types. It should also have two sections in the body\nof the data file like these with \\(M\\) and \\(N\\) lines each:\n\n```\nPiTorsion Coeffs\n\n1 6.85\n2 10.2\n[...]\nM 6.85\n```\n\n```\nPiTorsions\n\n1 1 2 4 3 20 21 24\n2 5 21 23 22 37 38 41\n[...]\nN 7 27 29 28 30 35 36\n```\nFor PiTorsion Coeffs, the first column is an index from 1 to \\(M\\)\nto enumerate the pitorsion types. The second column is the single\nprefactor coefficient needed for each type.\n\nFor PiTorsions, the first column is an index from 1 to \\(N\\) to\nenumerate the pitorsion 6-atom tuples; it is ignored by LAMMPS. The\nsecond column is the \"type\" of the interaction; it is an index into\nthe PiTorsion Coeffs. The remaining 6 columns are the atom IDs of the\natoms (in order) for the 6-tuple \\(IJKLMN\\), as described above.\n\nNote that the *pitorsion types* and *pitorsions* and *PiTorsion\nCoeffs* and *PiTorsions* keywords for the header and body sections of\nthe data file match those specified in the [read_data ](https://docs.lammps.org/read_data.html)\ncommand following the data file name.\n\nThe data file should be generated by using the\ntools/tinker/tinker2lmp.py conversion script which creates a LAMMPS\ndata file from Tinker input files, including its PRM file which\ncontains the parameters necessary for computing pitorsion\ninteractions.\n\nThe potential energy associated with pitorsion interactions can be\noutput as described below. It can also be included in the total\npotential energy of the system, as output by the [thermo_style](https://docs.lammps.org/thermo_style.html) command, if the [fix_modify energy ](https://docs.lammps.org/fix_modify.html)\ncommand is used, as in the example above. See the note below about\nhow to include the pitorsion energy when performing an [energyminimization ](https://docs.lammps.org/minimize.html).\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the list of pitorsion interactions to [binaryrestart files ](https://docs.lammps.org/restart.html). See the [read_restart ](https://docs.lammps.org/read_restart.html)\ncommand for info on how to re-specify a fix in an input script that\nreads a restart file, so that the operation of the fix continues in an\nuninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the potential energy of the pitorsion interactions to\nboth the global potential energy and peratom potential energies of the\nsystem as part of [thermodynamic output ](https://docs.lammps.org/thermo_style.html) or output\nby the [compute pe/atom ](https://docs.lammps.org/compute_pe_atom.html) command. The default\nsetting for this fix is [fix_modify energy yes ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the pitorsion interactions to\nboth the global pressure and per-atom stress of the system via the\n[compute pressure ](https://docs.lammps.org/compute_pressure.html) and [computestress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former can be\naccessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default\nsetting for this fix is [fix_modify virial yes ](https://docs.lammps.org/fix_modify.html).\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the potential\nenergy discussed above. The scalar value calculated by this fix is\n\"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA](https://docs.lammps.org/run_style.html) integrator the fix is adding its forces. Default is the\noutermost level.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For energy minimization, if you want the potential energy\n > associated with the pitorsion terms forces to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST not disable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", + "restrictions": "To function as expected this fix command must be issued *before* a\n[read_data ](https://docs.lammps.org/read_data.html) command but *after* a\n[read_restart ](https://docs.lammps.org/read_restart.html) command.\n\nThis fix can only be used if LAMMPS was built with the AMOEBA package.\nSee the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix_modify ](https://docs.lammps.org/fix_modify.html), [read_data ](https://docs.lammps.org/read_data.html)\n" }, { "command": [ - "pair_style smtbq" + "fix neb" ], "syntax": [ - "pair_style smtbq" + "fix ID group-ID neb Kspring keyword value" ], "args": [ [ { - "arg": "pair_style", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "smtbq", + "arg": "ID", + "type": 2, + "choices": [] + }, + { + "arg": "group-ID", + "type": 2, + "choices": [] + }, + { + "arg": "neb", "type": 1, "choices": [] + }, + { + "arg": "Kspring", + "type": 2, + "choices": [] + }, + { + "arg": "end", + "type": 3, + "choices": [ + "parallel", + "perp", + "end" + ] + }, + { + "arg": "value", + "type": 2, + "choices": [] } ] ], - "parameters": "", - "examples": "\n```lmps\npair_style smtbq\npair_coeff * * ffield.smtbq.Al2O3 O Al\n```\n", - "html_filename": "pair_smtbq.html", - "short_description": "This pair style computes a variable charge SMTB-Q (Second-Moment\ntight-Binding QEq) potential as described in **SMTB-Q_1** and\n**SMTB-Q_2**", - "description": "This pair style computes a variable charge SMTB-Q (Second-Moment\ntight-Binding QEq) potential as described in **SMTB-Q_1** and\n**SMTB-Q_2**.\nThis potential was first proposed in **SMTB-Q_0**.\nBriefly, the energy of metallic-oxygen systems is given by three contributions:\n\\[\\begin{align*} \n E_{tot} & = E_{ES} + E_{OO} + E_{MO} \\\\\n E_{ES} & = \\sum_i{\\biggl[ \\chi_{i}^{0}Q_i + \\frac{1}{2}J_{i}^{0}Q_{i}^{2} +\n \\frac{1}{2} \\sum_{j\\neq i}{ J_{ij}(r_{ij})f_{cut}^{R_{coul}}(r_{ij})Q_i Q_j } \\biggr] } \\\\\n E_{OO} & = \\sum_{i,j}^{i,j = O}{\\biggl[Cexp( -\\frac{r_{ij}}{\\rho} ) - Df_{cut}^{r_1^{OO}r_2^{OO}}(r_{ij}) exp(Br_{ij})\\biggr]} \\\\\n E_{MO} & = \\sum_i{E_{cov}^{i} + \\sum_{j\\neq i}{ Af_{cut}^{r_{c1}r_{c2}}(r_{ij})exp\\bigl[-p(\\frac{r_{ij}}{r_0} -1) \\bigr] } } \\end{align*} \\]\nwhere \\(E_{tot}\\) is the total potential energy of the system,\n\\(E_{ES}\\) is the electrostatic part of the total energy,\n\\(E_{OO}\\) is the interaction between oxygen atoms and\n\\(E_{MO}\\) is a short-range interaction between metal and oxygen\natoms. This interactions depend on interatomic distance \\(r_{ij}\\)\nand/or the charge \\(Q_{i}\\) of atoms *i* . Cut-off function enables\nsmooth convergence to zero interaction.\n\nThe parameters appearing in the upper expressions are set in the\nffield.SMTBQ.Syst file where Syst corresponds to the selected system\n(e.g. field.SMTBQ.Al2O3). Examples for \\(\\mathrm{TiO_2}\\),\n\\(\\mathrm{Al_2O_3}\\) are provided. A single pair_coeff command\nis used with the SMTBQ styles which provides the path to the potential\nfile with parameters for needed elements. These are mapped to LAMMPS\natom types by specifying additional arguments after the potential\nfilename in the pair_coeff command. Note that atom type 1 must always\ncorrespond to oxygen atoms. As an example, to simulate a \\(\\mathrm{TiO_2}\\) system,\natom type 1 has to be oxygen and atom type 2 Ti. The following\npair_coeff command should then be used:\n\n```lmps\npair_coeff * * PathToLammps/potentials/ffield.smtbq.TiO2 O Ti\n```\nThe electrostatic part of the energy consists of two components\n\nself-energy of atom *i* in the form of a second order charge dependent\npolynomial and a long-range Coulombic electrostatic interaction. The\nlatter uses the wolf summation method described in **Wolf2**,\nspherically truncated at a longer cutoff, \\(R_{coul}\\). The\ncharge of each ion is modeled by an orbital Slater which depends on\nthe principal quantum number (\\ *n* ) of the outer orbital shared by the\nion.\n\nInteraction between oxygen, \\(E_{OO}\\), consists of two parts,\nan attractive and a repulsive part. The attractive part is effective\nonly at short range (< \\(r_2^{OO}\\)). The attractive\ncontribution was optimized to study surfaces reconstruction\n(e.g. **SMTB-Q_2** in \\(\\mathrm{TiO_2}\\)) and is not necessary\nfor oxide bulk modeling. The repulsive part is the Pauli interaction\nbetween the electron clouds of oxygen. The Pauli repulsion and the\ncoulombic electrostatic interaction have same cut off value. In the\nffield.SMTBQ.Syst, the keyword *'buck'* allows to consider only the\nrepulsive O-O interactions. The keyword *'buckPlusAttr'* allows to\nconsider the repulsive and the attractive O-O interactions.\n\nThe short-range interaction between metal-oxygen, \\(E_{MO}\\) is\nbased on the second moment approximation of the density of states with\na N-body potential for the band energy term,\n\\(E^i_{cov}\\), and a Born-Mayer type repulsive terms\nas indicated by the keyword *'second_moment'* in the\nffield.SMTBQ.Syst. The energy band term is given by:\n\\[\\begin{align*} \n E_{cov}^{i(i=M,O)} & = - \\biggl\\{\\eta_i(\\mu \\xi^{0})^2 f_{cut}^{r_{c1}r_{c2}}(r_{ij})\n \\biggl( \\sum_{j(j=O,M)}{ exp[ -2q(\\frac{r_{ij}}{r_0} - 1)] } \\biggr)\n \\delta Q_i \\bigl( 2\\frac{n_0}{\\eta_i} - \\delta Q_i \\bigr) \\biggr\\}^{1/2} \\\\\n \\delta Q_i & = | Q_i^{F} | - | Q_i | \\end{align*} \\]\nwhere \\(\\eta_i\\) is the stoichiometry of atom *i*,\n\\(\\delta Q_i\\) is the charge delocalization of atom *i*,\ncompared to its formal charge\n\\(Q^F_i\\). \\(n_0\\), the number of hybridized\norbitals, is calculated with to the atomic orbitals shared\n\\(d_i\\) and the stoichiometry\n\\(\\eta_i\\). \\(r_{c1}\\) and \\(r_{c2}\\) are the two\ncutoff radius around the fourth neighbors in the cutoff function.\n\nIn the formalism used here, \\(\\xi^0\\) is the energy\nparameter. \\(\\xi^0\\) is in tight-binding approximation the\nhopping integral between the hybridized orbitals of the cation and the\nanion. In the literature we find many ways to write the hopping\nintegral depending on whether one takes the point of view of the anion\nor cation. These are equivalent vision. The correspondence between the\ntwo visions is explained in appendix A of the article in the\nSrTiO3 **SMTB-Q_3** (parameter \\(\\beta\\) shown in\nthis article is in fact the \\(\\beta_O\\)). To summarize the\nrelationship between the hopping integral \\(\\xi^O\\) and the\nothers, we have in an oxide \\(\\mathrm{C_n O_m}\\) the following\nrelationship:\n\\[\\begin{align*} \n \\xi^0 & = \\frac{\\xi_O}{m} = \\frac{\\xi_C}{n} \\\\\n \\frac{\\beta_O}{\\sqrt{m}} & = \\frac{\\beta_C}{\\sqrt{n}} = \\xi^0 \\frac{\\sqrt{m}+\\sqrt{n}}{2} \\end{align*} \\]\nThus parameter \\(\\mu\\), indicated above, is given by \\(\\mu = \\frac{1}{2}(\\sqrt{n}+\\sqrt{m})\\)\n\nThe potential offers the possibility to consider the polarizability of\nthe electron clouds of oxygen by changing the slater radius of the\ncharge density around the oxygen atoms through the parameters *rBB, rB and\nrS* in the ffield.SMTBQ.Syst. This change in radius is performed\naccording to the method developed by E. Maras\n**SMTB-Q_2**. This method needs to determine the number of\nnearest neighbors around the oxygen. This calculation is based on\nfirst (\\(r_{1n}\\)) and second (\\(r_{2n}\\)) distances\nneighbors.\n\nThe SMTB-Q potential is a variable charge potential. The equilibrium\ncharge on each atom is calculated by the electronegativity\nequalization (QEq) method. See **Rick3** for further detail. One\ncan adjust the frequency, the maximum number of iterative loop and the\nconvergence of the equilibrium charge calculation. To obtain the\nenergy conservation in NVE thermodynamic ensemble, we recommend to use\na convergence parameter in the interval 10e-5 -\n10e-6 eV.\n\nThe ffield.SMTBQ.Syst files are provided for few systems. They consist\nof nine parts and the lines beginning with '#' are comments (note that\nthe number of comment lines matter). The first sections are on the\npotential parameters and others are on the simulation options and\nmight be modified. Keywords are character type and must be enclosed in\nquotation marks ('').\n\n1) Number of different element in the oxide:\n\n* N_elem= 2 or 3\n* Divider line\n\n2) Atomic parameters\n\nFor the anion (oxygen)\n\n* Name of element (char) and stoichiometry in oxide\n* Formal charge and mass of element\n* Principal quantum number of outer orbital n), electronegativity (\\(\\chi^0_i\\)) and hardness (\\(J^0_i\\))\n* Ionic radius parameters : max coordination number (\\ *coordBB* = 6 by default), bulk coordination number *(coordB)*, surface coordination number *(coordS)* and *rBB, rB and rS* the slater radius for each coordination number. (**note : If you don't want to change the slater radius, use three identical radius values**)\n* Number of orbital shared by the element in the oxide (\\(d_i\\))\n* Divider line\n\nFor each cations (metal):\n\n* Name of element (char) and stoichiometry in oxide\n* Formal charge and mass of element\n* Number of electron in outer orbital *(ne)*, electronegativity (\\(\\chi^0_i\\)), hardness (\\(J^0_i\\)) and \\(r_{Slater}\\) the slater radius for the cation.\n* Number of orbitals shared by the elements in the oxide (\\(d_i\\))\n* Divider line\n\n3) Potential parameters:\n\n* Keyword for element1, element2 and interaction potential\n ('second_moment' or 'buck' or 'buckPlusAttr') between element 1\n and 2. If the potential is 'second_moment', specify 'oxide' or\n 'metal' for metal-oxygen or metal-metal interactions respectively.\n* Potential parameter:\n\n - If type of potential is 'second_moment' : A (eV), *p*,\n \\(\\zeta^0\\) (eV) and *q*, \\(r_{c1} (\\mathring{\\textrm{A}})\\), \\(r_{c2}\n (\\mathring{\\textrm{A}})\\) and \\(r_0 (\\mathring{\\textrm{A}})\\)\n - If type of potential is 'buck' : *C* (eV) and \\(\\rho (\\mathring{\\textrm{A}})\\)\n - If type of potential is 'buckPlusAttr' : *C* (eV) and \\(\\rho\n (\\mathring{\\textrm{A}})\\) *D* (eV), *B* \\((\\mathring{\\textrm{A}}^{-1})\\), \\(r^{OO}_1 (\\mathring{\\textrm{A}})\\) and\n \\(r^{OO}_2 (\\mathring{\\textrm{A}})\\)\n* Divider line\n\n4) Tables parameters:\n\n* Cutoff radius for the Coulomb interaction (\\(R_{coul}\\))\n* Starting radius (\\(r_{min} = 1,18845 \\mathring{\\textrm{A}}\\)) and increments\n (\\(dr = 0.001 \\mathring{\\textrm{A}}\\)) for creating the potential table.\n* Divider line\n\n5) Rick model parameter:\n\n* *Nevery* : parameter to set the frequency of the charge\n resolution. The charges are evaluated each *Nevery* time steps.\n* Max number of iterative loop (\\ *loopmax* ) and convergence criterion\n (\\ *prec* ) in eV of the charge resolution\n* Divider line\n\n6) Coordination parameter:\n\n* First (\\(r_{1n}\\)) and second (\\(r_{2n}\\)) neighbor distances\n in angstroms\n* Divider line\n\n7) Charge initialization mode:\n\n* Keyword (\\ *QInitMode* ) and initial oxygen charge\n (\\(Q_{init}\\)). If keyword = 'true', all oxygen charges are\n initially set equal to \\(Q_{init}\\). The charges on the cations\n are initially set in order to respect the neutrality of the box. If\n keyword = 'false', all atom charges are initially set equal to 0 if\n you use the [create_atoms ](https://docs.lammps.org/create_atoms.html) command or the charge\n specified in the file structure using [read_data ](https://docs.lammps.org/read_data.html)\n command.\n* Divider line\n\n8) Mode for the electronegativity equalization (Qeq)\n\n* Keyword (\\ *mode* ) followed by:\n\n - QEqAll (one QEq group) \\| no parameters\n - QEqAllParallel (several QEq groups) \\| no parameters\n - Surface \\| zlim (QEq only for z>zlim)\n\n* Parameter if necessary\n* Divider line\n\n9) Verbose\n\n* If you want the code to work in verbose mode or not : 'true' or 'false'\n* If you want to print or not in the file 'Energy_component.txt' the\n three main contributions to the energy of the system according to the\n description presented above : 'true' or 'false' and\n \\(N_{Energy}\\). This option writes to the file every\n \\(N_{Energy}\\) time steps. If the value is 'false' then\n \\(N_{Energy} = 0\\). The file takes into account the possibility to\n have several QEq groups *g* then it writes: time step, number of atoms\n in group *g*, electrostatic part of energy, \\(E_{ES}\\), the\n interaction between oxygen, \\(E_{OO}\\), and short range\n metal-oxygen interaction, \\(E_{MO}\\).\n* If you want to print to the file 'Electroneg_component.txt' the\n electronegativity component (\\(\\frac{\\partial E_{tot}}{\\partial\n Q_i}\\)) or not: 'true' or 'false' and \\(N_{Electroneg}\\). This\n option writes to the file every \\(N_{Electroneg}\\) time steps. If\n the value is 'false' then \\(N_{Electroneg} = 0\\). The file\n consist of atom number *i*, atom type (1 for oxygen and # higher\n than 1 for metal), atom position: *x*, *y* and *z*, atomic charge\n of atom *i*, electrostatic part of atom *i* electronegativity,\n covalent part of atom *i* electronegativity, the hopping integral of\n atom *i* \\((Z\\beta^2)_i\\) and box electronegativity.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This last option slows down the calculation dramatically. Use\n > only with a single processor simulation. \n > \n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nmix, shift, table, and tail options.\n\nThis pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in potential files. Thus, you\nneeds to re-specify the pair_style and pair_coeff commands in an input\nscript that reads a restart file.\n\nThis pair style can only be used via the *pair* keyword of the\n[run_style respa ](https://docs.lammps.org/run_style.html) command. It does not support the\n*inner*, *middle*, *outer* keywords.\n\n----------\n\n**(SMTB-Q_1)** N. Salles, O. Politano, E. Amzallag, R. Tetot,\nComput. Mater. Sci. 111 (2016) 181-189 \n \n**(SMTB-Q_2)** E. Maras, N. Salles, R. Tetot, T. Ala-Nissila,\nH. Jonsson, J. Phys. Chem. C 2015, 119, 10391-10399 \n \n**(SMTB-Q_0)** A. Hallil, E. Amzallag, S. Landron, R. Tetot,\nSurface Science 605 738-745 (2011);\nR. Tetot, A. Hallil, J. Creuze and I. Braems, EPL, 83 40001 (2008) \n \n**(Wolf2)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999). \n \n**(SMTB-Q_3)** R. Tetot, N. Salles, S. Landron, E. Amzallag, Surface\nScience 616, 19-8722 28 (2013) \n \n**(Rick3)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994). \n ", - "restrictions": "This pair style is part of the SMTBQ package and is only enabled\nif LAMMPS is built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis potential requires using atom type 1 for oxygen and atom type\nhigher than 1 for metal atoms.\n\nThis pair style requires the [newton ](https://docs.lammps.org/newton.html) setting to be \"on\"\nfor pair interactions.\n\nThe SMTB-Q potential files provided with LAMMPS (see the potentials\ndirectory) are parameterized for metal [units ](https://docs.lammps.org/units.html).\n\n----------\n\n #### Citing this work\n\nPlease cite related publication: N. Salles, O. Politano, E. Amzallag\nand R. Tetot, Comput. Mater. Sci. 111 (2016) 181-189\n\n----------\n\n.. _SMTB-Q_0:\n\n**(SMTB-Q_0)** A. Hallil, E. Amzallag, S. Landron, R. Tetot,\nSurface Science 605 738-745 (2011);\nR. Tetot, A. Hallil, J. Creuze and I. Braems, EPL, 83 40001 (2008)\n\n.. _SMTB-Q_1:\n\n**(SMTB-Q_1)** N. Salles, O. Politano, E. Amzallag, R. Tetot,\nComput. Mater. Sci. 111 (2016) 181-189\n\n.. _SMTB-Q_2:\n\n**(SMTB-Q_2)** E. Maras, N. Salles, R. Tetot, T. Ala-Nissila,\nH. Jonsson, J. Phys. Chem. C 2015, 119, 10391-10399\n\n.. _SMTB-Q_3:\n\n**(SMTB-Q_3)** R. Tetot, N. Salles, S. Landron, E. Amzallag, Surface\nScience 616, 19-8722 28 (2013)\n\n.. _Wolf2:\n\n**(Wolf)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem\nPhys, 110, 8254 (1999).\n\n.. _Rick3:\n\n**(Rick)** S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141\n(1994).\n", - "related": "none" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* neb = style name of this fix command\n* Kspring = spring constant for parallel nudging force (force/distance units or force units, see parallel keyword)\n* zero or more keyword/value pairs may be appended\n* keyword = parallel or perp or end \n *      parallel value = neigh or ideal or equal \n       neigh = parallel nudging force based on distance to neighbor replicas (Kspring = force/distance units) \n       ideal = parallel nudging force based on interpolated ideal position (Kspring = force units) \n       equal = parallel nudging force based on interpolated ideal position before climbing, then interpolated ideal energy whilst climbing (Kspring = force units) \n *      perp value = Kspring2 \n       Kspring2 = spring constant for perpendicular nudging force (force/distance units) \n *      end values = estyle Kspring3 \n       estyle = first or last or last/efirst or last/efirst/middle \n       first = apply force to first replica \n       last = apply force to last replica \n       last/efirst = apply force to last replica and set its target energy to that of first replica \n       last/efirst/middle = same as last/efirst plus prevent middle replicas having lower energy than first replica \n       Kspring3 = spring constant for target energy term (1/distance units) \n", + "examples": "\n```lmps\nfix 1 active neb 10.0\nfix 2 all neb 1.0 perp 1.0 end last\nfix 2 all neb 1.0 perp 1.0 end first 1.0 end last 1.0\nfix 1 all neb 1.0 parallel ideal end last/efirst 1\n```\n", + "html_filename": "fix_neb.html", + "short_description": "Add nudging forces to atoms in the group for a multi-replica\nsimulation run via the [neb ](https://docs.lammps.org/neb.html) command to perform a nudged\nelastic band (NEB) calculation for finding the transition state", + "description": "Add nudging forces to atoms in the group for a multi-replica\nsimulation run via the [neb ](https://docs.lammps.org/neb.html) command to perform a nudged\nelastic band (NEB) calculation for finding the transition state.\nHi-level explanations of NEB are given with the [neb ](https://docs.lammps.org/neb.html) command\nand on the [Howto replica ](https://docs.lammps.org/Howto_replica.html) doc page. The fix neb\ncommand must be used with the \"neb\" command and defines how\ninter-replica nudging forces are computed. A NEB calculation is\ndivided in two stages. In the first stage n replicas are relaxed\ntoward a MEP until convergence. In the second stage, the climbing\nimage scheme (see **Henkelman2**) is enabled, so that the\nreplica having the highest energy relaxes toward the saddle point\n(i.e. the point of highest energy along the MEP), and a second\nrelaxation is performed.\n\nA key purpose of the nudging forces is to keep the replicas equally\nspaced. During the NEB calculation, the \\(3N\\)-length vector of\ninteratomic force \\(F_i = -\\nabla V\\) for each replica *i* is\naltered. For all intermediate replicas (i.e. for \\(1 < i < N\\),\nexcept the climbing replica) the force vector becomes:\n\\[\n F_i = -\\nabla V + (\\nabla V \\cdot T') T' + F_\\parallel + F_\\perp\\]\nT' is the unit \"tangent\" vector for replica *i* and is a function of\n\\(R_i, R_{i-1}, R_{i+1}\\), and the potential energy of the 3\nreplicas; it points roughly in the direction of \\(R_{i+i} -\nR_{i-1}\\); see the **Henkelman1** paper for details.\n\\(R_i\\) are the atomic coordinates of replica *i*; \\(R_{i-1}\\)\nand \\(R_{i+1}\\) are the coordinates of its neighbor replicas. The\nterm \\(\\nabla V \\cdot T'\\) is used to remove the component of the\ngradient parallel to the path which would tend to distribute the replica\nunevenly along the path. \\(F_\\parallel\\) is an artificial nudging\nforce which is applied only in the tangent direction and which maintains\nthe equal spacing between replicas (see below for more information).\n\\(F_\\perp\\) is an optional artificial spring which is applied in a\ndirection perpendicular to the tangent direction and which prevent the\npaths from forming acute kinks (see below for more information).\n\nIn the second stage of the NEB calculation, the interatomic force \\(F_i\\)\nfor the climbing replica (the replica of highest energy after the\nfirst stage) is changed to:\n\\[\n F_i = -\\nabla V + 2 (\\nabla V \\cdot T') T' + F_\\perp\\]\nand the relaxation procedure is continued to a new converged MEP.\n\n----------\n\nThe keyword *parallel* specifies how the parallel nudging force is\ncomputed. With a value of *neigh*, the parallel nudging force is\ncomputed as in **Henkelman1** by connecting each\nintermediate replica with the previous and the next image:\n\\[\n F_\\parallel = Kspring \\cdot \\left(\\left|R_{i+1} - R_i\\right| - \\left|R_i - R_{i-1}\\right|\\right)\\]\nNote that in this case the specified *Kspring* is in\nforce/distance units.\n\nWith a value of *ideal*, the spring force is computed as suggested in\n**WeinanE**\n\\[\n F_\\parallel = -Kspring \\cdot (RD - RD_{ideal}) / (2 \\cdot meanDist)\\]\nwhere *RD* is the \"reaction coordinate\" see [neb ](https://docs.lammps.org/neb.html) section,\nand \\(RD_{ideal}\\) is the ideal *RD* for which all the images are\nequally spaced. I.e. \\(RD_{ideal} = (i-1) \\cdot meanDist\\) when the\nclimbing replica is off, where *i* is the replica number). The\n*meanDist* is the average distance between replicas. Note that in this\ncase the specified *Kspring* is in force units. When the climbing\nreplica is on, \\(RD_{ideal}\\) and \\(meanDist\\) are calculated\nseparately each side of the climbing image. Note that the *ideal* form\nof nudging can often be more effective at keeping the replicas equally\nspaced before climbing, then equally spaced either side of the climbing\nimage whilst climbing.\n\nWith a value of *equal* the spring force is computed as for *ideal* when\nthe climbing replica is off, promoting equidistance. When the climbing\nreplica is on, the spring force is computed to promote equidistant\nabsolute differences in energy, rather than distance, each side of the\nclimbing image:\n\\[\n F_\\parallel = -Kspring \\cdot (ED - ED_{ideal}) / (2 \\cdot meanEDist)\\]\nwhere *ED* is the cumulative sum of absolute energy differences:\n\\[\n ED = \\sum_{i E\\), the interatomic force \\(F_i\\) for the\nspecified replica becomes:\n\\[\\begin{align*} \n F_i & = -\\nabla V + (\\nabla V \\cdot T' + (E - E_{Target}) \\cdot K_{spring3}) T', \\qquad \\textrm{when} \\quad \\nabla V \\cdot T' < 0 \\\\\n F_i & = -\\nabla V + (\\nabla V \\cdot T' + (E_{Target} - E) \\cdot K_{spring3}) T', \\qquad \\textrm{when} \\quad \\nabla V \\cdot T' > 0 \\end{align*} \\]\nThe \"spring\" constant on the difference in energies is the specified\n*Kspring3* value.\n\nWhen *estyle* is specified as *first*, the force is applied to the first\nreplica. When *estyle* is specified as *last*, the force is applied to\nthe last replica. Note that the *end* keyword can be used twice to add\nforces to both the first and last replicas.\n\nFor both these *estyle* settings, the target energy *ETarget* is set\nto the initial energy of the replica (at the start of the NEB\ncalculation).\n\nIf the *estyle* is specified as *last/efirst* or *last/efirst/middle*,\nforce is applied to the last replica, but the target energy *ETarget* is\ncontinuously set to the energy of the first replica, as it evolves\nduring the NEB relaxation.\n\nThe difference between these two *estyle* options is as follows. When\n*estyle* is specified as *last/efirst*, no change is made to the\ninter-replica force applied to the intermediate replicas (neither first\nor last). If the initial path is too far from the MEP, an intermediate\nreplica may relax \"faster\" and reach a lower energy than the last\nreplica. In this case the intermediate replica will be relaxing toward\nits own local minima. This behavior can be prevented by specifying\n*estyle* as *last/efirst/middle* which will alter the inter-replica\nforce applied to intermediate replicas by removing the contribution of\nthe gradient to the inter-replica force. This will only be done if a\nparticular intermediate replica has a lower energy than the first\nreplica. This should effectively prevent the intermediate replicas from\nover-relaxing.\n\nAfter converging a NEB calculation using an *estyle* of\n*last/efirst/middle*, you should check that all intermediate replicas\nhave a larger energy than the first replica. If this is not the case,\nthe path is probably not a MEP.\n\nFinally, note that the last replica may never reach the target energy\nif it is stuck in a local minima which has a larger energy than the\ntarget energy.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options are\nrelevant to this fix. No global or per-atom quantities are stored by\nthis fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\nas invoked by the [minimize ](https://docs.lammps.org/minimize.html) command via the\n[neb ](https://docs.lammps.org/neb.html) command.\n\n**(Henkelman2)** Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,\n9901-9904 (2000). \n \n**(Henkelman1)** Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000). \n \n**(WeinanE)** E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002). \n \n**(Maras1)** Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,\nComp Phys Comm, 205, 13-21 (2016). \n \n**(Jonsson)** Jonsson, Mills and Jacobsen, in Classical and Quantum\nDynamics in Condensed Phase Simulations, edited by Berne, Ciccotti,\nand Coker World Scientific, Singapore, 1998, p 385. \n ", + "restrictions": "This command can only be used if LAMMPS was built with the REPLICA\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[neb ](https://docs.lammps.org/neb.html)\n" }, { "command": [ - "bond_style harmonic", - "bond_style harmonic/intel", - "bond_style harmonic/kk", - "bond_style harmonic/omp" + "bond_style gromos", + "bond_style gromos/omp" ], "syntax": [ - "bond_style harmonic" + "bond_style gromos" ], "args": [ [ @@ -40660,37 +40193,34 @@ export const command_docs = [ "choices": [] }, { - "arg": "harmonic", + "arg": "gromos", "type": 3, "choices": [ - "harmonic", - "harmonic/intel", - "harmonic/kk", - "harmonic/omp" + "gromos", + "gromos/omp" ] } ] ], "parameters": "", - "examples": "\n```lmps\nbond_style harmonic\nbond_coeff 5 80.0 1.2\n```\n", - "html_filename": "bond_harmonic.html", - "short_description": "The *harmonic* bond style uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", - "description": "The *harmonic* bond style uses the potential\n\\[\n E = K (r - r_0)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the usual 1/2\nfactor is included in \\(K\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(r_0\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", + "examples": "\n```lmps\nbond_style gromos\nbond_coeff 5 80.0 1.2\n```\n", + "html_filename": "bond_gromos.html", + "short_description": "The *gromos* bond style uses the potential\n\\[\n E = K (r^2 - r_0^2)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance", + "description": "The *gromos* bond style uses the potential\n\\[\n E = K (r^2 - r_0^2)^2\\]\nwhere \\(r_0\\) is the equilibrium bond distance. Note that the usual 1/4\nfactor is included in \\(K\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(K\\) (energy/distance\\^4)\n* \\(r_0\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", "restrictions": "This bond style can only be used if LAMMPS was built with the MOLECULE\npackage. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more\ninfo.\n", "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html)\n" }, { "command": [ - "fix temp/berendsen", - "fix temp/berendsen/kk" + "compute smd/contact/radius" ], "syntax": [ - "fix ID group-ID temp/berendsen Tstart Tstop Tdamp" + "compute ID group-ID smd/contact/radius" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -40705,124 +40235,98 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/berendsen", - "type": 3, - "choices": [ - "temp/berendsen", - "temp/berendsen/kk" - ] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", - "type": 2, - "choices": [] - }, - { - "arg": "Tdamp", - "type": 2, + "arg": "smd/contact/radius", + "type": 1, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/berendsen = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run \n *        Tstart can be a variable (see below) \n* Tdamp = temperature damping parameter (time units) \n", - "examples": "\n```lmps\nfix 1 all temp/berendsen 300.0 300.0 100.0\n```\n", - "html_filename": "fix_temp_berendsen.html", - "short_description": "Reset the temperature of a group of atoms by using a Berendsen\nthermostat **Berendsen2**, which rescales their velocities\nevery timestep", - "description": "Reset the temperature of a group of atoms by using a Berendsen\nthermostat **Berendsen2**, which rescales their velocities\nevery timestep.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration for finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with this fix. The translational degrees of freedom can\nalso have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (tau or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command).\n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This thermostat will generate an error if the current\n > temperature is zero at the end of a timestep. It cannot rescale a\n > zero temperature. \n > \n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, this fix does NOT\n > perform time integration. It only modifies velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, this fix should not normally\n > be used on atoms that also have their temperature controlled by\n > another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThis fix computes a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if this command had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID + underscore + \"temp\",\nand the group for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the cumulative global energy change to\n[binary restart files ](https://docs.lammps.org/restart.html). See the\n[read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file,\nso that the fix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a temperature [compute ](https://docs.lammps.org/compute.html)\nyou have defined to this fix which will be used in its thermostatting\nprocedure, as described above. For consistency, the group used by\nthis fix and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Berendsen2)** Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem\nPhys, 81, 3684 (1984). \n ", - "restrictions": "This fix can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix press/berendsen ](https://docs.lammps.org/fix_press_berendsen.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/contact/radius = style name of this compute command \n", + "examples": "\n```lmps\ncompute 1 all smd/contact/radius\n```\n", + "html_filename": "compute_smd_contact_radius.html", + "short_description": "Define a computation which outputs the contact radius, i.e., the\nradius used to prevent particles from penetrating each other", + "description": "Define a computation which outputs the contact radius, i.e., the\nradius used to prevent particles from penetrating each other. The\ncontact radius is used only to prevent particles belonging to\ndifferent physical bodies from penetrating each other. It is used by\nthe contact pair styles, e.g., smd/hertz and smd/tri_surface.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\nThe value of the contact radius will be 0.0 for particles not in the\nspecified compute group.\n\n #### Output info\n\nThis compute calculates a per-particle vector, which can be accessed\nby any command that uses per-particle values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of\nLAMMPS output options.\n\nThe per-particle vector values will be in distance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[dump custom ](https://docs.lammps.org/dump.html) smd/hertz smd/tri_surface\n" }, { "command": [ - "fix_modify AtC mesh create_elementset" + "fix thermal/conductivity" ], "syntax": [ - "fix_modify mesh create_elementset " + "fix ID group-ID thermal/conductivity N edim Nbin keyword value ..." ], "args": [ [ { - "arg": "fix_modify", + "arg": "fix", "type": 1, "choices": [] }, { - "arg": "", + "arg": "ID", "type": 2, "choices": [] }, { - "arg": "mesh", - "type": 1, - "choices": [] - }, - { - "arg": "create_elementset", - "type": 1, - "choices": [] - }, - { - "arg": "", + "arg": "group-ID", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, + "arg": "thermal/conductivity", + "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] }, { - "arg": "", - "type": 2, - "choices": [] + "arg": "y", + "type": 3, + "choices": [ + "x", + "y" + ] }, { - "arg": "", + "arg": "Nbin", "type": 2, "choices": [] }, { - "arg": "", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* mesh create_elementset = name of the AtC sub-command\n* id = id to assign to the collection of FE nodes\n* = coordinates of the bounding box that contains only the desired elements \n", - "examples": "\n```lmps\nfix_modify AtC mesh create_elementset middle -4.1 4.1 -100 100 -100 1100\n```\n", - "html_filename": "atc_mesh_create_elementset.html", - "short_description": "Command to assign an id to a set of FE elements to be used subsequently\nin defining material and mesh-based operations", - "description": "Command to assign an id to a set of FE elements to be used subsequently\nin defining material and mesh-based operations.\n", - "restrictions": "Only viable for rectangular grids.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC mesh delete_elements ](https://docs.lammps.org/atc_mesh_delete_elements.html)\n- [fix_modify AtC mesh nodeset_to_elementset ](https://docs.lammps.org/atc_mesh_nodeset_to_elementset.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* thermal/conductivity = style name of this fix command\n* N = perform kinetic energy exchange every N steps\n* edim = x or y or z = direction of kinetic energy transfer\n* Nbin = # of layers in edim direction (must be even number)\n* zero or more keyword/value pairs may be appended\n* keyword = swap \n *        swap value = Nswap = number of swaps to perform every N steps \n", + "examples": "\n```lmps\nfix 1 all thermal/conductivity 100 z 20\nfix 1 all thermal/conductivity 50 z 20 swap 2\n```\n", + "html_filename": "fix_thermal_conductivity.html", + "short_description": "Use the Muller-Plathe algorithm described in **Muller-Plathe1** to exchange kinetic energy between two particles\nin different regions of the simulation box every N steps", + "description": "Use the Muller-Plathe algorithm described in **Muller-Plathe1** to exchange kinetic energy between two particles\nin different regions of the simulation box every N steps. This\ninduces a temperature gradient in the system. As described below this\nenables the thermal conductivity of a material to be calculated. This\nalgorithm is sometimes called a reverse non-equilibrium MD (reverse\nNEMD) approach to computing thermal conductivity. This is because the\nusual NEMD approach is to impose a temperature gradient on the system\nand measure the response as the resulting heat flux. In the\nMuller-Plathe method, the heat flux is imposed, and the temperature\ngradient is the system's response.\n\nSee the [compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html) command for details\non how to compute thermal conductivity in an alternate way, via the\nGreen-Kubo formalism.\n\nThe simulation box is divided into *Nbin* layers in the *edim*\ndirection, where the layer 1 is at the low end of that dimension and\nthe layer *Nbin* is at the high end. Every N steps, Nswap pairs of\natoms are chosen in the following manner. Only atoms in the fix group\nare considered. The hottest Nswap atoms in layer 1 are selected.\nSimilarly, the coldest Nswap atoms in the \"middle\" layer (see below)\nare selected. The two sets of Nswap atoms are paired up and their\nvelocities are exchanged. This effectively swaps their kinetic\nenergies, assuming their masses are the same. If the masses are\ndifferent, an exchange of velocities relative to center of mass motion\nof the 2 atoms is performed, to conserve kinetic energy. Over time,\nthis induces a temperature gradient in the system which can be\nmeasured using commands such as the following, which writes the\ntemperature profile (assuming z = edim) to the file tmp.profile:\n\n```lmps\ncompute ke all ke/atom\nvariable temp atom c_ke/1.5\ncompute layers all chunk/atom bin/1d z lower 0.05 units reduced\nfix 3 all ave/chunk 10 100 1000 layers v_temp file tmp.profile\n```\nNote that by default, Nswap = 1, though this can be changed by the\noptional *swap* keyword. Setting this parameter appropriately, in\nconjunction with the swap rate N, allows the heat flux to be adjusted\nacross a wide range of values, and the kinetic energy to be exchanged\nin large chunks or more smoothly.\n\nThe \"middle\" layer for velocity swapping is defined as the *Nbin* /2 +\n1 layer. Thus if *Nbin* = 20, the two swapping layers are 1 and 11.\nThis should lead to a symmetric temperature profile since the two\nlayers are separated by the same distance in both directions in a\nperiodic sense. This is why *Nbin* is restricted to being an even\nnumber.\n\nAs described below, the total kinetic energy transferred by these\nswaps is computed by the fix and can be output. Dividing this\nquantity by time and the cross-sectional area of the simulation box\nyields a heat flux. The ratio of heat flux to the slope of the\ntemperature profile is proportional to the thermal conductivity of the\nfluid, in appropriate units. See the **Muller-Plathe1** for details.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If your system is periodic in the direction of the heat flux,\n > then the flux is going in 2 directions. This means the effective heat\n > flux in one direction is reduced by a factor of 2. You will see this\n > in the equations for thermal conductivity (kappa) in the Muller-Plathe\n > paper. LAMMPS is simply tallying kinetic energy which does not\n > account for whether or not your system is periodic; you must use the\n > value appropriately to yield a kappa for your system. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >After equilibration, if the temperature gradient you observe is\n > not linear, then you are likely swapping energy too frequently and are\n > not in a regime of linear response. In this case you cannot\n > accurately infer a thermal conductivity and should try increasing the\n > Nevery parameter. \n > \n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the cumulative\nkinetic energy transferred between the bottom and middle of the\nsimulation box (in the *edim* direction) is stored as a scalar\nquantity by this fix. This quantity is zeroed when the fix is defined\nand accumulates thereafter, once every N steps. The units of the\nquantity are energy; see the [units ](https://docs.lammps.org/units.html) command for details.\nThe scalar value calculated by this fix is \"intensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n**(Muller-Plathe1)** Muller-Plathe, J Chem Phys, 106, 6082 (1997). \n \n**(Muller-Plathe1)** Muller-Plathe, J Chem Phys, 106, 6082 (1997). \n ", + "restrictions": "Swaps conserve both momentum and kinetic energy, even if the masses of\nthe swapped atoms are not equal. Thus you should not need to\nthermostat the system. If you do use a thermostat, you may want to\napply it only to the non-swapped dimensions (other than *vdim* ).\n\nLAMMPS does not check, but you should not use this fix to swap the\nkinetic energy of atoms that are in constrained molecules, e.g. via\n[fix shake ](https://docs.lammps.org/fix_shake.html) or [fix rigid ](https://docs.lammps.org/fix_rigid.html). This is\nbecause application of the constraints will alter the amount of\ntransferred momentum. You should, however, be able to use flexible\nmolecules. See the **Zhang2** for a discussion and results\nof this idea.\n\nWhen running a simulation with large, massive particles or molecules\nin a background solvent, you may want to only exchange kinetic energy\nbetween solvent particles.\n\n**(Zhang2)** Zhang, Lussetti, de Souza, Muller-Plathe, J Phys Chem B,\n109, 15060-15067 (2005). \n ", + "related": "[fix ehex ](https://docs.lammps.org/fix_ehex.html), [fix heat ](https://docs.lammps.org/fix_heat.html), [fix ave/chunk ](https://docs.lammps.org/fix_ave_chunk.html), [fix viscosity ](https://docs.lammps.org/fix_viscosity.html),\n[compute heat/flux ](https://docs.lammps.org/compute_heat_flux.html)\n" }, { "command": [ - "fix temp/csvr" + "compute torque/chunk" ], "syntax": [ - "fix ID group-ID temp/csvr Tstart Tstop Tdamp seed", - "fix ID group-ID temp/csld Tstart Tstop Tdamp seed" + "compute ID group-ID torque/chunk chunkID" ], "args": [ [ { - "arg": "fix", + "arg": "compute", "type": 1, "choices": [] }, @@ -40837,31 +40341,34 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/csvr", + "arg": "torque/chunk", "type": 1, "choices": [] }, { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", - "type": 2, - "choices": [] - }, - { - "arg": "Tdamp", - "type": 2, - "choices": [] - }, - { - "arg": "seed", + "arg": "chunkID", "type": 2, "choices": [] } - ], + ] + ], + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* torque/chunk = style name of this compute command\n* chunkID = ID of [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command \n", + "examples": "\n```lmps\ncompute 1 fluid torque/chunk molchunk\n```\n", + "html_filename": "compute_torque_chunk.html", + "short_description": "Define a computation that calculates the torque on multiple chunks of\natoms", + "description": "Define a computation that calculates the torque on multiple chunks of\natoms.\n\nIn LAMMPS, chunks are collections of atoms defined by a\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command, which assigns each atom\nto a single chunk (or no chunk). The ID for this command is specified\nas chunkID. For example, a single chunk could be the atoms in a\nmolecule or atoms in a spatial bin. See the\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) and\n[Howto chunk ](https://docs.lammps.org/Howto_chunk.html)\ndoc pages for details of how chunks can be defined and examples of how\nthey can be used to measure properties of a system.\n\nThis compute calculates the three components of the torque vector for eqch\nchunk, due to the forces on the individual atoms in the chunk around\nthe center-of-mass of the chunk. The calculation includes all effects\ndue to atoms passing through periodic boundaries.\n\nNote that only atoms in the specified group contribute to the\ncalculation. The [compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command\ndefines its own group; atoms will have a chunk ID = 0 if they are not\nin that group, signifying they are not assigned to a chunk, and will\nthus also not contribute to this calculation. You can specify the\n\"all\" group for this command if you simply want to include atoms with\nnon-zero chunk IDs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the chunk's torque in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\nThe simplest way to output the results of the compute torque/chunk\ncalculation to a file is to use the [fix ave/time ](https://docs.lammps.org/fix_ave_time.html)\ncommand, for example:\n\n```lmps\ncompute cc1 all chunk/atom molecule\ncompute myChunk all torque/chunk cc1\nfix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector\n```\n #### Output info\n\nThis compute calculates a global array where the number of rows is equal to the\nnumber of chunks *Nchunk* as calculated by the specified\n[compute chunk/atom ](https://docs.lammps.org/compute_chunk_atom.html) command. The number of columns\nis three for the \\(x\\), \\(y\\), and \\(z\\) components of the torque\nfor each chunk. These values can be accessed by any command that uses global\narray values from a compute as input.\nSee the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe array values are \"intensive\". The array values will be in\nforce-distance [units ](https://docs.lammps.org/units.html).\n", + "restrictions": " none\n", + "related": "[variable torque() function ](https://docs.lammps.org/variable.html)\n" +}, +{ + "command": [ + "fix nphug", + "fix nphug/omp" + ], + "syntax": [ + "fix ID group-ID nphug keyword value ..." + ], + "args": [ [ { "arg": "fix", @@ -40879,150 +40386,160 @@ export const command_docs = [ "choices": [] }, { - "arg": "temp/csld", - "type": 2, - "choices": [] - }, - { - "arg": "Tstart", - "type": 2, - "choices": [] - }, - { - "arg": "Tstop", - "type": 2, - "choices": [] + "arg": "nphug", + "type": 3, + "choices": [ + "nphug", + "nphug/omp" + ] }, { - "arg": "Tdamp", + "arg": "keyword", "type": 2, "choices": [] }, { - "arg": "seed", + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* temp/csvr or temp/csld = style name of this fix command\n* Tstart,Tstop = desired temperature at start/end of run \n *        Tstart can be a variable (see below) \n* Tdamp = temperature damping parameter (time units)\n* seed = random number seed to use for white noise (positive integer) \n", - "examples": "\n```lmps\nfix 1 all temp/csvr 300.0 300.0 100.0 54324\nfix 1 all temp/csld 100.0 300.0 10.0 123321\n```\n", - "html_filename": "fix_temp_csvr.html", - "short_description": "Adjust the temperature with a canonical sampling thermostat that uses\nglobal velocity rescaling with Hamiltonian dynamics (\\ *temp/csvr* )\n**Bussi1**, or Langevin dynamics (\\ *temp/csld* )\n**Bussi2**", - "description": "Adjust the temperature with a canonical sampling thermostat that uses\nglobal velocity rescaling with Hamiltonian dynamics (\\ *temp/csvr* )\n**Bussi1**, or Langevin dynamics (\\ *temp/csld* )\n**Bussi2**. In the case of *temp/csvr* the thermostat is\nsimilar to the empirical Berendsen thermostat in\n[temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html), but chooses the actual\nscaling factor from a suitably chosen (gaussian) distribution rather\nthan having it determined from the time constant directly. In the case\nof *temp/csld* the velocities are updated to a linear combination of\nthe current velocities with a gaussian distribution of velocities at\nthe desired temperature. Both thermostats are applied every timestep.\n\nThe thermostat is applied to only the translational degrees of freedom\nfor the particles, which is an important consideration for finite-size\nparticles which have rotational degrees of freedom are being\nthermostatted with these fixes. The translational degrees of freedom\ncan also have a bias velocity removed from them before thermostatting\ntakes place; see the description below.\n\nThe desired temperature at each timestep is a ramped value during the\nrun from *Tstart* to *Tstop* . The *Tdamp* parameter is specified in\ntime units and determines how rapidly the temperature is relaxed. For\nexample, a value of 100.0 means to relax the temperature in a timespan\nof (roughly) 100 time units (tau or fs or ps - see the\n[units ](https://docs.lammps.org/units.html) command).\n\n*Tstart* can be specified as an equal-style [variable ](https://docs.lammps.org/variable.html).\nIn this case, the *Tstop* setting is ignored. If the value is a\nvariable, it should be specified as v_name, where name is the variable\nname. In this case, the variable will be evaluated each timestep, and\nits value used to determine the target temperature.\n\nEqual-style variables can specify formulas with various mathematical\nfunctions, and include [thermo_style ](https://docs.lammps.org/thermo_style.html) command\nkeywords for the simulation box parameters and timestep and elapsed\ntime. Thus it is easy to specify a time-dependent temperature.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix nvt ](https://docs.lammps.org/fix_nh.html) command which performs\n > Nose/Hoover thermostatting AND time integration, these fixes do NOT\n > perform time integration. They only modify velocities to effect\n > thermostatting. Thus you must use a separate time integration fix,\n > like [fix nve ](https://docs.lammps.org/fix_nve.html) to actually update the positions of atoms\n > using the modified velocities. Likewise, these fixes should not\n > normally be used on atoms that also have their temperature controlled\n > by another fix - e.g. by [fix nvt ](https://docs.lammps.org/fix_nh.html) or [fix langevin ](https://docs.lammps.org/fix_langevin.html) commands. \n > \n\nSee the [Howto thermostat ](https://docs.lammps.org/Howto_thermostat.html) page for a\ndiscussion of different ways to compute temperature and perform\nthermostatting.\n\nThese fixes compute a temperature each timestep. To do this, the fix\ncreates its own compute of style \"temp\", as if this command had been\nissued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) command for details. Note\nthat the ID of the new compute is the fix-ID + underscore + \"temp\",\nand the group for the new compute is the same as the fix group.\n\nNote that this is NOT the compute used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*.\nThis means you can change the attributes of this fix's temperature\n(e.g. its degrees-of-freedom) via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nduring thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* will have no\neffect on this fix.\n\nLike other fixes that perform thermostatting, this fix can be used\nwith [compute commands ](https://docs.lammps.org/compute.html) that remove a \"bias\" from the\natom velocities. E.g. to apply the thermostat only to atoms within a\nspatial [region ](https://docs.lammps.org/region.html), or to remove the center-of-mass\nvelocity from a group of atoms, or to remove the x-component of\nvelocity from the calculation.\n\nThis is not done by default, but only if the [fix_modify](https://docs.lammps.org/fix_modify.html) command is used to assign a temperature compute to this\nfix that includes such a bias term. See the doc pages for individual\n[compute temp commands ](https://docs.lammps.org/compute.html) to determine which ones include\na bias. In this case, the thermostat works in the following manner:\nbias is removed from each atom, thermostatting is performed on the\nremaining thermal degrees of freedom, and the bias is added back in.\n\nAn important feature of these thermostats is that they have an\nassociated effective energy that is a constant of motion. The\neffective energy is the total energy (kinetic + potential) plus the\naccumulated kinetic energy changes due to the thermostat. The latter\nquantity is the global scalar computed by these fixes. This feature is\nuseful to check the integration of the equations of motion against\ndiscretization errors. In other words, the conservation of the\neffective energy can be used to choose an appropriate integration\n[timestep ](https://docs.lammps.org/timestep.html). This is similar to the usual paradigm of\nchecking the conservation of the total energy in the microcanonical\nensemble.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThese fixes write the cumulative global energy change and the random\nnumber generator states to [binary restart files ](https://docs.lammps.org/restart.html). See\nthe [read_restart ](https://docs.lammps.org/read_restart.html) command for info on how to\nre-specify a fix in an input script that reads a restart file, so that\nthe selected fix continues in an uninterrupted fashion. The random\nnumber generator state can only be restored when the number of\nprocessors remains unchanged from what is recorded in the restart\nfile.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by these\nfixes. You can use it to assign a temperature [compute](https://docs.lammps.org/compute.html) you have defined to these fixes which will be used in its\nthermostatting procedure, as described above. For consistency, the\ngroup used by these fixes and by the compute should be the same.\n\nThe cumulative energy change in the system imposed by these fixes is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThese fixes compute a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThese fixes can ramp their target temperature over multiple runs,\nusing the *start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command.\nSee the [run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThese fixes are not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n\n \n \n**(Bussi2)** Bussi, Donadio and Parrinello, J. Chem. Phys. 126, 014101(2007) \n ", - "restrictions": "Fix *temp/csld* is not compatible with [fix shake ](https://docs.lammps.org/fix_shake.html).\n\nThese fixes are part of the EXTRA-FIX package. They are only enabled if LAMMPS\nwas built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThese fixes can be used with dynamic groups as defined by the\n[group ](https://docs.lammps.org/group.html) command. Likewise it can be used with groups to\nwhich atoms are added or deleted over time, e.g. a deposition\nsimulation. However, the conservation properties of the thermostat\nand barostat are defined for systems with a static set of atoms. You\nmay observe odd behavior if the atoms in a group vary dramatically\nover time or the atom count becomes very small.\n", - "related": "[fix nve ](https://docs.lammps.org/fix_nve.html), [fix nvt ](https://docs.lammps.org/fix_nh.html), [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html), [fix langevin ](https://docs.lammps.org/fix_langevin.html),\n[fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp ](https://docs.lammps.org/compute_temp.html),\n[fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html)\n" + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command \n *      one or more keyword value pairs may be appended \n *      keyword = temp or iso or aniso or tri or x or y or z or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate or scaleyz or scalexz or scalexy \n       temp values = Value1 Value2 Tdamp \n       Value1, Value2 = Nose-Hoover target temperatures, ignored by Hugoniostat \n       Tdamp = temperature damping parameter (time units) \n       iso or aniso or tri values = Pstart Pstop Pdamp \n       Pstart,Pstop = scalar external pressures, must be equal (pressure units) \n       Pdamp = pressure damping parameter (time units) \n       x or y or z or xy or yz or xz values = Pstart Pstop Pdamp \n       Pstart,Pstop = external stress tensor components, must be equal (pressure units) \n       Pdamp = stress damping parameter (time units) \n       couple = none or xyz or xy or yz or xz \n       tchain value = length of thermostat chain (1 = single thermostat) \n       pchain values = length of thermostat chain on barostat (0 = no thermostat) \n       mtk value = yes or no = add in MTK adjustment term or not \n       tloop value = number of sub-cycles to perform on thermostat \n       ploop value = number of sub-cycles to perform on barostat thermostat \n       nreset value = reset reference cell every this many timesteps \n       drag value = drag factor added to barostat/thermostat (0.0 = no drag) \n       dilate value = all or partial \n       scaleyz value = yes or no = scale yz with lz \n       scalexz value = yes or no = scale xz with lz \n       scalexy value = yes or no = scale xy with ly \n", + "examples": "\n```lmps\nfix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0\nfix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0\n```\n", + "html_filename": "fix_nphug.html", + "short_description": "This command is a variant of the Nose-Hoover\n[fix npt ](https://docs.lammps.org/fix_nh.html) fix style", + "description": "This command is a variant of the Nose-Hoover\n[fix npt ](https://docs.lammps.org/fix_nh.html) fix style.\nIt performs time integration of the Hugoniostat equations\nof motion developed by Ravelo et al. **Ravelo1**.\nThese equations compress the system to a state with average\naxial stress or pressure equal to the specified target value\nand that satisfies the Rankine-Hugoniot (RH)\njump conditions for steady shocks.\n\nThe compression can be performed\neither\nhydrostatically (using keyword *iso*, *aniso*, or *tri* ) or uniaxially\n(using keywords *x*, *y*, or *z* ). In the hydrostatic case,\nthe cell dimensions change dynamically so that the average axial stress\nin all three directions converges towards the specified target value.\nIn the uniaxial case, the chosen cell dimension changes dynamically\nso that the average\naxial stress in that direction converges towards the target value. The\nother two cell dimensions are kept fixed (zero lateral strain).\n\nThis leads to the following additional restrictions on the keywords:\n\n* One and only one of the following keywords should be used: *iso*, *aniso*, *tri*, *x*, *y*, *z*\n* The specified initial and final target pressures must be the same.\n* The keywords *xy*, *xz*, *yz* may not be used.\n* The only admissible value for the couple keyword is *xyz*, which has the same effect as keyword *iso*\n* The *temp* keyword must be used to specify the time constant for kinetic energy relaxation, but initial and final target temperature values are ignored.\n\nEssentially, a Hugoniostat simulation is an NPT simulation in which the\nuser-specified target temperature is replaced with a time-dependent\ntarget temperature Tt obtained from the following equation:\n\\[\n T_t - T = \\frac{\\left(\\frac{1}{2}\\left(P + P_0\\right)\\left(V_0 - V\\right) + E_0 - E\\right)}{N_{dof} k_B } = \\Delta\\]\nwhere \\(T\\) and \\(T_t\\) are the instantaneous and target\ntemperatures, *P* and \\(P_0\\) are the instantaneous and reference\npressures or axial stresses, depending on whether hydrostatic or\nuniaxial compression is being performed, *V* and \\(V_0\\) are the\ninstantaneous and reference volumes, *E* and \\(E_0\\) are the\ninstantaneous and reference internal energy (potential plus kinetic),\n\\(N_{dof}\\) is the number of degrees of freedom used in the\ndefinition of temperature, and \\(k_B\\) is the Boltzmann\nconstant. \\(\\Delta\\) is the negative deviation of the instantaneous\ntemperature from the target temperature. When the system reaches a\nstable equilibrium, the value of \\(\\Delta\\) should fluctuate about\nzero.\n\nThe values of \\(E_0\\), \\(V_0\\), and \\(P_0\\) are the\ninstantaneous values at the start of the simulation. These can be\noverridden using the fix_modify keywords *e0*, *v0*, and *p0* described\nbelow.\n\n----------\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Unlike the [fix temp/berendsen ](https://docs.lammps.org/fix_temp_berendsen.html) command\n > which performs thermostatting but NO time integration, this fix\n > performs thermostatting/barostatting AND time integration. Thus you\n > should not use any other time integration fix, such as [fix nve ](https://docs.lammps.org/fix_nve.html) on atoms to which this fix is applied. Likewise,\n > this fix should not be used on atoms that have their temperature\n > controlled by another fix - e.g. by [fix langevin ](https://docs.lammps.org/fix_nh.html) or [fix temp/rescale ](https://docs.lammps.org/fix_temp_rescale.html) commands. \n > \n\n----------\n\nThis fix computes a temperature and pressure at each timestep. To do\nthis, the fix creates its own computes of style \"temp\" and \"pressure\",\nas if one of these two sets of commands had been issued:\n\n```lmps\ncompute fix-ID_temp group-ID temp\ncompute fix-ID_press group-ID pressure fix-ID_temp\n\ncompute fix-ID_temp all temp\ncompute fix-ID_press all pressure fix-ID_temp\n```\nSee the [compute temp ](https://docs.lammps.org/compute_temp.html) and [compute pressure ](https://docs.lammps.org/compute_pressure.html) commands for details. Note that the\nIDs of the new computes are the fix-ID + underscore + \"temp\" or fix_ID\n+ underscore + \"press\". The group for\nthe new computes is \"all\" since pressure is computed for the entire\nsystem.\n\nNote that these are NOT the computes used by thermodynamic output (see\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command) with ID = *thermo_temp*\nand *thermo_press*. This means you can change the attributes of this\nfix's temperature or pressure via the\n[compute_modify ](https://docs.lammps.org/compute_modify.html) command or print this temperature\nor pressure during thermodynamic output via the [thermo_style custom ](https://docs.lammps.org/thermo_style.html) command using the appropriate compute-ID.\nIt also means that changing attributes of *thermo_temp* or\n*thermo_press* will have no effect on this fix.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the values of \\(E_0\\), \\(V_0\\), and \\(P_0\\),\nas well as the state of all the thermostat and barostat variables to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an input\nscript that reads a restart file, so that the operation of the fix\ncontinues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *e0*, *v0* and *p0* keywords can be\nused to define the values of \\(E_0\\), \\(V_0\\), and\n\\(P_0\\). Note the the values for *e0* and *v0* are extensive, and so\nmust correspond to the total energy and volume of the entire system, not\nenergy and volume per atom. If any of these quantities are not\nspecified, then the instantaneous value in the system at the start of\nthe simulation is used.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* and *press* options are\nsupported by this fix. You can use them to assign a [compute](https://docs.lammps.org/compute.html) you have defined to this fix which will be used in its\nthermostatting or barostatting procedure, as described above. If you\ndo this, note that the kinetic energy derived from the compute\ntemperature should be consistent with the virial term computed using\nall atoms for the pressure. LAMMPS will warn you if you choose to\ncompute temperature on a subset of atoms.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details. Note that this energy is \\*not\\* included in\nthe definition of internal energy E when calculating the value of\nDelta in the above equation.\n\nThis fix computes a global scalar which can be accessed by various\n[output commands ](https://docs.lammps.org/Howto_output.html). The scalar is the same\ncumulative energy change due to this fix described in the previous\nparagraph. The scalar value calculated by this fix is \"extensive\".\n\nThis fix also computes a global vector of quantities, which can be\naccessed by various [output commands ](https://docs.lammps.org/Howto_output.html). The scalar\nThe vector values are \"intensive\".\n\nThe vector stores three quantities unique to this fix (\\(\\Delta\\),\nUs, and up), followed by all the internal Nose/Hoover thermostat and\nbarostat variables defined for [fix npt ](https://docs.lammps.org/fix_nh.html). Delta is the\ndeviation of the temperature from the target temperature, given by the\nabove equation. Us and up are the shock and particle velocity\ncorresponding to a steady shock calculated from the RH\nconditions. They have units of distance/time.\n\n**(Ravelo1)** Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004). \n ", + "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nAll the usual restrictions for [fix npt ](https://docs.lammps.org/fix_nh.html) apply, plus the\nadditional ones mentioned above.\n", + "related": "[fix msst ](https://docs.lammps.org/fix_msst.html), [fix npt ](https://docs.lammps.org/fix_nh.html), [fix_modify ](https://docs.lammps.org/fix_modify.html)\n" }, { "command": [ - "fix wall/piston" + "pair_style aip/water/2dm" ], "syntax": [ - "fix ID group-ID wall/piston face ... keyword value ..." + "pair_style [hybrid/overlay ...] aip/water/2dm cutoff tap_flag" ], "args": [ [ { - "arg": "fix", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "[hybrid/overlay", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "...]", "type": 2, "choices": [] }, { - "arg": "wall/piston", + "arg": "aip/water/2dm", "type": 1, "choices": [] }, { - "arg": "face", + "arg": "cutoff", "type": 2, "choices": [] }, + { + "arg": "tap_flag", + "type": 2, + "choices": [] + } + ] + ], + "parameters": "* cutoff = global cutoff (distance units)\n* tap_flag = 0/1 to turn off/on the taper function \n", + "examples": "\n```lmps\npair_style hybrid/overlay aip/water/2dm 16.0 1\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm C Ow Hw\n\npair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5\npair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O\npair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H\npair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm C Ow Hw\n\npair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 3 4 1 1 0.1546 10 8.5 coul/shield 16.0 1\npair_coeff 1*2 1*2 none\npair_coeff 3 3 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O\npair_coeff 3 4 lj/cut/tip4p/long 0.0 0.0 # O-H\npair_coeff 4 4 lj/cut/tip4p/long 0.0 0.0 # H-H\npair_coeff * * aip/water/2dm CBNOH.aip.water.2dm B N Ow Hw\npair_coeff 1 3 coul/shield 1.333\npair_coeff 1 4 coul/shield 1.333\npair_coeff 2 3 coul/shield 1.333\npair_coeff 2 4 coul/shield 1.333\n```\n", + "html_filename": "pair_aip_water_2dm.html", + "short_description": "\nThe *aip/water/2dm* style computes the anisotropic interfacial potential\n(AIP) potential for interfaces of water with two-dimensional (2D)\nmaterials as described in **Feng1** and **Feng2**", + "description": "\nThe *aip/water/2dm* style computes the anisotropic interfacial potential\n(AIP) potential for interfaces of water with two-dimensional (2D)\nmaterials as described in **Feng1** and **Feng2**.\n\\[\\begin{align*} \n E = & \\frac{1}{2} \\sum_i \\sum_{j \\neq i} V_{ij} \\\\\n V_{ij} = & {\\rm Tap}(r_{ij})\\left \\{ e^{-\\alpha (r_{ij}/\\beta -1)}\n \\left [ \\epsilon + f(\\rho_{ij}) + f(\\rho_{ji})\\right ] -\n \\frac{1}{1+e^{-d\\left [ \\left ( r_{ij}/\\left (s_R \\cdot r^{eff} \\right ) \\right )-1 \\right ]}}\n \\cdot \\frac{C_6}{r^6_{ij}} \\right \\}\\\\\n \\rho_{ij}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_i)^2 \\\\\n \\rho_{ji}^2 = & r_{ij}^2 - ({\\bf r}_{ij} \\cdot {\\bf n}_j)^2 \\\\\n f(\\rho) = & C e^{ -( \\rho / \\delta )^2 } \\\\\n {\\rm Tap}(r_{ij}) = & 20\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^7 -\n 70\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^6 +\n 84\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^5 -\n 35\\left ( \\frac{r_{ij}}{R_{cut}} \\right )^4 + 1 \\end{align*} \\]\nWhere \\(\\mathrm{Tap}(r_{ij})\\) is the taper function which provides\na continuous cutoff (up to third derivative) for interatomic separations\nlarger than \\(r_c\\) [pair_style ilp_graphene_hbn](https://docs.lammps.org/pair_ilp_graphene_hbn.html).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >This pair style uses the atomic normal vector definition from\n > **Feng1**), where the atomic normal vectors of the\n > hydrogen atoms are assumed to lie along the corresponding\n > oxygen-hydrogen bonds and the normal vector of the central oxygen\n > atom is defined as their average. \n > \n\nThe provided parameter file, ``CBNOH.aip.water.2dm``, is intended for use\nwith *metal* [units ](https://docs.lammps.org/units.html), with energies in meV. Two additional\nparameters, *S*, and *rcut* are included in the parameter file. *S* is\ndesigned to facilitate scaling of energies; *rcut* is the cutoff for an\ninternal, short distance neighbor list that is generated for speeding up\nthe calculation of the normals for all atom pairs.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The parameters presented in the provided parameter file,\n > ``CBNOH.aip.water.2dm``, are fitted with the taper function enabled by\n > setting the cutoff equal to 16.0 Angstrom. Using a different cutoff\n > or taper function setting should be carefully checked as they can\n > lead to significant errors. These parameters provide a good\n > description in both short- and long-range interaction regimes. This\n > is essential for simulations in high pressure regime (i.e., the\n > interlayer distance is smaller than the equilibrium distance). \n > \n\nThis potential must be used in combination with hybrid/overlay. Other\ninteractions can be set to zero using [pair_coeff settings](https://docs.lammps.org/pair_coeff.html) with the pair style set to *none* .\n\nThis pair style tallies a breakdown of the total interlayer potential\nenergy into sub-categories, which can be accessed via the [computepair ](https://docs.lammps.org/compute_pair.html) command as a vector of values of length 2. The 2\nvalues correspond to the following sub-categories:\n\n1. *E_vdW* = vdW (attractive) energy\n2. *E_Rep* = Repulsive energy\n\nTo print these quantities to the log file (with descriptive column\nheadings) the following commands could be included in an input script:\n\n```lmps\ncompute 0 all pair aip/water/2dm\nvariable Evdw equal c_0[1]\nvariable Erep equal c_0[2]\nthermo_style custom step temp epair v_Erep v_Evdw\n```\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support the pair_modify mix, shift, table, and\ntail options.\n\nThis pair style does not write their information to binary restart\nfiles, since it is stored in potential files. Thus, you need to\nre-specify the pair_style and pair_coeff commands in an input script\nthat reads a restart file.\n\n**(Feng1)** Z. Feng, \n \n**(Feng2)** Z. Feng, \n ", + "restrictions": "This pair style is part of the INTERLAYER package. It is only enabled\nif LAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis pair style requires the newton setting to be *on* for pair\ninteractions.\n\nThe ``CBNOH.aip.water.2dm`` potential file provided with LAMMPS is\nparameterized for *metal* units. You can use this pair style with any\nLAMMPS units, but you would need to create your own potential file with\nparameters in the appropriate units, if your simulation does not use\n*metal* units.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html),\n[pair_none ](https://docs.lammps.org/pair_none.html),\n[pair_style hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html),\n[pair_style drip ](https://docs.lammps.org/pair_drip.html),\n[pair_style ilp_tmd ](https://docs.lammps.org/pair_ilp_tmd.html),\n[pair_style saip_metal ](https://docs.lammps.org/pair_saip_metal.html),\n[pair_style ilp_graphene_hbn ](https://docs.lammps.org/pair_ilp_graphene_hbn.html),\n[pair_style pair_kolmogorov_crespi_z ](https://docs.lammps.org/pair_kolmogorov_crespi_z.html),\n[pair_style pair_kolmogorov_crespi_full ](https://docs.lammps.org/pair_kolmogorov_crespi_full.html),\n[pair_style pair_lebedeva_z ](https://docs.lammps.org/pair_lebedeva_z.html),\n[pair_style pair_coul_shield ](https://docs.lammps.org/pair_coul_shield.html).\n" +}, +{ + "command": [ + "units" + ], + "syntax": [ + "units style" + ], + "args": [ + [ { "arg": "units", + "type": 1, + "choices": [] + }, + { + "arg": "nano", "type": 3, "choices": [ - "pos", - "vel", - "ramp", - "temp", - "units" + "lj", + "real", + "metal", + "si", + "cgs", + "electron", + "micro", + "nano" ] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/piston = style name of this fix command\n* face = zlo\n* zero or more keyword/value pairs may be appended\n* keyword = pos or vel or ramp or temp or units \n *        pos args = z \n         z = z coordinate at which the piston begins (distance units) \n *        vel args = vz \n         vz = final velocity of the piston (velocity units) \n *        ramp = use a linear velocity ramp from 0 to vz \n *        temp args = target damp seed extent \n         target = target velocity for region immediately ahead of the piston \n         damp = damping parameter (time units) \n         seed = random number seed for langevin kicks \n         extent = extent of thermostatted region (distance units) \n *        units value = lattice or box \n         lattice = the wall position is defined in lattice units \n         box = the wall position is defined in simulation box units \n..\n FIXME: There are several \"undocumented\" key words for this fix: *rough*,\n *rampNL1*, *rampNL2*, *rampNL3*, *rampNL4*, and *rampNL5*. \n", - "examples": "\n```lmps\nfix xwalls all wall/piston zlo\nfix walls all wall/piston zlo pos 1.0 vel 10.0 units box\nfix top all wall/piston zlo vel 10.0 ramp\n```\n", - "html_filename": "fix_wall_piston.html", - "short_description": "Bound the simulation with a moving wall which reflect particles in the\nspecified group and drive the system with an effective infinite-mass\npiston capable of driving shock waves", - "description": "Bound the simulation with a moving wall which reflect particles in the\nspecified group and drive the system with an effective infinite-mass\npiston capable of driving shock waves.\n\nA momentum mirror technique is used, which means that if an atom (or\nthe wall) moves such that an atom is outside the wall on a timestep by\na distance delta (e.g. due to [fix nve ](https://docs.lammps.org/fix_nve.html)), then it is put\nback inside the face by the same delta, and the velocity relative to\nthe moving wall is flipped in z. For instance, a stationary particle\nhit with a piston wall with velocity vz, will end the timestep with a\nvelocity of 2\\*vz.\n\nCurrently the *face* keyword can only be *zlo* . This creates a piston\nmoving in the positive z direction. Particles with z coordinate less\nthan the wall position are reflected to a z coordinate greater than\nthe wall position. If the piston velocity is vpz and the particle\nvelocity before reflection is vzi, the particle velocity after\nreflection is -vzi + 2\\*vpz.\n\nThe initial position of the wall can be specified by the *pos* keyword.\n\nThe final velocity of the wall can be specified by the *vel* keyword\n\nThe *ramp* keyword will cause the wall/piston to adjust the velocity\nlinearly from zero velocity to *vel* over the course of the run. If\nthe *ramp* keyword is omitted then the wall/piston moves at a constant\nvelocity defined by *vel* .\n\nThe *temp* keyword will cause the region immediately in front of the\nwall/piston to be thermostatted with a Langevin thermostat. This\nregion moves with the piston. The damping and kicking are measured in\nthe reference frame of the piston. So, a temperature of zero would\nmean all particles were moving at exactly the speed of the\nwall/piston.\n\nThe *units* keyword determines the meaning of the distance units used\nto define a wall position, but only when a numeric constant is used.\n\nA *box* value selects standard distance units as defined by the\n[units ](https://docs.lammps.org/units.html) command, e.g. Angstroms for units = real or metal.\nA *lattice* value means the distance units are in lattice spacings.\nThe [lattice ](https://docs.lammps.org/lattice.html) command must have been previously used to\ndefine the lattice spacings.\n\n----------\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html). None of the [fix_modify ](https://docs.lammps.org/fix_modify.html) options\nare relevant to this fix. No global or per-atom quantities are stored\nby this fix for access by various [output commands ](https://docs.lammps.org/Howto_output.html).\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command. This fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix style is part of the SHOCK package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe face that has the wall/piston must be boundary type 's'\n(shrink-wrapped). The opposing face can be\nany boundary type other than periodic.\n\nA wall/piston should not be used with rigid bodies such as those\ndefined by a \"fix rigid\" command. This is because the wall/piston\ndisplaces atoms directly rather than exerting a force on them.\n", - "related": "[fix wall/reflect ](https://docs.lammps.org/fix_wall.html) command, [fix append/atoms ](https://docs.lammps.org/fix_append_atoms.html) command\n" + "parameters": "* style = lj or real or metal or si or cgs or electron or micro or nano \n", + "examples": "\n```lmps\nunits metal\nunits lj\n```\n", + "html_filename": "units.html", + "short_description": "This command sets the style of units used for a simulation", + "description": "This command sets the style of units used for a simulation. It\ndetermines the units of all quantities specified in the input script\nand data file, as well as quantities output to the screen, log file,\nand dump files. Typically, this command is used at the very beginning\nof an input script.\n\nFor all units except *lj*, LAMMPS uses physical constants from\nwww.physics.nist.gov. For the definition of kcal in real units,\nLAMMPS uses the thermochemical calorie = 4.184 J.\n\nThe choice you make for units simply sets some internal conversion\nfactors within LAMMPS. This means that any simulation you perform for\none choice of units can be duplicated with any other unit setting\nLAMMPS supports. In this context \"duplicate\" means the particles will\nhave identical trajectories and all output generated by the simulation\nwill be identical. This will be the case for some number of timesteps\nuntil round-off effects accumulate, since the conversion factors for\ntwo different unit systems are not identical to infinite precision.\n\nTo perform the same simulation in a different set of units you must\nchange all the unit-based input parameters in your input script and\nother input files (data file, potential files, etc) correctly to the\nnew units. And you must correctly convert all output from the new\nunits to the old units when comparing to the original results. That\nis often not simple to do.\n\nPotential or table files may have a ``UNITS:`` tag included in the\nfirst line indicating the unit style those files were created for.\nIf the tag exists, its value will be compared to the chosen unit style\nand LAMMPS will stop with an error message if there is a mismatch.\nIn some select cases and for specific combinations of unit styles,\nLAMMPS is capable of automatically converting potential parameters\nfrom a file. In those cases, a warning message signaling that an\nautomatic conversion has happened is printed to the screen.\n\n----------\n\nFor style *lj*, all quantities are unitless. Without loss of\ngenerality, LAMMPS sets the fundamental quantities mass, \\(\\sigma\\),\n\\(\\epsilon\\), and the Boltzmann constant \\(k_B = 1\\). The\nmasses, distances, energies you specify are multiples of these\nfundamental values. The formulas relating the reduced or unitless\nquantity (with an asterisk) to the same quantity with units is also\ngiven. Thus you can use the mass, \\(\\sigma\\), and \\(\\epsilon\\)\nvalues for a specific material and convert the results from a unitless\nLJ simulation into physical quantities. Please note that using\nthese three properties as base, your unit of time has to conform\nto the relation \\(\\epsilon = \\frac{m \\sigma^2}{\\tau^2}\\) since\nenergy is a derived unit (in SI units you equivalently have the relation\n\\(1\\mathsf{J} = 1\\frac{\\mathsf{kg}\\cdot\\mathsf{m}^2}{\\mathsf{s}^2}\\)).\n\n* mass = mass or \\(m\\), where \\(M^* = \\frac{M}{m}\\)\n* distance = \\(\\sigma\\), where \\(x^* = \\frac{x}{\\sigma}\\)\n* time = \\(\\tau\\), where \\(\\tau^* = \\tau \\sqrt{\\frac{\\epsilon}{m \\sigma^2}}\\)\n* energy = \\(\\epsilon\\), where \\(E^* = \\frac{E}{\\epsilon}\\)\n* velocity = \\(\\frac{\\sigma}{\\tau}\\), where \\(v^* = v \\frac{\\tau}{\\sigma}\\)\n* force = \\(\\frac{\\epsilon}{\\sigma}\\), where \\(f^* = f \\frac{\\sigma}{\\epsilon}\\)\n* torque = \\(\\epsilon\\), where \\(t^* = \\frac{t}{\\epsilon}\\)\n* temperature = reduced LJ temperature, where \\(T^* = \\frac{T k_B}{\\epsilon}\\)\n* pressure = reduced LJ pressure, where \\(p^* = p \\frac{\\sigma^3}{\\epsilon}\\)\n* dynamic viscosity = reduced LJ viscosity, where \\(\\eta^* = \\eta \\frac{\\sigma^3}{\\epsilon\\tau}\\)\n* charge = reduced LJ charge, where \\(q^* = q \\frac{1}{\\sqrt{4 \\pi \\varepsilon_0 \\sigma \\epsilon}}\\)\n* dipole = reduced LJ dipole, moment where \\(\\mu^* = \\mu \\frac{1}{\\sqrt{4 \\pi \\varepsilon_0 \\sigma^3 \\epsilon}}\\)\n* electric field = force/charge, where \\(E^* = E \\frac{\\sqrt{4 \\pi \\varepsilon_0 \\sigma \\epsilon} \\sigma}{\\epsilon}\\)\n* density = mass/volume, where \\(\\rho^* = \\rho \\frac{\\sigma^{dim}}{m}\\)\n\nNote that for LJ units, the default mode of thermodynamic output via\nthe [thermo_style ](https://docs.lammps.org/thermo_style.html) command is to normalize all\nextensive quantities by the number of atoms. E.g. potential energy is\nextensive because it is summed over atoms, so it is output as\nenergy/atom. Temperature is intensive since it is already normalized\nby the number of atoms, so it is output as-is. This behavior can be\nchanged via the [thermo_modify norm ](https://docs.lammps.org/thermo_modify.html) command.\n\nFor style *real*, these are the units:\n\n* mass = grams/mole\n* distance = Angstroms\n* time = femtoseconds\n* energy = kcal/mol\n* velocity = Angstroms/femtosecond\n* force = (kcal/mol)/Angstrom\n* torque = kcal/mol\n* temperature = Kelvin\n* pressure = atmospheres\n* dynamic viscosity = Poise\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge\\*Angstroms\n* electric field = volts/Angstrom\n* density = g/cm\\^dim\n\nFor style *metal*, these are the units:\n\n* mass = grams/mole\n* distance = Angstroms\n* time = picoseconds\n* energy = eV\n* velocity = Angstroms/picosecond\n* force = eV/Angstrom\n* torque = eV\n* temperature = Kelvin\n* pressure = bars\n* dynamic viscosity = Poise\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge\\*Angstroms\n* electric field = volts/Angstrom\n* density = gram/cm\\^dim\n\nFor style *si*, these are the units:\n\n* mass = kilograms\n* distance = meters\n* time = seconds\n* energy = Joules\n* velocity = meters/second\n* force = Newtons\n* torque = Newton-meters\n* temperature = Kelvin\n* pressure = Pascals\n* dynamic viscosity = Pascal\\*second\n* charge = Coulombs (1.6021765e-19 is a proton)\n* dipole = Coulombs\\*meters\n* electric field = volts/meter\n* density = kilograms/meter\\^dim\n\nFor style *cgs*, these are the units:\n\n* mass = grams\n* distance = centimeters\n* time = seconds\n* energy = ergs\n* velocity = centimeters/second\n* force = dynes\n* torque = dyne-centimeters\n* temperature = Kelvin\n* pressure = dyne/cm\\^2 or barye = 1.0e-6 bars\n* dynamic viscosity = Poise\n* charge = statcoulombs or esu (4.8032044e-10 is a proton)\n* dipole = statcoul-cm = 10\\^18 debye\n* electric field = statvolt/cm or dyne/esu\n* density = grams/cm\\^dim\n\nFor style *electron*, these are the units:\n\n* mass = atomic mass units\n* distance = Bohr\n* time = femtoseconds\n* energy = Hartrees\n* velocity = Bohr/atomic time units [1.03275e-15 seconds]\n* force = Hartrees/Bohr\n* temperature = Kelvin\n* pressure = Pascals\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole moment = Debye\n* electric field = volts/cm\n\nFor style *micro*, these are the units:\n\n* mass = picograms\n* distance = micrometers\n* time = microseconds\n* energy = picogram-micrometer\\^2/microsecond\\^2\n* velocity = micrometers/microsecond\n* force = picogram-micrometer/microsecond\\^2\n* torque = picogram-micrometer\\^2/microsecond\\^2\n* temperature = Kelvin\n* pressure = picogram/(micrometer-microsecond\\^2)\n* dynamic viscosity = picogram/(micrometer-microsecond)\n* charge = picocoulombs (1.6021765e-7 is a proton)\n* dipole = picocoulomb-micrometer\n* electric field = volt/micrometer\n* density = picograms/micrometer\\^dim\n\nFor style *nano*, these are the units:\n\n* mass = attograms\n* distance = nanometers\n* time = nanoseconds\n* energy = attogram-nanometer\\^2/nanosecond\\^2\n* velocity = nanometers/nanosecond\n* force = attogram-nanometer/nanosecond\\^2\n* torque = attogram-nanometer\\^2/nanosecond\\^2\n* temperature = Kelvin\n* pressure = attogram/(nanometer-nanosecond\\^2)\n* dynamic viscosity = attogram/(nanometer-nanosecond)\n* charge = multiple of electron charge (1.0 is a proton)\n* dipole = charge-nanometer\n* electric field = volt/nanometer\n* density = attograms/nanometer\\^dim\n\nThe units command also sets the timestep size and neighbor skin\ndistance to default values for each style:\n\n* For style *lj* these are dt = 0.005 \\(\\tau\\) and skin = 0.3 \\(\\sigma\\).\n* For style *real* these are dt = 1.0 femtoseconds and skin = 2.0 Angstroms.\n* For style *metal* these are dt = 0.001 picoseconds and skin = 2.0 Angstroms.\n* For style *si* these are dt = 1.0e-8 seconds and skin = 0.001 meters.\n* For style *cgs* these are dt = 1.0e-8 seconds and skin = 0.1 centimeters.\n* For style *electron* these are dt = 0.001 femtoseconds and skin = 2.0 Bohr.\n* For style *micro* these are dt = 2.0 microseconds and skin = 0.1 micrometers.\n* For style *nano* these are dt = 0.00045 nanoseconds and skin = 0.1 nanometers.\n", + "restrictions": "This command cannot be used after the simulation box is defined by a\n[read_data ](https://docs.lammps.org/read_data.html) or [create_box ](https://docs.lammps.org/create_box.html) command.\n", + "related": "none\n" }, { "command": [ - "fix_modify AtC read_restart" + "thermo" ], "syntax": [ - "fix_modify read_restart " + "thermo N" ], "args": [ [ { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "read_restart", + "arg": "thermo", "type": 1, "choices": [] }, { - "arg": "", + "arg": "N", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* read_restart = name of the AtC sub-command\n* file_name = name of AtC restart file \n", - "examples": "\n```lmps\nfix_modify AtC read_restart restart.mydata.AtC\n```\n", - "html_filename": "atc_read_restart.html", - "short_description": "Reads the current state of the AtC fields from a named text-based restart file", - "description": "Reads the current state of the AtC fields from a named text-based restart file.\n", - "restrictions": "The restart file only contains fields and their time derivatives. The\nreference positions of the atoms and the commands that initialize the\nfix are not saved e.g. an identical mesh containing the same atoms will\nhave to be recreated.\n", - "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC write_restart ](https://docs.lammps.org/atc_write_restart.html)\n" + "parameters": "* N = output thermodynamics every N timesteps\n* N can be a variable (see below) \n", + "examples": "\n```lmps\nthermo 100\n```\n", + "html_filename": "thermo.html", + "short_description": "Compute and print thermodynamic info (e.g", + "description": "Compute and print thermodynamic info (e.g. temperature, energy,\npressure) on timesteps that are a multiple of N and at the beginning\nand end of a simulation. A value of 0 will only print thermodynamics\nat the beginning and end.\n\nThe content and format of what is printed is controlled by the\n[thermo_style ](https://docs.lammps.org/thermo_style.html) and\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html) commands.\n\nInstead of a numeric value, N can be specified as an [equal-stylevariable ](https://docs.lammps.org/variable.html), which should be specified as v_name, where name is\nthe variable name. In this case, the variable is evaluated at the\nbeginning of a run to determine the next timestep at which thermodynamic\ninfo will be written out. On that timestep, the variable will be\nevaluated again to determine the next timestep, etc. Thus the variable\nshould return timestep values. See the stagger() and logfreq() and\nstride() math functions for [equal-style variables ](https://docs.lammps.org/variable.html), as\nexamples of useful functions to use in this context. Other similar math\nfunctions could easily be added as options for [equal-stylevariables ](https://docs.lammps.org/variable.html).\n\nFor example, the following commands will output thermodynamic info at\ntimesteps 0, 10, 20, 30, 100, 200, 300, 1000, 2000, *etc*:\n\n```lmps\nvariable s equal logfreq(10,3,10)\nthermo v_s\n```\n", + "restrictions": " none\n", + "related": "[thermo_style ](https://docs.lammps.org/thermo_style.html), [thermo_modify ](https://docs.lammps.org/thermo_modify.html)\n" }, { "command": [ - "fix charge/regulation" + "molecule" ], "syntax": [ - "fix ID group-ID charge/regulation cation_type anion_type keyword value(s)" + "molecule ID file1 keyword values ... file2 keyword values ... fileN ..." ], "args": [ [ { - "arg": "fix", + "arg": "molecule", "type": 1, "choices": [] }, @@ -41032,51 +40549,73 @@ export const command_docs = [ "choices": [] }, { - "arg": "group-ID", + "arg": "file1", "type": 2, "choices": [] }, { - "arg": "charge/regulation", - "type": 1, - "choices": [] + "arg": "scale", + "type": 3, + "choices": [ + "offset", + "toff", + "boff", + "aoff", + "doff", + "ioff", + "scale" + ] }, { - "arg": "cation_type", + "arg": "values", "type": 2, "choices": [] }, { - "arg": "anion_type", + "arg": "file2", "type": 2, "choices": [] }, { - "arg": "keyword", + "arg": "scale", + "type": 3, + "choices": [ + "offset", + "toff", + "boff", + "aoff", + "doff", + "ioff", + "scale" + ] + }, + { + "arg": "values", "type": 2, "choices": [] }, { - "arg": "value(s)", + "arg": "fileN", "type": 2, "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in fix command\n* charge/regulation = style name of this fix command\n* cation_type = atom type of free cations (integer or type label)\n* anion_type = atom type of free anions (integer or type label)\n\n* zero or more keyword/value pairs may be appended \n *      keyword = *pH*, *pKa*, *pKb*, *pIp*, *pIm*, *pKs*, *acid_type*, *base_type*, *lunit_nm*, *temp*, *tempfixid*, *nevery*, *nmc*, *rxd*, *seed*, *tag*, *group*, *onlysalt*, pmcmoves \n *      *pH* value = pH of the solution (can be specified as an equal-style variable) \n *      *pKa* value = acid dissociation constant (in the -log10 representation) \n *      *pKb* value = base dissociation constant (in the -log10 representation) \n *      *pIp* value = activity (effective concentration) of free cations (in the -log10 representation) \n *      *pIm* value = activity (effective concentration) of free anions (in the -log10 representation) \n *      *pKs* value = solvent self-dissociation constant (in the -log10 representation) \n *      *acid_type* = atom type of acid groups (integer or type label) \n *      *base_type* = atom type of base groups (integer or type label) \n *      *lunit_nm* value = unit length used by LAMMPS (# in the units of nanometers) \n *      *temp* value = temperature \n *      *tempfixid* value = fix ID of temperature thermostat \n *      *nevery* value = invoke this fix every nevery steps \n *      *nmc* value = number of charge regulation MC moves to attempt every nevery steps \n *      *rxd* value = cutoff distance for acid/base reaction \n *      *seed* value = random # seed (positive integer) \n *      *tag* value = yes or no (yes: The code assign unique tags to inserted ions; no: The tag of all inserted ions is \"0\") \n *      *group* value = group-ID, inserted ions are assigned to group group-ID. Can be used multiple times to assign inserted ions to multiple groups. \n *      *onlysalt* values = flag charge_cation charge_anion. \n       flag = yes or no (yes: the fix performs only ion insertion/deletion, no: perform acid/base dissociation and ion insertion/deletion) \n       charge_cation, charge_anion = value of cation/anion charge, must be an integer (only specify if flag = yes) \n *      pmcmoves values = pmcA pmcB pmcI - MC move fractions for acid ionization (pmcA), base ionization (pmcB) and free ion exchange (pmcI) \n", - "examples": "\n```lmps\nfix chareg all charge/regulation 1 2 acid_type 3 base_type 4 pKa 5.0 pKb 6.0 pH 7.0 pIp 3.0 pIm 3.0 nevery 200 nmc 200 seed 123 tempfixid fT\nfix chareg all charge/regulation 1 2 pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0\n\nlabelmap atom 1 H+ 2 OH-\nfix chareg all charge/regulation H+ OH- pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0\n```\n", - "html_filename": "fix_charge_regulation.html", - "short_description": "This fix performs Monte Carlo (MC) sampling of charge regulation and\nexchange of ions with a reservoir as discussed in **Curk1**\nand **Curk2**", - "description": "This fix performs Monte Carlo (MC) sampling of charge regulation and\nexchange of ions with a reservoir as discussed in **Curk1**\nand **Curk2**. The implemented method is largely analogous\nto the grand-reaction ensemble method in **Landsgesell**. The implementation is parallelized, compatible with\nexisting LAMMPS functionalities, and applicable to any system utilizing\ndiscrete, ionizable groups or surface sites.\n\nSpecifically, the fix implements the following three types of MC moves,\nwhich discretely change the charge state of individual particles and\ninsert ions into the systems: \\(\\mathrm{A} \\rightleftharpoons\n\\mathrm{A}^-+\\mathrm{X}^+\\), \\(\\mathrm{B} \\rightleftharpoons\n\\mathrm{B}^++\\mathrm{X}^-\\), and \\(\\emptyset \\rightleftharpoons\nZ^-\\mathrm{X}^{Z^+}+Z^+\\mathrm{X}^{-Z^-}\\). In the former two types of\nreactions, Monte Carlo moves alter the charge value of specific atoms\n(\\(\\mathrm{A}\\), \\(\\mathrm{B}\\)) and simultaneously insert a\ncounterion to preserve the charge neutrality of the system, modeling the\ndissociation/association process. The last type of reaction performs\ngrand canonical MC exchange of ion pairs with a (fictitious) reservoir.\n\nIn our implementation \"acid\" refers to particles that can attain charge\n\\(q=\\{0,-1\\}\\) and \"base\" to particles with \\(q=\\{0,1\\}\\),\nwhereas the MC exchange of free ions allows any integer charge values of\n\\({Z^+}\\) and \\({Z^-}\\).\n\nHere we provide several practical examples for modeling charge\nregulation effects in solvated systems. An acid ionization reaction\n(\\(\\mathrm{A} \\rightleftharpoons \\mathrm{A}^-+\\mathrm{H}^+\\)) can be\ndefined via a single line in the input file\n\n```lmps\nfix acid_reaction all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 5.0 pIp 7.0 pIm 7.0\n```\nwhere the fix attempts to charge \\(\\mathrm{A}\\) (discharge\n\\(\\mathrm{A}^-\\)) to \\(\\mathrm{A}^-\\) (\\(\\mathrm{A}\\)) and\ninsert (delete) a proton (atom type 2). Besides, the fix implements\nself-ionization reaction of water \\(\\emptyset \\rightleftharpoons\n\\mathrm{H}^++\\mathrm{OH}^-\\).\n\nHowever, this approach is highly inefficient at \\(\\mathrm{pH}\n\\approx 7\\) when the concentration of both protons and hydroxyl ions is\nlow, resulting in a relatively low acceptance rate of MC moves.\n\nA more efficient way is to allow salt ions to participate in ionization\nreactions, which can be easily achieved via\n\n```lmps\nfix acid_reaction2 all charge/regulation 4 5 acid_type 1 pH 7.0 pKa 5.0 pIp 2.0 pIm 2.0\n```\nwhere particles of atom type 4 and 5 are the salt cations and anions,\nboth at activity (effective concentration) of \\(10^{-2}\\) mol/l, see\n**Curk1** and **Landsgesell** for more\ndetails.\n\nWe could have simultaneously added a base ionization reaction\n(\\(\\mathrm{B} \\rightleftharpoons \\mathrm{B}^++\\mathrm{OH}^-\\))\n\n```lmps\nfix acid_base_reaction all charge/regulation 2 3 acid_type 1 base_type 6 pH 7.0 pKa 5.0 pKb 6.0 pIp 7.0 pIm 7.0\n```\nwhere the fix will attempt to charge \\(\\mathrm{B}\\) (discharge\n\\(\\mathrm{B}^+\\)) to \\(\\mathrm{B}^+\\) (\\(\\mathrm{B}\\)) and\ninsert (delete) a hydroxyl ion \\(\\mathrm{OH}^-\\) of atom type 3.\n\n\nDissociated ions and salt ions can be combined into a single particle\ntype, which reduces the number of necessary MC moves and increases\nsampling performance, see **Curk1**. The\n\\(\\mathrm{H}^+\\) and monovalent salt cation (\\(\\mathrm{S}^+\\))\nare combined into a single particle type, \\(\\mathrm{X}^+ =\n\\{\\mathrm{H}^+, \\mathrm{S}^+\\}\\). In this case \"pIp\" refers to the\neffective concentration of the combined cation type \\(\\mathrm{X}^+\\)\nand its value is determined by \\(10^{-\\mathrm{pIp}} =\n10^{-\\mathrm{pH}} + 10^{-\\mathrm{pSp}}\\), where\n\\(10^{-\\mathrm{pSp}}\\) is the effective concentration of salt\ncations. For example, at pH=7 and pSp=6 we would find pIp~5.958 and the\ncommand that performs reactions with combined ions could read,\n\n```lmps\nfix acid_reaction_combined all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 5.0 pIp 5.958 pIm 5.958\n```\nIf neither the acid or the base type is specified, for example,\n\n```lmps\nfix salt_reaction all charge/regulation 4 5 pIp 2.0 pIm 2.0\n```\nthe fix simply inserts or deletes an ion pair of a free cation (atom\ntype 4) and a free anion (atom type 5) as done in a conventional\ngrand-canonical MC simulation. Multivalent ions can be inserted\n(deleted) by using the *onlysalt* keyword.\n\nThis fix is compatible with LAMMPS packages such as MOLECULE or\nRIGID. The acid and base particles can be part of larger molecules or\nrigid bodies. Free ions that are inserted to or deleted from the system\nmust be defined as single particles (no bonded interactions allowed) and\ncannot be part of larger molecules or rigid bodies. If an atom style\nwith molecule IDs is used, all inserted ions have a molecule ID equal to\nzero.\n\nNote that LAMMPS implicitly assumes a constant number of particles\n(degrees of freedom). Since using this fix alters the total number of\nparticles during the simulation, any thermostat used by LAMMPS, such as\nNVT or Langevin, must use a dynamic calculation of system\ntemperature. This can be achieved by specifying a dynamic temperature\ncompute (e.g. dtemp) and using it with the desired thermostat, e.g. a\nLangevin thermostat:\n\n```lmps\ncompute dtemp all temp\ncompute_modify dtemp dynamic/dof yes\nfix fT all langevin 1.0 1.0 1.0 123\nfix_modify fT temp dtemp\n```\nThe units of pH, pKa, pKb, pIp, pIm are considered to be in the\nstandard -log10 representation assuming reference concentration\n\\(\\rho_0 = \\mathrm{mol}/\\mathrm{l}\\). For example, in the dilute\nideal solution limit, the concentration of free cations will be\n\\(c_\\mathrm{I} = 10^{-\\mathrm{pIp}}\\mathrm{mol}/\\mathrm{l}\\). To\nperform the internal unit conversion, the the value of the LAMMPS unit\nlength must be specified in nanometers via *lunit_nm*. The default value\nis set to the Bjerrum length in water at room temperature (0.71 nm),\n*lunit_nm* = 0.71.\n\nThe temperature used in MC acceptance probability is set by *temp*. This\ntemperature should be the same as the temperature set by the molecular\ndynamics thermostat. For most purposes, it is probably best to use\n*tempfixid* keyword which dynamically sets the temperature equal to the\nchosen MD thermostat temperature, in the example above we assumed the\nthermostat fix-ID is *fT*. The inserted particles attain a random\nvelocity corresponding to the specified temperature. Using *tempfixid*\noverrides any fixed temperature set by *temp*.\n\nThe *rxd* keyword can be used to restrict the inserted/deleted\ncounterions to a specific radial distance from an acid or base particle\nthat is currently participating in a reaction. This can be used to\nsimulate more realist reaction dynamics. If *rxd* = 0 or *rxd* > *L* /\n2, where *L* is the smallest box dimension, the radial restriction is\nautomatically turned off and free ion can be inserted or deleted\nanywhere in the simulation box.\n\nIf the *tag yes* is used, every inserted atom gets a unique tag ID,\notherwise, the tag of every inserted atom is set to 0. *tag yes* might\ncause an integer overflow in very long simulations since the tags are\nunique to every particle and thus increase with every successful\nparticle insertion.\n\nThe *pmcmoves* keyword sets the relative probability of attempting the\nthree types of MC moves (reactions): acid charging, base charging, and\nion pair exchange. The fix only attempts to perform particle charging\nMC moves if *acid_type* or *base_type* is defined. Otherwise fix only\nperforms free ion insertion/deletion. For example, if *acid_type* is not\ndefined, *pmcA* is automatically set to 0. The vector *pmcmoves* is\nautomatically normalized, for example, if set to *pmcmoves* 0 0.33 0.33,\nthe vector would be normalized to [0,0.5,0.5].\n\nThe *only_salt* option can be used to perform multivalent\ngrand-canonical ion-exchange moves. If *only_salt yes* is used, no\ncharge exchange is performed, only ion insertion/deletion (*pmcmoves* is\nset to [0,0,1]), but ions can be multivalent. In the example above, an\nMC move would consist of three ion insertion/deletion to preserve the\ncharge neutrality of the system.\n\nThe *group* keyword can be used to add inserted particles to a specific\ngroup-ID. All inserted particles are automatically added to group *all*.\n\n\n #### Output\n\nThis fix computes a global vector of length 8, which can be accessed by\nvarious output commands. The vector values are the following global\nquantities:\n\n #. cumulative MC attempts\n #. cumulative MC successes\n #. current # of neutral acid atoms\n #. current # of -1 charged acid atoms\n #. current # of neutral base atoms\n #. current # of +1 charged base atoms\n #. current # of free cations\n #. current # of free anions\n\n**(Curk1)** T. Curk, J. Yuan, and E. Luijten, \"Accelerated simulation method for charge regulation effects\", JCP 156 (2022). \n \n**(Curk2)** T. Curk and E. Luijten, \"Charge-regulation effects in nanoparticle self-assembly\", PRL 126 (2021) \n \n**(Landsgesell)** J. Landsgesell, P. Hebbeker, O. Rud, R. Lunkad, P. Kosovan, and C. Holm, \"Grand-reaction method for simulations of ionization equilibria coupled to ion partitioning\", Macromolecules 53, 3007-3020 (2020). \n \n**(Landsgesell)** J. Landsgesell, P. Hebbeker, O. Rud, R. Lunkad, P. Kosovan, and C. Holm, \"Grand-reaction method for simulations of ionization equilibria coupled to ion partitioning\", Macromolecules 53, 3007-3020 (2020). \n ", - "restrictions": "This fix is part of the MC package. It is only enabled if LAMMPS was\nbuilt with that package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThe [atom_style ](https://docs.lammps.org/atom_style.html), used must contain the charge\nproperty and have per atom type masses, for example, the style could be\n*charge* or *full*. Only usable for 3D simulations. Atoms specified as\nfree ions cannot be part of rigid bodies or molecules and cannot have\nbonding interactions. The scheme is limited to integer charges, any\natoms with non-integer charges will not be considered by the fix.\n\nAll interaction potentials used must be continuous, otherwise the MD\nintegration and the particle exchange MC moves do not correspond to the\nsame equilibrium ensemble. For example, if an lj/cut pair style is used,\nthe LJ potential must be shifted so that it vanishes at the cutoff. This\ncan be easily achieved using the [pair_modify ](https://docs.lammps.org/pair_modify.html)\ncommand, i.e., by using: *pair_modify shift yes*.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Region restrictions are not yet implemented. \n > \n\n", - "related": "[fix gcmc ](https://docs.lammps.org/fix_gcmc.html),\n[fix atom/swap ](https://docs.lammps.org/fix_atom_swap.html)\n" + "parameters": "* ID = user-assigned name for the molecule template\n* file1,file2,... = names of files containing molecule descriptions\n* zero or more keyword/value pairs may be appended after each file\n* keyword = offset or toff or boff or aoff or doff or ioff or scale \n *        offset values = Toff Boff Aoff Doff Ioff \n         Toff = offset to add to atom types \n         Boff = offset to add to bond types \n         Aoff = offset to add to angle types \n         Doff = offset to add to dihedral types \n         Ioff = offset to add to improper types \n *        toff value = Toff \n         Toff = offset to add to atom types \n *        boff value = Boff \n         Boff = offset to add to bond types \n *        aoff value = Aoff \n         Aoff = offset to add to angle types \n *        doff value = Doff \n         Doff = offset to add to dihedral types \n *        ioff value = Ioff \n         Ioff = offset to add to improper types \n *        scale value = sfactor \n         sfactor = scale factor to apply to the size and mass of the molecule \n", + "examples": "\n```lmps\nmolecule 1 mymol.txt\nmolecule 1 co2.txt h2o.txt\nmolecule CO2 co2.txt boff 3 aoff 2\nmolecule 1 mymol.txt offset 6 9 18 23 14\nmolecule objects file.1 scale 1.5 file.1 scale 2.0 file.2 scale 1.3\n```\n", + "html_filename": "molecule.html", + "short_description": "Define a molecule template that can be used as part of other LAMMPS\ncommands, typically to define a collection of particles as a bonded\nmolecule or a rigid body", + "description": "Define a molecule template that can be used as part of other LAMMPS\ncommands, typically to define a collection of particles as a bonded\nmolecule or a rigid body. Commands that currently use molecule\ntemplates include:\n\n* [fix deposit ](https://docs.lammps.org/fix_deposit.html)\n* [fix pour ](https://docs.lammps.org/fix_pour.html)\n* [fix rigid/small ](https://docs.lammps.org/fix_rigid.html)\n* [fix shake ](https://docs.lammps.org/fix_shake.html)\n* [fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n* [fix bond/react ](https://docs.lammps.org/fix_bond_react.html)\n* [create_atoms ](https://docs.lammps.org/create_atoms.html)\n* [atom_style template ](https://docs.lammps.org/atom_style.html)\n\nThe ID of a molecule template can only contain alphanumeric characters\nand underscores.\n\nA single template can contain multiple molecules, listed one per file.\nSome of the commands listed above currently use only the first\nmolecule in the template, and will issue a warning if the template\ncontains multiple molecules. The [atom_style template](https://docs.lammps.org/atom_style.html) command allows multiple-molecule templates to define a\nsystem with more than one templated molecule.\n\nEach filename can be followed by optional keywords which are applied\nonly to the molecule in the file as used in this template. This is to\nmake it easy to use the same molecule file in different molecule\ntemplates or in different simulations. You can specify the same file\nmultiple times with different optional keywords.\n\nThe *offset*, *toff*, *boff*, *aoff*, *doff*, *ioff* keywords\nadd the specified offset values to the atom types, bond types, angle\ntypes, dihedral types, and/or improper types as they are read from the\nmolecule file. E.g. if *toff* = 2, and the file uses atom types\n1,2,3, then each created molecule will have atom types 3,4,5. For the\n*offset* keyword, all five offset values must be specified, but\nindividual values will be ignored if the molecule template does not\nuse that attribute (e.g. no bonds).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Offsets are **ignored** on lines using type labels, as the type\n > labels will determine the actual types directly depending on the\n > current [labelmap ](https://docs.lammps.org/labelmap.html) settings. \n > \n\nThe *scale* keyword scales the size of the molecule. This can be\nuseful for modeling polydisperse granular rigid bodies. The scale\nfactor is applied to each of these properties in the molecule file, if\nthey are defined: the individual particle coordinates (Coords\nsection), the individual mass of each particle (Masses section), the\nindividual diameters of each particle (Diameters section), the total\nmass of the molecule (header keyword = mass), the center-of-mass of\nthe molecule (header keyword = com), and the moments of inertia of the\nmolecule (header keyword = inertia).\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The molecule command can be used to define molecules with bonds,\n > angles, dihedrals, impropers, or special bond lists of neighbors\n > within a molecular topology, so that you can later add the molecules\n > to your simulation, via one or more of the commands listed above.\n > Since this topology-related information requires that suitable storage\n > is reserved when LAMMPS creates the simulation box (e.g. when using\n > the [create_box ](https://docs.lammps.org/create_box.html) command or the\n > [read_data ](https://docs.lammps.org/read_data.html) command) suitable space has to be reserved\n > so you do not overflow those pre-allocated data structures when adding\n > molecules later. Both the [create_box ](https://docs.lammps.org/create_box.html) command and\n > the [read_data ](https://docs.lammps.org/read_data.html) command have \"extra\" options which\n > ensure space is allocated for storing topology info for molecules that\n > are added later. \n > \n\n----------\n\n #### Format of a molecule file\n\nThe format of an individual molecule file looks similar but is\ndifferent than that of a data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommands. Here is a simple example for a TIP3P water molecule:\n\n```\n# Water molecule. TIP3P geometry\n# header section:\n3 atoms\n2 bonds\n1 angles\n\n# body section:\nCoords\n\n1 0.00000 -0.06556 0.00000\n2 0.75695 0.52032 0.00000\n3 -0.75695 0.52032 0.00000\n\nTypes\n\n1 1 # O\n2 2 # H\n3 2 # H\n\nCharges\n\n1 -0.834\n2 0.417\n3 0.417\n\nBonds\n\n1 1 1 2\n2 1 1 3\n\nAngles\n\n1 1 2 1 3\n```\nA molecule file has a header and a body. The header appears first. The\nfirst line of the header and thus of the molecule file is *always*\nskipped; it typically contains a description of the file or a comment\nfrom the software that created the file.\n\nThen lines are read one line at a time. Lines can have a trailing\ncomment starting with '#' that is ignored. There *must* be at least one\nblank between any valid content and the comment. If the line is blank\n(i.e. contains only white-space after comments are deleted), it is\nskipped. If the line contains a header keyword, the corresponding\nvalue(s) is/are read from the line. A line that is *not* blank and does\n*not* contains a header keyword begins the body of the file.\n\nThe body of the file contains zero or more sections. The first line\nof a section has only a keyword. The next line is skipped. The\nremaining lines of the section contain values. The number of lines\ndepends on the section keyword as described below. Zero or more blank\nlines can be used between sections. Sections can appear in any order,\nwith a few exceptions as noted below.\n\nThese are the recognized header keywords. Header lines can come in\nany order. The numeric value(s) are read from the beginning of the\nline. The keyword should appear at the end of the line. All these\nsettings have default values, as explained below. A line need only\nappear if the value(s) are different than the default, except when\ndefining a *body* particle, which requires setting the number of\n*atoms* to 1, and setting the *inertia* in a specific section (see below).\n\n | | | | | \n |---|---|---|---|\n Number(s) | Keyword | Meaning | Default Value|\n N | atoms | # of atoms N in molecule | 0|\n Nb | bonds | # of bonds Nb in molecule | 0|\n Na | angles | # of angles Na in molecule | 0|\n Nd | dihedrals | # of dihedrals Nd in molecule | 0|\n Ni | impropers | # of impropers Ni in molecule | 0|\n Nf | fragments | # of fragments Nf in molecule | 0|\n Ninteger Ndouble | body | # of integer and floating-point values in body particle | 0|\n Mtotal | mass | total mass of molecule | computed|\n Xc Yc Zc | com | coordinates of center-of-mass of molecule | computed|\n \nFor *mass*, *com*, and *inertia*, the default is for LAMMPS to calculate\nthis quantity itself if needed, assuming the molecules consist of a set\nof point particles or finite-size particles (with a non-zero diameter)\nthat do **not** overlap. If finite-size particles in the molecule\n**do** overlap, LAMMPS will not account for the overlap effects when\ncalculating any of these 3 quantities, so you should pre-compute them\nyourself and list the values in the file.\n\nThe mass and center-of-mass coordinates (Xc,Yc,Zc) are\nself-explanatory. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz)\nshould be the values consistent with the current orientation of the\nrigid body around its center of mass. The values are with respect to\nthe simulation box XYZ axes, not with respect to the principal axes of\nthe rigid body itself. LAMMPS performs the latter calculation\ninternally.\n\nThese are the allowed section keywords for the body of the file.\n\n* *Coords, Types, Molecules, Fragments, Charges, Diameters, Dipoles, Masses* = atom-property sections\n* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections\n* *Special Bond Counts, Special Bonds* = special neighbor info\n* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info\n* *Body Integers, Body Doubles* = body-property sections\n\nFor the Types, Bonds, Angles, Dihedrals, and Impropers sections, each\natom/bond/angle/etc type can be specified either as a number (numeric\ntype) or as an alphanumeric type label. The latter is only allowed if\ntype labels have been defined, either by the [labelmap](https://docs.lammps.org/labelmap.html) command or in data files read by the [read_data](https://docs.lammps.org/read_data.html) command which have sections for Atom Type Labels, Bond\nType Labels, Angle Type Labels, etc. See the [Howto type labels](https://docs.lammps.org/Howto_type_labels.html) doc page for the allowed syntax of type labels\nand a general discussion of how type labels can be used.\nWhen using type labels, any values specified as *offset* are ignored.\n\nIf a Bonds section is specified then the Special Bond Counts and\nSpecial Bonds sections can also be used, if desired, to explicitly\nlist the 1-2, 1-3, 1-4 neighbors within the molecule topology (see\ndetails below). This is optional since if these sections are not\nincluded, LAMMPS will auto-generate this information. Note that\nLAMMPS uses this info to properly exclude or weight bonded pairwise\ninteractions between bonded atoms. See the [special_bonds](https://docs.lammps.org/special_bonds.html) command for more details. One reason to list the\nspecial bond info explicitly is for the [thermalized Drudeoscillator model ](https://docs.lammps.org/Howto_drude.html) which treats the bonds between nuclear\ncores and Drude electrons in a different manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Whether a section is required depends on how the molecule template\n > is used by other LAMMPS commands. For example, to add a molecule\n > via the [fix deposit ](https://docs.lammps.org/fix_deposit.html) command, the Coords and\n > Types sections are required. To add a rigid body via the [fix > pour ](https://docs.lammps.org/fix_pour.html) command, the Bonds (Angles, etc) sections are not\n > required, since the molecule will be treated as a rigid body. Some\n > sections are optional. For example, the [fix pour ](https://docs.lammps.org/fix_pour.html)\n > command can be used to add \"molecules\" which are clusters of\n > finite-size granular particles. If the Diameters section is not\n > specified, each particle in the molecule will have a default\n > diameter of 1.0. See the doc pages for LAMMPS commands that use\n > molecule templates for more details. \n > \n\nEach section is listed below in alphabetic order. The format of each\nsection is described including the number of lines it must contain and\nrules (if any) for whether it can appear in the data file. For per-\natom sections, entries should be numbered from 1 to Natoms (where\nNatoms is the number of atoms in the template), indicating which atom\n(or bond, etc) the entry applies to. Per-atom sections need to\ninclude a setting for every atom, but the atoms can be listed in any\norder.\n\n----------\n\n*Coords* section:\n\n* one line per atom\n* line syntax: ID x y z\n* x,y,z = coordinate of atom\n\n----------\n\n*Types* section:\n\n* one line per atom\n* line syntax: ID type\n* type = atom type of atom (1-Natomtype, or type label)\n\n----------\n\n*Molecules* section:\n\n* one line per atom\n* line syntax: ID molecule-ID\n* molecule-ID = molecule ID of atom\n\n----------\n\n*Fragments* section:\n\n* one line per fragment\n* line syntax: ID a b c d ...\n* a,b,c,d,... = IDs of atoms in fragment\n\nThe ID of a fragment can only contain alphanumeric characters and\nunderscores. The atom IDs should be values from 1 to Natoms, where\nNatoms = # of atoms in the molecule.\n\n----------\n\n*Charges* section:\n\n* one line per atom\n* line syntax: ID q\n* q = charge on atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport charge. If this section is not included, the default charge\non each atom in the molecule is 0.0.\n\n----------\n\n*Diameters* section:\n\n* one line per atom\n* line syntax: ID diam\n* diam = diameter of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport finite-size spherical particles, e.g. atom_style sphere. If\nnot listed, the default diameter of each atom in the molecule is 1.0.\n\n----------\n\n*Dipoles* section:\n\n* one line per atom\n* line syntax: ID mux muy muz\n* mux,muy,muz = x-, y-, and z-component of point dipole vector of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport particles with point dipoles, e.g. atom_style dipole. If not\nlisted, the default dipole component of each atom in the molecule is set\nto 0.0.\n\n----------\n\n*Masses* section:\n\n* one line per atom\n* line syntax: ID mass\n* mass = mass of atom\n\nThis section is only allowed for [atom styles ](https://docs.lammps.org/atom_style.html) that\nsupport per-atom mass, as opposed to per-type mass. See the\n[mass ](https://docs.lammps.org/mass.html) command for details. If this section is not\nincluded, the default mass for each atom is derived from its volume\n(see Diameters section) and a default density of 1.0, in\n[units ](https://docs.lammps.org/units.html) of mass/volume.\n\n----------\n\n*Bonds* section:\n\n* one line per bond\n* line syntax: ID type atom1 atom2\n* type = bond type (1-Nbondtype, or type label)\n* atom1,atom2 = IDs of atoms in bond\n\nThe IDs for the two atoms in each bond should be values\nfrom 1 to Natoms, where Natoms = # of atoms in the molecule.\n\n----------\n\n*Angles* section:\n\n* one line per angle\n* line syntax: ID type atom1 atom2 atom3\n* type = angle type (1-Nangletype, or type label)\n* atom1,atom2,atom3 = IDs of atoms in angle\n\nThe IDs for the three atoms in each angle should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The 3 atoms are\nordered linearly within the angle. Thus the central atom (around\nwhich the angle is computed) is the atom2 in the list.\n\n----------\n\n*Dihedrals* section:\n\n* one line per dihedral\n* line syntax: ID type atom1 atom2 atom3 atom4\n* type = dihedral type (1-Ndihedraltype, or type label)\n* atom1,atom2,atom3,atom4 = IDs of atoms in dihedral\n\nThe IDs for the four atoms in each dihedral should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The 4 atoms are\nordered linearly within the dihedral.\n\n----------\n\n*Impropers* section:\n\n* one line per improper\n* line syntax: ID type atom1 atom2 atom3 atom4\n* type = improper type (1-Nimpropertype, or type label)\n* atom1,atom2,atom3,atom4 = IDs of atoms in improper\n\nThe IDs for the four atoms in each improper should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The ordering of\nthe 4 atoms determines the definition of the improper angle used in\nthe formula for the defined [improper style ](https://docs.lammps.org/improper_style.html). See\nthe doc pages for individual styles for details.\n\n----------\n\n*Special Bond Counts* section:\n\n* one line per atom\n* line syntax: ID N1 N2 N3\n* N1 = # of 1-2 bonds\n* N2 = # of 1-3 bonds\n* N3 = # of 1-4 bonds\n\nN1, N2, N3 are the number of 1-2, 1-3, 1-4 neighbors respectively of\nthis atom within the topology of the molecule. See the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) page for more discussion of\n1-2, 1-3, 1-4 neighbors. If this section appears, the Special Bonds\nsection must also appear.\n\nAs explained above, LAMMPS will auto-generate this information if this\nsection is not specified. If specified, this section will\noverride what would be auto-generated.\n\n----------\n\n*Special Bonds* section:\n\n* one line per atom\n* line syntax: ID a b c d ...\n* a,b,c,d,... = IDs of atoms in N1+N2+N3 special bonds\n\nA, b, c, d, etc are the IDs of the n1+n2+n3 atoms that are 1-2, 1-3,\n1-4 neighbors of this atom. The IDs should be values from 1 to\nNatoms, where Natoms = # of atoms in the molecule. The first N1\nvalues should be the 1-2 neighbors, the next N2 should be the 1-3\nneighbors, the last N3 should be the 1-4 neighbors. No atom ID should\nappear more than once. See the [special_bonds ](https://docs.lammps.org/special_bonds.html) doc\npage for more discussion of 1-2, 1-3, 1-4 neighbors. If this section\nappears, the Special Bond Counts section must also appear.\n\nAs explained above, LAMMPS will auto-generate this information if this\nsection is not specified. If specified, this section will override\nwhat would be auto-generated.\n\n----------\n\n*Shake Flags* section:\n\n* one line per atom\n* line syntax: ID flag\n* flag = 0,1,2,3,4\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file, following this one.\n\nThe meaning of the flag for each atom is as follows. See the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description of SHAKE\nclusters.\n\n* 0 = not part of a SHAKE cluster\n* 1 = part of a SHAKE angle cluster (two bonds and the angle they form)\n* 2 = part of a 2-atom SHAKE cluster with a single bond\n* 3 = part of a 3-atom SHAKE cluster with two bonds\n* 4 = part of a 4-atom SHAKE cluster with three bonds\n\n----------\n\n*Shake Atoms* section:\n\n* one line per atom\n* line syntax: ID a b c d\n* a,b,c,d = IDs of atoms in cluster\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file.\n\nThe a,b,c,d values are atom IDs (from 1 to Natoms) for all the atoms\nin the SHAKE cluster that this atom belongs to. The number of values\nthat must appear is determined by the shake flag for the atom (see the\nShake Flags section above). All atoms in a particular cluster should\nlist their a,b,c,d values identically.\n\nIf flag = 0, no a,b,c,d values are listed on the line, just the\n(ignored) ID.\n\nIf flag = 1, a,b,c are listed, where a = ID of central atom in the\nangle, and b,c the other two atoms in the angle.\n\nIf flag = 2, a,b are listed, where a = ID of atom in bond with the\nlowest ID, and b = ID of atom in bond with the highest ID.\n\nIf flag = 3, a,b,c are listed, where a = ID of central atom,\nand b,c = IDs of other two atoms bonded to the central atom.\n\nIf flag = 4, a,b,c,d are listed, where a = ID of central atom,\nand b,c,d = IDs of other three atoms bonded to the central atom.\n\nSee the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description\nof SHAKE clusters.\n\n----------\n\n*Shake Bond Types* section:\n\n* one line per atom\n* line syntax: ID a b c\n* a,b,c = bond types (or angle type) of bonds (or angle) in cluster\n\nThis section is only needed when molecules created using the template\nwill be constrained by SHAKE via the \"fix shake\" command. The other\ntwo Shake sections must also appear in the file.\n\nThe a,b,c values are bond types for all bonds in the SHAKE cluster that\nthis atom belongs to. Bond types may be either numbers (from 1 to Nbondtypes)\nor bond type labels as defined by the [labelmap ](https://docs.lammps.org/labelmap.html) command\nor a \"Bond Type Labels\" section of a data file.\n\n\nThe number of values that must appear is determined by the shake flag\nfor the atom (see the Shake Flags section above). All atoms in a\nparticular cluster should list their a,b,c values identically.\n\nIf flag = 0, no a,b,c values are listed on the line, just the\n(ignored) ID.\n\nIf flag = 1, a,b,c are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), b = bondtype of the bond between the central atom and\nthe second non-central atom (value c in the Shake Atoms section), and c\n= the angle type (1 to Nangletypes, or angle type label) of the angle\nbetween the 3 atoms.\n\nIf flag = 2, only a is listed, where a = bondtype of the bond between\nthe 2 atoms in the cluster.\n\nIf flag = 3, a,b are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), and b = bondtype of the bond between the central atom\nand the second non-central atom (value c in the Shake Atoms section).\n\nIf flag = 4, a,b,c are listed, where a = bondtype of the bond between\nthe central atom and the first non-central atom (value b in the Shake\nAtoms section), b = bondtype of the bond between the central atom and\nthe second non-central atom (value c in the Shake Atoms section), and c\n= bondtype of the bond between the central atom and the third\nnon-central atom (value d in the Shake Atoms section).\n\nSee the [fix shake ](https://docs.lammps.org/fix_shake.html) page for a further description\nof SHAKE clusters.\n\n----------\n\n*Body Integers* section:\n\n* one line\n* line syntax: N E F\n* N = number of sub-particles or number or vertices\n* E,F = number of edges and faces\n\nThis section is only needed when the molecule is a body particle. the other\nBody section must also appear in the file.\n\nThe total number of values that must appear is determined by the body style, and\nmust be equal to the Ninteger value given in the *body* header.\n\nFor *nparticle* and *rounded/polygon*, only the number of sub-particles or\nvertices N is required, and Ninteger should have a value of 1.\n\nFor *rounded/polyhedron*, the number of edges E and faces F is required, and\nNinteger should have a value of 3.\n\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a further description of\nthe file format.\n\n----------\n\n*Body Doubles* section:\n\n* first line\n* line syntax: Ixx Iyy Izz Ixy Ixz Iyz\n* Ixx Iyy Izz Ixy Ixz Iyz = 6 components of inertia tensor of body particle\n* one line per sub-particle or vertex\n* line syntax: x y z\n* x, y, z = coordinates of sub-particle or vertex\n* one line per edge\n* line syntax: N1 N2\n* N1, N2 = vertex indices\n* one line per face\n* line syntax: N1 N2 N3 N4\n* N1, N2, N3, N4 = vertex indices\n* last line\n* line syntax: diam\n* diam = rounded diameter that surrounds each vertex\n\nThis section is only needed when the molecule is a body particle. the other\nBody section must also appear in the file.\n\nThe total number of values that must appear is determined by the body style, and\nmust be equal to the Ndouble value given in the *body* header. The 6 moments of\ninertia and the 3N coordinates of the sub-particles or vertices are required\nfor all body styles.\n\nFor *rounded/polygon*, the E = 6 + 3*N + 1 edges are automatically determined\nfrom the vertices.\n\nFor *rounded/polyhedron*, the 2E vertex indices for the end points of the edges\nand 4F vertex indices defining the faces are required.\n\nSee the [Howto body ](https://docs.lammps.org/Howto_body.html) page for a further description of\nthe file format.\n\n----------\n", + "restrictions": "None\n", + "related": "[fix deposit ](https://docs.lammps.org/fix_deposit.html), [fix pour ](https://docs.lammps.org/fix_pour.html),\n[fix gcmc ](https://docs.lammps.org/fix_gcmc.html)\n" }, { "command": [ - "compute pair" + "compute coord/atom", + "compute coord/atom/kk" ], "syntax": [ - "compute ID group-ID pair pstyle [nstyle] [evalue]" + "compute ID group-ID coord/atom style args ..." ], "args": [ [ @@ -41096,131 +40635,76 @@ export const command_docs = [ "choices": [] }, { - "arg": "pair", - "type": 1, - "choices": [] - }, - { - "arg": "pstyle", - "type": 2, - "choices": [] - }, - { - "arg": "[nstyle]", - "type": 2, - "choices": [] - }, - { - "arg": "blank", + "arg": "coord/atom", "type": 3, "choices": [ - "epair", - "evdwl", - "ecoul", - "blank" + "coord/atom", + "coord/atom/kk" ] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* pair = style name of this compute command\n* pstyle = style name of a pair style that calculates additional values\n* nsub = *n* -instance of a sub-style, if a pair style is used multiple times in a hybrid style\n* evalue = epair or evdwl or ecoul or blank (optional) \n", - "examples": "\n```lmps\ncompute 1 all pair gauss\ncompute 1 all pair lj/cut/coul/cut ecoul\ncompute 1 all pair tersoff 2 epair\ncompute 1 all pair reaxff\n```\n", - "html_filename": "compute_pair.html", - "short_description": "Define a computation that extracts additional values calculated by a\npair style, and makes them accessible for output or further processing\nby other commands", - "description": "Define a computation that extracts additional values calculated by a\npair style, and makes them accessible for output or further processing\nby other commands.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The group specified for this command is **ignored** . \n > \n\nThe specified *pstyle* must be a pair style used in your simulation\neither by itself or as a sub-style in a [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html) command. If the sub-style is\nused more than once, an additional number *nsub* has to be specified\nin order to choose which instance of the sub-style will be used by\nthe compute. Not specifying the number in this case will cause the\ncompute to fail.\n\nThe *evalue* setting is optional. All\npair styles tally a potential energy *epair* which may be broken into\ntwo parts: *evdwl* and *ecoul* such that *epair* = *evdwl* + *ecoul* .\nIf the pair style calculates Coulombic interactions, their energy will\nbe tallied in *ecoul* . Everything else (whether it is a Lennard-Jones\nstyle van der Waals interaction or not) is tallied in *evdwl* . If\n*evalue* is blank or specified as *epair*, then *epair* is stored\nas a global scalar by this compute. This is useful when using\n[pair_style hybrid ](https://docs.lammps.org/pair_hybrid.html) if you want to know the portion\nof the total energy contributed by one sub-style. If *evalue* is\nspecified as *evdwl* or *ecoul*, then just that portion of the energy\nis stored as a global scalar.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The energy returned by the *evdwl* keyword does not include tail\n > corrections, even if they are enabled via the\n > [pair_modify ](https://docs.lammps.org/pair_modify.html) command. \n > \n\nSome pair styles tally additional quantities, e.g. a breakdown of\npotential energy into 14 components is tallied by the\n[pair_style reaxff ](https://docs.lammps.org/pair_reaxff.html) command. These values (1 or more)\nare stored as a global vector by this compute. See the page for\n[individual pair styles ](https://docs.lammps.org/pair_style.html) for info on these values.\n\n #### Output info\n\nThis compute calculates a global scalar which is *epair* or *evdwl* or\n*ecoul* . If the pair style supports it, it also calculates a global\nvector of length \\(\\ge\\) 1, as determined by the pair style. These values\ncan be used by any command that uses global scalar or vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe scalar and vector values calculated by this compute are\n\"extensive\".\n\nThe scalar value will be in energy [units ](https://docs.lammps.org/units.html). The vector\nvalues will typically also be in energy [units ](https://docs.lammps.org/units.html), but see\nthe page for the pair style for details.\n", - "restrictions": " none\n", - "related": "[compute pe ](https://docs.lammps.org/compute_pe.html), [compute bond ](https://docs.lammps.org/compute_bond.html),\n[fix pair ](https://docs.lammps.org/fix_pair.html)\n" -}, -{ - "command": [ - "fix_modify AtC atom_element_map" - ], - "syntax": [ - "fix_modify atom_element_map []" - ], - "args": [ - [ - { - "arg": "fix_modify", - "type": 1, - "choices": [] - }, - { - "arg": "", - "type": 2, - "choices": [] - }, - { - "arg": "atom_element_map", - "type": 1, - "choices": [] }, { - "arg": "", + "arg": "orientorder", "type": 3, "choices": [ - "eulerian", - "lagrangian" + "cutoff", + "orientorder" ] }, { - "arg": "[]", + "arg": "args", "type": 2, "choices": [] } ] ], - "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* atom_element_map = name of the AtC sub-command\n* eulerian or lagrangian = frame of reference\n* frequency = frequency of updating atom-to-continuum maps based on the current configuration - (only for eulerian) \n", - "examples": "\n```lmps\nfix_modify AtC atom_element_map eulerian 100\n```\n", - "html_filename": "atc_atom_element_map.html", - "short_description": "Changes frame of reference from *eulerian* to *lagrangian* or vice versa\nand sets the frequency for which the map from atoms to elements is\nreformed and all the attendant data is recalculated", - "description": "Changes frame of reference from *eulerian* to *lagrangian* or vice versa\nand sets the frequency for which the map from atoms to elements is\nreformed and all the attendant data is recalculated.\n", - "restrictions": "Cannot change map type after initialization.\n", - "related": "- :ref:`fix_modify AtC command overview `\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* coord/atom = style name of this compute command\n* style = cutoff or orientorder \n *      cutoff args = cutoff [group group2-ID] typeN \n       cutoff = distance within which to count coordination neighbors (distance units) \n       group group2-ID = select group-ID to restrict which atoms to consider for coordination number (optional) \n       typeN = atom type for Nth coordination count (see asterisk form below) \n *      orientorder args = orientorderID threshold \n       orientorderID = ID of an orientorder/atom compute \n       threshold = minimum value of the product of two \"connected\" atoms \n", + "examples": "\n```lmps\ncompute 1 all coord/atom cutoff 2.0\ncompute 1 all coord/atom cutoff 6.0 1 2\ncompute 1 all coord/atom cutoff 6.0 2*4 5*8 *\ncompute 1 solute coord/atom cutoff 2.0 group solvent\ncompute 1 all coord/atom orientorder 2 0.5\n```\n", + "html_filename": "compute_coord_atom.html", + "short_description": "This compute performs calculations between neighboring atoms to\ndetermine a coordination value", + "description": "This compute performs calculations between neighboring atoms to\ndetermine a coordination value. The specific calculation and the\nmeaning of the resulting value depend on the *cstyle* keyword used.\n\nThe *cutoff* cstyle calculates one or more traditional coordination\nnumbers for each atom. A coordination number is defined as the number\nof neighbor atoms with specified atom type(s), and optionally within\nthe specified group, that are within the specified cutoff distance from\nthe central atom. The compute group selects only the central atoms; all\nneighboring atoms, unless selected by type, type range, or group option,\nare included in the coordination number tally.\n\nThe optional *group* keyword allows to specify from which group atoms\ncontribute to the coordination number. Default setting is group 'all.'\n\nThe *typeN* keywords allow specification of which atom types\ncontribute to each coordination number. One coordination number is\ncomputed for each of the *typeN* keywords listed. If no *typeN*\nkeywords are listed, a single coordination number is calculated, which\nincludes atoms of all types (same as the \"\\*\" format, see below).\n\nThe *typeN* keywords can be specified in one of two ways. An explicit\nnumeric value can be used, as in the second example above. Or a\nwild-card asterisk can be used to specify a range of atom types. This\ntakes the form \"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of\natom types, then an asterisk with no numeric values means all types\nfrom 1 to \\(N\\). A leading asterisk means all types from 1 to n\n(inclusive). A trailing asterisk means all types from m to \\(N\\)\n(inclusive). A middle asterisk means all types from m to n\n(inclusive).\n\nThe *orientorder* cstyle calculates the number of \"connected\" neighbor\natoms *j* around each central atom *i* . For this *cstyle*, connected is\ndefined by the orientational order parameter calculated by the\n[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) command.\nThis *cstyle* thus allows one to apply the ten Wolde's criterion to\nidentify crystal-like atoms in a system, as discussed in **tenWolde1**.\n\nThe ID of the previously specified [compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html) command is specified as\n*orientorderID* . The compute must invoke its *components* option to\ncalculate components of the *Ybar_lm* vector for each atoms, as\ndescribed in its documentation. Note that orientorder/atom compute\ndefines its own criteria for identifying neighboring atoms. If the\nscalar product (*Ybar_lm(i)*, *Ybar_lm(j)*), calculated by the\norientorder/atom compute is larger than the specified *threshold*,\nthen *i* and *j* are connected, and the coordination value of *i* is\nincremented by one.\n\nFor all *cstyle* settings, all coordination values will be 0.0 for\natoms not in the specified compute group.\n\nThe neighbor list needed to compute this quantity is constructed each\ntime the calculation is performed (i.e., each time a snapshot of atoms\nis dumped). Thus it can be inefficient to compute/dump this quantity\ntoo frequently.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you have a bonded system, then the settings of\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command can remove pairwise\n > interactions between atoms in the same bond, angle, or dihedral. This\n > is the default setting for the [special_bonds ](https://docs.lammps.org/special_bonds.html)\n > command, and means those pairwise interactions do not appear in the\n > neighbor list. Because this fix uses the neighbor list, it also means\n > those pairs will not be included in the coordination count. One way\n > to get around this, is to write a dump file, and use the\n > [rerun ](https://docs.lammps.org/rerun.html) command to compute the coordination for snapshots\n > in the dump file. The rerun script can use a\n > [special_bonds ](https://docs.lammps.org/special_bonds.html) command that includes all pairs in\n > the neighbor list. \n > \n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Output info\n\nFor *cstyle* cutoff, this compute can calculate a per-atom vector or\narray. If single *type1* keyword is specified (or if none are\nspecified), this compute calculates a per-atom vector. If multiple\n*typeN* keywords are specified, this compute calculates a per-atom\narray, with \\(N\\) columns.\n\nFor *cstyle* orientorder, this compute calculates a per-atom vector.\n\nThese values can be accessed by any command that uses per-atom values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-atom vector or array values will be a number \\(\\ge 0.0\\), as\nexplained above.\n\n**(tenWolde1)** P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,\nJ. Chem. Phys. 104, 9932 (1996). \n ", + "restrictions": " none\n", + "related": "[compute cluster/atom ](https://docs.lammps.org/compute_cluster_atom.html)\n[compute orientorder/atom ](https://docs.lammps.org/compute_orientorder_atom.html)\n" }, { "command": [ - "bond_style harmonic/shift/cut", - "bond_style harmonic/shift/cut/omp" + "improper_style distharm" ], "syntax": [ - "bond_style harmonic/shift/cut" + "improper_style distharm" ], "args": [ [ { - "arg": "bond_style", + "arg": "improper_style", "type": 1, "choices": [] }, { - "arg": "harmonic/shift/cut", - "type": 3, - "choices": [ - "harmonic/shift/cut", - "harmonic/shift/cut/omp" - ] + "arg": "distharm", + "type": 1, + "choices": [] } ] ], "parameters": "", - "examples": "\n```lmps\nbond_style harmonic/shift/cut\nbond_coeff 5 10.0 0.5 1.0\n```\n", - "html_filename": "bond_harmonic_shift_cut.html", - "short_description": "The *harmonic/shift/cut* bond style is a shifted harmonic bond that\nuses the potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and rc the critical distance", - "description": "The *harmonic/shift/cut* bond style is a shifted harmonic bond that\nuses the potential\n\\[\n E = \\frac{U_{\\text{min}}}{(r_0-r_c)^2} \\left[ (r-r_0)^2-(r_c-r_0)^2 \\right]\\]\nwhere \\(r_0\\) is the equilibrium bond distance, and rc the critical distance.\nThe bond potential is zero for distances \\(r > r_c\\). The potential is \\(-U_{\\text{min}}\\)\nat \\(r_0\\) and zero at \\(r_c\\). The spring constant is \\(k = U_{\\text{min}} / [ 2 (r_0-r_c)^2]\\).\n\nThe following coefficients must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands:\n\n* \\(U_{\\text{min}}\\) (energy)\n* \\(r_0\\) (distance)\n* \\(r_c\\) (distance)\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", - "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [delete_bonds ](https://docs.lammps.org/delete_bonds.html),\n[bond_harmonic ](https://docs.lammps.org/bond_harmonic.html),\n[bond_style harmonic/shift ](https://docs.lammps.org/bond_harmonic_shift.html)\n" + "examples": "\n```lmps\nimproper_style distharm\nimproper_coeff 1 25.0 0.5\n```\n", + "html_filename": "improper_distharm.html", + "short_description": "The *distharm* improper style uses the potential\n\\[\n E = K (d - d_0)^2\\]\nwhere \\(d\\) is the oriented distance between the central atom and the plane formed\nby the other three atoms", + "description": "The *distharm* improper style uses the potential\n\\[\n E = K (d - d_0)^2\\]\nwhere \\(d\\) is the oriented distance between the central atom and the plane formed\nby the other three atoms. If the 4 atoms in an improper quadruplet\n(listed in the data file read by the [read_data ](https://docs.lammps.org/read_data.html)\ncommand) are ordered I,J,K,L then the L-atom is assumed to be the\ncentral atom. Note that this is different from the convention used\nin the improper_style distance. The distance \\(d\\) is oriented and can take\non negative values. This may lead to unwanted behavior if \\(d_0\\) is not equal to zero.\n\nThe following coefficients must be defined for each improper type via\nthe improper_coeff command as in the example above, or in the data\nfile or restart files read by the read_data or read_restart commands:\n\n* \\(K\\) (energy/distance\\^2)\n* \\(d_0\\) (distance)\n\n----------\n", + "restrictions": "This improper style can only be used if LAMMPS was built with the\nYAFF package. See the [Build package ](https://docs.lammps.org/Build_package.html) doc\npage for more info.\n", + "related": "[improper_coeff ](https://docs.lammps.org/improper_coeff.html)\n" }, { "command": [ - "compute com" + "fix wall/region" ], "syntax": [ - "compute ID group-ID com" + "fix ID group-ID wall/region region-ID style args ... cutoff" ], "args": [ [ { - "arg": "compute", + "arg": "fix", "type": 1, "choices": [] }, @@ -41235,145 +40719,139 @@ export const command_docs = [ "choices": [] }, { - "arg": "com", + "arg": "wall/region", "type": 1, "choices": [] - } - ] - ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* com = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all com\n```\n", - "html_filename": "compute_com.html", - "short_description": "Define a computation that calculates the center-of-mass of the group\nof atoms, including all effects due to atoms passing through periodic\nboundaries", - "description": "Define a computation that calculates the center-of-mass of the group\nof atoms, including all effects due to atoms passing through periodic\nboundaries.\n\nA vector of three quantities is calculated by this compute, which\nare the \\((x,y,z)\\) coordinates of the center of mass.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >The coordinates of an atom contribute to the center-of-mass in\n > \"unwrapped\" form, by using the image flags associated with each atom.\n > See the [dump custom ](https://docs.lammps.org/dump.html) command for a discussion of\n > \"unwrapped\" coordinates. See the Atoms section of the\n > [read_data ](https://docs.lammps.org/read_data.html) command for a discussion of image flags and\n > how they are set for each atom. You can reset the image flags\n > (e.g., to 0) before invoking this compute by using the\n > [set image ](https://docs.lammps.org/set.html) command. \n > \n\n #### Output info\n\nThis compute calculates a global vector of length 3, which can be\naccessed by indices 1--3 by any command that uses global vector values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe vector values are \"intensive\". The vector values will be in\ndistance [units ](https://docs.lammps.org/units.html).\n", - "restrictions": " none\n", - "related": "[compute com/chunk ](https://docs.lammps.org/compute_com_chunk.html)\n" -}, -{ - "command": [ - "partition" - ], - "syntax": [ - "partition style N command ..." - ], - "args": [ - [ + }, { - "arg": "partition", - "type": 1, + "arg": "region-ID", + "type": 2, "choices": [] }, { - "arg": "no", + "arg": "morse", "type": 3, "choices": [ - "yes", - "no" + "lj93", + "lj126", + "lj1043", + "colloid", + "harmonic", + "morse" ] }, { - "arg": "N", + "arg": "args", "type": 2, "choices": [] }, { - "arg": "command", + "arg": "cutoff", "type": 2, "choices": [] } ] ], - "parameters": "* style = yes or no\n* N = partition number (see asterisk form below)\n* command = any LAMMPS command \n", - "examples": "\n```lmps\npartition yes 1 processors 4 10 6\npartition no 5 print \"Active partition\"\npartition yes *5 fix all nve\npartition yes 6* fix all nvt temp 1.0 1.0 0.1\n```\n", - "html_filename": "partition.html", - "short_description": "This command invokes the specified command on a subset of the\npartitions of processors you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html)", - "description": "This command invokes the specified command on a subset of the\npartitions of processors you have defined via the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\nNormally, every input script command in your script is invoked by\nevery partition. This behavior can be modified by defining world- or\nuniverse-style [variables ](https://docs.lammps.org/variable.html) that have different values\nfor each partition. This mechanism can be used to cause your script\nto jump to different input script files on different partitions, if\nsuch a variable is used in a [jump ](https://docs.lammps.org/jump.html) command.\n\nThe \"partition\" command is another mechanism for having as input\nscript operate differently on different partitions. It is basically a\nprefix on any LAMMPS command. The command will only be invoked on\nthe partition(s) specified by the *style* and *N* arguments.\n\nIf the *style* is *yes*, the command will be invoked on any partition\nwhich matches the *N* argument. If the *style* is *no* the command\nwill be invoked on all the partitions which do not match the Np\nargument.\n\nPartitions are numbered from 1 to Np, where Np is the number of\npartitions specified by the [-partition command-line switch ](https://docs.lammps.org/Run_options.html).\n\n*N* can be specified in one of two ways. An explicit numeric value\ncan be used, as in the first example above. Or a wild-card asterisk can\nbe used to span a range of partition numbers. This takes the form \"\\*\"\nor \"\\*n\" or \"n\\*\" or \"m\\*n\". An asterisk with no numeric values means\nall partitions from 1 to Np. A leading asterisk means all partitions\nfrom 1 to n (inclusive). A trailing asterisk means all partitions\nfrom n to Np (inclusive). A middle asterisk means all partitions from\nm to n (inclusive).\n\nThis command can be useful for the \"run_style verlet/split\" command\nwhich imposed requirements on how the [processors ](https://docs.lammps.org/processors.html)\ncommand lays out a 3d grid of processors in each of 2 partitions.\n", + "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* wall/region = style name of this fix command\n* region-ID = region whose boundary will act as wall\n* style = lj93 or lj126 or lj1043 or colloid or harmonic or morse\n* args for styles lj93 or lj126 or lj1043 or colloid or harmonic = \n *         epsilon = strength factor for wall-particle interaction (energy or energy/distance\\^2 units) \n *         sigma = size factor for wall-particle interaction (distance units) \n* args for style morse = \n *         D_0 = depth of the potential (energy units) \n *         alpha = width parameter (1/distance units) \n *         r_0 = distance of the potential minimum from wall position (distance units) \n* cutoff = distance from wall at which wall-particle interaction is cut off (distance units) \n", + "examples": "\n```lmps\nfix wall all wall/region mySphere lj93 1.0 1.0 2.5\nfix wall all wall/region mySphere harmonic 1.0 0.0 2.5\nfix wall all wall/region box_top morse 1.0 1.0 1.5 3.0\n```\n", + "html_filename": "fix_wall_region.html", + "short_description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding wall which interacts with nearby particles according to\nthe specified style", + "description": "Treat the surface of the geometric region defined by the *region-ID*\nas a bounding wall which interacts with nearby particles according to\nthe specified style.\n\nThe distance between a particle and the surface is the distance to the\nnearest point on the surface and the force the wall exerts on the\nparticle is along the direction between that point and the particle,\nwhich is the direction normal to the surface at that point. Note that\nif the region surface is comprised of multiple \"faces\", then each face\ncan exert a force on the particle if it is close enough. E.g. for\n[region_style block ](https://docs.lammps.org/region.html), a particle in the interior, near a\ncorner of the block, could feel wall forces from 1, 2, or 3 faces of\nthe block.\n\nRegions are defined using the [region ](https://docs.lammps.org/region.html) command. Note that\nthe region volume can be interior or exterior to the bounding surface,\nwhich will determine in which direction the surface interacts with\nparticles, i.e. the direction of the surface normal. The surface of\nthe region only exerts forces on particles \"inside\" the region; if a\nparticle is \"outside\" the region it will generate an error, because it\nhas moved through the wall.\n\nRegions can either be primitive shapes (block, sphere, cylinder, etc)\nor combinations of primitive shapes specified via the *union* or\n*intersect* region styles. These latter styles can be used to\nconstruct particle containers with complex shapes. Regions can also\nchange over time via the [region ](https://docs.lammps.org/region.html) command keywords (move)\nand *rotate* . If such a region is used with this fix, then the of\nregion surface will move over time in the corresponding manner.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >As discussed on the [region ](https://docs.lammps.org/region.html) command doc page,\n > regions in LAMMPS do not get wrapped across periodic boundaries. It\n > is up to you to ensure that periodic or non-periodic boundaries are\n > specified appropriately via the [boundary ](https://docs.lammps.org/boundary.html) command when\n > using a region as a wall that bounds particle motion. This also means\n > that if you embed a region in your simulation box and want it to\n > repulse particles from its surface (using the \"side out\" option in the\n > [region ](https://docs.lammps.org/region.html) command), that its repulsive force will not be\n > felt across a periodic boundary. \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >For primitive regions with sharp corners and/or edges (e.g. a\n > block or cylinder), wall/particle forces are computed accurately for\n > both interior and exterior regions. For *union* and *intersect*\n > regions, additional sharp corners and edges may be present due to the\n > intersection of the surfaces of 2 or more primitive volumes. These\n > corners and edges can be of two types: concave or convex. Concave\n > points/edges are like the corners of a cube as seen by particles in\n > the interior of a cube. Wall/particle forces around these features\n > are computed correctly. Convex points/edges are like the corners of a\n > cube as seen by particles exterior to the cube, i.e. the points jut\n > into the volume where particles are present. LAMMPS does NOT compute\n > the location of these convex points directly, and hence wall/particle\n > forces in the cutoff volume around these points suffer from\n > inaccuracies. The basic problem is that the outward normal of the\n > surface is not continuous at these points. This can cause particles\n > to feel no force (they don't \"see\" the wall) when in one location,\n > then move a distance epsilon, and suddenly feel a large force because\n > they now \"see\" the wall. In a worst-case scenario, this can blow\n > particles out of the simulation box. Thus, as a general rule you\n > should not use the fix wall/gran/region command with *union* or\n > *interesect* regions that have convex points or edges resulting from\n > the union/intersection (convex points/edges in the union/intersection\n > due to a single sub-region are still OK). \n > \n\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Similarly, you should not define *union* or *intersert* regions\n > for use with this command that share an overlapping common face that\n > is part of the overall outer boundary (interior boundary is OK), even\n > if the face is smooth. E.g. two regions of style block in a *union*\n > region, where the two blocks overlap on one or more of their faces.\n > This is because LAMMPS discards points that are part of multiple\n > sub-regions when calculating wall/particle interactions, to avoid\n > double-counting the interaction. Having two coincident faces could\n > cause the face to become invisible to the particles. The solution is\n > to make the two faces differ by epsilon in their position. \n > \n\nThe energy of wall-particle interactions depends on the specified\nstyle.\n\nFor style *lj93*, the energy E is given by the 9/3 potential:\n\\[.. math::\\]\n E = \\epsilon \\left[ \\frac{2}{15} \\left(\\frac{\\sigma}{r}\\right)^{9} -\n \\left(\\frac{\\sigma}{r}\\right)^3 \\right]\n \\qquad r < r_c\n\nFor style *lj126*, the energy E is given by the 12/6 potential:\n\\[.. math::\\]\n E = 4 \\epsilon \\left[ \\left(\\frac{\\sigma}{r}\\right)^{12} -\n \\left(\\frac{\\sigma}{r}\\right)^6 \\right]\n \\qquad r < r_c\n\nFor style *wall/lj1043*, the energy E is given by the 10/4/3 potential:\n\\[.. math::\\]\n E = 2 \\pi \\epsilon \\left[ \\frac{2}{5} \\left(\\frac{\\sigma}{r}\\right)^{10} -\n \\left(\\frac{\\sigma}{r}\\right)^4 -\n \\frac{\\sqrt(2)\\sigma^3}{3\\left(r+\\left(0.61/\\sqrt(2)\\right)\\sigma\\right)^3}\\right]\n \\qquad r < r_c\n\nFor style *colloid*, the energy E is given by an integrated form of\nthe [pair_style colloid ](https://docs.lammps.org/pair_colloid.html) potential:\n\\[\\begin{align*} \n E = & \\epsilon \\left[ \\frac{\\sigma^{6}}{7560}\n \\left(\\frac{6R-D}{D^{7}} + \\frac{D+8R}{(D+2R)^{7}} \\right) \\right. \\\\\n & \\left. - \\frac{1}{6} \\left(\\frac{2R(D+R) + D(D+2R)\n \\left[ \\ln D - \\ln (D+2R) \\right]}{D(D+2R)} \\right) \\right] \\qquad r < r_c \\end{align*} \\]\nFor style *wall/harmonic*, the energy E is given by a harmonic spring\npotential (the distance parameter is ignored):\n\\[\n E = \\epsilon \\quad (r - r_c)^2 \\qquad r < r_c\\]\nFor style *wall/morse*, the energy E is given by the Morse potential:\n\\[\n E = D_0 \\left[ e^{- 2 \\alpha (r - r_0)} - 2 e^{- \\alpha (r - r_0)} \\right]\n \\qquad r < r_c\\]\nUnlike other styles, this requires three parameters (\\(D_0\\),\n\\(\\alpha\\), and \\(r_0\\) in this order) instead of two like\nfor the other wall styles.\n\nIn all cases, *r* is the distance from the particle to the region\nsurface, and Rc is the *cutoff* distance at which the particle and\nsurface no longer interact. The cutoff is always the last argument.\nThe energy of the wall potential is shifted so that the wall-particle\ninteraction energy is 0.0 at the cutoff distance.\n\nFor a full description of these wall styles, see fix_style\n[wall ](https://docs.lammps.org/fix_wall.html)\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nNo information about this fix is written to [binary restart files ](https://docs.lammps.org/restart.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *energy* option is supported by\nthis fix to add the energy of interaction between atoms and the region\nwall to the global potential energy of the system as part of\n[thermodynamic output ](https://docs.lammps.org/thermo_style.html). The default setting for\nthis fix is [fix_modify energy no ](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *virial* option is supported by\nthis fix to add the contribution due to the interaction between atoms\nand the region wall to both the global pressure and per-atom stress of\nthe system via the [compute pressure ](https://docs.lammps.org/compute_pressure.html) and\n[compute stress/atom ](https://docs.lammps.org/compute_stress_atom.html) commands. The former\ncan be accessed by [thermodynamic output ](https://docs.lammps.org/thermo_style.html). The\ndefault setting for this fix is [fix_modify virial no](https://docs.lammps.org/fix_modify.html).\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *respa* option is supported by this\nfix. This allows to set at which level of the [r-RESPA ](https://docs.lammps.org/run_style.html)\nintegrator the fix is adding its forces. Default is the outermost level.\n\nThis fix computes a global scalar energy and a global 3-length vector\nof forces, which can be accessed by various [output commands](https://docs.lammps.org/Howto_output.html). The scalar energy is the sum of energy interactions\nfor all particles interacting with the wall represented by the region\nsurface. The 3 vector quantities are the x,y,z components of the\ntotal force acting on the wall due to the particles. The scalar and\nvector values calculated by this fix are \"extensive\".\n\nNo parameter of this fix can be used with the *start/stop* keywords of\nthe [run ](https://docs.lammps.org/run.html) command.\n\nThe forces due to this fix are imposed during an energy minimization,\ninvoked by the [minimize ](https://docs.lammps.org/minimize.html) command.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >If you want the atom/wall interaction energy to be included in the\n > total potential energy of the system (the quantity being\n > minimized), you MUST enable the [fix_modify ](https://docs.lammps.org/fix_modify.html)\n > *energy* option for this fix. \n > \n\n", "restrictions": " none\n", - "related": "[run_style verlet/split ](https://docs.lammps.org/run_style.html)\n" + "related": "[fix wall/lj93 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/lj126 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/lj1043 ](https://docs.lammps.org/fix_wall.html),\n[fix wall/colloid ](https://docs.lammps.org/fix_wall.html),\n[fix wall/harmonic ](https://docs.lammps.org/fix_wall.html),\n[fix wall/gran ](https://docs.lammps.org/fix_wall_gran.html)\n" }, { "command": [ - "compute temp/deform/eff" + "pair_style local/density" ], "syntax": [ - "compute ID group-ID temp/deform/eff" + "pair_style style arg" ], "args": [ [ { - "arg": "compute", + "arg": "pair_style", "type": 1, "choices": [] }, { - "arg": "ID", + "arg": "style", "type": 2, "choices": [] }, { - "arg": "group-ID", + "arg": "arg", "type": 2, "choices": [] - }, - { - "arg": "temp/deform/eff", - "type": 1, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* temp/deform/eff = style name of this compute command \n", - "examples": "\n```lmps\ncompute myTemp all temp/deform/eff\n```\n", - "html_filename": "compute_temp_deform_eff.html", - "short_description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation", - "description": "Define a computation that calculates the temperature of a group of\nnuclei and electrons in the [electron force field ](https://docs.lammps.org/pair_eff.html)\nmodel, after subtracting out a streaming velocity induced by the\nsimulation box changing size and/or shape, for example in a\nnon-equilibrium MD (NEMD) simulation. The size/shape change is\ninduced by use of the [fix deform ](https://docs.lammps.org/fix_deform.html) command. A\ncompute of this style is created by the [fix nvt/sllod/eff](https://docs.lammps.org/fix_nvt_sllod_eff.html) command to compute the thermal temperature of\natoms for thermostatting purposes. A compute of this style can also\nbe used by any command that computes a temperature (e.g.,\n[thermo_modify ](https://docs.lammps.org/thermo_modify.html), [fix npt/eff](https://docs.lammps.org/fix_nh_eff.html)).\n\nThe calculation performed by this compute is exactly like that\ndescribed by the [compute temp/deform ](https://docs.lammps.org/compute_temp_deform.html)\ncommand, except that the formulas for the temperature (scalar) and\ndiagonal components of the symmetric tensor (vector) include the\nradial electron velocity contributions, as discussed by the\n[compute temp/eff ](https://docs.lammps.org/compute_temp_eff.html) command. Note that only\nthe translational degrees of freedom for each nuclei or electron are\naffected by the streaming velocity adjustment. The radial velocity\ncomponent of the electrons is not affected.\n\n #### Output info\n\nThis compute calculates a global scalar (the temperature) and a global\nvector of length 6 (symmetric tensor), which can be accessed by\nindices 1--6. These values can be used by any command that uses\nglobal scalar or vector values from a compute as input. See the\n[Howto output ](https://docs.lammps.org/Howto_output.html) page for an overview of LAMMPS\noutput options.\n\nThe scalar value calculated by this compute is \"intensive\". The\nvector values are \"extensive\".\n\nThe scalar value is in temperature [units ](https://docs.lammps.org/units.html). The vector\nvalues are in energy [units ](https://docs.lammps.org/units.html).\n", - "restrictions": "This compute is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[compute temp/ramp ](https://docs.lammps.org/compute_temp_ramp.html), [fix deform ](https://docs.lammps.org/fix_deform.html),\n[fix nvt/sllod/eff ](https://docs.lammps.org/fix_nvt_sllod_eff.html)\n" + "parameters": "* style = local/density\n* arg = name of file containing tabulated values of local density and the potential \n", + "examples": "\n```lmps\npair_style local/density benzene_water.localdensity.table\n\npair_style hybrid/overlay table spline 500 local/density\npair_coeff * * local/density benzene_water.localdensity.table\n```\n", + "html_filename": "pair_local_density.html", + "short_description": "The local density (LD) potential is a mean-field manybody potential,\nand, in some way, a generalization of embedded atom models (EAM)", + "description": "The local density (LD) potential is a mean-field manybody potential,\nand, in some way, a generalization of embedded atom models (EAM). The\nname \"local density potential\" arises from the fact that it assigns an\nenergy to an atom depending on the number of neighboring atoms of a\ngiven type around it within a predefined spherical volume (i.e., within\nthe cutoff). The bottom-up coarse-graining (CG) literature suggests\nthat such potentials can be widely useful in capturing effective\nmultibody forces in a computationally efficient manner and thus improve\nthe quality of CG models of implicit solvation **Sanyal1** and phase-segregation in liquid mixtures **Sanyal2**, and provide guidelines to determine the extent of manybody\ncorrelations present in a CG model **Rosenberger**.\nThe LD potential in LAMMPS is primarily intended to be used as a\ncorrective potential over traditional pair potentials in bottom-up CG\nmodels via [hybrid/overlay pair style ](https://docs.lammps.org/pair_hybrid.html) with other\nexplicit pair interaction terms (e.g., tabulated, Lennard-Jones, Morse\netc.). Because the LD potential is not a pair potential per se, it is\nimplemented simply as a single auxiliary file with all specifications\nthat will be read upon initialization.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Thus when used as the only interaction in the system, there is no\n > corresponding pair_coeff command and when used with other pair styles using the\n > hybrid/overlay option, the corresponding pair_coeff command must be supplied\n > \\* \\* as placeholders for the atom types. \n > \n\n----------\n\n**System with a single CG atom type:**\n\nA system of a single atom type (e.g., LJ argon) with a single local density (LD)\npotential would have an energy given by:\n\\[\n U_{LD} = \\sum_i F(\\rho_i)\\]\nwhere \\(\\rho_i\\) is the LD at atom *i* and \\(F(\\rho)\\) is\nsimilar in spirit to the embedding function used in EAM potentials. The\nLD at atom *i* is given by the sum\n\\[\n \\rho_i = \\sum_{j \\neq i} \\varphi(r_{ij})\\]\nwhere \\(\\varphi\\) is an indicator function that is one at r=0 and\nzero beyond a cutoff distance R2. The choice of the functional form of\n\\(\\varphi\\) is somewhat arbitrary, but the following piecewise cubic\nfunction has proven sufficiently general: **Sanyal1**,\n**Sanyal2** **Rosenberger**\n\\[\\begin{align*} \n \\varphi(r) =\n \\begin{cases}\n 1 & r \\le R_1 \\\\\n c_0 + c_2r^2 + c_4r^4 + c_6r^6 & r \\in (R_1, R_2) \\\\\n 0 & r \\ge R_2\n \\end{cases} \\end{align*} \\]\nThe constants *c* are chosen so that the indicator function smoothly\ninterpolates between 1 and 0 between the distances R1 and R2, which are\ncalled the inner and outer cutoffs, respectively. Thus phi satisfies\nphi(R1) = 1, phi(R2) = dphi/dr @ (r=R1) = dphi/dr @ (r=R2) = 0. The embedding\nfunction F(rho) may or may not have a closed-form expression. To maintain\ngenerality, it is practically represented with a spline-interpolated table\nover a predetermined range of rho. Outside of that range it simply adopts zero\nvalues at the endpoints.\n\nIt can be shown that the total force between two atoms due to the LD potential\ntakes the form of a pair force, which motivates its designation as a LAMMPS\npair style. Please see **Sanyal1** for details of the derivation.\n\n----------\n\n**Systems with arbitrary numbers of atom types:**\n\nThe potential is easily generalized to systems involving multiple atom types:\n\\[\n U_{LD} = \\sum_i a_\\alpha F(\\rho_i)\\]\nwith the LD expressed as\n\\[\n \\rho_i = \\sum_{j \\neq i} b_\\beta \\varphi(r_{ij})\\]\nwhere \\(\\alpha\\) gives the type of atom *i*, \\(\\beta\\) the\ntype of atom *j*, and the coefficients *a* and *b* filter for atom\ntypes as specified by the user. *a* is called the central atom filter as\nit determines to which atoms the potential applies; \\(a_{\\alpha} =\n1\\) if the LD potential applies to atom type \\(\\alpha\\) else zero. On the\nother hand, *b* is called the neighbor atom filter because it specifies\nwhich atom types to use in the calculation of the LD; \\(b_{\\beta} =\n1\\) if atom type \\(\\beta\\) contributes to the LD and zero otherwise.\n\n> ### ![Note](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIyNiIgd2lkdGg9IjI2IiB5PSItMSIgeD0iLTEiLz4KIDwvZz4KIDxnPgogIDx0aXRsZT5MYXllciAxPC90aXRsZT4KICA8ZyBpZD0ic3ZnXzEiPgogICA8cGF0aCBmaWxsPSIjNTZhYWZmIiBpZD0ic3ZnXzIiIGQ9Im0xMi4wMDAwMDEsNC4xOTQ0MDVjNS40NjgxODQsMCA5LjkwMjg3Nyw0LjQzNDY5OCA5LjkwMjg3Nyw5LjkwMjg4YzAsNS40NjgxOCAtNC40MzQ2OTIsOS45MDI3MTYgLTkuOTAyODc3LDkuOTAyNzE2Yy01LjQ2ODM0MywwLjAwMDE2NCAtOS45MDI4OCwtNC40MzQ1MzYgLTkuOTAyODgsLTkuOTAyNzE2YzAsLTUuNDY4MTgyIDQuNDM0NTM2LC05LjkwMjg4IDkuOTAyODgsLTkuOTAyODhsMCwwem0yLjg5ODAxLDE1LjgzMDI2MWwtNS43OTYwMjEsMGwwLC0wLjk3NTYxNmwxLjA4OTA5MiwwbDAsLTUuOTU3MjAzbC0xLjA4OTA5MiwwbDAsLTAuNzc2MjQybDIuNzA5MTA5LDBjMC42ODQyMDcsMCAxLjM1NzQ1NSwtMC4wODIyMDIgMi4wMjI2NDQsLTAuMjQ5OTkxbDAsNi45ODM1OTNsMS4wNjQ0MjgsMGwwLDAuOTc1NDZsLTAuMDAwMTYsMHptLTIuNTA4MTE3LC0xMi40MzI5MTdjMC40NDg4ODUsMCAwLjgwMTg2OSwwLjEyOTc1IDEuMDU5MTEzLDAuMzg2MTg4YzAuMjU0NTAzLDAuMjU2Mjc1IDAuMzgzMTIzLDAuNjA3ODA4IDAuMzgzMTIzLDEuMDYwNzIyYzAsMC40NTkwNDEgLTAuMjE4ODgyLDAuODY3MzA5IC0wLjY1OTcwOCwxLjIyNTEyN2MtMC40NDM0MDYsMC4zNTc4MiAtMC45NTc1NjgsMC41MzgwMTcgLTEuNTQzNjE4LDAuNTM4MDE3Yy0wLjQ0MDUwNCwwIC0wLjc5MDU4NiwtMC4xMjMzMDIgLTEuMDU4Nzg5LC0wLjM3MDIzYy0wLjI2ODM2NCwtMC4yNDk5OSAtMC40MDI0NjUsLTAuNTczMTU0IC0wLjQwMjQ2NSwtMC45NzUxMzdjMCwtMC41MDY1ODggMC4yMTg4ODIsLTAuOTQzMzg0IDAuNjU0MjI3LC0xLjMxMzkzNmMwLjQzNTE4NiwtMC4zNjY4NDUgMC45NTc3MjksLTAuNTUwNzUyIDEuNTY4MTE3LC0wLjU1MDc1MmwwLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDwvZz4KIDwvZz4KPC9zdmc+) Note: \n >Note that the potentials need not be symmetric with respect to atom\n > types, which is the reason for two distinct sets of coefficients *a*\n > and *b* . An atom type may contribute to the LD but not the\n > potential, or to the potential but not the LD. Such decisions are\n > made by the user and should (ideally) be motivated on physical\n > grounds for the problem at hand. \n > \n\n----------\n\n**General form for implementation in LAMMPS:**\n\nOf course, a system with many atom types may have many different possible LD\npotentials, each with their own atom type filters, cutoffs, and embedding\nfunctions. The most general form of this potential as implemented in the\npair_style local/density is:\n\\[\n U_{LD} = \\sum_k U_{LD}^{(k)} = \\sum_i \\left[ \\sum_k a_\\alpha^{(k)} F^{(k)} \\left(\\rho_i^{(k)}\\right) \\right]\\]\nwhere, *k* is an index that spans the (arbitrary) number of applied LD\npotentials N_LD. Each LD is calculated as before with:\n\\[\n \\rho_i^{(k)} = \\sum_j b_\\beta^{(k)} \\varphi^{(k)} (r_{ij})\\]\nThe superscript on the indicator function phi simply indicates that it is\nassociated with specific values of the cutoff distances R1(k) and R2(k). In\nsummary, there may be N_LD distinct LD potentials. With each potential type (k),\none must specify:\n\n* the inner and outer cutoffs as R1 and R2\n* the central type filter a(k), where k = 1,2,...N_LD\n* the neighbor type filter b(k), where k = 1,2,...N_LD\n* the LD potential function F(k)(rho), typically as a table that is later spline-interpolated\n\n----------\n\n**Tabulated input file format:**\n\n```\nLine 1: comment or blank (ignored)\nLine 2: comment or blank (ignored)\nLine 3: N_LD N_rho (# of LD potentials and # of tabulated values, single space separated)\nLine 4: blank (ignored)\nLine 5: R1(k) R2(k) (lower and upper cutoffs, single space separated)\nLine 6: central-types (central atom types, single space separated)\nLine 7: neighbor-types (neighbor atom types single space separated)\nLine 8: rho_min rho_max drho (min, max and diff. in tabulated rho values, single space separated)\nLine 9: F(k)(rho_min + 0.drho)\nLine 10: F(k)(rho_min + 1.drho)\nLine 11: F(k)(rho_min + 2.drho)\n...\nLine 9+N_rho: F(k)(rho_min + N_rho . drho)\nLine 10+N_rho: blank (ignored)\n\nBlock 2\n\nBlock 3\n\nBlock N_LD\n```\nLines 5 to 9+N_rho constitute the first block. Thus the input file is separated\n(by blank lines) into N_LD blocks each representing a separate LD potential and\neach specifying its own upper and lower cutoffs, central and neighbor atoms,\nand potential. In general, blank lines anywhere are ignored.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\nThis pair style does not support automatic mixing. For atom type pairs\n\\(\\alpha\\), \\(\\beta\\) and \\(\\alpha\\) != \\(\\beta\\), even\nif LD potentials of type (\\(\\alpha\\), \\(\\alpha\\)) and\n(\\(\\beta\\), \\(\\beta\\)) are provided, you will need to explicitly\nprovide LD potential types (\\(\\alpha\\), \\(\\beta\\)) and\n(\\(\\beta\\), \\(\\alpha\\)) if need be (Here, the notation\n(\\(\\alpha\\), \\(\\beta\\)) means that \\(\\alpha\\) is the central\natom to which the LD potential is applied and \\(\\beta\\) is the\nneighbor atom which contributes to the LD potential on \\(\\alpha\\)).\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift, table, and tail options.\n\nThe local/density pair style does not write its information to [binary restart files ](https://docs.lammps.org/restart.html), since it is stored in tabulated potential files.\nThus, you need to re-specify the pair_style and pair_coeff commands in\nan input script that reads a restart file.\n\n----------\n\n \n \n**(Sanyal2)** Sanyal and Shell, Journal of Chemical Physics, 2016, 145 (3), 034109. \n \n**(Rosenberger)** Rosenberger, Sanyal, Shell and van der Vegt, Journal of Chemical Physics, 2019, 151 (4), 044111. \n \n \n \n**(Sanyal2)** Sanyal and Shell, Journal of Chemical Physics, 2016, 145 (3), 034109. \n ", + "restrictions": "The local/density pair style is a part of the MANYBODY package. It is\nonly enabled if LAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" }, { "command": [ - "pair_style exp6/rx", - "pair_style exp6/rx/kk" + "fix_modify AtC unfix_flux" ], "syntax": [ - "pair_style exp6/rx cutoff ..." + "fix_modify unfix_flux " ], "args": [ [ { - "arg": "pair_style", + "arg": "fix_modify", "type": 1, "choices": [] }, { - "arg": "exp6/rx", - "type": 3, - "choices": [ - "exp6/rx", - "exp6/rx/kk" - ] + "arg": "", + "type": 2, + "choices": [] }, { - "arg": "cutoff", + "arg": "unfix_flux", + "type": 1, + "choices": [] + }, + { + "arg": "", + "type": 2, + "choices": [] + }, + { + "arg": "", "type": 2, "choices": [] + }, + { + "arg": "", + "type": 3, + "choices": [ + "value", + "function" + ] } ] ], - "parameters": "* cutoff = global cutoff for DPD interactions (distance units)\n* weighting = fractional or molecular (optional) \n", - "examples": "\n```lmps\npair_style exp6/rx 10.0\npair_style exp6/rx 10.0 fractional\npair_style exp6/rx 10.0 molecular\npair_coeff * * exp6.params h2o h2o exponent 1.0 1.0 10.0\npair_coeff * * exp6.params h2o 1fluid exponent 1.0 1.0 10.0\npair_coeff * * exp6.params 1fluid 1fluid exponent 1.0 1.0 10.0\npair_coeff * * exp6.params 1fluid 1fluid none 10.0\npair_coeff * * exp6.params 1fluid 1fluid polynomial filename 10.0\n```\n", - "html_filename": "pair_exp6_rx.html", - "short_description": "Style *exp6/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command", - "description": "Style *exp6/rx* is used in reaction DPD simulations, where the\ncoarse-grained (CG) particles are composed of *m* species whose\nreaction rate kinetics are determined from a set of *n* reaction rate\nequations through the [fix rx ](https://docs.lammps.org/fix_rx.html) command. The species of\none CG particle can interact with a species in a neighboring CG\nparticle through a site-site interaction potential model. The\n*exp6/rx* style computes an exponential-6 potential given by\n\\[\n U_{ij}(r) = \\frac{\\epsilon}{\\alpha-6}\\{6\\exp[\\alpha(1-\\frac{r_{ij}}{R_{m}})]-\\alpha(\\frac{R_{m}}{r_{ij}})^6\\}\\]\nwhere the \\(\\epsilon\\) parameter determines the depth of the\npotential minimum located at \\(R_m\\), and \\(\\alpha\\) determines\nthe softness of the repulsion.\n\nThe coefficients must be defined for each species in a given particle\ntype via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, where the first argument is the filename that includes the\nexponential-6 parameters for each species. The file includes the\nspecies tag followed by the \\(\\alpha, \\epsilon\\) and \\(R_m\\)\nparameters. The format of the file is described below.\n\nThe second and third arguments specify the site-site interaction\npotential between two species contained within two different\nparticles. The species tags must either correspond to the species\ndefined in the reaction kinetics files specified with the [fix rx ](https://docs.lammps.org/fix_rx.html) command or they must correspond to the tag \"1fluid\",\nsignifying interaction with a product species mixture determined\nthrough a one-fluid approximation. The interaction potential is\nweighted by the geometric average of either the mole fraction concentrations\nor the number of molecules associated with the interacting coarse-grained\nparticles (see the *fractional* or *molecular* weighting pair style options).\nThe coarse-grained potential is stored before and after the\nreaction kinetics solver is applied, where the difference is defined\nto be the internal chemical energy (uChem).\n\nThe fourth argument specifies the type of scaling that will be used\nto scale the EXP-6 parameters as reactions occur. Currently, there\nare three scaling options: *exponent*, *polynomial* and *none* .\n\nExponent scaling requires two additional arguments for scaling\nthe \\(R_m\\) and \\(\\epsilon\\) parameters, respectively. The scaling factor\nis computed by phi\\^exponent, where phi is the number of molecules\nrepresented by the coarse-grain particle and exponent is specified\nas a pair coefficient argument for \\(R_m\\) and \\(\\epsilon\\), respectively.\nThe \\(R_m\\) and \\(\\epsilon\\) parameters are multiplied by the scaling\nfactor to give the scaled interaction parameters for the CG particle.\n\nPolynomial scaling requires a filename to be specified as a pair\ncoeff argument. The file contains the coefficients to a fifth order\npolynomial for the \\(\\alpha\\), \\(\\epsilon\\) and \\(R_m\\) parameters that depend\nupon phi (the number of molecules represented by the CG particle).\nThe format of a polynomial file is provided below.\n\nThe *none* option to the scaling does not have any additional pair coeff\narguments. This is equivalent to specifying the *exponent* option with\n\\(R_m\\) and \\(\\epsilon\\) exponents of 0.0 and 0.0, respectively.\n\nThe final argument specifies the interaction cutoff (optional).\n\n----------\n\nThe format of a tabulated file is as follows (without the\nparenthesized comments):\n\n```\n# exponential-6 parameters for various species (one or more comment or blank lines)\n\nh2o exp6 11.00 0.02 3.50 (species, exp6, alpha, Rm, epsilon)\nno2 exp6 13.60 0.01 3.70\n...\nco2 exp6 13.00 0.03 3.20\n```\nThe format of the polynomial scaling file as follows (without the\nparenthesized comments):\n\n```\n# POLYNOMIAL FILE (one or more comment or blank lines)\n\n# General Functional Form:\n# A\\*phi\\^5 + B\\*phi\\^4 + C\\*phi\\^3 + D\\*phi\\^2 + E\\*phi + F\n#\n# Parameter A B C D E F\n(blank)\nalpha 0.0000 0.00000 0.00008 0.04955 -0.73804 13.63201\nepsilon 0.0000 0.00478 -0.06283 0.24486 -0.33737 2.60097\nrm 0.0001 -0.00118 -0.00253 0.05812 -0.00509 1.50106\n```\nA section begins with a non-blank line whose first character is not a\n\"#\"; blank lines or lines starting with \"#\" can be used as comments\nbetween sections.\n\nFollowing a blank line, the next N lines list the species and their\ncorresponding parameters. The first argument is the species tag, the\nsecond argument is the exp6 tag, the third argument is the \\(\\alpha\\)\nparameter (energy units), the fourth argument is the \\(\\epsilon\\) parameter\n(energy-distance\\^6 units), and the fifth argument is the \\(R_m\\) parameter\n(distance units). If a species tag of \"1fluid\" is listed as a pair\ncoefficient, a one-fluid approximation is specified where a\nconcentration-dependent combination of the parameters is computed\nthrough the following equations:\n\\[\\begin{align*} \n R_{m}^{3} = & \\sum_{a}\\sum_{b} x_{a}x_{b}R_{m,ab}^{3} \\\\\n \\epsilon = & \\frac{1}{R_{m}^{3}}\\sum_{a}\\sum_{b} x_{a}x_{b}\\epsilon_{ab}R_{m,ab}^{3} \\\\\n \\alpha = & \\frac{1}{\\epsilon R_{m}^{3}}\\sum_{a}\\sum_{b} x_{a}x_{b}\\alpha_{ab}\\epsilon_{ab}R_{m,ab}^{3} \\end{align*} \\]\nwhere\n\\[\\begin{align*} \n \\epsilon_{ab} = & \\sqrt{\\epsilon_{a}\\epsilon_{b}} \\\\\n R_{m,ab} = & \\frac{R_{m,a}+R_{m,b}}{2} \\\\\n \\alpha_{ab} = & \\sqrt{\\alpha_{a}\\alpha_{b}} \\end{align*} \\]\nand \\(x_a\\) and \\(x_b\\) are the mole fractions of a and b, respectively, which\ncomprise the gas mixture.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift option\nfor the energy of the exp() and 1/r\\^6 portion of the pair interaction.\n\nThis style does not support the pair_modify tail option for adding long-range\ntail corrections to energy and pressure for the A,C terms in the\npair interaction.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n", - "restrictions": "This command is part of the DPD-REACT package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* AtC fixID = ID of [fix atc ](https://docs.lammps.org/fix_atc.html) instance\n* unfix_flux = name of the AtC sub-command\n* field = field kind name valid for type of physics: temperature or electron_temperature\n* face_set = name of set of element faces \n", + "examples": "\n```lmps\nfix_modify AtC unfix_flux temperature faceSet\n```\n", + "html_filename": "atc_unfix_flux.html", + "short_description": "Command for removing prescribed normal fluxes e.g", + "description": "Command for removing prescribed normal fluxes e.g. heat_flux, stress.\n", + "restrictions": "None.\n", + "related": "- :ref:`fix_modify AtC command overview `\n- [fix_modify AtC fix_flux ](https://docs.lammps.org/atc_fix_flux.html)\n" }, { "command": [ - "compute smd/tlsph/strain" + "compute ti" ], "syntax": [ - "compute ID group-ID smd/tlsph/strain" + "compute ID group ti keyword args ..." ], "args": [ [ @@ -41388,117 +40866,113 @@ export const command_docs = [ "choices": [] }, { - "arg": "group-ID", + "arg": "group", "type": 2, "choices": [] }, { - "arg": "smd/tlsph/strain", + "arg": "ti", "type": 1, "choices": [] + }, + { + "arg": "kspace", + "type": 3, + "choices": [ + "tail", + "kspace" + ] + }, + { + "arg": "args", + "type": 2, + "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* smd/tlsph/strain = style name of this compute command \n", - "examples": "\n```lmps\ncompute 1 all smd/tlsph/strain\n```\n", - "html_filename": "compute_smd_tlsph_strain.html", - "short_description": "Define a computation that calculates the Green-Lagrange strain tensor\nfor particles interacting via the Total-Lagrangian SPH pair style", - "description": "Define a computation that calculates the Green-Lagrange strain tensor\nfor particles interacting via the Total-Lagrangian SPH pair style.\n\nSee [this PDF guide ](https://docs.lammps.org/PDF/MACHDYN_LAMMPS_userguide.pdf) to using Smooth\nMach Dynamics in LAMMPS.\n\n #### Output info\n\nThis compute calculates a per-particle vector of vectors (tensors),\nwhich can be accessed by any command that uses per-particle values\nfrom a compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc\npage for an overview of LAMMPS output options.\n\nThe per-particle tensor values will be given dimensionless. See\n[units ](https://docs.lammps.org/units.html).\n\nThe per-particle vector has 6 entries, corresponding to the xx, yy,\nzz, xy, xz, yz components of the symmetric strain tensor.\n", - "restrictions": "This compute is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis quantity will be computed only for particles which interact with\nthe Total-Lagrangian SPH pair style.\n", - "related": "[smd/tlsph/strain/rate ](https://docs.lammps.org/compute_smd_tlsph_strain_rate.html),\n[smd/tlsph/stress ](https://docs.lammps.org/compute_smd_tlsph_stress.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* ti = style name of this compute command\n* one or more attribute/arg pairs may be appended\n* keyword = pair style (lj/cut, gauss, born, etc.) or tail or kspace \n *        pair style args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is energy scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n *        tail args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is energy tail correction scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n *        kspace args = atype v_name1 v_name2 \n         atype = atom type (see asterisk form below) \n         v_name1 = variable with name1 that is K-Space scale factor and function of lambda \n         v_name2 = variable with name2 that is derivative of v_name1 with respect to lambda \n", + "examples": "\n```lmps\ncompute 1 all ti lj/cut 1 v_lj v_dlj coul/long 2 v_c v_dc kspace 1 v_ks v_dks\ncompute 1 all ti lj/cut 1*3 v_lj v_dlj coul/long * v_c v_dc kspace * v_ks v_dks\n```\n", + "html_filename": "compute_ti.html", + "short_description": "Define a computation that calculates the derivative of the interaction\npotential with respect to *lambda*, the coupling parameter used in a\nthermodynamic integration", + "description": "Define a computation that calculates the derivative of the interaction\npotential with respect to *lambda*, the coupling parameter used in a\nthermodynamic integration. This derivative can be used to infer a\nfree energy difference resulting from an alchemical simulation, as\ndescribed in **Eike**.\n\nTypically this compute will be used in conjunction with the\n[fix adapt ](https://docs.lammps.org/fix_adapt.html) command which can perform alchemical\ntransformations by adjusting the strength of an interaction potential\nas a simulation runs, as defined by one or more\n[pair_style ](https://docs.lammps.org/pair_style.html) or [kspace_style ](https://docs.lammps.org/kspace_style.html)\ncommands. This scaling is done via a prefactor on the energy, forces,\nvirial calculated by the pair or \\(k\\)-space style. The prefactor is\noften a function of a *lambda* parameter which may be adjusted from 0 to 1\n(or vice versa) over the course of a [run ](https://docs.lammps.org/run.html).\nThe time-dependent adjustment is what the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand does.\n\nAssume that the unscaled energy of a pair_style or kspace_style is\ngiven by \\(U\\). Then the scaled energy is\n\\[\n U_s = f(\\lambda) U\\]\nwhere \\(f\\) is some function of \\(\\lambda\\). What this compute\ncalculates is\n\\[\n \\frac{dU_s}{d\\lambda} = U \\frac{df(\\lambda)}{d\\lambda}\n = \\frac{U_s}{f(\\lambda)} \\frac{df(\\lambda)}{d\\lambda},\\]\nwhich is the derivative of the system's scaled potential energy \\(U_s\\)\nwith respect to \\(\\lambda\\).\n\nTo perform this calculation, you provide one or more atom types as\n*atype* . The variable *atype* can be specified in one of two ways.\nAn explicit numeric value can be used, as in the first example above, or a\nwildcard asterisk can be used in place of or in conjunction with the\n*atype* argument to select multiple atom types. This takes the form\n\"\\*\" or \"\\*n\" or \"m\\*\" or \"m\\*n\". If \\(N\\) is the number of atom types,\nthen an asterisk with no numeric values means all types from 1 to \\(N\\).\nA leading asterisk means all types from 1 to n (inclusive). A trailing\nasterisk means all types from m to N (inclusive). A middle asterisk\nmeans all types from m to n (inclusive).\n\nYou also specify two functions, as [equal-style variables ](https://docs.lammps.org/variable.html).\nThe first is specified as *v_name1*, where *name1* is the name of the\nvariable, and is \\(f(\\lambda)\\) in the notation above. The second is\nspecified as *v_name2*, where *name2* is the name of the variable, and is\n\\(df(\\lambda)/d\\lambda\\) in the notation above (i.e., it is the analytic\nderivative of \\(f\\) with respect to \\(\\lambda\\)).\nNote that the *name1* variable is also typically given as an\nargument to the [fix adapt ](https://docs.lammps.org/fix_adapt.html) command.\n\nAn alchemical simulation may use several pair potentials together,\ninvoked via the [pair_style hybrid or hybrid/overlay ](https://docs.lammps.org/pair_hybrid.html)\ncommand. The total \\(dU_s/d\\lambda\\) for the overall system is calculated\nas the sum of each contributing term as listed by the keywords in the\n[compute ti ](https://docs.lammps.org/compute_ti.html) command. Individual pair potentials can be\nlisted, which will be sub-styles in the hybrid case. You can also include a\n\\(k\\)-space term via the *kspace* keyword. You can also include a pairwise\nlong-range tail correction to the energy via the *tail* keyword.\n\nFor each term, you can specify a different (or the same) scale factor\nby the two variables that you list. Again, these will typically\ncorrespond toe the scale factors applied to these various potentials\nand the \\(k\\)-space contribution via the [fix adapt ](https://docs.lammps.org/fix_adapt.html)\ncommand.\n\nMore details about the exact functional forms for the computation of\n\\(du/dl\\) can be found in the paper by **Eike**.\n\n----------\n\n #### Output info\n\nThis compute calculates a global scalar, namely \\(dU_s/d\\lambda\\). This\nvalue can be used by any command that uses a global scalar value from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nThe scalar value calculated by this compute is \"extensive\".\n\nThe scalar value will be in energy [units ](https://docs.lammps.org/units.html).\n\n**(Eike)** Eike and Maginn, Journal of Chemical Physics, 124, 164503 (2006). \n ", + "restrictions": "This compute is part of the EXTRA-COMPUTE package. It is only enabled if\nLAMMPS was built with that package. See the\n[Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", + "related": "[fix adapt ](https://docs.lammps.org/fix_adapt.html)\n" }, { "command": [ - "pair_style smd/hertz" + "compute saed" ], "syntax": [ - "pair_style smd/hertz scale_factor" + "compute ID group-ID saed lambda type1 type2 ... typeN keyword value ..." ], "args": [ [ { - "arg": "pair_style", + "arg": "compute", "type": 1, "choices": [] }, { - "arg": "smd/hertz", - "type": 1, + "arg": "ID", + "type": 2, "choices": [] }, { - "arg": "scale_factor", + "arg": "group-ID", "type": 2, "choices": [] - } - ] - ], - "parameters": "", - "examples": "\n```lmps\npair_style smd/hertz 1.0\npair_coeff 1 1 \n```\n", - "html_filename": "pair_smd_hertz.html", - "short_description": "The *smd/hertz* style calculates contact forces between SPH particles\nbelonging to different physical bodies", - "description": "The *smd/hertz* style calculates contact forces between SPH particles\nbelonging to different physical bodies.\n\nThe contact forces are calculated using a Hertz potential, which\nevaluates the overlap between two particles (whose spatial extents are\ndefined via its contact radius). The effect is that a particles\ncannot penetrate into each other. The parameter \nhas units of pressure and should equal roughly one half of the Young's\nmodulus (or bulk modulus in the case of fluids) of the material model\nassociated with the SPH particles.\n\nThe parameter *scale_factor* can be used to scale the particles'\ncontact radii. This can be useful to control how close particles can\napproach each other. Usually, *scale_factor* =1.0.\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nNo mixing is performed automatically. Currently, no part of MACHDYN\nsupports restarting nor minimization. rRESPA does not apply to this\npair style.\n\n----------\n", - "restrictions": "This fix is part of the MACHDYN package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" -}, -{ - "command": [ - "pair_style buck/long/coul/long", - "pair_style buck/long/coul/long/omp" - ], - "syntax": [ - "pair_style buck/long/coul/long flag_buck flag_coul cutoff (cutoff2)" - ], - "args": [ - [ + }, { - "arg": "pair_style", + "arg": "saed", "type": 1, "choices": [] }, { - "arg": "buck/long/coul/long", - "type": 3, - "choices": [ - "buck/long/coul/long", - "buck/long/coul/long/omp" - ] + "arg": "lambda", + "type": 2, + "choices": [] }, { - "arg": "cut", - "type": 3, - "choices": [ - "long", - "cut" - ] + "arg": "type1", + "type": 2, + "choices": [] }, { - "arg": "off", - "type": 3, - "choices": [ - "long", - "off" - ] + "arg": "type2", + "type": 2, + "choices": [] }, { - "arg": "cutoff", + "arg": "typeN", "type": 2, "choices": [] }, { - "arg": "(cutoff2)", + "arg": "echo", + "type": 3, + "choices": [ + "Kmax", + "Zone", + "dR_Ewald", + "c", + "manual", + "echo" + ] + }, + { + "arg": "value", "type": 2, "choices": [] } ] ], - "parameters": "* flag_buck = long or cut \n *        long = use Kspace long-range summation for the dispersion term 1/r\\^6 \n *        cut = use a cutoff \n* flag_coul = long or off \n *        long = use Kspace long-range summation for the Coulombic term 1/r \n *        off = omit the Coulombic term \n* cutoff = global cutoff for Buckingham (and Coulombic if only 1 cutoff) (distance units)\n* cutoff2 = global cutoff for Coulombic (optional) (distance units) \n", - "examples": "\n```lmps\npair_style buck/long/coul/long cut off 2.5\npair_style buck/long/coul/long cut long 2.5 4.0\npair_style buck/long/coul/long long long 4.0\npair_coeff * * 1 1\npair_coeff 1 1 1 3 4\n```\n", - "html_filename": "pair_buck_long.html", - "short_description": "The *buck/long/coul/long* style computes a Buckingham potential (exp/6\ninstead of Lennard-Jones 12/6) and Coulombic potential, given by\n\\[\\begin{align*} \n E = & A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c \\\\\n E = & \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c \\end{align*} \\]\n\\(r_c\\) is the cutoff", - "description": "The *buck/long/coul/long* style computes a Buckingham potential (exp/6\ninstead of Lennard-Jones 12/6) and Coulombic potential, given by\n\\[\\begin{align*} \n E = & A e^{-r / \\rho} - \\frac{C}{r^6} \\qquad r < r_c \\\\\n E = & \\frac{C q_i q_j}{\\epsilon r} \\qquad r < r_c \\end{align*} \\]\n\\(r_c\\) is the cutoff. If one cutoff is specified in the pair_style\ncommand, it is used for both the Buckingham and Coulombic terms. If\ntwo cutoffs are specified, they are used as cutoffs for the Buckingham\nand Coulombic terms respectively.\n\nThe purpose of this pair style is to capture long-range interactions\nresulting from both attractive 1/r\\^6 Buckingham and Coulombic 1/r\ninteractions. This is done by use of the *flag_buck* and *flag_coul*\nsettings. The **Ismail** paper has more details on when it is\nappropriate to include long-range 1/r\\^6 interactions, using this\npotential.\n\nIf *flag_buck* is set to *long*, no cutoff is used on the Buckingham\n1/r\\^6 dispersion term. The long-range portion can be calculated by\nusing the [kspace_style ewald/disp or pppm/disp ](https://docs.lammps.org/kspace_style.html)\ncommands. The specified Buckingham cutoff then determines which\nportion of the Buckingham interactions are computed directly by the\npair potential versus which part is computed in reciprocal space via\nthe Kspace style. If *flag_buck* is set to *cut*, the Buckingham\ninteractions are simply cutoff, as with [pair_style buck ](https://docs.lammps.org/pair_buck.html).\n\nIf *flag_coul* is set to *long*, no cutoff is used on the Coulombic\ninteractions. The long-range portion can calculated by using any of\nseveral [kspace_style ](https://docs.lammps.org/kspace_style.html) command options such as\n*pppm* or *ewald* . Note that if *flag_buck* is also set to long, then\nthe *ewald/disp* or *pppm/disp* Kspace style needs to be used to\nperform the long-range calculations for both the Buckingham and\nCoulombic interactions. If *flag_coul* is set to *off*, Coulombic\ninteractions are not computed.\n\nThe following coefficients must be defined for each pair of atoms\ntypes via the [pair_coeff ](https://docs.lammps.org/pair_coeff.html) command as in the examples\nabove, or in the data file or restart files read by the\n[read_data ](https://docs.lammps.org/read_data.html) or [read_restart ](https://docs.lammps.org/read_restart.html)\ncommands:\n\n* A (energy units)\n* rho (distance units)\n* C (energy-distance\\^6 units)\n* cutoff (distance units)\n* cutoff2 (distance units)\n\nThe second coefficient, rho, must be greater than zero.\n\nThe latter 2 coefficients are optional. If not specified, the global\nBuckingham and Coulombic cutoffs specified in the pair_style command\nare used. If only one cutoff is specified, it is used as the cutoff\nfor both Buckingham and Coulombic interactions for this type pair. If\nboth coefficients are specified, they are used as the Buckingham and\nCoulombic cutoffs for this type pair. Note that if you are using\n*flag_buck* set to *long*, you cannot specify a Buckingham cutoff for\nan atom type pair, since only one global Buckingham cutoff is allowed.\nSimilarly, if you are using *flag_coul* set to *long*, you cannot\nspecify a Coulombic cutoff for an atom type pair, since only one\nglobal Coulombic cutoff is allowed.\n\n----------\n\n Styles with a *gpu*, *intel*, *kk*, *omp*, or *opt* suffix are\nfunctionally the same as the corresponding style without the suffix.\nThey have been optimized to run faster, depending on your available\nhardware, as discussed on the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html)\npage. The accelerated styles take the same arguments and should\nproduce the same results, except for round-off and precision issues.\n\nThese accelerated styles are part of the GPU, INTEL, KOKKOS,\nOPENMP, and OPT packages, respectively. They are only enabled if\nLAMMPS was built with those packages. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nYou can specify the accelerated styles explicitly in your input script\nby including their suffix, or you can use the [-suffix command-line switch ](https://docs.lammps.org/Run_options.html) when you invoke LAMMPS, or you can use the\n[suffix ](https://docs.lammps.org/suffix.html) command in your input script.\n\nSee the [Accelerator packages ](https://docs.lammps.org/Speed_packages.html) page for more\ninstructions on how to use the accelerated styles effectively.\n\n\n----------\n\n #### Mixing, shift, table, tail correction, restart, rRESPA info\n\nThis pair style does not support mixing. Thus, coefficients for all\nI,J pairs must be specified explicitly.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) shift\noption for the energy of the exp() and 1/r\\^6 portion of the pair\ninteraction, assuming *flag_buck* is *cut* .\n\nThis pair style does not support the [pair_modify ](https://docs.lammps.org/pair_modify.html)\nshift option for the energy of the Buckingham portion of the pair\ninteraction.\n\nThis pair style supports the [pair_modify ](https://docs.lammps.org/pair_modify.html) table and\ntable/disp options since they can tabulate the short-range portion of\nthe long-range Coulombic and dispersion interactions.\n\nThis pair style write its information to [binary restart files ](https://docs.lammps.org/restart.html), so pair_style and pair_coeff commands do not need\nto be specified in an input script that reads a restart file.\n\nThis pair style supports the use of the *inner*, *middle*, and *outer*\nkeywords of the [run_style respa ](https://docs.lammps.org/run_style.html) command, meaning the\npairwise forces can be partitioned by distance at different levels of\nthe rRESPA hierarchy. See the [run_style ](https://docs.lammps.org/run_style.html) command for\ndetails.\n\n----------\n\n**(Ismail)** Ismail, Tsige, In 't Veld, Grest, Molecular Physics\n(accepted) (2007). \n ", - "restrictions": "This style is part of the KSPACE package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n", - "related": "[pair_coeff ](https://docs.lammps.org/pair_coeff.html)\n" + "parameters": "* ID, group-ID are documented in [compute ](https://docs.lammps.org/compute.html) command\n* saed = style name of this compute command\n* lambda = wavelength of incident radiation (length units)\n* type1 type2 ... typeN = chemical symbol of each atom type (see valid options below)\n* zero or more keyword/value pairs may be appended\n* keyword = Kmax or Zone or dR_Ewald or c or manual or echo \n *        Kmax value = Maximum distance explored from reciprocal space origin \n         (inverse length units) \n *        Zone values = z1 z2 z3 \n         z1,z2,z3 = Zone axis of incident radiation. If z1=z2=z3=0 all \n         reciprocal space will be meshed up to Kmax \n *        dR_Ewald value = Thickness of Ewald sphere slice intercepting \n         reciprocal space (inverse length units) \n *        c values = c1 c2 c3 \n         c1,c2,c3 = parameters to adjust the spacing of the reciprocal \n         lattice nodes in the h, k, and l directions respectively \n *        manual = flag to use manual spacing of reciprocal lattice points \n         based on the values of the c parameters \n *        echo = flag to provide extra output for debugging purposes \n", + "examples": "\n```lmps\ncompute 1 all saed 0.0251 Al O Kmax 1.70 Zone 0 0 1 dR_Ewald 0.01 c 0.5 0.5 0.5\ncompute 2 all saed 0.0251 Ni Kmax 1.70 Zone 0 0 0 c 0.05 0.05 0.05 manual echo\n\nfix 1 all saed/vtk 1 1 1 c_1 file Al2O3_001.saed\nfix 2 all saed/vtk 1 1 1 c_2 file Ni_000.saed\n```\n", + "html_filename": "compute_saed.html", + "short_description": "Define a computation that calculates electron diffraction intensity as\ndescribed in **saed-Coleman** on a mesh of reciprocal lattice nodes\ndefined by the entire simulation domain (or manually) using simulated\nradiation of wavelength lambda", + "description": "Define a computation that calculates electron diffraction intensity as\ndescribed in **saed-Coleman** on a mesh of reciprocal lattice nodes\ndefined by the entire simulation domain (or manually) using simulated\nradiation of wavelength lambda.\n\nThe electron diffraction intensity I at each reciprocal lattice point\nis computed from the structure factor F using the equations:\n\\[\\begin{align*} \n I = & \\frac{F^{*}F}{N} \\\\\n F(\\mathbf{k}) = & \\sum_{j=1}^{N}f_j(\\theta)exp(2\\pi i \\mathbf{k} \\cdot \\mathbf{r}_j) \\end{align*} \\]\nHere, K is the location of the reciprocal lattice node, \\(r_j\\) is the\nposition of each atom, \\(f_j\\) are atomic scattering factors.\n\nDiffraction intensities are calculated on a three-dimensional mesh of\nreciprocal lattice nodes. The mesh spacing is defined either (a) by\nthe entire simulation domain or (b) manually using selected values as\nshown in the 2D diagram below.\n\n ![Image](img/saed_mesh.png) \n\nFor a mesh defined by the simulation domain, a rectilinear grid is\nconstructed with spacing *c* \\*inv(A) along each reciprocal lattice\naxis. Where A are the vectors corresponding to the edges of the\nsimulation cell. If one or two directions has non-periodic boundary\nconditions, then the spacing in these directions is defined from the\naverage of the (inversed) box lengths with periodic boundary conditions.\nMeshes defined by the simulation domain must contain at least one periodic\nboundary.\n\nIf the *manual* flag is included, the mesh of reciprocal lattice nodes\nwill defined using the *c* values for the spacing along each reciprocal\nlattice axis. Note that manual mapping of the reciprocal space mesh is\ngood for comparing diffraction results from multiple simulations; however\nit can reduce the likelihood that Bragg reflections will be satisfied\nunless small spacing parameters (\\(<0.05~\\mathring{\\textrm{A}}^-1\\))\nare implemented. Meshes with manual spacing do not require a periodic\nboundary.\n\nThe limits of the reciprocal lattice mesh are determined by the use of\nthe *Kmax*, *Zone*, and *dR_Ewald* parameters. The rectilinear mesh\ncreated about the origin of reciprocal space is terminated at the\nboundary of a sphere of radius *Kmax* centered at the origin. If\n*Zone* parameters *z1* = *z2* = *z3* = 0 are used, diffraction intensities are\ncomputed throughout the entire spherical volume - note this can\ngreatly increase the cost of computation. Otherwise, *Zone*\nparameters will denote the \\(z1=h\\), \\(z2=k\\), and \\(z3=\\ell\\)\n(in a global sense) zone axis of an intersecting Ewald sphere. Diffraction\nintensities will only be computed at the intersection of the reciprocal lattice\nmesh and a *dR_Ewald* thick surface of the Ewald sphere. See the\nexample 3D intensity data and the intersection of a [010] zone axis\nin the below image.\n\n ![Image](img/saed_ewald_intersect.jpg) \n\nThe atomic scattering factors, fj, accounts for the reduction in\ndiffraction intensity due to Compton scattering. Compute saed uses\nanalytical approximations of the atomic scattering factors that vary\nfor each atom type (type1 type2 ... typeN) and angle of diffraction.\nThe analytic approximation is computed using the formula\n**Brown**:\n\\[\n f_j\\left ( \\frac{sin(\\theta)}{\\lambda} \\right )=\\sum_{i}^{5}\n a_i exp\\left ( -b_i \\frac{sin^{2}(\\theta)}{\\lambda^{2}} \\right )\\]\nCoefficients parameterized by **Fox** are assigned for each\natom type designating the chemical symbol and charge of each atom\ntype. Valid chemical symbols for compute saed are:\n\n | | | | | | | | | | | | | | | | | | | | | \n |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n H | He | Li | Be | B | C | N | O | F | Ne | Na | Mg | Al | Si | P | S | Cl | Ar | K | Ca|\n Sc | Ti | V | Cr | Mn | Fe | Co | Ni | Cu | Zn | Ga | Ge | As | Se | Br | Kr | Rb | Sr | Y | Zr|\n Nb | Mo | Tc | Ru | Rh | Pd | Ag | Cd | In | Sn | Sb | Te | I | Xe | Cs | Ba | La | Ce | Pr | Nd|\n Pm | Sm | Eu | Gd | Tb | Dy | Ho | Er | Tm | Yb | Lu | Hf | Ta | W | Re | Os | Ir | Pt | Au | Hg|\n Tl | Pb | Bi | Po | At | Rn | Fr | Ra | Ac | Th | Pa | U | Np | Pu | Am | Cm | Bk|\n \nIf the *echo* keyword is specified, compute saed will provide extra\nreporting information to the screen.\n\n #### Output info\n\nThis compute calculates a global vector. The length of the vector is\nthe number of reciprocal lattice nodes that are explored by the mesh.\nThe entries of the global vector are the computed diffraction\nintensities as described above.\n\nThe vector can be accessed by any command that uses global values from\na compute as input. See the [Howto output ](https://docs.lammps.org/Howto_output.html) doc page\nfor an overview of LAMMPS output options.\n\nAll array values calculated by this compute are \"intensive\".\n\n**(saed-Coleman)** Coleman, Spearot, Capolungo, MSMSE, 21, 055020\n(2013). \n \n**(Brown)** Brown et al. International Tables for Crystallography\nVolume C: Mathematical and Chemical Tables, 554-95 (2004). \n \n**(Fox)** Fox, O'Keefe, Tabbernor, Acta Crystallogr. A, 45, 786-93\n(1989). \n ", + "restrictions": "This compute is part of the DIFFRACTION package. It is only enabled if\nLAMMPS was built with that package. See the [Build package](https://docs.lammps.org/Build_package.html) page for more info.\n\nThe compute_saed command does not work for triclinic cells.\n", + "related": "[fix saed_vtk ](https://docs.lammps.org/fix_saed_vtk.html), [compute xrd ](https://docs.lammps.org/compute_xrd.html)\n" }, { "command": [ @@ -41556,61 +41030,41 @@ export const command_docs = [ } ] ], - "parameters": "* btype = bond type\n* N = # of values\n* inner,outer = inner and outer bond length (distance units)\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values\n* itype,jtype = two atom types (optional) \n", + "parameters": "* btype = bond type\n* N = # of values\n* inner,outer = inner and outer bond length (distance units)\n* file = name of file to write values to\n* keyword = section name in file for this set of tabulated values\n* itype,jtype = 2 atom types (optional) \n", "examples": "\n```lmps\nbond_write 1 500 0.5 3.5 table.txt Harmonic_1\nbond_write 3 1000 0.1 6.0 table.txt Morse\n```\n", "html_filename": "bond_write.html", "short_description": "Write energy and force values to a file as a function of distance for\nthe currently defined [bond style ](https://docs.lammps.org/bond_style.html) for a selected bond\ntype", - "description": "Write energy and force values to a file as a function of distance for\nthe currently defined [bond style ](https://docs.lammps.org/bond_style.html) for a selected bond\ntype. This is useful for plotting the potential function or otherwise\ndebugging its values. The resulting file can also be used as input for\nuse with [bond style table ](https://docs.lammps.org/bond_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed at distances from *inner* to\n*outer* for two interacting atoms forming a bond of type *btype*, using\nthe appropriate [bond_coeff ](https://docs.lammps.org/bond_coeff.html) coefficients. N evenly\nspaced distances are used.\n\nFor example, for N = 7, inner = 1.0, and outer = 4.0,\nvalues are computed at r = 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0.\n\nThe file is written in the format used as input for the [bond_styletable ](https://docs.lammps.org/bond_table.html) option with *keyword* as the section name. Each\nline written to the file lists an index number (1-N), a distance (in\ndistance units), an energy (in energy units), and a force (in force\nunits). In case a new file is created, the first line will be a comment\nwith a \"DATE:\" and \"UNITS:\" tag with the current date and [units](https://docs.lammps.org/units.html) settings. For subsequent invocations of the *bond_write*\ncommand for the same file, data will be appended and the current units\nsettings will be compared to the data from the header, if present. The\n*bond_write* command will refuse to add a table to an existing file if\nthe units are not the same.\n", + "description": "Write energy and force values to a file as a function of distance for\nthe currently defined [bond style ](https://docs.lammps.org/bond_style.html) for a selected bond\ntype. This is useful for plotting the potential function or otherwise\ndebugging its values. The resulting file can also be used as input for\nuse with [bond style table ](https://docs.lammps.org/bond_table.html).\n\nIf the file already exists, the table of values is appended to the end\nof the file to allow multiple tables of energy and force to be included\nin one file. The individual sections may be identified by the *keyword*.\n\nThe energy and force values are computed at distances from *inner* to\n*outer* for 2 interacting atoms forming a bond of type *btype*, using\nthe appropriate [bond_coeff ](https://docs.lammps.org/bond_coeff.html) coefficients. N evenly\nspaced distances are used.\n\nFor example, for N = 7, inner = 1.0, and outer = 4.0,\nvalues are computed at r = 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0.\n\nThe file is written in the format used as input for the [bond_styletable ](https://docs.lammps.org/bond_table.html) option with *keyword* as the section name. Each\nline written to the file lists an index number (1-N), a distance (in\ndistance units), an energy (in energy units), and a force (in force\nunits). In case a new file is created, the first line will be a comment\nwith a \"DATE:\" and \"UNITS:\" tag with the current date and [units](https://docs.lammps.org/units.html) settings. For subsequent invocations of the *bond_write*\ncommand for the same file, data will be appended and the current units\nsettings will be compared to the data from the header, if present. The\n*bond_write* command will refuse to add a table to an existing file if\nthe units are not the same.\n", "restrictions": "All force field coefficients for bond and other kinds of interactions\nmust be set before this command can be invoked.\n\nDue to how the bond force is computed, an inner value > 0.0 must\nbe specified even if the potential has a finite value at r = 0.0.\n", "related": "[bond_style table ](https://docs.lammps.org/bond_table.html), [angle_write ](https://docs.lammps.org/angle_write.html),\n[bond_style ](https://docs.lammps.org/bond_style.html), [bond_coeff ](https://docs.lammps.org/bond_coeff.html)\n" }, { "command": [ - "fix nvt/sllod/eff" + "bond_style harmonic/restrain" ], "syntax": [ - "fix ID group-ID nvt/sllod/eff keyword value ..." + "bond_style harmonic/restrain" ], "args": [ [ { - "arg": "fix", + "arg": "bond_style", "type": 1, "choices": [] }, { - "arg": "ID", - "type": 2, - "choices": [] - }, - { - "arg": "group-ID", - "type": 2, - "choices": [] - }, - { - "arg": "nvt/sllod/eff", + "arg": "harmonic/restrain", "type": 1, "choices": [] - }, - { - "arg": "keyword", - "type": 2, - "choices": [] - }, - { - "arg": "value", - "type": 2, - "choices": [] } ] ], - "parameters": "* ID, group-ID are documented in [fix ](https://docs.lammps.org/fix.html) command\n* nvt/sllod/eff = style name of this fix command\n* zero or more keyword/value pairs may be appended \n *      keyword = psllod \n       psllod value = no or yes = use SLLOD or p-SLLOD variant, respectively \n* additional thermostat related keyword/value pairs from the [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) command may be appended, too. \n", - "examples": "\n```lmps\nfix 1 all nvt/sllod/eff temp 300.0 300.0 0.1\nfix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2\n```\n", - "html_filename": "fix_nvt_sllod_eff.html", - "short_description": "Perform constant NVT integration to update positions and velocities each\ntimestep for nuclei and electrons in the group for the [electronforce field ](https://docs.lammps.org/pair_eff.html) model, using a Nose/Hoover temperature\nthermostat", - "description": "Perform constant NVT integration to update positions and velocities each\ntimestep for nuclei and electrons in the group for the [electronforce field ](https://docs.lammps.org/pair_eff.html) model, using a Nose/Hoover temperature\nthermostat. V is volume; T is temperature. This creates a system\ntrajectory consistent with the canonical ensemble.\n\nThe operation of this fix is exactly like that described by the\n[fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html) command, except that the radius and\nradial velocity of electrons are also updated and thermostatted.\nLikewise the temperature calculated by the fix, using the compute it\ncreates (as discussed in the [fix nvt, npt, and nph ](https://docs.lammps.org/fix_nh.html) doc\npage), is performed with a [compute temp/deform/eff](https://docs.lammps.org/compute_temp_deform_eff.html) command that includes the eFF contribution to\nthe temperature from the electron radial velocity.\n\n #### Restart, fix_modify, output, run start/stop, minimize info\n\nThis fix writes the state of the Nose/Hoover thermostat to\n[binary restart files ](https://docs.lammps.org/restart.html). See the [read_restart](https://docs.lammps.org/read_restart.html) command for info on how to re-specify a fix in an\ninput script that reads a restart file, so that the operation of the\nfix continues in an uninterrupted fashion.\n\nThe [fix_modify ](https://docs.lammps.org/fix_modify.html) *temp* option is supported by this\nfix. You can use it to assign a [compute ](https://docs.lammps.org/compute.html) you have\ndefined to this fix which will be used in its thermostatting\nprocedure.\n\nThe cumulative energy change in the system imposed by this fix is\nincluded in the [thermodynamic output ](https://docs.lammps.org/thermo_style.html) keywords\n*ecouple* and *econserve*. See the [thermo_style ](https://docs.lammps.org/thermo_style.html)\ndoc page for details.\n\nThis fix computes the same global scalar and global vector of\nquantities as does the [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html) command.\n\nThis fix can ramp its target temperature over multiple runs, using the\n*start* and *stop* keywords of the [run ](https://docs.lammps.org/run.html) command. See the\n[run ](https://docs.lammps.org/run.html) command for details of how to do this.\n\nThis fix is not invoked during [energy minimization ](https://docs.lammps.org/minimize.html).\n", - "restrictions": "This fix is part of the EFF package. It is only enabled if\nLAMMPS was built with that package. See the [Build package ](https://docs.lammps.org/Build_package.html) page for more info.\n\nThis fix works best without Nose-Hoover chain thermostats, i.e. using\ntchain = 1. Setting tchain to larger values can result in poor\nequilibration.\n", - "related": "[fix nve/eff ](https://docs.lammps.org/fix_nve_eff.html), [fix nvt/eff ](https://docs.lammps.org/fix_nh_eff.html), [fix langevin/eff ](https://docs.lammps.org/fix_langevin_eff.html), [fix nvt/sllod ](https://docs.lammps.org/fix_nvt_sllod.html), [fix_modify ](https://docs.lammps.org/fix_modify.html), [compute temp/deform/eff ](https://docs.lammps.org/compute_temp_deform_eff.html)\n" + "parameters": "", + "examples": "\n```lmps\nbond_style harmonic\nbond_coeff 5 80.0\n```\n", + "html_filename": "bond_harmonic_restrain.html", + "short_description": "\nThe *harmonic/restrain* bond style uses the potential\n\\[\n E = K (r - r_{t=0})^2\\]\nwhere \\(r_{t=0}\\) is the distance between the bonded atoms at the\nbeginning of the first [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommand after the bond style has been defined (*t=0*)", + "description": "\nThe *harmonic/restrain* bond style uses the potential\n\\[\n E = K (r - r_{t=0})^2\\]\nwhere \\(r_{t=0}\\) is the distance between the bonded atoms at the\nbeginning of the first [run ](https://docs.lammps.org/run.html) or [minimize ](https://docs.lammps.org/minimize.html)\ncommand after the bond style has been defined (*t=0*). Note that the\nusual 1/2 factor is included in \\(K\\). This will effectively\nrestrain bonds to their initial length, whatever that is. This is where\nthis bond style differs from [bond style harmonic ](https://docs.lammps.org/bond_harmonic.html)\nwhere the bond length is set through the per bond type coefficients.\n\nThe following coefficient must be defined for each bond type via the\n[bond_coeff ](https://docs.lammps.org/bond_coeff.html) command as in the example above, or in\nthe data file or restart files read by the [read_data ](https://docs.lammps.org/read_data.html)\nor [read_restart ](https://docs.lammps.org/read_restart.html) commands\n\n* \\(K\\) (energy/distance\\^2)\n\nThis bond style differs from other options to add harmonic restraints\nlike [fix restrain ](https://docs.lammps.org/fix_restrain.html) or [pair style list](https://docs.lammps.org/pair_list.html) or [fix colvars ](https://docs.lammps.org/fix_colvars.html) in that it requires a\nbond topology, and thus the defined bonds will trigger exclusion of\nspecial neighbors from the neighbor list according to the\n[special_bonds ](https://docs.lammps.org/special_bonds.html) settings.\n\n #### Restart info\n\nThis bond style supports the [write_restart ](https://docs.lammps.org/write_restart.html) and\n[read_restart ](https://docs.lammps.org/read_restart.html) commands. The state of the initial\nbond lengths is stored with restart files and read back.\n", + "restrictions": "This bond style can only be used if LAMMPS was built with the\nEXTRA-MOLECULE package. See the [Build package ](https://docs.lammps.org/Build_package.html)\npage for more info.\n\nThis bond style maintains internal data to determine the original bond\nlengths \\(r_{t=0}\\). This information will be written to\n[binary restart files ](https://docs.lammps.org/write_restart.html) but **not** to [datafiles ](https://docs.lammps.org/write_data.html). Thus, continuing a simulation is *only* possible\nwith [read_restart ](https://docs.lammps.org/read_restart.html). When using the [read_datacommand ](https://docs.lammps.org/read_data.html), the reference bond lengths \\(r_{t=0}\\) will be\nre-initialized from the current geometry.\n\nThis bond style cannot be used with [fix shake or fix rattle](https://docs.lammps.org/fix_shake.html), with [fix filter/corotate ](https://docs.lammps.org/fix_filter_corotate.html), or\nany [tip4p pair style ](https://docs.lammps.org/pair_lj_cut_tip4p.html) since there is no specific\nequilibrium distance for a given bond type.\n", + "related": "[bond_coeff ](https://docs.lammps.org/bond_coeff.html), [bond_harmonic ](https://docs.lammps.org/bond_harmonic.html),\n[fix restrain ](https://docs.lammps.org/fix_restrain.html), [pair style list ](https://docs.lammps.org/pair_list.html)\n" }, ]; diff --git a/syntaxes/lmps.tmLanguage.json b/syntaxes/lmps.tmLanguage.json index 733185f..b9be54f 100644 --- a/syntaxes/lmps.tmLanguage.json +++ b/syntaxes/lmps.tmLanguage.json @@ -87,7 +87,7 @@ "patterns": [ { "name": "keyword.command.compute.lmps", - "match": "\\b(smd/tlsph/stress|hma|sph/rho/atom|erotate/asphere|saed|temp/deform|temp/deform/kk|ke/atom/eff|improper|rdf|erotate/sphere/atom|dpd/atom|ave/sphere/atom|ave/sphere/atom/kk|smd/rho|ke/rigid|temp/eff|smd/ulsph/num/neighs|property/atom|event/displace|slice|momentum|stress/cartesian|plasticity/atom|smd/internal/energy|temp/partial|ackland/atom|smd/ulsph/stress|stress/cylinder|gyration/shape/chunk|compute|gyration|efield/atom|smd/damage|reduce|pe/atom|gyration/chunk|smd/plastic/strain|sna/atom|snad/atom|snav/atom|snap|sna/grid|stress/atom|temp/com|temp/body|smd/tlsph/defgrad|bond/local|cluster/atom|fragment/atom|temp/uef|vcm/chunk|smd/ulsph/strain|hexorder/atom|spin|group/group|ti|temp/asphere|body/local|gyration/shape|smd/ulsph/strain/rate|born/matrix|property/local|tdpd/cc/atom|sph/e/atom|smd/contact/radius|edpd/temp/atom|temp/ramp|temp/cs|centro/atom|cnp/atom|cna/atom|erotate/rigid|global/atom|smd/ulsph/effm|temp/rotate|nbond/atom|dihedral|sph/t/atom|inertia/chunk|chunk/spread/atom|smd/hourglass/error|rheo/property/atom|smd/tlsph/shape|count/type|displace/atom|composition/atom|composition/atom/kk|xrd|angmom/chunk|smd/triangle/vertices|dihedral/local|dpd|angle/local|slcsa/atom|damage/atom|smd/tlsph/num/neighs|angle|chunk/atom|pressure/uef|improper/local|erotate/sphere|erotate/sphere/kk|ke/atom|reaxff/atom|reaxff/atom/kk|ke|coord/atom|coord/atom/kk|msd/nongauss|property/chunk|force/tally|heat/flux/tally|heat/flux/virial/tally|pe/tally|pe/mol/tally|contact/atom|smd/vol|rigid/local|efield/wolf/atom|temp/sphere|pe|pressure/alchemy|property/grid|smd/plastic/strain/rate|orientorder/atom|orientorder/atom/kk|adf|pod/atom|podd/atom|pod/local|pair/local|temp|temp/kk|ke/eff|dipole|msd/chunk|dilatation/atom|pace|basal/atom|fabric|msd|pressure|torque/chunk|stress/mop|temp/chunk|heat/flux|fep|rattlers/atom|smd/tlsph/strain/rate|fep/ta|smd/tlsph/dt|ptm/atom|entropy/atom|temp/drude|voronoi/atom|temp/profile|com/chunk|temp/region/eff|dipole/chunk|mliap|reduce/chunk|bond|omega/chunk|vacf|temp/region|viscosity/cos|pair|com|temp/deform/eff|smd/tlsph/strain)(?=[\\t\\s])" + "match": "\\b(ave/sphere/atom|ave/sphere/atom/kk|temp/cs|pressure/alchemy|sph/t/atom|ptm/atom|rigid/local|pod/atom|podd/atom|pod/local|temp/profile|hexorder/atom|heat/flux|stress/cylinder|temp/asphere|count/type|smd/tlsph/shape|pair/local|chunk/atom|pe/atom|improper/local|smd/hourglass/error|sph/e/atom|temp/chunk|voronoi/atom|cluster/atom|fragment/atom|dipole/chunk|sna/atom|snad/atom|snav/atom|snap|sna/grid|property/atom|gyration|nbond/atom|entropy/atom|plasticity/atom|smd/tlsph/defgrad|pressure/uef|com/chunk|efield/atom|temp/partial|angmom/chunk|msd|cna/atom|vacf|dilatation/atom|mliap|erotate/asphere|force/tally|heat/flux/tally|heat/flux/virial/tally|pe/tally|pe/mol/tally|momentum|born/matrix|smd/internal/energy|spin|contact/atom|dpd|temp/deform|temp/deform/kk|msd/chunk|smd/tlsph/num/neighs|fep|temp|temp/kk|tdpd/cc/atom|smd/tlsph/stress|gyration/chunk|efield/wolf/atom|reduce/chunk|compute|pace|ke/eff|dipole|dpd/atom|temp/drude|reaxff/atom|reaxff/atom/kk|displace/atom|body/local|rdf|temp/region/eff|gyration/shape/chunk|ke/atom/eff|cnp/atom|global/atom|temp/sphere|msd/nongauss|erotate/sphere/atom|adf|smd/ulsph/strain/rate|gyration/shape|edpd/temp/atom|slice|improper|damage/atom|stress/mop|hma|orientorder/atom|orientorder/atom/kk|temp/rotate|temp/eff|smd/plastic/strain/rate|bond|pair|property/chunk|smd/ulsph/num/neighs|erotate/rigid|ke|temp/body|smd/triangle/vertices|sph/rho/atom|pe|ke/rigid|smd/tlsph/strain/rate|ackland/atom|dihedral/local|vcm/chunk|temp/region|temp/ramp|smd/ulsph/stress|smd/ulsph/strain|omega/chunk|inertia/chunk|xrd|viscosity/cos|group/group|smd/vol|stress/atom|pressure|fep/ta|property/grid|smd/rho|smd/damage|basal/atom|reduce|smd/ulsph/effm|temp/deform/eff|temp/com|fabric|rattlers/atom|bond/local|event/displace|angle/local|smd/tlsph/strain|slcsa/atom|smd/tlsph/dt|composition/atom|composition/atom/kk|ke/atom|centro/atom|dihedral|chunk/spread/atom|erotate/sphere|erotate/sphere/kk|com|smd/plastic/strain|temp/uef|property/local|angle|stress/cartesian|smd/contact/radius|torque/chunk|coord/atom|coord/atom/kk|ti|saed)(?=[\\t\\s])" }, { "include": "$self" @@ -105,7 +105,7 @@ "patterns": [ { "name": "keyword.style.pair_style.lmps", - "match": "\\b(lj/gromacs|lj/gromacs/gpu|lj/gromacs/kk|lj/gromacs/omp|lj/gromacs/coul/gromacs|lj/gromacs/coul/gromacs/kk|lj/gromacs/coul/gromacs/omp|dpd/ext|dpd/ext/tstat|ufm|ufm/gpu|ufm/omp|ufm/opt|line/lj|yukawa/colloid|yukawa/colloid/gpu|yukawa/colloid/kk|yukawa/colloid/omp|lj/cut/dipole/cut|lj/cut/dipole/cut/gpu|lj/cut/dipole/cut/kk|lj/cut/dipole/cut/omp|lj/sf/dipole/sf|lj/sf/dipole/sf/gpu|lj/sf/dipole/sf/omp|lj/cut/dipole/long|lj/cut/dipole/long/gpu|lj/long/dipole/long|colloid|colloid/gpu|colloid/omp|kim|smd/tlsph|saip/metal|wf/cut|mesocnt|sph/lj|sph/lj/gpu|quip|body/rounded/polygon|none|sph/taitwater/morris|sph/idealgas|amoeba|amoeba/gpu|hippo|hippo/gpu|ylz|edip|edip/omp|edip/multi|meam/spline|meam/spline/omp|lj/switch3/coulgauss/long|lj/expand/sphere|polymorphic|snap|snap/intel|snap/kk|soft|soft/gpu|soft/kk|soft/omp|vashishta|vashishta/gpu|vashishta/omp|vashishta/kk|vashishta/table|vashishta/table/omp|ilp/tmd|resquared|resquared/gpu|resquared/omp|buck6d/coul/gauss/dsf|lj/cut|lj/cut/gpu|lj/cut/intel|lj/cut/kk|lj/cut/opt|lj/cut/omp|pair_style|zero|lubricate|lubricate/omp|lubricate/poly|lubricate/poly/omp|eam|eam/gpu|eam/intel|eam/kk|eam/omp|eam/opt|eam/alloy|eam/alloy/gpu|eam/alloy/intel|eam/alloy/kk|eam/alloy/omp|eam/alloy/opt|eam/cd|eam/cd/old|eam/fs|eam/he|agni|agni/omp|bop|pod|pod/kk|mgpt|zbl|zbl/gpu|zbl/kk|zbl/omp|dpd/coul/slater/long|dpd/coul/slater/long/gpu|granular|lj/spica|lj/spica/gpu|lj/spica/kk|lj/spica/omp|lj/spica/coul/long|lj/spica/coul/long/gpu|lj/spica/coul/long/omp|lj/spica/coul/long/kk|lj/spica/coul/msm|lj/spica/coul/msm/omp|gw|lj/smooth|lj/smooth/gpu|lj/smooth/omp|lj/cut/coul/cut|lj/cut/coul/cut/gpu|lj/cut/coul/cut/kk|lj/cut/coul/cut/omp|lj/cut/coul/debye|lj/cut/coul/debye/gpu|lj/cut/coul/debye/kk|lj/cut/coul/debye/omp|lj/cut/coul/dsf|lj/cut/coul/dsf/gpu|lj/cut/coul/dsf/kk|lj/cut/coul/dsf/omp|lj/cut/coul/long|lj/cut/coul/long/gpu|lj/cut/coul/long/kk|lj/cut/coul/long/intel|lj/cut/coul/long/opt|lj/cut/coul/long/omp|lj/cut/coul/msm|lj/cut/coul/msm/gpu|lj/cut/coul/msm/omp|lj/cut/coul/wolf|lj/cut/coul/wolf/omp|local/density|lj/mdf|buck/mdf|sph/rhosum|lj/cut/soft|lj/cut/soft/omp|lj/cut/coul/cut/soft|lj/cut/coul/cut/soft/gpu|lj/cut/coul/cut/soft/omp|lj/cut/coul/long/soft|lj/cut/coul/long/soft/gpu|lj/cut/coul/long/soft/omp|lj/cut/tip4p/long/soft|lj/cut/tip4p/long/soft/omp|lj/charmm/coul/long/soft|lj/charmm/coul/long/soft/omp|lj/class2/soft|lj/class2/coul/cut/soft|lj/class2/coul/long/soft|coul/cut/soft|coul/cut/soft/omp|coul/long/soft|coul/long/soft/omp|tip4p/long/soft|tip4p/long/soft/omp|morse/soft|yukawa|yukawa/gpu|yukawa/omp|yukawa/kk|coul/diel|coul/diel/omp|comb|comb/omp|comb3|lj/cubic|lj/cubic/gpu|lj/cubic/omp|lj/relres|lj/relres/omp|peri/pmb|peri/pmb/omp|peri/lps|peri/lps/omp|peri/ves|oxrna2/excv|oxrna2/stk|oxrna2/hbond|oxrna2/xstk|oxrna2/coaxstk|coul/cut|coul/cut/gpu|coul/cut/kk|coul/cut/omp|coul/cut/global|coul/cut/omp/global|coul/debye|coul/debye/gpu|coul/debye/kk|coul/debye/omp|coul/dsf|coul/dsf/gpu|coul/dsf/kk|coul/dsf/omp|coul/exclude|coul/long|coul/long/omp|coul/long/kk|coul/long/gpu|coul/msm|coul/msm/omp|coul/streitz|coul/wolf|coul/wolf/kk|coul/wolf/omp|tip4p/cut|tip4p/cut/omp|tip4p/long|tip4p/long/omp|lj/cut/sphere|rebomos|rebomos/omp|smd/tri_surface|tersoff|tersoff/gpu|tersoff/intel|tersoff/kk|tersoff/omp|tersoff/table|tersoff/table/omp|threebody/table|gran/hooke|gran/hooke/omp|gran/hooke/history|gran/hooke/history/omp|gran/hooke/history/kk|gran/hertz/history|gran/hertz/history/omp|oxdna/excv|oxdna/stk|oxdna/hbond|oxdna/xstk|morse|morse/gpu|morse/omp|morse/opt|morse/kk|morse/smooth/linear|morse/smooth/linear/omp|multi/lucy/rx|multi/lucy/rx/kk|pace|pace/kk|pace/extrapolation|spin/dipole/cut|rheo/solid|e3b|reaxff|reaxff/kk|reaxff/omp|kolmogorov/crespi/full|lj/charmm/coul/charmm|lj/charmm/coul/charmm/gpu|lj/charmm/coul/charmm/intel|lj/charmm/coul/charmm/kk|lj/charmm/coul/charmm/omp|lj/charmm/coul/charmm/implicit|lj/charmm/coul/charmm/implicit/kk|lj/charmm/coul/charmm/implicit/omp|lj/charmm/coul/long|lj/charmm/coul/long/gpu|lj/charmm/coul/long/intel|lj/charmm/coul/long/kk|lj/charmm/coul/long/opt|lj/charmm/coul/long/omp|lj/charmm/coul/msm|lj/charmm/coul/msm/omp|lj/charmmfsw/coul/charmmfsh|lj/charmmfsw/coul/long|lj/charmmfsw/coul/long/kk|lj/cut/tip4p/cut|lj/cut/tip4p/cut/omp|lj/cut/tip4p/long|lj/cut/tip4p/long/gpu|lj/cut/tip4p/long/omp|lj/cut/tip4p/long/opt|eff/cut|sw/angle/table|rheo|aip/water/2dm|sw|sw/gpu|sw/intel|sw/kk|sw/omp|sw/mod|sw/mod/omp|beck|beck/gpu|beck/omp|lj/expand|lj/expand/gpu|lj/expand/kk|lj/expand/omp|lj/expand/coul/long|lj/expand/coul/long/gpu|lj/expand/coul/long/kk|buck|buck/gpu|buck/intel|buck/kk|buck/omp|buck/coul/cut|buck/coul/cut/gpu|buck/coul/cut/intel|buck/coul/cut/kk|buck/coul/cut/omp|buck/coul/long|buck/coul/long/gpu|buck/coul/long/intel|buck/coul/long/kk|buck/coul/long/omp|buck/coul/msm|buck/coul/msm/omp|body/rounded/polyhedron|rann|nb3b/harmonic|multi/lucy|coul/tt|table|table/gpu|table/kk|table/omp|dsmc|adp|adp/kk|adp/omp|meam/sw/spline|tersoff/zbl|tersoff/zbl/gpu|tersoff/zbl/kk|tersoff/zbl/omp|oxdna2/excv|oxdna2/stk|oxdna2/hbond|oxdna2/xstk|oxdna2/coaxstk|born/coul/dsf/cs|born/coul/long/cs|born/coul/long/cs/gpu|born/coul/wolf/cs|born/coul/wolf/cs/gpu|buck/coul/long/cs|coul/long/cs|coul/long/cs/gpu|coul/wolf/cs|lj/cut/coul/long/cs|python|uf3|uf3/kk|sph/taitwater|sph/taitwater/gpu|airebo|airebo/intel|airebo/omp|airebo/morse|airebo/morse/intel|airebo/morse/omp|rebo|rebo/intel|rebo/omp|mliap|mliap/kk|spin/exchange|tri/lj|lj/smooth/linear|lj/smooth/linear/omp|spin/magelec|sph/heatconduction|sph/heatconduction/gpu|coul/shield|cosine/squared|atm|lcbop|edpd|edpd/gpu|mdpd|mdpd/gpu|mdpd/rhosum|lepton|lepton/omp|bpm/spring|srp|born/gauss|brownian|brownian/omp|brownian/poly|brownian/poly/omp|eim|eim/omp|coul/slater|coul/slater/cut|coul/slater/long|coul/slater/long/gpu|coul/cut/dielectric|coul/long/dielectric|lj/cut/coul/cut/dielectric|lj/cut/coul/cut/dielectric/omp|lj/cut/coul/debye/dielectric|lj/cut/coul/debye/dielectric/omp|lj/cut/coul/long/dielectric|lj/cut/coul/long/dielectric/omp|lj/cut/coul/msm/dielectric|lj96/cut|lj96/cut/gpu|lj96/cut/omp|hybrid|hybrid/kk|hybrid/omp|hybrid/molecular|hybrid/overlay|hybrid/overlay/kk|hybrid/overlay/omp|hybrid/scaled|smatb|table/rx|table/rx/kk|gauss|gauss/gpu|gauss/omp|gauss/cut|gauss/cut/omp|tracker|smd/ulsph|tersoff/mod|tersoff/mod/gpu|tersoff/mod/kk|tersoff/mod/omp|tersoff/mod/c|tersoff/mod/c/omp|gayberne|gayberne/gpu|gayberne/intel|gayberne/omp|awpmd/cut|lj/class2|lj/class2/gpu|lj/class2/kk|lj/class2/omp|lj/class2/coul/cut|lj/class2/coul/cut/kk|lj/class2/coul/cut/omp|lj/class2/coul/long|lj/class2/coul/long/gpu|lj/class2/coul/long/kk|lj/class2/coul/long/omp|lj/long/coul/long|lj/long/coul/long/intel|lj/long/coul/long/omp|lj/long/coul/long/opt|lj/long/tip4p/long|lj/long/tip4p/long/omp|harmonic/cut|harmonic/cut/omp|lebedeva/z|kolmogorov/crespi/z|meam|meam/kk|meam/ms|meam/ms/kk|lubricateU|spin/dmi|extep|dpd|dpd/gpu|dpd/intel|dpd/kk|dpd/omp|dpd/tstat|dpd/tstat/gpu|dpd/tstat/kk|dpd/tstat/omp|body/nparticle|spin/neel|ilp/graphene/hbn|born|born/omp|born/gpu|born/coul/long|born/coul/long/gpu|born/coul/long/omp|born/coul/msm|born/coul/msm/omp|born/coul/wolf|born/coul/wolf/gpu|born/coul/wolf/omp|born/coul/dsf|pedone|pedone/omp|drip|nm/cut|nm/cut/omp|nm/cut/split|nm/cut/coul/cut|nm/cut/coul/cut/omp|nm/cut/coul/long|nm/cut/coul/long/omp|dpd/fdt|dpd/fdt/energy|dpd/fdt/energy/kk|sdpd/taitwater/isothermal|thole|lj/cut/thole/long|lj/cut/thole/long/omp|mie/cut|mie/cut/gpu|hdnnp|momb|hbond/dreiding/lj|hbond/dreiding/lj/omp|hbond/dreiding/morse|hbond/dreiding/morse/omp|list|smtbq|exp6/rx|exp6/rx/kk|smd/hertz|buck/long/coul/long|buck/long/coul/long/omp)(?=[\\t\\s])" + "match": "\\b(smd/tri_surface|lj/expand|lj/expand/gpu|lj/expand/kk|lj/expand/omp|lj/expand/coul/long|lj/expand/coul/long/gpu|lj/expand/coul/long/kk|coul/shield|beck|beck/gpu|beck/omp|kim|lj/mdf|buck/mdf|quip|comb|comb/omp|comb3|threebody/table|ilp/tmd|pace|pace/kk|pace/extrapolation|lj/cubic|lj/cubic/gpu|lj/cubic/omp|oxdna/excv|oxdna/stk|oxdna/hbond|oxdna/xstk|lj/relres|lj/relres/omp|hdnnp|cosine/squared|lj/smooth/linear|lj/smooth/linear/omp|lubricate|lubricate/omp|lubricate/poly|lubricate/poly/omp|lj/class2|lj/class2/gpu|lj/class2/kk|lj/class2/omp|lj/class2/coul/cut|lj/class2/coul/cut/kk|lj/class2/coul/cut/omp|lj/class2/coul/long|lj/class2/coul/long/gpu|lj/class2/coul/long/kk|lj/class2/coul/long/omp|uf3|uf3/kk|tracker|e3b|multi/lucy/rx|multi/lucy/rx/kk|lj/cut/coul/cut|lj/cut/coul/cut/gpu|lj/cut/coul/cut/kk|lj/cut/coul/cut/omp|lj/cut/coul/debye|lj/cut/coul/debye/gpu|lj/cut/coul/debye/kk|lj/cut/coul/debye/omp|lj/cut/coul/dsf|lj/cut/coul/dsf/gpu|lj/cut/coul/dsf/kk|lj/cut/coul/dsf/omp|lj/cut/coul/long|lj/cut/coul/long/gpu|lj/cut/coul/long/kk|lj/cut/coul/long/intel|lj/cut/coul/long/opt|lj/cut/coul/long/omp|lj/cut/coul/msm|lj/cut/coul/msm/gpu|lj/cut/coul/msm/omp|lj/cut/coul/wolf|lj/cut/coul/wolf/omp|body/rounded/polygon|line/lj|gauss|gauss/gpu|gauss/omp|gauss/cut|gauss/cut/omp|nb3b/harmonic|kolmogorov/crespi/z|mie/cut|mie/cut/gpu|awpmd/cut|extep|coul/slater|coul/slater/cut|coul/slater/long|coul/slater/long/gpu|gw|sph/idealgas|bpm/spring|bop|buck/long/coul/long|buck/long/coul/long/omp|smatb|spin/magelec|amoeba|amoeba/gpu|hippo|hippo/gpu|buck|buck/gpu|buck/intel|buck/kk|buck/omp|buck/coul/cut|buck/coul/cut/gpu|buck/coul/cut/intel|buck/coul/cut/kk|buck/coul/cut/omp|buck/coul/long|buck/coul/long/gpu|buck/coul/long/intel|buck/coul/long/kk|buck/coul/long/omp|buck/coul/msm|buck/coul/msm/omp|dpd/fdt|dpd/fdt/energy|dpd/fdt/energy/kk|airebo|airebo/intel|airebo/omp|airebo/morse|airebo/morse/intel|airebo/morse/omp|rebo|rebo/intel|rebo/omp|sph/heatconduction|sph/heatconduction/gpu|lj/spica|lj/spica/gpu|lj/spica/kk|lj/spica/omp|lj/spica/coul/long|lj/spica/coul/long/gpu|lj/spica/coul/long/omp|lj/spica/coul/msm|lj/spica/coul/msm/omp|lebedeva/z|smd/ulsph|sw|sw/gpu|sw/intel|sw/kk|sw/omp|sw/mod|sw/mod/omp|sph/lj|sph/lj/gpu|body/rounded/polyhedron|sph/taitwater|sph/taitwater/gpu|wf/cut|lj/expand/sphere|lubricateU|oxdna2/excv|oxdna2/stk|oxdna2/hbond|oxdna2/xstk|oxdna2/coaxstk|lj96/cut|lj96/cut/gpu|lj96/cut/omp|soft|soft/gpu|soft/kk|soft/omp|rann|dpd/coul/slater/long|dpd/coul/slater/long/gpu|colloid|colloid/gpu|colloid/omp|none|thole|lj/cut/thole/long|lj/cut/thole/long/omp|hybrid|hybrid/kk|hybrid/omp|hybrid/molecular|hybrid/overlay|hybrid/overlay/kk|hybrid/overlay/omp|hybrid/scaled|pair_style|hbond/dreiding/lj|hbond/dreiding/lj/omp|hbond/dreiding/morse|hbond/dreiding/morse/omp|lj/cut|lj/cut/gpu|lj/cut/intel|lj/cut/kk|lj/cut/opt|lj/cut/omp|lj/cut/dipole/cut|lj/cut/dipole/cut/gpu|lj/cut/dipole/cut/kk|lj/cut/dipole/cut/omp|lj/sf/dipole/sf|lj/sf/dipole/sf/gpu|lj/sf/dipole/sf/omp|lj/cut/dipole/long|lj/cut/dipole/long/gpu|lj/long/dipole/long|nm/cut|nm/cut/omp|nm/cut/split|nm/cut/coul/cut|nm/cut/coul/cut/omp|nm/cut/coul/long|nm/cut/coul/long/omp|table/rx|table/rx/kk|born/coul/dsf/cs|born/coul/long/cs|born/coul/long/cs/gpu|born/coul/wolf/cs|born/coul/wolf/cs/gpu|buck/coul/long/cs|coul/long/cs|coul/long/cs/gpu|coul/wolf/cs|lj/cut/coul/long/cs|ufm|ufm/gpu|ufm/omp|ufm/opt|srp|harmonic/cut|harmonic/cut/omp|mesocnt|spin/dmi|body/nparticle|zbl|zbl/gpu|zbl/kk|zbl/omp|dpd/ext|dpd/ext/tstat|rebomos|rebomos/omp|lj/cut/soft|lj/cut/soft/omp|lj/cut/coul/cut/soft|lj/cut/coul/cut/soft/gpu|lj/cut/coul/cut/soft/omp|lj/cut/coul/long/soft|lj/cut/coul/long/soft/gpu|lj/cut/coul/long/soft/omp|lj/cut/tip4p/long/soft|lj/cut/tip4p/long/soft/omp|lj/charmm/coul/long/soft|lj/charmm/coul/long/soft/omp|lj/class2/soft|lj/class2/coul/cut/soft|lj/class2/coul/long/soft|coul/cut/soft|coul/cut/soft/omp|coul/long/soft|coul/long/soft/omp|tip4p/long/soft|tip4p/long/soft/omp|morse/soft|born|born/omp|born/gpu|born/coul/long|born/coul/long/gpu|born/coul/long/omp|born/coul/msm|born/coul/msm/omp|born/coul/wolf|born/coul/wolf/gpu|born/coul/wolf/omp|born/coul/dsf|coul/cut/dielectric|coul/long/dielectric|lj/cut/coul/cut/dielectric|lj/cut/coul/cut/dielectric/omp|lj/cut/coul/debye/dielectric|lj/cut/coul/debye/dielectric/omp|lj/cut/coul/long/dielectric|lj/cut/coul/long/dielectric/omp|lj/cut/coul/msm/dielectric|sph/taitwater/morris|meam/sw/spline|tersoff/mod|tersoff/mod/gpu|tersoff/mod/kk|tersoff/mod/omp|tersoff/mod/c|tersoff/mod/c/omp|yukawa|yukawa/gpu|yukawa/omp|yukawa/kk|eam|eam/gpu|eam/intel|eam/kk|eam/omp|eam/opt|eam/alloy|eam/alloy/gpu|eam/alloy/intel|eam/alloy/kk|eam/alloy/omp|eam/alloy/opt|eam/cd|eam/cd/old|eam/fs|eam/he|meam/spline|meam/spline/omp|lj/charmm/coul/charmm|lj/charmm/coul/charmm/gpu|lj/charmm/coul/charmm/intel|lj/charmm/coul/charmm/kk|lj/charmm/coul/charmm/omp|lj/charmm/coul/charmm/implicit|lj/charmm/coul/charmm/implicit/kk|lj/charmm/coul/charmm/implicit/omp|lj/charmm/coul/long|lj/charmm/coul/long/gpu|lj/charmm/coul/long/intel|lj/charmm/coul/long/kk|lj/charmm/coul/long/opt|lj/charmm/coul/long/omp|lj/charmm/coul/msm|lj/charmm/coul/msm/omp|lj/charmmfsw/coul/charmmfsh|lj/charmmfsw/coul/long|lj/charmmfsw/coul/long/kk|atm|gayberne|gayberne/gpu|gayberne/intel|gayberne/omp|exp6/rx|exp6/rx/kk|multi/lucy|dsmc|pedone|pedone/omp|eim|eim/omp|born/gauss|sdpd/taitwater/isothermal|sph/rhosum|coul/cut|coul/cut/gpu|coul/cut/kk|coul/cut/omp|coul/debye|coul/debye/gpu|coul/debye/kk|coul/debye/omp|coul/dsf|coul/dsf/gpu|coul/dsf/kk|coul/dsf/omp|coul/exclude|coul/cut/global|coul/cut/omp/global|coul/long|coul/long/omp|coul/long/kk|coul/long/gpu|coul/msm|coul/msm/omp|coul/streitz|coul/wolf|coul/wolf/kk|coul/wolf/omp|tip4p/cut|tip4p/cut/omp|tip4p/long|tip4p/long/omp|sw/angle/table|tersoff/zbl|tersoff/zbl/gpu|tersoff/zbl/kk|tersoff/zbl/omp|lcbop|lepton|lepton/omp|resquared|resquared/gpu|resquared/omp|mgpt|pod|pod/kk|lj/long/coul/long|lj/long/coul/long/intel|lj/long/coul/long/omp|lj/long/coul/long/opt|lj/long/tip4p/long|lj/long/tip4p/long/omp|coul/diel|coul/diel/omp|lj/cut/sphere|ylz|morse|morse/gpu|morse/omp|morse/opt|morse/kk|morse/smooth/linear|morse/smooth/linear/omp|lj/gromacs|lj/gromacs/gpu|lj/gromacs/kk|lj/gromacs/omp|lj/gromacs/coul/gromacs|lj/gromacs/coul/gromacs/kk|lj/gromacs/coul/gromacs/omp|saip/metal|spin/neel|polymorphic|lj/switch3/coulgauss/long|python|oxrna2/excv|oxrna2/stk|oxrna2/hbond|oxrna2/xstk|oxrna2/coaxstk|edip|edip/omp|edip/multi|smd/hertz|eff/cut|lj/smooth|lj/smooth/gpu|lj/smooth/omp|granular|gran/hooke|gran/hooke/omp|gran/hooke/history|gran/hooke/history/omp|gran/hooke/history/kk|gran/hertz/history|gran/hertz/history/omp|drip|smd/tlsph|kolmogorov/crespi/full|lj/cut/tip4p/cut|lj/cut/tip4p/cut/omp|lj/cut/tip4p/long|lj/cut/tip4p/long/gpu|lj/cut/tip4p/long/omp|lj/cut/tip4p/long/opt|list|smtbq|peri/pmb|peri/pmb/omp|peri/lps|peri/lps/omp|peri/ves|meam|meam/kk|meam/ms|meam/ms/kk|table|table/gpu|table/kk|table/omp|tri/lj|momb|brownian|brownian/omp|brownian/poly|brownian/poly/omp|buck6d/coul/gauss/dsf|adp|adp/kk|adp/omp|vashishta|vashishta/gpu|vashishta/omp|vashishta/kk|vashishta/table|vashishta/table/omp|reaxff|reaxff/kk|reaxff/omp|zero|ilp/graphene/hbn|spin/exchange|snap|snap/intel|snap/kk|agni|agni/omp|coul/tt|spin/dipole/cut|yukawa/colloid|yukawa/colloid/gpu|yukawa/colloid/kk|yukawa/colloid/omp|dpd|dpd/gpu|dpd/intel|dpd/kk|dpd/omp|dpd/tstat|dpd/tstat/gpu|dpd/tstat/kk|dpd/tstat/omp|edpd|edpd/gpu|mdpd|mdpd/gpu|mdpd/rhosum|mliap|mliap/kk|tersoff|tersoff/gpu|tersoff/intel|tersoff/kk|tersoff/omp|tersoff/table|tersoff/table/omp|aip/water/2dm|local/density)(?=[\\t\\s])" }, { "include": "$self" @@ -123,7 +123,7 @@ "patterns": [ { "name": "keyword.style.bond_style.lmps", - "match": "\\b(bpm/rotational|bpm/spring|table|table/omp|gromos|gromos/omp|rheo/shell|mesocnt|fene|fene/intel|fene/kk|fene/omp|fene/nm|lepton|lepton/omp|bond_style|harmonic/restrain|fene/expand|fene/expand/omp|special|morse|morse/omp|oxdna/fene|oxdna2/fene|gaussian|zero|quartic|quartic/omp|class2|class2/omp|class2/kk|none|nonlinear|nonlinear/omp|hybrid|hybrid/kk|mm3|harmonic/shift|harmonic/shift/omp|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|harmonic/shift/cut|harmonic/shift/cut/omp)(?=[\\t\\s])" + "match": "\\b(gaussian|hybrid|hybrid/kk|morse|morse/omp|nonlinear|nonlinear/omp|none|bond_style|class2|class2/omp|class2/kk|mm3|oxdna/fene|oxdna2/fene|bpm/rotational|fene|fene/intel|fene/kk|fene/omp|fene/nm|quartic|quartic/omp|zero|mesocnt|bpm/spring|harmonic/shift/cut|harmonic/shift/cut/omp|special|harmonic/shift|harmonic/shift/omp|table|table/omp|lepton|lepton/omp|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|fene/expand|fene/expand/omp|gromos|gromos/omp|harmonic/restrain)(?=[\\t\\s])" }, { "include": "$self" @@ -141,7 +141,7 @@ "patterns": [ { "name": "keyword.style.angle_style.lmps", - "match": "\\b(fourier/simple|fourier/simple/omp|cosine/squared/restricted|cosine/squared/restricted/omp|charmm|charmm/intel|charmm/kk|charmm/omp|cosine/delta|cosine/delta/omp|spica|spica/omp|spica/kk|cosine|cosine/omp|cosine/kk|zero|class2|class2/kk|class2/omp|class2/p6|dipole|dipole/omp|fourier|fourier/omp|amoeba|mm3|cosine/buck6d|cosine/shift/exp|cosine/shift/exp/omp|cosine/shift|cosine/shift/omp|lepton|lepton/omp|none|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|cosine/squared|cosine/squared/omp|angle_style|hybrid|hybrid/kk|table|table/omp|cosine/periodic|cosine/periodic/omp|cross|gaussian|mesocnt|quartic|quartic/omp)(?=[\\t\\s])" + "match": "\\b(hybrid|cosine/periodic|cosine/periodic/omp|cosine/squared|cosine/squared/omp|lepton|lepton/omp|cosine/shift|cosine/shift/omp|fourier|fourier/omp|cosine/squared/restricted|cosine/squared/restricted/omp|table|table/omp|cosine|cosine/omp|cosine/kk|none|class2|class2/kk|class2/omp|class2/p6|mesocnt|angle_style|spica|spica/omp|mm3|cross|charmm|charmm/intel|charmm/kk|charmm/omp|fourier/simple|fourier/simple/omp|quartic|quartic/omp|dipole|dipole/omp|cosine/delta|cosine/delta/omp|cosine/shift/exp|cosine/shift/exp/omp|amoeba|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|cosine/buck6d|gaussian|zero)(?=[\\t\\s])" }, { "include": "$self" @@ -159,7 +159,7 @@ "patterns": [ { "name": "keyword.style.dihedral_style.lmps", - "match": "\\b(cosine/squared/restricted|opls|opls/intel|opls/kk|opls/omp|none|spherical|fourier|fourier/intel|fourier/omp|quadratic|quadratic/omp|cosine/shift/exp|cosine/shift/exp/omp|helix|helix/omp|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|dihedral_style|zero|lepton|lepton/omp|class2|class2/omp|class2/kk|hybrid|hybrid/kk|table|table/omp|table/cut|charmm|charmm/intel|charmm/kk|charmm/omp|charmmfsw|charmmfsw/kk|nharmonic|nharmonic/omp|multi/harmonic|multi/harmonic/omp)(?=[\\t\\s])" + "match": "\\b(hybrid|class2|class2/omp|class2/kk|multi/harmonic|multi/harmonic/omp|opls|opls/intel|opls/kk|opls/omp|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|zero|cosine/shift/exp|cosine/shift/exp/omp|spherical|nharmonic|nharmonic/omp|lepton|lepton/omp|cosine/squared/restricted|dihedral_style|fourier|fourier/intel|fourier/omp|charmm|charmm/intel|charmm/kk|charmm/omp|charmmfsw|charmmfsw/kk|table|table/omp|table/cut|none|helix|helix/omp|quadratic|quadratic/omp)(?=[\\t\\s])" }, { "include": "$self" @@ -177,7 +177,7 @@ "patterns": [ { "name": "keyword.style.improper_style.lmps", - "match": "\\b(harmonic|harmonic/intel|harmonic/kk|harmonic/omp|sqdistharm|none|class2|class2/omp|class2/kk|hybrid|hybrid/kk|improper_style|inversion/harmonic|fourier|fourier/omp|distance|cvff|cvff/intel|cvff/omp|zero|umbrella|umbrella/omp|amoeba|ring|ring/omp|distharm|cossq|cossq/omp)(?=[\\t\\s])" + "match": "\\b(fourier|fourier/omp|ring|ring/omp|amoeba|umbrella|umbrella/omp|cossq|cossq/omp|zero|cvff|cvff/intel|cvff/omp|harmonic|harmonic/intel|harmonic/kk|harmonic/omp|sqdistharm|class2|class2/omp|class2/kk|improper_style|none|distance|inversion/harmonic|hybrid|distharm)(?=[\\t\\s])" }, { "include": "$self" @@ -195,7 +195,7 @@ "patterns": [ { "name": "keyword.command.dump.lmps", - "match": "\\b(dump|cfg/uef|atom/adios|vtk|h5md|image|movie|molfile|netcdf)(?=[\\t\\s])" + "match": "\\b(cfg/uef|netcdf|h5md|image|movie|molfile|atom/adios|vtk|dump)(?=[\\t\\s])" }, { "include": "$self" @@ -213,7 +213,7 @@ "patterns": [ { "name": "keyword.command.fix.lmps", - "match": "\\b(thermal/conductivity|gld|freeze|freeze/kk|wall/body/polyhedron|srd|nph/sphere|nph/sphere/omp|precession/spin|langevin/drude|smd/wall_surface|grem|rheo/thermal|pair|wall/srd|gle|acks2/reaxff|acks2/reaxff/kk|eos/cv|nvt/uef|aveforce|brownian|brownian/sphere|polarize/bem/gmres|polarize/bem/icc|nve/dot|lb/viscous|nve/sphere|nve/sphere/omp|nve/sphere/kk|bond/create|edpd/source|pour|print|adapt/fep|npt/cauchy|efield|ave/correlate|viscous/sphere|nve/asphere|nve/asphere/gpu|nve/asphere/intel|filter/corotate|move|wall/ees|tgnvt/drude|drag|wall/reflect/stochastic|recenter|nve/bpm/sphere|fix|python/invoke|ave/grid|wall/lj93|wall/lj93/kk|wall/lj126|wall/lj1043|wall/colloid|wall/harmonic|wall/lepton|wall/morse|nph/asphere|nph/asphere/omp|vector|plumed|nvt/asphere|nvt/asphere/omp|hyper/local|evaporate|tmd|damping/cundall|store/state|deform|deform/kk|hyper/global|atom/swap|accelerate/cos|qeq/point|qeq/shielded|qeq/slater|qeq/dynamic|spring/rg|nve/manifold/rattle|nph/body|external|msst|eos/table|nve/body|tune/kspace|adapt|sph|restrain|pimd/langevin|ffl|momentum|momentum/kk|momentum/chunk|qtb|heat/flow|orient/fcc|add/heat|smd/integrate_tlsph|wall/reflect|wall/reflect/kk|smd/move_tri_surf|widom|nve/tri|ave/chunk|addtorque|property/atom|property/atom/kk|nve|nve/gpu|nve/intel|nve/kk|nve/omp|nvt/eff|npt/eff|nphug|nphug/omp|wall/gran|wall/gran/kk|viscosity|nve/noforce|dpd/energy|dpd/energy/kk|imd|balance|nvt/manifold/rattle|ehex|deposit|reaxff/species|reaxff/species/kk|bond/swap|bocs|ave/correlate/long|npt/asphere|npt/asphere/omp|wall/gran/region|enforce2d|enforce2d/kk|poems|rheo|python/move|smd/adjust_dt|electrode/conp|electrode/conq|electrode/thermo|sph/stationary|bond/react|ave/histo|ave/time|nonaffine/displacement|qeq/reaxff|qeq/reaxff/kk|qeq/reaxff/omp|smd/integrate_ulsph|rigid/meso|langevin/spin|npt/body|press/langevin|mdi/qm|qeq/comb|qeq/comb/omp|amoeba/bitorsion|dt/reset|dt/reset/kk|shake|shake/kk|rattle|smd|mvv/dpd|mvv/edpd|addforce|rheo/viscosity|nvt/body|langevin|langevin/kk|wall/body/polygon|saed/vtk|qbmsst|lb/momentum|numdiff|gcmc|mdi/qmmm|viscous|viscous/kk|lb/fluid|spring|nvt|nvt/gpu|nvt/intel|nvt/kk|nvt/omp|npt|npt/gpu|npt/intel|npt/kk|npt/omp|nph|nph/kk|nph/omp|atc|oneway|flow/gauss|wall/region|rheo/pressure|drude/transform/direct|nvt/sphere|nvt/sphere/omp|bond/break|shardlow|shardlow/kk|gravity|gravity/omp|gravity/kk|manifoldforce|lineforce|spring/self|smd/setvel|colvars|npt/sphere|npt/sphere/omp|halt|nve/dotc/langevin|sgcmc|rheo/oxidation|setforce|setforce/kk|setforce/spin|nve/spin|rhok|reaxff/bonds|reaxff/bonds/kk|amoeba/pitorsion|wall/flow|wall/flow/kk|qmmm|numdiff/virial|planeforce|ave/atom|nve/line|mol/swap|temp/rescale/eff|cmap|nve/eff|ipi|nvk|box/relax|pafi|indent|tfmc|rx|rx/kk|nve/limit|ttm|ttm/grid|neb/spin|meso/move|store/force|press/berendsen|ti/spring|propel/self|eos/table/rx|eos/table/rx/kk|controller|alchemy|nvt/sllod|nvt/sllod/intel|nvt/sllod/omp|nvt/sllod/kk|temp/rescale|temp/rescale/kk|rigid|rigid/omp|rigid/nve|rigid/nve/omp|rigid/nvt|rigid/nvt/omp|rigid/npt|rigid/npt/omp|rigid/nph|rigid/nph/omp|rigid/small|rigid/small/omp|rigid/nve/small|rigid/nvt/small|rigid/npt/small|append/atoms|langevin/eff|phonon|nve/asphere/noforce|electron/stopping|nve/awpmd|deform/pressure|spring/chunk|heat|neb|drude|temp/berendsen|temp/berendsen/kk|temp/csvr|wall/piston|charge/regulation|nvt/sllod/eff)(?=[\\t\\s])" + "match": "\\b(charge/regulation|ave/correlate|acks2/reaxff|acks2/reaxff/kk|gcmc|recenter|nve/eff|sph|colvars|langevin|langevin/kk|grem|pour|nve/noforce|srd|viscous|viscous/kk|indent|bocs|atom/swap|external|nvt/eff|npt/eff|eos/table/rx|eos/table/rx/kk|enforce2d|enforce2d/kk|numdiff/virial|efield|neb/spin|halt|nve/line|phonon|nve/sphere|nve/sphere/omp|nve/sphere/kk|ehex|drude/transform/direct|bond/react|temp/rescale|temp/rescale/kk|oneway|wall/srd|electron/stopping|pair|imd|temp/berendsen|temp/berendsen/kk|ipi|rigid|rigid/omp|rigid/nve|rigid/nve/omp|rigid/nvt|rigid/nvt/omp|rigid/npt|rigid/npt/omp|rigid/nph|rigid/nph/omp|rigid/small|rigid/small/omp|rigid/nve/small|rigid/nvt/small|rigid/npt/small|widom|nvt/uef|nve/limit|nvk|freeze|freeze/kk|adapt|nve|nve/gpu|nve/intel|nve/kk|nve/omp|nve/body|mol/swap|npt/body|viscosity|nve/bpm/sphere|ave/grid|mdi/qmmm|wall/gran/region|momentum|momentum/kk|momentum/chunk|bond/swap|wall/reflect|wall/reflect/kk|tfmc|box/relax|ttm|ttm/grid|temp/rescale/eff|spring/chunk|meso/move|property/atom|property/atom/kk|shake|shake/kk|rattle|numdiff|deform|press/langevin|npt/sphere|npt/sphere/omp|restrain|electrode/conp|electrode/conq|electrode/thermo|drag|eos/table|addtorque|ave/atom|spring/self|nve/dot|hyper/global|heat|langevin/drude|heat/flow|accelerate/cos|langevin/spin|sgcmc|spring|addforce|precession/spin|ave/correlate/long|filter/corotate|wall/ees|evaporate|gravity|gravity/omp|gravity/kk|aveforce|ave/histo|nvt|nvt/gpu|nvt/intel|nvt/kk|nvt/omp|npt|npt/gpu|npt/intel|npt/kk|npt/omp|nph|nph/kk|nph/omp|print|wall/reflect/stochastic|nph/asphere|nph/asphere/omp|npt/cauchy|smd/integrate_ulsph|nve/asphere|nve/asphere/gpu|nve/asphere/intel|balance|press/berendsen|nph/body|hyper/local|ffl|smd/adjust_dt|drude|ave/chunk|deposit|gle|lineforce|qbmsst|smd/move_tri_surf|append/atoms|smd|saed/vtk|bond/break|wall/body/polygon|smd/setvel|dt/reset|dt/reset/kk|nonaffine/displacement|ave/time|amoeba/bitorsion|vector|smd/wall_surface|viscous/sphere|nve/awpmd|mvv/dpd|mvv/edpd|sph/stationary|nve/manifold/rattle|deform/pressure|spring/rg|nve/tri|langevin/eff|qeq/point|qeq/shielded|qeq/slater|qeq/dynamic|atc|msst|nvt/sllod/eff|qeq/reaxff|qeq/reaxff/kk|qeq/reaxff/omp|poems|nvt/sllod|nvt/sllod/intel|nvt/sllod/omp|nvt/sllod/kk|tune/kspace|polarize/bem/gmres|polarize/bem/icc|pafi|brownian|brownian/sphere|plumed|shardlow|shardlow/kk|controller|qeq/comb|qeq/comb/omp|flow/gauss|lb/viscous|wall/gran|wall/gran/kk|rx|rx/kk|tmd|wall/body/polyhedron|wall/piston|nve/dotc/langevin|alchemy|wall/lj93|wall/lj93/kk|wall/lj126|wall/lj1043|wall/colloid|wall/harmonic|wall/lepton|wall/morse|store/state|fix|nph/sphere|nph/sphere/omp|reaxff/species|reaxff/species/kk|qmmm|python/move|temp/csvr|setforce|setforce/kk|setforce/spin|rigid/meso|nvt/sphere|nvt/sphere/omp|move|tgnvt/drude|eos/cv|pimd/langevin|reaxff/bonds|reaxff/bonds/kk|qtb|nvt/asphere|nvt/asphere/omp|ti/spring|mdi/qm|npt/asphere|npt/asphere/omp|wall/flow|wall/flow/kk|cmap|damping/cundall|smd/integrate_tlsph|lb/fluid|python/invoke|store/force|orient/fcc|rhok|manifoldforce|planeforce|dpd/energy|dpd/energy/kk|propel/self|adapt/fep|nve/asphere/noforce|edpd/source|nvt/body|gld|bond/create|lb/momentum|nvt/manifold/rattle|nve/spin|amoeba/pitorsion|neb|thermal/conductivity|nphug|nphug/omp|wall/region)(?=[\\t\\s])" }, { "include": "$self" @@ -231,7 +231,7 @@ "patterns": [ { "name": "keyword.command.fix_modify.lmps", - "match": "\\b(momentum|on_the_fly|atom_weight|material|output|add_molecule|remove_source|boundary_faceset|scale|filter|unfix|write_atom_weights|fix_flux|poisson_solver|equilibrium_start|gradients|atomic_charge|contour_integral|kernel|fields|add_species|remove_species|volume_integral|fix|mass_matrix|nodeset|source_integration|boundary_integral|create_nodeset|write_restart|quadrature|exchange|track_displacement|read|plane|pair_interactions|localized_lambda|unfix_flux|computes|box|fix_modify|decomposition|thermal|delete_elements|temperature_definition|source|remove_molecule|reset_atomic_reference_positions|time_integration|lumped_lambda_solve|fe_md_boundary|nodeset_to_elementset|initial|create|rates|internal_quadrature|reset_time|boundary_dynamics|type|kernel_bandwidth|reference_potential_energy|add_to_nodeset|electron_integration|consistent_fe_initialization|internal_element_set|write|mask_direction|sample_frequency|create_elementset|read_restart|atom_element_map)(?=[\\t\\s])" + "match": "\\b(consistent_fe_initialization|type|rates|momentum|create|fe_md_boundary|plane|output|atom_element_map|computes|mass_matrix|source_integration|initial|scale|equilibrium_start|kernel|add_species|gradients|fix_modify|unfix|atom_weight|nodeset_to_elementset|source|exchange|atomic_charge|write_restart|create_nodeset|remove_molecule|reset_time|remove_species|read|mask_direction|reference_potential_energy|filter|add_molecule|decomposition|read_restart|reset_atomic_reference_positions|volume_integral|write_atom_weights|quadrature|nodeset|on_the_fly|internal_element_set|add_to_nodeset|write|delete_elements|boundary_faceset|contour_integral|material|create_elementset|track_displacement|boundary_integral|thermal|lumped_lambda_solve|poisson_solver|temperature_definition|fix|fix_flux|internal_quadrature|electron_integration|pair_interactions|fields|remove_source|sample_frequency|time_integration|localized_lambda|kernel_bandwidth|boundary_dynamics|box|unfix_flux)(?=[\\t\\s])" }, { "include": "$self" @@ -240,7 +240,7 @@ }, { "name": "keyword.command.general.lmps", - "match": "^\\s*\\b(thermo_style|run|quit|delete_bonds|include|temper/npt|balance|info|pair_coeff|suffix|improper_coeff|hyper|python|create_atoms|create_box|temper/grem|angle_write|angle_coeff|neigh_modify|labelmap|neb|min_modify|run_style|write_data|create_bonds|reset_atoms|jump|comm_modify|minimize|geturl|next|molecule|dump_modify|echo|if|temper|compute_modify|unfix|log|read_data|set|dihedral_write|change_box|mdi|group2ndx|displace_atoms|label|write_restart|pair_write|prd|restart|boundary|timestep|plugin|min_style spin|min_style spin/cg|min_style cg|min_style hftn|min_style sd|min_style quickmin|min_style fire|pair_modify|undump|kspace_modify|write_coeff|read_restart|bond_coeff|third_order|kspace_style|lattice|processors|uncompute|tad|units|delete_atoms|region|print|clear|variable|atom_style|reset_timestep|thermo|group|newton|kim|dynamical_matrix|timer|dihedral_coeff|replicate|comm_style|special_bonds|neighbor|dielectric|read_dump|fitpod|package|atom_modify|thermo_modify|velocity|write_dump|mass|shell|dimension|neb/spin|rerun|partition|bond_write)(?=[\\t\\s])" + "match": "^\\s*\\b(special_bonds|neb|restart|change_box|atom_modify|uncompute|compute_modify|displace_atoms|region|shell|pair_write|if|unfix|variable|minimize|write_dump|write_restart|python|package|min_style cg|min_style hftn|min_style sd|min_style quickmin|min_style fire|kspace_modify|third_order|jump|replicate|dynamical_matrix|label|dihedral_write|hyper|min_modify|timestep|run|dihedral_coeff|group2ndx|processors|temper|delete_atoms|comm_style|undump|neighbor|kim|create_box|suffix|lattice|neb/spin|atom_style|print|partition|read_data|rerun|group|include|mdi|delete_bonds|newton|tad|reset_timestep|clear|create_bonds|prd|reset_atoms|dielectric|temper/grem|comm_modify|boundary|read_restart|neigh_modify|angle_write|balance|angle_coeff|log|quit|pair_modify|thermo_modify|echo|run_style|pair_coeff|create_atoms|improper_coeff|dimension|velocity|temper/npt|fitpod|mass|labelmap|read_dump|info|min_style spin|min_style spin/cg|timer|thermo_style|dump_modify|write_data|plugin|set|next|kspace_style|bond_coeff|write_coeff|units|thermo|molecule|bond_write)(?=[\\t\\s])" }, { "name": "keyword.k_space_solver.lmps",